Jedes DestroyObject mit einem Timer versehen.

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 Leute,


    ich habe da nochmal eine Frage und zwar will ich, dass das DestroyObject nach einer Zeit wieder Respawnt.


    Habe das Objekt aber in einem Enum, also es wird so Created:
    muellobject[i] = CreateObject(Muell[i][ModelID], Muell[i][XPoss],Muell[i][YPoss],Muell[i][ZPoss]-0.25, 0.0, 0.0, 96.0, 100.0);


    Und so Destroyed:
    DestroyObject(muellobject[o]);


    Wie mache ich das, dass nachdem das Objekt Destroyed wurde, genau auf dem Objekt dann ein Timer ist, der das Objekt wieder Created?


    Bitte um Hilfe!


    Danke.

  • einfach mit einem Timer ?
    DestroyMuellObjectForTime(i, seconds)
    {
    DestroyObject(muellobject[i]);
    muellobject[i] = INVALID_OBJECT_ID;
    SetTimerEx("RecreateMuellObject", seconds*1000, 0, "i", i);
    return 1;
    }


    forward RecreateMuellObject(i);
    public RecreateMuellObject(i)
    {
    muellobject[i] = CreateObject(Muell[i][ModelID], Muell[i][XPoss],Muell[i][YPoss],Muell[i][ZPoss]-0.25, 0.0, 0.0, 96.0, 100.0);
    return 1;
    }

  • Hab das jetzt so eingebaut..


    for(new o = 0;o<sizeof(Muell);o++)
    {
    if(IsValidObject(muellobject[o]) && IsPlayerInRangeOfPoint(i,5.0,Muell[o][XPoss],Muell[o][YPoss],Muell[o][ZPoss]))
    {
    DestroyObject(muellobject[o]);
    checkpointee[i] ++;
    new string[64];
    muellobject[o] = INVALID_OBJECT_ID;
    SetTimerEx("RecreateMuellObject", 20000, 0, "i", o);
    //SendClientMessage(i, COLOR_YELLOW,"Dreck [%d/25] erfolgreich gesammelt!");
    format(string,sizeof(string),"Dreck [%d/25] erfolgreich gesammelt!",checkpointee[i]);
    SendClientMessage(i,COLOR_WHITE,string);
    }
    }
    }


    Es funktioniert bei 2 Objekten wenn die Destroyed werden und die Erscheinen dann auch wieder. aber wenn ich jetzt mehrere Abfahre, funktioniert das nicht mehr :(


    Woran liegt das?

  • Zeig mal bitte den Timer


    Hier:


    forward RecreateMuellObject(i);
    public RecreateMuellObject(i)
    {
    muellobject[i] = CreateObject(Muell[i][ModelID], Muell[i][XPoss],Muell[i][YPoss],Muell[i][ZPoss]-0.25, 0.0, 0.0, 96.0, 100.0);
    return 1;
    }


    Bei 3 Objekten Funktioniert es, wenn ich es aber mehr mache gehts nicht..

    Einmal editiert, zuletzt von Shoxx ()