Перейти к содержанию

Как в LUA Скрипте прописать регистр MOV


Рекомендуемые сообщения

Здравствуйте скажите пожалуйста, как мене записать в LUA Скрипте, прописать регистр MOV, чтобы произошло замораживания значения например 999
в АА скриптах пример, если прописать а АА скрипте mov [ecx+000001F8],#999 то оно за морозится при активации скрипта на это число 999 которое установил, как мене сделать то же самое но в LUA Скрипте, я пробовал делать nop но значения не всегда замораживаются почему то, делал на примере видео которое у вас на сайте здесь.

Изменено пользователем Baracuda
Ссылка на комментарий
Поделиться на другие сайты

регистр MOV

 

Пришлось несколько раз перечитывать, чтобы понять что здесь написано. А по теме тык. Про "регистр mov :-D " почитай тут. После прочтения названия темы складывается вопрос "а ты точно сам делал трейнер?"

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

offtopic.gif

Боже, пришлось 2 раза перечитывать.

 

Согласен, Baracuda посмотри видеоуроки их много, можно и на YouTube найти... :-D

Изменено пользователем Dison
Ссылка на комментарий
Поделиться на другие сайты

Да извиняюсь, не много не так написал.

Трейнеры я не делаю, я скрипт на игру The Witcher 3 на очки улучшения хотел сделать,на заморозку значения например 100.

 

вот с этим указателем pValue = '[[[[[[[["witcher3.exe"+028F3F60]+28]+10]+1C0]+40]+40]+20]+18]+0'

Изменено пользователем Baracuda
Ссылка на комментарий
Поделиться на другие сайты

как мене записать в LUA Скрипте,

Думаю так:

writeInteger('ecx+000001F8',999)

ЗЫ: Только в этом случае вместо [ecx +1f8]. нужно поставить, точный адрес с указателями. 

Ну вот ты добавил адрес в своё сообщение, т.е. так:

writeInteger('[[[[[[[["witcher3.exe"+028F3F60]+28]+10]+1C0]+40]+40]+20]+18]+0',999)
Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

я сейчас проверю отпишусь


так как ты указал не работает

а работает только вот так если в писать

 

pValue = '[[[[[[[["witcher3.exe"+028F3F60]+28]+10]+1C0]+40]+40]+20]+18]+0'
writeInteger(pValue,999)
но оно не замораживается, а просто в вписывается 999 значения и все, а мене надо что бы ещё и замораживалось, как а AA скриптах, вот что я имел виду,

я смотрел видео уроки,http://forum.gamehacklab.ru/topic/2781-sozdanie-trejnera-ce-lua/ тоже пробовал поставить nop, но он все ровно не замораживал значения.  

Изменено пользователем Baracuda
Ссылка на комментарий
Поделиться на другие сайты

writeInteger(pValue,999) но оно не замораживается,

Baracuda, не замораживается, потому что записываешь 999 не в игровой адрес.

Короче выложи свой скрипт, посмотрим его. 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Ок


вот первый скрипт 1

 

прошу прошения не наказывайте меня администоры, не умею я делать спойлер с подсветкой.

 

function CEButton1Click(sender)
GameName = 'witcher3.exe'
if(getProcessIDFromProcessName(GameName) == nil) then
end

address = getAddress(stringlist_getString(result,0))

debug_setBreakpoint(address)

debug_removeBreakpoint(address)

pValue = '[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'
writeInteger(pValue,999)

end

function debugger_onBreakpoint()

end
Ссылка на комментарий
Поделиться на другие сайты

вот первый скрипт 1

Baracuda, попробуй так и отпишись:

function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenendaddress = getAddress(stringlist_getString(result,0))debug_setBreakpoint(address)debug_removeBreakpoint(address)pValue = '[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if pValue != 999 thenwriteInteger(pValue,999)endfunction debugger_onBreakpoint()end 
Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

ошибка 14 then expected near

Ты ошибся при копировании своего скрипта, я его нашёл:

Хотя ты пишешь в сообщении, что скрипт не рабочий.

Дай рабочий скрипт.

function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenendaddress = getAddress(stringlist_getString(result,0))debug_setBreakpoint(address)debug_removeBreakpoint(address)pValue = '[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if pValue != 999 thenwriteInteger(pValue,999)endfunction debugger_onBreakpoint()sanAddress = RCX + 0x4return 1end 
Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

всё равно выдаёт ошибку, только строку уже 13 if pValue != 999 then

пробовал записать эту строчку так if (pValue,999) then всё равно ошибка.

