Pickup (Totenkopf) Problem

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
  • Guten Abend Breadfish,
    Ich habe ein Problem mit einem Pickup was unter OnPlayerDeath erstellt wird.
    Dieses Pickup verschindet kurz nachdem es erstellt wurden ist.


    TotenKopf[playerid] = CreateDynamicPickup(1254, 23, PlayerInfo[playerid][pTz], PlayerInfo[playerid][pTy], PlayerInfo[playerid][pTz], 0);
    Dieses Pickup wird unter dem befehl /revive und unter OnPlayerDisconnect destroyt.
    DestroyDynamicPickup(TotenKopf[playerid]);


    Nun würde ich gerne wissen,benutze ich den falschen Pickup Type oder was mach ich falsch? 8|


    PS: Ich benutze das Streamer Plugin von Incognito (Linux)


    Mit freundlichen Grüßen,
    Zunno

  • Versuchs mal so


    DestroyPickup(totenkopf[playerid]);


    Danke aber, das mit DestroyDynamicPickup(TotenKopf[playerid]);
    ist gewollt.... da ich einen Streamer benutze der auch Pickups Streamt.
    Mein Problem ist auch nicht das Löschen des Pickups sondern das er einfach verschwindet ohne das er per Destroy Destroyt wird 8|


    /EDIT: Zitat war doppelt drin..

  • Die Logik ist aber nicht ganz richtig bei dir.
    Angenommen ich spieleso:



    Totenkopfpickup ( 1 ) und ( 2 ) sind immernoch vorhanden :p.
    Solltest bevor du ein neues DynamicPickup ( Totenkopf ) erstellst,dass alte immer zerstören. Du benutzt ja nur 1 Variable, daher ein muss.


    // OnPlayerDeath
    DestroyDynamicPickup(TotenKopf[playerid]);
    TotenKopf[playerid] = CreateDynamicPickup(1254, 23, PlayerInfo[playerid][pTz], PlayerInfo[playerid][pTy], PlayerInfo[playerid][pTz], 0);


    Zitat

    Funktioniert nicht :(
    Komischerweise auf dem Homeserver wo ich alleine bin funktioniert alles
    aber auf dem Root nicht .... O.o


    Dann liegt es vielleicht am Server der auf dem Root läuft.Vielleicht hast du dort andere Scripte laufen ( vllt Filterscripte, Bots ? ) , die sich bei den Pickups einmischen. Kann mir nicht vorstellen,dass es an dem Pickup-Typ liegt.Hab zwar noch nie 23 benutzt, aber Ich benutzt ebenfalls den Streamer nur mit Pickup-Typ 1 oder 2.Da funktioniert alles :|

  • Naja die Logik ist vorhanden^^
    der Totenkopf wird beim Spawnen oder beim wiederbeleben Destroyt :)


    Hier das wichtige aus OnPlayerDeath..
    public OnPlayerDeath(playerid, killerid, reason)
    {
    [...] //Hier stehen alle new's usw
    GetPlayerPos(playerid, PlayerInfo[playerid][pTx], PlayerInfo[playerid][pTy], PlayerInfo[playerid][pTz]);
    if(GetPVarInt(playerid, "MinutesSinceLogin") >= 1) //Wenn der Spieler länger als 1 Minute auf dem Server ist, kommt dieser erst auf den Friedhof
    {
    SetPVarInt(playerid, "Tot", 1);
    if(GetPVarInt(playerid, "Bombe") == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "* Du bist gestorben und hast die Bombe verloren!");
    DeletePVar(playerid, "Bombe");
    }
    if(TotenKopf[playerid] > 0) { DestroyDynamicPickup(TotenKopf[playerid]); } //Falls schon ein Totenkopf da ist, wird er destroyt.
    TotenKopf[playerid] = CreateDynamicPickup(1254, 23, PlayerInfo[playerid][pTz], PlayerInfo[playerid][pTy], PlayerInfo[playerid][pTz], 0);
    SendClientMessage(playerid, COLOR_WHITE,"* Du bist nun für 3 Minuten auf dem Friedhof!");
    SetPlayerTeam(playerid, 1); //Anti DM auf dem Friedhof^^
    SetPVarInt(playerid, "IstTot", 180);
    }
    [...]
    }


    Ich hatte auch schon den Pickup Type 1 aber das hat auch nicht so richtig funktioniert deswegen hab ich es mal mit 23 ausprobiert, da bei mir (GF) für alle eingänge pickup type 23 benutzt wird.


    Aber das Problem kenn ich auch von Nova her, jedoch bleibt da der Totenkopf wenigstens etwas, aber bei mir ist er kurz nach dem erstellen schon wieder weg :O


    Die Varriable Totenkopf wird so definiert:
    new TotenKopf[MAX_PLAYERS];


    Sehr Mysteriös 8|

  • public OnPlayerDisconnect(playerid, reason)
    {
    [...]
    DestroyDynamicPickup(TotenKopf[playerid]);
    [...]


    .... es geht hier aber nicht drum wo er destroyt wird, sondern das der Totenkopf verschwindet OHNE das er Destroyt wird.. jedenfalls ohne die Funktion aufzurufen...

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Dann wirds zerstört, steht doch oben im ersten Post.


    back to topic:


    Der Fehler muss auf jeden Fall im Unterschied zwichen Home und Root Server liegen. An der Weise wie du den Pickup erstellst, kann es ja nicht liegen, da es auf dem home Server funktioniert. Haste denn mal nachgeschaut, ob denn auf dem Home und Root die gleiche Streamerversion usw. aufgespielt ist ?

  • Ja nur das auf dem Home Server das Windows Plugin ist und auf dem Root die Linux Version... vieleicht liegts aber auch dadran das ich aufm Homeserver immer alleine bin.... aber der Server wurde schonmal geweschselt und auf dem alten Root gings auch nicht wirklich...