SA-MP Forums Archive
[AJUDA] Onde ta o erro nesse sistema - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [AJUDA] Onde ta o erro nesse sistema (/showthread.php?tid=311320)



[AJUDA] Onde ta o erro nesse sistema - Chefe - 16.01.2012

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;
    }



Respuesta: [AJUDA] Onde ta o erro nesse sistema - BlackCoder - 16.01.2012

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;
}



- Chefe - 16.01.2012

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;
    }



Respuesta: [AJUDA] Onde ta o erro nesse sistema - Chefe - 16.01.2012

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?


- Chefe - 17.01.2012

zzzz


- Chefe - 17.01.2012

ninguem?


Re: [AJUDA] Onde ta o erro nesse sistema - [FFC]Twister - 17.01.2012

voce quer aumenta o tempo do settimer e isso ?


Re: [AJUDA] Onde ta o erro nesse sistema - [FFC]Twister - 17.01.2012

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



Respuesta: [AJUDA] Onde ta o erro nesse sistema - Chefe - 17.01.2012

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