Alsooo, ich hab mit 0.3c und AttachObjectToVehicle Kanonen aufs Car gebastelt. Keine Bugs soweit, aber darum geht es ja nicht. Ich will nun, wenn der Spieler eine bestimmte Taste drückt, eine Explosion kommt, funktioniert auch, allerdings sollte die Explosion vor dem Spieler sein, nicht irgendwo in der nähe, oder hinter ihm. Wie finde ich nun raus, wo die Explosion sein muss?
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new bigcargun;
for(new i = 0; i < sizeof(Infernus); i++)//Nimmt die Anzahl die im new oben steht und gibt sie als i aus
{
if(GetPlayerVehicleID(playerid) == Infernus[i])
{
bigcargun = CreateObject(3884, 0, 0, 0, 0, 0, 0);
AttachObjectToVehicle(bigcargun, GetPlayerVehicleID(playerid), 0, 0, 0+0.18, 0, 0, 0);
}
}
for(new i = 0; i < sizeof(Tahoma); i++)
{
if(GetPlayerVehicleID(playerid) == Tahoma[i]){
bigcargun = CreateObject(3884, 0, 0, 0, 0, 0, 0);
AttachObjectToVehicle(bigcargun, GetPlayerVehicleID(playerid), 0, 0-0.5, 0+0.35, 0, 0, 0);
}
}
for(new i = 0; i < sizeof(Slamvan); i++)
{
if(GetPlayerVehicleID(playerid) == Slamvan[i]){
bigcargun = CreateObject(3884, 0, 0, 0, 0, 0, 0);
AttachObjectToVehicle(bigcargun, GetPlayerVehicleID(playerid), 0, 0-1.5, 0-0.2, 0, 0, 0);
}
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys & KEY_FIRE)
{
new Float:x, Float:y, Float:z;
for(new i = 0; i < sizeof(Slamvan); i++)
{
if(GetPlayerVehicleID(playerid) == Slamvan[i]){
GetPlayerPos(playerid, x, y, z);
CreateExplosion(x, y+50, z, 6, 20);
}
}
}
return 1;
}