|
Новичок
Регистрация: 15.12.2024
Сообщений: 17
С нами:
744380
Репутация:
3
|
|
Сообщение от Tema05
Что за бред? Чем он другой? Это та же самая gta san andreas, тот же самп просто изменённой версии crmp. Та же физика, те же структуры, то же управление сам костят игры один и тот же, его нет смысла менять да и не получится. ДА, поверх устанавливается миллион патчей, хуков, но сама база игры никуда не девается.
Когда ты просто спавнишься в мире у тебя создаётся персонаж, в этот момент вызывается опкод 009A (createChar в moonloader). И когда в samp срабатывает функция добавления нового игрока в зону стрима там также гдле-то внутри будет вызван опкод 009A. И любая моделька человека (char'а) в мире появляется так или иначе вызывом опкода 009A. Точно также с изменением скина, с ускорением транспорта, созданием объектов и так далее и так далее. И все кастомные системы от лаунчеров проекта по типу охранников, питомцев, нпс они если начать ревёрсить все по итогу для создания персонажей вызовут где-то опокод 009A.
Безусловно там наверняка на половину этих функции будут стоять хуки, чтобы пересылать на расширенные таблицы моделей, анимаций, текстурок. Добавлять какие-то дополнительные эффекты, хуки в рендере дополнительно отрисовывающие какую-то ***ню. Но так или иначе костяк игры остаётся, просто его обвешивают всё новой и новой мишурой. Это несколько тысяч опкодов это база самой игры, которую могут ЧАСТИЧНО заменять, но чаще модифицирует для расширения возможностей, но никто их вырезать не будет. Потому что УСЛОВНО при прыжке может вызываться какой-то один единственный опкод, нигде более не использующийся, который просчитывает кости персонажа и если его удалить игра умрёт. Может быть там поставят хук, который будет ссылаться на функцию в асишке лаунчера, который будет по другой формуле рассчитывать кости у каких-то кастомных персонажей великанов, но опкод останется на месте.
Я решил ради интереса посмотреть чё там внутри setGameKeyState. sub_100013A0 ссылается на CPad::GetPad в самой игре (тут буква "a", а не "e", не путать с "ped"). Индекс 0 это наш персонаж, получаем из массива "устройств ввода" наше, далее по номеру клавиши считает оффсет до неё в структуре и меняется значение. В твоём случаи вероятно лаунчер ставит на CPad::GetPad хук так как там скорее всего лимит 1000 устройств, а насколько я знаю на Амазинге на 1 сервере может быть больше игроков. Но это просто выведет нас на другой расширенных массив. Технология управления уверен на 100% они не меняли, это невероятный гемор непонятно ради чего.
Интересно, что опкод 0b56 moonloader не вызывает, как в других его функциях, я честно говоря впервые встречаю чтоб вместо вызова опкода была реализация на месте. Также я немного преувеличил, конкретно опкод 0b56 не входит в стандартный набор и его реализация находится в sampfuncs, который туда добавлен через интерфейс cleo (хотя он как я уже только что сказал и не вызывается). Хз, почему так сделано. Но учитывая что я за столько лет не сталкивался с потребностью вызвать опкод из стандартного набора в 2600+ штук думаю они слишком ситуативные и не сильно нужны. На крайняк можно спиздить реализацию из муна или сампфункса.
Ну и в целом хочу прокомментировать, то что ты пытаешься сделать. Разработка под Амазинг это тебе не Аризона и даже не Радмир. Там помимо дохуищя кастомизации (вероятно сделанной через жопу) есть защита. Это конечно всё можно раскопать и сделать при желании, но тут без навыков ревёрса ты нихера с места не сдвинешься. Дай бог ты найдёшь достаточно исходников с реализациями всего, что тебе нужно, и разберёшься как это себе взять. Но судя по твоим ответам и что тебя удивляет, то что я за 15 минут нашёл тебе в базе в открытом доступе ты полез в дело, которое намного сложнее чем тебе кажется и твоих навыков может не хватить
Да не удивляет меня это нихуя, я в целом понимаю что это не работает, я шерстил интернет уже. Вместо реверса заебистого игры реверснул чужой код - достал часть камеры, нужно еще проверять, уже спать пойду. Пробовал твой метод, не сработало. Тут уж не знаю, то ли я криворукий то ли амазинг не дает
Я хочу получать навыки, реверсом я ранее не занимался, мой максимум был циферки в чит энжин вводить. То что сейчас - часть познания и развития. Я делаю софт под себя не больше
Сообщение от Tema05
Что за бред? Чем он другой? Это та же самая gta san andreas, тот же самп просто изменённой версии crmp. Та же физика, те же структуры, то же управление сам костят игры один и тот же, его нет смысла менять да и не получится. ДА, поверх устанавливается миллион патчей, хуков, но сама база игры никуда не девается.
Когда ты просто спавнишься в мире у тебя создаётся персонаж, в этот момент вызывается опкод 009A (createChar в moonloader). И когда в samp срабатывает функция добавления нового игрока в зону стрима там также гдле-то внутри будет вызван опкод 009A. И любая моделька человека (char'а) в мире появляется так или иначе вызывом опкода 009A. Точно также с изменением скина, с ускорением транспорта, созданием объектов и так далее и так далее. И все кастомные системы от лаунчеров проекта по типу охранников, питомцев, нпс они если начать ревёрсить все по итогу для создания персонажей вызовут где-то опокод 009A.
Безусловно там наверняка на половину этих функции будут стоять хуки, чтобы пересылать на расширенные таблицы моделей, анимаций, текстурок. Добавлять какие-то дополнительные эффекты, хуки в рендере дополнительно отрисовывающие какую-то ***ню. Но так или иначе костяк игры остаётся, просто его обвешивают всё новой и новой мишурой. Это несколько тысяч опкодов это база самой игры, которую могут ЧАСТИЧНО заменять, но чаще модифицирует для расширения возможностей, но никто их вырезать не будет. Потому что УСЛОВНО при прыжке может вызываться какой-то один единственный опкод, нигде более не использующийся, который просчитывает кости персонажа и если его удалить игра умрёт. Может быть там поставят хук, который будет ссылаться на функцию в асишке лаунчера, который будет по другой формуле рассчитывать кости у каких-то кастомных персонажей великанов, но опкод останется на месте.
Я решил ради интереса посмотреть чё там внутри setGameKeyState. sub_100013A0 ссылается на CPad::GetPad в самой игре (тут буква "a", а не "e", не путать с "ped"). Индекс 0 это наш персонаж, получаем из массива "устройств ввода" наше, далее по номеру клавиши считает оффсет до неё в структуре и меняется значение. В твоём случаи вероятно лаунчер ставит на CPad::GetPad хук так как там скорее всего лимит 1000 устройств, а насколько я знаю на Амазинге на 1 сервере может быть больше игроков. Но это просто выведет нас на другой расширенных массив. Технология управления уверен на 100% они не меняли, это невероятный гемор непонятно ради чего.
Интересно, что опкод 0b56 moonloader не вызывает, как в других его функциях, я честно говоря впервые встречаю чтоб вместо вызова опкода была реализация на месте. Также я немного преувеличил, конкретно опкод 0b56 не входит в стандартный набор и его реализация находится в sampfuncs, который туда добавлен через интерфейс cleo (хотя он как я уже только что сказал и не вызывается). Хз, почему так сделано. Но учитывая что я за столько лет не сталкивался с потребностью вызвать опкод из стандартного набора в 2600+ штук думаю они слишком ситуативные и не сильно нужны. На крайняк можно спиздить реализацию из муна или сампфункса.
Ну и в целом хочу прокомментировать, то что ты пытаешься сделать. Разработка под Амазинг это тебе не Аризона и даже не Радмир. Там помимо дохуищя кастомизации (вероятно сделанной через жопу) есть защита. Это конечно всё можно раскопать и сделать при желании, но тут без навыков ревёрса ты нихера с места не сдвинешься. Дай бог ты найдёшь достаточно исходников с реализациями всего, что тебе нужно, и разберёшься как это себе взять. Но судя по твоим ответам и что тебя удивляет, то что я за 15 минут нашёл тебе в базе в открытом доступе ты полез в дело, которое намного сложнее чем тебе кажется и твоих навыков может не хватить
Зареверсил, вышло B72D50, спасибо тебе большое, теперь все работает у мя
|