[AJUDA] Onde ta o erro nesse sistema
#1

Atй o level 1 ele conta os 4 experiencia passa pro dois ele conta infinito, ou seja, nгo passa pro level 3

pawn Code:
#include <a_samp>
    #include <dini>


    #define COR_AQUI      0xFFFFFFAA


    new Level[MAX_PLAYERS];
    new Respeito[MAX_PLAYERS];
    forward OnPlayerUpdate(playerid);

    public OnPlayerConnect(playerid)
    {
        if(dini_Isset("levels.dkn",PlayerName(playerid))) Level[playerid] = (playerid,dini_Int("levels.dkn",PlayerName(playerid)));
        if(dini_Isset("respeito.dkn",PlayerName(playerid))) Respeito[playerid] = (playerid,dini_Int("respeito.dkn",PlayerName(playerid)));
        SetTimerEx("Timer",60000,true,"i",playerid);
        return 1;
    }

    forward Timer(playerid);
    public Timer(playerid)
    {
    Respeito[playerid]++;
    SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~~UP~~~~~~~~~~~~");
    SendClientMessage(playerid,COR_AQUI,"Parabens Aumentou Sua EXP");
    SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~~UP~~~~~~~~~~~~");
    if(Respeito[playerid] == 4)
    {
    Level[playerid]++;
    SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~UP~~~~~~~~~~~");
    SendClientMessage(playerid,COR_AQUI,"Parabens Upou Seu Level");
    SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~UP~~~~~~~~~~~");
    }
    return 1;
    }

    public OnGameModeInit()
    {
      if(!fexist("levels.dkn")) dini_Create("levels.dkn");
      if(!fexist("respeito.dkn")) dini_Create("respeito.dkn");
      return 1;
    }
    public OnPlayerUpdate(playerid)
    {
      dini_IntSet("Levels.dkn",PlayerName(playerid),Level[playerid]);
      if(dini_Isset("Levels.dkn",PlayerName(playerid))) SetPlayerScore(playerid,dini_Int("Levels.dkn",PlayerName(playerid)));
      return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
      dini_IntSet("levels.dkn",PlayerName(playerid),Level[playerid]);
      dini_IntSet("respeito.dkn",PlayerName(playerid),Respeito[playerid]);
      return 1;
    }

    stock PlayerName(playerid)
    {
    new PlayerNameLevel[MAX_PLAYERS];
    GetPlayerName(playerid, PlayerNameLevel, MAX_PLAYERS);
    return PlayerNameLevel;
    }
Reply
#2

o problema estб aki, vou lhe explicar.
pawn Code:
forward Timer(playerid);
public Timer(playerid)
{
    Respeito[playerid]++;//irб dar + respeito ok
    SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~~UP~~~~~~~~~~~~");
    SendClientMessage(playerid,COR_AQUI,"Parabens Aumentou Sua EXP");
    SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~~UP~~~~~~~~~~~~");
    if(Respeito[playerid] == 4)//aki ele irб checar se o jogador tem 4 de experiencia
    {
        Level[playerid]++;
        SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~UP~~~~~~~~~~~");
        SendClientMessage(playerid,COR_AQUI,"Parabens Upou Seu Level");
        SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~UP~~~~~~~~~~~");
    }
    //aki deveria ter outra comparaзao para ver se o jogador tem + experiencia
    //exemplo
    if(Respeito[playerid] == 8)//agora sim ele irб checar se o jogador tem 8 de experiencia e vai passar de nivel
    {
        Level[playerid]++;
        SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~UP~~~~~~~~~~~");
        SendClientMessage(playerid,COR_AQUI,"Parabens Upou Seu Level");
        SendClientMessage(playerid,COR_AQUI,"~~~~~~~~~~~UP~~~~~~~~~~~");
    }
    //continue com + comparacoes,todas crescentes pois senгo o jogador sу vai atй o level 3
    return 1;
}
Reply
#3

Atah, 1 problema resolvido vlw
Agora o problema й outro, me ajuda nessa hora

pawn Code:
SetTimerEx("Timer",30000,true,"i",playerid);
Eu queria saber se tem como dar esse respeito sу as xx:00 horas? Se nгo tiver como isola e sу arruma para dar o respeito em 1 a 1 hora.

Do jeito que estб ai no SetTimerEx da esse tempo de respeito, tudo desrregulado o tempo

LEVEL 0
18:37:01
18.37:49
18:37:50
18:39:11

LEVEL 1
18:39:11
18:39:43
18:40:05
18:40:48

LEVEL 2
18:41:28
18:41:56
18:42:37
18:43:20

LEVEL 3
18:43:29
18:44:04
18:45:23
18:45:23

LEVEL 4
18:45:58
18:46:48
18:46:59
18:47:31

PS: Esse й o novo cуdigo ja editado:

pawn Code:
#include <a_samp>
    #include <dini>


    #define COR_AQUI      0xFFFFFFAA
    #define COLOR_ADMIN 0xF800DFAA


    new Level[MAX_PLAYERS];
    new Respeito[MAX_PLAYERS];
    forward OnPlayerUpdate(playerid);

    public OnPlayerConnect(playerid)
    {
        if(dini_Isset("levels.dkn",PlayerName(playerid))) Level[playerid] = (playerid,dini_Int("levels.dkn",PlayerName(playerid)));
        if(dini_Isset("respeito.dkn",PlayerName(playerid))) Respeito[playerid] = (playerid,dini_Int("respeito.dkn",PlayerName(playerid)));
        SetTimerEx("Timer",30000,true,"i",playerid);
        return 1;
    }

forward Timer(playerid);
public Timer(playerid)
{
    Respeito[playerid]++;//irб dar + respeito ok
    SendClientMessage(playerid,COR_AQUI,"Parabens Aumentou Sua EXP");
    if(Respeito[playerid] == 4)//aki ele irб checar se o jogador tem 4 de experiencia
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }
    //aki deveria ter outra comparaзao para ver se o jogador tem + experiencia
    //exemplo
    if(Respeito[playerid] == 8)//agora sim ele irб checar se o jogador tem 8 de experiencia e vai passar de nivel
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }
    if(Respeito[playerid] == 12)//agora sim ele irб checar se o jogador tem 8 de experiencia e vai passar de nivel
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }

    if(Respeito[playerid] == 16)//agora sim ele irб checar se o jogador tem 8 de experiencia e vai passar de nivel
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }

    return 1;
}

    public OnGameModeInit()
    {
      if(!fexist("levels.dkn")) dini_Create("levels.dkn");
      if(!fexist("respeito.dkn")) dini_Create("respeito.dkn");
      return 1;
    }
    public OnPlayerUpdate(playerid)
    {
      dini_IntSet("Levels.dkn",PlayerName(playerid),Level[playerid]);
      if(dini_Isset("Levels.dkn",PlayerName(playerid))) SetPlayerScore(playerid,dini_Int("Levels.dkn",PlayerName(playerid)));
      return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
      dini_IntSet("levels.dkn",PlayerName(playerid),Level[playerid]);
      dini_IntSet("respeito.dkn",PlayerName(playerid),Respeito[playerid]);
      return 1;
    }

    stock PlayerName(playerid)
    {
    new PlayerNameLevel[MAX_PLAYERS];
    GetPlayerName(playerid, PlayerNameLevel, MAX_PLAYERS);
    return PlayerNameLevel;
    }
Reply
#4

Se esse SeTimerEx for Milissegundo eu coloco 30000 para ir em 1 a 1 minuto, sу que fica tudo bugado, ta tudo ao mesmo tempo ou 2 EX ao mesmo tempo, tudo bugado, sabem desbugar isso ai?
Reply
#5

zzzz
Reply
#6

ninguem?
Reply
#7

voce quer aumenta o tempo do settimer e isso ?
Reply
#8

pawn Code:
#include <a_samp>
    #include <dini>


    #define COR_AQUI      0xFFFFFFAA
    #define COLOR_ADMIN 0xF800DFAA


    new Level[MAX_PLAYERS];
    new Respeito[MAX_PLAYERS];
    forward OnPlayerUpdate(playerid);

    public OnPlayerConnect(playerid)
    {
        if(dini_Isset("levels.dkn",PlayerName(playerid))) Level[playerid] = (playerid,dini_Int("levels.dkn",PlayerName(playerid)));
        if(dini_Isset("respeito.dkn",PlayerName(playerid))) Respeito[playerid] = (playerid,dini_Int("respeito.dkn",PlayerName(playerid)));
        SetTimerEx("Timer",3600000,true,"i",playerid);//de 1 em 1 hr
        return 1;
    }

forward Timer(playerid);
public Timer(playerid)
{
    Respeito[playerid]++;//irб dar + respeito ok
    SendClientMessage(playerid,COR_AQUI,"Parabens Aumentou Sua EXP");
    if(Respeito[playerid] == 4)//aki ele irб checar se o jogador tem 4 de experiencia
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }
    //aki deveria ter outra comparaзao para ver se o jogador tem + experiencia
    //exemplo
    if(Respeito[playerid] == 8)//agora sim ele irб checar se o jogador tem 8 de experiencia e vai passar de nivel
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }
    if(Respeito[playerid] == 12)//agora sim ele irб checar se o jogador tem 8 de experiencia e vai passar de nivel
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }

    if(Respeito[playerid] == 16)//agora sim ele irб checar se o jogador tem 8 de experiencia e vai passar de nivel
    {
        Level[playerid]++;
        SendClientMessage(playerid,COLOR_ADMIN ,"Parabens Upou Seu Level");
    }

    return 1;
}

    public OnGameModeInit()
    {
      if(!fexist("levels.dkn")) dini_Create("levels.dkn");
      if(!fexist("respeito.dkn")) dini_Create("respeito.dkn");
      return 1;
    }
    public OnPlayerUpdate(playerid)
    {
      dini_IntSet("Levels.dkn",PlayerName(playerid),Level[playerid]);
      if(dini_Isset("Levels.dkn",PlayerName(playerid))) SetPlayerScore(playerid,dini_Int("Levels.dkn",PlayerName(playerid)));
      return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
      dini_IntSet("levels.dkn",PlayerName(playerid),Level[playerid]);
      dini_IntSet("respeito.dkn",PlayerName(playerid),Respeito[playerid]);
      return 1;
    }

    stock PlayerName(playerid)
    {
    new PlayerNameLevel[MAX_PLAYERS];
    GetPlayerName(playerid, PlayerNameLevel, MAX_PLAYERS);
    return PlayerNameLevel;
    }
ai eu fis o comando de 1 em 1 hr que nem voce pediu
Reply
#9

Mais tem como determinar a hora para dar o respeito? tipo, queria que sу dasse o respeito as xx:00
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)