Багается код onServerMessage()

Cosmo

Известный
Автор темы
Друг
644
2,581
Версия MoonLoader
.027.0-preview
Вообщем попытаюсь объяснить: Пишут два человека одновременно в чат (секунда в секунду) и к примеру надо им ответить, с обращением.

-- надо что бы было так --

*одновременно*
- Vasya_Paket[272]: привет!
- Kolya_Magaz[234]: привет!

Я - Vasya_Paket, привет!
*Через секунду*
Я - Kolya_Magaz, привет!

Как бы если они не в одно время напишут то все ок, он им ответит по отдельности, Но если вот как раз они одновременно напишут, он отвечает первому (а функция ещё выполняется, секунда идёт эта вот), а второму не успевает, и он попросту багается и пишет что то по типу:

Vasya_Paket, привет!
nil, привет!

Как это сделать грамотно, подскажите пожалуйста?
 
Решение
Lua:
sampev    = require "lib.samp.events"

---

ans = {}

sampev.onServerMessage(color, msg)
    if msg:match("привет") then
        table.insert(ans, "здарова")
    end
end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1) end
    
    lua_thread.create(function()
        while true do
            wait(0)
            local value = table.remove(ans, 1)
            if value then
                sampSendChat(value)
                wait(3000)
            end
        end
    end)
    
    wait(-1)
end

Double Tap Inside

Известный
Проверенный
1,897
1,245
Lua:
sampev    = require "lib.samp.events"

---

ans = {}

sampev.onServerMessage(color, msg)
    if msg:match("привет") then
        table.insert(ans, "здарова")
    end
end

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1) end
    
    lua_thread.create(function()
        while true do
            wait(0)
            local value = table.remove(ans, 1)
            if value then
                sampSendChat(value)
                wait(3000)
            end
        end
    end)
    
    wait(-1)
end
 
  • Нравится
Реакции: Izvinisb и Cosmo