Вопрос по теме написание макросов языке на lua
-
-
Для блокнота
[ENABLE] {$lua} function send_keys(key) for i=1,string.len(key) do local char = key:upper():sub(i,i) doKeyPress(string.byte(char,1)) end end send_keys("gamehacklab") keyDown(VK_LCONTROL) keyDown(VK_A) keyUp(VK_LCONTROL) keyUp(VK_A) {$asm} [DISABLE]
-
Спасибо Алексей.
-
Пользователь @Partizan1078 написал в Вопрос по теме написание макросов языке на lua:
Для блокнота
Спасибо работает.
-
@Pitronic Можно ещё в функцию всё это заморочить и горячую кнопку назначить.
[ENABLE] {$lua} function ctrl_i_pr() keyDown(VK_LCONTROL) keyDown(VK_A) keyUp(VK_LCONTROL) keyUp(VK_A) end createHotkey(ctrl_i_pr, VK_DOWN) {$asm} [DISABLE]
-
Пользователь @Partizan1078 написал в Вопрос по теме написание макросов языке на lua:
Можно ещё в функцию всё это заморочить и горячую кнопку назначить.
Спасибо, тоже пригодится. -
@Partizan1078 в очередной раз Питронику было предоставлено готовое решение, и в очередной раз этим самым была ему оказана медвежья услуга. Потому что в очередной раз он не станет думать своей головой, и ни капли не продвинется по пути становления нормальным геймхакером.
-
@StoneWeaver Не согласен. Когда я первый раз зарегистрировался на форуме прошлого движка, ещё с другим ником который забанили, я даже не знал команд mov и add сейчас я ассемблер знаю наверное весь, и даже помогал другим по этой теме на прошлом форуме. Вы наверное помните эту первую команду именно вы подсказали. Я не искал инфу в инете, не читал справочники, не изучал статьи. Всё это я получил благодаря так называемым готовым решениям. Не чего страшного если пользователь спрашивает как написать тот или другой скрипт.
-
Питроник спрашивал в чате как сравнить.
[ENABLE] {$lua} function cmp_value() if (readInteger('[code]+7F8') == 100) then -- если не равно 100 тогда прыжок на end writeInteger ('[code]+7F8', 999) end end createHotkey(cmp_value, VK_UP) {$asm} aobscanmodule(INJECT_001,Tutorial-x86_64.exe,81 BB F8 07 00 00 E8 03 00 00) // should be unique alloc(newmem,$1000,INJECT_001) label(code) label(return) registersymbol(code) registersymbol(INJECT_001) newmem: mov [code],rbx cmp [rbx+000007F8],000003E8 jmp return code: dq 00 INJECT_001: jmp newmem nop 5 return: [DISABLE] INJECT_001: db 81 BB F8 07 00 00 E8 03 00 00 unregistersymbol(*) dealloc(newmem)
-
@Partizan1078 твой ример какой шаг в туторе?
-
@Pitronic Первый шаг. Тутор 64 бита который.
СЕ 7.5 -
У меня нубский вопрос. Ни как не догоню.
Почему вот так всё работает как надо.[ENABLE] {$lua} function send_keys(key) for i=1,string.len(key) do local char = key:upper():sub(i,i) doKeyPress(string.byte(char,1)) end end send_keys("gamehacklab") keyDown(VK_LCONTROL) keyDown(VK_A) keyUp(VK_LCONTROL) keyUp(VK_A) {$asm} [DISABLE]
А так нифига
[ENABLE] {$lua} function send_keys(key) for i=1,string.len(key) do local char = key:upper():sub(i,i) doKeyPress(string.byte(char,1)) end end send_keys("gamehacklab") function ctrl_i_pr() keyDown(VK_LCONTROL) keyDown(VK_A) keyUp(VK_LCONTROL) keyUp(VK_A) end {$asm} [DISABLE]
-
@Partizan1078 Я точно не скажу, сам луа пока плохо знаю (а если точнее совсем не знаю, есть готовые шаблоны которые использую) но мне кажется там конфликт двух команд. После строки function.
-
@Pitronic При чём тут это. Вот несколько функций работает всё ок. Это ускорение в гта делал.
[ENABLE] {$lua} function SpeedHack1() boost = 1.5 if (readBytes('[_date_01]') ~= nil) then writeFloat ('[_date_01]', readFloat('[_date_01]')*boost) writeFloat ('[_date_01]+04', readFloat('[_date_01]+04')*boost) end end createHotkey(SpeedHack1, VK_XBUTTON1) function SpeedHack2() boost = 0.5 if (readBytes('[_date_01]') ~= nil) then writeFloat ('[_date_01]', readFloat('[_date_01]')*boost) writeFloat ('[_date_01]+04', readFloat('[_date_01]+04')*boost) end end createHotkey(SpeedHack2, VK_XBUTTON2) {$asm} aobscanmodule(Boost,GTA5.exe,F3 ? ? ? F3 ? ? ? ? F3 ? ? ? F3 ? ? ? F3 ? ? ? ? ? ? ? 44 39) alloc(newmem,$1000,Boost) label(return) label(_date_01) registersymbol(_date_01) registersymbol(Boost) newmem: mov [_date_01],rax mulss xmm0,[rax] mulss xmm6,[rax+08] jmp return _date_01: dq 00 Boost: jmp newmem nop 4 return: [DISABLE] Boost: db F3 0F 59 00 F3 0F 59 70 08 unregistersymbol(*) dealloc(newmem)
-
Пользователь @Partizan1078 написал в Вопрос по теме написание макросов языке на lua:
У меня нубский вопрос. Ни как не догоню.
Почему вот так всё работает как надо.Во втором случае ты функцию ctrl_i_pr объявил, но не вызвал. Объявления мало. Объявление лишь говорит компилятору, что вот такая функция существует, и она будет делать вот это и вот это. А чтобы реально выполнить действия, функцию надо вызвать. Ну или назначить её на горячую клавишу с последующим нажатием этой клавиши, разумеется.