04.10.2018, 22:03
Eu gostaria de ajuda em um sistema de abordagem, o problema seria o seguinte o policial aborda o procurado, quando o procurado se rende era para enviar uma mensagem ao policia dizendo "O procurado se Rendeu Vocк tem 30 segundos para autua-lo".
OBS: Eu ja havia criado um tуpico de ajuda, sobre o sistema de abordagem, me ajudaram a arrumar um dos problemas, mas ficou outro sem respostas.
Tуpico: https://sampforum.blast.hk/showthread.php?tid=659260
PHP код:
if(strcmp(cmd, "/abordar", 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: /abordar [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(Abordagem[giveplayerid] == 1)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, " O jogador ja estб sendo Abordado.");
return true;
}
if(VozDePrisao[giveplayerid] == 1)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, " O jogador jб sendo perseguido.");
return true;
}
if (ProxDetectorS(5.0, playerid, giveplayerid))
{
if(PlayerInfo[playerid][pMembro] != 3 || PlayerInfo[playerid][pLider] != 3)
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode abordar se abordar."); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "[POLICIA] O jogador %s tem 15s para se render.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "[POLICIA] Se o jogador nгo se render inicie uma perseguiзгo com o comando /vdp [id]");
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Vocк foi abordado pelo policial %s[%d] e tem 15s para se render.", sendername, playerid);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
GameTextForPlayer(playerid, " ~r~Policia, ~b~Pare ", 5000, 3);
format(string, sizeof(string), " Digite /render para se render.", sendername, playerid);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
Ttimer = SetTimerEx("Abordagemm", 15000, 0, "ii", playerid, giveplayerid);
Abordagem[giveplayerid] = 1;
}
else if(ProxDetectorS(5.0, playerid, giveplayerid))
{
if(PlayerInfo[playerid][pMembro] == 3 || PlayerInfo[playerid][pLider] == 3)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode abordar se abordar."); return 1; }
format(string, sizeof(string), "[EXERCITO] O jogador %s tem 15s para se render.", giveplayer);
SendClientMessage(playerid, COLOR_GREEN, string);
format(string, sizeof(string), "[EXERCITO] Se o jogador nгo se render inicie uma perseguiзгo com o comando /vdp [id]");
SendClientMessage(playerid, COLOR_GREEN, string);
format(string, sizeof(string), "Vocк foi abordado pelo militar %s[%d] e tem 15s para se render.", sendername, playerid);
SendClientMessage(giveplayerid, COLOR_GREEN, string);
GameTextForPlayer(playerid, " ~r~Exercito, ~b~Pare ", 5000, 3);
format(string, sizeof(string), " Digite /render para se render.", sendername, playerid);
SendClientMessage(giveplayerid, COLOR_GREEN, string);
Ttimer = SetTimerEx("Abordagemm", 15000, 0, "ii", playerid, giveplayerid);
Abordagem[giveplayerid] = 1;
return true;
}
else
{
SendClientMessage(playerid, COLOR_GREEN, "Chegue Mais perto.");
return true;
}
}
}
}
}
}
}
PHP код:
if(strcmp(cmd, "/render", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(Abordagem[playerid] == 0)
{
SendClientMessage(playerid, COLOR_ORANGE, " Vocк nгo esta sendo abordado.");
return true;
}
if(Rendido[playerid] == 1)
{
SendClientMessage(playerid, COLOR_ORANGE, " Vocк jб se rendeu, aguarde o policia fazer a autuaзгo.");
return true;
}
if(Abordagem[playerid] == 1)
{
TogglePlayerControllable(playerid, 0);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_HANDSUP);
Rendido[playerid] = 1;
SetTimerEx("Rendidoo", segundos(30), 0, "ii", playerid, giveplayerid);
KillTimer(Ttimer);
return true;
}
}
}
Tуpico: https://sampforum.blast.hk/showthread.php?tid=659260