Advertisement
DarkFireYT

Registro.pwn

Nov 23rd, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.77 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf>
  4. #include <YSI\y_ini>
  5.  
  6. #define DIALOGO_REGISTRO (1)
  7. #define DIALOGO_INGRESO (2)
  8. #define DIALOGO_NORMAL (3)
  9. main( ) { }
  10.  
  11. enum pInfo
  12. {
  13. pKey[34], //contraseña
  14. pAdminZC, //lvl admin
  15. pCash, //dinero
  16. pKills, //asesinatos
  17. pDeaths, //muertes
  18. pJailCant, // Cantidad Jails.
  19. pMats, // Materiales.
  20. pCrack, // Crack.
  21. pChar, //skin
  22. pMarihuana,
  23. Float:pVida, //vida
  24. Float:pChaleco, //armadura
  25. pInt, //interior
  26. Float:pPos_x,//posicion X
  27. Float:pPos_y,//posicion Y
  28. Float:pPos_z,//posicion Z
  29. Float:pPos_r,//rotacion
  30. pVW, //virtualword
  31. pVIP, //vip
  32. pWeapons[13],//armas
  33. pRepuestos,
  34. pPiezas,
  35. pAuto,
  36. pMedicamentos,
  37. pSF,
  38. pRegistrado
  39. };
  40.  
  41. new Info[MAX_PLAYERS+1][pInfo];
  42.  
  43. #define rutaUsuarios "/Usuarios/%s.ini"
  44.  
  45. forward LoadUser_data(playerid,name[],value[]);
  46. public LoadUser_data(playerid,name[],value[])
  47. {
  48. INI_Int("RopaPuesta",Info[playerid][pChar]);
  49. INI_Int("Contraseña",Info[playerid][pKey]);
  50. INI_Int("Dinero",Info[playerid][pCash]);
  51. INI_Int("Asesinatos",Info[playerid][pKills]);
  52. INI_Int("Muertes",Info[playerid][pDeaths]);
  53. INI_Int("Admin",Info[playerid][pAdminZC]);
  54. INI_Int("Vip",Info[playerid][pVIP]);
  55. INI_Int("Registrado",Info[playerid][pRegistrado]);
  56. INI_Int("JailCantidad",Info[playerid][pJailCant]);
  57. INI_Int("Materiales",Info[playerid][pMats]);
  58. INI_Int("Crack",Info[playerid][pCrack]);
  59. INI_Int("Marihuana",Info[playerid][pMarihuana]);
  60. INI_Float("Vida",Info[playerid][pVida]);
  61. INI_Float("Chaleco",Info[playerid][pChaleco]);
  62. INI_Int("Interior",Info[playerid][pInt]);
  63. INI_Float("PosicionX",Info[playerid][pPos_x]);
  64. INI_Float("PosicionY",Info[playerid][pPos_y]);
  65. INI_Float("PosicionZ",Info[playerid][pPos_z]);
  66. INI_Float("Rotacion",Info[playerid][pPos_r]);
  67. INI_Int("VirtualWorld",Info[playerid][pVW]);
  68. INI_Int("Armas",Info[playerid][pWeapons]);
  69. INI_Int("Repuestos",Info[playerid][pRepuestos]);
  70. INI_Int("Piezas",Info[playerid][pPiezas]);
  71. INI_Int("Autos",Info[playerid][pAuto]);
  72. INI_Int("Medicamentos",Info[playerid][pMedicamentos]);
  73. INI_Int("SFCoin",Info[playerid][pSF]);
  74. return 1;
  75. }
  76.  
  77. //Kickear al Usuario.
  78. forward KickearJugador(playerid);
  79. public KickearJugador(playerid)
  80. {
  81. Kick(playerid);
  82. return 1;
  83. }
  84.  
  85. //Reconocer el nombre del Usuario.
  86. stock Nombre(playerid){
  87. new uNombre[32];
  88. GetPlayerName(playerid,uNombre,100);
  89. return uNombre;}
  90.  
  91. //Checar si existe la cuenta del Usuario.
  92. stock ChecarCuenta(playerid){
  93. new cuenta[146];
  94. format(cuenta,sizeof(cuenta),rutaUsuarios,Nombre(playerid));
  95. return cuenta;}
  96.  
  97. //Guardar cuenta del Usuario.
  98. stock GuardarCuenta(playerid){
  99. new INI:File = INI_Open(ChecarCuenta(playerid));
  100. INI_SetTag(File,"data");
  101. INI_WriteInt(File,"RopaPuesta",Info[playerid][pChar]);
  102. INI_WriteString(File,"Contraseña",Info[playerid][pKey]);
  103. INI_WriteInt(File,"Dinero",Info[playerid][pCash]);
  104. INI_WriteInt(File,"Asesinatos",Info[playerid][pKills]);
  105. INI_WriteInt(File,"Muertes",Info[playerid][pDeaths]);
  106. INI_WriteInt(File,"Admin",Info[playerid][pAdminZC]);
  107. INI_WriteInt(File,"Vip",Info[playerid][pVIP]);
  108. INI_WriteInt(File,"Registrado",Info[playerid][pRegistrado]);
  109. INI_WriteInt(File,"JailCantidad",Info[playerid][pJailCant]);
  110. INI_WriteInt(File,"Materiales",Info[playerid][pMats]);
  111. INI_WriteInt(File,"Crack",Info[playerid][pCrack]);
  112. INI_WriteInt(File,"Marihuana",Info[playerid][pMarihuana]);
  113. INI_WriteFloat(File,"Vida",Info[playerid][pVida]);
  114. INI_WriteFloat(File,"Chaleco",Info[playerid][pChaleco]);
  115. INI_WriteInt(File,"Interior",Info[playerid][pInt]);
  116. INI_WriteFloat(File,"PosicionX",Info[playerid][pPos_x]);
  117. INI_WriteFloat(File,"PosicionY",Info[playerid][pPos_y]);
  118. INI_WriteFloat(File,"PosicionZ",Info[playerid][pPos_z]);
  119. INI_WriteFloat(File,"Rotacion",Info[playerid][pPos_r]);
  120. INI_WriteInt(File,"VirtualWorld",Info[playerid][pVW]);
  121. INI_WriteInt(File,"Armas",Info[playerid][pWeapons]);
  122. INI_WriteInt(File,"Repuestos",Info[playerid][pRepuestos]);
  123. INI_WriteInt(File,"Piezas",Info[playerid][pPiezas]);
  124. INI_WriteInt(File,"Autos",Info[playerid][pAuto]);
  125. INI_WriteInt(File,"Medicamentos",Info[playerid][pMedicamentos]);
  126. INI_WriteInt(File,"SFCoin",Info[playerid][pSF]);
  127. INI_Close(File);}
  128.  
  129. //Reiniciar datos del Usuario (prevenir bugs)
  130. stock ReiniciarDatos(playerid){
  131. Info[playerid][pCash] = 0;
  132. Info[playerid][pKills] = 0;
  133. Info[playerid][pDeaths] = 0;
  134. Info[playerid][pAdminZC] = 0;
  135. Info[playerid][pVIP] = 0;
  136. Info[playerid][pMedicamentos] = 0;
  137. Info[playerid][pSF] = 0;
  138. Info[playerid][pAuto] = 0;
  139. Info[playerid][pWeapons] = 0;
  140. Info[playerid][pRepuestos] = 0;
  141. Info[playerid][pPiezas] = 0;
  142. Info[playerid][pChaleco] = 0;
  143. Info[playerid][pVida] = 0;
  144. Info[playerid][pMarihuana] = 0;
  145. Info[playerid][pCrack] = 0;
  146. Info[playerid][pMats] = 0;
  147. Info[playerid][pJailCant] = 0;
  148. Info[playerid][pChar] = 0;
  149. Info[playerid][pRegistrado] = 0;
  150. Info[playerid][pRegistrado] = 0;
  151. Info[playerid][pRegistrado] = 0;}
  152.  
  153. //Guardar cuentas en caso de que el servidor sufra un apagon (evitar perdida de datos)
  154. public OnGameModeExit(){
  155. for(new i=0;i<MAX_PLAYERS;i++){
  156. if(IsPlayerConnected(i) && fexist(ChecarCuenta(i))){
  157. GuardarCuenta(i);
  158. SendClientMessage(-1,-1,"Las cuentas fueron guardadas correctamente.");
  159. printf("Cuentas guardadas correctamente.");}}
  160. return 1;}
  161.  
  162. //Checaremos si la cuenta del Usuario existe en la ruta de Cuentas.
  163. public OnPlayerConnect(playerid){
  164. ReiniciarDatos(playerid);
  165. if(fexist(ChecarCuenta(playerid))){
  166. INI_ParseFile(ChecarCuenta(playerid),"LoadUser_%s",.bExtra = true, .extra = playerid);
  167. ShowPlayerDialog(playerid,DIALOGO_INGRESO,DIALOG_STYLE_PASSWORD,"{FFFFFF}Inicio de sesion","{FFFFFF}Escribe en el siguiente campo tu contraseña para poder iniciar sesion.","Aceptar","");
  168. }else{
  169. ShowPlayerDialog(playerid,DIALOGO_REGISTRO,DIALOG_STYLE_INPUT,"{FFFFFF}Registro de cuenta","{FFFFFF}Escriba la contraseña que desea para registrar su cuenta.","Aceptar","");}
  170. return 1;}
  171.  
  172. public OnPlayerSpawn(playerid)
  173. {
  174. Info[playerid][pChar] = GetPlayerSkin(playerid);
  175. //Cargado
  176. SetPlayerPos(playerid,Info[playerid][pPos_x],Info[playerid][pPos_y],Info[playerid][pPos_z]);
  177. SetPlayerFacingAngle(playerid, Info[playerid][pPos_r]);
  178. SetPlayerSkin(playerid, Info[playerid][pChar]);
  179. SetPlayerHealth(playerid, Info[playerid][pVida]);
  180. SetPlayerArmour(playerid, Info[playerid][pChaleco]);
  181. return 1;
  182. }
  183. public OnPlayerDisconnect(playerid){
  184. if(fexist(ChecarCuenta(playerid))){
  185. GuardarCuenta(playerid);
  186. SendClientMessage(playerid,-1,"Sus datos fueron guardados.");
  187. printf("La cuenta \"%s\" fue guardada correctamente.",Nombre(playerid));}
  188. return 1;}
  189.  
  190. public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[]){
  191. if(dialogid == DIALOGO_REGISTRO){
  192. if(!response)return SetTimerEx("KickearJugador",1000,false,"i",playerid) && ShowPlayerDialog(playerid,DIALOGO_NORMAL,DIALOG_STYLE_MSGBOX,"{FFFFFF}Expulsado","{FFFFFF}Fuistes expulsado por evadir el Registro.","Aceptar","");
  193. if(response){
  194. if(!strlen(inputtext))return ShowPlayerDialog(playerid,DIALOGO_REGISTRO,DIALOG_STYLE_INPUT,"{FFFFFF}Registro de cuenta","{FFFFFF}Escriba la contraseña que desea para registrar su cuenta.","Aceptar","");
  195. new pw[34];
  196. format(pw,sizeof(pw),"%s",inputtext);
  197. Info[playerid][pKey] = pw;
  198. new INI:File = INI_Open(ChecarCuenta(playerid));
  199. INI_SetTag(File,"data");
  200. INI_WriteString(File,"Contraseña",inputtext);
  201. INI_Close(File);
  202. Info[playerid][pAdminZC] = 0;//Poner su administracion en 0.
  203. Info[playerid][pVIP] = 0;//Poner su VIP en 0.
  204. Info[playerid][pCash] = 2000;//Comensara con 2,000 dolares.
  205. Info[playerid][pRegistrado] = 1;//Reconocera que el Jugador esta registrado.
  206. Info[playerid][pPos_x] = 1521.3809;
  207. Info[playerid][pPos_y] = -1712.8494;
  208. Info[playerid][pPos_z] = 18.0014;
  209. Info[playerid][pVida] = 100;
  210. Info[playerid][pChaleco] = 100;
  211. SendClientMessage(playerid,-1,"ahora estas registrado en el servidor.");
  212. }}
  213. if(dialogid == DIALOGO_INGRESO){
  214. if(!response)return SetTimerEx("KickearJugador",1000,false,"i",playerid) && ShowPlayerDialog(playerid,DIALOGO_NORMAL,DIALOG_STYLE_MSGBOX,"{FFFFFF}Expulsado","{FFFFFF}Fuistes expulsado por intentar evadir contraseña.","Aceptar","");
  215. if(response){
  216. if(strcmp(inputtext,Info[playerid][pKey], true) == 0){
  217. INI_ParseFile(ChecarCuenta(playerid),"LoadUser_%s",.bExtra = true, .extra = playerid);
  218. SendClientMessage(playerid,-1,"Has ingresado a tu cuenta correctamente.");
  219. }else return SetTimerEx("KickearJugador",1000,false,"i",playerid) && ShowPlayerDialog(playerid,DIALOGO_NORMAL,DIALOG_STYLE_MSGBOX,"{FFFFFF}Expulsado","{FFFFFF}Fuistes expulsado por ingresar una contraseña incorrecta.","Aceptar","");
  220. }}
  221. return 1;}
  222.  
  223. //Dar el Dinero & Score del Usuario.
  224. public OnPlayerUpdate(playerid){
  225. //Su dinero
  226. if(GetPlayerMoney(playerid) != Info[playerid][pCash]){
  227. ResetPlayerMoney(playerid);
  228. //Su score
  229. GivePlayerMoney(playerid,Info[playerid][pCash]);}
  230. if(GetPlayerScore(playerid) != Info[playerid][pKills]){
  231. SetPlayerScore(playerid,Info[playerid][pKills]);}
  232. return 1;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement