MarlonCS

STGang System

Nov 20th, 2014
1,352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 32.24 KB | None | 0 0
  1. /*                          STGang System 1.0
  2.                         CRIADO POR [XPG]MARLONCS
  3.                                 STBOY Games
  4.                         VERSÃO 1.0
  5. */
  6. #include <a_samp>
  7. #include <bcmd>
  8. #include <DOF2>
  9.  
  10. #define amarelo 0xFFFF00AA
  11. #define cinza 0xAFAFAFAA
  12. #define verde 0x33AA33AA
  13. #define vermelho 0xFF0000AA
  14. #define branco 0xFFFFFFAA
  15. #define DLGGANG 1
  16. #define ARQUIVOCONF "/players/%s.txt"
  17.  
  18. new bool:gang[MAX_PLAYERS],
  19.     ngang[MAX_PLAYERS],
  20.     nvgang[MAX_PLAYERS],
  21.     cgang[128],
  22.     string[512],
  23.     arquivo[128],
  24.     gpssv,
  25.     nome[50],
  26.     svnmgang[512]
  27. ;
  28.  
  29. public OnFilterScriptInit()
  30. {
  31.     printf("================================================");
  32.     printf("                 STGang System 1.0              ");
  33.     printf("               Carregado com sucesso!           ");
  34.     printf("                STBOY Games - :)                ");
  35.     printf("================================================\n");
  36.     return 1;
  37. }
  38.  
  39. public OnPlayerConnect(playerid)
  40. {
  41.     new arqgang[512];
  42.     format(arquivo, sizeof arquivo, ARQUIVOCONF, pnome(playerid));
  43.     if(!DOF2_FileExists(arquivo))
  44.     {
  45.         DOF2_CreateFile(arquivo);
  46.     }
  47.     SetPlayerColor(playerid, branco);
  48.     gang[playerid] = DOF2_GetBool(arquivo, "Gang");
  49.     if(gang[playerid] == true)
  50.     {
  51.         new nmgang[512];
  52.         ngang[playerid] = DOF2_GetInt(arquivo, "NGang");
  53.         nvgang[playerid] = DOF2_GetInt(arquivo, "NivelGang");
  54.         format(arqgang, sizeof(arqgang), "/gangs/%d.cok", ngang[playerid]);
  55.         nmgang = DOF2_GetString(arqgang, "NomeGang");
  56.         SetPlayerColor(playerid, DOF2_GetHex(arqgang, "CGang"));
  57.     }
  58.     return 1;
  59. }
  60.  
  61. bCMD[gang]-(playerid, ajuda, params[])
  62. {
  63.     new strdialog[2024], nmgang[512], arqgang[512];
  64.     if(gang[playerid] == true)
  65.     {
  66.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  67.         nmgang = DOF2_GetString(arqgang, "NomeGang");
  68.         if(nvgang[playerid] == 1)
  69.         {
  70.             format(strdialog, sizeof(strdialog), "Cofre\nInformações da Gang\nEnviar relatório\nMembros\nGangs online\nSair da gang");
  71.             format(string, sizeof(string), "===== Gang %s =====", nmgang);
  72.             ShowPlayerDialog(playerid, DLGGANG, DIALOG_STYLE_LIST, string, strdialog, "OK", "");
  73.         }
  74.         if(nvgang[playerid] == 2)
  75.         {
  76.             format(strdialog, sizeof(strdialog), "Cofre\nInformações da Gang\nEnviar relatório\nMembros\nTerritórios\nConvidar\nGangs online\nSair da gang");
  77.             format(string, sizeof(string), "===== Gang %s =====", nmgang);
  78.             ShowPlayerDialog(playerid, DLGGANG+1, DIALOG_STYLE_LIST, string, strdialog, "OK", "");
  79.         }
  80.         if(nvgang[playerid] == 3)
  81.         {
  82.             format(strdialog, sizeof(strdialog), "Cofre\nInformações da Gang\nEnviar relatório\nMembros\nTerritórios\nConvidar\nConfigurações\nGangs online\nSair da Gang");
  83.             format(string, sizeof(string), "===== Gang %s =====", nmgang);
  84.             ShowPlayerDialog(playerid, DLGGANG+2, DIALOG_STYLE_LIST, string, strdialog, "OK", "");
  85.         }
  86.     } else {
  87.         format(strdialog, sizeof(strdialog), "Criar\nGangs online");
  88.         ShowPlayerDialog(playerid, DLGGANG+3, DIALOG_STYLE_LIST, "==== Gang ====", strdialog, "OK", "");
  89.     }
  90.     return 1;
  91. }
  92. bCMD[gangs]-(playerid, ajuda, params[])
  93. {
  94.     static arm[500]; arm[0] = '\0';
  95.     static str[500];  str[0] = '\0';
  96.     static Nome[24]; Nome[0] = '0';
  97.     new count, arqgang[512], nmgang[512];
  98.     for(new i=0;i<MAX_PLAYERS;i++) {
  99.         if(IsPlayerConnected(i)){
  100.             if(gang[i] == true) {
  101.                 GetPlayerName(i, Nome, sizeof(Nome));
  102.                 format(arquivo, sizeof(arquivo), ARQUIVOCONF, Nome);
  103.                 count++;
  104.                 ngang[i] = DOF2_GetInt(arquivo, "NGang");
  105.                 format(arqgang, sizeof(arqgang), "gangs/%d.cok", ngang[i]);
  106.                 nmgang = DOF2_GetString(arqgang, "NomeGang");
  107.                 format(str, sizeof(str),"{FFFFFF}Player: {1E90FF}%s - Gang: {33AA33}%s\n", Nome, nmgang);
  108.                 strcat(arm, str);
  109.             }
  110.         }
  111.     }
  112.     if(count<=0)return ShowPlayerDialog(playerid, DLGGANG+4, DIALOG_STYLE_MSGBOX, "===== {00FF00}Gangs{FFFFFF} ======", "Nenhuma gang online", "OK", "");
  113.     if(count>0)ShowPlayerDialog(playerid, DLGGANG+4, DIALOG_STYLE_MSGBOX, "===== {00FF00}Gangs{FFFFFF} ======", arm, "OK", "");
  114.     return 1;
  115. }
  116.  
  117. public OnPlayerDeath(playerid, killerid, reason)
  118. {
  119.     if(ngang[killerid] == ngang[playerid])
  120.     {
  121.         GivePlayerMoney(killerid, -1000);
  122.         SendClientMessage(killerid, vermelho, "[GANG] Você perdeu R$ 1000,00 por ter matado um player de sua gang");
  123.         for(new i=0;i<MAX_PLAYERS;i++)
  124.         {
  125.             if(ngang[killerid] == ngang[i])
  126.             {
  127.                 format(string, sizeof string, "[GANG] %s matou %s da mesma gang", pnome(killerid), pnome(playerid));
  128.             }
  129.         }
  130.     }
  131.     return 1;
  132. }
  133.  
  134. public OnPlayerText(playerid, text[])
  135. {
  136.     if(text[0] == '!' && gang[playerid]==true)
  137.     {
  138.         for(new i; i < MAX_PLAYERS; i++)
  139.         {
  140.             if(ngang[i] == ngang[playerid])
  141.             {
  142.                 format(string, sizeof string, "[Chat da Gang] %s diz: %s", pnome(playerid), text[1]);
  143.                 SendClientMessage(i, amarelo, string);
  144.             }
  145.         }
  146.         return 0;
  147.     }
  148.     return 0;
  149. }
  150.  
  151. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  152. {
  153.     if (dialogid == DLGGANG)
  154.     {
  155.         if (response)
  156.         {
  157.             new arqgang[512], nmgang[512];
  158.             format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  159.             nmgang = DOF2_GetString(arqgang, "NomeGang");
  160.             if (listitem == 0) {
  161.             ShowPlayerDialog(playerid, DLGGANG+19, DIALOG_STYLE_LIST, "=== Cofre ===", "Saldo\nSacar\nDepositar", "OK", "Cancelar");
  162.             }
  163.             if (listitem == 1) {
  164.             new gcofre = DOF2_GetInt(arqgang, "Cofre");
  165.             new glider[512], strdialog[512];
  166.             glider = DOF2_GetString(arqgang, "GLider");
  167.             format(strdialog, sizeof strdialog, "Nome da Gang: {FF0000}%s\nCofre da Gang: {00FF00}R$ %d,00\nLíder: {0000FF}%s", nmgang, gcofre, glider);
  168.             ShowPlayerDialog(playerid, DLGGANG+5, DIALOG_STYLE_MSGBOX, "=== Informações da Gang ===", strdialog, "OK", "");
  169.             }
  170.             if (listitem == 2) {
  171.             ShowPlayerDialog(playerid, DLGGANG+24, DIALOG_STYLE_INPUT, "=== Relatório ===", "Digite algum texto para mandar para todos da Gang:", "OK", "Cancelar");
  172.             }
  173.             if (listitem == 3) {
  174.             mgang(playerid);
  175.             }
  176.             if (listitem == 4) {
  177.             bcmd_gangs(playerid, 0, "");
  178.             }
  179.             if (listitem == 5) {
  180.             ShowPlayerDialog(playerid, DLGGANG+10, DIALOG_STYLE_MSGBOX, "=== Sair da Gang ===", "Tem certeza que deseja sair da Gang?", "Sim", "Não");
  181.             }
  182.         }
  183.         return 1;
  184.     }
  185.     if (dialogid == DLGGANG+1)
  186.     {
  187.         if (response)
  188.         {
  189.             new arqgang[512], nmgang[512];
  190.             format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  191.             nmgang = DOF2_GetString(arqgang, "NomeGang");
  192.             if (listitem == 0) {
  193.             ShowPlayerDialog(playerid, DLGGANG+19, DIALOG_STYLE_LIST, "=== Cofre ===", "Saldo\nSacar\nDepositar", "OK", "Cancelar");
  194.             }
  195.             if (listitem == 1) {
  196.             new gcofre = DOF2_GetInt(arqgang, "Cofre");
  197.             new glider[512], strdialog[512];
  198.             glider = DOF2_GetString(arqgang, "GLider");
  199.             format(strdialog, sizeof strdialog, "Nome da Gang: {FF0000}%s\nCofre da Gang: {00FF00}R$ %d,00\nLíder: {0000FF}%s", nmgang, gcofre, glider);
  200.             ShowPlayerDialog(playerid, DLGGANG+5, DIALOG_STYLE_MSGBOX, "=== Informações da Gang ===", strdialog, "OK", "");
  201.             }
  202.             if (listitem == 2) {
  203.             ShowPlayerDialog(playerid, DLGGANG+24, DIALOG_STYLE_INPUT, "=== Relatório ===", "Digite algum texto para mandar para todos da Gang:", "OK", "Cancelar");
  204.             }
  205.             if (listitem == 3) {
  206.             mgang(playerid);
  207.             }
  208.             if (listitem == 4) {
  209.             ShowPlayerDialog(playerid, DLGGANG+11, DIALOG_STYLE_INPUT, "=== Convidar Player ===", "Digite o ID do player que deseja convidar:", "OK", "Cancelar");
  210.             }
  211.             if (listitem == 5) {
  212.             SendClientMessage(playerid, amarelo, "[GANG] Em breve");
  213.             }
  214.             if (listitem == 6) {
  215.             bcmd_gangs(playerid, 0, "");
  216.             }
  217.             if (listitem == 7) {
  218.             ShowPlayerDialog(playerid, DLGGANG+10, DIALOG_STYLE_MSGBOX, "=== Sair da Gang ===", "Tem certeza que deseja sair da Gang?", "Sim", "Não");
  219.             }
  220.         }
  221.         return 1;
  222.     }
  223.     if (dialogid == DLGGANG+2)
  224.     {
  225.         if (response)
  226.         {
  227.             new arqgang[512], nmgang[512];
  228.             format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  229.             nmgang = DOF2_GetString(arqgang, "NomeGang");
  230.             if (listitem == 0) {
  231.             ShowPlayerDialog(playerid, DLGGANG+19, DIALOG_STYLE_LIST, "=== Cofre ===", "Saldo\nSacar\nDepositar", "OK", "Cancelar");
  232.             }
  233.             if (listitem == 1) {
  234.             new gcofre = DOF2_GetInt(arqgang, "Cofre");
  235.             new glider[512], strdialog[512];
  236.             glider = DOF2_GetString(arqgang, "GLider");
  237.             format(strdialog, sizeof strdialog, "Nome da Gang: {FF0000}%s\nCofre da Gang: {00FF00}R$ %d,00\nLíder: {0000FF}%s", nmgang, gcofre, glider);
  238.             ShowPlayerDialog(playerid, DLGGANG+5, DIALOG_STYLE_MSGBOX, "=== Informações da Gang ===", strdialog, "OK", "");
  239.             }
  240.             if (listitem == 2) {
  241.             ShowPlayerDialog(playerid, DLGGANG+24, DIALOG_STYLE_INPUT, "=== Relatório ===", "Digite algum texto para mandar para todos da Gang:", "OK", "Cancelar");
  242.             }
  243.             if (listitem == 3) {
  244.             mgang(playerid);
  245.             }
  246.             if (listitem == 4) {
  247.             SendClientMessage(playerid, amarelo, "[GANG] Em breve");
  248.             }
  249.             if (listitem == 5) {
  250.             ShowPlayerDialog(playerid, DLGGANG+11, DIALOG_STYLE_INPUT, "=== Convidar Player ===", "Digite o ID do player que deseja convidar:", "OK", "Cancelar");
  251.             }
  252.             if (listitem == 6) {
  253.             ShowPlayerDialog(playerid, DLGGANG+8, DIALOG_STYLE_LIST, "=== Configurações ===", "Cor\nNome\nTransferir Liderança\nBanir Membro\nSetar Liderença", "OK", "Cancelar");
  254.             }
  255.             if (listitem == 7) {
  256.             bcmd_gangs(playerid, 0, "");
  257.             }
  258.             if (listitem == 8) {
  259.             ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Sair e Transferir Liderença ===", "Para sair da gang você deve transferir a liderença\nDigite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  260.             }
  261.         }
  262.         return 1;
  263.     }
  264.     if (dialogid == DLGGANG+3)
  265.     {
  266.         if (response)
  267.         {
  268.             if (listitem == 0) {
  269.             if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid, vermelho, "[GANG] Você não tem dinheiro suficiente");
  270.             ShowPlayerDialog(playerid, DLGGANG+6, DIALOG_STYLE_INPUT, "==== Nome da Gang ======", "Digite o nome da gang:", "OK", "Cancelar");
  271.             }
  272.             if (listitem == 1) {
  273.             bcmd_gangs(playerid, 0, "");
  274.             }
  275.         }
  276.         return 1;
  277.     }
  278.     if (dialogid == DLGGANG+6)
  279.     {
  280.         if (!response)
  281.         {
  282.             SendClientMessage(playerid, branco, "[GANG] Você cancelou a criação da gang");
  283.         } else {
  284.             if(strlen(inputtext) < 6) {
  285.                 SendClientMessage(playerid, vermelho, "[GANG] O nome da gang deve ter no mínimo 6 dígitos");
  286.                 return ShowPlayerDialog(playerid, DLGGANG+6, DIALOG_STYLE_INPUT, "==== Nome da Gang ======", "Digite novamente o nome da gang:", "OK", "Cancelar");
  287.             }
  288.             format(svnmgang, sizeof svnmgang, "%s", inputtext);
  289.             ShowPlayerDialog(playerid, DLGGANG+7, DIALOG_STYLE_INPUT, "==== Escolha a cor ====", "Digite a cor da Gang\nDeve ter 4 dígitos de números ou letras", "OK", "Cancelar");
  290.         }
  291.         return 1;
  292.     }
  293.     if (dialogid == DLGGANG+7)
  294.     {
  295.         if (!response)
  296.         {
  297.             SendClientMessage(playerid, branco, "[GANG] Você cancelou a criação da gang");
  298.         } else {
  299.             if(strlen(inputtext) != 4) {
  300.                 SendClientMessage(playerid, vermelho, "[GANG] A cor da gang deve ter no mínimo/máximo 4 dígitos.");
  301.                 return ShowPlayerDialog(playerid, DLGGANG+7, DIALOG_STYLE_INPUT, "==== Escolha a cor ====", "Digite a cor da Gang\nDeve ter 4 dígitos de números ou letras", "OK", "Cancelar");
  302.             }
  303.             GivePlayerMoney(playerid, -10000);
  304.             format(cgang, sizeof cgang, "0xFF%sFF", inputtext);
  305.             CriarGang(playerid);
  306.             SendClientMessage(playerid, amarelo, "[GANG] Gang criada com sucesso. Para editá-la use o menu /gang");
  307.         }
  308.     }
  309.     if (dialogid == DLGGANG+8)
  310.     {
  311.         if (response)
  312.         {
  313.             if (listitem == 0) {
  314.             ShowPlayerDialog(playerid, DLGGANG+12, DIALOG_STYLE_INPUT, "=== Alterar Cor ===", "Digite 4 letras ou número para alterar a cor da gang:", "OK", "Cancelar");
  315.             }
  316.             if (listitem == 1) {
  317.             ShowPlayerDialog(playerid, DLGGANG+13, DIALOG_STYLE_INPUT, "=== Alterar Nome ===", "Digite o novo nome da Gang:", "OK", "Cancelar");
  318.             }
  319.             if (listitem == 2) {
  320.             ShowPlayerDialog(playerid, DLGGANG+14, DIALOG_STYLE_INPUT, "=== Transferir Liderença ===", "Transferir a liderença\nDigite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  321.             }
  322.             if (listitem == 3) {
  323.             ShowPlayerDialog(playerid, DLGGANG+15, DIALOG_STYLE_INPUT, "=== Banir Membro ===", "Digite abaixo o ID do Player que será banido:", "OK", "Cancelar");
  324.             }
  325.             if (listitem == 4) {
  326.             ShowPlayerDialog(playerid, DLGGANG+18, DIALOG_STYLE_INPUT, "=== Mudar nível ===", "Digite abaixo o ID do Player que será setado:", "OK", "Cancelar");
  327.             }
  328.         }
  329.         return 1;
  330.     }
  331.     if (dialogid == DLGGANG+9)
  332.     {
  333.         if (response)
  334.         {
  335.             if(!IsPlayerConnected(strval(inputtext))) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Sair e Transferir Liderença ===", "{FF0000}Player não conectado!\n{FFFFFF}Para sair da gang você deve transferir a liderença\nDigite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  336.             if(ngang[strval(inputtext)] != ngang[playerid]) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Sair e Transferir Liderença ===", "{FF0000}Player não é de sua gang!\n{FFFFFF}Para sair da gang você deve transferir a liderença\nDigite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  337.             if(gang[strval(inputtext)] == false) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Sair e Transferir Liderença ===", "{FF0000}Player não tem gang!\n{FFFFFF}Para sair da gang você deve transferir a liderença\nDigite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  338.             if(strval(inputtext) == playerid) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Sair e Transferir Liderença ===", "{FF0000}Você não pode transferir a liderença para si mesmo!\n{FFFFFF}Para sair da gang você deve transferir a liderença\nDigite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  339.             new arqgang[512], arquivop[512], gangplayer;
  340.             format(arquivop, sizeof arquivop, ARQUIVOCONF, pnome(strval(inputtext)));
  341.             format(arquivo, sizeof arquivo, ARQUIVOCONF, pnome(playerid));
  342.             gangplayer = DOF2_GetInt(arquivop, "NGang");
  343.             format(arqgang, sizeof arqgang, "/gangs/%d.cok", gangplayer);
  344.             if(strlen(inputtext) < 0) return SendClientMessage(playerid, vermelho, "[GANG] Digite um ID válido");
  345.             DOF2_SetString(arqgang, "GLider", pnome(strval(inputtext)));
  346.             DOF2_SetInt(arquivop, "NivelGang", 3);
  347.             DOF2_SetInt(arquivo, "NivelGang", 0);
  348.             DOF2_SetInt(arquivo, "NGang", 0);
  349.             DOF2_SetBool(arquivo, "Gang", false);
  350.             gang[playerid] = false;
  351.             SetPlayerColor(playerid, branco);
  352.             SendClientMessage(playerid, amarelo, "[GANG] Você saiu da gang");
  353.             format(string, sizeof string, "[GANG] %s transferiu a liderença para gang para você e saiu", pnome(playerid));
  354.             nvgang[strval(inputtext)]=3;
  355.             SendClientMessage(strval(inputtext), amarelo, string);
  356.             for(new i; i < MAX_PLAYERS; i++)
  357.             {
  358.                 if(ngang[strval(inputtext)] == ngang[i])
  359.                 {
  360.                     format(string, sizeof string, "[GANG] Líder %s transferiu a liderença para %s e saiu da gang", pnome(playerid), pnome(strval(inputtext)));
  361.                     SendClientMessage(i, amarelo, string);
  362.                 }
  363.             }
  364.         }
  365.     }
  366.     if (dialogid == DLGGANG+10)
  367.     {
  368.         if (response)
  369.         {
  370.             new arqgang[512], gangplayer;
  371.             format(arquivo, sizeof arquivo, ARQUIVOCONF, pnome(playerid));
  372.             gangplayer = DOF2_GetInt(arquivo, "NGang");
  373.             format(arqgang, sizeof arqgang, "/gangs/%d.cok", gangplayer);
  374.             DOF2_SetInt(arquivo, "NivelGang", 3);
  375.             DOF2_SetInt(arquivo, "NivelGang", 0);
  376.             DOF2_SetInt(arquivo, "NGang", 0);
  377.             DOF2_SetBool(arquivo, "Gang", false);
  378.             gang[playerid] = false;
  379.             SetPlayerColor(playerid, branco);
  380.             SendClientMessage(playerid, amarelo, "[GANG] Você saiu da gang");
  381.             for(new i; i < MAX_PLAYERS; i++)
  382.             {
  383.                 if(ngang[i] == ngang[playerid])
  384.                 {
  385.                     format(string, sizeof string, "[GANG] %s saiu da gang.", pnome(playerid), pnome(strval(inputtext)));
  386.                     SendClientMessage(i, amarelo, string);
  387.                 }
  388.             }
  389.         }
  390.         else
  391.         {
  392.             SendClientMessage(playerid, branco, "[GANG] Você não saiu da gang");
  393.         }
  394.     }
  395.     if (dialogid == DLGGANG+11)
  396.     {
  397.         new arqgang[512], nmgang[512];
  398.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  399.         nmgang = DOF2_GetString(arqgang, "NomeGang");
  400.         if (response)
  401.         {
  402.             if(!IsPlayerConnected(strval(inputtext))) return ShowPlayerDialog(playerid, DLGGANG+11, DIALOG_STYLE_INPUT, "=== Convidar Player ===", "{FF0000}ID Inválido!\n{FFFFFF}Digite o ID do player que deseja convidar:", "OK", "Cancelar");
  403.             if(gang[strval(inputtext)] == true && ngang[strval(inputtext)] != ngang[playerid]) return ShowPlayerDialog(playerid, DLGGANG+11, DIALOG_STYLE_INPUT, "=== Convidar Player ===", "{FF0000}Player já tem gang!\n{FFFFFF}Digite o ID do player que deseja convidar:", "OK", "Cancelar");
  404.             if(strval(inputtext) == playerid) return ShowPlayerDialog(playerid, DLGGANG+11, DIALOG_STYLE_INPUT, "=== Convidar Player ===", "{FF0000}Você não pode convidar a si mesmo!\n{FFFFFF}Digite o ID do player que deseja convidar:", "OK", "Cancelar");
  405.             format(string, sizeof string, "[GANG] Líder %s convidou você para a Gang %s. Deseja entrar?", pnome(playerid), nmgang);
  406.             ShowPlayerDialog(strval(inputtext), DLGGANG+16, DIALOG_STYLE_MSGBOX, "=== Convite ===", string, "Sim", "Não");
  407.             ngang[strval(inputtext)]=ngang[playerid];
  408.         }
  409.         else
  410.         {
  411.             SendClientMessage(playerid, branco, "[GANG] Você cancelou o convite");
  412.         }
  413.     }
  414.     if (dialogid == DLGGANG+12)
  415.     {
  416.         new arqgang[512], nmgang[512];
  417.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  418.         nmgang = DOF2_GetString(arqgang, "NomeGang");
  419.         if (response)
  420.         {
  421.             if(strlen(inputtext) != 4) return ShowPlayerDialog(playerid, DLGGANG+12, DIALOG_STYLE_INPUT, "=== Alterar Cor ===", "{FF0000}Tem que ter 4 dígitos\n{FFFFFF}Digite 4 letras ou número para alterar a cor da gang:", "OK", "Cancelar");
  422.             format(string, sizeof string, "0xFF%sFF", inputtext);
  423.             DOF2_SetString(arqgang, "CGang", string);
  424.             for(new i; i < MAX_PLAYERS; i++)
  425.             {
  426.                 if(ngang[i] == ngang[playerid])
  427.                 {
  428.                     SetPlayerColor(i, DOF2_GetHex(arqgang, "CGang"));
  429.                     format(string, sizeof string, "[GANG] Líder %s alterou a cor da gang para esta cor", pnome(playerid));
  430.                     SendClientMessage(i, DOF2_GetHex(arqgang, "CGang"), string);
  431.                 }
  432.             }
  433.         }
  434.         else
  435.         {
  436.             SendClientMessage(playerid, branco, "[GANG] Você cancelou a troca de cor.");
  437.         }
  438.     }
  439.     if (dialogid == DLGGANG+13)
  440.     {
  441.         new arqgang[512];
  442.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  443.         if (response)
  444.         {
  445.             if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, DLGGANG+13, DIALOG_STYLE_INPUT, "=== Alterar Nome ===", "{FF0000}O nome da gang deve ter no mínimo 6 dígitos\n{FFFFFF}Digite o novo nome da Gang:", "OK", "Cancelar");
  446.             DOF2_SetString(arqgang, "NomeGang", inputtext);
  447.             for(new i; i < MAX_PLAYERS; i++)
  448.             {
  449.                 if(ngang[i] == ngang[playerid])
  450.                 {
  451.                     format(string, sizeof string, "[GANG] Líder %s alterou o nome da Gang para '%s'", pnome(playerid), inputtext);
  452.                     SendClientMessage(i, amarelo, string);
  453.                 }
  454.             }
  455.         }
  456.         else
  457.         {
  458.             SendClientMessage(playerid, branco, "[GANG] Você cancelou a troca de nome.");
  459.         }
  460.     }
  461.     if (dialogid == DLGGANG+14)
  462.     {
  463.         new arqgang[512], nmgang[512];
  464.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  465.         nmgang = DOF2_GetString(arqgang, "NomeGang");
  466.         if (response)
  467.         {
  468.             if(!IsPlayerConnected(strval(inputtext))) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Transferir Liderença ===", "{FF0000}Player não conectado!\n{FFFFFF}Digite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  469.             if(ngang[strval(inputtext)] != ngang[playerid]) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Transferir Liderença ===", "{FF0000}Player não é de sua gang!\n{FFFFFF}Digite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  470.             if(gang[strval(inputtext)] == false) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Transferir Liderença ===", "{FF0000}Player não tem gang!\n{FFFFFF}Digite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  471.             if(strval(inputtext) == playerid) return ShowPlayerDialog(playerid, DLGGANG+9, DIALOG_STYLE_INPUT, "=== Transferir Liderença ===", "{FF0000}Você não pode transferir a liderença para si mesmo!\n{FFFFFF}Digite abaixo o ID do player que será o novo líder:", "OK", "Cancelar");
  472.             new arquivop[512], gangplayer;
  473.             format(arquivop, sizeof arquivop, ARQUIVOCONF, pnome(strval(inputtext)));
  474.             format(arquivo, sizeof arquivo, ARQUIVOCONF, pnome(playerid));
  475.             gangplayer = DOF2_GetInt(arquivop, "NGang");
  476.             format(arqgang, sizeof arqgang, "/gangs/%d.cok", gangplayer);
  477.             if(strlen(inputtext) < 0) return SendClientMessage(playerid, vermelho, "[GANG] Digite um ID válido");
  478.             DOF2_SetString(arqgang, "GLider", pnome(strval(inputtext)));
  479.             DOF2_SetInt(arquivop, "NivelGang", 3);
  480.             DOF2_SetInt(arquivo, "NivelGang", 1);
  481.             nvgang[strval(inputtext)]=3;
  482.             format(string, sizeof string, "[GANG] %s transferiu a liderença da gang para você e saiu", pnome(playerid));
  483.             SendClientMessage(strval(inputtext), amarelo, string);
  484.             for(new i; i < MAX_PLAYERS; i++)
  485.             {
  486.                 if(ngang[i] == ngang[playerid])
  487.                 {
  488.                     format(string, sizeof string, "[GANG] Líder %s transferiu a liderença para %s", pnome(playerid), pnome(strval(inputtext)));
  489.                     SendClientMessage(i, amarelo, string);
  490.                 }
  491.             }
  492.         }
  493.         else
  494.         {
  495.             SendClientMessage(playerid, branco, "[GANG] Você cancelou a troca de líder.");
  496.         }
  497.     }
  498.     if (dialogid == DLGGANG+15)
  499.     {
  500.         new arqgang[512], nmgang[512];
  501.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  502.         nmgang = DOF2_GetString(arqgang, "NomeGang");
  503.         if (response)
  504.         {
  505.             if(!IsPlayerConnected(strval(inputtext))) return ShowPlayerDialog(playerid, DLGGANG+15, DIALOG_STYLE_INPUT, "=== Banir Membro ===", "{FF0000}Digite um ID válido!\n{FFFFFF}Digite abaixo o ID do Player que será banido:", "OK", "Cancelar");
  506.             if(ngang[strval(inputtext)] != ngang[playerid]) return ShowPlayerDialog(playerid, DLGGANG+15, DIALOG_STYLE_INPUT, "=== Banir Membro ===", "{FF0000}O player não é de sua gang\n{FFFFFF}Digite abaixo o ID do Player que será banido:", "OK", "Cancelar");
  507.             if(gang[strval(inputtext)] == false) return ShowPlayerDialog(playerid, DLGGANG+15, DIALOG_STYLE_INPUT, "=== Banir Membro ===", "{FF0000}Player não tem gang\n{FFFFFF}Digite abaixo o ID do Player que será banido:", "OK", "Cancelar");
  508.             if(strval(inputtext) == playerid) return ShowPlayerDialog(playerid, DLGGANG+15, DIALOG_STYLE_INPUT, "=== Banir Membro ===", "{FF0000}Você não pode se banir\n{FFFFFF}Digite abaixo o ID do Player que será banido:", "OK", "Cancelar");
  509.             new arquivop[512], gangplayer;
  510.             format(arquivop, sizeof arquivop, ARQUIVOCONF, pnome(strval(inputtext)));
  511.             gangplayer = DOF2_GetInt(arquivop, "NGang");
  512.             format(arqgang, sizeof arqgang, "/gangs/%d.cok", gangplayer);
  513.             if(strlen(inputtext) < 0) return SendClientMessage(playerid, vermelho, "[GANG] Digite um ID válido");
  514.             DOF2_SetInt(arquivop, "NivelGang", 0);
  515.             DOF2_SetInt(arquivop, "NGang", 0);
  516.             DOF2_SetInt(arquivop, "Gang", false);
  517.             gang[strval(inputtext)]=false;
  518.             nvgang[strval(inputtext)]=0;
  519.             ngang[strval(inputtext)]=0;
  520.             SetPlayerColor(strval(inputtext), branco);
  521.             format(string, sizeof string, "[GANG] %s baniu você da gang", pnome(playerid));
  522.             SendClientMessage(strval(inputtext), vermelho, string);
  523.             for(new i; i < MAX_PLAYERS; i++)
  524.             {
  525.                 if(ngang[i] == ngang[playerid])
  526.                 {
  527.                     format(string, sizeof string, "[GANG] Líder %s baniu player %s da gang", pnome(playerid), pnome(strval(inputtext)));
  528.                     SendClientMessage(i, vermelho, string);
  529.                 }
  530.             }
  531.         }
  532.         else
  533.         {
  534.             SendClientMessage(playerid, branco, "[GANG] Você cancelou.");
  535.         }
  536.     }
  537.     if (dialogid == DLGGANG+16)
  538.     {
  539.         new arqgang[512], nmgang[512];
  540.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  541.         nmgang = DOF2_GetString(arqgang, "NomeGang");
  542.         if (response)
  543.         {
  544.             format(arquivo, sizeof arquivo, ARQUIVOCONF, pnome(playerid));
  545.             DOF2_SetInt(arquivo, "NivelGang", 1);
  546.             DOF2_SetInt(arquivo, "NGang", ngang[playerid]);
  547.             DOF2_SetBool(arquivo, "Gang", true);
  548.             gang[playerid] = true;
  549.             nvgang[playerid] = 1;
  550.             SetPlayerColor(playerid, DOF2_GetHex(arqgang, "CGang"));
  551.             SendClientMessage(playerid, amarelo, "[GANG] BEM-VINDO A SUA NOVA GANG");
  552.             for(new i; i < MAX_PLAYERS; i++)
  553.             {
  554.                 if(ngang[i] == ngang[playerid])
  555.                 {
  556.                     format(string, sizeof string, "[GANG] %s agora é membro da Gang", pnome(playerid));
  557.                     SendClientMessage(i, amarelo, string);
  558.                 }
  559.             }
  560.         }
  561.         else
  562.         {
  563.             for(new i; i < MAX_PLAYERS; i++)
  564.             {
  565.                 if(ngang[playerid] == ngang[i] && nvgang[i] == 3)
  566.                 {
  567.                     SendClientMessage(i, vermelho, string);
  568.                 }
  569.             }
  570.             SendClientMessage(playerid, branco, "[GANG] Você não aceitou o convite.");
  571.             ngang[playerid] = 0;
  572.         }
  573.     }
  574.     if (dialogid == DLGGANG+17)
  575.     {
  576.         new arqgang[512];
  577.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  578.         if (response)
  579.         {
  580.             if(gpssv > 2) return ShowPlayerDialog(playerid, DLGGANG+17, DIALOG_STYLE_INPUT, "=== Digite o nível ===", "{FF0000}Digite níveis de de 1 à 2\n{FFFFFF}Digite o nível que o player irá receber:", "OK", "Cancelar");
  581.             format(arquivo, sizeof arquivo, ARQUIVOCONF, pnome(gpssv));
  582.             DOF2_SetInt(arquivo, "NivelGang", strval(inputtext));
  583.             nvgang[playerid] = strval(inputtext);
  584.             for(new i; i < MAX_PLAYERS; i++)
  585.             {
  586.                 if(ngang[i] == ngang[playerid])
  587.                 {
  588.                     format(string, sizeof string, "[GANG] Líder %s subiu o nível de %s para %d", pnome(playerid), pnome(gpssv), strval(inputtext));
  589.                     SendClientMessage(i, vermelho, string);
  590.                 }
  591.             }
  592.         }
  593.         else
  594.         {
  595.             SendClientMessage(playerid, vermelho, "[GANG] Você cancelou");
  596.         }
  597.     }
  598.     if (dialogid == DLGGANG+18)
  599.     {
  600.         if (response)
  601.         {
  602.             if(!IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid, vermelho, "[GANG] ID Inválido!");
  603.             if(ngang[strval(inputtext)] != ngang[playerid]) return SendClientMessage(playerid, vermelho, "[GANG] Player não é da mesma gang que você!");
  604.             if(gang[strval(inputtext)] == false) return SendClientMessage(playerid, vermelho, "[GANG] Player não tem gang!");
  605.             if(strval(inputtext) == playerid) return SendClientMessage(playerid, vermelho, "[GANG] Você não pode setar seu próprio nível!");
  606.             gpssv = strval(inputtext);
  607.             ShowPlayerDialog(playerid, DLGGANG+17, DIALOG_STYLE_INPUT, "=== Digite o nível ===", "Digite o nível que o player irá receber:", "OK", "Cancelar");
  608.         }
  609.         else
  610.         {
  611.             SendClientMessage(playerid, vermelho, "[GANG] Você cancelou");
  612.         }
  613.     }
  614.     if (dialogid == DLGGANG+19)
  615.     {
  616.         new arqgang[512], strdialog[512];
  617.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  618.         new cofre = DOF2_GetInt(arqgang, "Cofre");
  619.         if (response)
  620.         {
  621.             if (listitem == 0) {
  622.             format(strdialog, sizeof strdialog, "{00FF00}Saldo: R$ %d,00", cofre);
  623.             ShowPlayerDialog(playerid, DLGGANG+20, DIALOG_STYLE_MSGBOX, "=== Saldo Cofre ===", strdialog, "Voltar", "Fechar");
  624.             }
  625.             if (listitem == 1) {
  626.             ShowPlayerDialog(playerid, DLGGANG+21, DIALOG_STYLE_INPUT, "=== Sacar ===", "Digite o valor que deseja sacar:", "Sacar", "Voltar");
  627.             }
  628.             if (listitem == 2) {
  629.             ShowPlayerDialog(playerid, DLGGANG+22, DIALOG_STYLE_INPUT, "=== Depositar ===", "Digite o valor que deseja depositar:", "Depositar", "Voltar");
  630.             }
  631.         }
  632.     }
  633.     if (dialogid == DLGGANG+20)
  634.     {
  635.         if (response)
  636.         {
  637.             ShowPlayerDialog(playerid, DLGGANG+19, DIALOG_STYLE_LIST, "=== Cofre ===", "Saldo\nSacar\nDepositar", "OK", "Cancelar");
  638.         }
  639.         else
  640.         {
  641.             return 1;
  642.         }
  643.     }
  644.     if (dialogid == DLGGANG+21)
  645.     {
  646.         new arqgang[512];
  647.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  648.         new cofre = DOF2_GetInt(arqgang, "Cofre");
  649.         if (response)
  650.         {
  651.             if(cofre < strval(inputtext)) return ShowPlayerDialog(playerid, DLGGANG+21, DIALOG_STYLE_INPUT, "=== Sacar ===", "{FF0000}Valor maior que o do cofre!\n{FFFFFF}Digite o valor que deseja sacar:", "Sacar", "Voltar");
  652.             GivePlayerMoney(playerid, strval(inputtext));
  653.             DOF2_SetInt(arqgang, "Cofre", cofre - strval(inputtext));
  654.             for(new i; i < MAX_PLAYERS; i++)
  655.             {
  656.                 if(ngang[i] == ngang[playerid])
  657.                 {
  658.                     format(string, sizeof string, "[GANG] %s sacou R$ %d,00 do cofre.", pnome(playerid), strval(inputtext));
  659.                     SendClientMessage(i, amarelo, string);
  660.                 }
  661.             }
  662.         }
  663.         else
  664.         {
  665.             ShowPlayerDialog(playerid, DLGGANG+19, DIALOG_STYLE_LIST, "=== Cofre ===", "Saldo\nSacar\nDepositar", "OK", "Cancelar");
  666.         }
  667.     }
  668.     if (dialogid == DLGGANG+22)
  669.     {
  670.         new arqgang[512];
  671.         format(arqgang, sizeof arqgang, "/gangs/%d.cok", ngang[playerid]);
  672.         new cofre = DOF2_GetInt(arqgang, "Cofre");
  673.         if (response)
  674.         {
  675.             if(GetPlayerMoney(playerid) < strval(inputtext)) return ShowPlayerDialog(playerid, DLGGANG+21, DIALOG_STYLE_INPUT, "=== Sacar ===", "{FF0000}Você não tem todo esse dinheiro!\n{FFFFFF}Digite o valor que deseja sacar:", "Sacar", "Voltar");
  676.             GivePlayerMoney(playerid, -strval(inputtext));
  677.             DOF2_SetInt(arqgang, "Cofre", cofre + strval(inputtext));
  678.             for(new i; i < MAX_PLAYERS; i++)
  679.             {
  680.                 if(ngang[i] == ngang[playerid])
  681.                 {
  682.                     format(string, sizeof string, "[GANG] %s depositou R$ %d,00 no cofre.", pnome(playerid), strval(inputtext));
  683.                     SendClientMessage(i, amarelo, string);
  684.                 }
  685.             }
  686.         }
  687.         else
  688.         {
  689.             ShowPlayerDialog(playerid, DLGGANG+19, DIALOG_STYLE_LIST, "=== Cofre ===", "Saldo\nSacar\nDepositar", "OK", "Cancelar");
  690.         }
  691.     }
  692.     if (dialogid == DLGGANG+24)
  693.     {
  694.         if (response)
  695.         {
  696.             if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, DLGGANG+24, DIALOG_STYLE_INPUT, "=== Relatório ===", "{FF0000}O relatório deve ter no mínimo 6 dígitos\n{FFFFFF}Digite algum texto para os players da gang:", "OK", "Cancelar");
  697.             for(new i; i < MAX_PLAYERS; i++)
  698.             {
  699.                 if(ngang[i] == ngang[playerid])
  700.                 {
  701.                     format(string, sizeof string, "[GANG] {FF0000}RELATÓRIO DE %s: {FFFFFF}%s", pnome(playerid), inputtext);
  702.                     SendClientMessage(i, amarelo, string);
  703.                 }
  704.             }
  705.         }
  706.         else
  707.         {
  708.             SendClientMessage(playerid, branco, "[GANG] Você cancelou o envio do relatório.");
  709.         }
  710.     }
  711.     return 1;
  712. }
  713.  
  714. stock pnome(playerid)
  715. {
  716.     GetPlayerName(playerid, nome, sizeof(nome));
  717.     return nome;
  718. }
  719.  
  720. stock CriarGang(playerid)
  721. {
  722.     new gcontagem = DOF2_GetInt("/gangs/contagem.txt", "contagem");
  723.     new str[512];
  724.     if(gcontagem >= 0)
  725.     {
  726.         gcontagem++;
  727.         format(string, sizeof string, "/gangs/%d.cok", gcontagem);
  728.         format(str, sizeof str, ARQUIVOCONF, pnome(playerid));
  729.         DOF2_CreateFile(string);
  730.         DOF2_SetString(string, "NomeGang", svnmgang);
  731.         DOF2_SetString(string, "CGang", cgang);
  732.         DOF2_SetString(string, "GLider", pnome(playerid));
  733.         DOF2_SetInt(string, "Cofre", 0);
  734.         DOF2_SetInt("/gangs/contagem.txt", "contagem", gcontagem);
  735.         DOF2_SetInt(str, "NivelGang", 3);
  736.         DOF2_SetInt(str, "NGang", gcontagem);
  737.         DOF2_SetBool(str, "Gang", true);
  738.         gang[playerid] = true;
  739.         nvgang[playerid] = 3;
  740.         SetPlayerColor(playerid, DOF2_GetHex(string, "CGang"));
  741.     }
  742.     if(gcontagem == 100) SendClientMessage(playerid, vermelho, "[GANG] Número máximo de gangs excedido");
  743.     return 1;
  744. }
  745.  
  746. mgang(playerid)
  747. {
  748.     static arm[500]; arm[0] = '\0';
  749.     static str[500];  str[0] = '\0';
  750.     static Nome[24]; Nome[0] = '0';
  751.     new count, arqgang[512], levelnm[512], nmgang[512];
  752.     for(new i=0;i<MAX_PLAYERS;i++) {
  753.         if(IsPlayerConnected(i)){
  754.             if(ngang[i] == ngang[playerid]) {
  755.                 GetPlayerName(i, Nome, sizeof(Nome));
  756.                 format(arquivo, sizeof(arquivo), ARQUIVOCONF, Nome);
  757.                 count++;
  758.                 nvgang[i] = DOF2_GetInt(arquivo, "NivelGang");
  759.                 ngang[i] = DOF2_GetInt(arquivo, "NGang");
  760.                 format(arqgang, sizeof(arqgang), "gangs/%d.cok", ngang[i]);
  761.                 nmgang = DOF2_GetString(arqgang, "NomeGang");
  762.                 if(nvgang[i]==1) levelnm="{00FFFF}Membro";
  763.                 if(nvgang[i]==2) levelnm="{87CEFA}SubLíder da Gang";
  764.                 if(nvgang[i]==3) levelnm="{00BFFF}Líder da Gang";
  765.                 format(str, sizeof(str),"{FFFFFF}Nome: %s (%i) - %s\n", Nome, i, levelnm);
  766.                 strcat(arm, str);
  767.             }
  768.         }
  769.     }
  770.     ShowPlayerDialog(playerid, DLGGANG+23, DIALOG_STYLE_MSGBOX, "===== Membros da Gang ======", arm, "OK", "");
  771.     return 1;
  772. }
  773.  
  774. public OnFilterScriptExit()
  775. {
  776.     DOF2_Exit();
  777.     return 1;
  778. }
Advertisement
Add Comment
Please, Sign In to add comment