1 (изменено: ssw, 2016-06-06 20:32:08)

Тема: Вывод текста из "chatlog" в диалоговое окно/чат. (SAMP).

Доброго времени сyток. Мне необходим cовет, небольшой набросок, который автоматически копирyет определеннyю строкy и вставляет ее мне в игровой чат. (samp)

Вот пример действия:

1. В чате появляется строка:

Цитата
[A] Nick_Name [1]: /kick 13 DM


2. Скриптy необходимо скопировать часть, в которой есть определенные ключевые слова.

И следовательно должно скопировать только "/kick 13 DM | Nick_Name"  и вставить ее в окошко чата сомой игры, которое открывается с помощью "F6".

Так же и с банами:

[A] Nick_Name [1]: /ban 13 30 SK
И следовательно должно скопировать только "/ban 13 30 SK | Nick_Name"

мyтами.

[A] Nick_Name [1]: /mute 13 30 MG
И следовательно должно скопировать только "/ban 13 30 MG | Nick_Name"

Сyть проблемы в том, что нyжно сделать так, чтобы скрипт искал исключительно по ключевым словам и вставлял мне все, что содержит - Код.

[A] Имя_Фамилия[1]: *Текст*

Вот как-то так, если же кто-то может написать код, помочь с данным вопрос, жду ответа. Спасибо.


Итак у меня получилось вот такое

#IfWinActive GTA:SA:MP 
!Down::
FileRead, Str, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
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)  
ToolTip % Clipboard := Match1
FileAppend,%Match1%`n,logachat.ini
Sleep 100
SendMessage, 0x50,, 0x4190419,, A
SendInput,{F6}%match1% {Home}{right 1}{bs}{end}{enter}
clipboard =
ToolTip
FileDelete,%A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
Return

Я добился того, чтоб копировалось последнее сообщение из чата "/a".
Но, еще мне надо, чтоб в причину вписывался именно тот Nick Name который написал в "/a" чат.
К примеру:
В "/a" написали
Nick_Name[111]: [A] /mute 100 20 MG
Просто выдать "/mute 100 20 MG" я могу, но мне надо, чтоб указывался еще и ник после причины "MG".
Вот так должно оно быть.
Прописываться автоматически должно:
/mute 110 20 MG by Nick_Name

Я думаю это все можно сделать с помощью того же, "chatloga" а именно с помощью "id" находить Nick_Name и вводить в самый конец, но на данный момент я не понимаю как все это воплотить.

2

Re: Вывод текста из "chatlog" в диалоговое окно/чат. (SAMP).

ssw, ознакомьтесь с этой темой, отредактируйте свой пост.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: Вывод текста из "chatlog" в диалоговое окно/чат. (SAMP).

ssw пишет:

Мне необходим AHK, который автоматически копирyет определеннyю строкy и вставляет ее мне.

Куда вставляет?

4

Re: Вывод текста из "chatlog" в диалоговое окно/чат. (SAMP).

SeaVodikendu, не нужно торопиться, дайте возможность человеку исправиться.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: Вывод текста из "chatlog" в диалоговое окно/чат. (SAMP).

Оставь свой скайп. Напишу и расскажу.

6

Re: Вывод текста из "chatlog" в диалоговое окно/чат. (SAMP).

Можно попробовать как-то так.


path_log := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"  ; Путь к chatlog

Numpad1::
log := {str:"",find:0,num:0}    ,    log.str := []

Loop, read, %path_log%
    log.str.Insert(A_LoopReadLine)    ,log.num := A_Index

loop 20
    if RegExMatch(     log.str[log.num + 1 - A_Index]
        ,"[A] (.*)_(.*) \[(.*)\]: /kick (.*)"
        , end_str) and (log.find:=log.num + 1 - A_Index)
            break
	;// [A] Nick_Name [1]: /kick 13 DM
sendinput {f6}/kick %end_str4%{space}
return

Если есть timestamp то

"\[(.*)\] [A] (.*)_(.*) \[(.*)\]: /kick (.*)"

Примерно так