// TMW2 scripts. // Author: // Jesusalva // Description: // Fires of Steam: The Death of Andrei Sakar ////////////////////////////////////////// // Monster Control - script SteamFire#Ctrl 32767,{ function SFsetup1; function SFsetup2; function SFsetup3; function SFsetup4; function SFsetup5; function SFsetup6; function SFsetup7; function SFsetup8; function SFreset; end; OnInit: .e1$="SteamFire#Ctrl::OnEvent1"; .e2$="SteamFire#Ctrl::OnEvent2"; .e3$="SteamFire#Ctrl::OnEvent3"; .e4$="SteamFire#Ctrl::OnEvent4"; .e5$="SteamFire#Ctrl::OnEvent5"; .e6$="SteamFire#Ctrl::OnEvent6"; .e7$="SteamFire#Ctrl::OnEvent7"; .e8$="SteamFire#Ctrl::OnEvent8"; SFsetup1(); SFsetup2(); SFsetup3(); SFsetup4(); SFsetup5(); SFsetup6(); SFsetup7(); SFsetup8(); end; function SFspawn { .@am=($FIRESOFSTEAM > getarg(8) ? (getarg(6)*6/10) : getarg(6)); debugmes "Spawning %d/%d mobs on %s", .@am, getarg(6), getarg(0); areamonster(getarg(0), getarg(1), getarg(2), getarg(3), getarg(4), strmobinfo(1, getarg(5)), getarg(5), .@am, getarg(7)); return; } function SFsetup1 { SFspawn("029-1", 15, 15, 77, 120, Scar, 60, .e1$, 1); SFspawn("029-1", 15, 15, 255, 255, Crafty, 320, .e1$, 1); SFspawn("029-1", 15, 15, 255, 255, GiantMutatedBat, 30, .e1$, 1); SFspawn("029-1", 15, 15, 255, 255, Scar, 100, .e1$, 1); SFspawn("029-1", 195, 15, 290, 100, Forain, 54, .e1$, 1); SFspawn("029-1", 77, 15, 195, 75, GreenDragon, 45, .e1$, 1); SFspawn("029-1", 75, 75, 205, 100, EliteDuck, 40, .e1$, 1); SFspawn("029-1", 15, 90, 75, 280, Terranite, 90, .e1$, 1); SFspawn("029-1", 177, 140, 280, 280, JackO, 80, .e1$, 1); SFspawn("029-1", 175, 75, 280, 200, RedSkullSlime, 60, .e1$, 1); SFspawn("029-1", 75, 175, 185, 280, Michel, 60, .e1$, 1); SFspawn("029-1", 80, 100, 180, 160, CopperSkullSlime, 60, .e1$, 1); // MAP BOSS monster("029-1", 147, 153, "Level Boss", MonsterGeneral, 1, .e1$); return; } function SFsetup2 { SFspawn("029-2", 20, 28, 51, 33, BlackMamba, 15, .e2$, 2); SFspawn("029-2", 20, 34, 51, 42, GreenSkullSlime, 20, .e2$, 2); SFspawn("029-2", 20, 42, 32, 70, Centaur, 15, .e2$, 2); SFspawn("029-2", 39, 42, 51, 70, TerraniteProtector, 15, .e2$, 2); SFspawn("029-2", 32, 42, 40, 70, GoboBear, 13, .e2$, 2); SFspawn("029-2", 20, 20, 35, 70, Moonshroom, 5, .e2$, 2); SFspawn("029-2", 20, 20, 35, 70, RobinBandit, 5, .e2$, 2); // MAP BOSS monster("029-2", 46, 68, "Level Boss", YetiKing, 1, .e2$); return; } function SFsetup3 { SFspawn("029-3", 20, 20, 130, 100, DustGatling, 60, .e3$, 3); SFspawn("029-3", 20, 20, 130, 100, Scar, 60, .e3$, 3); SFspawn("029-3", 20, 20, 130, 100, GreenSkullSlime, 20, .e3$, 3); SFspawn("029-3", 20, 20, 48, 62, Troll, 35, .e3$, 3); SFspawn("029-3", 20, 62, 53, 100, Michel, 35, .e3$, 3); SFspawn("029-3", 47, 20, 72, 50, LavaSkullSlime, 35, .e3$, 3); SFspawn("029-3", 72, 20, 130, 50, ShadowPixie, 25, .e3$, 3); SFspawn("029-3", 67, 49, 130, 64, GoboBear, 35, .e3$, 3); SFspawn("029-3", 67, 62, 99, 100, BlackMamba, 35, .e3$, 3); SFspawn("029-3", 100, 62, 130, 100, JackO, 35, .e3$, 3); // MAP BOSS monster("029-3", 82, 89, "Level Boss", FallenKing2, 1, .e3$); return; } function SFsetup4 { // MAP BOSS monster("029-4", 73, 77, "Level Boss", PsiConscience, 1, .e4$); return; } function SFsetup5 { // MAP BOSS monster("029-5", 70, 26, "Level Boss", TerraniteKing, 1, .e5$); return; } function SFsetup6 { // MAP BOSS monster("029-6", 31+9, 91, "Level Boss", PinkieEmperor, 1, .e6$); return; } function SFsetup7 { // MAP BOSS monster("029-7", 66, 35, "Level Boss", PanthomLord, 1, .e7$); return; } function SFsetup8 { // MAP BOSS monster("029-8", 206, 149, "Level Boss", Tortuga, 1, .e8$); return; } // SFreset(map, state) function SFreset { .@m$=getarg(0); .@s=getarg(1); .@m=mobcount(.@m$, "all"); if (!.@m) { if ($FIRESOFSTEAM == .@s) { $FIRESOFSTEAM+=1; $FIRESOFSTEAM_CD=gettimetick(2)+10800; // 3 hours cooldown (180 min) return 2; } else { return 1; } } else if (.@m % 25 == 0) { mapannounce(.@m$, sprintf("%s monster(s) left", fnum(.@m)), 0); } return 0; } OnEvent1: .@f=SFreset("029-1", .e1$, 1); if (.@f == 2) mapannounce("029-1", "Dracula's Castle magical seal has dissipated!", 0); if (.@f) SFsetup1(); end; OnEvent2: .@f=SFreset("029-2", .e2$, 2); if (.@f == 2) mapannounce("029-2", "Map cleared!", 0); if (.@f) SFsetup2(); end; OnEvent3: .@f=SFreset("029-3", .e3$, 3); if (.@f == 2) mapannounce("029-3", "Map cleared!", 0); if (.@f) SFsetup3(); end; OnEvent4: .@f=SFreset("029-4", .e4$, 4); if (.@f == 2) mapannounce("029-4", "Map cleared!", 0); if (.@f) SFsetup4(); end; OnEvent5: .@f=SFreset("029-5", .e5$, 5); if (.@f == 2) mapannounce("029-5", "Map cleared!", 0); if (.@f) SFsetup5(); end; OnEvent6: .@f=SFreset("029-6", .e6$, 6); if (.@f == 2) mapannounce("029-6", "Map cleared! You'll need a Druid Tree Branch to use the tree warp to next area.", 0); if (.@f) SFsetup6(); end; OnEvent7: .@f=SFreset("029-7", .e7$, 7); if (.@f == 2) mapannounce("029-7", "Swamps cleared! Meet Andrei Sakar on the other side!", 0); if (.@f) SFsetup7(); end; OnEvent8: .@f=SFreset("029-8", .e8$, 8); if (.@f == 2) mapannounce("029-8", "Map cleared! Contact a GM in Migglemire Town!", 0); if (.@f) SFsetup8(); end; }