[Мануал] Создание фракций для new.pwn. (Доработана) - Форум Cheat-Master.ru
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Мануал] Создание фракций для new.pwn. (Доработана)
[CM]Buben4ik Дата: Вторник, 03.06.2014, 22:13 | Сообщение # 1
Новичок
Сообщений: 16
Статус: Offline
Приветствую всех, кто читаю данную тему! Данная теме будет полезна для тех, кто пишет с вой мод с 0.
Кидаться своими "Баян","Было" и т.п. не надо! Во многих темах было не полностью описано!

1. К enum pInfo добавим
Код
pLeader,//Лидерка игрока.
pMember,//Фракция игрока.
pRank,//Ранг игрока.


2. В public OnPlayerConnect
Код

PlayerInfo[playerid][pLeader] = 0;
PlayerInfo[playerid][pMember] = 0;
PlayerInfo[playerid][pRank] = 0;


3. В public OnPlayerRegister
Код

iniSetInt(File,"Leader",PlayerInfo[playerid][pLeader]);
iniSetInt(File,"Member",PlayerInfo[playerid][pMember]);
iniSetInt(File,"Rank",PlayerInfo[playerid][pRank]);


4. В public OnPlayerLogin
Код

iniGetInt(File,"Leader",PlayerInfo[playerid][pLeader]);
iniGetInt(File,"Member",PlayerInfo[playerid][pMember]);
iniGetInt(File,"Rank",PlayerInfo[playerid][pRank]);


5. В stock SavePlayer//Или public.
Код

iniSetInt(File,"Leader",PlayerInfo[playerid][pLeader]);
iniSetInt(File,"Member",PlayerInfo[playerid][pMember]);
iniSetInt(File,"Rank",PlayerInfo[playerid][pRank]);


6. Ко всем New.
Код
new JoinPed[5][1] = { //5 - кол-во скинов.
{id skina1},
{id skina2},
{id skina3},
{id skina4},
{id skina5}
};


7. В public OnPlayerSpawn
Код
  if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
     {
         SetPlayerToTeamColor(playerid); //
      SetPlayerPos(playerid,-2031.5259,-117.2315,1035.1719);//Координаты меняйте на свои. Место появления
      SetPlayerFacingAngle(playerid,272.2109);//Поворот головы
      SetPlayerInterior(playerid,3);// Интерьер в котором появиться игрок 0 - это улица
      SetPlayerVirtualWorld(playerid, 2);// Виртуальный мир
      return 1;
     }

8. В stock ShowStats добавляем. У кого нету, то в конце мода создаём.
Код
stock ShowStats(playerid,targetid)
{
       new cash = GetPlayerMoney(targetid);
    new level = PlayerInfo[targetid][pLevel];
    new exp = PlayerInfo[playerid][pExp];
    new nxtlevel = PlayerInfo[playerid][pLevel]+1;
    new expamount = nxtlevel*levelexp;
    new name[MAX_PLAYER_NAME];
       new atext[32];
    if(PlayerInfo[targetid][pSex] == 1) { atext = "Мужчина"; }
    else if(PlayerInfo[targetid][pSex] == 2) { atext = "Женщина"; }
    new ttext[32];
    if(PlayerInfo[targetid][pMember] == 0 && PlayerInfo[targetid][pLeader] == 0) { ttext = "Неизвестно."; }
    else if(PlayerInfo[targetid][pMember] == 1 || PlayerInfo[targetid][pLeader] == 1) { ttext = "Фракция."; }
    new rangz[20];
    if(PlayerInfo[targetid][pMember] == 0)
    {
      if(PlayerInfo[targetid][pRank] == 0) { rangz = "Неизвестно"; }
    }
    if(PlayerInfo[targetid][pMember] == 1)
    {
     if(PlayerInfo[targetid][pRank] == 5) { rangz = "Лидер"; }
     else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам"; }
     else if(PlayerInfo[targetid][pRank] == 3) { rangz = "3 ранг"; }
     else if(PlayerInfo[targetid][pRank] == 2) { rangz = "2 ранг"; }
     else if(PlayerInfo[targetid][pRank] == 1) { rangz = "1 ранг"; }
    }
    GetPlayerName(targetid, name, sizeof(name));
    new Float:px,Float:py,Float:pz;
    GetPlayerPos(targetid, px, py, pz);
    new str[256],sctring[2000];
    format(str,sizeof(str),"{ffffff}Ник: %s. \n",name);
    strcat(sctring,str);
    format(str,sizeof(str),"{ffffff}ЛВЛ: %d. \n",level);
    strcat(sctring,str);
    format(str,sizeof(str),"{ffffff}EXP: %d/%d. \n",exp,expamount);
    strcat(sctring,str);
    format(str,sizeof(str),"{ffffff}Деньги наличными: %d. \n",cash);
    strcat(sctring,str);
    format(str,sizeof(str),"{ffffff}Пол: %s. \n",atext);
    strcat(sctring,str);
    format(str,sizeof(str),"{ffffff}Организация: %s \n",ttext);
    strcat(sctring,str);
    format(str,sizeof(str),"{ffffff}Должность: %s. \n",rangz);
    strcat(sctring,str);
    new CM[63];
    format(CM,sizeof(CM),"{ffffff}Статистика персонажа.");
    ShowPlayerDialog(playerid,12,DIALOG_STYLE_MSGBOX,CM,sctring,"Закрыть","");
    return true;
}


