Spieler in eine neue Welt setzten und Abfragen ob er in einer Arena ist

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
  • Oben eine Variable für die playerid setzen, die speichern soll in welchem/ob der Spieler in einem DM ist.
    new isInDM[MAX_PLAYERS];


    Bei dem /DM Befehl abfragen ob der Spieler schon in einem DM ist.
    Wenn ja wird eine Nachricht wie "Benutze /exit" erscheinen und der weiterer vorgang wird abgebrochen.
    Sollte dieser Spieler nicht in einem DM sein erscheint die nachricht nicht, und alles unter der Abfrage wird ausgeführt.
    Die Variable "isInDM" wird auf 1 gesetzt. Also ist der Spieler nun in DM 1.
    Befehl /dm
    {
    if(isInDM[playerid] != 0)return SendClientMessage(.., "Benutze /exit");
    SetPlayerPos(...);
    SendClientMessage(.. ,"Willkommen im DM undso");
    isInDM[playerid] = 1;
    }


    Spoiler anzeigen
    Wenn man weitere DM Arenen hat kann man das genauso weiterführen, nur das dann die Variable der Arena auf 2 gesetzt wird usw.
    Befehl /dm2
    {
    if(isInDM[playerid] != 0)return SendClientMessage(.., "Benutze /exit");
    SetPlayerPos(...);
    SendClientMessage(.. ,"Willkommen im DM2 undso");
    isInDM[playerid] = 2;
    }

    Spoiler anzeigen
    Beim /exit befehl wird abgefragt ob der Spieler in der normalen Welt ist, wenn ja dann kommt die Nachricht "Du bist in keinem DM!".
    Wenn der spieler dann jedoch nicht die Variable isInDM auf 0 hat, wird er gespawnt (z.B.)
    Befehl /exit
    {
    if(isInDM[playerid] == 0)return SendClientMessage(.., "Du bist in keinem DM!");
    SpawnPlayer(...); //oder so
    isInDM[playerid] = 0;
    }


    Und wenn der spieler den Befehl ausführt, wird abgefragt ob dieser Spieler nicht in der normalen Welt ist.
    Wenn das stimmt, wird return ausgeführt und der Spieler bekommt nichts.


    Befehl /w
    {
    if(isInDM[playerid] != 0)return 1;
    GivePlayerWeapon(bla bla);
    usw.();
    }


    mfg


    edit:


    400 Beiträge :bll::bll::bll::bll::bll:
    Und ich hoffe er war hilfreich :whistling:

  • Komme hier leider nicht weiter.
    Habe diesen Code in meinen /v Befehl geschrieben, aber man kann sich trotzdem Fahrzeuge erstellen in der Arena



    GetPlayerVirtualWorld(playerid); SendClientMessage(playerid, Red, "Du kannst dir in einer Arena kein Fahrzeug erstellen");
    Fehlercodes werden keine ausgespuckt.
    Mein Problem ist es jetzt eigentlich nur, das der Server den Befehl weiter verwendet.

  • Du musst auch irgendwo eine Abfrage machen, wo sich der Spieler befindet :whistling:


    if(GetPlayerVirtualWorld(playerid)) return SendClientMessage(playerid, Red, "Du kannst dir in einer Arena kein Fahrzeug erstellen");
    //Und wenn er in keiner Virtuellen Welt ist..code hier drunter:


    mfg. :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S