Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Credits
- Das Script wurde von ColdManTV erstellt.
- Ich habe es versucht, es am saubersten zu Scripten.
- Dieses Script ist für Neulinge geeignet.
- Bitte die Credits nicht entfernen, ich habe mir die Mühe gemacht. Um den Neulingen
- eine Chance zu bieten, diesen Gamemode zu erweitern.
- Nehmt es mir nicht übel, wenn ich etwas falsch beschrieben habe...
- Mit freundlichen grüßen
- ColdManTV.
- */
- /* Includes */
- #include <a_samp>
- #include <dini>
- /* Whirlpool */
- native WP_Hash(buffer[], len, const str[]); //Für die Passwortsicherung.
- /* Dialoge */
- #define DIALOG_REGISTER (0)
- #define DIALOG_LOGIN (1)
- /* Farben */
- #define COLOR_GREEN 0x00E514FF
- #define COLOR_RED 0xFF0A00FF
- /* Enums */
- enum PlayerData //Sachen, die wir Speichern wollen.
- {
- pName[MAX_PLAYER_NAME], //Damit holen wir uns Später bei OnPlayerConnect den Namen.
- pLevel, //Das Level wollen wir speichern.
- pAdmin, //Den Adminrang bzw das Adminlevel wollen wir speichern.
- pMoney, //Das Geld wollen wir speichern.
- pKills, //Die Kills wollen wir speichern.
- pDeaths, //Die Deaths wollen wir speichern.
- bool:pLoggedIn, //Überprüft, ob der Spieler eingeloggt ist oder nicht. Verwendung: PlayerInfo[playerid][pLoggedIn] = true; - Für, das er eingeloggt ist | PlayerInfo[playerid][pLoggedIn] = false; - Für, das er nicht eingeloggt ist.
- }
- /* Globale Variablen */
- new PlayerInfo[MAX_PLAYERS][PlayerData]; //Damit können wir später die Daten vom Spieler Speichern, Resetten, Registrieren und Laden.
- main(){}
- public OnGameModeInit()
- {
- SetGameModeText("Neuling-Script"); //Gamemode Text z.B: Roleplay, Reallife, Deathmatch, Stunt.
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Spawn in Las Venturas.
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- if(!PlayerInfo[playerid][pLoggedIn]) //Überprüft, ob der Spieler eingeloggt ist.
- {
- new File[64];
- format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
- if(dini_Exists(File)) //Überprüft, ob der Spieler existiert.
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Herzlich Willkommen auf Dein Servername.\nDein Account wurde gefunden, bitte gib nun dein Passwort ein:", "Anmelden", "Abbrechen"); //Zeigt ihm den Login_Dialog.
- }
- else //else, wenn der Spieler nicht existiert.
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registrierung", "Herzlich Willkommen auf Dein Servername.\nDein Account wurde nicht gefunden, bitte gib nun dein gewünschtes Passwort ein:", "Registrieren", "Abbrechen"); //Zeigt ihm den Register_Dialog.
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME); //Findet den Spielernamen heraus.
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- Player_Save(playerid); //Speichert den Spieler.
- //Setzt den Spieler, nach dem Disconnect zurück.
- //Damit nicht die Daten von einem dnderen Spieler überschrieben werden.
- //Beispiel: Spieler A loggt sich aus, Spieler B loggt sich ein & hat aufeinmal die Daten von Spieler A.
- for(new i = 0; i < sizeof(PlayerInfo[]); i++)
- {
- PlayerInfo[playerid][PlayerData:i] = false;
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_LOGIN) //Login_Dialog, am besten Codesparend geschrieben.
- {
- new Password[129];
- if(!response) return Kick(playerid);
- if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Herzlich Willkommen auf Dein Servername.\nDein Account wurde gefunden, bitte gib nun dein Passwort ein:\n{FF0000}Bitte mindestens 3 Zeichen!", "Anmelden", "Abbrechen"); //Zeigt dem Spieler an, das ein zu kurzes Passwort gewählt wurde.
- WP_Hash(Password, sizeof(Password), inputtext); //Verwandelt dein eingegebenes Passwort, in so einer Zeichenkette um (Beispiel): B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725FD2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35
- Player_Login(playerid, Password); //Loggt den Spieler ein.
- return 1;
- }
- if(dialogid == DIALOG_REGISTER) //Register_Dialog, am besten Codesparend geschrieben.
- {
- new Password[129];
- if(!response) return Kick(playerid); //Wenn der Spieler auf abbrechen gedrückt hat.
- if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registrierung", "Herzlich Willkommen auf {FF7800}German Dream - Roleplay.{FEFEFE}\nDein Account wurde nicht gefunden, bitte gib nun dein gewünschtes Passwort ein:\n{FF0000}Bitte mindestens 3 Zeichen!", "Registrieren", "Abbrechen"); //Zeigt dem Spieler an, das ein zu kurzes Passwort gewählt wurde.
- WP_Hash(Password, sizeof(Password), inputtext); //Verwandelt dein eingegebenes Passwort, in so einer Zeichenkette um (Beispiel): B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725FD2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35
- Player_Register(playerid, inputtext); //Registriert den Spieler.
- return 1;
- }
- return 0;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- /* Stocks */
- stock Player_Register(playerid, password[]) //Spieler wird registriert & Datei wird erstellt.
- {
- new File[64]; //Die Datei
- format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]); //Speichert die Daten vom Spieler in eine Datei, %s wird der Name vom Spieler sein.
- dini_Create(File);
- dini_Set(File, "Passwort", password);
- dini_IntSet(File, "Level", 0);
- dini_IntSet(File, "Admin", 0);
- dini_IntSet(File, "Money", 0);
- dini_IntSet(File, "Kills", 0);
- dini_IntSet(File, "Deaths", 0);
- PlayerInfo[playerid][pLoggedIn] = true; //Spieler ist eingeloggt.
- SendClientMessage(playerid, COLOR_GREEN, "Deine Registrierung war erfolgreich."); //Register erfolgreich.
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Herzlich Willkommen auf Dein Servername.\nDein Account wurde gefunden, bitte gib nun dein Passwort ein:", "Anmelden", "Abbrechen"); //Wir zeigen ihm den Login_Dialog
- return 1;
- }
- stock Player_Login(playerid, password[]) //Spieler wird eingeloggt.
- {
- new File[64];
- format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
- if(!strcmp(password, dini_Get(File, "Passwort"), false)) //Überprüft, ob die Rechtschreibung beachtet werden soll. In diesem Fall nicht.
- {
- Player_Load(playerid); //Spieler wird geladen.
- SendClientMessage(playerid, COLOR_GREEN, "Dein Login war erfolgreich."); //Login erfolgreich.
- }
- else //Wenn das falsche Passwort eingegeben wurde.
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Herzlich Willkommen auf Dein Servername.\nDein Account wurde gefunden, bitte gib nun dein Passwort ein:\n{FF0000}Das Passwort ist falsch!", "Anmelden", "Abbrechen"); //Wenn das Passwort falsch ist.
- }
- return 1;
- }
- stock Player_Load(playerid) //Spieler wird geladen.
- {
- new File[64];
- format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
- PlayerInfo[playerid][pLevel] = dini_Int(File, "Level"); //Lädt unsere Daten.
- PlayerInfo[playerid][pAdmin] = dini_Int(File, "Admin");
- PlayerInfo[playerid][pMoney] = dini_Int(File, "Money");
- PlayerInfo[playerid][pKills] = dini_Int(File, "Kills");
- PlayerInfo[playerid][pDeaths] = dini_Int(File, "Deaths");
- PlayerInfo[playerid][pLoggedIn] = true;
- SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]); //Setzt das Level.
- GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); //Setzt das Geld
- return 1;
- }
- stock Player_Save(playerid) //Spieler wird gespeichert.
- {
- if(!PlayerInfo[playerid][pLoggedIn]) return 1; //Überprüft, ob der Spieler eingeloggt ist.
- new File[64];
- format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
- dini_IntSet(File, "Level", PlayerInfo[playerid][pLevel]); //Speichert unsere Daten.
- dini_IntSet(File, "Admin", PlayerInfo[playerid][pAdmin]);
- dini_IntSet(File, "Money", GetPlayerMoney(playerid));
- dini_IntSet(File, "Kills", PlayerInfo[playerid][pKills]);
- dini_IntSet(File, "Deaths", PlayerInfo[playerid][pDeaths]);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement