Помощь в lua с проверкой на команду

Fasmin

Участник
Автор темы
112
2
Версия MoonLoader
Другое
Вообщем сделал я поток на клавишу в беск. блоке, так же сделал рп отыгровку к ней. Допустим когда я пишу /mask, то идет отыгровка потом надевается маска, но если маски нет, то рп отыгровка на маску тоже идет. Как сделать, чтобы не шла отыгровка когда нет маски?
PKZaeGVyTs8.jpg
 
Решение
dasd:
require "lib.moonloader"
local mask = false
local vk = require "vkeys"


local ev = require 'lib.samp.events'

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

    while true do
        wait(0)
        if isKeyJustPressed(0x39) and not sampIsCursorActive() then
            if not ms then
                if mask == true then
                    ms = true
                    lua_thread.create(function()
                        wait(500)
                        sampSendChat("/me отывоыфвыфв")
                        wait(1200)
                        sampSendChat('/mask')
                        ms = false
                    end)
                else...

darkmeleee

Участник
98
12
код скинуть не могу т.к нет надписи сервера, когда нет маски.
если в двух словах:
нужно при помощи отлова сообщения в ивенте поймать сообщение от сервера и объявить какую-то переменную true, и добавить проверку
при нажатии клавиши: если переменная = true do отыгровка + /mask.
 

Fasmin

Участник
Автор темы
112
2
код скинуть не могу т.к нет надписи сервера, когда нет маски.
если в двух словах:
нужно при помощи отлова сообщения в ивенте поймать сообщение от сервера и объявить какую-то переменную true, и добавить проверку
при нажатии клавиши: если переменная = true do отыгровка + /mask.
9_w7gJUdZn4.jpg

p7JwCqJtPnA.jpg
 

darkmeleee

Участник
98
12
dasd:
require "lib.moonloader"
local mask = false
local vk = require "vkeys"


local ev = require 'lib.samp.events'

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

    while true do
        wait(0)
        if isKeyJustPressed(0x39) and not sampIsCursorActive() then
            if not ms then
                if mask == true then
                    ms = true
                    lua_thread.create(function()
                        wait(500)
                        sampSendChat("/me отывоыфвыфв")
                        wait(1200)
                        sampSendChat('/mask')
                        ms = false
                    end)
                else
                    sampAddChatMessage("нет маски", -1)
                end
            end
        end
    end
end

function ev.onServerMessage(color, text)
    if text:find("[Ошибка] {FFFFFF}У вас нет маски!") then
        mask = false
    end
end

будет работать только если до этого хоть раз маска была активирована, можно сделать и по-другому, написав сначала команду, а потом отыгровку - но думаю на аризонке так нельзя
 

Fasmin

Участник
Автор темы
112
2
dasd:
require "lib.moonloader"
local mask = false
local vk = require "vkeys"


local ev = require 'lib.samp.events'

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

    while true do
        wait(0)
        if isKeyJustPressed(0x39) and not sampIsCursorActive() then
            if not ms then
                if mask == true then
                    ms = true
                    lua_thread.create(function()
                        wait(500)
                        sampSendChat("/me отывоыфвыфв")
                        wait(1200)
                        sampSendChat('/mask')
                        ms = false
                    end)
                else
                    sampAddChatMessage("нет маски", -1)
                end
            end
        end
    end
end

function ev.onServerMessage(color, text)
    if text:find("[Ошибка] {FFFFFF}У вас нет маски!") then
        mask = false
    end
end

будет работать только если до этого хоть раз маска была активирована, можно сделать и по-другому, написав сначала команду, а потом отыгровку - но думаю на аризонке так нельзя
zJwaFENN35w.jpg

Ошибочка у тебя