CMD /INVITE CRASHES SERVER, SERVER_LOG,PLEASE HELP ME. -
georgian1 - 12.02.2015
hello guys command /invite crashes my server there is logs / cmd
Код:
CMD:invite(playerid, params[])
{
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, -1, "{CECFCE}» Использование: /invite [id игрока]");
if(pTemp[playerid][pInviteInvite] >= 0) return SendClientMessage(playerid,CWHITE,"» Вы уже отправили предложение. Введите /cancel чтобы отменить.");
if(pTemp[playerid][pTempLeader]) return SendClientMessage(playerid, COLOR_GREY, "Вы временный лидер, вы не можете принимать");
if(!pData[playerid][pFraction]) return SendClientMessage(playerid,CWHITE,"» Вы не состоите в организации");
if(!IsAbleToHire(playerid)) return SendClientMessage(playerid,CWHITE,"» В организацию может принимать только лидер");
new fractionid = pData[playerid][pFraction]-1;
if(pData[playerid][pFraction] == 11 && !pData[playerid][pSubfraction]) return SendClientMessage(playerid,CWHITE,"» Администрации президента не доступно");
if(pData[params[0]][pAdmin]) return SendClientMessage(playerid,CWHITE,"» Данного игрока нельзя пригласить в организацию");
if(pData[params[0]][pLevel] < 2) return SendClientMessage(playerid,CWHITE,"» У игрока нет 2 уровня");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid,CWHITE,"» Неверный ID игрока");
else if(pData[params[0]][pFraction]) return SendClientMessage(playerid,CWHITE,"» Игрок уже состоит в организации");
if(pData[params[0]][pWarnc]) return SendClientMessage(playerid,CWHITE,"» У игрока есть варн");
if(GetPlayerDistanceToPlayer(playerid,params[0]) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(params[0])) return SendClientMessage(playerid,CWHITE,"» Вы далеко друг от друга");
mes = "";
f(mes, "» Вы предложили {FFCD00}%s[%d] {33AAFF}вступить в вашу организацию",pData[params[0]][pNickname],params[0]);
SendClientMessage(playerid,COLOR_GREEN,mes);
new bool:dostupp = false;
switch(pData[playerid][pFraction])
{
case 2: dostupp = true;
case 8..11: dostupp = true;
default: dostupp = false;
}
if(dostupp == true)
{
new frid = GetSubfractionID(fractionid);
new subid = pData[playerid][pSubfraction] - 1;
SendMes(params[0],COLOR_GREEN,"{FFCD00}%s {33AAFF}предлагает Вам вступить в организацию {FFCD00}\"%s\", {33AAFF}подразделение {FFCD00}\"%s\"",pData[playerid][pNickname],gFractionName[fractionid],gSubfractionName[frid][subid]);
}
else SendMes(params[0],COLOR_GREEN,"{FFCD00}%s {33AAFF}предлагает Вам вступить в организацию {FFCD00}\"%s\"",pData[playerid][pNickname],gFractionName[fractionid]);
SendClientMessage(params[0],COLOR_GREEN, "» Нажмите {FFFFFF}[ Y ] {33AAFF}чтобы принять предложение или {FF5030}[ N ] {33AAFF}для отказа");
pTemp[playerid][pInviteInvite] = params[0];
pTemp[params[0]][pOfferFraction1] = params[0];
pTemp[params[0]][pOfferFraction] = playerid;
pTemp[params[0]][pOfferFractionid] = fractionid;
SetPVarInt(playerid,"actinplayerid",params[0]);
return 1;
}
so there is server log
[debug] Server crashed while executing reomgg.amx
[02:53:33] [debug] AMX backtrace:
[02:53:33] [debug] #0 00337948 in SendMes (playerid=1, color=866844671, fstring[]=@0x0035c954 "{FFCD00}%s {33AAFF}Gtavazobs O...", ... <2 variable arguments>) at reomgg.pwn:42263
[02:53:33] [debug] #1 00215810 in public _invite (playerid=0, params[]=@0x0041aebc "") at reomgg.pwn:21607
[02:53:33] [debug] #2 00000008 in ?? () at \pawno\include\float.inc:108
[02:53:33] [debug] Native backtrace:
Re: CMD /INVITE CRASHES SERVER, SERVER_LOG,PLEASE HELP ME. -
nGen.SoNNy - 12.02.2015
Show us SendMes function
Re: CMD /INVITE CRASHES SERVER, SERVER_LOG,PLEASE HELP ME. -
georgian1 - 12.02.2015
there is it
Код:
stock SendMes(playerid, color, fstring[], {Float, _}:...)
{
static const
STATIC_ARGS = 3;
new
n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;
if (n)
{
new
message[128],
arg_start,
arg_end;
#emit CONST.alt fstring
#emit LCTRL 5
#emit ADD
#emit STOR.S.pri arg_start
#emit LOAD.S.alt n
#emit ADD
#emit STOR.S.pri arg_end
do
{
#emit LOAD.I
#emit PUSH.pri
arg_end -= BYTES_PER_CELL;
#emit LOAD.S.pri arg_end
}
while (arg_end > arg_start);
// Push the static format parameters.
#emit PUSH.S fstring
#emit PUSH.C 128
#emit PUSH.ADR message
n += BYTES_PER_CELL * 3;
#emit PUSH.S n
#emit SYSREQ.C format
n += BYTES_PER_CELL;
#emit LCTRL 4
#emit LOAD.S.alt n
#emit ADD
#emit SCTRL 4
return SendClientMessage(playerid, color, message);
}
else
{
return SendClientMessage(playerid, color, fstring);
}
}
Re: CMD /INVITE CRASHES SERVER, SERVER_LOG,PLEASE HELP ME. -
georgian1 - 13.02.2015
BUMP :/