[Include] Big, Bang, Boom!
#1

Big, Bang, Boom!


Hello guys SA-MP Forums!

Well, out of nowhere I was listening to music Diбrio de um Detento to Racionais MC's and I had an idea:

Create an include on a bomb, atomic or not, that depends on you!

The following functions:

BBB_BombaExiste


The function is used to determine if there is a bomb or not.

Example of Use:

pawn Код:
if(BBB_Existe(1)) { break; }
BBB_CriarBomba


The function is used to create a bomb in such a place on the map.

Example of Use:

pawn Код:
new Float:X,Float:Y,Float:Z; BBB_CriarBomba(X,Y,Z,10.0,10);
Note: The time is in seconds, not in milliseconds!

If you use:

pawn Код:
BBB_CriarBomba(X,Y,Z,10.0,10000);
It will only be detonated after 10 milliseconds, which would be about 3 hours.

BBB_RemoverBomba


The function is used to remove a bomb ever created.

Example of Use:

pawn Код:
if(BBB_Existe(1)) { BBB_RemoverBomba(1); }
Print Screenґs


Bomb planted:



Exploding bomb:



Code


pawn Код:
#define Maximo_Bombas 1000
#define Maximo_Players 100

#define BombaTexto "Bomba\nExplosгo em %ds"
#define CorTexto 0xBFBFBFAA

enum Bomb
{
    Float:BombaX,
    Float:BombaY,
    Float:BombaZ,
    Float:BombaR,
    BombaExplosao,
    BombaExiste
};
stock Bomba[Maximo_Bombas][Bomb];
stock IconeBomba[Maximo_Bombas];
stock Text3D:TextoBomba[Maximo_Bombas];
stock FalaBomba[128];

stock UltimoID;
stock TempoCorrendo;

stock BBB_BombaExiste(id)
{
    if(Bomba[id][BombaExiste] == 1)
    {
        return 1;
    }
    return 0;
}
stock BBB_CriarBomba(Float:X,Float:Y,Float:Z,Float:R,tempo)
{
    if(UltimoID < Maximo_Bombas)
    {
        if(TempoCorrendo == 0)
        {
            SetTimer("ChecarBombas",1000,1);
            TempoCorrendo = 1;
        }
        Bomba[UltimoID][BombaX] = X;
        Bomba[UltimoID][BombaY] = Y;
        Bomba[UltimoID][BombaZ] = Z;
        Bomba[UltimoID][BombaR] = R;
        Bomba[UltimoID][BombaExplosao] = tempo;
        Bomba[UltimoID][BombaExiste] = 1;

        format(FalaBomba,sizeof(FalaBomba),BombaTexto,tempo);

        IconeBomba[UltimoID] = AddStaticPickup(363,0,X,Y,Z,-1);
        TextoBomba[UltimoID] = Create3DTextLabel(FalaBomba,CorTexto,X,Y,Z,R,0,0);

        printf("A bomba %d Foi criada, tempo para a explosгo: %ds",UltimoID,tempo);
        UltimoID++;
    }
    else
    {
        printf("A bomba %d nгo pode ser criada!",Maximo_Bombas);
    }
    return 1;
}
stock BBB_RemoverBomba(id)
{
    if(Bomba[id][BombaExiste] == 1)
    {
        if(TempoCorrendo == 0)
        {
            SetTimer("ChecarBombas",1000,1);
            TempoCorrendo = 1;
        }
        Bomba[id][BombaX] = 0.0;
        Bomba[id][BombaY] = 0.0;
        Bomba[id][BombaZ] = 0.0;
        Bomba[id][BombaR] = 0.0;
        Bomba[id][BombaExplosao] = 0;
        Bomba[id][BombaExiste] = 0;

        DestroyPickup(IconeBomba[id]);
        Delete3DTextLabel(TextoBomba[id]);

        IconeBomba[UltimoID] = 0;

        printf("A bomba %d Foi destruнda!",id);
        UltimoID--;
    }
    else
    {
        printf("A bomba %d nгo pode ser destruнda!",id);
    }
    return 1;
}
ChecarBombas();

public ChecarBombas()
{
    for(new i=0; i<Maximo_Bombas; i++)
    {
        if(Bomba[i][BombaExiste])
        {
            if(Bomba[i][BombaExplosao] == 0)
            {
                CreateExplosion(Bomba[i][BombaX],Bomba[i][BombaY],Bomba[i][BombaZ],7,Bomba[i][BombaR]);
                BBB_RemoverBomba(i);

                for(new i2=0; i2<Maximo_Players; i2++)
                {
                    SetPlayerHealth(i2,0.0);
                    GameTextForPlayer(i2,"~r~Bomba Detonada",5000,3);
                }
            }
            else
            {
                format(FalaBomba,sizeof(FalaBomba),BombaTexto,Bomba[i][BombaExplosao]);
                Update3DTextLabelText(TextoBomba[i],CorTexto,FalaBomba);

                Bomba[i][BombaExplosao]--;
            }
        }
    }
    return 1;
}
BY: BIEL_COP
Reply
#2

brilliant , good job!
Reply
#3

nice one
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)