9. Создаём команду /invite.
Код
    if(strcmp(cmd, "/invite", true) == 0)
    {
     new para1;
     new ftext[32];
        if(IsPlayerConnected(playerid))
        {
      tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) return    SendClientMessage(playerid, COLOR_WHITE, "Введите: /invite [id]");
      para1 = ReturnUser(tmp);
      if(GetDistanceBetweenPlayers(playerid, para1) < 5.0)
            {
                   if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 4)
       {
           if(IsPlayerConnected(para1))
           {
               if(para1 != INVALID_PLAYER_ID)
               {
                   new giveplayer[MAX_PLAYER_NAME];
                   new sendername[MAX_PLAYER_NAME];
          if(IsPlayerInAnyVehicle(para1)) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Игрок находится в транспорте!");
          if(PlayerInfo[para1][pMember] != 0) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Игрок уже состоит в какой-то организации!");
          if(PlayerInfo[para1][pWarns] >= 1) return SendClientMessage(playerid, COLOR_RED, "[ERROR] У игрока Warn!");
          //if(PlayerInfo[playerid][pLevel] < 2) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Прием возможен только с 2-х лет проживания в штате");
          if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] == 4) {  ftext = "Таксопарк"; PlayerInfo[para1][pModel] = id скина;  }
          else { return true; }
          GetPlayerName(para1, giveplayer, sizeof(giveplayer));
          GetPlayerName(playerid, sendername, sizeof(sendername));
          format(string, sizeof(string), "Вы приняли %s работать в %s", giveplayer,ftext);
          SendClientMessage(playerid, COLOR_BLUE, string);
          format(string, sizeof(string), "Вы были приняты в %s лидером %s", ftext, sendername);
          SendClientMessage(para1, 0x6495EDFF, string);
          //FormaFrac[para1] = 0;
          PlayerInfo[para1][pMember] = 1;
          PlayerInfo[para1][pRank] = 1;
          PlayerInfo[para1][pJob] = 0;
          SetPlayerToTeamColor(para1);
          SavePlayer(para1);
         }
        }
       }
       else return SendClientMessage(playerid, COLOR_RED, "[ERROR] У вас не достаточно прав для использования данной команды!");
      }
      else return SendClientMessage(playerid, COLOR_RED, "[ERROR] Игрок должен быть рядом с вами!");
     }
    }


