[Ajuda] contagem regressiva
#1

estou tentando editar um fs de roubar banco , consegui colocar animaзao de mochila e de armar bomba (bom pra mim)
alguem pode me ajudar colocar tempo pra usar este comando denovo

PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
newkeys == 16 && IsPlayerInRangeOfPoint(playerid3.0cXcYcZ)) // Tecla » [ F| ]
    
{
        static 
Ladrao[MAX_PLAYER_NAME], sStr[70];
        
GetPlayerName(playeridLadraosizeof(Ladrao));
        if(
Roubando[playerid] == 1) return SendClientMessage(playerid0xE31919FF"[~] Vocк jб estб assaltando!");
        
format(sStrsizeof(sStr), "%s[%d] estб roubando a casa do [J]oker!"Ladraoplayerid);
        
SendClientMessageToAll(0xE31919FFsStr);
        
format(sStrsizeof(sStr), "Espere %d minutos para concluir o saqueamento!"TempoRoubo);
        
ApplyAnimation(playerid"BOMBER""BOM_Plant"4.010000);
        
SetPlayerAttachedObject(playerid0155010.000000, -0.3136110.0210030.44549086.754409355.3702390.9268151.0000001.000000);
        
SetPlayerWantedLevel(playeridGetPlayerWantedLevel(playerid)+5);
        
SendClientMessage(playerid0xC9C9C9FFsStr);
        
SetTimer("Roubou"60000*TempoRoubofalse);
        
Roubando[playerid] = 1;
        return 
1;
    }
    return 
1;

Reply
#2

Acho que isso resolva sua questгo... Tenta ae, pelo meno eu acho que era isso que vocк queria rs

Код:
new bool:JaRoubou[MAX_PLAYERS];
new TempoLibera[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
	JaRoubou[playerid] = false;
}
public OnPlayerDisconnect(playerid, reason)
{
	KillTimer(TempoLibera[playerid]);
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == 16 && IsPlayerInRangeOfPoint(playerid, 3.0, cX, cY, cZ)) // Tecla » [ F| ]
    {
        if(JaRoubou[playerid]) return SendClientMessage(playerid, -1, "Erro! Vocк jб roubou!");
        static Ladrao[MAX_PLAYER_NAME], sStr[70];
        GetPlayerName(playerid, Ladrao, sizeof(Ladrao));
        if(Roubando[playerid] == 1) return SendClientMessage(playerid, 0xE31919FF, "[~] Vocк jб estб assaltando!");
        format(sStr, sizeof(sStr), "%s[%d] estб roubando a casa do [J]oker!", Ladrao, playerid);
        SendClientMessageToAll(0xE31919FF, sStr);
        format(sStr, sizeof(sStr), "Espere %d minutos para concluir o saqueamento!", TempoRoubo);
        ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 1, 0, 0, 0, 0);
        SetPlayerAttachedObject(playerid, 0, 1550, 1, 0.000000, -0.313611, 0.021003, 0.445490, 86.754409, 355.370239, 0.926815, 1.000000, 1.000000);
        SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+5);
        SendClientMessage(playerid, 0xC9C9C9FF, sStr);
        SetTimer("Roubou", 60000*TempoRoubo, false); //Nгo se esse й o Time a qual vc se refere....
        TempoLibera[playerid] = SetTimerEx("PodeRoubar", 10000/*10seg*/, false, "i", playerid);
        Roubando[playerid] = 1;
        JaRoubou[playerid] = true;
        return 1;
    }
    return 1;
}

forward PodeRoubar(playerid);
public PodeRoubar(playerid)
{
	JaRoubou[playerid] = false;
	SendClientMessage(playerid, -1, "Vocк jб pode roubar novamente!"); //Opcional
	return 1;
}
Reply
#3

nossa mano ajudou muit serio mesmo , se puder ajudar colocando um texto no meio da tela com contagem regressiva de 1 minuto eu agradeзo
tipo quando eu der "F" pra roubar comeзar contar o tempo em segundos
Reply
#4

Vocк pode personalizar o tipo de texto "GameTextForPlayer" A seu gosto...
https://sampwiki.blast.hk/wiki/GameTextStyle
Tenta ae...
Acho que funciona rsrsrsrs

