rendered paste bodyIndex: src/server/gem.cpp
===================================================================
--- src/server/gem.cpp (Revision 1944)
+++ src/server/gem.cpp (Arbeitskopie)
@@ -2765,6 +2765,9 @@
void gemActor::ApplyStaminaCalculations(const csVector3& v, float times)
{
+ csVector3 thisV = lastV;
+ lastV=v;
+
// Script
static MathScript* script = psserver->GetMathScriptEngine()->FindScript("StaminaMove");
if (!script)
@@ -2816,17 +2819,17 @@
double Speed; ///< magnitude of the velocity vector
double Angle; ///< angle between velocity vector and X-Z plane
- double XZvel = csQsqrt(v.x*v.x + v.z*v.z);
- if (v.y > EPSILON)
+ double XZvel = csQsqrt(thisV.x*thisV.x + thisV.z*thisV.z);
+ if (thisV.y > EPSILON)
{
if (XZvel > EPSILON)
{
- Speed = csQsqrt(v.y*v.y + XZvel*XZvel);
- Angle = atan(v.y / XZvel);
+ Speed = csQsqrt(thisV.y*thisV.y + XZvel*XZvel);
+ Angle = atan(thisV.y / XZvel);
}
else // straight up
{
- Speed = v.y;
+ Speed = thisV.y;
Angle = HALF_PI;
}
}
Index: src/server/gem.h
===================================================================
--- src/server/gem.h (Revision 1944)
+++ src/server/gem.h (Arbeitskopie)
@@ -564,6 +564,7 @@
uint8_t DRcounter; /// increments in loop to prevent out of order packet overwrites of better data
csTicks lastDR;
+ csVector3 lastV;
/** Production Start Pos is used to record the place where people started digging. */
csVector3 productionStartPos;
Index: src/server/database/mysql/math_scripts.sql
===================================================================
--- src/server/database/mysql/math_scripts.sql (Revision 1944)
+++ src/server/database/mysql/math_scripts.sql (Arbeitskopie)
@@ -186,7 +186,7 @@
INSERT INTO math_scripts VALUES( "StaminaMove",
"
- Drain = (Speed/10) + ((Weight/MaxWeight)/10);
+ Drain = (Speed/3) * (Weight/MaxWeight);
");
INSERT INTO math_scripts VALUES( "StaminaCombat",