Hallo Leute,
Ich habe mal versucht es hinzubekommen das man auf Bots schiesen kann, jedoch scheitere ich schon an den Anfängen...
Ich habe aus einem Headshot-Script die folgenden Funktionen genommen:
stock Float:ErmittleDistanzZumPunkt(Float:CamX, Float:CamY, Float:CamZ, Float:PunktX, Float:PunktY, Float:PunktZ, Float:FrontX, Float:FrontY, Float:FrontZ) {
new Float:Distanz;
Distanz= floatsqroot((CamX - PunktX) * (CamX - PunktX) + (CamY - PunktY) * (CamY - PunktY) + (CamZ - PunktZ) * (CamZ - PunktZ));
new Float:tmpX, Float:tmpY, Float:tmpZ;
tmpX = FrontX * Distanz+ CamX;
tmpY = FrontY * Distanz+ CamY;
tmpZ = FrontZ * Distanz+ CamZ;
return floatsqroot((tmpX - PunktX) * (tmpX - PunktX) + (tmpY - PunktY) * (tmpY - PunktY) + (tmpZ - PunktZ) * (tmpZ - PunktZ));
}
stock ZieltSpielerAufPunkt(playerid, Float:x, Float:y, Float:z, Float:radius)
{
new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
GetPlayerCameraPos(playerid, cx, cy, cz);
GetPlayerCameraFrontVector(playerid, fx, fy, fz);
return (radius >= ErmittleDistanzZumPunkt(cx, cy, cz, x, y, z, fx, fy, fz));
}
Wenn ich diese jedoch benutze, dann reicht es schon,wenn man den Punkt nur ganz knapp im Kamera Winkel hat um diesen "Anzuzielen".
Kann man das irgendwie genauer machen ?
Ich habe auch mit dem radius herumgespielt:
1.0 ist so wie ich es oben beschrieben habe,
und kleiner als 1.0 dann jedoch liegt das Ziel nicht mehr auf dem gewünschten punkt und verzieht sich komisch nach rechts-oben
hoffentlich habt ihr mein Problem verstanden und könnt mir helfen
mfg
Growen