Код:
new TimerCronometro[MAX_PLAYERS];
new TempoCronometro[MAX_PLAYERS];
new bool:JaRoubou[MAX_PLAYERS];
new TempoLibera[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
	JaRoubou[playerid] = false;
}
public OnPlayerDisconnect(playerid, reason)
{
	KillTimer(TempoLibera[playerid]);
	KillTimer(TimerCronometro[playerid]);
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == 16 && IsPlayerInRangeOfPoint(playerid, 3.0, cX, cY, cZ)) // Tecla » [ F| ]
    {
        if(Roubando[playerid] == 1) return SendClientMessage(playerid, 0xE31919FF, "[~] Vocк jб estб assaltando!");
        if(JaRoubou[playerid]) return SendClientMessage(playerid, -1, "Erro! Vocк jб roubou!");
        static Ladrao[MAX_PLAYER_NAME], sStr[70];
        GetPlayerName(playerid, Ladrao, sizeof(Ladrao));
        format(sStr, sizeof(sStr), "%s[%d] estб roubando a casa do [J]oker!", Ladrao, playerid);
        SendClientMessageToAll(0xE31919FF, sStr);
        format(sStr, sizeof(sStr), "Espere %d minutos para concluir o saqueamento!", TempoRoubo);
        ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 1, 0, 0, 0, 0);
        SetPlayerAttachedObject(playerid, 0, 1550, 1, 0.000000, -0.313611, 0.021003, 0.445490, 86.754409, 355.370239, 0.926815, 1.000000, 1.000000);
        SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+5);
        SendClientMessage(playerid, 0xC9C9C9FF, sStr);
        SetTimer("Roubou", 60000*TempoRoubo, false); //Nгo sei se esse й o Time a qual vc se refere....
        TempoLibera[playerid] = SetTimerEx("PodeRoubar", 120000/*2Min*/, false, "i", playerid);
        Roubando[playerid] = 1;
        JaRoubou[playerid] = true;
        TempoCronometro[playerid] = 60; //Tempo em segundos
		TimerCronometro[playerid] = SetTimerEx("Contagem", 1000, true, "i", playerid);
        return 1;
    }
    return 1;
}

forward PodeRoubar(playerid);
public PodeRoubar(playerid)
{
	JaRoubou[playerid] = false;
	SendClientMessage(playerid, -1, "Vocк jб pode roubar novamente!"); //Opcional
	return 1;
}

forward Contagem(playerid);
public Contagem(playerid)
{
	if(TempoCronometro[playerid] != 0) //Verifica se o tempo restante nгo terminou
	{
	    KillTimer(TimerCronometro[playerid]);
	}
	new StrTime[32];
	format(StrTime, sizeof(StrTime), "~y~%d", TempoCronometro[playerid]); //Personalizavйl
	GameTextForPlayer(playerid, StrTime, 950, 3);//Personalizavйl
	TempoCronometro[playerid] --;
	return 1;
}
Reply
#5

o tempo sу nгo conta fica parado um texto escrito "60" no meio da tela
Reply
#6

Por que fazer comandos com intervalo usando timers? Alйm de serem imprecisos, й uso desnecessбrio de processador.

PHP код:
new PodeRoubar[MAX_PLAYERS]; 
PHP код:
CMD:roubar(playerid)
{
    if(
PodeRoubar[playerid] <= gettime())
    {
        
PodeRoubar[playerid] = gettime() + 60;
        
// roubo
    
}
    else
    {
        static 
_str[80];
        
format(_str,80,"Vocк sу pode roubar daqui a %d segundos.",PodeRoubar[playerid] - gettime());
        
SendClientMessage(playerid,-1,_str);
    }
    return 
1;

Reply
#7

Mals rsrsrs
Confundi aqui
Troquei isso "=!" po isso "=="

No lugar de

Код:
if(TempoCronometro[playerid] != 0) //Verifica se o tempo restante nгo terminou
	{
	    KillTimer(TimerCronometro[playerid]);
	}
Mude Para


Код:
if(TempoCronometro[playerid] == 0) //Verifica se o tempo restante nгo terminou
	{
	    KillTimer(TimerCronometro[playerid]);
	}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)