Изменено пользователем Baracuda
Ссылка на комментарий
Поделиться на другие сайты

Кажись разобрался:

function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenendaddress = getAddress(stringlist_getString(result,0))debug_setBreakpoint(address)debug_removeBreakpoint(address)Local pValue = '[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if pValue != 999 thenwriteInteger(pValue,999)endfunction debugger_onBreakpoint()end  
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

А рабочий тот который c таймером, он работает включается, но не выключается, я не знаю как в него записать таймер отключения, без лишней кода.

ошибка тоже самое if pValue != 999 then показывает что ошибка в знаке ! его удаляешь, показывает ошибку в числе 999.

если эту сроку убрать полностью if pValue != 999 then то Lua скрипт принимает без ошибок её, но при активации, пишет не доступные объекты класса.

Изменено пользователем Baracuda
Ссылка на комментарий
Поделиться на другие сайты

Попробуй ещё один вариант:

function CEButton1Click(sender)pValue = readInteger'[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if (pValue != 999) thenwriteInteger('[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28',999)end 
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Тоже соме показывает, только стока номер 3 if (pValue != 999) then показывает что ошибка в знаке ! его удаляешь, показывает ошибку в числе 999.

Изменено пользователем Baracuda
Ссылка на комментарий
Поделиться на другие сайты

Ну уже не знаю, я те значки копировал, попробуем так:

function CEButton1Click(sender)pValue = readInteger'[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if (pValue ~= 999) thenwriteInteger('[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28',999)end 
Ссылка на комментарий
Поделиться на другие сайты

теперь вот ошибку пишет строка номер 8 end expected (to close function at line near 1) <eof>

поставил ещё END все пошло без ошибок, но скрипт все ровно не работает.

Изменено пользователем Baracuda
Ссылка на комментарий
Поделиться на другие сайты

:-D

Тогда так:

function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenreturn endpValue = readInteger'[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if (pValue ~= 999) thenwriteInteger('[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28',999)endreturn 1end

Baracuda, я же не в курсе на что ты кидаешь этот LUA скрипт.

И ты так не объяснил зачем тебе LUA, если всё было проще сделать в АА-скрипте и не парится.

Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Заработал, но он в вписывает значения 999 и всё, не замораживает, то есть значения 999 устанавливается при активации, но он тратится то есть не замораживается.

Ссылка на комментарий
Поделиться на другие сайты

Заработал, но он в вписывает значения 999 и всё, не замораживает, то есть значения 999 устанавливается при активации, но он тратится то есть не замораживается.

 

Т.е. получается, что скрипт разовый сработал и всё. Странно, неужели только с таймером нужно делать?

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

а насчёт того что ты спрашивать почему через Lua, потому что в witcher3 очки улучшения находятся в инструкции в которой несколько тысяч адресов, я пробовал найти ID чисто очко улучшения но не нашёл, пришлось сделать указатель, надеюсь понятно объяснил.


помоги мене суда таймер отключения в писать, что без лишнего кода.

 

function CEButton1Click(sender)
GameName = 'witcher3.exe'
if(getProcessIDFromProcessName(GameName) == nil) then
return end

timer = createTimer(nil,false)
timer_setInterval(timer,5) ----здесь это время можно менять на своё стоит 5 миллисекунд можно например поставить 10-----
timer_onTimer(timer,WriteValueTimer)
timer_setEnabled(timer,true)

pValue = '[[[[[[[["witcher3.exe"+028F3F60]+28]+10]+1C0]+40]+40]+20]+18]+0'

end

function WriteValueTimer()
writeInteger(pValue,99)

return 1

end
Ссылка на комментарий
Поделиться на другие сайты

я пробовал найти ID чисто очко улучшения но не нашёл, пришлось сделать указатель,

Baracuda, я же тебе в ЛС писал, если ты нашёл указатели правильно, то и прописывай на той инструкции

не  

mov [ecx+000001F8],#999 

а адрес с указателями, так как указатели и будут фильтром, т.е. запись в конкретный адрес.

mov [[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28],#999 

помоги мене суда таймер отключения в писать, что без лишнего кода.

Baracuda, настолько я LUA не знаю (я его так и не изучал, обхожусь ассемблером), нужно пробовать самому вместе с игрой.

Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

если бы было всё так просто я бы не обращался, я пробовал в вписывать в AA скрипт указатель, он не вписывается я у же всё перепробовал.

Ссылка на комментарий
Поделиться на другие сайты

  • Xipho закрыл тема
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.