Нормально ли сделал код и как можно оптимизировать его?

Fermerov

Новичок
Автор темы
5
7
Версия MoonLoader
.026-beta
Lua:
script_name('AutoRangSeagers')
script_author('Ferma_Fermerov Sun-City')
script_version('0.1')

require "lib.moonloader"
local sampev = require('lib.samp.events')

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

sampAddChatMessage('{7B68EE}[FERMA] {ffffff}AutoRangSeagers загружен. Активация: {6495ED}Автоматическая', -1)
function sampev.onServerMessage(color, text)
    if text:find('%[Семья %(Новости%)%] .+%[%d+%]:{FFFFFF} Пополнил склад семьи на $.+') then
        local id, money = text:match('%[Семья %(Новости%)%] .+%[(%d+)%]:{FFFFFF} Пополнил склад семьи на $(.*)')
            if tonumber(money) >= 1500000 then
                sampSendChat('/setfrank '..id..' 9')
            end
        end
    end
end
 
Решение
Lua:
script_name('AutoRangSeagers')
script_author('Ferma_Fermerov Sun-City')
script_version('0.1')

require "lib.moonloader"
local sampev = require('lib.samp.events')

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

sampAddChatMessage('{7B68EE}[FERMA] {ffffff}AutoRangSeagers загружен. Активация: {6495ED}Автоматическая', -1)
function sampev.onServerMessage(color, text)
    if text:find('%[Семья %(Новости%)%] .+%[%d+%]:{FFFFFF} Пополнил склад семьи на $.+') then
        local id, money = text:match('%[Семья %(Новости%)%] .+%[(%d+)%]:{FFFFFF} Пополнил склад семьи на $(.*)')
            if tonumber(money) >= 1500000 then
                sampSendChat('/setfrank...

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,771
11,214
функция onServerMessage не должна быть в мейне
так вроде бы должно работать
Lua:
script_name('AutoRangSeagers')
script_author('Ferma_Fermerov Sun-City')
script_version('0.1')

require "lib.moonloader"
local sampev = require('lib.samp.events')

function main()
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage('{7B68EE}[FERMA] {ffffff}AutoRangSeagers загружен. Активация: {6495ED}Автоматическая', -1)
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if text:find('%[Семья %(Новости%)%] .+%[%d+%]:{FFFFFF} Пополнил склад семьи на $.+') then
        local id, money = text:match('%[Семья %(Новости%)%] .+%[(%d+)%]:{FFFFFF} Пополнил склад семьи на $(.*)')
        if tonumber(money) >= 1500000 then
            sampSendChat('/setfrank '..id..' 9')
        end
    end
end
 

why ega

РП игрок
Модератор
2,541
2,233
Lua:
script_name('AutoRangSeagers')
script_author('Ferma_Fermerov Sun-City')
script_version('0.1')

require "lib.moonloader"
local sampev = require('lib.samp.events')

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

sampAddChatMessage('{7B68EE}[FERMA] {ffffff}AutoRangSeagers загружен. Активация: {6495ED}Автоматическая', -1)
function sampev.onServerMessage(color, text)
    if text:find('%[Семья %(Новости%)%] .+%[%d+%]:{FFFFFF} Пополнил склад семьи на $.+') then
        local id, money = text:match('%[Семья %(Новости%)%] .+%[(%d+)%]:{FFFFFF} Пополнил склад семьи на $(.*)')
            if tonumber(money) >= 1500000 then
                sampSendChat('/setfrank '..id..' 9')
            end
        end
    end
end
чуть доделал код Чапо:
1) ты не используешь либу moonloader, поэтому ее можно не юзать
2) чуть подправил строку вывода в чат при загрузке скрипта
3) подправил табуляцию
Lua:
script_name('AutoRangSeagers')
script_author('Ferma_Fermerov Sun-City')
script_version('0.1')

local sampev = require('lib.samp.events')

function main()
      while not isSampAvailable() do wait(100) end -- тут у тебя была проверка на загрузку сампфункса, но смысла от не нет, т.к. он загружается автоматом при запуске гта (наверн)

      sampAddChatMessage('[FERMA] {ffffff}AutoRangSeagers загружен. Активация: {6495ED}Автоматическая', 0x7B68EE)
      wait(-1) -- вроде можно убрать, т.к. у тебя есть постоянно вызывающаяся функция, и скрипт не должен умирать, но пусть будет
end

function sampev.onServerMessage(color, text) -- насчет регуялорок хз, не проверял
    if text:find('%[Семья %(Новости%)%] .+%[%d+%]:{FFFFFF} Пополнил склад семьи на $.+') then
        local id, money = text:match('%[Семья %(Новости%)%] .+%[(%d+)%]:{FFFFFF} Пополнил склад семьи на $(.*)')
        if tonumber(money) >= 1500000 then
            sampSendChat('/setfrank '..id..' 9')
        end
    end
end
 
Последнее редактирование:
  • Нравится
Реакции: Fermerov

lorgon

Известный
657
268
3) подправил табуляцию

1672845567208.png
 
  • Нравится
Реакции: why ega