Хочу вывести в AddChatMessage текст который я введу в диалог.
RegExMatchДля чего нужен RegEx? Он как RegExMatch?
т.е выводится диалог с типом Input (как с паролями) и когда игрок нажмёт на Enter, то выводится введённый текст? если да, то ща скинуХочу вывести в AddChatMessage текст который я введу в диалог.
А можно по примеру? я по нему разберусь.
[18:55:22] Состояние ГС: 130/148
Да, ты правильно меня понял.RegExMatch
RegEx
т.е выводится диалог с типом Input (как с паролями) и когда игрок нажмёт на Enter, то выводится введённый текст? если да, то ща скину
А можно по примеру? я по нему разберусь.
допустим вот чат лог
Мне нужно чтобы писал в /r Состояние склада (тут первое значение) на (второеAutoHotKey:[18:55:22] Состояние ГС: 130/148
if (RegExMatch(getChatLineEx(), "Состояние ГС: (\d+)\/(\d+)", out)) {
SendChat("/r Состояние склада: " out1 "/" out2)
}
Пацаны, как сделать вывод введённого текста?
AutoHotKey:#SingleInstance, Force #include samp.ahk ~$Enter:: if (isDialogOpen() && getDialogCaption() == "Заголовок") { ; Тут бы вывести значение введённого текста.. } return !1:: showDialog(1, "Заголовок", "Текст", "Закрыть!") return
LineResult() {
if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3)
return false
while (isDialogOpen())
continue
if(GetKeyState("Esc", "P"))
return false
return getDialogLineNumber()
}
:?:/cmd::
showDialog(1, "Заголовок", "Текст", "Закрыть!")
line := LineResult()
if (!line)
retern
if line = "1"
{
addChatMessage("Значение Текста")
}
return
А можно по примеру? я по нему разберусь.
допустим вот чат лог
Мне нужно чтобы писал в /r Состояние склада (тут первое значение) на (второеAutoHotKey:[18:55:22] Состояние ГС: 130/148
#NoEnv
SendMode Input
#SingleInstance force
#Include SAMP.ahk
#IfWinActive GTA:SA:MP
cl = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; путь к чат логу
SetTimer, ch ,20 ; каждые 20 мс обновляет метку ch (чтение чат лога)
ch:
{
FileRead, chatlog, % cl ; чтение чат-лога
if (RegExMatch(chatlog, "Состояние ГС\:\s(\d{1,3})/148", string)) ; пропускает через \d (любое число), с ограничением {1,3} - от 1 до 3 чисел
{
if (string1 == 148) ; если на складе 148/148
{
FileDelete, % cl ; удаляется лог, чтобы не активировалось повторно много раз (чтобы не флудило)
SendChat("/r Главный склад полный!")
return
}
if (string1 <= 147) ; если на складе меньше чем 148
{
FileDelete, % cl ; удаляется лог, чтобы не активировалось повторно много раз (чтобы не флудило)
SendChat("/r состояние главного склада: " string1 "/148)
return
}
}
}
Нет. Он не выводит введённый мною текст.AutoHotKey:LineResult() { if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3) return false while (isDialogOpen()) continue if(GetKeyState("Esc", "P")) return false return getDialogLineNumber() } :?:/cmd:: showDialog(1, "Заголовок", "Текст", "Закрыть!") line := LineResult() if (!line) retern if line = "1" { addChatMessage("Значение Текста") } return
Ты это имел введу?
это не то, это вывод номера выбранной строки, а ему нужен введённый текстAutoHotKey:LineResult() { if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 1 || getDialogStyle() = 3) return false while (isDialogOpen()) continue if(GetKeyState("Esc", "P")) return false return getDialogLineNumber() } :?:/cmd:: showDialog(1, "Заголовок", "Текст", "Закрыть!") line := LineResult() if (!line) retern if line = "1" { addChatMessage("Значение Текста") } return
Ты это имел введу?
лови, меняй под себяНет. Он не выводит введённый мною текст.
Showdialog("1", "{800080}[AHK] {F5A823}Dialog:", "{F5A823}В{66CDAA}ведите текст для его вывода в чат", "Ввод")
while (isDialogOpen())
{
if (GetKeyState("Escape", "P") or (isDialogButtonSelected(2) = true and GetKeyState("LButton", "P")))
{
Gosub, metka
return
}
}
inputText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
Gosub, metka
Return
metka:
{
addChatMessage("{800080}[AHK] {66CDAA}Text: " inputText "")
return
}
{
Нет. Он не выводит введённый мною текст.
Если не рабит попробуй этоэто не то, это вывод номера выбранной строки, а ему нужен введённый текст
лови, меняй под себя
Должно работать, если нет, то я рукожоп(я рукожоп кста)AutoHotKey:Showdialog("1", "{800080}[AHK] {F5A823}Dialog:", "{F5A823}В{66CDAA}ведите текст для его вывода в чат", "Ввод") while (isDialogOpen()) { if (GetKeyState("Escape", "P") or (isDialogButtonSelected(2) = true and GetKeyState("LButton", "P"))) { Gosub, metka return } } inputText := readString(hGTA, dwSAMP + 0x12D8F8, 256) Gosub, metka Return metka: { addChatMessage("{800080}[AHK] {66CDAA}Text: " inputText "") return } {
F1::
{
ShowDialog("1", "Заголовок", "Текст", "Ok")
while (!GetKeyState("Enter", "P") && !GetKeyState("Esc", "P"))
continue
if (GetKeyState("Enter", "P")) {
sleep 200
txt := readString(hGTA, dwSAMP + 0x12D8F8, 256)
}
AddChatMessage("Ты ввел "txt)
return
Спасибо, даже больше чем я просил, лайк)AutoHotKey:#NoEnv SendMode Input #SingleInstance force #Include SAMP.ahk #IfWinActive GTA:SA:MP cl = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; путь к чат логу SetTimer, ch ,20 ; каждые 20 мс обновляет метку ch (чтение чат лога) ch: { FileRead, chatlog, % cl ; чтение чат-лога if (RegExMatch(chatlog, "Состояние ГС\:\s(\d{1,3})/148", string)) ; пропускает через \d (любое число), с ограничением {1,3} - от 1 до 3 чисел { if (string1 == 148) ; если на складе 148/148 { FileDelete, % cl ; удаляется лог, чтобы не активировалось повторно много раз (чтобы не флудило) SendChat("/r Главный склад полный!") return } if (string1 <= 147) ; если на складе меньше чем 148 { FileDelete, % cl ; удаляется лог, чтобы не активировалось повторно много раз (чтобы не флудило) SendChat("/r состояние главного склада: " string1 "/148) return } } }
Выводит, но есть одно но: Я ввожу: qwe, а мне в чат пишет: Вы ввели - 'qw'.Если не рабит попробуй это
AutoHotKey:F1:: { ShowDialog("1", "Заголовок", "Текст", "Ok") while (!GetKeyState("Enter", "P") && !GetKeyState("Esc", "P")) continue if (GetKeyState("Enter", "P")) { sleep 200 txt := readString(hGTA, dwSAMP + 0x12D8F8, 256) } AddChatMessage("Ты ввел "txt) return
его или моё выводит? qwВыводит, но есть одно но: Я ввожу: qwe, а мне в чат пишет: Вы ввели - 'qw'.