Флуд в цикле.

blame

Участник
Автор темы
46
12
Версия MoonLoader
.026-beta
Всем привет, хочу сделать что-нибудь на подобии этого

Lua:
if test == 1 then
    sampProcessChatInput('/recon')
    sampProcessChatInput('/scriptchangemode')
    return false
end

Но, как только начинается произведение функции, то эти команды пишутся не один раз, а бесконечно, как это можно исправить?
Заранее спасибо..
 
Последнее редактирование:
Решение
Ты не понял, у меня получается, при виде того что у меня в инвентарь был добавлен предмет идет test = test + 1
И если test == 5 например, то только тогда нужно будет ввести /recon
Lua:
local se = require 'samp.events'
local test = 0

-- while true do
if test == 5 then
    sampSendChat('/recon') -- либо что нужно
    test = 0 -- сбиваем счетчик, чтоб после реконнекта был снова 0
end

function se.onServerMessage(color, text)
    if text:find('text') then
        test = test + 1
    end
end

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,742
Всем привет, хочу сделать что-нибудь на подобии этого

Lua:
if test == 1 then
    sampProcessChatInput('/recon')
    sampProcessChatInput('/scriptchangemode')
    return false
end

Но, как только начинается произведение функции, то эти команды пишутся не один раз, а бесконечно, как это можно исправить?
Заранее спасибо..
Объяснение на высоте. Сделал как понял:
Lua:
sampRegisterChatMessage('test', function()
    if test == 1 then
        sampProcessChatInput('/recon')
        sampProcessChatInput('/scriptchangemode')
        return false
    end
end)
Если нужен аргумент:
Lua:
sampRegisterChatMessage('test', function(arg)
    if #arg == 1 then
        sampProcessChatInput('/recon')
        sampProcessChatInput('/scriptchangemode')
        return false
    end
end)
Код не менял который выше кидали.
 
  • Нравится
Реакции: James Saula

blame

Участник
Автор темы
46
12
Объяснение на высоте. Сделал как понял:
Lua:
sampRegisterChatMessage('test', function()
    if test == 1 then
        sampProcessChatInput('/recon')
        sampProcessChatInput('/scriptchangemode')
        return false
    end
end)
Если нужен аргумент:
Lua:
sampRegisterChatMessage('test', function(arg)
    if #arg == 1 then
        sampProcessChatInput('/recon')
        sampProcessChatInput('/scriptchangemode')
        return false
    end
end)
Код не менял который выше кидали.
Да, согласен, я неправильно объяснил.
Вообщем, у меня при виде одинакого сообщения в чате, к test прибавляется значение +1 и я хочу сделать так, чтобы если тест равен 1, то у меня реконнектится к серверу, но у меня начинает флудить /recon без остановки, хотя должно 1 раз написать и все
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,742
Да, согласен, я неправильно объяснил.
Вообщем, у меня при виде одинакого сообщения в чате, к test прибавляется значение +1 и я хочу сделать так, чтобы если тест равен 1, то у меня реконнектится к серверу, но у меня начинает флудить /recon без остановки, хотя должно 1 раз написать и все
Можно так сделать:
Lua:
local se = require 'samp.events'
local test = false

-- while true do
if test then
    sampSendChat('/recon') -- либо что нужно
    test = false
end

function se.onServerMessage(color, text)
    if text:find('text') then
        test = true
    end
end
 
  • Нравится
Реакции: James Saula

blame

Участник
Автор темы
46
12
Можно так сделать:
Lua:
local se = require 'samp.events'
local test = false

-- while true do
if test then
    sampSendChat('/recon') -- либо что нужно
    test = false
end

function se.onServerMessage(color, text)
    if text:find('text') then
        test = true
    end
end
Ты не понял, у меня получается, при виде того что у меня в инвентарь был добавлен предмет идет test = test + 1
И если test == 5 например, то только тогда нужно будет ввести /recon
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,742
Ты не понял, у меня получается, при виде того что у меня в инвентарь был добавлен предмет идет test = test + 1
И если test == 5 например, то только тогда нужно будет ввести /recon
Lua:
local se = require 'samp.events'
local test = 0

-- while true do
if test == 5 then
    sampSendChat('/recon') -- либо что нужно
    test = 0 -- сбиваем счетчик, чтоб после реконнекта был снова 0
end

function se.onServerMessage(color, text)
    if text:find('text') then
        test = test + 1
    end
end
 
  • Нравится
Реакции: James Saula и blame

Rei

Известный
Друг
1,590
1,607
Lua:
local se = require 'samp.events'
local test = 0

-- while true do
if test == 5 then
    sampSendChat('/recon') -- либо что нужно
    test = 0 -- сбиваем счетчик, чтоб после реконнекта был снова 0
end

function se.onServerMessage(color, text)
    if text:find('text') then
        test = test + 1
    end
end
Почему бы сразу в хуке не проверять?
 
  • Нравится
Реакции: PanSeek

blame

Участник
Автор темы
46
12
Lua:
local se = require 'samp.events'
local test = 0

-- while true do
if test == 5 then
    sampSendChat('/recon') -- либо что нужно
    test = 0 -- сбиваем счетчик, чтоб после реконнекта был снова 0
end

function se.onServerMessage(color, text)
    if text:find('text') then
        test = test + 1
    end
end
Спасибо, работает