05.03.2014, 15:27
Доброго времени суток.
Сама функция:
Проблема: Не выводится последний %s, %d, %i и т.п
Пример:
В чате будет только
[ADM]: %s %s[ID ] выходит на админ дежурство. - последний %d в чат не попадет.
Сама функция:
PHP Code:
stock SendAdminMessageEx(color, fstring[], {Float, _}:...)
{
#define BYTES_PER_CELL (cellbits / 8)
static const STATIC_ARGS = 3;
new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;
if(n)
{
new message[128], 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);
// Push the static format parameters.
#emit PUSH.S fstring
#emit PUSH.C 128
#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
return SendAdminMessage(color, message);
}
else return SendAdminMessage(color, fstring);
}
stock SendAdminMessage(color, string[])
{
foreach(i)
{
if(PI[i][AdminRank] >= 1) SendClientMessage(i, color, string);
}
return true;
}
Пример:
PHP Code:
SendAdminMessageEx(COLOR_BROWN,"[ADM]: %s %s[ID %d] выходит на админ дежурство.", PI[playerid][AdminName], GetPlayerNameEx(playerid), playerid);
[ADM]: %s %s[ID ] выходит на админ дежурство. - последний %d в чат не попадет.