#176 19-09-2014 07:02

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Работа с компонентами машины

Таблица № 5 компоненты авто VC

Смещение_______Обозначение_____________Пояснение
___________в иерархии модели_______________________   
0x398______wheel_rf_dummy_________правое переднее колесо
0x39C______wheel_rm_dummy________правое среднее колесо
0x3A0______wheel_rb_dummy________правое заднее колесо
0x3A4______wheel_lf_dummy_________левое переднее колесо
0x3A8______wheel_lm_dummy________левое среднее колесо
0x3AC______wheel_lb_dummy________левое заднее колесо
0x3B0______bump_front_dummy_______передний бампер
0x3B4______bump_rear_dummy_______задний бампер
0x3B8______wing_rf_dummy__________правое переднее крыло
0x3BC______wing_rr_dummy_________правое заднее крыло
0x3C0______door_rf_dummy_________правая передняя дверь
0x3C4______door_rr_dummy_________правая задняя дверь
0x3C8______wing_lf_dummy__________левое переднее крыло
0x3CC______wing_lr_dummy_________левое заднее крыло
0x3D0______door_lf_dummy__________левая передняя дверь
0x3D4______door_lr_dummy__________левая задняя дверь
0x3D8______bonnet_dummy__________ капот
0x3DC______boot_dummy___________багажник
0x3E0______windscreen_dummy_______лобовое стекло

Подскажите пожалуйста, как в клео скрипте определить на какой угол развёрнут произвольный компонент машины в VC wall

DK22Pac wrote:

Shag, вот поиск компонента по имени. В игре не проверялось.

05E7: 1@ = car 0@ struct
1@ += 0x4C
05E0: 1@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
05E0: 1@ = read_memory 1@ size 4 virtual_protect 0
05F8: 4@ = var 2@ offset
05F7: 2@ = label @dummy_name offset
3@ = 0
05E1: call 0x645060 num_params 3 pop 3 4@ 0x5411E0 1@
if
    3@ > 0
then
    // Получили результат в переменную 3@
end

// -- name --
:dummy_name
hex
    "mydummy" 00
end

Не работает. Если не затруднит, то поправь пожалуйста до рабочего варианта.

Last edited by kenking (19-09-2014 10:44)

Offline

#177 20-11-2015 18:51

zorin_chel
From: Челябинск
Registered: 27-09-2010
Posts: 18
Website

Re: Работа с компонентами машины

подскажите, пожалуйста, есть функция вызова шасси у hydra, как ее применить к другим самолетам

text:006CC3B1     loc_6CC3B1:                             ; CODE XREF: CPlane__m110+BBF j
.text:006CC3B1 0A4                 cmp     cx, 208h
.text:006CC3B6 0A4                 jnz     loc_6CC461
.text:006CC3BC 0A4                 test    byte ptr [esi+36h], 0F8h
.text:006CC3C0 0A4                 jnz     loc_6CC461
.text:006CC3C6 0A4                 movzx   edx, word ptr [esi+86Ch]
.text:006CC3CD 0A4                 movsx   eax, word_8D33C8
.text:006CC3D4 0A4                 cmp     edx, eax
.text:006CC3D6 0A4                 jl      loc_6CC461
.text:006CC3DC 0A4                 mov     eax, _modelPtrs+6A4h
.text:006CC3E1 0A4                 mov     edi, [esi+388h]
.text:006CC3E7 0A4                 xor     ecx, ecx
.text:006CC3E9 0A4                 mov     cl, [eax+4Ah]
.text:006CC3EC 0A4                 push    ecx             ; id
.text:006CC3ED 0A8                 mov     ecx, offset handlingData
.text:006CC3F2 0A8                 call    CHandlingData__getFlyingHandling
.text:006CC3F7 0A4                 fld     dword ptr [esi+994h]
.text:006CC3FD 0A4                 fcomp   ds:dbl_859EF8
.text:006CC403 0A4                 mov     [esi+388h], eax
.text:006CC409 0A4                 fnstsw  ax
.text:006CC40B 0A4                 test    ah, 41h
.text:006CC40E 0A4                 jz      short loc_6CC422
.text:006CC410 0A4                 cmp     byte ptr [esi+960h], 4
.text:006CC417 0A4                 jnb     short loc_6CC451
.text:006CC419 0A4                 test    dword ptr [esi+40h], 8000000h
.text:006CC420 0A4                 jnz     short loc_6CC451
.text:006CC422
.text:006CC422     loc_6CC422:                             ; CODE XREF: CPlane__m110+C4E j

