Guest User

Blood Admin 1.0

a guest
Nov 17th, 2013
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 30.89 KB | None | 0 0
  1. /*
  2. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3.     BLOOD ADMIN VERSÃO 1.0
  4. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5.  
  6. Criado por Bruxo00
  7. Não retirar os créditos
  8.  
  9. ---------- Níveis de Admin ----------
  10.  
  11. 0 - Sem admin
  12. 1 - GameMaster
  13. 2 - Administrador
  14. 3 - Owner
  15.  
  16. ---------- Mais Informação ----------
  17.  
  18. /viraradmin - Só funciona se tiver logado na RCON
  19.  
  20. */
  21.  
  22. #include < a_samp >
  23. #include < DOF2 >
  24. #include < sscanf >
  25. #include < icmd7 >
  26.  
  27. #define Info    0xFFFFFFAA
  28. #define Erro    0xAA3333AA
  29. #define Sucesso 0x10F441AA
  30. #define Azul    0x63AFFF0A
  31.  
  32. #define DIALOG_REGISTO  321
  33. #define DIALOG_LOGAR    456
  34. #define DIALOG_MENU     215
  35. #define DIALOG_SKIN     658
  36. #define DIALOG_ARMAS    125
  37.  
  38. #define PASTA_CONTAS                "Contas/%s.ini"
  39. #define MENSAGEM_SEMADMIN           "Não tens permissão para utilizares esse comando."
  40. #define MENSAGEM_SEMVIP             "Não tens nível VIP suficiente!"
  41. #define MENSAGEM_NAOCONECTADO       "Esse ID não está conectado!"
  42. #define MENSAGEM_BAN                "A tua conta está banida deste servidor."
  43. #define MENSAGEM_NEEDDUTY           "{AA3333}Precisas de estar OnDuty!"
  44. #define MENSAGEM_MESMOID            "{AA3333}Não podes ultilizar esse comando em ti mesmo!"
  45. #define MENSAGEM_SEMCMD             "Esse comando não existe!"
  46. #define MENSAGEM_DLOGIN             "{FFFFFF}Estás {10F441}registado{FFFFFF}, escreve a tua password para logares!"
  47. #define MENSAGEM_DREGISTO           "{FFFFFF}Não estás {AA3333}registado{FFFFFF}, escreva uma password para te registares!"
  48. #define MENSAGEM_DREGISTOSUCESSO    "{10F441}Registado{FFFFFF} com sucesso! \nEfectue o login!"
  49. #define MENSAGEM_DPASSWORD          "{FFFFFF}A password digitada é errada, digite-a novamente para logar! \nÁ terceira tentavia, serás {AA3333}kickado{FFFFFF}."
  50. #define MENSAGEM_DSKIN              "{FFFFFF}Introduz o a {10F441}Skin ID {FFFFFF}que queres. (0-299)"
  51. #define MENSAGEM_DSKIN2             "{FFFFFF}Espaço em branco. Introduz novamente a {10F441}Skin ID {FFFFFF}que queres."
  52.  
  53. #if !defined isnull
  54.     #define isnull(%1) \
  55.                 ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  56. #endif
  57.  
  58. forward SalvarDados(playerid);
  59. forward KickTimer(playerid);
  60. forward BanTimer(playerid);
  61.  
  62. enum pInfo
  63. {
  64.     Password,
  65.     Score,
  66.     Dinheiro,
  67.     Skin,
  68.     Vip,
  69.     Admin,
  70.     Banido
  71. };
  72.  
  73. new PlayerInfo[MAX_PLAYERS][pInfo];
  74.  
  75. new ONDUTYREQ;
  76. new ABILCHAT;
  77. new ABILVIP_TOTAL;
  78. new ABILVIP_SKINS;
  79. new ABILVIP_ARMAS;
  80. new ABILVIP_VIDA;
  81. new ABILVIP_COLETE;
  82.  
  83. new OnDuty[MAX_PLAYERS];
  84. new tPass[MAX_PLAYERS];
  85. new ASpecar[MAX_PLAYERS];
  86. new Freezado[MAX_PLAYERS];
  87. new Jailed[MAX_PLAYERS];
  88. new Muted[MAX_PLAYERS];
  89.  
  90. stock GetNome(playerid)
  91. {
  92.     new nome[32];
  93.    
  94.     GetPlayerName(playerid, nome, sizeof(nome));
  95.     return nome;
  96. }
  97.  
  98. stock IsAdmin(playerid)
  99. {
  100.     new admin;
  101.  
  102.     if(PlayerInfo[playerid][Admin] == 1)
  103.     {
  104.         admin = 1;
  105.     }
  106.     else if(PlayerInfo[playerid][Admin] == 2)
  107.     {
  108.         admin = 2;
  109.     }
  110.     else if(PlayerInfo[playerid][Admin] == 3)
  111.     {
  112.         admin = 3;
  113.     }
  114.     else if(PlayerInfo[playerid][Admin] == 0)
  115.     {
  116.         admin = 0;
  117.     }
  118.     return admin;
  119. }
  120.  
  121. stock IsVip(playerid)
  122. {
  123.     new vip;
  124.    
  125.     if(PlayerInfo[playerid][Vip] == 0)
  126.     {
  127.         vip = 0;
  128.     }
  129.     else if(PlayerInfo[playerid][Vip] == 1)
  130.     {
  131.         vip = 1;
  132.     }
  133.     else if(PlayerInfo[playerid][Vip] == 2)
  134.     {
  135.         vip = 2;
  136.     }
  137.     return vip;
  138. }
  139.  
  140. public OnFilterScriptInit()
  141. {
  142.     printf("\n Sistema de Admin / VIP / Registo carregado!\n");
  143.    
  144. /*
  145.                 ~~~~~~~~~~~~~~~~~~~~~~
  146.                     CONFIGURAÇÕES
  147.                 ~~~~~~~~~~~~~~~~~~~~~~
  148. */
  149.  
  150.     ONDUTYREQ = 1; // DEFAULT (1) - Precisa de estar OnDuty para efecutar comandos
  151.     ABILCHAT = 1; // DEFAULT (1) - Chat com tags de Admin/Vip activados
  152.     ABILVIP_TOTAL = 1; // DEFAULT (1) - Abilita o sistema de VIP completo
  153.     ABILVIP_SKINS = 1; // DEFAULT (1) - Abilita o menu das skins
  154.     ABILVIP_ARMAS = 1; // DEFAULT (1) - Abilita o menu das armas
  155.     ABILVIP_VIDA = 1; // DEFAULT (1) - Dá vida ao jogador
  156.     ABILVIP_COLETE = 1; // DEFAULT (1) - Dá colete ao jogador
  157.    
  158.     return 1;
  159. }
  160.  
  161. public OnFilterScriptExit()
  162. {
  163.     DOF2_Exit();
  164.     return 1;
  165. }
  166.  
  167. public OnPlayerConnect(playerid)
  168. {
  169.     new ficheiro[32];
  170.    
  171.     format(ficheiro, sizeof(ficheiro), PASTA_CONTAS, GetNome(playerid));
  172.    
  173.     if(Jailed[playerid] == 1)
  174.     {
  175.         SetPlayerPos(playerid, 0, 0, 0); // CORDENADAS DO ADMIN JAIL
  176.         SendClientMessage(playerid, Info, "Não é com um disconnect que te vais safar do AJ! :)");
  177.     }
  178.  
  179.     tPass[playerid] = 0;
  180.  
  181.     if(DOF2_FileExists(ficheiro)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Login", MENSAGEM_DLOGIN, "Login", "Cancelar");
  182.     else ShowPlayerDialog(playerid, DIALOG_REGISTO, DIALOG_STYLE_INPUT, "Registo", MENSAGEM_DREGISTO, "Registar", "Cancelar");
  183.     return 1;
  184. }
  185.  
  186. public OnPlayerDisconnect(playerid)
  187. {
  188.     OnDuty[playerid] = 0;
  189.    
  190.     SalvarDados(playerid);
  191.     return 1;
  192. }
  193.  
  194. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  195. {
  196.     new ficheiro[32];
  197.  
  198.     format(ficheiro, sizeof(ficheiro), PASTA_CONTAS, GetNome(playerid));
  199.     if(dialogid == DIALOG_REGISTO)
  200.     {
  201.         if(!response) return Kick(playerid);
  202.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Registo", MENSAGEM_DREGISTO, "Registar", "Sair");
  203.         format(ficheiro, sizeof(ficheiro), PASTA_CONTAS, GetNome(playerid));
  204.         DOF2_CreateFile(ficheiro);
  205.  
  206.         DOF2_SetString(ficheiro, "Password", inputtext);
  207.         DOF2_SetInt(ficheiro, "Score", PlayerInfo[playerid][Score]);
  208.         DOF2_SetInt(ficheiro, "Dinheiro", PlayerInfo[playerid][Dinheiro]);
  209.         DOF2_SetInt(ficheiro, "Skin", PlayerInfo[playerid][Skin]);
  210.         DOF2_SetInt(ficheiro, "Vip", PlayerInfo[playerid][Vip]);
  211.         DOF2_SetInt(ficheiro, "Admin", PlayerInfo[playerid][Admin]);
  212.         DOF2_SetInt(ficheiro, "Banido", PlayerInfo[playerid][Banido]);
  213.         DOF2_SetString(ficheiro, "LastIP", "0");
  214.  
  215.         DOF2_SaveFile();
  216.  
  217.         ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Login", MENSAGEM_DREGISTOSUCESSO, "Login", "Cancelar");
  218.     }
  219.     if(dialogid == DIALOG_LOGAR)
  220.     {
  221.         if(!response) return Kick(playerid);
  222.         format(ficheiro, sizeof(ficheiro), PASTA_CONTAS, GetNome(playerid));
  223.         if(!strcmp(DOF2_GetString(ficheiro, "Password"), inputtext, false))
  224.         {
  225.             PlayerInfo[playerid][Score] = DOF2_GetInt(ficheiro, "Score");
  226.             PlayerInfo[playerid][Dinheiro] = DOF2_GetInt(ficheiro, "Dinheiro");
  227.             PlayerInfo[playerid][Skin] = DOF2_GetInt(ficheiro, "Skin");
  228.             PlayerInfo[playerid][Vip] = DOF2_GetInt(ficheiro, "Vip");
  229.             PlayerInfo[playerid][Admin] = DOF2_GetInt(ficheiro, "Admin");
  230.             PlayerInfo[playerid][Banido] = DOF2_GetInt(ficheiro, "Banido");
  231.            
  232.             SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
  233.             GivePlayerMoney(playerid, PlayerInfo[playerid][Dinheiro]);
  234.             SetPlayerSkin(playerid, PlayerInfo[playerid][Skin]);
  235.            
  236.             if(PlayerInfo[playerid][Banido] == 1)
  237.             {
  238.                 SendClientMessage(playerid, Erro, MENSAGEM_BAN);
  239.                 SetTimer("KickTimer", 50, false);
  240.             }
  241.         }
  242.         else
  243.         {
  244.             if(tPass[playerid] != 3)
  245.             {
  246.                 tPass[playerid]++;
  247.                 ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Login", MENSAGEM_DPASSWORD, "Login", "Cancelar");
  248.             }
  249.             else
  250.             {
  251.                 SendClientMessage(playerid, Erro, "Foste kickado por errares a password 3 vezes.");
  252.                 SetTimer("KickTimer", 50, false);
  253.             }
  254.         }
  255.     }
  256.     if(dialogid == DIALOG_MENU)
  257.     {
  258.         if(!response) return 1;
  259.         switch(listitem)
  260.         {
  261.             case 0:
  262.             {
  263.                 if(ABILVIP_SKINS == 0) return SendClientMessage(playerid, Erro, "Esse menu foi desabilitado pela administração.");
  264.                 ShowPlayerDialog(playerid, DIALOG_SKIN, DIALOG_STYLE_INPUT, "#1 SKIN", MENSAGEM_DSKIN, "Escolher", "Cancelar");
  265.             }
  266.             case 1:
  267.             {
  268.                 if(ABILVIP_ARMAS == 0) return SendClientMessage(playerid, Erro, "Esse menu foi desabilitado pela administração.");
  269.                 ShowPlayerDialog(playerid, DIALOG_ARMAS, DIALOG_STYLE_LIST, "#2 ARMAS", "Desert Eagle\nShotgun\nSawnoff\nCombat Shotgun\nMP5\nM4\nAK-47", "Escolher", "Cancelar");
  270.             }
  271.             case 2:
  272.             {
  273.                 if(ABILVIP_VIDA == 0) return SendClientMessage(playerid, Erro, "Essa opção foi desabilitado pela administração.");
  274.                 SetPlayerHealth(playerid, 100.00);
  275.             }
  276.             case 3:
  277.             {
  278.                 if(ABILVIP_COLETE == 0) return SendClientMessage(playerid, Erro, "Essa opção foi desabilitado pela administração.");
  279.                 SetPlayerArmour(playerid, 100.00);
  280.             }
  281.         }
  282.     }
  283.     if(dialogid == DIALOG_SKIN)
  284.     {
  285.         if(!response) return 1;
  286.         new string[128];
  287.         new s;
  288.        
  289.         s = strval(inputtext);
  290.        
  291.         if(isnull(inputtext)) return ShowPlayerDialog(playerid, DIALOG_SKIN, DIALOG_STYLE_INPUT, "#1 SKIN", MENSAGEM_DSKIN, "Escolher", "Cancelar");
  292.        
  293.         format(string, sizeof(string), "Skin {10F441}%d {FFFFFF}selecionada com sucesso!", s);
  294.         SendClientMessage(playerid, Info, string);
  295.        
  296.         SetPlayerSkin(playerid, s);
  297.     }
  298.     if(dialogid == DIALOG_ARMAS)
  299.     {
  300.         if(!response) return 1;
  301.         switch(listitem)
  302.         {
  303.             case 0:
  304.             {
  305.                 GivePlayerWeapon(playerid, 24, 1000);
  306.                 SendClientMessage(playerid, Info, "Recebeste uma {10F441}Desert Eagle{FFFFFF}!");
  307.             }
  308.             case 1:
  309.             {
  310.                 GivePlayerWeapon(playerid, 25, 1000);
  311.                 SendClientMessage(playerid, Info, "Recebeste uma {10F441}Shotgun{FFFFFF}!");
  312.             }
  313.             case 2:
  314.             {
  315.                 GivePlayerWeapon(playerid, 26, 1000);
  316.                 SendClientMessage(playerid, Info, "Recebeste uma {10F441}Sawnoff Shotgun{FFFFFF}!");
  317.             }
  318.             case 3:
  319.             {
  320.                 GivePlayerWeapon(playerid, 27, 1000);
  321.                 SendClientMessage(playerid, Info, "Recebeste uma {10F441}Combat Shotgun{FFFFFF}!");
  322.             }
  323.             case 4:
  324.             {
  325.                 GivePlayerWeapon(playerid, 29, 1000);
  326.                 SendClientMessage(playerid, Info, "Recebeste uma {10F441}MP5{FFFFFF}!");
  327.             }
  328.             case 5:
  329.             {
  330.                 GivePlayerWeapon(playerid, 31, 1000);
  331.                 SendClientMessage(playerid, Info, "Recebeste uma {10F441}M4{FFFFFF}!");
  332.             }
  333.             case 6:
  334.             {
  335.                 GivePlayerWeapon(playerid, 30, 1000);
  336.                 SendClientMessage(playerid, Info, "Recebeste uma {10F441}AK-47{FFFFFF}!");
  337.             }
  338.         }
  339.     }
  340.     return 1;
  341. }
  342.  
  343. public OnPlayerSpawn(playerid)
  344. {
  345.     new ip[16];
  346.     new lip[16];
  347.     new ficheiro[32];
  348.  
  349.     format(ficheiro, sizeof(ficheiro), PASTA_CONTAS, GetNome(playerid));
  350.     format(lip, sizeof(lip), "%s", DOF2_GetString(ficheiro, "LastIP"));
  351.    
  352.     GetPlayerIp(playerid, ip, sizeof(ip));
  353.    
  354.     if(!strcmp(ip, lip))
  355.     {
  356.         SendClientMessage(playerid, Azul, "^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^");
  357.         SendClientMessage(playerid, Info, "A tua última visita utilizou um IP diferente!");
  358.         SendClientMessage(playerid, Azul, "^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^");
  359.     }
  360.     return 1;
  361. }
  362.  
  363. public OnPlayerCommandText(playerid, commandid, params[])
  364. {
  365.     switch(commandid)
  366.     {
  367.         case iscmd("s,e,t,v,i,p"):
  368.         {
  369.             if(IsAdmin(playerid) == 3)
  370.             {
  371.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  372.  
  373.                 new id;
  374.                 new lvl;
  375.                 new string[128];
  376.                 new string1[128];
  377.  
  378.                 if(sscanf(params, "dd", id, lvl)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/setvip [playerid] [nível]");
  379.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  380.  
  381.                 format(string, sizeof(string), "Colocaste o jogador {10F441}%s {FFFFFF}VIP com nível {10F441}%d{FFFFFF}.", GetNome(id), lvl);
  382.                 format(string1, sizeof(string1), "O administrador {10F441}%s {FFFFFF}colocou-te VIP nível {10F441}%d{FFFFFF}.", GetNome(playerid), lvl);
  383.                 SendClientMessage(playerid, Info, string);
  384.                 SendClientMessage(id, Info, string1);
  385.                
  386.                 PlayerInfo[id][Vip] = lvl;
  387.             }
  388.             else
  389.             {
  390.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  391.             }
  392.             return 1;
  393.         }
  394.         case iscmd("a,c,m,d,s"):
  395.         {
  396.             if(IsAdmin(playerid) >= 1)
  397.             {
  398.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  399.                
  400.                 SendClientMessage(playerid, Info, "{AA3333}-------------------- {FFFFFF}[ {10F441}COMANDOS {FFFFFF}] {AA3333}--------------------");
  401.                 SendClientMessage(playerid, Info, "{AA3333}[ADMINISTRAÇÃO]{FFFFFF} /aduty  /kick  /banconta  /banip  /spec  /freeze  /dardinheiro");
  402.                 SendClientMessage(playerid, Info, "{AA3333}[ADMINISTRAÇÃO]{FFFFFF} /goto  /gethere  /mute  /(a)dmin(j)ail");
  403.                 SendClientMessage(playerid, Info, "{AA3333}[VIP]{FFFFFF} /setvip");
  404.             }
  405.             else
  406.             {
  407.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  408.             }
  409.             return 1;
  410.         }
  411.         case iscmd("a,d,u,t,y"):
  412.         {
  413.             if(IsAdmin(playerid) >= 1)
  414.             {
  415.                 new string[128];
  416.                
  417.                 if(OnDuty[playerid] == 0)
  418.                 {
  419.                     SetPlayerHealth(playerid, 100000);
  420.                     SetPlayerArmour(playerid, 100000.0);
  421.                    
  422.                     format(string, sizeof(string), "O administrador {10F441}%s {FFFFFF}está agora {10F441}On-Duty{FFFFFF}!", GetNome(playerid));
  423.                     SendClientMessage(playerid, Info, string);
  424.                    
  425.                     OnDuty[playerid] = 1;
  426.                 }
  427.                 else
  428.                 {
  429.                     SetPlayerHealth(playerid, 100);
  430.                     SetPlayerArmour(playerid, 0);
  431.  
  432.                     format(string, sizeof(string), "O administrador {10F441}%s {FFFFFF}está agora {AA3333}Off-Duty{FFFFFF}!", GetNome(playerid));
  433.                     SendClientMessage(playerid, Info, string);
  434.  
  435.                     OnDuty[playerid] = 0;
  436.                 }
  437.             }
  438.             else
  439.             {
  440.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  441.             }
  442.             return 1;
  443.         }
  444.         case iscmd("a,j"), iscmd("a,d,m,i,n,j,a,i,l"):
  445.         {
  446.             if(IsAdmin(playerid))
  447.             {
  448.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  449.  
  450.                 new id;
  451.                 new reason[32];
  452.                 new string[128];
  453.                 new string1[128];
  454.  
  455.                 if(sscanf(params, "dd", id, reason)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/aj [playerid] [razão]");
  456.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  457.  
  458.                 if(Jailed[id] == 0)
  459.                 {
  460.                     format(string, sizeof(string), "Mandaste o jogador {10F441}%s {FFFFFF}para o AdminJail. Razão: {10F441}%s{FFFFFF}.", GetNome(id), reason);
  461.                     format(string1, sizeof(string1), "Foste de AJ pelo administrador {10F441}%s{FFFFFF}. Razão: {10F441}%s{FFFFFF}.", GetNome(playerid), reason);
  462.                     SendClientMessage(playerid, Info, string);
  463.                     SendClientMessage(id, Info, string1);
  464.                
  465.                     Jailed[id] = 1;
  466.                     SetPlayerPos(playerid, 0, 0, 0); // COORDENADAS DO ADMIN JAIL
  467.                 }
  468.                 else
  469.                 {
  470.                     format(string, sizeof(string), "Tiraste o jogador {10F441}%s {FFFFFF} do AdminJail. Razão: {10F441}%s{FFFFFF}.", GetNome(id), reason);
  471.                     format(string1, sizeof(string1), "O administrador {10F441}%s{FFFFFF} retirou-te do AJ. Razão: {10F441}%s{FFFFFF}.", GetNome(playerid), reason);
  472.                     SendClientMessage(playerid, Info, string);
  473.                     SendClientMessage(id, Info, string1);
  474.  
  475.                     Jailed[id] = 0;
  476.                     SetPlayerPos(playerid, 0, 0, 0); // COORDENADAS DA SAÍDA DO ADMIN JAIL
  477.                 }
  478.             }
  479.             else
  480.             {
  481.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  482.             }
  483.             return 1;
  484.         }
  485.         case iscmd("v,i,r,a,r,a,d,m,i,n"):
  486.         {
  487.             if(!IsPlayerAdmin(playerid)) return Kick(playerid);
  488.             SendClientMessage(playerid, Sucesso, "Tu colocaste-te administrador nível 3");
  489.  
  490.             PlayerInfo[playerid][Admin] = 3;
  491.  
  492.             SalvarDados(playerid);
  493.             return 1;
  494.         }
  495.         case iscmd("s,e,t,a,d,m,i,n"):
  496.         {
  497.             if(IsAdmin(playerid) == 3)
  498.             {
  499.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  500.  
  501.                 new id;
  502.                 new lvl;
  503.                 new string[128];
  504.                 new string1[128];
  505.  
  506.                 if(sscanf(params, "dd", id, lvl)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/setadmin [playerid] [nível]");
  507.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  508.  
  509.                 format(string, sizeof(string), "Colocaste o jogador {10F441}%s {FFFFFF}administrador de nível {10F441}%d{FFFFFF}.", GetNome(id), lvl);
  510.                 format(string1, sizeof(string1), "O administrador {10F441}%s {FFFFFF}colocou-te administrador nível {10F441}%d{FFFFFF}.", GetNome(playerid), lvl);
  511.  
  512.                 SendClientMessage(playerid, Info, string);
  513.                 SendClientMessage(playerid, Info, string1);
  514.                
  515.                 PlayerInfo[id][Admin] = lvl;
  516.             }
  517.             else
  518.             {
  519.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  520.             }
  521.             return 1;
  522.         }
  523.         case iscmd("k,i,c,k"):
  524.         {
  525.             if(IsAdmin(playerid) >= 1)
  526.             {
  527.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  528.                
  529.                 new id;
  530.                 new reason[64];
  531.                 new string[128];
  532.                
  533.                 if(sscanf(params, "ds", id, reason)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/kick [playerid] [razão]");
  534.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  535.                
  536.                 format(string, sizeof(string), "O administrador {10F441}%s {FFFFFF}kickou o jogador {10F441}%s{FFFFFF}. Razão: {10F441}%s{FFFFFF}.", GetNome(playerid), GetNome(id), reason);
  537.                 SendClientMessageToAll(Info, string);
  538.                
  539.                 SetTimerEx("KickTimer", 50, false, "i", id);
  540.             }
  541.             else
  542.             {
  543.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  544.             }
  545.             return 1;
  546.         }
  547.         case iscmd("b,a,n,c,o,n,t,a"):
  548.         {
  549.             if(IsAdmin(playerid) >= 2)
  550.             {
  551.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  552.                
  553.                 new id;
  554.                 new reason [64];
  555.                 new string[128];
  556.  
  557.                 if(sscanf(params, "ds", id, reason)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/banconta [playerid] [razão]");
  558.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  559.  
  560.                 format(string, sizeof(string), "O administrador {10F441}%s {FFFFFF}baniu o jogador (Conta) {10F441}%s{FFFFFF}. Razão: {10F441}%s{FFFFFF}.", GetNome(playerid), GetNome(id), reason);
  561.                 SendClientMessageToAll(Info, string);
  562.                
  563.                 PlayerInfo[id][Banido] = 1;
  564.                
  565.                 SalvarDados(id);
  566.  
  567.                 SetTimerEx("KickTimer", 50, false, "i", id);
  568.             }
  569.             else
  570.             {
  571.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  572.             }
  573.             return 1;
  574.         }
  575.         case iscmd("b,a,n,i,p"):
  576.         {
  577.             if(IsAdmin(playerid) >= 2)
  578.             {
  579.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  580.                
  581.                 new id;
  582.                 new reason [64];
  583.                 new string[128];
  584.  
  585.                 if(sscanf(params, "ds", id, reason)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/banip [playerid] [razão]");
  586.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  587.  
  588.                 format(string, sizeof(string), "O administrador {10F441}%s {FFFFFF}baniu o jogador (Conta e IP) {10F441}%s{FFFFFF}. Razão: {10F441}%s{FFFFFF}.", GetNome(playerid), GetNome(id), reason);
  589.                 SendClientMessageToAll(Info, string);
  590.  
  591.                 PlayerInfo[id][Banido] = 1;
  592.  
  593.                 SalvarDados(id);
  594.  
  595.                 SetTimerEx("BanTimer", 50, false, "i", id);
  596.             }
  597.             else
  598.             {
  599.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  600.             }
  601.             return 1;
  602.         }
  603.         case iscmd("s,p,e,c"):
  604.         {
  605.             if(IsAdmin(playerid) >= 1)
  606.             {
  607.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  608.                
  609.                 new id;
  610.                 new string[128];
  611.  
  612.                 if(ASpecar[playerid] == 1)
  613.                 {
  614.                     TogglePlayerSpectating(playerid, 0);
  615.                     SendClientMessage(playerid, Info, "Paraste o spectate.");
  616.                    
  617.                     ASpecar[playerid] = 0;
  618.                 }
  619.                 else
  620.                 {
  621.                     if(sscanf(params, "i", id)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/spec [playerid] (on & off)");
  622.                     if(id == playerid) return SendClientMessage(playerid, Info, MENSAGEM_MESMOID);
  623.                     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  624.                     format(string, sizeof(string), "Estás a specar o jogador {10F441}%s{FFFFFF}.",GetNome(id));
  625.                     SendClientMessage(playerid, Info, string);
  626.                     if(IsPlayerInAnyVehicle(id))
  627.                     {
  628.                         PlayerSpectateVehicle(playerid, id);
  629.                     }
  630.                     else
  631.                     {
  632.                         PlayerSpectatePlayer(playerid, id);
  633.                     }
  634.                     ASpecar[playerid] = 1;
  635.                 }
  636.             }
  637.             else
  638.             {
  639.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  640.             }
  641.             return 1;
  642.         }
  643.         case iscmd("f,r,e,e,z,e"):
  644.         {
  645.             if(IsAdmin(playerid) >= 1)
  646.             {
  647.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  648.                
  649.                 new id;
  650.                 new string[128];
  651.                 new string1[128];
  652.  
  653.                 if(sscanf(params, "i", id)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/freeze [playerid] (on & off)");
  654.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  655.                
  656.                 if(Freezado[id] == 0)
  657.                 {
  658.                     format(string, sizeof(string), "Tu freezaste o jogador {10F441}%s{FFFFFF}.", GetNome(id));
  659.                     format(string1, sizeof(string1), "Foste congelado pelo administrador {10F441}%s{FFFFFF}.", GetNome(playerid));
  660.  
  661.                     SendClientMessage(playerid, Info, string);
  662.                     SendClientMessage(id, Info, string1);
  663.  
  664.                     TogglePlayerControllable(id, 0);
  665.                    
  666.                     Freezado[id] = 1;
  667.                 }
  668.                 else
  669.                 {
  670.                     format(string, sizeof(string), "Tu unfreezaste o jogador {10F441}%s{FFFFFF}.", GetNome(id));
  671.                     format(string1, sizeof(string1), "Foste descongelado pelo administrador {10F441}%s{FFFFFF}.", GetNome(playerid));
  672.  
  673.                     SendClientMessage(playerid, Info, string);
  674.                     SendClientMessage(id, Info, string1);
  675.  
  676.                     TogglePlayerControllable(id, 1);
  677.  
  678.                     Freezado[id] = 0;
  679.                 }
  680.             }
  681.             else
  682.             {
  683.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  684.             }
  685.             return 1;
  686.         }
  687.         case iscmd("d,a,r,d,i,n,h,e,i,r,o"):
  688.         {
  689.             if(IsAdmin(playerid) >= 1)
  690.             {
  691.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  692.  
  693.                 new id;
  694.                 new q;
  695.                 new string[128];
  696.                 new string1[128];
  697.  
  698.                 if(sscanf(params, "ii", id, q)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/dardinheiro [playerid] [quantia]");
  699.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  700.  
  701.                 format(string, sizeof(string), "Tu deste {10F441}%i ${FFFFFF} ao jogador {10F441}%s{FFFFFF}.", q, GetNome(id));
  702.                 format(string1, sizeof(string1), "Recebeste {10F441}%i ${FFFFFF} do administrador {10F441}%s{FFFFFF}.", q, GetNome(playerid));
  703.  
  704.                 SendClientMessage(playerid, Info, string);
  705.                 SendClientMessage(id, Info, string1);
  706.                
  707.                 GivePlayerMoney(id, q);
  708.             }
  709.             else
  710.             {
  711.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  712.             }
  713.             return 1;
  714.         }
  715.         case iscmd("g,o,t,o"):
  716.         {
  717.             if(IsAdmin(playerid) >= 1)
  718.             {
  719.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  720.  
  721.                 new id;
  722.                 new string[128];
  723.                 new string1[128];
  724.                 new Float:x, Float:y, Float:z;
  725.                
  726.                 if(sscanf(params, "i", id)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/goto [playerid]");
  727.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  728.  
  729.                 format(string, sizeof(string), "Foste até ao jogador {10F441}%s{FFFFFF}.", GetNome(id));
  730.                 format(string1, sizeof(string1), "O administrador {10F441}%s{FFFFFF} teletransportou-se para ti.", GetNome(playerid));
  731.  
  732.                 SendClientMessage(playerid, Info, string);
  733.                 SendClientMessage(id, Info, string1);
  734.                
  735.                 GetPlayerPos(id, x, y, z);
  736.                
  737.                 SetPlayerPos(playerid, x, y, z);
  738.             }
  739.             else
  740.             {
  741.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  742.             }
  743.             return 1;
  744.         }
  745.         case iscmd("g,e,t,h,e,r,e"):
  746.         {
  747.             if(IsAdmin(playerid) >= 1)
  748.             {
  749.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  750.  
  751.                 new id;
  752.                 new string[128];
  753.                 new string1[128];
  754.                 new Float:x, Float:y, Float:z;
  755.  
  756.                 if(sscanf(params, "i", id)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/gethere [playerid]");
  757.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  758.  
  759.                 format(string, sizeof(string), "Trouxeste o jogador {10F441}%s{FFFFFF} até ti.", GetNome(id));
  760.                 format(string1, sizeof(string1), "O administrador {10F441}%s{FFFFFF} teletransportou-te para ele.", GetNome(playerid));
  761.  
  762.                 SendClientMessage(playerid, Info, string);
  763.                 SendClientMessage(id, Info, string1);
  764.  
  765.                 GetPlayerPos(playerid, x, y, z);
  766.  
  767.                 SetPlayerPos(id, x, y, z);
  768.             }
  769.             else
  770.             {
  771.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  772.             }
  773.             return 1;
  774.         }
  775.         case iscmd("m,u,t,e"):
  776.         {
  777.             if(IsAdmin(playerid) >= 1)
  778.             {
  779.                 if(ONDUTYREQ == 1 && OnDuty[playerid] == 0) return SendClientMessage(playerid, Info, MENSAGEM_NEEDDUTY);
  780.                
  781.                 new id;
  782.                 new reason[32];
  783.                 new string[128];
  784.                 new string1[128];
  785.  
  786.                 if(sscanf(params, "is", id, reason)) return SendClientMessage(playerid, Info, "{10F441}' USO ' {FFFFFF}/mute [playerid] [razão]");
  787.                 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Erro, MENSAGEM_NAOCONECTADO);
  788.  
  789.                 if(Muted[id] == 0)
  790.                 {
  791.                     format(string, sizeof(string), "Deste mute ao jogador {10F441}%s{FFFFFF}. Razão: {10F441}%s{FFFFFF}.", GetNome(id), reason);
  792.                     format(string1, sizeof(string1), "O administrador {10F441}%s{FFFFFF} deu-te mute. Razão: {10F441}%s{FFFFFF}.", GetNome(playerid), reason);
  793.  
  794.                     SendClientMessage(playerid, Info, string);
  795.                     SendClientMessage(id, Info, string1);
  796.  
  797.                     Muted[id] = 1;
  798.                 }
  799.                 else
  800.                 {
  801.                     format(string, sizeof(string), "Deste unmute ao jogador {10F441}%s{FFFFFF}. Razão: {10F441}%s{FFFFFF}.", GetNome(id), reason);
  802.                     format(string1, sizeof(string1), "O administrador {10F441}%s{FFFFFF} deu-te unmute. Razão: {10F441}%s{FFFFFF}.", GetNome(playerid), reason);
  803.  
  804.                     SendClientMessage(playerid, Info, string);
  805.                     SendClientMessage(id, Info, string1);
  806.  
  807.                     Muted[id] = 0;
  808.                 }
  809.             }
  810.             else
  811.             {
  812.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMADMIN);
  813.             }
  814.             return 1;
  815.         }
  816.         case iscmd("a,d,m,i,n,s"):
  817.         {
  818.             new c;
  819.             new string[128];
  820.            
  821.             for(new i = 0; i < MAX_PLAYERS; i++)
  822.             {
  823.                 if(!IsPlayerConnected(i)) continue;
  824.                 if(IsAdmin(i))
  825.                 {
  826.                     if(OnDuty[i] == 0)
  827.                     {
  828.                         format(string, sizeof(string), "[ADMINISTRADOR ONLINE]{FFFFFF}: {10F441}%s", GetNome(i));
  829.                         SendClientMessage(playerid, Erro, string);
  830.                     }
  831.                     else
  832.                     {
  833.                         format(string, sizeof(string), "[ADMINISTRADOR ONLINE]{FFFFFF}: {10F441}%s {10F441}[ {10F441}ON DUTY {10F441}]", GetNome(i));
  834.                         SendClientMessage(playerid, Erro, string);
  835.                     }
  836.                     c++;
  837.                 }
  838.                 if(i == MAX_PLAYERS && c == 0) SendClientMessage(playerid, Info, "Não há administradores online.");
  839.             }
  840.             return 1;
  841.         }
  842.         case iscmd("m,e,n,u,v,i,p"):
  843.         {
  844.             if(ABILVIP_TOTAL == 0) return 1;
  845.             if(IsVip(playerid) >= 1)
  846.             {
  847.                 ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST, "Menu VIP", "Skins\nArmas\nVida\nColete", "Selecionar", "Sair");
  848.             }
  849.             else
  850.             {
  851.                 SendClientMessage(playerid, Erro, MENSAGEM_SEMVIP);
  852.             }
  853.             return 1;
  854.         }
  855.         default: return SendClientMessage(playerid, Info, MENSAGEM_SEMCMD);
  856.     }
  857.     return 0;
  858. }
  859.  
  860. public OnPlayerText(playerid, text[])
  861. {
  862.     if(ABILCHAT == 0) return 0;
  863.     if(Muted[playerid] == 1) return 0;
  864.    
  865.     new string[128];
  866.    
  867.     if(!IsVip(playerid) && !IsAdmin(playerid)) return 1;
  868.    
  869.     if(IsVip(playerid) == 1 && !IsAdmin(playerid))
  870.     {
  871.         format(string, sizeof(string), "{AAFFCC}[Vip Iron] {FFFFFF}%s: {63AFFF}%s", GetNome(playerid), text);
  872.         SendClientMessageToAll(Info, string);
  873.     }
  874.     if(IsVip(playerid) == 2 && !IsAdmin(playerid))
  875.     {
  876.         format(string, sizeof(string), "{DEC03A}[Vip Gold] {FFFFFF}%s: {63AFFF}%s", GetNome(playerid), text);
  877.         SendClientMessageToAll(Info, string);
  878.     }
  879.     if(IsAdmin(playerid) == 1)
  880.     {
  881.         format(string, sizeof(string), "{11EDD7}[Game-Master] {FFFFFF}%s: {63AFFF}%s", GetNome(playerid), text);
  882.         SendClientMessageToAll(Info, string);
  883.     }
  884.     if(IsAdmin(playerid) == 2)
  885.     {
  886.         format(string, sizeof(string), "{FF0000}[Administrador] {FFFFFF}%s: {63AFFF}%s", GetNome(playerid), text);
  887.         SendClientMessageToAll(Info, string);
  888.     }
  889.     if(IsAdmin(playerid) == 3)
  890.     {
  891.         format(string, sizeof(string), "{FF00EA}[Owner] {FFFFFF}%s: {00FFE1}%s", GetNome(playerid), text);
  892.         SendClientMessageToAll(Info, string);
  893.     }
  894.     return 0;
  895. }
  896.  
  897. public SalvarDados(playerid)
  898. {
  899.     new ficheiro[32];
  900.    
  901.     format(ficheiro, sizeof(ficheiro), PASTA_CONTAS, GetNome(playerid));
  902.    
  903.     if(DOF2_FileExists(ficheiro))
  904.     {
  905.         new ip[16];
  906.        
  907.         GetPlayerIp(playerid, ip, sizeof(ip));
  908.         PlayerInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
  909.         PlayerInfo[playerid][Skin] = GetPlayerSkin(playerid);
  910.         PlayerInfo[playerid][Score] = GetPlayerScore(playerid);
  911.  
  912.         DOF2_SetInt(ficheiro, "Score", PlayerInfo[playerid][Score]);
  913.         DOF2_SetInt(ficheiro, "Dinheiro", PlayerInfo[playerid][Dinheiro]);
  914.         DOF2_SetInt(ficheiro, "Skin", PlayerInfo[playerid][Skin]);
  915.         DOF2_SetInt(ficheiro, "Vip", PlayerInfo[playerid][Vip]);
  916.         DOF2_SetInt(ficheiro, "Admin", PlayerInfo[playerid][Admin]);
  917.         DOF2_SetInt(ficheiro, "Banido", PlayerInfo[playerid][Banido]);
  918.         DOF2_SetString(ficheiro, "LastIP", ip);
  919.  
  920.         DOF2_SaveFile();
  921.     }
  922.     else return Kick(playerid);
  923.     return 1;
  924. }
  925.  
  926. public KickTimer(playerid)
  927. {
  928.     Kick(playerid);
  929.     return 1;
  930. }
  931.  
  932. public BanTimer(playerid)
  933. {
  934.     Ban(playerid);
  935.     return 1;
  936. }
Advertisement
Add Comment
Please, Sign In to add comment