Вот кто не пробывал еще - поднятие камеры координатами перса (по XY тоже работает)
$Z = ($Z+5) * 10.0 ; число 5 это на сколько подняться можно хоть за облака
_MemoryPointerWrite($BASE, $PROCESS, $OFS_Z, $Z, "float")
ControlFocus($CLIENT, "", "")
а потом после любого движения перса она опять на месте - удобно использовать для визуального эффекта Сканирования территории .. или посмотреть на низких ЛВЛ как там на верху, процесс этот не виден серверу - перс на месте ..
самое интересное что можно камеру переместить в любую точку карты, только объектов там не будет - одни пейзажи дома .. города и конечно если не правильно поставите высоту то очутитесь (камерой) внутри горы например ..
выражусь еще проще, как найти эти гадские адреса по которым происходит инжект ? дело то в них все состоит, и копай хоть марсианские форумы , без адресов дела не будет... покажите мне как найти хоть один адрес для инжекта и я вам найду ВСЕ остальные !
Есть один сложный, но безошибочный метод. Берешь OllyDBG. Открываешь в нем клиента. Патчишь на JMP место, где он требует запуск из ланчера. Заходишь в игру. Проставляешь в начале процедур брейкпоинты (мнооого их - но мы же не ищем легких путей). Тыркаешь в кнопульки в игре - отлавливаешь адреса брейков. За пару суток все адреса пройти можно.
Вот кто не пробывал еще - поднятие камеры координатами перса (по XY тоже работает)
$Z = ($Z+5) * 10.0 ; число 5 это на сколько подняться можно хоть за облака
_MemoryPointerWrite($BASE, $PROCESS, $OFS_Z, $Z, "float")
ControlFocus($CLIENT, "", "")
а потом после любого движения перса она опять на месте - удобно использовать для визуального эффекта Сканирования территории .. или посмотреть на низких ЛВЛ как там на верху, процесс этот не виден серверу - перс на месте ..
самое интересное что можно камеру переместить в любую точку карты, только объектов там не будет - одни пейзажи дома .. города и конечно если не правильно поставите высоту то очутитесь (камерой) внутри горы например ..
Ну не обязательно ж "потом после любого движения перса она опять на месте". Есть параметр - максимальная дистанция камеры - поставь ему мульён и не будет возвращаться. Подсмотри поинтер у смурфина, например, или в любом другом ZoomHack'е.
Объясню в чем дело... Из кода явно видно, что для правильного смещения нужно сначала вызвать подпрограммы, которые скажут серваку, что перс сдвинулся (call Address1,2,3). А потом уже в клиенте переписать значения (mov dword ptr[ecx+$20], eax) (зачем? сервак их и так клиенту вернет и сдвинет его...)
Вот наверное не надо незапланированные действия по ходу сценария вставлять - это только запутает и клиент и сервер и нас - уж очень там много вызовов, проверок состояний, передача прием серверу - не найти так нам много и правильно.
само собой все произойдет - только надо щелкнуть мышкой по тропинке (ВСЕ..)
как найти эту мишень типа в которую мы подставляем цели (точку щелчка мыши) -
там наверное надо переводить коорды экранные в коорды 3D сцены .. формулка может така нужна .. потом еще вид действия надо активировать Бег , Полет, Стоять.. но это уже другая история ..
инжект для передвижения, что используют китайцы, т.е. который был приведен выше, аналогичен хорошо известному методу с заменой значений в памяти: переписать указатели текущего действия, снять с «ручника», задать конечные координаты… Оба варианта вполне рабочие, хотя инжект проще, ибо нет нужды контролировать достижение конечной точки и вовремя возвращать нужные указатели действия, дабы не было трудностей с графикой, клиент сам все сделает.
Вы мне такую вещь скажите - при чём тут speedtree?
Всё для чего она нужна - это для рендера деревьев.
Камера тут не при чём. Не туда смотрите.
И всё что можно сделать толкового при помощи speedtree - это отключить отрисовку деревьев, по аналогу консольной команды d_render_forest. Остальное шелуха.
SDK на speedtree можно скачать с speedtree.com
Повеселил продавец крякнутого бота. Вобщемто так даже некрасиво делать. Для уважающего себя кодера такое действие просто мелкое.
Сломал - изволь выложить.
Глянул сайтец - имхо развод
инжект для передвижения, что используют китайцы, т.е. который был приведен выше, аналогичен хорошо известному методу с заменой значений в памяти: переписать указатели текущего действия, снять с «ручника», задать конечные координаты… Оба варианта вполне рабочие, хотя инжект проще, ибо нет нужды контролировать достижение конечной точки и вовремя возвращать нужные указатели действия, дабы не было трудностей с графикой, клиент сам все сделает.
Тут есть загвоздка... Я не пишу бота в прямом смысле. Мне просто нужен помощник. Ну не хочу я следить за своим здоровьем ) Хочу чтобы макрос бота пинал, а хилер банки юзал ) И не мешал при этом чатиться. Или ЧСника по обнаружению брал в таргет, приближался и шандарахал по заданной программе. Ну и просто вариант подучиться тонкостям работы с другими приложениями тоже подначивает ) Тем более, что перехват/подмену/генерацию пакетов я в свое время уже изучил в достаточной степени и она мне неинтересна сейчас как факт.
Вот потому хочу реализовать оба способа ) Просто я такой - занимаюсь в свое удовольствие )
Конечно я не очень спец, но так думаю, что когда дополнительный код работает в чужем процессе - он использует регистры по своему усмртрению, а клиент по своему, разделение времени для скрытия значений регистров в стек потребует наверное че-то с прерываниями делать, просто может произойти сбой работы клиента. вот если-бы наш код был компилирован вместе с кодом клиента в одной завязке - другое дело, но не знаю .. пробывать надо.