#176 24-04-2009 07:13

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Адреса и функции gta_sa.exe 1.0

Копирую все поля положения машины на поля положения лодки в моде SEAWAYS. Лодка спокойно перенимает положение, углы поворота, скорость и спин машины. При обратном действии машина остаётся стоять, не перенимая ни скорости, ничего. Из-за чего это происходит?

Last edited by VcSaJen (24-04-2009 07:14)


[small][/small]

Offline

#177 26-06-2009 09:08

Alien
Registered: 12-10-2008
Posts: 564

Re: Адреса и функции gta_sa.exe 1.0

Наконец-то разобрался что куда надо прописать и воткнуть, чтобы ида открыла базу listener'а.
Вчера ковырялся над опкодом 07CC - он отказался работать (оказалось, что какой-то поток в майне его перебивал). Походу разобрался еще с несколькими опкодами. Может это уже давно известно, но вот, кое-что по структуре CPad:

00000000 CPad            struc ; (sizeof=0x134)
00000000 padState        PadData ?
00000030 prevPadState    PadData ?
00000060 SomeStack       dw 10 dup(?)
00000074 Responsiveness  dd ?                    ; opcode 03FD
00000078 padStateKbd1    PadData ?
000000A8 padStateKbd2    PadData ?
000000D8 field_D8        PadData ?
00000108 field_108       db ?
00000109 field_109       db ?
0000010A ControlState    dw ?                    ; switch (0..3)
0000010C field_10C       dw ?
0000010E StateFlags      db ?                    ; 0 - default
0000010E                                         ; 00000001b - ignore player controls
0000010E                                         ; 00100000b - set player frozen (09E7)
0000010E                                         ; 10000000b - save game state (03EF)
0000010F field_10F       dw ?
00000111 field_111       dd ?
00000115 field_115       db ?
00000116 field_116       db ?
00000117 menuActive      db ?
00000118 DisableVehicleControls16&14 db ?        ; opcode 0221
00000119 DisableEnterExitVehicleButton db ?      ; opcode 07CC
0000011A DisableCrouchButton db ?                ; opcode 082A
0000011B DisableFireButton db ?                  ; opcode 0881
0000011C field_11C       db ?
0000011D DisableScrollWeaponButtons db ?         ; opcode 0992
0000011E DisableJumpButton db ?                  ; opcode 0901
0000011F DisableActionButton db ?                ; opcode 0960
00000120 padQueryTime    dd ?
00000124 field_124       dd ?
00000128 field_128       dd ?
0000012C field_12C       dd ?
00000130 field_130       db ?
00000131 field_131       db ?
00000132 field_132       dw ?
00000134 CPad            ends

DisableVehicleControls16&14 в опкоде 0221 было почему-то приписано структуре PlayerData, кажется.

Last edited by Alien (26-06-2009 11:28)

Offline

#178 26-06-2009 15:09

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Адреса и функции gta_sa.exe 1.0

@Alien - спасибо. Чуть позже обновлю базу.

Только Disable*Button должы быть не button, а event (вся идея этого класса в том, что в нем собираются все события от клавиатуры, мыши и геймпада, и из них формируются эвенты - вне зависимости от того, нажали мы кнопку, передвинули мышь или повернули стик).

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

Offline

#179 15-08-2009 12:22

yelmi
Registered: 10-12-2006
Posts: 134
Website

Re: Адреса и функции gta_sa.exe 1.0

Кто ни будь, находил адрес процедуры/функции в которой игра обрабатывает нажатие клавиши. Нужно сделать принудительное нажатие клавиши, то есть дать понять игре, что нажата нужная мне клавиша.
Не хочется ради одной функции делать ДЛЛ.

Offline

#180 15-08-2009 20:48

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Адреса и функции gta_sa.exe 1.0

йелми мы случайно не одно дело делаем? хДДД)))))) мне то же самое нужно
это вроде должно работать

&0(304496,1i) = 0xFF

симулирует нажатие F1
шестизначное число из таблицы Key Codes


GIMS developer

Offline

#181 15-08-2009 21:49

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: Адреса и функции gta_sa.exe 1.0

