CMD /INVITE CRASHES SERVER, SERVER_LOG,PLEASE HELP ME.
#1

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:
Reply
#2

Show us SendMes function
Reply
#3

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);
	}
}
Reply
#4

BUMP :/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)