summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-03-10 15:52:38 -0300
committerJesusaves <cpntb1@ymail.com>2021-03-10 15:52:38 -0300
commitfbe42e219c9c3bc092d54f5da68d9fb320af1690 (patch)
treedcccd28ba407f866da2d140d241cf950038670f5
parent74a5f40b495b76c57d4e5e9fd222f58f5ac29fd3 (diff)
downloadserverdata-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
-rw-r--r--conf/map/maps.conf10
-rw-r--r--db/map_index.txt496
-rw-r--r--maps/re/000-0-1.mcachebin0 -> 58 bytes
-rw-r--r--maps/re/029-0.mcachebin0 -> 3180 bytes
-rw-r--r--maps/re/029-1.mcachebin0 -> 6731 bytes
-rw-r--r--maps/re/029-2.mcachebin0 -> 200 bytes
-rw-r--r--maps/re/029-3.mcachebin0 -> 477 bytes
-rw-r--r--maps/re/029-4.mcachebin0 -> 755 bytes
-rw-r--r--maps/re/029-5.mcachebin0 -> 424 bytes
-rw-r--r--maps/re/029-6.mcachebin0 -> 1303 bytes
-rw-r--r--maps/re/029-7.mcachebin0 -> 1231 bytes
-rw-r--r--maps/re/029-8.mcachebin0 -> 5338 bytes
-rw-r--r--npc/000-0-1/_import.txt2
-rw-r--r--npc/000-0/sailors.txt139
-rw-r--r--npc/011-1/_mobs.txt1
-rw-r--r--npc/029-0/_import.txt6
-rw-r--r--npc/029-0/elora.txt91
-rw-r--r--npc/029-0/mobs.txt170
-rw-r--r--npc/029-0/sakar.txt53
-rw-r--r--npc/029-0/warps.txt110
-rw-r--r--npc/029-1/_import.txt2
-rw-r--r--npc/029-2/_import.txt3
-rw-r--r--npc/029-2/_warps.txt3
-rw-r--r--npc/029-3/_import.txt3
-rw-r--r--npc/029-3/_warps.txt3
-rw-r--r--npc/029-4/_import.txt3
-rw-r--r--npc/029-4/_warps.txt3
-rw-r--r--npc/029-5/_import.txt3
-rw-r--r--npc/029-5/_warps.txt3
-rw-r--r--npc/029-6/_import.txt3
-rw-r--r--npc/029-6/_warps.txt3
-rw-r--r--npc/029-7/_import.txt3
-rw-r--r--npc/029-7/_warps.txt3
-rw-r--r--npc/029-8/_import.txt3
-rw-r--r--npc/029-8/_mobs.txt33
-rw-r--r--npc/_import.txt10
-rw-r--r--npc/functions/seasons.txt3
37 files changed, 921 insertions, 244 deletions
diff --git a/conf/map/maps.conf b/conf/map/maps.conf
index 203bb212d..ba32ae519 100644
--- a/conf/map/maps.conf
+++ b/conf/map/maps.conf
@@ -2,6 +2,7 @@ map_removed: (
)
map_list: (
"000-0-0",
+ "000-0-1",
"000-0",
"000-1",
"001-1",
@@ -209,6 +210,15 @@ map_list: (
"027-2",
"027-3",
"027-4",
+ "029-0",
+ "029-1",
+ "029-2",
+ "029-3",
+ "029-4",
+ "029-5",
+ "029-6",
+ "029-7",
+ "029-8",
"042-0",
"042-1",
"042-10",
diff --git a/db/map_index.txt b/db/map_index.txt
index c2856a8d2..645846835 100644
--- a/db/map_index.txt
+++ b/db/map_index.txt
@@ -1,244 +1,254 @@
000-0-0 1
-000-0 2
-000-1 3
-001-1 4
-001-10-1 5
-001-10 6
-001-11 7
-001-12 8
-001-2 9
-001-3-1 10
-001-3 11
-001-4 12
-001-5 13
-001-6 14
-001-7 15
-001-8 16
-001-9 17
-002-1 18
-002-2 19
-002-3 20
-002-4 21
-002-5 22
-003-0-1 23
-003-0-2 24
-003-0 25
-003-1-1 26
-003-1-2 27
-003-1-3 28
-003-1 29
-003-10 30
-003-13 31
-003-2-1 32
-003-2 33
-003-3 34
-003-4-1 35
-003-4 36
-003-5 37
-003-6 38
-003-7 39
-003-8 40
-003-9-1 41
-003-9 42
-004-1 43
-004-2-1 44
-004-2 45
-005-1-1 46
-005-1 47
-005-2-1 48
-005-2 49
-005-3 50
-005-4 51
-005-5 52
-005-6 53
-005-7 54
-006-0 55
-006-1 56
-006-2-1 57
-006-2-2 58
-006-2-3 59
-006-2 60
-006-3 61
-006-4-1 62
-006-4 63
-006-5 64
-007-1 65
-007-2 66
-008-0 67
-008-1 68
-008-2 69
-009-1 70
-009-2 71
-009-3 72
-009-4 73
-009-5 74
-009-6 75
-009-7 76
-010-1-1 77
-010-1 78
-010-2 79
-011-1 80
-011-2 81
-011-3 82
-012-1 83
-012-2 84
-012-3 85
-012-4 86
-012-5 87
-012-6 88
-012-7 89
-012-8 90
-013-1 91
-014-1 92
-014-2-1 93
-014-2 94
-014-3 95
-014-4 96
-014-5-1 97
-014-5 98
-015-1 99
-015-2 100
-015-3 101
-015-4 102
-015-5 103
-015-6 104
-015-7 105
-015-8-1 106
-015-8 107
-016-1 108
-016-6 109
-016-7 110
-017-0 111
-017-1 112
-017-10 113
-017-2-1 114
-017-2-2 115
-017-2 116
-017-3 117
-017-4 118
-017-5 119
-017-6 120
-017-7 121
-017-8 122
-018-1-1 123
-018-1 124
-018-2-1 125
-018-2-2 126
-018-2-3 127
-018-2-4 128
-018-2-5 129
-018-2-6 130
-018-2-7 131
-018-2-8 132
-018-2 133
-018-3 134
-018-4-1 135
-018-4-2 136
-018-4 137
-018-5-0 138
-018-5-1 139
-018-5-2 140
-018-5-3 141
-018-5-4 142
-018-5-5 143
-018-5-boss 144
-018-5 145
-018-6-0 146
-018-6-1 147
-018-6-2 148
-018-6-3 149
-018-7-1 150
-018-7 151
-019-1-1 152
-019-1 153
-019-2 154
-019-3 155
-019-4-1 156
-019-4 157
-020-1 158
-020-2 159
-020-3 160
-020-4 161
-020-5 162
-020-6 163
-020-7-1 164
-020-7-2 165
-020-7 166
-021-0 167
-021-1 168
-021-2 169
-021-3 170
-021-4 171
-022-1 172
-023-1 173
-023-2 174
-023-3-1 175
-023-3-2 176
-023-3 177
-024-1 178
-024-10 179
-024-11 180
-024-12 181
-024-13 182
-024-14 183
-024-15 184
-024-16 185
-024-2 186
-024-3 187
-024-4 188
-024-5 189
-024-6 190
-024-7 191
-024-8 192
-024-9 193
-025-1 194
-025-2-1 195
-025-2-2 196
-025-2-3 197
-025-2-4 198
-025-2 199
-025-3 200
-026-0 201
-026-1 202
-026-2 203
-027-0 204
-027-1 205
-027-2 206
-027-3 207
-027-4 208
-042-0 209
-042-1 210
-042-10 211
-042-11 212
-042-2 213
-042-3 214
-042-4 215
-042-5 216
-042-6 217
-042-7 218
-042-8 219
-042-9 220
-boss 221
-botcheck 222
-guilds 223
-maze0 224
-maze1 225
-maze10 226
-maze11 227
-maze12 228
-maze13 229
-maze14 230
-maze15 231
-maze2 232
-maze3 233
-maze4 234
-maze5 235
-maze6 236
-maze7 237
-maze8 238
-maze9 239
-sec_pri 240
-soren-2 241
-soren 242
-test 243
-testbg 244
+000-0-1 2
+000-0 3
+000-1 4
+001-1 5
+001-10-1 6
+001-10 7
+001-11 8
+001-12 9
+001-2 10
+001-3-1 11
+001-3 12
+001-4 13
+001-5 14
+001-6 15
+001-7 16
+001-8 17
+001-9 18
+002-1 19
+002-2 20
+002-3 21
+002-4 22
+002-5 23
+003-0-1 24
+003-0-2 25
+003-0 26
+003-1-1 27
+003-1-2 28
+003-1-3 29
+003-1 30
+003-10 31
+003-13 32
+003-2-1 33
+003-2 34
+003-3 35
+003-4-1 36
+003-4 37
+003-5 38
+003-6 39
+003-7 40
+003-8 41
+003-9-1 42
+003-9 43
+004-1 44
+004-2-1 45
+004-2 46
+005-1-1 47
+005-1 48
+005-2-1 49
+005-2 50
+005-3 51
+005-4 52
+005-5 53
+005-6 54
+005-7 55
+006-0 56
+006-1 57
+006-2-1 58
+006-2-2 59
+006-2-3 60
+006-2 61
+006-3 62
+006-4-1 63
+006-4 64
+006-5 65
+007-1 66
+007-2 67
+008-0 68
+008-1 69
+008-2 70
+009-1 71
+009-2 72
+009-3 73
+009-4 74
+009-5 75
+009-6 76
+009-7 77
+010-1-1 78
+010-1 79
+010-2 80
+011-1 81
+011-2 82
+011-3 83
+012-1 84
+012-2 85
+012-3 86
+012-4 87
+012-5 88
+012-6 89
+012-7 90
+012-8 91
+013-1 92
+014-1 93
+014-2-1 94
+014-2 95
+014-3 96
+014-4 97
+014-5-1 98
+014-5 99
+015-1 100
+015-2 101
+015-3 102
+015-4 103
+015-5 104
+015-6 105
+015-7 106
+015-8-1 107
+015-8 108
+016-1 109
+016-6 110
+016-7 111
+017-0 112
+017-1 113
+017-10 114
+017-2-1 115
+017-2-2 116
+017-2 117
+017-3 118
+017-4 119
+017-5 120
+017-6 121
+017-7 122
+017-8 123
+018-1-1 124
+018-1 125
+018-2-1 126
+018-2-2 127
+018-2-3 128
+018-2-4 129
+018-2-5 130
+018-2-6 131
+018-2-7 132
+018-2-8 133
+018-2 134
+018-3 135
+018-4-1 136
+018-4-2 137
+018-4 138
+018-5-0 139
+018-5-1 140
+018-5-2 141
+018-5-3 142
+018-5-4 143
+018-5-5 144
+018-5-boss 145
+018-5 146
+018-6-0 147
+018-6-1 148
+018-6-2 149
+018-6-3 150
+018-7-1 151
+018-7 152
+019-1-1 153
+019-1 154
+019-2 155
+019-3 156
+019-4-1 157
+019-4 158
+020-1 159
+020-2 160
+020-3 161
+020-4 162
+020-5 163
+020-6 164
+020-7-1 165
+020-7-2 166
+020-7 167
+021-0 168
+021-1 169
+021-2 170
+021-3 171
+021-4 172
+022-1 173
+023-1 174
+023-2 175
+023-3-1 176
+023-3-2 177
+023-3 178
+024-1 179
+024-10 180
+024-11 181
+024-12 182
+024-13 183
+024-14 184
+024-15 185
+024-16 186
+024-2 187
+024-3 188
+024-4 189
+024-5 190
+024-6 191
+024-7 192
+024-8 193
+024-9 194
+025-1 195
+025-2-1 196
+025-2-2 197
+025-2-3 198
+025-2-4 199
+025-2 200
+025-3 201
+026-0 202
+026-1 203
+026-2 204
+027-0 205
+027-1 206
+027-2 207
+027-3 208
+027-4 209
+029-0 210
+029-1 211
+029-2 212
+029-3 213
+029-4 214
+029-5 215
+029-6 216
+029-7 217
+029-8 218
+042-0 219
+042-1 220
+042-10 221
+042-11 222
+042-2 223
+042-3 224
+042-4 225
+042-5 226
+042-6 227
+042-7 228
+042-8 229
+042-9 230
+boss 231
+botcheck 232
+guilds 233
+maze0 234
+maze1 235
+maze10 236
+maze11 237
+maze12 238
+maze13 239
+maze14 240
+maze15 241
+maze2 242
+maze3 243
+maze4 244
+maze5 245
+maze6 246
+maze7 247
+maze8 248
+maze9 249
+sec_pri 250
+soren-2 251
+soren 252
+test 253
+testbg 254
diff --git a/maps/re/000-0-1.mcache b/maps/re/000-0-1.mcache
new file mode 100644
index 000000000..f3a038bfb
--- /dev/null
+++ b/maps/re/000-0-1.mcache
Binary files differ
diff --git a/maps/re/029-0.mcache b/maps/re/029-0.mcache
new file mode 100644
index 000000000..ee7242a04
--- /dev/null
+++ b/maps/re/029-0.mcache
Binary files differ
diff --git a/maps/re/029-1.mcache b/maps/re/029-1.mcache
new file mode 100644
index 000000000..962144b42
--- /dev/null
+++ b/maps/re/029-1.mcache
Binary files differ
diff --git a/maps/re/029-2.mcache b/maps/re/029-2.mcache
new file mode 100644
index 000000000..1f9eece12
--- /dev/null
+++ b/maps/re/029-2.mcache
Binary files differ
diff --git a/maps/re/029-3.mcache b/maps/re/029-3.mcache
new file mode 100644
index 000000000..0d2f17b85
--- /dev/null
+++ b/maps/re/029-3.mcache
Binary files differ
diff --git a/maps/re/029-4.mcache b/maps/re/029-4.mcache
new file mode 100644
index 000000000..08cef53e0
--- /dev/null
+++ b/maps/re/029-4.mcache
Binary files differ
diff --git a/maps/re/029-5.mcache b/maps/re/029-5.mcache
new file mode 100644
index 000000000..7ad99af03
--- /dev/null
+++ b/maps/re/029-5.mcache
Binary files differ
diff --git a/maps/re/029-6.mcache b/maps/re/029-6.mcache
new file mode 100644
index 000000000..822ae8752
--- /dev/null
+++ b/maps/re/029-6.mcache
Binary files differ
diff --git a/maps/re/029-7.mcache b/maps/re/029-7.mcache
new file mode 100644
index 000000000..5f22587ef
--- /dev/null
+++ b/maps/re/029-7.mcache
Binary files differ
diff --git a/maps/re/029-8.mcache b/maps/re/029-8.mcache
new file mode 100644
index 000000000..37f24b1fa
--- /dev/null
+++ b/maps/re/029-8.mcache
Binary files differ
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;
}