continue
Специалист
Итак Добрый вечер решил выложить команды копированные с Advance Role Play
1) Ко всем #define добавим:
#define send(%0,%1) SendClientMessage(%0, -1, %1) и #define PlayerInfo[%0][pRang] PlayerInfo[%0][pRank] - не обязательно но мне для удобство.
Внимание! Для работы /rang + нужно подключение SSCANF
Выдача ранга была взята с Legend RolePlay
Доделано Danil1998 (Мной)
Будут Eror"s Warings пишите.
1) Ко всем #define добавим:
#define send(%0,%1) SendClientMessage(%0, -1, %1) и #define PlayerInfo[%0][pRang] PlayerInfo[%0][pRank] - не обязательно но мне для удобство.
PHP:
if(strcmp(cmd, "/uninvite", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))return SCM(playerid, COLOR_GRAD2, " Использование: /uninvite [id]");
new Leader;
new Member;
new para1;
new sendername[MAX_PLAYER_NAME],giveplayer[MAX_PLAYER_NAME];
new string[256];
para1 = ReturnUser(tmp);
Leader = PlayerInfo[playerid][pMember];
Member = PlayerInfo[para1][pMember];
if(para1 == playerid) return SCM(playerid,0x0094FFAA, "Запрещено!");
if (PlayerInfo[playerid][pLeader] >= 1 || PlayerInfo[playerid][pMember] >= 8)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(Leader == Member)
{
if (PlayerInfo[para1][pMember] > 0)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "{ff6600}%s[%i] уволил Вас из организации ''%s''", sendername,giveplayerid,GetFRACName(PlayerInfo[playerid][pMember]));
SetPlayerToTeamColor(playerid);
SCM(para1, COLOR_LIGHTBLUE, string);
PlayerInfo[para1][pMember] = 0;
PlayerInfo[para1][pRang] = 0;
PlayerInfo[para1][pChar] = 0;
SetPlayerToTeamColor(para1);
SetPlayerSkin(para1,PlayerInfo[para1][pChar]);
format(string, sizeof(string), "{3399ff}Вы уволили %s[%i] из своей организации", giveplayer,giveplayerid);
SCM(playerid, COLOR_LIGHTBLUE, string);
}
}
else
{
SCM(playerid, COLOR_GRAD1, " Игрок не в вашей фракции!");
}
}
}//not connected
}
else
{
SCM(playerid, COLOR_GRAD1, " Игрок не в вашей фракции!");
}
}
return 1;
}
И добавляем stock отвечает за, из какой фракций были уволены.
stock GetFRACName(fnumbwer)
{
new string[256];
switch(fnumbwer)
{
case 1: format(string,sizeof(string),"Управление Полиций ЛС"); // Заменить на свою фракцию
case 15: format(string,sizeof(string),"Grove Street"); // Заменить на свою фракцию
case 17: format(string,sizeof(string),"Varios Los Aztecas"); // Заменить на свою фракцию
case 12: format(string,sizeof(string),"The Ballas"); // Заменить на свою фракцию
case 18: format(string,sizeof(string),"The Rifa"); // Заменить на свою фракцию
case 13: format(string,sizeof(string),"Los Santos Vagos"); // Заменить на свою фракцию
}
return string;
}
if(strcmp(cmd,"/rang",true)==0)
{
new string[256];
if(PlayerInfo[playerid][pLeader] == 0) return true;
if(sscanf(params, "ds[5]", params[0], params[1])) return send(playerid, "Используйте /rang [id] [+/-]");
if(params[0] == INVALID_PLAYER_ID) return SCM(playerid, 0x0094FFAA, "{DB7093}[X]{ffffff}Игрок не в сети");
if (PlayerInfo[playerid][pLeader] >= 1)
{
if(!IsPlayerConnected(params[0]))return SCM(playerid,0x0094FFAA, "Запрещено!");
//if(params[0] == playerid)return SCM(playerid,0x0094FFAA, "Запрещено!");
if(PlayerInfo[params[0]][pMember] == PlayerInfo[playerid][pLeader] || PlayerInfo[params[0]][pLeader] == PlayerInfo[playerid][pLeader])
{
if(strcmp(params[1],"+",true) == 0)
{
if(PlayerInfo[params[0]][pRank] == 7) { send(playerid, "У игрока уже 7 ранг, больше нельзя!"); return true; }
PlayerInfo[params[0]][pRank] += 1;
format(string, sizeof(string), "{319aff}Ваш ранг в организации был повышен до %d (%s)", PlayerInfo[params[0]][pRank],RankName(params[0]));
SCM(params[0], -1, string);
format(string, sizeof(string), "{319aff}Вы повысили ранг игроку %s[%d] до %d (%s)", GN(params[0]),params[0],PlayerInfo[params[0]][pRank],RankName(params[0]));
SCM(playerid, -1, string);
}
else if(strcmp(params[1],"-",true) == 0)
{
if(PlayerInfo[params[0]][pRank] == 1) { send(playerid, "У игрока уже 1 ранг, меньше нельзя!"); return true; }
PlayerInfo[params[0]][pRank] -= 1;
format(string, sizeof(string), "{ff6600}Ваш ранг в организации был понижен до %d (%s)",PlayerInfo[params[0]][pRank],RankName(params[0]));
SCM(params[0], -1, string);
format(string, sizeof(string), "{319aff}Вы понизили ранг игроку %s[%d] до %d (%s)", GN(params[0]),params[0],PlayerInfo[params[0]][pRank],RankName(params[0]));
SCM(playerid, -1, string);
}
}
else
{
SCM(playerid,-1,"{DB7093}[X]{ffffff} Этот игрок не из вашей фракции");
}
}
return true;
}
Добавим к stock:
stock GN(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); return name; }
stock RankName(playerid)
{
new atext[30];
switch(PlayerInfo[playerid][pMember])
{
case 1: // 1 фракция в моде
{
switch(PlayerInfo[playerid][pRank])
{
case 8: atext = "Мэр"; // Ранги
case 7: atext = "Заместитель мэра"; // Ранги
case 6: atext = "Адвокат"; // Ранги
case 5: atext = "Лицензер"; // Ранги
case 4: atext = "Секретарь"; // Ранги
case 3: atext = "Управляющий"; // Ранги
case 2: atext = "Охраник"; // Ранги
case 1: atext = "Водитель"; // Ранги
}
}
default: atext = "Нет";
}
return atext;
}
Выдача ранга была взята с Legend RolePlay
Доделано Danil1998 (Мной)
Будут Eror"s Warings пишите.
