Drive by COPS - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Română/Romanian (
https://sampforum.blast.hk/forumdisplay.php?fid=40)
+---- Thread: Drive by COPS (
/showthread.php?tid=525979)
Drive by COPS -
jamal1992 - 15.07.2014
ARe cineva idee cum asa putea face un sistem anti drive by gen: Cand cel care trage este in masina si cel in care se trage tot in masina iar masina ajunge la 550 viata, sa-l blocheze pt cateva secunde si sa-l avertizeze de drive by. Vreau sa fac asta pentru politisti pentru a reduce reclamatiile, certurile pe tema asta. Politisti au voie sa traga doar la roti in urmarire si de multe ori se incalca asta. Am incercat sa fac asta:
Code:
PUBLIC: OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost)
{
if(GetPlayerState(Shooter) == 3)
{
new Float:vhealth;
new veh = GetPlayerVehicleID(Target);
if(GetVehicleHealth(veh, vhealth) <= 550)
{
SetVehicleHealth(veh, 550);
TogglePlayerControllable(Shooter, 0);
SetTimerEx("ResetFreeze", 10000, false, "i", Shooter);
SendClientMessage(Shooter,COLOR_RED,"Drive-By: You`re freeze for 10 seconds !");
}
}
return 1;
}
Codul de mai sus functioneaza doar cand playerul in care se trage este lovit si masina are <= 550 viata, partea proasta este ca nu actioneaza daca masina are viata <= 550, ci doar daca lovesti si playerul din masina.
Re: Drive by COPS -
TheCartman - 15.07.2014
Idea ta e destul de drăguță, doar că are cвteva probleme:
1. Nu numai pasagerul poate trage, și șoferul poate dacă se uita stanga/dreapta sau dacă este pe motor.
2. Dacă tragi la roți, tot iei dmg mașinii respective.
Оncearcă așa:
Code:
new Float:vhealth, Float:phealth;
new veh = GetPlayerVehicleID(Target);
GetVehicleHealth(veh, vhealth);
GetPlayerHealth(Traget, phealth);
if(vhealth <= 550 && IsPlayerConnected(shooter) && IsPlayerConnecter(Traget) && phealth != 0)
{
SetVehicleHealth(veh, 550);
TogglePlayerControllable(Shooter, 0);
SetTimerEx("ResetFreeze", 10000, false, "i", Shooter);
SendClientMessage(Shooter,COLOR_RED,"Drive-By: You`re freeze for 10 seconds !");
}
Am оncercat să includ și jucătorul оn acea condiție deoarece funcția se referă la jucător, nu la mașină. Оn plus, era greșită condiția.
Return Values:
1 - success
0 - failure (i.e. player not connected).
The player's health is stored in the specified variable.
Sursa:
https://sampwiki.blast.hk/wiki/GetPlayerHealth
Acea funcție returna mereu 1, iar 1 este mereu mai mic decвt 550. Deci orice glonț dădeai, mereu luai freeze.
Re: Drive by COPS -
jamal1992 - 17.07.2014
Nu functioneaza man ...