Не обновляется переменная LUA

KvaKva

Активный
Автор темы
200
90
Версия MoonLoader
.027.0-preview
Всем привет.

Не могу понять из-за чего переменная LUA не обновляется.
Логика такая: скрипт проверяет есть ли паспорт и если есть, то задаёт переменной значение 1.
И по идее бот уже не должен бежать делать паспорт, но почему-то он всё равно бежит.
Но по факту: переменная просто не обновляется и я хз почему.
Скрин во вложении.
1696106050199.png

Код:
local sampev = require('samp.events')
require('addon')
require('routePlayer')
require('tgnotif')

local havePass = 0

function sampev.onShowDialog(id, style, title, btn1, btn2, text)
    -- Окно паспорта
    if(id == 1234) then
        print('Паспорт есть')
        havePass = 1
    end

    -- Окно трудовой книжки
    if(id == 25228) then
        print('Трудовая книжка есть')
        haveBook = 1
    end
end

function checkDocuments()
    newTask(function()
        local botId = getBotId()
        runCommand('/showpass '..botId)
        wait(1000)
        runCommand('/wbook '..botId)
    end)
end

function doDocuments()
    newTask(function()
        wait(1000)
        if(havePass == 0) then
            wait(1000)
            print('Нет паспорта, бежим оформлять')
            runRoute('!play goToGoverment')
        end
        if(haveBook == 0 and havePass == 1) then
            print('Нет трудовой книжки, бежим оформлять')
            runRoute('!play goToJobCenter')
        end
    end)
end
 

Вложения

  • 1696106043920.png
    1696106043920.png
    16.5 KB · Просмотры: 11
Решение
Добрый день, попробуйте.
Тест:
local sampev = require('samp.events')
require('addon')
require('routePlayer')
require('tgnotif')

local havePass = false
local haveBook = false

function sampev.onShowDialog(id, style, title, btn1, btn2, text)
    -- Окно паспорта
    if id == 1234 then
        print('Паспорт есть')
        havePass = true
    end

    -- Окно трудовой книжки
    if id == 25228 then
        print('Трудовая книжка есть')
        haveBook = true
    end
end

function checkDocuments()
    newTask(function()
        local botId = getBotId()
        runCommand('/showpass '..botId)
        wait(1000)
        runCommand('/wbook '..botId)
    end)
end

function doDocuments()
    newTask(function()
        wait(1000)
        if not...

KvaKva

Активный
Автор темы
200
90
попробуй рядом с havePass добавить переменную haveBook

Lua:
local haveBook = 0
local havePass = 0
Так добавлена, я просто код обрезал

попробуй рядом с havePass добавить переменную haveBook

Lua:
local haveBook = 0
local havePass = 0
Не знаю почему, но значение переменной не обновляется и всё.
 
Последнее редактирование:
  • Грустно
Реакции: qdIbp

FixZer

Активный
130
39
Добрый день, попробуйте.
Тест:
local sampev = require('samp.events')
require('addon')
require('routePlayer')
require('tgnotif')

local havePass = false
local haveBook = false

function sampev.onShowDialog(id, style, title, btn1, btn2, text)
    -- Окно паспорта
    if id == 1234 then
        print('Паспорт есть')
        havePass = true
    end

    -- Окно трудовой книжки
    if id == 25228 then
        print('Трудовая книжка есть')
        haveBook = true
    end
end

function checkDocuments()
    newTask(function()
        local botId = getBotId()
        runCommand('/showpass '..botId)
        wait(1000)
        runCommand('/wbook '..botId)
    end)
end

function doDocuments()
    newTask(function()
        wait(1000)
        if not havePass then
            wait(1000)
            print('Нет паспорта, бежим оформлять')
            runRoute('!play goToGoverment')
        end
        if not haveBook and havePass then
            print('Нет трудовой книжки, бежим оформлять')
            runRoute('!play goToJobCenter')
        end
    end)
end
 
  • Нравится
Реакции: KvaKva и qdIbp

KvaKva

Активный
Автор темы
200
90
Добрый день, попробуйте.
Тест:
local sampev = require('samp.events')
require('addon')
require('routePlayer')
require('tgnotif')

local havePass = false
local haveBook = false

function sampev.onShowDialog(id, style, title, btn1, btn2, text)
    -- Окно паспорта
    if id == 1234 then
        print('Паспорт есть')
        havePass = true
    end

    -- Окно трудовой книжки
    if id == 25228 then
        print('Трудовая книжка есть')
        haveBook = true
    end
end

function checkDocuments()
    newTask(function()
        local botId = getBotId()
        runCommand('/showpass '..botId)
        wait(1000)
        runCommand('/wbook '..botId)
    end)
end

function doDocuments()
    newTask(function()
        wait(1000)
        if not havePass then
            wait(1000)
            print('Нет паспорта, бежим оформлять')
            runRoute('!play goToGoverment')
        end
        if not haveBook and havePass then
            print('Нет трудовой книжки, бежим оформлять')
            runRoute('!play goToJobCenter')
        end
    end)
end
Спасибо, работает.

Правда не понимаю почему не работает способ с переменными, наверное это особенность луа.
 

FixZer

Активный
130
39
Спасибо, работает.

Правда не понимаю почему не работает способ с переменными, наверное это особенность луа.
У тебя бы работал способ с переменными если бы ты написал вот так:
Lua:
if id == 1234 then
А ты написал вот так:
Lua:
if(id == 1234) then
 
  • Эм
Реакции: Hinаta

KvaKva

Активный
Автор темы
200
90
У тебя бы работал способ с переменными если бы ты написал вот так:
Lua:
if id == 1234 then
А ты написал вот так:
Lua:
if(id == 1234) then
Спасибо, а почему без скобок будет работать?
Просто я знаю c# и там это не ошибка.