Vladik2304 wrote: ↑20 Jan 2022, 16:05
Помогите написать код для копирования текста начинающегося с определённого слова из чата SAMP. Нужен код, который при нажатии на F2 копировал ответ администратора и вывод мне в чат, но от моего имени.
Пример из чата от другого админа:
"Администратор name_surname[id] для name2_surname2[id]: "Ответ админа для игрока" "
мне надо, чтобы копировал его ответ.
Предполагается, что
name_surname не содержат двоеточия, иначе работать это с ошибками.
Отправлять полученный текст нужно сырым (SendRaw), иначе, если в нём есть фигурные скобки и другие специальные символы, они могут быть неверно истолкованы AHK.
Я бы рекомендовал добавить задержку после каждого чтения/удаления, потому что вряд ли админы умеют писать со сверхсветовой скоростью, а постоянным чтением без задержки вы на диске дыру протрёте.
Code: Select all
F2::
chatfile = %A_MyDocuments%\RADMIR CRMP User Files\SAMP\chatlog.txt
Loop
{
FileRead, chattext, %chatfile%
Loop, Parse, chattext, `n, `r ; Проходимся по каждой строке лога
{
If (InStr(A_LoopField, "Администратор ") = 1) ; Если строка начинается со слова "Администратор"
{
colonPos := InStr(A_LoopField, ":") ; Находим двоеточие...
resultText := SubStr(A_LoopField, colonPos+2) ; Отсекаем всё, что до двоеточия и ещё два символа: само двоеточие и пробел.
SendRaw %resultText% ; Пишем найденный ответ как сырой текст.
Break ; Выходим из цикла, дальше лог не смотрим.
}
}
FileDelete, %chatfile%
Sleep 500
}
Return