[mod_sa] CarShot aka CarDrive

Статус
В этой теме нельзя размещать новые ответы.

im0rg

Известный
Автор темы
Друг
587
214
Всем привет, и это урок по добавлению в sobeit CarShot aka CarDrive
В samp.cpp
Код:
if (cheat_state->_generic.cardrive == 1)
{
    struct actor_info *self = actor_info_get(-1, ACTOR_ALIVE);
    struct vehicle_info *info = vehicle_info_get( -1, 0 );
    if (info != NULL)
    {
    self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();
    self->fTargetRotation = self->fCurrentRotation;
    info->base.matrix[4] = sinf(-self->fCurrentRotation);
    info->base.matrix[5] = cosf(-self->fCurrentRotation);
    if (KEY_DOWN('W')) ///W для езды вперед
    {
    info->speed[0] = sinf(-self->fCurrentRotation) * 0.8; ///0.8 скорость
    info->speed[1] = cosf(-self->fCurrentRotation) * 0.8;
    }
    if (KEY_DOWN('S'))///S для езды назад
    {
    info->speed[0] = sinf(-self->fCurrentRotation) * -0.5;
    info->speed[1] = cosf(-self->fCurrentRotation) * -0.5;
    }
    if (KEY_DOWN(0x20))//Space для взлета
    {
    info->speed[2] += 0.05;
    }
    if (KEY_DOWN(0xA2))///LCtrl для приземления
    {
    info->speed[2] -= 0.05;
    }
    if (KEY_DOWN(0xA0))//LShift для торможения
    {
    info->speed[0] = 0.0;
    info->speed[1] = 0.0;
    }
    }
}

В cheat_generic.cpp
Код:
void cheat_handle_cardrive()
{
    traceLastFunc( "cheat_handle_cardrive()" );
    if (cheat_state->_generic.cardrive == 1)
    {
        return;
    }
}

В cheat.h ко всем generic
Код:
int    cardrive;

Теперь в cheat_vehicle.cpp
Находим
Код:
void cheat_handle_vehicle_unflip ( struct vehicle_info *info, float time_diff )

Удаляем весь это-т void и ставим место него вот это-т код
Код:
void cheat_handle_vehicle_unflip ( struct vehicle_info *info, float time_diff )
{
traceLastFunc( "cheat_handle_vehicle_unflip()" );
if ( KEY_DOWN(set.key_unflip) || cheat_state->_generic.cardrive == 1 && cheat_state->state == CHEAT_STATE_VEHICLE )
{
  struct vehicle_info *info = vehicle_info_get( VEHICLE_SELF, NULL );
  struct actor_info *self = actor_info_get(ACTOR_SELF, ACTOR_ALIVE);
  self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();
  self->fTargetRotation = self->fCurrentRotation;
  traceLastFunc( "cheat_handle_vehicle_unflip()" );
 
  float  fTimeStep = *(float *)0xB7CB5C;
 
  CVehicle *cveh = getSelfCVehicle();
  CVector  cvehGrav;
  CMatrix  cvehMatrix;
  cveh->GetGravity( &cvehGrav );
  cveh->GetMatrix( &cvehMatrix );
 
  CVector rotationAxis = cheat_vehicle_getPositionUnder( cveh );
 
  cvehGrav.Normalize();
  rotationAxis.Normalize();
 
  float theta = acos( rotationAxis.DotProduct(&cvehGrav) );
  if ( !near_zero(theta) )
  {
  rotationAxis.CrossProduct( &cvehGrav );
  rotationAxis.Normalize();
  rotationAxis.ZeroNearZero();
  cvehMatrix = cvehMatrix.Rotate( &rotationAxis, -theta );
  }
 
  theta = M_PI / ( 75.0f / fTimeStep );
 
  CVector slowTurnAxis = cvehMatrix.vUp;
  slowTurnAxis.Normalize();
  slowTurnAxis.ZeroNearZero();
  cvehMatrix = cvehMatrix.Rotate( &cvehMatrix.vUp, theta );
 
  cveh->SetMatrix( &cvehMatrix );
 
  CVector vZero ( 0.0f, 0.0f, 0.0f );
  cveh->SetTurnSpeed( &vZero );
  info->base.matrix[4] = sinf(-self->fCurrentRotation);
  info->base.matrix[5] = cosf(-self->fCurrentRotation);
}
}

