крашит скрипт при таймауте в ирке

weiSez

Участник
Автор темы
48
2
Версия MoonLoader
.026-beta
короче, выдаёт ошибку при таймауте и крашит весь скрипт, нужные манипуляции с комментированием luairc и handlers делал, всё работало, когда в скрипте юзался sampCreate3dText
как только заменил на sampCreate3dTextEx - пиздец.
[ML] (error) scriptik: D:\GTA San Andreas PD HELPER\moonloader\scriptik.lua:164: bad argument #1 to 'pairs' (table expected, got nil)
stack traceback:
[C]: in function 'pairs'
D:\GTA San Andreas PD HELPER\moonloader\scriptik.lua:164: in function <D:\GTA San Andreas\moonloader\scriptik.lua:128>
[ML] (error) scriptik: Script died due to an error. (224E3794)

было:
Lua:
------------- IRC

 cl:hook("OnChat", function(user, channel, message)

local arg, id = str:match('ARG:([^,]+),%s+iID:(.+)')

id3dirc = sampCreate3dText(arg, -1, -1, -3, 0, 8, true, -1, id)

sampAddChatMessage('3Д-текст создан через IRC чат, его ID: ' .. id3d .. '.', 0xffffff)

sampAddChatMessage('Для удаления используйте /dcs ID.', 0xffffff)



 cl:hook("OnDisconnect", onIRCDisconnect)

  sampAddChatMessage("user: "..user.nick.." sends "..message..".", -1)

end)

        cl:connect("irc.esper.net")

        cl:join(CHANNEL)

        connected = true

        if not connected then

        cl:connect("irc.esper.net")

        cl:join(CHANNEL)

        connected = true

        end

 

----функция при ошибке таймаута, в ней ошибку и выбивает

function onIRCDisconnect(message, error)

    if error then

        if connected then

            connected = false

            cl:disconnect()

            for k, v in pairs(chats) do

                if chats[i] then

                    messages[v] = nil

                    users[v] = nil

                    chats[i] = nil

                end

            end

            window_selected = 0

            chatmsg("Отключён от сервера: AFK")

        end

    end

end

стало и появилась ошибка:
Lua:
cl:hook("OnChat", function(user, channel, message)
    local str = message
    if str:match('ARG:([^,]+),%s+iID:(.+)') then
local arg, iID = str:match('ARG:([^,]+),%s+iID:(.+)')
sampCreate3dTextEx(iID, arg .. ' ('.. iID ..')', -1, -1, -3, 0, 8, true, -1, iID)
sampAddChatMessage('3Д-текст был создан/изменён.', 0xffffff)
sampAddChatMessage('Для удаления используйте /dcs ID, для изменения - /callsign', 0xffffff)
else
sampAddChatMessage("Приколист "..user.nick.." сказал: " .. message .."", -1)
end
cl:hook("OnDisconnect", onIRCDisconnect)

----удаление другого текста

    local str1 = message
    if str1:match('udCS:(.+)') then
local udCS = str1:match('udCS:(.+)')
sampDestroy3dText(udCS)
sampAddChatMessage('3Д-текст был удалён.', 0xffffff)
end
end)

        cl:connect("irc.esper.net")
        cl:join(CHANNEL)
        connected = true
        if not connected then
        cl:connect("irc.esper.net")
        cl:join(CHANNEL)
        connected = true
        end

в двух словах:
при использовании sampCreate3dText - ирка работает отлично, скрипт при таймауте не дохнет
при использовании sampCreate3dTextEx - скрипт дохнет при таймауте
 
Последнее редактирование: