/changemap Befehl

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


    Ich bin neu hier in diesem Forum und möchte nun auch meinen ersten Beitrag leisten :D


    Unzwar möchte ich in meinem DM Script einen /changemap Befehl machen. Also wenn ich zum Beispiel als Map /setmap 3 mache, sollen alle die /dm machen in Map 3 geportet werden ...
    Und wenn ich es wieder änder kommen sie in eine andere Map. Am besten wäre noch mit Timer, dass es automatisch wechselt.


    Ich hoffe ihr könnt mir helfen.


    MfG Spirit

  • Hallo xSpiritZ,


    meiner Meinung nach, musst du einfach einen Timer erstellen, der alle Spieler, die gerade auf dem Server spielen, nach x Minuten in eine andere Map spawnen. Willst du die einzelnen Maps darüber hinaus noch mit einem Befehl anspielen? Sprich wenn er automatisch wechselt und dir die Map gerade nicht gefällt /setmap x?


    MfG Bossa

  • Ehm genau also du kannst es so erstellen, dass falls man im "DM-Modus" ist, man diesen abfragen kann z.B. mit IsPlayerInDm ... dann unter der Funktion deines Timers einfach abfragen, ist die Person im DM-Modus, wenn ja, schickt ihn in die nächste Map, wenn nicht, dann nicht. Genauso ähnlich ist das dann wie bei dem Befehl /setmap x, einfach überprüfen, ist er im DM-Modus, wenn ja ..., wenn nicht ...


    So einfach stelle ich mir das vor.
    Berichte uns wenns funktioniert.


    MfG Bossa

  • Ok dann mache ich mich mal ran ;)


    Eine Frage noch. Wenn ich /setmap mache z.B. 2min vor Map Wechsel dann wird ja sozusagen die Map gewechselt und nach 2 Min nochmal oder wie? Muss ich den Timer da irgendwie resetten?


    Hoffe du verstehst was ich meine ;)


    MfG Spirit

  • Ehm ja verstehe glaube, wie du das meinst. Meinst du, wenn du z.B eine Minute vor Schluss wechselst, dass dann die neue Map nur noch sagen wir 1 von 10 Minuten da ist. Ehm ja würde dir in dem Falle empfehlen, den Timer zu resetten.


    MfG Bossa

  • Könntest du deinen Code so posten, dass es geordnet ist und nicht alles in einer Zeile?


    MfG Bossa

  • Code entfernen
    Von Editor auf Quellcode umstellen
    Code posten


    Ihr müsst echt ein schweres Leben haben...

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Er portet mich nur wenn ich /kill mache...
    Ich möchte aber dass er das automatisch macht.
    Also wenn ich /dm mache soll er automatisch mit dem ChangeMap starten...


    Sry bin nicht so vertraut mit Timern...


    #include <a_samp>


    new ChangeMapTimer;
    new Map;


    public OnGameModeInit()
    {
    ChangeMap();
    SetTimer("ChangeMap", 900000, 1);
    return 1;
    }


    public OnGameModeExit()
    {
    Map = 0;
    KillTimer(ChangeMapTimer);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    if(Map == 1)
    {
    SetPlayerPos(playerid,-696.1279,934.2790,11.7201);
    }
    if(Map == 2)
    {
    SetPlayerPos(playerid,253.4103,-1225.1299,74.8403);
    }
    if(Map == 3)
    {
    }
    if(Map == 4)
    {
    }
    return 1;
    }


    forward ChangeMap();
    public ChangeMap()
    {
    new rand = random(3) + 1;
    Map = rand;
    if(Map == 1)
    {
    }
    if(Map == 2)
    {
    }
    if(Map == 3)
    {
    }
    if(Map == 4)
    {
    }
    }


    // BlackAce sry bin neu hier im Forum... Aber danke jetzt weiß ich wie es richtig geht ;)

  • Hehe okey. Ehm :D Was steht denn alles unter deinem Befehl /kill?


    MfG Bossa

  • Mein Problem ist einfach , dass er nur in die neue Map gesetzt wird, wenn er neu Spawnt. Da das ja unter OnPlayerSpawn ist. Doch wie mache ich das dass er ohne spawnen einfach wechselt. Wo sollte ich das sonst drunter machen? Also das mit dem Porten.


    Hier vom kill :D


    ocmd:kill(playerid,params[])
    {
    new pID;
    new string[128];
    if(!IsPlayerConnected(pID) || pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE, "Diesen Spieler gibt es nicht!");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /kill [ID/NAME]");
    if(isPlayerAnAdmin(playerid,3))
    {
    SetPlayerHealth(pID,0);
    format(string,sizeof(string),"Du hast den Spieler %s erfolgreich getötet!",SpielerName(pID));
    SendClientMessage(playerid,COLOR_NEONGREEN,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED, "Du darfst diesen Befehl nicht verwenden!");
    }
    return 1;



    }

  • Du musst die Funktion des Timers bestimmen. Du hast doch ein public gemacht, welcher genauso lautet wie dein Timer, dann müsst du folgendes da rein schreiben und den Spieler in der neuen Map spawnen lassen.


    MfG

  • Jop poste mal dein Werk. Dann wissen User, die eventuell irgendwann das gleiche wollen gleich die Lösung.


    Gern geschehen :) Wennst was brauchst, meld dich einfach bei mir.


    MfG Bossa