Отправка сообщения скриптом в чат, при появлении указанного в скрипте слова в чате

w99zzl1

Участник
Автор темы
86
9
Версия MoonLoader
.026-beta
Можно ли как то сделать, чтобы, например если в чате появилось сообщение "Привет" (не важно от кого, игрока, админ действия или системное сообщение), то скрипт писал "Привет". Для большей информации добавлю, что делаю я это чтобы фармить очки семьи, и не забывать про пабг таким образом:
Я играю на Advance RP, и там когда открыт тп на пабг, в чат сервера пишет:
"На PUBG не хватает игроков. Регистрация /pubg"
И вот мне хотелось бы, чтобы после появления такого сообщения, скрипт писал в чат семьи (/fm):
/fm /pubg 5 min
(и так 3 раза)
Попрошу может кто то знает как это сделать, помочь. Заранее спасибо!
 
Решение
убери скобки,я подумал это чатлог такой же,т.е будет так:
^На PUBG не хватает участников%. Вы можете попасть туда с помощью /pubg$
Изменил код:


Code:
function sampev.onServerMessage(color, text)
    if text:find('На PUBG не хватает участников.') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(180000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 1 min')
            sampSendChat('/fm /pubg 1 min')
            sampSendChat('/fm /pubg 1 min')
            end
        end)
    end
end
Теперь работает, но бывает скрипт пишет сам, я так понимаю это из за того, что после оповещения про пабг, идёт новый отчёт 4 минуты (180к мс), можно как...

chromiusj

R&B-baby-queen
Модератор
5,596
3,900
Lua:
local sampev = require('lib.samp.events')
function sampev.onServerMessage(color, text)
    if text:find('^%( На PUBG не хватает участников%. Вы можете попасть туда с помощью {.-}/pubg %)$') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(1000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 5 min')
            end
        end)
    end
end
 
Последнее редактирование:
  • Влюблен
  • Нравится
Реакции: w99zzl1 и plalkeo

w99zzl1

Участник
Автор темы
86
9
Скинь точную строчку из чатлога про пабг
На PUBG не хватает участников. Вы можете попасть туда с помощью /pubg
( На PUBG не хватает участников. Вы можете попасть туда с помощью {ff9933}/pubg )
 

chromiusj

R&B-baby-queen
Модератор
5,596
3,900
На PUBG не хватает участников. Вы можете попасть туда с помощью /pubg
( На PUBG не хватает участников. Вы можете попасть туда с помощью {ff9933}/pubg )
отредактировал свое сообщение,проверь
 

w99zzl1

Участник
Автор темы
86
9
Lua:
local sampev = require('lib.samp.events')
function sampev.onServerMessage(color, text)
    if text:find('^%( На PUBG не хватает участников%. Вы можете попасть туда с помощью {.-}/pubg %)$') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(1000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 5 min')
            end
        end)
    end
end
Хм... Что то не работает. Может я не то что то сделал? Вот код:

Code:
require 'moonloader'
local sampfuncs = require 'sampfuncs'
local sampev = require('lib.samp.events')
local sampAddChatMessage = function(message, color)
    sampAddChatMessage(message, color)
end

function main()
    while not isSampAvailable() do
        wait(100)
    end
    local message = "{FF00FF}[AutoPiar]: {FFFFFF}Использовать AutoPiar - {FF0000}/fpiar"
    sampAddChatMessage(message, -1)
    sampRegisterChatCommand('fpiar', fpiar)
    sampRegisterChatCommand('fprava', fprava)
    while true do
        wait(0)
    end
end

function sampev.onServerMessage(color, text)
    if text:find('^%( На PUBG не хватает участников%. Вы можете попасть туда с помощью {.-}/pubg %)$') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(1000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 5 min')
            end
        end)
    end
end

function fpiar()
    lua_thread.create(function()
        while true do
            sampSendChat('/f 2 Идёт набор в семью "Montgomery". Квартира ЛС. Премии...')
            sampSendChat('/f 2 ...коллектив братанов, шкаф и гараж! Звоните на номера:')
            sampSendChat('/f 2 10-20-30, 20-20-05, 20-72-07')
            sampSendChat('/f 2 (( Или пишите в тг: @w99zzl1, @Tajik102 и @Mal0yVLG ))')
            wait(600000) -- 600,000 - 10 минут, 300,000 - 5 минут, можете изминить
        end
    end)
end

function fprava()
    lua_thread.create(function()
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    sampSendChat('/fm _____________________________________')
    wait(1000)
    sampSendChat('/fm Просьба закрывать двери и глушить двигатели машин')
    wait(1000)
    sampSendChat('/fm Чтобы не было ситуаций, что не в подходящий момент 0 бензина в баках')
    wait(1000)
    sampSendChat('/fm Если же будет замечено, что кто то халатно относится к этому - КИК')
    wait(1000)
    sampSendChat('/fm Упомяну, что если вы хотите вовремя и верно получить премию за очки')
    wait(1000)
    sampSendChat('/fm Тогда напишите в группу фамы свой ник, счёт и его название. Кто уже писал - не пишите')
    wait(1)
    sampSendChat('/fm _____________________________________')
    wait(1)
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    wait(1)
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    end)
end

отредактировал свое сообщение,проверь
Навсякий кину скрин сообщения
sa-mp-276.png
 

chromiusj

R&B-baby-queen
Модератор
5,596
3,900
Хм... Что то не работает. Может я не то что то сделал? Вот код:

Code:
require 'moonloader'
local sampfuncs = require 'sampfuncs'
local sampev = require('lib.samp.events')
local sampAddChatMessage = function(message, color)
    sampAddChatMessage(message, color)
end

function main()
    while not isSampAvailable() do
        wait(100)
    end
    local message = "{FF00FF}[AutoPiar]: {FFFFFF}Использовать AutoPiar - {FF0000}/fpiar"
    sampAddChatMessage(message, -1)
    sampRegisterChatCommand('fpiar', fpiar)
    sampRegisterChatCommand('fprava', fprava)
    while true do
        wait(0)
    end
end

function sampev.onServerMessage(color, text)
    if text:find('^%( На PUBG не хватает участников%. Вы можете попасть туда с помощью {.-}/pubg %)$') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(1000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 5 min')
            end
        end)
    end
end

function fpiar()
    lua_thread.create(function()
        while true do
            sampSendChat('/f 2 Идёт набор в семью "Montgomery". Квартира ЛС. Премии...')
            sampSendChat('/f 2 ...коллектив братанов, шкаф и гараж! Звоните на номера:')
            sampSendChat('/f 2 10-20-30, 20-20-05, 20-72-07')
            sampSendChat('/f 2 (( Или пишите в тг: @w99zzl1, @Tajik102 и @Mal0yVLG ))')
            wait(600000) -- 600,000 - 10 минут, 300,000 - 5 минут, можете изминить
        end
    end)
end

function fprava()
    lua_thread.create(function()
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    sampSendChat('/fm _____________________________________')
    wait(1000)
    sampSendChat('/fm Просьба закрывать двери и глушить двигатели машин')
    wait(1000)
    sampSendChat('/fm Чтобы не было ситуаций, что не в подходящий момент 0 бензина в баках')
    wait(1000)
    sampSendChat('/fm Если же будет замечено, что кто то халатно относится к этому - КИК')
    wait(1000)
    sampSendChat('/fm Упомяну, что если вы хотите вовремя и верно получить премию за очки')
    wait(1000)
    sampSendChat('/fm Тогда напишите в группу фамы свой ник, счёт и его название. Кто уже писал - не пишите')
    wait(1)
    sampSendChat('/fm _____________________________________')
    wait(1)
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    wait(1)
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    end)
end


Навсякий кину скрин сообщения
Посмотреть вложение 230395
убери скобки,я подумал это чатлог такой же,т.е будет так:
^На PUBG не хватает участников%. Вы можете попасть туда с помощью /pubg$
 

w99zzl1

Участник
Автор темы
86
9
убери скобки,я подумал это чатлог такой же,т.е будет так:
^На PUBG не хватает участников%. Вы можете попасть туда с помощью /pubg$
Не работает :'(

Код:
require 'moonloader'
local sampfuncs = require 'sampfuncs'
local sampev = require('lib.samp.events')
local sampAddChatMessage = function(message, color)
    sampAddChatMessage(message, color)
end

function main()
    while not isSampAvailable() do
        wait(100)
    end
    local message = "{FF00FF}[AutoPiar]: {FFFFFF}Использовать AutoPiar - {FF0000}/fpiar"
    sampAddChatMessage(message, -1)
    sampRegisterChatCommand('fpiar', fpiar)
    sampRegisterChatCommand('fprava', fprava)
    while true do
        wait(0)
    end
end

function sampev.onServerMessage(color, text)
    if text:find('^На PUBG не хватает участников%. Вы можете попасть туда с помощью /pubg$') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(1000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 5 min')
            end
        end)
    end
end

