Самп эвент

Seaside_

Участник
Автор темы
64
2
Версия MoonLoader
.026-beta
Как сделать чтобы onServerMessage читал строчку, видел id и обращался к id типо вот так
Lua:
ev = require 'samp.events'
function main()
  while not isSampAvailable() do wait(0) end
  sampRegisterChatCommand('test', s)
  while true do wait(0)
end
function s(id)
sampAddChatMessage('Active', -1)
 function ev.OnServerMessage(clr, text)
 if string.find(text, '%a_%a[%d]') then

 sampSendChat('/sms' ) --как отправить по id
 end
end
 
Решение
smsto это для всех команд, или только для /sms?
smsto это просто название переменной, ты можешь назвать её как хочешь и вставлять тоже куда хочешь. Сейчас сделаю пример, в котором я повторяю опять же поиск шаблоном, но уже называю переменную по другому в которую сохраняю и вставляю её в несколько сообщений:

Код:
idman = text:match("Только что .+[(.+)] успешно покакал!")
sampAddChatMessage("Айди человека который покакал - "..idman)
sampSendChat("/sms "..idman.." с облегчением тебя!")
sampSendChat("/f Прикинь щас "..idman.." покакал!")

|DEVIL|

Известный
363
283
Как сделать чтобы onServerMessage читал строчку, видел id и обращался к id типо вот так
Lua:
ev = require 'samp.events'
function main()
  while not isSampAvailable() do wait(0) end
  sampRegisterChatCommand('test', s)
  while true do wait(0)
end
function s(id)
sampAddChatMessage('Active', -1)
function ev.OnServerMessage(clr, text)
if string.find(text, '%a_%a[%d]') then

sampSendChat('/sms' ) --как отправить по id
end
end
Смотря какую строчку. Допустим ты хочешь найти такую строчку:
Только что Alex_Devil[49] успешно покакал!
В таком случае мы должны использовать шаблоны (Как юзать по ссылке http://bot4sale.ru/blog-menu/qlua/265-lua-patterns.html ), и мы должны найти айди человека. Но для начала мы должны искать эту строчку, поэтому пишем это:
if text:find("Только что") and text:find("успешно показал") then
Выше я разбил поиск на 2 части
Итак, эта строка нашлась, что делаем дальше? Ищем ник и айди
smsto = text:match("Только что .+[(.+)] успешно покакал!") -- мб маленько не правильный шаблон, но думаю что всё правильно
smsto теперь содержит айди человека. Остаётся отправить сообщение:
sampSendChat("/sms "..smsto.." привет, поздравляю с облегчением!")
 

Seaside_

Участник
Автор темы
64
2
Смотря какую строчку. Допустим ты хочешь найти такую строчку:
Только что Alex_Devil[49] успешно покакал!
В таком случае мы должны использовать шаблоны (Как юзать по ссылке http://bot4sale.ru/blog-menu/qlua/265-lua-patterns.html ), и мы должны найти айди человека. Но для начала мы должны искать эту строчку, поэтому пишем это:
if text:find("Только что") and text:find("успешно показал") then
Выше я разбил поиск на 2 части
Итак, эта строка нашлась, что делаем дальше? Ищем ник и айди
smsto = text:match("Только что .+[(.+)] успешно покакал!") -- мб маленько не правильный шаблон, но думаю что всё правильно
smsto теперь содержит айди человека. Остаётся отправить сообщение:
sampSendChat("/sms "..smsto.." привет, поздравляю с облегчением!")
smsto это для всех команд, или только для /sms?
 

|DEVIL|

Известный
363
283
smsto это для всех команд, или только для /sms?
smsto это просто название переменной, ты можешь назвать её как хочешь и вставлять тоже куда хочешь. Сейчас сделаю пример, в котором я повторяю опять же поиск шаблоном, но уже называю переменную по другому в которую сохраняю и вставляю её в несколько сообщений:

Код:
idman = text:match("Только что .+[(.+)] успешно покакал!")
sampAddChatMessage("Айди человека который покакал - "..idman)
sampSendChat("/sms "..idman.." с облегчением тебя!")
sampSendChat("/f Прикинь щас "..idman.." покакал!")
 
  • Нравится
Реакции: Seaside_