Advertisement
Guest User

Untitled

a guest
Feb 19th, 2012
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.04 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #include <a_mysql>
  7.  
  8.  
  9. new pRegistrado[MAX_PLAYERS];
  10.  
  11. new pDinheiro[MAX_PLAYERS];
  12.  
  13. new pLogado[MAX_PLAYERS];
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. #if defined FILTERSCRIPT
  34.  
  35. public OnFilterScriptInit()
  36. {
  37. print("\n--------------------------------------");
  38. print(" Blank Filterscript by your name here");
  39. print("--------------------------------------\n");
  40. return 1;
  41. }
  42.  
  43. public OnFilterScriptExit()
  44. {
  45. return 1;
  46. }
  47.  
  48. #else
  49.  
  50. main()
  51. {
  52. print("\n----------------------------------");
  53. print(" Blank Gamemode by your name here");
  54. print("----------------------------------\n");
  55. }
  56.  
  57. #endif
  58.  
  59. public OnGameModeInit()
  60. {
  61. // Don't use these lines if it's a filterscript
  62. SetGameModeText("Blank Script");
  63. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  64. return 1;
  65. }
  66.  
  67. public OnGameModeExit()
  68. {
  69. return 1;
  70. }
  71.  
  72. public OnPlayerRequestClass(playerid, classid)
  73. {
  74. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  75. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  76. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  77. return 1;
  78. }
  79.  
  80. public OnPlayerConnect(playerid)
  81. {
  82. pDinheiro[playerid] = 0x0; //Reseta a variavel pDinheiro.
  83. new query[200], pname[24]; //Cria-se nossas variaveis para serem usadas.
  84. GetPlayerName(playerid, pname, 24); //Recebe o nome do jogador
  85. format(query, sizeof(query), "SELECT IP FROM `pinfo` WHERE user = '%s' LIMIT 1", pname); //Formata a QUERY para serem usadas %s, %i, %d, (basico do basico do pawn.)
  86. mysql_query(query); //Essa é a função da query
  87. mysql_store_result(); //Armazena os resultados
  88. new rows = mysql_num_rows(); //Iremos getar quantas rows a query retornou.
  89. if(!rows)
  90. {
  91. //Se a rows for 0, não encontrou nada
  92.  
  93. //Então iremos pedir o registro do jogador no banco de dados.
  94. ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Registrar","Você não ta registrado, registra aew campeão!","Registrar","Cancelar");
  95. }
  96. if(rows) //SENÃO
  97. {
  98. //Rows = 1 , existe na database
  99. //AUTO LOGIN
  100. new IP[2][16]; //Uma para o IP do banco de dados e uma para o IP do jogador!
  101. mysql_fetch_field_row(IP[0],"IP");
  102. GetPlayerIp(playerid, IP[1], 16);
  103. if(strlen(IP[0]) != 0 && !strcmp(IP[0], IP[1], true)) //Checa se os ips são iguais
  104. {
  105. MySQL_Login(playerid);
  106. }
  107. else if(!strlen(IP[0]) || strcmp(IP[0], IP[1], true))
  108. {
  109. ShowPlayerDialog(playerid, 15500, DIALOG_STYLE_INPUT, "Logar","Tu ta registrado manolo loga eww!","Logar","Cancelar");
  110. pRegistrado[playerid] = 1; //Sets the registered variable to 1 (Shows that the player is registered).
  111. }
  112. }
  113. mysql_free_result();
  114. return 1;
  115. }
  116.  
  117. public OnPlayerDisconnect(playerid, reason)
  118. {
  119. if(pLogado[playerid] == 1)
  120. {
  121. new score = GetPlayerScore(playerid); //Armazena o score em uma variavel
  122. new grana = GetPlayerMoney(playerid); //armazena o $$ em uma ' '
  123. new query[200], pname[24]; //Cria as variaveis necessarias..
  124. GetPlayerName(playerid, pname, 24);
  125. format(query, sizeof(query), "UPDATE pinfo SET score=%d, dinheiro=%d WHERE user='%s'", score, grana, pname);
  126. mysql_query(query);
  127. //NÃO NECESSITA-SE DE UM FREE_RESULT EM UMA QUERY DE UPDATE
  128. }
  129. return 1;
  130. }
  131.  
  132. public OnPlayerSpawn(playerid)
  133. {
  134. return 1;
  135. }
  136.  
  137. public OnPlayerDeath(playerid, killerid, reason)
  138. {
  139. return 1;
  140. }
  141.  
  142. public OnVehicleSpawn(vehicleid)
  143. {
  144. return 1;
  145. }
  146.  
  147. public OnVehicleDeath(vehicleid, killerid)
  148. {
  149. return 1;
  150. }
  151.  
  152. public OnPlayerText(playerid, text[])
  153. {
  154. return 1;
  155. }
  156.  
  157. public OnPlayerCommandText(playerid, cmdtext[])
  158. {
  159. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  160. {
  161. // Do something here
  162. return 1;
  163. }
  164. return 0;
  165. }
  166.  
  167. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  168. {
  169. return 1;
  170. }
  171.  
  172. public OnPlayerExitVehicle(playerid, vehicleid)
  173. {
  174. return 1;
  175. }
  176.  
  177. public OnPlayerStateChange(playerid, newstate, oldstate)
  178. {
  179. return 1;
  180. }
  181.  
  182. public OnPlayerEnterCheckpoint(playerid)
  183. {
  184. return 1;
  185. }
  186.  
  187. public OnPlayerLeaveCheckpoint(playerid)
  188. {
  189. return 1;
  190. }
  191.  
  192. public OnPlayerEnterRaceCheckpoint(playerid)
  193. {
  194. return 1;
  195. }
  196.  
  197. public OnPlayerLeaveRaceCheckpoint(playerid)
  198. {
  199. return 1;
  200. }
  201.  
  202. public OnRconCommand(cmd[])
  203. {
  204. return 1;
  205. }
  206.  
  207. public OnPlayerRequestSpawn(playerid)
  208. {
  209. if(!Logged[playerid]) //Caso não esteje logado e tente spawnar....
  210. {
  211. if(!pRegistrado[playerid]) //Caso não esteje registrado
  212. {
  213. ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Registrar","Registra antes de jogar manolo!","Registrar","Cancelar"); //Mostra nosso dialog
  214. return 0; //Retorna a falso, para q elee nao spawne..
  215. }
  216. if(pRegistrado[playerid] == 1) //.....
  217. {
  218. ShowPlayerDialog(playerid, 15500, DIALOG_STYLE_INPUT, "Logar","Loga ante sde jogar man...!","Logar","Cancelar");
  219. return 0; // ' '
  220. }
  221. }
  222. return 1;
  223. }
  224.  
  225. public OnObjectMoved(objectid)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnPlayerObjectMoved(playerid, objectid)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerPickUpPickup(playerid, pickupid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnVehicleMod(playerid, vehicleid, componentid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  251. {
  252. return 1;
  253. }
  254.  
  255. public OnPlayerSelectedMenuRow(playerid, row)
  256. {
  257. return 1;
  258. }
  259.  
  260. public OnPlayerExitedMenu(playerid)
  261. {
  262. return 1;
  263. }
  264.  
  265. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  266. {
  267. return 1;
  268. }
  269.  
  270. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  271. {
  272. return 1;
  273. }
  274.  
  275. public OnRconLoginAttempt(ip[], password[], success)
  276. {
  277. return 1;
  278. }
  279.  
  280. public OnPlayerUpdate(playerid)
  281. {
  282. return 1;
  283. }
  284.  
  285. public OnPlayerStreamIn(playerid, forplayerid)
  286. {
  287. return 1;
  288. }
  289.  
  290. public OnPlayerStreamOut(playerid, forplayerid)
  291. {
  292. return 1;
  293. }
  294.  
  295. public OnVehicleStreamIn(vehicleid, forplayerid)
  296. {
  297. return 1;
  298. }
  299.  
  300. public OnVehicleStreamOut(vehicleid, forplayerid)
  301. {
  302. return 1;
  303. }
  304.  
  305. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  306. {
  307. if(dialogid == 15000)
  308. {
  309. if(response) // Clicou no botão de registrar
  310. {
  311. if(!strlen(inputtext) || strlen(inputtext) > 100) {//Senha nula ou maior que 100 caractéres
  312. return SendClientMessage(playerid, 0xFF0000, "You must insert a password between 1-100 characters!"), ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Registrar","Use uma senha de 1-100 caractéres!","Registrar","Cancelar");
  313. }
  314. else
  315. {
  316. new escpass[100];
  317. mysql_real_escape_string(inputtext, escpass);
  318. MySQL_Register(playerid, escpass);
  319. }
  320. //Registra o player na função MYSQL_Register
  321. }
  322. if(!response)
  323. {
  324. return SendClientMessage(playerid, 0xFF0000, "You must register before logging in!"),
  325. ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Registrar","Insira uma senha manolo","Registrar","Cancelar");
  326. }
  327. }
  328. if(dialogid == 15500)
  329. {
  330. if(!response)
  331. {
  332. return SendClientMessage(playerid, 0xFF0000, "You must login before you spawn!"),
  333. ShowPlayerDialog(playerid, 15500, DIALOG_STYLE_INPUT, "Login","Você em que logar antes de jogar cara!!","Logar","Cancelar");
  334. }
  335. if(response) //Clicou em Login
  336. {
  337. new query[200], pname[24], escapepass[100]; //
  338. GetPlayerName(playerid, pname, 24);
  339. mysql_real_escape_string(inputtext, escapepass); //Contra HACKERS! (RE: MySQL Injections
  340. format(query, sizeof(query), "SELECT `user` FROM pinfo WHERE user = '%s' AND password = SHA1('%s')", pname, escapepass);
  341. mysql_query(query);
  342. mysql_store_result();
  343. new numrows = mysql_num_rows();
  344. if(numrows == 1) MySQL_Login(playerid);
  345. //senha do jogador e da database são iguais/\
  346. if(!numrows)
  347. {
  348. //senha errada
  349. SendClientMessage(playerid, 0xFF0000, "Senha errada noob!");
  350. }
  351. mysql_free_result(); //LEMBRE-SE DE DAR SEMPRE FREE RESULT PARA LIBERAR O QUERY;
  352. }
  353. }
  354. return 1;
  355. }
  356.  
  357. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  358. {
  359. return 1;
  360. }
  361.  
  362.  
  363. stock MySQL_Register(playerid, passwordstring[])
  364. {
  365. new query[200], pname[24], IP[16];
  366. GetPlayerName(playerid, pname, 24);
  367. GetPlayerIp(playerid, IP, 16);
  368. format(query, sizeof(query), "INSERT INTO pinfo (user, password, score, dinheiro, IP) VALUES('%s', SHA1('%s'), 0, 0, '%s')", pname, passwordstring, IP);
  369. mysql_query(query);
  370. SendClientMessage(playerid, -1, "Registrado e Logado.");
  371. pLogado[playerid] = 1; //Logado
  372. return 1;
  373. }
  374.  
  375. stock MySQL_Login(playerid)
  376. {
  377. new query[300], pname[24], savingstring[20];
  378. GetPlayerName(playerid, pname, 24);
  379. format(query, sizeof(query), "SELECT * FROM pinfo WHERE user = '%s'", pname);
  380. //Selecionamos apenas a variavel que é importante.
  381. mysql_query(query);
  382. mysql_store_result();//ARMAZENA O QUERY PARA USARMOS DEPOIS, POIS USAMOS SELECT PARA SELECIONAR, OU SEJA, TEMOS QUE ARMAZENAR O QUE SELECIONAMOS EM ALGUMA COISA NÉ.
  383. while(mysql_fetch_row_format(query,"|"))
  384. {
  385. //WHILE EM APENAS UMA UNICA QUERY!
  386. //Especialmente quando temos varias variaveis
  387. //Pode-se usar sscanf tmb.
  388. mysql_fetch_field_row(savingstring, "score"); SetPlayerScore(playerid, strval(savingstring));
  389. mysql_fetch_field_row(savingstring, "dinheiro"); GivePlayerMoney(playerid, strval(savingstring));
  390.  
  391. }
  392. mysql_free_result();
  393. SendClientMessage(playerid, -1, "Logou!");
  394. pLogado[playerid] = 1;
  395. return 1;
  396. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement