Raised This Month: $32 Target: $400
 8% 

JumpStats v1.7.3 (unfinished!)


Post New Thread Reply   
 
Thread Tools Display Modes
Plugin Info:     Modification:   Counter-Strike        Category:   Statistical        Approver:   Xanimos (85)
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 03-18-2009 , 01:10   JumpStats v1.7.3 (unfinished!)
Reply With Quote #1

JumpStats
Version 1.7.3
by Exolent


Introduction:

This plugin measures multiple jump techniques in Counter-Strike 1.6.
These techniques are:
  • LongJump
  • HighJump
  • WeirdJump
  • CountJump
  • Double CountJump
  • Multi CountJump
  • Drop CountJump
  • BhopJump
  • Drop BhopJump
  • Standup BhopJump
  • Drop Standup BhopJump
  • LadderJump
  • LadderBhop
Most of you that know about any type of LongJump Stats are familiar with the one created by NumB.
This one has more features and techniques than all of the others.
These features are:
  • Jump Stats:
    • Distance
    • Direction (Forwards, Backwards, Sideways)
    • MaxSpeed and Gain
    • PreStrafe
    • Strafes
    • Sync
    • Duck Count (for Multi CountJump only)
  • Strafe Stats:
    • MaxSpeed per strafe
    • Sync per strafe
  • Jump Beam (straight or following player movement)
  • Script detection
  • Any weapon is allowed for stats (only weapons with 250 speed will be allowed to top access)
  • Fail Stats
  • Top 10 per technique (best maxspeed, prestrafe, strafes, and sync are highlighted in red)
  • Option to save or reset tops every map change
  • Sounds:
    • Impressive
    • Perfect
    • Godlike
    • Dominating 1 (new position in top, but "Perfect" jump)
    • Dominating 2 (new position in top, but "Godlike" jump)
    • Rampage (3 "Godlike" jumps in a row)
    • Holy Shit (+5 more than the "Godlike" requirement)
  • Cheat detection (surfing, trigger_push, func_trains, etc.)
  • Checkpoint detection
  • Turning On/Off Abilities:
    • Current Speed
    • Jump Stats
    • Strafe Stats
    • Jump messages in chat
    • Jump Beam
    • Spectator Stats
    • Jump Sounds
    • Direction in HUD
    • Prestrafe Shower
    • Block Distance
    • Edge Distances
  • Can save On/Off abilities per player so no need to reconfigure next connect
  • Personal best saving for each technique
  • Reset tops by each technique or all at once
  • Cvar to limit which team(s) can use Jump Stats
  • Any weapon can be used for stats, but only 250 speed will get saved as personal best and top jumps
  • Server Settings enforcer:
    • edgefriction 2
    • mp_footsteps 1
    • sv_cheats 0
    • sv_maxspeed 320
    • sv_stepsize 18
    • sv_maxvelocity 2000
  • Client cvar enforcer (legal jump settings)
    • developer 0
    • fps_max 101
    • cl_forwardspeed 400
    • cl_backspeed 400
    • cl_sidespeed 400
  • If player jumped a block jump ( like in kz_longjumps2 )
    • Shows the block distance
    • Shows the distance from the edge where the player jumped
    • Shows the distance from the edge where the player landed
  • Stats only show when sv_airaccelerate is 10 or 100

Admin Commands:

js_reset
- Displays the menu to reset the tops of a jump technique.
- Requires admin flag L (rcon).

js_updatecvars
- Updates the cached cvar values inside the plugins.
- Requires admin flag L (rcon).

Client Commands:

say /speed
- Enables/Disables the speedometer for the client.

say /colorchat
- Enables/Disables the colored jump messages for the client.

say /ljsounds
- Enables/Disables the jump sounds for the client.

say /ljstats
- Enables/Disables ljstats for the client.

say /strafestats
- Enables/Disables the strafe stats for the client.

say /ljbeam
- Enables/Disables the jumping beam for the client.

say /specstats
- Enables/Disables the stats, beams, and sounds of the player being spectated for the client.

say /preshow
- Enables/Disables the prestrafe shower for the client.

say /blockdist
- Enables/Disables the block distances for the client.

say /edgedist
- Enables/Disables the edge distances for the client.

say /ljsmenu
- Brings up a menu that can redirect to the top menu and the On/Off (options described above) menu.
- If the client has admin flag L (rcon) access, then an additional admin menu will be displayed, too.
- The admin menu can:
  • reset jumps
  • control which teams can use jump stats
  • modify the connect enabler (cvar described later)
  • toggle weapons that are valid for stats
  • toggle allowed jump techniques

say /ljsversion
- Shows the current JumpStats version on the server.

Cvars:

Code:
// General Cvars
////////////////////////////////////////////////

// Only allows certain teams to use stats
// - a = terrorist
// - b = counter-terrorist
// - c = spectator
// Combine multiple letters to allow more than one team to use stats
// Default: abc
js_allowteam "abc"

// Flags given to players when they connect
// - a = speedometer
// - b = jump chat messages
// - c = jump sounds
// - d = jump stats
// - e = strafe stats
// - f = jump beam
// - g = spectator stats (when you spectate someone, should their information be displayed, such as speed, stats, beam, etc.)
// - h = prestrafe shower
// - i = show direction in hud
// - j = show block distance
// - k = show edge distances
// Combine multiple letters to have more than 1 enabled
// Default: abcdefghijk
js_connectflags "abcdefghijk"

// The player settings for the on/off abilitys can be saved.
// - 0 = Don't save
// - 1 = Save
// Default: 1
js_save_settings "1"

// The amount of days since the player last agreed to the legal settings and used "don't ask again" option
// - 0 = Don't remove the player's agreement
// - (DAYS) = Removes player's agreement after (DAYS) have passed
// Default: 0
js_save_prune "0"

// Enables/Disables specific techniques to be used
// - a = LongJump
// - b = HighJump
// - c = WeirdJump
// - d = BhopJump
// - e = Standup BhopJump
// - f = Drop BhopJump
// - g = Standup Drop BhopJump
// - h = CountJump
// - i = Double CountJump
// - j = Multi CountJump
// - k = Drop CountJump
// - l = LadderJump
// - m = LadderBhop
// Combine multiple letters to have more than 1 enabled
// Default: abcdefghijklm
js_techs_allowed "abcdefghijklm"

// Enforces player cvars required for jumping
// I suggest you use this one over any other one you have because:
// - It has a better detection method (if you aren't using the one by ConnorMcLeod)
// - If player disagrees to the cvars, then the player will be denied any access to the plugins, such as stats, menus, and tops.
// List of cvars:
// - developer 0
// - fps_max 101
// - cl_forwardspeed 400
// - cl_sidespeed 400
// - cl_backspeed 400
// Values:
// - 0 = Disable enforcer
// - 1 = Enable enforcer
// Note: If you change this setting during the map, it will not affect players who are already connected.
// Default: 1
js_legal_settings "1"

// This determines what happens when a player does not use a legal cvar value for jump settings
// - 0 = Disable jumping for the player and make the player agree to be able to jump again
// - 1 = Kick player from the server
// Default: 1
js_legal_settings_kick "1"

// This determines what happens when a player disagrees to using legal jump settings
// - 0 = Disable jumping for the player and make the player agree to be able to jump again
// - 1 = Kick player from the server
// Default: 1
js_legal_settings_disagree "1"

// Chat colors for specific jumps
// - 0 = normal color
// - 1 = green
// - 2 = team color
// - 3 = gray
// - 4 = red
// - 5 = blue
// Leet Default: 4
// Pro Default: 1
// Good Default: 3
js_color_leet "4"
js_color_pro "1"
js_color_good "3"

// Who hears the sounds when a jump is made
// - 0 = No one
// - 1 = The jumper and the spectators watching the jumper (if they have Spectator Stats enabled)
// - 2 = Everyone
// Note: If the person who is supposed to hear the sound does not have Jump Sounds enabled, they will not hear it.
// Leet Default: 2
// Pro Default: 2
// Good Default: 1
js_sound_leet "2"
js_sound_pro "2"
js_sound_good "1"

// The beam type to be displayed
// - 0 = no beam
// - 1 = straight line from start to finish
// - 2 = beam following player position and showing when player ducked
// Default: 2
js_beam_type "2"

// If the beam type is 1, then this is the color type to be used
// - 0 = Random color
// - 1 = Random color chosen from a set of normal colors (red, yellow, purple, ...)
// Default: 1
js_beam_color "1"

// Decides who to display the message when a player beats his/her personal best
// - 0 = Don't display a message
// - 1 = The jumper only
// - 2 = Everyone
// Default: 1
js_show_best "1"

// Decides whether the direction should be displayed if it was a forward jump
// - 0 = Hide
// - 1 = Show
// Default: 1
js_direction_forwards "1"

// Decides whether the default speed (250 speed) should be shown in chat along with the weapon used
// - 0 = Hide
// - 1 = Show
// Default: 1
js_show_default_speed "1"

// Saves the tops between map changes
// - 0 = Don't save between maps
// - 1 = Save tops from all maps
// Default: 1
js_savetops "1"

// The minimum prestrafe speed for the prestrafe shower to appear
// Default: 250
js_min_pre "250"

// The type of server that you will be running
// - 1 = Multiple rounds per map (regular server)
// - 2 = 1 round per map (KZ servers, LJ servers, etc.)
// Default: 1
js_servertype "1"

// HUD color when a player is shown stats
// Color is in "R G B" format
// Default: "0 255 0"
js_hud_color "0 255 0"

// HUD color when a player fails a jump
// Color is in "R G B" format
// Default: "255 0 127"
js_fail_color "255 0 127"

// HUD color for the speedometer
// Color is in "R G B" format
// Default: "255 255 255"
js_speed_color "255 255 255"

// Number of consecutive jumps of the same technique that are all leet jumps for the "RAMPAGE" sound to be played
// Default: 3
js_rampage_count "3"

// How many units more than the leet jump minimum must a player jump to have the "HOLY SHIT" sound to be played
// Default: 5
js_holyshit_extra "5"



// Weapons allowed for stats
////////////////////////////////////////////////

// Weapon Names:
// 	p228, shield, scout, hegrenade, xm1014, c4, 
// 	mac10, aug, smokegrenade, elite, fiveseven, 
// 	ump45, sg550, galil, famas, usp, glock18, 
// 	awp, mp5navy, m249, m3, m4a1, tmp, g3sg1, 
// 	flashbang, deagle, sg552, ak47, knife, p90
// 
// To allow a weapon, use this format:
// js_allow_weapon <name> <chat> <sound>
// <name> is the name of the weapon
// <chat> is for showing the message in chat (1=on, 0=off)
// <sound> is for playing jump sounds for that weapon (1=on, 0=off)
// 
// All weapons are allowed by default
// 
// To not allow a weapon, comment the line with // or delete the line
js_allow_weapon "p228" "1" "1"
js_allow_weapon "shield" "1" "1"
js_allow_weapon "scout" "1" "1"
js_allow_weapon "hegrenade" "1" "1"
js_allow_weapon "xm1014" "1" "1"
js_allow_weapon "c4" "1" "1"
js_allow_weapon "mac10" "1" "1"
js_allow_weapon "aug" "1" "1"
js_allow_weapon "smokegrenade" "1" "1"
js_allow_weapon "elite" "1" "1"
js_allow_weapon "fiveseven" "1" "1"
js_allow_weapon "ump45" "1" "1"
js_allow_weapon "sg550" "1" "1"
js_allow_weapon "galil" "1" "1"
js_allow_weapon "famas" "1" "1"
js_allow_weapon "usp" "1" "1"
js_allow_weapon "glock18" "1" "1"
js_allow_weapon "awp" "1" "1"
js_allow_weapon "mp5navy" "1" "1"
js_allow_weapon "m249" "1" "1"
js_allow_weapon "m3" "1" "1"
js_allow_weapon "m4a1" "1" "1"
js_allow_weapon "tmp" "1" "1"
js_allow_weapon "g3sg1" "1" "1"
js_allow_weapon "flashbang" "1" "1"
js_allow_weapon "deagle" "1" "1"
js_allow_weapon "sg552" "1" "1"
js_allow_weapon "ak47" "1" "1"
js_allow_weapon "knife" "1" "1"
js_allow_weapon "p90" "1" "1"



// JumpType-Specific Cvars:
////////////////////////////////////////////////

// Minimum distance for <jumptype>
js_dist_min_<jumptype>

// Maximum distance for <jumptype>
js_dist_max_<jumptype>

// Minimum distance for <jumptype> to be considered leet
js_dist_leet_<jumptype>

// Minimum distance for HighJumps to be considered pro
js_dist_pro_<jumptype>

// Minimum distance for HighJumps to be considered good
js_dist_good_<jumptype>
To manage which weapons are allowed for stats, look in the jumpstats.cfg
For information about the JumpType-Specific Cvars, look in the jumpstats.cfg

How To Install:

There is a readme.txt file in the .zip file that you must read to install the plugins correctly.
If the plugins are not installed correctly, then bugs may occur.

Requirements:

- STEAM
- AMX Mod X version 1.8.1 or higher
- Fakemeta Module
- HamSandwich Module
- CStrike Module
- Engine Module
- Fun Module

Adding Extra Cheat Detection (such as jetpack, checkpoint, etc.):

If you use any other plugins that can add cheating to jumping, this is how you can make sure this plugin detects it so players can't cheat.
  1. Make sure that all of the jumpstats_*.amxx plugins are ABOVE the cheating plugins in the plugins.ini
  2. For the commands used to cheat (eg. say /gocheck), put them in the jumpstats_reset.ini
That should take care of it.

Changing Jump Sounds:

Look in the jumpstats_sounds.ini located in addons/amxmodx/configs for instructions.

How to Perform Each Technique:

LongJump
Jump from one position to an ending position at the same height of ground.

HighJump
Same technique as the LongJump, but where the jump is started, the player must have edgefriction, or a long fall in front of the player.

WeirdJump
Fall from a ground onto a lower area of ground and bhop that lower ground once you land the fall and the bhop should land on the same height of ground that you bhopped from.

CountJump
This is similar to the WeirdJump technique, except the player double ducks, or ducks once to go near the ground, then lets go to press duck again, which lifts the player off of the ground. Once the player lands on the ground that is the same height that the player came from, the player bhops the ground and lands on an area of ground the same height that the player bhopped from.

Double CountJump
This is the same as the CountJump technique, except the player double ducks twice. The second double duck is performed when the player lands on the ground from the first double duck. After the second double duck, the player continues like it is a CountJump.

Multi CountJump
This is the same as the Double CountJump technique, but the number of double ducks is at least three, which means the player can do even 5 double ducks to be considered this technique.

Drop CountJump
This technique is similar to the WeirdJump, except instead of bhopping the ground, the player performs 1 double duck and then bhops the ground. This can also be performed by jumping off of a ladder instead of falling off to a lower ground.

BhopJump
This technique is when a player bhops the ground on the same height that the player jumped from and lands on the same height.

Drop BhopJump
This technique is the same as a BhopJump, but the area that the player bhops is lower than where the player initially jumped from.

Standup BhopJump
This technique is the same as a BhopJump, but the player holds duck during the time that the player is in the air from the initial jump. Before the player touches the ground to bhop, the duck is released.

Drop Standup BhopJump
This is a simple combination of the Drop BhopJump and the Standup BhopJump.

LadderJump
This is when a player climbs up a ladder, and once the player flies off of the top of the ladder, the player strafes for a distance away from the ladder and lands on the ground that is the same height as the top of the ladder.

LadderBhop
This is similar to the WeirdJump technique, except the player jumps off of the ladder to bhop the ground.

Important Note About Correct Distance:

I have had so many people tell me that my stats are incorrect. However, my stats are 100% correct now.
There is no reason to tell me that my stats are incorrect. If you compare mine to the XJ plugin by NumB on v2.2b7, you are wrong.
I say this because of this reason here inside NumB's plugin:
Code:
pev(id, pev_origin, vOrigin); fDistance1 = get_distance_f(vJumpedAt[id], vOrigin)+32.0625;
Here are the flaws with this:
  1. The distance addon is actually 32.0, not 32.0625. Ask eDark yourself.
  2. The distance is wrong if the player ducks to land, because it also calculates the distance between the height which is not accounted for when the player ducks.
This is how it should be calculated:
Code:
pev(id, pev_origin, vOrigin); new bool:bDucking = is_in_duck(id); if( bDucking )     vOrigin[2]+=18.0; fDistance1 = get_distance_f(vJumpedAt[id], vOrigin)+32.0; if( bDucking ) // we only do this because it needs to be at its original position for later code.     vOrigin[2]-=18.0;
The reason for this offset when the player ducks is that the player's height position changes so that it's not the same height as the jump off height.
After adding this to the XJ stats plugin, I tested:
Code:
[XJ] Distance: 244.561187 - 244.650802
[JS] Distance: 244.561187 - 244.650802
Those are the 2 calculated distances within the plugins when compared for which distance is to be used.
As you can see, they are the exact same with the duck fix.

Here is some more proof for this.
Inside the code, I added a debug message to prove that the height origins were not the same when a player ducks at the end of the jump:
Code:
pev(id, pev_origin, vOrigin); fDistance1 = get_distance_f(vJumpedAt[id], vOrigin)+32.0; server_print("[XJ] Jump Height: %f -- Land Height: %f", vJumpedAt[id][2], vOrigin[2]);
The result:
Code:
[XJ] Jump Height: -91.968750 -- Land Height: -109.968750
Therefore, the distance is not correct because it has to also add the height distance into the final distance.

Credits:

NumB
- Used some code from his LongJump Stats.

xPaw
- Great supporter, tester, and helper.
- Helped me with new ideas and tested for fixes since the beginning.

SchlumPF
- Helped me with correcting the distance calculations
- Helped me fix the server crashing from bhopping in one position
- Based the EdgeDistance calculation from his plugin

joaquimandrade
- Helped me with a really difficult code when adding edge distances for entities

Posters in this topic
- Reporting bugs and posting suggestions

Note to Plugin Approvers:

