[Ajuda] Incendio
#1

Bom Galera to com um FS de Incendio aki, mais so pode ter um incendio. eu modifikei e colokei pra poder ter mais de 1 incendio sendo que na hora de apagar so destroi o objeto se so tiver 1 incendio (pois o ID do incendio й definido como FogoID[0]) eu queria saber como setar o id do incendio automatico por exemplo:

um player cria um incendio (FOGOID[0]) qdo outro player criar logo dps o id do incendio aumentar (fogoid[1] e assim por diante)

alguem sabe como fazer?
Reply
#2

Faz com que o proprio id do player seja o id do fogo criado... e quando ele cair fora do sv, aquele fogo do id dele й destruido pq se nao vai entrar no sv outro cara de mesmo id logo apуs dele e ja vai ter fogo criado com esse id...
Reply
#3

mais o problema desse fogo ID й pro bombeiro poder apagar
Reply
#4

Mais o FS jб vem com o emprego bombeiro ou o bombeiro tб no seu GM? Se tiver no seu GM de um jeito de passar o FS para o GM e usar sua variбvel para checar se й bombeiro ou nгo.
Reply
#5

Quote:
Originally Posted by Los
Посмотреть сообщение
Mais o FS jб vem com o emprego bombeiro ou o bombeiro tб no seu GM? Se tiver no seu GM de um jeito de passar o FS para o GM e usar sua variбvel para checar se й bombeiro ou nгo.
nгo nгo, o problema й ke no FS o objeto do fogo й definido assim:

FogoID[0] = CreateObject(.....

ou seja, se tiver 2 fogos vai ter 2 objetos com o msm fogoid ai na hora de apagar nao destroi o objeto
Reply
#6

Poste o FS ou poste a parte de apagar o fogo ou o OnFilterScriptInit.
Reply
#7

pawn Код:
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////                                                                        ////
////                        Incendio FilterScript                           ////                ////
////                                                                        ////
////                     Por: [FeK] Ken ou rjjj                             ////
////                                                                        ////
////   Acessem:                                                             ////
////   [FeK] Fуrum: http://feksquad.forumeiros.com/                         ////
////   [FeK] Clгn: http://www.fekclan.blogspot.com/                         ////
////   [FeK] Projetos: http://www.fekprojetos.blogspot.com/                 ////
////                                                                        ////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//>>>>>>>>>>>>>>>>>>||  PROIBIDA A RETIRADA DOS CRЙDITOS  ||<<<<<<<<<<<<<<<<<<<<
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


#include <a_samp>



new FogoID[1];
new Float:FogoX[1], Float:FogoY[1], Float:FogoZ[1];
new bool:IncendioAcontecendo;
new bool:FogoApagado[1];
new bool:ApagandoIncendio[MAX_PLAYERS];
static Extintor[MAX_PLAYERS];
new MeioDeApagar[MAX_PLAYERS];
forward Incendio(playerid);
forward ApagarFogo(playerid);
forward MolotovEfeito(playerid);
#define EXTINTOR 5
#define CAMINHAO 10


public OnFilterScriptInit()
{
    print("\n//===================================//");
    print(" Incкndio by [FeK]Ken - FeK Squad Member");
    print("//===================================//\n");
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/incendiar", cmdtext, true, 10) == 0)
    {
        if(IncendioAcontecendo == true) return SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] Alguйm jб tocou fogo em algum lugar !");
        new Float:PlayerX, Float:PlayerY, Float:PlayerZ;
        GetPlayerPos(playerid,PlayerX,PlayerY,PlayerZ);
        FogoX[0]=PlayerX+-1.9826;   FogoY[0]=PlayerY+-1.5052;   FogoZ[0]=PlayerZ-2;
        IncendioAcontecendo = true;
        SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] O Local б sua frente pegarб Fogo em 5 segundos !");
        SetTimerEx("Incendio", 5000, false, "i", playerid);
        return 1;
    }
 if(strcmp("/molotov", cmdtext, true, 8) == 0)
    {
        if(IncendioAcontecendo == true) return SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] Alguйm jб tocou fogo em algum lugar !");
        SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] Vocк recebeu um Molotov para Comeзar um Incкndio !");
        SendClientMessage(playerid, 0x33FF00FF, "[INFO] Posicione-se e Segure ao Mбximo a Tecla de Atirar para Lanзar o Molotov !");
        GivePlayerWeapon(playerid, 18, 1);
        return 1;
    }
    if(strcmp("/caminhao", cmdtext, true, 9) == 0)
    {
        if(IncendioAcontecendo != true) return SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] Nгo Estб Acontecendo nenhum Incкndio !");
        new Float:PlayerX, Float:PlayerY, Float:PlayerZ, Float:PlayerA;
        GetPlayerPos(playerid,PlayerX,PlayerY,PlayerZ);
        GetPlayerFacingAngle(playerid, PlayerA);
        new Bombeiro = CreateVehicle(407, PlayerX,PlayerY,PlayerZ,PlayerA,3,1,60000);
        PutPlayerInVehicle(playerid, Bombeiro, 0);
        SetPlayerCheckpoint(playerid, FogoX[1]-8.3718,FogoY[1]-8.429,FogoZ[1],8.0);
        SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] Pare no CheckPoint e Apague o Fogo !");
        return 1;
    }
    if(strcmp("/extintor", cmdtext, true, 9) == 0)
    {
        if(IncendioAcontecendo != true) return SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] Nгo Estб Acontecendo nenhum Incкndio !");
        GivePlayerWeapon(playerid, 42, 999);
        SendClientMessage(playerid, 0xFFFF00AA, "[INFO] Apague o Fogo !");
        return 1;
    }
    return 0;
}


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(IncendioAcontecendo == true)
    {
        if((newkeys == KEY_FIRE && GetPlayerWeapon(playerid) == 42) || (newkeys == KEY_FIRE && GetVehicleModel(GetPlayerVehicleID(playerid)) == 407))
        {
            if((newkeys == KEY_FIRE && GetPlayerWeapon(playerid) == 42))
            {
                MeioDeApagar[playerid] = EXTINTOR;
                ApagandoIncendio[playerid] = true;
                if(Extintor[playerid] == 0)
                {
                    SetTimerEx("ApagarFogo", 12000, false, "i", playerid);
                    Extintor[playerid]++;
                }
            }
            else if(newkeys == KEY_FIRE && GetVehicleModel(GetPlayerVehicleID(playerid)) == 407)
            {
                if(IsPlayerInRangeOfPoint(playerid, 10.0, FogoX[1]-8.3718,FogoY[1]-8.429,FogoZ[1]))
                {
                    ApagandoIncendio[playerid] = true;
                    MeioDeApagar[playerid] = CAMINHAO;
                    if(Extintor[playerid] == 0)
                    {
                        SetTimerEx("ApagarFogo", 12000, false, "i", playerid);
                        Extintor[playerid]++;
                    }
                }
            }
        }
        else
        {
            MeioDeApagar[playerid]  = 0;
            ApagandoIncendio[playerid] = false;
        }
    }
    if(newkeys == KEY_FIRE && GetPlayerWeapon(playerid) == 18)
    {
        if(IncendioAcontecendo == true) return SendClientMessage(playerid, 0xFFFF00AA, "[AVISO] Alguйm jб tocou fogo em algum lugar !");
        new Float:PlayerX, Float:PlayerY, Float:PlayerZ;
        GetPlayerPos(playerid,PlayerX,PlayerY,PlayerZ);
        FogoX[0] = PlayerX+-1.9826+-19.8352+3-0.7077;  FogoY[0] = PlayerY+-1.5052+-9.3883-7+4.99;   FogoZ[0] = PlayerZ-2+0.0077;
        SetTimerEx("MolotovEfeito", 1700, false, "i", playerid);
    }
    return 1;
}



