Advertisement
Guest User

MySQL Grundgerüst by Hami aka. Rawr

a guest
Mar 28th, 2013
1,056
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 25.36 KB | None | 0 0
  1.     /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2.     *                                                                             *
  3.     *                                                                             *
  4.     *                    ####     #####     #####      #######                    *
  5.     *                       #         #         #           #                     *
  6.     *                       #         #         #          #                      *
  7.     *                       #      ####      ####         #                       *
  8.     *                       #         #         #        #                        *
  9.     *                       #         #         #       #                         *
  10.     *                       #     #####     #####      #                          *
  11.     *                                                                             *
  12.     *     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    *
  13.     *                                                                             *
  14.     *          P     R     O     D     U     C     T     I     O     N     S      *
  15.     *                                                                             *
  16.     *     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    *
  17.     *                                                                             *
  18.     *                                                                             *
  19.     *     Erstellungsdatum:     28.März.2013                                     *
  20.     *                                                                             *
  21.     *     Scripter: Hami aka. Rawr                                                *
  22.     *                                                                             *
  23.     *     Mapper : Hami aka. Rawr                                                 *
  24.     *                                                                             *
  25.     *     Konzept: Hami aka. Rawr                                                 *
  26.     *                                                                             *
  27.     *                                                                             *
  28.     *                                                                             *
  29.     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  30.  
  31.     Dieses Skript wurde von Hami aka. Rawr geschrieben!
  32.     Es enthält ein funktionstüchtiges MyQL Registrations & Login Skript!
  33.     Es ist ein komplettes Selfmade Skript!
  34.     Die Datenbank steht hier drunter!
  35.  
  36.     An dieser Stelle würde ich gerne nochmals Msk. erwähnen!
  37.     Msk. hat mich sehr viel über die Kunst des Scripten gelehrt!
  38.     Wir hatten oft spaß zusammen, ich habe gemappt er gescriptet.
  39.     Danke für alles mein Freund, ich hoffe falls du das liest,
  40.     das du dich nochmals bei mir meldne wirst :)
  41.    
  42.     © by Hami aka. Rawr
  43.    
  44.     Viel Spaß beim Skripten & Editieren =)
  45.  
  46. *=*=*=*=*=*=*=*=*=*=*=*= MySQL Datenbank *=*=*=*=*=*=*=*=*=*=*=*=*
  47.  
  48.     CREATE TABLE `Spieler` (
  49.     `Name` varchar(24) NOT NULL,
  50.     `Passwort` varchar(50) NOT NULL,
  51.     `Level` INT(11) NOT NULL DEFAULT '0',
  52.     `Adminlevel` INT(11) NOT NULL DEFAULT '0',
  53.     `Skin` INT(11) NOT NULL DEFAULT '0',
  54.     `Geld` INT(11) NOT NULL DEFAULT '0',
  55.     `Registrierungsdatum` varchar(30) NOT NULL,
  56.     PRIMARY KEY (`Name`)
  57.     )
  58.     COLLATE='utf8_general_ci'
  59.     ENGINE=InnoDB;
  60.  
  61. *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
  62.  
  63. /*================================[ Includes ]==================================*/
  64. #include        <   a_samp      >
  65. #include        <   a_mysql     >
  66. #include        <   zcmd        >
  67.  
  68. /*===========================[ MySQL - Daten ]=================================*/
  69.  
  70. #define         SQL_HOST                "Bitte Hostname eintragen"
  71. #define         SQL_USER                "Bitte Username eintragen"
  72. #define         SQL_PASS                "Bitte Passwort eintragen"
  73. #define         SQL_DB                  "Bitte Database eintragen"
  74. //Tabellenname für die Spieler
  75. #define         Tabelle_Spieler         "Spieler"
  76. /*==============================[ Dialoge ]===================================*/
  77. //Stlyes
  78. #define         DG_LIST                 DIALOG_STYLE_LIST
  79. #define         DG_INPUT                DIALOG_STYLE_INPUT
  80. #define         DG_MSGBOX               DIALOG_STYLE_MSGBOX
  81. #define         DG_PASSWORD             DIALOG_STYLE_PASSWORD
  82. //Login / Register
  83. #define         DG_ID                   (  0         )
  84. #define         DG_REGISTER             (  0 + DG_ID )
  85. #define         DG_LOGIN                (  1 + DG_ID )
  86.  
  87. /*==============================[ Farben ]===================================*/
  88. //Normale
  89. #define         Weiß                   0xFFFFFFFF
  90. #define         Rot                     0xFF0000FF
  91. #define         Grün                    0x00FF00FF
  92. #define         Schwarz                 0x000000FF
  93.  
  94. //HTML - Hexcodes
  95. #define         COLW                    "{FFFFFF}"
  96. #define         COLO                    "{FF6A00}"
  97. #define         COLR                    "{FF0000}"
  98. #define         COLB                    "{007DE0}"
  99.  
  100. /*============================[ Server-Einstellungen ]========================*/
  101. //Servername & GameModeText
  102.  
  103. #define     ServerName                  "Trage hier deinen Servernamen ein!"
  104. #define     Scripter                    "Hami aka. Rawr"        
  105. #define     Mapper                      "Hami aka. Rawr"      
  106. #define     Version                     "0.1"              
  107.  
  108. /*=========================== [ Client Einstellungen ] ========================*/
  109.  
  110. #define     Hostname        "Trage hier den Name ein"           //Ändert den Servernamen im SA:MP Client
  111. #define     GamemodeName    "Trage hier den Mode ein"           //Änder den Gamemode Namen SA:MP im Client
  112. #define     Mapname         "Trage hier den Mapnamen ein"       //Änder den Map Namen im SA:MP Client
  113.  
  114. /*=========================== [ Sonstige Einstellungen ] ========================*/
  115. /*   0 = False = NEIN       1 = TRUE = JA */
  116. #define     SpielerAufKarte             0       // Sollen spieler auf der Karte angezeigt werden?
  117. #define     Stuntbonus                  0       //Soll der Stuntbonus an sein?
  118. #define     SpielerNameUeberKopf        0       //Soll der Name und ID über spieler sein?
  119. #define     SpielerNameUeberKopfDistanz 10      //Wie weit der Name und ID über spieler sein?
  120. #define     MySQLLog                    0       //Soll der MySQL-Log an sein?
  121.  
  122. /*============================[ Startsachen ]================================*/
  123.  
  124. #define     Zivispawn_1     2488.5435,-1460.0626,24.0180  //Der Zivispawn
  125. #define     Zivifarbe       0xFFFFFFFF                    //Die Zivilisten Farbe (Weiß)
  126. #define     Startgeld       57511                         //Das Anfangs Geld
  127. #define     Startlevel      8                             //Das Anfangs Level
  128.  
  129. //Der 1. Skin den der Spieler erhalten soll (random)
  130. new ZiviSkin[] =
  131. {
  132.     1,
  133.     2,
  134.     3,
  135.     4,
  136.     5,
  137.     128,
  138.     134,
  139.     6,
  140.     8,
  141.     5
  142. };
  143. /*===============[  Uhrzeit / Datum  ]=====================*/
  144. new
  145.     Stunde,
  146.     Minute,
  147.     //Sekunde,
  148.     Jahr,
  149.     Monat,
  150.     Tag
  151. ;
  152.  
  153. /*===================[  News  ]===========================*/
  154. //Abfrage: Eingeloggt
  155. new Eingeloggt[MAX_PLAYERS];
  156.  
  157. /*===================[  Timer  ]===========================*/
  158.  
  159. new RequestTimer;//Damit der Spawn Button weg ist! Also nicht beachten ^^
  160. new LoginIntro;//Login Intro
  161.  
  162. /*=======================[  Anti Badwords & Badnames ]=======================*/
  163.  
  164. //----------------- Verbotene Namen -----------------
  165. new BadNames[] = {"opf4","0pf4","0pfa","opfa","hurn","homo","schwuchtel","b4st4rd","jude","ossama","shinoda","nude","nutte","heilhitler","arsch", "sack", "penner", "wixxer", "penis", "hurre", "schlampe", "vagina", "muschi", "fick", "idiot", "trottel", "ashole", "fuck", "fasch", "nazi", "adolf", "hitler","Hure","Fotze","Schwanz","Hur3","P3nis","Arschloch","4rsch","Admin","Popo","schlampe","Bastard","Opfa","Opfer","www","0pfa","b4stard","b4st4rd","schl4mpe","schlamp3","wixxa","sperma","vagina"};
  166. //----------------- Verbotene Wörter -----------------
  167. new BadWords[][] = {"hurn","homo","schwuchtel","b4st4rd","jude","ossama","shinoda","nude","nutte","heilhitler","arsch", "sack", "penner", "wixxer", "penis", "hurre", "schlampe", "vagina", "muschi", "fick", "idiot", "trottel", "ashole", "fuck", "fasch", "nazi", "adolf", "hitler","Hure","Fotze","Schwanz","Hur3","P3nis","Arschloch","4rsch","Admin","Popo","schlampe","Bastard","Opfa","Opfer","www","0pfa","b4stard","b4st4rd","schl4mpe","schlamp3","wixxa","sperma","vagina"};
  168.  
  169. /*============================[ Enums ]======================================*/
  170. //Spieler Enum
  171. enum SpielerDaten
  172. {
  173.     pRegDate[30],
  174.     pRegistriert,
  175.     pLevel,
  176.     pGeld,
  177.     pSkin,
  178.     pAdminlevel
  179. };
  180.  
  181. new SpielerInfo[MAX_PLAYERS][SpielerDaten];
  182. //Textdraw: Startbildschirm
  183. new Text:StartBildschirm[5];
  184.  
  185. /*==============================[ Forwards ]=================================*/
  186.  
  187. //Login Intro
  188. forward LoginZeigen(playerid);
  189.  
  190. //Request Class weg (Spawn Buttons)
  191. forward RequestWeg(playerid);
  192.  
  193. /*==============================[ Konsole ]==================================*/
  194. main()
  195. {   print("*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*");
  196.     print(""ServerName" <> wurde erfolgreich Geladen <>               ");
  197.     print("                                                           ");
  198.     print("Skripter: "Scripter"                                       ");
  199.     print("Mapper  : "Mapper"                                         ");
  200.     print("Version : "Version"                                        ");
  201.     print("                                                           ");
  202.     print("Dieses Skript ist ein einzigartiges Selfmade!              ");
  203.     print("Viel Spaß beim spielen!                                   ");
  204.     print("*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*");
  205. }
  206.  
  207. /*==============================[ Callbacks ]================================*/
  208.  
  209. public OnGameModeInit()
  210. {
  211. //*=*=*=*=*=*=*=* MySQL Verbindung + Log *=*=*=*=*=*=*=*
  212.     ConnectToDatabase();
  213.     mysql_debug(MySQLLog);
  214. //*=*=*=*=*=*=*=* Client Einstellungen *=*=*=*=*=*=*=*
  215.     SendRconCommand("hostname "Hostname"");
  216.     SendRconCommand("mapname "Mapname"");
  217.     SetGameModeText(GamemodeName);
  218.  
  219. //Startbildshirm (textdraw)
  220.     StartBildschirm[0] = TextDrawCreate(663.000000, -12.000000, "             ");TextDrawBackgroundColor(StartBildschirm[0], 255);TextDrawFont(StartBildschirm[0], 1);TextDrawLetterSize(StartBildschirm[0], 0.500000, 1.000000);TextDrawColor(StartBildschirm[0], -1);TextDrawSetOutline(StartBildschirm[0], 0);TextDrawSetProportional(StartBildschirm[0], 1);TextDrawSetShadow(StartBildschirm[0], 1);TextDrawUseBox(StartBildschirm[0], 1);TextDrawBoxColor(StartBildschirm[0], 153);
  221.     StartBildschirm[1] = TextDrawCreate(663.000000, 339.000000, "             ");TextDrawBackgroundColor(StartBildschirm[1], 255);TextDrawFont(StartBildschirm[1], 1);TextDrawLetterSize(StartBildschirm[1], 0.500000, 1.000000);TextDrawColor(StartBildschirm[1], -1);TextDrawSetOutline(StartBildschirm[1], 0);TextDrawSetProportional(StartBildschirm[1], 1);TextDrawSetShadow(StartBildschirm[1], 1);TextDrawUseBox(StartBildschirm[1], 1);TextDrawBoxColor(StartBildschirm[1], 153);
  222.     StartBildschirm[2] = TextDrawCreate(41.000000, 11.000000, ""ServerName"");TextDrawBackgroundColor(StartBildschirm[2], 255);TextDrawFont(StartBildschirm[2], 1);TextDrawLetterSize(StartBildschirm[2], 1.109999, 7.099999);TextDrawColor(StartBildschirm[2], -1);TextDrawSetOutline(StartBildschirm[2], 1);TextDrawSetProportional(StartBildschirm[2], 1);
  223.     StartBildschirm[3] = TextDrawCreate(676.000000, 99.000000, " ");TextDrawBackgroundColor(StartBildschirm[3], 255);TextDrawFont(StartBildschirm[3], 1);TextDrawLetterSize(StartBildschirm[3], 1.610000, 1.000000);TextDrawColor(StartBildschirm[3], -1);TextDrawSetOutline(StartBildschirm[3], 0);TextDrawSetProportional(StartBildschirm[3], 1);TextDrawSetShadow(StartBildschirm[3], 1);TextDrawUseBox(StartBildschirm[3], 1);TextDrawBoxColor(StartBildschirm[3], 255);
  224.     StartBildschirm[4] = TextDrawCreate(676.000000, 337.000000, " ");TextDrawBackgroundColor(StartBildschirm[4], 255);TextDrawFont(StartBildschirm[4], 1);TextDrawLetterSize(StartBildschirm[4], 1.610000, 1.000000);TextDrawColor(StartBildschirm[4], -1);TextDrawSetOutline(StartBildschirm[4], 0);TextDrawSetProportional(StartBildschirm[4], 1);TextDrawSetShadow(StartBildschirm[4], 1);TextDrawUseBox(StartBildschirm[4], 1);TextDrawBoxColor(StartBildschirm[4], 255);
  225.     TextDrawTextSize(StartBildschirm[0], -10.000000, 0.000000);TextDrawTextSize(StartBildschirm[1], -10.000000, 0.000000);TextDrawTextSize(StartBildschirm[3], -8.000000, 0.000000);TextDrawTextSize(StartBildschirm[4], -8.000000, 0.000000);
  226.     TextDrawSetSelectable(StartBildschirm[0], 0);TextDrawSetSelectable(StartBildschirm[1], 0);TextDrawSetSelectable(StartBildschirm[2], 0);TextDrawSetSelectable(StartBildschirm[3], 0);TextDrawSetSelectable(StartBildschirm[4], 0);
  227.  
  228. /*=*=*=*=*=*=*=**=*=*=*=*=*=*=* Allgemeines *=*=*=*=*=*=*=**=*=*=*=*=*=*=*/
  229. /*
  230.     Diese Sachen sind oben im Skript einstellbar,
  231.     und können ganz simple bearbeitet werden
  232. */
  233.     LimitGlobalChatRadius(0);   //Der Chatradius
  234.     ShowPlayerMarkers(SpielerAufKarte); // Spieler auf der Minimap sichtbar
  235.     ShowNameTags(SpielerNameUeberKopf); //Name über Spieler
  236.     SetNameTagDrawDistance(SpielerNameUeberKopfDistanz); //Name über Spieler (Distanz)
  237.     DisableInteriorEnterExits();//Unwichtig aber, macht alle automatischen eingänge von SA:MP weg
  238.     EnableStuntBonusForAll(Stuntbonus); // Stuntbonus von GTA (wenn man stunts macht wie im singleplayer)
  239.     AddPlayerClass(3,Zivispawn_1,0,0,0,0,0,0,0); //Wichtig: An diesem Punkt spawnt der Spieler!
  240. /*=*=*=*=*=*=*=**=*=*=*=*=*=*=**=*=*=*=*=*=*=**=*=*=*=*=*=*=**=*=*=*=*=*=*=*/
  241.     return 1;
  242. }
  243.  
  244. public OnGameModeExit()
  245. {
  246.     for(new i=0;i<MAX_PLAYERS;i++)
  247.     {
  248.         if(Eingeloggt[i]==1)
  249.         {
  250.             SavePlayer(i);
  251.         }
  252.     }
  253.     return 1;
  254. }
  255. /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=[ OnPlayerConnect & Disconnect ]=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
  256.  
  257. public OnPlayerConnect(playerid)
  258. {
  259. //----------------------- Verbotene Namen (Oben im Skript einstellbar) -------------------
  260.     new player;
  261.     for(new i = 0; i < sizeof(BadNames); i++)
  262.     {
  263.         if(strfind(GetName(player), BadNames[i], true) != -1)
  264.         {if(strlen(GetName(player)) == strlen(BadNames[i]))
  265.         {
  266.             SendClientMessage(playerid, Rot, "Der von dir benutzte Name ist nicht erlaubt!");
  267.             SendClientMessage(playerid, Weiß, "Bitte wähle einen Namen im Format:");
  268.             SendClientMessage(playerid, Grün, "3-15 Zeichen! | Nur A-z | 0-9 | "COLR" Keine Sonderzeichen!");Kick(playerid);}
  269.         }
  270.     }
  271.     //Intro
  272.     LoginIntro = SetTimerEx("LoginZeigen",1000,1,"d",playerid);
  273.     TogglePlayerSpectating(playerid,1);
  274.     Eingeloggt[playerid]=0;
  275.     return 1;
  276. }
  277.  
  278. public OnPlayerDisconnect(playerid, reason)
  279. {
  280.     if(Eingeloggt[playerid]==0)return 0;
  281.     SavePlayer(playerid);
  282.     return 1;
  283. }
  284. /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=[ Requestclass ]=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
  285.  
  286. public OnPlayerRequestClass(playerid, classid)
  287. {
  288.     RequestTimer = SetTimerEx("RequestWeg",0,0,"i",playerid);
  289.     return 1;
  290. }
  291.  
  292. public RequestWeg(playerid)
  293. {
  294.     SpawnPlayer(playerid);
  295.     KillTimer(RequestTimer);
  296.     return 1;
  297. }
  298.  
  299.  
  300. /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*[ OnPlayerSpawn ]*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*==*=*=*=*/
  301.  
  302. public OnPlayerSpawn(playerid)
  303. {
  304.  
  305.     if(Eingeloggt[playerid]==0){SendClientMessage(playerid, Rot,"Du bist nicht eingeloggt");Kick(playerid);}
  306. //Wenn doch...
  307.     else if(Eingeloggt[playerid]==1)
  308.     {
  309.         for(new x = 0; x < 5; x++ ){TextDrawHideForPlayer(playerid, StartBildschirm[x]);}
  310.         SetPlayerSkin(playerid,SpielerInfo[playerid][pSkin]);TogglePlayerControllable(playerid,1);
  311.     }
  312.     return 1;
  313. }
  314.  
  315. /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*[ Login Intro ]*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
  316.  
  317. public LoginZeigen(playerid)
  318. {
  319.     for(new x = 0; x < 5; x++ ){TextDrawShowForPlayer(playerid, StartBildschirm[x]);}
  320.     InterpolateCameraPos(playerid, 1092.991699, -1519.670776, 201.314895, 1385.267211, -936.523803, 87.020683, 7777);
  321.     InterpolateCameraLookAt(playerid, 1096.116577, -1515.861572, 200.463333, 1385.802734, -931.559204, 86.763908, 7777);
  322.     KillTimer(LoginIntro);
  323.     //Login / Register
  324.     if(CheckAccount(playerid) == 0)
  325.     {ShowDialog(playerid, DG_REGISTER);}
  326.     else{ShowDialog(playerid, DG_LOGIN);}
  327.     mysql_free_result();
  328.     for(new x = 0; x < 10; x++ ) {SendClientMessage(playerid,Schwarz,"");}
  329.     return 1;
  330. }
  331.  
  332. /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*[ OnPlayerText (Chat) ]*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
  333.  
  334. public OnPlayerText(playerid, text[])
  335. {
  336.     if(Eingeloggt[playerid]==0)return 0;
  337. //------------- Verbotene Namen(Oben im Skript einstellbar) -----------
  338.     for(new i = 0; i < sizeof(BadWords); i++)
  339.     {if(strfind(text, BadWords[i], true) != -1){SendClientMessage(playerid, Rot, "Benutze keine Schimpfwörter!");return 0;}}
  340.     return 0;
  341. }
  342.  
  343. /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*[ OnPlayerCommandText ]*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
  344.  
  345. public OnPlayerCommandText(playerid, cmdtext[])
  346. {
  347.     return 0;
  348. }
  349.  
  350. //Wenn ein Befehl nicht existiert
  351. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  352. {
  353.     new string[128];
  354.     format(string, sizeof string, "Der Befehl "COLO"%s"COLW" existiert nicht!", cmdtext);
  355.     if(!success)return SendClientMessage(playerid, Weiß, string);
  356.     return 1;
  357. }
  358.  
  359. /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=[ OnDialogResponse ]*=**=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
  360. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  361. {
  362.     switch(dialogid)
  363.     {
  364. //Registrations Vorgang
  365.         case DG_REGISTER:
  366.         {
  367.             new query[128];
  368.             if(!response) return Kick(playerid);
  369.             if(!strlen(inputtext)) return ShowDialog(playerid, DG_REGISTER);
  370.             else
  371.             {
  372.                 CreateAccount(playerid, inputtext);
  373.                 format(query,sizeof(query),"INSERT INTO `Spieler` (Name,Passwort,Registriert,Level,Adminlevel,Premium,Kills,Tode,Skin,Geld,Registrierungsdatum) VALUES('%s','%s','0','0','0','0','0','0','0','0','0')",GetName(playerid), inputtext);
  374.                 mysql_query(query); mysql_store_result();
  375.                 SpawnPlayer(playerid);
  376.                 Eingeloggt[playerid]=1;
  377.             }
  378.         }
  379. //Login Vorgang
  380.         case DG_LOGIN:
  381.         {
  382.             if(!response) return Kick(playerid);
  383.             if(!strlen(inputtext)) return ShowDialog(playerid, DG_LOGIN);
  384.             {
  385.                 if(strcmp(inputtext, ReturnPasswort(GetName(playerid))) == 0)
  386.                 {
  387.                     TogglePlayerSpectating(playerid,0);
  388.                     SetPlayerInterior(playerid, 0);
  389.                     Eingeloggt[playerid]=1;
  390.                     LoadPlayer(playerid);
  391.                     SpawnPlayer(playerid);
  392.                 }
  393.                 else return ShowDialog(playerid, DG_LOGIN);
  394.             }
  395.         }
  396.     }
  397.     return 1;
  398. }
  399.  
  400. /*-------Spieler Name-----*/
  401. stock GetName(playerid)
  402. {
  403.     new Name[MAX_PLAYER_NAME];
  404.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  405.     return Name;
  406. }
  407.  
  408. /*-------ShowDialog(Verkürzung von ShowPlayerDialog)-----*/
  409. stock ShowDialog(playerid, dialogid)
  410. {
  411.     switch(dialogid)
  412.     {
  413.         case DG_REGISTER:
  414.         {
  415.             new string[230];
  416.             format(string, sizeof(string), ""COLW"Herzlich Willkommen auf "ServerName"!\n"COLW"Der Account "COLO"%s"COLW" ist nicht registriert!\nWenn du diesen Account registrieren willst,\ngib unten dein gewünschtes Passwort ein!", GetName(playerid));
  417.             ShowPlayerDialog(playerid, DG_REGISTER, DG_PASSWORD, ServerName, string, "Erstellen", "Abbrechen");
  418.         }
  419.         case DG_LOGIN:
  420.         {
  421.             new string[230];
  422.             format(string, sizeof(string),  ""COLW"Herzlich Willkommen auf "ServerName"!\n"COLW"Der Account "COLO"%s"COLW" ist registriert!\nUm dich einzuloggen gib dein Passwort ein!", GetName(playerid));
  423.             ShowPlayerDialog(playerid, DG_LOGIN, DG_PASSWORD, ServerName, string, "Login", "Abbrechen");
  424.         }
  425.     }
  426.     return 1;
  427. }
  428.  
  429. stock LoadPlayer(playerid)
  430. {
  431.     if(IsPlayerConnected(playerid))
  432.     {
  433.         SpielerInfo[playerid][ pLevel           ] = mysql_GetInt(Tabelle_Spieler, "Level",              "Name", GetName(playerid));
  434.         SpielerInfo[playerid][ pAdminlevel      ] = mysql_GetInt(Tabelle_Spieler, "Adminlevel",         "Name", GetName(playerid));
  435.         SpielerInfo[playerid][ pSkin            ] = mysql_GetInt(Tabelle_Spieler, "Skin",                   "Name", GetName(playerid));
  436.         SpielerInfo[playerid][ pGeld            ] = mysql_GetInt(Tabelle_Spieler, "Geld",                   "Name", GetName(playerid));
  437.         format(SpielerInfo[playerid][pRegDate   ],32,"%s",  mysql_GetString(Tabelle_Spieler, "Registrierungsdatum","Name", GetName(playerid)));
  438. //Sachen werden gegeben
  439.         GivePlayerMoney(playerid, SpielerInfo[playerid][ pGeld ]);
  440.         SetPlayerScore (playerid, SpielerInfo[playerid][ pLevel ]);
  441.         SetPlayerSkin  (playerid, SpielerInfo[playerid][ pSkin ]);
  442.     }
  443.     return 1;
  444. }
  445.  
  446. stock SavePlayer(playerid)
  447. {
  448.     if(IsPlayerConnected(playerid))
  449.     {
  450.         SpielerInfo[playerid][ pGeld  ] = GetPlayerMoney(playerid);
  451.         SpielerInfo[playerid][ pLevel ] = GetPlayerScore(playerid);
  452.         SpielerInfo[playerid][ pSkin  ] = GetPlayerSkin(playerid);
  453.         mysql_SetInt(Tabelle_Spieler,       "Level",                SpielerInfo[playerid][ pLevel               ]"Name", GetName(playerid));
  454.         mysql_SetInt(Tabelle_Spieler,       "Adminlevel",           SpielerInfo[playerid][ pAdminlevel          ]"Name", GetName(playerid));
  455.         mysql_SetInt(Tabelle_Spieler,       "Skin",                 SpielerInfo[playerid][ pSkin                ]"Name", GetName(playerid));
  456.         mysql_SetInt(Tabelle_Spieler,       "Geld",                 SpielerInfo[playerid][ pGeld                ]"Name", GetName(playerid));
  457.         mysql_SetString(Tabelle_Spieler,    "Registrierungsdatum",  SpielerInfo[playerid][ pRegDate             ],  "Name", GetName(playerid));
  458.     }
  459.     return 1;
  460. }
  461.  
  462. stock CreateAccount(playerid, passwort[])
  463. {
  464.     new query[256],Name[MAX_PLAYER_NAME];
  465.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  466.     mysql_real_escape_string(Name,Name);
  467.     mysql_real_escape_string(passwort,passwort);
  468.     format(query, sizeof(query), "INSERT INTO "Tabelle_Spieler" (Name, Passwort) VALUES ('%s', '%s')", Name, passwort);
  469.     mysql_query(query);
  470.     SetPlayerColor(playerid, Zivifarbe);
  471.     SetPlayerSkin(playerid, SpielerInfo[playerid][ pSkin ]);
  472.     mysql_SetInt(Tabelle_Spieler, "Level",      Startlevel, "Name", GetName(playerid));
  473.     mysql_SetInt(Tabelle_Spieler, "Adminlevel",     0, "Name", GetName(playerid));
  474.     mysql_SetInt(Tabelle_Spieler, "Skin",       (ZiviSkin[random(10)]), "Name", GetName(playerid));
  475.     mysql_SetInt(Tabelle_Spieler, "Geld",       Startgeld, "Name", GetName(playerid));
  476. //Registrierungsdatum
  477.     new Datum[30];
  478.     getdate(Jahr, Monat, Tag);gettime(Stunde,Minute);
  479.     format(Datum, sizeof(Datum), "%d.%d.%d um %d:%d", Tag, Monat, Jahr, Stunde,Minute);
  480.     SpielerInfo[playerid][pRegDate] = Datum;
  481.     mysql_SetString(Tabelle_Spieler, "Registrierungsdatum", Datum, "Name", GetName(playerid));
  482.     return 1;
  483. }
  484.  
  485. stock ConnectToDatabase()
  486. {
  487.     mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  488.     if(mysql_ping() == 1)
  489.     {
  490.         print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
  491.         return 1;
  492.     }
  493.     else
  494.     {
  495.         print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  496.         print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
  497.         mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  498.  
  499.         if(mysql_ping() == 1)
  500.         {
  501.             print("<-| [MYSQL] Es konnte beim 2 Versuch eine Verbindung hergestellt werden!");
  502.             return 1;
  503.         }
  504.         else
  505.         {
  506.             print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  507.             print("<-| [MYSQL] Der Server wird nun beendet!");
  508.             SendRconCommand("exit");
  509.             return 1;
  510.         }
  511.     }
  512. }
  513.  
  514. stock CheckAccount(playerid)
  515. {
  516.     new Query[128], Name[MAX_PLAYER_NAME];
  517.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  518.     mysql_real_escape_string(Name, Name);
  519.     format(Query, sizeof(Query), "SELECT * FROM "Tabelle_Spieler" WHERE Name = '%s'", Name);
  520.     mysql_query(Query);
  521.     mysql_store_result();
  522.     return mysql_num_rows();
  523. }
  524.  
  525. stock ReturnPasswort(Name[])
  526. {
  527.     new query[128], Get[128];
  528.     mysql_real_escape_string(Name, Name);
  529.     format(query, 128, "SELECT Passwort FROM "Tabelle_Spieler" WHERE Name = '%s'", Name);
  530.     mysql_query(query);
  531.     mysql_store_result();
  532.     mysql_fetch_row(Get);
  533.     mysql_free_result();
  534.     return Get;
  535. }
  536.  
  537. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  538. {
  539.     new query[256];
  540.     mysql_real_escape_string(Table, Table);
  541.     mysql_real_escape_string(Field, Field);
  542.     mysql_real_escape_string(Where, Where);
  543.     mysql_real_escape_string(Where2, Where2);
  544.     format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  545.     mysql_query(query);
  546.     return 1;
  547. }
  548.  
  549. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  550. {
  551.     new query[256];
  552.     mysql_real_escape_string(Table, Table);
  553.     mysql_real_escape_string(Field, Field);
  554.     mysql_real_escape_string(To, To);
  555.     mysql_real_escape_string(Where, Where);
  556.     mysql_real_escape_string(Where2, Where2);
  557.     format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  558.     mysql_query(query);
  559.     return 1;
  560. }
  561.  
  562. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  563. {
  564.     new query[256];
  565.     mysql_real_escape_string(Table, Table);
  566.     mysql_real_escape_string(Field, Field);
  567.     mysql_real_escape_string(Where, Where);
  568.     mysql_real_escape_string(Where2, Where2);
  569.     format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  570.     mysql_query(query);
  571.     return 1;
  572. }
  573.  
  574. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  575. {
  576.     new query[128];
  577.     mysql_real_escape_string(Table, Table);
  578.     mysql_real_escape_string(Field, Field);
  579.     mysql_real_escape_string(Where, Where);
  580.     mysql_real_escape_string(Is, Is);
  581.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  582.     mysql_query(query);
  583.     mysql_store_result();
  584.     new sqlint = mysql_fetch_int();
  585.     mysql_free_result();
  586.     return sqlint;
  587. }
  588.  
  589. stock mysql_GetString(Table[], Field[], Where[], Is[])
  590. {
  591.     new query[128], Get[128];
  592.     mysql_real_escape_string(Table, Table);
  593.     mysql_real_escape_string(Field, Field);
  594.     mysql_real_escape_string(Where, Where);
  595.     mysql_real_escape_string(Is, Is);
  596.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  597.     mysql_query(query);
  598.     mysql_store_result();
  599.     mysql_fetch_row(Get);
  600.     return Get;
  601. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement