01.01.2019, 02:40
Estou com alguns problemas em uns projetos que comecei no servidor, como a perseguiзгo, o jogador inicia perseguiзгo com outro usando o comando /vdp e cria uma textdraw no canto Direito inferior da tela Escrito "Perseguiзгo", e a baixo tem o tempo que a perseguiзгo dura, tem um problema nisso quando a perseguiзгo acaba a textdraw nгo some pra nenhum dos jogadores, ja tentei varias formas de tira-las. Mas nгo estou conseguindo.
PHP код:
if(strcmp(cmd, "/vdp", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsACop(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " Vocк nгo й um policial!");
return true;
}
if(OnDuty[playerid] != 1)
{
SendClientMessage(playerid, COLOR_GREY, " Vocк nгo Bateu o cartгo!");
return true;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Use: /vdp [id]");
return true;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(WantedPoints[giveplayerid] == 0)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, " Este jogador nгo estб sendo procurado!");
return true;
}
if(VozDePrisao[giveplayerid] == 1)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "[POLICIA] O jogador ja estб sendo perseguido.");
return true;
}
if(Abordagem[giveplayerid] == 1)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, " O jogador ja estб sendo Abordado.");
return true;
}
new id = strval(tmp);
if(!IsPlayerConnected(id))
{
SendClientMessage(playerid, COLOR_RED, " O ID Informado й Invalido.");
return true;
}
if(!ProxDetectorS(9.0, playerid, giveplayerid))
{
SendClientMessage(playerid, COLOR_GREY, " O Jogador estб longe de Vocк !");
return true;
}
if(GetDistanceBetweenPlayers(playerid,giveplayerid) < 9)
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode dar voz de prisao em vocк mesmo."); return 1; }
if(PlayerInfo[playerid][pMembro] != 3 && PlayerInfo[playerid][pLider] != 3)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "*Vocк deu voz de prisao a %s.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "[POLICIA] O Jogador %s[%d] esta sendo perseguido pelo policial %s[%d] por nгo se render.", giveplayer, giveplayerid, sendername, playerid);
SendClientMessageToAll(COLOR_LIGHTBLUE,string);
TempoPerseg[giveplayerid] = 300;
TempoPerseg[playerid] = 300;
AcabouPerseg = SetTimerEx("VozDePrisaoo", minutos(5), 0, "i", giveplayerid);
TempoPersegg = SetTimerEx("PrisionTime", segundos(1), 1, "ii", playerid, giveplayerid);
VozDePrisao[giveplayerid] = 1;
Abordando[playerid] = 1;
pVozdePrisao = playerid;
ppVozdePrisao = giveplayerid;
}
else if(GetDistanceBetweenPlayers(playerid,giveplayerid) < 9)
{
if(PlayerInfo[playerid][pMembro] == 3 || PlayerInfo[playerid][pLider] == 3)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "*Vocк deu voz de prisao a %s.", giveplayer);
SendClientMessage(playerid, COLOR_GREEN, string);
format(string, sizeof(string), "[EXERCITO] O Jogador %s[%d] esta sendo perseguido pelo militar %s[%d] por nгo se render.", giveplayer, giveplayerid, sendername, playerid);
SendClientMessageToAll(COLOR_GREEN,string);
TempoPersegg = SetTimerEx("PrisionTime", segundos(1), 0, "ii", playerid, giveplayerid);
AcabouPerseg = SetTimerEx("VozDePrisaoo", minutos(5), 0, "i", giveplayerid);
VozDePrisao[giveplayerid] = 1;
Abordando[playerid] = 1;
TempoPerseg[giveplayerid] = 300;
TempoPerseg[playerid] = 300;
pVozdePrisao = giveplayerid;
}
}
}
}
}
return true;
}
}
public PrisionTime(playerid, giveplayerid)
{
if(IsPlayerConnected(playerid))
{
new gStr[128];
new d_Horas1, d_Minut1, d_Segun1;
TextDrawShowForPlayer(giveplayerid, Perseg[giveplayerid]);
TextDrawShowForPlayer(playerid, Perseg[playerid]);
TempoPerseg[playerid] -= 1;
formatSeconds( TempoPerseg[playerid], d_Horas1, d_Minut1, d_Segun1 ); //formata pra horas, minutos e segundos.
if(d_Horas1 <= 0 && d_Minut1 <= 0 && d_Segun1 < 1)
{
KillTimer(TempoPersegg);
TextDrawHideForPlayer(playerid,Perseg[playerid]);
TextDrawHideForPlayer(playerid,PersegTime[playerid]);
TextDrawHideForPlayer(giveplayerid,Perseg[playerid]);
TextDrawHideForPlayer(giveplayerid,PersegTime[playerid]);
}
else if( d_Horas1 <= 0 && d_Minut1 > 0 )
{
format( gStr, sizeof( gStr ), "%d:%d", d_Minut1, d_Segun1 );
TextDrawSetString( PersegTime[playerid], gStr );
}
else if( d_Horas1 <= 0 && d_Minut1 <= 0 && d_Segun1 > 0 )
{
format( gStr, sizeof( gStr ), "0:%d", d_Segun1);
TextDrawSetString( PersegTime[playerid], gStr );
}
TextDrawShowForPlayer( playerid, Perseg[playerid] );
TextDrawShowForPlayer( playerid, PersegTime[playerid] );
TextDrawShowForPlayer( giveplayerid, Perseg[playerid] );
TextDrawShowForPlayer( giveplayerid, PersegTime[playerid] );
}
}
public VozDePrisaoo(playerid)
{
new string[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "[POLICIA] Por se passar 5 minutos o jogador %s[%d] nгo esta mais sendo perseguido.", sendername, playerid);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
VozDePrisao[playerid] = 0;
Abordando[pVozdePrisao] = 0;
KillTimer(AcabouPerseg);
KillTimer(TempoPersegg);
TextDrawHideForPlayer(playerid,Perseg[playerid]);
TextDrawHideForPlayer(playerid,PersegTime[playerid]);
}