All pastes #1787916 Raw Edit

SendClientMessageFormatted

public cpp v1 · immutable
#1787916 ·published 2010-02-06 10:06 UTC
rendered paste body
stock SendClientMessageFormatted(playerid, color, fstring[], {Float, _}:...){	new n = numargs() * 4;	if (n == 3 * 4)    {		return SendClientMessage(playerid, color, fstring);	}    else    {		new message[128];		new arg_start;		new arg_end;		new i = 0;		#emit CONST.pri   fstring		#emit ADD.C       0x4		#emit STOR.S.pri  arg_start // first parameters's offset		#emit LOAD.S.pri  n		#emit ADD.C       0x8		#emit STOR.S.pri  arg_end   // last parameters's offset		// pushing variable arguments		for (i = arg_end; i >= arg_start; i -= 4)		{			#emit LCTRL       5			#emit LOAD.S.alt  i			#emit ADD			#emit LOAD.I			#emit PUSH.pri		}		// pushing normal arguments		#emit PUSH.S    fstring  // format string		#emit PUSH.C    128      // sizeof(message)		#emit PUSH.ADR  message  // the string which format() will write in		#emit PUSH.S    n        // number of arguments * 4, always must be passed for natives		#emit SYSREQ.C  format		// clearing the stack		i = n / 4 + 1;		while (--i >= 0)		{			#emit STACK 0x4		}		return SendClientMessage(playerid, color, message);    }}