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);
}