[AJUDA] Sistema de level
#1

Entгo pessoal, to fazendo um gamemode de freeroam, pra quem nгo sabe, freeroam й um gamemode que abrange diversas areas e categorias de jogos, no meu tem:

Drift | 4Fun | DM | Stunts

Sу que eu preciso de um sisteminha de level pra ele e nгo sei por onde comeзar, eu queria um sisteminha aonde possa ser tipo, se o cara faz drift, ganha tal ponto e aquele tal ponto dividido por 3 seria 1 ponto, no caso ele precisaria de 6 pra ir pro 2є level, no 4Fun ele ganharia 1 ponto a cada 30 minutos online e no DM a cada 1 pessoa morta, 1 ponto, nos stunts a cada manobra 1 ponto tambйm, e a cada level precisa-se de mais 3 pontos, exemplo:

Level 01: 06 pontos para passar para level 02
Level 02: 09 pontos para passar para level 03
Level 03: 12 pontos para passar para level 04

Entendem? Poxa se vocкs me ajuda-sem a criar isso eu amaria vcs de coraзгo s2 auhauahauhauau.

E tipo o sistema de salvamento eu faзo, nгo precisa disso tudo, obrigado pessoal, e outra, eu usei search e nгo encontrei nada do tipo
Reply
#2

Tem um desses.

pawn Код:
CMD:adquirirlevel(playerid, params[])
{
    new string[128];
    new expatual = DylanInfo[playerid][dExp];
    if(expatual != requerirExp(playerid)) return format(string, 128, "Vocк precisa de %iEXP! vocк sу tem %i.", requerirExp(playerid), expatual), SendClientMessage(playerid, Vermelho,string);
    DylanInfo[playerid][dExp] = 0;
    DylanInfo[playerid][dLevel]++;
    SetPlayerScore(playerid, DylanInfo[playerid][dLevel]);
    SendClientMessage(playerid, Azul_Marinho, "Parabens vocк upou de level!");
    SetPlayerScore(playerid ,GetPlayerScore(playerid) +1);
    format(string, sizeof(string), "~y~Vocк foi para o level: ~g~%i, Parabens!",GetPlayerScore(playerid));
    GameTextForPlayer(playerid,string, 3000, 5);
    return 0x01;
}


stock requerirExp(playerid)
{
    new expRequerida;
    if(DylanInfo[playerid][dLevel] == 1) expRequerida = (8);
    if(DylanInfo[playerid][dLevel] == 2) expRequerida = (16);
    if(DylanInfo[playerid][dLevel] == 3) expRequerida = (24);
    if(DylanInfo[playerid][dLevel] == 4) expRequerida = (32);
    if(DylanInfo[playerid][dLevel] == 5) expRequerida = (40);
    if(DylanInfo[playerid][dLevel] == 6) expRequerida = (48);
    if(DylanInfo[playerid][dLevel] == 7) expRequerida = (56);
    if(DylanInfo[playerid][dLevel] == 8) expRequerida = (64);
    return expRequerida;
}
pawn Код:
#define requerirExp(%0, %1) (DylanInfo[%0][dLevel] == %1) ? (true) : (false)
requerirExp(level, exp)
pawn Код:
stock requerirExp(playerid) return (DylanInfo[playerid][dLevel]*8);
Basta adбpta-lo para o seu sistema.
Reply
#3

Mais tipo, eu queria que fosse automбtico, ele upa automaticamente, nгo precisa-se digitar nenhum comando.

Mais no caso qual a funзгo eu iria usar pra dar 1 ponto de XP para o player?

Obrigado mesmo assim '-'

EDIT:

pawn Код:
DylanInfo[playerid][dExp] = 0;
    DylanInfo[playerid][dLevel]++;
achei

Vou tentar aqui dar uma adaptada vlw
Reply
#4

Da uma olhada nesse plugin talvez ele possa lhe ajudar.

Vocк pode fazer ele ultrapassar o nнvel automaticamente criando um timer, exemplo:
pawn Код:
public OnGameModeInit() return SetTimer("upAutomatico", 1000, true); //isso й apenas um exemplo, nгo quer dizer que estб funcionando

forward upAutomatico(); public upAutomatico()  {
    foreach(Player, i)
     {
        if(requerirExp(i) == exp[i])
         {
            level[i]++;
         }
     }
}
Para contar os pontos de drift, vocк prуprio deve fazer, no caso use o drift counter.
Reply
#5

Obrigado cara, eu sу nгo entendi bem essas 3 linhas:

pawn Код:
#define requerirExp(%0, %1) (DylanInfo[%0][dLevel] == %1) ? (true) : (false)
requerirExp(level, exp)
pawn Код:
stock requerirExp(playerid) return (DylanInfo[playerid][dLevel]*8);
Qual seria a funзгo delas?
Reply
#6

No caso
pawn Код:
stock requerirExp(playerid) return (DylanInfo[playerid][dLevel]*8);
Vai checar se o cara tem a exp requerida.
Vai ser: O level multiplicado por 8.

Ex:
Level 1 necessita de 8 exp
Level 2 necessita de 16 exp

E assim por diante.

ex>
pawn Код:
#define requerirExp(%0) (DylanInfo[%0][dLevel]*8)
Reply
#7

Mais tipo qual das 2 stocks eu utilizo? Essa:

pawn Код:
stock requerirExp(playerid)
{
    new expRequerida;
    if(DylanInfo[playerid][dLevel] == 1) expRequerida = (8);
    if(DylanInfo[playerid][dLevel] == 2) expRequerida = (16);
    if(DylanInfo[playerid][dLevel] == 3) expRequerida = (24);
    if(DylanInfo[playerid][dLevel] == 4) expRequerida = (32);
    if(DylanInfo[playerid][dLevel] == 5) expRequerida = (40);
    if(DylanInfo[playerid][dLevel] == 6) expRequerida = (48);
    if(DylanInfo[playerid][dLevel] == 7) expRequerida = (56);
    if(DylanInfo[playerid][dLevel] == 8) expRequerida = (64);
    return expRequerida;
}
Ou essa:

pawn Код:
stock requerirExp(playerid) return (DylanInfo[playerid][dLevel]*8);
Reply
#8

Use essa.

pawn Код:
stock requerirExp(playerid) return (DylanInfo[playerid][dLevel]*8);

__________________________________________________ ________________________________________________
Se eu te ajudei me de um reputation? *-*
Reply
#9

Como que dб 1 reputation a cada post que vc me respondeu mano? KKKKKKKKKKKKKKKKKKKK

Uma ultima duvida, como eu usaria aquele sistema de Drift e dividiria o valor total do drift por 9 ou 10?
Reply
#10

kkkk bgzz
Vocк pode fazer creio eu que assim:

pawn Код:
forward OnPlayerDriftUpdate(playerid,value,combo,flagid,Float:distance,Float:speed);
No caso para dividir usaria

combo /9



Nгo conheзo muito bem esse plugin, mais me disseram que й muito bom
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)