Frage

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
  • Function Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    }

  • Nein das ist ein Stock xD
    Du kannst das ganz unten ins Script tun....
    Du bekommst dadurch nen neuen "Befehl"
    mit dem du die entferntheit von 2 Spielern messen kannst.... zb:
    if(GetDistanceBetweenPlayers(playerid,giveplayerid) < 8)
    {
    //ect....
    }
    L.G.
    heyho ;)

  • Leute, es hilft auch nichts, wenn Ihr ihm die Funktion nicht erklärt.


    Und wenn du es ihm per TV machst, lernt er es ebenfalls nicht.


    Zu der o.G. Funktion:
    Float: steht für den Rückgabewert. Dieser ist eine Fließkommazahl, um genau zu sein, die Differenz zwischen 2 Spielern.
    Als Parameter sind oben p1 und p2 definiert. Diese gibt man später bei der Verwendung der Funktion an:
    GetDistanceBetweenPlayers(p1,p2)


    Dabei musst du "p1" und "p2" natürlich durch die playerID's ersetzen (In der Abfrage, NICHT in der Funktion selbst!)
    In der Funktion wird folgendes gemacht:


    Er fragt, ob beide SpielerIDs verbunden sind. Wenn nein, returnt er eine -1.00, also einen Fehler.
    Wenn beide Spieler verbun den sind, speichert der die Position (x,y,z-Koordinaten) in den oben definierten Float Variablen.
    Mittels der Berechnung, die meine Mathematikkentnisse allerdings nicht zu verstehen vermögen, berechnet die Funktion nun die Distanz und returnt diese als Float.


    Bedeutet: Mit GetDistanceBetweenPlayers(p1,p2) hast Du nun die Distanz zwischen den Spielern.