Advertisement
Guest User

Untitled

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