Eliano
Умник
Доброго времени суток.Выкладываю красивую команду /makeleader в диалоге.
Мне она очень понравилась,я бы её взял себе в мод.
* Вырезано из Montano Role Play(Клик)
Добавляем в OnPlayerCommandTextМне она очень понравилась,я бы её взял себе в мод.
* Вырезано из Montano Role Play(Клик)
PHP:
CMD:makeleader(playerid, params[])
{
if (DostupForAdministration[playerid] == false || PlayerInfo[playerid][pAdmin] < 6) return 1;
new giveplayerid;
if (sscanf(params,"d",giveplayerid)) return SendClientMessage(playerid, -1, "Введите: /makeleader [ид]");
GetPlayerName(playerid, sn, sizeof(sn));
GetPlayerName(giveplayerid, gp, sizeof(gp));
if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid,-1,"Этого игрока нет на сервере!");
if (PlayerInfo[giveplayerid][pLeader] > 0)
{
format(nsa, sizeof(nsa), "[A] Администратор %s снял игрока %s с лидерства.",sn, gp);
SCMA(COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "Администратор %s снял вас с должности руководителя организации.",sn);
SendClientMessage(giveplayerid,COLOR_ORANGE,nsa);
SendClientMessage(giveplayerid,-1,"Если вы не справились с лидерством, то вы больше никогда не сможете встать на пост вновь.");
PlayerInfo[giveplayerid][pMember] = 0;
PlayerInfo[giveplayerid][pLeader] = 0;
UpdatePlayerTableInt(giveplayerid, "Leader", PlayerInfo[giveplayerid][pLeader]);
PlayerInfo[giveplayerid][pRang] = 0;
PlayerInfo[giveplayerid][pSkin] = 0;
PlayerInfo[giveplayerid][pHourFractions] = 0;
SetPlayerSkin(giveplayerid, PlayerInfo[giveplayerid][pChar]);
DisablePlayerCheckpoint(giveplayerid);
LoadMaterialsFraction[giveplayerid] = 0;
LoadMaterialsArmy[giveplayerid] = 0;
RemovePlayerAttachedObject(giveplayerid, 1);
PlayerTextDrawHide(giveplayerid, GangWar[giveplayerid]);
TextDrawHideForPlayer(giveplayerid,TextBizzWar);
SetPlayerToTeamColor(giveplayerid);
ResetPlayerWeapons(giveplayerid);
return 1;
}
else
{
new string[55];
format(string, sizeof(string),"Будущий руководитель: {FF0000}%s", gp);
ShowPlayerDialog(playerid,153,DIALOG_STYLE_LIST,string,"1. Мэрия\n2. ФБР\n3. Полиция Лос Сантос\n4. Полиция Сан Фиерро\n5. Полиция Лас Вентурас\n6. Министерство Здравоохранения\n7. Армия Зона 51\n8. Армия Авианосец\n9. San Andreas News\n10. La Cosa Nostra\n11. Yakuza\n12. Русская Мафия\n13. Grove Street Gang\n14. The Ballas Gang\n15. Varios Los Aztecas Gang\n16. Los Santos Vagos Gang\n17. The Rifa Gang\n18. Инструкторы\n19. Casino Bellagio","Выбор","Выход");
SetPVarInt(playerid, "PlayerMakeLeader", giveplayerid);
return 1;
}
}
PHP:
case 153:
{
if (!response) return 1;
new leader = GetPVarInt(playerid, "PlayerMakeLeader");
GetPlayerName(playerid, sn, sizeof(sn));
GetPlayerName(leader, gp, sizeof(gp));
switch(listitem)
{
case 0: // Номер фракции "Правительство"
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Мэрия", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa); // Отправляем сообщение тому,кто назначает
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Мэрия",sn, gp);
SCMA(COLOR_ORANGE, nsa); // SCMA - SendClientMessageAdmin , отправляем сообщение админам
PlayerInfo[leader][pMember] = 1;
PlayerInfo[leader][pLeader] = 1; // Номер лидерства
PlayerInfo[leader][pRang] = 7; // Номер ранга
}
case 1:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: ФБР", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: ФБР",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 2;
PlayerInfo[leader][pLeader] = 2;
PlayerInfo[leader][pRang] = 10;
}
case 2:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Полиция Лос-Сантос", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Полиции ЛС",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 3;
PlayerInfo[leader][pLeader] = 3;
PlayerInfo[leader][pRang] = 15;
}
case 3:
{
format(nsa, sizeof(nsa), "Администратор %s назначил вас лидером организации: Полиция Сан-Фиерро", sn, gp);
SendClientMessage(leader, -1, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Полиции СФ",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 4;
PlayerInfo[leader][pLeader] = 4;
PlayerInfo[leader][pRang] = 15;
}
case 4:
{
format(nsa, sizeof(nsa), "Администратор %s назначил вас лидером организации: Полиция Лас-Вентурас", sn, gp);
SendClientMessage(leader, -1, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Полиции ",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 5;
PlayerInfo[leader][pLeader] = 5;
PlayerInfo[leader][pRang] = 15;
}
case 5:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: МЧС", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: МЧС",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 13;
PlayerInfo[leader][pLeader] = 13;
PlayerInfo[leader][pRang] = 10;
}
case 6:
{
format(nsa, sizeof(nsa), "Администратор %s назначил вас лидером организации: Армия 'Зона 51'", sn, gp);
SendClientMessage(leader, -1, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Армии 'Зона 51'",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 7;
PlayerInfo[leader][pLeader] = 7;
PlayerInfo[leader][pRang] = 16;
}
case 7:
{
format(nsa, sizeof(nsa), "Администратор %s назначил вас лидером организации: Армии 'Авианосец'", sn, gp);
SendClientMessage(leader, -1, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Армии 'Авианосец'",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 8;
PlayerInfo[leader][pLeader] = 8;
PlayerInfo[leader][pRang] = 16;
}
case 8:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: San Andreas News", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: San Andreas News",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 9;
PlayerInfo[leader][pLeader] = 9;
PlayerInfo[leader][pRang] = 10;
}
case 9:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: La Cosa Nostra", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: La Cosa Nostra",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 10;
PlayerInfo[leader][pLeader] = 10;
PlayerInfo[leader][pRang] = 10;
}
case 10:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Yakuza", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Yakuza",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 11;
PlayerInfo[leader][pLeader] = 11;
PlayerInfo[leader][pRang] = 10;
}
case 11:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Russian Mafia", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Russian Mafia",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 12;
PlayerInfo[leader][pLeader] = 12;
PlayerInfo[leader][pRang] = 10;
}
case 12:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Grove Street Gang", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Grove Street Gang",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 15;
PlayerInfo[leader][pLeader] = 15;
PlayerInfo[leader][pRang] = 10;
}
case 13:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: The Ballas Gang", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: The Ballas Gang",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 16;
PlayerInfo[leader][pLeader] = 16;
PlayerInfo[leader][pRang] = 10;
}
case 14:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Varios Los Aztecas Gang", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Varios Los Aztecas Gang",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 17;
PlayerInfo[leader][pLeader] = 17;
PlayerInfo[leader][pRang] = 10;
}
case 15:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Los Santos Vagos Gang", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Los Santos Vagos Gang",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 18;
PlayerInfo[leader][pLeader] = 18;
PlayerInfo[leader][pRang] = 10;
}
case 16:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: The Rifa Gang", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: The Rifa Gang",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 19;
PlayerInfo[leader][pLeader] = 19;
PlayerInfo[leader][pRang] = 10;
}
case 17:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Инструкторы", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Инструкторы",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 14;
PlayerInfo[leader][pLeader] = 14;
PlayerInfo[leader][pRang] = 10;
}
case 18:
{
format(nsa, sizeof(nsa), "Администратор %s назначил Вас лидером организации: Casino Bellagio", sn, gp);
SendClientMessage(leader, COLOR_ORANGE, nsa);
format(nsa, sizeof(nsa), "[A] Администратор %s назначил %s лидером организации: Casino Bellagio",sn, gp);
SCMA(COLOR_ORANGE, nsa);
PlayerInfo[leader][pMember] = 6;
PlayerInfo[leader][pLeader] = 6;
PlayerInfo[leader][pRang] = 3;
}
}
if (PlayerInfo[leader][pMember] != 6)
{
switch(PlayerInfo[leader][pSex])
{
case 0:
{
SetPlayerSkin(leader, InviteFracSkin[PlayerInfo[leader][pMember]][0]);
PlayerInfo[leader][pSkin] = InviteFracSkin[PlayerInfo[leader][pMember]][0];
}
case 1:
{
SetPlayerSkin(leader, InviteFracSkin[PlayerInfo[leader][pMember]][1]);
PlayerInfo[leader][pSkin] = InviteFracSkin[PlayerInfo[leader][pMember]][1];
}
}
}
UpdatePlayerTableInt(leader, "Leader", PlayerInfo[leader][pLeader]);
PlayerInfo[leader][pJob] = 0;
SetPlayerToTeamColor(leader);
SaveAccount(leader);
DelPV(playerid, "PlayerMakeLeader");
ResetPlayerWeapons(leader);
return 1;
}
Скриншот:
* Работа не моя!Вырезано из другого мода.Мне понравилось,думаю,вам тоже понравится.
Вариант от Twixxx:
PHP:
const
MAX_FRACTIONS = 18,
MAX_FRACTION_NAME_LENGTH = 20;
static const fraction_name[MAX_FRACTIONS][MAX_FRACTION_NAME_LENGTH] =
{
{"None"},
{"Government"},
{"Police Departament"},
{"FBI"},
{"Army"},
{"Hospital"},
{"Licensers"},
{"News"},
{"Hitmans Agency"},
{"La Cosa Nostra"},
{"Yakuza"},
{"Russian Mafia"},
{"Grove Street"},
{"Ballas Gang"},
{"Vagos Gang"},
{"El Coronos"},
{"The Rifa Gang"},
{"Bikers"}
};
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(listitem)
{
case 1488:
{
if(!response)
return 1;
new
target = GetPVarInt(playerid, "makeleader_target");
static const
fmt_player[] = "Вы назначили %s[%d] лидером организации '%s'.",
fmt_target[] = "Администратор %s[%d] назначил Вас лидером организации '%s'.";
new
string[sizeof(fmt_target) + (-2+MAX_PLAYER_NAME) + (-2+5) + (-2+MAX_FRACTION_NAME_LENGTH)];
format(string, sizeof(string), fmt_player, pInfo[target][pName], target, fraction_name[listitem + 1]);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), fmt_target, pInfo[playerid][pName], playerid, fraction_name[listitem + 1]);
SendClientMessage(target, -1, string);
// Устанавливаем значения для переменных (pInfo)
}
}
return 1;
}
CMD:makeleader(playerid, params[])
{
extract params -> new player:target; else
return SendClientMessage(playerid, -1, !"Используйте: /makeleader [ID игрока/часть NickName]");
if(target == INVALID_PLAYER_ID)
return SendClientMessage(playerid, -1, !"Указанный игрок не подключён к серверу.");
if(pInfo[target][pFraction] != 0)
return SendClientMessage(playerid, -1, !"Указанный игрок уже состоит в организации.");
static const
fmt_dlg_header[] = "Права лидера: %s[%d]",
fmt_dlg[] = "%s%s\n";
new
header_string[sizeof(fmt_dlg_header) + (-2+MAX_PLAYER_NAME) + (-2+5)],
dialog_string[(sizeof(fmt_dlg) + (-2+MAX_FRACTION_NAME_LENGTH))*MAX_FRACTIONS];
format(header_string, sizeof(header_string), fmt_dlg_header, pInfo[target][pName], target);
for(new i = 1; i < MAX_FRACTIONS; i++)
format(dialog_string, sizeof(dialog_string), fmt_dlg, dialog_string, fraction_name[i]);
ShowPlayerDialog(playerid, 1488, DIALOG_STYLE_LIST, header_string, dialog_string, "Выбрать", "Отмена");
SetPVarInt(playerid, "makeleader_target", target);
return 1;
}
Последнее редактирование модератором:
