Advertisement
Guest User

Untitled

a guest
Jun 1st, 2013
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.75 KB | None | 0 0
  1.  
  2.  
  3. #include <a_samp>
  4. #include <a_mysql>
  5. #include <zcmd>
  6. #include <sscanf2>
  7.  
  8. /*#define SQL_HOST "localhost"
  9. #define SQL_USER "root"
  10. #define SQL_DATA "samp"
  11. #define SQL_PASS ""*/
  12. new nev[MAX_PLAYER_NAME];
  13. new Belepve[MAX_PLAYERS];
  14. new Regelve[MAX_PLAYERS];
  15. new JelszoLehetosegek[MAX_PLAYERS];
  16.  
  17. new Penz[MAX_PLAYERS];
  18. new Szint[MAX_PLAYERS];
  19. new XP[MAX_PLAYERS];
  20. new Perc[MAX_PLAYERS];
  21. new Ora[MAX_PLAYERS];
  22.  
  23. main()
  24. {
  25. print("\n----------------------------------");
  26. print(" Blank Gamemode by your name here");
  27. print("----------------------------------\n");
  28. }
  29.  
  30.  
  31.  
  32. public OnGameModeInit()
  33. {
  34.  
  35. SetGameModeText("Blank Script");
  36. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  37. //mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  38. mysql_connect("localhost","root","samp","");
  39. mysql_debug(1);
  40. //mysql_query("CREATE TABLE IF NOT EXISTS felhasznalok(id INT(6) NOT NULL AUTO_INCREMENT,nev VARCHAR(24), jelszo VARCHAR(16), szint INT(20), penz INT(32), IP VARCHAR(16), xp INT(20), perc INT(20), ora INT(20), ban BOOLEAN() )");
  41. return 1;
  42. }
  43.  
  44. public OnGameModeExit()
  45. {
  46. mysql_close();
  47. return 1;
  48. }
  49.  
  50. public OnPlayerRequestClass(playerid, classid)
  51. {
  52. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  53. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  54. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  55. return 1;
  56. }
  57.  
  58. public OnPlayerConnect(playerid)
  59. {
  60. JelszoLehetosegek[playerid] = 3;
  61. new query[200]; //Creates our variables.
  62. GetPlayerName(playerid, nev, sizeof(nev)); //Gets the players name
  63. format(query, sizeof(query), "SELECT IP FROM `felhasznalok` WHERE nev = '%s' LIMIT 1", nev); //Formats the query, view above the code for a explanation
  64. mysql_query(query); //This is our query function to query the string
  65. mysql_store_result(); //We store the result.
  66. new rows = mysql_num_rows(); //We get how many rows the query returned.
  67. if(rows == 0)
  68. {
  69. SendClientMessage(playerid,-1,"Üdv a szerveren!");
  70. SendClientMessage(playerid,-1,"Még nem regisztráltál a szerverre.Használd a /regisztracio [jelszó] parancsot!");
  71. Regelve[playerid] = 0;
  72. }
  73. if(rows == 1)
  74. {
  75. SendClientMessage(playerid,-1,"Üdv a szerveren!");
  76. SendClientMessage(playerid,-1,"Már regisztráltál a szerverre.Használd a /bejelentkezes [jelszó] parancsot!");
  77. Regelve[playerid] = 1;
  78. }
  79. return 1;
  80. }
  81.  
  82. public OnPlayerDisconnect(playerid, reason)
  83. {
  84. Belepve[playerid] = 0;
  85. Regelve[playerid] = 0;
  86. JelszoLehetosegek[playerid] = 0;
  87. Szint[playerid] = 0;
  88. XP[playerid] = 0;
  89. Perc[playerid] = 0;
  90. Ora[playerid] = 0;
  91. Penz[playerid] = 0;
  92. return 1;
  93. }
  94.  
  95. public OnPlayerSpawn(playerid)
  96. {
  97. return 1;
  98. }
  99.  
  100. public OnPlayerDeath(playerid, killerid, reason)
  101. {
  102. return 1;
  103. }
  104.  
  105. public OnVehicleSpawn(vehicleid)
  106. {
  107. return 1;
  108. }
  109.  
  110. public OnVehicleDeath(vehicleid, killerid)
  111. {
  112. return 1;
  113. }
  114.  
  115. public OnPlayerText(playerid, text[])
  116. {
  117. return 1;
  118. }
  119.  
  120. public OnPlayerCommandText(playerid, cmdtext[])
  121. {
  122. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  123. {
  124. // Do something here
  125. return 1;
  126. }
  127. return 0;
  128. }
  129.  
  130. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  131. {
  132. return 1;
  133. }
  134.  
  135. public OnPlayerExitVehicle(playerid, vehicleid)
  136. {
  137. return 1;
  138. }
  139.  
  140. public OnPlayerStateChange(playerid, newstate, oldstate)
  141. {
  142. return 1;
  143. }
  144.  
  145. public OnPlayerEnterCheckpoint(playerid)
  146. {
  147. return 1;
  148. }
  149.  
  150. public OnPlayerLeaveCheckpoint(playerid)
  151. {
  152. return 1;
  153. }
  154.  
  155. public OnPlayerEnterRaceCheckpoint(playerid)
  156. {
  157. return 1;
  158. }
  159.  
  160. public OnPlayerLeaveRaceCheckpoint(playerid)
  161. {
  162. return 1;
  163. }
  164.  
  165. public OnRconCommand(cmd[])
  166. {
  167. return 1;
  168. }
  169.  
  170. public OnPlayerRequestSpawn(playerid)
  171. {
  172. return 1;
  173. }
  174.  
  175. public OnObjectMoved(objectid)
  176. {
  177. return 1;
  178. }
  179.  
  180. public OnPlayerObjectMoved(playerid, objectid)
  181. {
  182. return 1;
  183. }
  184.  
  185. public OnPlayerPickUpPickup(playerid, pickupid)
  186. {
  187. return 1;
  188. }
  189.  
  190. public OnVehicleMod(playerid, vehicleid, componentid)
  191. {
  192. return 1;
  193. }
  194.  
  195. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  201. {
  202. return 1;
  203. }
  204.  
  205. public OnPlayerSelectedMenuRow(playerid, row)
  206. {
  207. return 1;
  208. }
  209.  
  210. public OnPlayerExitedMenu(playerid)
  211. {
  212. return 1;
  213. }
  214.  
  215. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  216. {
  217. return 1;
  218. }
  219.  
  220. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  221. {
  222. return 1;
  223. }
  224.  
  225. public OnRconLoginAttempt(ip[], password[], success)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnPlayerUpdate(playerid)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerStreamIn(playerid, forplayerid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnPlayerStreamOut(playerid, forplayerid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnVehicleStreamIn(vehicleid, forplayerid)
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnVehicleStreamOut(vehicleid, forplayerid)
  251. {
  252. return 1;
  253. }
  254.  
  255. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  256. {
  257. return 1;
  258. }
  259.  
  260. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  261. {
  262. return 1;
  263. }
  264.  
  265. CMD:regisztracio(playerid,params[])
  266. {
  267. if(IsPlayerConnected(playerid))
  268. {
  269. /*new query[200]; //Creates our variables.
  270. GetPlayerName(playerid, nev, sizeof(nev)); //Gets the players name
  271. format(query, sizeof(query), "SELECT IP FROM `felhasznalok` WHERE nev = '%s' LIMIT 1", nev); //Formats the query, view above the code for a explanation
  272. mysql_query(query); //This is our query function to query the string
  273. mysql_store_result(); //We store the result.
  274. new rows = mysql_num_rows(); //We get how many rows the query returned.*/
  275. if(Regelve[playerid] == 0)
  276. {
  277. new jelszo[128];
  278. if(sscanf(params,"s[128]",jelszo)) return SendClientMessage(playerid,-1,"Használat: /regisztracio [Jelszó]");
  279. if(strlen(jelszo) >=4 && strlen(jelszo) <= 16)
  280. {
  281. new IP[16],query[200];
  282. GetPlayerName(playerid, nev, sizeof(nev));
  283. GetPlayerIp(playerid, IP, 16);
  284. format(query, sizeof(query), "INSERT INTO felhasznalok(id, nev, jelszo, szint, penz, IP, xp, perc, ora, ban ) VALUES( 0,'%s', SHA1('%s'), 1, 0, '%s', 0, 0, 0, false)", nev, jelszo, IP);
  285. mysql_query(query);
  286. SendClientMessage(playerid,-1,"Sikeresen regisztráltál a szerverre!Használd a /bejelentkezes [jelszo] parancsot!");
  287. printf("%s regisztrált a szerverre.",nev);
  288. Regelve[playerid] = 1;
  289. mysql_free_result();
  290. return 1;
  291. }
  292. else return SendClientMessage(playerid,-1,"A jelszó hosszúsága minium 4 karakter,maximum 16 karakter.");
  293. }
  294. if(Regelve[playerid] == 1) return SendClientMessage(playerid,-1,"Már regisztráltál a szerverre!");
  295. }
  296. return 1;
  297. }
  298. CMD:bejelentkezes(playerid,params[])
  299. {
  300. if(IsPlayerConnected(playerid))
  301. {
  302. /*new query[300]; //Creates our variables.
  303. GetPlayerName(playerid, nev, sizeof(nev)); //Gets the players name
  304. format(query, sizeof(query), "SELECT IP FROM `felhasznalok` WHERE nev = '%s' LIMIT 1", nev); //Formats the query, view above the code for a explanation
  305. mysql_query(query); //This is our query function to query the string
  306. mysql_store_result(); //We store the result.
  307. new rows = mysql_num_rows(); //We get how many rows the query returned.
  308. if(Regelve[playerid] == 1)*/
  309. {
  310. new jelszo[128],query[200];
  311. GetPlayerName(playerid, nev, sizeof(nev));
  312. if(sscanf(params,"s[128]",jelszo)) return SendClientMessage(playerid,-1,"Használat: /bejelentkezes [Jelszó]");
  313. new escapepass[100]; //
  314. mysql_real_escape_string(jelszo, escapepass); //We escape the inputtext to avoid SQL injections.
  315. format(query, sizeof(query), "SELECT `nev` FROM felhasznalok WHERE nev = '%s' AND jelszo = SHA1('%s')", nev, escapepass);
  316. mysql_query(query);
  317. mysql_store_result();
  318. new numrows = mysql_num_rows();
  319. mysql_free_result();
  320. if(!numrows)
  321. {
  322. //This means that the password that the player
  323. //typed was incorrect and we will resend the dialog.
  324. new string[64];
  325. if(JelszoLehetosegek[playerid] > 1)
  326. {
  327. JelszoLehetosegek[playerid] --;
  328. format(string,sizeof(string),"Rossz jelszó,még ennyi lehetőséged van: %d",JelszoLehetosegek[playerid]);
  329. SendClientMessage(playerid,-1,string);
  330. printf("%s elrontotta a jelszavát.",nev);
  331. return 1;
  332. }
  333. else if(JelszoLehetosegek[playerid] == 1)
  334. {
  335. SendClientMessage(playerid,-1,"Minden lehetőségedet elrontottad,ezért ki lettél rúgva!");
  336. printf("%s ki lett rúgva mert háromszor rossz jelszót írt be.",nev);
  337. Kick(playerid);
  338. return 1;
  339. }
  340. }
  341. else
  342. {
  343. new savingstring[20];
  344. GetPlayerName(playerid, nev, sizeof(nev));
  345. format(query, sizeof(query), "SELECT * FROM felhasznalok WHERE nev = '%s'", nev);
  346. //We only select the variables that we want to use.
  347. //We don't need things like the password string or the user string.
  348. mysql_query(query); //Queries the result
  349. mysql_store_result(); //Store a result because it's a SELECT statement.
  350. while(mysql_fetch_row_format(query,"|"))
  351. {
  352. //We use while so that it does a single query, not multiple
  353. //Especially when we have more variables. If there is more
  354. //Variables, you should just split the line with sscanf. To
  355. //Make it easier.
  356. mysql_fetch_field_row(savingstring, "szint"); Szint[playerid] = strval(savingstring);
  357. mysql_fetch_field_row(savingstring, "xp"); XP[playerid] = strval(savingstring);
  358. mysql_fetch_field_row(savingstring, "perc"); Perc[playerid] = strval(savingstring);
  359. mysql_fetch_field_row(savingstring, "ora"); Ora[playerid] = strval(savingstring);
  360. mysql_fetch_field_row(savingstring, "penz"); Penz[playerid] = strval(savingstring);
  361. //If you are wondering why I'm using savingstring instead
  362. //Of a variable like using MoneyGiven right away, it's because
  363. //mysql_fetch_field_row requires a string.
  364. }
  365. mysql_free_result(); //We must always free a stored result
  366. SendClientMessage(playerid, -1, "Sikeresen bejelentkeztél!"); //Sends the client a message.
  367. Belepve[playerid] = 1; //Sets our logged in variable to one
  368. printf("%s bejelentkezett.",nev);
  369. return 1;
  370. }
  371. //This means that there is a user in the database with the same
  372. //password that we typed, we now proceed by using the login function.
  373.  
  374. //mysql_free_result();
  375. }
  376. if(Regelve[playerid] == 0) return SendClientMessage(playerid,-1,"Még nem regisztráltál a szerverre!");
  377. }
  378. return 1;
  379. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement