Помогите, ошибка depheal.lua: D:\heregta\moonloader\depheal.lua:29: 'then' expected near '='

sene0

Участник
Автор темы
34
1
Решил написать замену для медикал хелпера, что-то среднее между адев.аддоном и мед.хелпером, но встретился с ошибкой, код:

Код:
script_name('DepHeal')
script_authors('sene0')
script_description('Нормальный медикал хелпер')
script_version('beta 0.1')

require 'lib.moonloader'


local tag = '{FFFFFF}[{CD5C5C}Dep{F08080}Heal{FFFFFF}]: '
local label = 1
local vkeys = require 'vkeys'
local imgui = require 'imgui'

function main()
    imgui.Process = true
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('dh', mCMD_dh) -- основное меню
    sampRegisterChatCommand('hl', funCMD_heal) -- вылечить
    sampRegisterChatCommand('giverec', funCMD_giverec) -- рецепты
    sampRegisterChatCommand('mc', funCMD_givemc) -- мед.карта
    sampRegisterChatCommand('vac', funCMD_vaccine) -- вакцина
    sampRegisterChatCommand('antib', funCMD_antibio) -- антибиотики
    sampRegisterChatCommand('gmins', funCMD_mi) -- страховка
    sampRegisterChatCommand('rld', funCMD_reload) -- перезагрузка скрипта
    sampRegisterChatCommand('narko', funCMD_narko) -- лечение от наркозависимости
    
    if label = 1 then

    sampAddChatMessage (tag .. 'Скрипт {CD5C5C}инициализирован!{FFFFFF}.')
    local label = 0

    while true do
        wait(0)
    

    end
end
 

YarikVL

Известный
Проверенный
4,750
1,815
Решил написать замену для медикал хелпера, что-то среднее между адев.аддоном и мед.хелпером, но встретился с ошибкой, код:

Код:
script_name('DepHeal')
script_authors('sene0')
script_description('Нормальный медикал хелпер')
script_version('beta 0.1')

require 'lib.moonloader'


local tag = '{FFFFFF}[{CD5C5C}Dep{F08080}Heal{FFFFFF}]: '
local label = 1
local vkeys = require 'vkeys'
local imgui = require 'imgui'

function main()
    imgui.Process = true
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('dh', mCMD_dh) -- основное меню
    sampRegisterChatCommand('hl', funCMD_heal) -- вылечить
    sampRegisterChatCommand('giverec', funCMD_giverec) -- рецепты
    sampRegisterChatCommand('mc', funCMD_givemc) -- мед.карта
    sampRegisterChatCommand('vac', funCMD_vaccine) -- вакцина
    sampRegisterChatCommand('antib', funCMD_antibio) -- антибиотики
    sampRegisterChatCommand('gmins', funCMD_mi) -- страховка
    sampRegisterChatCommand('rld', funCMD_reload) -- перезагрузка скрипта
    sampRegisterChatCommand('narko', funCMD_narko) -- лечение от наркозависимости
   
    if label = 1 then

    sampAddChatMessage (tag .. 'Скрипт {CD5C5C}инициализирован!{FFFFFF}.')
    local label = 0

    while true do
        wait(0)
   

    end
end
Думаю надо двойное равно:
if label == 1 then

Посмотри ролики The champ guess, там всё это рассказывается
 

YarikVL

Известный
Проверенный
4,750
1,815
Решил написать замену для медикал хелпера, что-то среднее между адев.аддоном и мед.хелпером, но встретился с ошибкой, код:

Код:
script_name('DepHeal')
script_authors('sene0')
script_description('Нормальный медикал хелпер')
script_version('beta 0.1')

require 'lib.moonloader'


local tag = '{FFFFFF}[{CD5C5C}Dep{F08080}Heal{FFFFFF}]: '
local label = 1
local vkeys = require 'vkeys'
local imgui = require 'imgui'

function main()
    imgui.Process = true
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('dh', mCMD_dh) -- основное меню
    sampRegisterChatCommand('hl', funCMD_heal) -- вылечить
    sampRegisterChatCommand('giverec', funCMD_giverec) -- рецепты
    sampRegisterChatCommand('mc', funCMD_givemc) -- мед.карта
    sampRegisterChatCommand('vac', funCMD_vaccine) -- вакцина
    sampRegisterChatCommand('antib', funCMD_antibio) -- антибиотики
    sampRegisterChatCommand('gmins', funCMD_mi) -- страховка
    sampRegisterChatCommand('rld', funCMD_reload) -- перезагрузка скрипта
    sampRegisterChatCommand('narko', funCMD_narko) -- лечение от наркозависимости
   
    if label = 1 then

    sampAddChatMessage (tag .. 'Скрипт {CD5C5C}инициализирован!{FFFFFF}.')
    local label = 0

    while true do
        wait(0)
   

    end
end
Где у тебя условие на 29 строке закрывается?
А должно закрываться, например на 33 строке end’ом

Посмотри ролики The champ guess, там всё это рассказывается
 
  • Нравится
Реакции: Kirkjubaijaarklaustur

sene0

Участник
Автор темы
34
1
Lua:
script_name('DepHeal')
script_authors('HayasiFam')
script_description('Нормальный медикал хелпер')
script_version('beta 0.1')

require 'lib.moonloader'


local tag = '{FFFFFF}[{CD5C5C}Dep{F08080}Heal{FFFFFF}]: '
local label = 1
local vkeys = require 'vkeys'

function main()
    imgui.Process = true
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('dh', mCMD_dh) -- основное меню
    sampRegisterChatCommand('hl', funCMD_heal) -- вылечить
    sampRegisterChatCommand('giverec', funCMD_giverec) -- рецепты
    sampRegisterChatCommand('mc', funCMD_givemc) -- мед.карта
    sampRegisterChatCommand('vac', funCMD_vaccine) -- вакцина
    sampRegisterChatCommand('antib', funCMD_antibio) -- антибиотики
    sampRegisterChatCommand('gmins', funCMD_mi) -- страховка
    sampRegisterChatCommand('rld', funCMD_reload) -- перезагрузка скрипта
    sampRegisterChatCommand('narko', funCMD_narko) -- лечение от наркозависимости

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)
    
    end

    if label == 1 then

    sampAddChatMessage (tag .. 'Скрипт {CD5C5C}инициализирован!{FFFFFF}.')
    local label = 0
    
    while true do
        wait(100)
    end
end
Два энда не достаточно?
 
  • Bug
Реакции: Denis Zversky и YarikVL

YarikVL

Известный
Проверенный
4,750
1,815
Lua:
script_name('DepHeal')
script_authors('HayasiFam')
script_description('Нормальный медикал хелпер')
script_version('beta 0.1')

require 'lib.moonloader'


local tag = '{FFFFFF}[{CD5C5C}Dep{F08080}Heal{FFFFFF}]: '
local label = 1
local vkeys = require 'vkeys'

function main()
    imgui.Process = true
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('dh', mCMD_dh) -- основное меню
    sampRegisterChatCommand('hl', funCMD_heal) -- вылечить
    sampRegisterChatCommand('giverec', funCMD_giverec) -- рецепты
    sampRegisterChatCommand('mc', funCMD_givemc) -- мед.карта
    sampRegisterChatCommand('vac', funCMD_vaccine) -- вакцина
    sampRegisterChatCommand('antib', funCMD_antibio) -- антибиотики
    sampRegisterChatCommand('gmins', funCMD_mi) -- страховка
    sampRegisterChatCommand('rld', funCMD_reload) -- перезагрузка скрипта
    sampRegisterChatCommand('narko', funCMD_narko) -- лечение от наркозависимости

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)
   
    end

    if label == 1 then

    sampAddChatMessage (tag .. 'Скрипт {CD5C5C}инициализирован!{FFFFFF}.')
    local label = 0
   
    while true do
        wait(100)
    end
end
Два энда не достаточно?
То есть function main() и while true do не нужно закрывать?
91FAA5ED-D0F3-4959-B278-0C3FCD7FBEB7.jpeg

Посмотри ролики The champ guess, там всё это рассказывается
Если бан в гугле: https://youtube.com/playlist?list=PLtPWpYNCQaLfS_JWRpCGuaKzds7F6VDR0
 
  • Нравится
  • Вау
Реакции: Vespan и 1NEXPL1CA

Vespan

Чешский луашер
Проверенный
2,126
1,738
вдруг он обновил moonloader, и теперь вызов цыкла можно сделать без lua_thread или main()
та нахой учить, я лучше дрестню сделаю и буду спрашивать что не так, он художник - он так видит

ладно,
хочеш сделать беск.цыкл вне main()?
используй класс lua_thread

перед закрытием функции main() сделай wait(-1) что бы скрипт не выгрузился после загрузки

смысл label ?
вставил сообщение в чат в функцию main() и все
Lua:
script_name('DepHeal')
script_authors('HayasiFam')
script_description('Нормальный медикал хелпер')
script_version('beta 0.1')

require 'lib.moonloader'


local tag = '{FFFFFF}[{CD5C5C}Dep{F08080}Heal{FFFFFF}]: '
local label = 1
local vkeys = require 'vkeys'

function main()
    imgui.Process = true
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('dh', mCMD_dh) -- основное меню
    sampRegisterChatCommand('hl', funCMD_heal) -- вылечить
    sampRegisterChatCommand('giverec', funCMD_giverec) -- рецепты
    sampRegisterChatCommand('mc', funCMD_givemc) -- мед.карта
    sampRegisterChatCommand('vac', funCMD_vaccine) -- вакцина
    sampRegisterChatCommand('antib', funCMD_antibio) -- антибиотики
    sampRegisterChatCommand('gmins', funCMD_mi) -- страховка
    sampRegisterChatCommand('rld', funCMD_reload) -- перезагрузка скрипта
    sampRegisterChatCommand('narko', funCMD_narko) -- лечение от наркозависимости
    
    sampAddChatMessage (tag .. 'Скрипт {CD5C5C}инициализирован!{FFFFFF}.')
  
   wait(-1)
end

lua_thread.create(function()
    while true do
            _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)--id он получает когда скрипт загружается,
            --лучше использовать это в беск.цыкле, либо же получишь id=0 всегда
            nick = sampGetPlayerNickname(id)
    
        wait(100)
    end
end
 
Последнее редактирование:
  • Нравится
Реакции: YarikVL и sene0

ARMOR

011110000111100101101001
Модератор
4,969
6,890
вдруг он обновил moonloader, и теперь вызов цыкла можно сделать без lua_thread или main()
Циклы без потоков можно юзать без проблем. Без потоков ты не заюзаешь задержку через wait().