Advertisement
Guest User

Untitled

a guest
Jun 17th, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.68 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3.  
  4. #undef MAX_PLAYERS
  5. #define MAX_PLAYERS 5
  6.  
  7. // MySQL Connection //
  8. #define DB_Host "127.0.0.1"
  9. #define DB_User "root"
  10. #define DB_Pass ""
  11. #define DB_Data "smr_accounts"
  12.  
  13. // Server Daten //
  14. ///////////////////////////////////////////////////////////////////////////////
  15. #define SERVERNAME "San Miami Roleplay"
  16. #define SERVERTAG "sMR"
  17. #define DATENBANKTAG "sMR"
  18. #define SERVERFARBE "{00AFFF}"
  19. #define SERVERFARBEHEX 0x00AFFF90
  20. #define HOST "San Miami Roleplay"
  21. #define SERVERVERSION "German Roleplay"
  22. #define MAPVERSION "San Andreas"
  23. #define MAXNPC "21"
  24. #define SCRIPTER "Eddy"
  25. ///////////////////////////////////////////////////////////////////////////////
  26.  
  27.  
  28. new DBHandle;
  29.  
  30. enum
  31. {
  32. Dialog_Register = 1,
  33. Dialog_Geschlecht,
  34. Dialog_Alter,
  35. Dialog_Login
  36. }
  37.  
  38. enum SpielerDaten
  39. {
  40. pName[MAX_PLAYER_NAME+1],
  41. pAlter,
  42. pBargeld,
  43. pKontoguthaben,
  44. pLastLogin[30],
  45. pRegDatum[30],
  46. pWrongPass,
  47. Float:pLeben,
  48. bool:pLogged
  49. }
  50. new Spieler[MAX_PLAYERS][SpielerDaten];
  51.  
  52. forward LoadPlayerDataSequence(playerid, l_step);
  53. forward KickPlayer(playerid);
  54. /*-------------------------------------------------------------------------------------------------------------------------------------*/
  55. /* Script anfang */
  56. /*-------------------------------------------------------------------------------------------------------------------------------------*/
  57. main()
  58. {
  59. print(""#SERVERNAME" It's Possible. "#SERVERVERSION"\n");
  60. print("--------------------------------");
  61. print("Dieses Script [Version: It's Possible. "#SERVERVERSION"] steht unter Datenschutz und darf");
  62. print("nur von dem jenigen Besitzer benutzt/verwendet werden.");
  63. print("Falls diese Richtlinien nicht eingehalten werden,werden");
  64. print("Rechtlicheschritte gegen sie eingeleitet. Script von "#SCRIPTER".");
  65. print("© Copyright by "#SERVERTAG"");
  66. print("--------------------------------");
  67. print(""#SERVERNAME" It's Possible. "#SERVERVERSION"\n");
  68. }
  69.  
  70. public OnGameModeInit()
  71. {
  72. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  73. SetGameModeText("Blank Script");
  74. DBHandle = mysql_connect(DB_Host,DB_User,DB_Data,DB_Pass);
  75. CreateTables();
  76. mysql_log(LOG_ALL);
  77. SendRconCommand("hostname "#HOST"");
  78. SendRconCommand("gamemodetext "#SERVERVERSION"");
  79. SendRconCommand("mapname "#MAPVERSION"");
  80. SendRconCommand("weburl "#WEBURL"");
  81. SendRconCommand("maxnpc "#MAXNPC"");
  82. return 1;
  83. }
  84.  
  85. public OnGameModeExit()
  86. {
  87. mysql_close();
  88. return 1;
  89. }
  90.  
  91. public OnPlayerRequestClass(playerid, classid)
  92. {
  93. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  94. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  95. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  96. return 1;
  97. }
  98.  
  99. public OnPlayerConnect(playerid)
  100. {
  101. GetPlayerName(playerid,Spieler[playerid][pName],MAX_PLAYER_NAME);
  102. new query[160 + MAX_PLAYER_NAME];
  103. mysql_format(DBHandle, query, sizeof(query),"SELECT COUNT(*) AS `count` FROM `Accounts` WHERE `pName` = '%e'",Spieler[playerid][pName]);
  104. mysql_function_query(DBHandle, query, true, "LoadPlayerDataSequence","dd",playerid,1);
  105. return 1;
  106. }
  107.  
  108. public OnPlayerDisconnect(playerid, reason)
  109. {
  110. if(Spieler[playerid][pLogged])
  111. {
  112. SavePlayerData(playerid);
  113. }
  114. ResetPlayerVars(playerid);
  115. return 1;
  116. }
  117.  
  118. public OnPlayerSpawn(playerid)
  119. {
  120. SetSpawnInfo(playerid,0,185,1958.3783, 1343.1572, 15.3746,0,0,0,0,0,0,0);
  121. return 1;
  122. }
  123.  
  124. public OnPlayerDeath(playerid, killerid, reason)
  125. {
  126. return 1;
  127. }
  128.  
  129. public OnVehicleSpawn(vehicleid)
  130. {
  131. return 1;
  132. }
  133.  
  134. public OnVehicleDeath(vehicleid, killerid)
  135. {
  136. return 1;
  137. }
  138.  
  139. public OnPlayerText(playerid, text[])
  140. {
  141. return 1;
  142. }
  143.  
  144. public OnPlayerCommandText(playerid, cmdtext[])
  145. {
  146. return 0;
  147. }
  148.  
  149. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  150. {
  151. return 1;
  152. }
  153.  
  154. public OnPlayerExitVehicle(playerid, vehicleid)
  155. {
  156. return 1;
  157. }
  158.  
  159. public OnPlayerStateChange(playerid, newstate, oldstate)
  160. {
  161. return 1;
  162. }
  163.  
  164. public OnPlayerEnterCheckpoint(playerid)
  165. {
  166. return 1;
  167. }
  168.  
  169. public OnPlayerLeaveCheckpoint(playerid)
  170. {
  171. return 1;
  172. }
  173.  
  174. public OnPlayerEnterRaceCheckpoint(playerid)
  175. {
  176. return 1;
  177. }
  178.  
  179. public OnPlayerLeaveRaceCheckpoint(playerid)
  180. {
  181. return 1;
  182. }
  183.  
  184. public OnRconCommand(cmd[])
  185. {
  186. return 1;
  187. }
  188.  
  189. public OnPlayerRequestSpawn(playerid)
  190. {
  191. if(!Spieler[playerid][pLogged]) return 0; SendClientMessage(playerid,0x861014FF,"Sie müssen sich zuerst Einloggen um Spawnen zu können!");
  192. return 1;
  193. }
  194.  
  195. public OnObjectMoved(objectid)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnPlayerObjectMoved(playerid, objectid)
  201. {
  202. return 1;
  203. }
  204.  
  205. public OnPlayerPickUpPickup(playerid, pickupid)
  206. {
  207. return 1;
  208. }
  209.  
  210. public OnVehicleMod(playerid, vehicleid, componentid)
  211. {
  212. return 1;
  213. }
  214.  
  215. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  216. {
  217. return 1;
  218. }
  219.  
  220. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  221. {
  222. return 1;
  223. }
  224.  
  225. public OnPlayerSelectedMenuRow(playerid, row)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnPlayerExitedMenu(playerid)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnRconLoginAttempt(ip[], password[], success)
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnPlayerUpdate(playerid)
  251. {
  252. return 1;
  253. }
  254.  
  255. public OnPlayerStreamIn(playerid, forplayerid)
  256. {
  257. return 1;
  258. }
  259.  
  260. public OnPlayerStreamOut(playerid, forplayerid)
  261. {
  262. return 1;
  263. }
  264.  
  265. public OnVehicleStreamIn(vehicleid, forplayerid)
  266. {
  267. return 1;
  268. }
  269.  
  270. public OnVehicleStreamOut(vehicleid, forplayerid)
  271. {
  272. return 1;
  273. }
  274.  
  275. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  276. {
  277. switch(dialogid)
  278. {
  279. case Dialog_Register:
  280. {
  281. if(!response)
  282. {
  283. SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
  284. SetTimerEx("KickPlayer",250,0,"i",playerid);
  285. return 1;
  286. }
  287. if(!inputtext[0] || !(3 <= strlen(inputtext) <= 10))
  288. {
  289. ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"SmR: {0x3252BEFF}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen\nnicht in unserer Datenbank gefunden. Um einen Charakter auf unserem Server zu Erstellen\nbenötigen wir einige Informationen. Als erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\nMerken Sie sich Ihr Passwort Gut.\n\nKlicken Sie anschließend auf Annehmen.","Annehmen","Abbrechen");
  290. return 1;
  291. }
  292. new query[650 + MAX_PLAYER_NAME],Tag,Monat,Jahr,Stunde,Minute,Sekunde;
  293. getdate(Tag,Monat,Jahr);
  294. gettime(Stunde,Minute,Sekunde);
  295. format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
  296. mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Accounts` (`pName`, `pPasswort`, `pAlter`, `pBargeld`, `pKontoguthaben`, `pLastLogin`, `pRegDatum`, `pVersuche`, `pLeben`) VALUES ('%e','%e','%d','0','0','%s','%s','%d','100.0')",Spieler[playerid][pName],inputtext,Spieler[playerid][pAlter],query,query,Spieler[playerid][pWrongPass]);
  297. mysql_tquery(DBHandle, query, "", "");
  298. Spieler[playerid][pLogged] = true;
  299. SpawnPlayer(playerid);
  300. return 1;
  301. }
  302. case Dialog_Login:
  303. {
  304. if(!response)
  305. {
  306. SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
  307. SetTimerEx("KickPlayer",250,0,"i",playerid);
  308. return 1;
  309. }
  310. if(!inputtext[0] || !(3 <= strlen(inputtext) <= 25))
  311. {
  312. ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"SmR: {0x3252BEFF}Einloggen","{FFFFFF}Sie müssen von unserem System Identifiziert werden.\nGeben Sie dafür Ihr Passwort unten in das Feld ein.\n\n Klicken Sie anschließend auf Einloggen, damit Ihre Daten kontrolliert werden können.\n\nSie haben noch 3/3 versuche!","Einloggen","Abbrechen");
  313. return 1;
  314. }
  315. new query[180 + MAX_PLAYER_NAME];
  316. mysql_format(DBHandle, query,sizeof(query),"SELECT COUNT(*) AS `count` FROM `Accounts` WHERE `pName` ='%e' AND `pPasswort` ='%e'",Spieler[playerid][pName],inputtext);
  317. mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,2);
  318. return 1;
  319. }
  320. }
  321. return 1;
  322. }
  323.  
  324. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  325. {
  326. return 1;
  327. }
  328.  
  329. public LoadPlayerDataSequence(playerid, l_step)
  330. {
  331. switch(l_step)
  332. {
  333. case 1:
  334. {
  335. new count = cache_get_field_content_int(0,"count");
  336. if(count)
  337. {
  338. ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"SmR: {0x3252BEFF}Einloggen","{FFFFFF}Sie müssen von unserem System Identifiziert werden.\nGeben Sie dafür Ihr Passwort unten in das Feld ein.\n\n Klicken Sie anschließend auf Einloggen, damit Ihre Daten kontrolliert werden können.\n\nSie haben noch 3/3 versuche!","Einloggen","Abbrechen");
  339. return 1;
  340. }
  341. else
  342. {
  343. ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"SmR: {0x3252BEFF}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen\nnicht in unserer Datenbank gefunden. Um einen Charakter auf unserem Server zu Erstellen\nbenötigen wir einige Informationen. Als erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\n\nMerken Sie sich Ihr Passwort Gut.\n\nKlicken Sie anschließend auf Annehmen.","Annehmen","Abbrechen");
  344. return 1;
  345. }
  346. }
  347. case 2:
  348. {
  349. new count = cache_get_field_content_int(0,"count");
  350. if(count)
  351. {
  352. new query[160 + MAX_PLAYER_NAME];
  353. mysql_format(DBHandle, query ,sizeof(query),"SELECT * FROM `Accounts` WHERE `pName` = '%e'",Spieler[playerid][pName]);
  354. mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,3);
  355. return 1;
  356. }
  357. else
  358. {
  359. ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_PASSWORD,"SmR: {0xFF0000EE}Falsches Passwort","{FFFFFF}Das von Ihnen gewählte Passwort war leider nicht Richtig.\nGegebenfalls beachten Sie die Groß und Kleinschreibung.\n\nAchtung! Sie haben nur noch 2/3 versuche.","Einloggen","Abbrechen");
  360. return 1;
  361. }
  362. }
  363. case 3:
  364. {
  365. Spieler[playerid][pAlter] = cache_get_field_content_int(0,"pAlter");
  366. Spieler[playerid][pBargeld] = cache_get_field_content_int(0,"pBargeld");
  367. Spieler[playerid][pKontoguthaben] = cache_get_field_content_int(0,"pKontoguthaben");
  368. cache_get_field_content(0,"pLastLogin",Spieler[playerid][pLastLogin],DBHandle,30); // Länge angeben 30
  369. cache_get_field_content(0,"pRegDatum",Spieler[playerid][pRegDatum],DBHandle,30); // Länge angeben 30
  370. Spieler[playerid][pWrongPass] = cache_get_field_content_int(0,"pVersuche");
  371. Spieler[playerid][pLeben] = cache_get_field_content_float(100,"pLeben");
  372. Spieler[playerid][pLogged] = true;
  373. return 1;
  374. }
  375. default:
  376. {
  377. SendClientMessage(playerid,0x7D0000FF,"Es ist ein Fehler aufgetreten, Bitte starten Sie Ihren Clienten neu, und versuchen Sie es erneut,\nSollten weiterhin Fehler auftreten, so Melde Sie sich umgehend Bitte bei einem Teammitglied.");
  378. return 1;
  379. }
  380. }
  381. return 1;
  382. }
  383.  
  384. stock SavePlayerData(playerid)
  385. {
  386.  
  387. new query[650 + MAX_PLAYER_NAME],Tag,Monat,Jahr,Stunde,Minute,Sekunde;
  388. getdate(Tag,Monat,Jahr);
  389. gettime(Stunde,Minute,Sekunde);
  390. format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
  391. mysql_format(DBHandle, query, sizeof(query),"UPDATE `Accounts` SET `pAlter` = '%d', `pBargeld` = '%d', `pKontoguthaben` = '%d', `pLastLogin` = '%s', `pLeben` = '%.1f' WHERE `pName` = '%e'",Spieler[playerid][pAlter],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,Spieler[playerid][pLeben],Spieler[playerid][pName]);
  392. mysql_tquery(DBHandle, query, "","");
  393. return 1;
  394. }
  395.  
  396. stock ResetPlayerVars(playerid)
  397. {
  398. for(new x; SpielerDaten:x < SpielerDaten; ++x) Spieler[playerid][SpielerDaten:x] = 0;
  399. return 1;
  400. }
  401.  
  402. stock CreateTables()
  403. {
  404. mysql_tquery(DBHandle,"CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT, `pName` varchar(24), `pPasswort` varchar(24), `pAlter` int(2), `pBargeld` int(11), `pKontoguthaben` int(11), `pLastLogin` varchar(60), `pRegDatum` varchar(60), `pVersuche` int(11), `pLeben` float, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;","","");
  405. return 1;
  406. }
  407.  
  408. public KickPlayer(playerid) return Kick(playerid);
  409.  
  410. public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
  411. {
  412. printf("Errorid %d",errorid);
  413. print(error);
  414. print(callback);
  415. print(query);
  416. return 1;
  417. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement