Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

По созданию фракций.

Статус
В этой теме нельзя размещать новые ответы.

Daimon

Новичок
Например возьмем Хитманов поробуем их создать

Создайте переменные
PHP:
new PlayerHit[MAX_PLAYERS] = INVALID_PLAYER_ID;
new HitPlayer[MAX_PLAYERS] = INVALID_PLAYER_ID;
new GotHit[MAX_PLAYERS];
new GoChase[MAX_PLAYERS];
new GetChased[MAX_PLAYERS];
new ConnectPC[MAX_PLAYERS];
new hitfound = 0;
new hitid = 999;
new PlayerValue[MAX_PLAYERS];
далее ищем и добавляем в enum pinfo
PHP:
pHeadValue,
В public OnPlayerRegister(playerid, password[]) Теперь Добавляем следущие.
PHP:
ini_setInteger(iniFile,"HeadValue",PlayerInfo[playerid][pHeadValue]);
public OnPlayerLogin(playerid, password[]) сюда добавим
PHP:
ini_getInteger(iniFile,"HeadValue",PlayerInfo[playerid][pHeadValue]);
и сохраняем у меня лично это stock SavePlayer(playerid)
PHP:
ini_setInteger(iniFile,"HeadValue",PlayerInfo[playerid][pHeadValue]);
Далее идем в public onplayerConnect
PHP:
ConnectPC[playerid] = 0;GoChase[playerid] = 999; GetChased[playerid] = 999;GotHit[playerid] = 0;
и PlayerInfo[playerid][pHeadValue] = 0;
Теперь создаем саму фракцию увидал тут урок чтобы не копирайт Жми сюда
Теперь создаем команду /portable и /contract
PHP:
if(strcmp(cmd, "/contract", true) == 0)
    {
        if(IsPlayerConnected(playerid))
           {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) return   SendClientMessage(playerid, COLOR_GRAD1, " * Использование: /contract [playerid/PartOfName] [amount]");
            giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) return  SendClientMessage(playerid, COLOR_GRAD1, " * Использование: /contract [playerid/PartOfName] [amount]");
            moneys = strvalEx(tmp);
            if(moneys < 1000 || moneys > 100000) { SendClientMessage(playerid, COLOR_GREY, "   Сумма котрактов должна быть минимум $1000, и максимум $100000!"); return 1; }
            if (IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(PlayerInfo[giveplayerid][pMember] == 29 && PlayerInfo[playerid][pMember] == 29) return  SendClientMessage(playerid, COLOR_GREY, " * Нельзя заказать контракт на члена вашего агенства!");
                    else if(PlayerInfo[giveplayerid][pLeader] == 29 && PlayerInfo[playerid][pMember] == 29)   return   SendClientMessage(playerid, COLOR_GREY, " * Нельзя заказать контракт на члена вашего агенства!");
                    else if(PlayerInfo[giveplayerid][pMember] == 29||PlayerInfo[giveplayerid][pLeader] == 29) return  SendClientMessage(playerid, COLOR_GREY, " * Вы неможете заказать этого человека!");
                    else if(PlayerInfo[playerid][pMember] == 29) return  SendClientMessage(playerid, COLOR_GREY, "Вы не хитман");
                    if(IsACop(giveplayerid) && moneys >= 3000)
                    {
                        SendClientMessage(playerid, COLOR_GREY, " * Только контракты больше $3000 могут быть положены на копов!");
                        return 1;
                    }
                    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, " * Вы не можете заказать себя!"); return 1; }
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    playermoney = PlayerInfo[playerid][pCash];
                    if (moneys > 0 && playermoney >= moneys)
                    {
                        PlayerInfo[playerid][pCash] -= moneys;
                        PlayerInfo[playerid][pCash] -= moneys;
                        GiveMoney(playerid, (0 - moneys));
                        PlayerInfo[giveplayerid][pHeadValue]+=moneys;
                        format(string, sizeof(string), " * %s заказал %s на сумму $%d.",sendername, giveplayer, moneys);
                        SendFamilyMessage(29, COLOR_YELLOW, string);
                        format(string, sizeof(string), " * Вы сделали контракт на %s за $%d.",giveplayer, moneys);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, " * У вас не хватает денег!");
                    }
                }
            }
            else
            {
                format(string, sizeof(string), "   %d не активный игрок.", giveplayerid);
                SendClientMessage(playerid, COLOR_GRAD1, string);
            }
        }
        return true;
    }
