DestroyObject

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
  • Hey,


    meine Flagge wird normal erstellt,


    doch sie wird nicht zerstört, wenn ich es so will.


    Sie wird unter OnplayerPickupPickup erstellt, und wird in einem Timer normal zerstört ...


    guckt mal:



    Flaggenobject1 = CreateObject(2914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 200.0);
    AttachObjectToPlayer(Flaggenobject1, playerid, 0.0, -0.07, 0.1, 0.0, 0.0, 270);


    Zerstörung (funkt net):


    DestroyObject(Flaggenobject1);


    LG

  • Function Baustelle2()
    {
    if(baustelle2 == false)
    {
    SendClientMessageToAll(COLOR_RED," ______________ Baustelle ______________");
    SendClientMessageToAll(COLOR_RED," Warnung: Es ist eine Baustelle am Busbahnhof!");
    SendClientMessageToAll(COLOR_RED," Sichern sie den Einsatzort!");
    BObject2[0] = CreateObject(978, 1047.9000244141, -2020.8000488281, 13, 0, 0, 83.25);
    baustelle2 = true;
    }
    else
    {
    SendClientMessageToAll(COLOR_RED," ______________ Baustelle ______________");
    SendClientMessageToAll(COLOR_RED," Warnung: Die Baustelle am Busbahnhof wurde abgerissen!");
    SendClientMessageToAll(COLOR_RED," Man kann nun wieder die Straße befahren...");
    DestroyObject(BObject2[0]);
    baustelle2 = false;
    }


    }


    Versuchs mal so...

  • Chris.:



    Das unter OnPlayerPickupPickup (so werden se ersteltl, das funkt)


    if(pickupid == FlaggenPickup1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(SpielerInfo[playerid][pFraktion] == 2 && SpielerHatFlagge1[i] != 1)
    {
    Flaggenobject1 = CreateObject(2914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 200.0);
    AttachObjectToPlayer(Flaggenobject1, playerid, 0.0, -0.07, 0.1, 0.0, 0.0, 270);
    SpielerHatFlagge1[playerid] = 1;
    }
    }

    if(SpielerInfo[playerid][pFraktion] == 1 && SpielerHatFlagge2[playerid] == 1)
    {
    SendClientMessage(playerid, FARBE_ORANGE, "Bleib hier 30 Sekunden stehen, um den Punkt zu bekommen!");
    FlaggenTimer2 = SetTimerEx("FlaggenEndeTimer2", 1000*30, false, "d", playerid);
    CheckFlag2 = SetTimerEx("FlaggenCheck2", 1000, true, "d" , playerid);
    SpielerHatFlagge2[playerid] = 2;
    }
    }

    if(pickupid == FlaggenPickup2)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(SpielerInfo[playerid][pFraktion] == 1 && SpielerHatFlagge2[i] != 1)
    {
    Flaggenobject2 = CreateObject(2914, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 200.0);
    AttachObjectToPlayer(Flaggenobject2, playerid, 0.0, -0.07, 0.1, 0.0, 0.0, 270);
    SpielerHatFlagge2[playerid] = 1;
    }
    }

    if(SpielerInfo[playerid][pFraktion] == 2 && SpielerHatFlagge1[playerid] == 1)
    {
    SendClientMessage(playerid, FARBE_ORANGE, "Bleib hier 30 Sekunden stehen, um den Punkt zu bekommen!");
    FlaggenTimer1 = SetTimerEx("FlaggenEndeTimer1", 1000*30, false, "d", playerid);
    CheckFlag1 = SetTimerEx("FlaggenCheck1", 1000, true, "d" , playerid);
    SpielerHatFlagge1[playerid] = 2;
    }
    }



    Das die Timer: (Ich bekomme zwar die Nachricht, aber die Flagge wird nicht zerstört)



    forward FlaggenCheck1(playerid);
    public FlaggenCheck1(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1846.7351,-1816.4485,3.9844))
    {
    KillTimer(CheckFlag1);
    KillTimer(FlaggenTimer1);
    DestroyObject(Flaggenobject1);
    DestroyObject(Flaggenobject2);
    SpielerHatFlagge1[playerid] = 0;
    SendClientMessage(playerid, FARBE_ROT, "Du hast dich zuweit vom Abgabe Punkt entfernt!");
    }
    return 1;
    }


    forward FlaggenCheck2(playerid);
    public FlaggenCheck2(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1950.7317,-1837.9452,7.0781))
    {
    KillTimer(CheckFlag2);
    KillTimer(FlaggenTimer2);
    DestroyObject(Flaggenobject1);
    DestroyObject(Flaggenobject2);
    SpielerHatFlagge2[playerid] = 0;
    SendClientMessage(playerid, FARBE_ROT, "Du hast dich zuweit vom Abgabe Punkt entfernt!");
    }
    return 1;
    }


    Is warscheinlich umständlich gescriptet, aber ist mir am schnellsten so in eingefallen, wenn Fragen bestehen, was was bedeutet, her damit. :)


    LG

  • hier mach ma für diese Funktionen

    FlaggenTimer1
    CheckFlag1
    Flaggenobject1
    Flaggenobject2
    ne MAX_PLAYER deklairung
    es kann sein das es daran liegt, denn wenn 2 player darauf gehen, wird jedesmal eins erstellt und wenn du raus gehst, dann bleibt für player XX das objekt da
    daher kann es zu problemem führen


    //e
    oder debugge das mal einfach mit ner SCM

    All in all it's just another brick in the wall