Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Функция SendMes(playerid, color, fstring[], {Float, _}:...)

Mr_David

Мастер
В начало мода:


PHP:
#define BYTES_PER_CELL (cellbits / 8)
Это в любое место:

PHP:
stock SendMes(playerid, fstring[], {Float, _}:...)
{
    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 SendClientMessage(playerid, -1, message);
    }
    else return SendClientMessage(playerid, -1, fstring);
}
PHP:
stock SendMesAll(fstring[], {Float, _}:...) 
{ 
    static const STATIC_ARGS = 2; 
    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 SendClientMessageToAll(-1, message); 
    } 
    else return SendClientMessageToAll(-1, fstring); 
}
Пример использования:

PHP:
SendMes(playerid, "{FF0000}Твой левел равен :{000000} %d",level);
SendMesAll("{FF0000}%s левел равен :{000000} %d",PlayerName,level);
Авторы: Zeex и Y_Less


Обновил: добавил SendMesAll и убрал установку цвета, устанавливать цвет так
PHP:
{000000}
 
Последнее редактирование модератором:
Сверху Снизу