23.01.2017, 22:16
try removing the RETURN before SendClientMessageEx , just to see if the crash continue to happen.
it also could be the SendClientMessageEx that cause the crash.
try with SendClientMessageFormatted();
it has the same parameters than SendClientMessageEx so just replace SendClientMessageEx with SendClientMessageFormatted , not the whole line.
it also could be the SendClientMessageEx that cause the crash.
try with SendClientMessageFormatted();
it has the same parameters than SendClientMessageEx so just replace SendClientMessageEx with SendClientMessageFormatted , not the whole line.
Код:
stock SendClientMessageFormatted(playerid, color, fstring[], {Float, _}:...) { static const STATIC_ARGS = 3; new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL; if(n) { new message[344],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); #emit PUSH.S fstring #emit PUSH.C 144 #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 if(playerid == INVALID_PLAYER_ID) { #pragma unused playerid return SendClientMessageToAll(color, message); } else { return SendClientMessage(playerid, color, message); } } else { if(playerid == INVALID_PLAYER_ID) { #pragma unused playerid return SendClientMessageToAll(color, fstring); } else { return SendClientMessage(playerid, color, fstring); } } }