if(strcmp(cmd,"/portable",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pMember] == 29 || PlayerInfo[playerid][pLeader] == 29)//меняем на свой
            {
                if(ConnectPC[playerid] == 255)
                {
                    SendClientMessage(playerid, COLOR_LIGHTBLUE, "• {FFFFFF}Ноутбук разъединен с агенством");
                    ConnectedToPC[playerid] = 0;
                    return true;
                }
                GetPlayerName(playerid, sendername, sizeof(sendername));
                SendClientMessage(playerid, COLOR_LIGHTBLUE, "• {FFFFFF}Вы загрузили ноутбук и подключились к агенству");
                SendClientMessage(playerid, COLOR_LIGHTBLUE, "• {FFFFFF}Чтобы открыть меню введите 'Hitmenu'");
              ConnectPC[playerid] = 255;
            }
        }
        return 1;
    }
Дальше идем в Public onplayertext
PHP:
if(ConnectPC[playerid] == 255)
    {
        new idx;
        tmp = strtok(text, idx);
        if ((strcmp("hitmenu", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("hitmenu")))
        {
            ShowPlayerDialog(playerid,7763,DIALOG_STYLE_LIST,"Хитман Menu","Доступные контракты\nПодписать контракт\nПриобрести оружие\nОтказаться от заказа\nНайти цель\nРазъедениться","Далее","Отмена");
            return false;
        }
    }
Теперь добавляем диалоги
PHP:
 case 7763:
  {
       if(response)
        {
             if(listitem == 0)
             {
                SearchingHit(playerid);
             }
             if(listitem == 1)
             {
                if(hitfound == 0)
                {
                    SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Нет доступных контрактов!");
                    return false;
                }
                 ShowPlayerDialog(playerid,7764,DIALOG_STYLE_INPUT,"{b3f9b0}","{FFFFFF}Введите ID игрока кому хотите поручить контракт и нажмите {b3f9b0}'Принять'","Принять","");
             }
             if(listitem == 2)
             {
                 ShowPlayerDialog(playerid,7765,DIALOG_STYLE_INPUT,"{b3f9b0}Покупка","{FFFFFF}Впишите номер комплекта оружия и нажмите {b3f9b0}'Купить'\n\tКомплект оружия № 1 (5.000)\n\tКомплект оружия № 2 (6.000)\n\tКомплект оружия № 3 (7.000)\n\tКомплект оружия № 4 (8.000)\n\tКомплект оружия № 5 (9.000)\n\tКомплект оружия № 6 (10.000)\n\tКомплект оружия № 7 (11.000)\n","Купить","Отмена");
             }
             if(listitem == 3)
             {
             new giver[MAX_PLAYER_NAME];
             new giveplayer[MAX_PLAYER_NAME];
             new giveplayerid;
            if(IsPlayerConnected(hitid))
                {
                    new sendername[MAX_PLAYER_NAME];
                    GetPlayerName(playerid,sendername,sizeof(sendername));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    GetPlayerName(giveplayerid, giver, sizeof(giver));
                    GetPlayerName(hitid, giveplayer, sizeof(giveplayer));
                    format(string,sizeof(string),"• {FFFFFF}Хитман {b3f9b0}%s {FFFFFF}отказался от выполнения заказа на {b3f9b0}(ID:%d)",sendername,GoChase[playerid]);
                    SendFamilyMessage(29,0xb3f9b0FF,string);
                    GoChase[playerid] = hitid;
                    GetChased[hitid] = giveplayerid;
                      GotHit[hitid] = 1;
                      hitid = 0;
                      hitfound = 0;
                    return false;
                }
                else
                {
                    SendClientMessage(playerid,COLOR_WHITE,"{f9b0b0}x {FFFFFF}У Вас нет заказа");
                    return false;
                }
             }
             if(listitem == 4)
             {
                if(GoChase[playerid]!=999)
                {
                    new giver[MAX_PLAYER_NAME];
                    GetPlayerName(GoChase[playerid],giver,sizeof(giver));
                    format(string,sizeof(string),"Цель {b3f9b0}%s[ID: %d] {FFFFFF}отмечена у Вас на карте, следуйте за ней",giver,GoChase[playerid]);
                    SendClientMessage(playerid,COLOR_WHITE,string);
                    new Float:X,Float:Y,Float:Z;
                    GetPlayerPos(GoChase[playerid], X,Y,Z);
                    SetPlayerCheckpoint(playerid, X,Y,Z, 6);
                    return false;
                }
                else
                {
                    SendClientMessage(playerid,COLOR_WHITE,"{f9b0b0}x {FFFFFF}Вы не за кем не охотитесь");
                    return false;
                }
             }
             if(listitem == 5)
             {
                SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Вы отключились от агенства и выключили ноутбук");
                  ConnectPC[playerid] = 0;
                return false;
             }
      }
  }
  case 7764:
  {
       if(response)
        {
               new giveplayerid = strval(inputtext);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(PlayerInfo[giveplayerid][pMember] == 29 || PlayerInfo[giveplayerid][pLeader] == 29)
                    {
                        if(GoChase[giveplayerid] < 999)
                        {
                            SendClientMessage(playerid, COLOR_GREY, "• Тот хитман уже занят");
                            return false;
                        }
                        if(IsPlayerConnected(hitid))
                        {
                            new giver[MAX_PLAYER_NAME];
                            new sendername[MAX_PLAYER_NAME];
                            new giveplayer[MAX_PLAYER_NAME];
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            GetPlayerName(giveplayerid, giver, sizeof(giver));
                            GetPlayerName(hitid, giveplayer, sizeof(giveplayer));
                            format(string, sizeof(string), "« %s[%d] заключил контракт с %s[%d] на убийство %s[%d] »", sendername,playerid, giver,giveplayerid, giveplayer, hitid);
                            SendFamilyMessage(29, TEAM_AZTECAS_COLOR, string);
                            GoChase[giveplayerid] = hitid;
                            GetChased[hitid] = giveplayerid;
                            GotHit[hitid] = 1;
                            hitid = 0;
                            hitfound = 0;
                            return false;
                        }
                        else
                        {
                            SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Человек на которого контракт сейчас нет в игре!");
                            return false;
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Тот игрок не хитман");
                        return false;
                    }
                }
                return false;
            }
            else
            {
                SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "• {FFFFFF}Нет такого игрока!");
                return false;
            }
        }
  }
  case 7765:
  {
       if(response)
        {
                new i = playerid;
            if(!strcmp(inputtext, "1",true))
            {
                if(GetPlayerMoney(i) > 5000)
                {
                      GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 4, 1);
                    PlayerInfo[playerid][pCash] -= 5000;
                     SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 1.");
                 }
                else
                {
                    SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
                }
            }
            if(!strcmp(inputtext, "2",true))
            {
                if(GetPlayerMoney(i) > 6000)
                {
                    GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 31, 500); GiveRichGun(i, 4, 1);
                    PlayerInfo[playerid][pCash] -=6000;
                     SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 2.");
                 }
                else
                {
                    SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
                }
            }
            if(!strcmp(inputtext, "3",true))
            {
                if(GetPlayerMoney(i) > 7000)
                {
                    GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 30, 500); GiveRichGun(i, 4, 1);
                    PlayerInfo[playerid][pCash] -=7000;
                     SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 3.");
                 }
                else
                {
                    SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
                }
            }
            if(!strcmp(inputtext, "4",true))
            {
                if(GetPlayerMoney(i) > 8000)
                {
                    GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 31, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
                    PlayerInfo[playerid][pCash] -= 8000;
                     SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 4.");
                 }
                else
                {
                    SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
                }
            }
            if(!strcmp(inputtext, "5",true))
            {
                if(GetPlayerMoney(i) > 10000)
                {
                    GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 30, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
                    PlayerInfo[playerid][pCash] -= 10000;
                     SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 5.");
                 }
                else
                {
                    SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
                }
            }
            if(!strcmp(inputtext, "6",true))
            {
                if(GetPlayerMoney(i) > 11000)
                {
                    GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 31, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
                    PlayerInfo[playerid][pCash] -= 11000;
                     SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 6.");
                }
                else
                {
                    SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
                }
            }
            if(!strcmp(inputtext, "7",true))
            {
                if(GetPlayerMoney(i) > 12000)
                {
                    GiveRichGun(i, 24, 50); GiveRichGun(i, 29, 500); GiveRichGun(i, 25, 50); GiveRichGun(i, 30, 500); GiveRichGun(i, 4, 1); GiveRichGun(i, 34, 20);
                    PlayerInfo[playerid][pCash] -= 12000;
                     SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}Вы приобрели комплект оружия № 7.");
                 }
                else
                {
                    SendClientMessage(i, COLOR_LIGHTBLUE, "• {FFFFFF}У Вас недостаточно денег.");
                }
            }
      }
  }
Теперь в конец мода добавляем паблик
PHP:
forward  SearchingHit(playerid);
public SearchingHit(playerid)
{
    new string[150];
    new giveplayer[MAX_PLAYER_NAME];
    new searchhit = 0;
    for(new i=0; i<GetMaxPlayers(); i++)
    {
        if(IsPlayerConnected(i))
        {
            if(searchhit == 0)
            {
                if(PlayerInfo[i][pHeadValue] > 0 && GotHit[i] == 0 && PlayerInfo[i][pMember] != 29)
                {
                    GetPlayerName(i, giveplayer, sizeof(giveplayer));
                    searchhit = 1;
                    hitfound = 1;
                    hitid = i;
                    for(new k=0; k<GetMaxPlayers(); k++)
                    {
                        if(IsPlayerConnected(k))
                        {
                            if(PlayerInfo[k][pMember] == 29 || PlayerInfo[k][pLeader] == 29)//меняем на свое
                            {
                                format(string, sizeof(string), "Цель: %s[%d] Цена: $%d", giveplayer, i, PlayerInfo[i][pHeadValue]);
                                SendClientMessage(k, COLOR_GREEN, string);
                                SendClientMessage(k, COLOR_GREEN, "Откройте меню и выберите пункт 'Подписать контракт'");
                              }
                        }
                    }
                    return false;
                }
            }
        }
    }
    if(searchhit == 0)
    {
        SendClientMessage(playerid, COLOR_WHITE, "{f9b0b0}x {FFFFFF}Нет доступных контрактов.");
    }
    return false;
}
Теперь идем в public OnPlayerDeath(playerid, killerid, reason)
PHP:
if(PlayerInfo[playerid][pHeadValue] > 0)
    {
        if(IsPlayerConnected(killerid))
        {
            if(PlayerInfo[killerid][pLeader] == 29 || PlayerInfo[killerid][pMember] == 29)
            {
                if(GoChase[killerid] == playerid)
                {
                    new killer[MAX_PLAYER_NAME];
                    GetPlayerName(killerid, killer, sizeof(killer));
                    PlayerInfo[killerid][pCash] += PlayerInfo[playerid][pHeadValue];
                    format(string,128,"<< Хитман %s выполнил контракт на %s и получил $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
                    SendFamilyMessage(29, COLOR_YELLOW, string);
                    SendClientMessage(playerid, COLOR_LIGHTRED," * Вы были убиты хитманом по заказу!");
                    PlayerInfo[playerid][pHeadValue] = 0;
                    GotHit[playerid] = 0;
                    GetChased[playerid] = 999;
                    GoChase[killerid] = 999;
                }
            }
        }
    }
    if(killerid == PlayerHit[playerid])
    {
        if(playerid == HitPlayer[killerid])
        {
            //GivePlayerMoney(killerid,PlayerValue[playerid]);
            PlayerInfo[killerid][pCash] += PlayerValue[playerid];
            HitPlayer[killerid] = INVALID_PLAYER_ID;
            PlayerHit[playerid] = INVALID_PLAYER_ID;
        }
    }
Ну вот основа как бы все желаю удачи
Ставьте + Цените! Скоро буду выкладывать свои МАП работы
Половину вырезал половину добавил сам
Не для new.pwn!

---------- Post added at 20:41 ---------- Previous post was at 20:34 ----------

Кому нужны услуги маппера пишите в скайп deda123455
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу