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'