diff options
Diffstat (limited to 'sourcemod-1.5-dev/scripting/ljstats.sp')
| -rw-r--r-- | sourcemod-1.5-dev/scripting/ljstats.sp | 192 |
1 files changed, 95 insertions, 97 deletions
diff --git a/sourcemod-1.5-dev/scripting/ljstats.sp b/sourcemod-1.5-dev/scripting/ljstats.sp index f220d39..f755835 100644 --- a/sourcemod-1.5-dev/scripting/ljstats.sp +++ b/sourcemod-1.5-dev/scripting/ljstats.sp @@ -34,7 +34,7 @@ #define BJ_HEIGHT_DELTA_MAX 2.0 #define LAJ_HEIGHT_DELTA_MIN -6.0 #define LAJ_HEIGHT_DELTA_MAX 0.0 -#define JB_HEIGHT_DELTA_MIN -1.0 +#define JB_HEIGHT_DELTA_MIN -2.0 #define JB_HEIGHT_DELTA_MAX 1.5 #define HUD_HINT_SIZE 256 #define STRAFE_TRAINER_TICKS 9 @@ -538,7 +538,7 @@ public OnPluginStart() #if defined LJSERV RegConsoleCmd("sm_wr", Command_LJTop); #endif - RegConsoleCmd("sm_tpmenu", Command_CheckpointPanel); + //RegConsoleCmd("sm_tpmenu", Command_CheckpointPanel); RegAdminCmd("sm_ljtopdelete", Command_LJTopDelete, ADMFLAG_RCON); RegAdminCmd("sm_kz", Command_KZ, ADMFLAG_RCON); @@ -2842,8 +2842,7 @@ PlayerJump(client, JUMP_TYPE:JumpType2 = JT_LONGJUMP) GetEntPropVector(client, Prop_Data, "m_vecVelocity", vVel); // ducking lowers u by 8.5 units - if( GetEntProp(client, Prop_Send, "m_bDucking", 1) ) - vOrigin[2] -= 8.5; + vOrigin[2] -= 8.5; } Array_Copy(vOrigin, g_PlayerStates[client][vJumpOrigin], 3); @@ -3010,34 +3009,6 @@ CheckValidJump(client) PrintToChat(client, "teleported %f, %f (%f)", GetVectorDistance(vLastOrig, vOrigin), GetVectorLength(vVel) / (1.0 / GetTickInterval()) + 0.001, GetVectorLength(vLastVel) / (1.0 / GetTickInterval())); #endif - if(g_PlayerStates[client][bBlockMode]) - { - if(g_PlayerStates[client][bFailedBlock]) - { - #if defined DEBUG - PrintToChat(client, "failedblock; returning"); - #endif - - return; - } - else - { - #if defined DEBUG - PrintToChat(client, "failedblocklongjump 3 tp %s %f %f %d", - g_PlayerStates[client][vLastOrigin][2] >= g_PlayerStates[client][vJumpOrigin][2] + HEIGHT_DELTA_MIN(JT_LONGJUMP) ? "saved" : "not saved", - g_PlayerStates[client][vLastOrigin][2], g_PlayerStates[client][vJumpOrigin][2] + HEIGHT_DELTA_MIN(JT_LONGJUMP), GetGameTickCount()); - #endif - - if(g_PlayerStates[client][vLastOrigin][2] >= g_PlayerStates[client][vJumpOrigin][2] + HEIGHT_DELTA_MIN(JT_LONGJUMP)) - { - GetJumpDistanceLastTick(client); - g_PlayerStates[client][bFailedBlock] = true; - - return; - } - } - } - g_PlayerStates[client][IllegalJumpFlags] |= IJF_TELEPORT; } } @@ -3392,7 +3363,12 @@ _OnPlayerRunCmd(client, buttons, const Float:vOrigin[3], const Float:vAngles[3], g_PlayerStates[client][nStrafeTicks][g_PlayerStates[client][nStrafes] - 1]++; g_PlayerStates[client][fTotalAngle] += fAngleDelta; - + new Float:delta = vAngles[1] - v2[1]; + while(delta < -180.0) + delta += 360.0; + while(delta > 180.0) + delta -= 360.0; + new tick = g_PlayerStates[client][nTotalTicks]; if(fVelDelta > 0.0) { @@ -3402,11 +3378,7 @@ _OnPlayerRunCmd(client, buttons, const Float:vOrigin[3], const Float:vAngles[3], g_PlayerStates[client][nStrafeTicksSynced][g_PlayerStates[client][nStrafes] - 1]++; g_PlayerStates[client][fSyncedAngle] += fAngleDelta; - new Float:delta = vAngles[1] - v2[1]; - while(delta < -180.0) - delta += 360.0; - while(delta > 180.0) - delta -= 360.0; + if( tick < MAX_JUMP_TICKS ) g_PlayerStates[client][nMouseDir][tick] = delta > 0.0 ? -1 : 1; @@ -3415,8 +3387,12 @@ _OnPlayerRunCmd(client, buttons, const Float:vOrigin[3], const Float:vAngles[3], { g_PlayerStates[client][fStrafeLoss][g_PlayerStates[client][nStrafes] - 1] -= fVelDelta; g_PlayerStates[client][fLoss] -= fVelDelta; - if( tick < MAX_JUMP_TICKS ) - g_PlayerStates[client][nMouseDir][tick] = 0; + if( tick < MAX_JUMP_TICKS ) { + if( FloatAbs( delta ) > 0.0 ) + g_PlayerStates[client][nMouseDir][tick] = delta > 0.0 ? -2 : 2; + else + g_PlayerStates[client][nMouseDir][tick] = 0; + } } if( tick < MAX_JUMP_TICKS ) { @@ -3545,6 +3521,14 @@ public PrintSyncStats(client) { Append( strMouseLeft, sizeof( strMouseLeft ), " " ); Append( strMouseRight, sizeof( strMouseRight ), "|" ); } + else if( g_PlayerStates[client][nMouseDir][i] == -2 ) { + Append( strMouseLeft, sizeof( strMouseLeft ), "." ); + Append( strMouseRight, sizeof( strMouseRight ), " " ); + } + else if( g_PlayerStates[client][nMouseDir][i] == 2 ) { + Append( strMouseLeft, sizeof( strMouseLeft ), " " ); + Append( strMouseRight, sizeof( strMouseRight ), "." ); + } else { Append( strMouseLeft, sizeof( strMouseLeft ), " " ); Append( strMouseRight, sizeof( strMouseRight ), " " ); @@ -3577,68 +3561,77 @@ public PrintSyncStats(client) { } PrintToConsole( client, strFull ); + if( !g_PlayerStates[client][bSyncStats] || g_PlayerStates[client][nTotalTicks] > 65 ) + return; - if( g_PlayerStates[client][bSyncStats] ) { - Format( strLeft, sizeof( strLeft ), "[ " ); - Format( strRight, sizeof( strRight ), "[ " ); - Format( strMouseLeft, sizeof( strMouseLeft ), "[ " ); - Format( strMouseRight, sizeof( strMouseRight ), "[ " ); - - new String:char1[] = "|"; - new String:char2[] = "_"; - new String:strFull2[1024]; + Format( strLeft, sizeof( strLeft ), "[ " ); + Format( strRight, sizeof( strRight ), "[ " ); + Format( strMouseLeft, sizeof( strMouseLeft ), "[ " ); + Format( strMouseRight, sizeof( strMouseRight ), "[ " ); - for( new i = 0; i < g_PlayerStates[client][nTotalTicks]; ++i ) { - if( g_PlayerStates[client][nMouseDir][i] == -1 ) { - Append( strMouseLeft, sizeof( strMouseLeft ), char1 ); - Append( strMouseRight, sizeof( strMouseRight ), char2 ); - } - else if( g_PlayerStates[client][nMouseDir][i] == 1 ) { - Append( strMouseLeft, sizeof( strMouseLeft ), char2 ); - Append( strMouseRight, sizeof( strMouseRight ), char1 ); - } - else { - Append( strMouseLeft, sizeof( strMouseLeft ), char2 ); - Append( strMouseRight, sizeof( strMouseRight ), char2 ); - } + new String:char1[] = "|"; + new String:char2[] = "_"; + new String:char3[] = " ,"; + new String:strFull2[1024]; - if( g_PlayerStates[client][nMoveDir][i] == -1 ) { - Append( strLeft, sizeof( strLeft ), char1 ); - Append( strRight, sizeof( strRight ), char2 ); - } - else if( g_PlayerStates[client][nMoveDir][i] == 1 ) { - Append( strLeft, sizeof( strLeft ), char2 ); - Append( strRight, sizeof( strRight ), char1 ); - } - else { - Append( strLeft, sizeof( strLeft ), char2 ); - Append( strRight, sizeof( strRight ), char2 ); - } + for( new i = 0; i < g_PlayerStates[client][nTotalTicks]; ++i ) { + if( g_PlayerStates[client][nMouseDir][i] == -1 ) { + Append( strMouseLeft, sizeof( strMouseLeft ), char1 ); + Append( strMouseRight, sizeof( strMouseRight ), char2 ); + } + else if( g_PlayerStates[client][nMouseDir][i] == 1 ) { + Append( strMouseLeft, sizeof( strMouseLeft ), char2 ); + Append( strMouseRight, sizeof( strMouseRight ), char1 ); + } + else if( g_PlayerStates[client][nMouseDir][i] == -2 ) { + Append( strMouseLeft, sizeof( strMouseLeft ), char3 ); + Append( strMouseRight, sizeof( strMouseRight ), char2 ); + } + else if( g_PlayerStates[client][nMouseDir][i] == 2 ) { + Append( strMouseLeft, sizeof( strMouseLeft ), char2 ); + Append( strMouseRight, sizeof( strMouseRight ), char3 ); + } + else { + Append( strMouseLeft, sizeof( strMouseLeft ), char2 ); + Append( strMouseRight, sizeof( strMouseRight ), char2 ); } - Format( strLeft, sizeof( strLeft ), "%s ]", strLeft ); - Format( strRight, sizeof( strRight ), "%s ]", strRight ); - Format( strMouseLeft, sizeof( strMouseLeft ), "%s ]", strMouseLeft ); - Format( strMouseRight, sizeof( strMouseRight ), "%s ]", strMouseRight ); - - if( g_PlayerStates[client][JumpDir] == JD_SIDEWAYS ) { - Format( strFull, sizeof( strFull ), "W: %s\nS: %s\n", strLeft, strRight ); + if( g_PlayerStates[client][nMoveDir][i] == -1 ) { + Append( strLeft, sizeof( strLeft ), char1 ); + Append( strRight, sizeof( strRight ), char2 ); + } + else if( g_PlayerStates[client][nMoveDir][i] == 1 ) { + Append( strLeft, sizeof( strLeft ), char2 ); + Append( strRight, sizeof( strRight ), char1 ); } else { - Format( strFull, sizeof( strFull ), "A: %s\nD: %s\n", strLeft, strRight ); + Append( strLeft, sizeof( strLeft ), char2 ); + Append( strRight, sizeof( strRight ), char2 ); } + } + + Format( strLeft, sizeof( strLeft ), "%s ]", strLeft ); + Format( strRight, sizeof( strRight ), "%s ]", strRight ); + Format( strMouseLeft, sizeof( strMouseLeft ), "%s ]", strMouseLeft ); + Format( strMouseRight, sizeof( strMouseRight ), "%s ]", strMouseRight ); - Format( strFull2, sizeof( strFull2 ), "L: %s\nR: %s", strMouseLeft, strMouseRight ); + if( g_PlayerStates[client][JumpDir] == JD_SIDEWAYS ) { + Format( strFull, sizeof( strFull ), "W: %s\nS: %s\n", strLeft, strRight ); + } + else { + Format( strFull, sizeof( strFull ), "A: %s\nD: %s\n", strLeft, strRight ); + } - new Handle:hText = CreateHudSynchronizer(); - if(hText != INVALID_HANDLE) - { - SetHudTextParams(-1.0, 0.06, 3.0, 255, 255, 255, 255, 0, 0.0, 0.15, 0.5); - ShowHudText(client, 2, strFull); - SetHudTextParams(-1.0, 0.14, 3.0, 180, 180, 255, 255, 0, 0.0, 0.15, 0.5); - ShowHudText(client, 3, strFull2); - CloseHandle(hText); - } + Format( strFull2, sizeof( strFull2 ), "L: %s\nR: %s", strMouseLeft, strMouseRight ); + + new Handle:hText = CreateHudSynchronizer(); + if(hText != INVALID_HANDLE) + { + SetHudTextParams(-1.0, 0.06, 3.0, 255, 255, 255, 255, 0, 0.0, 0.15, 0.5); + ShowHudText(client, 2, strFull); + SetHudTextParams(-1.0, 0.14, 3.0, 180, 180, 255, 255, 0, 0.0, 0.15, 0.5); + ShowHudText(client, 3, strFull2); + CloseHandle(hText); } } @@ -3651,8 +3644,12 @@ PlayerLand(client) if(!g_PlayerStates[client][bLJEnabled] && !g_PlayerStates[client][nSpectators] || !g_PlayerStates[client][bShowBhopStats] && g_PlayerStates[client][nBhops] > 1) return; - PrintSyncStats( client ); - + if( g_PlayerStates[client][IllegalJumpFlags] & IJF_TELEPORT ) + return; + + if( g_PlayerStates[client][IllegalJumpFlags] & IJF_NOCLIP ) + return; + // Final CheckValidJump //CheckValidJump(client); @@ -3868,16 +3865,17 @@ PlayerLand(client) g_PlayerStates[client][fMaxSpeed], g_PlayerStates[client][fMaxSpeed] - g_PlayerStates[client][fPrestrafe]); - Append(buf, sizeof(buf), "\nHeight diff: %s%.2f; jump height: %.2f; efficiency: %.4f; ticks: %d; degrees synced/degrees turned: %.2f/%.2f", + Append(buf, sizeof(buf), "\nHeight diff: %s%.2f; jump height: %.2f; ticks: %d\nEfficiency: %.4f; degrees synced/degrees turned: %.2f/%.2f", g_PlayerStates[client][fHeightDelta] >= 0.0 ? "+" : "", g_PlayerStates[client][fHeightDelta], g_PlayerStates[client][fJumpHeight], - (g_PlayerStates[client][fJumpDistance] - 32.0) / g_PlayerStates[client][fTrajectory], g_PlayerStates[client][nTotalTicks], + (g_PlayerStates[client][fJumpDistance] - 32.0) / g_PlayerStates[client][fTrajectory], g_PlayerStates[client][fSyncedAngle], g_PlayerStates[client][fTotalAngle]); PrintToConsole(client, buf); - + PrintSyncStats( client ); + new Handle:hBuffer = StartMessageOne("KeyHintText", client); BfWriteByte(hBuffer, 1); |
