краш при запуске скрипта

shrei9

Известный
Автор темы
17
0
Версия MoonLoader
написал скрипт на луа, запустил 2 раза, всё прекрасно работало, но с третьего запуска выбивает вот это
tgxAsLS.png

из-за чего может возникнуть данная ошибка? я уже 90% скрипта закомментил и всё равно выбивает эта ошибка
moonloader.log выбивает вот это
Код:
[17:00:21.508963] (error)    deux.lua: opcode '0B2B' call caused an unhandled exception
stack traceback:
    [C]: in function 'sampGetPlayerIdByCharHandle'
    F:\DEF GTA\moonloader\deux.lua:79: in main chunk
[17:00:21.508963] (error)    deux.lua: Script died due to an error. (164B6744)
ошибка возникает, по логу, из этого:
Lua:
local _, pId = sampGetPlayerIdByCharHandle(PLAYER_PED)
local pName = sampGetPlayerNickname(pId)
что тут не так??

upd: решил.
 
Последнее редактирование:

wulfandr

Известный
636
260
написал скрипт на луа, запустил 2 раза, всё прекрасно работало, но с третьего запуска выбивает вот это
tgxAsLS.png

из-за чего может возникнуть данная ошибка? я уже 90% скрипта закомментил и всё равно выбивает эта ошибка
moonloader.log выбивает вот это
Код:
[17:00:21.508963] (error)    deux.lua: opcode '0B2B' call caused an unhandled exception
stack traceback:
    [C]: in function 'sampGetPlayerIdByCharHandle'
    F:\DEF GTA\moonloader\deux.lua:79: in main chunk
[17:00:21.508963] (error)    deux.lua: Script died due to an error. (164B6744)
ошибка возникает, по логу, из этого:
Lua:
local _, pId = sampGetPlayerIdByCharHandle(PLAYER_PED)
local pName = sampGetPlayerNickname(pId)
что тут не так??
выше покажи какая строка, и скинь скрин всего кода этого блока
 

FYS

Потрачен
982
236
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
написал скрипт на луа, запустил 2 раза, всё прекрасно работало, но с третьего запуска выбивает вот это
tgxAsLS.png

из-за чего может возникнуть данная ошибка? я уже 90% скрипта закомментил и всё равно выбивает эта ошибка
moonloader.log выбивает вот это
Код:
[17:00:21.508963] (error)    deux.lua: opcode '0B2B' call caused an unhandled exception
stack traceback:
    [C]: in function 'sampGetPlayerIdByCharHandle'
    F:\DEF GTA\moonloader\deux.lua:79: in main chunk
[17:00:21.508963] (error)    deux.lua: Script died due to an error. (164B6744)
ошибка возникает, по логу, из этого:
Lua:
local _, pId = sampGetPlayerIdByCharHandle(PLAYER_PED)
local pName = sampGetPlayerNickname(pId)
что тут не так??
скрипт хендл игрока не получает
 

shrei9

Известный
Автор темы
17
0
выше покажи какая строка, и скинь скрин всего кода этого блока
выше лишь объявление переменных
Lua:
main_window_state = imgui.ImBool(false)
sw, sh = getScreenResolution()
local punishmentWindow = imgui.ImBool(false)
local eventWindow = imgui.ImBool(false)
local eventName = imgui.ImBuffer(256)
local eventWinner = imgui.ImBuffer(256)
local _, pId = sampGetPlayerIdByCharHandle(PLAYER_PED)
local pName = sampGetPlayerNickname(pId)
local eventRules = imgui.ImBuffer(256)
local eventFieldOne = imgui.ImBuffer(256)
local eventFieldTwo = imgui.ImBuffer(256)
local btn_size = imgui.ImVec2(-1, 0)
local color_choice = {'blue', 'red', 'yellow'}


А это единственный кусок, где используется айди и ник
Lua:
function setEvent()
    if pName ~= nil and pId ~= nil then
        colorText('yellow', string.format(u8'Администратор %s[%i]:', pName, pId))
        imgui.SameLine()
        imgui.TextWrapped(u8'Уважаемые игроки! Сейчас пройдёт мероприятие "' .. eventName.v .. '".')
    end
end

function colorText(color, text)
    if text ~= nil and text ~= '' then
        if color == color_choice[1] then return imgui.TextColored(imgui.ImVec4(0.0, 0.6, 1.0, 1.0), text)
        elseif color == color_choice[2] then return imgui.TextColored(imgui.ImVec4(1.0, 0.0, 0.0, 1.0), text)
        elseif color == color_choice[3] then return imgui.TextColored(imgui.ImVec4(1.0, 0.7, 0.0, 1.0), text)
        else return imgui.Text(text)
        end
    end
end

-- Сам вызов setEvent идёт из imgui.OnDrawFrame()
-- ...
if eventWindow.v then
            imgui.SetNextWindowSize(imgui.ImVec2(550, 400), imgui.Cond.FirstUseEver)
           imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
           -- Event Window
           imgui.Begin(u8'Объявить о мероприятии', eventWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
           imgui.InputText(u8'Название мероприятия', eventName)
           imgui.Text(u8'Результат:')
           setEvent()
end
скрипт хендл игрока не получает
а причина какая?
 

wulfandr

Известный
636
260
выше лишь объявление переменных
Lua:
main_window_state = imgui.ImBool(false)
sw, sh = getScreenResolution()
local punishmentWindow = imgui.ImBool(false)
local eventWindow = imgui.ImBool(false)
local eventName = imgui.ImBuffer(256)
local eventWinner = imgui.ImBuffer(256)
local _, pId = sampGetPlayerIdByCharHandle(PLAYER_PED)
local pName = sampGetPlayerNickname(pId)
local eventRules = imgui.ImBuffer(256)
local eventFieldOne = imgui.ImBuffer(256)
local eventFieldTwo = imgui.ImBuffer(256)
local btn_size = imgui.ImVec2(-1, 0)
local color_choice = {'blue', 'red', 'yellow'}


А это единственный кусок, где используется айди и ник
Lua:
function setEvent()
    if pName ~= nil and pId ~= nil then
        colorText('yellow', string.format(u8'Администратор %s[%i]:', pName, pId))
        imgui.SameLine()
        imgui.TextWrapped(u8'Уважаемые игроки! Сейчас пройдёт мероприятие "' .. eventName.v .. '".')
    end
end

function colorText(color, text)
    if text ~= nil and text ~= '' then
        if color == color_choice[1] then return imgui.TextColored(imgui.ImVec4(0.0, 0.6, 1.0, 1.0), text)
        elseif color == color_choice[2] then return imgui.TextColored(imgui.ImVec4(1.0, 0.0, 0.0, 1.0), text)
        elseif color == color_choice[3] then return imgui.TextColored(imgui.ImVec4(1.0, 0.7, 0.0, 1.0), text)
        else return imgui.Text(text)
        end
    end
end

-- Сам вызов setEvent идёт из imgui.OnDrawFrame()
-- ...
if eventWindow.v then
            imgui.SetNextWindowSize(imgui.ImVec2(550, 400), imgui.Cond.FirstUseEver)
           imgui.SetNextWindowPos(imgui.ImVec2((sw / 2), sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
           -- Event Window
           imgui.Begin(u8'Объявить о мероприятии', eventWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
           imgui.InputText(u8'Название мероприятия', eventName)
           imgui.Text(u8'Результат:')
           setEvent()
end

а причина какая?
поставь
Код:
local _, pId = sampGetPlayerIdByCharHandle(PLAYER_PED)

local pName = sampGetPlayerNickname(pId)
в саму функцию где они вызываются