9. Создаём /makeleader.
Код
    if(strcmp(cmd, "/makeleader", true) == 0)
    {
        if(PlayerInfo[playerid][pAdmin] >= 6)
        {
            new sendername[MAX_PLAYER_NAME];
            new giveplayer[MAX_PLAYER_NAME];
      tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /makeleader [id игрока] [Number(1 - 1)]");
      //if(dostup[playerid] != 1) return ShowPlayerDialog(playerid, 2934, DIALOG_STYLE_INPUT, "Админ авторизация", "Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n    размером от 6 до 15 символов", "Вход", "Отмена");
      new para1;
      new level;
      para1 = ReturnUser(tmp);
      tmp = strtok(cmdtext, idx);
      level = strval(tmp);
      if(level < 1 || level > 1) { SendClientMessage(playerid, COLOR_RED, "[ERROR] Нельзя меньше 1 и больше 1!"); return true; }
      GetPlayerName(playerid, sendername, sizeof(sendername));
      if(IsPlayerConnected(para1))
      {
       if(para1 != INVALID_PLAYER_ID)
       {
        if(PlayerInfo[para1][pWarns] >= 1) return SendClientMessage(playerid, COLOR_RED, "[ERROR] У игрока варн!");
        //if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, COLOR_GREY, "Игрок должен достигнуть 3 левела");
        GetPlayerName(para1, giveplayer, sizeof(giveplayer));
        PlayerInfo[para1][pLeader] = level;
        PlayerInfo[para1][pMember] = level;
        PlayerInfo[para1][pJob] = 0;
        format(string, sizeof(string), "Администратор %s назначил вас контролировать данную фракцию", sendername);
        SendClientMessage(para1, 0x6495EDFF, string);
        SpawnPlayer(para1);
        format(string, sizeof(string), "Вы назначили %s контролировать фракцию номер %d", giveplayer, level);
        SendClientMessage(playerid, 0x6495EDFF, string);
        new iniFile = ini_openFile("logs/logi/leaders.ini");
        switch(level)
        {
            case 1: { PlayerInfo[para1][pRank] = 5; /*FormaFrac[para1] = 1;*/ ChangeSkin[para1] = id скина; if(PlayerInfo[para1][pAdmin] <= 0) { ini_removeKey(iniFile, "Фракция"); ini_setString(iniFile, "Фракция", giveplayer); } }
        }
        ini_closeFile(iniFile);
        SetPlayerHealth(para1, 100);
        PlayerInfo[para1][pHealth] = 100;
        PlayerInfo[para1][pModel] = ChangeSkin[para1];
        SetPlayerSkin(para1, PlayerInfo[para1][pModel]);
        format(string, 256, "%s make %s to leader fract %d | ", sendername, giveplayer, level);
        AdmLog(string);
        DelGun(para1);
        SavePlayer(para1);
       }
      }
     }
     return true;
    }


10. Ко всем forward'am.
Код
forward SetPlayerToTeamColor(playerid);


11. В конец мода.
Код
public SetPlayerToTeamColor(playerid)//Клист фракции.
{
    switch(PlayerInfo[playerid][pMember])
    {
    case 0:    SetPlayerColor(playerid, TEAM_HIT_COLOR);
    case 1: SetPlayerColor(playerid, 0x110CE7FF);
    }
    return 1;
}


12. В public OnPlayerSelectedMenuRow(playerid, row)

Код
  else if(Current == ChoseSkin)
    {
      switch(row)
      {
      case 0:
        {
         switch(SelectCharID[playerid])
       {
        case 1: //Фракция
        {
            if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[0][0]); SelectCharPlace[playerid] = 2; ChangeSkin[playerid] = JoinPed[0][0]; }
            else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[1][0]); SelectCharPlace[playerid] = 3; ChangeSkin[playerid] = JoinPed[1][0]; }
            else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[2][0]); SelectCharPlace[playerid] = 4; ChangeSkin[playerid] = JoinPed[2][0]; }
            else if(SelectCharPlace[playerid] == 4) { SetPlayerSkin(playerid, JoinPed[3][0]); SelectCharPlace[playerid] = 1; ChangeSkin[playerid] = JoinPed[3][0]; }
              ShowMenuForPlayer(ChoseSkin,playerid);
        }
       }
      }
     }
    }


