Quote:
Originally Posted by jimaway
earnedpoints = maxjumps / jumpsmade * maxpoints
if (earnedpoints > maxpoints) earnedpoints = maxpoints
if (earnedpoints < 1) earnedpoints = 1
|
This does not work for me, did you test this?
I made an attempt and I think it gives what you want:
PHP Code:
#include <amxmodx>
public plugin_init()
{
const MinPoints = 1;
const MaxPoints = 20;
const MaxJumps = 4;
new earnedPoints;
for ( new iJumps = 1 ; iJumps <= 20 ; iJumps++ )
{
earnedPoints = clamp( floatround( ( float( ( MaxJumps * 3 ) - iJumps ) / MaxJumps / 2 ) * float( MaxPoints ) ) , MinPoints , MaxPoints );
server_print( "%d Jumps = %d points" , iJumps , earnedPoints );
}
}
Output
Code:
1 Jumps = 20 points
2 Jumps = 20 points
3 Jumps = 20 points
4 Jumps = 20 points
5 Jumps = 18 points
6 Jumps = 15 points
7 Jumps = 13 points
8 Jumps = 10 points
9 Jumps = 8 points
10 Jumps = 5 points
11 Jumps = 3 points
12 Jumps = 1 points
13 Jumps = 1 points
14 Jumps = 1 points
15 Jumps = 1 points
16 Jumps = 1 points
17 Jumps = 1 points
18 Jumps = 1 points
19 Jumps = 1 points
20 Jumps = 1 points
What jimaway posted:
PHP Code:
#include <amxmodx>
public plugin_init()
{
const MinPoints = 1;
const MaxPoints = 20;
const MaxJumps = 4;
new earnedPoints;
for ( new iJumps = 1 ; iJumps <= 20 ; iJumps++ )
{
earnedPoints = clamp( MaxJumps / iJumps * MaxPoints , MinPoints , MaxPoints );
server_print( "%d Jumps = %d points" , iJumps , earnedPoints );
}
}
Output
Code:
1 Jumps = 20 points
2 Jumps = 20 points
3 Jumps = 20 points
4 Jumps = 20 points
5 Jumps = 1 points
6 Jumps = 1 points
7 Jumps = 1 points
8 Jumps = 1 points
9 Jumps = 1 points
10 Jumps = 1 points
11 Jumps = 1 points
12 Jumps = 1 points
13 Jumps = 1 points
14 Jumps = 1 points
15 Jumps = 1 points
16 Jumps = 1 points
17 Jumps = 1 points
18 Jumps = 1 points
19 Jumps = 1 points
20 Jumps = 1 points
__________________