Guest User

Untitled

a guest
Feb 20th, 2013
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.14 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3.  
  4. #define SQL_HOST "127.0.0.1"
  5. #define SQL_USER "root"
  6. #define SQL_PASS "**zenziert**"
  7. #define SQL_DATA "gta"
  8.  
  9. #define DIALOG_REGISTER (1)
  10. #define DIALOG_LOGIN (2)
  11.  
  12. enum SpielerDaten
  13. {
  14. pName[MAX_PLAYER_NAME],
  15. pLevel,
  16. pGeld,
  17. pKills,
  18. pTode,
  19. Float:pHealth
  20. }
  21. new SpielerInfo[MAX_PLAYERS][SpielerDaten];
  22.  
  23. main()
  24. {
  25. print("\n----------------------------------");
  26. print(" Blank Gamemode by your name here");
  27. print("----------------------------------\n");
  28. }
  29.  
  30. public OnGameModeInit()
  31. {
  32. Connect_To_Database();
  33. SetGameModeText("Blank Script");
  34. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  35. return 1;
  36. }
  37.  
  38. public OnGameModeExit()
  39. {
  40. return 1;
  41. }
  42. public OnPlayerRequestClass(playerid, classid)
  43. {
  44. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  45. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  46. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  47. if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin auswahl uns neu Einloggen müssen.
  48. {
  49. if(mysql_CheckAccount(playerid) == 0)//Wür überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
  50. {
  51. SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
  52. SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
  53. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
  54. }
  55. else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
  56. {
  57. SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
  58. SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
  59. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
  60. }
  61. }
  62. return 1;
  63. }
  64.  
  65. public OnPlayerConnect(playerid)
  66. {
  67.  
  68. return 1;
  69. }
  70.  
  71. public OnPlayerDisconnect(playerid, reason)
  72. {
  73. SavePlayer(playerid);
  74. DeletePVar(playerid,"Eingeloggt");
  75. return 1;
  76. }
  77.  
  78. public OnPlayerSpawn(playerid)
  79. {
  80. return 1;
  81. }
  82.  
  83. public OnPlayerDeath(playerid, killerid, reason)
  84. {
  85. return 1;
  86. }
  87.  
  88. public OnVehicleSpawn(vehicleid)
  89. {
  90. return 1;
  91. }
  92.  
  93. public OnVehicleDeath(vehicleid, killerid)
  94. {
  95. return 1;
  96. }
  97.  
  98. public OnPlayerText(playerid, text[])
  99. {
  100. return 1;
  101. }
  102.  
  103. public OnPlayerCommandText(playerid, cmdtext[])
  104. {
  105. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  106. {
  107. // Do something here
  108. return 1;
  109. }
  110. return 0;
  111. }
  112.  
  113. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  114. {
  115. return 1;
  116. }
  117.  
  118. public OnPlayerExitVehicle(playerid, vehicleid)
  119. {
  120. return 1;
  121. }
  122.  
  123. public OnPlayerStateChange(playerid, newstate, oldstate)
  124. {
  125. return 1;
  126. }
  127.  
  128. public OnPlayerEnterCheckpoint(playerid)
  129. {
  130. return 1;
  131. }
  132.  
  133. public OnPlayerLeaveCheckpoint(playerid)
  134. {
  135. return 1;
  136. }
  137.  
  138. public OnPlayerEnterRaceCheckpoint(playerid)
  139. {
  140. return 1;
  141. }
  142.  
  143. public OnPlayerLeaveRaceCheckpoint(playerid)
  144. {
  145. return 1;
  146. }
  147.  
  148. public OnRconCommand(cmd[])
  149. {
  150. return 1;
  151. }
  152.  
  153. public OnPlayerRequestSpawn(playerid)
  154. {
  155. return 1;
  156. }
  157.  
  158. public OnObjectMoved(objectid)
  159. {
  160. return 1;
  161. }
  162.  
  163. public OnPlayerObjectMoved(playerid, objectid)
  164. {
  165. return 1;
  166. }
  167.  
  168. public OnPlayerPickUpPickup(playerid, pickupid)
  169. {
  170. return 1;
  171. }
  172.  
  173. public OnVehicleMod(playerid, vehicleid, componentid)
  174. {
  175. return 1;
  176. }
  177.  
  178. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  179. {
  180. return 1;
  181. }
  182.  
  183. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  184. {
  185. return 1;
  186. }
  187.  
  188. public OnPlayerSelectedMenuRow(playerid, row)
  189. {
  190. return 1;
  191. }
  192.  
  193. public OnPlayerExitedMenu(playerid)
  194. {
  195. return 1;
  196. }
  197.  
  198. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  199. {
  200. return 1;
  201. }
  202.  
  203. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  204. {
  205. return 1;
  206. }
  207.  
  208. public OnRconLoginAttempt(ip[], password[], success)
  209. {
  210. return 1;
  211. }
  212.  
  213. public OnPlayerUpdate(playerid)
  214. {
  215. return 1;
  216. }
  217.  
  218. public OnPlayerStreamIn(playerid, forplayerid)
  219. {
  220. return 1;
  221. }
  222.  
  223. public OnPlayerStreamOut(playerid, forplayerid)
  224. {
  225. return 1;
  226. }
  227.  
  228. public OnVehicleStreamIn(vehicleid, forplayerid)
  229. {
  230. return 1;
  231. }
  232.  
  233. public OnVehicleStreamOut(vehicleid, forplayerid)
  234. {
  235. return 1;
  236. }
  237.  
  238. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  239. {
  240. switch(dialogid)
  241. {
  242. case DIALOG_REGISTER:
  243. {
  244. if(response)
  245. {
  246. if(strlen(inputtext) == 0)
  247. {
  248. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurtz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
  249. return 1;
  250. }
  251. else
  252. {
  253. CreateAccount(playerid, inputtext);
  254. SetPVarInt(playerid,"Eingeloggt",1);
  255. SpawnPlayer(playerid);
  256. return 1;
  257. }
  258. }
  259. else
  260. {
  261. Kick(playerid);
  262. }
  263. }
  264. case DIALOG_LOGIN:
  265. {
  266. if(response)
  267. {
  268. if(strlen(inputtext) == 0)
  269. {
  270. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  271. return 1;
  272. }
  273. else
  274. {
  275. new SpielerName[MAX_PLAYER_NAME];
  276. GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
  277. if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true))
  278. {
  279. SetPVarInt(playerid,"Eingeloggt",1);
  280. LoadPlayer(playerid);
  281. SpawnPlayer(playerid);
  282. return 1;
  283. }
  284. else
  285. {
  286. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  287. return 1;
  288. }
  289. }
  290. }
  291. else
  292. {
  293. Kick(playerid);
  294. }
  295. }
  296. }
  297. return 1;
  298. }
  299.  
  300. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  301. {
  302. return 1;
  303. }
  304. stock Connect_To_Database()
  305. {
  306. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS); //Wir versuchen mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL Server zu verbinden.
  307. if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
  308. {
  309. //Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
  310. print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
  311. return true;
  312. }
  313. else
  314. {
  315. //Falls nicht wird erneut versucht eine verbindung aufzubauen.
  316. print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  317. print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
  318. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  319. if(mysql_ping() == 1)
  320. {
  321. print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
  322. return true;
  323. }
  324. else
  325. {
  326. //Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
  327. print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  328. print("<-| [MYSQL] Der Server wird nun beendet!");
  329. SendRconCommand("exit");
  330. return true;
  331. }
  332. }
  333. }
  334. stock mysql_CheckAccount(playerid)
  335. {
  336. new Query[128],Name[MAX_PLAYER_NAME];
  337. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  338. mysql_real_escape_string(Name, Name);
  339. format(Query, sizeof(Query), "SELECT * FROM accounts WHERE Name = '%s'", Name);
  340. mysql_query(Query);
  341. mysql_store_result();
  342. return mysql_num_rows();
  343. }
  344. stock CreateAccount(playerid, pass[])
  345. {
  346. new query[256],Name[MAX_PLAYER_NAME];
  347. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  348. mysql_real_escape_string(Name,Name);
  349. mysql_real_escape_string(pass,pass);
  350. format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', '%s')", Name, pass);
  351. mysql_query(query);
  352. return true;
  353. }
  354. stock mysql_ReturnPasswort(Name[])
  355. {
  356. new query[130], Get[130];
  357. mysql_real_escape_string(Name, Name);
  358. format(query, 128, "SELECT passwort FROM accounts WHERE Name = '%s'", Name);
  359. mysql_query(query);
  360. mysql_store_result();
  361. mysql_fetch_row(Get);
  362. mysql_free_result();
  363. return Get;
  364. }
  365. stock LoadPlayer(playerid)
  366. {
  367. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  368. {
  369. GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
  370. SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
  371. SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
  372. SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
  373. SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
  374. }
  375. return 1;
  376. }
  377. stock SavePlayer(playerid)
  378. {
  379. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  380. {
  381. if(GetPVarInt(playerid,"Eingeloggt") == 1)
  382. {
  383. mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
  384. mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
  385. mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
  386. mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
  387. mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
  388. }
  389. }
  390. return 1;
  391. }
  392. stock mysql_GetString(Table[], Field[], Where[], Is[])
  393. {
  394. new query[128], Get[128];
  395. mysql_real_escape_string(Table, Table);
  396. mysql_real_escape_string(Field, Field);
  397. mysql_real_escape_string(Where, Where);
  398. mysql_real_escape_string(Is, Is);
  399. format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  400. mysql_query(query);
  401. mysql_store_result();
  402. mysql_fetch_row(Get);
  403. return Get;
  404. }
  405. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  406. {
  407. new query[128];
  408. mysql_real_escape_string(Table, Table);
  409. mysql_real_escape_string(Field, Field);
  410. mysql_real_escape_string(Where, Where);
  411. mysql_real_escape_string(Is, Is);
  412. format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  413. mysql_query(query);
  414. mysql_store_result();
  415. new sqlint = mysql_fetch_int();
  416. mysql_free_result();
  417. return sqlint;
  418. }
  419. stock PlayerName(playerid)
  420. {
  421. new pname[MAX_PLAYER_NAME];
  422. GetPlayerName(playerid,pname,sizeof(pname));
  423. return pname;
  424. }
  425. stock mysql_GetFloat(Table[], Field[], Where[], Is[])
  426. {
  427. new query[128], Float:sqlfloat;
  428. mysql_real_escape_string(Table, Table);
  429. mysql_real_escape_string(Field, Field);
  430. mysql_real_escape_string(Where, Where);
  431. mysql_real_escape_string(Is, Is);
  432. format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  433. mysql_query(query);
  434. mysql_store_result();
  435. mysql_fetch_float(sqlfloat);
  436. mysql_free_result();
  437. return sqlfloat;
  438. }
  439. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  440. {
  441. new query[128];
  442. mysql_real_escape_string(Table, Table);
  443. mysql_real_escape_string(Field, Field);
  444. mysql_real_escape_string(Where, Where);
  445. mysql_real_escape_string(Where2, Where2);
  446. format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  447. mysql_query(query);
  448. return true;
  449. }
  450. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  451. {
  452. new query[128];
  453. mysql_real_escape_string(Table, Table);
  454. mysql_real_escape_string(Field, Field);
  455. mysql_real_escape_string(To, To);
  456. mysql_real_escape_string(Where, Where);
  457. mysql_real_escape_string(Where2, Where2);
  458. format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  459. mysql_query(query);
  460. return true;
  461. }
  462. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  463. {
  464. new query[128];
  465. mysql_real_escape_string(Table, Table);
  466. mysql_real_escape_string(Field, Field);
  467. mysql_real_escape_string(Where, Where);
  468. mysql_real_escape_string(Where2, Where2);
  469. format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  470. mysql_query(query);
  471. return true;
  472. }
Advertisement
Add Comment
Please, Sign In to add comment