PDA

Просмотр полной версии : [Вопрос] Проблема с фракцией



Ne_nub
10.07.2017, 21:27
Доброго времени суток. Возникла проблема. Создал фракцию, всё сделал, но когда пишешь /makeleader и выбираешь данную фракцию, то ничего не происходит, хотя должно быть меню с выбором скина.


CMD:setleader(playerid, params[])
{
IsAdmin(playerid);
else if(!gAdminLogged[playerid]) return SendClientMessage(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
else if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /setleader [id игрока]");
else if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
else if(!gPlayerLogged[params[0]]) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
else if(IsPlayerInAnyVehicle(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Игрок не должен находиться в транспорте!");
else if(pInfo[params[0]][pLevel] < 3) return SendClientMessage(playerid, COLOR_GREY, "У игрока нет 3 уровня!");
else if(pInfo[playerid][pAdmin] != ADM_FOUNDER && pInfo[params[0]][pAdmin] == ADM_FOUNDER) return SendClientMessage(playerid, COLOR_GREY, "Администратора нельзя ставить на пост лидера!");
else if(pInfo[params[0]][pTempLeader]) return SendClientMessage(playerid, COLOR_GREY, "Сначала снимите с себя права временного лидера!");
if(pInfo[params[0]][pLeader])
{
LeaveFractionPlayer(params[0]);
SendMes(playerid, COLOR_BLUE, "Вы сняли %s с должности лидера организации",GetName(params[0]));
SendMes(params[0], COLOR_WHITE, "Администратор %s снял вас с должности лидера организации", GetName(playerid));
SendClientMessage(params[0], COLOR_GREEN, "Местом спавна автоматически назначен вокзал. Изменить место спавна /setspawn");
}
else
{
if(pInfo[params[0]][pLeader] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок лидер другой организации!");
if(pInfo[params[0]][pMember] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок не состоит в вашей организации!");
stringer[0] = EOS;
for(new i = 1; i < MAX_FRACTIONS; i++) format(stringer, 1000, "%s№%i - %s\n", stringer, i, Fraction_Name[i]);
SetPVarInt(playerid, "actplayerid", params[0]);
ShowPlayerDialog(playerid, dFracMenu, 2, "Выберите организацию", stringer, "Принять", "Отмена");
}
return 1;
}



case dFracMenu:
{
if(!response) return DeletePVar(playerid, "actplayerid");
SetPVarInt(playerid, "actfraction", listitem+1);
new fractionid = GetPVarInt(playerid, "actfraction");
if(fractionid >= 13 && fractionid <= 14)
{
DeletePVar(playerid, "actplayerid");
DeletePVar(playerid, "actfraction");
return 1;
}
new mes[128];
for(new i; i < 9; i++)
{
new skinid = Fraction_Skin[fractionid][i];
if(!skinid) break;
if(!i) format(mes, sizeof(mes), "Скин %d [%d]", i+1, skinid);
else format(mes, sizeof(mes), "%s\nСкин %d [%d]", mes, i+1, skinid);
}
ShowPlayerDialog(playerid, dLeaderSkin, 2, "{FFCC00}Выбор скина", mes, "Принять", "Отмена");
}



static const stock Fraction_Skin[MAX_FRACTIONS][9] = {
{0,0,0,0,0,0,0,0,0}, // Гражданский
{17,147,59,187,164,165,141,240,150}, // Мэрия LS
{280,284,282,283,266,285,265,211,0}, // LSPD
{280,284,282,283,266,285,265,211,0}, // SFPD
{163,164,165,166,211,295,285,286,0}, // FBI
{274,275,276,70,148,150,71,295,0}, // Больница LS
{11,189,171,172,0,0,0,0,0}, // Автошкола
{105,106,107,195,269,270,271,0,0}, // Grove Street
{102,103,104,195,0,0,0,0,0}, // The Ballas
{173,174,175,226,273,0,0,0,0}, // The Rifa
{193,114,115,116,292,0,0,0,0}, // Varios Los Aztecas
{108,109,110,56,0,0,0,0,0}, // Los Santos Vagos
{287,191,61,255,295,0,0,0,0}, // Зона 51
{287,191,61,255,295,0,0,0,0}, // ВОТ ЭТА ФРАКЦИЯ
{0,0,0,0,0,0,0,0,0}, //
{223,124,127,290,113,117,98,93,0}, // LCN
{117,118,120,122,123,294,169,263,0}, // Yakuza
{46,111,112,126,125,272,233,43,0}, // RM
{187,186,170,188,20,141,150,219,0}, // LS News
{187,186,170,188,20,141,150,219,0}, // SF News
{187,186,170,188,20,141,150,219,0}, // LV News
{280,284,282,283,266,285,265,211,0}, // LVPD
{274,275,276,70,148,150,71,295,0}, // Больница SF
{274,275,276,70,148,150,71,295,0}, // Больница LV
{17,59,187,164,165,141,240,150,0}, // Мэрия SF
{17,59,187,164,165,141,240,150,0} // Мэрия LV
};

DeimoS
10.07.2017, 23:02
crashdetect говорит что?

Ne_nub
11.07.2017, 00:31
Ничего не говорит.

DeimoS
11.07.2017, 13:20
Ну тогда логируй значение, которое приходит

case dFracMenu:
{
if(!response) return DeletePVar(playerid, "actplayerid");
SetPVarInt(playerid, "actfraction", listitem+1);
new fractionid = GetPVarInt(playerid, "actfraction");
printf("\nfractionid = %d\n", fractionid);
if(fractionid >= 13 && fractionid <= 14)
{
DeletePVar(playerid, "actplayerid");
DeletePVar(playerid, "actfraction");
return 1;
}
new mes[128];
for(new i; i < 9; i++)
{
new skinid = Fraction_Skin[fractionid][i];
if(!skinid) break;
if(!i) format(mes, sizeof(mes), "Скин %d [%d]", i+1, skinid);
else format(mes, sizeof(mes), "%s\nСкин %d [%d]", mes, i+1, skinid);
}
ShowPlayerDialog(playerid, dLeaderSkin, 2, "{FFCC00}Выбор скина", mes, "Принять", "Отмена");
}

Ne_nub
12.07.2017, 00:35
Пишет


fractionid = 13

DeimoS
12.07.2017, 02:04
Ну так а теперь смотрим код и видим

if(fractionid >= 13 && fractionid <= 14)
{
DeletePVar(playerid, "actplayerid");
DeletePVar(playerid, "actfraction");
return 1;
}

Ne_nub
12.07.2017, 11:27
Тогда как это изменять, если например мне нужно будет закрыть какую-то фракцию ? Вот так ?


if(fractionid == 14 || fractionid == 15)
{
DeletePVar(playerid, "actplayerid");
DeletePVar(playerid, "actfraction");
return 1;
}

BodyanZe
05.08.2017, 22:27
Вы пишите команду /makeleader, но у вас в коде setleader


CMD:setleader(playerid, params[])