AshkanN

[SAMP] Accountsystem (+inklusive Register/Login System)

Feb 12th, 2016
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.87 KB | None | 0 0
  1. /*
  2. ***************************************************************************************************************************************
  3.                                                 Willkommen im Script von AshkanN!
  4.                                     Dieses Script wurde von AshkanN erstellt und veröffentlicht.
  5.                                 Du darfst dieses Script editieren, aber NICHT weiter veröffentlichen!
  6.                                                 Copyright (c) 2009-2016, AshkanN
  7. ***************************************************************************************************************************************
  8. */
  9.  
  10. //Accountsystem (+inklusive Register/Login System) erstellt von AshkanN.
  11. //
  12. //Es wird das include dini benötigt!
  13. // Downloadlink zu Dini: https://dracoblue.net/download-release/dini-1.6/dini_1_6.zip
  14. //
  15. //Installation ins Script:
  16. //Erstelle einen Ordner mit dem Namen Accounts im scriptfiles Ordner
  17. //Folgendes ganz oben im Script einfügen:
  18.  
  19. #include <dini>
  20.  
  21. #define Login_Color 0x00C3FFFF
  22. #define Error_Color 0xFF0000FF
  23.  
  24. #define DIALOG_LOGIN 2300
  25. #define DIALOG_REGISTER 2301
  26.  
  27. enum PInfo
  28. {
  29.         Level,
  30.         Geld,
  31.         Admin,
  32.         Fraktion
  33. }
  34. new Spieler[MAX_PLAYERS][PInfo];
  35.  
  36. //Kopiere den Inhalt unter das hier, und füge es in deinem Script ganz unten ein!
  37. stock IstSpielerAdmin(playerid, level) //Adminabfrage
  38. {
  39.     if(Spieler[playerid][Admin] >= level) return 1;
  40.     return 0;
  41. }
  42.  
  43. stock Register(playerid,key[]) //Registrierung
  44. {
  45.     new SpielerDat[128];
  46.     format(SpielerDat,sizeof(SpielerDat),"/Accounts/%s.ini", SName(playerid));
  47.     dini_Create(SpielerDat);
  48.     dini_Set(SpielerDat,"Passwort",key);
  49.     dini_IntSet(SpielerDat,"Level", 1);
  50.     dini_IntSet(SpielerDat,"Geld", 200000);
  51.     dini_IntSet(SpielerDat,"Admin", 0);
  52.     dini_IntSet(SpielerDat,"Fraktion", 0);
  53.     SetPlayerScore(playerid,1);
  54.     GivePlayerMoney(playerid,200000);
  55.     return 1;
  56. }
  57.  
  58. stock Login(playerid,key[]) //Login
  59. {
  60.     new SpielerDat[128];
  61.     format(SpielerDat,sizeof(SpielerDat),"/Accounts/%s.ini", SName(playerid));
  62.     if(!strcmp(key,dini_Get(SpielerDat,"Passwort"),false))
  63.     {
  64.         SpielerLaden(playerid);
  65.         SendClientMessage(playerid, Login_Color, "** Du hast dich erfolgreich eingeloggt!");
  66.     }
  67.     else
  68.     {
  69.         SendClientMessage(playerid,Error_Color,"** Dein Passwort ist ungültig");
  70.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Bitte gib dein Passwort ein, um dich einzuloggen","Weiter","Abbrechen");
  71.     }
  72.     return 1;
  73. }
  74.  
  75. stock SpielerLaden(playerid) //Spieler wird geladen
  76. {
  77.     new SpielerDat[128];
  78.     format(SpielerDat,sizeof(SpielerDat),"/Accounts/%s.ini", SName(playerid));
  79.     Spieler[playerid][Level] = dini_Int(SpielerDat,"Level");
  80.     Spieler[playerid][Geld] = dini_Int(SpielerDat,"Geld");
  81.     Spieler[playerid][Admin] = dini_Int(SpielerDat,"Admin");
  82.     Spieler[playerid][Fraktion] = dini_Int(SpielerDat,"Fraktion");
  83.     GivePlayerMoney(playerid,Spieler[playerid][Geld]);
  84.     SetPlayerScore(playerid,Spieler[playerid][Level]);
  85.     SetPVarInt(playerid,"Logged", 1);
  86.     return 1;
  87. }
  88.  
  89. stock SpielerSpeichern(playerid) //Spieler wird gespeichert
  90. {
  91.     if(GetPVarInt(playerid,"Logged") == 1)
  92.     {
  93.         new SpielerDat[128];
  94.         format(SpielerDat,sizeof(SpielerDat),"/Accounts/%s.ini", SName(playerid));
  95.         dini_IntSet(SpielerDat,"Level", GetPlayerScore(playerid));
  96.         dini_IntSet(SpielerDat,"Geld", GetPlayerMoney(playerid));
  97.         dini_IntSet(SpielerDat,"Admin", Spieler[playeri][Admin]);
  98.         dini_IntSet(SpielerDat,"Fraktion", Spieler[playeri][Fraktion]);
  99.     }
  100.     return 1;
  101. }
  102.  
  103. stock SName(playerid)
  104. {
  105.     new GetName[MAX_PLAYER_NAME];
  106.     GetPlayerName(playerid,GetName,sizeof(GetName));
  107.     return GetName;
  108. }
  109.  
  110. //Kopiere den Inhalt unter das hier, und füge es an den passenden Stellen ein!
  111. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  112. {
  113.     if(dialogid == DIALOG_LOGIN)
  114.     {
  115.         if(response == 0)
  116.         {
  117.             SendClientMessage(playerid,Error_Color,"** Du hast den Login Vorgang abgebrochen!");
  118.             Kick(playerid);
  119.             return 1;
  120.         }
  121.         if(response == 1)
  122.         {
  123.             if(!strlen(inputtext))
  124.             {
  125.                 SendClientMessage(playerid,Error_Color,"** Dein Passwort ist ungültig");
  126.                 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Bitte gib dein Passwort ein, um dich einzuloggen","Weiter","Abbrechen");
  127.                 return 1;
  128.             }
  129.             else
  130.             {
  131.                 Login(playerid,inputtext);
  132.                 return 1;
  133.             }
  134.         }
  135.     }
  136.     if(dialogid == DIALOG_REGISTER)
  137.     {
  138.         if(response == 0)
  139.         {
  140.             SendClientMessage(playerid,Error_Color,"** Du hast den Registrier Vorgang abgebrochen");
  141.             Kick(playerid);
  142.             return 1;
  143.         }
  144.         if(response == 1)
  145.         {
  146.             if(!strlen(inputtext))
  147.             {
  148.                 SendClientMessage(playerid,Error_Color,"** Das Passwort ist ungültig");
  149.                 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib ein Passwort ein, um dich zu registrieren","Weiter","Abbrechen");
  150.                 return 1;
  151.             }
  152.             else
  153.             {
  154.                 Register(playerid,inputtext);
  155.                 return 1;
  156.             }
  157.         }
  158.     }
  159.     return 1;
  160. }
  161.  
  162. public OnPlayerConnect(playerid)
  163. {
  164.     new SpielerDat[128];
  165.     format(SpielerDat,sizeof(SpielerDat),"/Accounts/%s.ini",SName(playerid));
  166.     if(dini_Exists(SpielerDat))
  167.     {
  168.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Bitte gib dein Passwort ein, um dich einzuloggen","Weiter","Abbrechen");
  169.     }
  170.     else
  171.     {
  172.         ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierung","Bitte gib ein Passwort ein, um dich zu registrieren","Weiter","Abbrechen");
  173.     }
  174. }
  175.  
  176. //Wie man das Adminsystem benutzt:
  177. //
  178. //Beispiel (mit OCMD):
  179. ocmd:ban(playerid, params[])        //<-- Beispiel Befehl
  180. {
  181.     if(IstSpielerAdmin(playerid, ADMINLEVEL))
  182.     {
  183.         Ban(AngegebenerSpieler);        //<-- Das passiert, wenn der Spieler den Adminlevel 3 hat (Oben angegeben)
  184.     }
  185.     else //<-- Das heisst 'oder', also wenn der Spieler kein Admin ist
  186.     {
  187.         SendClientMessage(playerid, Rot, "** Du bist kein Admin");      //<-- Das passiert, wenn der Spieler kein Admin ist
  188.     }
  189. }
Add Comment
Please, Sign In to add comment