arz damag informer old arizona

Статус
В этой теме нельзя размещать новые ответы.

ProstoNick

Участник
Автор темы
96
15
не работает старый дамаг информер тупо 1 хит дал и зависает и начинает работать новый
вот ошибка в монлоадер логе
[15:19:18.008832] (error) arz_damage_informer: opcode '0BF5' call caused an unhandled exception
stack traceback:
[C]: in function 'raknetBitStreamEncodeString'
...s\arizona\bin\arizona\moonloader\arz_damage_informer.lua:80: in function <...s\arizona\bin\arizona\moonloader\arz_damage_informer.lua:60>
[15:19:18.016854] (error) arz_damage_informer: Script died due to an error. (01C6823C)
 

Вложения

  • arz_damage_informer.lua
    6.3 KB · Просмотры: 3
Решение
меняй функцию onReceivePacket (60-88 строка)

Lua:
function onReceivePacket(id, bs)
    if id ~= 220 or not active or not cjson then return true end
    local initialPos = raknetBitStreamGetReadOffset(bs)
    local block = false

    raknetBitStreamIgnoreBits(bs, 8)
    if raknetBitStreamReadInt8(bs) == 17 then
        raknetBitStreamIgnoreBits(bs, 32)
        local length = raknetBitStreamReadInt16(bs)
        local encoded = raknetBitStreamReadInt8(bs)
        if length > 0 and length < 65535 then
            local str = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
            if str:find("initializeDamageInfo", 1, true) then
                local json_raw =...

pewpewpewpew

Известный
Модератор
935
307
меняй функцию onReceivePacket (60-88 строка)

Lua:
function onReceivePacket(id, bs)
    if id ~= 220 or not active or not cjson then return true end
    local initialPos = raknetBitStreamGetReadOffset(bs)
    local block = false

    raknetBitStreamIgnoreBits(bs, 8)
    if raknetBitStreamReadInt8(bs) == 17 then
        raknetBitStreamIgnoreBits(bs, 32)
        local length = raknetBitStreamReadInt16(bs)
        local encoded = raknetBitStreamReadInt8(bs)
        if length > 0 and length < 65535 then
            local str = (encoded ~= 0) and raknetBitStreamDecodeString(bs, length + encoded) or raknetBitStreamReadString(bs, length)
            if str:find("initializeDamageInfo", 1, true) then
                local json_raw = str:match("({.+})")
                local ok, data = pcall(cjson.decode, json_raw)
                if ok and data then
                    local info = data.args or data
                    local gunId = tonumber(info.imageId)
                    if weapons[gunId] then
                        updateDamage(info.name or "Unknown", info.type, tonumber(info.value) or 0, gunId)
                        block = true
                    end
                end
            end
        end
    end

    raknetBitStreamSetReadOffset(bs, initialPos)
    if block then return false end
    return true
end
 
Статус
В этой теме нельзя размещать новые ответы.