DeadIcon/Wiederbeleben

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
  • Hallo Breadfish Community,
    Kann einer für mich ein gutes Tutorial mach für Dead Icons und Wiederbeleben für Ärtzte...
    Es soll für GF sein.
    Wenn man Stirbt ein Todes Icon an der Stelle.
    Dann der Typ wo stirbt für 2min auf eine Map wo ich im himmel gemappt habe die Pos kann ich ja selbst ändern.
    Dann soll nach 2 Min er wieder am Krankenhaus spawnen.
    Das Todes Pickup soll wieder verschwinden.
    Oder:
    Das ein Artzt bei dem Todes Pickup /wiederbeleben macht und dan der Typ Lebt und dort spawn an der Todes stelle.
    Das Pickup soll dan auch wieder verschwinden.


    Hoffe jemand kann für sowas ein kleines TuT machen.
    MFG alex

  • ungetestet :P


    new Float: death1, Float: death2, Float: death3;


    new deathtime2;
    new deathpup;


    forward death(playerid);


    Unter OnPlayerDeath

    deathtime2 = SetTimerEx("death",120000,0,"d",playerid);
    deathpup = CreatePickup(1313,1,death1,death2,death3);
    SetPlayerPos(playerid, KOORDS);
    TogglePlayerControllable(playerid,0);


    public death()
    {
    SetPlayerPos(playerid,KOOORDS);
    KillTimer(deathtime2);
    DestroyPickup(deathpup);
    TogglePlayerControllable(playerid,1);
    GameTextForPlayer(playerid, "~w~Du bist wieder auf der Erde lol", 5000, 1);
    }
    return 1;
    }

  • Dann kommen die Errors C:\Dokumente und Einstellungen\Anwender\Desktop\lrp.pwn(2576) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Anwender\Desktop\lrp.pwn(2579) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Anwender\Desktop\lrp.pwn(2580) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Anwender\Desktop\lrp.pwn(2582) : error 010: invalid function or declaration
    Aus den Zeilen : public death()
    {
    SetPlayerPos(playerid, 1412.8540,-1790.1224,15.4356);
    KillTimer(deathtime2);
    DestroyPickup(deathpup);
    TogglePlayerControllable(playerid,1);
    GameTextForPlayer(playerid, "~w~Du bist wieder auf der Erde lol", 5000, 1);
    }
    return 1;
    }
    Und ich möchte ja noch das ärtzte Ihn/Sie wiederbeleben kann ^^


  • public death()
    {
    for(new playerid=0; playerid<GetMaxPlayers(); playerid++)
    {
    SetPlayerPos(playerid, 1412.8540,-1790.1224,15.4356);
    KillTimer(deathtime2);
    DestroyPickup(deathpup);
    TogglePlayerControllable(playerid,1);
    GameTextForPlayer(playerid, "~w~Du bist wieder auf der Erde lol", 5000, 1);
    }
    return 1;
    }

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • Sampi, dein Code wird nicht funktioniert aus mehreren Gründen:
    1.) Du machst globale Floats, füllst diese aber an keiner Stelle mit einem Wert... Diese Floats sind außerdem total unnötig, da der Spieler im Himmel spawnt und nicht an der Stelle, wo er gestorben ist, so hat es zumindest alex geschrieben. Lokale Floats in OnPlayerDeath mit GetPlayerPos reichen...
    2.) Du solltest Arrays benutzen um die TimerID, die PickupID usw. des Spielers zu speichern, sonst funktioniert der Code für mehrere Spieler nicht
    3.) Du lässt zwar einen Timer ablaufen bei OnPlayerDeath, allerdings überprüft du bei OnPlayerSpawn nicht, ob der Spieler tatsächlich tot ist und setzt dort seine Position nicht auf die Position im Himmel, d.h. der Spieler spawnt gefreezt an seinem noirmalen Spawnplatz (nicht im Himmel), ein Pickup und Timer usw. wird aber erstellt. Nach einer gewissen Zeit wird er dann geportet durch den Timer
    4.) Du benutzt KillTimer in dem Callback, das aufgerufen wird, wenn der Timer SCHON abgelaufen ist
    5.) Du benutzt SetTimer, anstatt SetTimerEx, wo wir bei zombiemodder wären:


    zombiemodder, dein Code bewirkt, dass ALLE Spieler an den Koordinaten spawnwn, egal ob sie tot sind oder wie auch immer. Man müsste SetTimerEx verwenden und die playerid übergeben, wenn man schon SetTimer verwendet


    alex, bevor du gleich die nächste Frage stellst, solltest du erst einmal überprüfen ob der Code für mehrer Spieler funktioniert. Nicht einfach nur einfügen und gleich die nächste Frage stellen... Deine weitere Frage ist außerdem recht widersprüchlich mit dem ersten Post. Der Spieler soll im Himmel spawnen, aber trotzdem wiederbelebar sein?