- Регистрация
- 28 Июл 2011
- Сообщения
- 895
- Лучшие ответы
- 0
- Репутация
- 243
Ув.Пользователи смотрим
Создатель I
прежде чем начать удалите старую команду
/invite - новечки для вас пишу
МОД RLS
Разъесняю всё подробно видим строчки
SKIN - скин при приняти во фракцию
ID - ид фракции
RANK - Ранг какой может принимать
дальше делаем /uninvite
Теперь /giverank
теперь что бы могли замы делать это
ДОБОВЛЯЕМ в конец мода PUBLIC
объясняю подробно
РАНГ! - ранги которые могут довать ранги
РАНГ - ранги которые могут принимать и увольнять
РАНК - вставить до кокого можно повышать ранга на 1 ранг ниже лидера
а так же команда /demote
к форвордам
в Onplayercommand
в конец мода
Создатель I
прежде чем начать удалите старую команду
/invite - новечки для вас пишу
МОД RLS
PHP:
if(strcmp(cmd, "/invite", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "/invite [id]");
return 1;
}
new para1;
new ftext[50];
para1 = ReturnUser(tmp);
if(CanUninvitePlayer(playerid,para1))
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if (PlayerInfo[para1][pMember] == 0 && PlayerInfo[para1][pLeader] == 0)
{
if(PlayerInfo[playerid][pLeader] == ID || PlayerInfo[playerid][pMember] == ID && PlayerInfo[playerid][pRank] >= RANK) { ftext = "Своё названия"; InviteSkin[para1] = SKIN; }
else if(PlayerInfo[playerid][pLeader] == ID || PlayerInfo[playerid][pMember] == ID && PlayerInfo[playerid][pRank] >= RANK) { ftext = "Своё названия"; InviteSkin[para1] = SKIN; }
else { return 1; }
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pMember] = PlayerInfo[playerid][pMember];
PlayerInfo[para1][pRank] = 1;
format(string, sizeof(string), "Вы приглашены в %s лидером %s", ftext, sendername);
SendClientMessage(para1, 0x6495EDFF, string);
format(string, sizeof(string), "Вы пригласили %s присоедениться к %s.", giveplayer,ftext);
SendClientMessage(playerid, 0x6495EDFF, string);
SetPlayerInterior(para1,5);
ShowMenuForPlayer(ChoseSkin,para1);
new rand = random(sizeof(gInviteSpawns));
SetPlayerPos(para1, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(para1, gInviteSpawns[rand][3]);
SetPlayerCameraPos(para1,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
SetPlayerCameraLookAt(para1,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
TogglePlayerControllable(para1, 0);
SelectChar[para1] = 255;
PlayerInfo[para1][pJob] = 0;
SelectCharID[para1] = PlayerInfo[para1][pMember];
SelectCharPlace[para1] = 1;
PlayerInfo[para1][pModel] = ChosenSkin[para1];
SetPlayerVirtualWorld(para1,1);
OnPlayerUpdateRL(para1);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Игрок уже состоит в организации");
return 1;
}
}
}//not connected
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Команда доступна только лидерам!");
}
}
return 1;
}
PHP:
else if(PlayerInfo[playerid][pLeader] == ID || PlayerInfo[playerid][pMember] == ID && PlayerInfo[playerid][pRank] >= RANK) { ftext = "Своё названия"; InviteSkin[para1] = SKIN; }
ID - ид фракции
RANK - Ранг какой может принимать
дальше делаем /uninvite
PHP:
if(strcmp(cmd, "/uninvite", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /uninvite [id]");
return 1;
}
new para1;
para1 = ReturnUser(tmp);
if(para1 == playerid) return SendClientMessage(playerid,-1,"Себя невозможно уволить");
if(PlayerInfo[para1][pMember] == PlayerInfo[playerid][pLeader] ||PlayerInfo[para1][pMember] == PlayerInfo[playerid][pMember])
{
if(IsPlayerConnected(para1))
{
if(CanUninvitePlayer(playerid,para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(PlayerInfo[para1][pMember] > 0)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s выгнал вас из организации", sendername);
SendClientMessage(para1, 0x6495EDFF, string);
format(string, sizeof(string), "Вы снова гражданский", sendername);
SendClientMessage(para1, 0x6495EDFF, string);
format(string, sizeof(string), "Вы выгнали %s из организации", giveplayer);
SendClientMessage(playerid, 0x6495EDFF, string);
PlayerInfo[para1][pMember] = 0;
PlayerInfo[para1][pRank] = 0;
PlayerInfo[para1][pLeader] = 0;
PlayerInfo[para1][pJob] = 0;
SetPlayerArmourAC(para1,0);
SpawnPlayer(para1);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!");
}
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Этот игрок не в вашей фракции");
}
}
return 1;
}
PHP:
if(strcmp(cmd, "/giverank", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "*Используйте: /giverank [id] [ранг]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(PlayerInfo[playerid][pLeader] <= 0 && PlayerInfo[playerid][pRank] <= PlayerInfo[para1][pRank]) return SendClientMessage(playerid, COLOR_GREY, "Вы не можите давать ранг тому,кто старше вас по рангу");
if(PlayerInfo[playerid][pMember] > 0 && playerid == para1) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете дать ранг самому себе!");//ну и проверяем не себе ли он даёт!
if(IsPlayerConnected(para1))
{
if(!IsValidRank(playerid,level)) return SendClientMessage(playerid,COLOR_GREY,"Неправильный номер ранга");
if(PlayerInfo[para1][pMember] == PlayerInfo[playerid][pLeader] || PlayerInfo[para1][pLeader] == PlayerInfo[playerid][pLeader])
{
if(CanGiverankPlayer(playerid,para1))
{
if(para1 != INVALID_PLAYER_ID)
{
new mem = 0;
if(PlayerInfo[playerid][pLeader] > 0) mem = PlayerInfo[playerid][pLeader];
else if(PlayerInfo[playerid][pMember] > 0) mem = PlayerInfo[playerid][pMember];
if(PlayerInfo[para1][pMember] != mem) return SendClientMessage(playerid,COLOR_RED,"Этот игрок не в вашей фракции");
if(PlayerInfo[playerid][pMember] > 0 && PlayerInfo[playerid][pRank] < level) return SendClientMessage(playerid,COLOR_GREY,"Вы не можете повысить ранг выше своего");
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pRank] = level;
format(string, sizeof(string), "%s повысил/понизил вас до %d ранга", sendername,level);
SendClientMessage(para1, 0x6495EDFF, string);
format(string, sizeof(string), "Вы повысили/понизили %s до %d ранга", giveplayer,level);
SendClientMessage(playerid, 0x6495EDFF, string);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Нет прав на использование команды!");
}
}
else
{
SendClientMessage(playerid,COLOR_GRAD1,"Этот игрок не из вашей фракции");
}
}
}
return 1;
}
ДОБОВЛЯЕМ в конец мода PUBLIC
PHP:
stock CanUninvitePlayer(playerid,playerid2)// ранги, которые могут увольнять из фракции/принимать во фракцию
{
if(PlayerInfo[playerid][pLeader] >= 1) return 1;
new rank = PlayerInfo[playerid][pRank];
if(PlayerInfo[playerid][pMember] > 0 && PlayerInfo[playerid2][pMember] > 0 &&
rank < PlayerInfo[playerid2][pRank]) return 0;
switch(PlayerInfo[playerid][pMember])
{
case 1:
{
switch(rank)
{
case РАНГ:return 1;
case РАНГ:return 1;
case РАНГ:return 1;
}
}
case 2:
{
switch(rank)
{
case РАНГ:return 1;
case РАНГ:return 1;
case РАНГ:return 1;
}
}
}
return 0;
}
stock CanGiverankPlayer(playerid,playerid2)// ранги, которые могут давать ранг
{
if(PlayerInfo[playerid][pLeader] >= 1) return 1;
new rank = PlayerInfo[playerid][pRank];
if(PlayerInfo[playerid][pMember] > 0 && PlayerInfo[playerid2][pMember] > 0 &&
rank < PlayerInfo[playerid2][pRank]) return 0;
switch(PlayerInfo[playerid][pMember])
{
case 1:
{
switch(rank)
{
case РАНГ!:return 1;
case РАНГ!:return 1;
case РАНГ!:return 1;
case РАНГ!:return 1;
}
}
case 2:
{
switch(rank)
{
case РАНГ!:return 1;
case РАНГ!:return 1;
case РАНГ!:return 1;
case РАНГ!:return 1;
}
}
}
return 0;
}
stock IsValidRank(playerid,rank)
{
new mem = 0;
if(PlayerInfo[playerid][pLeader] > 0) mem = PlayerInfo[playerid][pLeader];
else if(PlayerInfo[playerid][pMember] > 0) mem = PlayerInfo[playerid][pMember];
switch(mem)
{
case 1:
{
switch(rank)
{
case 1..Ранк:return 1;
}
}
case 2:
{
switch(rank)
{
case 1..РАНК:return 1;
}
}
}
return 0;
}
РАНГ! - ранги которые могут довать ранги
РАНГ - ранги которые могут принимать и увольнять
РАНК - вставить до кокого можно повышать ранга на 1 ранг ниже лидера
а так же команда /demote
к форвордам
PHP:
forward IsAFbi(playerid);
PHP:
if(strcmp(cmd, "/demote", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, " Помощь: /demote [id]");
return 1;
}
if(!IsAFbi(playerid) && PlayerInfo[playerid][pMember] <= 6)
{
SendClientMessage(playerid, COLOR_GRAD2, "Вы не можете использовать эту команду");
return 1;
}
new demotegiveplayer;
demotegiveplayer = ReturnUser(tmp);
if(IsPlayerConnected(demotegiveplayer))
{
if(demotegiveplayer != INVALID_PLAYER_ID)
{
new demotefrakid[MAX_PLAYERS];
demotefrakid[demotegiveplayer] = PlayerInfo[demotegiveplayer][pMember];
if(demotefrakid[demotegiveplayer] == 1 || demotefrakid[demotegiveplayer] == 8 || demotefrakid[demotegiveplayer] == 12 || demotefrakid[demotegiveplayer] == 3 || demotefrakid[demotegiveplayer] == 19) Тут можно вставить свои фракции иды фракций
{
new grini;
PlayerInfo[demotegiveplayer][pRank] --;
grini = PlayerInfo[demotegiveplayer][pRank];
format(string,sizeof(string),"Вы понизил %s до %d ранга",demotegiveplayer,grini);
SendClientMessage(playerid,COLOR_GRAD2,string);
SendClientMessage(demotegiveplayer,COLOR_GRAD2,"Агент FBI понизил вас на 1 ранг");
if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[demotegiveplayer][pMember] == 10 || PlayerInfo[demotegiveplayer][pMember] == 1 && PlayerInfo[demotegiveplayer][pRank] < 1)
{
PlayerInfo[demotegiveplayer][pMember] = 19;
PlayerInfo[demotegiveplayer][pRank] = 4;
PlayerInfo[demotegiveplayer][pChar] = 287;
SetPlayerSkin(demotegiveplayer, 287);
SpawnPlayer(demotegiveplayer);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[demotegiveplayer][pMember] == 19 && PlayerInfo[demotegiveplayer][pRank] < 1)
{
PlayerInfo[demotegiveplayer][pMember] = 0;
PlayerInfo[demotegiveplayer][pRank] = 0;
SpawnPlayer(demotegiveplayer);
return 1;
}
}
else { SendClientMessage(playerid, COLOR_GRAD2, "Этот человек не состоит в Армии/Полиции"); return 1; }
}
}
else { SendClientMessage(playerid, COLOR_GRAD2, " Человек не найден "); return 1;}
}
return 1;
}
PHP:
public IsAFbi(playerid)
{
if(IsPlayerConnected(playerid))
{
new leader = PlayerInfo[playerid][pLeader];
new member = PlayerInfo[playerid][pMember];
if(member==2)
{
return 1;
}
else if(leader==2)
{
return 1;
}
}
return 0;
}
Последнее редактирование: