PDA

Просмотр полной версии : [Вопрос] Команда /invite



xxlex
25.09.2016, 00:01
Когда пытаюсь принять игрока во фракцию то принимаю себя, а его не могу. Что не так в коде?

CMD:invite(playerid, params[])
{
if(Player[playerid][pRank] < 13) return
SCM(playerid, COLOR_SALAT, "Вы не наделены правами использовать данную команду!");
if(sscanf(params, "i", params[0])) return
SCM(playerid, COLOR_WHITE, "Введите: /invite [id]");
if(!IsPlayerConnected(params[0])) return
SCM(playerid, COLOR_SALAT, "Игрок оффлайн");
if(Login[params[0]] == false) return
SCM(playerid, COLOR_SALAT, "Игрок не авторизован!");
if(params[0] == playerid) return
SCM(playerid, COLOR_GREY, "Вы указали свой ID!");
if(Player[playerid][pMember] > 1) return
SCM(playerid, COLOR_GREY, "Игрок уже состоит во фракции!");
if(RadiusPlayer(3.0, playerid, params[0]))
{
switch(Player[playerid][pMember])
{
case 1: invite_check[params[0]] = 1;
}
static const fmt_str[] = "{FFFF00}%s {FFFFFF}игрок пригласил вас во фракцию {FFFF00}%s\n{FFFFFF}Вы желаете вступить во фракцию {FFFF00}%s";
new string[sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+5-2+5];
format(string, sizeof(string), fmt_str, GN(playerid), fraction_name[Player[playerid][pMember]], fraction_name[Player[playerid][pMember]]);
SPD(playerid, 64, DSM, "Приглашение", string, "Да", "Нет");
static const fmt_str_2[] = "Вы пригласили игрока {FFFF00}%s {FFFFFF}во фракцию {FFFF00}%s";
new string_2[sizeof(fmt_str_2)-2+MAX_PLAYER_NAME-2+5];
format(string_2, sizeof(string_2), fmt_str_2, GN(playerid), fraction_name[Player[playerid][pMember]]);
SCM(playerid, COLOR_WHITE, string);
invite_id[params[0]] = playerid;
}
else SCM(playerid, COLOR_GREY, "Игрок далеко от вас!");

return true;
}
PHP код:

case 64:
{
if(response)
{
switch(invite_check[playerid])
{
case 1:
{
if(Player[playerid][pSex] == 1) Player[playerid][pModel] = 280;
else Player[playerid][pModel] = 306;
}
}
Player[playerid][pMember] = invite_check[playerid];
Player[playerid][pRank] = 1;
SetPlayerSkin(playerid, Player[playerid][pModel]);
Clist(playerid);
SCM(invite_id[playerid], COLOR_GREEN, "Игрок согласился");
static fmt_str[] = "%s принял во фракцию %s игрока %s";;
format(string, sizeof(string), fmt_str, GN(invite_id[playerid]), fraction_name[Player[invite_id[playerid]][pMember]], GN(playerid));
MemberChat(Player[invite_id[playerid]][pMember], COLOR_WHITE, string);
}
else SCM(invite_id[playerid], COLOR_RED, "Игрок отказался!");
}
}
return true;
}

Pa4enka
25.09.2016, 00:24
invite_id[playerid] = params[0];
Так не?

xxlex
25.09.2016, 01:03
В самом начале или где это писать?

Saibot
25.09.2016, 03:13
SPD(playerid, 64, DSM, "Приглашение", string, "Да", "Нет");
Замените на

SPD(params[0], 64, DSM, "Приглашение", string, "Да", "Нет");
Вы указали идентификатор игрока который вводит, эту команду.