Я уже давно заметил, что обработчик возвращает пустой текст (3-ий параметр), но не придавал этому особого значения, но теперь я захотел разобраться, в чем же проблема.
Дело в том, что почему-то сервер теперь передает текст с типом string32, т.е. длина текста записывается в 32 бит (4 байта), но в обычном сампе длина записывается в 8 бит (1 байт).
Возможно, что Аризоне где-то не хватает длины в 255 символов, поэтому было принято расширить это значение.
Как исправить:
1. Каждый раз в своих скриптах изменять значение:
2. Изменить значение напрямую в библиотеке (samp/events.lua - 110 строка):
Советую использовать 1-ый способ, ибо для 2-ого способа вам нужно будет уведомлять своих заказчиков/друзей/юзеров скрипта о том, что им нужно поменять библиотеку для корректной работы скрипта. А ещё для реализации поддержки сразу двух версий, обычный самп и Аризона, проще использовать 1-ый способ.
Дело в том, что почему-то сервер теперь передает текст с типом string32, т.е. длина текста записывается в 32 бит (4 байта), но в обычном сампе длина записывается в 8 бит (1 байт).
Возможно, что Аризоне где-то не хватает длины в 255 символов, поэтому было принято расширить это значение.
Как исправить:
1. Каждый раз в своих скриптах изменять значение:
Lua:
local sampev = require('samp.events')
sampev.INTERFACE.INCOMING_RPCS[require('samp.raknet').RPC.DISPLAYGAMETEXT][4].text = 'string32'
2. Изменить значение напрямую в библиотеке (samp/events.lua - 110 строка):
Lua:
INCOMING_RPCS[RPC.DISPLAYGAMETEXT] = {'onDisplayGameText', {style = 'int32'}, {time = 'int32'}, {text = 'string32'}}
Советую использовать 1-ый способ, ибо для 2-ого способа вам нужно будет уведомлять своих заказчиков/друзей/юзеров скрипта о том, что им нужно поменять библиотеку для корректной работы скрипта. А ещё для реализации поддержки сразу двух версий, обычный самп и Аризона, проще использовать 1-ый способ.