Advertisement
Guest User

Gang System

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