function fpiar()
    lua_thread.create(function()
        while true do
            sampSendChat('/f 2 Идёт набор в семью "Montgomery". Квартира ЛС. Премии...')
            sampSendChat('/f 2 ...коллектив братанов, шкаф и гараж! Звоните на номера:')
            sampSendChat('/f 2 10-20-30, 20-20-05, 20-72-07')
            sampSendChat('/f 2 (( Или пишите в тг: @w99zzl1, @Tajik102 и @Mal0yVLG ))')
            wait(600000) -- 600,000 - 10 минут, 300,000 - 5 минут, можете изминить
        end
    end)
end

function fprava()
    lua_thread.create(function()
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    sampSendChat('/fm _____________________________________')
    wait(1000)
    sampSendChat('/fm Просьба закрывать двери и глушить двигатели машин')
    wait(1000)
    sampSendChat('/fm Чтобы не было ситуаций, что не в подходящий момент 0 бензина в баках')
    wait(1000)
    sampSendChat('/fm Если же будет замечено, что кто то халатно относится к этому - КИК')
    wait(1000)
    sampSendChat('/fm Упомяну, что если вы хотите вовремя и верно получить премию за очки')
    wait(1000)
    sampSendChat('/fm Тогда напишите в группу фамы свой ник, счёт и его название. Кто уже писал - не пишите')
    wait(1)
    sampSendChat('/fm _____________________________________')
    wait(1)
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    wait(1)
    sampSendChat('/fm !! УВВАЖАЕМЫЕ СО-ФАМОВЦЫ! ВНИМАНИЕ !!')
    end)
end
 

w99zzl1

Участник
Автор темы
86
9
убери скобки,я подумал это чатлог такой же,т.е будет так:
^На PUBG не хватает участников%. Вы можете попасть туда с помощью /pubg$
Изменил код:


Code:
function sampev.onServerMessage(color, text)
    if text:find('На PUBG не хватает участников.') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(180000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 1 min')
            sampSendChat('/fm /pubg 1 min')
            sampSendChat('/fm /pubg 1 min')
            end
        end)
    end
end
Теперь работает, но бывает скрипт пишет сам, я так понимаю это из за того, что после оповещения про пабг, идёт новый отчёт 4 минуты (180к мс), можно как то сделать, чтобы после сообщения про пабг, скрипт писал /fm /pubg 1 min, завершал работу, и снова срабатывал только при появлении нового оповещения про пабг? Заранее спасибо
 

plalkeo

Известный
707
280
Изменил код:


Code:
function sampev.onServerMessage(color, text)
    if text:find('На PUBG не хватает участников.') then
        lua_thread.create(function ()
            for i = 0 ,2 do
            wait(180000) -- чтобы антифлуд не руганулся,можешь настроить чуть помеьше
            sampSendChat('/fm /pubg 1 min')
            sampSendChat('/fm /pubg 1 min')
            sampSendChat('/fm /pubg 1 min')
            end
        end)
    end
end
Теперь работает, но бывает скрипт пишет сам, я так понимаю это из за того, что после оповещения про пабг, идёт новый отчёт 4 минуты (180к мс), можно как то сделать, чтобы после сообщения про пабг, скрипт писал /fm /pubg 1 min, завершал работу, и снова срабатывал только при появлении нового оповещения про пабг? Заранее спасибо
ну так убери тогда цикл и wait
 

w99zzl1

Участник
Автор темы
86
9
ну так убери тогда цикл и wait
тогда скрипт будет сразу писать в чат после появления сообщения, а нужно чтобы через 4 минуты после появления сообщения скрипт писал /fm /pubg 1 min (ведь когда появляется сообщение На PUBG не хватает участников, это значит что до начала пабга 5 минут, а телепортироваться туда за 5 минут до начала не хочется, вот и пишу скрипт чтоб он напоминал о пабге, когда осталась одна минута
 

Dmitriy Makarov

25.05.2021
Проверенный
2,500
1,132
тогда скрипт будет сразу писать в чат после появления сообщения, а нужно чтобы через 4 минуты после появления сообщения скрипт писал /fm /pubg 1 min (ведь когда появляется сообщение На PUBG не хватает участников, это значит что до начала пабга 5 минут, а телепортироваться туда за 5 минут до начала не хочется, вот и пишу скрипт чтоб он напоминал о пабге, когда осталась одна минута
Поменяй строки с for и wait местами.
 
  • Влюблен
Реакции: w99zzl1

w99zzl1

Участник
Автор темы
86
9
Поменяй строки с for и wait местами.
Всё равно, но вроде уже не так часто. Спасибо всем, очень помогли, буду играть так, (иногда бывает что скрипт пишет /fm pubg, а тп на пабг не открыт)