GetClosestPlayer + SetPlayerFacingAngleToPoint

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,


    ich versuche gerade folgendes: Wenn man einen CMD eingibt, und ein toter Spieler (if(IsPlayerDead[playerid] == true) in einem Umkreis von 1.0m ist (GetClosestPlayer), soll der Spieler sich zum toten Spieler drehen (SetPlayerFacingAngleToPlayer).
    Zunächst einmal zu den Funktionen: Sind die fehlerfrei?



    stock GetClosestPlayer(playerid, Float:range)
    {
    new ID = -1,
    Float:distance = 999999.0;
    Float:px,
    Float:py,
    Float:pz;
    GetPlayerPos(playerid, px, py, pz);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(i != playerid)
    {
    new Float:tempdistance,
    Float:tx,
    Float:ty,
    Float:tz;
    GetPlayerPos(i, tx, ty, tz);
    tempdistance = GetDistanceBetweenPlayers(playerid, i);
    if(tempdistance < distance && tempdistance <= range && tempdistance != -1)
    {
    distance = tempdistance;
    ID = i;
    }
    }
    }
    }
    return ID;
    }


    stock SetPlayerFacingAngleToPlayer(playerid, targetid)
    {
    new Float:p[3], t[3];
    GetPlayerPos(playerid, p[0], p[1], p[2]);
    GetPlayerPos(targetid, t[0], t[1], t[2]);
    new Float:a = 180.0-atan2(p[0]-t[0], p[1]-t[1]);
    SetPlayerFacingAngle(playerid, a);
    }


    Ich hab mir am Ende dann gedacht, dass so etwas ca. dabei rauskommt...
    if(IsPlayerDead[playerid])
    {
    new closestID = GetClosestPlayer(playerid, 1.0);
    SetPlayerFacingAngleToPlayer(playerid, closestID);
    }