refactoring35764 |
Дата: Вторник, 05.11.2024, 18:57 | Сообщение # 1
|
Новичок
Сообщений: 1
Статус: Offline
|
В общем, такая тема, без всяких udf и т.п прошу помощи у тех, кто разбирается
Есть код:
Код #IfWinActive, ahk_exe gta_sa.exe
#SingleInstance Force
#NoEnv
ListLines Off
SetBatchLines -1
chatlog := A_MyDocuments "\RADMIR CRMP User Files\SAMP\chatlog.txt"
;FileDelete, %chatlog%
Words = (warn|kick|ban|mute|jail|skick|hp|skin|o|msg|unban|unwarn|unmute|rban|unjail|offban|offwarn|spcar|sban|offjail|offmute|sp|get|money|alist|offunwarn|getv|slap|getcar|okay|setleader|setweather|sw|settime|st|z|z_close|rmute|soffban|msg)
F5::
FileRead, Str, %chatlog%
StringReplace, Str, Str, `r`n, `n, 1
StringReplace, Str, Str, `r, `n, 1
RegExMatch("`n" Str "`n", "i).*\n\[\d+:\d+:\d+]\s*\[A].*?\[.*?]:\s*(/`*" Words "\s.*?)\n", Match)
FileAppend,%Match1%`n,chat.ini
SendMessage, 0x50,, 0x4190419,, A
SendInput,{F6}%match1%{space}
Return
Вроде как должен работать так:
человек пишет в чат:
[чч:мм:сс] [А] Nick_Name[ID человек]: /ban Nick_Name(или же id, вроде все что угодно) время причина
А скрипт берет строку: /ban Nick_Name(или же id, вроде все что угодно) время причина
и сразу же вписывает ее в чат, который на F6 работает.
ТЕПЕРЬ САМ ВОПРОС Кто разбирается, можете пожалуйста изменить этот ахк так, чтобы при подобном сообщении в чатлоге:
[чч:мм:сс] [какой-то текст большими буквами] Nick_Name[ID игрока] : {FFCD00}Текст
(строку выше взял полностью из чат лога, заменил все, что понимаю, а что идет до текста, я так понял это его цвет)
скрипт по нажатию определенных клавишь выводил мне в чат сообщение:
/pm [И ВОТ ТУТ ID ИГРОКА без скобочек]
Вроде описал более менее подробно, буду благодарен помощи, т.к в ахк совсем не разбираюсь. пытался делать сам, не видит ничего
-
|
|
|
|
Ky6uk^ |
Дата: Среда, 06.11.2024, 14:28 | Сообщение # 2
|
Боец
Сообщений: 240
Статус: Offline
|
; Открываем чатлог ControlSend, , /chatlog, ahk_class gta_sa
; Ждем некоторое время, чтобы чатлог загрузился Sleep, 500
; Вводим команду, чтобы получить список игроков ControlSend, , /players, ahk_class gta_sa
; Ждем некоторое время, чтобы список игроков загрузился Sleep, 500
; Копируем весь текст чатлога в переменную ControlSend, , ^a^c, ahk_class gta_sa Sleep, 500 text := Clipboard
; Разделяем текст на строки Loop, Parse, text, `n { ; Проверяем каждую строку на наличие id конкретного игрока if InStr(A_LoopField, "PlayerName") { ; Парсим id игрока StringSplit, id, A_LoopField, `, ; Выводим id игрока MsgBox, % "ID игрока: " id1 } }
Если вам удалось кинуть кого-то,не думайте что он дурак,просто человек доверял вам больше,чем вы того заслуживаете !
|
|
|
|