Как исправить краш скрипта?

MrCH

Участник
Автор темы
113
17
Версия SA-MP
  1. Любая
Только начинаю свой путь в скриптинге, так что не пинайте сильно ногами. Это простой скрипт, который по задумке должен взрывать машины по id. Но по какой-то причине он крашится, когда пытаешься выполнить сам взрыв.
Сообщение в консоли:
[ML] (error) char.lua: opcode '020B' call caused an unhandled exception
stack traceback:
[C]: in function 'explodeCar'
D:\GTA BY SAMPHACK\moonloader\char.lua:26: in function <D:\GTA BY SAMPHACK\moonloader\char.lua:24>
[ML] (error) char.lua: Script died due to an error. (36162344)

Код скрипта:
lua:
require "lib.moonloader"

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(10)
    end

    sampRegisterChatCommand('ex', function(arg)
        if arg == '' or not arg or not tonumber(arg) then
        sampAddChatMessage("{FFFFFF}/ex id", -1)
        else
            idcar = tonumber(arg)
        end
    end)
    sampRegisterChatCommand('explode', explod)
    while true do -- бесконечный цикл, чтобы скрипт не сдулся
        wait(0) -- обязательная задержка
    end
end

function explod()
    car = sampGetCarHandleBySampVehicleId(idcar)
    result = explodeCar(car)
end
 

kekilb

Потрачен
38
18
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Зачем беск цикл в вайл тру если оно не используется, лучше в таких случаях юзать wait(-1)

Зачем 2 проверки на включённый самп

Lua:
sampRegisterChatCommand('ex', function(arg)
        if arg == '' or not arg or not tonumber(arg) then
        sampAddChatMessage("{FFFFFF}/ex id", -1)
        else
            idcar = tonumber(arg)
        end
    end)

Зачем это, а, понял