помогите пофиксить скрипт

bruskin

Участник
Автор темы
151
14
Версия MoonLoader
Другое
И так, мне нужно чтоб скрипт отыгрывал РП и потом прописывал команду /heal id 50, но по итогу РП отыгровки есть, а когда доходит до /heal - скрипт умирает, помогите
Lua:
function hilvcee(arg)
    sampSendChat("/do Мед. сумка на поясе.")
    wait(1500)
    sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
    wait(1500)
    sampSendChat("/do Таблетки в руках.")
    wait(1500)
    sampSendChat("/me передал таблетки человеку")
    wait(1500)
    sampSendChat("/heal "..arg ..50)
end
 
Решение
Lua:
script_name("Hospital Tools by Bruskin")
script_author("Mark Bruskin")
script_description("Hospital Tools for Arizona RP")

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(0)
    end
    sampAddChatMessage("[Hospital Tools] Скрипт успешно загружен.", 0x00FF00)
    sampAddChatMessage("[Hospital Tools] Автор: Mark Bruskin", 0xFFFF00)
    sampAddChatMessage("[Hospital Tools] Версия: v. 1.0.0", 0xFFFF00)
    sampRegisterChatCommand("svc", svccb)
    sampRegisterChatCommand("hhelp", hhelpcb)
    sampRegisterChatCommand("sls", slscb)
    sampRegisterChatCommand("ssf", ssfcb)
    sampRegisterChatCommand("slv", slvcb)...

YarikVL

Известный
Проверенный
4,750
1,815
И так, мне нужно чтоб скрипт отыгрывал РП и потом прописывал команду /heal id 50, но по итогу РП отыгровки есть, а когда доходит до /heal - скрипт умирает, помогите
Lua:
function hilvcee(arg)
    sampSendChat("/do Мед. сумка на поясе.")
    wait(1500)
    sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
    wait(1500)
    sampSendChat("/do Таблетки в руках.")
    wait(1500)
    sampSendChat("/me передал таблетки человеку")
    wait(1500)
    sampSendChat("/heal "..arg ..50)
end
Причину краша скрипта прикладывать из мунлога надо.
У тебя 50 не в кавычках, а ещё надо arg проверять на nil или делать проверку не просто arg а вот так: if tonumber(arg) then но если там не число будет то может крашнуть скрипт, не знаю точно
 
Последнее редактирование:

bruskin

Участник
Автор темы
151
14
Причину краша скрипта прикладывать из мунлога надо.
У тебя 50 не в кавычках, а ещё надо arg проверять на nil и писать не просто arg а вот так: tonumber(arg)
moonloader.log:
[18:23:45.843601] (error)    Hospital Tools by Bruskin: ...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua:59: attempt to concatenate local 'arg' (a nil value)
stack traceback:
    ...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua: in function <...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua:50>
[18:23:45.843601] (error)    Hospital Tools by Bruskin: Script died due to an error. (0F9C452C)
Код должен выглядеть так?
Lua:
function hilvcee(arg)
    if tonumber(arg) then
        sampSendChat("/do Мед. сумка на поясе.")
        wait(1500)
        sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
        wait(1500)
        sampSendChat("/do Таблетки в руках.")
        wait(1500)
        sampSendChat("/me передал таблетки человеку")
        wait(1500)
        sampSendChat("/heal "..arg "50")
    end
end
 

YarikVL

Известный
Проверенный
4,750
1,815
moonloader.log:
[18:23:45.843601] (error)    Hospital Tools by Bruskin: ...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua:59: attempt to concatenate local 'arg' (a nil value)
stack traceback:
    ...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua: in function <...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua:50>
[18:23:45.843601] (error)    Hospital Tools by Bruskin: Script died due to an error. (0F9C452C)
Код должен выглядеть так?
Lua:
function hilvcee(arg)
    if tonumber(arg) then
        sampSendChat("/do Мед. сумка на поясе.")
        wait(1500)
        sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
        wait(1500)
        sampSendChat("/do Таблетки в руках.")
        wait(1500)
        sampSendChat("/me передал таблетки человеку")
        wait(1500)
        sampSendChat("/heal "..arg "50")
    end
end
А где две точки потерял после arg:
sampSendChat("/heal "..arg.. "50")


И я думаю можно так:
sampSendChat("/heal "..tostring(arg).." 50")
 
Последнее редактирование:
  • Эм
Реакции: qdIbp

bruskin

Участник
Автор темы
151
14
А где две точки потерял после arg:



