SA-MP Forums Archive
[ajuda] Pagamento diario nгo funciona mais - 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] Pagamento diario nгo funciona mais (/showthread.php?tid=329142)



[ajuda] Pagamento diario nгo funciona mais - Rick_DR - 27.03.2012

Bem amigos tenho evitado colocar aqui as minhas duvidas e tentando resolver sozinho! Mas esta esta a dar comigo em maluco!

Tenho um sistema que de 30 em 30 minutos paga 250 a cada jogador Online! ele funcionava na perfeiзгo mas de um momento para o outro deixou de funcionar!

public OnGameModeInit()
pawn Код:
SetTimer("PagDia",1000*60*30,true);
pawn Код:
forward PagDia(playerid);
public PagDia(playerid)
{
     for(new e=0;e<GetMaxPlayers();e++) {
          if(IsPlayerConnected(e)) {
          SendClientMessage(e,COR_PRETO," ____________________________");
          GivePlayerMoney(e,250);
          SendClientMessage(e,servidor," Recebes-te 250 do {FF2EE0}Governo.");
          SendClientMessage(e,COR_PRETO," ____________________________");
          }
     }
     return 1;
}
Alguem me ajuda PF ?

++REP


Re: [ajuda] Pagamento diario nгo funciona mais - [NV]Dr._.THE - 27.03.2012

Quote:
Originally Posted by Rick_DR
Посмотреть сообщение
Bem amigos tenho evitado colocar aqui as minhas duvidas e tentando resolver sozinho! Mas esta esta a dar comigo em maluco!

Tenho um sistema que de 30 em 30 minutos paga 250 a cada jogador Online! ele funcionava na perfeiзгo mas de um momento para o outro deixou de funcionar!

public OnGameModeInit()
pawn Код:
SetTimer("PagDia",1000*60*30,true);
pawn Код:
forward PagDia(playerid);
public PagDia(playerid)
{
     for(new e=0;e<GetMaxPlayers();e++) {
          if(IsPlayerConnected(e)) {
          SendClientMessage(e,COR_PRETO," ____________________________");
          GivePlayerMoney(e,250);
          SendClientMessage(e,servidor," Recebes-te 250 do {FF2EE0}Governo.");
          SendClientMessage(e,COR_PRETO," ____________________________");
          }
     }
     return 1;
}
Alguem me ajuda PF ?

++REP
Topo do gm:
pawn Код:
#define Loop(%0,%1) \
    for(new %0 = 0; %0 != %1; %0++)

#define dpublic%0(%1) \
    forward%0(%1); public%0(%1)
proximo a uma callback
pawn Код:
dpublic PagDia()
{
    Loop(e, MAX_PLAYERS)
    {
        if(IsPlayerConnected(e))
        {
            SendClientMessage(e, COR_PRETO," ____________________________");
            SendClientMessage(e, servidor, " Recebes-te 250 do {FF2EE0}Governo.");
            SendClientMessage(e,COR_PRETO," ____________________________");
            GivePlayerMoney(e, 250);
        }
    }
    return 1;
}
Voce havia posto (playerid) e usava loop ... isso й errado.

deleta sua forward , public (PagDia) acicione o codigo acima!

Abracos

Espero ter ajudado


Re: [ajuda] Pagamento diario nгo funciona mais - rjjj - 27.03.2012

A contagem й iniciada quando o GM й iniciado .



Isso significa que se vocк ligar o seu servidor бs 6:10, os jogadores vгo receber o dinheiro бs 6:40, 7:10, 7:40, etc .



Se й assim que vocк quer que o cуdigo trabalhe, coloque:


pawn Код:
//No OnGameModeInit:

SetTimer("PagDia", 1800000, true);


//No Final do GM:

forward PagDia();
public PagDia()
{
     for(new x = 0, y = GetMaxPlayers(); x != y; x++)
     {
        if(!IsPlayerConnected(x)) continue;
        SendClientMessage(x, COR_PRETO, " ____________________________");
        GivePlayerMoney(x, 250);
        SendClientMessage(x, servidor, " Recebes-te 250 do {FF2EE0}Governo.");
        SendClientMessage(x, COR_PRETO, " ____________________________");
     }
     return true;
}


