[Ajuda] /Contar
#1

Й o seguinte, fiz um comando de contagem pro meu servidor, so pra fazer um evento do meu clг de corrida.

Quando so estou eu no servidor ele funciona normalmente, mas se entra mais outros jogadores o timer buga e o tempo desce rapidгo.

pawn Код:
new TEMPOCONTAGEM;
new ContDow = 0;

pawn Код:
CMD:contar(playerid, params[]){
    new Float:p[3];
    GetPlayerPos(playerid, p[0], p[1], p[2]);
    if(sscanf(params,"d",ContDow)) return SendClientMessage(playerid, Vermelho, "| ERRO |{FFFFFF} Digite: /Contar [tempo 1-15]");
    if(ContDow < 1 || ContDow > 15) return SendClientMessage(playerid, ERRO, "| ERRO | O tempo deve ser de 1 а 15 segundos");
    for(new i; i < MAX_PLAYERS; i++){
    if(IsPlayerInRangeOfPoint(playerid, 20.0, p[0], p[1], p[2])){
    SetCameraBehindPlayer(i);
    TogglePlayerControllable(i,0);
    }
    }
    TEMPOCONTAGEM = SetTimerEx("Contagem", 1000, true, "i", playerid);
    return 1;
}

pawn Код:
public Contagem(playerid)
{
    new str[50], Float:p[3];
    GetPlayerPos(playerid, p[0], p[1], p[2]);
    for(new i; i < MAX_PLAYERS; i++){
        if(IsPlayerInRangeOfPoint(i, 20.0, p[0], p[1], p[2])){
            TextDrawShowForPlayer(i, textocnn);
            TogglePlayerControllable(i,0);
            format(str, sizeof(str),"~r~~h~#~p~ Contagem:~w~ %d ~r~~h~#",ContDow);
            TextDrawSetString(textocnn, str);
            ContDow--;
            if(ContDow < 0){
                TextDrawHideForPlayer(i, textocnn);
                ContDow = 0;
                TogglePlayerControllable(i,1);
                KillTimer(TEMPOCONTAGEM);
            }
        }
    }
}
Aguardo ajuda.
Reply
#2


PHP код:
new TimerCount[MAX_PLAYERS], CountDown[MAX_PLAYERS];
forward Contagem(playerid); 
PHP код:
CMD:contar(playeridparams[]) {
    new 
Float:pos[3], Count 0;
    
GetPlayerPos(playeridpos[0], pos[1], pos[2]);
    if(
sscanf(params,"d"Count)) return SendClientMessage(playerid, -1"| ERRO |{FFFFFF} Digite: /Contar [tempo 1-15]");
    if(
<= Count <= 15) return SendClientMessage(playerid, -1"| ERRO | O tempo deve ser de 1 а 15 segundos");
    for(new 
iGetMaxPlayers(); i++)
    {
        if(
IsPlayerInRangeOfPoint(i20.0pos[0], pos[1], pos[2]))
        {
            
SetCameraBehindPlayer(i);
            
TogglePlayerControllable(i0);
        }
    }
    
CountDown[playerid] = Count;
    
TimerCount[playerid] = SetTimerEx("Contagem"1000true"i"playerid);
    return 
1;

PHP код:
public Contagem(playerid)
{
    new 
str[50], Float:p[3];
    
GetPlayerPos(playeridp[0], p[1], p[2]);
    
format(strsizeof(str),"~r~~h~#~p~ Contagem:~w~ %d ~r~~h~#"CountDown[playerid]);
    for(new 
iGetMaxPlayers(); i++)
    {
        if(
IsPlayerInRangeOfPoint(i20.0p[0], p[1], p[2]))
        {
            if(
CountDown[playerid] == 0)
            {
                
TogglePlayerControllable(i1);
                
KillTimer(TimerCount[playerid]);
            }
            
TextDrawHideForPlayer(itextocnn);
            
TextDrawSetString(textocnnstr);
            
TextDrawShowForPlayer(itextocnn);
        }
    }
    
CountDown[playerid] --;
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)