public UpdatePlayerLevel(playerid)
{
new newlevelxp;
newlevelxp = GetXPAmount(pInfo[playerid][pLevel]);
if(pInfo[playerid][pExp] > newlevelxp[playerid])
{
SendClientMessage(playerid, -1, "this means you have leveled up");
pInfo[playerid][pLevel]++;
return 0;
}
return 1;
}
stock GetXPAmount(rankid)
{
new xpamount;
switch(rankid)
{
case 0: xpamount = 100;
case 1: xpamount = 200;
case 2: xpamount = 400;
case 3: xpamount = 800;
case 4: xpamount = 1600;
case 5: xpamount = 3200;
case 6: xpamount = 6400;
case 7: xpamount = 12800;
case 8: xpamount = 25600;
case 9: xpamount = 51200;
case 10: xpamount = 10240;
}
return xpamount;
}
.pwn(352) : error 028: invalid subscript (not an array or too many subscripts): "newlevelxp" .pwn(352) : warning 215: expression has no effect .pwn(352) : error 001: expected token: ";", but found "]" .pwn(352) : error 029: invalid expression, assumed zero .pwn(352) : fatal error 107: too many error messages on one line
is his level keeps on increasing in textdraw
or "this means you have leveled up" this mesage keeps popping up>? |
public UpdatePlayerLevel(playerid)
{
new newlevelxp;
newlevelxp = GetXPAmount(pInfo[playerid][pLevel]);
printf("current exp = %i || Next level exp = %i",pInfo[playerid][pExp], newlevelxp);
if(pInfo[playerid][pExp] > newlevelxp[playerid])
{
SendClientMessage(playerid, -1, "this means you have leveled up");
pInfo[playerid][pLevel]++;
return 0;
}
return 1;
}
if(pInfo[playerid][pExp] > newlevelxp[playerid])
{
SendClientMessage(playerid, -1, "this means you have leveled up");
pInfo[playerid][pLevel]++;
pInfo[playerid][pExp] = 0;
newlevelxp[playerid] = newlevelxp[playerid] * pInfo[playerid][pLevel];
return 0;
}
This is happening because you don't reset current player exp while leveling up.
pawn Код:
|