Функция SendClientFormat через неё можем форматировать строку не используя format
Параметры:
SendClientFormat(playerid, color, fstring[], {Float, _}:...)
playerid - ид игрока
color - цвет текста в чате
fstring[] - текст
{Float, _}:... - нужные нам параметры которые вы прописали в тексте
Пример:
Код
new string[144];
new hour, minute, second;
gettime(hour, minute, second);
format(string,sizeof(string),"Сейчас времени %d:%d:%d",hour,minute,second);
SendClientMessage(playerid,0xFFFFFFAA,string);
Код
new hour, minute, second;
gettime(hour, minute, second);
SendClientFormat(playerid,,0xFFFFFFAA,"Сейчас времени %d:%d:%d",hour,minute,second);
Разница же существенная и конечно же на много удобнее
Добавляем функцию в мод.
Ко всем define-ам
Код
#define BYTES_PER_CELL (cellbits / 8)
В конец мода
Код
stock SendClientFormat(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
return SendClientMessage(playerid, color, message);
}
else return SendClientMessage(playerid, color, fstring);
}