#1 Re: Справочная информация » Адреса и функции gta_vc.exe 1.0 » 17-04-2015 00:37

Единственное, сразу бросилось в глаза, опечатка в классе CPlacable

Это не моя работа))). Я строго писал имена методов в таком порядке CClass::Method. Кстати вот сейчас что еще нашел, буквально с под курсора:

text:0047BE8F    CCam::Process_FollowPedWithMouse(CVector  const&, float, float, float)

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

#2 Re: Справочная информация » Адреса и функции gta_vc.exe 1.0 » 16-04-2015 23:08

Немного обновил, базу и затронул разные методы классов CMatrix, CCam, CCamera, CPad, CTxdStore, CFont, CSprite2d и прочие...

Скачать

#3 Re: Справочная информация » Адреса и функции gta_vc.exe 1.0 » 23-12-2013 13:27

Благодарю ребят за их труд! Хорошо по работали над базой для GTA Vice City. Самый раз можно делать моды.

#4 Re: Программирование » RwV3D_Normalize - вопрос. » 20-08-2013 17:48

Да тут, компилятор не плохо тоже поработал.

#5 Re: Программирование » RwV3D_Normalize - вопрос. » 20-08-2013 17:33

Ну все понял, а то я думал зачем еще туда всунули во внутрь: fcomp 

Сама картинка такая:

.text:004DFEA0                                   RwV3D__normalize proc near              ; CODE XREF: sub_4114E0+FBp
.text:004DFEA0                                                                           ; sub_413DE0+231p
.text:004DFEA0                                                                           ; sub_414470+BFEp
.text:004DFEA0                                                                           ; sub_4165B0+E1p ...
.text:004DFEA0
.text:004DFEA0                                   var_8           = dword ptr -8
.text:004DFEA0
.text:004DFEA0 000 83 EC 08                                      sub     esp, 8
.text:004DFEA3 008 D9 41 04                                      fld     [ecx+RwV3d.y]
.text:004DFEA6 008 D9 C0                                         fld     st
.text:004DFEA8 008 D8 C8                                         fmul    st, st          ; y * y
.text:004DFEAA 008 D9 01                                         fld     [ecx+RwV3d.x]
.text:004DFEAC 008 DD DA                                         fstp    st(2)
.text:004DFEAE 008 D9 C1                                         fld     st(1)
.text:004DFEB0 008 D8 C8                                         fmul    st, st
.text:004DFEB2 008 DE C1                                         faddp   st(1), st
.text:004DFEB4 008 D9 41 08                                      fld     [ecx+RwV3d.z]
.text:004DFEB7 008 DD DA                                         fstp    st(2)
.text:004DFEB9 008 D9 C1                                         fld     st(1)
.text:004DFEBB 008 D8 C8                                         fmul    st, st
.text:004DFEBD 008 DE C1                                         faddp   st(1), st
.text:004DFEBF 008 DD D1                                         fst     st(1)
.text:004DFEC1 008 D8 1D 70 15 69 00                             fcomp   flt_691570
.text:004DFEC7 008 DF E0                                         fnstsw  ax
.text:004DFEC9 008 F6 C4 04                                      test    ah, 4
.text:004DFECC 008 75 14                                         jnz     short loc_4DFEE2
.text:004DFECE 008 80 E4 45                                      and     ah, 69
.text:004DFED1 008 F6 C4 41                                      test    ah, 65
.text:004DFED4 008 74 0C                                         jz      short loc_4DFEE2
.text:004DFED6 008 C7 01 00 00 80 3F                             mov     [ecx+RwV3d.x], 1.0
.text:004DFEDC 008 83 C4 08                                      add     esp, 8
.text:004DFEDF 000 DD D8                                         fstp    st
.text:004DFEE1 000 C3                                            retn
.text:004DFEE2                                   ; ---------------------------------------------------------------------------
.text:004DFEE2
.text:004DFEE2                                   loc_4DFEE2:                             ; CODE XREF: RwV3D__normalize+2Cj
.text:004DFEE2                                                                           ; RwV3D__normalize+34j
.text:004DFEE2 008 D9 C0                                         fld     st
.text:004DFEE4 008 D9 FA                                         fsqrt
.text:004DFEE6 008 D9 1C 24                                      fstp    [esp+8+var_8]
.text:004DFEE9 008 D9 04 24                                      fld     [esp+8+var_8]
.text:004DFEEC 008 DD D9                                         fstp    st(1)
.text:004DFEEE 008 D9 05 74 15 69 00                             fld     flt_691574
.text:004DFEF4 008 D8 F1                                         fdiv    st, st(1)
.text:004DFEF6 008 DD D9                                         fstp    st(1)
.text:004DFEF8 008 D9 01                                         fld     [ecx+RwV3d.x]
.text:004DFEFA 008 D8 C9                                         fmul    st, st(1)
.text:004DFEFC 008 D9 19                                         fstp    [ecx+RwV3d.x]
.text:004DFEFE 008 D9 41 04                                      fld     [ecx+RwV3d.y]
.text:004DFF01 008 D8 C9                                         fmul    st, st(1)
.text:004DFF03 008 D9 59 04                                      fstp    [ecx+RwV3d.y]
.text:004DFF06 008 D9 41 08                                      fld     [ecx+RwV3d.z]
.text:004DFF09 008 D8 C9                                         fmul    st, st(1)
.text:004DFF0B 008 D9 59 08                                      fstp    [ecx+RwV3d.z]
.text:004DFF0E 008 DD D8                                         fstp    st
.text:004DFF10 008 83 C4 08                                      add     esp, 8
.text:004DFF13 000 C3                                            retn
.text:004DFF13                                   RwV3D__normalize endp

#6 Re: Программирование » RwV3D_Normalize - вопрос. » 20-08-2013 17:17

У RwV3d нет методов, это просто структура x y z. Другое дело CVector - там и перегруженные операторы, и те же Normalise и Length.

т.е CVector - эта обвертка, значит имеет методы? Вообще может быть, я не немножко не так переписал ее?

#7 Программирование » RwV3D_Normalize - вопрос. » 20-08-2013 17:06

VintProg_Pro
Replies: 7

Сижу вот и думаю, может быть это метод RwV3d ? Который выполняет нормализацию.

Пока так написал, но внутри видел какую-то проверку на ноль.

void RwV3dNormalize(RwV3d * V3d) {
    float inv_lng = 1.0f / sqrt(V3d->x*V3d->x + V3d->y*V3d->y + V3d->z*V3d->z);
    V3d->x = V3d->x * inv_lng;
    V3d->y = V3d->y * inv_lng;
    V3d->z = V3d->z * inv_lng;
}

#8 Re: Программирование » __usercall MakeAngleAccute. » 17-08-2013 17:06

Спасибо, теперь я все понял и за чего такой вид образовался у функции.

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

Да уж. Но если уже переписывать MakeAngleAccute, тогда обязательно придется переписывать и те функции, где она вызывалась.

#9 Программирование » __usercall MakeAngleAccute. » 17-08-2013 11:12

VintProg_Pro
Replies: 2

Здравствуйте, кто может подсказать как эту функцию, правильно переписывать в C++ ?



.text:00642920                                   ; float __usercall MakeAngleAccute<st0>(float val<st0>)
.text:00642920                                   MakeAngleAccute proc near               ; CODE XREF: sub_401FB0+1D2p
.text:00642920                                                                           ; sub_402550+133p
.text:00642920                                                                           ; sub_41D410+2BEp
.text:00642920                                                                           ; sub_41D410+2E4p ...
.text:00642920 000 D9 EB                                         fldpi
.text:00642922 000 D9 C9                                         fxch    st(1)
.text:00642924
.text:00642924                                   loc_642924:                             ; CODE XREF: MakeAngleAccute+14j
.text:00642924 000 D9 05 A0 D4 6D 00                             fld     fHalf_1
.text:0064292A 000 DE C9                                         fmulp   st(1), st
.text:0064292C 000 D9 F8                                         fprem
.text:0064292E 000 DF E0                                         fnstsw  ax
.text:00642930 000 66 A9 00 04                                   test    ax, 400h
.text:00642934 000 75 EE                                         jnz     short loc_642924
.text:00642936 000 DD D9                                         fstp    st(1)
.text:00642938 000 C3                                            retn
.text:00642938                                   MakeAngleAccute endp

#10 Re: Программирование » Exception handler? » 02-08-2013 18:59

CFxSystem *(__thiscall *_RegisterFxSystem)(CParticleData *particleData, int i, const char *filename, FILE *file) =     (CFxSystem *(__thiscall *)(CParticleData *, int, const char *, FILE *)) 0x5C1F50;

Если объявить так, то имей введу, что перед вызовом, надо каким-то образом передать указатель на объект в регистр ecx.

DWORD address;  //Сюда присваиваем наш адрес объекта через 
__asm mov ecx, address;
_RegisterFxSystem(&particleData, i, filename, &file);

Что-то должно выглядеть так. Ибо функция начинает обращаться регистру ecx, где вообще нету нашего адреса нужного объекта.

#11 Re: Программы для GTA » GTA VC Seter » 01-08-2013 15:19

VintProg_Pro а что на счет взлома лимитов маркеров VC ? Ты как давно говорил об этом и скрины показывал, но релиза в этом направлении почему-то не было никакого..

Тут совсем все не просто, можно подменить конечно массив маркеров, но учтите что сохранение тоже увеличиться. Не стал, делать потому-что не кто в этом не нуждался.

#12 Re: О сайте и форумах » Изменения на форумах » 01-08-2013 01:50

обновление прошло, вроде все работает хорошо и заметно быстрее))

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

#13 Re: Работа с памятью, EXE » Квадратный или прямоугольный радар\Square or rectangular radar » 01-08-2013 01:46

0058a330    1799    _?DrawRadar

@Seemann
Так а для какого конкретно exe? Есть соответствующая база IDA?

@RitrS
Да по сути, это не сложно, если это можно вправить одним-двумя значениями. Например для Вайса поиграв с этими адресами (примечание: это непосредственно в памяти и для версии 1.0):

0x68FD38
0x68FD3C

Можно сделать сам радар квадратный.

#14 Re: Программы для GTA » GTA VC Seter » 31-07-2013 16:16

Да вот разработал, конечно не знаю, на сколько он будет полезен народу. Тем более это для GTA Vice City. Пишите свои оценки, на сколько вам понравился мой инструмент.

#15 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 07-04-2012 15:21

Да вещь!

005D1140   No Category   CWeapon::FireInstantHit (( CEntity *, CVector *))

#16 Re: Справочная информация » Работа с компонентами машины » 23-03-2012 00:26

масштабирование компонента с коэффициентами для каждой из осей

А как же коллизии? Они не масштабируються?

#19 Работа с памятью, EXE » Спрайт не выводится. » 12-01-2012 10:22

VintProg_Pro
Replies: 0

есть функция:

                            ; int __thiscall CTexture__Draw(CTexture *, RwRect *rect, RwRGBA *color1, RwRGBA *color2, RwRGBA *color3, RwRGBA *color4, float, float, float, float, float)
.text:005786A0                                         CTexture__Draw  proc near               ; CODE XREF: _DrawHud+3F3p
.text:005786A0                                                                                 ; _DrawHud+4D7p
.text:005786A0                                                                                 ; _DrawHud+619p
.text:005786A0                                                                                 ; _DrawHud+749p ...
.text:005786A0
.text:005786A0                                         rect            = dword ptr  4
.text:005786A0                                         color1          = dword ptr  8
.text:005786A0                                         color2          = dword ptr  0Ch
.text:005786A0                                         color3          = dword ptr  10h
.text:005786A0                                         color4          = dword ptr  14h
.text:005786A0                                         f18_2           = dword ptr  18h
.text:005786A0                                         f14_3           = dword ptr  1Ch
.text:005786A0                                         f18_3           = dword ptr  20h
.text:005786A0                                         f14_4           = dword ptr  24h
.text:005786A0                                         f18_4           = dword ptr  28h
.text:005786A0
.text:005786A0 000 8B 44 24 04                                         mov     eax, [esp+rect]
.text:005786A4 000 8B 54 24 08                                         mov     edx, [esp+color1]
.text:005786A8 000 53                                                  push    ebx
.text:005786A9 004 89 CB                                               mov     ebx, ecx
.text:005786AB 004 FF 74 24 2C                                         push    [esp+4+f18_4]   ; f18_4
.text:005786AF 008 FF 74 24 2C                                         push    [esp+8+f14_4]   ; f14_4
.text:005786B3 00C FF 74 24 2C                                         push    [esp+0Ch+f18_3] ; f18_3
.text:005786B7 010 FF 74 24 2C                                         push    [esp+10h+f14_3] ; f14_3
.text:005786BB 014 FF 74 24 2C                                         push    [esp+14h+f18_2] ; f18_2
.text:005786BF 018 FF 74 24 2C                                         push    [esp+18h+color4] ; f14_2
.text:005786C3 01C FF 74 24 2C                                         push    [esp+1Ch+color3] ; f18_1
.text:005786C7 020 FF 74 24 2C                                         push    [esp+20h+color2] ; f14_1
.text:005786CB 024 52                                                  push    edx             ; color4
.text:005786CC 028 52                                                  push    edx             ; color3
.text:005786CD 02C 52                                                  push    edx             ; color2
.text:005786CE 030 52                                                  push    edx             ; color1
.text:005786CF 034 50                                                  push    eax             ; rect
.text:005786D0 038 E8 3B F9 FF FF                                      call    ResetPrimitiveVertices
.text:005786D5 038 8B 0B                                               mov     ecx, [ebx+CTexture.rwTexture] ; RwTexture*
.text:005786D7 038 83 C4 34                                            add     esp, 34h
.text:005786DA 004 85 C9                                               test    ecx, ecx
.text:005786DC 004 75 04                                               jnz     short loc_5786E2
.text:005786DE 004 6A 00                                               push    0
.text:005786E0 008 EB 03                                               jmp     short loc_5786E5
.text:005786E2                                         ; ---------------------------------------------------------------------------
.text:005786E2
.text:005786E2                                         loc_5786E2:                             ; CODE XREF: CTexture__Draw+3Cj
.text:005786E2 004 8B 01                                               mov     eax, [ecx+RwTexture.raster]
.text:005786E4 004 50                                                  push    eax             ; _DWORD
.text:005786E5
.text:005786E5                                         loc_5786E5:                             ; CODE XREF: CTexture__Draw+40j
.text:005786E5 008 6A 01                                               push    rwRENDERSTATETEXTURERASTER ; RwRenderState
.text:005786E7 00C E8 B4 14 0D 00                                      call    _rwSetCameraRenderState
.text:005786EC 00C 59                                                  pop     ecx
.text:005786ED 008 59                                                  pop     ecx
.text:005786EE 004 6A 04                                               push    4               ; vert_count
.text:005786F0 008 68 40 40 7D 00                                      push    offset _renderPrimitive ; vertices
.text:005786F5 00C 6A 05                                               push    5               ; fvf
.text:005786F7 010 E8 14 15 0D 00                                      call    Im2DRenderPrimitive ; первый параметр - flexible vertex format?
.text:005786FC 010 83 C4 0C                                            add     esp, 0Ch
.text:005786FF 004 5B                                                  pop     ebx
.text:00578700 000 C2 28 00                                            retn    28h
.text:00578700                                         CTexture__Draw  endp

написал ее для начала в таком ввиде:

void Draw_Texture(void* pTexture,  CRwRect * RwRect, CRwRGBA *color1, CRwRGBA *color2, CRwRGBA *color3, CRwRGBA *color4, CRwRGBA *color5, CRwRGBA *color6, CRwRGBA *color7, CRwRGBA *color8, CRwRGBA *color9){
DWORD A = ADDRESS_CTextureDraw;

__asm 
 {
  mov  ecx, pTexture;
  push color9;
  push color8;
  push color7;
  push color6;
  push color5;
  push color4;
  push color3;
  push color2;
  push color1;
  push RwRect;
  call A;
 };


};

CRwRGBA RGBA;
CRwRect rect;
DWORD  shotTexture = 0x0A10844;

RGBA.a = 255;
RGBA.b = 255;
RGBA.g = 255;
RGBA.r = 255;
rect.x = 128.0;
rect.y = 128.0;
rect.w = 128.0;
rect.h = 128.0;

пытаюсь вызывать ее, в таймере

Draw_Texture((void*)(0x0A10844),  &rect, &RGBA, &RGBA, &RGBA, &RGBA, &RGBA, &RGBA, &RGBA, &RGBA, &RGBA);

но не чего на экран не выводится... В чем может быть проблема.

#20 Re: Вопросы по скриптингу » Шрифты в GTA SA » 23-09-2011 12:51

Ты имеешь введу что-бы он статику пачнул?

#21 Re: Программы для GTA » [SA] Скрипт для редактирования сейв-файлов » 23-09-2011 12:45

Были времена, а теперь не чего нового на GTA не выходит!

#22 Re: Программирование » DLL Loader » 23-09-2011 10:32

но я не знаю, как найденный код перенести на C++ (сложность в том, чтобы обозначить границы действительно нужного ассемблерного кода).

http://sannybuilder.com/forums/viewtopic.php?id=1363

есть функция void FUNCTION (int, float). я точно уверен, что важны два параметра и могу определить их в отладчике, однако в коде зачем-то в стек пихается больше значений, чем два

Возможно это не данной функций передается не нужные параметры...

как приложение понимает, что функция, вызываемая как FUNCTION (10, 234.55) на самом деле принимает только 2 параметра и как мне описать такую FUNCTION, если я наткнусь на непонятные "лишние" параметры в стеке?

IDA pro показывает arg_ сколько их столько и параметров у функции...

предположим, я хочу повторить функцию лечения игрока

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

#23 Re: Работа с памятью, EXE » Взломать лимит » 22-09-2011 02:23

Опять пытаемся CLEO скриптом править память, ну зачем же...
Выделаешь свой массив в C++, заменяешь все ссылки на свой массив... Массив должен быть из верных элементов, например из структур...

#25 Re: Вопросы по скриптингу » Шрифты в GTA SA » 21-09-2011 23:21

Да вовсе не глубоко... Там то все-от делов загрузка фонта , получение хендла и прорисовка...

Board footer

Powered by FluxBB