1 (изменено: Denis, 2015-07-27 16:05:03)

Тема: Считывание с чатлога IP и запуск сервера

Здравствуйте.
Учусь скриптить на AHK, по совмест. пытаюсь сделать такой скриптик который позволит: После того как игра закроется (краш/выход), скрипт считывает с чатлога IP сервера на котором мы в последний раз играли и запускает сервер с этим IP. Вот соорудил и даже незнаю правильно ли сделано.
Вот весь код:
#include SAMP.ahk

Process, Exist, gta_sa.exe []
IfInString, A_LoopReadLine, Connecting to
FileRead, chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
RegExMatch(ChatLog, "\QConnecting to \E(.*)\Q...\E", IP)
Run, samp:// IP

Выдаёт ошибку в последней строчке, может быть не правильно как - то вставил переменную "IP", которая должна содержать IP адрес считанный с чатлога, читал, что такая переменная должна быть без знаков "%".
Подскажите пожалуйста, как тут быть?

2

Re: Считывание с чатлога IP и запуск сервера

Неправильно.
Надо в цикле проверять существование процесса.
Проверять ErrorLevel.
Если он показывает, что процесса не существует, считывать в переменную файл и Регексом отсекать ненужное.
Что сохраняется в переменную IP можно посмотреть с помощью msgbox.

RegExMatch(ChatLog, "Connecting to (.*)\Q...\E", IP)

У вас тут адрес сохраняется не в IP, а в IP1.

3 (изменено: Denis, 2015-07-27 13:36:22)

Re: Считывание с чатлога IP и запуск сервера

Благодарю, а вот такой вот ещё вопросик ErrorLevel = 0 - указывает на то, что процесс существует,
а ErrorLevel - 1 наоборот я так понял?

4 (изменено: Malcev, 2015-07-27 14:18:10)

Re: Считывание с чатлога IP и запуск сервера

Exist: помещает в ErrorLevel идентификатор процесса (PID), если соответствующий процесс существует, иначе 0.

http://script-coding.com/AutoHotkey/Process.html
ЗЫ В первом сообщении поставьте ваш код в тег Code.

5 (изменено: yalanne, 2015-07-27 14:30:15)

Re: Считывание с чатлога IP и запуск сервера

А зачем цикл? Если можно так:

WinWaitClose % "ahk_id" WinExist("ahk_exe gta_sa.exe")
msgbox 1

6 (изменено: Malcev, 2015-07-27 14:45:33)

Re: Считывание с чатлога IP и запуск сервера

Точно. Тогда так:

Process, WaitClose, gta_sa.exe []
msgbox процесс закрыт

7

Re: Считывание с чатлога IP и запуск сервера

Denis, не создавайте темы по играм в ветке AutoHotkey. Ознакомьтесь с этой темой, отредактируйте свой пост. Остальным участникам напоминаю:

Крайне нежелательно отвечать в темах, оформленных неправильно!

В следующий раз буду удалять ответы.

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

8

Re: Считывание с чатлога IP и запуск сервера

И так же тема была создана в  AutoHotKey — Games .

9

Re: Считывание с чатлога IP и запуск сервера

Denis, оформите код правильно.

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

10

Re: Считывание с чатлога IP и запуск сервера

Заголовок исправил.
При запуске выдаёт ошибку, читал, что тут знаков процента не должно быть. Что-то ещё добавить нужно?
http://rghost.ru/68rQDfq6D/image.png

11

Re: Считывание с чатлога IP и запуск сервера

Заголовок исправил.

Вставьте свой код в тег Code в первом посте.

И так же тема была создана в  AutoHotKey — Games.

Тут префикс AHK не нужен.
teadrinker, кстати, почему?

12

Re: Считывание с чатлога IP и запуск сервера

Вставил свой код в тег.

13

Re: Считывание с чатлога IP и запуск сервера

А так?

Process, WaitClose, gta_sa.exe []
FileRead, chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
RegExMatch(ChatLog, "Connecting to (.*)\Q...\E", IP)
msgbox % IP1
Run, samp://%IP1%

14 (изменено: Denis, 2015-07-27 16:48:09)

Re: Считывание с чатлога IP и запуск сервера

Последний IP на который я заходил показывается в окошке, но после "msgbox'a", появляется ошибка:
http://rghost.ru/8Ncd7CZkM/image.png

15

Re: Считывание с чатлога IP и запуск сервера

Malcev пишет:

teadrinker, кстати, почему?

Так договорились, чтоб отличалось.

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

16 (изменено: Malcev, 2015-07-27 17:15:34)

Re: Считывание с чатлога IP и запуск сервера

Последний IP на который я заходил показывается в окошке, но после "msgbox'a", появляется ошибка:

Написано, что программа, которая открывает этот протокол у тебя не установлена.

samp://%IP1%

17

Re: Считывание с чатлога IP и запуск сервера

А что делать теперь? как устанавливать?

18

Re: Считывание с чатлога IP и запуск сервера

Не знаю. У меня этой игры нету.

19

Re: Считывание с чатлога IP и запуск сервера

Переустанови SAMP, просто по умолчанию не задано значение для запуска через samp://.

Как сказал мой дед - Я твой дед

20

Re: Считывание с чатлога IP и запуск сервера

Спасибо, всё работает. У меня вот ещё такой вопрос, как в строке среди текста вычислить ник, возьмём к примеру подачу гос. новостей в игре samp:
Гос. новости: Kenny_Drummer: Уважаемые жители штата, сообщает Генерал полиции г.Los-Santos
Как вычислить Nick с чатлога, с nick'a вычислить ID и ID поместить в переменную?
Заранее спасибо.

21 (изменено: yalanne, 2015-07-28 22:03:48)

Re: Считывание с чатлога IP и запуск сервера

Denis пишет:

с nick'a вычислить ID.

А разве у вас не показывается рядом в квадратных скобках id.
http://i.imgur.com/cwtjCif.jpg

Если да то вот код:

#if WinActive("GTA:SA:MP")
F1::
FileRead, chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
RegExMatch(chatlog,"^(?:.+?\R)+.+Гос\. новости: (.+?)\[(.+?)\]",match)
SendInput {F6}^anick: %match1% - id: %match2%