public Incendio(playerid)
{
    new string[200], NickName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, NickName, sizeof(NickName));
    format(string, sizeof(string), "[AVISO] Um Novo Incкndio surgiu na cidade. Culpado: %s !",NickName);
    SendClientMessageToAll(0x33FF00FF, string);
    FogoID[0] = CreateObject(18690,FogoX[0],FogoY[0],FogoZ[0],0,0,0,0);
    KillTimer(SetTimerEx("Incendio", 5000, false, "i", playerid));
    return 1;
}







public MolotovEfeito(playerid)
{
    new string[200], NickName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, NickName, sizeof(NickName));
    format(string, sizeof(string), "[AVISO] Um Novo Incкndio surgiu na cidade. Culpado: %s !",NickName);
    SendClientMessageToAll(0x33FF00FF, string);
    FogoID[0] = CreateObject(18690,FogoX[0],FogoY[0],FogoZ[0],0,0,0,0);
    IncendioAcontecendo = true;
    KillTimer(SetTimerEx("MolotovEfeito", 2500, false, "i", playerid));
    return 1;
}


public ApagarFogo(playerid)
{
    new string[150], NickName[MAX_PLAYER_NAME];
    if(Extintor[playerid] > 0 && ApagandoIncendio[playerid] == true && MeioDeApagar[playerid] > 0)
    {
        if(MeioDeApagar[playerid] == EXTINTOR)
        {
            for(new e = 0; e < 1; e++)
            {
                if(IsPlayerInRangeOfPoint(playerid, 10.0, FogoX[0], FogoY[0], FogoZ[0]))
                {
                    DestroyObject(FogoID[0]);
                    FogoApagado[0] = true;
                }
            }
            if(FogoApagado[0] == true)
            {
                IncendioAcontecendo = false;
                ApagandoIncendio[playerid] = false;
                Extintor[playerid] = 0;
                GetPlayerName(playerid, NickName, sizeof(NickName));
                format(string, sizeof(string), "[AVISO] Uma Salva de Palmas para Quem Apagou o Fogo, %s !", NickName);
                SendClientMessageToAll(0x33FF00FF, string);
                GivePlayerMoney(playerid, 25000);
                MeioDeApagar[playerid] = 0;
                SendClientMessage(playerid, 0x33CCFFAA, "[INFO] Vocк Recebeu uma Quantia de 25000 Mil como Prкmio !");
                KillTimer(SetTimerEx("ApagarFogo", 12000, false, "i", playerid));
            }
        }
        if(MeioDeApagar[playerid] == CAMINHAO && IsPlayerInRangeOfPoint(playerid, 10.0, FogoX[1]-8.3718,FogoY[1]-8.429,FogoZ[1]))
        {
            DisablePlayerCheckpoint(playerid);
            DestroyObject(FogoID[0]);
            FogoApagado[0] = true;
            if(FogoApagado[0] == true)
            {
                IncendioAcontecendo = false;
                ApagandoIncendio[playerid] = false;
                Extintor[playerid] = 0;
                GetPlayerName(playerid, NickName, sizeof(NickName));
                format(string, sizeof(string), "[AVISO] Uma Salva de Palmas para Quem Apagou o Fogo, %s !", NickName);
                SendClientMessageToAll(0x33FF00FF, string);
                GivePlayerMoney(playerid, 25000);
                MeioDeApagar[playerid] = 0;
                SendClientMessage(playerid, 0x33CCFFAA, "[INFO] Vocк Recebeu uma Quantia de 25000 Mil como Prкmio !");
                KillTimer(SetTimerEx("ApagarFogo", 12000, false, "i", playerid));
            }
        }
    }
    return 1;
}


public OnFilterScriptExit()
{
    DestroyObject(FogoID[0]);
    FogoApagado[0] = true;
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)