И я имел ввиду так:
sampSendChat("/heal "..tonumber(arg).." 50")
не работает
Lua:
function hilvcee(arg)
    sampSendChat("/do Мед. сумка на поясе.")
    wait(1500)
    sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
    wait(1500)
    sampSendChat("/do Таблетки в руках.")
    wait(1500)
    sampSendChat("/me передал таблетки человеку")
    wait(1500)
    sampSendChat("/heal "..tonumber(arg).." 50")
end

moonloader:
[21:55:33.517448] (system)    Hospital Tools by Bruskin: Loaded successfully.
[21:55:42.682572] (error)    Hospital Tools by Bruskin: ...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua:60: attempt to concatenate a nil value
stack traceback:
    ...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua: in function <...Games Launcher\bin\arizona\moonloader\Hospital Tools.lua:51>
[21:55:42.682572] (error)    Hospital Tools by Bruskin: Script died due to an error. (4E4BC884)
 

YarikVL

Известный
Проверенный
4,750
1,815
не работает
Lua:
function hilvcee(arg)
    sampSendChat("/do Мед. сумка на поясе.")
    wait(1500)
    sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
    wait(1500)
    sampSendChat("/do Таблетки в руках.")
    wait(1500)
    sampSendChat("/me передал таблетки человеку")
    wait(1500)
    sampSendChat("/heal "..tonumber(arg).." 50")
end
Так а чего ты не добавил проверку
а ещё надо arg проверять на nil
Можно просто: if arg then
Hospital Tools.lua:60: attempt to concatenate a nil value
Ну так переведи с помощью переводчика: попытка конкетанации пустого значения. В луа конкетанация это ..
Соответственно ты передаешь пустое/неправильное значение в функцию в переменную arg
UPD: я чуток затупил, сори, там не tonumber а надо tostring
 
Последнее редактирование:

bruskin

Участник
Автор темы
151
14
Так а чего ты не добавил проверку

Можно просто: if arg then

Ну так переведи с помощью переводчика: попытка конкетанации пустого значения. В луа конкетанация это ..
Соответственно ты передаешь пустое/неправильное значение в функцию в переменную arg
должно так получится?
Lua:
function hilvcee(arg)
    if arg then
        sampSendChat("/do Мед. сумка на поясе.")
        wait(1500)
        sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
        wait(1500)
        sampSendChat("/do Таблетки в руках.")
        wait(1500)
        sampSendChat("/me передал таблетки человеку")
        wait(1500)
        sampSendChat("/heal "..tonumber(arg).." ..50")
    end
end
 

YarikVL

Известный
Проверенный
4,750
1,815
должно так получится?
Lua:
function hilvcee(arg)
    if arg then
        sampSendChat("/do Мед. сумка на поясе.")
        wait(1500)
        sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
        wait(1500)
        sampSendChat("/do Таблетки в руках.")
        wait(1500)
        sampSendChat("/me передал таблетки человеку")
        wait(1500)
        sampSendChat("/heal "..tonumber(arg).." ..50")
    end
end
Ну и поток если ты делал для этой функции ( для использование задержек ) то должно работать
 

YarikVL

Известный
Проверенный
4,750
1,815

cord

Хватит спать на мне
Проверенный
569
470
Lua:
function hilvcee(arg)
lua_thread.create(function()
    if arg then
        sampSendChat("/do Мед. сумка на поясе.")
        wait(1500)
        sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
        wait(1500)
        sampSendChat("/do Таблетки в руках.")
        wait(1500)
        sampSendChat("/me передал таблетки человеку")
        wait(1500)
        sampSendChat("/heal "..tonumber(arg).." ..50")
    end
end)
end
Ещё можно попробовать заменить tonumber(arg) на tostring(arg)
 
  • Нравится
Реакции: YarikVL

bruskin

Участник
Автор темы
151
14
Так попробуй:
sampSendChat("/heal "..arg.." 50")
вообще не загружается

Lua:
function hilvcee(arg)
lua_thread.create(function()
    if arg then
        sampSendChat("/do Мед. сумка на поясе.")
        wait(1500)
        sampSendChat("/me открыл мед. сумку, после достал необходимые таблетки")
        wait(1500)
        sampSendChat("/do Таблетки в руках.")
        wait(1500)
        sampSendChat("/me передал таблетки человеку")
        wait(1500)
        sampSendChat("/heal "..tonumber(arg).." ..50")
    end
end)
end
Ещё можно попробовать заменить tonumber(arg) на tostring(arg)
так же ничего не происходит