SFM(playerid, -1, "Hello %s", "Bonjour %s", GetName(playerid));
if(playerVariables[playerid][pLanguage] == 2) format(string, sizeof(string), "Bonjour %s", GetName(playerid)); else format(string, sizeof(string), "Hello %s", GetName(playerid)); SendClientMessage(playerid, -1, string);
stock SFM(playerid, color, lang1[ ], lang2[ ])
{
if(playerVariables[playerid][pLanguage] == 2) SendClientMessage(playerid, -1, lang2);
else SendClientMessage(playerid, -1, lang1);
}
PHP код:
|
stock SFM(playerid, color, form[], {Float, _}: ...) {
#pragma unused form
static
tmp[145]
;
new
t1 = playerid,
t2 = color
;
const
n4 = -4,
n16 = -16,
size = sizeof tmp
;
#emit stack 28
#emit push.c size
#emit push.c tmp
#emit stack n4
#emit sysreq.c format
#emit stack n16
return SendClientMessage(t1, t2, tmp);
}
PHP код:
|
I was writing using my mobile phone, and vbulletin does not allow any indentation.
|
CMD:blabla
{
blabla
{
blabla
}
}
PHP код:
|
Oh hell yeah it does:
PHP код:
|
stock SFM(playerid, color, lang1[ ], lang2[ ])
{
if(playerVariables[playerid][pLanguage] == 2) return SendClientMessage(playerid, -1, lang2);
SendClientMessage(playerid, -1, lang1);
}
SFM(playerid, color, en[], fr[], va_args<>) { switch( playerVariables[ playerid ][ pLanguage ] ) { case 2: va_format(gString, sizeof (gString), fr, va_start<3>); case 1: va_format(gString, sizeof (gString), en, va_start<3>); } return SendClientMessage(playerid, color, gString); }
#define BYTES_PER_CELL 4 stock SFM(playerid, color, fstring[], {Float, _}:...) { static const STATIC_ARGS = 3; new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL; if(n) { new message[144],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); } } }
I tried this
Код:
SFM(playerid, color, en[], fr[], va_args<>) { switch( playerVariables[ playerid ][ pLanguage ] ) { case 2: va_format(gString, sizeof (gString), fr, va_start<3>); case 1: va_format(gString, sizeof (gString), en, va_start<3>); } return SendClientMessage(playerid, color, gString); } |
CMD:test(playerid, params[]) { new name[24]; GetPlayerName(playerid, name, sizeof(name); SFM(playerid, -1, "Hello %s", "Bonjour %s"); return 1; }