Вопросы по AHK-скриптингу

#Rin

Известный
Всефорумный модератор
1,214
1,035
7HI1qms.png
А где UDF?
 

оedgfdghdgsd

Известный
4
0
@kostr04

AutoHotKey:
vk30:: ; 0x30 > 48 > VK_D0
    if isInChat()
        return
    nick := ""
    loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
    {
        if RegExMatch(A_LoopReadLine, "SMS:{FFFFFF} .* {FFFF00}От: {FFFFFF}(.*) {FFFF00}Тел: {FFFFFF}", m)
            nick := m1
    }
    if strlen(nick)
        sendinput {f6}/sms %nick%{space}
return
Какая клавиша, не работает если "0"
 

asdzxcjqwe

¯\_(ツ)_/¯
Друг
621
704
Вообще код не работает, нажимаю на 0 не работает, нажимаю на numpad0 тоже
значит у тебя считывает chatlog в другой кодировке

перед loop, read ставь это:
AutoHotKey:
FileEncoding, utf-8

если прям лень искать где это:
AutoHotKey:
vk30:: ; 0x30 > 48 > VK_D0
    if isInChat()
        return
    nick := ""
    FileEncoding, utf-8
    loop, read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
    {
        if RegExMatch(A_LoopReadLine, "SMS:{FFFFFF} .* {FFFF00}От: {FFFFFF}(.*) {FFFF00}Тел: {FFFFFF}", m)
            nick := m1
    }
    if strlen(nick)
        sendinput {f6}/sms %nick%{space}
return
 
  • Нравится
Реакции: Cesar Ballard

TopMo3

Участник
121
7
Можете подсказать, как сделать, чтобы при запуске скрипта в чат писалось сообщение, я буду благодарен, если вы напишите мне под моим постом, а не скажите, что тут есть так как тут 33 страницы и это долго искать, кто поможет спасибо!
 

Vlad Horii

Известный
Проверенный
310
171
Можете подсказать, как сделать, чтобы при запуске скрипта в чат писалось сообщение, я буду благодарен, если вы напишите мне под моим постом, а не скажите, что тут есть так как тут 33 страницы и это долго искать, кто поможет спасибо!
Где-то в начале скрипта пиши следующее:
AutoHotKey:
addChatMessage("Hi man")
 

ndehost

Новичок
1
0
У меня не корректно пашет "/арест"
#Include, SAMP-UDF-Developer.ahk
#IfWinActive, GTA:SA:MP
#SingleInstance, Force
global ArrayF1 :=["/do 1.","/do 2","/do 3","/do 4","/do Конец АХК."]
global ArrayF2 :=["/me 1","/me 2","/me 3","/me 4","/do Конец АХК."]
global ArrayF3 :=["/me 5","/me 6","/me 7","/do Конец АХК."]
$~Enter::
if (isInChat() && !isDialogOpen())
{
Sleep 200
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if (RegExMatch(chatInput, "^\/арест"))
{
ArrayToSendChat(ArrayF1)
addChatMessageEx(0xBDBDBD, "Нажмите ""F2"", что бы продолжить арест. Нажмите ""F3"" что бы зачитать Миранду ")
if(RegExMatch)
{
F2::
Sleep 500
ArrayToSendChat(ArrayF2)
}
if(RegExMatch)
{
F3::
Sleep 500
ArrayToSendChat(ArrayF3)
}

}
return
}
return
ArrayToSendChat(arrayname)
{
for i, element in arrayname
{
SendChat(element)
Sleep, 2300
}
}
У меня не пашет /арест( ArrayToSendChat(ArrayF1) ), который должен пахать. На других скриптах такая же конструкция, но рабочая..
В чате не высвечивает команды /do и т.д.
Тоже самое и c ArrayToSendChat(ArrayF2), ArrayToSendChat(ArrayF3)... Я перепробывал несколько способов, что бы все запахало..
 

#Rin

Известный
Всефорумный модератор
1,214
1,035
У меня не корректно пашет "/арест"
#Include, SAMP-UDF-Developer.ahk
#IfWinActive, GTA:SA:MP
#SingleInstance, Force
global ArrayF1 :=["/do 1.","/do 2","/do 3","/do 4","/do Конец АХК."]
global ArrayF2 :=["/me 1","/me 2","/me 3","/me 4","/do Конец АХК."]
global ArrayF3 :=["/me 5","/me 6","/me 7","/do Конец АХК."]
$~Enter::
if (isInChat() && !isDialogOpen())
{
Sleep 200
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if (RegExMatch(chatInput, "^\/арест"))
{
ArrayToSendChat(ArrayF1)
addChatMessageEx(0xBDBDBD, "Нажмите ""F2"", что бы продолжить арест. Нажмите ""F3"" что бы зачитать Миранду ")
if(RegExMatch)
{
F2::
Sleep 500
ArrayToSendChat(ArrayF2)
}
if(RegExMatch)
{
F3::
Sleep 500
ArrayToSendChat(ArrayF3)
}

}
return
}
return
ArrayToSendChat(arrayname)
{
for i, element in arrayname
{
SendChat(element)
Sleep, 2300
}
}
У меня не пашет /арест( ArrayToSendChat(ArrayF1) ), который должен пахать. На других скриптах такая же конструкция, но рабочая..
В чате не высвечивает команды /do и т.д.
Тоже самое и c ArrayToSendChat(ArrayF2), ArrayToSendChat(ArrayF3)... Я перепробывал несколько способов, что бы все запахало..
Arrays(https://www.autohotkey.com/docs/misc/Arrays.htm)
Objects(https://www.autohotkey.com/docs/Objects.htm)
 

Adam_Rockwell

Активный
143
25
Подскажите пожалуйста, как это реализовать.
Например: Я пишу команду /rtag и у меня открывается диалоговое окно и пишется "Если хотите использовать тег, то напишите 1 , если нет то 0".
Если я выбрал 1, то писался тег, если 0 то просто тег не работал.
Кто поможет спасибо.

Предложу вариант посмелей.
C++:
#SingleInstance Force
#Persistent
#Include udf.ahk
#IfWinActive GTA:SA:MP

$~vkD::
if (IsInChat() && !IsDialogOpen())
{
    Sleep, 170
    dwAddress := dwSAMP + 0x12D8F8
    chatInput := readString(hGTA, dwAddress, 256)
    Sleep, 30
    if (RegExMatch(chatInput, "i)^\/tag"))
    {
        showDialog("1", "{FF5F10}Изменение тэга", "{FFFFFF}Введите тэг вашей организации.`nДля отмены оставьте поле пустым и нажмите Enter.", "Ок")
        input, text, V, {Enter}
        if text
        {
           iniwrite, %text%, settings.ini, sectionTeg, IniTag
            addChatMessageEx("B8DBB8","[AHK]: Тэг {FFFFFF}""" text """ {B8DBB8}успешно сохранён.")
        }
        else Exit
    }
}
return

После первой записи тэга создастся файлик settings.ini, в котором будет храниться этот тэг, даже если выйдешь из игры или перезагрузишь скрипт.

Можете подсказать, как сделать, чтобы при запуске скрипта в чат писалось сообщение, я буду благодарен, если вы напишите мне под моим постом, а не скажите, что тут есть так как тут 33 страницы и это долго искать, кто поможет спасибо!

C++:
WinWaitActive, GTA:SA:MP
{
    ; code
}

Я поставил, у меня при включение скрипта, игра крашится
Кодировку поставь ANSI-32. Делается путём открытия файлика Installer в корневой папке ахк.
 
Последнее редактирование: