Hallo zusammen!
Ich habe mir folgendes Gedacht:
Wenn ich die Taste KEY_FIRE (o. ä.) drücke, soll eine Rackete (Objekt #1636, eine kleine Bombe) von mir aus 40m zu dem Punkt X (x,y) fliegen.
Geschwindigkeit: 60 Einheiten oder wie auch immer .
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if( ( newkeys & KEY_FIRE ) && IsPlayerInAnyVehicle(playerid))
{
new Float:Angle;
new VID=GetPlayerVehicleID(playerid);
GetVehicleZAngle(VID, Angle); // Richtung abfragen
// ACHTUNG: Die Richtungsabfrage gibt einen "mathematisch positiv orientierten Wert (pfui..)" zurück. d.h. Er beginnt nicht bei 0
// und wandert RECHTSRUM zu 90*, sondern LINKSRUM. Also gegen den Uhrzeigersinn. Ich muss ihn erst umformen (damit ich ihn mit
// floatsin , floatcos nutzen kann...
new Float:Winkel;
if(Angle<0) Winkel=Angle+Angle; // Der Betrag halt
Winkel=360-Angle; // Umkehren
new Float:posX, Float:posY, Float:posZ;
GetPlayerPos(playerid,posX, posY, posZ); // Wo isn der
Exotec[playerid]=CreateObject(1636,posX,posY,posZ+2,0,90,Angle); // Rakete genau 3Einheiten über ihm erzeugen ( Gleiche Blickrichtung
// Das funktioniert(e) übrigends :D
new Float:newPOSX, Float:newPOSY; // Wo solln das Teil hin
newPOSX=(floatcos(Angle)*40);
newPOSY=(floatsin(Angle)*40); // Ich hatte das noch nicht in der Schule. Darum kann hier so einiges falsch sein >< (Kommt erst in 12)
MoveObject(Exotec[playerid], newPOSX, newPOSY, posZ,60); // Dorthinbewegen [später bei OnObjectMoved.. explodieren lassen...]
}
return 1;
}
PS: Einrückung is Katherstrophe ich weiss
Cmdfreak;