[Ajuda] Sistema de experiкncia
#1

Boa tarde, boa noite, bom dia!
Eu preciso da ajuda de alguйm para terminar um sistema de experiкncia, mas eu quero que ele funcione da seguinte forma o player vai comeзar com 0/4 quando ele completar 4/4 de experiкncia ele vai para a prуxima etapa 0/15 e assim a diante.

Meu sistema:

getEXP (playerid)
{
if (Jogador [playerid] [pScore] == 0)
{
new string [80];
Jogador [playerid] [pNEXP] = 4;
formato (string, sizeof (string), "Exp:% i / 4", Jogador [playerid] [pEXP]);
TextDrawSetString (Novinha [playerid], string);
SetProgressBarMaxValue (Experiencia [playerid], 4);
}
se (Player [playerid] [pScore] == 1)
{
nova string [80];
Jogador [playerid] [pNEXP] = 8;
formato (string, sizeof (string), "Exp:% i / 8", reprodutor [playerid] [pEXP]);
TextDrawSetString (Novinha [playerid], string);
SetProgressBarMaxValue (Experiencia [playerid] ,;
}
se (Player [playerid] [pScore] == 2)
{
nova string [80];
Player [playerid] [pNEXP] = 16;
formato (string, sizeof (string), "Exp :% i / 16 ", Player [playerid] [pEXP]);
TextDrawSetString (Novinha [playerid], string);
SetProgressBarMaxValue (Experiencia [playerid], 16);
}
se (Player [playerid] [pScore] == 3)
{
new string [80];
Jogador [playerid] [pNEXP] = 24;
formato (string, sizeof (string), "Exp:% i / 24", Jogador [playerid] [pEXP]);
TextDrawSetString (Novinha [playerid], string);
SetProgressBarMaxValue (Experiencia [playerid], 24);
}

Eu queria que quando ele completasse a etapa, a experiкncia dele voltasse para 0, jб tentei usar isso:
player [playerid] [pEXP] = 0;
volta para o 0 mas continua na mesma etapa 0/4 preciso da ajuda de vocк desde jб obrigado.
Jб tentei usar (case) tambйm mas nгo funciona.
Reply
#2

E assim adiante oque ? minha bola de cristal estб de fйrias !
Reply
#3

Exemplo 1 etapa 0/4 de experiкncia
2 etapa 0/15 de experiкncia
3 etapa 0/30 de experiкncia
4 etapa 0/50 de experiкncia e assim adiante brother.
Reply
#4

Coloca em php man fica melhor pra entender!!
Reply
#5

PHP код:
#include <a_samp>
#define MAX_LEVEL (4)
new ply_Level[MAX_PLAYERS];
new 
ply_Experience[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
SetPlayerLevel(playerid1);
    
SetPlayerExperience(playerid0);
    return 
1;
}
GetPlayerLevel(playerid)
    return 
ply_Level[playerid];
GetPlayerExperience(playerid)
    return 
ply_Experience[playerid];
SetPlayerLevel(playeridlevel)
{
    if (
level MAX_LEVEL)
        return 
1;
    return 
ply_Level[playerid] = level;
}
GivePlayerLevel(playeridlevel)
{
    if (
level MAX_LEVEL)
        return 
1;
    return 
ply_Level[playerid] += level;
}
SetPlayerExperience(playeridexperience)
{
    if (
experience GetLevelExperience(GetPlayerLevel(playerid)))
        return 
1;
    return 
ply_Experience[playerid] = experience;
}
GivePlayerExperience(playeridexperience)
{
    if (
experience GetLevelExperience(GetPlayerLevel(playerid)))
        return 
1;
    return 
ply_Experience[playerid] += experience;
}
GetLevelExperience(level)
{
    switch (
level)
    {
        case 
1: return 4;
        case 
2: return 15;
        case 
3: return 30;
        case 
4: return 50;
    }
    return 
0// Invalid level
}
public 
OnPlayerUpdate(playerid// Nгo use aqui, й apenas um exemplo!!
{
    
GivePlayerExperience(playerid1);
    if (
GetPlayerExperience(playerid) >= GetLevelExperience(GetPlayerLevel(playerid)))
    {
        
GivePlayerLevel(playerid1);
        
SetPlayerExperience(playerid0);
    }
    
printf("playerid %d - Level %d (%d/%d)"playeridGetPlayerLevel(playerid), GetPlayerExperience(playerid), GetLevelExperience(GetPlayerLevel(playerid)));
    return 
1;

Pode haver erros, eu fiz аs pressas e nгo testei.
Reply
#6

Esse ъltimo return й inъtil...
PHP код:
GetLevelExperience(level

    switch (
level
    { 
        case 
1: return 4
        case 
2: return 15
        case 
3: return 30
        case 
4: return 50
        default: return 
0// Invalid level 
    


Reply
#7

Quote:
Originally Posted by FerrariL
Посмотреть сообщение
Esse ъltimo return й inъtil...
PHP код:
GetLevelExperience(level

    switch (
level
    { 
        case 
1: return 4
        case 
2: return 15
        case 
3: return 30
        case 
4: return 50
        default: return 
0// Invalid level 
    


Код:
warning 209: function "GetLevelExperience" should return a value
Reply
#8

Hum й verdade,mas nгo precisava criar 2 returns.
PHP код:
GetLevelExperience(level)  
{  
    switch (
level)  
    {  
        case 
1: return 4;  
        case 
2: return 15;  
        case 
3: return 30;  
        case 
4: return 50;  
    }  
    return 
0;

Reply
#9

Quote:
Originally Posted by FerrariL
Посмотреть сообщение
Hum й verdade,mas nгo precisava criar 2 returns.
PHP код:
GetLevelExperience(level)  
{  
    switch (
level)  
    {  
        case 
1: return 4;  
        case 
2: return 15;  
        case 
3: return 30;  
        case 
4: return 50;  
    }  
    return 
0;

Sim...
Reply
#10

Quote:
Originally Posted by 1sbedx
Посмотреть сообщение
PHP код:
GetLevelExperience(level)
{
    switch (
level)
    {
        case 
1: return 4;
        case 
2: return 15;
        case 
3: return 30;
        case 
4: return 50;
    }
    return 
0// Invalid level

PHP код:
GetLevelExperience(level) {
    
#emit LOAD.S.pri level
    #emit SHL.C.pri 2
    #emit STOR.S.pri level
    #emit LOAD.S.pri  level
    #emit ADD.C 4   /** PRI = PRI + 4 **/
    #emit RETN
    
return 0;

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)