Post: Spinbot Movement Fix??
02-26-2018, 09:46 PM #1
MrReeko
Save Point
(adsbygoogle = window.adsbygoogle || []).push({}); I got spinbot but not letting me walk around, I know i need a movement fix but no idea on that?
03-03-2018, 07:18 PM #2
S63
Space Ninja
Originally posted by MrReeko View Post
I got spinbot but not letting me walk around, I know i need a movement fix but no idea on that?


Pretty sure its this i havent done much on offhost but this should worl fine

    
void CorrectMovement(QAngle vOldAngles, CUserCmd* pCmd, float fOldForward, float fOldSidemove)
{
//side/forward move correction
float deltaView = pCmd->viewangles.y - vOldAngles.y;
float f1;
float f2;

if (vOldAngles.y < 0.f)
f1 = 360.0f + vOldAngles.y;
else
f1 = vOldAngles.y;

if (pCmd->viewangles.y < 0.0f)
f2 = 360.0f + pCmd->viewangles.y;
else
f2 = pCmd->viewangles.y;

if (f2 < f1)
deltaView = abs(f2 - f1);
else
deltaView = 360.0f - abs(f1 - f2);
deltaView = 360.0f - deltaView;

pCmd->forwardmove = cos(DEG2RAD(deltaView)) * fOldForward + cos(DEG2RAD(deltaView + 90.f)) * fOldSidemove;
pCmd->sidemove = sin(DEG2RAD(deltaView)) * fOldForward + sin(DEG2RAD(deltaView + 90.f)) * fOldSidemove;
}


There's also this but very messy

    
void GetMovementFix(unsigned int state, float oForwardMove, float oSideMove, CUserCmd cmd)
{
//fix movement Q_Q
switch (state)
{
case 0:
case 1:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 450;
cmd->sidemove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = -450;
cmd->sidemove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 0;
cmd->sidemove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 450;
}
}
case 2:
cmd->forwardmove = -oSideMove;
cmd->sidemove = oForwardMove;
case 3:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = -450;
cmd->forwardmove = -450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 450;
cmd->forwardmove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 0;
cmd->forwardmove = -450;
}
}
break;
case 4:
cmd->forwardmove = -oForwardMove;
cmd->sidemove = -oSideMove;
break;
case 5:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 450;
cmd->sidemove = -450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = -450;
cmd->sidemove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 0;
cmd->sidemove = -450;
}
}
break;
case 6:
cmd->forwardmove = oSideMove;
cmd->sidemove = -oForwardMove;
break;
case 6:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = -450;
cmd->forwardmove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 450;
cmd->forwardmove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 0;
cmd->forwardmove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 450;
}
}
break;
}
}


Credits: Mr.Hankey
Last edited by S63 ; 03-03-2018 at 07:20 PM.
03-04-2018, 03:58 AM #3
MrReeko
Save Point
Originally posted by S63 View Post
Pretty sure its this i havent done much on offhost but this should worl fine

    
void CorrectMovement(QAngle vOldAngles, CUserCmd* pCmd, float fOldForward, float fOldSidemove)
{
//side/forward move correction
float deltaView = pCmd->viewangles.y - vOldAngles.y;
float f1;
float f2;

if (vOldAngles.y < 0.f)
f1 = 360.0f + vOldAngles.y;
else
f1 = vOldAngles.y;

if (pCmd->viewangles.y < 0.0f)
f2 = 360.0f + pCmd->viewangles.y;
else
f2 = pCmd->viewangles.y;

if (f2 < f1)
deltaView = abs(f2 - f1);
else
deltaView = 360.0f - abs(f1 - f2);
deltaView = 360.0f - deltaView;

pCmd->forwardmove = cos(DEG2RAD(deltaView)) * fOldForward + cos(DEG2RAD(deltaView + 90.f)) * fOldSidemove;
pCmd->sidemove = sin(DEG2RAD(deltaView)) * fOldForward + sin(DEG2RAD(deltaView + 90.f)) * fOldSidemove;
}


There's also this but very messy

    
void GetMovementFix(unsigned int state, float oForwardMove, float oSideMove, CUserCmd cmd)
{
//fix movement Q_Q
switch (state)
{
case 0:
case 1:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 450;
cmd->sidemove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = -450;
cmd->sidemove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 0;
cmd->sidemove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 450;
}
}
case 2:
cmd->forwardmove = -oSideMove;
cmd->sidemove = oForwardMove;
case 3:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = -450;
cmd->forwardmove = -450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 450;
cmd->forwardmove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 0;
cmd->forwardmove = -450;
}
}
break;
case 4:
cmd->forwardmove = -oForwardMove;
cmd->sidemove = -oSideMove;
break;
case 5:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 450;
cmd->sidemove = -450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = 0;
cmd->sidemove = 450;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 450;
cmd->sidemove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->forwardmove = -450;
cmd->sidemove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->forwardmove = -450;
cmd->sidemove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->forwardmove = 0;
cmd->sidemove = -450;
}
}
break;
case 6:
cmd->forwardmove = oSideMove;
cmd->sidemove = -oForwardMove;
break;
case 6:
if (cmd->forwardmove == 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 0;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = -450;
cmd->forwardmove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 450;
}
}
else if (cmd->forwardmove < 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = 450;
cmd->forwardmove = -450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = 0;
cmd->forwardmove = -450;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 450;
cmd->forwardmove = 0;
}
}
else if (cmd->forwardmove > 0)
{
if (cmd->sidemove == 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 450;
}
else if (cmd->sidemove < 0)
{
cmd->sidemove = -450;
cmd->forwardmove = 0;
}
else if (cmd->sidemove > 0)
{
cmd->sidemove = 0;
cmd->forwardmove = 450;
}
}
break;
}
}


Credits: Mr.Hankey


Thanks man, Working great now Smile

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo