diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-03-10 16:33:13 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-03-10 16:33:13 -0300 |
commit | eae5b0255b6f895abbdfa26127983d99fd479c18 (patch) | |
tree | 7f3453c6f4c48790dabef66a94e316201c1eea43 /npc | |
parent | 02c59c1901843ff369325be9ac8b9f58c25dcce6 (diff) | |
download | serverdata-eae5b0255b6f895abbdfa26127983d99fd479c18.tar.gz serverdata-eae5b0255b6f895abbdfa26127983d99fd479c18.tar.bz2 serverdata-eae5b0255b6f895abbdfa26127983d99fd479c18.tar.xz serverdata-eae5b0255b6f895abbdfa26127983d99fd479c18.zip |
[FoS] Fix several stuffs including exploits, add monster population of Artis.
This is not a coincidence, you'll understand in Migglemire.
Diffstat (limited to 'npc')
-rw-r--r-- | npc/000-0/sailors.txt | 93 | ||||
-rw-r--r-- | npc/029-0/_import.txt | 1 | ||||
-rw-r--r-- | npc/029-0/_mobs.txt | 10 | ||||
-rw-r--r-- | npc/029-0/elora.txt | 3 | ||||
-rw-r--r-- | npc/029-0/sakar.txt | 32 | ||||
-rw-r--r-- | npc/029-0/warps.txt | 4 |
6 files changed, 96 insertions, 47 deletions
diff --git a/npc/000-0/sailors.txt b/npc/000-0/sailors.txt index 18df7e94a..9ecbfee00 100644 --- a/npc/000-0/sailors.txt +++ b/npc/000-0/sailors.txt @@ -149,50 +149,48 @@ L_FiresOfSteam: 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; + if (!#TUTORIAL_DONE) { + .@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); + } + adddefaultskills(); sk_lvup(AL_DP); sk_lvup(AL_DP); sk_lvup(AL_DP); @@ -228,7 +226,7 @@ L_FiresOfSteam: 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 GuildCoin, rand2(500), 4; 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; @@ -237,9 +235,14 @@ L_FiresOfSteam: getitembound ScentGrenade, rand2(4), 4; getitembound InsuranceContract, 1, 4; getitembound Wurtzite, 6, 4; + getitembound MercCard_AndreiSakar, 1, 4; percentheal 100,100; LOCATION$ = "Tulim"; TUT_VAR=gettimetick(2); + #TUTORIAL_DONE=true; + #REG_DATE=gettimetick(2); + TUTORIAL=true; + MAGIC_LVL=7; savepoint "029-0", 202, 85; warp "029-0", 202, 85; close; diff --git a/npc/029-0/_import.txt b/npc/029-0/_import.txt index a84cdfd12..e10e238de 100644 --- a/npc/029-0/_import.txt +++ b/npc/029-0/_import.txt @@ -1,5 +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/_mobs.txt", "npc/029-0/elora.txt", "npc/029-0/mobs.txt", "npc/029-0/sakar.txt", diff --git a/npc/029-0/_mobs.txt b/npc/029-0/_mobs.txt new file mode 100644 index 000000000..5a144e18f --- /dev/null +++ b/npc/029-0/_mobs.txt @@ -0,0 +1,10 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 029-0: Artis mobs +029-0,95,85,59,53 monster Mouboo Slime 1201,12,90000,35000 +029-0,121,47,78,30 monster Mouboo 1023,36,90000,35000 +029-0,71,99,37,45 monster Mouboo 1023,36,90000,35000 +029-0,60,48,31,28 monster Alpha Mouboo 1056,4,90000,35000 +029-0,34,70,16,21 monster Bloody Mouboo 1119,3,90000,35000 +029-0,187,40,16,21 monster Moubi 1038,3,240000,35000 +029-0,113,47,95,22 monster Mineral Bif 1058,12,90000,35000 +029-0,33,112,11,36 monster Mineral Bif 1058,9,90000,35000 diff --git a/npc/029-0/elora.txt b/npc/029-0/elora.txt index 90edc32c8..e86449414 100644 --- a/npc/029-0/elora.txt +++ b/npc/029-0/elora.txt @@ -63,6 +63,9 @@ OnInit: 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 +// TODO: Custom shop for ores and blueprints +// TODO: Mercenary Shop +// TODO: Magic School NPCs // 029-1 029-1,35,88,0 duplicate(Neko) Neko#FoS2 NPC_KAYLO diff --git a/npc/029-0/sakar.txt b/npc/029-0/sakar.txt index 9c8ac24a7..2373698a5 100644 --- a/npc/029-0/sakar.txt +++ b/npc/029-0/sakar.txt @@ -29,7 +29,10 @@ OnInit: end; } -029-0,88,33,0 script Andrei Sakar#FoS298 NPC_ANDREI,{ +029-0,88,33,0 script Andrei Sakar#FoS290 NPC_ANDREI,{ + function prologue; + if (!FIRESOFSTEAM_CD) + prologue(); mesn; mesq l("Do you want to advance?"); next; @@ -46,6 +49,33 @@ OnInit: cwarp "029-8", 51, 174; } close; + +function prologue { + mesn; + mesq l("Thanks for attending my call. As you can clearly see, the town is deserted; We only have our own staff in this town."); + next; + mesn; + mesq l("They set up shop in the whole town, so if you are in need of upgrading your gear or buying health food, it might be a good idea to pay them a visit."); + next; + mesn; + mesq l("Now, we're hot on the trails of whatever is the reason for the town to be so empty. We blocked this road so the town is not overrun by the monsters outside."); + next; + mesn; + mesq l("We've traced them to the Dark Forest, our goal is to destroy every raider there and defeat whoever is behind this tragedy. All that while keeping an eye open for survivors."); + next; + mesn; + mesq l("After all the monsters in an area are defeated, they'll respawn at once. I know, that's not good, but well, nothing that can be done about it."); + next; + mesn; + mesq l("Anyway, after that I'll use my magic, so everyone can rest after that until I finish, or keep killing the new monsters for experience and drops."); + next; + mesn; + mesq l("Are you ready? There will be a long path ahead of us until this mistery is solved."); + FIRESOFSTEAM_CD=gettimetick(2); + next; + return; +} + OnInit: .distance=5; end; diff --git a/npc/029-0/warps.txt b/npc/029-0/warps.txt index deda3f8ae..714560b98 100644 --- a/npc/029-0/warps.txt +++ b/npc/029-0/warps.txt @@ -9,8 +9,10 @@ // FiresOfSteam_Warp(ID) function script FiresOfSteam_Warp { - if ($FIRESOFSTEAM < getarg(0)) + if ($FIRESOFSTEAM < getarg(0)) { + dispbottom l("Monsters remaining: %s", fnum(mobcount(getmap(), "all"))); end; + } if ($FIRESOFSTEAM > getarg(0)) return true; if ($FIRESOFSTEAM_CD > gettimetick(2)) { |