alkayde123 Опубликовано 15 августа, 2016 Поделиться Опубликовано 15 августа, 2016 Здравствуйте.Мне нужно написать такой скрипт. У меня есть указатели на 3 координаты И 3 строки,которые просто обращаются по адресам и изменяют эти координаты(типа телепортации) Мне нужно,чтобы при нажатии клавиши эти 3 адреса(X,Y,Z) из указателей попадали в эти 3 строки.(Делать нужно как-то через автоассемблер наверное) Помогите реализовать.В Cheat Engine не понимаю вообще почти. Заранее спасибо за помощь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 августа, 2016 Поделиться Опубликовано 16 августа, 2016 10 час назад, alkayde123 сказал: Помогите реализовать.В Cheat Engine не понимаю вообще почти. Для начала посмотри эти видео-уроки, если конечно хочешь сам разобраться. Если после просмотра не сможешь разобраться, кидай сюда АА-скрипты с Логами (предварительно посмотри эту тему) из инструкций, работающих с координатами и свои найденные указатели на сами координаты, поможем написать скрипт - Телепорт. Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 16 августа, 2016 Автор Поделиться Опубликовано 16 августа, 2016 4 часа назад, Garik66 сказал: Для начала посмотри эти видео-уроки, если конечно хочешь сам разобраться. Если после просмотра не сможешь разобраться, кидай сюда АА-скрипты с Логами (предварительно посмотри эту тему) из инструкций, работающих с координатами и свои найденные указатели на сами координаты, поможем написать скрипт - Телепорт. Вы возможно что-то не так поняли.У меня уже есть рабочие указатели с координатами. Мне нужно сделать,чтобы при нажатии клавиши,адрес из указателя присваивался другому "полю" скажем так. Т.к это онлайн игра,и там указатель автоматом переключается на других игроков.Т.к при смерти адрес меняется. Мне нужно,чтобы просто адрес из указателя брался и забивался в другое "поле". Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 17 августа, 2016 Поделиться Опубликовано 17 августа, 2016 Это для телепатов. " Мне нужно,чтобы при нажатии клавиши эти 3 адреса(X,Y,Z) из указателей попадали в эти 3 строки " В какие эти 3 строки - догадайся сам. " Мне нужно,чтобы просто адрес из указателя брался и забивался в другое "поле". " В какое поле - догадывайся опять же сам. Через push тогда указатели в регистр засовывай, а эти регистры с уже загруженными координатами из указателей, суй в эти три строки или в поле о котором тут наверное не кто даже не догадывается. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 18 августа, 2016 Автор Поделиться Опубликовано 18 августа, 2016 В 17.08.2016в16:12, LIRW сказал: Это для телепатов. " Мне нужно,чтобы при нажатии клавиши эти 3 адреса(X,Y,Z) из указателей попадали в эти 3 строки " В какие эти 3 строки - догадайся сам. " Мне нужно,чтобы просто адрес из указателя брался и забивался в другое "поле". " В какое поле - догадывайся опять же сам. Через push тогда указатели в регистр засовывай, а эти регистры с уже загруженными координатами из указателей, суй в эти три строки или в поле о котором тут наверное не кто даже не догадывается. Вот мне адреса из указателей X,Y,Z (Где P->"Адрес") надо при нажатии клавиши передать в поля адреса X,Y,Z(Не указателей). теперь более менее должно быть понятно. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 августа, 2016 Поделиться Опубликовано 19 августа, 2016 12 часа назад, alkayde123 сказал: Вот мне адреса из указателей X,Y,Z (Где P->"Адрес") надо при нажатии клавиши передать в поля адреса X,Y,Z(Не указателей). По картинке - не кто не чего делать не будет. Нет не адресов не чего,а как сделать(раз адреса не даёшь) я уже написал. Ссылка на комментарий Поделиться на другие сайты Поделиться
2zolo2 Опубликовано 19 августа, 2016 Поделиться Опубликовано 19 августа, 2016 alkayde123, на, пример кода, на PureBasic, по твоему запросу, если ты, пишешь на другом языке, на API Windows, FindWindow, GetWindowThreadProcessId, OpenProcess, GetAsyncKeyState, ReadProcessMemory, WriteProcessMemory . Скрытый текст Structure XYZ x.f y.f z.f EndStructure Procedure FindWin(windowName.s) windHandle = FindWindow_(#Null, windowName) ProcedureReturn windHandle EndProcedure Procedure FindWin_Proces(windowName.s) windHandle = FindWindow_(#Null, windowName) GetWindowThreadProcessId_(windHandle, @pid) handle = OpenProcess_(#PROCESS_ALL_ACCESS, #False, pid) ProcedureReturn handle EndProcedure sAdres_XYZ.l = $401000 ; вставить свой значение eAdres_XYZ.l PoiterXYZ.l = 4 ; вставить свой значение EndAdres.l = $402000 ; вставить свой значение nGameName.s = "Название игры" hHandle.l = FindWin_Proces(nGameName) While FindWin(nGameName) If GetAsyncKeyState_(#VK_SHIFT) = -32767 ReadProcessMemory_(hHandle, sAdres_XYZ, @eAdres_XYZ, 4, #Null) ReadProcessMemory_(hHandle, (eAdres_XYZ+PoiterXYZ), XYZ.XYZ, SizeOf(XYZ), #Null) WriteProcessMemory_(hHandle, EndAdres, XYZ.XYZ, SizeOf(XYZ), #Null) EndIf Wend End Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 20 августа, 2016 Поделиться Опубликовано 20 августа, 2016 В 18.08.2016в19:59, alkayde123 сказал: Вот мне адреса из указателей X,Y,Z (Где P->"Адрес") надо при нажатии клавиши передать в поля адреса X,Y,Z(Не указателей). теперь более менее должно быть понятно. Вот теперь действительно стало понятнее - что именно ты хочешь сделать: Перезапись значений (в твоём случае значения - это адреса) из одних строк в таблице СЕ в другие. Можно написать такой скрипт на LUA. Для этого: 1. Объявляй три переменных строкой, ну например: pointerX = readInteger('[adress s ukazatelem1]') pointerY = readInteger('[adress s ukazatelem2]') pointerZ = readInteger('[adress s ukazatelem3]') адреса с указателями нужно записать правильно. 2. Далее ещё три переменных, для определения строк, куда ты хочешь записать значения:: addresslist = getAddressList() memoryrecX = addresslist_getMemoryRecordByDescription(addresslist, descriptionX) memoryrecY = addresslist_getMemoryRecordByDescription(addresslist, descriptionY) memoryrecZ = addresslist_getMemoryRecordByDescription(addresslist, descriptionZ) для выполнения 2. посмотри эту тему (лично я предпочитаю не по названию строки в таблице СЕ делать, а по ID строки, так как название пользователь твоей таблицы может поменять, а ID останется одним и тем же). 3. Записываем новые значения (адреса) в нужную строку таблицы СЕ:: writeInteger('memoryrecX',pointerX) writeInteger('memoryrecY',pointerY) writeInteger('memoryrecZ',pointerZ) 4. Привязываем всё это к горячей клавише: function PerezapisAdresov() -- сюда вставь код из первых 3-х пунктов end createHotkey(PerezapisAdresov,VK_F) -- выбери нужный тебе хоткей и запиши его вместо VK_F. 5. Если нужно что-бы LUA-скрипт был в таблице, то делаешь так: [ENABLE] {$LUA} -- здесь весь код LUA-скрипта. {$ASM} [DISABLE] Попробуй вначале сам, если не получиться, то всё-таки конкретизируй задачу (кинь сюда адреса с указателями и ID строк, куда нужно записать). Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 В 20.08.2016 в 07:40, Garik66 сказал: Попробуй вначале сам, если не получиться, то всё-таки конкретизируй задачу (кинь сюда адреса с указателями и ID строк, куда нужно записать). А не подскажешь, как именно записывается указатель в Lua? Я пробовал через 0x и т.д. Не вышло. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 марта, 2019 Поделиться Опубликовано 29 марта, 2019 5 минут назад, alkayde123 сказал: Не вышло. Для начала прочитай правила и Это На первый раз сходи ка ты "В угол" В следующий раз будет пред. Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 6 минут назад, Garik66 сказал: В следующий раз будет пред. Оу, извините пожалуйста. Я не знал. Вы случайно не сможете мне помочь по моему вопросу?) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 марта, 2019 Поделиться Опубликовано 29 марта, 2019 8 минут назад, alkayde123 сказал: А не подскажешь, как именно записывается указатель в Lua? pointerX = readInteger('["Tutorial-i386.exe"+002015D0]+480') если три pointerX = readInteger('[["Tutorial-i386.exe"+002015D0]+480]+48') и т.д. Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 (изменено) 5 минут назад, Garik66 сказал: pointerX = readInteger('["Tutorial-i386.exe"+002015D0]+480') А если у меня смещения три?) Первое 0, Второе с0, и третье снова 0. "fbcmod_client.dll"+0090FC58 И потом три смещения. Изменено 29 марта, 2019 пользователем alkayde123 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 марта, 2019 Поделиться Опубликовано 29 марта, 2019 Только что, alkayde123 сказал: А если у меня смещения три?) Ожидал уже ответил в предыдущем сообщении Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 (изменено) 3 минуты назад, Garik66 сказал: Ожидал уже ответил в предыдущем сообщении Я только что пробовал вот так: pointer = readFloat('[[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0]'); Не вышло. А, все. Вышло, спасибо. Изменено 29 марта, 2019 пользователем alkayde123 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 марта, 2019 Поделиться Опубликовано 29 марта, 2019 4 минуты назад, alkayde123 сказал: Не вышло. Лишние скобки - смотри внимательнее pointer = readFloat('[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0) Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 1 минуту назад, Garik66 сказал: Лишние скобки - смотри внимательнее pointer = readFloat('[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0) Все, получилось) Спасибо большое) Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 23 минуты назад, Garik66 сказал: Лишние скобки - смотри внимательнее pointer = readFloat('[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0) Слушай, вопрос еще один есть. Не подскажешь случайно, как обращаться к указателям через AA? Либо как реализовать телепорт можно на Lua? На заранее сохраненную точку. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 марта, 2019 Поделиться Опубликовано 29 марта, 2019 Либо так Спойлер push eax lea eax,[[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0] mov [pointer],eax pop eax Либо так Спойлер push eax mov eax,"fbcmod_client.dll"+0090FC58 mov eax,[eax+0] mov eax,[eax+c0] mov eax,[eax+0] mov [pointer],eax pop eax Но вообще-то вопросы эти давно рассмотрены в видео, статьях и топиках. 10 минут назад, alkayde123 сказал: Не подскажешь случайно, как обращаться к указателям через AA? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 1 минуту назад, Garik66 сказал: Но вообще-то вопросы эти давно рассмотрены в видео, статьях и топиках. Спасибо еще раз) Сейчас еще по форуму поброжу, на твое видео одно наткнулся, на схожую тематику. Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 30 марта, 2019 Автор Поделиться Опубликовано 30 марта, 2019 18 часов назад, Garik66 сказал: Но вообще-то вопросы эти давно рассмотрены в видео, статьях и топиках. Блин, я уже все перепробовал. Помоги написать телепорт для игры. Я уже и на АА пытался, не выходит. На Lua тоже... Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 30 марта, 2019 Автор Поделиться Опубликовано 30 марта, 2019 @Garik66 Я на Lua писал так: Спойлер function SavePos() pX = readFloat('[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0') pZ = readFloat('[[["fbcmod_client.dll"+0090FC58]+4]+c0]+0') pY = readFloat('[[["fbcmod_client.dll"+0090FC58]+8]+c0]+0') end createHotkey(SavePos,VK_NUMPAD1) function LoadPos() tX = readFloat('[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0') tZ = readFloat('[[["fbcmod_client.dll"+0090FC58]+4]+c0]+0') tY = readFloat('[[["fbcmod_client.dll"+0090FC58]+8]+c0]+0') writeFloat(tX,pX) writeFloat(tZ,pZ) writeFloat(tY,pY) end createHotkey(LoadPos,VK_NUMPAD2) И все равно ничего не выходит. Координаты будто перезаписываются при вызове каждой функции Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2019 Поделиться Опубликовано 30 марта, 2019 26 минут назад, alkayde123 сказал: Координаты будто перезаписываются при вызове каждой функции Потому что ты не записываешь координаты. а снова читаешь их. Первая часть скрипта правильная вторая: Спойлер function LoadPos() writeFloat('[[["fbcmod_client.dll"+0090FC58]+0]+c0]+0',pX) writeFloat('[[["fbcmod_client.dll"+0090FC58]+4]+c0]+0',pZ) writeFloat('[[["fbcmod_client.dll"+0090FC58]+8]+c0]+0',pY) end createHotkey(LoadPos,VK_NUMPAD2) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
alkayde123 Опубликовано 30 марта, 2019 Автор Поделиться Опубликовано 30 марта, 2019 7 минут назад, Garik66 сказал: Потому что ты не записываешь координаты. а снова читаешь их. Только что попробовал твой вариант. Работает, но телепортирует немного не туда, не там где я сохранил координаты. @Garik66 Все, я понял в чем была ошибка, смещение не так писал. Спасибо большое за помощь. Вопрос закрыт) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2019 Поделиться Опубликовано 30 марта, 2019 5 минут назад, alkayde123 сказал: не там где я сохранил координаты. Ну это уже нужно смотреть у тебя. Я не экстрасенс - чтобы догадаться, где ты ошибся. Может случайно нажал второй раз NUMPAD1 и перезаписал координаты? Может не верные указатели? Для чистоты эксперимента выйди из игры и СЕ и по новой войди и проверь. Да и почему у тебя 1 час назад, alkayde123 сказал: Я уже и на АА пытался, не выходит. В чем проблема. У меня очень подробные уроки по телепорту. Смотри внимательнее их. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения