PDA

Просмотр полной версии : [Вопрос] CMD:invite |



[S]Mile
27.04.2016, 23:27
Всем здравствуйте пользователи Pro-Pawn.
Столкнулся с такой проблемой что пишу ид игрока определенного игрока а он инвайтит вообще другой ид...Не тот который я ввел.
Не понимаю что за бред.


CMD:invite(playerid, params[])
{
new ttext[30];
if(!CanInvitePlayer(playerid)) return
SCM(playerid, COLOR_WHITE, !"Ошибка: Вам недоступна эта команда.");
if(isnull(params)) return
SCM(playerid, COLOR_GRAD2, !"Введите: /invite [id]");
new targetid = strval(params);
if(IsPlayerInAnyVehicle(targetid) return
SCM(playerid, COLOR_WHITE, !"Игрок в машине!");
if (PlayerInfo[targetid][pMRInections] > 0 || PlayerInfo[targetid][pLRInections] > 0) return
SCM(playerid, COLOR_WHITE, !"Игрок уже где то состоит");
if(PlayerInfo[targetid][pWarns] >= 1) return
SCM(playerid, COLOR_GRAD1, !"У игрока Warn.");
if(!IsPlayerConnected(targetid) || targetid == INVALID_PLAYER_ID) return true;
if(!ProxDetectorS(10.0, playerid, targetid)) return
SCM(playerid, COLOR_WHITE, !"Игрок, не рядом с вами !");
ttext=GetMember(PlayerInfo[playerid][pMRInections]);
new invite_string[264];
format(invite_string,sizeof(invite_string),"{FFFFFF}%s предлагает Вам вступить в организацию: {FFD300}%s{FFFFFF}\n\nНажмите Да для согласия.\nНажмите Нет для отказа!",PlayerInfo[playerid][pNames],ttext);
SPD(targetid, 1147, DIALOG_STYLE_MSGBOX, !"{FFD300}Предложение",invite_string,!"Да",!"Нет");
SCMF(playerid, -1, "Вы предложили {FFD300}%s{FFFFFF} вступить в организацию {FFD300}%s",PlayerInfo[targetid][pNames],ttext);
SetPVarInt(targetid,"Invite",1);
SetPVarInt(targetid,"Player",playerid);
return true;
}


case 1147:
{
if(!response)
{
SCM(playerid, -1, "Вы отказались от предложения");
SCM(GetPVarInt(playerid, "Player"),-1,"Игрок отказался от предложения");
DeletePVar(playerid, "Player");
DeletePVar(playerid, "invite");
}
SetPVarInt(playerid,"change",playerid);
new acter = GetPVarInt(playerid,"Player");
GetFrak(acter,PlayerInfo[acter][pMRInections]);
SCM(acter, -1, "Человек принял Ваше предложение, выберите скин");
SCM(playerid, -1, "Подождите пока Вам выберут скин!");
SetPVarInt(acter,"invite",playerid);
DeletePVar(playerid,"Invite");
DeletePVar(playerid,"Player");
SetPVarInt(playerid, "IE", 1); // Поставление
return true;
}


stock ITD(playerid)
{
new params[2];
if(GetPVarInt(playerid, "IE") == 0) return true;
params[0] = GetPVarInt(playerid,"invite");
PlayerInfo[params[0]][pRKInections] = 1;
PlayerInfo[params[0]][pMRInections] = PlayerInfo[playerid][pMRInections];
SetPlayerToTeamColor(params[0]);
gov[params[0]] = 600;
new ttext[30], stringer[128];
ttext=GetMember(PlayerInfo[playerid][pMRInections]);
format(stringer,sizeof(stringer),"%s был принят во фракцию %s",PlayerInfo[params[0]][pNames],ttext);
SCM(playerid,COLOR_BLUE,stringer);
format(stringer,sizeof(stringer),"Вы были приняты во фракцию %s",ttext);
SCM(params[0],COLOR_BLUE,stringer);
DeletePVar(playerid,"Player");
DeletePVar(playerid,"invite");
DeletePVar(playerid, "IE"); //Удаление
return true;
}
stock end(playerid)
{
MTD(playerid);
ITD(playerid);
End(playerid);
}
stock End(playerid)
{
new smena_format[128];
//params[0] = GetPVarInt(playerid,"change");
for(new x; x < 10; x++) PlayerTextDrawSetPreviewModel(playerid,CHS[playerid][x], 99999);
for(new x; x < 10; x++) PlayerTextDrawHide(playerid, CHS[playerid][x]);
for(new x; x < 2; x++) TextDrawHideForPlayer(playerid, CHSS[x]);
new str_ = GetPVarInt(playerid,"Player");
format(smena_format,sizeof(smena_format),"%s Выдал Вам новую фракционную одежду",PlayerInfo[playerid][pNames]);
SCM(str_,COLOR_BLUE,smena_format);
format(smena_format,sizeof(smena_format),"%s получил новую фракционную одежду",PlayerInfo[str_][pNames]);
SCM(playerid,COLOR_BLUE,smena_format);
skinchs[playerid] = 0;
DeletePVar(playerid,"change");
CancelSelectTextDraw(playerid);
DeletePVar(playerid,"change");
DeletePVar(playerid,"level");
DeletePVar(playerid,"Player");
DeletePVar(playerid,"invite");
}

BadPawn
28.04.2016, 04:50
Это:

if(isnull(params)) return
SCM(playerid, COLOR_GRAD2, !"Введите: /invite [id]");
new targetid = strval(params);
На это:

new targetid;
if(sscanf(params, "u", targetid)) return
SCM(playerid, COLOR_GRAD2, !"Введите: /invite [id]");

не помню, как используется isnull params, однако заменив код хуже не будет.

- - - Добавлено - - -

Стоп. Диалоговое окно выводится по правильному иду в cmd invite?