Advertisement
Guest User

Untitled

a guest
Mar 4th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.58 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <a_mysql>
  4. #include <ocmd>
  5. //Server Informationen
  6. #define SERVER_NAME "City of SA"
  7. #define SERVER_HOST1 "City of SA - Reallife [0.3.7]"
  8. #define SERVER_HOST2 "City of SA - Selfmade! [0.3.7]"
  9. #define SERVER_MODE "Selfmade Reallife"
  10. #define SERVER_LANG "German / Deutsch"
  11. #define SERVER_WEB "www.city-of-sa.de"
  12. #define SERVER_ERS "Alex"
  13. #define SERVER_DAT "03.03.2018"
  14. //Systematische Einstellungen
  15. #define MAX_FRAKS 3
  16. #define MAX_RANKS 24
  17. //MySQL Server
  18. #define MySQL_HOST "localhost"
  19. #define MySQL_USER "root"
  20. #define MySQL_PASS ""
  21. #define MySQL_DATA "samp2"
  22. //Dialoge
  23. enum
  24. {
  25. DIALOG_REGISTER,
  26. DIALOG_LOGIN,
  27. DIALOG_ADMINS,
  28. DIALOG_NOTHING
  29. }
  30. //Serverseitige Definierungen
  31. new MySQLConnection;
  32. //Hinzugefügte Funktionen (Publics)
  33. forward Load_Server();
  34. forward MySQL_Connect();
  35. forward Check_Player(playerid);
  36. forward Check_Player_Step_2(playerid);
  37. forward Register_Player(playerid);
  38. forward Login_Player(playerid);
  39. forward Server_Admins(playerid);
  40. forward Load_Fraktionen();
  41. //Speicherenumatoren
  42. enum PlayerData
  43. {
  44. pID,
  45. bool:pLogin,
  46. pName[MAX_PLAYER_NAME],
  47. pLevel,
  48. pMoney,
  49. pAdmin,
  50. pFraktion,
  51. pRank
  52. }
  53. new PlayerInfo[MAX_PLAYERS][PlayerData];
  54. main()
  55. {
  56. print("======================================");
  57. print("Das Script wurde erfolgreich geladen ("#SERVER_NAME")");
  58. print("Ersteller: "#SERVER_ERS"");
  59. print("Datum: "#SERVER_DAT"");
  60. print("======================================");
  61. }
  62. public OnGameModeInit()
  63. {
  64. //Funktion (Server laden)
  65. Load_Server();
  66. MySQL_Connect();
  67.  
  68. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  69. return 1;
  70. }
  71. public OnGameModeExit()
  72. {
  73. //MySQL Funktionen
  74. mysql_close(MySQLConnection);
  75. return 1;
  76. }
  77. public OnPlayerRequestClass(playerid, classid)
  78. {
  79. //Funktionen (Login / Registrierung)
  80. /*
  81. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  82. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  83. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  84. */
  85. return 1;
  86. }
  87. public OnPlayerConnect(playerid)
  88. {
  89. //Funktionen (Login / Registrierung)
  90. PlayerInfo[playerid][pLogin]=false;
  91. if(!PlayerInfo[playerid][pLogin])
  92. {
  93. new query[128];
  94. mysql_format(MySQLConnection, query, sizeof(query), "SELECT id FROM server_accounts WHERE Name = '%e'", Name(playerid));
  95. mysql_function_query(MySQLConnection, query, true, "Check_Player_Step_2", "d", playerid);
  96. printf("%s", query);
  97. }
  98. Check_Player(playerid);
  99. return 1;
  100. }
  101. public OnPlayerDisconnect(playerid, reason)
  102. {
  103. //Funktion (Account)
  104. Save_Player(playerid);
  105. return 1;
  106. }
  107. public OnPlayerSpawn(playerid)
  108. {
  109. SetPlayerPos(playerid, 1485.9121,-1743.3440,13.5469);
  110. SetPlayerFacingAngle(playerid, 2.0990);
  111. return 1;
  112. }
  113. public OnPlayerDeath(playerid, killerid, reason)
  114. {
  115. return 1;
  116. }
  117. public OnVehicleSpawn(vehicleid)
  118. {
  119. return 1;
  120. }
  121. public OnVehicleDeath(vehicleid, killerid)
  122. {
  123. return 1;
  124. }
  125. public OnPlayerText(playerid, text[])
  126. {
  127. return 1;
  128. }
  129. public OnPlayerCommandText(playerid, cmdtext[])
  130. {
  131. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  132. {
  133. // Do something here
  134. return 1;
  135. }
  136. return 0;
  137. }
  138. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  139. {
  140. return 1;
  141. }
  142. public OnPlayerExitVehicle(playerid, vehicleid)
  143. {
  144. return 1;
  145. }
  146. public OnPlayerStateChange(playerid, newstate, oldstate)
  147. {
  148. return 1;
  149. }
  150. public OnPlayerEnterCheckpoint(playerid)
  151. {
  152. return 1;
  153. }
  154. public OnPlayerLeaveCheckpoint(playerid)
  155. {
  156. return 1;
  157. }
  158. public OnPlayerEnterRaceCheckpoint(playerid)
  159. {
  160. return 1;
  161. }
  162. public OnPlayerLeaveRaceCheckpoint(playerid)
  163. {
  164. return 1;
  165. }
  166. public OnRconCommand(cmd[])
  167. {
  168. return 1;
  169. }
  170. public OnPlayerRequestSpawn(playerid)
  171. {
  172. if(!PlayerInfo[playerid][pLogin])
  173. {
  174. //Funktion (Spawn ohne Registrierung / Login)
  175. Kick(playerid);
  176. }
  177. return 1;
  178. }
  179. public OnObjectMoved(objectid)
  180. {
  181. return 1;
  182. }
  183. public OnPlayerObjectMoved(playerid, objectid)
  184. {
  185. return 1;
  186. }
  187. public OnPlayerPickUpPickup(playerid, pickupid)
  188. {
  189. return 1;
  190. }
  191. public OnVehicleMod(playerid, vehicleid, componentid)
  192. {
  193. return 1;
  194. }
  195. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  196. {
  197. return 1;
  198. }
  199. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  200. {
  201. return 1;
  202. }
  203. public OnPlayerSelectedMenuRow(playerid, row)
  204. {
  205. return 1;
  206. }
  207. public OnPlayerExitedMenu(playerid)
  208. {
  209. return 1;
  210. }
  211. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  212. {
  213. return 1;
  214. }
  215. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  216. {
  217. return 1;
  218. }
  219. public OnRconLoginAttempt(ip[], password[], success)
  220. {
  221. return 1;
  222. }
  223. public OnPlayerUpdate(playerid)
  224. {
  225. return 1;
  226. }
  227. public OnPlayerStreamIn(playerid, forplayerid)
  228. {
  229. return 1;
  230. }
  231. public OnPlayerStreamOut(playerid, forplayerid)
  232. {
  233. return 1;
  234. }
  235. public OnVehicleStreamIn(vehicleid, forplayerid)
  236. {
  237. return 1;
  238. }
  239. public OnVehicleStreamOut(vehicleid, forplayerid)
  240. {
  241. return 1;
  242. }
  243. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  244. {
  245. switch(dialogid)
  246. {
  247. case DIALOG_REGISTER:
  248. {
  249. if(!response) return Kick(playerid);
  250. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registrierung", "Registrierung (Text folgt)", "Registrieren", "Abbrechen");
  251.  
  252. new query[256];
  253. mysql_format(MySQLConnection, query, sizeof(query), "INSERT INTO server_accounts (Name, Password, RegisterIP) VALUES ('%e', MD5('%e'),'%s')", PlayerInfo[playerid][pName], inputtext, GetPlayerIP(playerid));
  254. mysql_function_query(MySQLConnection, query, true, "Register_Player", "d", playerid);
  255. return 1;
  256. }
  257. case DIALOG_LOGIN:
  258. {
  259. if(!response) return Kick(playerid);
  260. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Login (Text folgt)", "Login", "Abbrechen");
  261. new query[256];
  262. mysql_format(MySQLConnection, query, sizeof(query), "SELECT * FROM server_accounts WHERE Name = '%e' AND Password = MD5('%e')", PlayerInfo[playerid][pName], inputtext);
  263. mysql_function_query(MySQLConnection, query, true, "Login_Player", "d", playerid);
  264. }
  265. }
  266. return 1;
  267. }
  268. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  269. {
  270. return 1;
  271. }
  272. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  273. public Load_Server()
  274. {
  275. SendRconCommand("hostname "#SERVER_HOST1"");
  276. SendRconCommand("gamemodetext "#SERVER_MODE"");
  277. SendRconCommand("language "#SERVER_LANG"");
  278. SendRconCommand("weburl "#SERVER_WEB"");
  279.  
  280. }
  281. public MySQL_Connect()
  282. {
  283. mysql_log(1);
  284. print("MySQL: Die Verbindung zur Datenbank wird aufgebaut.");
  285. MySQLConnection = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_DATA, MySQL_PASS);
  286. print("MySQL: Die Verbindung zur Datenbank wurde erfolgreich hergestellt.");
  287. return 1;
  288. }
  289. public Check_Player(playerid)
  290. {
  291. PlayerInfo[playerid][pID] = 0;
  292. PlayerInfo[playerid][pLogin] = false;
  293. PlayerInfo[playerid][pLevel] = 0;
  294. PlayerInfo[playerid][pMoney] = 0;
  295. PlayerInfo[playerid][pAdmin] = 0;
  296. PlayerInfo[playerid][pFraktion] = 0;
  297. PlayerInfo[playerid][pRank] = 0;
  298. GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
  299. return 1;
  300. }
  301. public Check_Player_Step_2(playerid)
  302. {
  303. new rows;
  304. cache_get_row_count(rows);
  305. if(rows == 0)
  306. {
  307. //Funktion (Registrierung)
  308. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registrierung", "Registrierung (Text folgt)", "Registrieren", "Abbrechen");
  309. }
  310. else
  311. {
  312. //Funktion (Login)
  313. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Login (Text folgt)", "Login", "Abbrechen");
  314. }
  315. return 1;
  316. }
  317. public Register_Player(playerid)
  318. {
  319. PlayerInfo[playerid][pID] = cache_insert_id();
  320. PlayerInfo[playerid][pLogin] = true;
  321. PlayerPlaySound(playerid, 1057 , 0.0, 0.0, 0.0);
  322. SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
  323. GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
  324. SpawnPlayer(playerid);
  325. return 1;
  326. }
  327. public Login_Player(playerid)
  328. {
  329. new rows;
  330. cache_get_row_count(rows);
  331. if(rows == 0)
  332. {
  333. //Funktion (Falsches Passwort)
  334. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Login (Text folgt) - Falsches Passwort", "Login", "Abbrechen");
  335. }
  336. else
  337. {
  338. //Funktion (Spieler laden)
  339. PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID");
  340. PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level");
  341. PlayerInfo[playerid][pMoney] = cache_get_field_content_int(0, "Bargeld");
  342. PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Adminlevel");
  343. PlayerInfo[playerid][pFraktion] = cache_get_field_content_int(0, "Fraktion");
  344. PlayerInfo[playerid][pRank] = cache_get_field_content_int(0, "Rank");
  345.  
  346. PlayerInfo[playerid][pLogin] = true;
  347. PlayerPlaySound(playerid, 1057 , 0.0, 0.0, 0.0);
  348. GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
  349. SpawnPlayer(playerid);
  350. PlayerInfo[playerid][pLogin]=true:
  351. }
  352. return 1;
  353. }
  354. stock Save_Player(playerid)
  355. {
  356. if(!PlayerInfo[playerid][pLogin]) return 1;
  357. new query[256];
  358. mysql_format(MySQLConnection, query, sizeof(query), "UPDATE server_accounts SET Level = '%d', Bargeld = '%d', Adminlevel = '%d', Fraktion = '%d', Rank = '%d' WHERE ID = '%d'",
  359. PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pFraktion], PlayerInfo[playerid][pRank], PlayerInfo[playerid][pID]);
  360. mysql_function_query(MySQLConnection, query, false, "", "");
  361. return 1;
  362. }
  363. stock GetPlayerIP(playerid)
  364. {
  365. new IP[25];
  366. GetPlayerIp(playerid, IP, sizeof(IP));
  367. return IP;
  368. }
  369. stock Name(playerid)
  370. {
  371. new nname[MAX_PLAYER_NAME];
  372. GetPlayerName(playerid, nname, sizeof(nname));
  373. return nname;
  374. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement