Guest User

Untitled

a guest
Jul 22nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 45.09 KB | None | 0 0
  1. /*
  2. [=================================================================================]
  3.                     X   SISTEMA DE GANGS V2.0 - BY SUB_ZERO0_   X
  4.                     X          NÃO RETIRE OS CRÉDITOS!          X
  5.         X CRÉDITOS X
  6.     X PRINCIPAIS X
  7.  - Criação: Sub_Zero0_
  8.  
  9.     X FUNÇÕES X
  10.  - Split: Sa-mp wiki
  11.  - DOF2: Double-o-Seven
  12.  
  13.     X SECUNDÁRIOS X
  14.  - Idealização: Servidores de GangWar do SA-MP
  15.  - Testers: MentoS e BreaK
  16.  - Agradecimentos: Equipe de desenvolvimento do SA-MP e aos membros de seu fórum.
  17. [=================================================================================]
  18. */
  19. #include <a_samp>
  20. #include <dof2>
  21. #include <gsystem>
  22.  
  23. #define PlayersFile     "PlayersGang.sub"
  24. #define GangsFile       "Gangs.sub"
  25.  
  26. #define MAX_GANGS       256                 //Máxima quantidade de gangs
  27. #define RESERVED_NAME   "c_gangs"           //
  28. #define GANG_MEMBERS    100                 //Máxima quantidade de membros em 1 gang
  29. #define GANG_CONVIDADOS 5                   //Máxima quantidade de convidados em 1 gang
  30. #define STRING_MEMBROS  2048
  31.  
  32. //VOCE POSSUI O TERRITORY WAR?
  33. //#define TERRITORY_WAR                     //Tire as '//' se você tem o TerritoryWar
  34.  
  35. //GANGS DEFAULT
  36. #define CUSTO_GANG      -10000
  37. #define MIN_ATK         1000
  38. #define LEMA_DEFAULT    "Gang sem lema... :("
  39. #define COR_DEFAULT     0xCCCCCCFF
  40. #define GRANA_DEFAULT   0
  41. #define SKIN_DEFAULT    0
  42. #define BANCOL_DEFAULT  4
  43. #define POS_NV5         "Líder"
  44. #define POS_NV4         "Sub-Líder"
  45. #define POS_NV3         "Comandante"
  46. #define POS_NV2         "Membro"
  47. #define POS_NV1         "Recruta"
  48. #define POS_NV0         "Convidado"
  49.  
  50. //GANGS DEFAULT SAIR
  51. #define COR_SAIR        0xFFFFFFFF
  52. #define SKIN_SAIR       0
  53.  
  54. #define FILTERSCRIPT
  55.  
  56. new GangLevel[MAX_PLAYERS]=0, GangID[MAX_PLAYERS]=0;
  57. new TempID[MAX_PLAYERS], Convite[MAX_PLAYERS]=0;
  58. new BancoGG[MAX_GANGS];
  59. #if defined TERRITORY_WAR
  60. new TerrisGG[MAX_GANGS];
  61. #endif
  62.  
  63. stock CriarGang(playerid,gangid,inputtext[])
  64. {
  65.     new File:file = fopen(FormatGang(gangid),io_write);
  66.     fclose(file);
  67.     DOF2_SetString(FormatGang(gangid),"Nome",inputtext);
  68.     new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));
  69.     DOF2_SetString(FormatGang(gangid),"Lider",name);
  70.     DOF2_SetString(FormatGang(gangid),"Lema",LEMA_DEFAULT);
  71.     DOF2_SetHex(FormatGang(gangid),"Cor",COR_DEFAULT);
  72.     DOF2_SetInt(FormatGang(gangid),"Banco",GRANA_DEFAULT);
  73.     BancoGG[gangid]=GRANA_DEFAULT;
  74.     DOF2_SetInt(FormatGang(gangid),"BancoL",BANCOL_DEFAULT);
  75.     DOF2_SetInt(FormatGang(gangid),"Skin1",SKIN_DEFAULT);
  76.     DOF2_SetInt(FormatGang(gangid),"Skin2",SKIN_DEFAULT);
  77.     DOF2_SetInt(FormatGang(gangid),"Skin3",SKIN_DEFAULT);
  78.     DOF2_SetInt(FormatGang(gangid),"Skin4",SKIN_DEFAULT);
  79.     DOF2_SetInt(FormatGang(gangid),"Skin5",SKIN_DEFAULT);
  80.     #if defined TERRITORY_WAR
  81.     DOF2_SetInt(FormatGang(gangid),"Territorios",0);
  82.     TerrisGG[gangid]=GRANA_DEFAULT;
  83.     #endif
  84.     DOF2_SetString(FormatGang(gangid),"Membros","");
  85.     DOF2_SetInt(FormatGang(gangid),"NMembros",1);
  86.     MudarGangPlayer(playerid,gangid);
  87.     GangID[playerid]=gangid;
  88.     SetPVarInt(playerid,"GangID",gangid);
  89.     GangLevel[playerid]=5;
  90.     DOF2_SaveFile();
  91.     new num=DOF2_GetInt(GangF(GangsFile),RESERVED_NAME);
  92.     if(gangid==num) DOF2_SetInt(GangF(GangsFile),RESERVED_NAME,(num+1));
  93.     DOF2_SetInt(GangF(PlayersFile),name,gangid);
  94.     DOF2_SaveFile();
  95.     return 1;
  96. }
  97.  
  98. forward AtualizarBanco(gangid,quantianova);
  99. public AtualizarBanco(gangid,quantianova)
  100. {
  101.     DOF2_SetInt(FormatGang(gangid),"Banco",DOF2_GetInt(FormatGang(gangid),"Banco")+quantianova);
  102.     BancoGG[gangid]+=quantianova;
  103. }
  104.  
  105. stock AtualizarPlayerGang(playerid)
  106. {
  107.     new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));
  108.     if(!DOF2_IsSet(GangF(PlayersFile),name))
  109.     {
  110.         //foi kickado online
  111.         GangID[playerid]=0;
  112.         SetPVarInt(playerid,"GangID",0);
  113.         GangLevel[playerid]=0;
  114.         SetPlayerColor(playerid,COR_SAIR);
  115.         SetPlayerSkin(playerid,SKIN_SAIR);
  116.         SetPlayerTeam(playerid,playerid);
  117.         return 1;
  118.     }
  119.     new gangid = DOF2_GetInt(GangF(PlayersFile),name);
  120.     if(!fexist(FormatGang(gangid)))
  121.     {
  122.         //gang foi deletada
  123.         GangID[playerid]=0;
  124.         SetPVarInt(playerid,"GangID",0);
  125.         GangLevel[playerid]=0;
  126.         SetPlayerColor(playerid,COR_SAIR);
  127.         SetPlayerSkin(playerid,SKIN_SAIR);
  128.         SetPlayerTeam(playerid,playerid);
  129.     }
  130.     //tudo Ok
  131.     GangID[playerid]=gangid;
  132.     SetPVarInt(playerid,"GangID",gangid);
  133.     SetPlayerColor(playerid,DOF2_GetHex(FormatGang(gangid),"Cor"));
  134.     if(!strcmp(DOF2_GetString(FormatGang(gangid),"Lider"),name)) {SetPlayerSkin(playerid,DOF2_GetInt(FormatGang(gangid),"Skin5"));GangLevel[playerid]=5;}
  135.     else
  136.     {
  137.         new skinl[6];
  138.         format(skinl,6,"Skin%i",DOF2_GetInt(FormatGang(gangid),name));
  139.         GangLevel[playerid]=DOF2_GetInt(FormatGang(gangid),name);
  140.         SetPlayerSkin(playerid,DOF2_GetInt(FormatGang(gangid),skinl));
  141.     }
  142.     SetPlayerTeam(playerid,MIN_ATK+gangid);
  143.     return 1;
  144. }
  145.  
  146. stock CriarArqs()
  147. {
  148.     if(!fexist(GangF(PlayersFile)))
  149.     {
  150.         new File:pg = fopen(GangF(PlayersFile),io_write);
  151.         fclose(pg);
  152.     }
  153.     if(!fexist(GangF(GangsFile)))
  154.     {
  155.         new File:pg = fopen(GangF(GangsFile),io_write);
  156.         fclose(pg);
  157.         DOF2_SetInt(GangF(GangsFile),RESERVED_NAME,1);
  158.         DOF2_SaveFile();
  159.     }
  160.     return 1;
  161. }
  162.  
  163. #if defined TERRITORY_WAR
  164. forward AtualizarTerris(gangid,terris);
  165. public AtualizarTerris(gangid,terris)
  166. {
  167.     TerrisGG[gangid]=terris;
  168. }
  169. #endif
  170.  
  171. stock MudarGangPlayer(playerid,gangid)
  172. {
  173.     GangID[playerid]=gangid;
  174.     SetPVarInt(playerid,"GangID",gangid);
  175.     new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));
  176.     if(gangid==0) DOF2_Unset(GangF(PlayersFile),name);
  177.     else DOF2_SetInt(GangF(PlayersFile),name,gangid);
  178.     AtualizarPlayerGang(playerid);
  179.     DOF2_SaveFile();
  180.     return 1;
  181. }
  182.  
  183. stock TemGangF(name[])
  184. {
  185.     if(DOF2_IsSet(GangF(PlayersFile),name))//ele ta no arquivo?
  186.     {
  187.         new gangid = DOF2_GetInt(GangF(PlayersFile),name);
  188.         if(!fexist(FormatGang(gangid))) return 3;//naõ existe mais essa gang
  189.         else
  190.         {
  191.             if(DOF2_IsSet(FormatGang(gangid),name)||!strcmp(DOF2_GetString(FormatGang(gangid),"Lider"),name)) return 1;//esta tudo Ok
  192.             else
  193.             {
  194.                 DOF2_Unset(GangF(PlayersFile),name);
  195.                 DOF2_SaveFile();
  196.                 return 2;//ele foi kickado enquanto estava off
  197.             }
  198.         }
  199.     }
  200.     return 0;
  201. }
  202.    
  203. stock GetNewGangID()
  204. {
  205.     new i=DOF2_GetInt(GangF(GangsFile),RESERVED_NAME);
  206.     if(i>=MAX_GANGS)
  207.     {
  208.         for(new f=1;f<MAX_GANGS;f++)
  209.             if(!fexist(FormatGang(f))) {i=f;break;}
  210.     }
  211.     return i;
  212. }
  213.  
  214. #if defined FILTERSCRIPT
  215. public OnFilterScriptInit()
  216. {
  217.     print("\n===================================================");
  218.     print(" Carregando Gang System [0.3d]");
  219.     print(" Versao: 2.0.0 - By: Sub_Zero0_");
  220.     print(" ");
  221.     print(" Verificando a pasta /gangs/ ...");
  222.     CriarArqs();
  223.     print(" Pasta e arquivos básicos: OK");
  224.     print(" ");
  225.     print(" Carregado com sucesso!");
  226.     print("===================================================\n");
  227.     for(new gangid=1;gangid<MAX_GANGS;gangid++)
  228.         if(fexist(FormatGang(gangid)))
  229.             BancoGG[gangid]=DOF2_GetInt(FormatGang(gangid),"Banco");
  230.     //Anti-Descompiler
  231.     new a[][15] = { "?","0","?" };
  232.     #pragma unused a
  233.     new b[][15] = { "?","?" };
  234.     #pragma unused b
  235.     new c[][10] = { "?","?","?"};
  236.     #pragma unused c
  237.     //Fim
  238.     return 1;
  239. }
  240. public OnFilterScriptExit()
  241. {
  242.     print("\n==============================================");
  243.     print(" Descarregando Gang System [0.3d]");
  244.     print(" Versao: 2.0.0 - By: Sub_Zero0_");
  245.     print("==============================================\n");
  246.     return 1;
  247. }
  248. #else
  249. main()
  250. {
  251. }
  252. #endif
  253.  
  254. public OnPlayerConnect(playerid)
  255. {
  256.     GangID[playerid]=0;
  257.     SetPVarInt(playerid,"GangID",0);
  258.     GangLevel[playerid]=0;
  259.     return 1;
  260. }
  261.  
  262. public OnPlayerDisconnect(playerid, reason)
  263. {
  264.     GangID[playerid]=0;
  265.     SetPVarInt(playerid,"GangID",0);
  266.     GangLevel[playerid]=0;
  267.     return 1;
  268. }
  269.  
  270. public OnPlayerSpawn(playerid)
  271. {
  272.     new name[MAX_PLAYER_NAME];
  273.     GetPlayerName(playerid,name,sizeof(name));
  274.     new r=TemGangF(name);
  275.     if(r==1) {AtualizarPlayerGang(playerid);}
  276.     else if(r==0) {GangID[playerid]=0;SetPVarInt(playerid,"GangID",0);}
  277.     else if(r==2)
  278.     {
  279.         GangID[playerid]=0;
  280.         SetPVarInt(playerid,"GangID",0);
  281.         SendClientMessage(playerid,vermelho,"[GANG] Você foi kickado ou não está na gang.");
  282.     }
  283.     else if(r==3)
  284.     {
  285.         GangID[playerid]=0;
  286.         SetPVarInt(playerid,"GangID",0);
  287.         SendClientMessage(playerid,vermelho,"[GANG] A gang que você estava não existe mais.");
  288.     }
  289.     return 1;
  290. }
  291.  
  292. public OnPlayerText(playerid, text[])
  293. {
  294.     if(text[0]=='!'&&GangID[playerid]!=0)
  295.     {
  296.         new fm[128],fm2[128],resto[128];
  297.         if(GangLevel[playerid]>3&&text[1]=='!')
  298.         {
  299.             new nml[MAX_PLAYER_NAME];
  300.             GetPlayerName(playerid,nml,sizeof(nml));
  301.             strmid(resto,text,2,strlen(text),128);
  302.             if(GangLevel[playerid]==5)
  303.             {
  304.                 format(fm,128,"~b~%s: %s",POS_NV5,resto);
  305.                 format(fm2,128,"[GANG CHAT] %s %s: %s",POS_NV5,nml,resto);
  306.             }
  307.             else
  308.             {
  309.                 format(fm,128,"~b~%s: %s",POS_NV4,resto);
  310.                 format(fm2,128,"[GANG CHAT] %s %s: %s",POS_NV4,nml,resto);
  311.             }
  312.             for(new i=0;i<MAX_PLAYERS;i++)
  313.                 if(IsPlayerConnected(i))
  314.                     if(GangID[playerid]==GangID[i])
  315.                     {
  316.                         GameTextForPlayer(i,fm,5000,3);
  317.                         SendClientMessage(i,azul,fm2);
  318.                     }
  319.             return 0;
  320.         }
  321.         strmid(resto,text,1,strlen(text),128);
  322.         new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));
  323.         switch(GangLevel[playerid])
  324.         {
  325.             case 0:
  326.                 format(fm,128,"[GANG CHAT] (%s) %s: %s",POS_NV0,name,resto);
  327.             case 1:
  328.                 format(fm,128,"[GANG CHAT] (%s) %s: %s",POS_NV1,name,resto);
  329.             case 2:
  330.                 format(fm,128,"[GANG CHAT] (%s) %s: %s",POS_NV2,name,resto);
  331.             case 3:
  332.                 format(fm,128,"[GANG CHAT] (%s) %s: %s",POS_NV3,name,resto);
  333.             case 4:
  334.                 format(fm,128,"[GANG CHAT] (%s) %s: %s",POS_NV4,name,resto);
  335.             case 5:
  336.                 format(fm,128,"[GANG CHAT] (%s) %s: %s",POS_NV5,name,resto);
  337.         }
  338.         for(new i=0;i<MAX_PLAYERS;i++)
  339.             if(IsPlayerConnected(i))
  340.                 if(GangID[playerid]==GangID[i])
  341.                     SendClientMessage(i,azul,fm);
  342.         return 0;
  343.     }
  344.     return 1;
  345. }
  346.  
  347. public OnPlayerCommandText(playerid, cmdtext[])
  348. {
  349.     dcmd(gang,4,cmdtext);
  350.     if(!strcmp("/gangs",cmdtext,true))
  351.     {
  352.         new Gangs[MAX_GANGS],fmt[64];
  353.         SendClientMessage(playerid,laranja,"|- Gangs online no momento -|");
  354.         for(new i=0;i<MAX_PLAYERS;i++)
  355.             if(IsPlayerConnected(i))
  356.                 if(Gangs[GangID[i]]!=2&&GangID[i]!=0)
  357.                 {
  358.                     Gangs[GangID[i]]=2;
  359.                     format(fmt,64,"|- %s - ID: %d",DOF2_GetString(FormatGang(GangID[i]),"Nome"),GangID[i]);
  360.                     SendClientMessage(playerid,branco,fmt);
  361.                 }
  362.         return 1;
  363.     }
  364.     return 0;
  365. }
  366.  
  367. dcmd_gang(playerid,params[])
  368. {
  369.     if(!params[0]) {
  370.             ShowPlayerDialog(playerid,425,DIALOG_STYLE_LIST,"Comando /gang","Informações do /gang\nCriar\nConvite\nKick\nEntrar\nBanco\nSair\nInfo\nSkin\nCor\nLema\nMembros\nLevel\nAtk\nLider\nDeletar (Admin)","Ok","Sair");
  371.             return 1;
  372.     }
  373.     if(!strcmp(params[0],"criar",true)) {
  374.         if(GangID[playerid]!=0) return SendClientMessage(playerid,amarelo,"[GANG] Você já participa de uma gang, saia dela!");
  375.         if(GetNewGangID()>=MAX_GANGS) return SendClientMessage(playerid,amarelo,"[GANG] O máximo de gangs no servidor foi atingido!");
  376.         new str[128];format(str,128,"[GANG] Você deve ter R$%d para criar uma gang!",CUSTO_GANG*-1);
  377.         if(GetPlayerMoney(playerid)<CUSTO_GANG) return SendClientMessage(playerid,amarelo,str);
  378.         ShowPlayerDialog(playerid,400,DIALOG_STYLE_INPUT,"Gang - Criar","Digite o nome da gang a baixo:\nSerá cobrada uma taxa de $10000 para criar sua gang!","Criar","Sair");
  379.     }
  380.     if(!strcmp(params[0],"kick",true)) {
  381.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  382.         if(GangLevel[playerid]<3) return SendClientMessage(playerid,amarelo,"[GANG] Você deve ser comandante, sub-líder ou líder da gang para kickar outros membros!");
  383.         ShowPlayerDialog(playerid,401,DIALOG_STYLE_INPUT,"Gang - Kick","Digite o nome a baixo:","Kickar","Sair");
  384.     }
  385.     if(!strcmp(params[0],"convite",true)) {
  386.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  387.         if(GangLevel[playerid]<2) return SendClientMessage(playerid,amarelo,"[GANG] Você deve ser membro, comandante, sub-líder ou líder da gang para convidar pessoas!");
  388.         if(DOF2_GetInt(FormatGang(GangID[playerid]),"NMembros")>=GANG_MEMBERS) return SendClientMessage(playerid,amarelo,"[GANG] O limite máximo de jogadores em uma gang foi atingido!");
  389.         new ResultM;
  390.         for(new f=0;f<MAX_PLAYERS;f++) {
  391.             if(GangID[f]==GangID[playerid]&&GangLevel[f]==0) {
  392.                 ResultM++;
  393.             }
  394.         }
  395.         if(ResultM>=GANG_CONVIDADOS) return SendClientMessage(playerid,amarelo,"[GANG] O limite máximo de convidados em uma gang foi atingido!");
  396.         ShowPlayerDialog(playerid,422,DIALOG_STYLE_INPUT,"Gang - Convite","Digite o ID do jogador a baixo:","Convidar","Sair");
  397.     }
  398.     if(!strcmp(params[0],"info",true)) {
  399.         ShowPlayerDialog(playerid,402,DIALOG_STYLE_INPUT,"Gang - Info","Digite o ID da gang:","Ver","Sair");
  400.     }
  401.     if(!strcmp(params[0],"skin",true)) {
  402.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  403.         if(GangLevel[playerid]<4) return SendClientMessage(playerid,amarelo,"[GANG] Você deve ser no mínimo sub-líder da gang para mudar as skins!");
  404.         ShowPlayerDialog(playerid,403,DIALOG_STYLE_LIST,"Gang - Skin","Líder\nSub-Líder\nComandante\nMembro\nRecruta","Mudar","Sair");
  405.     }
  406.     if(!strcmp(params[0],"cor",true)) {
  407.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  408.         if(GangLevel[playerid]<5) return SendClientMessage(playerid,amarelo,"[GANG] Você deve ser o líder da gang para mudar a cor dela!");
  409.         ShowPlayerDialog(playerid,409,DIALOG_STYLE_INPUT,"Gang - Cor","Coloque o código da cor a baixo: (Apenas o do meio, 0x FFFF00 AA - Código: RRGGBB [RGB])","Mudar","Sair");
  410.     }
  411.     if(!strcmp(params[0],"lema",true)) {
  412.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  413.         if(GangLevel[playerid]<5) return SendClientMessage(playerid,amarelo,"[GANG] Você deve ser o líder da gang para mudar o lema da gang!");
  414.         ShowPlayerDialog(playerid,410,DIALOG_STYLE_INPUT,"Gang - Lema","Coloque o lema a baixo:","Mudar","Sair");
  415.     }
  416.     if(!strcmp(params[0],"level",true)) {
  417.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  418.         if(GangLevel[playerid]<3) return SendClientMessage(playerid,amarelo,"[GANG] Você deve ser no mínimo comandante da gang para mudar os leveis!");
  419.         ShowPlayerDialog(playerid,411,DIALOG_STYLE_INPUT,"Gang - Level","Coloque o ID do jogador a baixo:","Continuar","Sair");
  420.     }
  421.     if(!strcmp(params[0],"membros",true)) {
  422.         ShowPlayerDialog(playerid,420,DIALOG_STYLE_INPUT,"Gang - Membros","Digite o ID da gang:","Ver","Sair");
  423.     }
  424.     if(!strcmp(params[0],"atk",true)) {
  425.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  426.         if(GangLevel[playerid]<3) return SendClientMessage(playerid,amarelo,"[GANG] Você no mínimo deve ser comandante da gang para dar /gang  atk!");
  427.         for(new d=0;d<MAX_PLAYERS;d++) {
  428.             if(IsPlayerConnected(d))
  429.                 if(GangID[d]==GangID[playerid])
  430.                     SetPlayerTeam(d,MIN_ATK+GangID[playerid]);
  431.         }
  432.         SendClientMessage(playerid,amarelo,"[GANG] Anti-TK atualizado.");
  433.     }
  434.     if(!strcmp(params[0],"lider",true)) {
  435.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  436.         if(GangLevel[playerid]<5) return SendClientMessage(playerid,amarelo,"[GANG] Você deve ser o líder para utilizar este comando!");
  437.         ShowPlayerDialog(playerid,413,DIALOG_STYLE_INPUT,"Gang - Líder","Coloque o ID para quem você quer passar o cargo de Líder de sua gang.","Passar","Sair");
  438.     }
  439.     if(!strcmp(params[0],"entrar",true)) {
  440.         if(GangID[playerid]!=0) return SendClientMessage(playerid,amarelo,"[GANG] Você já está em uma gang!");
  441.         if(Convite[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não foi convidado a entrar em nenhuma gang!");
  442.         if(DOF2_GetInt(FormatGang(Convite[playerid]),"NMembros")>=GANG_MEMBERS) return SendClientMessage(playerid,amarelo,"[GANG] Esta gang atingiu o máximo de players!");
  443.         GangID[playerid]=Convite[playerid];
  444.         Convite[playerid]=0;
  445.         SetPVarInt(playerid,"GangID",Convite[playerid]);
  446.         SetPlayerTeam(playerid,MIN_ATK+GangID[playerid]);
  447.         SetPlayerColor(playerid,HexToInt(DOF2_GetString(FormatGang(GangID[playerid]),"Cor")));
  448.         new strmenn[128],nm1[25],strmenn2[128];
  449.         GetPlayerName(playerid,nm1,25);
  450.         format(strmenn,128,"[GANG] %s (ID:%d) entrou na gang!",nm1,playerid);
  451.         format(strmenn2,128,"[GANG] Você entrou na gang: %s!",DOF2_GetString(FormatGang(GangID[playerid]),"Nome"));
  452.         SendClientMessage(playerid,laranja,strmenn2);
  453.         for(new allgp=0;allgp<MAX_PLAYERS;allgp++)
  454.             if(IsPlayerConnected(allgp))
  455.                 if(GangID[playerid]==GangID[allgp])
  456.                     SendClientMessage(allgp,laranja,strmenn);
  457.     }
  458.     if(!strcmp(params[0],"sair",true)) {
  459.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  460.         new strmenn[128],nm1[MAX_PLAYER_NAME];
  461.         GetPlayerName(playerid,nm1,sizeof(nm1));
  462.         DOF2_Unset(GangF(PlayersFile),nm1);
  463.         new form[STRING_MEMBROS];
  464.         if(GangLevel[playerid]==5) {
  465.             DOF2_Unset(GangF(GangsFile),DOF2_GetString(FormatGang(GangID[playerid]),"Nome"));
  466.             DOF2_SaveFile();
  467.             #if defined TERRITORY_WAR
  468.             CallRemoteFunction("AtualizarGG","dds",GangID[playerid],1," ");
  469.             #endif
  470.             fremove(FormatGang(GangID[playerid]));
  471.             format(strmenn,128,"[GANG] O líder abandonou a gang e ela foi destruida!");
  472.             for(new allgp=0;allgp<MAX_PLAYERS;allgp++) {
  473.                 if(IsPlayerConnected(allgp))
  474.                     if(GangID[playerid]==GangID[allgp]) {
  475.                         SendClientMessage(allgp,laranja,strmenn);
  476.                         GetPlayerName(allgp,nm1,sizeof(nm1));
  477.                         DOF2_Unset(GangF(PlayersFile),nm1);
  478.                         GangID[allgp]=0;
  479.                         SetPVarInt(allgp,"GangID",0);
  480.                         MudarGangPlayer(allgp,0);
  481.                         GangLevel[allgp]=0;
  482.                     }
  483.             }
  484.             DOF2_SaveFile();
  485.             return 1;
  486.         }
  487.         if(GangLevel[playerid]>0)
  488.         {
  489.             strcat(form,DOF2_GetString(FormatGang(GangID[playerid]),"Membros"));
  490.             new pos=strfind(form,nm1);
  491.             strdel(form,pos-1,pos+strlen(nm1));
  492.             DOF2_SetString(FormatGang(GangID[playerid]),"Membros",form);
  493.             DOF2_SetInt(FormatGang(GangID[playerid]),"NMembros",DOF2_GetInt(FormatGang(GangID[playerid]),"NMembros")-1);
  494.             DOF2_SaveFile();
  495.         }
  496.         format(strmenn,128,"[GANG] Você saiu da gang: %s!",DOF2_GetString(FormatGang(GangID[playerid]),"Nome"));
  497.         SendClientMessage(playerid,laranja,strmenn);
  498.         format(strmenn,128,"[GANG] %s (ID:%d) saiu da gang.",nm1,playerid);
  499.         for(new allgp=0;allgp<MAX_PLAYERS;allgp++)
  500.             if(IsPlayerConnected(allgp))
  501.                 if(GangID[playerid]==GangID[allgp])
  502.                     SendClientMessage(allgp,laranja,strmenn);
  503.         MudarGangPlayer(playerid,0);
  504.         return 1;
  505.     }
  506.     if(!strcmp(params[0],"banco",true)) {
  507.         if(GangID[playerid]==0) return SendClientMessage(playerid,amarelo,"[GANG] Você não tem gang!");
  508.         if(DOF2_GetInt(FormatGang(GangID[playerid]),"BancoL")>GangLevel[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Seu nível na gang não é alto o suficiente para usar o banco!");
  509.         new IntId=GetPlayerInterior(playerid);
  510.         if(IntId!=16&&IntId!=17&&IntId!=18&&IntId!=4&&IntId!=6&&IntId!=10) return SendClientMessage(playerid,amarelo,"[GANG] Você não está em uma 24/7!");
  511.         ShowPlayerDialog(playerid,414,DIALOG_STYLE_LIST,"Gang - Banco","Saldo\nSacar\nDepositar\nBloquear banco para... (Líder)","Ok","Sair");
  512.     }
  513.     if(!strcmp(params[0],"deletar",true)) {
  514.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,amarelo,"[GANG] Você não é ADMIN RCON!");
  515.         ShowPlayerDialog(playerid,424,DIALOG_STYLE_INPUT,"Gang - Deletar","Digite o ID da gang para ser deletada:\nObs: Depois de clicado o 'Deletar' não há volta.","Deletar","Sair");
  516.     }
  517.     return 1;
  518. }
  519.  
  520. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  521. {
  522.     if(dialogid==400)
  523.     {
  524.         if(response)
  525.         {
  526.             new gangid=GetNewGangID();
  527.             if(!strcmp(inputtext,RESERVED_NAME)) return SendClientMessage(playerid,amarelo,"[GANG] Nome bloqueado para uso!");
  528.             if(gangid>=MAX_GANGS) return SendClientMessage(playerid,amarelo,"[GANG] O máximo de gangs no servidor foi atingido!");
  529.             GivePlayerMoney(playerid,CUSTO_GANG);
  530.             CriarGang(playerid,gangid,inputtext);
  531.         }
  532.         return 1;
  533.     }
  534.     if(dialogid==401)
  535.     {
  536.         if(response)
  537.         {
  538.             //kickar
  539.             new id=-1;
  540.             new form[STRING_MEMBROS];
  541.             new name[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME],fm[128];
  542.             GetPlayerName(playerid,name2,sizeof(name2));
  543.             if(!strcmp(name2,inputtext)) return SendClientMessage(playerid,amarelo,"[GANG] Você não pode se kickar!");
  544.             //checkagem online
  545.             for(new i=0;i<MAX_PLAYERS;i++)
  546.             {
  547.                 if(IsPlayerConnected(i))
  548.                 {
  549.                     GetPlayerName(i,name,sizeof(name));
  550.                     if(!strcmp(name,inputtext))
  551.                     {
  552.                         id=i;
  553.                         //Player ta online e com este nick
  554.                         if(GangID[id]!=GangID[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Este jogador não é de sua gang!");
  555.                         if(GangLevel[id]>=GangLevel[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Seu rank na gang deve ser maior do que de quem você quer kickar!");
  556.                         if(GangLevel[id]>0)
  557.                         {
  558.                             strcat(form,DOF2_GetString(FormatGang(GangID[playerid]),"Membros"));
  559.                             new pos=strfind(form,inputtext);
  560.                             strdel(form,pos-1,pos+strlen(inputtext));
  561.                             DOF2_SetString(FormatGang(GangID[playerid]),"Membros",form);
  562.                             DOF2_Unset(FormatGang(GangID[playerid]),name);
  563.                             DOF2_SetInt(FormatGang(GangID[playerid]),"NMembros",DOF2_GetInt(FormatGang(GangID[playerid]),"NMembros")-1);
  564.                             DOF2_SaveFile();
  565.                         }
  566.                         GangLevel[id]=0;
  567.                         format(fm,128,"[GANG CHAT] %s foi kickado da gang por %s.",name,name2);
  568.                         for(new e=0;e<MAX_PLAYERS;e++)
  569.                             if(IsPlayerConnected(e))
  570.                                 if(GangID[e]==GangID[playerid]&&e!=id)
  571.                                     SendClientMessage(e,azul,fm);
  572.                         format(fm,128,"[GANG] Você kickado da gang por %s.",name2);
  573.                         SendClientMessage(id,amarelo,fm);
  574.                         MudarGangPlayer(id,0);
  575.                         break;
  576.                     }
  577.                 }
  578.             }
  579.             //ta off?
  580.             if(id==-1)
  581.             {
  582.                 if(DOF2_IsSet(FormatGang(GangID[playerid]),inputtext))
  583.                 {
  584.                     DOF2_Unset(FormatGang(GangID[playerid]),inputtext);
  585.                     strcat(form,DOF2_GetString(FormatGang(GangID[playerid]),"Membros"));
  586.                     new pos=strfind(form,inputtext);
  587.                     strdel(form,pos-1,pos+strlen(inputtext));
  588.                     DOF2_SetString(FormatGang(GangID[playerid]),"Membros",form);
  589.                     DOF2_SaveFile();
  590.                     format(fm,128,"[GANG CHAT] %s foi kickado da gang por %s.",inputtext,name2);
  591.                     for(new e=0;e<MAX_PLAYERS;e++)
  592.                         if(IsPlayerConnected(e))
  593.                             if(GangID[e]==GangID[playerid]&&e!=id)
  594.                                 SendClientMessage(id,azul,fm);
  595.                 }
  596.                 else SendClientMessage(playerid,amarelo,"[GANG] Player não encontrado.");
  597.             }
  598.         }
  599.         return 1;
  600.     }
  601.     if(dialogid==403)
  602.     {
  603.         if(response)
  604.         {
  605.             if(listitem==0) {if(GangLevel[playerid]<5) return SendClientMessage(playerid,amarelo,"[GANG] Seu rank é menor do que o qual você quer editar!"); else ShowPlayerDialog(playerid,404,DIALOG_STYLE_INPUT,"Gang - Skin - Líder","Coloque o ID da skin do Líder:","Mudar","Sair");}
  606.             else if(listitem==1) {ShowPlayerDialog(playerid,405,DIALOG_STYLE_INPUT,"Gang - Skin - Sub-Líder","Coloque o ID da skin dos Sub-Líderes:","Mudar","Sair");}
  607.             else if(listitem==2) {ShowPlayerDialog(playerid,406,DIALOG_STYLE_INPUT,"Gang - Skin - Comandantes","Coloque o ID da skin dos Comandantes:","Mudar","Sair");}
  608.             else if(listitem==3) {ShowPlayerDialog(playerid,407,DIALOG_STYLE_INPUT,"Gang - Skin - Membros","Coloque o ID da skin dos Membros:","Mudar","Sair");}
  609.             else if(listitem==4) {ShowPlayerDialog(playerid,408,DIALOG_STYLE_INPUT,"Gang - Skin - Recrutas","Coloque o ID da skin dos Recrutas:","Mudar","Sair");}
  610.         }
  611.         return 1;
  612.     }
  613.     if(dialogid>403&&dialogid<409)
  614.     {
  615.         new skin = strval(inputtext);
  616.         if(!response) return 1;
  617.         if(skin < 0 || skin > 299) return SendClientMessage(playerid,amarelo,"[GANG] Skin inválida.");
  618.         switch(dialogid)
  619.         {
  620.             case 404:
  621.             {
  622.                 DOF2_SetInt(FormatGang(GangID[playerid]),"Skin5",skin);
  623.                 DOF2_SaveFile();
  624.                 SetPlayerSkin(playerid,skin);
  625.             }
  626.             case 405:
  627.             {
  628.                 DOF2_SetInt(FormatGang(GangID[playerid]),"Skin4",skin);
  629.                 DOF2_SaveFile();
  630.                 for(new i=0;i<MAX_PLAYERS;i++)
  631.                     if(IsPlayerConnected(i))
  632.                         if(GangID[i]==GangID[playerid]&&GangLevel[i]==4)
  633.                             SetPlayerSkin(i,skin);
  634.             }
  635.             case 406:
  636.             {
  637.                 DOF2_SetInt(FormatGang(GangID[playerid]),"Skin3",skin);
  638.                 DOF2_SaveFile();
  639.                 for(new i=0;i<MAX_PLAYERS;i++)
  640.                     if(IsPlayerConnected(i))
  641.                         if(GangID[i]==GangID[playerid]&&GangLevel[i]==3)
  642.                             SetPlayerSkin(i,skin);
  643.             }
  644.             case 407:
  645.             {
  646.                 DOF2_SetInt(FormatGang(GangID[playerid]),"Skin2",skin);
  647.                 DOF2_SaveFile();
  648.                 for(new i=0;i<MAX_PLAYERS;i++)
  649.                     if(IsPlayerConnected(i))
  650.                         if(GangID[i]==GangID[playerid]&&GangLevel[i]==2)
  651.                             SetPlayerSkin(i,skin);
  652.             }
  653.             case 408:
  654.             {
  655.                 DOF2_SetInt(FormatGang(GangID[playerid]),"Skin1",skin);
  656.                 DOF2_SaveFile();
  657.                 for(new i=0;i<MAX_PLAYERS;i++)
  658.                     if(IsPlayerConnected(i))
  659.                         if(GangID[i]==GangID[playerid]&&GangLevel[i]==1)
  660.                             SetPlayerSkin(i,skin);
  661.             }
  662.         }
  663.     }
  664.     if(dialogid==409)
  665.     {
  666.         if(response)
  667.         {
  668.             if(strlen(inputtext)!=6) return SendClientMessage(playerid,amarelo,"[GANG] Cor inválida!");
  669.             new fm2[11];
  670.             format(fm2,11,"0x%sFF",inputtext);
  671.             #if defined TERRITORY_WAR
  672.             new fm3[11];
  673.             format(fm3,11,"0x%s66",inputtext);
  674.             CallRemoteFunction("AtualizarGG","dds",GangID[playerid],0,fm3);
  675.             #endif
  676.             DOF2_SetHex(FormatGang(GangID[playerid]),"Cor",HexToInt(fm2));
  677.             DOF2_SaveFile();
  678.             for(new i=0;i<MAX_PLAYERS;i++)
  679.                 if(IsPlayerConnected(i))
  680.                     if(GangID[playerid]==GangID[i])
  681.                     {
  682.                         SetPlayerColor(i,HexToInt(fm2));
  683.                         SendClientMessage(i,HexToInt(fm2),"[GANG] A cor da gang foi mudada para a cor desta mensagem.");
  684.                     }
  685.         }
  686.         return 1;
  687.     }
  688.     if(dialogid==410)
  689.     {
  690.         if(response)
  691.         {
  692.             if(strlen(inputtext)>70) return SendClientMessage(playerid,amarelo,"[GANG] Lema muito grande!");
  693.             new fm2[128];format(fm2,128,"[GANG] NOVO LEMA: %s",inputtext);
  694.             DOF2_SetString(FormatGang(GangID[playerid]),"Lema",inputtext);
  695.             DOF2_SaveFile();
  696.             for(new i=0;i<MAX_PLAYERS;i++)
  697.                 if(IsPlayerConnected(i))
  698.                     if(GangID[playerid]==GangID[i])
  699.                         SendClientMessage(i,azul,fm2);
  700.         }
  701.         return 1;
  702.     }
  703.     if(dialogid==411)
  704.     {
  705.         if(response)
  706.         {
  707.             new id = strval(inputtext);
  708.             if(!IsPlayerConnected(id)) return SendClientMessage(playerid,amarelo,"[GANG] Este ID não está online!");
  709.             if(GangID[id]!=GangID[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Este player não é de sua gang!");
  710.             new nm[MAX_PLAYER_NAME];GetPlayerName(id,nm,sizeof(nm));
  711.             new fm[50];format(fm,50,"Coloque o nível: (Rank atual é %i)",GangLevel[id]);
  712.             TempID[playerid]=id;
  713.             ShowPlayerDialog(playerid,412,DIALOG_STYLE_INPUT,"Gang - Level",fm,"Continuar","Sair");
  714.         }
  715.         return 1;
  716.     }
  717.     if(dialogid==412)
  718.     {
  719.         if(response)
  720.         {
  721.             new lvlnovo = strval(inputtext);
  722.             new id = TempID[playerid];
  723.             if(!IsPlayerConnected(id)) return SendClientMessage(playerid,amarelo,"[GANG] Este ID não está online!");
  724.             if(GangID[id]!=GangID[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Este player não é de sua gang!");
  725.             if(lvlnovo==GangLevel[id]) return SendClientMessage(playerid,amarelo,"[GANG] Este player já está nesse level!");
  726.             if(lvlnovo>=GangLevel[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Você só pode setar ranks menores que o seu!");
  727.             if(lvlnovo>=GangLevel[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Você só pode setar ranks menores que o seu!");
  728.             if(GangLevel[id]>=GangLevel[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Você só pode setar ranks menores que o seu!");
  729.             new nm[MAX_PLAYER_NAME];GetPlayerName(id,nm,sizeof(nm));
  730.             if(GangLevel[id]==0)
  731.             {
  732.                 DOF2_SetInt(FormatGang(GangID[playerid]),nm,lvlnovo);
  733.                 DOF2_SetInt(GangF(PlayersFile),nm,GangID[playerid]);
  734.                 DOF2_SetInt(FormatGang(GangID[playerid]),"NMembros",DOF2_GetInt(FormatGang(GangID[playerid]),"NMembros")+1);
  735.                 new fm[STRING_MEMBROS];format(fm,sizeof(fm),"%s,%s",DOF2_GetString(FormatGang(GangID[playerid]),"Membros"),nm);
  736.                 DOF2_SetString(FormatGang(GangID[playerid]),"Membros",fm);
  737.                 DOF2_SaveFile();
  738.                 GangLevel[id]=lvlnovo;
  739.             }
  740.             else
  741.             {
  742.                 new lvl = DOF2_GetInt(FormatGang(GangID[playerid]),nm);
  743.                 if(GangLevel[playerid]<=lvl) return SendClientMessage(playerid,amarelo,"[GANG] Seu rank deve ser maior do que de quem você quer mudar!");
  744.                 if(lvlnovo>0)
  745.                 {
  746.                     DOF2_SetInt(FormatGang(GangID[playerid]),nm,lvlnovo);
  747.                     DOF2_SaveFile();
  748.                 }
  749.                 else
  750.                 {
  751.                     DOF2_Unset(FormatGang(GangID[playerid]),nm);
  752.                     DOF2_Unset(GangF(PlayersFile),nm);
  753.                     DOF2_SetInt(FormatGang(GangID[playerid]),"NMembros",DOF2_GetInt(FormatGang(GangID[playerid]),"NMembros")-1);
  754.                     new form[STRING_MEMBROS];
  755.                     strcat(form,DOF2_GetString(FormatGang(GangID[playerid]),"Membros"));
  756.                     new pos=strfind(form,nm);
  757.                     strdel(form,pos-1,pos+strlen(nm));
  758.                     DOF2_SetString(FormatGang(GangID[playerid]),"Membros",form);
  759.                     DOF2_SaveFile();
  760.                 }
  761.             }
  762.             new nm1[MAX_PLAYER_NAME];GetPlayerName(playerid,nm1,sizeof(nm1));
  763.             new nomelvl[15], lvlvelho[15];
  764.             switch(lvlnovo)
  765.             {
  766.                 case 0: nomelvl=POS_NV0;
  767.                 case 1: nomelvl=POS_NV1;
  768.                 case 2: nomelvl=POS_NV2;
  769.                 case 3: nomelvl=POS_NV3;
  770.                 case 4: nomelvl=POS_NV4;
  771.             }
  772.             switch(GangLevel[playerid])
  773.             {
  774.                 case 3: lvlvelho=POS_NV3;
  775.                 case 4: lvlvelho=POS_NV4;
  776.                 case 5: lvlvelho=POS_NV5;
  777.             }
  778.             new fm[128];format(fm,128,"[GANG] O %s %s mudou o rank de %s para %s.",lvlvelho,nm1,nm,nomelvl);
  779.             for(new i=0;i<MAX_PLAYERS;i++)
  780.                 if(IsPlayerConnected(i))
  781.                     if(GangID[playerid]==GangID[i])
  782.                         SendClientMessage(i,azul,fm);
  783.             for(new idp=0;idp<MAX_PLAYERS;idp++)
  784.                 if(IsPlayerConnected(idp))
  785.                 {
  786.                     GetPlayerName(idp,nm1,sizeof(nm1));
  787.                     if(!strcmp(nm1,nm))
  788.                     {
  789.                         GangLevel[idp]=lvlnovo;
  790.                         break;
  791.                     }
  792.                 }
  793.         }
  794.         return 1;
  795.     }
  796.     if(dialogid==413)
  797.     {
  798.         if(response)
  799.         {
  800.             new id = strval(inputtext);
  801.             if(!IsPlayerConnected(id)) return SendClientMessage(playerid,amarelo,"[GANG] ID não conectado!");
  802.             if(GangID[playerid]!=GangID[id]) return SendClientMessage(playerid,amarelo,"[GANG] Este ID é de uma gang diferente!");
  803.             if(GangLevel[id]!=4) return SendClientMessage(playerid,amarelo,"[GANG] Você só pode dar Líder a um Sub-Líder!");
  804.             GangLevel[playerid]=4;
  805.             GangLevel[id]=5;
  806.             new name1[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME];
  807.             GetPlayerName(playerid,name1,sizeof(name1));GetPlayerName(id,name2,sizeof(name2));
  808.             DOF2_SetString(FormatGang(GangID[playerid]),"Lider",name2);
  809.             DOF2_SetInt(FormatGang(GangID[playerid]),name1,4);
  810.             DOF2_Unset(FormatGang(GangID[playerid]),name2);
  811.             new form[STRING_MEMBROS];
  812.             strcat(form,DOF2_GetString(FormatGang(GangID[playerid]),"Membros"));
  813.             new pos=strfind(form,name2);
  814.             strdel(form,pos-1,pos+strlen(name2));
  815.             DOF2_SetString(FormatGang(GangID[playerid]),"Membros",form);
  816.             format(form,sizeof(form),"%s,%s",DOF2_GetString(FormatGang(GangID[playerid]),"Membros"),name1);
  817.             DOF2_SetString(FormatGang(GangID[playerid]),"Membros",form);
  818.             DOF2_SaveFile();
  819.             new msg[128];format(msg,128,"[GANG] A liderança da gang foi trocada de %s(ID:%d) para %s(ID:%d)!",name1,playerid,name2,id);
  820.             for(new i=0;i<MAX_PLAYERS;i++)
  821.                 if(IsPlayerConnected(i))
  822.                     if(GangID[i]==GangID[playerid])
  823.                         SendClientMessage(i,azul,msg);
  824.         }
  825.         return 1;
  826.     }
  827.     if(dialogid==414)
  828.     {
  829.         if(response)
  830.         {
  831.             //saldo, sacar, depositar, nv
  832.             if(listitem==0)
  833.             {
  834.                 new s[64];format(s,64,"Sua gang possui no banco:\nR$%d",BancoGG[GangID[playerid]]);
  835.                 ShowPlayerDialog(playerid,415,DIALOG_STYLE_MSGBOX,"Gang - Banco - Saldo",s,"Ok","");
  836.             }
  837.             else if(listitem==1) ShowPlayerDialog(playerid,416,DIALOG_STYLE_INPUT,"Gang - Banco - Sacar","Digite a quantia que deseja sacar:","Sacar","Sair");
  838.             else if(listitem==2) ShowPlayerDialog(playerid,417,DIALOG_STYLE_INPUT,"Gang - Banco - Depositar","Digite a quantia que deseja depositar:","Depositar","Sair");
  839.             else
  840.             {
  841.                 if(GangLevel[playerid]!=5) return SendClientMessage(playerid,amarelo,"[GANG] Função apenas para líderes de gangs!");
  842.                 new msg[128];format(msg,128,"%s\n%s\n%s\n%s\n%s\n",POS_NV1,POS_NV2,POS_NV3,POS_NV4,POS_NV5);
  843.                 ShowPlayerDialog(playerid,418,DIALOG_STYLE_LIST,"Gang - Banco - Bloquear banco para...",msg,"Depositar","Sair");
  844.             }
  845.         }
  846.         return 1;
  847.     }
  848.     if(dialogid==416)
  849.     {
  850.         if(response)
  851.         {
  852.             new money = strval(inputtext);
  853.             if(money<0) return SendClientMessage(playerid,amarelo,"[GANG] Quantia negativa!");
  854.             new bancogang=BancoGG[GangID[playerid]];
  855.             if(bancogang<money) return SendClientMessage(playerid,amarelo,"[GANG] O banco de sua gang não possui esse dinheiro!");
  856.             GivePlayerMoney(playerid,money);
  857.             BancoGG[GangID[playerid]]-=money;
  858.             DOF2_SetInt(FormatGang(GangID[playerid]),"Banco",BancoGG[GangID[playerid]]);
  859.             DOF2_SaveFile();
  860.             new nome[MAX_PLAYER_NAME],msg[128];
  861.             GetPlayerName(playerid,nome,sizeof(nome));
  862.             switch(GangLevel[playerid])
  863.             {
  864.                 case 1: format(msg,128,"[GANG] O %s %s sacou R$%d do banco da gang.",POS_NV1,nome,money);
  865.                 case 2: format(msg,128,"[GANG] O %s %s sacou R$%d do banco da gang.",POS_NV2,nome,money);
  866.                 case 3: format(msg,128,"[GANG] O %s %s sacou R$%d do banco da gang.",POS_NV3,nome,money);
  867.                 case 4: format(msg,128,"[GANG] O %s %s sacou R$%d do banco da gang.",POS_NV4,nome,money);
  868.                 case 5: format(msg,128,"[GANG] O %s %s sacou R$%d do banco da gang.",POS_NV5,nome,money);
  869.             }
  870.             for(new i=0;i<MAX_PLAYERS;i++)
  871.                 if(IsPlayerConnected(i))
  872.                     if(GangID[i]==GangID[playerid])
  873.                         SendClientMessage(i,azul,msg);
  874.         }
  875.         return 1;
  876.     }
  877.     if(dialogid==417)
  878.     {
  879.         if(response)
  880.         {
  881.             new money = strval(inputtext);
  882.             if(money<0) return SendClientMessage(playerid,amarelo,"[GANG] Quantia negativa!");
  883.             if(GetPlayerMoney(playerid)<money) return SendClientMessage(playerid,amarelo,"[GANG] Você não possui esse dinheiro!");
  884.             GivePlayerMoney(playerid,-(money));
  885.             BancoGG[GangID[playerid]]+=money;
  886.             DOF2_SetInt(FormatGang(GangID[playerid]),"Banco",BancoGG[GangID[playerid]]);
  887.             DOF2_SaveFile();
  888.             new nome[MAX_PLAYER_NAME],msg[128];
  889.             GetPlayerName(playerid,nome,sizeof(nome));
  890.             switch(GangLevel[playerid])
  891.             {
  892.                 case 1: format(msg,128,"[GANG] O %s %s depositou R$%d no banco da gang.",POS_NV1,nome,money);
  893.                 case 2: format(msg,128,"[GANG] O %s %s depositou R$%d no banco da gang.",POS_NV2,nome,money);
  894.                 case 3: format(msg,128,"[GANG] O %s %s depositou R$%d no banco da gang.",POS_NV3,nome,money);
  895.                 case 4: format(msg,128,"[GANG] O %s %s depositou R$%d no banco da gang.",POS_NV4,nome,money);
  896.                 case 5: format(msg,128,"[GANG] O %s %s depositou R$%d no banco da gang.",POS_NV5,nome,money);
  897.             }
  898.             for(new i=0;i<MAX_PLAYERS;i++)
  899.                 if(IsPlayerConnected(i))
  900.                     if(GangID[i]==GangID[playerid])
  901.                         SendClientMessage(i,azul,msg);
  902.         }
  903.         return 1;
  904.     }
  905.     if(dialogid==418)
  906.     {
  907.         if(response)
  908.         {
  909.             new nvmin[20];
  910.             switch(listitem)
  911.             {
  912.                 case 0: nvmin=POS_NV1;
  913.                 case 1: nvmin=POS_NV2;
  914.                 case 2: nvmin=POS_NV3;
  915.                 case 3: nvmin=POS_NV4;
  916.                 case 4: nvmin=POS_NV5;
  917.             }
  918.             DOF2_SetInt(FormatGang(GangID[playerid]),"BancoL",listitem+2);
  919.             DOF2_SaveFile();
  920.             new nome[MAX_PLAYER_NAME],msg[128];
  921.             GetPlayerName(playerid,nome,sizeof(nome));
  922.             format(msg,128,"[GANG] O %s %s mudou o nível mínimo para usar o banco para: %s",POS_NV5,nome,nvmin);
  923.             for(new i=0;i<MAX_PLAYERS;i++)
  924.                 if(IsPlayerConnected(i))
  925.                     if(GangID[i]==GangID[playerid])
  926.                         SendClientMessage(i,azul,msg);
  927.         }
  928.         return 1;
  929.     }
  930.     if(dialogid==402)
  931.     {
  932.         if(response)
  933.         {
  934.             new gangid=strval(inputtext);
  935.             if(strlen(inputtext)==0)
  936.                 if(GangID[playerid]!=0)
  937.                     gangid = GangID[playerid];
  938.                 else return SendClientMessage(playerid,amarelo,"[GANG] Gang não encontrada!");
  939.             else
  940.                 if(!fexist(FormatGang(gangid))) return SendClientMessage(playerid,amarelo,"[GANG] Gang não encontrada!");
  941.             new fm[256],name22[MAX_PLAYER_NAME],temp[64];
  942.             #if defined TERRITORY_WAR
  943.             format(fm,256,"Nome: %s (ID:%d)\nLíder: %s\nTerritórios: %d\nMembros: %d\n\nLema: %s\n\nMembros online:",DOF2_GetString(FormatGang(gangid),"Nome"),gangid,DOF2_GetString(FormatGang(gangid),"Lider"),TerrisGG[gangid],DOF2_GetInt(FormatGang(gangid),"NMembros"),DOF2_GetString(FormatGang(gangid),"Lema"));
  944.             #else
  945.             format(fm,256,"Nome: %s (ID:%d)\nLíder: %s\nMembros: %d\n\nLema: %s\n\nMembros online:",DOF2_GetString(FormatGang(gangid),"Nome"),gangid,DOF2_GetString(FormatGang(gangid),"Lider"),DOF2_GetInt(FormatGang(gangid),"NMembros"),DOF2_GetString(FormatGang(gangid),"Lema"));
  946.             #endif
  947.             for(new e=5;e>-1;e--)
  948.                 for(new i=0;i<MAX_PLAYERS;i++)
  949.                     if(IsPlayerConnected(i))
  950.                         if(GangID[i]==gangid)
  951.                             if(GangLevel[i]==e)
  952.                             {
  953.                                 GetPlayerName(i,name22,sizeof(name22));
  954.                                 switch(GangLevel[i])
  955.                                 {
  956.                                     case 0: {format(temp,64,"\n%s %s",POS_NV0,name22);}
  957.                                     case 1: {format(temp,64,"\n%s %s",POS_NV1,name22);}
  958.                                     case 2: {format(temp,64,"\n%s %s",POS_NV2,name22);}
  959.                                     case 3: {format(temp,64,"\n%s %s",POS_NV3,name22);}
  960.                                     case 4: {format(temp,64,"\n%s %s",POS_NV4,name22);}
  961.                                     case 5: {format(temp,64,"\n%s %s",POS_NV5,name22);}
  962.                                 }
  963.                                 strcat(fm,temp);
  964.                             }
  965.             strcat(fm,"\n\nPara saber todos os membros: /gang membros");
  966.             ShowPlayerDialog(playerid,419,DIALOG_STYLE_MSGBOX,"Gang - Info",fm,"Ok","");
  967.         }
  968.         return 1;
  969.     }
  970.     if(dialogid==420)
  971.     {
  972.         if(response)
  973.         {
  974.             new gangid=strval(inputtext);
  975.             if(strlen(inputtext)==0)
  976.                 if(GangID[playerid]!=0)
  977.                     gangid = GangID[playerid];
  978.                 else return SendClientMessage(playerid,amarelo,"[GANG] Gang não encontrada!");
  979.             else
  980.                 if(!fexist(FormatGang(gangid))) return SendClientMessage(playerid,amarelo,"[GANG] Gang não encontrada!");
  981.             new novo[40],lmembros[STRING_MEMBROS],nome[MAX_PLAYER_NAME];
  982.             format(novo,40,"\n(%s) %s",POS_NV5,DOF2_GetString(FormatGang(gangid),"Lider"));
  983.             strcat(lmembros,novo);
  984.             if(strlen(DOF2_GetString(FormatGang(gangid),"Membros"))!=0)
  985.             {
  986.                 new membros[GANG_MEMBERS][MAX_PLAYER_NAME];
  987.                 split(DOF2_GetString(FormatGang(gangid),"Membros"),membros,',');
  988.                 new nvl;
  989.                 for(new nv=4;nv>0;nv--)
  990.                     for(new e=0;e<GANG_MEMBERS;e++)
  991.                         if(strlen(membros[e])!=0){
  992.                         {
  993.                             nvl=DOF2_GetInt(FormatGang(gangid),membros[e]);
  994.                             if(nvl==nv)
  995.                             {
  996.                                 switch(nvl)
  997.                                 {
  998.                                     case 1: format(novo,40,"\n(%s) %s",POS_NV1,membros[e]);
  999.                                     case 2: format(novo,40,"\n(%s) %s",POS_NV2,membros[e]);
  1000.                                     case 3: format(novo,40,"\n(%s) %s",POS_NV3,membros[e]);
  1001.                                     case 4: format(novo,40,"\n(%s) %s",POS_NV4,membros[e]);
  1002.                                 }
  1003.                                 strcat(lmembros,novo);
  1004.                             }
  1005.                         }
  1006.                     }
  1007.             }
  1008.             for(new i=0;i<MAX_PLAYERS;i++)
  1009.                 if(IsPlayerConnected(i))
  1010.                     if(gangid==GangID[i])
  1011.                         if(GangLevel[i]==0) {
  1012.                             GetPlayerName(i,nome,sizeof(nome));
  1013.                             format(novo,40,"\n(%s) %s",POS_NV0,nome);
  1014.                             strcat(lmembros,novo);
  1015.                         }
  1016.             ShowPlayerDialog(playerid,421,DIALOG_STYLE_MSGBOX,"Gang - Membros",lmembros,"Ok","");
  1017.         }
  1018.         return 1;
  1019.     }
  1020.     if(dialogid==422)
  1021.     {
  1022.         if(response)
  1023.         {
  1024.             new id = strval(inputtext);
  1025.             if(!IsPlayerConnected(id)) return SendClientMessage(playerid,amarelo,"[GANG] Este ID não está online!");
  1026.             if(Convite[id]==GangID[playerid]) return SendClientMessage(playerid,amarelo,"[GANG] Este ID já está com um convite para esta gang!");
  1027.             if(GangID[id]!=0) return SendClientMessage(playerid,amarelo,"[GANG] Este player já está em uma gang!");
  1028.             if(playerid==id) return SendClientMessage(playerid,amarelo,"[GANG] Este é seu ID!");
  1029.             Convite[id]=GangID[playerid];
  1030.             new nomep[MAX_PLAYER_NAME];GetPlayerName(playerid,nomep,sizeof(nome));
  1031.             new nome2[MAX_PLAYER_NAME];GetPlayerName(id,nome2,sizeof(nome2));
  1032.             new fm[128];
  1033.             switch(GangLevel[playerid])
  1034.             {
  1035.                 case 2: format(fm,128,"[GANG] (%s) %s (ID:%d) convidou %s (ID:%d) para entrar na gang.",POS_NV2,nomep,playerid,nome2,id);
  1036.                 case 3: format(fm,128,"[GANG] (%s) %s (ID:%d) convidou %s (ID:%d) para entrar na gang.",POS_NV3,nomep,playerid,nome2,id);
  1037.                 case 4: format(fm,128,"[GANG] (%s) %s (ID:%d) convidou %s (ID:%d) para entrar na gang.",POS_NV4,nomep,playerid,nome2,id);
  1038.                 case 5: format(fm,128,"[GANG] (%s) %s (ID:%d) convidou %s (ID:%d) para entrar na gang.",POS_NV5,nomep,playerid,nome2,id);
  1039.             }
  1040.             for(new i=0;i<MAX_PLAYERS;i++)
  1041.                 if(IsPlayerConnected(i))
  1042.                     if(GangID[playerid]==GangID[i])
  1043.                         SendClientMessage(i,verde,fm);
  1044.             format(fm,128,"[GANG] %s (ID:%d) convidou você para entrar na gang %s (ID:%d), para aceitar: /gang entrar",nomep,playerid,DOF2_GetString(FormatGang(GangID[playerid]),"Nome"),GangID[playerid]);
  1045.             SendClientMessage(id,verde,fm);
  1046.         }
  1047.         return 1;
  1048.     }
  1049.     if(dialogid==424)
  1050.     {
  1051.         if(response)
  1052.         {
  1053.             if(strlen(inputtext)==0) return SendClientMessage(playerid,amarelo,"[GANG] Digite o ID!");
  1054.             new id=strval(inputtext);
  1055.             if(!fexist(FormatGang(id))) return SendClientMessage(playerid,amarelo,"[GANG] Não existe gang com este ID!");
  1056.             new strmenn[128],nm1[MAX_PLAYER_NAME];
  1057.             GetPlayerName(playerid,nm1,sizeof(nm1));
  1058.             DOF2_Unset(GangF(GangsFile),DOF2_GetString(FormatGang(id),"Nome"));
  1059.             DOF2_SaveFile();
  1060.             #if defined TERRITORY_WAR
  1061.             CallRemoteFunction("AtualizarGG","dds",id,1," ");
  1062.             #endif
  1063.             format(strmenn,128,"[GANG] O Admin %s deletou a gang %s.",nm1,DOF2_GetString(FormatGang(id),"Nome"));
  1064.             SendClientMessageToAll(vermelho,strmenn);
  1065.             fremove(FormatGang(id));
  1066.             for(new allgp=0;allgp<MAX_PLAYERS;allgp++) {
  1067.                 if(IsPlayerConnected(allgp))
  1068.                     if(id==GangID[allgp]) {
  1069.                         GetPlayerName(allgp,nm1,sizeof(nm1));
  1070.                         DOF2_Unset(GangF(PlayersFile),nm1);
  1071.                         GangID[allgp]=0;
  1072.                         SetPVarInt(allgp,"GangID",0);
  1073.                         MudarGangPlayer(allgp,0);
  1074.                         GangLevel[allgp]=0;
  1075.                     }
  1076.             }
  1077.             DOF2_SaveFile();
  1078.         }
  1079.         return 1;
  1080.     }
  1081.     if(dialogid==425)
  1082.     {
  1083.         if(response)
  1084.         {
  1085.             switch(listitem)
  1086.             {
  1087.                 case 0:
  1088.                 {
  1089.                     new tst[800];
  1090.                     format(tst,800,"{FF4500}FORMA RÁPIDA: /gang [Criar/Convite/Kick/Entrar/Banco/Sair/Info/Skin/Cor/Lema/Membros/Level/Atk/Lider/Deletar]\n\n{FFFFFF}Função de cada comando:\n - Criar: Cria sua gang.\n - Convite: Convida um jogador para sua gang.\n - Kick: Kicka um player da sua gang.\n - Entrar: Aceita o convite de uma gang.\n - Banco: Banco da gang.\n - Sair: Sai de sua gang atual.\n - Info: Mostra as informações de uma gang.");
  1091.                     strcat(tst,"\n - Skin: Seta as skins dos membros.\n - Cor: Seta a cor da gang e seus membros.\n - Lema: Seta o lema da gang.\n - Membros: Vê os membros de uma gang.\n - Level: Seta o level de um membro na gang.\n - Atk: Atualiza o anti-team kill da gang.\n - Lider: Muda o Líder da gang.\n - Deletar(Admin): Deleta gangs.\n\n{FFFF00}Leveis na Gang:");
  1092.                     new nvs[128];format(nvs,128," 0- %s / 1- %s / 2- %s / 3- %s / 4- %s / 5- %s",POS_NV0,POS_NV1,POS_NV2,POS_NV3,POS_NV4,POS_NV5);
  1093.                     strcat(tst,nvs);
  1094.                     ShowPlayerDialog(playerid,423,DIALOG_STYLE_MSGBOX,"Informações do /gang",tst,"Ok","");
  1095.                 }
  1096.                 case 1: {dcmd_gang(playerid,"criar");}
  1097.                 case 2: {dcmd_gang(playerid,"convite");}
  1098.                 case 3: {dcmd_gang(playerid,"kick");}
  1099.                 case 4: {dcmd_gang(playerid,"entrar");}
  1100.                 case 5: {dcmd_gang(playerid,"banco");}
  1101.                 case 6: {dcmd_gang(playerid,"sair");}
  1102.                 case 7: {dcmd_gang(playerid,"info");}
  1103.                 case 8: {dcmd_gang(playerid,"skin");}
  1104.                 case 9: {dcmd_gang(playerid,"cor");}
  1105.                 case 10: {dcmd_gang(playerid,"lema");}
  1106.                 case 11: {dcmd_gang(playerid,"membros");}
  1107.                 case 12: {dcmd_gang(playerid,"level");}
  1108.                 case 13: {dcmd_gang(playerid,"atk");}
  1109.                 case 14: {dcmd_gang(playerid,"lider");}
  1110.                 case 15: {dcmd_gang(playerid,"deletar");}
  1111.             }
  1112.         }
  1113.         return 1;
  1114.     }
  1115.     return 0;
  1116. }
Add Comment
Please, Sign In to add comment