Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- [=================================================================================]
- X SISTEMA DE TERRITORIOS V1.0 - BY SUB_ZERO0_ X
- X NÃO RETIRE OS CRÉDITOS! X
- X CRÉDITOS X
- X PRINCIPAIS X
- - Criação: Sub_Zero0_
- X FUNÇÕES X
- - Split: Sa-mp wiki
- - IsPlayerInArea: Sa-mp forum
- - DOF2: Double-o-Seven
- X SECUNDÁRIOS X
- - Idealização: Servidores de GangWar do SA-MP
- - Testers: MentoS e BreaK
- - Agradecimentos: Equipe de desenvolvimento do SA-MP e aos membros de seu fórum.
- [=================================================================================]
- */
- #include <a_samp>
- #include <dof2>
- #include <gsystem>
- //Defines GANGSYSTEM
- #define MAX_GANGS 256 //Máxima quantidade de gangs
- //Defines TERRITORYWAR
- #define MAX_TERRIS 200 //Máxima quantidade de terris
- #define RESERVED_NAME "c_terris"
- #define TWarFile "Territorios.sub"
- //Defines
- #define MIN_MEMBROS_D 3 //Mínimo de membros da gang para começar a dominar
- #define TEMPO_CHECK 120 //Tempo do check em segundos
- #define TERRI_NO_GANG "0xFFFFFF66" //
- #define PONTOS_DEFESA 200 //Pontos de defesa padrão
- #define TEMPO_GUERRA 90 //Tempo de guerra
- #define TEMPO_GRANA 1800000 //Tempo em milisegundos para dar o lucro dos terris
- #define PONTO_POR_KILL 15 //Pontos ao matar um inimigo na guerra de gangs
- new Float:Terris[MAX_TERRIS][4];
- new TerrisID[MAX_TERRIS]=-1;
- new TerriOk[MAX_TERRIS];
- new TerriGuerra[MAX_TERRIS]=0;
- new TempoCheck[MAX_TERRIS][MAX_GANGS];
- new Text:TxtTerri[MAX_PLAYERS];
- new Text:TxtGuerra[MAX_TERRIS];
- new Pontos[MAX_TERRIS][2];
- new TempoR[MAX_TERRIS];
- stock GetGang(playerid)
- {
- return GetPVarInt(playerid,"GangID");
- }
- stock CriarArqs()
- {
- if(!fexist(GangF(TWarFile)))
- {
- new File:pg = fopen(GangF(TWarFile),io_write);
- fclose(pg);
- DOF2_SetInt(GangF(TWarFile),RESERVED_NAME,1);
- DOF2_SaveFile();
- }
- return 1;
- }
- stock GetNewTerriID()
- {
- new terrid=DOF2_GetInt(GangF(TWarFile),RESERVED_NAME);
- if(terrid>=MAX_TERRIS)
- {
- terrid=-1;
- new t[9];
- for(new i=1;i<MAX_TERRIS;i++)
- {
- format(t,9,"%d",i);
- if(!DOF2_IsSet(GangF(TWarFile),t)) {terrid=i;break;}
- }
- }
- return terrid;
- }
- stock LoadTerris()
- {
- for(new d=1;d<MAX_TERRIS;d++)
- TerriOk[d]=0;
- new maxi=DOF2_GetInt(GangF(TWarFile),RESERVED_NAME);
- new TempCord[4][32],tempz[9];
- for(new i=1;i<maxi;i++)
- {
- format(tempz,9,"%d",i);
- if(DOF2_IsSet(GangF(TWarFile),tempz))
- {
- split(DOF2_GetString(GangF(TWarFile),tempz),TempCord,',');
- for(new e=0;e<4;e++)
- Terris[i][e]=floatstr(TempCord[e]);
- if(Terris[i][0]<Terris[i][1])
- {
- if(Terris[i][2]<Terris[i][3])
- {
- TerrisID[i] = GangZoneCreate(Terris[i][0],Terris[i][2],Terris[i][1],Terris[i][3]);
- }
- else
- {
- TerrisID[i] = GangZoneCreate(Terris[i][0],Terris[i][3],Terris[i][1],Terris[i][2]);
- }
- }
- else
- {
- if(Terris[i][2]<Terris[i][3])
- {
- TerrisID[i] = GangZoneCreate(Terris[i][1],Terris[i][2],Terris[i][0],Terris[i][3]);
- }
- else
- {
- TerrisID[i] = GangZoneCreate(Terris[i][1],Terris[i][3],Terris[i][0],Terris[i][2]);
- }
- }
- TerriOk[i]=1;
- }
- else
- TerriOk[i]=0;
- }
- }
- stock ShowTerris(playerid)
- {
- for(new i=1;i<MAX_TERRIS;i++)
- {
- if(TerriOk[i]!=0)
- {
- if(DOF2_GetInt(FormatTerri(i),"Gang")!=0)
- {
- new cor[11];
- format(cor,11,"%s",DOF2_GetString(FormatGang(DOF2_GetInt(FormatTerri(i),"Gang")),"Cor"));
- strdel(cor,strlen(cor)-2,strlen(cor));
- strcat(cor,"66");
- GangZoneShowForPlayer(playerid,TerrisID[i],HexToInt(cor));
- if(TerriGuerra[i]!=0)
- GangZoneFlashForPlayer(playerid,TerrisID[i],HexToInt(DOF2_GetString(FormatGang(TerriGuerra[i]),"Cor")));
- }
- else
- GangZoneShowForPlayer(playerid,TerrisID[i],HexToInt(TERRI_NO_GANG));
- }
- }
- }
- stock GetPlayerTerri(playerid)
- {
- if(IsPlayerConnected(playerid))
- for(new terrid=1;terrid<MAX_TERRIS;terrid++)
- {
- if(TerriOk[terrid]==1)
- {
- if(Terris[terrid][0]<Terris[terrid][1])
- {
- if(Terris[terrid][2]<Terris[terrid][3])
- {
- if(IsPlayerInArea(playerid,Terris[terrid][0],Terris[terrid][1],Terris[terrid][2],Terris[terrid][3])) return terrid;
- }
- else
- {
- if(IsPlayerInArea(playerid,Terris[terrid][0],Terris[terrid][1],Terris[terrid][3],Terris[terrid][2])) return terrid;
- }
- }
- else
- {
- if(Terris[terrid][2]<Terris[terrid][3])
- {
- if(IsPlayerInArea(playerid,Terris[terrid][1],Terris[terrid][0],Terris[terrid][2],Terris[terrid][3])) return terrid;
- }
- else
- {
- if(IsPlayerInArea(playerid,Terris[terrid][1],Terris[terrid][0],Terris[terrid][3],Terris[terrid][2])) return terrid;
- }
- }
- }
- }
- return -1;
- }
- stock GuerraTerri(terrid,gangidcontra,comecou)
- {
- if(comecou) GangZoneFlashForAll(playerid,TerrisID[terrid],HexToInt(DOF2_GetString(FormatGang(gangidcontra),"Cor")));
- else GangZoneStopFlashForAll(TerriID[terrid]);
- }
- stock UpdateGangs()
- {
- for(new gangid=1;gangid<MAX_GANGS;gangid++)
- if(fexist(FormatGang(gangid)))
- {
- new ter=DOF2_GetInt(FormatGang(gangid),"Territorios");
- CallRemoteFunction("AtualizarTerris","dd",gangid,ter);
- }
- }
- #define FILTERSCRIPT
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n===================================================");
- print(" Carregando TerritoryWar para GangSystem [0.3d]");
- print(" Versao: 1.0.0 - By: Sub_Zero0_");
- print(" ");
- print(" Verificando a pasta /gangs/ ...");
- CriarArqs();
- print(" Pasta e arquivos básicos: OK");
- LoadTerris();
- print(" Territórios carregados com sucesso!");
- UpdateGangs();
- print(" Territórios de gangs atualizados!");
- print(" ");
- print(" Carregado com sucesso!");
- print("===================================================\n");
- for(new i=1;i<MAX_TERRIS;i++)
- for(new e=1;e<MAX_GANGS;e++)
- TempoCheck[i][e]=TEMPO_CHECK;
- SetTimer("CheckGuerra",1000,true);
- SetTimer("Textdraw",1000,true);
- SetTimer("DinheiroTerris",TEMPO_GRANA,true);
- //Anti-Descompiler
- new a[][15] = { "?","0","?" };
- #pragma unused a
- new b[][15] = { "?","?" };
- #pragma unused b
- new c[][10] = { "?","?","?"};
- #pragma unused c
- //Fim
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n==============================================");
- print(" Descarregando TerritoryWar para GangSystem [0.3d]");
- print(" Versao: 1.0.0 - By: Sub_Zero0_");
- print("==============================================\n");
- return 1;
- }
- #else
- main()
- {
- }
- #endif
- forward DinheiroTerris();
- public DinheiroTerris()
- {
- new Din[MAX_GANGS];
- for(new terrid=1;terrid<MAX_TERRIS;terrid++)
- if(fexist(FormatTerri(terrid)))
- {
- new gangid = DOF2_GetInt(FormatTerri(terrid),"Gang");
- if(gangid!=0)
- Din[gangid]+=DOF2_GetInt(FormatTerri(terrid),"Grana");
- }
- new str[128];
- for(new e=1;e<MAX_GANGS;e++)
- if(Din[e]!=0)
- {
- CallRemoteFunction("AtualizarBanco","dd",e,Din[e]);
- format(str,128,"[GANG] Sua gang recebeu R$%d dos lucros dos territórios!",Din[e]);
- for(new id=0;id<MAX_PLAYERS;id++)
- if(IsPlayerConnected(id))
- if(GetGang(id)==e)
- SendClientMessage(id,verde,str);
- }
- }
- forward AtualizarGG(gangid,n,cor[]);
- public AtualizarGG(gangid,n,cor[])
- {
- if(n==0)
- {
- for(new e=1;e<MAX_TERRIS;e++)
- if(DOF2_GetInt(FormatTerri(e),"Gang")==gangid)
- {
- GangZoneHideForAll(TerrisID[e]);
- GangZoneShowForAll(TerrisID[e],HexToInt(cor));
- }
- }
- if(n==1)
- {
- for(new e=1;e<MAX_TERRIS;e++)
- if(DOF2_GetInt(FormatTerri(e),"Gang")==gangid)
- {
- DOF2_SetInt(FormatTerri(e),"Gang",0);
- GangZoneHideForAll(TerrisID[e]);
- GangZoneShowForAll(TerrisID[e],HexToInt(TERRI_NO_GANG));
- }
- DOF2_SaveFile();
- }
- }
- forward CheckGuerra();
- public CheckGuerra()
- {
- new Gangs[MAX_GANGS]=0;
- for(new terrid=1;terrid<MAX_TERRIS;terrid++)
- {
- if(TerriOk[terrid]==1)
- if(TerriGuerra[terrid]==0)
- {
- for(new g=1;g<MAX_GANGS;g++)
- Gangs[g]=0;
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerConnected(i))
- if(GetGang(i)!=0)
- {
- new ter=GetPlayerTerri(i);
- if(ter==terrid)
- Gangs[GetGang(i)]+=1;
- }
- }
- for(new g2=1;g2<MAX_GANGS;g2++)
- if(Gangs[g2]>=MIN_MEMBROS_D)
- {
- if(DOF2_GetInt(FormatTerri(terrid),"Gang")!=g2)
- {
- TempoCheck[terrid][g2]-=1;
- if(TempoCheck[terrid][g2]==0)
- {
- if(TerriGuerra[terrid]==0)
- {
- TerriGuerra[terrid]=g2;
- Pontos[terrid][0]=0;
- Pontos[terrid][1]=PONTOS_DEFESA;
- TempoR[terrid]=TEMPO_GUERRA;
- if(DOF2_GetInt(FormatTerri(terrid),"Gang")!=0)
- {
- TxtGuerra[terrid]=TextDrawCreate(88.0,290.0,"~w~== GUERRA DE GANGS ==~n~~w~Iniciando...");
- TextDrawLetterSize(TxtGuerra[terrid],0.2,1.1);
- TextDrawSetShadow(TxtGuerra[terrid],1);
- TextDrawSetOutline(TxtGuerra[terrid],1);
- TextDrawFont(TxtGuerra[terrid],1);
- TextDrawUseBox(TxtGuerra[terrid],1);
- TextDrawBoxColor(TxtGuerra[terrid],0x00000088);
- TextDrawAlignment(TxtGuerra[terrid],2);
- TextDrawTextSize(TxtGuerra[terrid], 50.0, 90.0);
- }
- new cor[11];
- format(cor,11,"%s",DOF2_GetString(FormatGang(g2),"Cor"));
- strdel(cor,strlen(cor)-2,strlen(cor));
- strcat(cor,"66");
- GangZoneFlashForAll(TerrisID[terrid],HexToInt(cor));
- }
- }
- }
- }
- else
- if(TempoCheck[terrid][g2]!=TEMPO_CHECK)
- TempoCheck[terrid][g2]=TEMPO_CHECK;
- }
- else
- {
- for(new i=1;i<MAX_GANGS;i++)
- TempoCheck[terrid][i]=TEMPO_CHECK;
- if(DOF2_GetInt(FormatTerri(terrid),"Gang")==0)
- {
- new gangid=TerriGuerra[terrid];
- DOF2_SetInt(FormatTerri(terrid),"Gang",gangid);
- new ter=DOF2_GetInt(FormatGang(gangid),"Territorios")+1;
- DOF2_SetInt(FormatGang(gangid),"Territorios",ter);
- CallRemoteFunction("AtualizarTerris","dd",gangid,ter);
- DOF2_SaveFile();
- GangZoneStopFlashForAll(TerrisID[terrid]);
- GangZoneHideForAll(TerrisID[terrid]);
- new cor[11];
- format(cor,11,"%s",DOF2_GetString(FormatGang(gangid),"Cor"));
- strdel(cor,strlen(cor)-2,strlen(cor));
- strcat(cor,"66");
- GangZoneShowForAll(TerrisID[terrid],HexToInt(cor));
- TerriGuerra[terrid]=0;
- new fg[128];
- format(fg,128,"[GANG] Sua gang dominou o território: %s!",DOF2_GetString(FormatTerri(terrid),"Nome"));
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- if(GetGang(i)==gangid)
- SendClientMessage(i,verde,fg);
- }
- else
- {
- new ataque=TerriGuerra[terrid];
- new defesa=DOF2_GetInt(FormatTerri(terrid),"Gang");
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- if(GetGang(i)==ataque)
- if(GetPlayerTerri(i)==terrid)
- Pontos[terrid][0]++;
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- if(GetGang(i)==defesa)
- if(GetPlayerTerri(i)==terrid)
- Pontos[terrid][1]++;
- TempoR[terrid]--;
- if(TempoR[terrid]==0)
- {
- TextDrawDestroy(TxtGuerra[terrid]);
- GangZoneStopFlashForAll(TerrisID[terrid]);
- TerriGuerra[terrid]=0;
- new fd[128];
- if(Pontos[terrid][0]>Pontos[terrid][1])
- {
- format(fd,128,"[GANG] Sua gang falhou ao defender o território %s da gang %s!",DOF2_GetString(FormatTerri(terrid),"Nome"),DOF2_GetString(FormatGang(ataque),"Nome"));
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- if(GetGang(i)==defesa)
- SendClientMessage(i,vermelho,fd);
- format(fd,128,"[GANG] Sua gang dominou o território %s da gang %s!",DOF2_GetString(FormatTerri(terrid),"Nome"),DOF2_GetString(FormatGang(defesa),"Nome"));
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- if(GetGang(i)==ataque)
- SendClientMessage(i,verde,fd);
- new ter=DOF2_GetInt(FormatGang(ataque),"Territorios")+1;
- DOF2_SetInt(FormatGang(ataque),"Territorios",ter);
- CallRemoteFunction("AtualizarTerris","dd",ataque,ter);
- ter=DOF2_GetInt(FormatGang(defesa),"Territorios")-1;
- DOF2_SetInt(FormatGang(defesa),"Territorios",ter);
- CallRemoteFunction("AtualizarTerris","dd",defesa,ter);
- DOF2_SetInt(FormatTerri(terrid),"Gang",ataque);
- DOF2_SaveFile();
- GangZoneHideForAll(TerrisID[terrid]);
- new cor[11];
- format(cor,11,"%s",DOF2_GetString(FormatGang(ataque),"Cor"));
- strdel(cor,strlen(cor)-2,strlen(cor));
- strcat(cor,"66");
- GangZoneShowForAll(TerrisID[terrid],HexToInt(cor));
- }
- else
- {
- format(fd,128,"[GANG] Sua gang defendeu o território %s da gang %s!",DOF2_GetString(FormatTerri(terrid),"Nome"),DOF2_GetString(FormatGang(ataque),"Nome"));
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- if(GetGang(i)==defesa)
- SendClientMessage(i,verde,fd);
- format(fd,128,"[GANG] Sua gang falhou ao atacar ao território %s da gang %s!",DOF2_GetString(FormatTerri(terrid),"Nome"),DOF2_GetString(FormatGang(defesa),"Nome"));
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- if(GetGang(i)==ataque)
- SendClientMessage(i,vermelho,fd);
- }
- }
- else
- {
- new tempom,tempos;
- tempom = TempoR[terrid]/60;
- tempos = TempoR[terrid]-tempom*60;
- new ff[128];
- if(tempos<10) format(ff,128,"~w~== GUERRA DE GANGS ==~n~~b~%s ~w~x ~r~%s~n~~y~%d ~w~x ~y~%d~n~~g~%d:0%d",DOF2_GetString(FormatGang(ataque),"Nome"),DOF2_GetString(FormatGang(defesa),"Nome"),Pontos[terrid][0],Pontos[terrid][1],tempom,tempos);
- else format(ff,128,"~w~== GUERRA DE GANGS ==~n~~b~%s ~w~x ~r~%s~n~~y~%d ~w~x ~y~%d~n~~g~%d:%d",DOF2_GetString(FormatGang(ataque),"Nome"),DOF2_GetString(FormatGang(defesa),"Nome"),Pontos[terrid][0],Pontos[terrid][1],tempom,tempos);
- TextDrawSetString(TxtGuerra[terrid],ff);
- }
- }
- }
- }
- }
- forward Textdraw();
- public Textdraw()
- {
- new txt[128],nomegg[32];
- for(new i=0;i<MAX_PLAYERS;i++)
- if(IsPlayerConnected(i))
- {
- new terrid=GetPlayerTerri(i);
- new gangid=DOF2_GetInt(FormatTerri(terrid),"Gang");
- if(gangid==0) nomegg="Nenhuma";
- else format(nomegg,32,"%s",DOF2_GetString(FormatGang(gangid),"Nome"));
- format(txt,128,"~b~Territorio: ~w~%s~n~~b~Gang dominante: ~w~%s~n~~b~Dinheiro: ~w~R$%d",DOF2_GetString(FormatTerri(terrid),"Nome"),nomegg,DOF2_GetInt(FormatTerri(terrid),"Grana"));
- TextDrawSetString(TxtTerri[i],txt);
- if(terrid!=-1)
- {
- TextDrawHideForPlayer(i,TxtTerri[i]);
- TextDrawShowForPlayer(i,TxtTerri[i]);
- if(TerriGuerra[terrid]!=0)
- {
- TextDrawHideForPlayer(i,TxtGuerra[terrid]);
- TextDrawShowForPlayer(i,TxtGuerra[terrid]);
- }
- }
- else
- {
- TextDrawHideForPlayer(i,TxtTerri[i]);
- for(new e=1;e<MAX_TERRIS;e++)
- TextDrawHideForPlayer(i,TxtGuerra[e]);
- }
- }
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- ShowTerris(playerid);
- return 0;
- }
- public OnPlayerConnect(playerid)
- {
- TxtTerri[playerid]=TextDrawCreate(140.0,390.0," ");
- TextDrawLetterSize(TxtTerri[playerid],0.25,1.0);
- TextDrawSetShadow(TxtTerri[playerid],1);
- TextDrawSetOutline(TxtTerri[playerid],1);
- TextDrawFont(TxtTerri[playerid],1);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- for(new i=1;i<MAX_TERRIS;i++)
- {
- if(TerrisID[i]!=-1)
- {
- if(TerriGuerra[i]!=0)
- GangZoneStopFlashForPlayer(playerid,TerrisID[i]);
- GangZoneHideForPlayer(playerid,TerrisID[i]);
- }
- }
- TextDrawDestroy(TxtTerri[playerid]);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- new terridplay = GetPlayerTerri(playerid);
- if(TerriGuerra[terridplay]!=0)
- {
- new terridkill = GetPlayerTerri(killerid);
- if(terridkill==terridplay)
- if(TerriGuerra[terridplay]==GetGang(killerid)&&DOF2_GetInt(FormatTerri(terridplay),"Gang")==GetGang(playerid))
- Pontos[terridplay][0]+=PONTO_POR_KILL;
- else if(TerriGuerra[terridplay]==GetGang(playerid)&&DOF2_GetInt(FormatTerri(terridplay),"Gang")==GetGang(killerid))
- Pontos[terridplay][1]+=PONTO_POR_KILL;
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd(terri,5,cmdtext);
- if(!strcmp(cmdtext,"/check",true)||!strcmp(cmdtext,"/checkar",true))
- {
- if(GetGang(playerid)==0) return SendClientMessage(playerid,amarelo,"[CHECK] Você não tem gang!");
- new terrid = GetPlayerTerri(playerid);
- if(terrid==-1) return SendClientMessage(playerid,amarelo,"[CHECK] Você não está em um território!");
- if(DOF2_GetInt(FormatTerri(terrid),"Gang")==GetGang(playerid)) return SendClientMessage(playerid,amarelo,"[CHECK] Este território pertence a sua gang!");
- new tempo = TempoCheck[terrid][GetGang(playerid)];
- new fm[128];
- format(fm,128,"[CHECK] É necessário ter %d membros de sua gang para começar a dominar!",MIN_MEMBROS_D);
- if(tempo==TEMPO_CHECK) return SendClientMessage(playerid,amarelo,fm);
- if(TerriGuerra[terrid]!=0) return SendClientMessage(playerid,amarelo,"[CHECK] Este território já está em guerra!");
- format(fm,128,"Tempo para começar a dominar: %d/%d segundos",tempo,TEMPO_CHECK);
- SendClientMessage(playerid,amarelo,fm);
- return 1;
- }
- return 0;
- }
- new Float:PFloat[MAX_PLAYERS][4];
- dcmd_terri(playerid,params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,amarelo,"[TERRI] Você precisa ser Admin RCON para isso.");
- if(strlen(params)==0) return SendClientMessage(playerid,amarelo,"USO: /terri [pos1/pos2/criar/deletar/editar]");
- if(!strcmp(params,"pos1"))
- {
- new Float:X,Float:Y,Float:Z;
- GetPlayerPos(playerid,X,Y,Z);
- PFloat[playerid][0]=X;
- PFloat[playerid][2]=Y;
- SendClientMessage(playerid,amarelo,"[TERRI] Pos1 adicionada com sucesso!");
- }
- else if(!strcmp(params,"pos2"))
- {
- new Float:X,Float:Y,Float:Z;
- GetPlayerPos(playerid,X,Y,Z);
- PFloat[playerid][1]=X;
- PFloat[playerid][3]=Y;
- SendClientMessage(playerid,amarelo,"[TERRI] Pos2 adicionada com sucesso!");
- }
- else if(!strcmp(params,"criar"))
- {
- ShowPlayerDialog(playerid,500,DIALOG_STYLE_INPUT,"Territorio - Criar","Digite o nome desse território:\nObs: Tenha certeza de ter marcado Pos1 e Pos2 corretamente!","Continuar","Sair");
- }
- else if(!strcmp(params,"deletar"))
- {
- new terrid=GetPlayerTerri(playerid);
- if(terrid==-1) return SendClientMessage(playerid,amarelo,"Você não está em um território!");
- new fmg[128];format(fmg,128,"Tem certeza que quer deletar o território: %s ?",DOF2_GetString(FormatTerri(terrid),"Nome"));
- ShowPlayerDialog(playerid,501,DIALOG_STYLE_MSGBOX,"Territorio - Deletar",fmg,"Deletar","Sair");
- }
- else if(!strcmp(params,"editar"))
- {
- if(GetPlayerTerri(playerid)==-1) return SendClientMessage(playerid,amarelo,"Você não está em um território!");
- ShowPlayerDialog(playerid,503,DIALOG_STYLE_INPUT,"Territorio - Editar","Digite o novo valor do lucro deste território:","Mudar","Sair");
- }
- return 1;
- }
- new Nome[MAX_PLAYERS][32];
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid==500)
- {
- if(response)
- {
- if(strlen(inputtext)<1||strlen(inputtext)>32) return SendClientMessage(playerid,amarelo,"[TERRI] O nome precisa ter entre 0 e 32 caracteres.");
- format(Nome[playerid],32,"%s",inputtext);
- ShowPlayerDialog(playerid,502,DIALOG_STYLE_INPUT,"Territorio - Criar","Digite o lucro deste território:","Criar","Sair");
- }
- return 1;
- }
- if(dialogid==501)
- {
- if(response)
- {
- new terrid=GetPlayerTerri(playerid);
- GangZoneDestroy(TerrisID[terrid]);
- TerriOk[terrid]=0;
- TerriGuerra[terrid]=0;
- new terridst[9];format(terridst,9,"%d",terrid);
- DOF2_Unset(GangF(TWarFile),terridst);
- new gangid=DOF2_GetInt(FormatTerri(terrid),"Gang");
- if(gangid!=0)
- {
- new ter=DOF2_GetInt(FormatGang(gangid),"Territorios")-1;
- DOF2_SetInt(FormatGang(gangid),"Territorios",ter);
- CallRemoteFunction("AtualizarTerris","dd",gangid,ter);
- DOF2_SaveFile();
- }
- fremove(FormatTerri(terrid));
- SendClientMessage(playerid,amarelo,"Território deletado com sucesso!");
- }
- }
- if(dialogid==502)
- {
- if(response)
- {
- if(strlen(inputtext)==0) return SendClientMessage(playerid,amarelo,"[TERRI] Insira uma quantia.");
- new grana=strval(inputtext);
- if(grana<0) return SendClientMessage(playerid,amarelo,"[TERRI] Quantia negativa.");
- new terrid = GetNewTerriID();
- if(terrid==-1) return SendClientMessage(playerid,amarelo,"[TERRI] Este servidor já atingiu o máximo de territórios possível.");
- DOF2_CreateFile(FormatTerri(terrid));
- DOF2_SetString(FormatTerri(terrid),"Nome",Nome[playerid]);
- DOF2_SetInt(FormatTerri(terrid),"Gang",0);
- DOF2_SetInt(FormatTerri(terrid),"Grana",grana);
- DOF2_SaveFile();
- Terris[terrid][0]=PFloat[playerid][0];
- Terris[terrid][1]=PFloat[playerid][1];
- Terris[terrid][2]=PFloat[playerid][2];
- Terris[terrid][3]=PFloat[playerid][3];
- new terridstring[9],fmt[128];
- format(terridstring,9,"%d",terrid);
- format(fmt,128,"%f,%f,%f,%f",Terris[terrid][0],Terris[terrid][1],Terris[terrid][2],Terris[terrid][3]);
- DOF2_SetString(GangF(TWarFile),terridstring,fmt);
- DOF2_SaveFile();
- if(Terris[terrid][0]<Terris[terrid][1])
- {
- if(Terris[terrid][2]<Terris[terrid][3])
- {
- TerrisID[terrid] = GangZoneCreate(Terris[terrid][0],Terris[terrid][2],Terris[terrid][1],Terris[terrid][3]);
- }
- else
- {
- TerrisID[terrid] = GangZoneCreate(Terris[terrid][0],Terris[terrid][3],Terris[terrid][1],Terris[terrid][2]);
- }
- }
- else
- {
- if(Terris[terrid][2]<Terris[terrid][3])
- {
- TerrisID[terrid] = GangZoneCreate(Terris[terrid][1],Terris[terrid][2],Terris[terrid][0],Terris[terrid][3]);
- }
- else
- {
- TerrisID[terrid] = GangZoneCreate(Terris[terrid][1],Terris[terrid][3],Terris[terrid][0],Terris[terrid][2]);
- }
- }
- TerriOk[terrid]=1;
- GangZoneShowForAll(TerrisID[terrid],HexToInt(TERRI_NO_GANG));
- new st = DOF2_GetInt(GangF(TWarFile),RESERVED_NAME);
- if(st<MAX_TERRIS) {DOF2_SetInt(GangF(TWarFile),RESERVED_NAME,st+1);DOF2_SaveFile();}
- SendClientMessage(playerid,amarelo,"[TERRI] Território criado com sucesso!");
- }
- return 1;
- }
- if(dialogid==503)
- {
- if(response)
- {
- if(strlen(inputtext)==0) return SendClientMessage(playerid,amarelo,"[TERRI] Insira uma quantia.");
- new grana=strval(inputtext);
- if(grana<0) return SendClientMessage(playerid,amarelo,"[TERRI] Quantia negativa.");
- DOF2_SetInt(FormatTerri(GetPlayerTerri(playerid)),"Grana",grana);
- DOF2_SaveFile();
- SendClientMessage(playerid,amarelo,"[TERRI] Lucro do território mudado com sucesso!");
- }
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment