ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.io/forumdisplay.php?f=24)
-   -   [mod_sa] CarShot aka CarDrive (https://forum.antichat.io/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;


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

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

im0rg 09.05.2013 13:34

Цитата:

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

self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();
self->fTargetRotation = self->fCurrentRotation;
Вот эта часть кода звучит так ?
Проверяем куда смотрит камера и разворачиваем машину в сторону куда смотрит камера так?

self->fCurrentRotation Берем ротацию игрока и присваиваем значение позиции камеры

im0rg 09.05.2013 13:35

Цитата:

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

а как + дать? xD

Под текстом есть фраза "Добавить репутацию"

Norma_Cheater 09.05.2013 14:20

Вот я сделал проверку если маркет на карте или нет ...

Код:





Код:

if (*(int *)0xBA6774 != 0)
{
float mapPos[3];
for ( int i = 0; i GetWorld()->FindGroundZForPosition( mapPos[0], mapPos[1] ) + 2.0f;



как сделать что бы актёра разворачивала куда смотрит маркет?

RickAstley 09.05.2013 17:44

Цитата:

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

В 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?)


im0rg 09.05.2013 17:51

Цитата:

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

Помогите мне, криворукому, плиз:

Найди

Код:





Код:

if ( set.chatbox_logging )


и перед ним ставь код.

RickAstley 09.05.2013 17:54

А ладно, я своим нубо способом сделал (перенес тело чита в cheat_generic.cpp) заработало, спасибо :) хороший чит

im0rg 09.05.2013 18:19

Цитата:

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

А ладно, я своим нубо способом сделал (перенес тело чита в cheat_generic.cpp) заработало, спасибо :) хороший чит

Можно конечно и так, но у меня все функции в samp.cpp

Norma_Cheater 09.05.2013 18:54

На мой вопрос ответишь?

Код:





Код:

как сделать что бы актёра разворачивала куда смотрит маркет?

im0rg 09.05.2013 19:55

Цитата:

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

На мой вопрос ответишь?

Код:





Код:

как сделать что бы актёра разворачивала куда смотрит маркет?


Если найду в РМ напишу как.

Norma_Cheater 09.05.2013 20:30

Ok буду ждать, чуть чуть не так задал вопрос правильнее он звучит так

как сделать что бы актёра разворачивала в сторону маркета.

Thomas_Johnson 11.05.2013 10:43

Т.е. он вместо Unflip'a делает CarShot, верно я понял?

Norma_Cheater 11.05.2013 11:03

Цитата:

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

Т.е. он вместо Unflip'a делает CarShot, верно я понял?

Не совсем, если мы оставим всё и засуним функцию в samp.cpp то при столкновение или полёте машина может переворачиваться и делать подобные финты.

im0rg 11.05.2013 11:14

Цитата:

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

Т.е. он вместо Unflip'a делает CarShot, верно я понял?

Объясню попроще если ты врежешься то машина не перевернется (при установке кода Unflip) а если не поставить как было упомянуто выше машина будет финтить

MasterCard 18.05.2013 20:36

Вобще збс

im0rg 18.05.2013 20:37

Цитата:

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

Вобще збс

Спасибо

web 18.05.2013 20:49

спасибо за урок

MasterCard 18.05.2013 20:50

Неплохой програмист

Хотя что там говорить самый лучший :smoke:

im0rg 18.05.2013 20:51

Цитата:

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

Неплохой програмист
Хотя что там говорить самый лучший :smoke:

Я даже хуже новичка

MasterCard 18.05.2013 21:02

Цитата:

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

Я даже хуже новичка

Да потому что ти умееш делать то новичок с тебя некудышний

fondamentolok 19.05.2013 00:08

1>------ Построение начато: проект: mod_sa, Конфигурация: Release Win32 ------

1> cheat_generic.cpp

1>cheat_generic.cpp(1202): warning C4101: temp: неиспользованная локальная переменная

1>cheat_generic.cpp(1374): error C2059: синтаксическая ошибка: if

1>cheat_generic.cpp(1375): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"

1>cheat_generic.cpp(1375): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)

========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Все делал как в уроке получил такую ошибку помогите исправить

gwplayer 19.05.2013 01:10

Цитата:

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

1>cheat_generic.cpp(1374): error C2059: синтаксическая ошибка: if
1>cheat_generic.cpp(1375): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>cheat_generic.cpp(1375): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)

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

MasterCard 19.05.2013 11:32

Цитата:

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

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

Нет не скобка

Фордамент, как я понял ти сделал каршот и у тебя такие ошибки?

Напиши скайп мне я покажу что ти сделал неправильно

fondamentolok 19.05.2013 12:23

Работает токо с меню как вывести на худ и сделать кнопку

Norma_Cheater 19.05.2013 15:47

кнопку в ini.cpp сделать можно а в худ ProxyIDirectDevice9.cpp

fondamentolok 19.05.2013 19:25

Цитата:

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

кнопку в ini.cpp сделать можно а в худ ProxyIDirectDevice9.cpp

сделал но она не работает

Norma_Cheater 19.05.2013 20:45

traceLastFunc( "cheat_handle_carshot()" );

if ( KEY_PRESSED(set.key_carshot) )

{


Добавь

im0rg 19.05.2013 21:33

Цитата:

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

traceLastFunc( "cheat_handle_carshot()" );
if ( KEY_PRESSED(set.key_carshot) )
{
Добавь

Нахрен так усложнять прсото дописать в шапке && set.key_carshot

MasterCard 19.05.2013 21:38

Цитата:

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

сделал но она не работает

Сказал сам сделаеш, а я вижу сделал :D

fondamentolok 19.05.2013 22:05

Цитата:

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

Сказал сам сделаеш, а я вижу сделал :D

:D :D

fondamentolok 19.05.2013 22:13

Jesus спасибо что подсказал


Время: 11:09