OnPlayerWeaponShot greift nicht bei Spieler oder Fahrzeug

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • n'Abend, habe folgendes Problem:
    Ich möchte sogenannte Explosionsmunition ermöglichen indem ich einfach eine Explosion erstelle.
    Das klappt auch alles soweit, aber leider explodiert es nicht, wenn ich auf einen Spieler oder ein Fahrzeug schieße.
    Lediglich bei einem Objekt wird die Explosion erstellt.
    Weiß jemand wie ich das Problem beheben kann?



    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
    if(ExplosionsMunition[playerid] == 1) { CreateExplosion(fX, fY, fZ, 12, 10.0); }
    return 1;
    }

    Habe schon unter OnPlayerGiveDamage das Problem für die Spieler, aber erstens hätte ich das viel lieber alles unter einem Callback und zweitens werden da die Fahrzeuge nicht mit einbezogen.
    Bedanke mich für schnelle Antworten.

  • Wenn du auf einen Spieler oder ein Auto schießt, wird auch nicht die Koordinate angegeben wo der Spieler/das Auto ist, sondern an welcher Position du den Spieler getroffen hast.


    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
    if(ExplosionsMunition[playerid] == 1) {
    new Float:fxX,Float:fyY,Float:fzZ;
    if(hittype == 0)
    {
    if(fX == 0 && fY == 0 && fZ == 0)return 1;//Wenn er in die Luft schießt
    CreateExplosion(fX, fY, fZ, 12, 10.0);
    }
    else if(hittype == 1)//Spieler
    {
    GetPlayerPos(hitid,fxX,fyY,fzZ);
    CreateExplosion(fxX, fyY, fzZ, 12, 10.0);
    }
    else if(hittype == 2)//Auto
    {
    GetVehiclePos(hitid,fxX,fyY,fzZ);
    CreateExplosion(fxX, fyY, fzZ, 12, 10.0);
    }
    else if(hittype == 3)//Objekt
    {
    GetObjectPos(hitid,fxX,fyY,fzZ);
    CreateExplosion(fxX, fyY, fzZ, 12, 10.0);
    }
    else if(hittype == 4)//Spielerobjekt
    {
    GetPlayerObjectPos(playerid,hitid,fxX,fyY,fzZ);
    CreateExplosion(fxX, fyY, fzZ, 12, 10.0);
    }
    }
    return 1;
    }


    Bei Spielerobjekt musst du aufpassen. Das geht hier nur so, wenn das Objekt auch dem Spieler gehört der schießt. (Bei Streamern ist das so)


    http://wiki.sa-mp.com/wiki/OnPlayerWeaponShot
    "- Others: the fX, fY and fZ are offsets relative to the hitid. "