[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум pawno » Pawno » Стандартные функции » SendClientFormat (забудем про format) (format + SendClientMessage)
SendClientFormat (забудем про format)
ЛолЛисДата: Четверг, 12.05.2016, 20:20 | Сообщение # 1
Группа: Администратор
Сообщений: 277
Статус: Offline
Функция 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);
}


IP: 83.222.105.54:8358
© [CRMP] Россия - Дрифт
 
Форум pawno » Pawno » Стандартные функции » SendClientFormat (забудем про format) (format + SendClientMessage)
Страница 1 из 11
Поиск:

Хостинг от uCoz