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

rsmistiko

Известный
14
1
Уважаемые пользователи. Если вам не трудно, пожалуйста научите делать диалоги с выводом.
 

Di3

Участник
432
20
Написать свой протектор или перейти на C++.
Ринат,можешь функцию UDF переписать на более стабильную?

Код:
removeChatLine(line := 0)
{
    if(!checkHandles())
        return false
    if(!dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR))
        return false
    loop % 100 - line
    {
        a := ""
        dwLine := dwAddress + 0x132 + ( (99 - A_Index - line) * 0xFC )
        loop 0xFC
        {
            byte := substr(inttohex(Memory_ReadByte(hGTA, dwLine++)), 3)
            a .= (strlen(byte) == 1 ? "0" : "") byte
        }
        dwLine := dwAddress + 0x132 + ( (100 - A_Index - line) * 0xFC )
        writeBytes(hGTA, dwLine, a)
    }
    sendinput {f7 3} ; 3 - без соба, 4 - есть собейт
    return true
}
Эта медленно работает.Баганная
 

HGfgdhf

Новичок
5
0
Как записать переменную в txt или ini файл так, чтобы при каждом новом круге новая переменная записывалась под старой? (нажатие enter)
 

Revalto

Известный
532
225
Как записать переменную в txt или ini файл так, чтобы при каждом новом круге новая переменная записывалась под старой? (нажатие enter)
Код:
test := "this is text"
IniWrite, %test%, C:\Temp\myfile.ini, Main, key
Мне интересно, как ты собрался получать ответ, если никто не видит кода :D

Скрипт даже не запускается с такой строчкой
Если уж на то пошло, то...

Код:
global file_chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
SetTimer, Chat, 50

Chat:
FileRead, chatlog, % file_chat

if (RegExMatch(chatlog, ".* Отправил .{3,24}\[\d+\] \(тел\. (\d+)\)", chattext))
{
    save(chatlog)
    addChatMessage(chattext1)
}
Return

._.

Уважаемые пользователи. Если вам не трудно, пожалуйста научите делать диалоги с выводом.
Глянь 2 сообщения выше и увидишь это:

Код:
#include UDF_037.ahk ; UDF_037.ahk - это название  файла UDF

;=============================================
; Обнуление переменной при нажатии ESC и F6
;=============================================
~ESC::
~F6::
menu:=0
return

;=============================================
; Кнопки вызова диалогов
;=============================================
F3::
menu := 1
ShowDialog(2, "Диалог 1", "Первая`nВторая", "X")
return
F4::
menu := 2
ShowDialog(2, "Диалог с подменю", "Лекции`nПункт без доп. меню", "X")
return

~LButton::
Time := A_TickCount
while(isDialogOpen())
{
    if (A_TickCount - Time > 500)
    {
  Return
    }
}
checkdialogMenu:
if (isDialogButton1Selected() == 1)
{
    menu := 0
}
ifWinNotActive, GTA:SA:MP
{
    return
}

;=============================================
; Проверка на активное меню
;=============================================
if (menu == 1)
{
    menu := 0
    line_num  := getDialogLineNumber()
    line_text  := getDialogLine(line_num)

    addChatMessage("Выбрано: " line_text)
    return
}
else if (menu == 2)
{
    menu := 0
    line_num  := getDialogLineNumber()
    line_text  := getDialogLine(line_num)

    if (line_num == 1)
    {
  showDialog(2, "Подменю", "Первый пукнкт`nВторой пункт", "X")
  menu := 3
    }
    else if (line_num == 2)
  addChatMessage("Выбрано: " line_text)
    return
}
else if (menu == 3)
{
    menu := 0
    line_num  := getDialogLineNumber()
    line_text  := getDialogLine(line_num)

    addChatMessage("В подменю выбрано: " line_text)
    return
}
return

~Enter::
gosub, checkdialogMenu
return
 
Последнее редактирование модератором:

ae1c2a

Известный
195
6
при использовании простого кода, вылетает гта, как пофиксить?
Код:
#Include SAMP.ahk
#IfWinActive GTA:SA:MP

numpad1::
sendchat("/lock ")
return
 

Revalto

Известный
532
225
раз код такой легкий то лучше использовать так:
Код:
#IfWinActive GTA:SA:MP
numpad1::
Sendinput, {F6}/lock{ENTER}
return
Даже если он легкий, SendInput плохое решение, когда есть функция SendChat(text) с UDF, а вылет из-за неподходящей версии UDF к версии SA:MP.
В крайнем случае SendInput подойдет для ввода данных в диалог, а Send для нажатия клавиш...
 

Black_Bird

Участник
59
4
Даже если он легкий, SendInput плохое решение, когда есть функция SendChat(text) с UDF, а вылет из-за неподходящей версии UDF к версии SA:MP.
В крайнем случае SendInput подойдет для ввода данных в диалог, а Send для нажатия клавиш...
Что бы найти нормальный SAMP UDF который будет подходить к версии АХК, надо не мало времени (лично я потерял ~2 дня) а SendInput можно и без самп удф
 

Revalto

Известный
532
225
Что бы найти нормальный SAMP UDF который будет подходить к версии АХК, надо не мало времени (лично я потерял ~2 дня) а SendInput можно и без самп удф
2 дня? Ну по крайне мере я кидал его сюда, и он кстатет присутствует тут в отдельной теме, а именно тут. 2 версии: R1 и R2, так же имеются дополнения.
Просто вы идете за решениями сюда и получается так, что у вас не достаток функций. Просто надо думать самому и использовать то, что у вас уже имеется...