Advertisement
Bruno

Sistema de VIP com linhas explicadas

Oct 24th, 2011
1,049
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.55 KB | None | 0 0
  1. /* Sistema de VIP feito por Bruno Pereira, favor não retire os créditos, isso é crime!
  2. Pode modificalo de qualquer maneira, mas deixe pelo menos os créditos :)!
  3. Contato: [email]brunopereiraa-@hotmail.com[/email]
  4. Skype: grt.figa
  5. É nois !!! */
  6.  
  7. // ====== INCLUDES =======//
  8. #include <a_samp>
  9. #include <foreach>
  10. #include <SII>
  11. #include <zcmd>
  12. #include <sscanf2>
  13. // ===== OTIMIZAÇÃOZINHA kk ====== //
  14. #if defined MAX_PLAYERS
  15.     #undef MAX_PLAYERS
  16. #endif
  17. #define SLOTS 20
  18.  
  19. // ===== CORES ===== //
  20. #define COR_VIP         0xFFBEFFE2
  21. #define COR_AZULZINHO   0x00A5FFFF
  22. #define COR_AMARELO2    0xFFFF00AA
  23. #define COR_VERDE       0x00FF00FF
  24. #define COR_AZULZAO     0x005FFFFF
  25. // ======= NEWS ========= //
  26. new
  27.       PlayerVip[SLOTS],// Variavel pra ver se o player é vip e o nivel vip dele
  28.       _sStr[128],// Uma string global!
  29.       iddele,// Variavel que vamos usar em comandos tipo: /ban [id]! o  ID é a variavel iddele :)
  30.       meses// Variavel dos meses que serão dado aos players vips!
  31. ;
  32.  
  33. //======= PUBLICS ======= //
  34. public OnFilterScriptInit()
  35. {
  36.     print("\n--------------------------------------------------");
  37.     print(" Carregando Sistema de Vip...");
  38.     print(" Sistema de Vip carregado com sucesso!");
  39.     print(" Sistema de Vip criado por Bruno Pereira ••");
  40.     print("--------------------------------------------------\n");
  41.     return 1;
  42. }
  43.  
  44. public OnFilterScriptExit()
  45. {
  46.     foreach(Player, i)// Loop em foreach!
  47.     {
  48.         SalvarVip(i);// Salva as contas!
  49.     }
  50.     return 1;
  51. }
  52.  
  53. public OnPlayerConnect(playerid)
  54. {
  55.     CarregarVip(playerid);// Carrega a conta vip do player!
  56.     if(PlayerVip[playerid] == 1)// Se ele for VIP 1 manda essa mensagem pra todos online \/!
  57.     {
  58.         format(_sStr, 40, "O VIP %s está OnLine", pNome(playerid));
  59.         SendClientMessageToAll(COR_VIP, _sStr);
  60.     }
  61.     else if(PlayerVip[playerid] == 2)
  62.     {
  63.         format(_sStr, 50, "O SUPER-VIP %s está OnLine", pNome(playerid));
  64.         SendClientMessageToAll(COR_AZULZINHO, _sStr);
  65.     }
  66.     else if(PlayerVip[playerid] == 3)
  67.     {
  68.         format(_sStr, 50, "O SOCIO %s está OnLine", pNome(playerid));
  69.         SendClientMessageToAll(COR_VERDE, _sStr);
  70.     }
  71.     return 1;
  72. }
  73. public OnPlayerDisconnect(playerid, reason)
  74. {
  75.     SalvarVip(playerid);// Salva a conta do player!
  76.     return 1;
  77. }
  78. // ======== COMANDOS ========== //
  79. CMD:ajudavip(playerid, params[])
  80. {
  81.     if(PlayerVip[playerid] >= 1)// Se ele for VIP maior ou igual a um manda essa mensagem abaixo \/
  82.     {
  83.         SendClientMessage(playerid, -1, "/vips /socios /equiparvip");
  84.     }
  85.     if(IsPlayerAdmin(playerid))// Se ele for admin, manda essa tambem \/
  86.     {
  87.         SendClientMessage(playerid, -1, "/darvip /darsvip /darsocio /tirarvip");
  88.     }
  89.     return 1;
  90. }
  91. CMD:vips(playerid, params[])
  92. {
  93.     SendClientMessage(playerid, -1 , "VIPs e Super-Vips onlines:");// Mensagem
  94.     foreach(Player, i)// Loop
  95.     {
  96.         if(IsPlayerConnected(i))// Verifica os players vips conectados!
  97.         {
  98.              if(PlayerVip[playerid] == 1)// Se os players vips forem igual a 1 (vip normal) manda isso abaixo \/!
  99.              {
  100.                   format(_sStr, 40, "VIP: %s", pNome(i));// formata a mensagem
  101.                   SendClientMessage(playerid, COR_VIP, _sStr);// envia a mensagem
  102.              }
  103.              else if(PlayerVip[playerid] == 2)
  104.              {
  105.                   format(_sStr, 40, "SUPER-VIP: %s", pNome(i));
  106.                   SendClientMessage(playerid, COR_AZULZINHO, _sStr);
  107.              }
  108.         }
  109.     }
  110.     return 1;
  111. }
  112. CMD:socios(playerid, params[])
  113. {
  114.     SendClientMessage(playerid, -1 , "Socios Onlines:");
  115.     foreach(Player, i)
  116.     {
  117.         if(IsPlayerConnected(i))
  118.         {
  119.              if(PlayerVip[playerid] == 3)
  120.              {
  121.                   format(_sStr, 40, "SOCIO: %s", pNome(i));
  122.                   SendClientMessage(playerid, COR_VERDE, _sStr);
  123.              }
  124.         }
  125.     }
  126.     return 1;
  127. }
  128.  
  129. CMD:darvip(playerid, params[])
  130. {
  131.     if(!IsPlayerAdmin(playerid))// Se o cara NAO for admin (!) manda a mensagem!
  132.         return SendClientMessage(playerid, -1, "Você não está autorizado a usar esse comando !");
  133.     if(sscanf(params, "ud", iddele, meses))// Sscanf! * Se ele não preencher todos os campos manda a mensagem \/! *
  134.         return SendClientMessage(playerid, -1, "Correto: /darvip [id] [meses]");// manda mensagem
  135.     if(!IsPlayerConnected(iddele))// Se o "iddele" nao estiver conectado manda a mensagem!
  136.         return SendClientMessage(playerid, -1, "Esse jogador não está online");// mensagem
  137.     PlayerVip[iddele] = 1;// Seta o vip do cara pra 1
  138.     SetPlayerScore(iddele, GetPlayerScore(iddele) + meses*2);// Verifica o level do player e seta o numero que o admin digitou no "meses" veses 2!
  139.     GivePlayerMoney(iddele, meses*10000);// Da a quantidade grana pro player. A quantidade é o numero que o admin digitou no meses VESES 10 Mil!
  140.     format(_sStr, 100, "Atenção o admin %s te deu %d meses VIP com %d Níveis e R$ %d.", pNome(playerid), meses, meses*2, meses*10000);// Formata a mensagem!
  141.     SendClientMessage(iddele, COR_AZULZAO, _sStr);// Manda a mensagem!
  142.     format(_sStr, 100, "Você deu %d meses de VIP para o %s", meses, pNome(iddele));
  143.     SendClientMessage(playerid, COR_AZULZAO, _sStr);
  144.     return 1;
  145. }
  146. CMD:darsvip(playerid, params[])
  147. {
  148.     if(!IsPlayerAdmin(playerid))
  149.         return SendClientMessage(playerid, -1, "Você não está autorizado a usar esse comando !");
  150.     if(sscanf(params, "ud", iddele, meses))
  151.         return SendClientMessage(playerid, -1, "Correto: /darsvip [id] [meses]");
  152.     if(!IsPlayerConnected(iddele))
  153.         return SendClientMessage(playerid, -1, "Esse jogador não está online");
  154.     PlayerVip[iddele] = 2;
  155.     SetPlayerScore(iddele, GetPlayerScore(iddele) + meses*3);
  156.     GivePlayerMoney(iddele, meses*20000);
  157.     format(_sStr, 100, "Atenção o admin %s te deu %d meses SUPER-VIP com %d Níveis e R$ %d.", pNome(playerid), meses, meses*3, meses*20000);
  158.     SendClientMessage(iddele, COR_AZULZAO, _sStr);
  159.     format(_sStr, 100, "Você deu %d meses de SUPER-VIP para o %s", meses, pNome(iddele));
  160.     SendClientMessage(playerid, COR_AZULZAO, _sStr);
  161.     return 1;
  162. }
  163. CMD:darsocio(playerid, params[])
  164. {
  165.     if(!IsPlayerAdmin(playerid))
  166.         return SendClientMessage(playerid, -1, "Você não está autorizado a usar esse comando !");
  167.     if(sscanf(params, "ud", iddele, meses))
  168.         return SendClientMessage(playerid, -1, "Correto: /darsocio [id] [meses]");
  169.     if(!IsPlayerConnected(iddele))
  170.         return SendClientMessage(playerid, -1, "Esse jogador não está online");
  171.     PlayerVip[iddele] = 3;
  172.     SetPlayerScore(iddele, GetPlayerScore(iddele) + meses*4);
  173.     GivePlayerMoney(iddele, meses*30000);
  174.     format(_sStr, 100, "Atenção o admin %s te deu %d meses de Sócio com %d Níveis e R$ %d.", pNome(playerid), meses, meses*4, meses*30000);
  175.     SendClientMessage(iddele, COR_AZULZAO, _sStr);
  176.     format(_sStr, 100, "Você deu %d meses de Sócio para o %s", meses, pNome(iddele));
  177.     SendClientMessage(playerid, COR_AZULZAO, _sStr);
  178.     return 1;
  179. }
  180. CMD:tirarvip(playerid, params[])
  181. {
  182.     if(!IsPlayerAdmin(playerid))
  183.         return SendClientMessage(playerid, -1, "Você não está autorizado a usar esse comando !");
  184.     if(sscanf(params, "u", iddele))
  185.         return SendClientMessage(playerid, -1, "Correto: /tirarvip [id]");
  186.     if(!IsPlayerConnected(iddele))
  187.         return SendClientMessage(playerid, -1, "Esse jogador não está online");
  188.     if(PlayerVip[iddele] == 0)
  189.         return SendClientMessage(playerid, -1, "Esse jogador não é VIP/S-VIP/SOCIO");
  190.     PlayerVip[iddele] = 0;// Seta o nivel vip do cara pra 0!
  191.     format(_sStr, 80, "O administrador %s tirou seu VIP/S-VIP/SOCIO!", pNome(playerid));
  192.     SendClientMessage(iddele, COR_AZULZAO, _sStr);
  193.     format(_sStr, 80, "Você tirou o VIP/S-VIP/SOCIO do %s", pNome(iddele));
  194.     SendClientMessage(playerid, COR_AZULZAO, _sStr);
  195.     format(_sStr, 35, "Vips/%s.ini", pNome(playerid));// Formata o local da Pasta!
  196.     if(fexist(_sStr))// Se a o arquivo existir, remove ele \/
  197.     {
  198.         INI_Remove(_sStr);// Remove o arquivo!
  199.     }
  200.     return 1;
  201. }
  202. CMD:equiparvip(playerid, params[])
  203. {
  204.     if(PlayerVip[playerid] == 1)// Se ele for VIP vai dar essas armas:
  205.     {
  206.         GivePlayerWeapon(playerid, 24, 999);
  207.         GivePlayerWeapon(playerid, 31, 999);// Da a armas 31 com 999 balas ao player!
  208.         SendClientMessage(playerid, COR_AZULZINHO, "Você pegou seus equipamentos VIP!");
  209.     }
  210.     else if(PlayerVip[playerid] == 2)// Se ele for SuperVip vai dar essas armas:
  211.     {
  212.         SetPlayerHealth(playerid, 100);
  213.         GivePlayerWeapon(playerid, 24, 999);
  214.         GivePlayerWeapon(playerid, 31, 999);
  215.         GivePlayerWeapon(playerid, 4, 999);
  216.         GivePlayerWeapon(playerid, 29, 999);
  217.         SendClientMessage(playerid, COR_AZULZINHO, "Você pegou seus equipamentos SUPER VIP!");
  218.     }
  219.     else if(PlayerVip[playerid] == 3)// Se ele for Sócio vai dar essas armas:
  220.     {
  221.         SetPlayerHealth(playerid, 100);
  222.         SetPlayerArmour(playerid, 100);
  223.         GivePlayerWeapon(playerid, 24, 999);
  224.         GivePlayerWeapon(playerid, 31, 999);
  225.         GivePlayerWeapon(playerid, 4, 999);
  226.         GivePlayerWeapon(playerid, 29, 999);
  227.         GivePlayerWeapon(playerid, 38, 999);
  228.         GivePlayerWeapon(playerid, 46, 999);
  229.         SendClientMessage(playerid, COR_AZULZINHO, "Você pegou seus equipamentos de SÓCIO!");
  230.     }
  231.     else if(PlayerVip[playerid] == 0)// Se ele nao for VIP, vai mandar essa mensagem :)
  232.         return SendClientMessage(playerid, -1, "Você não é vip!");
  233.     return 1;
  234. }
  235. CMD:salvarvips(playerid, params[])
  236. {
  237.     if(!IsPlayerAdmin(playerid))
  238.         return SendClientMessage(playerid, -1, "Você não está autorizado a usar esse comando !");
  239.     foreach(Player, i)// Loop
  240.     {
  241.         SalvarVip(i); // Salva as contas!
  242.     }
  243.     SendClientMessage(playerid, -1, "Todos os Vips/Super-Vips/Socios onlines foram salvos com sucesso!");
  244.     return 1;
  245. }
  246. CMD:chatvip(playerid, params[])
  247. {
  248.     new String[128];// String!
  249.     if(PlayerVip[playerid] == 0)// Se o player não for VIP manda amensagem abaixo!
  250.         return SendClientMessage(playerid, -1, "Você não é Vip/Super-Vip/Sócio");
  251.     if(sscanf(params, "s[100]", _sStr))//Sscanf!
  252.         return SendClientMessage(playerid, -1, "Correto: /chatvip [chat]");
  253.     if(PlayerVip[playerid] == 1)// Se o cara for VIP nivel 1...
  254.     {
  255.         format(String, 128, "VIP %s: %s", pNome(playerid), _sStr);
  256.         MensagemVips(COR_AMARELO2, String);
  257.     }
  258.     else if(PlayerVip[playerid] == 2)// Se for vip nivel 2
  259.     {
  260.         format(String, 128, "SUPER-VIP %s: %s", pNome(playerid), _sStr);
  261.         MensagemVips(COR_AMARELO2, String);
  262.     }
  263.     else if(PlayerVip[playerid] == 3)// se for vip nivel 3
  264.     {
  265.         format(String, 128, "* SOCIO %s: %s", pNome(playerid), _sStr);
  266.         MensagemVips(COR_AMARELO2, String);
  267.     }
  268.     return 1;
  269. }
  270.  
  271. forward MensagemVips(cor, string[]);
  272. public MensagemVips(cor, string[])// Função que envia mensagem pros VIPS!!
  273. {
  274.     foreach(Player, i)// Loop!
  275.     {
  276.         if(IsPlayerConnected(i))// Players vips conectados!
  277.         {
  278.             if(PlayerVip[i] >= 1)// Se o vip for maior que 1
  279.             {
  280.                 SendClientMessage(i, cor, string);// manda a mensagem!
  281.             }
  282.         }
  283.     }
  284. }
  285. // ========= STOCKS ========= //
  286. stock pNome(playerid)// Stock de getar o nome :)
  287. {
  288.     new nome[MAX_PLAYER_NAME];
  289.     GetPlayerName(playerid, nome, sizeof(nome));
  290.     return nome;
  291. }
  292. stock SalvarVip(playerid)// Stock de salvar VIP!
  293. {
  294.     if(PlayerVip[playerid] >= 1)// Se o cara for maior ou igual a 1
  295.     {
  296.         format(_sStr, 35, "Vips/%s.ini", pNome(playerid));// Formata o local do arquivo!
  297.         if(INI_Open(_sStr))// Abre o arquivo!
  298.         {
  299.             INI_WriteInt("NivelVip", PlayerVip[playerid]);// Seta o NivelVip = NIVEL DO VIP DO PLAYER!
  300.             INI_Save();// Salva
  301.             INI_Close();// Fecha o arquivo!
  302.         }
  303.     }
  304.     return 1;
  305. }
  306. stock CarregarVip(playerid)
  307. {
  308.     format(_sStr, 35, "Vips/%s.ini", pNome(playerid));// Formata...
  309.     if(INI_Open(_sStr))// Abre o arquivo!
  310.     {
  311.         PlayerVip[playerid] = INI_ReadInt("NivelVip");// Seta o PlayerVip[playerid] para o numero que estiver no NivelVip...
  312.         INI_Close();// Fecha o arquivo!
  313.     }
  314.     return 1;
  315. }
  316. /* Sistema de VIP feito por Bruno Pereira, favor não retire os créditos, isso é crime!
  317. Pode modificalo de qualquer maneira, mas deixe pelo menos os créditos :)!
  318. Contato: [email]brunopereiraa-@hotmail.com[/email]
  319. Skype: grt.figa
  320. É nois !!! */
  321.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement