View Single Post
Old 19/05/2020, 07:40 PM   #5
Filbert
Huge Clucker
 
Join Date: May 2016
Posts: 251
Reputation: 1
Default Re: countdown for near players

So guys, I made it like this :

PHP Code:
forward Float:GetDistanceBetweenPlayers(p1,p2);
public 
Float:GetDistanceBetweenPlayers(p1,p2){
    new 
Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if (!
IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
        return -
1.00;
    }
    
GetPlayerPos(p1,x1,y1,z1);
    
GetPlayerPos(p2,x2,y2,z2);
    return 
floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));


PHP Code:
forward countdown(playerid);
public 
countdown(playerid)
{
    for(new 
0MAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i) && GetDistanceBetweenPlayers(playeridi) < 200.0)
        {
            if(
CountDown == 6GameTextForPlayer(i"~p~Starting..."10006);
            
CountDown--;
            if(
CountDown == 0)
            {
                
GameTextForPlayer(i"~g~GO~ r~!"10006);
                
CountDown = -1;
                
TogglePlayerControllable(itrue);
                
PlayerPlaySound(i10570.00.00.0);
                return 
0;
            }
            else
            {
                new 
text[7]; format(textsizeof(text), "~w~%d"CountDown);
                
PlayerPlaySound(i10560.00.00.0);
                
TogglePlayerControllable(ifalse);
                
GameTextForPlayer(itext10006);
            }
            
SetTimer("countdown"10000);
        }
    }
    return 
0;
}

CMD:countdown(playeridparams[]) {
    if(
PlayerInfo[playerid][Level] >= 4) {
        if(
CountDown == -1) {
            
CountDown 6;
            
SetTimer("countdown"10000);
            return 
CMDMessageToAdmins(playerid"COUNTDOWN");
        } else return 
SendClientMessage(playeridred"ERROR: Countdown in progress");
    } else return 
SendClientMessage(playeridred"ERROR: You are not a high enough level to use this command");

And when i start the countdown, nothing happened. It just sends me the "CMDMessageToAdmins(playerid, "COUNTDOWN");". No one sees the countdown, me nor my friends. Even they're beside me

And I made a duel countdown like this :

PHP Code:
forward duelTimer(playerid);
public 
duelTimer(playerid)
{
    
/*if(DuelCD[dueler1] == 6) {
        GameTextForPlayer(dueler1, "~p~Starting...", 1000, 6);
        GameTextForPlayer(dueler2, "~p~Starting...", 1000, 6);
    }*/
    
DuelCD[dueler1]--;
    if(
DuelCD[dueler1] == 0)
    {
        
GameTextForPlayer(dueler1"~g~go get em~ r~!"10006);
        
GameTextForPlayer(dueler2"~g~go get em~ r~!"10006);
        
//DuelCD[dueler1] = -1;
        
TogglePlayerControllable(dueler1true);
        
TogglePlayerControllable(dueler2true);
        
PlayerPlaySound(dueler110570.00.00.0);
        
PlayerPlaySound(dueler210570.00.00.0);
        return 
0;
    }
    else
    {
        new 
text[7]; format(textsizeof(text), "~w~%d"CountDown);
        
PlayerPlaySound(dueler110560.00.00.0);
        
PlayerPlaySound(dueler210560.00.00.0);
        
TogglePlayerControllable(dueler1false);
        
TogglePlayerControllable(dueler2false);
        
GameTextForPlayer(dueler1text10006);
        
GameTextForPlayer(dueler2text10006);
        
SetCameraBehindPlayer(dueler1);
        
SetCameraBehindPlayer(dueler2);
    }
    
SetTimer("duelTimer"10000);
    return 
0;

And I call it like this in somewhere.

PHP Code:
SetTimer("duelTimer"10000); 
But idk why, countdown isn't "5,4,3,2,1" but it goes like "-1,-1,-1,-1,-1"

How to fix this guys?
Filbert is online now   Reply With Quote