[DUV] Bloquear Settimer para um player sу.
#1

E ae emada

Queria saber se hб a possibilidade de bloquear um Settimer global somente para 1 player, e depois retomar esse settimer atravez de um cmd. Tem como isso?
Reply
#2

KillTimer ?
Reply
#3

Mais ai nгo seria para todos?
Reply
#4

Dб.
Suponhamos que seja um loop e funзхes como as abaixo:

pawn Код:
for(new i=0; i<MAX_PLAYERS; i++)
if(i == playerexcluido) goto saltarfuncoes;
SetPlayerHealth(i,1.0);
GivePlayerWeapon(i,24,1000);
saltarfuncoes:
Para o playerexluido isso nгo irб acontecer.
Reply
#5

Й um Settimer normal =)

Essa й a funзгo toda:

pawn Код:
forward AumentarLevel(playerid);

//OnGameModInit
    SetTimer("AumentarLevel", 600000, true);

public AumentarLevel(playerid)
{
    for(new i=0; i <= MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            Experiencia[i] ++;
                        GameTextForPlayer(playerid, "~w~UP", 2000, 6);
                        if(Experiencia[playerid] == 6)
               {
                        Level[i]++;
                        new str[256];
                        format(str,sizeof(str),"Level UP! Vocк ganhou 1 level. Somando um total de %d Level's.",Level[playerid]);
                SendClientMessage(i,0xFF0000AA,str);
                         Experiencia[playerid] = pap_SalvarInt(playerid, "Experiencia", 0);
               }
               }
         }
     return 1;
}
Reply
#6

Quem vocк quer que nгo receba experiкncia?

Faзa como eu fiz ali, crie uma variбvel global pra armazenar o id do excluido.
Reply
#7

Se eu fizer assim serб que funciona?

pawn Код:
public AumentarLevel(playerid)
{
    for(new i=0; i <= MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
        if(afk[playerid]==1){
        SendClientMessage(playerid,COLOR_RED, "[ERRO] Vocк nгo upo pois estava afk.");
        return 1;
        }
            if(afk[playerid]==0)
            {            
Experiencia[i] ++;
                        GameTextForPlayer(playerid, "~w~UP", 2000, 6);
                        if(Experiencia[playerid] == 6)
               {
                        Level[i]++;
                        new str[256];
                        format(str,sizeof(str),"Level UP! Vocк ganhou 1 level. Somando um total de %d Level's.",Level[playerid]);
                SendClientMessage(i,0xFF0000AA,str);
                         Experiencia[playerid] = pap_SalvarInt(playerid, "Experiencia", 0);
               }
               }
         }
}
     return 1;
}
Reply
#8

Como AumentarLevel й uma funзгo que irб chamar um loop nгo precisa de playerid, e do jeito que fez nгo funcionaria porque playerid vai ser sempre 0.
pawn Код:
public AumentarLevel(playerid)
{
    for(new i=0; i <= MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
        if(afk[i]==1){
        SendClientMessage(playerid,COLOR_RED, "[ERRO] Vocк nгo upo pois estava afk.");
        return 1;
        }
            if(afk[i]==0)
            {            
Experiencia[i] ++;
                        GameTextForPlayer(i, "~w~UP", 2000, 6);
                        if(Experiencia[i] == 6)
               {
                        Level[i]++;
                        new str[256];
                        format(str,sizeof(str),"Level UP! Vocк ganhou 1 level. Somando um total de %d Level's.",Level[i]);
                SendClientMessage(i,0xFF0000AA,str);
                         Experiencia[i] = pap_SalvarInt(i, "Experiencia", 0);
               }
               }
         }
}
     return 1;
}
Reply
#9

Sim, dei um exemplo mais vlw. Vou testar aqui. . .
Reply
#10

Eu sugiro usar SetTimerEx pra essa funзгo.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)