Мне кажется ему нужен адрес самой процедуры где происходит перехват клавиши.

Offline

#182 20-08-2009 20:05

yelmi
Registered: 10-12-2006
Posts: 134
Website

Re: Адреса и функции gta_sa.exe 1.0

Нужен адрес, и не только этот. Хотелось бы еще добраться до войн банд, а именно покраска территории и соответственно военные действия на этой территории для разных банд. У меня их сейчас 9 шт, опкодами можно сделать только для двух банд. Каков был смысл создавать отношения с другими группировками если воевать с ними, а соответственно захватывать их территории нет возможности?

Alien wrote:

Наконец-то разобрался что куда надо прописать и воткнуть, чтобы ида открыла базу listener'а.

Подробнее можно, что прописал и где? А то мне уже надоело окно с текстом «Эта база была создано в пиратской копии …».

Offline

#183 20-08-2009 21:34

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Адреса и функции gta_sa.exe 1.0

C:\bin\ida>fc /b ida.0.wll ida.wll
Comparing files ida.0.wll and IDA.WLL
000F05C4: 53 33
000F05C5: 83 C0
000F05C6: C4 C3
000F05C7: 98 00
000F05C8: 8B 00
000F05C9: D8 C3

Offline

#184 27-08-2009 20:42

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: Адреса и функции gta_sa.exe 1.0

А вот уже готовый файл.
[You must login to view hidden text.]

EDIT:
обновил ссылку
если ссылка сдохнет - пишите в личку, обновлю good

Last edited by Sw[ee]t (06-09-2009 11:38)

Offline

#185 06-09-2009 05:30

Orr_Orange
Registered: 13-07-2009
Posts: 5

Re: Адреса и функции gta_sa.exe 1.0

Можно обновить ссылочку? или хотябы как пропатчить файл этим кодом

Edited: А все ненадо, пропатчил сам smile

Last edited by Orr_Orange (06-09-2009 05:53)


..to hit me

Offline

#186 23-12-2009 15:48

DimP
Registered: 23-03-2009
Posts: 51

Re: Адреса и функции gta_sa.exe 1.0

lstener,я прочитал ваш пост про системы координат, можно вопрос ?

Как перенести координаты объектов с игрового мира на экран (с 3d в 2d) ?
Например координаты педов ,я прохожусь циклом по пулу педов, записываю используемые элементы в массив.
Получаю их координаты, матрицы вращения, углы поворота... а что дальше делать я не знаю.
Нужно как то трансформировать координаты, я читал что способ трансформации различается в разных играх.

Offline

#187 23-12-2009 16:05

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Адреса и функции gta_sa.exe 1.0

дай угадаю: ты хочешь вывести на экран
а)карту, а на ней расположение педов
б)надписи над головой педов

первое довольно рпосто, а второе почти нереально)))


GIMS developer

Offline

#188 23-12-2009 16:07

GTASA
Registered: 13-09-2008
Posts: 476

Re: Адреса и функции gta_sa.exe 1.0

Если второе почти нереально, то как же был создан скрипт, в котором выводится текст на педа?
http://gtasamod.web.fc2.com/cleomod/photo/index.html

Offline

#189 23-12-2009 16:30

DimP
Registered: 23-03-2009
Posts: 51

Re: Адреса и функции gta_sa.exe 1.0

Карта уже сделана smile
А второе реально, GTASA спасибо большое, был бы этот огромный скрипт еще с коментариями  smile

Last edited by DimP (23-12-2009 16:36)

Offline

#190 23-12-2009 16:41

Alien
Registered: 12-10-2008
Posts: 564

Re: Адреса и функции gta_sa.exe 1.0

есть функция, преобразующая мировые координаты в координаты на экране... 0x70CE30.

Offline

#191 23-12-2009 17:23

DimP
Registered: 23-03-2009
Posts: 51

Re: Адреса и функции gta_sa.exe 1.0

То есть функция берет x,y,z а возвращает  x,y  если координаты попадают в плоскость экрана ?
Можно ли при вызове функции, __thiscall заменить на что-нибудь другое? ,а то проблемы с компиляцией.

Last edited by DimP (23-12-2009 17:23)

Offline

#192 23-12-2009 17:49

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Адреса и функции gta_sa.exe 1.0

Можно вставить ассемблерный кусок (положить this в ecx). Иначе - никак.

Offline

#193 23-12-2009 18:07

DimP
Registered: 23-03-2009
Posts: 51

Re: Адреса и функции gta_sa.exe 1.0

Можно пожалуйста пример такого вызова smile

Offline

#194 24-12-2009 01:45

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: Адреса и функции gta_sa.exe 1.0

Примерно так.

  void * addr = (void *)0x70CE30;
  _asm {
    push ecx; // сохранить ecx
    push _a14;
    push _a10;
    push _aC;
    push _a8;
    push _a4;
    push pCoords;
    mov ecx, this;
    call addr;
    pop ecx; // восстановить ecx
  }

Offline

#195 25-12-2009 14:26

DimP
Registered: 23-03-2009
Posts: 51

Re: Адреса и функции gta_sa.exe 1.0

Сложно sad , ну ничего буду разбираться как нибудь..., а в какие регистры записываются x y z и в какие возвращается w и h экрана ? Только не смейтесь над вопросом, потому что я ассемблер знаю только на уровне арифметических операций над числами.

Offline

#196 25-12-2009 15:26

Alien
Registered: 12-10-2008
Posts: 564

Re: Адреса и функции gta_sa.exe 1.0

а в какие регистры записываются x y z и в какие возвращается w и h экрана ?

Если это касательно функции WorldCoords2ScreenCoords, то там нет таких заморочек. Обыкновенный cdecl.

BOOL __cdecl WorldCoords2ScreenCoords(RwV3D *inPoint, RwV3D *outpoint, float *x, float *y, char, char)

Параметры:
1 - указатель на вектор мировых координат.
2 - сюда сохраняется вектор координат относительно камеры (кажется).
3 - сюда сохраняется x-координата на экране.
4 - сюда сохраняется y-координата на экране.
5, 6 - какие-то флаги. Лень разбираться. Ставь единицы.

Offline

#197 25-12-2009 15:30

DimP
Registered: 23-03-2009
Posts: 51

Re: Адреса и функции gta_sa.exe 1.0

crazy:crazy:...:^
указатель на вектор мировых координат, это структура из x y z или из матрицы вращения
или предварительно сосчитанное число a = sqrt((sqrt(x*x+y*y))^2+z*z) ,вроде так считается ?

Last edited by DimP (25-12-2009 15:44)

Offline

#198 25-12-2009 15:51

Alien
Registered: 12-10-2008
Posts: 564

Re: Адреса и функции gta_sa.exe 1.0

Структура из x, y, z.

#pragma pack(push, 1)
struct RwV3D
{
	float x;
	float y;
	float z;
};
#pragma pack(pop)

То, что называется "матрицей вращения":

#pragma pack(push, 1)
struct RwMatrix
{
	RwV3D right;
	DWORD pad1;
	RwV3D up;
	DWORD pad2;
	RwV3D at;
	DWORD pad3;
	RwV3D pos;
	DWORD pad4;
};
#pragma pack(pop)

{right, up, at} - это координаты базиса объекта (3 орта), pos - вектор положения объекта, pad - простая заглушка.
________________
посмотри последний пост listener'а на предыдущей странице и первый на этой. Там как раз про базисы и матрицы.

Last edited by Alien (25-12-2009 15:56)

Offline

#199 25-12-2009 16:03

DimP
Registered: 23-03-2009
Posts: 51

Re: Адреса и функции gta_sa.exe 1.0

Да я читал, Alien спасибо огромное smile

Offline

#200 01-05-2010 17:18

RDH
From: Энгельс
Registered: 09-01-2010
Posts: 65

Re: Адреса и функции gta_sa.exe 1.0

Alexander wrote:

Я прекрасно делал через CreateRemoteThread , вставлял дополнительный асмемблированный код , в котором был call процедуры спавна тачки )

Можешь расписать?


programmer.png
modder.jpg

Offline

Board footer

Powered by FluxBB