Spawnchange erstellen

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 Tag Leute,
    heute möchte ich euch zeigen wie ihr
    für euch ein einfaches Spawnchange System erstellt.


    Ihr benötigt:
    Grundkenntnisse
    Login System
    Dini Include


    Script aufgebaut auf:
    Login & Register System


    So dann fangen wir mal richtig an.

    Zuerst müssen wir einen DIALOG Definieren. Das kommt zu euren Definierungen
    oder halt oben ins Script.
    #define DIALOG_SPAWNCHANGE 3 // Die Zahl muss nartürlich angepasst werden.


    Bei unseren "enum PlayerDA" ändern wir einfach so:

    enum PlayerDA
    {
    Level,
    Admin,
    Spawnchange // Das Kommer versetzt & dies ist hinzugefügt.
    }
    new Spieler[MAX_PLAYERS][PlayerDA];

    Damit können wir es später leicht aufrufen mit: if(Spieler[playerid][Spawnchange] == ...)



    Gehen wir in dem falle zu "stock Register" um am Anfang des Registieren der "Spawnchange" direkt festgelegt
    wird.



    Dort fügen wir einfach folgendes ein:
    dini_IntSet(Playerdatei,"Spawnchange",0); // Erstellt Spawnchange in der Account Datei!


    Nun gehen wir zum "stock AccountLaden".
    Dort fügen wir einfach ein - damit wir später aufrufen können.
    Spieler[playerid][Spawnchange] = dini_Int(Playerdatei,"Spawnchange");


    Jetzt zu "stock SpielerSpeichern".


    Dort fügen wir folgendes ein - damit es später gespeichert wird falls wir es ändern.
    dini_IntSet(Playerdatei,"Spawnchange", Spieler[playerid][Spawnchange]);


    Jetzt erstellen wir uns den Command unter "OnPlayerCommandText"

    if(strcmp(cmdtext, "/spawnchange", true) == 0) // Der Command
    {
    if(IsPlayerConnected(playerid)) // Ob der Spieler Online ist
    {
    ShowPlayerDialog(playerid,3, DIALOG_STYLE_LIST, "Wechsel des Spawns", "Spawn 1\nSpawn 2", "Auswählen", "Abbrechen"); // Der Dialog - erstellen wir gleich
    }
    return 1;
    }



    Jetzt erstellen wir unter "OnDialogResponse" den Dialog für Spawnchange das machen wir so:

    if(dialogid == DIALOG_SPAWNCHANGE)
    {
    if(response)
    {
    if(listitem == 0) // Wird aufgerufen wenn man auf Spawn 1 drückt
    {
    Spieler[playerid][Spawnchange] = 0; // Setzt Spawnchange auf 0
    SendClientMessage(playerid, 0x33AA33AA, "Du spawnst nun am Hauptbanhof LS");
    }
    if(listitem == 1) // Wird aufgerufen wenn man auf Spawn 2 drückt
    {
    Spieler[playerid][Spawnchange] = 1; // Setzt Spawnchange auf 1
    SendClientMessage(playerid, 0x33AA33AA, "Du spawnst nun an der Stadthalle");
    }
    }
    return 1;
    }



    Jetzt fehlt nur noch die Sachen bei OnPlayerSpawn damit Spawnchange auch aufgerufen wird beim Spawnen.

    public OnPlayerSpawn(playerid)
    {
    if(Spieler[playerid][Spawnchange] == 0) // Wenn in der Spielerdatei Spawnchange auf 0 steht
    {
    SetPlayerPos(playerid, 1753.9658,-1894.1963,13.5570); // Spawnt man hier
    }
    if(Spieler[playerid][Spawnchange] == 1) // Wenn in der Spielerdatei Spawnchange auf 1 steht
    {
    SetPlayerPos(playerid, 1481.0829, -1771.8108, 18.7958); // Spawnt man hier
    }
    return 1;
    }


    Ist jetzt nicht perfekt erklärt - aber ich werde den Thread später nochmal bearbeiten!



    Mit freundlichen Grüßen


    Barney'


  • Hallo,
    dein Tutorial sieht bisschen wie vom LoH aus.
    Sonst ist das Tutorial super.


    Ich gebe dir 10 von 10 Punkten.


    LG Talik