[AJUDA]Sistem de EXP -
Victor_Souz4 - 01.12.2011
Ola galera criei um sistema de exp cada vez que o player mata um player ele ganha +1EXP sendo que precisa de 10 pra upar dps que ele upa ele ganha +1Level e cada vez que upa os exps vai aumentando 10 em 10 Exemplo:
UPEI o primeiro lvl que e preciso de 10 exp no segundo lvl e 20 no terceiro lvl e 30 assim por diante bom mais o erro eo seguinte quando eu upo a primeira vez ta tudo certo mais quando eu tento upar a segunda vez que no caso e preciso de 20 exp o cara ganha 10 exp e reseta tudo ...
pawn Код:
forward OnPlayerUPLEVEL(playerid);
public OnPlayerUPLEVEL(playerid)
{
if(Stats[playerid][PLAYEREXP]>=(Stats[playerid][LEVEL]+1)*10)
{
MyLevel = 1;
Stats[playerid][PLAYEREXP] -= (Stats[playerid][LEVEL]+1)*10;
}
TextDrawLetterSize(TextPlayerExp[playerid],-0.100000,(-0.5)+((Stats[playerid][PLAYEREXP])*(-45.599994))/((Stats[playerid][LEVEL]+MyLevel+1)*10));
TextDrawShowForPlayer(playerid,BlackGroundPlayerExp);
TextDrawShowForPlayer(playerid,TextStringPlayer);
TextDrawShowForPlayer(playerid,TextPlayerExp[playerid]);
TextDrawShowForPlayer(playerid,TextGuerra);
new string[128];
format(string,256,"~w~Nome:~n~~p~%s~n~~y~Level: %d~n~Exp: %d"/* / %d"*/,PlayerName(playerid),Stats[playerid][LEVEL]+MyLevel,Stats[playerid][PLAYEREXP]/*,(Stats[playerid][LEVEL]+1)*10*/);
if(Stats[playerid][PLAYEREXP]) format(string,256,"~w~Nome:~n~~p~%s~n~~y~Level: %d~n~Exp: %d"/*/ %d"*/,PlayerName(playerid),Stats[playerid][LEVEL]+MyLevel,Stats[playerid][PLAYEREXP]/*,(Stats[playerid][LEVEL]+1)*10*/);
TextDrawSetString(TextGuerra,string);
return 1;
}
pawn Код:
forward PlayerUpExpLevel(playerid,upexp);
public PlayerUpExpLevel(playerid,upexp)
{
new string[128];
if(upexp>0)
{
if(TimeMyItens[playerid][6]>0 && TimeMyItens[playerid][7]>0) upexp *= 6;
else if(TimeMyItens[playerid][6]>0) upexp *= 2;
else if(TimeMyItens[playerid][7]>0) upexp *= 3;
}
Stats[playerid][PLAYEREXP] += upexp;
for(new l=1; l <= 50; l++)
{
if(Stats[playerid][PLAYEREXP]>=(Stats[playerid][LEVEL]+l)*10)
{
MyLevel = l;
Stats[playerid][PLAYEREXP] -= (Stats[playerid][LEVEL]+l)*10;
if(upexp>0) format(string,256,"~g~Player Up +%d !~n~~b~EXP: %d / %d~n~~g~LEVEL: %d",upexp,Stats[playerid][PLAYEREXP],(Stats[playerid][LEVEL]+MyLevel+1)*10,Stats[playerid][LEVEL]+MyLevel);
else format(string,256,"~r~Player Down %d !~n~~b~EXP: %d / %d~n~~g~LEVEL: %d",upexp,Stats[playerid][PLAYEREXP],(Stats[playerid][LEVEL]+MyLevel+1)*10,Stats[playerid][LEVEL]+MyLevel);
}
else
{
if(upexp>0) format(string,256,"~g~Player Up +%d !~n~~b~EXP: %d / %d",upexp,Stats[playerid][PLAYEREXP],(Stats[playerid][LEVEL]+MyLevel+1)*10);
else format(string,256,"~r~Player Down %d !~n~~b~EXP: %d / %d",upexp,Stats[playerid][PLAYEREXP],(Stats[playerid][LEVEL]+MyLevel+1)*10);
}
}
GameTextForPlayer(playerid,string,5000,1);
}
Re: [AJUDA]Sistem de EXP -
ViniBorn - 01.12.2011
Jб que necessita da morte de um jogador, nгo seria mais fбcil deixar esse cуdigo no OnPlayerDeath?
Re: [AJUDA]Sistem de EXP -
Victor_Souz4 - 01.12.2011
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerUpExpLevel(killerid,1);
Ja que cada morte ganha 1 exp , pra upar primeira vez tenho que matar 10 vezes ai ja no Level2 fica mais dificil tenho que matar 20 vezes mais so que mato 10 e reseta o exp naum passa de 10 assim naum consigo upar pro level3 .. pq isso ?
Re: [AJUDA]Sistem de EXP -
Victor_Souz4 - 01.12.2011
Ajuda alguem...
Re: [AJUDA]Sistem de EXP -
[R] ousenber [K] - 01.12.2011
PHP код:
stock Expz(playerid)
{
new Ezp;
if(Level[playerid] == 1) Ezp = 10;
if(Level[playerid] == 2) Ezp = 20;
if(Level[playerid] == 3) Ezp = 30;
if(Level[playerid] == 4) Ezp = 40;
if(Level[playerid] == 5) Ezp = 50;
return Ezp;
}
?
Re: [AJUDA]Sistem de EXP -
Victor_Souz4 - 01.12.2011
Naum funcionou sempre quando chega no Level2 aparece que tenho que ganhar 20 EXP mais quando eu Ganho 10 o EXP RESETA
Re: [AJUDA]Sistem de EXP -
[R] ousenber [K] - 01.12.2011
Nгo entendi o.O, Ele upa pelo OnPlayerDeath?
@EDIT
PHP код:
new
Level[MAX_PLAYERS],
Exp[MAX_PLAYERS]
;
stock Expz(playerid)
{
new Ezp;
if(Level[playerid] == 1) Ezp = 10;
if(Level[playerid] == 2) Ezp = 20;
if(Level[playerid] == 3) Ezp = 30;
if(Level[playerid] == 4) Ezp = 40;
if(Level[playerid] == 5) Ezp = 50;
return Ezp;
}
public OnPlayerDeath(playerid, killerid, reason)
{
Exp[killerid] ++;
if(Exp[killerid] >= Expz(killerid))
{
Level[killerid] ++;
Exp[killerid] = 0;
}
return true;
}
Re: [AJUDA]Sistem de EXP -
ViniBorn - 01.12.2011
Os jogadores vгo passar de nнvel quando atingirem os seguintes pontos de respeito?
Код:
Level 1 passa de nнvel com 10 de respeito
Level 2 passa de nнvel com 30 de respeito
Level 3 passa de nнvel com 60 de respeito
Level 4 passa de nнvel com 100 de respeito
Level 5 passa de nнvel com 150 de respeito
Level 6 passa de nнvel com 210 de respeito
Level 7 passa de nнvel com 280 de respeito
Re: [AJUDA]Sistem de EXP -
Ricop522 - 01.12.2011
pawn Код:
#define Expz(%0) Level[%0]*10
stock Expz(playerid) return Level[playerid]*10;
if(Expz(playerid) == Exp[playerid]) .;..