Please do not judge my plugin until I have it complete.
I posted it here because it's previous topic was not very organized.
It became hard for people to find my plugin and hard for me to keep up with what the people wanted.

Note to Everyone Else:

I can't remember if I fulfilled all of your requests or not.
So, if you see something that you wanted but I didn't add, post it so that I can add it (if it's necessary).
Attached Files
File Type: zip JumpStats_v1.7.3_by_Exolent.zip (819.3 KB, 76454 views)
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!

Last edited by Exolent[jNr]; 04-03-2010 at 00:44. Reason: Updated to v1.7.3
Exolent[jNr] is offline
zond33
Member
Join Date: Mar 2008
Old 03-18-2009 , 01:21   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #2

Can you make it so, that it doesn't open the menu from /ljstats and /speed, so it would open it only from /ljsmenu?
zond33 is offline
LaineN
Veteran Member
Join Date: Mar 2008
Location: Sweden
Old 03-18-2009 , 02:39   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #3

Find a typo at line 93:
PHP Code:
}: 
Should be:
PHP Code:
}; 
EDIT: Found two bugs, same as in the versions before... Look at the demo.
And please add detection for Slowmotion Hack (if it's possible).
Attached Files
File Type: rar jumpstatsbugs.rar (298.5 KB, 8584 views)
__________________
Bollnas Team - HideNSeek

See all of Bollnas Team's HideNSeek
servers at
http://bollnasteam.se/!


Last edited by LaineN; 03-18-2009 at 09:41.
LaineN is offline
IneedHelp
Veteran Member
Join Date: Mar 2007
Location: Argentina
Old 03-18-2009 , 03:09   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #4

Quote:
Originally Posted by LaineN View Post
And please add detection for Slowmotion Hack (if it's possibe)
That isn't possible...

Exolent I'll give it a try^^
__________________
IneedHelp is offline
desagr
Junior Member
Join Date: Mar 2009
Location: Russia, Podolsk
Old 03-18-2009 , 03:20   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #5

hey... thx big ^_^
desagr is offline
Send a message via ICQ to desagr
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 03-18-2009 , 03:37   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #6

Quote:
Originally Posted by zond33 View Post
Can you make it so, that it doesn't open the menu from /ljstats and /speed, so it would open it only from /ljsmenu?
I actually added that, but I see an error in the code that made it not work.
It will be fixed in v0.5.

Quote:
Originally Posted by LaineN View Post
Find a typo at line 93:
PHP Code:
}: 
Should be:
PHP Code:
}; 
EDIT: Found two bugs: (Same as the version before...) Look at the demo.
And please add detection for Slowmotion Hack (if it's possibe)
Fixed the typo and the surfing bug.
I'm having some troubles with the bhop jump bug.
And, like AntiBots said, the Slowmotion Hack detection is impossible.
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] is offline
xPaw
Retired AMX Mod X Moderator
Join Date: Jul 2008
Old 03-18-2009 , 04:06   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #7

wii credits nice
gj exolent

Quote:
the Slowmotion Hack detection is impossible.
maybe its possible in teory, because the player is much more frames in air, maybe this can help :d

EDIT: remove /top10, /top15 from tops please, because i'm using those plugins for KZ pro 10, and its kinda stupid
EDIT2: config doesnt executing, i dont know what you did with detect, but when i jump lj on blocks i really dont see stats :/
__________________

Last edited by xPaw; 03-18-2009 at 04:33.
xPaw is offline
minimiller
Veteran Member
Join Date: Aug 2007
Location: United Kingdom
Old 03-18-2009 , 04:56   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #8

capital idea cheif
Finally, AM has got its own LJStats
Now we dont have to redirect to XJ
__________________
minimiller is offline
Send a message via MSN to minimiller
NGage70
Senior Member
Join Date: Sep 2008
Old 03-18-2009 , 07:16   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #9

Finaly You Put in New Submitions!



+Karma
NGage70 is offline
tREBARnspappa
New Member
Join Date: Mar 2009
Old 03-18-2009 , 09:25   Re: JumpStats by Exolent (unfinished!)
Reply With Quote #10

Quote:
Originally Posted by xPaw View Post
EDIT2: config doesnt executing, i dont know what you did with detect, but when i jump lj on blocks i really dont see stats :/
Same here, I believe it has something to do with which "level" you are on. On alot of maps, it only executes when I'm standing at a certain "level". If I go up or down, it won't detect my jumps. That goes for kz_longjumps2, in which case it only reacts in the lobby, while all the block-rooms are on different levels (higher or lower), it won't react there.

Other than that, awesome mod!
tREBARnspappa is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 05:17.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode