Switch & case -
Riddick94 - 16.06.2012
Hey!
My question is.. is there some other way to make this values to let it compile? Because Pawncc says me it's a duplicate of case. Is there any solution?
pawn Code:
switch(newexperience)
{
case 1000..2500: SetPlayerLevel(playerid, 2);
case 2500..4500: SetPlayerLevel(playerid, 3);
case 4500..7000: SetPlayerLevel(playerid, 4);
case 7000..10000: SetPlayerLevel(playerid, 5);
case 10000..13500: SetPlayerLevel(playerid, 6);
case 13500..17500: SetPlayerLevel(playerid, 7);
case 17500..22000: SetPlayerLevel(playerid, 8);
case 22000..27000: SetPlayerLevel(playerid, 9);
case 27000..32500: SetPlayerLevel(playerid, 10);
case 32500..38500: SetPlayerLevel(playerid, 11);
case 38500..45500: SetPlayerLevel(playerid, 12);
case 45500..53000: SetPlayerLevel(playerid, 13);
case 53000..61000: SetPlayerLevel(playerid, 14);
case 61000..69500: SetPlayerLevel(playerid, 15);
case 69500..78500: SetPlayerLevel(playerid, 16);
case 78500..88000: SetPlayerLevel(playerid, 17);
case 88000..98000: SetPlayerLevel(playerid, 18);
case 98000..108500: SetPlayerLevel(playerid, 19);
case 108500: SetPlayerLevel(playerid, 20);
default: SetPlayerLevel(playerid, 1);
}
P.S
I won't use 'if'
edit://
By the way, this one works fine, but it's taking ages to compile script (i've just remove a one amount of value)
pawn Code:
switch(newexperience)
{
case 1000..2499: SetPlayerLevel(playerid, 2);
case 2500..4499: SetPlayerLevel(playerid, 3);
case 4500..6999: SetPlayerLevel(playerid, 4);
case 7000..9999: SetPlayerLevel(playerid, 5);
case 10000..13499: SetPlayerLevel(playerid, 6);
case 13500..17499: SetPlayerLevel(playerid, 7);
case 17500..21999: SetPlayerLevel(playerid, 8);
case 22000..26999: SetPlayerLevel(playerid, 9);
case 27000..32499: SetPlayerLevel(playerid, 10);
case 32500..38499: SetPlayerLevel(playerid, 11);
case 38500..45499: SetPlayerLevel(playerid, 12);
case 45500..52999: SetPlayerLevel(playerid, 13);
case 53000..60999: SetPlayerLevel(playerid, 14);
case 61000..69499: SetPlayerLevel(playerid, 15);
case 69500..78499: SetPlayerLevel(playerid, 16);
case 78500..87999: SetPlayerLevel(playerid, 17);
case 88000..97999: SetPlayerLevel(playerid, 18);
case 98000..108499: SetPlayerLevel(playerid, 19);
case 108500: SetPlayerLevel(playerid, 20);
default: SetPlayerLevel(playerid, 1);
}
Re: Switch & case -
iggy1 - 16.06.2012
You can't use the same number on different cases.
pawn Code:
switch(newexperience)
{
case 1000..2499: SetPlayerLevel(playerid, 2);//These 2 are now ok
case 2500..4499: SetPlayerLevel(playerid, 3);
case 4500..7000: SetPlayerLevel(playerid, 4);//7000
case 7000..10000: SetPlayerLevel(playerid, 5);//and 7000 are duplicates (not allowed)
default: SetPlayerLevel(playerid, 1);
}
Re: Switch & case -
Riddick94 - 16.06.2012
Yep, read my first post again. But it's preety stupid that takes a long time to compile.
Re: Switch & case -
iggy1 - 16.06.2012
If you think about it, that is really a HUGE switch statement. It will always take long to compile.
Re: Switch & case -
Riddick94 - 16.06.2012
So, that sounds like i just need to stay to 'if'
pawn Code:
if(newexperience >= 1000 && newexperience < 2500) SetPlayerLevel(playerid, 2);
else if(newexperience >= 2500 && newexperience < 4500) SetPlayerLevel(playerid, 3);
else if(newexperience >= 4500 && newexperience < 7000) SetPlayerLevel(playerid, 4);
else if(newexperience >= 7000 && newexperience < 10000) SetPlayerLevel(playerid, 5);
else if(newexperience >= 10000 && newexperience < 13500) SetPlayerLevel(playerid, 6);
else if(newexperience >= 13500 && newexperience < 17500) SetPlayerLevel(playerid, 7);
else if(newexperience >= 17500 && newexperience < 22000) SetPlayerLevel(playerid, 8);
else if(newexperience >= 22000 && newexperience < 27000) SetPlayerLevel(playerid, 9);
else if(newexperience >= 27000 && newexperience < 32500) SetPlayerLevel(playerid, 10);
else if(newexperience >= 32500 && newexperience < 38500) SetPlayerLevel(playerid, 11);
else if(newexperience >= 38500 && newexperience < 45500) SetPlayerLevel(playerid, 12);
else if(newexperience >= 45500 && newexperience < 53000) SetPlayerLevel(playerid, 13);
else if(newexperience >= 53000 && newexperience < 61000) SetPlayerLevel(playerid, 14);
else if(newexperience >= 61000 && newexperience < 69500) SetPlayerLevel(playerid, 15);
else if(newexperience >= 69500 && newexperience < 78500) SetPlayerLevel(playerid, 16);
else if(newexperience >= 78500 && newexperience < 88000) SetPlayerLevel(playerid, 17);
else if(newexperience >= 88000 && newexperience < 98000) SetPlayerLevel(playerid, 18);
else if(newexperience >= 98000 && newexperience < 108500) SetPlayerLevel(playerid, 19);
else if(newexperience >= 108500) SetPlayerLevel(playerid, 20);
else SetPlayerLevel(playerid, 1);
Oke, thanks.