I got problem in my fire script. The fire didn't go away when the fire health is 0. This is my code
Code:
#define MAX_FIRES 10 // max amout of fires able to exist at once
#define BURNING_RADIUS 1.2 // radius in which you start burning if you're too close to a fire
#define FIRE_RADIUS_FOOT 8.0 // radius in which you can extinguish the fire by foot
#define CAR_RADIUS 12.0 // radius in which you can extinguish the fire by firetruck/SWAT Van
#define Z_DIFFERENCE 2.5 // height which is used for technical accurancy of extinguishing. Please do not change
#define FIRE_OBJECT_SLOT 1 // the slot used with SetPlayerAttachedObject and RemovePlayerAttachedObject
forward CreateFire(slot, Float:x, Float:y, Float:z);
forward CreateSmoke(Float:x, Float:y, Float:z);
forward DestroyFire(id);
forward DestroySmoke(id);
forward RemoveSmokeFromFire(id);
forward BurnoutTimer(fireid);
new FireBurnout[MAX_FIRES];
forward PutOutFire(fireid, type);
new ExtinguishFire[MAX_FIRES];
new FireFinal[MAX_FIRES];
forward FireContained(fireid);
forward RandomLAFireTimer();
forward RandomCCFireTimer();
forward BurningTimer(playerid);
forward TogglePlayerBurning(playerid, burning);
enum FireInfo
{
Fire_id,
Fire_Exists,
Float:Fire_X,
Float:Fire_Y,
Float:Fire_Z,
Smoke[5],
Fire_Taken,
Fire_Zone[MAX_ZONE_NAME]
}
new Fire[MAX_FIRES][FireInfo];
new PlayerFireTimer[MAX_PLAYERS][3]; // Burn, StopBurn, Extinguish a fire
new Float:PlayerOnFireHP[MAX_PLAYERS];
new FireHealth[MAX_FIRES];
// LAFD Fire Locations
forward StartRandomFire(randomloc);
forward GetNextFire();
new Float:RandomFire_X;
new Float:RandomFire_Y;
new Float:RandomFire_Z;
new RandomFireLocation[256];
new ActiveFires;
new FireObjects[MAX_FIRES][4];
new Float:RandomFireSpawns[][3] = {
{1567.887,-1894.786,13.632}, // 1: Metropolitan ave building automatic firealarm Vestols house
{1447.816,-2289.690,13.622}, // 2: LAX Terminal Entrance Hindenburg N
{2283.268,-1702.766,17.772}, // 3: Gym Parking lot fire, Liverpool rd
{2307.164,-1642.985,14.652}, // 4: Ten Green Bottles Kennedy Vld and Grove
{862.530,-1252.124,14.892},// 5: Stage A Fire Liberty Ave and Rodeo Dr
{2782.219,-1814.517,11.745},// 6: Forum Arena Main Entrance off of 425
{2371.641,-2134.402,27.260},// 7: Oil tank fire accross from trucking depotw Atlantic Avenu
{2397.253,-1898.087,13.622},// 8: Clukinbell Atlantic Ave
{1413.382,-1699.106,13.612},// 9: LA Courthouse
{1337.640,-1090.549,26.729},// 10: Lawyers office stlarwrence blvd
{1173.541,-1307.865,14.071},// 11: Allsaints front entrance
{1940.535,-1172.337,20.668},// 12: Park Fire brush park north and green st
{1518.149,-1451.034,13.800},// 13: Residential Obey Hangout Central Ave and pasadena
{1351.162,-1756.498,13.497},// 14: Sandreas Blvd Near Courthouse 247 comercial alarm
{1940.8149,-1773.1541,19.5250}, // 15: Gas Station Fire, San Andreas Blvd. and Gates.
{2852.2368,-1357.7797,11.0625}, // 16: Building Fire, Santa Monica Blvd. and Bush St.
{1460.0709,-1009.9266,26.8438}, // 17: Building Fire, Sunset Blvd. near ELM, LA Bank.
{813.6826,-1456.7595,14.2284}, // 18: House Fire, Giggles and Hell Street.
{1034.7396,-813.1819,101.8516}, // 19: House Fire, Rich St. Near VGB Circle Dr.
{-2100.77,-2337.32,29.98}, // 20: J&J's Restaurant Angel Pine
{-2153.8689,-2461.4744,30.8516},// 21: Cluck N Bell, Angel Pine
{-2094.28,-2463.16,29.98}, // 22: Cluck N Bell, Angel Pine
{-2104.64,-2432.15,29.98}, // 23: Phat Liquors, Angel Pine
{2001.1978,1540.5249,13.2319}, // 24: LV Pirate Ship
{1892.1227,2408.5327,10.8254}, // 25: LV North Souvenir Shop
{2471.9177,2036.7567,10.4692}, // 26: Burger shot @ Gere St
{2864.4194,2429.9978,10.6796}, // 27: Stripmall East LV
{2543.7000,1022.3932,10.4663}, // 28: Thomas St Strip Club
{2698.1152,900.7314,10.0080}, // 29: Franklin / Thomas Construction Site
{2825.4768,970.1545,10.3974}, // 30: East LV Franklin St Truck Dock
{767.7085,1890.9637,4.7346}, // 31: Transition / Thorn St Ammunation West LV
{763.5473,2033.9827,6.3581} // 32: West LV Power Substation
};
new RandomFireLocationNames[][] = {
"Metropolitan Ave and Pine St.",//1//
"LAX Terminal, Front Entrance, Hindenburg North.",//2//
"Gym Roof, Liverpool Rd.",//3//
"Ten Greenbottles, Grove St.",//4//
"Stage A, Liberty Ave and Rodeo Dr.",//5//
"Forum Arena, Main Entrance, off of I425.",//6//
"Oil Refinery, Atlantic Ave, just south of Industrial Blvd.",//7// Explosive
"Cluckin' Bell, Atlantic Avenue.",//8//
"Front Entrance, LA County Courthouse.",//9//
"Lawyer Firm, St Lawrence Blvd.",//10// Explosive
"All Saints, Front Bay, Health St and St Mary.",//11
"City Park, Park North and Green St.",//12//
"Obey Residence, Central Ave and Pasadena Blvd.",//13//
"24/7 San Andrea Blvd Near the Courthouse.",//14//
"San Andreas Blvd. and Gates.",//15// Explosive
"Santa Monica Blvd. and Bush St.",//16//
"Sunset Blvd. near ELM, LA Bank.",//17//
"Giggles and Hell Street.",//18//
"Rich St. Near VGB Circle Dr.",//19//
"J&J's Restaurant, Angel Pine",//20//
"Cluck N Bell, Angel Pine",//21//
"Ammu-Nation, Angel Pine",//22//
"Liquor Store, Angel Pine",//23//
"Las Vegas Blvd / Belview St, at the pirate ship.",//24// Explosive
"Jones St. Souvenir shop.",//25//
"Gere St. Burger Shot.",//26//
"Mint St. East LV at the Strip Mall.",//27// Explosive
"Thomas St. at the Strip Club.",//28//
"Franklin / Thomas St, at the Construction site.",//29//
"Franklin St. East LV at the Truck Dock.",//30// Explosive
"Transition / Thorn St. West LV.",//31// Explosive
"County Rd. 207 / Transition St. West LV."//32//
};
Code:
public RandomLAFireTimer()
{
if(ActiveFires < MAX_FIRES)
{
if(CheckLAFireMembers() < 1)
{
SetTimer("RandomLAFireTimer", 950000, false);
}
if(5> CheckLAFireMembers() > 1)
{
new randloc = random(23);
StartRandomFire(randloc);
SetTimer("RandomLAFireTimer", 950000, false);
}
if(9> CheckLAFireMembers() > 4)
{
new randloc = random(23);
StartRandomFire(randloc);
SetTimer("RandomLAFireTimer", 900000, false);
}
if(CheckLAFireMembers() > 8)
{
new randloc = random(23);
StartRandomFire(randloc);
SetTimer("RandomLAFireTimer", 700000, false);
}
}
}
public StartRandomFire(randomloc)
{
new string[512], zone[MAX_ZONE_NAME];
new RAND = randomloc;
RandomFire_X = RandomFireSpawns[RAND][0];
RandomFire_Y = RandomFireSpawns[RAND][1];
RandomFire_Z = RandomFireSpawns[RAND][2];
new fireslot = GetNextFire();
format(RandomFireLocation, 256, "%s", RandomFireLocationNames[RAND]);
FireBurnout[fireslot] = SetTimerEx("BurnoutTimer",300000,0, "i", fireslot);
Fire[fireslot][Fire_Exists] = 1;
Fire[fireslot][Fire_id] = fireslot;
ActiveFires ++;
Fire[fireslot][Fire_X] = RandomFireSpawns[RAND][0];
Fire[fireslot][Fire_Y] = RandomFireSpawns[RAND][1];
Fire[fireslot][Fire_Z] = RandomFireSpawns[RAND][2];
FireObjects[fireslot][0] = CreateFire(fireslot, RandomFire_X, RandomFire_Y, RandomFire_Z);
FireObjects[fireslot][1] = CreateFire(fireslot, RandomFire_X+random(3),RandomFire_Y+random(3),RandomFire_Z+random(2));
FireObjects[fireslot][2] = CreateFire(fireslot, RandomFire_X-random(3),RandomFire_Y-random(3),RandomFire_Z-random(2));
FireObjects[fireslot][3] = CreateFire(fireslot, RandomFire_X+random(3),RandomFire_Y-random(3),RandomFire_Z+random(1));
Get3DZone(RandomFire_X, RandomFire_Y, RandomFire_Z, zone, sizeof(zone));
Fire[fireslot][Fire_Zone] = zone;
FireHealth[fireslot] = 100;
format(string, sizeof(string), "Fire Health: \n %d /100", FireHealth[fireslot]);
FireHealthText[fireslot] = CreateDynamic3DTextLabel(string, COLOR_WHITE, RandomFire_X, RandomFire_Y, RandomFire_Z, 20);
foreach(Player, i)
{
if(IsPlayerInCircle(i,RandomFire_X,RandomFire_Y,70))
{
format(string, sizeof(string), "(INFO) A fire has erupted in the vicinity.");
SendClientMessage(i,COLOR_YELLOW,string);
}
if((PlayerInfo[i][pMember] == 4 && RAND < 24))
{
new szMessage[256];
new Float:x2,Float:y2,Float:z2;
GetPlayerPos(i,x2,y2,z2);
PlayAudioStreamForPlayer(i, "http://fg-rp.com/sounds/beep.mp3");
format(szMessage, sizeof(szMessage), "* %s's pager just activated, you hear the sound.", GetPlayerNameEx(i));
ProxDetector(25.0, i, szMessage, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if((IsPlayerInCircle(i, 1761.3842,-1783.0110, 15)) || (IsPlayerInCircle(i, 1760.6700,2082.7996, 15)))
{
PlayAudioStreamForPlayer(i, "http://fg-rp.com/sounds/beep.mp3");
}
}
if((PlayerInfo[i][pMember] == 17 && RAND > 23))
{
new szMessage[256];
new Float:x2,Float:y2,Float:z2;
GetPlayerPos(i,x2,y2,z2);
PlayAudioStreamForPlayer(i, "http://fg-rp.com/sounds/beep.mp3");
format(szMessage, sizeof(szMessage), "* %s's pager just activated, you hear the sound.", GetPlayerNameEx(i));
ProxDetector(25.0, i, szMessage, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if((IsPlayerInCircle(i, 1761.3842,-1783.0110, 15)) || (IsPlayerInCircle(i, 1760.6700,2082.7996, 15)))
{
PlayAudioStreamForPlayer(i, "http://fg-rp.com/sounds/beep.mp3");
}
}
}