ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [mod_sa] CarShot aka CarDrive (https://forum.antichat.xyz/showthread.php?t=1300742)

im0rg 08.05.2013 23:20

Всем привет, и это урок по добавлению в 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

gwplayer 09.05.2013 00:17

Давай еще:D

im0rg 09.05.2013 01:22

Цитата:

Сообщение от includelow

Давай еще:D

жди скоро будут новые уроки

megatoN_ 09.05.2013 02:13

збс, продолжай!

Skel 09.05.2013 08:19

if (KEY_DOWN('S'))///S для езды вперед

мне кажется ты ошибся

im0rg 09.05.2013 08:30

Цитата:

Сообщение от Skel

if (KEY_DOWN('S'))///S для езды вперед
мне кажется ты ошибся

да действительно описался, исправил

key 09.05.2013 09:59

Классно классно!!!!!!!1!11!1!!1

BaHeK 09.05.2013 10:12

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

Norma_Cheater 09.05.2013 10:34

Класс однозначно +

Norma_Cheater 09.05.2013 10:44

а как + дать? xD

self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();

self->fTargetRotation = self->fCurrentRotation;


Вот эта часть кода звучит так ?

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


Время: 16:29