Use o Search, o Rjjj e o Knife, fizeram algo parecido, basta usar o que tem na sua cabeзa para adaptar para o que vocк quiser.
|
new Float:RandomFogo[2][3] = {
{X,Y,Z},
{X,Y,Z}
};
//Troque o [2] pela quantidade de coordenadas
new rand;
rand = random(sizeof(RandomFogo));
CriarFogo(playerid, RandomFogo[rand][0], RandomFogo[rand][1], RandomFogo[rand][2]);
//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.0, 0.0, 0.0}, //TROQUE PELAS COORDENADAS QUE O FOGO PODE ESTAR
{0.1, 0.1, 0.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", 600000, true); // 10 MINUTOS
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 !
PHP код:
|
#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 !