Caso queira que ele funcione obedecendo a sequкncia: 7:00, 7:30, 8:00, 8:30, 9:00, e assim por diante, coloque :


pawn Код:
//No OnGameModeInit:

SetTimer("PagDia", 1000, true);


//No Final do GM:

forward PagDia();
public PagDia()
{
    new Horario[3];
    gettime(Horario[0], Horario[1], Horario[2]);
    if((Horario[1] == 0 && Horario[2] == 0) | (Horario[1] == 30 && Horario[2] == 0))
    {
        for(new x = 0, y = GetMaxPlayers(); x != y; x++)
        {
            if(!IsPlayerConnected(x)) continue;
            SendClientMessage(x, COR_PRETO, " ____________________________");
            GivePlayerMoney(x, 250);
            SendClientMessage(x, servidor, " Recebes-te 250 do {FF2EE0}Governo.");
            SendClientMessage(x, COR_PRETO, " ____________________________");
        }
    }
    return true;
}


Espero ter ajudado .


Re: [ajuda] Pagamento diario nгo funciona mais - [NV]Dr._.THE - 27.03.2012

u.u



um dia eu chego la ^^


Re: [ajuda] Pagamento diario nгo funciona mais - Rick_DR - 27.03.2012

Obrigado aos dois, vou testar as duas ! ++ REP para quem me ajudou


Re: [ajuda] Pagamento diario nгo funciona mais - [R] ousenber [K] - 27.03.2012

Pra nгo criar outro tipocio , como funcionaria para envez de 30 Minutos a cada 1 Hora?

Mais desta forma:
PHP код:
//No OnGameModeInit:

SetTimer("PagDia"1000true);


//No Final do GM:

forward PagDia();
public 
PagDia()
{
    new 
Horario[3];
    
gettime(Horario[0], Horario[1], Horario[2]);
    if((
Horario[1] == && Horario[2] == 0) | (Horario[1] == 30 && Horario[2] == 0))
    {
        for(new 
0GetMaxPlayers(); != yx++)
        {
            if(!
IsPlayerConnected(x)) continue;
            
SendClientMessage(xCOR_PRETO" ____________________________");
            
GivePlayerMoney(x250);
            
SendClientMessage(xservidor" Recebes-te 250 do {FF2EE0}Governo.");
            
SendClientMessage(xCOR_PRETO" ____________________________");
        }
    }
    return 
true;

Vlws...


Re: [ajuda] Pagamento diario nгo funciona mais - steeldark - 27.03.2012

Quote:
Originally Posted by [R] ousenber [K]
Посмотреть сообщение
Pra nгo criar outro tipocio , como funcionaria para envez de 30 Minutos a cada 1 Hora?

Vlws...
deixe o codigo assim:


PHP код:
//by rjjj
//No OnGameModeInit:
SetTimer("PagDia"1000true);
//No Final do GM:
forward PagDia();
public 
PagDia()
{
    new 
Horario[3];
    
gettime(Horario[0], Horario[1], Horario[2]);
    if(
Horario[1] == && Horario[2] == 0)
    {
        for(new 
0GetMaxPlayers(); != yx++)
        {
            if(!
IsPlayerConnected(x)) continue;
            
SendClientMessage(xCOR_PRETO" ____________________________");
            
GivePlayerMoney(x250);
            
SendClientMessage(xservidor" Recebes-te 250 do {FF2EE0}Governo.");
            
SendClientMessage(xCOR_PRETO" ____________________________");
        }
    }
    return 
true;




Re: [ajuda] Pagamento diario nгo funciona mais - Rick_DR - 27.03.2012

RJJJ o que voce me passou, nao funcionou aqui o tal de dar os 250 as 7 , 7.30 , 8


Re: [ajuda] Pagamento diario nгo funciona mais - rjjj - 28.03.2012

Quote:
Originally Posted by Rick_DR
Посмотреть сообщение
RJJJ o que voce me passou, nao funcionou aqui o tal de dar os 250 as 7 , 7.30 , 8
Testei o cуdigo e este funcionou sem problemas .



Coloque a linha do SetTimer no comeзo do OnGameModeInit.



Espero ter ajudado .