Advertisement
Guest User

[GAMEMODE] Neuling Script - von ColdManTV

a guest
Jun 16th, 2016
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.23 KB | None | 0 0
  1. /* Credits
  2.  
  3. Das Script wurde von ColdManTV erstellt.
  4. Ich habe es versucht, es am saubersten zu Scripten.
  5. Dieses Script ist für Neulinge geeignet.
  6. Bitte die Credits nicht entfernen, ich habe mir die Mühe gemacht. Um den Neulingen
  7. eine Chance zu bieten, diesen Gamemode zu erweitern.
  8. Nehmt es mir nicht übel, wenn ich etwas falsch beschrieben habe...
  9.  
  10. Mit freundlichen grüßen
  11. ColdManTV.
  12.  
  13. */
  14.  
  15. /* Includes */
  16. #include <a_samp>
  17. #include <dini>
  18.  
  19. /* Whirlpool */
  20. native WP_Hash(buffer[], len, const str[]); //Für die Passwortsicherung.
  21.  
  22. /* Dialoge */
  23. #define DIALOG_REGISTER (0)
  24. #define DIALOG_LOGIN (1)
  25.  
  26. /* Farben */
  27. #define COLOR_GREEN 0x00E514FF
  28. #define COLOR_RED 0xFF0A00FF
  29.  
  30. /* Enums */
  31. enum PlayerData //Sachen, die wir Speichern wollen.
  32. {
  33.     pName[MAX_PLAYER_NAME], //Damit holen wir uns Später bei OnPlayerConnect den Namen.
  34.     pLevel, //Das Level wollen wir speichern.
  35.     pAdmin, //Den Adminrang bzw das Adminlevel wollen wir speichern.
  36.     pMoney, //Das Geld wollen wir speichern.
  37.     pKills, //Die Kills wollen wir speichern.
  38.     pDeaths, //Die Deaths wollen wir speichern.
  39.     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.
  40. }
  41.  
  42. /* Globale Variablen */
  43. new PlayerInfo[MAX_PLAYERS][PlayerData]; //Damit können wir später die Daten vom Spieler Speichern, Resetten, Registrieren und Laden.
  44.  
  45. main(){}
  46.  
  47. public OnGameModeInit()
  48. {
  49.     SetGameModeText("Neuling-Script"); //Gamemode Text z.B: Roleplay, Reallife, Deathmatch, Stunt.
  50.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Spawn in Las Venturas.
  51.     return 1;
  52. }
  53.  
  54. public OnGameModeExit()
  55. {
  56.     return 1;
  57. }
  58.  
  59. public OnPlayerRequestClass(playerid, classid)
  60. {
  61.     if(!PlayerInfo[playerid][pLoggedIn]) //Überprüft, ob der Spieler eingeloggt ist.
  62.     {
  63.         new File[64];
  64.         format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
  65.         if(dini_Exists(File)) //Überprüft, ob der Spieler existiert.
  66.         {
  67.             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.
  68.         }
  69.         else //else, wenn der Spieler nicht existiert.
  70.         {
  71.             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.
  72.         }
  73.     }
  74.     return 1;
  75. }
  76.  
  77. public OnPlayerConnect(playerid)
  78. {
  79.     GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME); //Findet den Spielernamen heraus.
  80.     return 1;
  81. }
  82.  
  83. public OnPlayerDisconnect(playerid, reason)
  84. {
  85.     Player_Save(playerid); //Speichert den Spieler.
  86.     //Setzt den Spieler, nach dem Disconnect zurück.
  87.     //Damit nicht die Daten von einem dnderen Spieler überschrieben werden.
  88.     //Beispiel: Spieler A loggt sich aus, Spieler B loggt sich ein & hat aufeinmal die Daten von Spieler A.
  89.     for(new i = 0; i < sizeof(PlayerInfo[]); i++)
  90.     {
  91.         PlayerInfo[playerid][PlayerData:i] = false;
  92.     }
  93.     return 1;
  94. }
  95.  
  96. public OnPlayerSpawn(playerid)
  97. {
  98.     return 1;
  99. }
  100.  
  101. public OnPlayerDeath(playerid, killerid, reason)
  102. {
  103.     return 1;
  104. }
  105.  
  106. public OnVehicleSpawn(vehicleid)
  107. {
  108.     return 1;
  109. }
  110.  
  111. public OnVehicleDeath(vehicleid, killerid)
  112. {
  113.     return 1;
  114. }
  115.  
  116. public OnPlayerText(playerid, text[])
  117. {
  118.     return 1;
  119. }
  120.  
  121. public OnPlayerCommandText(playerid, cmdtext[])
  122. {
  123.     return 1;
  124. }
  125.  
  126. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  127. {
  128.     return 1;
  129. }
  130.  
  131. public OnPlayerExitVehicle(playerid, vehicleid)
  132. {
  133.     return 1;
  134. }
  135.  
  136. public OnPlayerStateChange(playerid, newstate, oldstate)
  137. {
  138.     return 1;
  139. }
  140.  
  141. public OnPlayerEnterCheckpoint(playerid)
  142. {
  143.     return 1;
  144. }
  145.  
  146. public OnPlayerLeaveCheckpoint(playerid)
  147. {
  148.     return 1;
  149. }
  150.  
  151. public OnPlayerEnterRaceCheckpoint(playerid)
  152. {
  153.     return 1;
  154. }
  155.  
  156. public OnPlayerLeaveRaceCheckpoint(playerid)
  157. {
  158.     return 1;
  159. }
  160.  
  161. public OnRconCommand(cmd[])
  162. {
  163.     return 1;
  164. }
  165.  
  166. public OnPlayerRequestSpawn(playerid)
  167. {
  168.     return 1;
  169. }
  170.  
  171. public OnObjectMoved(objectid)
  172. {
  173.     return 1;
  174. }
  175.  
  176. public OnPlayerObjectMoved(playerid, objectid)
  177. {
  178.     return 1;
  179. }
  180.  
  181. public OnPlayerPickUpPickup(playerid, pickupid)
  182. {
  183.     return 1;
  184. }
  185.  
  186. public OnVehicleMod(playerid, vehicleid, componentid)
  187. {
  188.     return 1;
  189. }
  190.  
  191. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  192. {
  193.     return 1;
  194. }
  195.  
  196. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  197. {
  198.     return 1;
  199. }
  200.  
  201. public OnPlayerSelectedMenuRow(playerid, row)
  202. {
  203.     return 1;
  204. }
  205.  
  206. public OnPlayerExitedMenu(playerid)
  207. {
  208.     return 1;
  209. }
  210.  
  211. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  212. {
  213.     return 1;
  214. }
  215.  
  216. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  217. {
  218.     return 1;
  219. }
  220.  
  221. public OnRconLoginAttempt(ip[], password[], success)
  222. {
  223.     return 1;
  224. }
  225.  
  226. public OnPlayerUpdate(playerid)
  227. {
  228.     return 1;
  229. }
  230.  
  231. public OnPlayerStreamIn(playerid, forplayerid)
  232. {
  233.     return 1;
  234. }
  235.  
  236. public OnPlayerStreamOut(playerid, forplayerid)
  237. {
  238.     return 1;
  239. }
  240.  
  241. public OnVehicleStreamIn(vehicleid, forplayerid)
  242. {
  243.     return 1;
  244. }
  245.  
  246. public OnVehicleStreamOut(vehicleid, forplayerid)
  247. {
  248.     return 1;
  249. }
  250.  
  251. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  252. {
  253.     if(dialogid == DIALOG_LOGIN) //Login_Dialog, am besten Codesparend geschrieben.
  254.     {
  255.         new Password[129];
  256.         if(!response) return Kick(playerid);
  257.         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.
  258.         WP_Hash(Password, sizeof(Password), inputtext); //Verwandelt dein eingegebenes Passwort, in so einer Zeichenkette um (Beispiel): B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725FD2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35
  259.         Player_Login(playerid, Password); //Loggt den Spieler ein.
  260.         return 1;
  261.     }
  262.     if(dialogid == DIALOG_REGISTER) //Register_Dialog, am besten Codesparend geschrieben.
  263.     {
  264.         new Password[129];
  265.         if(!response) return Kick(playerid); //Wenn der Spieler auf abbrechen gedrückt hat.
  266.         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.
  267.         WP_Hash(Password, sizeof(Password), inputtext); //Verwandelt dein eingegebenes Passwort, in so einer Zeichenkette um (Beispiel): B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725FD2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35
  268.         Player_Register(playerid, inputtext); //Registriert den Spieler.
  269.         return 1;
  270.     }
  271.     return 0;
  272. }
  273.  
  274. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  275. {
  276.     return 1;
  277. }
  278. /* Stocks */
  279. stock Player_Register(playerid, password[]) //Spieler wird registriert & Datei wird erstellt.
  280. {
  281.     new File[64]; //Die Datei
  282.     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.
  283.     dini_Create(File);
  284.     dini_Set(File, "Passwort", password);
  285.     dini_IntSet(File, "Level", 0);
  286.     dini_IntSet(File, "Admin", 0);
  287.     dini_IntSet(File, "Money", 0);
  288.     dini_IntSet(File, "Kills", 0);
  289.     dini_IntSet(File, "Deaths", 0);
  290.     PlayerInfo[playerid][pLoggedIn] = true; //Spieler ist eingeloggt.
  291.     SendClientMessage(playerid, COLOR_GREEN, "Deine Registrierung war erfolgreich."); //Register erfolgreich.
  292.     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
  293.     return 1;
  294. }
  295.  
  296. stock Player_Login(playerid, password[]) //Spieler wird eingeloggt.
  297. {
  298.     new File[64];
  299.     format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
  300.     if(!strcmp(password, dini_Get(File, "Passwort"), false)) //Überprüft, ob die Rechtschreibung beachtet werden soll. In diesem Fall nicht.
  301.     {
  302.         Player_Load(playerid); //Spieler wird geladen.
  303.         SendClientMessage(playerid, COLOR_GREEN, "Dein Login war erfolgreich."); //Login erfolgreich.
  304.     }
  305.     else //Wenn das falsche Passwort eingegeben wurde.
  306.     {
  307.         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.
  308.     }
  309.     return 1;
  310. }
  311.  
  312. stock Player_Load(playerid) //Spieler wird geladen.
  313. {
  314.     new File[64];
  315.     format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
  316.     PlayerInfo[playerid][pLevel] = dini_Int(File, "Level"); //Lädt unsere Daten.
  317.     PlayerInfo[playerid][pAdmin] = dini_Int(File, "Admin");
  318.     PlayerInfo[playerid][pMoney] = dini_Int(File, "Money");
  319.     PlayerInfo[playerid][pKills] = dini_Int(File, "Kills");
  320.     PlayerInfo[playerid][pDeaths] = dini_Int(File, "Deaths");
  321.     PlayerInfo[playerid][pLoggedIn] = true;
  322.     SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]); //Setzt das Level.
  323.     GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); //Setzt das Geld
  324.     return 1;
  325. }
  326.  
  327. stock Player_Save(playerid) //Spieler wird gespeichert.
  328. {
  329.     if(!PlayerInfo[playerid][pLoggedIn]) return 1; //Überprüft, ob der Spieler eingeloggt ist.
  330.     new File[64];
  331.     format(File, sizeof(File), "/Spieler/%s.ini", PlayerInfo[playerid][pName]);
  332.     dini_IntSet(File, "Level", PlayerInfo[playerid][pLevel]); //Speichert unsere Daten.
  333.     dini_IntSet(File, "Admin", PlayerInfo[playerid][pAdmin]);
  334.     dini_IntSet(File, "Money", GetPlayerMoney(playerid));
  335.     dini_IntSet(File, "Kills", PlayerInfo[playerid][pKills]);
  336.     dini_IntSet(File, "Deaths", PlayerInfo[playerid][pDeaths]);
  337.     return 1;
  338. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement