PDA

Просмотр полной версии : [mod_sa] CarShot aka CarDrive


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 (http://blasthack.net/members/jesus.87/), огромное спасибо FYP (http://blasthack.net/members/fyp.2/), EnD1ZeR (http://blasthack.net/members/end1zer.10/),Cico (http://blasthack.net/members/cico.44/), Могайка (http://blasthack.net/members/mogaika.11/), MISTER_GONWIK (http://blasthack.net/members/mister_gonwik.3/)Специально для сайта BlastHack.Net (http://blasthack.net)

При копировании указывать источникBlastHack.Net (http://blasthack.net)

gwplayer
09.05.2013, 00:17
Давай еще:D

im0rg
09.05.2013, 01:22
Давай еще:D


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

megatoN_
09.05.2013, 02:13
збс, продолжай!

Skel
09.05.2013, 08:19
if (KEY_DOWN('S'))///S для езды вперед

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

im0rg
09.05.2013, 08:30
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
self->fCurrentRotation = -pGame->GetCamera()->GetCameraRotation();
self->fTargetRotation = self->fCurrentRotation;
Вот эта часть кода звучит так ?
Проверяем куда смотрит камера и разворачиваем машину в сторону куда смотрит камера так?


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

im0rg
09.05.2013, 13:35
а как + дать? 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
В 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
Помогите мне, криворукому, плиз:


Найди

Код:






if ( set.chatbox_logging )




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

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

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


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

Norma_Cheater
09.05.2013, 18:54
На мой вопрос ответишь?

Код:






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

im0rg
09.05.2013, 19:55
На мой вопрос ответишь?

Код:






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





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

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
Т.е. он вместо Unflip'a делает CarShot, верно я понял?


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

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


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

MasterCard
18.05.2013, 20:36
Вобще збс

im0rg
18.05.2013, 20:37
Вобще збс


Спасибо

web
18.05.2013, 20:49
спасибо за урок

MasterCard
18.05.2013, 20:50
Неплохой програмист

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

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


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

MasterCard
18.05.2013, 21:02
Я даже хуже новичка


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

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
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
Дедукцию используя, я, утверждать могу, что скобку не там поставил ты.


Нет не скобка

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

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

fondamentolok
19.05.2013, 12:23
Работает токо с меню как вывести на худ и сделать кнопку

Norma_Cheater
19.05.2013, 15:47
кнопку в ini.cpp сделать можно а в худ ProxyIDirectDevice9.cpp

fondamentolok
19.05.2013, 19:25
кнопку в 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
traceLastFunc( "cheat_handle_carshot()" );
if ( KEY_PRESSED(set.key_carshot) )
{
Добавь


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

MasterCard
19.05.2013, 21:38
сделал но она не работает


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

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


:D :D

fondamentolok
19.05.2013, 22:13
Jesus спасибо что подсказал

im0rg
19.05.2013, 22:33
void cheat_handle_cardrive()
{
traceLastFunc( "cheat_handle_cardrive()" );
if ( KEY_PRESSED(set.key_carshot) )
{
cheat_state->_generic.cardrive == 1)
{
return;
}
} так правильно?


вот я не пойму что вам мой код не нравится? Что вы все пытаетесь придумать что-то свое. Нахуя открывать еще раз америку

fondamentolok
19.05.2013, 23:17
вот я не пойму что вам мой код не нравится? Что вы все пытаетесь придумать что-то свое. Нахуя открывать еще раз америку


вывести функцию на кнопку это октрыть америку?

MasterCard
19.05.2013, 23:20
вывести функцию на кнопку это октрыть америку?


"Америка" это если б ты придумал функцию которая даёт варны

А это так Индия :trollface:

fondamentolok
19.05.2013, 23:22
"Америка" это если б ты придумал функцию которая даёт варны
А это так Индия :trollface:


Ну пусть будет индия :D

MasterCard
19.05.2013, 23:23
Ну пусть будет индия :D




:drink:

im0rg
20.05.2013, 08:10
Я же написал что б на кнопку добавте && set.key_carshot

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


Если добавить && set.key_carshot то получится что нужно активировать в меню + ещё нажать клавишу а он хочет что бы по клавиши активировалась функа

im0rg
20.05.2013, 14:04
Если добавить && set.key_carshot то получится что нужно активировать в меню + ещё нажать клавишу а он хочет что бы по клавиши активировалась функа


Тогда поставить условие или ||

fondamentolok
20.05.2013, 14:52
Тогда поставить условие или ||


да успокойтесь вы я уже все давно сделал :D

Norma_Cheater
20.05.2013, 16:57
:)

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





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

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

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

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


Я код перепроверил он правильный, ошибка с вашей стороны

FuNkFM
30.05.2013, 19:30
Я код перепроверил он правильный, ошибка с вашей стороны


Ответ нашел на 1 странице, разобрался

FYA
07.03.2014, 17:37
Код:






if (cheat_state->_generic.cardrive == 1) ...




Сейф в samp.cpp?