Post by Gelenkbusfahrer on Jan 11, 2016 10:18:22 GMT
We worked pretty hard to design a minqlx plugin which protects games from being owned by overly skilled players.
The basic idea is to handicap players automatically by a given set of rules and calculations.
A Handicap is a value in percent which decrease the weapon strength and reduces the player's health continuously. Every player has a standard handicap of 100, which equals a "not activated" handicap. Setting a "handicap 50" (type this in your console) will reduce your weapon strength/damage by 50% and your health will slowly go down from 200 to 100. You will notice a "100" as overlay on your scoreboard icon image, representing that you activated a handicap (handicap 50 in this case). A handicap 80 will show as a "160" image-overlay, since your health will go down to 160 (80% of 200).
While this plugin is activated (loaded) you won't be able to manually set your handicap. This will be under full control of the plugin.
An important side-effect is, that this plugin also balances teams in real-time. This increases the chance to have a close and thrilling match dramatically!
As side note: The auto-handicap won't make anyone lose or discouraged. The most skilled player will be probably still on top of the scoreboard after the match, but he won't dominate and destroy the game like he would without the handicap.
The functionality of this plugin in more detail:
1. The plugin measures and tracks the score per minute of every player. Any player over a certain score/minute gap, compared to the actual score/minute server average, will get a handicap. Gaps are compared every round. The higher the gap, the more handicap will be applied and vice versa.
2. Players in the losing team never get handicaps!
Any player needs at least 2 played rounds before any calculations start. Handicaps will be raised with a bigger round difference (a 7:0 will force higher handicaps than a 7:7). The maximum handicap is generally capped at hc50.
The "Realscore" (skip this passage if you're not a nerd)
The plugin uses for internal calculations realscore per minute, which differs from the normal players score per minute. The score of a handicapped player will be recalculated, as if the player wouldn't have a handicap. This method ensures, that the handicap has almost no influence to the player's realscore/minute, since we use this value for measurement of a player's skill. Example: A player got hc50 and hits an enemy with a full rocket. Due to the handicap this rocket deals 50 damage points (instead of 100), and only this will be added the the player's official score. The plugin recalculates the 50 damage points back to 100 damage points and adds this to the internal "realscore". This ensures that handicaps don't drop round by round, and keeps them at a constant level. It detaches the influence of handicaps from the player's realscore/minute measurement.
Actual specific values:
Handicaps start with hc98 for a 20% gap, and end at hc50 for 100% or higher gaps. This is a simple linear formula:
hc = 108 - gap / 2.1
The gaps start with 160% after round 2, and goes down to 20% with 6 or more rounds.
2 rounds = 160%
3 rounds = 80%
4 rounds = 60%
5 rounds = 40%
>=6 rounds = 20%
Example 1: With the second round finished, player A has a score of 20. Player B has a score of 10. The gap is 100%. This is <160%, so player A don't get any handicap.
Example 2: With the fourth round finished, player A has a score of 40. Player B has a score of 20. The gap is again 100%. This is >60%, so player A will get a handicap 60 (108 - 100 / 2.1 = 60).
A round difference of 2 (like in 5:7) will raise the handicap additionally by 10%. This will be linear raised until a round difference of 4 or more (like in 6:2). This will additionally raise the handicap by 30%.
diff 2 = handicap + 10%
diff 3 = handicap + 20%
diff >3 = handicap + 30%
That's it. If you have any questions feel free to post it here.
Download the plugin here > github.com/dsverdlo/minqlx-plugins
The basic idea is to handicap players automatically by a given set of rules and calculations.
A Handicap is a value in percent which decrease the weapon strength and reduces the player's health continuously. Every player has a standard handicap of 100, which equals a "not activated" handicap. Setting a "handicap 50" (type this in your console) will reduce your weapon strength/damage by 50% and your health will slowly go down from 200 to 100. You will notice a "100" as overlay on your scoreboard icon image, representing that you activated a handicap (handicap 50 in this case). A handicap 80 will show as a "160" image-overlay, since your health will go down to 160 (80% of 200).
While this plugin is activated (loaded) you won't be able to manually set your handicap. This will be under full control of the plugin.
An important side-effect is, that this plugin also balances teams in real-time. This increases the chance to have a close and thrilling match dramatically!
As side note: The auto-handicap won't make anyone lose or discouraged. The most skilled player will be probably still on top of the scoreboard after the match, but he won't dominate and destroy the game like he would without the handicap.
The functionality of this plugin in more detail:
1. The plugin measures and tracks the score per minute of every player. Any player over a certain score/minute gap, compared to the actual score/minute server average, will get a handicap. Gaps are compared every round. The higher the gap, the more handicap will be applied and vice versa.
2. Players in the losing team never get handicaps!
Any player needs at least 2 played rounds before any calculations start. Handicaps will be raised with a bigger round difference (a 7:0 will force higher handicaps than a 7:7). The maximum handicap is generally capped at hc50.
The "Realscore" (skip this passage if you're not a nerd)
The plugin uses for internal calculations realscore per minute, which differs from the normal players score per minute. The score of a handicapped player will be recalculated, as if the player wouldn't have a handicap. This method ensures, that the handicap has almost no influence to the player's realscore/minute, since we use this value for measurement of a player's skill. Example: A player got hc50 and hits an enemy with a full rocket. Due to the handicap this rocket deals 50 damage points (instead of 100), and only this will be added the the player's official score. The plugin recalculates the 50 damage points back to 100 damage points and adds this to the internal "realscore". This ensures that handicaps don't drop round by round, and keeps them at a constant level. It detaches the influence of handicaps from the player's realscore/minute measurement.
Actual specific values:
Handicaps start with hc98 for a 20% gap, and end at hc50 for 100% or higher gaps. This is a simple linear formula:
hc = 108 - gap / 2.1
The gaps start with 160% after round 2, and goes down to 20% with 6 or more rounds.
2 rounds = 160%
3 rounds = 80%
4 rounds = 60%
5 rounds = 40%
>=6 rounds = 20%
Example 1: With the second round finished, player A has a score of 20. Player B has a score of 10. The gap is 100%. This is <160%, so player A don't get any handicap.
Example 2: With the fourth round finished, player A has a score of 40. Player B has a score of 20. The gap is again 100%. This is >60%, so player A will get a handicap 60 (108 - 100 / 2.1 = 60).
A round difference of 2 (like in 5:7) will raise the handicap additionally by 10%. This will be linear raised until a round difference of 4 or more (like in 6:2). This will additionally raise the handicap by 30%.
diff 2 = handicap + 10%
diff 3 = handicap + 20%
diff >3 = handicap + 30%
That's it. If you have any questions feel free to post it here.
Download the plugin here > github.com/dsverdlo/minqlx-plugins