Hallo,
kann man bei einem bestimmten Spieler (nur einem) machen, dass alle Spieler, die in 10 Meter umkreis von dem Spieler entfernt sind auf der Mini-Map angezeigt werden?
Bei einem Spieler alle Spieler in 10 Meter umkreis auf Minimap anzeigen lassen?
- Tom Sunder
- 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
-
-
public OnPlayerUpdate(playerid)
{
new Float:X[MAX_PLAYERS], Float:Y[MAX_PLAYERS], Float:Z[MAX_PLAYERS];
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
GetPlayerPos(i, X[i], Y[i], Z[i]);
if(IsPlayerInRangeOfPoint(playerid, 10.0, X[i], Y[i], Z[i])) {
SetPlayerMarkerForPlayer(playerid, i, 0xFF0000FF);
} else SetPlayerMarkerForPlayer(playerid, i, 0x00000000);
}
}
return 1;
}nicht getestet, sollte aber gehen. (Vielleicht ist OnPlayerUpdate dafür nicht optimal, probier es aus)
-
-eine Schleife durch alle Spieler
-mit IsPlayerInRangeOfPoint (oder GetDistanceBetweenPlayers) abfragen
-Wenn <10 http://wiki.sa-mp.com/wiki/SetPlayerMarkerForPlayer -
public OnPlayerUpdate(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
new Float:X[MAX_PLAYERS], Float:Y[MAX_PLAYERS], Float:Z[MAX_PLAYERS];
GetPlayerPos(i, X[i], Y[i], Z[i]);
if(IsPlayerInRangeOfPoint(playerid, 10.0, X[i], Y[i], Z[i])) {
SetPlayerMarkerForPlayer(playerid, i, 0xFF0000FF);
} else SetPlayerMarkerForPlayer(playerid, i, 0x00000000);
}
}
return 1;
}nicht getestet, sollte aber gehen. (Vielleicht ist OnPlayerUpdate dafür nicht optimal, probier es aus)
ok ich probiers aber erst nacher aus weil ich jetzt keine zeit hab -
Lass dir Zeit, melde dich einfach wenn was nicht klappt. (einfach - @m4a_X: klappt nicht)
-
@m4a_X:
Jetzt kann ich es testen
Aber wie kann ich dann einstellen, dass es für den bestimmten Spieler gestartet werden soll? (Kenn mcih mit OnPlayerUpdate net aus da ich immer ne Schleife dafür benutz)H4rd_B4se:
Die ersten zwei punkte wusste ich aber ich wusste net wie man den nur für einen Spieler makiert -
Wie meinst du das?
SetPlayerMarkerForPlayer(playerid, i, 0xFF0000FF);
Das heißt "
- Für die playerid werden alle "i" Spieler also alle in den Umkreis von 10.0 Meter in der Farbe 0xFF0000FF angezeigt.
- Die else macht die wieder unsichtbar die außerhalb von 10.0 Meter sind."
-
-eine Schleife durch alle Spieler
-mit IsPlayerInRangeOfPoint (oder GetDistanceBetweenPlayers) abfragen
-Wenn <10 http://wiki.sa-mp.com/wiki/SetPlayerMarkerForPlayerWie meinst du das?
SetPlayerMarkerForPlayer(playerid, i, 0xFF0000FF);
Das heißt "
- Für die playerid werden alle "i" Spieler also alle in den Umkreis von 10.0 Meter in der Farbe 0xFF0000FF angezeigt.
- Die else macht die wieder unsichtbar die außerhalb von 10.0 Meter sind."
das Obere wo an dich ging:
Wie kann man das in OnPlayerUpdate starten (wie kann man die playerid "einstellen"?)? -
Willst du eine Bedingung einbauen, dass das ganze nur für bestimme Spieler funktioniert?
Einfach eine ganz normale IF-Abfrage. Anstatt playerid musst du eben die Variable aus der Schleife nehmen.
-
OnPlayerUpdate ist bereits laufend, es Updatet immer wenn der Spieler Updatet, deshalb "On PLAYER Update"
-
-
OnPlayerUpdate ist bereits laufend, es Updatet immer wenn der Spieler Updatet, deshalb "On PLAYER Update"
Oh ok dann nehm ich lieber Schleife, weil ich will das es nur bei einem Spieler angezeigt wird... -
Vielleicht musst du auch playerid mit i ersetzen und umgedreht das selbe.
Bin mir da nie sicher -
breadfish.de
Hat das Thema geschlossen.