Не работает функция с ассемблерными вставками

ZoomDev

Известный
Автор темы
43
31
Есть функция отправки отформатированного текста

PHP:
stock SendMes(playerid, color, 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);
#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, color, message);
    }
    else return SendClientMessage(playerid, color, fstring);
}
Данный код блуждает по сети уже давно, у всех он прекрасно работает, да и в моде откуда я достал эти строчки, с ним тоже проблем не было, когда его компилировал другой человек. Сейчас же, с теми же самыми инклюдами, после моей компиляции данная функция перестала работать правильно
пример:
SendMes(playerid, -1, "%d %d %d", 1, 2, 3);
В данном случае в чат выведется 0 0 3
В чём может быть причина данной проблемы?