- 108
- 10
- Версия MoonLoader
- .026-beta
Друзья, помогите пожалуйста написать скрипт авто подачи обьявления. Я нашел только какой то навороченный с кучей ненужных для меня функций, я бы хотел написать уже свой, с таким алгоритмом:
При вводе команды /text [ad text]
Скрипт отправляет в чат /ad [ad text]
При появлении [ad text] в чате, возобновлял процесс (/ad [ad text]
Сообщение в чате такое:
(в начале могут быть разные теги - LV, MM, SF, LS и разные разделители - | , кто то точку (ту самую большую по центру) ставит)
SF | Тут текст обьявлния | (- этот разделитель не меняется, он системный) Отправил мой ник (мой номер)
Т.е.:
MM | Приходите заниматься програмированием! | Отправил Arseniy_Samsonov (тел: 000)
попытавшись переделать уже имеющийся скрипт в просторах интернета, у меня получилось как то так. Но это не работает (не отправляет повторно)
При вводе команды /text [ad text]
Скрипт отправляет в чат /ad [ad text]
При появлении [ad text] в чате, возобновлял процесс (/ad [ad text]
Сообщение в чате такое:
(в начале могут быть разные теги - LV, MM, SF, LS и разные разделители - | , кто то точку (ту самую большую по центру) ставит)
SF | Тут текст обьявлния | (- этот разделитель не меняется, он системный) Отправил мой ник (мой номер)
Т.е.:
MM | Приходите заниматься програмированием! | Отправил Arseniy_Samsonov (тел: 000)
попытавшись переделать уже имеющийся скрипт в просторах интернета, у меня получилось как то так. Но это не работает (не отправляет повторно)
Lua:
local inicfg = require('inicfg')
local directIni = "AutoAD"
local ini = inicfg.load({
cfg = {
text = "",
}
}, directIni)
local config = ini.cfg
local active = false
function main()
while not isSampAvailable() do wait(0) end
inicfg.save(ini, directIni)
sampRegisterChatCommand("a_text", function(arg)
if arg and arg ~= "" then
config.text = arg:match("(.+)")
inicfg.save(ini, directIni)
sampAddChatMessage("{00ddff}[AutoAD] {ffffff}Текст установлен: {00ddff}" .. config.text, -1)
active = true
sendAd()
else
sampAddChatMessage("{00ddff}[AutoAD] {ffffff}Введите текст после команды: {00ddff}/a_text [текст]", -1)
end
end)
while true do
wait(0)
end
end
function onServerMessage(color, text)
if active and config.text ~= "" then
local nick = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(playerPed)))
local playerId = select(2, sampGetPlayerIdByCharHandle(playerPed))
text = text:gsub("{......}", "")
local pattern = "%u%u? | (.+) | Отправил " .. nick .. " %(тел: %d+%)"
local matchedText = text:match(pattern)
if matchedText and matchedText == config.text then
lua_thread.create(function()
sampAddChatMessage("{00ddff}[AutoAD] {ffffff}Объявление опубликовано. Отправка повторного объявления...", -1)
wait(3000)
sendAd()
end)
end
end
end
function sendAd()
if config.text ~= "" then
sampSendChat("/ad " .. config.text)
sampAddChatMessage("{00ddff}[AutoAD] {ffffff}Объявление отправлено: {00ddff}" .. config.text, -1)
else
sampAddChatMessage("{00ddff}[AutoAD] {ffffff}Текст объявления не задан. Используйте {00ddff}/a_text [текст]", -1)
active = false
end
end