Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.60 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_va>
  3. #include <zcmd>
  4. #include <sscanf2>
  5. #include <a_mysql>
  6.  
  7. #define DIALOGO_REGISTRO 1
  8. #define DIALOGO_EMAIL 2
  9. #define DIALOGO_REGISTRO2 3
  10. #define DIALOGO_LOGIN 4
  11.  
  12.  
  13. main()
  14. {
  15. print("\n----------------------------------");
  16. print(" Blank Gamemode by your name here");
  17. print("----------------------------------\n");
  18. }
  19.  
  20. enum players
  21. {
  22. pID,
  23. pPassword[100],
  24. pAdmin,
  25. pEmail[100],
  26. Float:pPosX,
  27. Float:pPosY,
  28. Float:pPosZ,
  29. Float:pPosA,
  30. Float:pVida,
  31. Float:pChaleco,
  32. };
  33.  
  34. new Conecction,PlayerInfo[MAX_PLAYERS][players],Logueado[MAX_PLAYERS];
  35.  
  36. public OnGameModeInit()
  37. {
  38. Conecction = mysql_connect("localhost","root","nuevoservidor","");
  39. print("Conectandose con la base de datos...");
  40. if(mysql_errno() == 0)
  41. {
  42. print("El servidor se conecto correctamente a la base de datos...");
  43. }
  44. else
  45. {
  46. print("El servidor no se conecto a la base de datos debido a un error.");
  47. }
  48. SetGameModeText("Blank Script");
  49. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  50. return 1;
  51. }
  52.  
  53. public OnGameModeExit()
  54. {
  55. return 1;
  56. }
  57.  
  58. public OnPlayerRequestClass(playerid, classid)
  59. {
  60. return 1;
  61. }
  62.  
  63. public OnPlayerConnect(playerid)
  64. {
  65. Variables(playerid);
  66. BorrarLog(playerid,-1,10);
  67. new string[150];
  68. format(string,sizeof(string),"SELECT * FROM `usuarios` WHERE `Nombre`='%s'",NombreJugador(playerid));
  69. mysql_function_query(Conecction,string,true,"VerificarUsuario","i",playerid);
  70. return 1;
  71. }
  72.  
  73. public OnPlayerDisconnect(playerid, reason)
  74. {
  75. if(Logueado[playerid] == 1)
  76. {
  77. GuardarCuenta(playerid);
  78. }
  79. return 1;
  80. }
  81.  
  82. public OnPlayerSpawn(playerid)
  83. {
  84. if(Logueado[playerid] == 2)
  85. {
  86. BorrarLog(playerid,-1,20);
  87. Logueado[playerid] = 1;
  88. Mensaje(playerid,-1,"¡Gracias por registrarte en el servidor!");
  89. Mensaje(playerid,-1,"Tu cuenta fue creada correctamente en la base de datos.");
  90. Mensaje(playerid,-1,"Puedes usar el comando /ayuda para orientarte mejor.");
  91. Mensaje(playerid,-1,"Recuerda ayudarnos aportando ideas para crear sistemas y mejorar el servidor.");
  92. }
  93. else if(Logueado[playerid] == 0)
  94. {
  95. BorrarLog(playerid,-1,20);
  96. Logueado[playerid] = 1;
  97. SetPlayerHealth(playerid,PlayerInfo[playerid][pVida]);
  98. SetPlayerArmour(playerid,PlayerInfo[playerid][pChaleco]);
  99. SetPlayerPos(playerid,PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ]);
  100. SetPlayerFacingAngle(playerid,PlayerInfo[playerid][pPosA]);
  101. }
  102. return 1;
  103. }
  104.  
  105. public OnPlayerDeath(playerid, killerid, reason)
  106. {
  107. return 1;
  108. }
  109.  
  110. public OnVehicleSpawn(vehicleid)
  111. {
  112. return 1;
  113. }
  114.  
  115. public OnVehicleDeath(vehicleid, killerid)
  116. {
  117. return 1;
  118. }
  119.  
  120. public OnPlayerText(playerid, text[])
  121. {
  122. return 1;
  123. }
  124.  
  125. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  126. {
  127. return 1;
  128. }
  129.  
  130. public OnPlayerExitVehicle(playerid, vehicleid)
  131. {
  132. return 1;
  133. }
  134.  
  135. public OnPlayerStateChange(playerid, newstate, oldstate)
  136. {
  137. return 1;
  138. }
  139.  
  140. public OnPlayerEnterCheckpoint(playerid)
  141. {
  142. return 1;
  143. }
  144.  
  145. public OnPlayerLeaveCheckpoint(playerid)
  146. {
  147. return 1;
  148. }
  149.  
  150. public OnPlayerEnterRaceCheckpoint(playerid)
  151. {
  152. return 1;
  153. }
  154.  
  155. public OnPlayerLeaveRaceCheckpoint(playerid)
  156. {
  157. return 1;
  158. }
  159.  
  160. public OnRconCommand(cmd[])
  161. {
  162. return 1;
  163. }
  164.  
  165. public OnPlayerRequestSpawn(playerid)
  166. {
  167. return 1;
  168. }
  169.  
  170. public OnObjectMoved(objectid)
  171. {
  172. return 1;
  173. }
  174.  
  175. public OnPlayerObjectMoved(playerid, objectid)
  176. {
  177. return 1;
  178. }
  179.  
  180. public OnPlayerPickUpPickup(playerid, pickupid)
  181. {
  182. return 1;
  183. }
  184.  
  185. public OnVehicleMod(playerid, vehicleid, componentid)
  186. {
  187. return 1;
  188. }
  189.  
  190. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  191. {
  192. return 1;
  193. }
  194.  
  195. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnPlayerSelectedMenuRow(playerid, row)
  201. {
  202. return 1;
  203. }
  204.  
  205. public OnPlayerExitedMenu(playerid)
  206. {
  207. return 1;
  208. }
  209.  
  210. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  211. {
  212. return 1;
  213. }
  214.  
  215. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  216. {
  217. return 1;
  218. }
  219.  
  220. public OnRconLoginAttempt(ip[], password[], success)
  221. {
  222. return 1;
  223. }
  224.  
  225. public OnPlayerUpdate(playerid)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnPlayerStreamIn(playerid, forplayerid)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerStreamOut(playerid, forplayerid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnVehicleStreamIn(vehicleid, forplayerid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnVehicleStreamOut(vehicleid, forplayerid)
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  251. {
  252. new string[250];
  253. switch(dialogid)
  254. {
  255. case DIALOGO_REGISTRO:
  256. {
  257. if(response)
  258. {
  259. if(strlen(inputtext) < 3) return Mensaje(playerid,-1,"Por lo menos ingresa 3 caracteres."),ShowPlayerDialog(playerid,DIALOGO_REGISTRO,DIALOG_STYLE_INPUT,"Registra tu cuenta","{ffffff}Ingresa una contraseña para poder registrarte en el servidor","Siguiente","Cancelar");
  260. format(PlayerInfo[playerid][pPassword],100,"%s",inputtext);
  261. ShowPlayerDialog(playerid,DIALOGO_EMAIL,DIALOG_STYLE_INPUT,"Ingresa un E-mail","{ffffff}Para poder recuperar tu cuenta en caso de perderla o de robo, debes ingresar un E-mail.","Siguiente","Cancelar");
  262. }
  263. else Kickear(playerid,"evadir registro");
  264. }
  265. case DIALOGO_EMAIL:
  266. {
  267. if(response)
  268. {
  269. if(strlen(inputtext) < 8 || strfind(inputtext,"@",true) == -1 || strfind(inputtext,".",true) == -1) return Mensaje(playerid,-1,"Por favor, ingresa un E-mail válido."),ShowPlayerDialog(playerid,DIALOGO_EMAIL,DIALOG_STYLE_INPUT,"Ingresa un E-mail","{ffffff}Para poder recuperar tu cuenta en caso de perderla o de robo, debes ingresar un E-mail.","Siguiente","Cancelar");
  270. format(PlayerInfo[playerid][pEmail],100,"%s",inputtext);
  271. ShowPlayerDialog(playerid,DIALOGO_REGISTRO2,DIALOG_STYLE_MSGBOX,"IMPORTANTE","{ffffff}El servidor se encuentra en construcción, puede presentar algunos fallos.\nPuedes aportar ideas para mejorar o crear nuevos sistemas.\n\n¡Te registraste correctamente!","Registrarse","Cancelar");
  272. }
  273. else Kickear(playerid,"evadir registro");
  274. }
  275. case DIALOGO_REGISTRO2:
  276. {
  277. format(string,sizeof(string),"INSERT INTO `usuarios` (`Nombre`,`Password`,`Email`) VALUES ('%s','%s','%s')",NombreJugador(playerid),PlayerInfo[playerid][pPassword],PlayerInfo[playerid][pEmail]);
  278. mysql_function_query(Conecction,string,true,"DarIDCuenta","d",playerid);
  279. Logueado[playerid] = 2;
  280. SpawnPlayer(playerid);
  281. }
  282. case DIALOGO_LOGIN:
  283. {
  284. if(response)
  285. {
  286. if(strcmp(PlayerInfo[playerid][pPassword],inputtext) == 0 && strlen(inputtext) > 0)
  287. {
  288. SpawnPlayer(playerid);
  289. }
  290. else Mensaje(playerid,-1,"La contraseña ingresada no coincide con la de la cuenta."),ShowPlayerDialog(playerid,DIALOGO_LOGIN,DIALOG_STYLE_PASSWORD,"Inicia sesión","{ffffff}Ingresa la contraseña de la cuenta para poder entrar al servidor.","Entrar","Cancelar");
  291. }
  292. else Kickear(playerid,"evadir login");
  293. }
  294. }
  295. return 1;
  296. }
  297.  
  298. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  299. {
  300. return 1;
  301. }
  302.  
  303. /* FUNCIONES */
  304.  
  305. BorrarLog(playerid,color,rep)
  306. {
  307. for(new i; i < rep; i++)
  308. {
  309. Mensaje(playerid,color,"");
  310. }
  311. return true;
  312. }
  313.  
  314. stock Mensaje(playerid,colour,format[], va_args<>)
  315. {
  316. new str[144];
  317. va_format(str, sizeof (str), format, va_start<3>);
  318.  
  319. SendClientMessage(playerid, colour, str);
  320. return 1;
  321. }
  322.  
  323. NombreJugador(playerid)
  324. {
  325. new name[45];
  326. GetPlayerName(playerid,name,sizeof(name));
  327. return name;
  328. }
  329.  
  330. Kickear(playerid,reason[] = "a")
  331. {
  332. if(!IsPlayerConnected(playerid)) return 0;
  333. if(strlen(reason) > 1)
  334. {
  335. ChatAdmin(1,-1,"El jugador %s(%d) fue kickeado por %s.",reason);
  336. }
  337. return true;
  338. }
  339.  
  340. stock ChatAdmin(rango,color,format[], va_args<>)
  341. {
  342. new str[144];
  343. va_format(str, sizeof (str), format, va_start<3>);
  344. for(new i, j = GetPlayerPoolSize(); i <= j; i++)
  345. {
  346. if(PlayerInfo[i][pAdmin] > rango) SendClientMessage(i, color, str);
  347. }
  348. return 1;
  349. }
  350.  
  351. Variables(playerid)
  352. {
  353. Logueado[playerid] = 0;
  354. for(new i; players:i < players; i++) PlayerInfo[playerid][players:i] = 0;
  355. return true;
  356. }
  357.  
  358. GuardarCuenta(playerid)
  359. {
  360. new string[250];
  361. GetPlayerPos(playerid,PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ]);
  362. GetPlayerFacingAngle(playerid,PlayerInfo[playerid][pPosA]);
  363. GetPlayerHealth(playerid,PlayerInfo[playerid][pVida]);
  364. GetPlayerArmour(playerid,PlayerInfo[playerid][pChaleco]);
  365. format(string,sizeof(string),"UPDATE `usuarios` SET `PosX`='%f',`PosY`='%f',`PosZ`='%f',`PosA`='%f',`Vida`='%f',`Chaleco`='%f' WHERE `Nombre`='%s'",PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ],PlayerInfo[playerid][pPosA],PlayerInfo[playerid][pVida],PlayerInfo[playerid][pChaleco],NombreJugador(playerid));
  366. mysql_function_query(Conecction,string,true,"","");
  367. return true;
  368. }
  369.  
  370. forward VerificarUsuario(playerid);
  371. public VerificarUsuario(playerid)
  372. {
  373. new field,row;
  374. cache_get_data(row, field);
  375. if(row)
  376. {
  377. new content[40];
  378. cache_get_field_content(0,"ID",content); PlayerInfo[playerid][pID] = strval(content);
  379. cache_get_field_content(0,"Password",content); format(PlayerInfo[playerid][pPassword],100,"%s",content);
  380. cache_get_field_content(0,"Admin",content); PlayerInfo[playerid][pAdmin] = strval(content);
  381. cache_get_field_content(0,"Email",content); format(PlayerInfo[playerid][pEmail],100,"%s",content);
  382. cache_get_field_content(0,"PosX",content); PlayerInfo[playerid][pPosX] = floatstr(content);
  383. cache_get_field_content(0,"PosY",content); PlayerInfo[playerid][pPosY] = floatstr(content);
  384. cache_get_field_content(0,"PosZ",content); PlayerInfo[playerid][pPosZ] = floatstr(content);
  385. cache_get_field_content(0,"PosA",content); PlayerInfo[playerid][pPosA] = floatstr(content);
  386. cache_get_field_content(0,"Vida",content); PlayerInfo[playerid][pVida] = floatstr(content);
  387. cache_get_field_content(0,"Chaleco",content); PlayerInfo[playerid][pChaleco] = floatstr(content);
  388. ShowPlayerDialog(playerid,DIALOGO_LOGIN,DIALOG_STYLE_PASSWORD,"Inicia sesión","{ffffff}Ingresa la contraseña de la cuenta para poder entrar al servidor.","Entrar","Cancelar");
  389. }
  390. else
  391. {
  392. ShowPlayerDialog(playerid,DIALOGO_REGISTRO,DIALOG_STYLE_INPUT,"Registra tu cuenta","{ffffff}Ingresa una contraseña para poder registrarte en el servidor","Siguiente","Cancelar");
  393. }
  394. return true;
  395. }
  396.  
  397. forward DarIDCuenta(playerid);
  398. public DarIDCuenta(playerid)
  399. {
  400. PlayerInfo[playerid][pID] = cache_insert_id();
  401. return true;
  402. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement