Advertisement
Guest User

Untitled

a guest
Aug 20th, 2011
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 46.62 KB | None | 0 0
  1. //==============================================================================
  2. //------------------------------> [ INCLUDE ] <---------------------------------
  3. //==============================================================================
  4.  
  5. #include <a_samp>
  6. #include <dini>
  7.  
  8. //==============================================================================
  9. //------------------------------> [ DEFINE ] <----------------------------------
  10. //==============================================================================
  11.  
  12. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) \
  13. && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) \
  14. || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  15.  
  16. //==============================================================================
  17. //-------------------------------> [ COLORES] <---------------------------------
  18. //==============================================================================
  19.  
  20. #define AZUL_ADMIN 0x2587CEAA
  21. #define ROJO_ADMIN 0xFF0000FF
  22. #define ROSA_ADMIN 0xFF66FFAA
  23. #define CLARO_ADMIN 0x00FFCCAA
  24. #define ROJO 0xAA3333AA
  25. #define NARANJA 0xF97804FF
  26. #define BLANCO 0xEFEFF7AA
  27. #define CELESTE 0x00C8FFFF
  28. #define AMARILLO 0xFFFF33FF
  29. #define ROJOC 0xFF5429FF
  30. #define Amarillo 0xFFEF26FF
  31. #define VERDE 0x33D517FF
  32. #define CHATP 0x009966FF
  33.  
  34. //==============================================================================
  35. //==============================================================================
  36.  
  37. #define MAXADV 3
  38.  
  39. //==============================================================================
  40. //----------------------------> [ INFORMACIÓN ] <-------------------------------
  41. //==============================================================================
  42.  
  43. enum Jinfo
  44. {
  45.     Nivel,
  46.     Asesinatos,
  47.     Advertencias,
  48.     Muertes,
  49.     BAN,
  50.     NOPM,
  51.     Muteado,
  52.     pCar,
  53.     Skin
  54. };
  55.  
  56. //==============================================================================
  57. //-----------------------------> [ VARIABLES ] <--------------------------------
  58. //==============================================================================
  59.  
  60. new JInfo[MAX_PLAYERS][Jinfo];
  61.  
  62. new bool:Logueado[MAX_PLAYERS];
  63. new bool:Registrado[MAX_PLAYERS];
  64. new ACOLOR[MAX_PLAYERS];
  65. new COLOR[MAX_PLAYERS];
  66. new NOTELE[MAX_PLAYERS];
  67. new LeerCMDS;
  68.  
  69. //==============================================================================
  70. //-----------------------------> [ FORWARDS ] <---------------------------------
  71. //==============================================================================
  72.  
  73. forward Jugador(playerid);
  74. forward AdminChat(color,const string[],level);
  75. forward CarSpawner(playerid,model);
  76. forward CarDeleter(vehicleid);
  77.  
  78. //==============================================================================
  79. //==============================================================================
  80.  
  81. main()
  82. {
  83.     print("<|-----------------------------------------|>");
  84.     print("<|.:[-    sistema de administración    -]:.|>");
  85.     print("<|-----------------------------------------|>");
  86. }
  87.  
  88.  
  89. public OnPlayerConnect(playerid)
  90. {
  91.     new
  92.        Archivo[64];
  93.  
  94.     format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", JNombre(playerid));
  95.     if(dini_Exists(Archivo)) Registrado[playerid] = true &&  SendClientMessage(playerid, NARANJA, "Este nick está registrado, logueate con /Login 'contraseña'");
  96.     if(!dini_Exists(Archivo)) return SendClientMessage(playerid, Amarillo, "Este nick no está registrado, registrate usando /Registrar 'contraseña'");
  97.  
  98.  
  99.     JInfo[playerid][Nivel] = 0;
  100.     JInfo[playerid][Asesinatos] = 0;
  101.     JInfo[playerid][Muertes] = 0;
  102.     JInfo[playerid][Skin] = 0;
  103.     JInfo[playerid][BAN] = 0;
  104.     JInfo[playerid][NOPM] = 0;
  105.     JInfo[playerid][Advertencias] = 0;
  106.     JInfo[playerid][pCar] = -1;
  107.     JInfo[playerid][Muteado] = 0;
  108.     Logueado[playerid] = false;
  109.     NOTELE[playerid] = 0;
  110.     ACOLOR[playerid] = 0;
  111.     COLOR[playerid] = 0;
  112.     LeerCMDS = 1;
  113.     return 1;
  114. }
  115.  
  116. public OnPlayerDisconnect(playerid, reason)
  117. {
  118.  
  119.     new
  120.         Archivo[64];
  121.  
  122.     format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", JNombre(playerid));
  123.     if(dini_Exists(Archivo))
  124.     {
  125.        dini_IntSet(Archivo, "Skin", JInfo[playerid][Skin]);
  126.        dini_IntSet(Archivo, "BAN", JInfo[playerid][BAN]);
  127.     }
  128.  
  129.     Jugador(playerid);
  130.     JInfo[playerid][Nivel] = 0;
  131.     JInfo[playerid][Asesinatos] = 0;
  132.     JInfo[playerid][Muertes] = 0;
  133.     JInfo[playerid][Skin] = 0;
  134.     JInfo[playerid][BAN] = 0;
  135.     JInfo[playerid][NOPM] = 0;
  136.     JInfo[playerid][Advertencias] = 0;
  137.     JInfo[playerid][Muteado] = 0;
  138.     Logueado[playerid] = false;
  139.     NOTELE[playerid] = 0;
  140.     ACOLOR[playerid] = 0;
  141.     COLOR[playerid] = 0;
  142.  
  143.     if(JInfo[playerid][pCar] != -1)
  144.     CarDeleter(JInfo[playerid][pCar]);
  145.  
  146.     return 1;
  147. }
  148.  
  149. public OnPlayerDeath(playerid, killerid, reason)
  150. {
  151.  
  152.     JInfo[killerid][Asesinatos] ++;
  153.     JInfo[playerid][Muertes] ++;
  154.     SendDeathMessage(killerid,playerid,reason);
  155.     Jugador(playerid);
  156.     return 1;
  157. }
  158.  
  159. public OnPlayerText(playerid, text[])
  160. {
  161.  
  162. //==============================================================================
  163. //------------------------------> [ CHAT ADMIN ] <------------------------------
  164. //==============================================================================
  165.  
  166.     if(text[0] == '#' && JInfo[playerid][Nivel] >= 2)
  167.     {
  168.         new string[128]; GetPlayerName(playerid,string,sizeof(string));
  169.         format(string,sizeof(string),"< @Adm* %s: %s",string,text[1]);
  170.         AdminChat(CHATP,string,1);
  171.         return 0;
  172.     }
  173.  
  174. //==============================================================================
  175. //--------------------------------> [ IDS ] <-----------------------------------
  176. //==============================================================================
  177.  
  178.     if(IsPlayerConnected(playerid))
  179.     {
  180.         new
  181.             string[128];
  182.  
  183.         format(string, sizeof(string),"[%d]: %s", playerid, text);
  184.         SendPlayerMessageToAll(playerid, string);
  185.         return 0;
  186.     }
  187.  
  188. //==============================================================================
  189. //--------------------------------> [ MUTEADO ] <-------------------------------
  190. //==============================================================================
  191.  
  192.     if(JInfo[playerid][Muteado] == 1)
  193.     {
  194.        return SendClientMessage(playerid, ROJO,"estás muteado.");
  195.     }
  196.  
  197. //==============================================================================
  198. //-------------------------------> [ COLOR ADMIN ] <----------------------------
  199. //==============================================================================
  200.  
  201.     if(ACOLOR[playerid] == 1 && JInfo[playerid][Nivel] >= 1)
  202.     {
  203.       if(text[0] != '.' && text[0] != '!' && text[0] != '*')
  204.       {
  205.             new
  206.                 string[128];
  207.  
  208.             format(string, sizeof(string),"%s: %s", JNombre(playerid), text);
  209.             SendClientMessageToAll(COLOR[playerid],string);
  210.             }
  211.       return 0;
  212.       }
  213.     return 1;
  214. }
  215.  
  216.  
  217. public OnPlayerCommandText(playerid, cmdtext[])
  218. {
  219.  
  220.     dcmd(registrar, 9,cmdtext);
  221.     dcmd(login, 5,cmdtext);
  222.  
  223.     if(LeerCMDS == 1)
  224.     {
  225.  
  226.         new
  227.            string[128];
  228.         format(string, sizeof(string), "< %s (id: %d) uso el Cmd: '%s'", JNombre(playerid), playerid, cmdtext);
  229.         for(new i = 0; i < MAX_PLAYERS; i++)
  230.         {
  231.         if(IsPlayerConnected(i) && (JInfo[i][Nivel] >= 3) && i != playerid && (JInfo[i][Nivel] >= JInfo[playerid][Nivel]))
  232.         SendClientMessage(i, BLANCO, string);
  233.     }
  234. }
  235.  
  236.  
  237.     dcmd(setlvl, 6, cmdtext);
  238.     dcmd(ban, 3, cmdtext);
  239.     dcmd(kick, 4, cmdtext);
  240.     dcmd(warn, 4, cmdtext);
  241.     dcmd(lc, 2, cmdtext);
  242.     dcmd(fix, 3, cmdtext);
  243.     dcmd(jetpack, 7, cmdtext);
  244.     dcmd(curar, 5, cmdtext);
  245.     dcmd(blindar, 7, cmdtext);
  246.     dcmd(akill, 5, cmdtext);
  247.     dcmd(ir, 2, cmdtext);
  248.     dcmd(traer, 5, cmdtext);
  249.     dcmd(bann, 4, cmdtext);
  250.     dcmd(desban, 6, cmdtext);
  251.     dcmd(desbanip, 8, cmdtext);
  252.     dcmd(skin, 4, cmdtext);
  253.     dcmd(ac, 2, cmdtext);
  254.     dcmd(azul, 4, cmdtext);
  255.     dcmd(rojo, 4, cmdtext);
  256.     dcmd(claro, 5, cmdtext);
  257.     dcmd(rosa, 4, cmdtext);
  258.     dcmd(nocolor, 7, cmdtext);
  259.     dcmd(ip, 2, cmdtext);
  260.     dcmd(reportar, 8, cmdtext);
  261.     dcmd(pm, 2, cmdtext);
  262.     dcmd(mute, 4, cmdtext);
  263.     dcmd(desmute, 7, cmdtext);
  264.     dcmd(pms, 3, cmdtext);
  265.     dcmd(comandos, 8, cmdtext);
  266.     dcmd(notele, 6, cmdtext);
  267.     dcmd(cpass, 5, cmdtext);
  268.     dcmd(stats, 5, cmdtext);
  269.     dcmd(rstats, 6, cmdtext);
  270.     dcmd(kill, 4, cmdtext);
  271.     dcmd(moto, 4, cmdtext);
  272.     dcmd(auto, 4, cmdtext);
  273.  
  274.     return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  275. }
  276.  
  277. //==============================================================================
  278. //--------------------------------> [ CMD´S] <----------------------------------
  279. //==============================================================================
  280.  
  281. dcmd_registrar(playerid, params[])
  282. {
  283.     #pragma unused params
  284.     new
  285.         tmp[64],
  286.         Largo;
  287.  
  288.     if(sscanf(params,"s", tmp))
  289.     {
  290.        return SendClientMessage(playerid, ROJO, "Uso: '/Registrar [contrasena]'");
  291.     }
  292.  
  293.     if(Registrado[playerid] == true)
  294.     {
  295.        return SendClientMessage(playerid, ROJO, "Tu nick ya está registrado.");
  296.     }
  297.     Largo =  strlen(tmp);
  298.     if(Largo < 5 || Largo > 16)
  299.     {
  300.        return SendClientMessage(playerid, ROJO, "La contraseña debe tener de 5 a 16 caracteres.");
  301.     }
  302.  
  303.     Registro(playerid, tmp);
  304.     return 1;
  305. }
  306.  
  307.  
  308. dcmd_login(playerid, params[])
  309. {
  310.     new
  311.        tmp[64];
  312.  
  313.  
  314.     if(sscanf(params,"s", tmp))
  315.     {
  316.        return SendClientMessage(playerid, ROJO, "Uso: '/Login [contrasena]'");
  317.     }
  318.  
  319.     if(Registrado[playerid] == false)
  320.     {
  321.         return SendClientMessage(playerid, ROJO, "Tu nick no está registrado.");
  322.     }
  323.  
  324.     if(Logueado[playerid] == true)
  325.     {
  326.         return SendClientMessage(playerid, ROJO, "Ya estás logueado.");
  327.     }
  328.  
  329.     Logueo(playerid, tmp);
  330.     return 1;
  331.  }
  332.  
  333. dcmd_reportar(playerid, params[])
  334. {
  335.     new
  336.         id,
  337.         reporte[128],
  338.         string[128];
  339.  
  340.  
  341.     if(sscanf(params,"ds", id, reporte))
  342.     {
  343.         return SendClientMessage(playerid, ROJO, "Uso: '/reportar [id] [Razón]'");
  344.     }
  345.     if(!IsPlayerConnected(id))
  346.     {
  347.         return SendClientMessage(playerid, ROJO, "Jugador no conectado");
  348.     }
  349.     SendClientMessage(playerid, NARANJA, "Tu reporte fue enviado con éxito a los admins.");
  350.     format(string, sizeof(string), "'REPORTE': %s(%d) reporto a %s(%d), reporte: %s .", JNombre(playerid), playerid, JNombre(id), id, reporte);
  351.     AdminChat(CELESTE, string, 1);
  352.     return 1;
  353. }
  354.  
  355. dcmd_skin(playerid, params[])
  356. {
  357.     new
  358.         sk,
  359.         string[128];
  360.  
  361.  
  362.     if(sscanf(params,"d", sk))
  363.     {
  364.        return SendClientMessage(playerid, ROJO, "Uso: '/skin [Skin id]'");
  365.     }
  366.     if(!IsValidSkin(sk))
  367.     {
  368.        return SendClientMessage(playerid, ROJO, "SKIN INVÁLIDO");
  369.     }
  370.     SetPlayerSkin(playerid, sk);
  371.     format(string, sizeof(string), "Skin '%d' Cambiado con éxito.", sk);
  372.     SendClientMessage(playerid, NARANJA, string);
  373.     JInfo[playerid][Skin] = sk;
  374.     return 1;
  375. }
  376.  
  377. dcmd_pm(playerid, params[])
  378. {
  379.     new
  380.        id,
  381.        texto[128],
  382.        string[128];
  383.  
  384.     if(sscanf(params,"ds", id, texto))
  385.     {
  386.        return SendClientMessage(playerid, ROJO, "Uso: '/PM [id] [mensaje]'");
  387.     }
  388.  
  389.     if(!IsPlayerConnected(id))
  390.     {
  391.        return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  392.     }
  393.  
  394.     if(JInfo[id][NOPM] == 1)
  395.     {
  396.        return SendClientMessage(playerid, ROJO, "Este jugador desactivo los PM´S");
  397.     }
  398.  
  399.     if(id == playerid) return SendClientMessage(playerid, ROJO, "No puedes mandarte pm ati mismo.");
  400.  
  401.     GetPlayerName(playerid, JNombre(playerid), 128); GetPlayerName(id, JNombre(id), 128);
  402.     format(string, 300, "< PM de %s(%d): %s", JNombre(playerid), playerid, texto);
  403.     SendClientMessage(id, AMARILLO, string);
  404.     format(string, 300, "> PM para %s(%d): %s", JNombre(id), id, texto);
  405.     SendClientMessage(playerid, CELESTE, string);
  406.     return 1;
  407. }
  408.  
  409. dcmd_pms(playerid, params[])
  410. {
  411.     #pragma unused params
  412.     if(JInfo[playerid][NOPM] == 0)
  413.     {
  414.        SendClientMessage(playerid, ROJO, "PM`s Desactivado, Ahora no podras leer los PM´s qué te manden. /PMs para activarlo.");
  415.        JInfo[playerid][NOPM] = 1;
  416.     }
  417.     else
  418.     {
  419.        SendClientMessage(playerid, NARANJA, "PM`s Activados, Ahora sí puedes leer tus PM´s /Pms para desactivarlo.");
  420.        JInfo[playerid][NOPM] = 0;
  421.        }
  422.     return 1;
  423. }
  424.  
  425. dcmd_cpass(playerid, params[])
  426. {
  427.     #pragma unused params
  428.  
  429.     new
  430.         pass,
  431.         tmp[64];
  432.  
  433.  
  434.  
  435.     if(sscanf(params,"s", tmp))
  436.     {
  437.         return SendClientMessage(playerid, ROJO, "Uso: '/Cpass [contraseña]'");
  438.     }
  439.  
  440.     if(Registrado[playerid] == false)
  441.     {
  442.         return SendClientMessage(playerid, ROJO, "Tu nick no está registrado.");
  443.     }
  444.     if(Logueado[playerid] == false)
  445.     {
  446.         return SendClientMessage(playerid, ROJO, "No estás logueado.");
  447.     }
  448.     pass =  strlen(tmp);
  449.     if(pass < 4 || pass > 16)
  450.     {
  451.        return SendClientMessage(playerid, ROJO, "Sólo de 4 a 16 caracteres.");
  452.     }
  453.     Contrasena(playerid, tmp);
  454.     return 1;
  455. }
  456.  
  457. dcmd_stats(playerid, params[])
  458. {
  459.     new
  460.         id,
  461.         string[128];
  462.  
  463.     if(sscanf(params,"d", id))
  464.     {
  465.         return SendClientMessage(playerid, ROJO, "Uso: '/stats [id]'");
  466.     }
  467.  
  468.     if(Logueado[id] == true)
  469.     {
  470.        return SendClientMessage(playerid, ROJO, "Jugador no logueado.");
  471.     }
  472.     format(string, sizeof(string), "' Nick: %s , ID : %d , Muertes : %d , Asesinatos : %d '",
  473.     JNombre(id), id, JInfo[id][Muertes], JInfo[id][Asesinatos]);
  474.     SendClientMessage(playerid, NARANJA, string);
  475.     return 1;
  476. }
  477.  
  478. dcmd_rstats(playerid, params[])
  479. {
  480.     #pragma unused params
  481.  
  482.     if(Registrado[playerid] == false)
  483.     {
  484.        return SendClientMessage(playerid, ROJO, "Tu nick no está registrado.");
  485.     }
  486.     if(Logueado[playerid] == false)
  487.     {
  488.        return SendClientMessage(playerid, ROJO, "No estás logueado.");
  489.     }
  490.     ResetearEstadisticas(playerid);
  491.     return 1;
  492. }
  493.  
  494. dcmd_kill(playerid, params[])
  495. {
  496.     #pragma unused params
  497.     GameTextForPlayer(playerid,"~r~Muerto!", 2000,1);
  498.     SetPlayerHealth(playerid, 0.0);
  499.     return 1;
  500.  
  501. }
  502.  
  503. //==============================================================================
  504. //-------------------------> [ ADMINISCTRACIÓN ] <------------------------------
  505. //==============================================================================
  506.  
  507. dcmd_mute(playerid, params[])
  508. {
  509.     new
  510.         id,
  511.         string[128];
  512.  
  513.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  514.     if(JInfo[playerid][Nivel] >= 1)
  515.     {
  516.         if(sscanf(params,"d", id))
  517.         {
  518.             return SendClientMessage(playerid, ROJO, "Uso: '/mute [id]'");
  519.         }
  520.  
  521.         if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID)
  522.         {
  523.  
  524.         if(JInfo[id][Muteado] == 1)
  525.         {
  526.            return SendClientMessage(playerid, ROJO,"Él ya está muteado.");
  527.         }
  528.  
  529.         JInfo[id][Muteado] = 1;
  530.         format(string, sizeof(string), "< '%s' un admin te a muteado. ", JNombre(id));
  531.         SendClientMessage(playerid, ROJO, string);
  532.         format(string, sizeof(string), "Has muteado a %s(id).", JNombre(id), id);
  533.         SendClientMessage(playerid, NARANJA, string);
  534.         } else return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  535.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  536.     return 1;
  537. }
  538.  
  539. dcmd_desmute(playerid, params[])
  540. {
  541.     new
  542.         id,
  543.         string[128];
  544.  
  545.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  546.     if(JInfo[playerid][Nivel] >= 1)
  547.     {
  548.         if(sscanf(params,"d", id))
  549.         {
  550.             return SendClientMessage(playerid, ROJO, "Uso: '/desmute [id]'");
  551.         }
  552.  
  553.         if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID)
  554.         {
  555.  
  556.         if(JInfo[id][Muteado] == 0)
  557.         {
  558.            return SendClientMessage(playerid, ROJO,"Él no está muteado.");
  559.         }
  560.  
  561.         JInfo[id][Muteado] = 0;
  562.         format(string, sizeof(string), "< '%s' un admin te a desmuteado. ", JNombre(id));
  563.         SendClientMessage(playerid, VERDE, string);
  564.         format(string, sizeof(string), "Has desmuteado a %s(id).", JNombre(id), id);
  565.         SendClientMessage(playerid, NARANJA, string);
  566.         } else return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  567.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  568.     return 1;
  569. }
  570.  
  571. dcmd_setlvl(playerid, params[])
  572. {
  573.     new
  574.         id,
  575.         nivel,
  576.         string[128];
  577.  
  578.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  579.     if(JInfo[playerid][Nivel] >= 5)
  580.     {
  581.         if(sscanf(params,"dd", id, nivel))
  582.         {
  583.             return SendClientMessage(playerid, ROJO, "Uso: '/Setlvl [id] [level]'");
  584.         }
  585.         if(nivel > 5 || nivel <= 0)
  586.         {
  587.             return SendClientMessage(playerid, ROJO, "Sólo de 0 a 5.");
  588.         }
  589.         if(!IsPlayerConnected(id))
  590.         {
  591.             return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  592.         }
  593.         format(string, sizeof(string) ,"Le has dado nivel '%d' a (%s[%d]).",
  594.         nivel, JNombre(id), id);
  595.         SendClientMessage(playerid, Amarillo, string);
  596.         format(string, sizeof(string), "Un Administrador te dio nivel '%d'",nivel);
  597.         SendClientMessage(id, NARANJA, string);
  598.         JInfo[id][Nivel] = nivel;
  599.         Jugador(playerid);
  600.         return 1;
  601.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  602. }
  603.  
  604.  
  605. dcmd_desbanip(playerid, params[])
  606. {
  607.     new
  608.         string[128],
  609.         tmp[64],
  610.         cmd[64];
  611.  
  612.  
  613.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  614.     if(JInfo[playerid][Nivel] >= 3)
  615.     {
  616.         if(sscanf(params,"s", tmp))
  617.         {
  618.             return SendClientMessage(playerid, ROJO, "Uso: '/desbanip [ip]'");
  619.         }
  620.         format(cmd, sizeof(cmd), "unbanip %s", tmp);
  621.         SendRconCommand(cmd);
  622.         format(string, sizeof(string), "ip  { %s } desbaneada.", tmp);
  623.         SendClientMessage(playerid, NARANJA, string);
  624.         return 1;
  625.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  626. }
  627.  
  628. dcmd_desban(playerid, params[])
  629. {
  630.  
  631.     new
  632.        Archivo[64],
  633.        NickName[128],
  634.        string[128];
  635.  
  636.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  637.     if(JInfo[playerid][Nivel] >= 4)
  638.     {
  639.  
  640.         if(sscanf(params,"s",NickName))
  641.         {
  642.             return SendClientMessage(playerid,ROJO, "Uso: '/Desban [nick]'");
  643.         }
  644.  
  645.         format(Archivo, sizeof Archivo, "Jugadores/%s.ini", NickName);
  646.         if(dini_Exists(Archivo))
  647.         {
  648.         format(string, sizeof(string), "Cuenta \'%s\' Desbaneada", NickName);
  649.         SendClientMessage(playerid, NARANJA, string);
  650.         dini_IntSet(Archivo, "BAN", 0);
  651.         return 1;
  652.         } else return SendClientMessage(playerid, ROJO, "< NICK INVÁLIDO >");
  653.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  654. }
  655.  
  656. dcmd_bann(playerid, params[])
  657. {
  658.  
  659.     new
  660.        Archivo[64],
  661.        NickName[128],
  662.        string[128];
  663.  
  664.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  665.     if(JInfo[playerid][Nivel] >= 4)
  666.     {
  667.  
  668.         if(sscanf(params,"s",NickName))
  669.         {
  670.             return SendClientMessage(playerid,ROJO, "Uso: '/Bann [nick]'");
  671.         }
  672.  
  673.         format(Archivo, sizeof Archivo, "Jugadores/%s.ini", NickName);
  674.         if(dini_Exists(Archivo))
  675.         {
  676.         format(string, sizeof(string), "Cuenta \'%s\' Baneada", NickName);
  677.         SendClientMessage(playerid, NARANJA, string);
  678.         dini_IntSet(Archivo, "BAN", 1);
  679.         return 1;
  680.         } else return SendClientMessage(playerid, ROJO, "< NICK INVÁLIDO >");
  681.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  682. }
  683.  
  684.  
  685. dcmd_ban(playerid,params[])
  686. {
  687.     new
  688.         id,
  689.         razon[64];
  690.  
  691.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  692.     if(JInfo[playerid][Nivel] >= 3)
  693.     {
  694.     if(sscanf(params,"ds", id, razon))
  695.     {
  696.        return SendClientMessage(playerid, ROJO, "Uso: '/ban [id] [razón]'");
  697.     }
  698.  
  699.     if(!IsPlayerConnected(id))
  700.     {
  701.        return SendClientMessage(playerid, ROJO, "Jugador no conectado");
  702.     }
  703.  
  704.     BANJ(playerid, id, JNombre(id), razon);
  705.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  706.     return 1;
  707. }
  708.  
  709. dcmd_kick(playerid, params[])
  710. {
  711.     new
  712.         id,
  713.         razon[64],
  714.         string[128];
  715.  
  716.  
  717.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  718.     if(JInfo[playerid][Nivel] >= 2)
  719.     {
  720.         if(sscanf(params, "ds", id, razon))
  721.         {
  722.             return SendClientMessage(playerid, ROJO, "Uso: '/kick [id] [razón]'");
  723.         }
  724.         if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID)
  725.         {
  726.  
  727.            format(string, sizeof(string), "<* %s(%d) Fue Expulsado por un Admin. Razón: %s",
  728.            JNombre(id), id, razon);
  729.            SendClientMessageToAll(ROJO, string);
  730.            return Kick(id);
  731.         } else return SendClientMessage(playerid, ROJO, "Jugador no conectado");
  732.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  733. }
  734.  
  735. dcmd_warn(playerid,params[]) {
  736.  
  737.     new
  738.         id,
  739.         razon[64],
  740.         str[128];
  741.  
  742.  
  743.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  744.     if(JInfo[playerid][Nivel] >= 2) {
  745.  
  746.        if(sscanf(params, "ds", id, razon))
  747.        {
  748.           return SendClientMessage(playerid, ROJO, "Uso: '/Warn [id] [razón]'");
  749.        }
  750.        if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID)
  751.        {
  752.        if(JInfo[id][Nivel] == 5)
  753.        {
  754.         return SendClientMessage(playerid, ROJO, "Él es Administrador mayor.");
  755.        }
  756.        JInfo[id][Advertencias]++;
  757.        if(JInfo[id][Advertencias] == MAXADV)
  758.        {
  759.        format(str, sizeof (str), "< * '%s'(%d) expulsado por el admin '%s' (Razón: %s) (Advertencias: %d/%d)*", JNombre(id), id, JNombre(playerid), razon, JInfo[id][Advertencias], MAXADV);
  760.        SendClientMessageToAll(ROJO, str);
  761.        Kick(id);
  762.        return JInfo[id][Advertencias] = 0;
  763.        }
  764.        else
  765.        {
  766.        format(str, sizeof (str), "< * '%s' advertio a '%s'(%d) (Razón: %s) (Advertencias: %d/%d)*", JNombre(playerid), JNombre(id), id, razon, JInfo[id][Advertencias], MAXADV);
  767.        return SendClientMessageToAll(NARANJA, str);
  768.        }
  769.        } else return SendClientMessage(playerid, ROJO, "Jugador no conectado");
  770.     } else return SendClientMessage(playerid,ROJO,"No tienes suficiente nivel.");
  771. }
  772.  
  773. dcmd_lc(playerid, params[]){
  774.     #pragma unused params
  775.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  776.     if(JInfo[playerid][Nivel] >= 3)
  777.     {
  778.         for(new i=0; i<100; i++){
  779.             for(new p=0; p<MAX_PLAYERS; p++){
  780.                 if(IsPlayerConnected(p)){
  781.                     if(JInfo[p][Nivel] == 0 || !IsPlayerAdmin(p)){
  782.                         SendClientMessage(p, ROJO, " ");
  783.                     }
  784.                 }
  785.             }
  786.         }
  787.         return 1;
  788.     }else return SendClientMessage(playerid, ROJO, " No tienes suficiente nivel.");
  789. }
  790.  
  791. dcmd_notele(playerid, params[])
  792. {
  793.     #pragma unused params
  794.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  795.     if(JInfo[playerid][Nivel] >= 1)
  796.     {
  797.        if(NOTELE[playerid] == 0)
  798.        {
  799.           SendClientMessage(playerid, NARANJA, "Ahora no pueden teletrasportarse hacia tu posición.");
  800.           NOTELE[playerid] = 1;
  801.        }
  802.        else
  803.        {
  804.          SendClientMessage(playerid, VERDE, "Ahora si pueden teletrasportarse hacia tu pocisión.");
  805.          NOTELE[playerid] = 0;
  806.          }
  807.        } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  808.     return 1;
  809. }
  810.  
  811. dcmd_fix(playerid, params[])
  812. {
  813.     #pragma unused params
  814.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  815.     if(JInfo[playerid][Nivel] >= 4)
  816.     {
  817.         if (IsPlayerInAnyVehicle(playerid))
  818.         {
  819.             SetVehicleHealth(GetPlayerVehicleID(playerid),1000.0);
  820.             return SendClientMessage(playerid, VERDE, "Vehículo Reparado.");
  821.         } else return SendClientMessage(playerid, ROJO, "No estás en un vehículo.");
  822.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  823. }
  824.  
  825. dcmd_moto(playerid,params[]) {
  826.     #pragma unused params
  827.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  828.     if(JInfo[playerid][Nivel] >= 1) {
  829.        if(!IsPlayerInAnyVehicle(playerid)) {
  830.           CarSpawner(playerid, 522);
  831.           return SendClientMessage(playerid, NARANJA,"Disfruta de tu nueva moto.");
  832.        } else return SendClientMessage(playerid, ROJO,"Ya estás en un vehiculo.");
  833.     } else return SendClientMessage(playerid, ROJO,"No tienes suficiente nivel.");
  834. }
  835.  
  836. dcmd_auto(playerid,params[]) {
  837.     #pragma unused params
  838.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  839.     if(JInfo[playerid][Nivel] >= 1) {
  840.        if(!IsPlayerInAnyVehicle(playerid)) {
  841.           CarSpawner(playerid, 411);
  842.           return SendClientMessage(playerid, NARANJA,"Disfruta de tu nuevo auto.");
  843.        } else return SendClientMessage(playerid, ROJO,"Ya estás en un vehiculo.");
  844.     } else return SendClientMessage(playerid, ROJO,"No tienes suficiente nivel.");
  845. }
  846.  
  847. dcmd_jetpack(playerid, params[])
  848. {
  849.     #pragma unused params
  850.     new
  851.        id,
  852.        string[128];
  853.  
  854.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  855.     if(JInfo[playerid][Nivel] >= 4)
  856.     {
  857.        if(sscanf(params,"d", id))
  858.        {
  859.           return SendClientMessage(playerid, ROJO, "Uso: '/Jetpack [id]'");
  860.        }
  861.        if(!IsPlayerConnected(id))
  862.        {
  863.           return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  864.        }
  865.        format(string, sizeof(string) ,"Le has dado un Jetpack a (%s[%d]).",
  866.        JNombre(id), id);
  867.        SendClientMessage(playerid, Amarillo, string);
  868.        format(string, sizeof(string), "Un Administrador te dio un Jetpack");
  869.        SendClientMessage(id, NARANJA, string);
  870.  
  871.        SetPlayerSpecialAction(id, 2);
  872.        return 1;
  873.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  874. }
  875.  
  876. dcmd_curar(playerid, params[])
  877. {
  878.     new
  879.         id,
  880.         string[128];
  881.  
  882.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  883.     if(JInfo[playerid][Nivel] >= 4)
  884.     {
  885.         if(sscanf(params,"d", id))
  886.         {
  887.             return SendClientMessage(playerid, ROJO, "Uso: '/curar [id]'");
  888.         }
  889.         if(IsPlayerConnected(id))
  890.         {
  891.  
  892.         format(string, sizeof(string),"< %s(%d) te curo.", JNombre(playerid), playerid);
  893.         SendClientMessage(id, VERDE, string);
  894.         SetPlayerHealth(id, 100);
  895.         format(string, sizeof(string), "Has curado a %s(%d)", JNombre(id), id);
  896.         return SendClientMessage(playerid, NARANJA, string);
  897.         } else return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  898.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  899. }
  900.  
  901. dcmd_blindar(playerid, params[])
  902. {
  903.     new
  904.         id,
  905.         string[128];
  906.  
  907.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  908.     if(JInfo[playerid][Nivel] >= 4)
  909.     {
  910.         if(sscanf(params,"d", id))
  911.         {
  912.             return SendClientMessage(playerid, ROJO, "Uso: '/blindar [id]'");
  913.         }
  914.         if(!IsPlayerConnected(id))
  915.         {
  916.  
  917.         format(string, sizeof(string),"< %s(%d) te dio chaleco.", JNombre(playerid), playerid);
  918.         SendClientMessage(id, VERDE, string);
  919.         SetPlayerArmour(id, 100);
  920.         format(string, sizeof(string), "Has dado chaleco a %s(%d)", JNombre(id), id);
  921.         return SendClientMessage(playerid, NARANJA, string);
  922.         } else return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  923.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  924. }
  925.  
  926. dcmd_akill(playerid, params[])
  927. {
  928.     new
  929.         id,
  930.         string[128];
  931.  
  932.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  933.     if(JInfo[playerid][Nivel] >= 4)
  934.     {
  935.         if(sscanf(params,"d", id))
  936.         {
  937.             return SendClientMessage(playerid, ROJO, "Uso: '/acha [id]'");
  938.         }
  939.         if(!IsPlayerConnected(id))
  940.         {
  941.  
  942.         SetPlayerHealth(id, 0.0);
  943.         format(string, sizeof(string), "Has matado a %s(%d)", JNombre(id), id);
  944.         return SendClientMessage(playerid, NARANJA, string);
  945.         } else return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  946.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  947. }
  948.  
  949. dcmd_ir(playerid,params[])
  950. {
  951.     new
  952.        id,
  953.        string[128];
  954.  
  955.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  956.     if(JInfo[playerid][Nivel] >= 2)
  957.     {
  958.  
  959.         if(sscanf(params,"d", id))
  960.         {
  961.             return SendClientMessage(playerid, ROJO, "Uso: '/ir [id]'");
  962.         }
  963.  
  964.         if(!IsPlayerConnected(id))
  965.         {
  966.             return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  967.         }
  968.  
  969.         if(NOTELE[playerid] == 1)
  970.         {
  971.             return SendClientMessage(playerid, ROJO, "No puedes teletrasportarte sobre ese jugador.");
  972.         }
  973.  
  974.         new Float:x, Float:y, Float:z;  GetPlayerPos(id,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(id));
  975.         SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));
  976.         if(GetPlayerState(playerid) == 2)
  977.         {
  978.         SetVehiclePos(GetPlayerVehicleID(playerid),x+5,y,z); LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(id));
  979.         SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(id));
  980.         } else SetPlayerPos(playerid,x+2,y,z);
  981.         format(string,sizeof(string),"Te teletransportaste hacia %s(%d)", JNombre(id), id);
  982.         return SendClientMessage(playerid,NARANJA,string);
  983.     } else return SendClientMessage(playerid, ROJO,"No tienes suficiente nivel.");
  984. }
  985.  
  986. dcmd_traer(playerid,params[])
  987. {
  988.     new
  989.        id,
  990.        string[128];
  991.  
  992.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  993.     if(JInfo[playerid][Nivel] >= 3)
  994.     {
  995.  
  996.         if(sscanf(params,"d", id))
  997.         {
  998.             return SendClientMessage(playerid, ROJO, "Uso: '/traer [id]'");
  999.         }
  1000.  
  1001.         if(!IsPlayerConnected(id))
  1002.         {
  1003.             return SendClientMessage(playerid, ROJO, "Jugador no conectado.");
  1004.         }
  1005.  
  1006.         new Float:x, Float:y, Float:z;  GetPlayerPos(playerid,x,y,z); SetPlayerInterior(id,GetPlayerInterior(playerid));
  1007.         SetPlayerVirtualWorld(id,GetPlayerVirtualWorld(playerid));
  1008.         if(GetPlayerState(id) == 2)
  1009.         {
  1010.  
  1011.         new VehicleID = GetPlayerVehicleID(id);
  1012.         SetVehiclePos(VehicleID,x+3,y,z);   LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  1013.         SetVehicleVirtualWorld(GetPlayerVehicleID(id),GetPlayerVirtualWorld(playerid));
  1014.         } else SetPlayerPos(id,x+2,y,z);
  1015.  
  1016.         format(string,sizeof(string),"Has teletransportado a %s(%d) hacia tu posición.", JNombre(id), id);
  1017.         return SendClientMessage(playerid,NARANJA,string);
  1018.     } else return SendClientMessage(playerid, ROJO,"No tienes suficiente nivel.");
  1019. }
  1020.  
  1021. dcmd_rojo(playerid, params[])
  1022. {
  1023.     #pragma unused params
  1024.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  1025.     if(JInfo[playerid][Nivel] >= 5)
  1026.     {
  1027.  
  1028.         ACOLOR[playerid] = 1;
  1029.         COLOR[playerid] = ROJO_ADMIN;
  1030.         SetPlayerColor(playerid, ROJO_ADMIN);
  1031.         SendClientMessage(playerid, ROJO_ADMIN, "< COLOR ACTIVADO.");
  1032.         return 1;
  1033.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  1034. }
  1035.  
  1036. dcmd_azul(playerid, params[])
  1037. {
  1038.     #pragma unused params
  1039.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  1040.     if(JInfo[playerid][Nivel] >= 1)
  1041.     {
  1042.         ACOLOR[playerid] = 1;
  1043.         COLOR[playerid] = AZUL_ADMIN;
  1044.         SetPlayerColor(playerid, AZUL_ADMIN);
  1045.         SendClientMessage(playerid, AZUL_ADMIN, "< COLOR ACTIVADO.");
  1046.         return 1;
  1047.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  1048. }
  1049.  
  1050. dcmd_claro(playerid, params[])
  1051. {
  1052.     #pragma unused params
  1053.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  1054.     if(JInfo[playerid][Nivel] >= 4)
  1055.     {
  1056.         ACOLOR[playerid] = 1;
  1057.         COLOR[playerid] = CLARO_ADMIN;
  1058.         SetPlayerColor(playerid, CLARO_ADMIN);
  1059.         SendClientMessage(playerid, CLARO_ADMIN, "< COLOR ACTIVADO.");
  1060.         return 1;
  1061.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  1062. }
  1063.  
  1064. dcmd_rosa(playerid, params[])
  1065. {
  1066.     #pragma unused params
  1067.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  1068.     if(JInfo[playerid][Nivel] >= 3)
  1069.     {
  1070.         ACOLOR[playerid] = 1;
  1071.         COLOR[playerid] = ROSA_ADMIN;
  1072.         SetPlayerColor(playerid, ROSA_ADMIN);
  1073.         SendClientMessage(playerid, ROSA_ADMIN, "< COLOR ACTIVADO.");
  1074.         return 1;
  1075.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  1076. }
  1077.  
  1078.  
  1079. dcmd_nocolor(playerid, params[])
  1080. {
  1081.     #pragma unused params
  1082.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  1083.     if(JInfo[playerid][Nivel] >= 1)
  1084.     {
  1085.         ACOLOR[playerid] = 0;
  1086.         COLOR[playerid] = 0;
  1087.         SendClientMessage(playerid, NARANJA, "< COLOR DESACTIVADO.");
  1088.         return 1;
  1089.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  1090. }
  1091.  
  1092.  
  1093. dcmd_ip(playerid, params[])
  1094. {
  1095.     new
  1096.         id,
  1097.         tmp[64],
  1098.         string[128];
  1099.  
  1100.  
  1101.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  1102.     if(JInfo[playerid][Nivel] >= 1)
  1103.     {
  1104.         if(sscanf(params,"d", id))
  1105.         {
  1106.             return SendClientMessage(playerid, ROJO,"Uso: '/ip [id]'");
  1107.         }
  1108.  
  1109.         if(IsPlayerConnected(id))
  1110.         {
  1111.            return SendClientMessage(playerid, ROJO,"Jugador no conectado.");
  1112.         }
  1113.         GetPlayerIp(id, tmp, sizeof(tmp));
  1114.         format(string, sizeof(string), "La ip de '%s' es { %s }", JNombre(id), tmp);
  1115.         return SendClientMessage(playerid, NARANJA, string);
  1116.     } else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  1117. }
  1118.  
  1119. dcmd_ac(playerid,params[])
  1120. {
  1121.     #pragma unused params
  1122.     if(JInfo[playerid][Nivel] == 0) return SendClientMessage(playerid, BLANCO, "<* COMANDO INVÁLIDO.");
  1123.     if(JInfo[playerid][Nivel] == 1)
  1124.     {
  1125.        SendClientMessage(playerid, 0x00FF66FF, "*------->[COMANDOS DE ADMINS]<-------*");
  1126.        SendClientMessage(playerid, ROJOC, "/IP, /Azul, /nocolor, /mute, /desmute, /Notele ");
  1127.        SendClientMessage(playerid, Amarillo, "/Auto, /Moto");
  1128.        SendClientMessage(playerid, 0x00FF66FF, "*----------->[ADMIN NIVEL (1)]<----------*");
  1129.     }
  1130.     else if(JInfo[playerid][Nivel]== 2)
  1131.     {
  1132.        SendClientMessage(playerid, 0x00FF66FF, "*------->[COMANDOS DE ADMINS]<-------*");
  1133.        SendClientMessage(playerid, ROJOC, "/IP, /Azul, /nocolor, /mute, /desmute, /Notele ");
  1134.        SendClientMessage(playerid, Amarillo, "/Auto, /Moto, /Kick, /Warn, /ir, ");
  1135.        SendClientMessage(playerid, 0x00FF66FF, "*----------->[ADMIN NIVEL (2)]<-----------*");
  1136.     }
  1137.     else if(JInfo[playerid][Nivel]== 3)
  1138.     {
  1139.        SendClientMessage(playerid, 0x00FF66FF, "*------->[COMANDOS DE ADMINS]<-------*");
  1140.        SendClientMessage(playerid, ROJOC, "/IP, /Azul, /nocolor, /mute, /desmute, /Notele ");
  1141.        SendClientMessage(playerid, Amarillo, "/Auto, /Moto, /Kick, /Warn, /ir, ");
  1142.        SendClientMessage(playerid, ROJOC, "/traer, /Ban, /desbanip, /Rosa, /Lc ");
  1143.        SendClientMessage(playerid, 0x00FF66FF, "*---------->[ADMIN NIVEL (3)]<-----------*");
  1144.     }
  1145.     else if(JInfo[playerid][Nivel]== 4)
  1146.     {
  1147.        SendClientMessage(playerid, 0x00FF66FF, "*--------->[COMANDOS DE ADMINS]<---------*");
  1148.        SendClientMessage(playerid, ROJOC, "/IP, /Azul, /nocolor, /mute, /desmute, /Notele ");
  1149.        SendClientMessage(playerid, Amarillo, "/Auto, /Moto, /Kick, /Warn, /ir, ");
  1150.        SendClientMessage(playerid, ROJOC, "/traer, /Ban, /desbanip, /Rosa, /Lc ");
  1151.        SendClientMessage(playerid, Amarillo, "/Desban, /Bann, /Akill, /Acu, /Acha, Claro");
  1152.        SendClientMessage(playerid, ROJOC, "/Fix, /Jetpack,");
  1153.        SendClientMessage(playerid, 0x00FF66FF, "*---------->[ADMIN NIVEL (4)]<-----------*");
  1154.     }
  1155.     else if(JInfo[playerid][Nivel]== 5)
  1156.     {
  1157.        SendClientMessage(playerid, 0x00FF66FF, "*--------->[COMANDOS DE ADMINS]<-----------*");
  1158.        SendClientMessage(playerid, ROJOC, "/IP, /Azul, /nocolor, /mute, /desmute, /Notele ");
  1159.        SendClientMessage(playerid, Amarillo, "/Auto, /Moto, /Kick, /Warn, /ir, ");
  1160.        SendClientMessage(playerid, ROJOC, "/traer, /Ban, /desbanip, /Rosa, /Lc ");
  1161.        SendClientMessage(playerid, Amarillo, "/Desban, /Bann, /Akill, /Acu, /Acha, Claro");
  1162.        SendClientMessage(playerid, ROJOC, "/Fix, /Jetpack, /ROJO, /Darnivel");
  1163.        SendClientMessage(playerid, 0x00FF66FF, "*---------->[ADMIN NIVEL (5)]<----------*");
  1164.        }
  1165.        else return SendClientMessage(playerid, ROJO, "No tienes suficiente nivel.");
  1166.     return 1;
  1167. }
  1168.  
  1169. dcmd_comandos(playerid,params[])
  1170. {
  1171.     #pragma unused params
  1172.     SendClientMessage(playerid, 0x00FF66FF, "*---------->[COMANDOS]<----------*");
  1173.     SendClientMessage(playerid, ROJOC, "/Registrar [Contraseña], (Para registrarte), /Login [Contraseña],(para Loguearte) /PM [id] [Mensaje] (Mandas un mensaje privado)");
  1174.     SendClientMessage(playerid, Amarillo, "PMs(Desactivas los mensajes privados/Activas los  mensajes privados), /Skin,(Para elegir y guardar tu skin)");
  1175.     SendClientMessage(playerid, ROJOC, "/Reportar [id] [Razón] (Reportar alos cheaters.), /Stats [id] (para ver las stats de un jugador.)");
  1176.     SendClientMessage(playerid, 0x00FF66FF, "/Rstats (Reseteas tus estadisticas), /Kill (para suicidarte.)");
  1177.     return 1;
  1178. }
  1179.  
  1180. public Jugador(playerid)
  1181. {
  1182.     new
  1183.         Archivo[64];
  1184.  
  1185.     format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", JNombre(playerid));
  1186.  
  1187.     dini_IntSet(Archivo, "Nivel", JInfo[playerid][Nivel]);
  1188.     dini_IntSet(Archivo, "Asesinatos", JInfo[playerid][Asesinatos]);
  1189.     dini_IntSet(Archivo, "Muertes", JInfo[playerid][Muertes]);
  1190.     return 1;
  1191. }
  1192.  
  1193.  
  1194. public AdminChat(color,const string[],level)
  1195. {
  1196.     for(new i = 0; i < MAX_PLAYERS; i++)
  1197.     {
  1198.         if(IsPlayerConnected(i))
  1199.         {
  1200.             if (JInfo[i][Nivel] >= level)
  1201.             {
  1202.                 SendClientMessage(i, color, string);
  1203.             }
  1204.         }
  1205.     }
  1206.     return 1;
  1207. }
  1208.  
  1209.  
  1210. public CarSpawner(playerid,model)
  1211. {
  1212.     if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, ROJO, "Ya estás en un vehiculo.");
  1213.     else
  1214.     {
  1215.         new Float:x, Float:y, Float:z, Float:angle;
  1216.         GetPlayerPos(playerid, x, y, z);
  1217.         GetPlayerFacingAngle(playerid, angle);
  1218.         if(JInfo[playerid][pCar] != -1) CarDeleter(JInfo[playerid][pCar]);
  1219.         new vehicleid=CreateVehicle(model, x, y, z, angle, -1, -1, -1);
  1220.         PutPlayerInVehicle(playerid, vehicleid, 0);
  1221.         SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  1222.         LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  1223.         ChangeVehicleColor(vehicleid,0,7);
  1224.         JInfo[playerid][pCar] = vehicleid;
  1225.     }
  1226.     return 1;
  1227. }
  1228.  
  1229. public OnVehicleSpawn(vehicleid)
  1230. {
  1231.     for(new i=0;i<MAX_PLAYERS;i++)
  1232.     {
  1233.         if(vehicleid == JInfo[i][pCar])
  1234.         {
  1235.             CarDeleter(vehicleid);
  1236.             JInfo[i][pCar]=-1;
  1237.         }
  1238.     }
  1239.     return 1;
  1240. }
  1241.  
  1242. public CarDeleter(vehicleid)
  1243. {
  1244.     for(new i=0;i<MAX_PLAYERS;i++) {
  1245.         new Float:X,Float:Y,Float:Z;
  1246.         if(IsPlayerInVehicle(i, vehicleid)) {
  1247.             RemovePlayerFromVehicle(i);
  1248.             GetPlayerPos(i,X,Y,Z);
  1249.             SetPlayerPos(i,X,Y+3,Z);
  1250.         }
  1251.         SetVehicleParamsForPlayer(vehicleid,i,0,1);
  1252.     }
  1253.     SetTimerEx("VehRes",1500,0,"i",vehicleid);
  1254. }
  1255.  
  1256. stock Registro(playerid, pass[])
  1257. {
  1258.     new
  1259.         Archivo[64],
  1260.         string[128];
  1261.  
  1262.     format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", JNombre(playerid));
  1263.     if(!dini_Exists(Archivo))
  1264.     {
  1265.         dini_Create(Archivo);
  1266.         dini_Set(Archivo, "Contrasena", pass);
  1267.         dini_IntSet(Archivo, "Nivel", 0);
  1268.         dini_IntSet(Archivo, "Asesinatos", 0);
  1269.         dini_IntSet(Archivo, "Muertes", 0);
  1270.         dini_IntSet(Archivo, "Skin", 1);
  1271.         dini_IntSet(Archivo, "BAN", 0);
  1272.         format(string, sizeof(string), "< Cuenta '%s' registrada. Contrasena: '%s' ", JNombre(playerid), pass);
  1273.         SendClientMessage(playerid, NARANJA, string);
  1274.         Registrado[playerid] = true;
  1275.         SendClientMessage(playerid, Amarillo, "<* Ahora usa '/login [contraseña]'");
  1276.     }
  1277. }
  1278.  
  1279. stock Logueo(playerid, pass[])
  1280. {
  1281.     new
  1282.         Archivo[64],
  1283.         string[64];
  1284.  
  1285.  
  1286.     format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", JNombre(playerid));
  1287.     if(dini_Exists(Archivo))
  1288.     {
  1289.         if(!strcmp(dini_Get(Archivo, "Contrasena"), pass, false))
  1290.         {
  1291.             JInfo[playerid][Nivel] = dini_Int(Archivo, "Nivel");
  1292.             JInfo[playerid][Asesinatos] = dini_Int(Archivo, "Asesinatos");
  1293.             JInfo[playerid][Muertes] = dini_Int(Archivo, "Muertes");
  1294.             JInfo[playerid][Skin] = dini_Int(Archivo, "Skin");
  1295.             JInfo[playerid][BAN] = dini_Int(Archivo, "BAN");
  1296.             Logueado[playerid] = true;
  1297.  
  1298.             if(JInfo[playerid][BAN] == 1)
  1299.             {
  1300.             format(string, sizeof(string), "Tu cuenta \"%s\" está baneada", JNombre(playerid));
  1301.             SendClientMessage(playerid, ROJO, string);
  1302.             Kick(playerid);
  1303.             }
  1304.  
  1305.  
  1306.             format(string, sizeof(string), "< Hola \'%s\' te has logueado correctamente.",JNombre(playerid));
  1307.             SendClientMessage(playerid, VERDE, string);
  1308.         } else SendClientMessage(playerid, ROJO, "<* Contraseña Incorrecta.");
  1309.     }
  1310. }
  1311.  
  1312. stock ResetearEstadisticas(playerid)
  1313. {
  1314.     new
  1315.        Archivo[64],
  1316.        string[64];
  1317.  
  1318.     format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", JNombre(playerid));
  1319.  
  1320.     dini_IntSet(Archivo, "Asesinatos", 0);
  1321.     dini_IntSet(Archivo, "Muertes", 0);
  1322.  
  1323.     format(string, sizeof(string), "<* '%s' Reseteaste tus estadisticas.", JNombre(playerid));
  1324.     SendClientMessage(playerid, NARANJA, string);
  1325.     PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  1326.     return 1;
  1327. }
  1328.  
  1329. stock Contrasena(playerid, pass[])
  1330. {
  1331.  
  1332.     new
  1333.         Archivo[MAX_PLAYERS],
  1334.         string[128];
  1335.  
  1336.     format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", JNombre(playerid));
  1337.     if(dini_Exists(Archivo))
  1338.     {
  1339.     dini_Create(Archivo);
  1340.     dini_Set(Archivo, "Contrasena", pass);
  1341.  
  1342.     format(string, sizeof(string), "< Cambiaste tu contraseña por '%s'.", pass);
  1343.     SendClientMessage(playerid, NARANJA, string);
  1344.     PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  1345.     }
  1346.     return 1;
  1347. }
  1348.  
  1349. stock BANJ(playerid, id, JNick[], Razon[])
  1350. {
  1351.     new
  1352.        string[128];
  1353.  
  1354.     if(Logueado[id] == true)
  1355.     {
  1356.       JInfo[playerid][BAN] = 1;
  1357.       SendClientMessage(id, NARANJA, "Fuiste baneado del servidor ya no podras entrar con está cuenta.");
  1358.     }
  1359.  
  1360.     format(string, sizeof(string), "<* %s(%d) Fue baneado por un Admin. Razón: %s", JNick, id, Razon);
  1361.     SendClientMessageToAll(ROJO, string);
  1362.     BanEx(id, Razon);
  1363. }
  1364.  
  1365.  
  1366. stock JNombre(playerid)
  1367. {
  1368.     new
  1369.         Nick[MAX_PLAYER_NAME];
  1370.  
  1371.     GetPlayerName(playerid, Nick, sizeof Nick);
  1372.     return Nick;
  1373. }
  1374.  
  1375.  
  1376.  
  1377. stock IsValidSkin(SkinID)
  1378. {
  1379.     if((SkinID == 217)||(SkinID == 21)||(SkinID >= 24 && SkinID <= 28)||(SkinID >= 29 && SkinID <= 30)||(SkinID >= 67 && SkinID <= 168)||(SkinID >= 182 && SkinID <= 207)||(SkinID >= 211 && SkinID <= 221)||(SkinID >= 242 && SkinID <= 296)||(SkinID >= 290 && SkinID <= 294)||(SkinID >= 225 && SkinID <= 290)||(SkinID >= 264 && SkinID <= 284)||(SkinID >= 241 && SkinID <= 241)) return true;
  1380.     else return false;
  1381. }
  1382.  
  1383. stock sscanf(string[], format[], {Float,_}:...)
  1384. {
  1385.     #if defined isnull
  1386.         if (isnull(string))
  1387.     #else
  1388.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  1389.     #endif
  1390.         {
  1391.             return format[0];
  1392.         }
  1393.     #pragma tabsize 4
  1394.     new
  1395.         formatPos = 0,
  1396.         stringPos = 0,
  1397.         paramPos = 2,
  1398.         paramCount = numargs(),
  1399.         delim = ' ';
  1400.     while (string[stringPos] && string[stringPos] <= ' ')
  1401.     {
  1402.         stringPos++;
  1403.     }
  1404.     while (paramPos < paramCount && string[stringPos])
  1405.     {
  1406.         switch (format[formatPos++])
  1407.         {
  1408.             case '\0':
  1409.             {
  1410.                 return 0;
  1411.             }
  1412.             case 'i', 'd':
  1413.             {
  1414.                 new
  1415.                     neg = 1,
  1416.                     num = 0,
  1417.                     ch = string[stringPos];
  1418.                 if (ch == '-')
  1419.                 {
  1420.                     neg = -1;
  1421.                     ch = string[++stringPos];
  1422.                 }
  1423.                 do
  1424.                 {
  1425.                     stringPos++;
  1426.                     if ('0' <= ch <= '9')
  1427.                     {
  1428.                         num = (num * 10) + (ch - '0');
  1429.                     }
  1430.                     else
  1431.                     {
  1432.                         return -1;
  1433.                     }
  1434.                 }
  1435.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1436.                 setarg(paramPos, 0, num * neg);
  1437.             }
  1438.             case 'h', 'x':
  1439.             {
  1440.                 new
  1441.                     num = 0,
  1442.            ch = string[stringPos];
  1443.                 do
  1444.                 {
  1445.                     stringPos++;
  1446.                     switch (ch)
  1447.                     {
  1448.                         case 'x', 'X':
  1449.                         {
  1450.                             num = 0;
  1451.                             continue;
  1452.                         }
  1453.                         case '0' .. '9':
  1454.                         {
  1455.                             num = (num << 4) | (ch - '0');
  1456.                         }
  1457.                         case 'a' .. 'f':
  1458.                         {
  1459.                             num = (num << 4) | (ch - ('a' - 10));
  1460.                         }
  1461.                         case 'A' .. 'F':
  1462.                         {
  1463.                             num = (num << 4) | (ch - ('A' - 10));
  1464.                         }
  1465.                         default:
  1466.                         {
  1467.                             return -1;
  1468.                         }
  1469.                     }
  1470.                 }
  1471.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1472.                 setarg(paramPos, 0, num);
  1473.             }
  1474.             case 'c':
  1475.             {
  1476.                 setarg(paramPos, 0, string[stringPos++]);
  1477.             }
  1478.             case 'f':
  1479.             {
  1480.                 setarg(paramPos, 0, _:floatstr(string[stringPos]));
  1481.             }
  1482.             case 'p':
  1483.             {
  1484.                 delim = format[formatPos++];
  1485.                 continue;
  1486.             }
  1487.             case '\'':
  1488.             {
  1489.                 new
  1490.                     end = formatPos - 1,
  1491.                     ch;
  1492.                 while ((ch = format[++end]) && ch != '\'') {}
  1493.                 if (!ch)
  1494.                 {
  1495.                     return -1;
  1496.                 }
  1497.                 format[end] = '\0';
  1498.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1499.                 {
  1500.                     if (format[end + 1])
  1501.                     {
  1502.                         return -1;
  1503.                     }
  1504.                     return 0;
  1505.                 }
  1506.                 format[end] = '\'';
  1507.                 stringPos = ch + (end - formatPos);
  1508.                 formatPos = end + 1;
  1509.             }
  1510.             case 'u':
  1511.             {
  1512.                 new
  1513.                     end = stringPos - 1,
  1514.                     id = 0,
  1515.                     bool:num = true,
  1516.                     ch;
  1517.                 while ((ch = string[++end]) && ch != delim)
  1518.                 {
  1519.                     if (num)
  1520.                     {
  1521.                         if ('0' <= ch <= '9')
  1522.                         {
  1523.                             id = (id * 10) + (ch - '0');
  1524.                         }
  1525.                         else
  1526.                         {
  1527.                             num = false;
  1528.                         }
  1529.                     }
  1530.                 }
  1531.                 if (num && IsPlayerConnected(id))
  1532.                 {
  1533.                     setarg(paramPos, 0, id);
  1534.                 }
  1535.                 else
  1536.                 {
  1537.                     #if !defined foreach
  1538.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1539.                         #define __SSCANF_FOREACH__
  1540.                     #endif
  1541.                     string[end] = '\0';
  1542.                     num = false;
  1543.                     new
  1544.                         name[MAX_PLAYER_NAME];
  1545.                     id = end - stringPos;
  1546.                     foreach (Player, playerid)
  1547.                     {
  1548.                         GetPlayerName(playerid, name, sizeof (name));
  1549.                         if (!strcmp(name, string[stringPos], true, id))
  1550.                         {
  1551.                             setarg(paramPos, 0, playerid);
  1552.                             num = true;
  1553.                             break;
  1554.                         }
  1555.                     }
  1556.                     if (!num)
  1557.                     {
  1558.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  1559.                     }
  1560.                     string[end] = ch;
  1561.                     #if defined __SSCANF_FOREACH__
  1562.                         #undef foreach
  1563.                         #undef __SSCANF_FOREACH__
  1564.                     #endif
  1565.                 }
  1566.                 stringPos = end;
  1567.             }
  1568.             case 's', 'z':
  1569.             {
  1570.                 new
  1571.                     i = 0,
  1572.                     ch;
  1573.                 if (format[formatPos])
  1574.                 {
  1575.                     while ((ch = string[stringPos++]) && ch != delim)
  1576.                     {
  1577.                         setarg(paramPos, i++, ch);
  1578.                     }
  1579.                     if (!i)
  1580.                     {
  1581.                         return -1;
  1582.                     }
  1583.                 }
  1584.                 else
  1585.                 {
  1586.                     while ((ch = string[stringPos++]))
  1587.                     {
  1588.                         setarg(paramPos, i++, ch);
  1589.                     }
  1590.                 }
  1591.                 stringPos--;
  1592.                 setarg(paramPos, i, '\0');
  1593.             }
  1594.             default:
  1595.             {
  1596.                 continue;
  1597.             }
  1598.         }
  1599.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1600.         {
  1601.             stringPos++;
  1602.         }
  1603.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1604.         {
  1605.             stringPos++;
  1606.         }
  1607.         paramPos++;
  1608.     }
  1609.     do
  1610.     {
  1611.         if ((delim = format[formatPos++]) > ' ')
  1612.         {
  1613.             if (delim == '\'')
  1614.             {
  1615.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  1616.             }
  1617.             else if (delim != 'z')
  1618.             {
  1619.                 return delim;
  1620.             }
  1621.         }
  1622.     }
  1623.     while (delim > ' ');
  1624.     return 0;
  1625. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement