[Помощь] Требуется вытащить из диалога id игроков.
|
|
ArrowOfDeath |
Дата: Воскресенье, 23.10.2016, 23:36 | Сообщение # 1
|
Советник
Сообщений: 629
Статус: Offline
|
Собственно вот начал:
Код #IfWinActive GTA:SA:MP #include samp.ahk
~enter:: ~numpadenter:: if (isInChat() = 1) { sleep, 300 dwAddress := dwSAMP + 0x12D8F8 chat := readString(hGTA, dwAddress, 256) if (chat == "/find") { return: if (isDialogOpen() = 1) { Dtext:=getDialogText() RegExMatch(Dtext, "G(.*)\n", out) RegExMatch(out1, "[0-9]+", chel) sendchat(""chel) ; my id return } if (isDialogOpen() = 0) { goto, return } } } return
Могу вытащить только свой id по первой букве. Надобно вытащить id всех игроков в списке + записывая id-ы в уникальную переменную ( дабы потом с id-ми можно было взаимодействовать, к примеру написать каждому игроку из этого списка SMS с одним и тем же текстом )
Заранее спасибо!
Мои AHК скрипты | Темы:
AHK
Сообщение отредактировал ArrowOfDeath - Воскресенье, 23.10.2016, 23:37 |
|
|
|
Demchog |
Дата: Понедельник, 24.10.2016, 07:34 | Сообщение # 2
|
Любитель
Сообщений: 33
Статус: Offline
|
Я сам не знаю, но дам совет. Через регулярку получаешь ID's через d, далее Loop, Parse, *твоя переменная*, `n, `r Как-то так.
|
|
|
|
|
MrGPro |
Дата: Понедельник, 24.10.2016, 18:31 | Сообщение # 4
|
Боец
Сообщений: 202
Статус: Offline
|
Прошу значение -> Dtext - в студию
Вот примерно так набросал:
Код #SingleInstance Force Name := Object() ID := Object()
Line= @( 15305050Dereck_McColl.[FAN][9] 19456323Amerigo_Foster.)([115] 7183183Gray_Fox[158] 8125588Sam_Jones[181] 8357987Alberto_Jones[538] )
Loop, parse, Line, `n { RegExMatch(A_LoopField, "[\d+](?<Name>[\)\(\[A-Z_.a-z]+[(A-Z_.a-z\]\)])\[(?<Id>\d{1,3})]", Script) Name.Insert(ScriptName) ID.Insert(ScriptId) }
F3:: For i in Name { MsgBox, % "/pm " . ID[i] . " - Привет: " . Name[i] . " - как поживаешь ?" } return
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
Сообщение отредактировал MrGPro - Понедельник, 24.10.2016, 20:22 |
|
|
|
ArrowOfDeath |
Дата: Понедельник, 24.10.2016, 22:40 | Сообщение # 5
|
Советник
Сообщений: 629
Статус: Offline
|
Если сохранять в txt то выходит пустой файл. Может инклуд сломан или мозг мой?
Код !1:: text := getdialogtext() FileAppend, %text%, %A_ScriptDir%/dialog.txt return
Пустой блокнот
Мои AHК скрипты | Темы:
AHK
|
|
|
|
artem227228 |
Дата: Понедельник, 24.10.2016, 22:59 | Сообщение # 6
|
Новичок
Сообщений: 20
Статус: Offline
|
Цитата ArrowOfDeath ( ) Если сохранять в txt то выходит пустой файл. Может инклуд сломан или мозг мой? Конечно неправильно, откуда ты будешь диалог брать то??? Вот тебе код нормальный:
Код !1:: sleep, 500 SendChat("/find") sleep, 400 text := getDialogText() Send, {ESC} FileAppend, %text%, %A_ScriptDir%\dialog.txt SAMP UDF не забудь подключить
Сообщение отредактировал artem227228 - Понедельник, 24.10.2016, 23:19 |
|
|
|
ArrowOfDeath |
Дата: Понедельник, 24.10.2016, 23:23 | Сообщение # 7
|
Советник
Сообщений: 629
Статус: Offline
|
artem227228, Пустой блокнот
Мои AHК скрипты | Темы:
AHK
|
|
|
|
artem227228 |
Дата: Понедельник, 24.10.2016, 23:40 | Сообщение # 8
|
Новичок
Сообщений: 20
Статус: Offline
|
Цитата ArrowOfDeath ( ) Пустой блокнот Возможно руки не из того места , должно всё работать, по крайней мере у меня всё работает.
|
|
|
|
ArrowOfDeath |
Дата: Понедельник, 24.10.2016, 23:59 | Сообщение # 9
|
Советник
Сообщений: 629
Статус: Offline
|
artem227228, Странно, у меня даже не высчитывает id игрока по нику, пишет -1..Также и по ID ник не считает.
Нашел проблемку..в SciTE4AutoHotkey
Мои AHК скрипты | Темы:
AHK
Сообщение отредактировал ArrowOfDeath - Вторник, 25.10.2016, 00:09 |
|
|
|
MrGPro |
Дата: Вторник, 25.10.2016, 02:23 | Сообщение # 10
|
Боец
Сообщений: 202
Статус: Offline
|
Цитата artem227228 ( ) Цитата ArrowOfDeath () Если сохранять в txt то выходит пустой файл. Может инклуд сломан или мозг мой?
Конечно неправильно, откуда ты будешь диалог брать то??? Вот тебе код нормальный: Код !1:: sleep, 500 SendChat("/find") sleep, 400 text := getDialogText() Send, {ESC} FileAppend, %text%, %A_ScriptDir%\dialog.txt
SAMP UDF не забудь подключить
Почему всё так сложно зачем записывать одну переменную диалога в текстовый файл а потом снова считывать эту же переменную с файла. Разве это не безумие, как говорил ранее Demchog
Цитата Demchog ( ) Через регулярку получаешь ID's через d, далее Loop, Parse, *твоя переменная*, `n, `r.
Как по мне в файл нужно записывать только: настройки (скрипта), лог(скрипта), фильтры(базы слов/предложений и т.п)
Да и вот что без указания `n - текст записывается слитно `r - через пустую строку Вот приме
Код FileAppend, %ScriptName%[%ScriptId%]`n, %A_ScriptDir%\dialog.txt
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
|
|
|
|
ArrowOfDeath |
Дата: Вторник, 25.10.2016, 12:29 | Сообщение # 11
|
Советник
Сообщений: 629
Статус: Offline
|
MrGPro, Благодарю , все получилось!)
Мои AHК скрипты | Темы:
AHK
|
|
|
|