Advertisement
Guest User

Untitled

a guest
Mar 4th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.74 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <a_mysql>
  4. #include <zcmd>
  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. PlayerInfo[playerid][pLogin]=false;
  106. return 1;
  107. }
  108. public OnPlayerSpawn(playerid)
  109. {
  110. SetPlayerPos(playerid, 1485.9121,-1743.3440,13.5469);
  111. SetPlayerFacingAngle(playerid, 2.0990);
  112. return 1;
  113. }
  114.  
  115. public OnPlayerCommandText(playerid, cmdtext[])
  116. {
  117. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  118. {
  119. // Do something here
  120. return 1;
  121. }
  122. return 0;
  123. }
  124. public OnPlayerRequestSpawn(playerid)
  125. {
  126. if(!PlayerInfo[playerid][pLogin])
  127. {
  128. //Funktion (Spawn ohne Registrierung / Login)
  129. Kick(playerid);
  130. }
  131. return 1;
  132. }
  133. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  134. {
  135. switch(dialogid)
  136. {
  137. case DIALOG_REGISTER:
  138. {
  139. if(!response) return Kick(playerid);
  140. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registrierung", "Registrierung (Text folgt)", "Registrieren", "Abbrechen");
  141.  
  142. new query[256];
  143. mysql_format(MySQLConnection, query, sizeof(query), "INSERT INTO server_accounts (Name, Password, RegisterIP) VALUES ('%e', MD5('%e'),'%s')", PlayerInfo[playerid][pName], inputtext, GetPlayerIP(playerid));
  144. mysql_function_query(MySQLConnection, query, true, "Register_Player", "d", playerid);
  145. return 1;
  146. }
  147. case DIALOG_LOGIN:
  148. {
  149. if(!response) return Kick(playerid);
  150. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Login (Text folgt)", "Login", "Abbrechen");
  151. new query[256];
  152. mysql_format(MySQLConnection, query, sizeof(query), "SELECT * FROM server_accounts WHERE Name = '%e' AND Password = MD5('%e')", PlayerInfo[playerid][pName], inputtext);
  153. mysql_function_query(MySQLConnection, query, true, "Login_Player", "d", playerid);
  154. }
  155. }
  156. return 1;
  157. }
  158. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  159. {
  160. return 1;
  161. }
  162. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  163. public Load_Server()
  164. {
  165. SendRconCommand("hostname "#SERVER_HOST1"");
  166. SendRconCommand("gamemodetext "#SERVER_MODE"");
  167. SendRconCommand("language "#SERVER_LANG"");
  168. SendRconCommand("weburl "#SERVER_WEB"");
  169.  
  170. }
  171. public MySQL_Connect()
  172. {
  173. mysql_log(1);
  174. print("MySQL: Die Verbindung zur Datenbank wird aufgebaut.");
  175. MySQLConnection = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_DATA, MySQL_PASS);
  176. print("MySQL: Die Verbindung zur Datenbank wurde erfolgreich hergestellt.");
  177. return 1;
  178. }
  179. public Check_Player(playerid)
  180. {
  181. PlayerInfo[playerid][pID] = 0;
  182. PlayerInfo[playerid][pLogin] = false;
  183. PlayerInfo[playerid][pLevel] = 0;
  184. PlayerInfo[playerid][pMoney] = 0;
  185. PlayerInfo[playerid][pAdmin] = 0;
  186. PlayerInfo[playerid][pFraktion] = 0;
  187. PlayerInfo[playerid][pRank] = 0;
  188. GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
  189. return 1;
  190. }
  191. public Check_Player_Step_2(playerid)
  192. {
  193. new rows;
  194. cache_get_row_count(rows);
  195. if(rows == 0)
  196. {
  197. //Funktion (Registrierung)
  198. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registrierung", "Registrierung (Text folgt)", "Registrieren", "Abbrechen");
  199. }
  200. else
  201. {
  202. //Funktion (Login)
  203. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Login (Text folgt)", "Login", "Abbrechen");
  204. }
  205. return 1;
  206. }
  207. public Register_Player(playerid)
  208. {
  209. PlayerInfo[playerid][pID] = cache_insert_id();
  210. PlayerInfo[playerid][pLogin] = true;
  211. PlayerPlaySound(playerid, 1057 , 0.0, 0.0, 0.0);
  212. SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
  213. GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
  214. SpawnPlayer(playerid);
  215. return 1;
  216. }
  217. public Login_Player(playerid)
  218. {
  219. new rows;
  220. cache_get_row_count(rows);
  221. if(rows == 0)
  222. {
  223. //Funktion (Falsches Passwort)
  224. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Login (Text folgt) - Falsches Passwort", "Login", "Abbrechen");
  225. }
  226. else
  227. {
  228. //Funktion (Spieler laden)
  229. PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID");
  230. PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level");
  231. PlayerInfo[playerid][pMoney] = cache_get_field_content_int(0, "Bargeld");
  232. PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Adminlevel");
  233. PlayerInfo[playerid][pFraktion] = cache_get_field_content_int(0, "Fraktion");
  234. PlayerInfo[playerid][pRank] = cache_get_field_content_int(0, "Rank");
  235.  
  236. PlayerInfo[playerid][pLogin] = true;
  237. PlayerPlaySound(playerid, 1057 , 0.0, 0.0, 0.0);
  238. GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
  239. PlayerInfo[playerid][pLogin]=true;
  240. SpawnPlayer(playerid);
  241. }
  242. return 1;
  243. }
  244. stock Save_Player(playerid)
  245. {
  246. if(!PlayerInfo[playerid][pLogin]) return 1;
  247. new query[256];
  248. mysql_format(MySQLConnection, query, sizeof(query), "UPDATE server_accounts SET Level = '%d', Bargeld = '%d', Adminlevel = '%d', Fraktion = '%d', Rank = '%d' WHERE ID = '%d'",
  249. PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pFraktion], PlayerInfo[playerid][pRank], PlayerInfo[playerid][pID]);
  250. mysql_function_query(MySQLConnection, query, false, "", "");
  251. return 1;
  252. }
  253. stock GetPlayerIP(playerid)
  254. {
  255. new IP[25];
  256. GetPlayerIp(playerid, IP, sizeof(IP));
  257. return IP;
  258. }
  259. stock Name(playerid)
  260. {
  261. new nname[MAX_PLAYER_NAME];
  262. GetPlayerName(playerid, nname, sizeof(nname));
  263. return nname;
  264. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement