Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Criado por: JonathanFeitosa
- Data: 03/01/2016
- */
- #include <a_samp>
- #include <progress>
- #include <sscanf2>
- #include <zcmd>
- stock False = false;
- #define SendFormattedMessageToAll(%0,%1,%2) do{ format(StringJFS,sizeof(StringJFS),%1,%2); SendClientMessageToAll(%0,StringJFS);} while(False)
- #define DominioRange 5.0
- #define CORGANG 0x228B22AA
- #define COR_ERRO 0xFF0000AA
- #define COR_PRINCIPAL 0x33AAFFFF
- enum t_info
- {
- tNome[64],
- Float:Spawn[3],
- tCor
- };
- new jDominio[][t_info] = {
- {"Grove Street", {1698.4835,-2114.6245,13.3828}, CORGANG},
- {"Ballas", {1793.0255,-2112.6235,13.3828}, CORGANG},
- {"Aztec", {0.0, 0.0, 0.0}, CORGANG}
- };
- new
- StringJFS[128],
- SaiuPosition[MAX_PLAYERS],
- SaiuPosition2[MAX_PLAYERS],
- Bar:BarraDominando[MAX_PLAYERS] = {INVALID_BAR_ID, ...},
- DoisMinutosJFS[MAX_PLAYERS],
- bool:PlayerDominado[MAX_PLAYERS],
- Text3D:SedesJFS[sizeof(jDominio)],
- DominadaMomento[sizeof(jDominio)],
- Dominando[sizeof(jDominio)]
- ;
- main()
- {
- print("\n----------------------------------");
- print("FilterScript criado por JonathanFeitosa");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- for(new i; i < sizeof(jDominio); i ++)
- {
- CreatePickup(1314, 1, jDominio[i][Spawn][0], jDominio[i][Spawn][1], jDominio[i][Spawn][2], -1);
- format(StringJFS, sizeof(StringJFS), "%s\nDominio: {E8E8E8}Nenhum", jDominio[i][tNome]);
- SedesJFS[i] = Create3DTextLabel(StringJFS,jDominio[i][tCor], jDominio[i][Spawn][0], jDominio[i][Spawn][1], jDominio[i][Spawn][2],25.0,0);
- }
- return 1;
- }
- CMD:dominar(playerid, params[])
- {
- // if(!strcmp(jDominio[Player[playerid][pTorcida]][tNome], Dominados(playerid))) return true; // SE É DA MESMA TORCIDA
- // if(MembrosProximos(playerid) < 5) return SendClientMessage(playerid, COR_ERRO, "ERRO: Você só pode dominar com no mínimo 5 membros próximos."); // QUANTIDADE MINIMA DE PESSOAS PARA DOMINAR
- for(new i; i < sizeof(jDominio); i ++) {
- if(IsPlayerInRangeOfPoint(playerid, DominioRange, jDominio[i][Spawn][0], jDominio[i][Spawn][1], jDominio[i][Spawn][2])) // SE ESTIVER PERTO DOS LOCAIS
- {
- if(Dominando[i])
- return SendClientMessage(playerid, COR_ERRO, "Esse local já está sendo dominado ou foi dominado recentemente."), true;
- else
- {
- Dominando[i] = 1;
- SendClientMessage(playerid, COR_PRINCIPAL, "Aguarde 5 segundos no mesmo local...");
- return SetTimerEx("AguardeDo", 5000 , false, "ii", i, playerid);
- }
- }
- }
- return 1;
- }
- Dominados(playerid)
- {
- new rr[128];
- for(new i; i < sizeof(jDominio); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, DominioRange, jDominio[i][Spawn][0], jDominio[i][Spawn][1], jDominio[i][Spawn][2]))
- format(rr, sizeof(rr), "%s", jDominio[i][tNome]);
- }
- return rr;
- }
- /*
- PegarIDTorcida(playerid)
- {
- new rr2;
- for(new i; i < sizeof(jDominio); i++)
- if(!strcmp(jDominio[Player[playerid][pTorcida]][tNome], jDominio[i][tNome]))
- rr2 = i;
- return rr2;
- }
- DominadosID(playerid)
- {
- new rr;
- for(new i; i < sizeof(jDominio); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, DominioRange, jDominio[i][Spawn][0], jDominio[i][Spawn][1], jDominio[i][Spawn][2]))
- rr = i;
- }
- return rr;
- }
- MembrosProximos(playerid)
- {
- new countJFS;
- each(Players->new i)
- if(Player[i][pTorcida] == Player[playerid][pTorcida])
- if(DistanciaEntreDoisPlayers(playerid, i) <= 20) countJFS++;
- return countJFS;
- }
- forward Float:DistanciaEntreDoisPlayers(p1,p2);
- public Float:DistanciaEntreDoisPlayers(p1,p2)
- {
- new Float:Pos1[3], Float:Pos2[3];
- if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
- return -1.00;
- GetPlayerPos(p1, Pos1[0], Pos1[1], Pos1[2]),
- GetPlayerPos(p2, Pos2[0], Pos2[1], Pos2[2]);
- return floatsqroot(floatpower(floatabs(floatsub(Pos2[0],Pos1[0])),2)+floatpower(floatabs(floatsub(Pos2[1],Pos1[1])),2)+floatpower(floatabs(floatsub(Pos2[2],Pos1[2])),2));
- }
- */
- forward VoltarDominio(JFS);
- public VoltarDominio(JFS)
- {
- DominadaMomento[JFS] = 0;
- Dominando[JFS] = 0;
- format(StringJFS, sizeof(StringJFS), "%s\nDominio: {e8e8e8}Nenhum", jDominio[JFS][tNome]);
- Update3DTextLabelText(SedesJFS[JFS], jDominio[JFS][tCor], StringJFS);
- SendFormattedMessageToAll(COR_PRINCIPAL, "O local %s já pode ser dominada novamente!", jDominio[JFS][tNome]);
- return true;
- }
- forward AguardeDo(JFS, playerid);
- public AguardeDo(JFS, playerid)
- {
- if(Dominando[JFS] == 1)
- {
- if(!IsPlayerInRangeOfPoint(playerid, DominioRange, jDominio[JFS][Spawn][0], jDominio[JFS][Spawn][1], jDominio[JFS][Spawn][2]))
- {
- Dominando[JFS] = 0;
- SendClientMessage(playerid, -1, "Você saiu da posição....");
- return true;
- }
- PlayerDominado[playerid] = true;
- SendFormattedMessageToAll(-1, "O %s está tentando dominar o local da {%06x}%s.", GetPlayerNameEx(playerid), jDominio[JFS][tCor] >>> 8, Dominados(playerid));
- SendClientMessage(playerid, COR_PRINCIPAL, "Aguarde 2 minutos no local para dominar. (Distância máxima: 5 metros)");
- SetPlayerCheckpoint(playerid, jDominio[JFS][Spawn][0], jDominio[JFS][Spawn][1], jDominio[JFS][Spawn][2], 10.0);
- SaiuPosition[playerid] = SetTimerEx("DominandoCP2", 2*60000, false, "ii", JFS, playerid);
- SaiuPosition2[playerid] = SetTimerEx("SaiuPosicao", 1000, true, "ii", JFS, playerid);
- BarraDominando[playerid] = CreateProgressBar(170.00, 424.00, 279.50, 3.50, -1, 120.0);
- ShowProgressBarForPlayer(playerid, BarraDominando[playerid]);
- }
- return true;
- }
- forward SaiuPosicao(JFS, playerid);
- public SaiuPosicao(JFS, playerid)
- {
- if(Dominando[JFS])
- {
- if(!IsPlayerInRangeOfPoint(playerid, DominioRange, jDominio[JFS][Spawn][0], jDominio[JFS][Spawn][1], jDominio[JFS][Spawn][2]))
- {
- PlayerDominado[playerid] = false;
- SendFormattedMessageToAll(-1, "O %s {FF0000}fracassou{FFFFFF} em dominar o local da {%06x}%s.", GetPlayerNameEx(playerid), jDominio[JFS][tCor] >>> 8, jDominio[JFS][tNome]);
- DisablePlayerCheckpoint ( playerid ) ;
- DoisMinutosJFS[playerid] = 0;
- DestroyProgressBar(BarraDominando[playerid]);
- KillTimer(SaiuPosition[playerid]);
- KillTimer(SaiuPosition2[playerid]);
- Dominando[JFS] = 0;
- SendClientMessage(playerid, COR_ERRO, "Você saiu da posição...");
- return true;
- }
- }
- DoisMinutosJFS[playerid] ++;
- if(DoisMinutosJFS[playerid] == 60)
- SetProgressBarColor(BarraDominando[playerid], 0xFF0000FF);
- if(DoisMinutosJFS[playerid] == 75)
- SetProgressBarColor(BarraDominando[playerid], 0xEE0000FF);
- if(DoisMinutosJFS[playerid] == 90)
- SetProgressBarColor(BarraDominando[playerid], 0xCD0000FF);
- if(DoisMinutosJFS[playerid] == 109)
- SetProgressBarColor(BarraDominando[playerid], 0x8B0000FF);
- if(DoisMinutosJFS[playerid] == 114 || DoisMinutosJFS[playerid] == 116 || DoisMinutosJFS[playerid] == 118 )
- {
- HideProgressBarForPlayer(playerid, BarraDominando[playerid]);
- return true;
- }
- if(DoisMinutosJFS[playerid] == 115 || DoisMinutosJFS[playerid] == 117 || DoisMinutosJFS[playerid] == 119 )
- ShowProgressBarForPlayer(playerid, BarraDominando[playerid]);
- SetProgressBarValue(BarraDominando[playerid], DoisMinutosJFS[playerid]);
- UpdateProgressBar(BarraDominando[playerid], playerid);
- return true;
- }
- forward DominandoCP2(JFS, playerid);
- public DominandoCP2(JFS, playerid)
- {
- if(Dominando[JFS])
- {
- if(IsPlayerInRangeOfPoint(playerid, DominioRange, jDominio[JFS][Spawn][0], jDominio[JFS][Spawn][1], jDominio[JFS][Spawn][2]))
- {
- SetTimerEx("VoltarDominio", 15*60000, false, "i", JFS);
- format(StringJFS, sizeof(StringJFS), "%s\nDominio: {e8e8e8}%s", jDominio[JFS][tNome], GetPlayerNameEx(playerid));
- Update3DTextLabelText(SedesJFS[JFS], jDominio[JFS][tCor], StringJFS);
- }
- }
- DominadaMomento[JFS] = 1;
- DisablePlayerCheckpoint ( playerid ) ;
- DoisMinutosJFS[playerid] = 0;
- DestroyProgressBar(BarraDominando[playerid]);
- PlayerDominado[playerid] = false;
- KillTimer(SaiuPosition2[playerid]);
- SendFormattedMessageToAll(-1, "O %s {26cf0a}dominou {FFFFFF}o local da {%06x}%s.", GetPlayerNameEx(playerid), jDominio[JFS][tCor] >>> 8, Dominados(playerid));
- /* for(new jfs; jfs < MAX_PLAYERS; jfs ++) {
- if(DistanciaEntreDoisPlayers(playerid, jfs) <= 20)
- if(Player[jfs][pTorcida] == Player[playerid][pTorcida])
- GivePlayerMoney(jfs, 500),
- SendClientMessage(jfs, COR_PRINCIPAL, "Você e quem estava perto ganhou 500R$ pelo dominio!");
- } */
- return true;
- }
- stock GetPlayerNameEx(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof name);
- return name;
- }
Advertisement
Add Comment
Please, Sign In to add comment