Ist es möglich Objekte zerstörbar zu machen? (Mit allen Waffen)
Kann ich irgendwie rausfinden, auf welches Objekt ein Spieler direkt zielt?
Danke im Voraus.
Gruß,
Neo.
Alles anzeigen
Ich weiss aber nicht ob es so funktioniert.:
#define spawn 0.0 0.0 0.0 //spawnt das objekt auf x,y,z
new dyn=CreateDynamicObject(2942, spawn, 0.0000, 0.0000, 0.0000);//erstellt objekt 2942=ATM
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(HOLDING(KEY_HANDBRAKE))//wenn er die rechte Maustaste gedrückt hält
{
if(PlayerFaces(playerid, spawn, 1.0))//überprüft ob er aufs objekt guckt
{
DestroyDynamicObject(dyn);//zerstört objekt
}
}
return 1;
}
PlayerFaces && HOLDING:
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ, Float:ObjX, Float:ObjY, Float:ObjZ, Float:FrX, Float:FrY, Float:FrZ) {
new Float:TGTDistance;
TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ));
new Float:tmpX, Float:tmpY, Float:tmpZ;
tmpX = FrX * TGTDistance + CamX;
tmpY = FrY * TGTDistance + CamY;
tmpZ = FrZ * TGTDistance + CamZ;
return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
}
stock PlayerFaces(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 >= DistanceCameraTargetToLocation(cx, cy, cz, x, y, z, fx, fy, fz));
}