SA-MP Forums Archive
Random experience function gone crazy - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Random experience function gone crazy (/showthread.php?tid=145167)



Random experience function gone crazy - 0ne - 01.05.2010

pawn Код:
stock minrand(min, max) return random(max - min) + min;
stock rand_exp(level)
{
    switch(level)
    {
        case 0: return minrand(200,100);
        case 1: return minrand(400,400);
        case 2: return minrand(200,300);
        case 3: return minrand(200,200);
        case 4: return minrand(200,150);
        case 5: return minrand(200,170);
        case 6: return minrand(200,160);
        case 7: return minrand(400,400);
        case 8: return minrand(200,140);
        case 9: return minrand(200,100);
        case 10: return minrand(200,400);
        case 11: return minrand(200,100);
        case 12: return minrand(200,100);
        case 13: return minrand(200,100);
        case 14: return minrand(200,100);
        case 15: return minrand(200,300);
        case 16: return minrand(200,300);
        case 17: return minrand(200,300);
        case 18: return minrand(200,190);
        case 19: return minrand(200,180);
        case 20: return minrand(200,300);
        case 21: return minrand(200,250);
        case 22: return minrand(200,250);
        case 23: return minrand(200,200);
        case 24: return minrand(200,100);
        case 25: return minrand(200,100);
        case 26: return minrand(200,100);
        case 27: return minrand(200,140);
        case 28: return minrand(200,160);
        case 29: return minrand(200,180);
        default: return 0;
    }
    return 1;
}
I got this function above which suppose to give random experience from 200 to X, and all i do is:

pawn Код:
playerDB[playerid][Exp] += rand_exp(playerDB[playerid][Level]);
And you know what it gives? It gives me a number like: xxxxxxxx its with 10 numbers omg, like above 100 million ,anyone knows the solution? o_O..


Re: Random experience function gone crazy - maij - 01.05.2010

return random(max - min) + min;
example input:
return random(500 -100) + 100;
random(400)+100;
returns any number between 100 and 500

example 2:
random(300-400) + 400;
random(-100)+400;
returns any number between 300 and 400

first impression: does random() support random negative values? I honestly do not know.
You can try buy creating a function with a random(-200) called. If it returns any large numbers then you know what the problem is.
in that case, your problem lies within the random negative.
If not, I wouldn't know


Re: Random experience function gone crazy - 0ne - 01.05.2010

Umh, so what's the solution?


Re: Random experience function gone crazy - Jefff - 01.05.2010

minrand(min, max)
not max min
so must be
case 0: return minrand(100,200); // number between 100 -200
...