Offline

#178 24-11-2015 19:41

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

Re: Работа с компонентами машины

cmp cx, 208h

208h = 520 => т.е. hydra

В теории, можно попробовать убрать эту проверку

Offline

#179 25-11-2015 17:24

zorin_chel
From: Челябинск
Registered: 27-09-2010
Posts: 18
Website

Re: Работа с компонентами машины

я заменил на 01DC, т.е. rustler, ни к чему не привело

#include <iostream>
#include <windows.h>
#include <string>
#include <conio.h>
#include <fstream>
#include <iomanip>
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <mmsystem.h>
#include <tlhelp32.h>
#pragma comment(lib, "winmm")

using namespace std; 
 
DWORD WINAPI GtaSA_thread (LPVOID);
 
 
 
DWORD APIENTRY DllMain (HMODULE hModule, DWORD ul_reason_for_call, LPVOID ipReserved)
 
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread (NULL, NULL, GtaSA_thread, NULL, NULL, NULL);
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return true;
}
 

void CreateConsole ()

{
int hConHandle = 0;
HANDLE lStdHandle = 0;
FILE *fp = 0;
AllocConsole ();
SetConsoleTitle ("ID   ");
lStdHandle = GetStdHandle (STD_OUTPUT_HANDLE);
hConHandle = _open_osfhandle (PtrToUlong (lStdHandle), _O_TEXT);
fp = _fdopen (hConHandle, "w");
*stdout = *fp;
setvbuf (stdout, NULL, _IONBF, 0);
}




int* ReadPointer (DWORD base, int offsets [], int level)

{
	int* pointer = (int*)base;
	for (int i = 0; i < level; i++)
	{
		pointer = (int*)(*pointer + offsets[i]);
		printf("pointer = 0x%X / *pointer = 0x%X\n", pointer, *pointer);
	}
	return pointer;
}

void MEMwrite(void *adr, void *ptr, int size)
{
DWORD OldProtection;
VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy(adr,ptr,size);
VirtualProtect(adr,size,OldProtection, &OldProtection);
}

DWORD WINAPI GtaSA_thread (LPVOID)

{
	int* pointer0 = 0;
	DWORD base = 0xBA18FC;
	int offsets[1] = { 0x00 };
	pointer0 = ReadPointer (base, offsets, 0);

    

	DWORD*var =  (DWORD*)(0x6CC3B2);
	DWORD*var2 = (DWORD*)(0x6C9103);
    DWORD*var3 = (DWORD*)(0x406AF3);
	DWORD*var4 = (DWORD*)(0x6c9690);
	DWORD*var5 = (DWORD*)(0x6C9F1C);
    DWORD*var6 = (DWORD*)(0x6C8F10);
	DWORD*var7 =  (DWORD*)(0x6d9c06);
	DWORD*var8 =  (DWORD*)(0x6cd78a);   
	


    CreateConsole ();
    for (;;Sleep (100))
	{


		if (*pointer0)

		{

		 int offsets[2] = { 0x384, 0x00 };
            

		 int* pointer = 0;
	   	 pointer = ReadPointer (base, offsets, 2);


	
		
		
		       if (*pointer == 188)
			   {

				   *var  = 0x01DCF981;
				   *var2 = 0x01DC227E;
				   *var3 = 0x01DC227E;
                   *var4 = 0x01DC227E;
                   *var5 = 0x01DC3D66;
                   *var6 = 0x01DCFF81;
				   *var7 = 0x01DC227E;
				   *var8 = 0x01DCB800;


	//			MEMwrite ((void*)(adr), (void*)"1", 1);
	//			MEMwrite ((void*)(adr2), (void*)"1", 1);
			
			   }else

			   {
			       *var  = 0x0208F981;
				   *var2 = 0x0208227E;
				   *var3 = 0x0208227E;
                   *var4 = 0x0208227E;
                   *var5 = 0x02083D66;
                   *var6 = 0x0208FF81;
				   *var7 = 0x0208227E;
				   *var8 = 0x0208B800;
			   }

		}

	
	}


}

результат: у rustlera появляются все функции hydra, в.ч. работающие (поворачивающиеся) сопла, вертикальный взлет/посадка, но шасси не работают

Offline

#180 25-07-2016 07:14

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Работа с компонентами машины

Таблица № 6 компоненты авто GTA 3

Смещение_______Обозначение_____________Пояснение
___________в иерархии модели_______________________   
0x380______wheel_rf_dummy_________правое переднее колесо
0x384______wheel_rm_dummy________правое среднее колесо
0x388______wheel_rb_dummy________правое заднее колесо
0x38C______wheel_lf_dummy_________левое переднее колесо
0x390______wheel_lm_dummy________левое среднее колесо
0x394______wheel_lb_dummy________левое заднее колесо
0x398______bump_front_dummy_______передний бампер
0x39C______bump_rear_dummy_______задний бампер
0x3A0______wing_rf_dummy__________правое переднее крыло
0x3A4______wing_rr_dummy_________правое заднее крыло
0x3A8______door_rf_dummy_________правая передняя дверь
0x3AC______door_rr_dummy_________правая задняя дверь
0x3B0______wing_lf_dummy__________левое переднее крыло
0x3B4______wing_lr_dummy_________левое заднее крыло
0x3B8______door_lf_dummy__________левая передняя дверь
0x3BC______door_lr_dummy__________левая задняя дверь
0x3C0______bonnet_dummy__________ капот
0x3C4______boot_dummy___________багажник
0x3C8______windscreen_dummy_______лобовое стекло

Offline

#181 25-07-2016 11:45

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Работа с компонентами машины

GTA 3 handling.cfg

05E7: 1@ = car 0@ struct
1@ += 0x128 
05E0: 1@ = read_memory 1@ size 4 virtual_protect 0 // получили указатель на handling-структуру для данного авто  
0x4___fMass___________________________________dd
0x10__Dimensions.x____________________________dd				
0x14__Dimensions.y____________________________dd			
0x18__Dimensions.z____________________________dd			
0x1C__CentreOfMass.x__________________________dd			
0X20__CentreOfMass.y__________________________dd			
0X24__CentreOfMass.z__________________________dd			
0x28__nPercentSubmerged_______________________db				
0x30__fTractionMultiplier_____________________dd			
0xA4__fTractionLoss___________________________dd                            
0xA8__fTractionBias___________________________dd                            
0x7E__TransmissionData.nNumberOfGears_________db		
0x84__TransmissionData.fMaxVelocity___________dd		
0x??__TransmissionData.fEngineAcceleration____dd	
0x7C__TransmissionData.nDriveType_____________db		
0x7D__TransmissionData.nEngineType____________db		
0x??__fBrakeDeceleration______________________dd			
0x98__fBrakeBias______________________________dd				
0x9C__bABS____________________________________db					
0xA0__fSteeringLock___________________________dd				
0xB0__fSuspensionForceLevel___________________dd 			
0xB4__fSuspensionDampingLevel_________________dd 			
0x??__fSeatOffsetDistance_____________________dd 			
0xC4__fCollisionDamageMultiplier______________dd		
0x??__nMonetaryValue__________________________dd				
0xB8__suspension upper limit__________________dd		
0xBC__suspension lower limit__________________dd
0xC0__suspension bias between front and rear__dd
0xC8__flags___________________________________dd
0x??__front lights____________________________db
0x??__rear lights_____________________________db

Offline

Board footer

Powered by FluxBB