Advertisement
Guest User

Untitled

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