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;
}