diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-03-10 15:52:38 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-03-10 15:52:38 -0300 |
commit | fbe42e219c9c3bc092d54f5da68d9fb320af1690 (patch) | |
tree | dcccd28ba407f866da2d140d241cf950038670f5 /npc | |
parent | 74a5f40b495b76c57d4e5e9fd222f58f5ac29fd3 (diff) | |
download | serverdata-fbe42e219c9c3bc092d54f5da68d9fb320af1690.tar.gz serverdata-fbe42e219c9c3bc092d54f5da68d9fb320af1690.tar.bz2 serverdata-fbe42e219c9c3bc092d54f5da68d9fb320af1690.tar.xz serverdata-fbe42e219c9c3bc092d54f5da68d9fb320af1690.zip |
Fires of Steam - The Death of Andrei Sakar (initial version)
Unfinished
Diffstat (limited to 'npc')
-rw-r--r-- | npc/000-0-1/_import.txt | 2 | ||||
-rw-r--r-- | npc/000-0/sailors.txt | 139 | ||||
-rw-r--r-- | npc/011-1/_mobs.txt | 1 | ||||
-rw-r--r-- | npc/029-0/_import.txt | 6 | ||||
-rw-r--r-- | npc/029-0/elora.txt | 91 | ||||
-rw-r--r-- | npc/029-0/mobs.txt | 170 | ||||
-rw-r--r-- | npc/029-0/sakar.txt | 53 | ||||
-rw-r--r-- | npc/029-0/warps.txt | 110 | ||||
-rw-r--r-- | npc/029-1/_import.txt | 2 | ||||
-rw-r--r-- | npc/029-2/_import.txt | 3 | ||||
-rw-r--r-- | npc/029-2/_warps.txt | 3 | ||||
-rw-r--r-- | npc/029-3/_import.txt | 3 | ||||
-rw-r--r-- | npc/029-3/_warps.txt | 3 | ||||
-rw-r--r-- | npc/029-4/_import.txt | 3 | ||||
-rw-r--r-- | npc/029-4/_warps.txt | 3 | ||||
-rw-r--r-- | npc/029-5/_import.txt | 3 | ||||
-rw-r--r-- | npc/029-5/_warps.txt | 3 | ||||
-rw-r--r-- | npc/029-6/_import.txt | 3 | ||||
-rw-r--r-- | npc/029-6/_warps.txt | 3 | ||||
-rw-r--r-- | npc/029-7/_import.txt | 3 | ||||
-rw-r--r-- | npc/029-7/_warps.txt | 3 | ||||
-rw-r--r-- | npc/029-8/_import.txt | 3 | ||||
-rw-r--r-- | npc/029-8/_mobs.txt | 33 | ||||
-rw-r--r-- | npc/_import.txt | 10 | ||||
-rw-r--r-- | npc/functions/seasons.txt | 3 |
25 files changed, 658 insertions, 1 deletions
diff --git a/npc/000-0-1/_import.txt b/npc/000-0-1/_import.txt new file mode 100644 index 000000000..014608c8d --- /dev/null +++ b/npc/000-0-1/_import.txt @@ -0,0 +1,2 @@ +// Map 000-0-1: Sailor's Room +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/000-0/sailors.txt b/npc/000-0/sailors.txt index cceffbc6b..18df7e94a 100644 --- a/npc/000-0/sailors.txt +++ b/npc/000-0/sailors.txt @@ -25,6 +25,7 @@ OnTouch: if (.@lang >= 0 && .@lang <= MAX_LANG) Lang = .@lang; showavatar 3; + if ($FIRESOFSTEAM) goto L_FiresOfSteam; mesn "Narrator"; mesc l("You open your eyes. The salt water is not helping your vision."); @@ -105,6 +106,144 @@ OnTouch: closedialog; close; +L_FiresOfSteam: + dispbottom l("Welcome to Moubootaur Legends: ##1Fires of Steam##0"); + warp "000-0-1", 26, 28; + sleep2(25); + atcommand("@refresh"); + asklanguage(LANG_ON_SEA); + clear; + mesn "Narrator"; + mesc l("You wake up in the middle of the night. How did you got here? WERE YOU KIDNAPPED?"); + next; + mesn "Narrator"; + mesc l("Memory slowly returns to you as you start growing aware of your surroundings. That's right, you are on a ship."); + next; + mesn "Narrator"; + mesc l("Andrei Sakar, the legendary Hurnscald Hero, as well as a group of alliance members which include yourself, are heading to the continent of Kolev, where is said to be a legendary town which helped the humans from the second era to survive."); + next; + mesn "Narrator"; + mesc l("They were sending food and supplies to the Alliance, but in the past months, there was a deadly silence. Not a single sign of life came from there."); + next; + mesn "Narrator"; + mesc l("Hoping for the best, but prepared for the worst, you set off to the legendary continent of Kolev; Your destination: Artis."); + next; + clear; + mesc l("Moubootaur Legends presents..."), 3; + mes ""; + mesc b(l(" Fires of Steam ")), 1; + mesc l("- The Death of Andrei Sakar -"), 1; + mes ""; + mesc l("An event to prepare for the Steam Release"), 2; + mes ""; + next; + mes ""; + mes ""; + mesn strcharinfo(0); + mesq l("We'll be arriving at Artis by the dawn, where Elora will be waiting for us. I can only hope, that the denizens are okay..."); + next; + closeclientdialog; + freeloop(true); + while (BaseLevel < 80) + getexp NextBaseExp, 100; + freeloop(false); + setq ShipQuests_Arpan, 5; + setq General_Narrator, 21; + .@acc=any(Mustache, Beard, HeartGlasses, Sunglasses, EyePatch, Shemagh, Monocle, Googles, BurglarMask, BanditMask, Shemagh); + .@ac2=any(OldTowel, SantaGlobe, RedStocking, LeatherBall, Doll, ZarkorScroll, ThetaBook, AshUrn, RubberDucky, DragonStar, BronzeQuiver, AstralCube, PlushMouboo, PlushMouboo, GraduationAlbum); + .@hat=any(TopHat, CaptainHat, SmileyCap, BowlerHat, DesertHat, PirateBandana, KnitHat, RightEyePatch, AntlersHat, BunnyEars, AxeHat, PaperBag, ShroomHat, AFKCap, BrimmedFeatherHat, CatEars, Earmuffs, CorsairHat, SailorHat, ChefHat, SkullMask, LeprechaunHat, PrsmHelmet, ImperialCrown, ClericCap); + .@ha2=any(DarkKnightHelmet, VikingHelmet, TerraniteMask, CenturionHelmet, ChemistHelmet, BullHelmet, DarkHelm, SamuraiHelmet, SamuraiHelmet); + .@che=any(RedknightArmor, AssassinChest, SaviorArmor, TerraniteArmor, GraduationRobe, GoldenWarlordPlate, RedknightArmor); + .@pan=any(JeansChaps, LeatherTrousers, AssassinPants, TerranitePants, WarlordPants, BromenalPants, ChainmailSkirt, AssassinPants, ChainmailSkirt, AssassinPants); + .@sho=any(DeepBlackBoots, HeliosBoots, WizardMoccasins, WarlordBoots, TerraniteBoots, AssassinBoots, WitchBoots, RedStockings, DeepBlackBoots, DeepBlackBoots); + .@nec=any(BarbarianAmulet, GoldenFourLeafAmulet, PlatinumFourLeafAmulet, BarbarianMasterAmulet, MoubooPendant, LifestonePendant, AlvasusPendant, ToothNecklace); + .@rin=any(GoldenPearlRing, GoldenBlackPearlRing); + .@glo=any(GoldenArmbands, WarlordGloves, AssassinGloves, TerraniteGloves, ManaGloves, SarabArmlet, LeatherGloves, MinerGloves); + .@shi=any(EnchantedHerbBag, RentCart, Barrel, MasterBola, PiouBola, AncientShield, BlueKnightShield, SteelShield, DragonShield, SnakeBola); + .@wpn=any(Setzer, Kitana, Lightsaber, BoneKnife, AncientSword, LongSword, RockKnife, DivineSword, CentaurSpear, Zambacutou, CursedScythe, Halberd, PynRifle, PynGatling, PynShotgun, PynRevolver, Dustynator, ChampionshipBow, BansheeBow, LeaderWand, ImmortalSword, LegendaryWand, ChampionshipBow, BansheeBow, LeaderWand, LegendaryWand); + .@bon=any(Pickaxe, Kanabo, ElficBow, Judgement, ThunderStaff, ReinbooWand, DarkPulsar, Skypiercer, IceGladius, RealBronzeGladius, PurpleBola, KidBola, SilkGloves, ClawPendant, Boots, LuffyxSummerShorts, UglyChristmasSweater, MinerTankTop, ContributorSweater, LinarianSoul, TuxSoul, DeliciousCookie, DarkEggshellHat, Wreath); + .@pet=any(PiouEgg, BhopEgg, MaggotCocoon, DoggyDog, CattyCat, BlackyCat, Ratte, ForestShroomEgg, FluffyEgg, DuckEgg, BatEgg, MoggunEgg, PinkieCrystal, DragonHorn, TamedSnakeEgg); + getitem .@acc, 1; + getitem .@ac2, 1; + getitem .@hat, 1; + getitem .@ha2, 1; + getitem .@che, 1; + getitem .@pan, 1; + getitem .@nec, 1; + getitem .@rin, 1; + getitem .@glo, 1; + getitem .@shi, 1; + getitem .@wpn, 1; + getitem .@bon, 1; + getitem .@pet, 1; + equip(.@acc); + equip(.@ac2); + equip(.@hat); + equip(.@ha2); + equip(.@che); + equip(.@pan); + equip(.@nec); + equip(.@rin); + equip(.@glo); + equip(.@shi); + equip(.@wpn); + Zeny+=rand2(40000); + #TUTORIAL_DONE=true; + #REG_DATE=gettimetick(2); + TUTORIAL=true; + MAGIC_LVL=7; + adddefaultskills; + sk_lvup(AL_DP); + sk_lvup(AL_DP); + sk_lvup(AL_DP); + sk_lvup(AL_DP); + sk_lvup(AL_DP); + sk_lvup(AL_DP); + sk_lvup(AL_DP); + sk_lvup(TMW2_TRANSMIGRATION); + sk_lvup(AM_REST); + sk_lvup(AM_RESSURECTHOMUN); + sk_lvup(AM_CALLHOMUN); + sk_lvup(TMW2_CRAFT); + sk_lvup(TMW2_CRAFT); + sk_lvup(TMW2_CRAFT); + sk_lvup(TMW2_CRAFT); + sk_lvup(TMW2_CRAFT); + sk_lvup(TMW2_MANABOMB); + sk_lvup(ASC_METEORASSAULT); + sk_lvup(TMW2_NAPALMBEAT); + sk_lvup(AC_SHOWER); + sk_lvup(any(ALL_INCCARRY, TF_STEAL, MC_VENDING, MC_DISCOUNT, MC_OVERCHARGE)); + sk_lvup(any(AC_OWL, SA_DRAGONOLOGY, TMW2_SAGE, CR_TRUST, SM_PROVOKE, ALL_FULL_THROTTLE, SA_FREECAST, TF_BACKSLIDING, NV_TRICKDEAD, MG_FIREWALL, SO_FIREWALK, GC_DARKILLUSION)); + sk_lvup(any(AC_OWL, SA_DRAGONOLOGY, TMW2_SAGE, CR_TRUST, SM_PROVOKE, ALL_FULL_THROTTLE, SA_FREECAST, TF_BACKSLIDING, NV_TRICKDEAD, MG_FIREWALL, SO_FIREWALK, GC_DARKILLUSION)); + sk_lvup(any(TMW2_KALMURK, TMW2_DRAGOKIN, TMW2_LIMERIZER, TMW2_HALHISS)); + sk_lvup(any(TMW2_KALWURF, TMW2_FAIRYKINGDOM, TMW2_FROZENHEART, TMW2_STONEHEART)); + sk_lvup(any(TMW2_KALBOO, TMW2_KALSPIKE, TMW2_CUTEHEART, TMW2_PLANTKINGDOM, TMW2_FAIRYEMPIRE)); + sk_lvup(any(TMW2_FIRSTAID, TMW2_HEALING, TMW2_MAGNUSHEAL, EVOL_AREA_PROVOKE)); + sk_lvup(any(TMW2_FIRSTAID, TMW2_HEALING, TMW2_MAGNUSHEAL, EVOL_AREA_PROVOKE)); + sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, SM_BASH, AC_CHARGEARROW)); + sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, SM_BASH, AC_CHARGEARROW)); + sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, SM_BASH, AC_CHARGEARROW)); + sk_lvup(any(TMW2_FROSTNOVA, TMW2_HOLYLIGHT, TMW2_LIGHTNING, TMW2_METEORSHOWER, TMW2_FIREBALL, TMW2_BEARSTRIKE, MC_MAMMONITE, SN_SHARPSHOOTING)); + sk_lvup(any(TMW2_FROSTNOVA, TMW2_HOLYLIGHT, TMW2_LIGHTNING, TMW2_METEORSHOWER, TMW2_FIREBALL, TMW2_BEARSTRIKE, MC_MAMMONITE, SN_SHARPSHOOTING)); + sk_lvup(any(TMW2_NILFHEIM, TMW2_JUDGMENT, TMW2_TEMPEST, TMW2_GAIABREAK, TMW2_ARMAGEDDON, TMW2_ALLINONE, ASC_METEORASSAULT, AC_SHOWER, SN_WINDWALK)); + sk_lvup(any(TMW2_GDP_MAXPOWER, TMW2_GDP_SPREGEN)); + getitem GuildCoin, rand2(500); + getitembound any(StrengthFruit, AgilityFruit, VitalityFruit, IntelligenceFruit, DexterityFruit, LuckFruit), 1, 4; + getitembound any(StrengthFruit, AgilityFruit, VitalityFruit, IntelligenceFruit, DexterityFruit, LuckFruit), 1, 4; + getitembound any(SacredBullet, EvilBullet), 400, 4; + getitembound any(ThornArrow, PoisonArrow, CursedArrow), 400, 4; + getitembound DeathPenalty, rand2(18), 4; + getitembound ScentGrenade, rand2(4), 4; + getitembound InsuranceContract, 1, 4; + getitembound Wurtzite, 6, 4; + percentheal 100,100; + LOCATION$ = "Tulim"; + TUT_VAR=gettimetick(2); + savepoint "029-0", 202, 85; + warp "029-0", 202, 85; + close; + OnInit: .sex = G_MALE; end; diff --git a/npc/011-1/_mobs.txt b/npc/011-1/_mobs.txt index 19c9d90cd..6ab25f283 100644 --- a/npc/011-1/_mobs.txt +++ b/npc/011-1/_mobs.txt @@ -4,3 +4,4 @@ 011-1,98,101,79,79 monster Fire Goblin 1067,90,60000,60000 011-1,100,99,79,79 monster Lava Slime 1097,30,60000,60000 011-1,101,98,79,79 monster Red Slime 1092,100,60000,60000 +011-1,97,102,79,79 monster Mineral Bif 1058,20,60000,60000 diff --git a/npc/029-0/_import.txt b/npc/029-0/_import.txt new file mode 100644 index 000000000..a84cdfd12 --- /dev/null +++ b/npc/029-0/_import.txt @@ -0,0 +1,6 @@ +// Map 029-0: Artis +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-0/elora.txt", +"npc/029-0/mobs.txt", +"npc/029-0/sakar.txt", +"npc/029-0/warps.txt", diff --git a/npc/029-0/elora.txt b/npc/029-0/elora.txt new file mode 100644 index 000000000..90edc32c8 --- /dev/null +++ b/npc/029-0/elora.txt @@ -0,0 +1,91 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// Fires of Steam: The Death of Andrei Sakar + +029-0,182,77,0 script Elora NPC_HUMAN_FEMALE_NOOB,{ + mesn; + mesq l("Greetings! I am %s from the Alliance.", .name$); + next; + switch ($FIRESOFSTEAM) { + case 1: + mesn; + mesq l("Thanks for travelling with Andrei Sakar to Artis! However, as you see, this town is deserted."); + next; + mesn; + mesq l("Sir Sakar is conducting an exploration on this land. However, you should be able to refine and tweak equipment, as well as crafting your own. Once you're ready, find him at the north exit of this town."); + break; + case 2: + case 3: + case 4: + case 5: + case 6: + mesn; + mesq l("Sir Sakar and adventurers are raiding Dracula's Fortress. It is a crazy place, though, who knows what they'll find? He should be at the north exit of this town."); + break; + case 7: + mesn; + mesq l("Sir Sakar and adventurers are raiding Dracula's Fortress. They found out the Underworld and there is a magic tree. You'll need a %s to use it.", getitemlink(DruidTreeBranch)); + mesc l("They are at north of the town."); + next; + mesn; + if (FIRESOFSTEAM_CD < gettimetick(2)) { + mesq l("Here is one."); + FIRESOFSTEAM_CD=gettimetick(2)+86400; // 24 hours + getitem DruidTreeBranch, 1; + } else { + mesq l("Some other adventurers are looking for it. Please wait %s more.", FuzzyTime(FIRESOFSTEAM_CD)); + } + break; + case 8: + mesn; + mesq l("Sakar can now bring you directly to Asphodel Moors. Scouts found a second town as well, from where the raiders seems to be coming from!"); + break; + case 9: + mesn; + mesq l("Contact a GM at Migglemire - the small town at center of swamps - to trigger the final showdown."); + break; + } + close; + +OnInit: + .distance=5; + .sex=G_FEMALE; + end; +} + +// UTILITY +029-0,96,110,0 duplicate(Nicholas) Nicholas#FoS NPC_NICHOLAS +029-0,89,75,0 duplicate(Fortiun) Fortiun#FoS NPC_FORTIUN +029-0,68,89,0 duplicate(Tolchi) Tolchi#FoS NPC_RAIJIN_FEMALE_LEGION_ARTIS +029-0,137,75,0 duplicate(Bracco) Bracco#FoS NPC_ORC_SAILOR +029-0,90,130,0 duplicate(Zitoni) Zitoni#FoS NPC_RUMLY +029-0,132,51,0 duplicate(Cynric) Cynric#FoS NPC_LLOYD +029-0,58,118,0 duplicate(Neko) Neko#FoS1 NPC_KAYLO + +// 029-1 +029-1,35,88,0 duplicate(Neko) Neko#FoS2 NPC_KAYLO +029-1,29,88,0 script Elora#1 NPC_HUMAN_FEMALE_NOOB,{ + mesn; + mesq l("Good luck out there!"); + .@m=mobcount("029-1", "all"); + mesc l("Dark Forest : %s monster(s) left", fnum(.@m)); + next; + select + l("Thanks!"), + l("Actually, can I return to Artis?"); + mes ""; + closeclientdialog; + if (@menu == 2) + warp "029-0", 90, 31; + close; +OnInit: + .distance=5; + .sex=G_FEMALE; + end; +} + +029-8,37,170,0 duplicate(Neko) Neko#FoS3 NPC_KAYLO + + diff --git a/npc/029-0/mobs.txt b/npc/029-0/mobs.txt new file mode 100644 index 000000000..b35138188 --- /dev/null +++ b/npc/029-0/mobs.txt @@ -0,0 +1,170 @@ +// 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 SFsetup1 { + areamonster("029-1", 15, 15, 77, 120, strmobinfo(1, Scar), Scar, 60, .e1$); + areamonster("029-1", 15, 15, 255, 255, strmobinfo(1, Crafty), Crafty, 320, .e1$); + areamonster("029-1", 15, 15, 255, 255, strmobinfo(1, GiantMutatedBat), GiantMutatedBat, 30, .e1$); + areamonster("029-1", 195, 15, 290, 100, strmobinfo(1, Forain), Forain, 54, .e1$); + areamonster("029-1", 77, 15, 195, 75, strmobinfo(1, GreenDragon), GreenDragon, 45, .e1$); + areamonster("029-1", 75, 75, 205, 100, strmobinfo(1, EliteDuck), EliteDuck, 40, .e1$); + areamonster("029-1", 15, 90, 75, 280, strmobinfo(1, Terranite), Terranite, 90, .e1$); + areamonster("029-1", 177, 140, 280, 280, strmobinfo(1, JackO), JackO, 80, .e1$); + areamonster("029-1", 175, 75, 280, 200, strmobinfo(1, RedSkullSlime), RedSkullSlime, 60, .e1$); + areamonster("029-1", 75, 175, 185, 280, strmobinfo(1, Michel), Michel, 60, .e1$); + areamonster("029-1", 80, 100, 180, 160, strmobinfo(1, CopperSkullSlime), CopperSkullSlime, 60, .e1$); + // MAP BOSS + monster("029-1", 147, 153, "Level Boss", MonsterGeneral, 1, .e1$); + return; +} + +function SFsetup2 { + return; +} + +function SFsetup3 { + return; +} + +function SFsetup4 { + return; +} + +function SFsetup5 { + return; +} + +function SFsetup6 { + return; +} + +function SFsetup7 { + return; +} + +function SFsetup8 { + 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; +} + + diff --git a/npc/029-0/sakar.txt b/npc/029-0/sakar.txt new file mode 100644 index 000000000..17be8e3d1 --- /dev/null +++ b/npc/029-0/sakar.txt @@ -0,0 +1,53 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// Fires of Steam: The Death of Andrei Sakar + +////////////////////////////////////////// +// Andrei Sakar Instances + +029-8,50,173,0 script Andrei Sakar#FoS298 NPC_ANDREI,{ + mesn; + mesq l("Do you want to return?"); + next; + select + l("No, thanks."), + l("Yes, I would like to go back to the Swamps."), + l("Yes, I would like to go back to Artis."); + mes ""; + closeclientdialog; + switch (@menu) { + case 2: + cwarp "029-7", 87, 56; + case 3: + cwarp "029-0", 90, 31; + } + close; +OnInit: + .distance=5; + end; +} + +029-8,50,173,0 script Andrei Sakar#FoS298 NPC_ANDREI,{ + mesn; + mesq l("Do you want to advance?"); + next; + select + l("No, thanks."), + l("Yes, I would like to explore!"), + rif($FIRESOFSTEAM >= 8, l("Yes, I would like to go to Asphodel Moors!")); + mes ""; + closeclientdialog; + switch (@menu) { + case 2: + cwarp "029-1", 32, 91; + case 3: + cwarp "029-8", 51, 174; + } + close; +OnInit: + .distance=5; + end; +} + diff --git a/npc/029-0/warps.txt b/npc/029-0/warps.txt new file mode 100644 index 000000000..4a559437b --- /dev/null +++ b/npc/029-0/warps.txt @@ -0,0 +1,110 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// Fires of Steam: The Death of Andrei Sakar + +////////////////////////////////////////// +// Warp Control + +// FiresOfSteam_Warp(ID) +function script FiresOfSteam_Warp { + if ($FIRESOFSTEAM < getarg(0)) + end; + if ($FIRESOFSTEAM > getarg(0)) + return true; + if ($FIRESOFSTEAM_CD > gettimetick(2)) { + dispbottom l("Time left until warp can be used: %s", FuzzyTime($FIRESOFSTEAM_CD)); + end; + } + return false; +} + +////////////////////////////////////////// +029-1,147,153,0 script #291to292 NPC_HIDDEN,1,0,{ + end; +OnTouch: + if (FiresOfSteam_Warp(2)) goto L_Warp; + // Additional conditions here (TODO) + // Fallthrough +L_Warp: + warp "029-2", 35, 70; + end; +} + +029-2,35,38,0 script #292to293 NPC_HIDDEN,3,0,{ + end; +OnTouch: + if (FiresOfSteam_Warp(3)) goto L_Warp; + // Fallthrough +L_Warp: + warp "029-3", 25, 68; + end; +} + +029-3,126,99,0 script #293to294 NPC_HIDDEN,3,0,{ + end; +OnTouch: + if (FiresOfSteam_Warp(4)) goto L_Warp; + // Fallthrough +L_Warp: + warp "029-4", 125, 18; + end; +} + +029-4,21,98,0 script #294to295 NPC_HIDDEN,3,0,{ + end; +OnTouch: + if (FiresOfSteam_Warp(5)) goto L_Warp; + // Fallthrough +L_Warp: + warp "029-5", 125, 18; + end; +} + +029-5,70,25,0 script #295to296 NPC_HIDDEN,1,0,{ + end; +OnTouch: + if (FiresOfSteam_Warp(6)) goto L_Warp; + // Fallthrough +L_Warp: + warp "029-6", 134, 31; + end; +} + +029-6,27,90,0 script Great Tree#296to297 NPC_NO_SPRITE,{ + if (FiresOfSteam_Warp(7)) goto L_Warp; + // Additional conditions here + mes l("Apparently, you'll need to use a %s to get this to work!", getitemlink(DruidTreeBranch)); + if (!countitem(DruidTreeBranch)) close; + next; + if (askyesno() == ASK_NO) close; + closeclientdialog; + delitem DruidTreeBranch, 1; + // Fallthrough +L_Warp: + warp "029-7", 96, 121; + end; + +OnInit: + .distance=3; + end; +} + +029-7,80,49,0 script Dead Tree#297to298 NPC_NO_SPRITE,{ + end; +OnTouch: + if (FiresOfSteam_Warp(8)) goto L_Warp; + // Additional conditions here (TODO) + // Fallthrough +L_Warp: + warp "029-8", 51, 174; + end; + +OnInit: + .distance=3; + end; +} + + + diff --git a/npc/029-1/_import.txt b/npc/029-1/_import.txt new file mode 100644 index 000000000..2b438ab71 --- /dev/null +++ b/npc/029-1/_import.txt @@ -0,0 +1,2 @@ +// Map 029-1: Dark Forest +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/029-2/_import.txt b/npc/029-2/_import.txt new file mode 100644 index 000000000..4d63c9041 --- /dev/null +++ b/npc/029-2/_import.txt @@ -0,0 +1,3 @@ +// Map 029-2: Graveyard Indoor +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-2/_warps.txt", diff --git a/npc/029-2/_warps.txt b/npc/029-2/_warps.txt new file mode 100644 index 000000000..070480277 --- /dev/null +++ b/npc/029-2/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-2: Graveyard Indoor warps +029-2,36,71,0 warp #029-2_36_71 5,0,029-1,147,154 diff --git a/npc/029-3/_import.txt b/npc/029-3/_import.txt new file mode 100644 index 000000000..90f23c596 --- /dev/null +++ b/npc/029-3/_import.txt @@ -0,0 +1,3 @@ +// Map 029-3: Crypt Basement +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-3/_warps.txt", diff --git a/npc/029-3/_warps.txt b/npc/029-3/_warps.txt new file mode 100644 index 000000000..7dd5e91f4 --- /dev/null +++ b/npc/029-3/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-3: Crypt Basement warps +029-3,26,67,0 warp #029-3_26_67 3,0,029-2,35,37 diff --git a/npc/029-4/_import.txt b/npc/029-4/_import.txt new file mode 100644 index 000000000..bc557bcb5 --- /dev/null +++ b/npc/029-4/_import.txt @@ -0,0 +1,3 @@ +// Map 029-4: Crypt Sub-Basement One +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-4/_warps.txt", diff --git a/npc/029-4/_warps.txt b/npc/029-4/_warps.txt new file mode 100644 index 000000000..ac33c430f --- /dev/null +++ b/npc/029-4/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-4: Crypt Sub-Basement One warps +029-4,126,17,0 warp #029-4_126_17 3,0,029-3,126,98 diff --git a/npc/029-5/_import.txt b/npc/029-5/_import.txt new file mode 100644 index 000000000..ac75177d0 --- /dev/null +++ b/npc/029-5/_import.txt @@ -0,0 +1,3 @@ +// Map 029-5: Crypt Sub-Basement Two +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-5/_warps.txt", diff --git a/npc/029-5/_warps.txt b/npc/029-5/_warps.txt new file mode 100644 index 000000000..4523acbd8 --- /dev/null +++ b/npc/029-5/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-5: Crypt Sub-Basement Two warps +029-5,126,17,0 warp #029-5_126_17 3,0,029-4,21,97 diff --git a/npc/029-6/_import.txt b/npc/029-6/_import.txt new file mode 100644 index 000000000..8b480e271 --- /dev/null +++ b/npc/029-6/_import.txt @@ -0,0 +1,3 @@ +// Map 029-6: Somewhere Strange +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-6/_warps.txt", diff --git a/npc/029-6/_warps.txt b/npc/029-6/_warps.txt new file mode 100644 index 000000000..46fd08bdb --- /dev/null +++ b/npc/029-6/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-6: Somewhere Strange warps +029-6,134,30,0 warp #029-6_134_30 0,0,029-5,70,26 diff --git a/npc/029-7/_import.txt b/npc/029-7/_import.txt new file mode 100644 index 000000000..7393f711a --- /dev/null +++ b/npc/029-7/_import.txt @@ -0,0 +1,3 @@ +// Map 029-7: Ruined Swamps +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-7/_warps.txt", diff --git a/npc/029-7/_warps.txt b/npc/029-7/_warps.txt new file mode 100644 index 000000000..e80a50599 --- /dev/null +++ b/npc/029-7/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-7: Ruined Swamps warps +029-7,105,124,0 warp #029-7_105_124 0,0,029-6,27,92 diff --git a/npc/029-8/_import.txt b/npc/029-8/_import.txt new file mode 100644 index 000000000..4e9ac800f --- /dev/null +++ b/npc/029-8/_import.txt @@ -0,0 +1,3 @@ +// Map 029-8: Asphodel Moors +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/029-8/_mobs.txt", diff --git a/npc/029-8/_mobs.txt b/npc/029-8/_mobs.txt new file mode 100644 index 000000000..7552c135b --- /dev/null +++ b/npc/029-8/_mobs.txt @@ -0,0 +1,33 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-8: Asphodel Moors mobs +029-8,190,74,53,40 monster Silkworm 1040,12,4500,6000 +029-8,152,116,48,43 monster Forest Maggot 1028,20,3600,12000 +029-8,89,116,43,31 monster Grass Snake 1042,5,6000,24000 +029-8,192,155,43,31 monster Grass Snake 1042,7,3000,12000 +029-8,228,64,17,32 monster Log Head 1031,4,5000,30000 +029-8,168,95,14,9 monster Bandit 1063,2,9000,18000 +029-8,115,150,45,26 monster Thief Slime 1105,5,11500,45000 +029-8,185,179,45,20 monster Blub 1008,4,60000,120000 +029-8,128,144,77,47 monster Green Slime 1024,10,10000,30000 +029-8,63,175,30,15 monster Little Green Slime 1025,5,10000,30000 +029-8,84,111,30,15 monster Little Green Slime 1025,5,10000,50000 +029-8,228,139,13,12 monster Mana Ghost 1101,2,10000,30000 +029-8,45,182,13,12 monster Mana Ghost 1101,4,10000,60000 +029-8,69,185,31,9 monster Skeleton 1084,4,6000,24000 +029-8,142,159,84,20 monster Swampling 1109,10,30000,60000 +029-8,162,99,17,15 monster Robin Bandit 1064,2,9000,18000 +029-8,184,48,38,13 monster Spiky Mushroom 1049,4,3000,12000 +029-8,103,86,31,27 monster Big Frog 1087,3,6000,60000 +029-8,85,118,49,43 monster Small Frog 1086,8,3000,30000 +029-8,152,165,44,40 monster Big Frog 1087,5,6000,75000 +029-8,188,188,49,18 monster Small Frog 1086,7,3000,30000 +029-8,228,65,16,8 monster Spider 1044,2,4000,8000 +029-8,209,58,16,28 monster Grass Snake 1042,4,3000,12000 +029-8,232,79,3,12 monster Wicked Mushroom 1050,3,6000,12000 +029-8,124,64,3,12 monster Wicked Mushroom 1050,7,3000,12000 +029-8,214,173,13,12 monster Zombie 1118,1,48000,120000 +029-8,37,181,13,12 monster Water Wisp 1116,3,10000,60000 +029-8,66,182,13,12 monster Fire Wisp 1115,1,10000,60000 +029-8,131,193,13,12 monster Green Slime Progenitor 1097,1,48000,120000 +029-8,149,174,84,19 monster Mud Slime 1096,4,30000,60000 +029-8,61,109,16,32 monster Serqet 1119,2,12000,60000 diff --git a/npc/_import.txt b/npc/_import.txt index bc61711ea..809906ea0 100644 --- a/npc/_import.txt +++ b/npc/_import.txt @@ -1,6 +1,7 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. @include "npc/000-0-0/_import.txt" +@include "npc/000-0-1/_import.txt" @include "npc/000-0/_import.txt" @include "npc/000-1/_import.txt" @include "npc/001-1/_import.txt" @@ -208,6 +209,15 @@ @include "npc/027-2/_import.txt" @include "npc/027-3/_import.txt" @include "npc/027-4/_import.txt" +@include "npc/029-0/_import.txt" +@include "npc/029-1/_import.txt" +@include "npc/029-2/_import.txt" +@include "npc/029-3/_import.txt" +@include "npc/029-4/_import.txt" +@include "npc/029-5/_import.txt" +@include "npc/029-6/_import.txt" +@include "npc/029-7/_import.txt" +@include "npc/029-8/_import.txt" @include "npc/042-0/_import.txt" @include "npc/042-1/_import.txt" @include "npc/042-10/_import.txt" diff --git a/npc/functions/seasons.txt b/npc/functions/seasons.txt index f79b9e3d2..dc9fddf49 100644 --- a/npc/functions/seasons.txt +++ b/npc/functions/seasons.txt @@ -123,7 +123,8 @@ function script sEaster { // Enable event set $EVENT$, "Easter"; addmonsterdrop(Forain, DarkEggshellHat, 2); - logmes "Enabled EASTER event.", LOGMES_ATCOMMAND; + if (playerattached()) + logmes "Enabled EASTER event.", LOGMES_ATCOMMAND; return; } |