Hey,
Ich möchte das wenn man Stirbt und ein Cop ist der nähe des Toten ist
Das er ihn durch seinen Tod verhaftet
Wie mache ich das?
Mit freundlichen Grüßen
Abfragen ob beim Tod ein Polizist in der Nähe ist
- Mr.Undercover
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Hallo,
unter OnPlayerDeath setzt du folgende Zeilen.
new Float:x, Float:y, Float:z;GetPlayerPos(playerid, x, y, z);
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i) && IsACop(i) && IsPlayerInRangeOfPoint(i, 50.0, x, y, z))
{
// Spieler ist Cop und in der Nähe (Eventuell eine Nachricht senden?)
}
} -
Dann IsACop
stock IsACop()
{
//Alle COP Fraktionen
} -
Hallo,
IsACop ist soweit ich weis ein GodFather Stock. Da ich mich noch nie mit GodFather beschäftigt habe. Ich weis nicht ob du es so wie ich machst (Tag der Fraktion als PVar abspeichern und die ID) oder ob du es nach GodFather Like machst und nur die Fraktions ID per PVar abspeicherst.
Damit ich dir den Stock bauen kann, muss ich wissen, wie du überprüfst, in welche Fraktion der Spieler ist.
-
stock IsACop()
{
if(SpielerInfo[playerid][pFrak] == 1)
if(SpielerInfo[playerid][pFrak] == 2)
if(SpielerInfo[playerid][pFrak] == 3)
if(SpielerInfo[playerid][pFrak] == 4)
}so habe ich den gemacht
-
Hallo,
so wäre es richtig:
stock IsACop(playerid)
{
if(SpielerInfo[playerid][pFrak] == 1) return 1;
if(SpielerInfo[playerid][pFrak] == 2) return 1;
if(SpielerInfo[playerid][pFrak] == 3) return 1;
if(SpielerInfo[playerid][pFrak] == 4) return 1;
return 0;
} -
Danke
Noch eine frage
Wie mache ich es das wenn er stribt abgefragt wird
Ob er näher am LSPD/SFPD/LVPD ist?? -
-
Nein,
Ich möchte wissen wie es im verhältnis steht
Also wenn er am SF BH stirbt soll er ins SFPD
Wenn er am LS KH stirbt soll er ins LSPD -
Mit dieserFunktion.
Was labberst du da? IsPlayerInRangeOfPoint macht einen Radius (einen Kreis)
Du kannst es mit IsPlayerInArea machen, musst halt darauf alles anpassen. -
Wie arbeitet man mit
IsPlayerInArea -
Hier ist ein Tutorial zur Funktion.
http://forum.sa-mp.com/showthread.php?t=222283
Aber du brauchst die beiden Eckpunkte. Diese müssen natürlich relativ zum toten Spieler sein, damit dieser praktisch den Schnittpunkt beider Flächendiagonalen bildet.
-
http://wiki.sa-mp.com/wiki/GetPlayerDistanceFromPoint
Ist diese Funktion vllt besser? -
bezieht sich wieder auf einen Kreis. Wobei das eigentlich auch nicht schlimm ist, da man so immer den gleichen Radius hat. Bei einer Area wäre das nicht so.
-
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i) && IsACop(i) && IsPlayerInRangeOfPoint(i, 50.0, x, y, z))
{
SendClientMessage(i,GELB,"Gut gemacht");
}
}Es kommt keine PN Warum nicht?
-
Eine der Bedingungen wird nicht true sein.
-
Ich teste es mit mir selber kann es daran liegen?
-
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i) && SpielerInfo[i][pFraktion] == 1 && IsPlayerInRangeOfPoint(i, 50.0, x, y, z))
{
SendClientMessage(i,GELB,"Gut gemacht");
}
}
Probiere es am besten so, SpielerInfo natürlich auf dein Script abändern -
Gibst du dir als Behördler Wanted und stirbst dann?
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i) && SpielerInfo[i][pFraktion] == 1 && IsPlayerInRangeOfPoint(i, 50.0, x, y, z))
{
SendClientMessage(i,GELB,"Gut gemacht");
}
}Probiere es am besten so, SpielerInfo natürlich auf dein Script abändern
Öhm und wieso? Er hat doch oben den Stock IsACop richtig gezeigt.
-
Eventuell, da die Entfernung von dir zu dir 0 ist.
Kann sein dass da IsPlayerInRangeOfPoint false returnt