[Помощь] Автоответчик в смс для Advance RP
|
|
3loy_GameR |
Дата: Воскресенье, 20.08.2017, 14:27 | Сообщение # 1
|
Новичок
Сообщений: 4
Статус: Offline
|
Дело в том, что я не хочу пользоваться готовыми скриптами и мне нужен именно код, чтобы вставить в свой скрипт, но я не понимаю прикол функции RegExMatch и как ей правильно пользоваться, чтобы сделать автоответчик для смс. Заранее спасибо всем тем, кто откликнется мне помочь! Пример фразы из чатлога: [14:16:42] SMS: 1 | Отправитель: Nick_MacAdam [т.9339] Мне нужно чтобы автоответчик предложил мне ему ответить и при принятии сам написал в чат - "/sms 9339 "
|
|
|
|
Vlad2545 |
Дата: Воскресенье, 20.08.2017, 15:31 | Сообщение # 2
|
Новичок
Сообщений: 6
Статус: Offline
|
RegExMatch(A_LoopReadLine, "Отправитель:\s[A-Za-z_0-9]*?\[т.(\d+)\]", id)
(с) http://cheat-master.ru/forum/150-682805-1
|
|
|
|
Coockie |
Дата: Воскресенье, 20.08.2017, 15:33 | Сообщение # 3
|
Новичок
Сообщений: 27
Статус: Offline
|
Код Loop { if (RegExMatch(getChatLineEx(), "^SMS: .* \| Отправитель: (\w+)[_.*?] \[т\.(\d{4,6})\]$", value)) { SendChat("/sms " value2 " Привет, " value1) } }
|
|
|
|
3loy_GameR |
Дата: Воскресенье, 20.08.2017, 18:59 | Сообщение # 4
|
Новичок
Сообщений: 4
Статус: Offline
|
LAlt & 1:: Loop { if (RegExMatch(getChatLineEx(20), "^SMS: .* \| Отправитель: (\w+)[_.*?] \[т\.(\d{4,6})\]$", value)) { SendChat("/sms " value2 " Привет, " value1) } } return
LAlt & 2:: { addChatMessage(value2 "/" value1) } return
Все равно не могу понять, что я делаю не так. Вроде уже более понятно, чем все до этого, но переменные все равно не появляются. Первое, это то, что вы дали мне. А 2 было создано чисто для проверки переменных.Добавлено (20.08.2017, 18:59) --------------------------------------------- Пробовал как с getChatLineEx(20), так и с getChatLineEx()
Что касается багов у меня, то на этот счет могу сказать, что у меня пашут все gui менюшки и диалоги в игре. SAMP UDF тоже стоит последней версии.
|
|
|
|
Demy |
Дата: Воскресенье, 20.08.2017, 23:50 | Сообщение # 5
|
Бывалый
Сообщений: 422
Статус: Offline
|
Считывать строки нужно с конца. 1) Читаем весь файл 2) Делим его на строки (StrSplit) 3) Запускаем цикл с конца 4) Регуляркой ищем номер 5) Если найдер - выходим из цикла
AutoReporter / http://cheat-master.ru/forum/150-486717-1 Finder / http://cheat-master.ru/forum/160-497245-1 DLQ Binder / http://cheat-master.ru/forum/150-594163-1
У ТЕБЯ ЕСТЬ ИДЕЯ ДЛЯ ПРОГРАММЫ, НО САМ ТЫ НЕ МОЖЕШЬ НАПИСАТЬ КОД? ПИШИ МНЕ
|
|
|
|
Coockie |
Дата: Понедельник, 21.08.2017, 09:58 | Сообщение # 6
|
Новичок
Сообщений: 27
Статус: Offline
|
3loy_GameR, зачем ты 20-тую то строку указываешь? Убери 20 в функции getChatLineEx()
|
|
|
|
3loy_GameR |
Дата: Понедельник, 21.08.2017, 16:52 | Сообщение # 7
|
Новичок
Сообщений: 4
Статус: Offline
|
Я пробовал без 20 и с 20, у меня никаких ответов при нажатии Alt+1 не происходит, а если нажимать Alt+2 , то и переменные пустые Добавлено (21.08.2017, 16:52) --------------------------------------------- #include Samp.ahk LAlt & 1:: Loop { if (RegExMatch(getChatLineEx(), "^SMS: .* \| Отправитель: (\w+)[_.*?] \[т\.(\d{4,6})\]$", value)) { sleep 100 SendChat("/sms " value2 " Привет, " value1) } } return
Вот такой код тоже не хочет работать. Мне приходит смс, я нажимаю Alt+1, должно вроде сработать, но не хочет. Что я делаю не так?
|
|
|
|
|
Demy |
Дата: Понедельник, 21.08.2017, 17:52 | Сообщение # 9
|
Бывалый
Сообщений: 422
Статус: Offline
|
Phoenixxx_Czar, а потом кто-нибудь еще загорится таким вопрос,а ответа не найдет. Почему бы сразу сюда не написать?
AutoReporter / http://cheat-master.ru/forum/150-486717-1 Finder / http://cheat-master.ru/forum/160-497245-1 DLQ Binder / http://cheat-master.ru/forum/150-594163-1
У ТЕБЯ ЕСТЬ ИДЕЯ ДЛЯ ПРОГРАММЫ, НО САМ ТЫ НЕ МОЖЕШЬ НАПИСАТЬ КОД? ПИШИ МНЕ
|
|
|
|
Omicida |
Дата: Понедельник, 21.08.2017, 20:50 | Сообщение # 10
|
Любитель
Сообщений: 32
Статус: Offline
|
Попробуй
Код !1:: Loop { if (RegExMatch(getChatLineEx(), "SMS:(.*) \|(.*) Отправитель: (.*) \[(.*)т.(.*)\](.*)", var)) { ;~ var1 - text; var3 - nick; var5 - number nick := RegExReplace(var3, "_", " ") addChatMessageEx("FFFFFF", "Вам написал " nick " . Желаете ответить?") ; Y - да, N - нет Loop { if (GetKeyState("vk59", "P")) { SendInput, {F6}/sms %var5%{Space} Break } if (GetKeyState("vk4E", "P")) { addChatMessageEx("FFFFFF", "Вы отказались отвечать") Break } } }
} Return
Сообщение отредактировал Omicida - Понедельник, 21.08.2017, 22:00 |
|
|
|
|
3loy_GameR |
Дата: Понедельник, 21.08.2017, 22:47 | Сообщение # 12
|
Новичок
Сообщений: 4
Статус: Offline
|
Спасибо всем, кто пытался помочь. Особенное спасибо Phoenixxx_Czar за подробное разъяснение использования RegExMatch(). Тема закрыта.
|
|
|
|