Dimarios
Умник
Добрый день, пользователи P-I. Значит у меня такая проблема. Поменял все ID фракций в моде, т.к. там была полная неразбериха, например, банда под 1 ID, полиция сразу же после неё. И тут такая проблема, сначала у меня некорректно работала команда /makeleader, она на диалоге. Потом я поменял её. Теперь значит я даю лидерку Мэрии, которая под 1 ID - всё хорошо. Даю на ФБР - она 2 ID, тоже все хорошо, НО теперь название само в /mm например не ФБР, а следующие, в моём случае LSPD. Если даю лидерку на LSPD, то название будет опять же следующее - SFPD. Вот команда:
Вот тот диалог:
Вот стэк, узнающий имя фракции. Работал нормально до смены ID фракций:
P.s также хочу сказать, что ранги тоже от следующий фракций. Прошу помочь, а то еб*усь уже 2 день.
PHP:
CMD:makeleader(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return true;
if(PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false) return true;
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Введите: /makeleader [id игрока]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, TPLAYEROFFLINE);
if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, COLOR_GREY, TPLAYERNLOGGED);
if(PlayerInfo[params[0]][pLeader] > 0)
{
SetFractionStr(PlayerInfo[params[0]][pLeader], "leader", "None");
strmid(FracInfo[PlayerInfo[params[0]][pLeader]][fLeader],"None",0,strlen("None"),MAX_PLAYER_NAME);
if(PlayerInfo[params[0]][pLeader] == 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок не находиться в организации!");
LeaveFractionPlayer(params[0]);
SendMes(playerid, COLOR_REDD, "Вы сняли %s с должности лидера организации ",sendername(params[0]));
SendMes(params[0], COLOR_BLUE, "Администратор %s снял вас с должности лидера организации", PlayerInfo[playerid][pSendername]);
}
else
{
if(PlayerInfo[params[0]][pLeader] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок лидер другой организации!");
if(PlayerInfo[params[0]][pMember] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок находиться в другой организации!");
SetPVarInt(playerid, "PlayerLeader", params[0]);
ShowPlayerDialog(playerid,D_FRACMENU,DIALOG_STYLE_LIST,"Фракции","[1]Мэрия\n[2]F.B.I\n[3]LSPD\n[4]SFPD\n[5]LVPD\
\n[6]Special Weapon Assault Team\n[7]Армия авианосец\n[8]Зона 51\n[9]Минздрав LS\n[10]Минздрав SF\n[11]Минздрав LV\n[12]Инструкторы\
\n[13]Grove Street\n[14]Front Yard Ballas\n[15]Varios Los Aztecas\n[16]Los Santos Vagos\n[17]ОПГ The Rifa\n[18]West Side Bloods\n[19]East Side Crips\
\n[20]La Cosa Nostra\n[21]Yakuza\n[22]Russian Mafia\n[23]Casino Caligula\n[24]News Agency","Выбрать","Отмена");
}
return true;
}
PHP:
case D_FRACMENU:
{
new playerd = GetPVarInt(playerid, "PlayerLeader");
if(!response) { DeletePVar(playerid, "PlayerLeader"); return true; }
if(!IsPlayerConnected(playerd)) return SendClientMessage(playerid, COLOR_GREY, TPLAYEROFFLINE);
if(PlayerLogged[playerd] == 0) return SendClientMessage(playerid, COLOR_GREY, TPLAYERNLOGGED);
switch(listitem)
{
case 0:
{
SendMes(playerid, COLOR_ORANGE, "Вы назначили %s руководить организацией: Мэрия",sendername(playerd));
SendMes(playerd, COLOR_BLUE, "Администратор %s назначил вас руководить организацией: Мэрия", PlayerInfo[playerid][pSendername]);
PlayerInfo[playerd][pLeader] = 1;
PlayerInfo[playerd][pMember] = 1;
SelectCharID[playerd] = 1;
strmid(FracInfo[1][fLeader],sendername(playerd),0,strlen(sendername(playerd)),MAX_PLAYER_NAME);
SetFractionStr(1, "leader", sendername(playerd));
}
case 1:
{
SendMes(playerid, COLOR_ORANGE, "Вы назначили %s руководить организацией: FBI",sendername(playerd));
SendMes(playerd, COLOR_BLUE, "Администратор %s назначил вас руководить организацией FBI", PlayerInfo[playerid][pSendername]);
PlayerInfo[playerd][pLeader] = 2;
PlayerInfo[playerd][pMember] = 2;
PlayerInfo[playerd][pRank] = 10;
SelectCharID[playerd] = 2;
strmid(FracInfo[2][fLeader],sendername(playerd),0,strlen(sendername(playerd)),MAX_PLAYER_NAME);
SetFractionStr(2, "leader", sendername(playerd));
}
case 2:
{
SendMes(playerid, COLOR_ORANGE, "Вы назначили %s руководить организацией: LSPD",sendername(playerd));
SendMes(playerd, COLOR_BLUE, "Администратор %s назначил вас руководить организацией LSPD", PlayerInfo[playerid][pSendername]);
PlayerInfo[playerd][pLeader] = 3;
PlayerInfo[playerd][pMember] = 3;
PlayerInfo[playerd][pRank] = 10;
SelectCharID[playerd] = 3;
strmid(FracInfo[3][fLeader],sendername(playerd),0,strlen(sendername(playerd)),MAX_PLAYER_NAME);
SetFractionStr(3, "leader", sendername(playerd));
}
}
PlayerInfo[playerd][pJob] = 0;
SelectCharPlace[playerd] = 1;
ClothesRound[playerd] = 2;
SpawnPlayer(playerd);
DeletePVar(playerid, "PlayerLeader");
SaveAccount(playerd);
}
PHP:
stock GetFracName(playerid)
{
new frackname[32];
new member = PlayerInfo[playerid][pMember];
if(PlayerInfo[playerid][pMember] > 0 || PlayerInfo[playerid][pLeader] > 0)
{
strmid(frackname,FracInfo[member][fName],0,strlen(FracInfo[member][fName]), 128);
}
else frackname = "Нет";
return frackname;
}