13. Ко всем командам.
Код
    else if(strcmp(cmd, "/radio", true) == 0 || strcmp(cmd, "/r", true) == 0)
    {
        new sendername[MAX_PLAYER_NAME];
     GetPlayerName(playerid, sendername, sizeof(sendername));
     new length = strlen(cmdtext);
     while ((idx < length) && (cmdtext[idx] <= ' '))
     {
      idx++;
     }
     new offset = idx;
     new result[64];
     while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
     {
      result[idx - offset] = cmdtext[idx];
      idx++;
     }
     result[idx - offset] = EOS;
     if(!strlen(result)) return    SendClientMessage(playerid, COLOR_GRAD2, "Используйте: (/r)adio [текст]");
     if(PlayerInfo[playerid][pMuted] == 1) return   SendClientMessage(playerid, COLOR_RED, "[ERROR] У вас бан чата!");
     //if(gag[playerid] == 1) return    SendClientMessage(playerid, COLOR_LIGHTRED, "У Вас кляп, вы не можете говорить!");
     //if(Flood[playerid]> 0) return SendClientMessage(playerid, 0xFFD5BBAA, "Не флуди!");
     //Flood[playerid] = 4;
     if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
     {
      if(PlayerInfo[playerid][pRank] == 5) { format(string, sizeof(string), "[R] Лидер %s: %s", sendername, result); }
      else if(PlayerInfo[playerid][pRank] == 4) { format(string, sizeof(string), "[R] Зам %s: %s", sendername, result); }
      else if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "[R] 3 ранг %s: %s", sendername, result); }
      else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "[R] 2 ранг %s: %s", sendername,result); }
      else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "[R] 1 ранг %s: %s", sendername, result); }
      else
      {
       format(string, sizeof(string), "[R] 1 ранг %s: %s", sendername, result);
      }
      SendRadioMessage(1, COLOR_ORANGE, string);
      if(tipsterw == PlayerInfo[playerid][pMember])
               {
               for(new i = 0; i < MAX_PLAYERS; i++)
               {
               if(tipsterl[i]) SendClientMessage(i, COLOR_LIGHTRED, string);
               }
               }
     }
     return 1;
    }


Вроде всё. Если что-то упустил, пишите в комментарии. Вырезал со своего мода.

Автор: Неизвестно! Доработал: Я ([[CM]Buben4ik).


Мои темы:
1. Создание фракции с 0 для new.pwn. (Доработана).
Ссылка: http://cheat-master.ru/forum/117-324714-1

Проблемы с pawno? Обращайся! Помогу бесплатно. Skype: Metra123831


Сообщение отредактировал [CM]Buben4ik - Среда, 18.06.2014, 21:29
[CM]Fich Дата: Вторник, 03.06.2014, 23:20 | Сообщение # 2
Бывалый
Сообщений: 401
Статус: Offline
за 10 минут могу написать такое, и без твоего мaнуала
[CM]Buben4ik Дата: Среда, 04.06.2014, 09:31 | Сообщение # 3
Новичок
Сообщений: 16
Статус: Offline
Цитата [CM]Fich ()
за 10 минут могу написать такое, и без твоего мaнуала

Молодец! Ты сможешь, а кто-то не сможет.


Мои темы:
1. Создание фракции с 0 для new.pwn. (Доработана).
Ссылка: http://cheat-master.ru/forum/117-324714-1

Проблемы с pawno? Обращайся! Помогу бесплатно. Skype: Metra123831
CaptainEnergy Дата: Пятница, 13.06.2014, 11:47 | Сообщение # 4
Боец
Сообщений: 104
Статус: Offline
Это на mxINI, покажи людям как нужно на mysql писать...
[CM]Buben4ik Дата: Вторник, 17.06.2014, 09:42 | Сообщение # 5
Новичок
Сообщений: 16
Статус: Offline
Я с MySQL не работаю.
Цитата CaptainEnergy ()


Мои темы:
1. Создание фракции с 0 для new.pwn. (Доработана).
Ссылка: http://cheat-master.ru/forum/117-324714-1

Проблемы с pawno? Обращайся! Помогу бесплатно. Skype: Metra123831
-Forex- Дата: Вторник, 17.06.2014, 09:45 | Сообщение # 6
Бывалый
Сообщений: 362
Статус: Offline
Пробовал еще давно как-то сделать - не получилось. А так, спасибо, пригодится.

Skype: cmdiller007
vk: http://vk.com/vasil_popovich
Цель: 2k

10 дней на CM [✔] 10 репутации на CM [✔] Новичок [✔]
25 дней на CM [✔] 25 репутации на CM [✔] Любитель [✔]
50 дней на CM [✔] 50 репутации на CM [✔] Боец [✔]
100 дней на CM [✔] 100 репутации на CM [✔] Боец(х2) [✔]
250 дней на CM [✔] 250 репутации на CM [✔] Бывалый [✔]
500 дней на CM [✖] 500 репутации на CM [✔] Знаток [✔]
600 дней на CM [✖] 600 репутации на CM [✔] Советник [✔]
800 дней на CM [✖] 800 репутации на CM [✔] Авторитет [✔]
900 дней на CM [✖] 900 репутации на CM [✔] Легенда [✖]
1000+ дней на CM [✖] 1000+ репутации на CM [✔] Cheat-master [✖]
Сrazy™ Дата: Вторник, 17.06.2014, 17:04 | Сообщение # 7
Боец
Сообщений: 267
Статус: Offline
Автора укажи от куда брал
[CM]Buben4ik Дата: Вторник, 24.06.2014, 17:01 | Сообщение # 8
Новичок
Сообщений: 16
Статус: Offline
Цитата Сrazy™ ()
Автора укажи от куда брал

Там где брал, автор не указан.


Мои темы:
1. Создание фракции с 0 для new.pwn. (Доработана).
Ссылка: http://cheat-master.ru/forum/117-324714-1

Проблемы с pawno? Обращайся! Помогу бесплатно. Skype: Metra123831
roote Дата: Суббота, 01.11.2014, 19:46 | Сообщение # 9
Боец
Сообщений: 207
Статус: Offline
Благодарю. С помощью твоего мануала, создам семьи на сервере, и так сказать Кланы

--> Как заработать деньги на проекте Samp Rp | http://cheat-master.ru/forum/14-413833-1-17-1
--> 312 день на сайте | 26 марта (2015 год)
Buben4ik2 Дата: Четверг, 13.11.2014, 19:48 | Сообщение # 10
Новичок
Сообщений: 2
Статус: Offline
Цитата roote ()
Благодарю. С помощью твоего мануала, создам семьи на сервере, и так сказать Кланы

Пожалуйста!


Happy Role Play. В разработке.
Little_Pony Дата: Понедельник, 17.11.2014, 23:35 | Сообщение # 11
♫ Продавец ♫
Сообщений: 192
Статус: Offline
Помог

Just chillin'
SeX-PrO-AdReNaLiN Дата: Вторник, 18.11.2014, 09:17 | Сообщение # 12
Авторитет
Сообщений: 1310
Статус: Offline
Цитата [CM]Buben4ik ()
Я с MySQL не работаю.

Зря...


user N over 99999
[СM]BUDDY Дата: Вторник, 18.11.2014, 11:08 | Сообщение # 13
Боец
Сообщений: 83
Статус: Offline
MySQL самый удобный


☆ КАРТИНКА КЛИКАБЕЛЬНА ☆
skiez Дата: Суббота, 17.01.2015, 20:27 | Сообщение # 14
Боец
Сообщений: 66
Статус: Offline
Начинай работу с MySQL.


Sweet_Gangster Дата: Воскресенье, 18.01.2015, 00:03 | Сообщение # 15
Боец
Сообщений: 233
Статус: Offline
Спасибо мне пригодилось

10 дней на CM [✓] 10 репутации на CM [✓] Новичок [✓]
25 дней на CM [✓] 25 репутации на CM [✓] Любитель [✓]
50 дней на CM [✖] 50 репутации на CM [✓] Боец [✓]
100 дней на CM [✖] 100 репутации на CM [✓] Боец(х2) [✓]
250 дней на CM [✖] 250 репутации на CM [✓] Бывалый [✓]
500 дней на CM [✖] 500 репутации на CM [✓] Знаток [✓]
600 дней на CM [✖] 600 репутации на CM [✓] Советник [✖]
800 дней на CM [✖] 800 репутации на CM [✓]] Авторитет [✖]
900 дней на CM [✖] 900 репутации на CM [✓] Легенда [✖]
1000+ дней на CM [✖] 1000+ репутации на CM [✖] Cheat-master [✖]
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: