[AJUDA] Local de incendio
#6

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
PHP код:
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 !
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 !
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 !
#include <a_samp>
#define FILTERSCRIPT
#define HOLDING(%0) \
    
((newkeys & (%0)) == (%0))
#define RELEASED(%0) \
    
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
#define MAX_FOGO 2 //TROQUE PELA QUANTIDADE DE LOCAIS QUE VOCК COLOCAR AQUI EMBAIXO \/
new Float:Fogo[MAX_FOGO][3] = {
{
0.00.00.0}, //TROQUE PELAS COORDENADAS QUE O FOGO PODE ESTAR
{0.10.10.1}  //TROQUE PELAS COORDENADAS QUE O FOGO PODE ESTAR
};
new 
Servico[MAX_PLAYERS];
new 
Apagando[MAX_PLAYERS];
new 
Checagem[MAX_PLAYERS];
new 
F;
new 
Fire;
new 
Bombeiro[MAX_PLAYERS];
forward Check(playerid);
forward Fogoo();
public 
OnPlayerConnect(playerid)
{
    
Apagando[playerid] = 0;
    
Checagem[playerid] = 0;
    
Servico[playerid] = 0;
    return 
1;
}
public 
OnGameModeInit()
{
    
SetTimer("Fogoo"600000true); // 10 MINUTOS
    
0;
    return 
1;
}
public 
Fogoo()
{
    new 
fire random(sizeof(Fogo));
    if(
== 0)
    {
        
Fire CreateObject(18691Fogo[fire][0], Fogo[fire][1], Fogo[fire][2], 0.00.00.0);
        
F++;
        for(new 
0MAX_PLAYERSi++)
        {
            if(
Bombeiro[i] == && Servico[i] == 0)
            {
                new 
str[128];
                
format(strsizeof(str), "Hб um novo foco de incкndio ! Siga o checkpoint com um carro de bombeiros ou com um extintor agora !!"Fogo[fire][0], Fogo[fire][1], Fogo[fire][2]);
                
SendClientMessage(i, -1str);
                
SetPlayerCheckpoint(iFogo[fire][0], Fogo[fire][1], Fogo[fire][2], 8.0);
                
Servico[i] = 1;
                return 
1;
            }
        }
        return 
1;
    }
    return 
1;
}
public 
OnPlayerEnterCheckpoint(playerid)
{
    if(
Servico[playerid] == 1)
    {
        new 
extintor[2];
        
GetPlayerWeaponData(playerid9extintor[0], extintor[1]);
        if(
GetPlayerState(playerid) == && GetVehicleModel(GetPlayerVehicleID(playerid)) == 407 || extintor[0] != 42) return SendClientMessage(playerid, -1"Vocк nгo estб em um carro de bombeiros ou nгo estб com um extintor !");
        
SendClientMessage(playerid, -1"Vocк acaba de chegar no foco de incendio ! Aponte o extintor ou o jato d'agua para o fogo por 5 segundos para apagб-lo.");
        
Servico[playerid] = 2;
        return 
1;
    }
    return 
1;
}
public 
OnPlayerLeaveCheckpoint(playerid)
{
    if(
Servico[playerid] == 2)
    {
        
SendClientMessage(playerid, -1"Vocк saiu do foco de incendio sem apagб-lo ...");
        
Servico[playerid] = 1;
        return 
1;
    }
    return 
1;
}
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
HOLDING(KEY_FIRE) && Servico[playerid] == 2)
    {
        
SetTimerEx("Check"1000false"i"playerid);
        
Checagem[playerid] = 1;
        return 
1;
    }
    if(
RELEASED(KEY_FIRE) && Servico[playerid] == 2)
    {
        
Checagem[playerid] = 0;
        return 
1;
    }
    return 
1;
}
public 
Check(playerid)
{
    if(
Checagem[playerid] == 1)
    {
        
Apagando[playerid]++;
        
Checagem[playerid]++;
        
SetTimerEx("Check"1000false"i"playerid);
        return 
1;
    }
    if(
Checagem[playerid] == 2)
    {
        
Apagando[playerid]++;
        
Checagem[playerid]++;
        
SetTimerEx("Check"1000false"i"playerid);
        return 
1;
    }
    if(
Checagem[playerid] == 3)
    {
        
Apagando[playerid]++;
        
Checagem[playerid]++;
        
SetTimerEx("Check"1000false"i"playerid);
        return 
1;
    }
    if(
Checagem[playerid] == 4)
    {
        
Apagando[playerid]++;
        
Checagem[playerid]++;
        
SetTimerEx("Check"1000false"i"playerid);
        return 
1;
    }
    if(
Checagem[playerid] == && Apagando[playerid] == 5)
    {
        
SendClientMessage(playerid, -1"Parabйns ! Vocк apagou o fogo !");
        
Checagem[playerid] = 0;
        
Apagando[playerid] = 0;
        
Servico[playerid] = 0;
        
DestroyObject(Fire);
        
--;
        return 
1;
    }
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp(cmdtext"/bm"true) == 0)
    {
        if(
Bombeiro[playerid] == 1) return SendClientMessage(playerid, -1"Vocк jб й bombeiro.");
        
SendClientMessage(playerid, -1"Vocк acaba de tornar-se um bombeiro");
        
Bombeiro[playerid] = 1;
        return 
1;
    }
    return 
0;
}
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 !
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 !
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 ! 
tpw shadow5 a fs q vc fez funcionou d boa aparece as mensagens q ta tendo fogo em tal lugar,aparece o checkpoint, e aparece qdo xegou e talz.. sу q o problema й q qdo vc vai apagar as vezes ele apaga e outras n :S e o fogo fika flutuando tpw no teto do local :S
e uma pregunta: qdo for apagar o fogo tem q digitar /bm tda vez? q for apagar?

olha como ta..
sу adcionei a coordenada ali onde vc falou pra aparecer os fogos e talz.. e diminui o tempo pra testar n fikar esperando 10minutos
Код:
#include <a_samp>

#define FILTERSCRIPT

#define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))

#define RELEASED(%0) \
    (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))

#define MAX_FOGO 2 //TROQUE PELA QUANTIDADE DE LOCAIS QUE VOCК COLOCAR AQUI EMBAIXO \/

new Float:Fogo[MAX_FOGO][3] = {
{1945.0302,-1770.4335,13.3906}, //TROQUE PELAS COORDENADAS QUE O FOGO PODE ESTAR
{1352.3875,-1756.2349,13.5078}  //TROQUE PELAS COORDENADAS QUE O FOGO PODE ESTAR
};
new Servico[MAX_PLAYERS];
new Apagando[MAX_PLAYERS];
new Checagem[MAX_PLAYERS];
new F;
new Fire;
new Bombeiro[MAX_PLAYERS];

forward Check(playerid);
forward Fogoo();

public OnPlayerConnect(playerid)
{
    Apagando[playerid] = 0;
    Checagem[playerid] = 0;
    Servico[playerid] = 0;
    return 1;
}
public OnGameModeInit()
{
    SetTimer("Fogoo", 70000, true); // diminui o tempo pra testar pra n precisar fikar esperando 10minutos pra ir apagar o fogo
    F = 0;
    return 1;
}
public Fogoo()
{
    new fire = random(sizeof(Fogo));
    if(F == 0)
    {
        Fire = CreateObject(18691, Fogo[fire][0], Fogo[fire][1], Fogo[fire][2], 0.0, 0.0, 0.0);
        F++;
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(Bombeiro[i] == 1 && Servico[i] == 0)
            {
                new str[128];
                format(str, sizeof(str), "Hб um novo foco de incкndio ! Siga o checkpoint com um carro de bombeiros ou com um extintor agora !!", Fogo[fire][0], Fogo[fire][1], Fogo[fire][2]);
                SendClientMessage(i, -1, str);
                SetPlayerCheckpoint(i, Fogo[fire][0], Fogo[fire][1], Fogo[fire][2], 8.0);
                Servico[i] = 1;
                return 1;
            }
        }
        return 1;
    }
    return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
    if(Servico[playerid] == 1)
    {
        new extintor[2];
        GetPlayerWeaponData(playerid, 9, extintor[0], extintor[1]);
        if(GetPlayerState(playerid) == 2 && GetVehicleModel(GetPlayerVehicleID(playerid)) == 407 || extintor[0] != 42) return SendClientMessage(playerid, -1, "Vocк nгo estб em um carro de bombeiros ou nгo estб com um extintor !");
        SendClientMessage(playerid, -1, "Vocк acaba de chegar no foco de incendio ! Aponte o extintor ou o jato d'agua para o fogo por 5 segundos para apagб-lo.");
        Servico[playerid] = 2;
        return 1;
    }
    return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
    if(Servico[playerid] == 2)
    {
        SendClientMessage(playerid, -1, "Vocк saiu do foco de incendio sem apagб-lo ...");
        Servico[playerid] = 1;
        return 1;
    }
    return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(HOLDING(KEY_FIRE) && Servico[playerid] == 2)
    {
        SetTimerEx("Check", 1000, false, "i", playerid);
        Checagem[playerid] = 1;
        return 1;
    }
    if(RELEASED(KEY_FIRE) && Servico[playerid] == 2)
    {
        Checagem[playerid] = 0;
        return 1;
    }
    return 1;
}
public Check(playerid)
{
    if(Checagem[playerid] == 1)
    {
        Apagando[playerid]++;
        Checagem[playerid]++;
        SetTimerEx("Check", 1000, false, "i", playerid);
        return 1;
    }
    if(Checagem[playerid] == 2)
    {
        Apagando[playerid]++;
        Checagem[playerid]++;
        SetTimerEx("Check", 1000, false, "i", playerid);
        return 1;
    }
    if(Checagem[playerid] == 3)
    {
        Apagando[playerid]++;
        Checagem[playerid]++;
        SetTimerEx("Check", 1000, false, "i", playerid);
        return 1;
    }
    if(Checagem[playerid] == 4)
    {
        Apagando[playerid]++;
        Checagem[playerid]++;
        SetTimerEx("Check", 1000, false, "i", playerid);
        return 1;
    }
    if(Checagem[playerid] == 5 && Apagando[playerid] == 5)
    {
        SendClientMessage(playerid, -1, "Parabйns ! Vocк apagou o fogo !");
        Checagem[playerid] = 0;
        Apagando[playerid] = 0;
        Servico[playerid] = 0;
        DestroyObject(Fire);
        F --;
        return 1;
    }
    return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/bm", true) == 0)
    {
        if(Bombeiro[playerid] == 1) return SendClientMessage(playerid, -1, "Vocк jб й bombeiro.");
        SendClientMessage(playerid, -1, "Vocк acaba de tornar-se um bombeiro");
        Bombeiro[playerid] = 1;
        return 1;
    }
    return 0;
}

//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 ! 
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 ! 
//FEITO POR SHADOWW5 ! FEITO POR SHADOWW5 !
Reply


Messages In This Thread
[AJUDA] Local de incendio - by MaNo_NoIa - 10.06.2011, 13:23
Re: [AJUDA] Local de incendio - by Macintosh - 10.06.2011, 14:15
Respuesta: Re: [AJUDA] Local de incendio - by MaNo_NoIa - 10.06.2011, 14:36
Re: [AJUDA] Local de incendio - by Ricop522 - 10.06.2011, 15:31
Re: [AJUDA] Local de incendio - by Shadoww5 - 10.06.2011, 15:55
Respuesta: Re: [AJUDA] Local de incendio - by MaNo_NoIa - 10.06.2011, 17:29
Re: [AJUDA] Local de incendio - by Shadoww5 - 10.06.2011, 20:42
Respuesta: [AJUDA] Local de incendio - by MaNo_NoIa - 10.06.2011, 21:10
Re: [AJUDA] Local de incendio - by Ghost_ - 10.06.2011, 21:36
Re: [AJUDA] Local de incendio - by MaNo_NoIa - 10.06.2011, 22:12

Forum Jump:


Users browsing this thread: 1 Guest(s)