[Include] bCGz (Sistema de GangZones - Avanзado)
#1

bCGz (Sistema de GangZones - Avanзado)
Olб pessoal!

Hoje a minha include bCGz serб postada, prestem atenзao pois ela й muito fбcil de ser usada!

Natives
hu3 eu esqueci as mesmas, ta aн as natives:

pawn Код:
native bCGz_CriarZona(id,cor,Float:Pos1,Float:Pos2,Float:Pos3,Float:Pos4);
native bCGz_RemoverZona(id);
native bCGz_EsconderZonaPlayer(playerid,id);
native bCGz_EsconderZonaTodos(id);
native bCGz_SetarCorZona(id,cor);
native bCGz_GetarCorZona(id);
native bCGz_PlayerZona(playerid,id);
native bCGz_VeiculoZona(vehicleid,id);
native bCGz_ShowZonaPlayer(playerid,id);
native bCGz_ShowZonaTodos(playerid,id);
native bCGz_PiscarPlayer(playerid,id,cor,tempo);
native bCGz_PiscarTodos(id,cor,tempo);
native bCGz_MaximoZonas();
Obrigado tonisantolia (sumido kk')!

bCGz_CriarZona
Com esta funзao vocк pode criar uma gangzone!

Exemplo de Uso:

pawn Код:
bCGz_CriarZona(0,1234.5678,5678.1234,8765.4321,1526.3647);
bCGz_RemoverZona
Como o prуprio nome sugere, com esta funзao vocк pode deletar uma zona jб criada.

Exemplo de Uso:

pawn Код:
bCGz_RemoverZona(0);
bCGz_EsconderZonaPlayer
Este funзao faz vocк esconder a zona para o jogador selecionado.

Exemplo de Uso:

pawn Код:
bCGz_EsconderZonaPlayer(playerid,0);
bCGz_EsconderZonaTodos
Com esta funзao citada, vocк pode esconder a zona para todos os jogadores.

Exemplo de Uso:

pawn Код:
bCGz_EsconderZonaTodos(0);
bCGz_SetarCorZona
Como o prуprio nome diz, com esta funзao vocк pode mudar a cor de uma gangzone.

Exemplo de Uso:

pawn Код:
bCGz_SetarCorZona(0,0xBFBFBFAA);
Obs: Apуs setar a cor, vocк precisa mostrar a gangzone para todos com o uso da funзao bCGz_ShowZonaTodos ou bCGz_ShowZonaPlayer.

bCGz_GetarCorZona
Use esta funзao para pegar a cor da gangzone!

Exemplo de Uso:

pawn Код:
SetPlayerColor(playerid,bCGz_GetarCorZona(0));
bCGz_PlayerZona
Com esta funзao vocк pode ver se o jogador estб mesmo na gangzone que vocк deseja.

Exemplo de Uso:

pawn Код:
if(bCGz_PlayerZona(playerid,0)) { break; }
bCGz_VeiculoZona
A lуgica й a mesma da funзao bCGz_PlayerZona, porйm esta й apenas para veнculos.

Exemplo de Uso:

pawn Код:
if(bCGz_VeiculoZona(GetPlayerVehicleID(playerid),0)) { break; }
bCGz_ShowZonaPlayer
A funзao acima й usada para mostrar para um tal jogador a gangzone desejada.

Exemplo de Uso:

pawn Код:
bCGz_ShowZonaPlayer(playerid,0);
bCGz_ShowZonaTodos
A funзao acima й usada para mostrar para todos os jogadores a gangzone desejada.

Exemplo de Uso:

pawn Код:
bCGz_ShowZonaTodos(0);
bCGz_PiscarPlayer
Bom, esta funзao й usada como uma chamada da funзao GangZoneFlashForPlayer, porйm com um detalhe adicionado:

Um tempo para a piscagem!

Exemplo de Uso:

pawn Код:
bCGz_PiscarPlayer(playerid,0,30000);
O cуdigo acima faz a gangzone piscar por 30 segundos e logo apуs para!

bCGz_PiscarTodos
A lуgica й a mesma da funзao acima.

Exemplo de Uso:

pawn Код:
bCGz_PiscarTodos(0,30000);
bCGz_MaximoZonas
Com esta funзao, vocк pode saber quantas gangzones foram criadas!

Exemplo de Uso:

pawn Код:
printf("%d zonas Jб Foram criadas!",bCGz_MaximoZonas());
Finalizando
Este sistema foi feito 100% por mim, sem pedidos de ajuda.

Qualquer bug ? Avise-me!

Cуdigo:

pawn Код:
// Zonas

#define Maximo_Zonas 100

enum Zone
{
    Float:Local1,
    Float:Local2,
    Float:Local3,
    Float:Local4,

    ZonaExiste,
    ZonaCor,
    ZonaCriada
};
stock Zona[Maximo_Zonas][Zone];

// Funзхes

stock bCGz_CriarZona(id,cor,Float:Pos1,Float:Pos2,Float:Pos3,Float:Pos4)
{
    if(Zona[id][ZonaExiste] == 0)
    {
        Zona[id][ZonaCriada] = GangZoneCreate(Pos1,Pos2,Pos3,Pos4);
        Zona[id][ZonaCor] = cor;
        Zona[id][ZonaExiste] = 1;

        Zona[id][Local1] = Pos1;
        Zona[id][Local2] = Pos2;
        Zona[id][Local3] = Pos3;
        Zona[id][Local4] = Pos4;
    }
    return 1;
}
stock bCGz_RemoverZona(id)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        GangZoneDestroy(Zona[id][ZonaCriada]);

        Zona[id][ZonaExiste] = 0;
        Zona[id][ZonaCor] = 0xFF;

        Zona[id][Local1] = 0.0;
        Zona[id][Local2] = 0.0;
        Zona[id][Local3] = 0.0;
        Zona[id][Local4] = 0.0;
    }
    return 1;
}
stock bCGz_EsconderZonaPlayer(playerid,id)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        GangZoneHideForPlayer(playerid,Zona[id][ZonaCriada]);
    }
    return 1;
}
stock bCGz_EsconderZonaTodos(id)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        GangZoneHideForAll(Zona[id][ZonaCriada]);
    }
    return 1;
}
stock bCGz_SetarCorZona(id,cor)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        Zona[id][ZonaCor] = cor;
    }
    return 1;
}
stock bCGz_GetarCorZona(id)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        return Zona[id][ZonaCor];
    }
    return 0;
}
stock bCGz_PlayerZona(playerid,id)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        new Float:x,Float:y,Float:z; GetPlayerPos(playerid, x, y, z);

        if(x >= Zona[id][Local1] && y >= Zona[id][Local2] && x <= Zona[id][Local3] && y <= Zona[id][Local4])
        {
            return 1;
        }
    }
    return 0;
}
stock bCGz_VeiculoZona(vehicleid,id)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        new Float:x,Float:y,Float:z; GetPlayerVehicle(vehicleid, x, y, z);

        if(x >= Zona[id][Local1] && y >= Zona[id][Local2] && x <= Zona[id][Local3] && y <= Zona[id][Local4])
        {
            return 1;
        }
    }
    return 0;
}
stock bCGz_ShowZonaPlayer(playerid,id)
{
    GangZoneStopFlashForPlayer(playerid,Zona[id][ZonaCriada]);
    GangZoneHideForPlayer(playerid,Zona[id][ZonaCriada]);
    GangZoneShowForPlayer(playerid,Zona[id][ZonaCriada],Zona[id][ZonaCor]);
    return 1;
}
stock bCGz_ShowZonaTodos(id,cor)
{
    bCGz_SetarCorZona(Zona[id][ZonaCriada],cor);

    GangZoneStopFlashForAll(Zona[id][ZonaCriada]);
    GangZoneHideForAll(Zona[id][ZonaCriada]);
    GangZoneShowForAll(Zona[id][ZonaCriada],Zona[id][ZonaCor]);

    return 1;
}
stock bCGz_PiscarPlayer(playerid,id,cor,tempo)
{
    if(IsPlayerConnected(playerid))
    {
        if(Zona[id][ZonaExiste] == 1)
        {
            GangZoneFlashForPlayer(playerid,Zona[id][ZonaCriada],cor);

            SetTimerEx("TempoPiscarPlayer",tempo,0,"id",playerid,Zona[id][ZonaCriada]);
        }
    }
    return 1;
}
stock bCGz_PiscarTodos(id,cor,tempo)
{
    if(Zona[id][ZonaExiste] == 1)
    {
        GangZoneFlashForAll(Zona[id][ZonaCriada],cor);

        SetTimerEx("TempoPiscar",tempo,0,"d",Zona[id][ZonaCriada]);
    }
    return 1;
}
// Usado apenas com o uso de Funзхes

TempoPiscarPlayer(playerid,id);

public TempoPiscarPlayer(playerid,id)
{
    GangZoneStopFlashForPlayer(playerid,id);
}
TempoPiscar(id);

public TempoPiscar(id)
{
    GangZoneStopFlashForAll(id);
}
Atualizaзao V1.1
° Todos os bugs Foram retirados e nao hб mais erros de compilaзao.

° Agora o set / get da gangzone estб bem rбpido.

° Totalmente Otimizada.

O download estб aн acima /\
Reply
#2

Legal muito bom '-'
Reply
#3

"bCGz_SetarCorZona(id,cor)"

Nгo funciono assim, precisa dar um Hide e depois um Show para o player. Tб errado, arruma isto ai.
Reply
#4

Tu ta falando de criar uma include assim?
Reply
#5

Toda essa include desotimizada e gigantesca sу por causa das funзхes "SetarCor e GetarCor" o resto tem nativamente em SAMP. Alias, o negуcio das cores que por hб caso estгo bugadas tambйm.


Eu nгo usaria.
Reply
#6

Precisa por mais informaзхes no post de como utilizar cada funзгo em vez de sу mostrar exemplos..
Exemplo:
pawn Код:
GangZoneCreate(Float:minx, Float:miny, Float:maxx, Float:maxy);
E Nгo acho que seja uma include avanзada

Mesmo assim .. Bom trabalho Gostei da ideia.
Reply
#7

essa include й a mesma coisa de usar as funзхes nativas do samp com a funзгo do bruno, achei que ficaria melhor.
Reply
#8

Vocк basicamente renomeou as funзхes, e adicionou uma pra obter a cor...
Enfim, apesar de ter muita falatуria, muita bagunзa e pouca utilidade, Parabйns.

E uma dica: Pequenas funзхes como bCGz_ShowZonaPlayer poderiam ter sido feitas utilizando macros.
Reply
#9

Se tu diz... kk'

Tб nervoso comigo por causa daquilo lб ?

Й bom parar com essa zuera que deus tб vendo .-.

#Tуpico:

Pessoal, por favor, caso achem bugs, me reportem para que nao haja mais problemas quanto ao uso da mesma!
Reply
#10

Eu jб achei um bug e falei.

Nгo tб alterando a cor da GZ.


"bCGz"

Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)