Теперь в new_menu.cpp
Код:
TwAddVarRW(twBar_SPNewCheats, "Car Drive", TW_TYPE_BOOLCPP, &cheat_state->_generic.cardrive, " label='Car Drive' group='WithCar' ");

С вами был Jesus, огромное спасибо FYP, EnD1ZeR,Cico, Могайка, MISTER_GONWIK Специально для сайта BlastHack.Net
При копировании указывать источник BlastHack.Net
 

megatoN_

Потрачен
188
65
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
збс, продолжай!
 

Skel

Потрачен
92
3
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
if (KEY_DOWN('S'))///S для езды вперед
мне кажется ты ошибся
 

BaHeK

Известный
84
6
чо он такой балшой у меня он поменше и управляетса тока мышкой:trollface:
 

Norma_Cheater

Новичок
141
6
а как + дать? xD
self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();
self->fTargetRotation = self->fCurrentRotation;

Вот эта часть кода звучит так ?
Проверяем куда смотрит камера и разворачиваем машину в сторону куда смотрит камера так?
 

im0rg

Известный
Автор темы
Друг
587
214
self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();
self->fTargetRotation = self->fCurrentRotation;
Вот эта часть кода звучит так ?
Проверяем куда смотрит камера и разворачиваем машину в сторону куда смотрит камера так?
self->fCurrentRotation Берем ротацию игрока и присваиваем значение позиции камеры
 

Norma_Cheater

Новичок
141
6
Вот я сделал проверку если маркет на карте или нет ...
Код:
if (*(int *)0xBA6774 != 0) 
{ 
float mapPos[3]; 
for ( int i = 0; i < (0xAF * 0x28); i += 0x28 ) 
{ 
if ( *(short *)(0xBA873D + i) == 4611 ) 
{ 
float *pos = (float *)( 0xBA86F8 + 0x28 + i ); 
gta_interior_id_set( 0 ); 
mapPos[0] = *pos; 
mapPos[1] = *( pos + 1 ); 
mapPos[2] = pGameInterface->GetWorld()->FindGroundZForPosition( mapPos[0], mapPos[1] ) + 2.0f;
как сделать что бы актёра разворачивала куда смотрит маркет?
 

RickAstley

Новичок
Проверенный
144
7
В samp.cpp
Код:
if (cheat_state->_generic.cardrive == 1)
{
    struct actor_info *self = actor_info_get(-1, ACTOR_ALIVE);
    struct vehicle_info *info = vehicle_info_get( -1, 0 );
    if (info != NULL)
    {
    self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();
    self->fTargetRotation = self->fCurrentRotation;
    info->base.matrix[4] = sinf(-self->fCurrentRotation);
    info->base.matrix[5] = cosf(-self->fCurrentRotation);
    if (KEY_DOWN('W')) ///W для езды вперед
    {
    info->speed[0] = sinf(-self->fCurrentRotation) * 0.8; ///0.8 скорость
    info->speed[1] = cosf(-self->fCurrentRotation) * 0.8;
    }
    if (KEY_DOWN('S'))///S для езды назад
    {
    info->speed[0] = sinf(-self->fCurrentRotation) * -0.5;
    info->speed[1] = cosf(-self->fCurrentRotation) * -0.5;
    }
    if (KEY_DOWN(0x20))//Space для взлета
    {
    info->speed[2] += 0.05;
    }
    if (KEY_DOWN(0xA2))///LCtrl для приземления
    {
    info->speed[2] -= 0.05;
    }
    if (KEY_DOWN(0xA0))//LShift для торможения
    {
    info->speed[0] = 0.0;
    info->speed[1] = 0.0;
    }
    }
}
Помогите мне, криворукому, плиз:
1>samp.cpp(1976): error C2059: syntax error : 'if'
1>samp.cpp(1977): error C2447: '{' : missing function header (old-style formal list?)
 
Статус
В этой теме нельзя размещать новые ответы.