#if !defined FALSE
stock bool:FALSE = false;
#endif
#define FormatMessageToAll(%0,%1,%2,%3) do { format(string, %1, (%2), %3); SendClientMessageToAll((%0), string); } while(FALSE)
#define MAX_STRING (3000)
new string[MAX_STRING];
FormatMessageToAll(-1, 4, "tes%s", "t");
SendFormatMessage(const iPlayer, const iColor, const szFormat[], { Float, _ }: ...)
{
new iArgs = (numargs() - 3) << 2;
if(iArgs)
{
static s_szBuf[144], s_iAddr1, s_iAddr2;
#emit ADDR.PRI szFormat
#emit STOR.PRI s_iAddr1
for(s_iAddr2 = s_iAddr1 + iArgs, iArgs += 12; s_iAddr2 != s_iAddr1; s_iAddr2 -= 4)
{
#emit LOAD.PRI s_iAddr2
#emit LOAD.I
#emit PUSH.PRI
}
#emit CONST.PRI s_szBuf
#emit PUSH.S szFormat
#emit PUSH.C 144
#emit PUSH.PRI
#emit PUSH.S iArgs
#emit SYSREQ.C format
#emit LCTRL 4
#emit LOAD.S.ALT iArgs
#emit ADD.C 4
#emit ADD
#emit SCTRL 4
return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, s_szBuf) : SendClientMessageToAll(iColor, s_szBuf);
}
return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, szFormat) : SendClientMessageToAll(iColor, szFormat);
}
SendFormatMessage(-1, -1, "tes%s", "t");
****** method: 122ms RyDeR` method: 142ms
#include <a_samp>
#define FILTERSCRIPT
#if !defined FALSE
stock bool:FALSE = false;
#endif
#define FormatMessageToAll(%0,%1,%2,%3) do { format(string, %1, (%2), %3); SendClientMessageToAll((%0), string); } while(FALSE)
#define MAX_STRING (3000)
new string[MAX_STRING];
public OnFilterScriptInit()
{
print("-> OnGameModeInit()");
new tick = GetTickCount();
for(new i = 0; i < 100000; i++)
{
FormatMessageToAll(-1, 4, "tes%s", "t");
}
printf("****** method: %dms", GetTickCount() - tick);
tick = GetTickCount();
for(new i = 0; i < 100000; i++)
{
SendFormatMessage(-1, -1, "tes%s", "t");
}
printf("RyDeR` method: %dms", GetTickCount() - tick);
return 1;
}
SendFormatMessage(const iPlayer, const iColor, const szFormat[], { Float, _ }: ...)
{
new iArgs = (numargs() - 3) << 2;
if(iArgs)
{
static s_szBuf[144], s_iAddr1, s_iAddr2;
#emit ADDR.PRI szFormat
#emit STOR.PRI s_iAddr1
for(s_iAddr2 = s_iAddr1 + iArgs, iArgs += 12; s_iAddr2 != s_iAddr1; s_iAddr2 -= 4)
{
#emit LOAD.PRI s_iAddr2
#emit LOAD.I
#emit PUSH.PRI
}
#emit CONST.PRI s_szBuf
#emit PUSH.S szFormat
#emit PUSH.C 144
#emit PUSH.PRI
#emit PUSH.S iArgs
#emit SYSREQ.C format
#emit LCTRL 4
#emit LOAD.S.ALT iArgs
#emit ADD.C 4
#emit ADD
#emit SCTRL 4
return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, s_szBuf) : SendClientMessageToAll(iColor, s_szBuf);
}
return (iPlayer != -1) ? SendClientMessage(iPlayer, iColor, szFormat) : SendClientMessageToAll(iColor, szFormat);
}
This is help section not fight section i thing so? Don't make 2 people to fight..!!!
|
#if !defined FALSE
stock bool:FALSE = false;
#endif