_=Gigant=_
Well-known member
- Joined
- Mar 21, 2017
- Messages
- 353
- Reaction score
- 16
Code:
#define KEY_I 0x49
#define KEY_J 0x4A
#define KEY_K 0x4B
#define KEY_L 0x4C
#define KEY_O 0x4F
#define KEY_U 0x55
//float brkdance_velocity; //ini.h = 1.0
void GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(float fX, float fY, float fZ)
{
struct actor_info *myinfo = actor_info_get(ACTOR_SELF, 0);
if (myinfo)
{
DWORD dwFunc = 0x59C790;
float fRotPtr[3];
float *fpActorMatrix = myinfo->base.matrix;
float *fpActorSpin = &myinfo->spin[0];
float fFuncRet[3];
fX *= 0.02000000f;
fY *= 0.02000000f;
fZ *= 0.02000000f;
fRotPtr[0] = fX;
fRotPtr[1] = fY;
fRotPtr[2] = fZ;
_asm
{
lea ecx, fRotPtr
push ecx
push fpActorMatrix
lea edx, fFuncRet
push edx
call dwFunc
}
fpActorSpin[0] += fFuncRet[0];
fpActorSpin[1] += fFuncRet[1];
fpActorSpin[2] += fFuncRet[2];
vect3_copy(fpActorSpin, fFuncRet);
}
}
// define in .h void GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(float fX, float fY, float fZ);
void player_brakedance(struct actor_info *actor_info, float time_diff)
{
traceLastFunc("player_brakedance()");
static float velpos, velneg;
if (bPlayerBrkDance)
{
float fTimeStep = *(float *)0xB7CB5C;
velpos = set.brkdance_velocity * fTimeStep;
velneg = -set.brkdance_velocity * fTimeStep;
if (KEY_DOWN(KEY_I))
{
GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(velneg, 0.0f, 0.0f);
}
else if (KEY_DOWN(KEY_K))
{
GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(velpos, 0.0f, 0.0f);
}
else if (KEY_DOWN(KEY_L))
{
GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(0.0f, velpos, 0.0f);
}
else if (KEY_DOWN(KEY_J))
{
GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(0.0f, velneg, 0.0f);
}
else if (KEY_DOWN(KEY_O))
{
GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(0.0f, 0.0f, velneg);
}
else if (KEY_DOWN(KEY_U))
{
GTAfunc_Player_ApplyRotoryPulseAboutAnAxis(0.0f, 0.0f, velpos);
}
}
}
// define in .h void player_brakedance(struct actor_info *actor_info, float time_diff);
and players be like WTF OMG HOW , HOW U DO THAT https://s33.postimg.cc/ax5l7kei7/sa-mp-298.png