Advertisement
elrooT

¡rAdmin! ~ 0.3!

Sep 22nd, 2011
619
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 92.16 KB | None | 0 0
  1. #include <a_samp>
  2. #include <Dini>
  3. #include <dudb>
  4. #include <zcmd>
  5. #include <sscanf2>
  6.  
  7. #pragma tabsize 0
  8.  
  9. #undef MAX_PLAYERS
  10. #define MAX_PLAYERS     50
  11.  
  12. //===============================NEWS Y MAS=====================================
  13.  
  14. new str[128],
  15.     pname[MAX_PLAYER_NAME],
  16.     Car[MAX_PLAYERS],
  17.     Car2[MAX_PLAYERS],
  18.     cpid,
  19.     Clicked,
  20.     dChat;
  21. new archivo[128];
  22.  
  23. enum pInfo
  24. {
  25.     Registrado,
  26.     Logueado,
  27.     Admin,
  28.     Baneado,
  29.     Muteado,
  30.     Congelado,
  31.     Warnings,
  32.     Reports,
  33.     MuteWarns,
  34.     VIP
  35. };
  36. new aInfo[MAX_PLAYERS][pInfo];
  37.  
  38. new RandomColors[400] = {
  39. 0x4F5152D4,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0xEE82EEFF,0xFF1493FF,
  40. 0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0xF4A460FF,
  41. 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
  42. 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
  43. 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
  44. 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
  45. 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
  46. 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
  47. 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
  48. 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
  49. 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
  50. 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
  51. 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
  52. 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
  53. 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
  54. 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
  55. 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
  56. 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
  57. 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
  58. 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
  59. 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
  60. 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
  61. 0xD8C762FF,0xD8C762FF,0x4F5152D4,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,
  62. 0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0xF4A460FF,
  63. 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
  64. 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
  65. 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
  66. 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
  67. 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
  68. 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
  69. 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
  70. 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
  71. 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
  72. 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
  73. 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
  74. 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
  75. 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
  76. 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
  77. 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
  78. 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
  79. 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
  80. 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
  81. 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
  82. 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
  83. 0xD8C762FF,0xD8C762FF,0xEE82EEFF,0xFF1493FF
  84. };
  85.  
  86. //===============================DEFINES========================================
  87.  
  88. #define Users "rAdmin/Users/%s.ini"
  89. #define Logs "rAdmin/Logs/%s.ini"
  90. #define Cfg "rAdmin/Cfg/%s.ini"
  91. #define MaxLevel        5                  // Cambia este valor por el valor que desees que sea el nivel
  92.                                            // de administracion maximo. ~
  93.                                            
  94. #define MaxVipLevel         3              // Cambia este valor por el valor que desees que sea el nivel
  95.                                            // maximo para las cuentas VIP. ~
  96.                                            
  97. #define MAX_WARNINGS    3                  // Cambia este valor por el valor que desees que sea la maxima cantidad
  98.                                            // de Warnings antes de que el usuario sea kickeado. ~
  99.                                            
  100. #define MAX_MUTEWARNS   5                  // Cambia este valor por el valor que desees que sea la maxima cantidad
  101.                                            // de MuteWarnings antes de que el usuario sea kickeado. ~
  102.                                            
  103. #define MAX_REPORTS     3                  // Cambia este valor para cambiar la cantidad maxima de reportes
  104.                                            // que puede tener cada usuario antes de ser kickeado. ~
  105.  
  106. #define Click 100                          // DialogID del dialogo de OnPlayerClickPlayer ~
  107.  
  108. #define COLOR_KANE          0xED5A00FF
  109. #define COLOR_GREY          0xAFAFAFAA
  110. #define COLOR_RED           0xFF0000AA
  111. #define COLOR_YELLOW        0xFFFF00AA
  112. #define COLOR_GREEN         0x66CC99AA
  113. #define COLOR_BLUE          0x0000BBAA
  114. #define COLOR_LIGHTBLUE     0x91C8FF
  115. #define COLOR_MEDBLUE       0x0091FFFF
  116. #define COLOR_LIGHTGREEN    0x38FF06FF
  117. #define COLOR_ORANGE        0xF97804FF
  118.  
  119. //================================FORWARDS======================================
  120.  
  121. forward SpawnKick(playerid);
  122. forward MessageToAdmins(color,const string[]);
  123. forward MessageToVIPs(color,const string[]);
  124. forward SalvarDatos(playerid);
  125. forward VehicleOccupied(vehicleid);
  126. forward GMR();
  127. forward SaveIn(filename[],text[]);
  128. forward Carpetas();
  129.  
  130. //==============================================================================
  131.  
  132.  
  133. public OnFilterScriptInit()
  134. {
  135.     print("----------------------------------------");
  136.     print("---Sistema de Administracion by rooT.---");
  137.     print("-----------------Loaded-----------------");
  138.     print("----------------------------------------");
  139.     SetTimer("Carpetas", 500, 0);
  140.     return 1;
  141. }
  142.  
  143. public OnFilterScriptExit()
  144. {
  145.     print("----------------------------------------");
  146.     print("---Sistema de Administracion by rooT.---");
  147.     print("----------------Unloaded----------------");
  148.     print("----------------------------------------");
  149.     return 1;
  150. }
  151.  
  152. public OnPlayerConnect(playerid)
  153. {
  154.     aInfo[playerid][Registrado] = 0;
  155.     aInfo[playerid][Logueado] = 0;
  156.     aInfo[playerid][Admin] = 0;
  157.     aInfo[playerid][Baneado] = 0;
  158.     aInfo[playerid][Muteado] = 0;
  159.     aInfo[playerid][Congelado] = 0;
  160.     aInfo[playerid][Warnings] = 0;
  161.     aInfo[playerid][Reports] = 0;
  162.     aInfo[playerid][MuteWarns] = 0;
  163.     aInfo[playerid][VIP] = 0;
  164.     SetPlayerColor(playerid, random(RandomColors[200]));
  165.    
  166.     GetPlayerName(playerid, pname, sizeof(pname));
  167.     format(archivo, sizeof(archivo), Users, udb_encode(pname));
  168.    
  169.     if(!dini_Exists(archivo))
  170.     {
  171.         format(str, sizeof(str), "Bienvenido %s! Tu cuenta no esta registrada! Utiliza /registrar para registrarla!", pname);
  172.         SendClientMessage(playerid, COLOR_YELLOW, str);
  173.         aInfo[playerid][Registrado] = 0;
  174.     }
  175.     else
  176.     {
  177.         if(dini_Int(archivo, "Baneado") == 1)
  178.         {
  179.             SendClientMessage(playerid, COLOR_RED, "Estas baneado en el servidor!");
  180.             return Kick(playerid);
  181.         }
  182.        
  183.         format(str, sizeof(str), "Bienvenido %s! Utiliza /login para ingresar a tu cuenta", pname);
  184.         SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
  185.         aInfo[playerid][Registrado] = 1;
  186.        
  187.     }
  188.     format(str, sizeof(str), "%s Ingreso al servidor!", pname);
  189.     SendClientMessageToAll(COLOR_LIGHTGREEN, str);
  190.     return 1;
  191. }
  192.  
  193.  
  194. public OnPlayerSpawn(playerid)
  195. {
  196.     if(aInfo[playerid][Registrado] == 0)
  197.     {
  198.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "Tienes 60 segundos para registrarte o seras kickeado!");
  199.         SendClientMessage(playerid, COLOR_LIGHTBLUE, "Utiliza /registrar para hacerlo");
  200.         SetTimerEx("SpawnKick", 60000, 0, "i", playerid);
  201.         TogglePlayerControllable(playerid, 0);
  202.         return 0;
  203.     }
  204.  
  205.     if(aInfo[playerid][Logueado] == 0)
  206.     {
  207.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "Tienes 60 segundos para loguear o seras kickeado!");
  208.         SendClientMessage(playerid, COLOR_LIGHTBLUE, "Utiliza /login para hacerlo");
  209.         SetTimerEx("SpawnKick", 60000, 0, "i", playerid);
  210.         TogglePlayerControllable(playerid, 0);
  211.         return 0;
  212.     }
  213.     return 1;
  214. }
  215.  
  216. public OnPlayerDisconnect(playerid, reason)
  217. {
  218.     GetPlayerName(playerid, pname, sizeof(pname));
  219.     switch(reason)
  220.     {
  221.         case 0: format(str, sizeof(str), "%s dejo el servidor. (Crash)", pname);
  222.         case 1: format(str, sizeof(str), "%s dejo el servidor. (Salio)", pname);
  223.         case 2: format(str, sizeof(str), "%s dejo el servidor. (Kickeado/Baneado)", pname);
  224.     }
  225.     SendClientMessageToAll(COLOR_GREEN, str);
  226.    
  227.     format(archivo, sizeof(archivo), Users, udb_encode(pname));
  228.     if(dini_Exists(archivo))
  229.     {
  230.         dini_IntSet(archivo, "Admin", aInfo[playerid][Admin]);
  231.         dini_IntSet(archivo, "Baneado", aInfo[playerid][Baneado]);
  232.         dini_IntSet(archivo, "Muteado", aInfo[playerid][Muteado]);
  233.         dini_IntSet(archivo, "Congelado", aInfo[playerid][Congelado]);
  234.     }
  235.    
  236.     aInfo[playerid][Registrado] = 0;
  237.     aInfo[playerid][Logueado] = 0;
  238.     aInfo[playerid][Admin] = 0;
  239.     aInfo[playerid][Baneado] = 0;
  240.     aInfo[playerid][Muteado] = 0;
  241.     aInfo[playerid][Congelado] = 0;
  242.     aInfo[playerid][Warnings] = 0;
  243.     aInfo[playerid][Reports] = 0;
  244.     aInfo[playerid][MuteWarns] = 0;
  245.     aInfo[playerid][VIP] = 0;
  246.     return 1;
  247. }
  248.  
  249. /*==============================================================================
  250. ================================================================================
  251. ===========================rAdmin Player Commands!==============================
  252. ================================================================================
  253. ==============================================================================*/
  254.  
  255. /*
  256.   //==========================================================================\\
  257.  //============================================================================\\
  258. ||==============================Registrar || Login==============================||
  259.  \\============================================================================//
  260.   \\==========================================================================//
  261. */
  262.  
  263. CMD:registrar(playerid, params[])
  264. {
  265.     if(aInfo[playerid][Registrado] == 1) return SendClientMessage(playerid, COLOR_YELLOW, "Esta cuenta esta registrada! Utiliza /login para ingresar");
  266.     GetPlayerName(playerid, pname, sizeof(pname));
  267.     format(archivo, sizeof(archivo), Users, udb_encode(pname));
  268.     if(strlen(params) > 4 && strlen(params) < 24)
  269.     {
  270.         dini_Create(archivo);
  271.         dini_IntSet(archivo, "pass", udb_hash(params));
  272.         dini_IntSet(archivo, "Admin", 0);
  273.         dini_IntSet(archivo, "Baneado", 0);
  274.         dini_IntSet(archivo, "Muteado", 0);
  275.         dini_IntSet(archivo, "Congelado", 0);
  276.         dini_IntSet(archivo, "Vehicle", 0);
  277.         dini_IntSet(archivo, "VIP", 0);
  278.        
  279.         format(str, sizeof(str), "[rAdmin] Registraste el nombre %s bajo la contraseña %s. Fuiste logueado automaticamente!", pname, params);
  280.         SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
  281.        
  282.         aInfo[playerid][Logueado] = 1;
  283.         aInfo[playerid][Registrado] = 1;
  284.         TogglePlayerControllable(playerid, 1);
  285.     }
  286.     else
  287.     {
  288.         SendClientMessage(playerid, COLOR_RED, "Uso: /registrar <contraseña>");
  289.         return SendClientMessage(playerid, COLOR_ORANGE, "Recuerda que tu contraseña debe tener entre 4 & 24 caracteres!");
  290.     }
  291.     return 1;
  292. }
  293.  
  294. CMD:login(playerid, params[])
  295. {
  296.     if(aInfo[playerid][Registrado] == 0) return SendClientMessage(playerid, COLOR_YELLOW, "Esta cuenta no esta registrada! Utiliza /registrar para registrarla!");
  297.     if(aInfo[playerid][Logueado] == 1) return SendClientMessage(playerid, COLOR_YELLOW, "Ya estas logueado!");
  298.     GetPlayerName(playerid, pname, sizeof(pname));
  299.     format(archivo, sizeof(archivo), Users, udb_encode(pname));
  300.  
  301.     if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /login <password>");
  302.    
  303.     if(udb_hash(params) != dini_Int(archivo, "pass"))
  304.     {
  305.         format(str, sizeof(str), "La contraseña que ingresaste es incorrecta!");
  306.         SendClientMessage(playerid, COLOR_RED, str);
  307.     }
  308.     else
  309.     {
  310.         aInfo[playerid][Admin] = dini_Int(archivo, "Admin");
  311.         aInfo[playerid][Baneado] = dini_Int(archivo, "Baneado");
  312.         aInfo[playerid][Muteado] = dini_Int(archivo, "Muteado");
  313.         aInfo[playerid][Congelado] = dini_Int(archivo, "Congelado");
  314.         aInfo[playerid][VIP] = dini_Int(archivo, "VIP");
  315.         aInfo[playerid][Logueado] = 1;
  316.        
  317.         if(aInfo[playerid][VIP] > 0 && aInfo[playerid][Admin] < 1)
  318.         {
  319.             format(str, sizeof(str), "Bienvenido %s! VIP Level: %d! Utiliza /comandos para ver los comandos disponibles!", pname, aInfo[playerid][VIP]);
  320.             SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
  321.             SendClientMessage(playerid, COLOR_RED, "[rAdmin] Logueado satisfactoriamente!");
  322.         }
  323.         else if(aInfo[playerid][VIP] > 0 && aInfo[playerid][Admin] > 0)
  324.         {
  325.             format(str, sizeof(str), "Bienvenido %s! VIP Level: %d! Admin Level: %d! Utiliza /acmds para ver tus comandos de administracion!", pname, aInfo[playerid][VIP], aInfo[playerid][Admin]);
  326.             SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
  327.             SendClientMessage(playerid, COLOR_RED, "[rAdmin] Logueado satisfactoriamente!");
  328.         }
  329.        
  330.         if(aInfo[playerid][Admin] > 0)
  331.         {
  332.             format(str, sizeof(str), "Bienvenido %s! Admin Level: %d! Utiliza /acmds para ver tus comandos de administracion!", pname, aInfo[playerid][Admin]);
  333.             SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
  334.             SendClientMessage(playerid, COLOR_RED, "[rAdmin] Logueado satisfactoriamente!");
  335.         }
  336.         else
  337.         {
  338.             format(str, sizeof(str), "Bienvenido %s! Utiliza /comandos para ver los comandos disponibles!", pname);
  339.             SendClientMessage(playerid, COLOR_YELLOW, str);
  340.             SendClientMessage(playerid, COLOR_RED, "[rAdmin] Logueado satisfactoriamente!");
  341.         }
  342.         TogglePlayerControllable(playerid, 1);
  343.     }
  344.     return 1;
  345. }
  346.  
  347. /*
  348.   //==========================================================================\\
  349.  //============================================================================\\
  350. ||============================CambiarPass || Reportar===========================||
  351.  \\============================================================================//
  352.   \\==========================================================================//
  353. */
  354.  
  355. CMD:cambiarpass(playerid, params[])
  356. {
  357.     if(aInfo[playerid][Registrado] == 0 || aInfo[playerid][Logueado] == 0) return SendClientMessage(playerid, COLOR_YELLOW, "Debes loguearte/registrarte antes de cambiar tu password!");
  358.     GetPlayerName(playerid, pname, sizeof(pname));
  359.     format(archivo, sizeof(archivo), Users, udb_encode(pname));
  360.    
  361.     if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /cambiarpass <password>");
  362.    
  363.     if(strlen(params) >= 4 && strlen(params) <= 24)
  364.     {
  365.         dini_IntSet(archivo, "pass", udb_hash(params));
  366.         format(str, sizeof(str), "[rAdmin] Cambiaste tu contraseña a %s. No la olvides!", pname, params);
  367.         SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
  368.     }
  369.     else
  370.     {
  371.         SendClientMessage(playerid, COLOR_RED, "Uso: /registrar <contraseña>");
  372.         return SendClientMessage(playerid, COLOR_ORANGE, "Recuerda que tu contraseña debe tener entre 4 & 24 caracteres!");
  373.     }
  374.    
  375.    
  376.     return 1;
  377. }
  378.  
  379. CMD:reportar(playerid, params[])
  380. {
  381.     new playerid2, pname2[MAX_PLAYER_NAME], reason[128];
  382.     if(!sscanf(params, "rs[128]", playerid2, reason))
  383.     {
  384.         if(aInfo[playerid2][Admin] != MaxLevel)
  385.         {
  386.             if(playerid2 == playerid) return SendClientMessage(playerid, COLOR_GREEN, "No te puedes reportar:D");
  387.             GetPlayerName(playerid, pname, sizeof(pname));
  388.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  389.  
  390.             format(str, sizeof(str), "El jugador %s [ID: %d] ha reportado a %s [ID: %d] ~ Razon: %s", pname, playerid, pname2, playerid2, reason);
  391.             MessageToAdmins(COLOR_YELLOW, str);
  392.             aInfo[playerid2][Reports] ++;
  393.            
  394.             if(aInfo[playerid2][Reports] >= MAX_REPORTS)
  395.             {
  396.                 format(str, sizeof(str), "El jugador %s [ID: %d] fue kickeado por acumular %d reportes.", pname2, playerid2, MAX_REPORTS);
  397.                 SendClientMessageToAll(COLOR_ORANGE, str);
  398.                 Kick(playerid2);
  399.             }
  400.         }
  401.         else return SendClientMessage(playerid, COLOR_RED, "Este usuario no puede ser reportado!");
  402.     }
  403.     else return SendClientMessage(playerid, COLOR_RED, "Uso: /reportar <playerid> <razon>");
  404.     return 1;
  405. }
  406.  
  407. /*==============================================================================
  408. ================================================================================
  409. =============================rAdmin VIP Commands!===============================
  410. ================================================================================
  411. ==============================================================================*/
  412.  
  413. /*
  414.   //==========================================================================\\
  415.  //============================================================================\\
  416. ||===================================VIPCMDS====================================||
  417.  \\============================================================================//
  418.   \\==========================================================================//
  419. */
  420.  
  421. CMD:vipcmds(playerid, params[])
  422. {
  423.     if(aInfo[playerid][VIP] < 1) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para VIPs!");
  424.     if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /vipcmds <nivel>");
  425.  
  426.     if(strval(params) == 1)
  427.     {
  428.         SendClientMessage(playerid, COLOR_YELLOW, "|===========================================|");
  429.         SendClientMessage(playerid, COLOR_GREEN, "|- Para hablar en el VIPChat utiliza '@'");
  430.         SendClientMessage(playerid, COLOR_GREEN, "|- Level 1: /saveskin || /useskin");
  431.         SendClientMessage(playerid, COLOR_YELLOW, "|===========================================|");
  432.     }
  433.    
  434.     else if(strval(params) == 2)
  435.     {
  436.         SendClientMessage(playerid, COLOR_YELLOW, "|===========================================|");
  437.         SendClientMessage(playerid, COLOR_GREEN, "|- Para hablar en el VIPChat utiliza '@'");
  438.         SendClientMessage(playerid, COLOR_GREEN, "|- Level 1: /saveskin || /useskin");
  439.         SendClientMessage(playerid, COLOR_GREEN, "|- Level 2: /gmiauto || /miauto");
  440.         SendClientMessage(playerid, COLOR_YELLOW, "|===========================================|");
  441.     }
  442.    
  443.     else if(strval(params) == 3)
  444.     {
  445.         SendClientMessage(playerid, COLOR_YELLOW, "|===========================================|");
  446.         SendClientMessage(playerid, COLOR_GREEN, "|- Para hablar en el VIPChat utiliza '@'");
  447.         SendClientMessage(playerid, COLOR_GREEN, "|- Level 1: /saveskin || /useskin");
  448.         SendClientMessage(playerid, COLOR_GREEN, "|- Level 2: /gmiauto || /miauto");
  449.         SendClientMessage(playerid, COLOR_GREEN, "|- Level 3: /miclima || /mihora");
  450.         SendClientMessage(playerid, COLOR_YELLOW, "|===========================================|");
  451.     }
  452.     else if(strval(params) > MaxVipLevel) return SendClientMessage(playerid, COLOR_RED, "Ese nivel VIP no existe!");
  453.     return 1;
  454. }
  455.  
  456. /*
  457.   //==========================================================================\\
  458.  //============================================================================\\
  459. ||===================================MiClima====================================||
  460.  \\============================================================================//
  461.   \\==========================================================================//
  462. */
  463.  
  464. CMD:miclima(playerid, params[])
  465. {
  466.     if(aInfo[playerid][VIP] < 3) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para VIP Users Nivel 3!");
  467.  
  468.     new clima;
  469.     if(!sscanf(params, "d", clima))
  470.     {
  471.         SetPlayerWeather(playerid, clima);
  472.         SendClientMessage(playerid, COLOR_GREEN, "Has cambiado tu horario!");
  473.     }
  474.     else return SendClientMessage(playerid, COLOR_RED, "Uso: /miclima <clima>");
  475.     return 1;
  476. }
  477.  
  478. /*
  479.   //==========================================================================\\
  480.  //============================================================================\\
  481. ||====================================MiHora====================================||
  482.  \\============================================================================//
  483.   \\==========================================================================//
  484. */
  485.  
  486. CMD:mihora(playerid, params[])
  487. {
  488.     if(aInfo[playerid][VIP] < 3) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para VIP Users Nivel 3!");
  489.  
  490.     new hora;
  491.     if(!sscanf(params, "d", hora))
  492.     {
  493.         SetPlayerTime(playerid, hora, 0);
  494.         SendClientMessage(playerid, COLOR_GREEN, "Has cambiado tu horario!");
  495.     }
  496.     else return SendClientMessage(playerid, COLOR_RED, "Uso: /mihora <hora>");
  497.     return 1;
  498. }
  499.  
  500. /*==============================================================================
  501. ================================================================================
  502. ===========================rAdmin Admin Commands!===============================
  503. ================================================================================
  504. ==============================================================================*/
  505.  
  506.  
  507.  
  508. /*==============================================================================
  509. ================================================================================
  510. ============================rAdmin Admin Nivel 1================================
  511. ================================================================================
  512. ==============================================================================*/
  513.  
  514. /*
  515.   //==========================================================================\\
  516.  //============================================================================\\
  517. ||====================================aCMDS!====================================||
  518. ||====================================gInfo!====================================||
  519.  \\============================================================================//
  520.   \\==========================================================================//
  521. */
  522.  
  523. CMD:acmds(playerid, params[])
  524. {
  525.     if(aInfo[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins!");
  526.     if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /acmds <nivel>");
  527.    
  528.    
  529.     if(strval(params) == 1)
  530.     {
  531.         if(aInfo[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins Nivel 1");
  532.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  533.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 1: /kick || /warn || /slap || /asay");
  534.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 1: /setskin || /saveskin || /useskin");
  535.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 1: /ginfo || /acmds");
  536.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  537.     }
  538.     else if(strval(params) == 2)
  539.     {
  540.         if(aInfo[playerid][Admin] < 2) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins Nivel 2");
  541.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  542.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 2: /mute || /unmute || /freeze");
  543.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 2: /unfreeze || /ann || /abike");
  544.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 2: /acar || /gmiauto || /miauto");
  545.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  546.     }
  547.     else if(strval(params) == 3)
  548.     {
  549.         if(aInfo[playerid][Admin] < 3) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins Nivel 3");
  550.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  551.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 3: /sethealth || /setarmour");
  552.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 3: /spawn || /akill || /setmoney");
  553.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 3: /givemoney || /givehealth");
  554.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 3: /givearmour");
  555.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  556.     }
  557.     else if(strval(params) == 4)
  558.     {
  559.         if(aInfo[playerid][Admin] < 4) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins Nivel 4");
  560.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  561.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 4: /ban || /clearchat || /rcars");
  562.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 4: /setvip || /enablechat || /disablechat");
  563.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  564.     }
  565.     else if(strval(params) == 5)
  566.     {
  567.         if(aInfo[playerid][Admin] < 5) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins Nivel 5");
  568.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  569.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 5: /setlevel || /gmx || /passwd");
  570.         SendClientMessage(playerid, COLOR_YELLOW, "|- Level 5: /spasswd");
  571.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  572.     }
  573.     else if(strval(params) > MaxLevel) return SendClientMessage(playerid, COLOR_RED, "Ese nivel de administracion no existe!");
  574.     return 1;
  575. }
  576.  
  577. /*
  578.   //==========================================================================\\
  579.  //============================================================================\\
  580. ||====================================gInfo!====================================||
  581.  \\============================================================================//
  582.   \\==========================================================================//
  583. */
  584.  
  585. CMD:ginfo(playerid, params[])
  586. {
  587.     if(aInfo[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins!");
  588.     new playerid2;
  589.        
  590.     if(!sscanf(params, "r", playerid2))
  591.     {
  592.         new pname2[MAX_PLAYER_NAME],
  593.             pIP[16],
  594.             Float:vida,
  595.             Float:chaleco;
  596.         GetPlayerName(playerid2, pname2, sizeof(pname2));
  597.         GetPlayerIp(playerid2, pIP, sizeof(pIP));
  598.         GetPlayerHealth(playerid2, vida);
  599.         GetPlayerArmour(playerid2, chaleco);
  600.        
  601.         format(archivo, sizeof(archivo), Users, udb_encode(pname));
  602.        
  603.         if(aInfo[playerid][Admin] == 1)
  604.         {
  605.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  606.             format(str, sizeof(str), "Jugador: %s || Registrado: %d || Logueado: %d || VIP Level: %d", pname2, aInfo[playerid2][Registrado], aInfo[playerid2][Logueado], aInfo[playerid2][VIP]);
  607.             SendClientMessage(playerid, COLOR_YELLOW, str);
  608.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  609.         }
  610.         else if(aInfo[playerid][Admin] == 2)
  611.         {
  612.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  613.             format(str, sizeof(str), "Jugador: %s || Registrado: %d || Logueado: %d || VIP Level: %d", pname2, aInfo[playerid2][Registrado], aInfo[playerid2][Logueado], aInfo[playerid2][VIP]);
  614.             SendClientMessage(playerid, COLOR_YELLOW, str);
  615.  
  616.             format(str, sizeof(str), "IP: %s || Admin Level: %d || Muteado: %d || Congelado: %d", pIP, aInfo[playerid2][Admin], aInfo[playerid2][Muteado], aInfo[playerid2][Congelado]);
  617.            
  618.             SendClientMessage(playerid, COLOR_YELLOW, str);
  619.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  620.         }
  621.         else if(aInfo[playerid][Admin] == 3)
  622.         {
  623.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  624.             format(str, sizeof(str), "Jugador: %s || Registrado: %d || Logueado: %d || VIP Level: %d", pname2, aInfo[playerid2][Registrado], aInfo[playerid2][Logueado], aInfo[playerid2][VIP]);
  625.             SendClientMessage(playerid, COLOR_YELLOW, str);
  626.  
  627.             format(str, sizeof(str), "IP: %s || Admin Level: %d || Muteado: %d || Congelado: %d", pIP, aInfo[playerid2][Admin], aInfo[playerid2][Muteado], aInfo[playerid2][Congelado]);
  628.             SendClientMessage(playerid, COLOR_YELLOW, str);
  629.            
  630.             format(str, sizeof(str), "Interior: %d || VirtualWorld: %d || Vida: %d || Chaleco: %d", GetPlayerInterior(playerid2), GetPlayerVirtualWorld(playerid2), floatround(vida), floatround(chaleco));
  631.             SendClientMessage(playerid, COLOR_YELLOW, str);
  632.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  633.         }
  634.         else if(aInfo[playerid][Admin] == 4)
  635.         {
  636.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  637.             format(str, sizeof(str), "Jugador: %s || Registrado: %d || Logueado: %d || VIP Level: %d", pname2, aInfo[playerid2][Registrado], aInfo[playerid2][Logueado], aInfo[playerid2][VIP]);
  638.             SendClientMessage(playerid, COLOR_YELLOW, str);
  639.  
  640.             format(str, sizeof(str), "IP: %s || Admin Level: %d || Muteado: %d || Congelado: %d", pIP, aInfo[playerid2][Admin], aInfo[playerid2][Muteado], aInfo[playerid2][Congelado]);
  641.             SendClientMessage(playerid, COLOR_YELLOW, str);
  642.  
  643.             format(str, sizeof(str), "Interior: %d || VirtualWorld: %d || Vida: %d || Chaleco: %d", GetPlayerInterior(playerid2), GetPlayerVirtualWorld(playerid2), floatround(vida), floatround(chaleco));
  644.             SendClientMessage(playerid, COLOR_YELLOW, str);
  645.            
  646.             format(str, sizeof(str), "Warnings: %d || Reportes: %d || Skin: %d || VehicleSaved: %d", aInfo[playerid2][Warnings], aInfo[playerid2][Reports], GetPlayerSkin(playerid2), dini_Int(archivo, "Vehicle"));
  647.             SendClientMessage(playerid, COLOR_YELLOW, str);
  648.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  649.         }
  650.         else if(aInfo[playerid][Admin] == 5)
  651.         {
  652.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  653.             format(str, sizeof(str), "Jugador: %s || Registrado: %d || Logueado: %d || VIP Level: %d", pname2, aInfo[playerid2][Registrado], aInfo[playerid2][Logueado], aInfo[playerid2][VIP]);
  654.             SendClientMessage(playerid, COLOR_YELLOW, str);
  655.  
  656.             format(str, sizeof(str), "IP: %s || Admin Level: %d || Muteado: %d || Congelado: %d", pIP, aInfo[playerid2][Admin], aInfo[playerid2][Muteado], aInfo[playerid2][Congelado]);
  657.             SendClientMessage(playerid, COLOR_YELLOW, str);
  658.  
  659.             format(str, sizeof(str), "Interior: %d || VirtualWorld: %d || Vida: %d || Chaleco: %d", GetPlayerInterior(playerid2), GetPlayerVirtualWorld(playerid2), floatround(vida), floatround(chaleco));
  660.             SendClientMessage(playerid, COLOR_YELLOW, str);
  661.  
  662.             format(str, sizeof(str), "Warnings: %d || Reportes: %d || Skin: %d || VehicleSaved: %d", aInfo[playerid2][Warnings], aInfo[playerid2][Reports], GetPlayerSkin(playerid2), dini_Int(archivo, "Vehicle"));
  663.             SendClientMessage(playerid, COLOR_YELLOW, str);
  664.            
  665.             format(str, sizeof(str), "Rcon Login: %d", IsPlayerAdmin(playerid2));
  666.             SendClientMessage(playerid, COLOR_YELLOW, str);
  667.             SendClientMessage(playerid, COLOR_LIGHTGREEN, "|===========================================|");
  668.         }
  669.         GetPlayerName(playerid, pname, sizeof(pname));
  670.         format(str, sizeof(str), "El administrador %s utilizo el comando: ginfo", pname);
  671.         SaveIn("AdminLog", str);
  672.     }
  673.     else return SendClientMessage(playerid, COLOR_RED, "Uso: /ginfo <playerid>");
  674.     return 1;
  675. }
  676.  
  677. /*
  678.   //==========================================================================\\
  679.  //============================================================================\\
  680. ||==============================Kick, Warn, Slap!===============================||
  681.  \\============================================================================//
  682.   \\==========================================================================//
  683. */
  684.  
  685. CMD:kick(playerid, params[])
  686. {
  687.     new playerid2, pname2[MAX_PLAYER_NAME], reason[128];
  688.     if(aInfo[playerid][Admin] >= 1)
  689.     {
  690.         if(!sscanf(params, "rs[128]", playerid2, reason))
  691.         {
  692.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  693.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  694.             GetPlayerName(playerid, pname, sizeof(pname));
  695.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  696.  
  697.             format(str, sizeof(str), "El jugador %s [ID: %d] fue kickeado por el administrador %s ~ Razon: %s", pname2,  playerid2, pname, reason);
  698.             SendClientMessageToAll(COLOR_YELLOW, str);
  699.             Kick(playerid2);
  700.             format(str, sizeof(str), "El jugador %s fue kickeado por %s, razon: %s", pname2, pname, reason);
  701.             SaveIn("KickLog", str);
  702.            
  703.             format(str, sizeof(str), "El administrador %s utilizo el comando: kick", pname);
  704.             SaveIn("AdminLog", str);
  705.            
  706.            
  707.         }
  708.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /kick <playerid> <razon>");
  709.     }
  710.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  711.     return 1;
  712. }
  713.  
  714. CMD:warn(playerid, params[])
  715. {
  716.     new playerid2, pname2[MAX_PLAYER_NAME], reason[128], string[128];
  717.     if(aInfo[playerid][Admin] >= 1)
  718.     {
  719.         if(!sscanf(params, "rs[128]", playerid2, reason))
  720.         {
  721.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  722.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  723.             GetPlayerName(playerid, pname, sizeof(pname));
  724.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  725.             format(str, sizeof(str), "El administrador %s utilizo el comando: warn", pname);
  726.             SaveIn("AdminLog", str);
  727.  
  728.             aInfo[playerid2][Warnings]++;
  729.            
  730.             if(aInfo[playerid2][Warnings] < MAX_WARNINGS)
  731.             {
  732.                 format(string, sizeof(string), "El usuario %s [ID: %d] fue warneado por el Administrador %s ~ Razon: %s (Warnings: %d/%d) -|", pname2, playerid2, pname, reason, aInfo[playerid2][Warnings], MAX_WARNINGS);
  733.                 return SendClientMessageToAll(COLOR_YELLOW, string);
  734.             }
  735.             else
  736.             {
  737.                 format(string, sizeof(string), "El usuario %s [ID: %d] fue kickeado por el Administrador %s ~ Razon: %s (Warnings: %d/%d)", pname2, playerid2, pname, reason, aInfo[playerid2][Warnings], MAX_WARNINGS);
  738.                 SendClientMessageToAll(COLOR_YELLOW, string);
  739.                 Kick(playerid2);
  740.                 GetPlayerName(playerid2, pname2, sizeof(pname2));
  741.                 format(str, sizeof(str), "El usuario %s fue kickeado por tener %d warns", pname2, MAX_WARNINGS);
  742.                 SaveIn("KickLog", str);
  743.                 return aInfo[playerid2][Warnings] = 0;
  744.             }
  745.         }
  746.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /warn <playerid> <razon>");
  747.     }
  748.     else
  749.     {
  750.         SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  751.     }
  752.     return 1;
  753. }
  754.  
  755. CMD:slap(playerid, params[])
  756. {
  757.     new playerid2;
  758.     if(aInfo[playerid][Admin] >= 1)
  759.     {
  760.         if(!sscanf(params, "rs[128]", playerid2))
  761.         {
  762.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  763.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  764.             GetPlayerName(playerid, pname, sizeof(pname));
  765.             new Float:X[MAX_PLAYERS], Float:Y[MAX_PLAYERS], Float:Z[MAX_PLAYERS];
  766.  
  767.             GetPlayerPos(playerid2, X[playerid2], Y[playerid2], Z[playerid2]);
  768.             SetPlayerPos(playerid2, X[playerid2], Y[playerid2], Z[playerid2]+10);
  769.             new Float:health;
  770.             GetPlayerHealth(playerid2, health);
  771.             SetPlayerHealth(playerid2, health-10);
  772.             format(str, sizeof(str), "El Administrador %s [ID: %d] te ha slapeado!", pname, playerid);
  773.             SendClientMessage(playerid2, COLOR_BLUE, str);
  774.             GetPlayerName(playerid, pname, sizeof(pname));
  775.             format(str, sizeof(str), "El administrador %s utilizo el comando: slap", pname);
  776.             SaveIn("AdminLog", str);
  777.            
  778.         }
  779.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /slap <playerid>");
  780.     }
  781.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  782.     return 1;
  783. }
  784.  
  785. /*
  786.   //==========================================================================\\
  787.  //============================================================================\\
  788. ||=====================================Asay=====================================||
  789.  \\============================================================================//
  790.   \\==========================================================================//
  791. */
  792.  
  793. CMD:asay(playerid, params[])
  794. {
  795.     if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /asay <texto>");
  796.     if(aInfo[playerid][Admin] >= 1)
  797.     {
  798.         GetPlayerName(playerid, pname, sizeof(pname));
  799.         format(str, sizeof(str), "|- Admin %s: %s", pname, params);
  800.         SendClientMessageToAll(COLOR_YELLOW, str);
  801.         GetPlayerName(playerid, pname, sizeof(pname));
  802.         format(str, sizeof(str), "El administrador %s utilizo el comando: asay", pname);
  803.         SaveIn("AdminLog", str);
  804.        
  805.     }
  806.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  807.     return 1;
  808. }
  809.  
  810. /*
  811.   //==========================================================================\\
  812.  //============================================================================\\
  813. ||===================================SetSkin====================================||
  814.  \\============================================================================//
  815.   \\==========================================================================//
  816. */
  817.  
  818. CMD:setskin(playerid, params[])
  819. {
  820.     new playerid2, pname2[MAX_PLAYER_NAME], skin;
  821.     if(aInfo[playerid][Admin] >= 1)
  822.     {
  823.         if(!sscanf(params, "rd", playerid2, skin))
  824.         {
  825.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  826.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  827.             GetPlayerName(playerid, pname, sizeof(pname));
  828.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  829.  
  830.             format(str, sizeof(str), "El administrador %s [ID: %d] cambio tu skin al %d", pname, playerid, skin);
  831.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  832.             SetPlayerSkin(playerid2, skin);
  833.             GetPlayerName(playerid, pname, sizeof(pname));
  834.             format(str, sizeof(str), "El administrador %s utilizo el comando: setskin", pname);
  835.             SaveIn("AdminLog", str);
  836.  
  837.         }
  838.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /setskin <playerid> <skin>");
  839.     }
  840.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  841.     return 1;
  842. }
  843.  
  844. /*
  845.   //==========================================================================\\
  846.  //============================================================================\\
  847. ||===================================UseSkin====================================||
  848.  \\============================================================================//
  849.   \\==========================================================================//
  850. */
  851.  
  852. CMD:useskin(playerid, params[])
  853. {
  854.     if(aInfo[playerid][Admin] >= 1 || aInfo[playerid][VIP] >= 1)
  855.     {
  856.         GetPlayerName(playerid, pname, sizeof(pname));
  857.         format(archivo, sizeof(archivo), Users, udb_encode(pname));
  858.        
  859.         SendClientMessage(playerid, COLOR_YELLOW, "Ahora estas usando tu skin guardado!");
  860.         SetPlayerSkin(playerid, dini_Int(archivo, "SavedSkin"));
  861.         GetPlayerName(playerid, pname, sizeof(pname));
  862.         format(str, sizeof(str), "El usuario %s utilizo el comando: useskin", pname);
  863.         SaveIn("AdminLog", str);
  864.     }
  865.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins/VIP Users.");
  866.     return 1;
  867. }
  868.  
  869. /*
  870.   //==========================================================================\\
  871.  //============================================================================\\
  872. ||==================================SaveSkin====================================||
  873.  \\============================================================================//
  874.   \\==========================================================================//
  875. */
  876.  
  877. CMD:saveskin(playerid, params[])
  878. {
  879.     if(aInfo[playerid][Admin] >= 1 || aInfo[playerid][VIP] >= 1)
  880.     {
  881.         new skin;
  882.         if(!sscanf(params, "d", skin))
  883.         {
  884.             GetPlayerName(playerid, pname, sizeof(pname));
  885.             format(archivo, sizeof(archivo), Users, udb_encode(pname));
  886.            
  887.             format(str, sizeof(str), "Guardaste el Skin %d!", skin);
  888.             SendClientMessage(playerid, COLOR_YELLOW, str);
  889.            
  890.             dini_IntSet(archivo, "SavedSkin", skin);
  891.             SetPlayerSkin(playerid, dini_Int(archivo, "SavedSkin"));
  892.             GetPlayerName(playerid, pname, sizeof(pname));
  893.             format(str, sizeof(str), "El usuario %s utilizo el comando: saveskin", pname);
  894.             SaveIn("AdminLog", str);
  895.         }
  896.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /saveskin <skinid>");
  897.     }
  898.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins/VIP Users.");
  899.     return 1;
  900. }
  901.  
  902. /*==============================================================================
  903. ================================================================================
  904. ============================rAdmin Admin Nivel 2================================
  905. ================================================================================
  906. ==============================================================================*/
  907.  
  908.  
  909. /*
  910.   //==========================================================================\\
  911.  //============================================================================\\
  912. ||================================Mute || Unmute!===============================||
  913.  \\============================================================================//
  914.   \\==========================================================================//
  915. */
  916.  
  917. CMD:mute(playerid, params[])
  918. {
  919.     new playerid2, pname2[MAX_PLAYER_NAME];
  920.     if(aInfo[playerid][Admin] >= 2)
  921.     {
  922.         if(!sscanf(params, "r", playerid2))
  923.         {
  924.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  925.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  926.             GetPlayerName(playerid, pname, sizeof(pname));
  927.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  928.            
  929.             format(str, sizeof(str), "El jugador %s [ID: %d] fue muteado por el administrador %s.", pname2,  playerid2, pname);
  930.             if(aInfo[playerid2][Muteado] == 1) return SendClientMessage(playerid, COLOR_MEDBLUE, "Este jugador ya esta Silenciado!");
  931.             SendClientMessageToAll(COLOR_YELLOW, str);
  932.             aInfo[playerid2][Muteado] = 1;
  933.             GetPlayerName(playerid, pname, sizeof(pname));
  934.             format(str, sizeof(str), "El administrador %s utilizo el comando: mute", pname);
  935.             SaveIn("AdminLog", str);
  936.            
  937.         }
  938.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /mute <playerid> <razon>");
  939.     }
  940.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  941.     return 1;
  942. }
  943.  
  944. CMD:unmute(playerid, params[])
  945. {
  946.     new playerid2, pname2[MAX_PLAYER_NAME];
  947.     if(aInfo[playerid][Admin] >= 2)
  948.     {
  949.         if(!sscanf(params, "r", playerid2))
  950.         {
  951.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  952.             GetPlayerName(playerid, pname, sizeof(pname));
  953.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  954.  
  955.             format(str, sizeof(str), "El jugador %s [ID: %d] fue desmuteado por el administrador %s.", pname2,  playerid2, pname);
  956.             if(aInfo[playerid2][Muteado] == 0) return SendClientMessage(playerid, COLOR_MEDBLUE, "Este jugador no esta Silenciado!");
  957.             SendClientMessageToAll(COLOR_YELLOW, str);
  958.             aInfo[playerid2][Muteado] = 0;
  959.             GetPlayerName(playerid, pname, sizeof(pname));
  960.             format(str, sizeof(str), "El administrador %s utilizo el comando: unmute", pname);
  961.             SaveIn("AdminLog", str);
  962.            
  963.         }
  964.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /unmute <playerid> <razon>");
  965.     }
  966.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  967.     return 1;
  968. }
  969.  
  970. /*
  971.   //==========================================================================\\
  972.  //============================================================================\\
  973. ||=================================Abike || Acar================================||
  974.  \\============================================================================//
  975.   \\==========================================================================//
  976. */
  977.  
  978. CMD:abike(playerid, params[])
  979. {
  980.     if(aInfo[playerid][Admin] >= 2)
  981.     {
  982.         if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Ya estas en un vehiculo!");
  983.         new Float:x, Float:y, Float:z, Float:a;
  984.         GetPlayerPos(playerid, x, y, z);
  985.         GetPlayerFacingAngle(playerid, a);
  986.         if(Car2[playerid] == 1) return DestroyVehicle(Car[playerid]);
  987.         Car2[playerid] = 1;
  988.         Car[playerid] = CreateVehicle(522, x, y, z+1, a, 0, 126, 600000);
  989.         PutPlayerInVehicle(playerid, Car[playerid], 0);
  990.         GetPlayerName(playerid, pname, sizeof(pname));
  991.         format(str, sizeof(str), "El administrador %s utilizo el comando: abike", pname);
  992.         SaveIn("AdminLog", str);
  993.        
  994.     }
  995.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins.");
  996.     return 1;
  997. }
  998.  
  999. CMD:acar(playerid, params[])
  1000. {
  1001.     if(aInfo[playerid][Admin] >= 2)
  1002.     {
  1003.         if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Ya estas en un vehiculo!");
  1004.         new Float:x, Float:y, Float:z, Float:a;
  1005.         GetPlayerPos(playerid, x, y, z);
  1006.         GetPlayerFacingAngle(playerid, a);
  1007.         if(Car2[playerid] == 1) return DestroyVehicle(Car[playerid]);
  1008.         Car2[playerid] = 1;
  1009.         Car[playerid] = CreateVehicle(541, x, y, z+1, a, 0, 126, 600000);
  1010.         PutPlayerInVehicle(playerid, Car[playerid], 0);
  1011.         GetPlayerName(playerid, pname, sizeof(pname));
  1012.         format(str, sizeof(str), "El administrador %s utilizo el comando: acar", pname);
  1013.         SaveIn("AdminLog", str);
  1014.        
  1015.     }
  1016.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins.");
  1017.     return 1;
  1018. }
  1019.  
  1020. CMD:miauto(playerid, params[])
  1021. {
  1022.     if(aInfo[playerid][Admin] >= 2 || aInfo[playerid][VIP] >= 2)
  1023.     {
  1024.         GetPlayerName(playerid, pname, sizeof(pname));
  1025.         format(archivo, sizeof(archivo), Users, udb_encode(pname));
  1026.        
  1027.         if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Ya estas en un vehiculo!");
  1028.         if(dini_Int(archivo, "Vehicle") == 0) return SendClientMessage(playerid, COLOR_RED, "No has guardado un vehiculo! Utiliza /gmiauto <vehicleid>");
  1029.         new Float:x, Float:y, Float:z, Float:a;
  1030.         GetPlayerPos(playerid, x, y, z);
  1031.         GetPlayerFacingAngle(playerid, a);
  1032.         if(Car2[playerid] == 1) return DestroyVehicle(Car[playerid]);
  1033.         Car2[playerid] = 1;
  1034.         Car[playerid] = CreateVehicle(dini_Int(archivo, "Vehicle"), x, y, z+1, a, 0, 126, 600000);
  1035.         PutPlayerInVehicle(playerid, Car[playerid], 0);
  1036.         format(str, sizeof(str), "El usuario %s utilizo el comando: miauto", pname);
  1037.         SaveIn("AdminLog", str);
  1038.     }
  1039.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins/VIP Users.");
  1040.     return 1;
  1041. }
  1042.  
  1043. CMD:gmiauto(playerid, params[])
  1044. {
  1045.     if(aInfo[playerid][Admin] >= 2 || aInfo[playerid][VIP] >= 2)
  1046.     {
  1047.         new vehicleid;
  1048.         if(!sscanf(params, "i", vehicleid))
  1049.         {
  1050.             GetPlayerName(playerid, pname, sizeof(pname));
  1051.             format(archivo, sizeof(archivo), Users, udb_encode(pname));
  1052.             dini_IntSet(archivo, "Vehicle", vehicleid);
  1053.             format(str, sizeof(str), "Has guardado como vehiculo el Vehiculo %d", vehicleid);
  1054.             SendClientMessage(playerid, COLOR_YELLOW, str);
  1055.            
  1056.             new Float:x, Float:y, Float:z, Float:a;
  1057.             GetPlayerPos(playerid, x, y, z);
  1058.             GetPlayerFacingAngle(playerid, a);
  1059.             if(Car2[playerid] == 1) return DestroyVehicle(Car[playerid]);
  1060.             Car2[playerid] = 1;
  1061.             Car[playerid] = CreateVehicle(dini_Int(archivo, "Vehicle"), x, y, z+1, a, 0, 126, 600000);
  1062.             PutPlayerInVehicle(playerid, Car[playerid], 0);
  1063.             format(str, sizeof(str), "El usuario %s utilizo el comando: gmiauto", pname);
  1064.             SaveIn("AdminLog", str);
  1065.         }
  1066.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /gmiauto <veh>");
  1067.     }
  1068.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins/VIP Users.");
  1069.     return 1;
  1070. }
  1071.  
  1072. /*
  1073.   //==========================================================================\\
  1074.  //============================================================================\\
  1075. ||==============================Freeze || Unfreeze!=============================||
  1076.  \\============================================================================//
  1077.   \\==========================================================================//
  1078. */
  1079.  
  1080. CMD:freeze(playerid, params[])
  1081. {
  1082.     new playerid2, pname2[MAX_PLAYER_NAME];
  1083.     if(aInfo[playerid][Admin] >= 2)
  1084.     {
  1085.         if(!sscanf(params, "r", playerid2))
  1086.         {
  1087.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1088.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  1089.             GetPlayerName(playerid, pname, sizeof(pname));
  1090.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1091.  
  1092.             format(str, sizeof(str), "El jugador %s [ID: %d] fue congelado por el administrador %s.", pname2,  playerid2, pname);
  1093.             if(aInfo[playerid2][Congelado] == 1) return SendClientMessage(playerid, COLOR_MEDBLUE, "Este jugador ya esta Congelado!");
  1094.             aInfo[playerid2][Congelado] = 1;
  1095.             SendClientMessageToAll(COLOR_YELLOW, str);
  1096.             TogglePlayerControllable(playerid2, 0);
  1097.             format(str, sizeof(str), "El administrador %s utilizo el comando: freeze", pname);
  1098.             SaveIn("AdminLog", str);
  1099.            
  1100.         }
  1101.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /freeze <playerid>");
  1102.     }
  1103.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1104.     return 1;
  1105. }
  1106.  
  1107. CMD:unfreeze(playerid, params[])
  1108. {
  1109.     new playerid2, pname2[MAX_PLAYER_NAME];
  1110.     if(aInfo[playerid][Admin] >= 2)
  1111.     {
  1112.         if(!sscanf(params, "r", playerid2))
  1113.         {
  1114.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1115.             GetPlayerName(playerid, pname, sizeof(pname));
  1116.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1117.  
  1118.             format(str, sizeof(str), "El jugador %s [ID: %d] fue descongelado por el administrador %s.", pname2,  playerid2, pname);
  1119.             if(aInfo[playerid2][Congelado] == 0) return SendClientMessage(playerid, COLOR_MEDBLUE, "Este jugador no esta Congelado!");
  1120.             aInfo[playerid2][Congelado] = 0;
  1121.             SendClientMessageToAll(COLOR_YELLOW, str);
  1122.             TogglePlayerControllable(playerid2, 1);
  1123.             format(str, sizeof(str), "El administrador %s utilizo el comando: unfreeze", pname);
  1124.             SaveIn("AdminLog", str);
  1125.            
  1126.         }
  1127.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /unfreeze <playerid>");
  1128.     }
  1129.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1130.     return 1;
  1131. }
  1132.  
  1133. /*
  1134.   //==========================================================================\\
  1135.  //============================================================================\\
  1136. ||==================================Anuncios====================================||
  1137.  \\============================================================================//
  1138.   \\==========================================================================//
  1139. */
  1140.  
  1141. CMD:ann(playerid, params[])
  1142. {
  1143.     if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /ann <texto>");
  1144.     if(aInfo[playerid][Admin] >= 2)
  1145.     {
  1146.         format(str, sizeof(str), "%s", params);
  1147.         GameTextForAll(str, 5000, 1);
  1148.        
  1149.         GetPlayerName(playerid, pname, sizeof(pname));
  1150.         format(str, sizeof(str), "El administrador %s utilizo el comando: ann", pname);
  1151.         SaveIn("AdminLog", str);
  1152.        
  1153.     }
  1154.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1155.     return 1;
  1156. }
  1157.  
  1158. /*==============================================================================
  1159. ================================================================================
  1160. ============================rAdmin Admin Nivel 3================================
  1161. ================================================================================
  1162. ==============================================================================*/
  1163.  
  1164. /*
  1165.   //==========================================================================\\
  1166.  //============================================================================\\
  1167. ||============================Sethealth || Setarmour============================||
  1168. ||===========================Givehealth || Givearmour===========================||
  1169.  \\============================================================================//
  1170.   \\==========================================================================//
  1171. */
  1172.  
  1173. CMD:sethealth(playerid, params[])
  1174. {
  1175.     new playerid2, pname2[MAX_PLAYER_NAME], health;
  1176.     if(aInfo[playerid][Admin] >= 3)
  1177.     {
  1178.         if(!sscanf(params, "ri", playerid2, health))
  1179.         {
  1180.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1181.             GetPlayerName(playerid, pname, sizeof(pname));
  1182.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1183.            
  1184.             SetPlayerHealth(playerid2, health);
  1185.             format(str, sizeof(str), "El Administrador %s [ID: %d] cambio tu vida a %d.", pname,  playerid, health);
  1186.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1187.             format(str, sizeof(str), "El administrador %s utilizo el comando: sethealth", pname);
  1188.             SaveIn("AdminLog", str);
  1189.            
  1190.         }
  1191.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /sethealth <playerid> <vida>");
  1192.     }
  1193.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1194.     return 1;
  1195. }
  1196.  
  1197. CMD:setarmour(playerid, params[])
  1198. {
  1199.     new playerid2, pname2[MAX_PLAYER_NAME], armour;
  1200.     if(aInfo[playerid][Admin] >= 3)
  1201.     {
  1202.         if(!sscanf(params, "ri", playerid2, armour))
  1203.         {
  1204.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1205.             GetPlayerName(playerid, pname, sizeof(pname));
  1206.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1207.            
  1208.             SetPlayerArmour(playerid2, armour);
  1209.             format(str, sizeof(str), "El Administrador %s [ID: %d] cambio tu Armadura a %d.", pname,  playerid, armour);
  1210.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1211.             format(str, sizeof(str), "El administrador %s utilizo el comando: setarmour", pname);
  1212.             SaveIn("AdminLog", str);
  1213.            
  1214.         }
  1215.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /setarmour <playerid> <chaleco>");
  1216.     }
  1217.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1218.     return 1;
  1219. }
  1220.  
  1221. CMD:givehealth(playerid, params[])
  1222. {
  1223.     new playerid2, pname2[MAX_PLAYER_NAME], health;
  1224.     if(aInfo[playerid][Admin] >= 3)
  1225.     {
  1226.         if(!sscanf(params, "ri", playerid2, health))
  1227.         {
  1228.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1229.             GetPlayerName(playerid, pname, sizeof(pname));
  1230.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1231.  
  1232.             new Float:h2;
  1233.             GetPlayerHealth(playerid, h2);
  1234.             SetPlayerHealth(playerid2, h2 + health);
  1235.             format(str, sizeof(str), "El Administrador %s [ID: %d] te dio %d de vida!", pname,  playerid, health);
  1236.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1237.             format(str, sizeof(str), "El administrador %s utilizo el comando: givehealth", pname);
  1238.             SaveIn("AdminLog", str);
  1239.  
  1240.         }
  1241.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /givehealth <playerid> <vida>");
  1242.     }
  1243.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1244.     return 1;
  1245. }
  1246.  
  1247. CMD:givearmour(playerid, params[])
  1248. {
  1249.     new playerid2, pname2[MAX_PLAYER_NAME], armour;
  1250.     if(aInfo[playerid][Admin] >= 3)
  1251.     {
  1252.         if(!sscanf(params, "ri", playerid2, armour))
  1253.         {
  1254.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1255.             GetPlayerName(playerid, pname, sizeof(pname));
  1256.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1257.  
  1258.             new Float:a2;
  1259.             GetPlayerArmour(playerid, a2);
  1260.             SetPlayerArmour(playerid2, a2 + armour);
  1261.             format(str, sizeof(str), "El Administrador %s [ID: %d] te dio %d de chaleco!", pname,  playerid, armour);
  1262.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1263.             format(str, sizeof(str), "El administrador %s utilizo el comando: givearmour", pname);
  1264.             SaveIn("AdminLog", str);
  1265.  
  1266.         }
  1267.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /givearmour <playerid> <chaleco>");
  1268.     }
  1269.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1270.     return 1;
  1271. }
  1272.  
  1273. /*
  1274.   //==========================================================================\\
  1275.  //============================================================================\\
  1276. ||===================================GiveMoney==================================||
  1277. ||====================================SetMoney==================================||
  1278.  \\============================================================================//
  1279.   \\==========================================================================//
  1280. */
  1281.  
  1282. CMD:givemoney(playerid, params[])
  1283. {
  1284.     new playerid2, pname2[MAX_PLAYER_NAME], money;
  1285.     if(aInfo[playerid][Admin] >= 3)
  1286.     {
  1287.         if(!sscanf(params, "ri", playerid2, money))
  1288.         {
  1289.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1290.             GetPlayerName(playerid, pname, sizeof(pname));
  1291.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1292.  
  1293.             GivePlayerMoney(playerid, money);
  1294.             format(str, sizeof(str), "El Administrador %s [ID: %d] te dio $%d!", pname,  playerid, money);
  1295.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1296.             format(str, sizeof(str), "El administrador %s utilizo el comando: givemoney", pname);
  1297.             SaveIn("AdminLog", str);
  1298.  
  1299.         }
  1300.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /givemoney <playerid> <dinero>");
  1301.     }
  1302.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1303.     return 1;
  1304. }
  1305.  
  1306. CMD:setmoney(playerid, params[])
  1307. {
  1308.     new playerid2, pname2[MAX_PLAYER_NAME], money;
  1309.     if(aInfo[playerid][Admin] >= 3)
  1310.     {
  1311.         if(!sscanf(params, "ri", playerid2, money))
  1312.         {
  1313.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1314.             GetPlayerName(playerid, pname, sizeof(pname));
  1315.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1316.  
  1317.             ResetPlayerMoney(playerid);
  1318.             GivePlayerMoney(playerid, money);
  1319.             format(str, sizeof(str), "El Administrador %s [ID: %d] seteo tu dinero a $%d!", pname,  playerid, money);
  1320.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1321.             format(str, sizeof(str), "El administrador %s utilizo el comando: setmoney", pname);
  1322.             SaveIn("AdminLog", str);
  1323.  
  1324.         }
  1325.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /setmoney <playerid> <dinero>");
  1326.     }
  1327.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1328.     return 1;
  1329. }
  1330.  
  1331. /*
  1332.   //==========================================================================\\
  1333.  //============================================================================\\
  1334. ||=====================================Spawn====================================||
  1335.  \\============================================================================//
  1336.   \\==========================================================================//
  1337. */
  1338.  
  1339. CMD:spawn(playerid, params[])
  1340. {
  1341.     new playerid2, pname2[MAX_PLAYER_NAME];
  1342.     if(aInfo[playerid][Admin] >= 3)
  1343.     {
  1344.         if(!sscanf(params, "r", playerid2))
  1345.         {
  1346.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1347.             GetPlayerName(playerid, pname, sizeof(pname));
  1348.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1349.            
  1350.             format(str, sizeof(str), "El jugador %s [ID: %d] fue spawneado por el administrador %s.", pname2,  playerid2, pname);
  1351.             SendClientMessageToAll(COLOR_YELLOW, str);
  1352.             SpawnPlayer(playerid2);
  1353.             format(str, sizeof(str), "El administrador %s utilizo el comando: spawn", pname);
  1354.             SaveIn("AdminLog", str);
  1355.         }
  1356.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /spawn <playerid>");
  1357.     }
  1358.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1359.     return 1;
  1360. }
  1361.  
  1362. /*
  1363.   //==========================================================================\\
  1364.  //============================================================================\\
  1365. ||=====================================Akill====================================||
  1366.  \\============================================================================//
  1367.   \\==========================================================================//
  1368. */
  1369.  
  1370. CMD:akill(playerid, params[])
  1371. {
  1372.     new playerid2, pname2[MAX_PLAYER_NAME];
  1373.     if(aInfo[playerid][Admin] >= 3)
  1374.     {
  1375.         if(!sscanf(params, "r", playerid2))
  1376.         {
  1377.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1378.             GetPlayerName(playerid, pname, sizeof(pname));
  1379.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1380.  
  1381.             format(str, sizeof(str), "El jugador %s [ID: %d] fue asesinado por el administrador %s.", pname2,  playerid2, pname);
  1382.             SendClientMessageToAll(COLOR_YELLOW, str);
  1383.             SetPlayerHealth(playerid2, 0);
  1384.             SetPlayerArmour(playerid2, 0);
  1385.             format(str, sizeof(str), "El administrador %s utilizo el comando: akill", pname);
  1386.             SaveIn("AdminLog", str);
  1387.         }
  1388.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /akill <playerid>");
  1389.     }
  1390.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1391.     return 1;
  1392. }
  1393.  
  1394. /*==============================================================================
  1395. ================================================================================
  1396. ============================rAdmin Admin Nivel 4================================
  1397. ================================================================================
  1398. ==============================================================================*/
  1399.  
  1400. /*
  1401.   //==========================================================================\\
  1402.  //============================================================================\\
  1403. ||======================================Ban=====================================||
  1404.  \\============================================================================//
  1405.   \\==========================================================================//
  1406. */
  1407.  
  1408. CMD:ban(playerid, params[])
  1409. {
  1410.     new playerid2, pname2[MAX_PLAYER_NAME], reason[128];
  1411.     if(aInfo[playerid][Admin] >= 4)
  1412.     {
  1413.         if(!sscanf(params, "rs[128]", playerid2, reason))
  1414.         {
  1415.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1416.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  1417.             GetPlayerName(playerid, pname, sizeof(pname));
  1418.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1419.  
  1420.             format(str, sizeof(str), "El jugador %s [ID: %d] fue baneado por el administrador %s ~ Razon: %s", pname2,  playerid2, pname, reason);
  1421.             SendClientMessageToAll(COLOR_YELLOW, str);
  1422.             aInfo[playerid2][Baneado] = 1;
  1423.             BanEx(playerid2, reason);
  1424.             format(str, sizeof(str), "El administrador %s utilizo el comando: ban", pname);
  1425.             SaveIn("AdminLog", str);
  1426.             format(str, sizeof(str), "El administrador %s baneo a %s por %s", pname, pname2, reason);
  1427.             SaveIn("BanLog", str);
  1428.         }
  1429.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /ban <playerid> <razon>");
  1430.     }
  1431.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1432.     return 1;
  1433. }
  1434.  
  1435. /*
  1436.   //==========================================================================\\
  1437.  //============================================================================\\
  1438. ||==================================ClearChat===================================||
  1439.  \\============================================================================//
  1440.   \\==========================================================================//
  1441. */
  1442.  
  1443. CMD:clearchat(playerid, params[])
  1444. {
  1445.     if(aInfo[playerid][Admin] >= 4)
  1446.     {
  1447.         GetPlayerName(playerid, pname, sizeof(pname));
  1448.         for(new i = 0; i < 100; i++)
  1449.         {
  1450.             format(str, sizeof(str), "  ");
  1451.             SendClientMessageToAll(COLOR_LIGHTGREEN, str);
  1452.         }
  1453.         format(str, sizeof(str), "El Administrador %s [ID: %d] limpio el chat..", pname,  playerid);
  1454.         SendClientMessageToAll(COLOR_YELLOW, str);
  1455.         format(str, sizeof(str), "El administrador %s utilizo el comando: clearchat", pname);
  1456.         SaveIn("AdminLog", str);
  1457.     }
  1458.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1459.     return 1;
  1460. }
  1461.  
  1462. /*
  1463.   //==========================================================================\\
  1464.  //============================================================================\\
  1465. ||==================================Resp Cars===================================||
  1466.  \\============================================================================//
  1467.   \\==========================================================================//
  1468. */
  1469.  
  1470. CMD:rcars(playerid, params[])
  1471. {
  1472.     if(aInfo[playerid][Admin] >= 4 || IsPlayerAdmin(playerid))
  1473.     {
  1474.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "Respawneaste todos los vehiculos desocupados!");
  1475.         GameTextForAll("~n~~n~~n~~n~~n~~n~~r~Vehiculos ~g~Respawneados!", 3000,3);
  1476.  
  1477.         for(new cars=0; cars<MAX_VEHICLES; cars++)
  1478.         {
  1479.             if(!VehicleOccupied(cars))
  1480.             {
  1481.                 SetVehicleToRespawn(cars);
  1482.             }
  1483.         }
  1484.         GetPlayerName(playerid, pname, sizeof(pname));
  1485.         format(str, sizeof(str), "El administrador %s utilizo el comando: rcars", pname);
  1486.         SaveIn("AdminLog", str);
  1487.     }
  1488.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1489.     return 1;
  1490. }
  1491.  
  1492. /*
  1493.   //==========================================================================\\
  1494.  //============================================================================\\
  1495. ||======================================VIP=====================================||
  1496.  \\============================================================================//
  1497.   \\==========================================================================//
  1498. */
  1499.  
  1500. CMD:setvip(playerid, params[])
  1501. {
  1502.     new playerid2, pname2[MAX_PLAYER_NAME], level;
  1503.     if(aInfo[playerid][Admin] >= 4)
  1504.     {
  1505.         if(!sscanf(params, "rd", playerid2, level))
  1506.         {
  1507.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1508.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  1509.             GetPlayerName(playerid, pname, sizeof(pname));
  1510.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1511.  
  1512.             format(str, sizeof(str), "El jugador %s [ID: %d] ahora es VIP Nivel %d!", pname2,  playerid2, level);
  1513.             SendClientMessageToAll(COLOR_YELLOW, str);
  1514.             aInfo[playerid2][VIP] = level;
  1515.             format(str, sizeof(str), "Bienvenido, %s! Ahora eres VIP! Usa /vipcmds para ver tus ventajas!", pname2);
  1516.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1517.            
  1518.             format(str, sizeof(str), "El administrador %s utilizo el comando: setvip", pname);
  1519.             SaveIn("AdminLog", str);
  1520.             format(str, sizeof(str), "El administrador %s dio nivel VIP %d a %s", pname, level, pname2);
  1521.             SaveIn("VipLog", str);
  1522.         }
  1523.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /setvip <playerid> <nivel>");
  1524.     }
  1525.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1526.     return 1;
  1527. }
  1528.  
  1529. /*
  1530.   //==========================================================================\\
  1531.  //============================================================================\\
  1532. ||==================================Chat CMDS===================================||
  1533.  \\============================================================================//
  1534.   \\==========================================================================//
  1535. */
  1536.  
  1537. CMD:enablechat(playerid, params[])
  1538. {
  1539.     if(aInfo[playerid][Admin] >= 4)
  1540.     {
  1541.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "Habilitaste el Chat! Todos podran hablar ahora!");
  1542.         GameTextForAll("~n~~n~~n~~n~~n~~n~~r~chat habilitado!", 3000,3);
  1543.         dChat = 0;
  1544.  
  1545.         GetPlayerName(playerid, pname, sizeof(pname));
  1546.         format(str, sizeof(str), "El administrador %s [ID: %d] habilito el chat!", pname, playerid);
  1547.         SendClientMessageToAll(COLOR_YELLOW, str);
  1548.  
  1549.         format(str, sizeof(str), "El administrador %s utilizo el comando: enablechat", pname);
  1550.         SaveIn("AdminLog", str);
  1551.     }
  1552.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1553.     return 1;
  1554. }
  1555.  
  1556. CMD:disablechat(playerid, params[])
  1557. {
  1558.     if(aInfo[playerid][Admin] >= 4)
  1559.     {
  1560.         SendClientMessage(playerid, COLOR_LIGHTGREEN, "Deshabilitaste el Chat! Solo los admins podran hablar ahora.");
  1561.         GameTextForAll("~n~~n~~n~~n~~n~~n~~r~chat deshabilitado!", 3000,3);
  1562.         dChat = 1;
  1563.  
  1564.         GetPlayerName(playerid, pname, sizeof(pname));
  1565.         format(str, sizeof(str), "El administrador %s [ID: %d] deshabilito el chat!", pname, playerid);
  1566.         SendClientMessageToAll(COLOR_YELLOW, str);
  1567.  
  1568.         format(str, sizeof(str), "El administrador %s utilizo el comando: disablechat", pname);
  1569.         SaveIn("AdminLog", str);
  1570.     }
  1571.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins");
  1572.     return 1;
  1573. }
  1574.  
  1575. /*==============================================================================
  1576. ================================================================================
  1577. ============================rAdmin Admin Nivel 5================================
  1578. ================================================================================
  1579. ==============================================================================*/
  1580.  
  1581. /*
  1582.   //==========================================================================\\
  1583.  //============================================================================\\
  1584. ||===================================SetLevel===================================||
  1585.  \\============================================================================//
  1586.   \\==========================================================================//
  1587. */
  1588.  
  1589. CMD:setlevel(playerid, params[])
  1590. {
  1591.     new playerid2, pname2[MAX_PLAYER_NAME], admlevel;
  1592.     if(aInfo[playerid][Admin] >= MaxLevel || IsPlayerAdmin(playerid))
  1593.     {
  1594.         if(!sscanf(params, "rd", playerid2, admlevel))
  1595.         {
  1596.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto.");
  1597.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!");
  1598.             GetPlayerName(playerid, pname, sizeof(pname));
  1599.             GetPlayerName(playerid2, pname2, sizeof(pname2));
  1600.  
  1601.             aInfo[playerid2][Admin] = admlevel;
  1602.             format(str, sizeof(str), "El Administrador %s [ID: %d] te dio nivel %d.", pname,  playerid, admlevel);
  1603.             SendClientMessage(playerid2, COLOR_YELLOW, str);
  1604.            
  1605.             format(str, sizeof(str), "El administrador %s le dio nivel %d a %s", pname, admlevel, pname2);
  1606.             SaveIn("AdminLog", str);
  1607.         }
  1608.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /setlevel <playerid> <nivel>");
  1609.     }
  1610.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins del Maximo Nivel.");
  1611.     return 1;
  1612. }
  1613.  
  1614. /*
  1615.   //==========================================================================\\
  1616.  //============================================================================\\
  1617. ||==================================SvRestart===================================||
  1618.  \\============================================================================//
  1619.   \\==========================================================================//
  1620. */
  1621.  
  1622. CMD:gmx(playerid, params[])
  1623. {
  1624.     if(aInfo[playerid][Admin] == MaxLevel || IsPlayerAdmin(playerid))
  1625.     {
  1626.         SendClientMessage(playerid, COLOR_YELLOW, "El servidor sera reiniciado en 5 segundos!");
  1627.         SetTimer("GMR", 5000, false);
  1628.         format(str, sizeof(str), "El administrador %s utilizo el comando: gmx", pname);
  1629.         SaveIn("AdminLog", str);
  1630.     }
  1631.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins del Maximo Nivel.");
  1632.     return 1;
  1633. }
  1634.  
  1635. /*
  1636.   //==========================================================================\\
  1637.  //============================================================================\\
  1638. ||===================================SvPasswd===================================||
  1639.  \\============================================================================//
  1640.   \\==========================================================================//
  1641. */
  1642.  
  1643. CMD:passwd(playerid, params[])
  1644. {
  1645.     if(aInfo[playerid][Admin] == MaxLevel || IsPlayerAdmin(playerid))
  1646.     {
  1647.         new passwd[12];
  1648.         if(!sscanf(params, "s[12]", passwd))
  1649.         {
  1650.             if(strlen(passwd) < 4 || strlen(passwd) > 12) return SendClientMessage(playerid, COLOR_RED, "La password debe tener entre 4 y 12 caracteres!");
  1651.             format(str, sizeof(str), "La password del servidor ahora es \"%s!\"", passwd);
  1652.             SendClientMessage(playerid, COLOR_YELLOW, str);
  1653.             format(str, sizeof(str), "password %s", passwd);
  1654.             SendRconCommand(str);
  1655.             GetPlayerName(playerid, pname, sizeof(pname));
  1656.             format(str, sizeof(str), "El administrador %s utilizo el comando: passwd", pname);
  1657.             SaveIn("AdminLog", str);
  1658.         }
  1659.         else return SendClientMessage(playerid, COLOR_RED, "Uso: /passwd <password>");
  1660.     }
  1661.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins del Maximo Nivel.");
  1662.     return 1;
  1663. }
  1664.  
  1665. CMD:spasswd(playerid, params[])
  1666. {
  1667.     if(aInfo[playerid][Admin] == MaxLevel || IsPlayerAdmin(playerid))
  1668.     {
  1669.         SendRconCommand("password 0");
  1670.         SendClientMessage(playerid, COLOR_YELLOW, "Removiste la password!");
  1671.         GetPlayerName(playerid, pname, sizeof(pname));
  1672.         format(str, sizeof(str), "El administrador %s utilizo el comando: spasswd", pname);
  1673.         SaveIn("AdminLog", str);
  1674.     }
  1675.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins del Maximo Nivel.");
  1676.     return 1;
  1677. }
  1678.  
  1679. /*==============================================================================
  1680. ================================================================================
  1681. =================================OnPlayerText!==================================
  1682. ================================================================================
  1683. ==============================================================================*/
  1684.  
  1685. public OnPlayerText(playerid, text[])
  1686. {
  1687.     new string[128];
  1688.     GetPlayerName(playerid, pname, sizeof(pname));
  1689.     format(string, sizeof(string), "%s [%d]:{FFFFFF} %s", pname, playerid, text);
  1690.    
  1691.     if(dChat == 1) return SendClientMessage(playerid, COLOR_RED, "El chat esta Deshabilitado!");
  1692.    
  1693.     if(BuscarIPs(text))
  1694.     {
  1695.         format(str, sizeof(str), "El jugador %s [ID: %d] intento spamear la IP %s", pname, playerid, text);
  1696.         MessageToAdmins(COLOR_LIGHTGREEN, str);
  1697.         SendClientMessage(playerid, COLOR_GREEN, "Se ha detectado spam en su mensaje. Usted ha sido kickeado!");
  1698.         SendClientMessage(playerid, COLOR_GREEN, "La IP ha sido enviada a los admins para que la investiguen!");
  1699.        
  1700.         format(str, sizeof(str), "El usuario %s [ID: %d] intento hacer spam y fue kickeado!", pname, playerid);
  1701.         SendClientMessageToAll(COLOR_MEDBLUE, str);
  1702.         Kick(playerid);
  1703.         format(str, sizeof(str), "El usuario %s fue kickeado por intentar spamear la IP %s", pname, text);
  1704.         SaveIn("KickLog", str);
  1705.         return 0;
  1706.     }
  1707.            
  1708.     if(aInfo[playerid][Muteado] == 1)
  1709.     {
  1710.         aInfo[playerid][MuteWarns] ++;
  1711.         if(aInfo[playerid][MuteWarns] < MAX_MUTEWARNS)
  1712.         {
  1713.             format(str, sizeof(str), "Has sido warneado por intentar hablar! Warnings: %d/%d", aInfo[playerid][MuteWarns], MAX_MUTEWARNS);
  1714.             SendClientMessage(playerid, COLOR_RED, str);
  1715.         }
  1716.         if(aInfo[playerid][MuteWarns] >= MAX_MUTEWARNS)
  1717.         {
  1718.             format(str, sizeof(str), "Has sido kickeado por intentar hablar! Warnings: %d/%d", aInfo[playerid][MuteWarns], MAX_MUTEWARNS);
  1719.             SendClientMessage(playerid, COLOR_RED, str);
  1720.             Kick(playerid);
  1721.             format(str, sizeof(str), "El usuario %s fue kickeado por hablar estando muteado.", pname, text);
  1722.             SaveIn("KickLog", str);
  1723.         }
  1724.         return 0;
  1725.     }
  1726.    
  1727.     if(text[0] == '@' && aInfo[playerid][VIP] > 0)
  1728.     {
  1729.         format(str, sizeof(str), "~%s: %s", pname, text[1]);
  1730.         printf("%s", text[0]);
  1731.         for(new i = 0; i < MAX_PLAYERS; i++)
  1732.         {
  1733.             if(IsPlayerConnected(i))
  1734.             {
  1735.                 if(aInfo[i][VIP] != 0)
  1736.                 MessageToVIPs(COLOR_GREEN, str);
  1737.             }
  1738.         }
  1739.         SaveIn("VIPChatLog", str);
  1740.     }
  1741.     else if(text[0] == '#' && aInfo[playerid][Admin] > 0)
  1742.     {
  1743.         format(str, sizeof(str), "*%s: %s", pname, text[1]);
  1744.         printf("%s", text[0]);
  1745.         for(new i = 0; i < MAX_PLAYERS; i++)
  1746.         {
  1747.             if(IsPlayerConnected(i))
  1748.             {
  1749.                 if(aInfo[i][Admin] != 0)
  1750.                 MessageToAdmins(COLOR_LIGHTGREEN, str);
  1751.             }
  1752.         }
  1753.         SaveIn("AdmChatLog", str);
  1754.     }
  1755.     else
  1756.     {
  1757.         SendClientMessageToAll(GetPlayerColor(playerid), string);
  1758.         format(str, sizeof(str), "%s: %s", pname, text);
  1759.         SaveIn("ChatLog", str);
  1760.     }
  1761.    
  1762.     return 0;
  1763. }
  1764.  
  1765. /*==============================================================================
  1766. ================================================================================
  1767. =============================OnPlayerClickPlayer================================
  1768. ====================================System======================================
  1769. ================================================================================
  1770. ==============================================================================*/
  1771.  
  1772. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1773. {
  1774.     if(Clicked == 1) return SendClientMessage(playerid, COLOR_RED, "El menú ya esta siendo usado!");
  1775.     if(aInfo[playerid][Admin] == 0 || aInfo[playerid][Admin] < aInfo[cpid][Admin]) return 0;
  1776.     Clicked = 1;
  1777.     cpid = clickedplayerid;
  1778.     GetPlayerName(playerid, pname, sizeof(pname));
  1779.     ShowPlayerDialog(playerid, Click, DIALOG_STYLE_LIST, "rAdmin! [Player Menu]", "Freeze | Unfreeze Player\nMute | Unmute Player\nWarn Player\nKick Player\nBan Player\nSlap Player\nSpawn Player\nKill Player", "Aceptar", "Cancelar");
  1780.     format(str, sizeof(str), "El Administrador %s abrio el menu.", pname);
  1781.     SaveIn("AdminLog", str);
  1782.     return 1;
  1783. }
  1784.  
  1785. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1786. {
  1787.     switch(dialogid) // Lookup the dialogid
  1788.     {
  1789.         case Click:
  1790.         {
  1791.             if(response == 0) return 0;
  1792.             switch(listitem) // This is far more efficient than using an if-elseif-else structure
  1793.             {
  1794.                 case 0: // Listitems start with 0, not 1
  1795.                 {
  1796.                     if(aInfo[playerid][Admin] < 2) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 2");
  1797.                     if(aInfo[cpid][Congelado] == 1)
  1798.                     {
  1799.                         aInfo[cpid][Congelado] = 0;
  1800.                         SendClientMessage(playerid, COLOR_YELLOW, "Has descongelado a este jugador.");
  1801.                         SendClientMessage(cpid, COLOR_RED, "Has sido descongelado desde el Admin Panel!");
  1802.                         TogglePlayerControllable(cpid, 1);
  1803.                         Clicked = 0;
  1804.                     }
  1805.                     else
  1806.                     {
  1807.                         aInfo[cpid][Congelado] = 1;
  1808.                         SendClientMessage(playerid, COLOR_YELLOW, "Has congelado a este jugador.");
  1809.                         SendClientMessage(cpid, COLOR_RED, "Has sido congelado desde el Admin Panel!");
  1810.                         TogglePlayerControllable(cpid, 0);
  1811.                         Clicked = 0;
  1812.                     }
  1813.                 }
  1814.                 case 1:
  1815.                 {
  1816.                     if(aInfo[playerid][Admin] < 2) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 2");
  1817.                     if(aInfo[cpid][Muteado] == 1)
  1818.                     {
  1819.                         aInfo[cpid][Muteado] = 0;
  1820.                         SendClientMessage(playerid, COLOR_YELLOW, "Has desmuteado a este jugador.");
  1821.                         SendClientMessage(cpid, COLOR_RED, "Has sido desmuteado desde el Admin Panel!");
  1822.                         Clicked = 0;
  1823.                     }
  1824.                     else
  1825.                     {
  1826.                         aInfo[cpid][Muteado] = 1;
  1827.                         SendClientMessage(playerid, COLOR_YELLOW, "Has muteado a este jugador.");
  1828.                         SendClientMessage(cpid, COLOR_RED, "Has sido muteado desde el Admin Panel!");
  1829.                         Clicked = 0;
  1830.                     }
  1831.                 }
  1832.                 case 2:
  1833.                 {
  1834.                     if(aInfo[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 1");
  1835.                     aInfo[cpid][Warnings] ++;
  1836.                     new pname2[MAX_PLAYER_NAME], string[128];
  1837.  
  1838.                     GetPlayerName(playerid, pname, sizeof(pname));
  1839.                     GetPlayerName(cpid, pname2, sizeof(pname2));
  1840.  
  1841.                     if(aInfo[cpid][Warnings] < MAX_WARNINGS)
  1842.                     {
  1843.                         format(string, sizeof(string), "El usuario %s [ID: %d] fue warneado por el Administrador %s. (Warnings: %d/%d) -|", pname2, cpid, pname, aInfo[cpid][Warnings], MAX_WARNINGS);
  1844.                         SendClientMessageToAll(COLOR_YELLOW, string);
  1845.                         Clicked = 0;
  1846.                     }
  1847.                     else
  1848.                     {
  1849.                         format(string, sizeof(string), "El usuario %s [ID: %d] fue kickeado por el Administrador %s. (Warnings: %d/%d)", pname2, cpid, pname, aInfo[cpid][Warnings], MAX_WARNINGS);
  1850.                         SendClientMessageToAll(COLOR_YELLOW, string);
  1851.                         Kick(cpid);
  1852.                         aInfo[cpid][Warnings] = 0;
  1853.                         Clicked = 0;
  1854.                     }
  1855.                 }
  1856.                 case 3:
  1857.                 {
  1858.                     if(aInfo[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 1");
  1859.                     new pname2[MAX_PLAYER_NAME];
  1860.                     GetPlayerName(playerid, pname, sizeof(pname));
  1861.                     GetPlayerName(cpid, pname2, sizeof(pname2));
  1862.  
  1863.                     format(str, sizeof(str), "El jugador %s [ID: %d] fue kickeado por el administrador %s.", pname2,  cpid, pname);
  1864.                     SendClientMessageToAll(COLOR_YELLOW, str);
  1865.                     Kick(cpid);
  1866.                     Clicked = 0;
  1867.                 }
  1868.                 case 4:
  1869.                 {
  1870.                     if(aInfo[playerid][Admin] < 4) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 4");
  1871.                     new pname2[MAX_PLAYER_NAME];
  1872.                     GetPlayerName(playerid, pname, sizeof(pname));
  1873.                     GetPlayerName(cpid, pname2, sizeof(pname2));
  1874.  
  1875.                     format(str, sizeof(str), "El jugador %s [ID: %d] fue baneado por el administrador %s.", pname2,  cpid, pname);
  1876.                     SendClientMessageToAll(COLOR_YELLOW, str);
  1877.                     aInfo[cpid][Baneado] = 1;
  1878.                     BanEx(cpid, "Baneado desde el Admin Panel");
  1879.                     SaveIn("BanLog", str);
  1880.                     Clicked = 0;
  1881.                 }
  1882.                 case 5:
  1883.                 {
  1884.                     if(aInfo[playerid][Admin] < 1) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 1");
  1885.                     GetPlayerName(playerid, pname, sizeof(pname));
  1886.                     new Float:X[MAX_PLAYERS], Float:Y[MAX_PLAYERS], Float:Z[MAX_PLAYERS];
  1887.  
  1888.                     GetPlayerPos(cpid, X[cpid], Y[cpid], Z[cpid]);
  1889.                     SetPlayerPos(cpid, X[cpid], Y[cpid], Z[cpid]+10);
  1890.                     new Float:health;
  1891.                     GetPlayerHealth(cpid, health);
  1892.                     SetPlayerHealth(cpid, health-10);
  1893.                     format(str, sizeof(str), "El Administrador %s [ID: %d] te ha slapeado!", pname, playerid);
  1894.                     SendClientMessage(cpid, COLOR_YELLOW, str);
  1895.                     Clicked = 0;
  1896.                 }
  1897.                 case 6:
  1898.                 {
  1899.                     if(aInfo[playerid][Admin] < 3) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 3");
  1900.                     new pname2[MAX_PLAYER_NAME];
  1901.                     GetPlayerName(playerid, pname, sizeof(pname));
  1902.                     GetPlayerName(cpid, pname2, sizeof(pname2));
  1903.  
  1904.                     format(str, sizeof(str), "El jugador %s [ID: %d] fue spawneado por el administrador %s.", pname2,  cpid, pname);
  1905.                     SendClientMessageToAll(COLOR_YELLOW, str);
  1906.                     SpawnPlayer(cpid);
  1907.                     Clicked = 0;
  1908.                 }
  1909.                 case 7:
  1910.                 {
  1911.                     if(aInfo[playerid][Admin] < 3) return SendClientMessage(playerid, COLOR_RED, "Esta accion es solo para Admins Nivel 3");
  1912.                     new pname2[MAX_PLAYER_NAME];
  1913.                     GetPlayerName(playerid, pname, sizeof(pname));
  1914.                     GetPlayerName(cpid, pname2, sizeof(pname2));
  1915.  
  1916.                     format(str, sizeof(str), "El jugador %s [ID: %d] fue asesinado por el administrador %s.", pname2,  cpid, pname);
  1917.                     SendClientMessageToAll(COLOR_YELLOW, str);
  1918.                     SetPlayerHealth(cpid, 0);
  1919.                     SetPlayerArmour(cpid, 0);
  1920.                     Clicked = 0;
  1921.                 }
  1922.             }
  1923.         }
  1924.     }
  1925.     return 0;
  1926. }
  1927.  
  1928. /*==============================================================================
  1929. ================================================================================
  1930. =====================================Otros======================================
  1931. ================================================================================
  1932. ==============================================================================*/
  1933.  
  1934. public SpawnKick(playerid)
  1935. {
  1936.     if(aInfo[playerid][Registrado] == 0 || aInfo[playerid][Logueado] == 0)
  1937.     {
  1938.         GetPlayerName(playerid, pname, sizeof(pname));
  1939.         SendClientMessage(playerid, COLOR_RED, "[rAdmin] Fuiste kickeado por no registrarte/loguearte en los primeros 60 segundos!");
  1940.         Kick(playerid);
  1941.         format(str, sizeof(str), "El usuario %s fue kickeado por no registrarse/loguear en los primeros 60 segs", pname);
  1942.         SaveIn("KickLog", str);
  1943.     }
  1944.     return 1;
  1945. }
  1946.  
  1947. /*
  1948.   //==========================================================================\\
  1949.  //============================================================================\\
  1950. ||==============================MessageToAdmins=================================||
  1951.  \\============================================================================//
  1952.   \\==========================================================================//
  1953. */
  1954.  
  1955. public MessageToAdmins(color, const string[])
  1956. {
  1957.     for(new i = 0; i < MAX_PLAYERS; i++)
  1958.     {
  1959.         if(IsPlayerConnected(i) == 1)
  1960.         {
  1961.             if(aInfo[i][Admin] != 0)
  1962.             {
  1963.                 SendClientMessage(i, color, string);
  1964.             }
  1965.         }
  1966.     }
  1967.     return 1;
  1968. }
  1969.  
  1970. /*
  1971.   //==========================================================================\\
  1972.  //============================================================================\\
  1973. ||===============================MessageToVIPs==================================||
  1974.  \\============================================================================//
  1975.   \\==========================================================================//
  1976. */
  1977.  
  1978. public MessageToVIPs(color, const string[])
  1979. {
  1980.     for(new i = 0; i < MAX_PLAYERS; i++)
  1981.     {
  1982.         if(IsPlayerConnected(i) == 1)
  1983.         {
  1984.             if(aInfo[i][VIP] != 0)
  1985.             {
  1986.                 SendClientMessage(i, color, string);
  1987.             }
  1988.         }
  1989.     }
  1990.     return 1;
  1991. }
  1992.  
  1993. /*
  1994.   //==========================================================================\\
  1995.  //============================================================================\\
  1996. ||================================VehicleOcuppied===============================||
  1997.  \\============================================================================//
  1998.   \\==========================================================================//
  1999. */
  2000.  
  2001. public VehicleOccupied(vehicleid)
  2002. {
  2003.     for(new i=0;i<MAX_PLAYERS;i++)
  2004.     {
  2005.         if(IsPlayerInVehicle(i,vehicleid)) return 1;
  2006.     }
  2007.     return 0;
  2008. }
  2009.  
  2010. /*
  2011.   //==========================================================================\\
  2012.  //============================================================================\\
  2013. ||=====================================GMR======================================||
  2014.  \\============================================================================//
  2015.   \\==========================================================================//
  2016. */
  2017.  
  2018. public GMR()
  2019. {
  2020.     SendRconCommand("gmx");
  2021. }
  2022.  
  2023. /*
  2024.   //==========================================================================\\
  2025.  //============================================================================\\
  2026. ||==================================SaveInSys===================================||
  2027.  \\============================================================================//
  2028.   \\==========================================================================//
  2029. */
  2030.  
  2031. public SaveIn(filename[],text[])
  2032. {
  2033.     new File:Sfile;
  2034.     new filepath[128];
  2035.     new year, month, day,
  2036.         hour, minute, second;
  2037.  
  2038.     getdate(year, month, day);
  2039.     gettime(hour, minute, second);
  2040.    
  2041.     format(filepath, sizeof(filepath), Logs, filename);
  2042.     Sfile = fopen(filepath, io_append);
  2043.    
  2044.     format(str, sizeof(str), "[%02d/%02d/%02d | %02d:%02d:%02d] %s\r\n", day, month, year, hour, minute, second, text);
  2045.     fwrite(Sfile, str);
  2046.     fclose(Sfile);
  2047.     return 1;
  2048. }
  2049.  
  2050. /*
  2051.   //==========================================================================\\
  2052.  //============================================================================\\
  2053. ||===================================Carpetas===================================||
  2054.  \\============================================================================//
  2055.   \\==========================================================================//
  2056. */
  2057.  
  2058. public Carpetas()
  2059. {
  2060.     if(!fexist("rAdmin/"))
  2061.     {
  2062.         print("\nERROR!");
  2063.         print("Carpeta rAdmin no encontrada.");
  2064.         print("La carpeta debe ser creada.");
  2065.     }
  2066.     if(!fexist("rAdmin/Logs/"))
  2067.     {
  2068.         print("\nERROR!");
  2069.         print("Carpeta rAdmin/Logs no encontrada.");
  2070.         print("La carpeta debe ser creada.");
  2071.     }
  2072.  
  2073.     if(!fexist("rAdmin/Cfg/"))
  2074.     {
  2075.         print("\nERROR!");
  2076.         print("Carpeta rAdmin/Cfg no encontrada.");
  2077.         print("La carpeta debe ser creada.");
  2078.     }
  2079.  
  2080.     if(!fexist("rAdmin/Users/"))
  2081.     {
  2082.         print("\nERROR!");
  2083.         print("Carpeta rAdmin/Users no encontrada.");
  2084.         print("La carpeta debe ser creada.");
  2085.  
  2086.     }
  2087.     return 1;
  2088. }
  2089.  
  2090. /*
  2091.   //==========================================================================\\
  2092.  //============================================================================\\
  2093. ||===================================AntiSpam===================================||
  2094.  \\============================================================================//
  2095.   \\==========================================================================//
  2096. */
  2097.  
  2098. forward split(const strsrc[], strdest[][], delimiter);
  2099.  
  2100. stock BuscarIPs(mensaje[])
  2101. {
  2102.     new encontrados;
  2103.     new Parte[30][64];
  2104.     split(mensaje, Parte, '.');
  2105.     for(new i = 1; i < 5; i++)
  2106.     {
  2107.         if(IsNumeric(Parte[i]))
  2108.         {
  2109.             encontrados ++;
  2110.         }
  2111.     }
  2112.     if(encontrados >= 2)
  2113.     {
  2114.         return 1;
  2115.     }
  2116.     return 0;
  2117. }
  2118.  
  2119. stock IsNumeric(const string[])
  2120. {
  2121.   new length=strlen(string);
  2122.   if (length==0) return false;
  2123.   for (new i = 0; i < length; i++)
  2124.     {
  2125.       if (
  2126.             (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
  2127.              || (string[i]=='-' && i!=0)                                             // A '-' but not at first.
  2128.              || (string[i]=='+' && i!=0)                                             // A '+' but not at first.
  2129.          ) return false;
  2130.     }
  2131.   if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  2132.   return true;
  2133. }
  2134.  
  2135. public split(const strsrc[], strdest[][], delimiter)
  2136. {
  2137.     new i, li;
  2138.     new aNum;
  2139.     new len;
  2140.     while(i <= strlen(strsrc))
  2141.     {
  2142.         if(strsrc[i]==delimiter || i==strlen(strsrc))
  2143.         {
  2144.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  2145.             strdest[aNum][len] = 0;
  2146.             li = i+1;
  2147.             aNum++;
  2148.         }
  2149.         i++;
  2150.     }
  2151.     return 1;
  2152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement