Хелп с простым луа скриптом

kravetc

Участник
Автор темы
43
4
Вот код:
local sampev = require 'lib.samp.events'

local huinya = 0

function main()
    while not isSampAvailable() do wait(100) end
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if text:match("50 000$ благодаря ящику.") then
        huinya = huinya + 1
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..huinya.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
        if huinya == 30 then
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
        huinya = 0
        end
    end
end
Типа скрипт ищет сообщение в чате и начинает считать, а когда доходит до цифры 30 - обнуляется
так вот как сделать так, чтобы он ещё помимо дохода до 30 обнулялся и в пейдей? По фразе в чате "__________Банковский чек__________"
 
Решение
не поверишь
не работает, отсчет никакой не идёт
1 строка из чатлога
[09:53:57] {FFFFFF}Famas_Watson {73B461}пополнил счет организации на {FFFFFF}50 000$ благодаря ящику.

2 строка из чатлога

[10:00:00] __________Банковский чек__________
Ошибок вроде нет.
Проверь кодировку скрипта. Если стоит UTF-8, то сначала измени на Windows-1251 и потом вставь код ниже, чтобы не было иероглифов.
Можешь также гайд от Ярослава посмотреть:
Lua:
local sampev = require 'lib.samp.events'

local count = 0

function sampev.onServerMessage(color, text)
    if text:find("%{......%}.+ %{......%}пополнил счет организации на %{......%}.+%$ благодаря ящику%.") then
        lua_thread.create(function() wait(10)
            count = count + 1...

Yans

Активный
190
32
Govnokod:
function sampev.onServerMessage(color, text)
    if text:match("50 000$ благодаря ящику.") then
        huinya = huinya + 1
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..huinya.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
        if huinya == 30 or text:match("Банковский чек") then
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
        huinya = 0
        end
    end
end
Скорее всего не поможет, но я думаю что заработает
 

YarikVL

Известный
Проверенный
4,795
1,814
Govnokod:
function sampev.onServerMessage(color, text)
    if text:match("50 000$ благодаря ящику.") then
        huinya = huinya + 1
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..huinya.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
        if huinya == 30 or text:match("Банковский чек") then
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
        huinya = 0
        end
    end
end
Скорее всего не поможет, но я думаю что заработает
Не понимаю зачем использовать match если тут нужно find, но вроде должно и так работать.
А поиск работать не будет, потому что нужно экранировать спец символы:
( ) . % + - * ? [ ] ^ $
То есть перед ними ставить %
 
  • Эм
Реакции: Mintha

kravetc

Участник
Автор темы
43
4
Govnokod:
function sampev.onServerMessage(color, text)
    if text:match("50 000$ благодаря ящику.") then
        huinya = huinya + 1
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..huinya.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
        if huinya == 30 or text:match("Банковский чек") then
        sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
        huinya = 0
        end
    end
end
Скорее всего не поможет, но я думаю что заработает
я уже пытался добавить " or text:match("Банковский чек") " и ничего путного не вышло. скриптик и вовсе перестал работать
 
  • Эм
  • Грустно
Реакции: YarikVL и Yans

Dmitriy Makarov

25.05.2021
Проверенный
2,484
1,114
1 текст: 50 000$ благодаря ящику.
2 текст: __________Банковский чек__________
Было бы отлично, если бы были из чатлога для более точной проверки, но да ладно.
Lua:
local sampev = require 'lib.samp.events'

local count = 0

function sampev.onServerMessage(color, text)
    if text:find("50 000%$ благодаря ящику%.") then
        lua_thread.create(function() wait(10)
            count = count + 1
            sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..count.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
            if count == 30 then
                sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
                count = 0
            end
        end)
    elseif text:find("__________Банковский чек__________") then
        lua_thread.create(function() wait(10)
            count = 0
            sampAddChatMessage("Счётчик сброшен.", -1)
        end)
    end
end
 
  • Нравится
Реакции: YarikVL

kravetc

Участник
Автор темы
43
4
Было бы отлично, если бы были из чатлога для более точной проверки, но да ладно.
Lua:
local sampev = require 'lib.samp.events'

local count = 0

function sampev.onServerMessage(color, text)
    if text:find("50 000%$ благодаря ящику%.") then
        lua_thread.create(function() wait(10)
            count = count + 1
            sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..count.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
            if count == 30 then
                sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
                count = 0
            end
        end)
    elseif text:find("__________Банковский чек__________") then
        lua_thread.create(function() wait(10)
            count = 0
            sampAddChatMessage("Счётчик сброшен.", -1)
        end)
    end
end
не поверишь
не работает, отсчет никакой не идёт
1 строка из чатлога
[09:53:57] {FFFFFF}Famas_Watson {73B461}пополнил счет организации на {FFFFFF}50 000$ благодаря ящику.

2 строка из чатлога

[10:00:00] __________Банковский чек__________
 

Вложения

  • moonloader.log
    69.8 KB · Просмотры: 1

Dmitriy Makarov

25.05.2021
Проверенный
2,484
1,114
не поверишь
не работает, отсчет никакой не идёт
1 строка из чатлога
[09:53:57] {FFFFFF}Famas_Watson {73B461}пополнил счет организации на {FFFFFF}50 000$ благодаря ящику.

2 строка из чатлога

[10:00:00] __________Банковский чек__________
Ошибок вроде нет.
Проверь кодировку скрипта. Если стоит UTF-8, то сначала измени на Windows-1251 и потом вставь код ниже, чтобы не было иероглифов.
Можешь также гайд от Ярослава посмотреть:
Lua:
local sampev = require 'lib.samp.events'

local count = 0

function sampev.onServerMessage(color, text)
    if text:find("%{......%}.+ %{......%}пополнил счет организации на %{......%}.+%$ благодаря ящику%.") then
        lua_thread.create(function() wait(10)
            count = count + 1
            sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..count.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
            if count == 30 then
                sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
                count = 0
            end
        end)
    elseif text:find("__________Банковский чек__________") then
        lua_thread.create(function() wait(10)
            count = 0
            sampAddChatMessage("Счётчик сброшен.", -1)
        end)
    end
end
Этот код в компиляторе у меня работает. Текст находит и действие выполняется тоже.
 
  • Нравится
Реакции: YarikVL

kravetc

Участник
Автор темы
43
4
Ошибок вроде нет.
Проверь кодировку скрипта. Если стоит UTF-8, то сначала измени на Windows-1251 и потом вставь код ниже, чтобы не было иероглифов.
Можешь также гайд от Ярослава посмотреть:
Lua:
local sampev = require 'lib.samp.events'

local count = 0

function sampev.onServerMessage(color, text)
    if text:find("%{......%}.+ %{......%}пополнил счет организации на %{......%}.+%$ благодаря ящику%.") then
        lua_thread.create(function() wait(10)
            count = count + 1
            sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}] На судне перенесли {FFFF00}"..count.."{ffffff} из {FFFF00}30{ffffff} ящиков", -1)
            if count == 30 then
                sampAddChatMessage("[{b19fe3}#Costa{FFFFFF}]Все ящики перенесли, отсчёт запускается заново <3 ", -1)
                count = 0
            end
        end)
    elseif text:find("__________Банковский чек__________") then
        lua_thread.create(function() wait(10)
            count = 0
            sampAddChatMessage("Счётчик сброшен.", -1)
        end)
    end
end
Этот код в компиляторе у меня работает. Текст находит и действие выполняется тоже.
заработал, сяб <3
если не сложно - хелпани мне ещё с этой темой https://www.blast.hk/threads/183548/
я буду очень благодарен