03/07/2022 12:35 
	
	
	
		Galera, criei um sisteminha de remover um objeto do mapa, e depois de um tempo ele é recriado automaticamente.
Está praticamente tudo funcionando perfeitamente. O objeto (cone) começa no mapa, e se algum player encostar nele e digitar /removercone, começa a contagem até 60 e vai mostrando na tela, e qnd termina o objeto é destruido, aparece a mensagem: "%s removeu um cone.", dps de um tempo ele automaticamente é recriado e avisa que foi recriado: "%s o cone da DP foi recriado.".
porém quando ele é recriado, se o player for novamente fazer a remoção, assim que ele é removido começa a floodar a mensagem: "%s removeu um cone." e além do flood, ele fica removendo varias vezes o objeto e não permite que o objeto seja recriado novamente.
Alguém pode ajudar a perceber onde está o erro?
	
	
	
	
Está praticamente tudo funcionando perfeitamente. O objeto (cone) começa no mapa, e se algum player encostar nele e digitar /removercone, começa a contagem até 60 e vai mostrando na tela, e qnd termina o objeto é destruido, aparece a mensagem: "%s removeu um cone.", dps de um tempo ele automaticamente é recriado e avisa que foi recriado: "%s o cone da DP foi recriado.".
porém quando ele é recriado, se o player for novamente fazer a remoção, assim que ele é removido começa a floodar a mensagem: "%s removeu um cone." e além do flood, ele fica removendo varias vezes o objeto e não permite que o objeto seja recriado novamente.
Alguém pode ajudar a perceber onde está o erro?
Código:
dcmd_removerbrc(playerid, params[])
{
    #pragma unused params
    if(RmvCone == true) return SendClientMessage(playerid,0xF23C3CFF, "ERRO: {FFFFFF}Esse cone já está sendo removido.");
    if(RemovidoCone == true) return SendClientMessage(playerid,0xF23C3CFF, "ERRO: {FFFFFF}Esse cone já foi removido.");
    if(PlayerToPoint(0.7, playerid, 849.29999,-928.79999,55.9))
    {
        ContagemCone[playerid] = SetTimerEx("ConeObjeto", 1000,1, "i", playerid);
        ApplyAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 4.0, 1, 0, 0, 1, 0);
        RmvCone = true;
        new string[128];
        format(string, sizeof(string), "%s está removendo um cone.", getPName(playerid));
        MensagemLocal(playerid, 0xF23C3CFF, string, 50);
    }
    else SendClientMessage(playerid, 0xF23C3CFF, "ERRO: {FFFFFF}Você não está próximo a um cone!");
    return 1;
}
forward ConeObjeto(playerid);
public ConeObjeto(playerid)
{
    new string[128];
     if(GetPVarInt(playerid,"TempoConeObjeto") == 60)
    {
        format(string, sizeof(string), "%s removeu um cone.", getPName(playerid));
        MensagemLocal(playerid, 0x96D742FF, string, 50);
        RmvCone = false;
        RemovidoCone = true;
        ClearAnimations(playerid);
        DestroyDynamicObject(Cone1);
        Delete3DTextLabel(Cone1TEXT);
        KillTimer(ContagemCone[GetPVarInt(playerid,"Cone")]);
        ContagemCone[GetPVarInt(playerid,"Cone")] = 0;
        SetPVarInt(playerid,"Cone",-1);
        SetPVarInt(playerid,"TempoConeObjeto",0);
        SetTimerEx("RefazerCone", 10000, 0, "i", playerid); 
        return 1;
    }
    else
    {
          SetPVarInt(playerid,"TempoConeObjeto",GetPVarInt(playerid,"TempoConeObjeto")+1);
         format(string,sizeof(string),"~w~%i / ~r~60", GetPVarInt(playerid,"TempoConeObjeto"));
          GameTextForPlayer(playerid, string, 2500, 3);
      }
       return 1;
}
forward RefazerCone(playerid);
public RefazerCone(playerid)
{
    new string[128];
    format(string, sizeof(string), "%s o cone da DP foi recriado.", getPName(playerid));
    MensagemLocal(playerid, 0x96D742FF, string, 50);
    Cone1 = CreateDynamicObject(2960, 849.29999, -928.79999, 55.9, 0, 98.994, 307.987);
    Cone1TEXT = Create3DTextLabel("Para remover este cone\nuse '/removercone'",0xE3E3E3FF,849.29999, -928.79999, 56.9,25.0,0);
    RemovidoCone = false;
       return 1;
}
	   
	
