summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/magic.conf.template119
-rw-r--r--data/003-1.wlkbin26224 -> 26224 bytes
-rw-r--r--data/005-3.wlkbin13924 -> 13924 bytes
-rw-r--r--data/005-4.wlkbin0 -> 8196 bytes
-rw-r--r--data/011-6.wlkbin90004 -> 90004 bytes
-rw-r--r--data/018-3.wlkbin40004 -> 40004 bytes
-rw-r--r--data/025-3.wlkbin0 -> 36104 bytes
-rw-r--r--data/025-4.wlkbin0 -> 48004 bytes
-rw-r--r--data/027-1.wlkbin18004 -> 18004 bytes
-rw-r--r--data/027-2.wlkbin19504 -> 19504 bytes
-rw-r--r--data/028-1.wlkbin19604 -> 19604 bytes
-rw-r--r--data/resnametable.txt3
-rw-r--r--db/const.txt22
-rw-r--r--db/item_db.txt72
-rw-r--r--db/mob_db.txt169
-rw-r--r--db/mob_skill_db.txt9
-rw-r--r--news.php2
-rw-r--r--news.txt60
-rw-r--r--npc/001-1/_import.txt28
-rw-r--r--npc/001-1/_mobs.txt (renamed from npc/001-1_Tulimshar/_mobs.txt)2
-rw-r--r--npc/001-1/_warps.txt (renamed from npc/001-1_Tulimshar/_warps.txt)2
-rw-r--r--npc/001-1/banker.txt (renamed from npc/001-1_Tulimshar/banker.txt)0
-rw-r--r--npc/001-1/barber.txt (renamed from npc/001-1_Tulimshar/barber.txt)0
-rw-r--r--npc/001-1/bard.txt (renamed from npc/001-1_Tulimshar/bard.txt)0
-rw-r--r--npc/001-1/bernard.txt (renamed from npc/001-1_Tulimshar/bernard.txt)14
-rw-r--r--npc/001-1/bleacher.txt (renamed from npc/001-1_Tulimshar/bleacher.txt)0
-rw-r--r--npc/001-1/children.txt (renamed from npc/001-1_Tulimshar/children.txt)2
-rw-r--r--npc/001-1/constable.txt (renamed from npc/001-1_Tulimshar/constable.txt)0
-rw-r--r--npc/001-1/elanore.txt (renamed from npc/001-1_Tulimshar/elanore.txt)0
-rw-r--r--npc/001-1/entertainer.txt (renamed from npc/001-1_Tulimshar/entertainer.txt)0
-rw-r--r--npc/001-1/gossip.txt (renamed from npc/001-1_Tulimshar/gossip.txt)0
-rw-r--r--npc/001-1/guards.txt (renamed from npc/001-1_Tulimshar/guards.txt)0
-rw-r--r--npc/001-1/guide.txt (renamed from npc/001-1_Tulimshar/guide.txt)0
-rw-r--r--npc/001-1/luca.txt (renamed from npc/001-1_Tulimshar/luca.txt)0
-rw-r--r--npc/001-1/mapflags.txt (renamed from npc/001-1_Tulimshar/mapflags.txt)0
-rw-r--r--npc/001-1/merchant.txt (renamed from npc/001-1_Tulimshar/merchant.txt)0
-rw-r--r--npc/001-1/mikhail.txt (renamed from npc/001-1_Tulimshar/mikhail.txt)6
-rw-r--r--npc/001-1/monster_guide.txt (renamed from npc/001-1_Tulimshar/monster_guide.txt)0
-rw-r--r--npc/001-1/rewards_master.txt (renamed from npc/001-1_Tulimshar/rewards_master.txt)8
-rw-r--r--npc/001-1/sandra.txt (renamed from npc/001-1_Tulimshar/sandra.txt)12
-rw-r--r--npc/001-1/sarah.txt (renamed from npc/001-1_Tulimshar/sarah.txt)12
-rw-r--r--npc/001-1/soul-menhir.txt (renamed from npc/001-1_Tulimshar/soul-menhir.txt)0
-rw-r--r--npc/001-1/trader.txt (renamed from npc/001-1_Tulimshar/trader.txt)12
-rw-r--r--npc/001-1/vincent.txt (renamed from npc/001-1_Tulimshar/vincent.txt)12
-rw-r--r--npc/001-1_Tulimshar/_import.txt27
-rw-r--r--npc/001-2/_import.txt10
-rw-r--r--npc/001-2/_mobs.txt (renamed from npc/001-2_Tulimshar/_mobs.txt)2
-rw-r--r--npc/001-2/_warps.txt (renamed from npc/001-2_Tulimshar/_warps.txt)2
-rw-r--r--npc/001-2/casino.txt (renamed from npc/001-2_Tulimshar/casino.txt)0
-rw-r--r--npc/001-2/mapflags.txt (renamed from npc/001-2_Tulimshar/mapflags.txt)0
-rw-r--r--npc/001-2/phaet.txt (renamed from npc/001-2_Tulimshar/phaet.txt)0
-rw-r--r--npc/001-2/shops.txt (renamed from npc/001-2_Tulimshar/shops.txt)0
-rw-r--r--npc/001-2/troupe_leader.txt (renamed from npc/001-2_Tulimshar/troupe_leader.txt)0
-rw-r--r--npc/001-2_Tulimshar/_import.txt9
-rw-r--r--npc/001-3/_import.txt8
-rw-r--r--npc/001-3/_mobs.txt (renamed from npc/001-3_Tulimshar_arena/_mobs.txt)2
-rw-r--r--npc/001-3/_warps.txt (renamed from npc/001-3_Tulimshar_arena/_warps.txt)2
-rw-r--r--npc/001-3/guards.txt (renamed from npc/001-3_Tulimshar_arena/guards.txt)0
-rw-r--r--npc/001-3/monsters.txt (renamed from npc/001-3_Tulimshar_arena/monsters.txt)0
-rw-r--r--npc/001-3/pvpflag.txt (renamed from npc/001-3_Tulimshar_arena/pvpflag.txt)0
-rw-r--r--npc/001-3_Tulimshar_arena/_import.txt7
-rw-r--r--npc/001-4/_import.txt7
-rw-r--r--npc/001-4/_mobs.txt (renamed from npc/001-4_Omars_house/_mobs.txt)2
-rw-r--r--npc/001-4/_warps.txt (renamed from npc/001-4_Omars_house/_warps.txt)2
-rw-r--r--npc/001-4/dedication.txt (renamed from npc/001-4_Omars_house/dedication.txt)0
-rw-r--r--npc/001-4/omar.txt (renamed from npc/001-4_Omars_house/omar.txt)0
-rw-r--r--npc/001-4_Omars_house/_import.txt6
-rw-r--r--npc/002-1/_import.txt12
-rw-r--r--npc/002-1/_mobs.txt (renamed from npc/002-1_Sandstorm/_mobs.txt)2
-rw-r--r--npc/002-1/_warps.txt (renamed from npc/002-1_Sandstorm/_warps.txt)2
-rw-r--r--npc/002-1/lieutenant_dausen.txt (renamed from npc/002-1_Sandstorm/lieutenant_dausen.txt)4
-rw-r--r--npc/002-1/merchant.txt (renamed from npc/002-1_Sandstorm/merchant.txt)0
-rw-r--r--npc/002-1/nickos.txt (renamed from npc/002-1_Sandstorm/nickos.txt)6
-rw-r--r--npc/002-1/nomads.txt (renamed from npc/002-1_Sandstorm/nomads.txt)0
-rw-r--r--npc/002-1/rogue.txt (renamed from npc/002-1_Sandstorm/rogue.txt)0
-rw-r--r--npc/002-1/sandstorm_mine_barrier.txt (renamed from npc/002-1_Sandstorm/sandstorm_mine_barrier.txt)0
-rw-r--r--npc/002-1/stewen.txt (renamed from npc/002-1_Sandstorm/stewen.txt)0
-rw-r--r--npc/002-1_Sandstorm/_import.txt11
-rw-r--r--npc/002-3/_import.txt11
-rw-r--r--npc/002-3/_mobs.txt (renamed from npc/002-3_Desert_mines/_mobs.txt)2
-rw-r--r--npc/002-3/_warps.txt (renamed from npc/002-3_Desert_mines/_warps.txt)2
-rw-r--r--npc/002-3/mine_triggerone.txt (renamed from npc/002-3_Desert_mines/mine_triggerone.txt)0
-rw-r--r--npc/002-3/mine_triggerthree.txt (renamed from npc/002-3_Desert_mines/mine_triggerthree.txt)0
-rw-r--r--npc/002-3/mine_triggertwo.txt (renamed from npc/002-3_Desert_mines/mine_triggertwo.txt)0
-rw-r--r--npc/002-3/naem.txt (renamed from npc/002-3_Desert_mines/naem.txt)0
-rw-r--r--npc/002-3/nathan.txt (renamed from npc/002-3_Desert_mines/nathan.txt)2
-rw-r--r--npc/002-3/underground_palace_barrier.txt (renamed from npc/002-3_Desert_mines/underground_palace_barrier.txt)0
-rw-r--r--npc/002-3_Desert_mines/_import.txt10
-rw-r--r--npc/002-4/_import.txt7
-rw-r--r--npc/002-4/_mobs.txt (renamed from npc/002-4_Desert_mines/_mobs.txt)2
-rw-r--r--npc/002-4/_warps.txt (renamed from npc/002-4_Desert_mines/_warps.txt)2
-rw-r--r--npc/002-4/chest.txt (renamed from npc/002-4_Desert_mines/chest.txt)0
-rw-r--r--npc/002-4/miners.txt (renamed from npc/002-4_Desert_mines/miners.txt)4
-rw-r--r--npc/002-4_Desert_mines/_import.txt6
-rw-r--r--npc/003-1/_import.txt (renamed from npc/003-1_Beach/_import.txt)6
-rw-r--r--npc/003-1/_mobs.txt (renamed from npc/003-1_Beach/_mobs.txt)2
-rw-r--r--npc/003-1/_warps.txt (renamed from npc/003-1_Beach/_warps.txt)2
-rw-r--r--npc/003-1/stranger.txt501
-rw-r--r--npc/003-2/_import.txt (renamed from npc/003-2_Beach_House/_import.txt)5
-rw-r--r--npc/003-2/_mobs.txt (renamed from npc/003-2_Beach_House/_mobs.txt)2
-rw-r--r--npc/003-2/_warps.txt (renamed from npc/003-2_Beach_House/_warps.txt)2
-rw-r--r--npc/004-1/_import.txt (renamed from npc/004-1_Beach/_import.txt)5
-rw-r--r--npc/004-1/_mobs.txt (renamed from npc/004-1_Beach/_mobs.txt)2
-rw-r--r--npc/004-1/_warps.txt (renamed from npc/004-1_Beach/_warps.txt)2
-rw-r--r--npc/004-2/_import.txt (renamed from npc/004-2_Beach_House/_import.txt)5
-rw-r--r--npc/004-2/_mobs.txt (renamed from npc/004-2_Beach_House/_mobs.txt)2
-rw-r--r--npc/004-2/_warps.txt (renamed from npc/004-2_Beach_House/_warps.txt)2
-rw-r--r--npc/005-1/_import.txt8
-rw-r--r--npc/005-1/_mobs.txt (renamed from npc/005-1_Snake_desert/_mobs.txt)2
-rw-r--r--npc/005-1/_warps.txt (renamed from npc/005-1_Snake_desert/_warps.txt)2
-rw-r--r--npc/005-1/npcs.txt (renamed from npc/005-1_Snake_desert/npcs.txt)0
-rw-r--r--npc/005-1/spirit.txt (renamed from npc/005-1_Snake_desert/spirit.txt)0
-rw-r--r--npc/005-1/tree.txt (renamed from npc/005-1_Snake_desert/tree.txt)0
-rw-r--r--npc/005-1_Snake_desert/_import.txt7
-rw-r--r--npc/005-3/_import.txt (renamed from npc/005-3_Snake_pit/_import.txt)7
-rw-r--r--npc/005-3/_mobs.txt (renamed from npc/005-3_Snake_pit/_mobs.txt)2
-rw-r--r--npc/005-3/_warps.txt (renamed from npc/005-3_Snake_pit/_warps.txt)3
-rw-r--r--npc/005-3/monsters.txt (renamed from npc/005-3_Snake_pit/monsters.txt)0
-rw-r--r--npc/005-4/_import.txt6
-rw-r--r--npc/005-4/_mobs.txt8
-rw-r--r--npc/005-4/_warps.txt4
-rw-r--r--npc/005-4/bossfight.txt208
-rw-r--r--npc/006-1/_import.txt7
-rw-r--r--npc/006-1/_mobs.txt (renamed from npc/006-1_Desert_mountains/_mobs.txt)2
-rw-r--r--npc/006-1/_warps.txt (renamed from npc/006-1_Desert_mountains/_warps.txt)2
-rw-r--r--npc/006-1/mika.txt (renamed from npc/006-1_Desert_mountains/mika.txt)0
-rw-r--r--npc/006-1/pachua.txt (renamed from npc/006-1_Desert_mountains/pachua.txt)99
-rw-r--r--npc/006-1_Desert_mountains/_import.txt6
-rw-r--r--npc/006-3/_import.txt (renamed from npc/006-3_Desert_mountain_caves/_import.txt)5
-rw-r--r--npc/006-3/_mobs.txt (renamed from npc/006-3_Desert_mountain_caves/_mobs.txt)2
-rw-r--r--npc/006-3/_warps.txt (renamed from npc/006-3_Desert_mountain_caves/_warps.txt)2
-rw-r--r--npc/007-1/_import.txt (renamed from npc/007-1_Woodland/_import.txt)7
-rw-r--r--npc/007-1/_mobs.txt (renamed from npc/007-1_Woodland/_mobs.txt)14
-rw-r--r--npc/007-1/_warps.txt (renamed from npc/007-1_Woodland/_warps.txt)2
-rw-r--r--npc/007-1/voltain.txt (renamed from npc/007-1_Woodland/voltain.txt)0
-rw-r--r--npc/008-1/_import.txt10
-rw-r--r--npc/008-1/_mobs.txt (renamed from npc/008-1_Hurnscald_outskirts/_mobs.txt)14
-rw-r--r--npc/008-1/_warps.txt (renamed from npc/008-1_Hurnscald_outskirts/_warps.txt)2
-rw-r--r--npc/008-1/andra.txt151
-rw-r--r--npc/008-1/diryn.txt (renamed from npc/008-1_Hurnscald_outskirts/diryn.txt)0
-rw-r--r--npc/008-1/dock.txt (renamed from npc/008-1_Hurnscald_outskirts/dock.txt)0
-rw-r--r--npc/008-1/george.txt (renamed from npc/008-1_Hurnscald_outskirts/george.txt)0
-rw-r--r--npc/008-1/hinnak.txt (renamed from npc/008-1_Hurnscald_outskirts/hinnak.txt)0
-rw-r--r--npc/008-1_Hurnscald_outskirts/_import.txt9
-rw-r--r--npc/008-1_Hurnscald_outskirts/andra.txt24
-rw-r--r--npc/009-1/_import.txt13
-rw-r--r--npc/009-1/_mobs.txt (renamed from npc/009-1_Hurnscald/_mobs.txt)2
-rw-r--r--npc/009-1/_warps.txt (renamed from npc/009-1_Hurnscald/_warps.txt)2
-rw-r--r--npc/009-1/jack.txt (renamed from npc/009-1_Hurnscald/jack.txt)0
-rw-r--r--npc/009-1/mapflags.txt (renamed from npc/009-1_Hurnscald/mapflags.txt)0
-rw-r--r--npc/009-1/milly.txt (renamed from npc/009-1_Hurnscald/milly.txt)0
-rw-r--r--npc/009-1/old_man.txt (renamed from npc/009-1_Hurnscald/old_man.txt)0
-rw-r--r--npc/009-1/old_woman.txt (renamed from npc/009-1_Hurnscald/old_woman.txt)0
-rw-r--r--npc/009-1/sabine.txt (renamed from npc/009-1_Hurnscald/sabine.txt)0
-rw-r--r--npc/009-1/soul-menhir.txt (renamed from npc/009-1_Hurnscald/soul-menhir.txt)0
-rw-r--r--npc/009-1/water_pump.txt (renamed from npc/009-1_Hurnscald/water_pump.txt)0
-rw-r--r--npc/009-1_Hurnscald/_import.txt12
-rw-r--r--npc/009-2/_import.txt23
-rw-r--r--npc/009-2/_mobs.txt (renamed from npc/009-2_Hurnscald/_mobs.txt)2
-rw-r--r--npc/009-2/_warps.txt (renamed from npc/009-2_Hurnscald/_warps.txt)2
-rw-r--r--npc/009-2/airlia.txt (renamed from npc/009-2_Hurnscald/airlia.txt)14
-rw-r--r--npc/009-2/alan.txt (renamed from npc/009-2_Hurnscald/alan.txt)0
-rw-r--r--npc/009-2/doctor.txt (renamed from npc/009-2_Hurnscald/doctor.txt)0
-rw-r--r--npc/009-2/drunks.txt (renamed from npc/009-2_Hurnscald/drunks.txt)0
-rw-r--r--npc/009-2/inspector.txt (renamed from npc/009-2_Hurnscald/inspector.txt)0
-rw-r--r--npc/009-2/kfahr.txt (renamed from npc/009-2_Hurnscald/kfahr.txt)0
-rw-r--r--npc/009-2/lena.txt (renamed from npc/009-2_Hurnscald/lena.txt)6
-rw-r--r--npc/009-2/mapflags.txt (renamed from npc/009-2_Hurnscald/mapflags.txt)0
-rw-r--r--npc/009-2/misc.txt (renamed from npc/009-2_Hurnscald/misc.txt)0
-rw-r--r--npc/009-2/nicholas.txt (renamed from npc/009-2_Hurnscald/nicholas.txt)36
-rw-r--r--npc/009-2/nurse.txt (renamed from npc/009-2_Hurnscald/nurse.txt)0
-rw-r--r--npc/009-2/olana.txt198
-rw-r--r--npc/009-2/peter.txt (renamed from npc/009-2_Hurnscald/peter.txt)4
-rw-r--r--npc/009-2/richard.txt (renamed from npc/009-2_Hurnscald/richard.txt)0
-rw-r--r--npc/009-2/selim.txt (renamed from npc/009-2_Hurnscald/selim.txt)0
-rw-r--r--npc/009-2/shops.txt (renamed from npc/009-2_Hurnscald/shops.txt)0
-rw-r--r--npc/009-2/waitress.txt (renamed from npc/009-2_Hurnscald/waitress.txt)0
-rw-r--r--npc/009-2/wyara.txt (renamed from npc/009-2_Hurnscald/wyara.txt)0
-rw-r--r--npc/009-2_Hurnscald/_import.txt21
-rw-r--r--npc/009-3/_import.txt7
-rw-r--r--npc/009-3/_mobs.txt (renamed from npc/009-3_Cave_beneath_Hurnscald/_mobs.txt)2
-rw-r--r--npc/009-3/_warps.txt (renamed from npc/009-3_Cave_beneath_Hurnscald/_warps.txt)2
-rw-r--r--npc/009-3/monsters.txt (renamed from npc/009-3_Cave_beneath_Hurnscald/monsters.txt)0
-rw-r--r--npc/009-3/sword.txt (renamed from npc/009-3_Cave_beneath_Hurnscald/sword.txt)0
-rw-r--r--npc/009-3_Cave_beneath_Hurnscald/_import.txt6
-rw-r--r--npc/009-4/_import.txt1
-rw-r--r--npc/009-4/_mobs.txt2
-rw-r--r--npc/009-4/_warps.txt2
-rw-r--r--npc/009-4/barriers.txt458
-rw-r--r--npc/009-4/orum.txt1310
-rw-r--r--npc/009-4/torches.txt718
-rw-r--r--npc/009-4/waric.txt190
-rw-r--r--npc/010-1/_import.txt (renamed from npc/010-1_Woodland/_import.txt)5
-rw-r--r--npc/010-1/_mobs.txt (renamed from npc/010-1_Woodland/_mobs.txt)14
-rw-r--r--npc/010-1/_warps.txt (renamed from npc/010-1_Woodland/_warps.txt)4
-rw-r--r--npc/010-2/_import.txt10
-rw-r--r--npc/010-2/_mobs.txt (renamed from npc/010-2_Dimonds_Cove/_mobs.txt)2
-rw-r--r--npc/010-2/_warps.txt (renamed from npc/010-2_Dimonds_Cove/_warps.txt)2
-rw-r--r--npc/010-2/chef.txt201
-rw-r--r--npc/010-2/dimonds.txt (renamed from npc/010-2_Dimonds_Cove/dimonds.txt)0
-rw-r--r--npc/010-2/doug.txt (renamed from npc/010-2_Dimonds_Cove/doug.txt)12
-rw-r--r--npc/010-2/loratay.txt (renamed from npc/010-2_Dimonds_Cove/loratay.txt)12
-rw-r--r--npc/010-2/workers.txt (renamed from npc/010-2_Dimonds_Cove/workers.txt)0
-rw-r--r--npc/010-2_Dimonds_Cove/_import.txt9
-rw-r--r--npc/010-2_Dimonds_Cove/chef.txt111
-rw-r--r--npc/011-1/_import.txt9
-rw-r--r--npc/011-1/_mobs.txt (renamed from npc/011-1_Woodland/_mobs.txt)15
-rw-r--r--npc/011-1/_warps.txt (renamed from npc/011-1_Woodland/_warps.txt)4
-rw-r--r--npc/011-1/alchemist.txt (renamed from npc/011-1_Woodland/alchemist.txt)49
-rw-r--r--npc/011-1/auldsbel.txt (renamed from npc/011-1_Woodland/auldsbel.txt)0
-rw-r--r--npc/011-1/oscar.txt (renamed from npc/011-1_Woodland/oscar.txt)0
-rw-r--r--npc/011-1/shops.txt (renamed from npc/011-1_Woodland/shops.txt)0
-rw-r--r--npc/011-1_Woodland/_import.txt8
-rw-r--r--npc/011-3/_import.txt7
-rw-r--r--npc/011-3/_mobs.txt (renamed from npc/011-3_Hermits_cave/_mobs.txt)2
-rw-r--r--npc/011-3/_warps.txt (renamed from npc/011-3_Hermits_cave/_warps.txt)2
-rw-r--r--npc/011-3/hermit.txt (renamed from npc/011-3_Hermits_cave/hermit.txt)0
-rw-r--r--npc/011-3/monsters.txt (renamed from npc/011-3_Hermits_cave/monsters.txt)0
-rw-r--r--npc/011-3_Hermits_cave/_import.txt6
-rw-r--r--npc/011-4/_import.txt7
-rw-r--r--npc/011-4/_mobs.txt (renamed from npc/011-4_Lake_cave/_mobs.txt)2
-rw-r--r--npc/011-4/_warps.txt (renamed from npc/011-4_Lake_cave/_warps.txt)2
-rw-r--r--npc/011-4/bl_barrier.txt (renamed from npc/011-4_Lake_cave/bl_barrier.txt)0
-rw-r--r--npc/011-4/monsters.txt (renamed from npc/011-4_Lake_cave/monsters.txt)0
-rw-r--r--npc/011-4_Lake_cave/_import.txt6
-rw-r--r--npc/011-5/_import.txt1
-rw-r--r--npc/011-5/_mobs.txt2
-rw-r--r--npc/011-5/_warps.txt2
-rw-r--r--npc/011-6/_import.txt1
-rw-r--r--npc/011-6/_mobs.txt2
-rw-r--r--npc/011-6/_warps.txt2
-rw-r--r--npc/012-1/_import.txt8
-rw-r--r--npc/012-1/_mobs.txt (renamed from npc/012-1_Woodland_Hills/_mobs.txt)2
-rw-r--r--npc/012-1/_warps.txt (renamed from npc/012-1_Woodland_Hills/_warps.txt)2
-rw-r--r--npc/012-1/amrak.txt (renamed from npc/012-1_Woodland_Hills/amrak.txt)0
-rw-r--r--npc/012-1/injured-mouboo.txt (renamed from npc/012-1_Woodland_Hills/injured-mouboo.txt)0
-rw-r--r--npc/012-1/shops.txt (renamed from npc/012-1_Woodland_Hills/shops.txt)0
-rw-r--r--npc/012-1_Woodland_Hills/_import.txt7
-rw-r--r--npc/012-3/_import.txt8
-rw-r--r--npc/012-3/_mobs.txt (renamed from npc/012-3_Cave/_mobs.txt)2
-rw-r--r--npc/012-3/_warps.txt (renamed from npc/012-3_Cave/_warps.txt)2
-rw-r--r--npc/012-3/mana-seed.txt (renamed from npc/012-3_Cave/mana-seed.txt)0
-rw-r--r--npc/012-3/monsters.txt (renamed from npc/012-3_Cave/monsters.txt)0
-rw-r--r--npc/012-3/warningsigns.txt (renamed from npc/012-3_Cave/warningsigns.txt)0
-rw-r--r--npc/012-3_Cave/_import.txt7
-rw-r--r--npc/012-4/_import.txt (renamed from npc/012-4_Cave/_import.txt)7
-rw-r--r--npc/012-4/_mobs.txt (renamed from npc/012-4_Cave/_mobs.txt)2
-rw-r--r--npc/012-4/_warps.txt (renamed from npc/012-4_Cave/_warps.txt)2
-rw-r--r--npc/012-4/pvpflag.txt (renamed from npc/012-4_Cave/pvpflag.txt)0
-rw-r--r--npc/013-1/_import.txt6
-rw-r--r--npc/013-1/_mobs.txt (renamed from npc/013-1_Woodland_hills/_mobs.txt)2
-rw-r--r--npc/013-1/_warps.txt (renamed from npc/013-1_Woodland_hills/_warps.txt)2
-rw-r--r--npc/013-1/sagatha.txt (renamed from npc/013-1_Woodland_hills/sagatha.txt)0
-rw-r--r--npc/013-1_Woodland_hills/_import.txt5
-rw-r--r--npc/013-2/_import.txt8
-rw-r--r--npc/013-2/_mobs.txt (renamed from npc/013-2_Magic_house/_mobs.txt)2
-rw-r--r--npc/013-2/_warps.txt (renamed from npc/013-2_Magic_house/_warps.txt)2
-rw-r--r--npc/013-2/apprentice.txt (renamed from npc/013-2_Magic_house/apprentice.txt)0
-rw-r--r--npc/013-2/notes.txt (renamed from npc/013-2_Magic_house/notes.txt)0
-rw-r--r--npc/013-2/wizard.txt (renamed from npc/013-2_Magic_house/wizard.txt)0
-rw-r--r--npc/013-2_Magic_house/_import.txt7
-rw-r--r--npc/013-3/_import.txt9
-rw-r--r--npc/013-3/_mobs.txt (renamed from npc/013-3_Cave/_mobs.txt)2
-rw-r--r--npc/013-3/_warps.txt (renamed from npc/013-3_Cave/_warps.txt)2
-rw-r--r--npc/013-3/barrier.txt (renamed from npc/013-3_Cave/barrier.txt)0
-rw-r--r--npc/013-3/mask_chest.txt (renamed from npc/013-3_Cave/mask_chest.txt)0
-rw-r--r--npc/013-3/misc.txt (renamed from npc/013-3_Cave/misc.txt)0
-rw-r--r--npc/013-3/sword_chest.txt (renamed from npc/013-3_Cave/sword_chest.txt)0
-rw-r--r--npc/013-3_Cave/_import.txt8
-rw-r--r--npc/014-1/_import.txt (renamed from npc/014-1_Woodland/_import.txt)7
-rw-r--r--npc/014-1/_mobs.txt (renamed from npc/014-1_Woodland/_mobs.txt)2
-rw-r--r--npc/014-1/_warps.txt (renamed from npc/014-1_Woodland/_warps.txt)2
-rw-r--r--npc/014-1/wedding-officiator.txt (renamed from npc/014-1_Woodland/wedding-officiator.txt)0
-rw-r--r--npc/014-3/_import.txt (renamed from npc/014-3_Cave/_import.txt)7
-rw-r--r--npc/014-3/_mobs.txt (renamed from npc/014-3_Cave/_mobs.txt)2
-rw-r--r--npc/014-3/_warps.txt (renamed from npc/014-3_Cave/_warps.txt)2
-rw-r--r--npc/014-3/monsters.txt (renamed from npc/014-3_Cave/monsters.txt)0
-rw-r--r--npc/015-1/_import.txt9
-rw-r--r--npc/015-1/_mobs.txt (renamed from npc/015-1_Woodland/_mobs.txt)2
-rw-r--r--npc/015-1/_warps.txt (renamed from npc/015-1_Woodland/_warps.txt)2
-rw-r--r--npc/015-1/alice.txt (renamed from npc/015-1_Woodland/alice.txt)0
-rw-r--r--npc/015-1/barrier.txt (renamed from npc/015-1_Woodland/barrier.txt)0
-rw-r--r--npc/015-1/monsters.txt (renamed from npc/015-1_Woodland/monsters.txt)0
-rw-r--r--npc/015-1/sword.txt (renamed from npc/015-1_Woodland/sword.txt)0
-rw-r--r--npc/015-1_Woodland/_import.txt8
-rw-r--r--npc/015-3/_import.txt8
-rw-r--r--npc/015-3/_mobs.txt (renamed from npc/015-3_Cave/_mobs.txt)2
-rw-r--r--npc/015-3/_warps.txt (renamed from npc/015-3_Cave/_warps.txt)2
-rw-r--r--npc/015-3/barrier.txt (renamed from npc/015-3_Cave/barrier.txt)0
-rw-r--r--npc/015-3/katze.txt (renamed from npc/015-3_Cave/katze.txt)24
-rw-r--r--npc/015-3/pot.txt (renamed from npc/015-3_Cave/pot.txt)0
-rw-r--r--npc/015-3_Cave/_import.txt7
-rw-r--r--npc/016-1/_import.txt7
-rw-r--r--npc/016-1/_mobs.txt (renamed from npc/016-1_Woodland/_mobs.txt)2
-rw-r--r--npc/016-1/_warps.txt (renamed from npc/016-1_Woodland/_warps.txt)2
-rw-r--r--npc/016-1/gwendolyn.txt (renamed from npc/016-1_Woodland/gwendolyn.txt)0
-rw-r--r--npc/016-1/monsters.txt (renamed from npc/016-1_Woodland/monsters.txt)0
-rw-r--r--npc/016-1_Woodland/_import.txt6
-rw-r--r--npc/017-1/_import.txt6
-rw-r--r--npc/017-1/_mobs.txt (renamed from npc/017-1_Woodland_hills/_mobs.txt)2
-rw-r--r--npc/017-1/_warps.txt (renamed from npc/017-1_Woodland_hills/_warps.txt)2
-rw-r--r--npc/017-1/monsters.txt (renamed from npc/017-1_Woodland_hills/monsters.txt)0
-rw-r--r--npc/017-1_Woodland_hills/_import.txt5
-rw-r--r--npc/017-2/_import.txt (renamed from npc/017-2_Theater/_import.txt)5
-rw-r--r--npc/017-2/_mobs.txt (renamed from npc/017-2_Theater/_mobs.txt)2
-rw-r--r--npc/017-2/_warps.txt (renamed from npc/017-2_Theater/_warps.txt)2
-rw-r--r--npc/017-9/_import.txt (renamed from npc/017-9_Backstage/_import.txt)5
-rw-r--r--npc/017-9/_mobs.txt (renamed from npc/017-9_Backstage/_mobs.txt)2
-rw-r--r--npc/017-9/_warps.txt (renamed from npc/017-9_Backstage/_warps.txt)2
-rw-r--r--npc/018-1/_import.txt8
-rw-r--r--npc/018-1/_mobs.txt (renamed from npc/018-1_Woodland_mining_camp/_mobs.txt)2
-rw-r--r--npc/018-1/_warps.txt (renamed from npc/018-1_Woodland_mining_camp/_warps.txt)4
-rw-r--r--npc/018-1/mike.txt (renamed from npc/018-1_Woodland_mining_camp/mike.txt)0
-rw-r--r--npc/018-1/miners.txt (renamed from npc/018-1_Woodland_mining_camp/miners.txt)0
-rw-r--r--npc/018-1/sword.txt (renamed from npc/018-1_Woodland_mining_camp/sword.txt)0
-rw-r--r--npc/018-1_Woodland_mining_camp/_import.txt7
-rw-r--r--npc/018-2/_import.txt10
-rw-r--r--npc/018-2/_mobs.txt (renamed from npc/018-2_Woodland_mining_camp/_mobs.txt)2
-rw-r--r--npc/018-2/_warps.txt (renamed from npc/018-2_Woodland_mining_camp/_warps.txt)2
-rw-r--r--npc/018-2/angus.txt (renamed from npc/018-2_Woodland_mining_camp/angus.txt)0
-rw-r--r--npc/018-2/books.txt (renamed from npc/018-2_Woodland_mining_camp/books.txt)0
-rw-r--r--npc/018-2/caul.txt (renamed from npc/018-2_Woodland_mining_camp/caul.txt)0
-rw-r--r--npc/018-2/miners.txt152
-rw-r--r--npc/018-2/receptionist.txt (renamed from npc/018-2_Woodland_mining_camp/receptionist.txt)0
-rw-r--r--npc/018-2_Woodland_mining_camp/_import.txt9
-rw-r--r--npc/018-2_Woodland_mining_camp/miners.txt15
-rw-r--r--npc/018-3/_import.txt8
-rw-r--r--npc/018-3/_mobs.txt (renamed from npc/018-3_Cave/_mobs.txt)4
-rw-r--r--npc/018-3/_warps.txt (renamed from npc/018-3_Cave/_warps.txt)4
-rw-r--r--npc/018-3/bookcase.txt (renamed from npc/018-3_Cave/bookcase.txt)0
-rw-r--r--npc/018-3/evil-obelisk.txt (renamed from npc/018-3_Cave/evil-obelisk.txt)0
-rw-r--r--npc/018-3/sword.txt (renamed from npc/018-3_Cave/sword.txt)0
-rw-r--r--npc/018-3_Cave/_import.txt7
-rw-r--r--npc/019-1/_import.txt8
-rw-r--r--npc/019-1/_mobs.txt (renamed from npc/019-1_Snow_field/_mobs.txt)8
-rw-r--r--npc/019-1/_warps.txt (renamed from npc/019-1_Snow_field/_warps.txt)2
-rw-r--r--npc/019-1/monsters.txt (renamed from npc/019-1_Snow_field/monsters.txt)0
-rw-r--r--npc/019-1/santa_helper.txt (renamed from npc/019-1_Snow_field/santa_helper.txt)6
-rw-r--r--npc/019-1/snowman.txt (renamed from npc/019-1_Snow_field/snowman.txt)6
-rw-r--r--npc/019-1_Snow_field/_import.txt7
-rw-r--r--npc/019-3/_import.txt (renamed from npc/019-3_Snow_Cave/_import.txt)5
-rw-r--r--npc/019-3/_mobs.txt (renamed from npc/019-3_Snow_Cave/_mobs.txt)2
-rw-r--r--npc/019-3/_warps.txt (renamed from npc/019-3_Snow_Cave/_warps.txt)2
-rw-r--r--[-rwxr-xr-x]npc/020-1/KrickKrackKrock.txt (renamed from npc/020-1_Nivalis/KrickKrackKrock.txt)0
-rw-r--r--npc/020-1/_import.txt10
-rw-r--r--npc/020-1/_mobs.txt (renamed from npc/020-1_Nivalis/_mobs.txt)2
-rw-r--r--npc/020-1/_warps.txt (renamed from npc/020-1_Nivalis/_warps.txt)2
-rw-r--r--npc/020-1/mapflags.txt (renamed from npc/020-1_Nivalis/mapflags.txt)0
-rw-r--r--[-rwxr-xr-x]npc/020-1/rockscissor.txt (renamed from npc/020-1_Nivalis/rockscissor.txt)0
-rw-r--r--npc/020-1/soul-menhir.txt12
-rw-r--r--[-rwxr-xr-x]npc/020-1/well.txt (renamed from npc/020-1_Nivalis/well.txt)0
-rw-r--r--npc/020-1_Nivalis/_import.txt9
-rw-r--r--npc/020-1_Nivalis/soul-menhir.txt12
-rw-r--r--npc/020-2/_import.txt9
-rw-r--r--npc/020-2/_mobs.txt (renamed from npc/020-2_Nivalis/_mobs.txt)2
-rw-r--r--npc/020-2/_warps.txt (renamed from npc/020-2_Nivalis/_warps.txt)2
-rw-r--r--[-rwxr-xr-x]npc/020-2/baktar.txt (renamed from npc/020-2_Nivalis/baktar.txt)0
-rw-r--r--npc/020-2/furquest.txt (renamed from npc/021-2_Tulimshar/furquest.txt)2
-rw-r--r--npc/020-2/mapflags.txt (renamed from npc/020-2_Nivalis/mapflags.txt)0
-rw-r--r--npc/020-2/shops.txt (renamed from npc/020-2_Nivalis/shops.txt)4
-rw-r--r--npc/020-2_Nivalis/_import.txt7
-rw-r--r--npc/020-3/_import.txt (renamed from npc/020-3_Ice_cave/_import.txt)7
-rw-r--r--npc/020-3/_mobs.txt (renamed from npc/020-3_Ice_cave/_mobs.txt)2
-rw-r--r--npc/020-3/_warps.txt (renamed from npc/020-3_Ice_cave/_warps.txt)2
-rw-r--r--npc/020-3/monsters.txt (renamed from npc/020-3_Ice_cave/monsters.txt)0
-rw-r--r--npc/020-4_Ice_cave/_import.txt4
-rw-r--r--npc/020-4_Ice_cave/_mobs.txt7
-rw-r--r--npc/020-4_Ice_cave/_warps.txt3
-rw-r--r--npc/020-4_Ice_cave/monsters.txt18
-rw-r--r--npc/021-1/_import.txt14
-rw-r--r--npc/021-1/_mobs.txt (renamed from npc/021-1_Tulimshar/_mobs.txt)2
-rw-r--r--npc/021-1/_warps.txt (renamed from npc/021-1_Tulimshar/_warps.txt)2
-rw-r--r--npc/021-1/bakery.txt (renamed from npc/021-1_Tulimshar/bakery.txt)0
-rw-r--r--npc/021-1/eurni.txt (renamed from npc/021-1_Tulimshar/eurni.txt)0
-rw-r--r--npc/021-1/gate_guards.txt (renamed from npc/021-1_Tulimshar/gate_guards.txt)0
-rw-r--r--npc/021-1/inac.txt (renamed from npc/021-1_Tulimshar/inac.txt)0
-rw-r--r--npc/021-1/mapflags.txt (renamed from npc/021-1_Tulimshar/mapflags.txt)0
-rw-r--r--npc/021-1/north_shops.txt (renamed from npc/021-1_Tulimshar/north_shops.txt)0
-rw-r--r--npc/021-1/royal_guards.txt (renamed from npc/021-1_Tulimshar/royal_guards.txt)0
-rw-r--r--npc/021-1/weellos.txt (renamed from npc/021-1_Tulimshar/weellos.txt)0
-rw-r--r--npc/021-1/workers.txt (renamed from npc/021-1_Tulimshar/workers.txt)0
-rw-r--r--npc/021-1_Tulimshar/_import.txt13
-rw-r--r--npc/021-2/_import.txt12
-rw-r--r--npc/021-2/_mobs.txt (renamed from npc/021-2_Tulimshar/_mobs.txt)2
-rw-r--r--npc/021-2/_warps.txt (renamed from npc/021-2_Tulimshar/_warps.txt)2
-rw-r--r--npc/021-2/bakery.txt234
-rw-r--r--npc/021-2/government_building.txt (renamed from npc/021-2_Tulimshar/government_building.txt)0
-rw-r--r--npc/021-2/heathin.txt (renamed from npc/021-2_Tulimshar/heathin.txt)50
-rw-r--r--npc/021-2/inya.txt (renamed from npc/021-2_Tulimshar/inya.txt)4
-rw-r--r--npc/021-2/jhedia.txt (renamed from npc/021-2_Tulimshar/jhedia.txt)6
-rw-r--r--npc/021-2/mapflags.txt (renamed from npc/021-2_Tulimshar/mapflags.txt)0
-rw-r--r--npc/021-2/workshop.txt (renamed from npc/021-2_Tulimshar/workshop.txt)0
-rw-r--r--npc/021-2_Tulimshar/_import.txt12
-rw-r--r--npc/021-2_Tulimshar/bakery.txt121
-rw-r--r--npc/021-8_Meeting_Rooms/_import.txt3
-rw-r--r--npc/021-8_Meeting_Rooms/_mobs.txt7
-rw-r--r--npc/021-8_Meeting_Rooms/_warps.txt2
-rw-r--r--npc/022-1/_import.txt (renamed from npc/022-1_Tulimshar/_import.txt)0
-rw-r--r--npc/022-1/_mobs.txt (renamed from npc/022-1_Tulimshar/_mobs.txt)2
-rw-r--r--npc/022-1/_warps.txt (renamed from npc/022-1_Tulimshar/_warps.txt)2
-rw-r--r--npc/022-1/dock.txt (renamed from npc/022-1_Tulimshar/dock.txt)0
-rw-r--r--npc/022-1/elanore.txt (renamed from npc/022-1_Tulimshar/elanore.txt)0
-rw-r--r--npc/022-1/ferry_master.txt (renamed from npc/022-1_Tulimshar/ferry_master.txt)0
-rw-r--r--npc/022-1/mapflags.txt (renamed from npc/022-1_Tulimshar/mapflags.txt)0
-rw-r--r--npc/022-1/tutorial.txt (renamed from npc/022-1_Tulimshar/tutorial.txt)0
-rw-r--r--npc/023-1_Beach_Cliffs/_import.txt3
-rw-r--r--npc/023-1_Beach_Cliffs/_mobs.txt7
-rw-r--r--npc/023-1_Beach_Cliffs/_warps.txt2
-rw-r--r--npc/024-1/_import.txt10
-rw-r--r--npc/024-1/_mobs.txt (renamed from npc/024-1_Tulimshar_Canyon/_mobs.txt)2
-rw-r--r--npc/024-1/_warps.txt (renamed from npc/024-1_Tulimshar_Canyon/_warps.txt)2
-rw-r--r--npc/024-1/ched.txt (renamed from npc/024-1_Tulimshar_Canyon/ched.txt)0
-rw-r--r--npc/024-1/david.txt51
-rw-r--r--npc/024-1/eomie.txt90
-rw-r--r--npc/024-1/tinris.txt (renamed from npc/024-1_Tulimshar_Canyon/tinris.txt)0
-rw-r--r--npc/024-1/tondar.txt (renamed from npc/024-1_Tulimshar_Canyon/tondar.txt)0
-rw-r--r--npc/024-1_Tulimshar_Canyon/_import.txt8
-rw-r--r--npc/024-1_Tulimshar_Canyon/eomie.txt7
-rw-r--r--npc/024-2/_import.txt8
-rw-r--r--npc/024-2/_mobs.txt (renamed from npc/024-2_Tulimshar_Magic_School/_mobs.txt)2
-rw-r--r--npc/024-2/_warps.txt (renamed from npc/024-2_Tulimshar_Magic_School/_warps.txt)2
-rw-r--r--npc/024-2/barrier.txt (renamed from npc/024-2_Tulimshar_Magic_School/barrier.txt)0
-rw-r--r--npc/024-2/tyer.txt (renamed from npc/024-2_Tulimshar_Magic_School/tyer.txt)0
-rw-r--r--npc/024-2/tyer_trigger.txt (renamed from npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt)0
-rw-r--r--npc/024-2_Tulimshar_Magic_School/_import.txt7
-rw-r--r--npc/025-1/_import.txt8
-rw-r--r--npc/025-1/_mobs.txt (renamed from npc/025-1_Woodland_Swamp/_mobs.txt)14
-rw-r--r--npc/025-1/_warps.txt (renamed from npc/025-1_Woodland_Swamp/_warps.txt)2
-rw-r--r--npc/025-1/barrier.txt13
-rw-r--r--npc/025-1/reset.txt73
-rw-r--r--npc/025-1/rossy.txt217
-rw-r--r--npc/025-1_Woodland_Swamp/_import.txt4
-rw-r--r--npc/025-3/_import.txt6
-rw-r--r--npc/025-3/_mobs.txt32
-rw-r--r--npc/025-3/_warps.txt5
-rw-r--r--npc/025-3/barriers.txt930
-rw-r--r--npc/025-4/_import.txt9
-rw-r--r--npc/025-4/_mobs.txt15
-rw-r--r--npc/025-4/_warps.txt4
-rw-r--r--npc/025-4/battlecaves.txt852
-rw-r--r--npc/025-4/clauquer.txt88
-rw-r--r--npc/025-4/julia.txt39
-rw-r--r--npc/025-4/mapflags.txt1
-rw-r--r--npc/026-1/_import.txt (renamed from npc/026-1_Swamp/_import.txt)7
-rw-r--r--npc/026-1/_mobs.txt (renamed from npc/026-1_Swamp/_mobs.txt)2
-rw-r--r--npc/026-1/_warps.txt (renamed from npc/026-1_Swamp/_warps.txt)2
-rw-r--r--npc/026-1/sign.txt (renamed from npc/026-1_Swamp/sign.txt)0
-rw-r--r--npc/027-1/_import.txt8
-rw-r--r--npc/027-1/_mobs.txt (renamed from npc/027-1_Graveyard/_mobs.txt)2
-rw-r--r--npc/027-1/_warps.txt (renamed from npc/027-1_Graveyard/_warps.txt)2
-rw-r--r--npc/027-1/golbenez.txt (renamed from npc/027-1_Graveyard/golbenez.txt)2
-rw-r--r--npc/027-1/graves.txt (renamed from npc/027-1_Graveyard/graves.txt)0
-rw-r--r--npc/027-1/monsters.txt (renamed from npc/027-1_Graveyard/monsters.txt)16
-rw-r--r--npc/027-1_Graveyard/_import.txt7
-rw-r--r--npc/027-2/_import.txt22
-rw-r--r--npc/027-2/_mobs.txt (renamed from npc/027-2_Caretakers_House/_mobs.txt)2
-rw-r--r--npc/027-2/_warps.txt (renamed from npc/027-2_Caretakers_House/_warps.txt)4
-rw-r--r--[-rwxr-xr-x]npc/027-2/alacrius.txt (renamed from npc/027-2_Caretakers_House/alacrius.txt)0
-rw-r--r--[-rwxr-xr-x]npc/027-2/alacrius2.txt (renamed from npc/027-2_Caretakers_House/alacrius2.txt)226
-rw-r--r--npc/027-2/barman.txt (renamed from npc/027-2_Caretakers_House/barman.txt)0
-rw-r--r--npc/027-2/caretaker.txt (renamed from npc/027-2_Caretakers_House/caretaker.txt)0
-rw-r--r--npc/027-2/cerhan.txt (renamed from npc/027-2_Caretakers_House/cerhan.txt)0
-rw-r--r--npc/027-2/crying_child.txt (renamed from npc/027-2_Caretakers_House/crying_child.txt)44
-rw-r--r--npc/027-2/diary.txt (renamed from npc/027-2_Caretakers_House/diary.txt)0
-rw-r--r--npc/027-2/door.txt (renamed from npc/027-2_Caretakers_House/door.txt)0
-rw-r--r--npc/027-2/evil_guard.txt (renamed from npc/027-2_Caretakers_House/evil_guard.txt)0
-rw-r--r--npc/027-2/golbenez.txt (renamed from npc/027-2_Caretakers_House/golbenez.txt)12
-rw-r--r--[-rwxr-xr-x]npc/027-2/gy_inn_shops.txt (renamed from npc/027-2_Caretakers_House/gy_inn_shops.txt)0
-rw-r--r--npc/027-2/headless_man.txt (renamed from npc/027-2_Caretakers_House/headless_man.txt)36
-rw-r--r--npc/027-2/husband.txt (renamed from npc/027-2_Caretakers_House/husband.txt)28
-rw-r--r--npc/027-2/innkeeper.txt (renamed from npc/027-2_Caretakers_House/innkeeper.txt)24
-rw-r--r--npc/027-2/lover.txt (renamed from npc/027-2_Caretakers_House/lover.txt)31
-rw-r--r--[-rwxr-xr-x]npc/027-2/testnpcs.txt (renamed from npc/027-2_Caretakers_House/testnpcs.txt)0
-rw-r--r--npc/027-2/werewolf.txt (renamed from npc/027-2_Caretakers_House/werewolf.txt)2
-rw-r--r--npc/027-2_Caretakers_House/_import.txt21
-rw-r--r--npc/027-3/_import.txt8
-rw-r--r--[-rwxr-xr-x]npc/027-3/_mobs.txt (renamed from npc/027-3_Crypt/_mobs.txt)2
-rw-r--r--[-rwxr-xr-x]npc/027-3/_warps.txt (renamed from npc/027-3_Crypt/_warps.txt)2
-rw-r--r--[-rwxr-xr-x]npc/027-3/caskets.txt (renamed from npc/027-3_Crypt/caskets.txt)12
-rw-r--r--[-rwxr-xr-x]npc/027-3/entrance.txt (renamed from npc/027-3_Crypt/entrance.txt)82
-rw-r--r--[-rwxr-xr-x]npc/027-3/mapflags.txt (renamed from npc/027-3_Crypt/mapflags.txt)0
-rwxr-xr-xnpc/027-3_Crypt/_import.txt7
-rw-r--r--npc/027-4/_import.txt7
-rw-r--r--[-rwxr-xr-x]npc/027-4/_mobs.txt (renamed from npc/027-4_Inner_Chamber/_mobs.txt)2
-rw-r--r--[-rwxr-xr-x]npc/027-4/_warps.txt (renamed from npc/027-4_Inner_Chamber/_warps.txt)2
-rw-r--r--[-rwxr-xr-x]npc/027-4/mapflags.txt (renamed from npc/027-4_Inner_Chamber/mapflags.txt)0
-rw-r--r--[-rwxr-xr-x]npc/027-4/reaper_script.txt (renamed from npc/027-4_Inner_Chamber/reaper_script.txt)28
-rwxr-xr-xnpc/027-4_Inner_Chamber/_import.txt6
-rw-r--r--npc/028-1/_import.txt1
-rw-r--r--npc/028-1/_mobs.txt2
-rw-r--r--npc/028-1/_warps.txt2
-rw-r--r--npc/028-3/_import.txt1
-rw-r--r--npc/028-3/_mobs.txt2
-rw-r--r--npc/028-3/_warps.txt2
-rw-r--r--npc/029-1/_import.txt7
-rw-r--r--npc/029-1/_mobs.txt (renamed from npc/029-1_Candor/_mobs.txt)2
-rw-r--r--npc/029-1/_warps.txt (renamed from npc/031-4_Cave/_warps.txt)2
-rw-r--r--npc/029-1/barrier.txt (renamed from npc/029-1_Candor/barrier.txt)16
-rw-r--r--npc/029-1/dock.txt (renamed from npc/029-1_Candor/dock.txt)0
-rw-r--r--npc/029-1_Candor/_import.txt6
-rw-r--r--npc/029-3/_import.txt8
-rw-r--r--npc/029-3/_mobs.txt (renamed from npc/029-3_Fight_Cave/_mobs.txt)2
-rw-r--r--npc/029-3/_warps.txt (renamed from npc/029-1_Candor/_warps.txt)2
-rw-r--r--npc/029-3/barrier.txt (renamed from npc/029-3_Fight_Cave/barrier.txt)16
-rw-r--r--npc/029-3/mapflags.txt (renamed from npc/029-3_Fight_Cave/mapflags.txt)0
-rw-r--r--npc/029-3/parua.txt (renamed from npc/029-3_Fight_Cave/parua.txt)0
-rw-r--r--npc/029-3_Fight_Cave/_import.txt7
-rw-r--r--npc/030-1/_import.txt (renamed from npc/030-1_Snow_field/_import.txt)5
-rw-r--r--npc/030-1/_mobs.txt (renamed from npc/030-1_Snow_field/_mobs.txt)2
-rw-r--r--npc/030-1/_warps.txt (renamed from npc/030-1_Snow_field/_warps.txt)2
-rw-r--r--npc/031-1/_import.txt8
-rw-r--r--npc/031-1/_mobs.txt (renamed from npc/031-1_NivalisPort/_mobs.txt)2
-rw-r--r--npc/031-1/_warps.txt (renamed from npc/031-1_NivalisPort/_warps.txt)2
-rw-r--r--npc/031-1/angelaOutside.txt (renamed from npc/031-1_NivalisPort/angelaOutside.txt)0
-rw-r--r--npc/031-1/frozenbeard.txt (renamed from npc/031-1_NivalisPort/frozenbeard.txt)0
-rw-r--r--npc/031-1/house.txt (renamed from npc/031-1_NivalisPort/house.txt)0
-rw-r--r--npc/031-1_NivalisPort/_import.txt7
-rw-r--r--npc/031-2/_import.txt7
-rw-r--r--npc/031-2/_mobs.txt (renamed from npc/031-2_Angelas_House/_mobs.txt)2
-rw-r--r--npc/031-2/_warps.txt (renamed from npc/031-2_Angelas_House/_warps.txt)2
-rw-r--r--npc/031-2/angelaHouse.txt (renamed from npc/031-2_Angelas_House/angelaHouse.txt)0
-rw-r--r--npc/031-2/cindyHouse.txt (renamed from npc/031-2_Angelas_House/cindyHouse.txt)0
-rw-r--r--npc/031-2_Angelas_House/_import.txt6
-rw-r--r--npc/031-3/_import.txt (renamed from npc/031-3_Cave/_import.txt)7
-rw-r--r--npc/031-3/_mobs.txt (renamed from npc/031-3_Cave/_mobs.txt)2
-rw-r--r--npc/031-3/_warps.txt (renamed from npc/031-3_Cave/_warps.txt)2
-rw-r--r--[-rwxr-xr-x]npc/031-3/labyrinth.txt (renamed from npc/031-3_Cave/labyrinth.txt)0
-rw-r--r--npc/031-4/_import.txt8
-rw-r--r--npc/031-4/_mobs.txt (renamed from npc/031-4_Cave/_mobs.txt)2
-rw-r--r--npc/031-4/_warps.txt (renamed from npc/029-3_Fight_Cave/_warps.txt)2
-rw-r--r--npc/031-4/barrier.txt (renamed from npc/031-4_Cave/barrier.txt)0
-rw-r--r--npc/031-4/cindyCave.txt (renamed from npc/031-4_Cave/cindyCave.txt)2
-rw-r--r--npc/031-4/mapflags.txt (renamed from npc/031-4_Cave/mapflags.txt)0
-rw-r--r--npc/031-4_Cave/_import.txt7
-rw-r--r--npc/032-1/_import.txt (renamed from npc/032-1_Outback/_import.txt)7
-rw-r--r--npc/032-1/_mobs.txt (renamed from npc/032-1_Outback/_mobs.txt)2
-rw-r--r--npc/032-1/_warps.txt (renamed from npc/032-1_Outback/_warps.txt)2
-rw-r--r--npc/032-1/miriam.txt (renamed from npc/032-1_Outback/miriam.txt)4
-rw-r--r--npc/032-3/_import.txt (renamed from npc/032-3_Cave/_import.txt)5
-rw-r--r--npc/032-3/_mobs.txt (renamed from npc/032-3_Cave/_mobs.txt)2
-rw-r--r--npc/032-3/_warps.txt (renamed from npc/032-3_Cave/_warps.txt)2
-rw-r--r--npc/033-1/_import.txt (renamed from npc/033-1_Snow_field/_import.txt)5
-rw-r--r--npc/033-1/_mobs.txt (renamed from npc/033-1_Snow_field/_mobs.txt)2
-rw-r--r--npc/033-1/_warps.txt (renamed from npc/033-1_Snow_field/_warps.txt)2
-rw-r--r--npc/034-1/_import.txt (renamed from npc/034-1_Snow_field/_import.txt)5
-rw-r--r--npc/034-1/_mobs.txt (renamed from npc/034-1_Snow_field/_mobs.txt)2
-rw-r--r--npc/034-1/_warps.txt3
-rw-r--r--npc/034-1_Snow_field/_warps.txt3
-rw-r--r--npc/_import.txt141
-rw-r--r--npc/botcheck/_import.txt1
-rw-r--r--npc/botcheck/_mobs.txt2
-rw-r--r--npc/botcheck/_warps.txt2
-rw-r--r--npc/easter/2011/bunny.txt214
-rw-r--r--npc/functions/banker.txt40
-rw-r--r--npc/functions/barber.txt3
-rw-r--r--npc/functions/magic.txt2
-rw-r--r--npc/functions/mob_points.txt7
-rw-r--r--npc/functions/strangerquiz.txt7
-rw-r--r--npc/items/scissors.txt2
-rw-r--r--npc/items/warpTowels.txt130
-rw-r--r--npc/scripts.conf2
-rw-r--r--[-rwxr-xr-x]npc/xmas/2010/golbanez.txt6
-rw-r--r--[-rwxr-xr-x]npc/xmas/2010/santa.txt2
-rw-r--r--tools/tmwcon/src/converter/Process.java17
564 files changed, 7531 insertions, 2979 deletions
diff --git a/conf/magic.conf.template b/conf/magic.conf.template
index 931fb678..c8fd29df 100644
--- a/conf/magic.conf.template
+++ b/conf/magic.conf.template
@@ -583,7 +583,7 @@ SPELL lay-on-hands (target : STRING) : "#L10" =
)
ELSE (target = pc(target);
needed = max_hp(target) - hp(target);)
-
+
pay_fraction = max(80, 200 - (vit(caster) + (spellpower / 10))); # Pay at least 40%
payment = (needed * pay_fraction) / 200;
available = hp(caster) - (max_hp(caster) / 20);
@@ -685,7 +685,7 @@ SPELL magic-knuckles : "#W12" =
REQUIRE skill(caster, MAGIC) > level,
REQUIRE skill(caster, school) > level,
(REQUIRE skill(caster, school) > 3 OR COMPONENTS ["Beer"]))
- =>
+ =>
EFFECT CALL adjust_spellpower(WAR);
str = str(caster);
CALL install_melee_spell(10 + spellpower / 10, 1300, 34);
@@ -786,13 +786,13 @@ PROCEDURE shear-drop2(target, target2, item, prob, item2, prob2) =
THEN (IF (score < prob)
THEN drop_item_for(place, item, 1, 60000, caster, 5000);
ELSE CALL shear-drop(target, target2, item2, prob2 + prob);)
-
+
PROCEDURE shear-drop3(target, target2, item, prob, item2, prob2, item3, prob3) =
IF (target = name || target2 = name)
THEN (IF (score < prob)
THEN drop_item_for(place, item, 1, 60000, caster, 5000);
ELSE CALL shear-drop2(target, target2, item2, prob2 + prob, item3, prob3 + prob);)
-
+
SPELL shear : "#N14" =
LET level = 1
@@ -823,7 +823,7 @@ SPELL shear : "#N14" =
THEN { set @value, 1; callfunc "QuestSagathaHappy"; };
)
-
+
SPELL barrier (target : PC) : "#A10" =
LET level = 1
@@ -904,7 +904,7 @@ SPELL reveal : "#G11" =
DO IF has_shroud(target) && level(caster) * 2 > level(target)
THEN (unshroud(target);
sfx(target, SFX_DEFAULT, 500);)
-
+
SPELL enchant-lifestone : "#G12" =
LET level = 1
@@ -1022,7 +1022,7 @@ SPELL fire-ball : "#W22" =
CALL elt_damage (target, (damage * 3) / divisor, (damage_bonus * 3) / divisor, ELT_WATER, ELT_FIRE, 15);
)
-SPELL summon-partner : "#A23" =
+SPELL summon-partner : "#A23" =
LET level = 2
school = ASTRAL
IN (MANA 30, CASTTIME 2000,
@@ -1055,7 +1055,7 @@ SPELL summon-partner : "#A23" =
# Level 4 spells
#--------------------------------------------------------------------------------
-SPELL shroud : "#N40" =
+SPELL shroud : "#N40" =
LET level = 4
school = NATURE
IN (MANA 40, CASTTIME 400,
@@ -1064,7 +1064,7 @@ SPELL shroud : "#N40" =
=> EFFECT CALL default_effect();
shroud(caster, 0x04);
-SPELL teleport (destination : STRING) : "#A40" =
+SPELL teleport (destination : STRING) : "#A40" =
LET level = 4
school = ASTRAL
IN (MANA 80, CASTTIME 400,
@@ -1156,27 +1156,27 @@ PROCEDURE debug_mod(name, delta) =
ELSE IF (name = "elanore-sub") THEN CALL debug_xmod("QUEST_MAGIC2", 0xf, 12, delta);
ELSE message(caster, "Unknown");
-SPELL debug-up1 (name : STRING) : "debug+1" =
+SPELL debug-up1 (name : STRING) : "debug+1" =
REQUIRE DEBUG
=> EFFECT CALL debug_mod(name, 1);
-SPELL debug-down1 (name : STRING) : "debug-1" =
+SPELL debug-down1 (name : STRING) : "debug-1" =
REQUIRE DEBUG
=> EFFECT CALL debug_mod(name, 0 - 1);
-SPELL debug-up16 (name : STRING) : "debug+16" =
+SPELL debug-up16 (name : STRING) : "debug+16" =
REQUIRE DEBUG
=> EFFECT CALL debug_mod(name, 16);
-SPELL debug-down16 (name : STRING) : "debug-16" =
+SPELL debug-down16 (name : STRING) : "debug-16" =
REQUIRE DEBUG
=> EFFECT CALL debug_mod(name, 0 - 16);
-SPELL debug-up256 (name : STRING) : "debug+256" =
+SPELL debug-up256 (name : STRING) : "debug+256" =
REQUIRE DEBUG
=> EFFECT CALL debug_mod(name, 256);
-SPELL debug-down256 (name : STRING) : "debug-256" =
+SPELL debug-down256 (name : STRING) : "debug-256" =
REQUIRE DEBUG
=> EFFECT CALL debug_mod(name, 0 - 256);
@@ -1221,7 +1221,7 @@ NONMAGIC SILENT SPELL marriage (target : PC) : "marry" =
THEN (message(caster, "You must both be wearing your wedding rings!"); ABORT;)
script_target = target;
- {
+ {
announce @caster_name$ + " is asking " + strcharinfo(0) + " for marriage.", 2;
mes @caster_name$ + " wishes to marry you.";
mes "Do you accept?";
@@ -1600,6 +1600,93 @@ NONMAGIC SPELL hug5 (target : STRING) : "*hugs" = REQUIRE ((rdistance(location(c
=> EFFECT CALL hug_tree(target);
+# coding of generic spellinvocations
+# #[indicates difficulty level][indicates questionnumber][indicates answerpossibility]
+# X = easy; Y = medium; Z = hard
+# each question have a number of possible answers (mostly using capital letters or not)
+
+NONMAGIC SPELL towelanswer00a : "#X00" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer00b : "#X01" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer01a : "#X10" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer01b : "#X11" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer02a : "#X20" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer02b : "#X21" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer03a : "#X30" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer03b : "#X31" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer04a : "#X40" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer04b : "#X41" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer05a : "#X50" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer05b : "#X51" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer05c : "#X52" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer05d : "#X53" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer06a : "#X60" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer06b : "#X61" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer06c : "#X62" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer06d : "#X63" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer07a : "#X70" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer07b : "#X71" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer08a : "#X80" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer08b : "#X81" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer08c : "#X82" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer08d : "#X83" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer09a : "#X90" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer09b : "#X91" = EFFECT { message strcharinfo(0), ""; };
+
+NONMAGIC SPELL towelanswer10a : "#Y00" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer10b : "#Y01" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer11a : "#Y10" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer11b : "#Y11" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer12a : "#Y20" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer12b : "#Y21" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer13a : "#Y30" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer13b : "#Y31" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer14a : "#Y40" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer14b : "#Y41" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer15a : "#Y50" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer15b : "#Y51" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer15c : "#Y52" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer16a : "#Y60" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer16b : "#Y61" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer17a : "#Y70" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer17b : "#Y71" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer18a : "#Y80" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer18b : "#Y81" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer18c : "#Y82" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer18d : "#Y83" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer19a : "#Y90" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer19b : "#Y91" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer19c : "#Y92" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer19d : "#Y93" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer110a : "#YA0" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer110b : "#YA1" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer111a : "#YB0" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer111b : "#YB1" = EFFECT { message strcharinfo(0), ""; };
+
+NONMAGIC SPELL towelanswer20a : "#Z00" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer20b : "#Z01" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer20c : "#Z02" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer20d : "#Z03" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer21a : "#Z10" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer21b : "#Z11" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer22a : "#Z20" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer22b : "#Z21" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer23a : "#Z30" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer23b : "#Z31" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer24a : "#Z40" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer24b : "#Z41" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer25a : "#Z50" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer25b : "#Z51" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer26a : "#Z60" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer26b : "#Z61" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer26c : "#Z62" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer26d : "#Z63" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer27a : "#Z70" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer27b : "#Z71" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer27c : "#Z72" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer27d : "#Z73" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer28a : "#Z80" = EFFECT { message strcharinfo(0), ""; };
+NONMAGIC SPELL towelanswer28b : "#Z81" = EFFECT { message strcharinfo(0), ""; };
+
#--------------------------------------------------------------------------------
# Teleport anchors
#--------------------------------------------------------------------------------
diff --git a/data/003-1.wlk b/data/003-1.wlk
index 262575b1..810b4e67 100644
--- a/data/003-1.wlk
+++ b/data/003-1.wlk
Binary files differ
diff --git a/data/005-3.wlk b/data/005-3.wlk
index f3c047db..dd0e45bd 100644
--- a/data/005-3.wlk
+++ b/data/005-3.wlk
Binary files differ
diff --git a/data/005-4.wlk b/data/005-4.wlk
new file mode 100644
index 00000000..ebbe5d65
--- /dev/null
+++ b/data/005-4.wlk
Binary files differ
diff --git a/data/011-6.wlk b/data/011-6.wlk
index ffa230e7..d779ef55 100644
--- a/data/011-6.wlk
+++ b/data/011-6.wlk
Binary files differ
diff --git a/data/018-3.wlk b/data/018-3.wlk
index 80f06b33..c5e2b82d 100644
--- a/data/018-3.wlk
+++ b/data/018-3.wlk
Binary files differ
diff --git a/data/025-3.wlk b/data/025-3.wlk
new file mode 100644
index 00000000..85f1b94f
--- /dev/null
+++ b/data/025-3.wlk
Binary files differ
diff --git a/data/025-4.wlk b/data/025-4.wlk
new file mode 100644
index 00000000..00b9fa66
--- /dev/null
+++ b/data/025-4.wlk
Binary files differ
diff --git a/data/027-1.wlk b/data/027-1.wlk
index 60b99ff7..435168cc 100644
--- a/data/027-1.wlk
+++ b/data/027-1.wlk
Binary files differ
diff --git a/data/027-2.wlk b/data/027-2.wlk
index 582bd58c..0617e91f 100644
--- a/data/027-2.wlk
+++ b/data/027-2.wlk
Binary files differ
diff --git a/data/028-1.wlk b/data/028-1.wlk
index 5e1be8fc..95c6b87c 100644
--- a/data/028-1.wlk
+++ b/data/028-1.wlk
Binary files differ
diff --git a/data/resnametable.txt b/data/resnametable.txt
index 505f9fdd..fa526488 100644
--- a/data/resnametable.txt
+++ b/data/resnametable.txt
@@ -12,6 +12,7 @@
004-2.gat#004-2.wlk#
005-1.gat#005-1.wlk#
005-3.gat#005-3.wlk#
+005-4.gat#005-4.wlk#
006-1.gat#006-1.wlk#
006-3.gat#006-3.wlk#
007-1.gat#007-1.wlk#
@@ -57,6 +58,8 @@
024-1.gat#024-1.wlk#
024-2.gat#024-2.wlk#
025-1.gat#025-1.wlk#
+025-3.gat#025-3.wlk#
+025-4.gat#025-4.wlk#
026-1.gat#026-1.wlk#
027-1.gat#027-1.wlk#
027-2.gat#027-2.wlk#
diff --git a/db/const.txt b/db/const.txt
index 30d988ee..f7b12451 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -255,7 +255,12 @@ FLAG_HAS_BOWLER_BURNSDAY 1 // every year's poem at burns day, shannon gives you
FLAG_OPENED_UNDERGROUND 2 // this flag is a replacement for variable Open_Underground_Palace_Barrier, which was used only as bool
FLAG_GOT_NAEM_GLOVES 4 // this replaces Naem_Quest_Done, which was used as a bool variable
FLAG_GOT_GRADUATIONCAP 8 // this is a bit which was to be found in Tut_var second bit
-FLAG_TUTORIAL_DONE 128 // player completed tutorial (or entered the tutorial area from outside after it was added)
+FLAG_TOWEL_HELPED 16 // gave the towel npc the stuff he wants
+FLAG_TOWEL_COMPLETED 32 // got the towel from the towel npc
+FLAG_ANDRA_HELPED 64 // Knows Andra and agreed to help her
+FLAG_ROSSI_COMPLETED 128 // Completed the Rossi Quest
+FLAG_TUTORIAL_DONE 256 // player completed tutorial (or entered the tutorial area from outside after it was added)
+
DOCK_tulimshar 1
DOCK_hurnscald 2
DOCK_candor 3
@@ -362,8 +367,23 @@ E10_ISLAND_MENU_SCARED 13
E10_ISLAND_MENU_WISPS 14
E10_ISLAND_MENU_OFFER_LIFESTONE 15
+// Flags for Battle Caves
+BATTLE_CAVE1, 1
+BATTLE_CAVE2, 2
+BATTLE_CAVE3, 4
+BATTLE_CAVE4, 8
+BATTLE_CAVE5, 16
+BATTLE_CAVE6, 32
+BATTLE_CAVE7, 64
+BATTLE_CAVE8, 128
+BATTLE_CAVE9, 256
+
// Miscellaneous
E10_COLLECT_EGGS_ID 1246
E10_TOKEN_ID 666
E10_MIDREWARD_ID 1247 // Valentine's Glasses (as described)
+
+// Storage Options
+OPT_STORAGE_CLOSE 1
+OPT_BANK_CLOSE 2
diff --git a/db/item_db.txt b/db/item_db.txt
index 7c78ab5c..25dc27c7 100644
--- a/db/item_db.txt
+++ b/db/item_db.txt
@@ -26,7 +26,7 @@
523, LeatherShirt, Leather Shirt, 5, 2000, 1000, 20, , 4, , -12, 0, 2, 512, , 0, 0, {}, {}, ,
524, FancyHat, Fancy Hat, 5, 1600, 800, 20, , 5, , 0, 0, 2, 256, , 0, 0, {}, {}, ,
525, MinersHat, Miners Hat, 5, 800, 400, 40, , 4, , -8, 0, 2, 256, , 0, 0, {}, {}, ,
-526, CoinBag, Coin Bag, 3, 100, 50, 5, , , , , , , , , , , {}, {}, ,
+526, CoinBag, Coin Bag, 3, 1000, 500, 5, , , , , , , , , , , {}, {}, ,
527, Milk, Milk, 0, 300, 150, 5, , , , , , 2, , , 0, , {itemheal 150, 0;}, {},
528, Boots, Boots, 5, 8000, 500, 80, , 2, , -2, 0, 2, 64, , 0, 0, {}, {}, ,
529, IronArrow, Iron Arrow, 10, 4, 2, 1, 40, , , , , 2, 32768, , , , {}, {}, ,
@@ -67,8 +67,8 @@
562, ChickenLeg, Chicken Leg, 0, 250, 125, 10, , , , , , 2, , , 0, , {itemheal 500, 0;}, {},
563, WinterGloves, Winter Gloves, 5, 6000, 3000, 20, , 3, , -15, 0, 2, 4, , 0, 0, {}, {}, ,
564, TurtleneckSweater, Turtleneck Sweater, 5, 2000, 1000, 30, , 6, , -18, 0, 2, 512, , 0, 0, {}, {}, ,
-565, PinkPetal, Pink Petal, 0, 10, 25, 10, , , , , , 2, , , 0, , {itemheal 50, 0;}, {},
-566, SmallMushroom, Small Mushroom, 0, 50, 25, 10, , , , , , 2, , , 0, , {itemheal 50, 0;}, {},
+565, PinkPetal, Pink Petal, 0, 100, 50, 10, , , , , , 2, , , 0, , {itemheal 50, 0;}, {},
+566, SmallMushroom, Small Mushroom, 0, 100, 50, 10, , , , , , 2, , , 0, , {itemheal 50, 0;}, {},
567, IronPotion, Iron Potion, 0, 500, 250, 10, , , , , , 2, , , 0, , {sc_start sc_raiseattackstrength, 60, 60;}, {}
568, ConcentrationPotion, Concentration Potion, 0, 500, 250, 10, , , , , , 2, , , 0, , {sc_start sc_raiseattackspeed0, 60, 30;}, {}
569, RawLog, Raw Log, 3, 20, 10, 10, , , , , , , , , , , {}, {}, ,
@@ -154,12 +154,12 @@
645, GoldenPlatemail, Golden Platemail, 5, 9999000,3000, 4500, , 25, , -100, 0, 2, 512, , 0, 0, {}, {}, ,
646, Crown, Crown, 5, 5000, 1000, 240, , 4, , 0, 0, 2, 256, , 0, 0, {}, {}, ,
647, DevelopersCap, Developer's Cap, 5, 2000, 500, 20, , 5, , 5, 0, 2, 256, , 0, 0, {}, {}, ,
-//648, RESERVED, Rough Strength Ring, , , , , , , , , , , , , , , {}, {}, ,
-//649, RESERVED, Rough Agility Ring, , , , , , , , , , , , , , , {}, {}, ,
-//650, RESERVED, Rough Dexterity Ring, , , , , , , , , , , , , , , {}, {}, ,
-//651, RESERVED, Rough Vitality Ring, , , , , , , , , , , , , , , {}, {}, ,
-//652, RESERVED, Rough Intelligence Ring, , , , , , , , , , , , , , , {}, {}, ,
-//653, RESERVED, Rough Willpower Ring, , , , , , , , , , , , , , , {}, {}, ,
+//648, RESERVED, , Trousers, , , , , , , , , , , , , , {}, {}, ,
+649, WhiteEvokersRobeBlue, White Evokers Robe Blue, 5, 8000, 4000, 5, , 5, , 20, 0, 2, 512, , 0, 0, {}, {bonus bAgi, 1;}, ,
+650, BlackEvokersRobeBlue, Black Evokers Robe Blue, 5, 8000, 4000, 5, , 5, , 20, 0, 2, 512, , 0, 0, {}, {bonus bAgi, 1;}, ,
+651, WhiteWizardRobe, WhiteWizardRobe, 5, 8000, 4000, 5, , 5, , 0, 0, 2, 512, , 0, 0, {}, {}, ,
+652, BlackWizardRobe, BlackWizardRobe, 5, 8000, 4000, 5, , 5, , 0, 0, 2, 512, , 0, 0, {}, {}, ,
+653, ApprenticeRobe, Apprentice Robe, 5, 8000, 4000, 5, , 5, , 0, 0, 2, 512, , 0, 0, {}, {}, ,
654, Cap, Cap, 5, 2000, 500, 20, , 5, , 0, 0, 2, 256, , 0, 0, {}, {}, ,
655, FurBoots, Fur Boots, 5, 5000, 600, 50, , 3, , -3, 0, 2, 64, , 0, 0, {}, {}, ,
656, SerfHat, Serf Hat, 5, 500, 100, 20, , 2, , 0, 0, 2, 256, , 0, 0, {}, {}, ,
@@ -244,7 +244,7 @@
731, AssassinPants, Assassin Pants, 5, 10000, 3000, 20, , 5, , -5, 0, 2, 1, , 0, 0, {}, {callfunc "UnreleasedItem";bonus bAgi, 8;},
732, DruidTreeBranch, Druid Tree Branch, 3, 0, 0, 2, , , , , , , , , , , {}, {}, ,
733, PurificationPotion, Purification Potion, 0, 0, 0, 15, , , , , , 2, , , , , {callfunc "usePurificationPotion";}, {}, ,
-734, BlackBoots, Black Boots, 5, 20000, 3000, 35, , 4, , -10, 0, 2, 64, , 0, 0, {}, {}, ,
+734, BlackBoots, Black Boots, 5, 20000, 3000, 25, , 3, , -10, 0, 2, 64, , 0, 0, {}, {}, ,
735, CottonBoots, Cotton Boots, 5, 2000, 500, 10, , 1, , 1, 0, 2, 64, , 0, 0, {}, {}, ,
736, WhiteCake, White Cake, 0, 500, 100, 10, , , , , , 2, , , 0, , {itemheal 10, 0;}, {},
737, ChocolateCake, Chocolate Cake, 0, 550, 125, 10, , , , , , 2, , , 0, , {itemheal 11, 0;}, {},
@@ -279,7 +279,7 @@
//765, CaptainsHat, Captain's Hat, , , , , , , , , , , , , , , {}, {}
766, TerraniteHelmet, Terranite Helmet, 5, 30000, 3000, 300, , 15, , -12, 0, 2, 256, , 0, 0, {}, {bonus bMdef, 5;}
767, TerraniteChestArmor, Terranite Chest Armor, 5, 100000, 3000, 800, , 20, , -70, 0, 2, 512, , 0, 0, {}, {bonus bDex, 1;bonus bMdef, 10;}
-768, TerraniteLegsArmor, Terranite Legs Armor, 5, 10000, 3000, 30, , 5, , -8, 0, 2, 1, , 0, 0, {}, {bonus bAgi, 1;bonus bMdef, 5;}
+768, TerraniteLegs, Terranite Legs, 5, 10000, 3000, 30, , 5, , -8, 0, 2, 1, , 0, 0, {}, {bonus bAgi, 1;bonus bMdef, 5;}
769, GuyFawkesMask, Guy Fawkes Mask, 5, 1000, 500, 50, , 3, , 0, 0, 2, 256, , 0, 0, {}, {}
#ID, Name, Label, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, {UseScript}, {EquipScript}
770, FairyHat, Fairy Hat, 5, 2000, 1000, 20, , 5, , -10, 0, 2, 256, , 0, 0, {}, {bonus bLuk, 3;}
@@ -321,7 +321,23 @@
806, ReedBundle, Reed Bundle, 3, 20, 10, 7, , , , , , 2, , , , , {}, {}, ,
807, GrassSeed, Grass Seed, 3, 20, 10, 1, , , , , , 2, , , , , {}, {}, ,
#ID, Name, Label, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, {UseScript}, {EquipScript}
-
+808, GreyWarpTowel, Hitchhiker's Towel, 3, 1000, 500, 20, , , , , , , , , , , {}, {}
+809, WhiteWarpTowel, White Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useWhiteWarpTowel";}, {}
+810, RedWarpTowel, Red Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useRedWarpTowel";}, {}
+811, GreenWarpTowel, Green Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useGreenWarpTowel";}, {}
+812, BlueWarpTowel, Blue Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useBlueWarpTowel";}, {}
+813, YellowWarpTowel, Yellow Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useYellowWarpTowel";}, {}
+814, PurpleWarpTowel, Purple Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "usePurpleWarpTowel";}, {}
+815, OrangeWarpTowel, Orange Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useOrangeWarpTowel";}, {}
+816, PinkWarpTowel, Pink Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "usePinkWarpTowel";}, {}
+817, TealWarpTowel, Teal Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useTealWarpTowel";}, {}
+818, LimeWarpTowel, Lime Hitchhiker's Towel, 0, 1000, 500, 30, , , , , , 2, , , 0, , {callfunc "useLimeWarpTowel";}, {}
+819, GemPowderWhite, Diamond Powder, 3, 1000, 500, 5, , , , , , , , , , , {}, {}
+820, GemPowderRed, Ruby Powder, 3, 1000, 500, 5, , , , , , , , , , , {}, {}
+821, GemPowderGreen, Emerald Powder, 3, 1000, 500, 5, , , , , , , , , , , {}, {}
+822, GemPowderBlue, Sapphire Powder, 3, 1000, 500, 5, , , , , , , , , , , {}, {}
+823, GemPowderYellow, Topaz Powder, 3, 1000, 500, 5, , , , , , , , , , , {}, {}
+824, GemPowderPurple, Amethyst Powder, 3, 1000, 500, 5, , , , , , , , , , , {}, {}
// Add new entries above here. For dyed entries, add to the bottom of the 2000s.
@@ -373,16 +389,16 @@
1241, SnowmanSnowGlobe, Snowman Snow Globe, 3, 7500, 5000, 1, , , , , , 2, , , 0, , {}, {}
1242, SnowGoggles, Snow Goggles, 5, 7500, 5000, 10, , 5, , -2, 0, 2, 256, , 0, 0, {}, {}
#ID, Name, Label, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, {UseScript}, {EquipScript}
-1243, PaperHat, Paper Party Hat, 5, 10, 5, 1, , 1, , 0, 0, 2, 256, , 0, 0, {}, {}
+//1243, RESERVED, , , , , , , , , , , , , , , , {}, {}, ,
1244, DarkTalisman, Dark Talisman, 5, 0, 0, 0, , 30, , 100, 0, 2, 512, , 0, 0, {}, {set@minLvl, 1;callfunc "RestrictedItem"; set @val, getopt2; if(!(@val&1024))setopt2 getopt2 | 1024; bonus bMaxHp, 30000; bonus bFlee, -150;}
1245, BentNeedle, Bent Needle, 3, 700, 1, 3, , , , , , 2, , , 0, 0, {}, {}
1246, DarkEasterEgg, Dark Easter Egg, 3, 700, 50, 10, , , , , , 2, , , 0, 0, {}, {}
1247, HeartGlasses, Heart Glasses, 5, 7500, 5000, 20, , 4, , 5, 0, 2, 256, , 0, 0, {}, {}
-1248, Blueberries, Blueberries, 0, 1000, 500, 6, , , , , , 2, , , 0, , {itemheal 800, 0;}, {}
+1248, Blueberries, Blueberries, 0, 50, 25, 6, , , , , , 2, , , 0, , {itemheal 200, 0;}, {}
1249, StrangeCoin, Strange Coin, 3, 7000, 5000, 3, , , , , , 2, , , 0, 0, {}, {}
-1250, Pear, Pear, 0, 1000, 500, 7, , , , , , 2, , , 0, , {itemheal 200, 0;}, {}
-1251, Plum, Plum, 0, 1000, 500, 10, , , , , , 2, , , 0, , {itemheal 300, 0;}, {}
-1252, Cherry, Cherry, 0, 1000, 500, 5, , , , , , 2, , , 0, , {itemheal 250, 0;}, {}
+1250, Pear, Pear, 0, 50, 25, 7, , , , , , 2, , , 0, , {itemheal 150, 0;}, {}
+1251, Plum, Plum, 0, 50, 25, 10, , , , , , 2, , , 0, , {itemheal 100, 0;}, {}
+1252, Cherry, Cherry, 0, 50, 25, 5, , , , , , 2, , , 0, , {itemheal 50, 0;}, {}
1253, GoldenDeliciousApple, Golden Delicious Apple, 0, 1000, 500, 30, , , , , , 2, , , 0, , {itemheal 200, 0;}, {}
1254, DarkPetal, Dark Petal, 3, 15000, 8000, 250, , , , , , 2, , , 0, , {}, {}
1255, WhiteRabbitEars, White Rabbit Ears, 5, 7000, 5000, 20, , 5, , 4, 0, 2, 256, , 1, 0, {}, {}
@@ -552,17 +568,16 @@
2177, OrangeMiniskirt, Orange Miniskirt, 5, 1000, 500, 8, , 4, , -8, 0, 2, 1, , 1, 0, {}, {}
2178, PurpleMiniskirt, Purple Miniskirt, 5, 1000, 500, 8, , 4, , -8, 0, 2, 1, , 1, 0, {}, {}
2179, DarkGreenMiniskirt, Dark Green Miniskirt, 5, 1000, 500, 8, , 4, , -8, 0, 2, 1, , 1, 0, {}, {}
-2180, RedPaperhat, Red Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2181, GreenPaperhat, Green Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2182, DarkBluePaperhat, Dark Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2183, YellowPaperhat, Yellow Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2184, LightBluePaperhat, Light Blue Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-#ID, Name, Label, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, {UseScript}, {EquipScript}
-2185, PinkPaperhat, Pink Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2186, BlackPaperhat, Black Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2187, OrangePaperhat, Orange Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2188, PurplePaperhat, Purple Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
-2189, DarkGreenPaperhat, Dark Green Paper Party Hat, 5, 10, 5, 10, , 1, , 0, 0, 2, 1, , 1, 0, {}, {}
+//2180, RESERVED, Red Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Green Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Dark Blue Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Yellow Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Light Blue Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Pink Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Black Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Orange Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Purple Trousers, , , , , , , , , , , , , , ,
+//2180, RESERVED, Dark Green Trousers, , , , , , , , , , , , , , ,
2190, RedRabbitEars, Red Rabbit Ears, 5, 7000, 5000, 15, , 5, , 4, 0, 2, 256, , 1, 0, {}, {}
2191, GreenRabbitEars, Green Rabbit Ears, 5, 7000, 5000, 15, , 5, , 4, 0, 2, 256, , 1, 0, {}, {}
2192, DarkBlueRabbitEars, Dark Blue Rabbit Ears, 5, 7000, 5000, 15, , 5, , 4, 0, 2, 256, , 1, 0, {}, {}
@@ -614,6 +629,7 @@
2237, OrangeBowlerHatBrown, Orange Bowler Hat Brown, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
2238, PurpleBowlerHatBrown, Purple Bowler Hat Brown, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
2239, DarkGreenBowlerHatBrown, Dark Green Bowler Hat Brown, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+#ID, Name, Label, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, {UseScript}, {EquipScript}
// Add dyed entries above here. For regular entries, please use the < 1000s.
diff --git a/db/mob_db.txt b/db/mob_db.txt
index dae837af..95981838 100644
--- a/db/mob_db.txt
+++ b/db/mob_db.txt
@@ -1,84 +1,99 @@
-#ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop1id,Drop1per, Drop2id,Drop2per, Drop3id,Drop3per, Drop4id,Drop4per, Drop5id,Drop5per, Drop6id,Drop6per, Drop7id,Drop7per, Drop8id,Drop8per, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount, mutationstrength
-1002, Maggot, Maggot, 5, 50, 0, 0, 2, 1, 5, 10, 0, 5, 1, 1, 1, 0, 6, 5, 1, 1, 1, 3, 21, 129, 800, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 533, 150, 502, 70, 522, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1003, Scorpion, Scorpion, 10, 100, 0, 0, 4, 1, 10, 15, 0, 5, 1, 1, 1, 0, 15, 5, 1, 1, 1, 3, 20, 129, 2000, 1872, 672, 480, 507, 700, 510, 100, 509, 50, 518, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1004, RedScorpion, RedScorpion, 90, 550, 0, 0, 145, 1, 50, 55, 4, 6, 8, 8, 10, 10, 30, 10, 1, 1, 1, 0, 20, 129, 1000, 1872, 672, 480, 517, 2000, 509, 100, 518, 500, 1200, 10, 1199, 760, 1201, 540, 524, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 50
-1005, GreenSlime, GreenSlime, 40, 300, 0, 0, 8, 1, 25, 30, 2, 7, 1, 20, 1, 0, 30, 30, 1, 1, 1, 0, 21, 131, 1500, 1872, 672, 480, 502, 200, 513, 100, 501, 100, 521, 100, 522, 190, 526, 10, 503, 500, 535, 750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
-1006, GiantMaggot, GiantMaggot, 80, 500, 0, 0, 16, 2, 45, 75, 2, 7, 8, 6, 2, 1, 22, 1, 2, 2, 1, 0, 41, 129, 2000, 1872, 672, 480, 1199, 900, 519, 100, 518, 750, 501, 5000, 502, 3000, 503, 11, 526, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 25
-1007, YellowSlime, YellowSlime, 60, 400, 0, 0, 2, 1, 35, 40, 2, 7, 9, 6, 2, 1, 34, 1, 1, 1, 1, 0, 21, 131, 1400, 1800, 672, 480, 534, 200, 519, 100, 501, 350, 502, 250, 522, 10, 640, 450, 4006, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
-1008, RedSlime, RedSlime, 70, 450, 0, 0, 56, 1, 40, 45, 2, 7, 12, 8, 2, 1, 25, 1, 1, 1, 1, 0, 21, 135, 1300, 1500, 672, 480, 1201, 300, 509, 110, 521, 200, 4003, 20, 525, 80, 535, 750, 528, 250, 531, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
-1009, BlackScorpion, BlackScorpion, 100, 600, 0, 0, 70, 1, 60, 100, 4, 6, 16, 30, 10, 10, 35, 10, 1, 1, 1, 0, 20, 133, 1000, 1500, 672, 480, 523, 150, 509, 100, 518, 800, 709, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 50
-1010, Snake, Snake, 115, 850, 0, 0, 100, 1, 75, 90, 4, 6, 20, 11, 10, 10, 35, 10, 1, 1, 1, 0, 20, 133, 900, 1300, 672, 480, 524, 300, 0, 0, 714, 400, 714, 400, 710, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1011, FireGoblin, FireGoblin, 20, 220, 0, 0, 2, 1, 15, 20, 0, 5, 1, 1, 1, 0, 6, 30, 1, 1, 1, 3, 23, 129, 800, 1872, 672, 480, 505, 800, 501, 150, 518, 800, 502, 150, 521, 70, 522, 10, 701, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1012, Spider, Spider, 125, 800, 0, 0, 280, 1, 70, 85, 4, 6, 14, 13, 10, 10, 35, 10, 1, 1, 1, 0, 25, 175, 1000, 1500, 672, 480, 537, 500, 535, 100, 638, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
-1013, EvilMushroom, EvilMushroom, 110, 650, 0, 0, 110, 1, 65, 80, 4, 6, 16, 12, 10, 10, 35, 10, 1, 1, 1, 3, 22, 137, 800, 1800, 672, 480, 535, 500, 540, 10, 534, 100, 566, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60
-1014, PinkFlower, PinkFlower, 115, 700, 0, 0, 110, 2, 70, 75, 0, 5, 16, 12, 20, 20, 20, 50, 2, 2, 1, 3, 22, 128, 800, 800, 672, 480, 535, 100, 540, 10, 1199, 100, 526, 400, 565, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 50
-1015, SantaSlime, SantaSlime, 120, 750, 0, 0, 0, 1, 75, 80, 2, 7, 1, 20, 1, 0, 30, 30, 1, 1, 1, 0, 21, 161, 1500, 1872, 672, 480, 512, 800, 513, 700, 514, 600, 519, 500, 527, 400, 538, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10
-1016, RudolphSlime, RudolphSlime, 50, 350, 0, 0, 16, 1, 30, 35, 10, 7, 1, 20, 1, 0, 30, 30, 1, 1, 1, 0, 21, 131, 1000, 1872, 672, 480, 504, 800, 506, 500, 508, 200, 509, 300, 510, 600, 515, 800, 516, 500, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1017, Bat, Bat, 20, 150, 0, 0, 2, 1, 5, 25, 0, 5, 1, 1, 1, 0, 20, 25, 1, 1, 1, 3, 24, 129, 800, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 533, 150, 521, 70, 522, 1, 753, 3000, 754, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
-1018, Pinkie, Pinkie, 30, 500, 0, 0, 3, 2, 7, 15, 0, 5, 1, 1, 1, 0, 20, 25, 2, 2, 1, 3, 20, 129, 800, 1872, 672, 480, 614, 800, 751, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50
-1019, SpikyMushroom, SpikyMushroom, 30, 300, 0, 0, 4, 1, 10, 13, 0, 5, 1, 1, 1, 0, 10, 10, 1, 1, 1, 3, 20, 129, 800, 1872, 672, 480, 567, 800, 501, 150, 518, 50, 613, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40
-1020, Fluffy, Fluffy, 30, 500, 0, 0, 3, 1, 6, 10, 1, 5, 1, 2, 1, 0, 20, 25, 1, 1, 1, 3, 20, 129, 800, 1600, 672, 480, 611, 800, 527, 150, 535, 400, 752, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40
-1021, CaveSnake, CaveSnake, 30, 1000, 0, 0, 5, 1, 20, 15, 1, 5, 10, 1, 1, 0, 5, 20, 1, 1, 1, 3, 20, 129, 800, 1872, 672, 480, 612, 800, 610, 40, 713, 500, 717, 400, 717, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50
-#ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop1id,Drop1per, Drop2id,Drop2per, Drop3id,Drop3per, Drop4id,Drop4per, Drop5id,Drop5per, Drop6id,Drop6per, Drop7id,Drop7per, Drop8id,Drop8per, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount, mutationstrength
-1022, JackO, JackO, 250, 10000, 0, 0, 5000, 2, 100, 500, 40, 20, 35, 40, 25, 25, 35, 50, 1, 1, 1, 0, 20, 133, 250, 1500, 672, 480, 617, 300, 622, 400, 624, 400, 620, 400, 615, 300, 1203, 400, 1198, 10000, 616, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1023, FireSkull, FireSkull, 180, 5000, 0, 0, 100, 2, 75, 175, 35, 15, 30, 30, 20, 20, 25, 60, 1, 1, 1, 3, 23, 175, 600, 1600, 672, 480, 631, 1000, 701, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1024, PoisonSkull, PoisonSkull, 180, 5000, 0, 0, 100, 2, 75, 175, 35, 15, 30, 30, 20, 20, 25, 60, 1, 1, 1, 3, 25, 175, 600, 1600, 672, 480, 631, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20
-1025, LogHead, LogHead, 30, 500, 0, 0, 30, 1, 7, 20, 50, 5, 1, 1, 1, 0, 20, 25, 1, 1, 1, 3, 22, 129, 800, 1872, 672, 480, 569, 2000, 740, 2500, 743, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 50
-1026, MountainSnake, MountainSnake, 130, 900, 0, 0, 100, 1, 80, 125, 4, 6, 20, 40, 10, 10, 35, 45, 1, 1, 1, 0, 20, 133, 1000, 1500, 672, 480, 532, 20, 641, 150, 715, 400, 715, 400, 711, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30
-1027, EasterFluffy, EasterFluffy, 30, 500, 0, 0, 3, 1, 10, 12, 0, 5, 1, 1, 1, 0, 20, 25, 1, 1, 1, 3, 20, 129, 800, 1872, 672, 480, 1208, 2000, 1209, 2000, 1210, 2000, 1211, 1000, 1212, 1000, 1213, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40
-1028, Mouboo, Mouboo, 85, 1200, 0, 0, 40, 2, 30, 75, 65, 5, 15, 5, 15, 0, 40, 10, 2, 2, 1, 3, 20, 129, 600, 1872, 672, 480, 660, 200, 660, 100, 541, 750, 660, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30
-1029, MauvePlant, MauvePlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 680, 3000, 680, 3000, 680, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60
-1030, CobaltPlant, CobaltPlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 681, 3000, 681, 3000, 681, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1031, GambogePlant, GambogePlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 682, 3000, 682, 3000, 682, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1032, AlizarinPlant, AlizarinPlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 683, 3000, 683, 3000, 683, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1033, SeaSlime, SeaSlime, 70, 600, 0, 0, 9, 1, 30, 50, 3, 7, 1, 25, 1, 0, 30, 30, 1, 1, 1, 0, 41, 131, 1500, 1872, 672, 480, 535, 800, 657, 800, 518, 500, 510, 1000, 700, 100, 1199, 5000, 568, 100, 541, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1034, GrassSnake, GrassSnake, 140, 1000, 0, 0, 100, 1, 80, 120, 2, 10, 20, 40, 10, 10, 40, 50, 1, 1, 1, 0, 20, 133, 500, 1100, 672, 480, 716, 400, 716, 400, 712, 500, 676, 500, 660, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40
-1035, Silkworm, Silkworm, 20, 1, 0, 0, 1, 1, 0, 0, 2, 10, 20, 11, 10, 10, 40, 10, 1, 1, 1, 0, 20, 129, 1300, 1100, 672, 480, 718, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
-1036, Zombie, Zombie, 110, 12000, 0, 0, 800, 2, 275, 355, 20, 15, 30, 15, 30, 3, 60, 40, 1, 1, 1, 0, 29, 133, 480, 1872, 672, 900, 631, 1000, 777, 700, 778, 120, 779, 200, 780, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1037, CloverPatch, CloverPatch, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 742, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1038, Squirrel, Squirrel, 15, 160, 1, 0, 1, 1, 15, 25, 1, 6, 1, 3, 1, 0, 15, 40, 1, 1, 1, 3, 20, 129, 800, 800, 672, 480, 743, 7000, 680, 1000, 681, 1000, 682, 1000, 683, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15
-//1039, FireLizard, , , , , , , , , , , , , , , , , , , , , , , , , , , ,
-1040, Wisp, Wisp, 70, 9300, 0, 0, 140, 2, 215, 350, 0, 20, 45, 12, 13, 15, 0, 45, 1, 1, 1, 0, 27, 137, 380, 2000, 672, 1500, 772, 500, 703, 150, 703, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
-//1041, Snail, , , , , , , , , , , , , , , , , , , , , , , , , , , ,
-#ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop1id,Drop1per, Drop2id,Drop2per, Drop3id,Drop3per, Drop4id,Drop4per, Drop5id,Drop5per, Drop6id,Drop6per, Drop7id,Drop7per, Drop8id,Drop8per, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount, mutationstrength
-1042, Spectre, Spectre, 140, 6500, 0, 3978, 140, 3, 160, 220, 40, 0, 35, 70, 22, 15, 20, 70, 1, 1, 1, 0, 49, 137, 650, 1700, 800, 500, 773, 500, 703, 150, 703, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
-1043, Skeleton, Skeleton, 90, 6800, 0, 0, 90, 1, 51, 284, 12, 10, 35, 18, 3, 8, 71, 65, 1, 1, 1, 0, 29, 175, 340, 1800, 672, 950, 775, 200, 775, 280, 776, 300, 631, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1044, LadySkeleton, LadySkeleton, 90, 5500, 0, 0, 90, 2, 73, 146, 31, 8, 20, 25, 15, 8, 43, 48, 1, 1, 1, 0, 29, 175, 650, 750, 672, 700, 775, 200, 775, 280, 776, 300, 631, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1045, Fallen, Fallen, 120, 10000, 0, 7812, 1000, 2, 180, 430, 5, 20, 40, 3, 25, 5, 80, 45, 1, 1, 1, 0, 49, 133, 300, 1200, 672, 300, 775, 210, 775, 210, 776, 300, 631, 1000, 636, 3, 658, 2, 532, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 50
-1046, SnakeLord, SnakeLord, 300, 40000, 0, 0, 8000, 2, 80, 120, 10, 10, 20, 40, 10, 10, 40, 10, 1, 1, 1, 0, 20, 132, 200, 1500, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1047, Poltergeist, Poltergeist, 90, 9000, 0, 0, 140, 3, 110, 150, 0, 20, 35, 0, 15, 15, 75, 50, 1, 1, 1, 0, 27, 137, 330, 740, 672, 400, 774, 500, 703, 150, 703, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
+#ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop1id,Drop1per, Drop2id,Drop2per, Drop3id,Drop3per, Drop4id,Drop4per, Drop5id,Drop5per, Drop6id,Drop6per, Drop7id,Drop7per, Drop8id,Drop8per, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount, mutationstrength
+
+1002, Maggot, Maggot, 5, 50, 0, 0, 2, 1, 5, 10, 0, 5, 1, 1, 1, 0, 6, 5, 1, 1, 1, 3, 21, 129, 800, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 533, 150, 502, 70, 522, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1003, Scorpion, Scorpion, 10, 100, 0, 0, 4, 1, 10, 15, 0, 5, 1, 1, 1, 0, 15, 5, 1, 1, 1, 3, 20, 129, 2000, 1872, 672, 480, 507, 700, 510, 100, 509, 50, 518, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1004, RedScorpion, RedScorpion, 90, 550, 0, 0, 145, 1, 50, 55, 4, 6, 8, 8, 10, 10, 30, 10, 1, 1, 1, 0, 20, 129, 1000, 1872, 672, 480, 517, 2000, 509, 100, 518, 500, 1200, 10, 1199, 760, 1201, 540, 524, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 50
+1005, GreenSlime, GreenSlime, 40, 800, 0, 0, 80, 1, 80, 120, 20, 30, 20, 30, 10, 10, 30, 30, 1, 1, 1, 0, 21, 175, 1200, 1872, 672, 480, 502, 200, 4004, 20, 501, 100, 521, 250, 522, 200, 526, 500, 503, 500, 535, 750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
+1006, GiantMaggot, GiantMaggot, 80, 500, 0, 0, 16, 2, 45, 75, 2, 7, 8, 6, 2, 1, 22, 1, 2, 2, 1, 0, 41, 129, 2000, 1872, 672, 480, 1199, 900, 519, 100, 518, 750, 501, 5000, 502, 3000, 503, 11, 526, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 25
+1007, YellowSlime, YellowSlime, 60, 400, 0, 0, 2, 1, 35, 40, 2, 7, 9, 6, 2, 1, 34, 1, 1, 1, 1, 0, 21, 131, 1400, 1800, 672, 480, 534, 200, 519, 100, 501, 350, 502, 250, 522, 10, 640, 450, 4006, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
+1008, RedSlime, RedSlime, 70, 450, 0, 0, 56, 1, 40, 45, 2, 7, 12, 8, 2, 1, 25, 1, 1, 1, 1, 0, 21, 135, 1300, 1500, 672, 480, 1201, 300, 509, 110, 521, 200, 4003, 20, 525, 80, 535, 750, 528, 250, 531, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
+1009, BlackScorpion, BlackScorpion, 100, 600, 0, 0, 70, 1, 60, 100, 4, 6, 16, 30, 10, 10, 35, 10, 1, 1, 1, 0, 20, 133, 1000, 1500, 672, 480, 523, 150, 509, 100, 518, 800, 709, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 50
+1010, Snake, Snake, 115, 850, 0, 0, 100, 1, 75, 90, 4, 6, 20, 11, 10, 10, 35, 10, 1, 1, 1, 0, 20, 133, 900, 1300, 672, 480, 524, 300, 0, 0, 714, 400, 714, 400, 710, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1011, FireGoblin, FireGoblin, 20, 220, 0, 0, 2, 1, 15, 20, 0, 5, 1, 1, 1, 0, 6, 30, 1, 1, 1, 3, 23, 129, 800, 1872, 672, 480, 505, 800, 501, 150, 518, 800, 502, 150, 521, 70, 522, 10, 701, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1012, Spider, Spider, 125, 800, 0, 0, 280, 1, 70, 85, 4, 6, 14, 13, 10, 10, 35, 10, 1, 1, 1, 0, 25, 175, 1000, 1500, 672, 480, 537, 500, 535, 100, 638, 20, 526, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
+1013, EvilMushroom, EvilMushroom, 110, 650, 0, 0, 110, 1, 65, 80, 4, 6, 16, 12, 10, 10, 35, 10, 1, 1, 1, 3, 22, 137, 800, 1800, 672, 480, 535, 500, 540, 10, 534, 100, 566, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60
+1014, PinkFlower, PinkFlower, 115, 700, 0, 0, 110, 2, 70, 75, 0, 5, 16, 12, 20, 20, 20, 50, 2, 2, 1, 3, 22, 128, 800, 800, 672, 480, 535, 100, 540, 10, 1199, 100, 526, 400, 565, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 50
+1015, SantaSlime, SantaSlime, 120, 750, 0, 0, 0, 1, 75, 80, 2, 7, 1, 20, 1, 0, 30, 30, 1, 1, 1, 0, 21, 161, 1500, 1872, 672, 480, 512, 800, 513, 700, 514, 600, 519, 500, 527, 400, 538, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10
+1016, RudolphSlime, RudolphSlime, 50, 350, 0, 0, 16, 1, 30, 35, 10, 7, 1, 20, 1, 0, 30, 30, 1, 1, 1, 0, 21, 131, 1000, 1872, 672, 480, 504, 800, 506, 500, 508, 200, 509, 300, 510, 600, 515, 800, 516, 500, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1017, Bat, Bat, 20, 150, 0, 0, 2, 1, 5, 25, 0, 5, 1, 1, 1, 0, 20, 25, 1, 1, 1, 3, 24, 129, 800, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 533, 150, 521, 70, 522, 1, 753, 3000, 754, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
+1018, Pinkie, Pinkie, 30, 500, 0, 0, 3, 2, 7, 15, 0, 5, 1, 1, 1, 0, 20, 25, 2, 2, 1, 3, 20, 129, 800, 1872, 672, 480, 614, 800, 751, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50
+1019, SpikyMushroom, SpikyMushroom, 30, 300, 0, 0, 4, 1, 10, 13, 0, 5, 1, 1, 1, 0, 10, 10, 1, 1, 1, 3, 20, 129, 800, 1872, 672, 480, 567, 800, 501, 150, 518, 50, 613, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40
+1020, Fluffy, Fluffy, 30, 500, 0, 0, 3, 1, 6, 10, 1, 5, 1, 2, 1, 0, 20, 25, 1, 1, 1, 3, 20, 129, 800, 1600, 672, 480, 611, 800, 527, 150, 535, 400, 752, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40
+1021, CaveSnake, CaveSnake, 30, 1000, 0, 0, 5, 1, 20, 15, 1, 5, 10, 1, 1, 0, 5, 20, 1, 1, 1, 3, 20, 129, 800, 1872, 672, 480, 612, 800, 610, 40, 713, 500, 717, 400, 717, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50
+1022, JackO, JackO, 250, 10000, 0, 0, 5000, 2, 100, 500, 40, 20, 35, 40, 25, 25, 35, 50, 1, 1, 1, 0, 20, 133, 250, 1500, 672, 480, 617, 300, 622, 400, 624, 400, 620, 400, 615, 300, 1203, 400, 1198, 10000, 616, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1023, FireSkull, FireSkull, 180, 5000, 0, 0, 100, 2, 75, 175, 35, 15, 30, 30, 20, 20, 25, 60, 1, 1, 1, 3, 23, 175, 600, 1600, 672, 480, 631, 1000, 701, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1024, PoisonSkull, PoisonSkull, 180, 5000, 0, 0, 100, 2, 75, 175, 35, 15, 30, 30, 20, 20, 25, 60, 1, 1, 1, 3, 25, 175, 600, 1600, 672, 480, 631, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20
+1025, LogHead, LogHead, 30, 500, 0, 0, 30, 1, 7, 20, 50, 5, 1, 1, 1, 0, 20, 25, 1, 1, 1, 3, 22, 129, 800, 1872, 672, 480, 569, 2000, 740, 2500, 743, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 50
+1026, MountainSnake, MountainSnake, 130, 900, 0, 0, 100, 1, 80, 125, 4, 6, 20, 40, 10, 10, 35, 45, 1, 1, 1, 0, 20, 133, 1000, 1500, 672, 480, 532, 20, 641, 150, 715, 400, 715, 400, 711, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30
+1027, EasterFluffy, EasterFluffy, 30, 500, 0, 0, 3, 1, 10, 12, 0, 5, 1, 1, 1, 0, 20, 25, 1, 1, 1, 3, 20, 129, 800, 1872, 672, 480, 1208, 2000, 1209, 2000, 1210, 2000, 1211, 1000, 1212, 1000, 1213, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40
+1028, Mouboo, Mouboo, 85, 1200, 0, 0, 40, 2, 30, 75, 65, 5, 15, 5, 15, 0, 40, 10, 2, 2, 1, 3, 20, 129, 600, 1872, 672, 480, 660, 200, 660, 100, 541, 750, 660, 10, 806, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30
+1029, MauvePlant, MauvePlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 680, 3000, 680, 3000, 680, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60
+1030, CobaltPlant, CobaltPlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 681, 3000, 681, 3000, 681, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1031, GambogePlant, GambogePlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 682, 3000, 682, 3000, 682, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1032, AlizarinPlant, AlizarinPlant, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 683, 3000, 683, 3000, 683, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1033, SeaSlime, SeaSlime, 70, 600, 0, 0, 9, 1, 30, 50, 3, 7, 1, 25, 1, 0, 30, 30, 1, 1, 1, 0, 41, 131, 1500, 1872, 672, 480, 535, 800, 657, 800, 518, 500, 510, 1000, 700, 100, 1199, 5000, 568, 100, 541, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1034, GrassSnake, GrassSnake, 140, 1000, 0, 0, 100, 1, 80, 120, 2, 10, 20, 40, 10, 10, 40, 50, 1, 1, 1, 0, 20, 133, 500, 1100, 672, 480, 716, 400, 716, 400, 712, 500, 676, 500, 660, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 40
+1035, Silkworm, Silkworm, 20, 1, 0, 0, 1, 1, 0, 0, 2, 10, 20, 11, 10, 10, 40, 10, 1, 1, 1, 0, 20, 129, 1300, 1100, 672, 480, 718, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
+1036, Zombie, Zombie, 110, 12000, 0, 0, 800, 2, 275, 355, 20, 15, 30, 15, 30, 3, 60, 40, 1, 1, 1, 0, 29, 133, 480, 1872, 672, 900, 631, 1000, 777, 700, 778, 120, 779, 200, 780, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1037, CloverPatch, CloverPatch, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 742, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1038, Squirrel, Squirrel, 15, 160, 1, 0, 1, 1, 15, 25, 1, 6, 1, 3, 1, 0, 15, 40, 1, 1, 1, 3, 20, 129, 800, 800, 672, 480, 743, 7000, 680, 1000, 681, 1000, 682, 1000, 683, 1000, 807, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15
+
+//1039, FireLizard
+
+1040, Wisp, Wisp, 70, 9300, 0, 0, 140, 2, 215, 350, 0, 20, 45, 12, 13, 15, 0, 45, 1, 1, 1, 0, 27, 137, 380, 2000, 672, 1500, 772, 500, 703, 150, 703, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
+1041, Snail, Snail, 30, 900, 0, 0, 6, 1, 60, 65, 20, 15, 10, 1, 25, 0, 20, 10, 1, 1, 1, 0, 20, 129, 1800, 2500, 672, 480, 719, 500, 806, 400, 1250, 1000, 1251, 1500, 1248, 500, 1252, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40
+1042, Spectre, Spectre, 140, 6500, 0, 3978, 140, 3, 160, 220, 40, 0, 35, 70, 22, 15, 20, 70, 1, 1, 1, 0, 49, 137, 650, 1700, 800, 500, 773, 500, 703, 150, 703, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
+1043, Skeleton, Skeleton, 90, 6800, 0, 0, 90, 1, 51, 284, 12, 10, 35, 18, 3, 8, 71, 65, 1, 1, 1, 0, 29, 175, 340, 1800, 672, 950, 775, 200, 775, 280, 776, 300, 631, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1044, LadySkeleton, LadySkeleton, 90, 5500, 0, 0, 90, 2, 73, 146, 31, 8, 20, 25, 15, 8, 43, 48, 1, 1, 1, 0, 29, 175, 650, 750, 672, 700, 775, 200, 775, 280, 776, 300, 631, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1045, Fallen, Fallen, 120, 10000, 0, 7812, 1000, 2, 180, 430, 5, 20, 40, 3, 25, 5, 80, 45, 1, 1, 1, 0, 49, 133, 300, 1200, 672, 300, 775, 210, 775, 210, 776, 300, 631, 1000, 636, 3, 658, 2, 532, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 50
+1046, SnakeLord, SnakeLord, 300, 40000, 0, 0, 8000, 2, 80, 120, 10, 10, 20, 40, 10, 10, 40, 10, 1, 1, 1, 0, 20, 132, 200, 1500, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1047, Poltergeist, Poltergeist, 90, 9000, 0, 0, 140, 3, 110, 150, 0, 20, 35, 0, 15, 15, 75, 50, 1, 1, 1, 0, 27, 137, 330, 740, 672, 400, 774, 500, 703, 150, 703, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
+
//1048, Duck
-1049, Bee, Bee, 30, 600, 0, 0, 40, 1, 5, 90, 12, 4, 15, 25, 20, 3, 40, 30, 1, 1, 1, 0, 25, 137, 380, 1500, 300, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-//1050, Larvespa
-//1051, Vespa
+
+1049, Bee, Bee, 30, 600, 0, 0, 40, 1, 5, 90, 12, 4, 15, 25, 20, 3, 40, 30, 1, 1, 1, 0, 25, 137, 380, 1500, 300, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1050, Larvespa, Larvespa, 50, 500, 0, 0, 300, 1, 30, 60, 30, 25, 10, 10, 40, 0, 25, 25, 1, 1, 1, 0, 25, 139, 1500, 1500, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1051, Vespa, Vespa, 100, 1500, 0, 0, 450, 1, 10, 100, 0, 10, 10, 20, 5, 0, 40, 30, 1, 1, 1, 0, 85, 133, 275, 800, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+
//1052, Hivespa
+
//1053, Froad
+
//1054, Troll
-1055, Butterfly, Butterfly, 25, 250, 0, 0, 10, 2, 10, 50, 3, 5, 10, 45, 10, 15, 35, 40, 1, 1, 1, 3, 44, 129, 350, 780, 300, 800, 718, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 60
-1056, CaveMaggot, CaveMaggot, 10, 100, 0, 0, 4, 1, 10, 10, 0, 5, 5, 5, 1, 0, 6, 5, 1, 1, 1, 3, 21, 133, 700, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 533, 150, 502, 70, 522, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1057, AngryScorpion, AngryScorpion, 20, 200, 0, 0, 4, 1, 15, 15, 0, 5, 5, 5, 1, 0, 15, 5, 1, 1, 1, 3, 20, 133, 1000, 1872, 672, 480, 4000, 700, 510, 100, 509, 50, 518, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1058, IceGoblin, IceGoblin, 25, 330, 0, 0, 2, 1, 20, 25, 0, 5, 5, 5, 1, 0, 6, 30, 1, 1, 1, 3, 21, 133, 700, 1872, 672, 480, 505, 800, 501, 150, 518, 800, 502, 150, 521, 70, 522, 10, 4026, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1059, GCMaggot, GiantCaveMaggot, 90, 2000, 0, 0, 16, 2, 60, 80, 2, 7, 10, 10, 2, 1, 22, 1, 2, 2, 1, 0, 41, 133, 1000, 1872, 672, 480, 727, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 25
-1060, Archant, Archant, 30, 400, 0, 0, 200, 1, 20, 30, 4, 6, 10, 5, 1, 0, 12, 10, 1, 1, 1, 0, 25, 133, 1000, 1500, 672, 480, 537, 300, 535, 100, 640, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
-1061, Moggun, Moggun, 60, 800, 0, 0, 100, 1, 70, 90, 20, 10, 50, 40, 10, 10, 10, 10, 1, 1, 1, 0, 25, 137, 600, 1500, 672, 480, 611, 600, 4001, 1000, 4002, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
-#ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop1id,Drop1per, Drop2id,Drop2per, Drop3id,Drop3per, Drop4id,Drop4per, Drop5id,Drop5per, Drop6id,Drop6per, Drop7id,Drop7per, Drop8id,Drop8per, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount, mutationstrength
-1062, Terranite, Terranite, 110, 6000, 0, 0, 1000, 1, 200, 300, 20, 40, 60, 40, 40, 30, 60, 40, 1, 1, 1, 0, 29, 133, 400, 872, 672, 900, 4001, 600, 4004, 20, 4005, 20, 4007, 20, 763, 500, 640, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1063, Pumpkin, Pumpkin, 1, 200, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 0, 800, 800, 672, 480, 3000, 100, 3001, 20, 3002, 10, 3003, 15, 3011, 500, 3006, 1500, 3007, 2000, 3010, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-1064, Bandit, Bandit, 20, 400, 0, 0, 100, 1, 40, 40, 5, 0, 10, 10, 10, 10, 10, 10, 1, 1, 1, 0, 29, 135, 500, 1500, 672, 900, 4016, 800, 521, 200, 526, 200, 535, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1065, BanditLord, BanditLord, 40, 2000, 0, 0, 120, 5, 50, 50, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 0, 29, 135, 400, 1500, 672, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1066, VampireBat, VampireBat, 30, 800, 0, 0, 200, 1, 15, 2, 0, 8, 8, 8, 1, 4, 20, 4, 6, 1, 1, 3, 24, 129, 800, 1872, 672, 480, 501, 150, 518, 400, 533, 150, 521, 70, 522, 1, 753, 3000, 754, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1067, Reaper, Reaper, 50, 555, 0, 0, 0, 7, 333, 444, 30, 80, 100, 120, 70, 120, 100, 50, 1, 50, 1, 1, 89, 165, 500, 1200, 800, 300, 777, 1000, 775, 500, 776, 100, 1221, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
-1068, Reaper2, Reaper2, 50, 5550, 0, 0, 0, 7, 222, 333, 30, 80, 100, 120, 70, 120, 100, 50, 1, 50, 1, 1, 89, 165, 500, 1200, 800, 300, 777, 1000, 775, 500, 776, 100, 1221, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
-1069, Scythe, Scythe, 40, 3000, 0, 0, 0, 1, 200, 350, 30, 10, 100, 250, 1, 1, 150, 90, 1, 50, 1, 0, 40, 133, 220, 700, 672, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
-1070, BallLightning, BallLightning, 40, 10, 0, 0, 0, 1, 5, 10, 40, 65, 1, 200, 1, 1, 1, 1, 1, 50, 1, 0, 47, 133, 110, 1500, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
-1071, IceElement, IceElement, 100, 5000, 0, 0, 200, 3, 60, 200, 5, 20, 15, 25, 40, 15, 45, 30, 1, 1, 1, 0, 41, 135, 330, 740, 672, 400, 4026, 900, 537, 750, 568, 400, 543, 900, 544, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
-1072, Yeti, Yeti, 100, 8500, 0, 0, 300, 2, 100, 400, 60, 15, 60, 5, 45, 15, 60, 32, 1, 1, 1, 0, 61, 135, 220, 1500, 672, 900, 4023, 700, 4024, 300, 4025, 400, 4027, 142, 4021, 800, 4022, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1073, TheLost, TheLost, 30, 5000, 0, 0, 1000, 5, 260, 375, 10, 70, 5, 40, 10, 70, 70, 40, 4, 9, 1, 1, 69, 141, 500, 2000, 672, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+
+1055, Butterfly, Butterfly, 25, 250, 0, 0, 10, 2, 10, 50, 3, 5, 10, 45, 10, 15, 35, 40, 1, 1, 1, 3, 44, 129, 350, 780, 300, 800, 718, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 60
+1056, CaveMaggot, CaveMaggot, 10, 100, 0, 0, 4, 1, 10, 10, 0, 5, 5, 5, 1, 0, 6, 5, 1, 1, 1, 3, 21, 133, 700, 1872, 672, 480, 505, 800, 501, 150, 518, 400, 533, 150, 502, 70, 522, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1057, AngryScorpion, AngryScorpion, 20, 200, 0, 0, 4, 1, 15, 15, 0, 5, 5, 5, 1, 0, 15, 5, 1, 1, 1, 3, 20, 133, 1000, 1872, 672, 480, 4000, 700, 510, 100, 509, 50, 518, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1058, IceGoblin, IceGoblin, 25, 330, 0, 0, 2, 1, 20, 25, 0, 5, 5, 5, 1, 0, 6, 30, 1, 1, 1, 3, 21, 133, 700, 1872, 672, 480, 505, 800, 501, 150, 518, 800, 502, 150, 521, 70, 522, 10, 4026, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1059, GCMaggot, GiantCaveMaggot, 90, 2000, 0, 0, 16, 2, 60, 80, 2, 7, 10, 10, 2, 1, 22, 1, 2, 2, 1, 0, 41, 133, 1000, 1872, 672, 480, 727, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 25
+1060, Archant, Archant, 30, 400, 0, 0, 200, 1, 20, 30, 4, 6, 10, 5, 1, 0, 12, 10, 1, 1, 1, 0, 25, 133, 1000, 1500, 672, 480, 537, 300, 535, 100, 640, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
+1061, Moggun, Moggun, 60, 800, 0, 0, 100, 1, 70, 90, 20, 10, 50, 40, 10, 10, 10, 10, 1, 1, 1, 0, 25, 137, 600, 1500, 672, 480, 611, 600, 4001, 1000, 4002, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40
+1062, Terranite, Terranite, 110, 6000, 0, 0, 1000, 1, 200, 300, 20, 40, 60, 40, 40, 30, 60, 40, 1, 1, 1, 0, 29, 133, 400, 872, 672, 900, 4001, 600, 4004, 20, 4005, 20, 4007, 20, 763, 500, 640, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1063, Pumpkin, Pumpkin, 1, 200, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 22, 132, 800, 800, 672, 480, 3000, 100, 3001, 20, 3002, 10, 3003, 15, 3011, 500, 3006, 1500, 3007, 2000, 3010, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1064, Bandit, Bandit, 20, 400, 0, 0, 100, 1, 40, 40, 5, 0, 10, 10, 10, 10, 10, 10, 1, 1, 1, 0, 29, 135, 500, 1500, 672, 900, 4016, 800, 521, 200, 526, 500, 535, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1065, BanditLord, BanditLord, 40, 2000, 0, 0, 120, 5, 50, 50, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 0, 29, 135, 400, 1500, 672, 900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1066, VampireBat, VampireBat, 30, 800, 0, 0, 200, 1, 15, 2, 0, 8, 8, 8, 1, 4, 20, 4, 6, 1, 1, 3, 24, 129, 800, 1872, 672, 480, 501, 150, 518, 400, 533, 150, 521, 70, 522, 1, 753, 3000, 754, 2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1067, Reaper, Reaper, 50, 555, 0, 0, 0, 7, 333, 444, 30, 80, 100, 120, 70, 120, 100, 50, 1, 50, 1, 1, 89, 165, 500, 1200, 800, 300, 777, 1000, 775, 500, 776, 100, 1221, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
+1068, Reaper2, Reaper2, 50, 5550, 0, 0, 0, 7, 222, 333, 30, 80, 100, 120, 70, 120, 100, 50, 1, 50, 1, 1, 89, 165, 500, 1200, 800, 300, 777, 1000, 775, 500, 776, 100, 1221, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
+1069, Scythe, Scythe, 40, 3000, 0, 0, 0, 1, 200, 350, 30, 10, 100, 250, 1, 1, 150, 90, 1, 50, 1, 0, 40, 133, 220, 700, 672, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
+1070, BallLightning, BallLightning, 40, 10, 0, 0, 0, 1, 5, 10, 40, 65, 1, 200, 1, 1, 1, 1, 1, 50, 1, 0, 47, 133, 110, 1500, 672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , 0, 0
+1071, IceElement, IceElement, 100, 5000, 0, 0, 200, 3, 60, 200, 5, 20, 15, 25, 40, 15, 45, 30, 1, 1, 1, 0, 41, 135, 330, 740, 672, 400, 4026, 900, 537, 750, 568, 400, 543, 900, 544, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20
+1072, Yeti, Yeti, 100, 8500, 0, 0, 300, 2, 100, 400, 60, 15, 60, 5, 45, 15, 60, 32, 1, 1, 1, 0, 61, 135, 380, 666, 1000, 600, 4023, 700, 4024, 300, 4025, 400, 4027, 142, 4021, 800, 4022, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1073, TheLost, TheLost, 30, 5000, 0, 0, 1000, 5, 260, 375, 10, 70, 5, 40, 10, 70, 70, 40, 4, 9, 1, 1, 69, 141, 500, 2000, 672, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+
//1074, RedBone
+
//1075, Stalker
+
//1076, DreadWing
-1077, DrunkenSkeleton, DrunkenSkeleton, 90, 7200, 0, 0, 90, 1, 55, 284, 30, 10, 35, 10, 3, 8, 71, 65, 1, 1, 1, 0, 29, 137, 350, 1800, 672, 950, 790, 300, 789, 280, 3003, 100, 3000, 50, 3009, 250, 3006, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1078, TipsySkeleton, TipsySkeleton, 90, 7000, 0, 0, 90, 1, 60, 284, 33, 10, 35, 10, 3, 8, 71, 65, 1, 1, 1, 0, 29, 137, 350, 1800, 672, 950, 787, 300, 788, 280, 3002, 100, 3000, 50, 3007, 400, 3010, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-1079, DrunkenLadySkeleton, DrunkenLadySkeleton, 90, 6000, 0, 0, 90, 2, 75, 146, 40, 8, 20, 20, 15, 8, 51, 48, 1, 1, 1, 0, 29, 137, 660, 750, 672, 700, 785, 300, 786, 280, 3001, 100, 3000, 50, 3010, 250, 3009, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
-#ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop1id,Drop1per, Drop2id,Drop2per, Drop3id,Drop3per, Drop4id,Drop4per, Drop5id,Drop5per, Drop6id,Drop6per, Drop7id,Drop7per, Drop8id,Drop8per, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount, mutationstrength
-
+
+1077, DrunkenSkeleton, DrunkenSkeleton, 90, 7200, 0, 0, 90, 1, 55, 284, 30, 10, 35, 10, 3, 8, 71, 65, 1, 1, 1, 0, 29, 137, 350, 1800, 672, 950, 790, 300, 789, 280, 3003, 100, 3000, 50, 3009, 250, 3006, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1078, TipsySkeleton, TipsySkeleton, 90, 7000, 0, 0, 90, 1, 60, 284, 33, 10, 35, 10, 3, 8, 71, 65, 1, 1, 1, 0, 29, 137, 350, 1800, 672, 950, 787, 300, 788, 280, 3002, 100, 3000, 50, 3007, 400, 3010, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1079, DrunkenLadySkeleton, DrunkenLadySkeleton, 90, 6000, 0, 0, 90, 2, 75, 146, 40, 8, 20, 20, 15, 8, 51, 48, 1, 1, 1, 0, 29, 137, 660, 750, 672, 700, 785, 300, 786, 280, 3001, 100, 3000, 50, 3010, 250, 3009, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1080, BlueSpark, BlueSpark, 40, 10000, 0, 0, 0, 2, 40, 40, 20, 40, 30, 30, 30, 30, 30, 30, 1, 1, 1, 0, 20, 129, 190, 1500, 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1081, RedSpark, RedSpark, 40, 10000, 0, 0, 0, 2, 40, 40, 20, 40, 30, 30, 30, 30, 30, 30, 1, 1, 1, 0, 20, 129, 190, 1500, 800, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1082, Serqet, Serqet, 10, 100, 0, 0, 4, 1, 10, 15, 0, 5, 1, 1, 1, 0, 15, 5, 1, 1, 1, 3, 20, 129, 2000, 1872, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1083, EarthSpider, EarthSpider, 90, 1000, 0, 0, 280, 1, 100, 125, 10, 45, 20, 15, 10, 10, 40, 10, 1, 1, 1, 0, 45, 175, 575, 1250, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1084, EarthScorpion, EarthScorpion, 100, 800, 0, 0, 250, 1, 50, 150, 15, 45, 15, 30, 10, 10, 15, 25, 1, 1, 1, 0, 45, 133, 750, 1350, 672, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+1085, IceSkull, IceSkull, 180, 5000, 0, 0, 100, 2, 75, 175, 35, 15, 30, 30, 20, 20, 25, 60, 1, 1, 1, 3, 21, 141, 600, 1600, 672, 480, 631, 1000, 4026, 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
+1086, FeyElement, FeyElement, 300, 10000, 0, 0, 1500, 4, 50, 100, 25, 50, 20, 10, 20, 20, 45, 25, 1, 1, 1, 0, 84, 165, 330, 740, 672, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
diff --git a/db/mob_skill_db.txt b/db/mob_skill_db.txt
index 0b786cfd..54f8c355 100644
--- a/db/mob_skill_db.txt
+++ b/db/mob_skill_db.txt
@@ -65,6 +65,11 @@
// Poison
// mobid, descriptive-label STATE, SKILL-ID,SKILLLV,rate, casttime,delay, cancel?,target, condition
1009,BlackScorpion@NPC_POISON,attack,178,30,50,0,500,yes,target,always,0,,10,,,,
+1083,EarthSpider@NPC_POISON,attack,178,10,5000,0,50,yes,target,always,0,,10,,,,
+1084,EarthScorpion@NPC_POISON,attack,178,40,30,0,1000,yes,target,always,0,,10,,,,
+1050,Larvespa@NPC_POISON,attack,178,20,500,0,500,yes,target,always,0,,10,,,,
+1051,Vespa@NPC_POISON,attack,178,50,500,0,500,yes,target,always,0,,10,,,,
+1082,Serqet@NPC_POISON,attack,178,20,50,0,500,yes,target,always,0,,10,,,,
1010,Snake@NPC_POISON,attack,178,20,80,0,400,yes,target,always,0,,10,,,,
1021,CaveSnake@NPC_POISON,attack,178,10,20,0,500,yes,target,always,0,,10,,,,
1026,MountainSnake@NPC_POISON,attack,178,60,100,0,300,yes,target,always,0,,10,,,,
@@ -84,4 +89,6 @@
//1067,Reaper@NPC_SUMMONSLAVE_ballX3,any,198,3,6000,1000,10000,no,self,myhpltmaxrate,60,1070,,,,,
//1067,Reaper@NPC_SUMMONSLAVE_ballX9,any,198,9,4000,1000,15000,no,self,myhpltmaxrate,20,1070,,,,,
//1067,Reaper@AL_TELEPORT,attack,28,2,3500,500,5000,yes,self,always,,,,,,,
-1070,BallLightning@NPC_SELFDESTRUCTION,attack,175,1,10000,100,500,yes,self,notintown,0,30,,,,, \ No newline at end of file
+1070,BallLightning@NPC_SELFDESTRUCTION,attack,175,1,10000,100,500,yes,self,notintown,0,30,,,,,
+1086,FeyElement@NPC_SUMMONSLAVE_earthspiderX1,any,198,1,5000,100,500,no,self,slavelt,6,1083,,,,,
+1086,FeyElement@NPC_SUMMONSLAVE_earthscorpionX1,any,198,1,5000,100,500,no,self,slavelt,6,1084,,,,,
diff --git a/news.php b/news.php
index 4b2cc414..7ab51a9c 100644
--- a/news.php
+++ b/news.php
@@ -14,7 +14,7 @@ if (substr($agent, 0, 3) == "TMW" || substr($agent, 0, 4) == "Mana")
}
$min_version = '0.0.29.1';
-$cur_version = '0.0.29.1';
+$cur_version = '0.5.2';
if (substr($agent, 0, 3) == "TMW" and $agent < 'TMW/' . $min_version)
{
diff --git a/news.txt b/news.txt
index 00921b9d..277b55bc 100644
--- a/news.txt
+++ b/news.txt
@@ -1,5 +1,65 @@
##2 ~ The Hurnscald Herald ~
+##3 June 2011
+
+##0 A large shipment of gold coins was plundered
+##0 by pirates. The shipment was to be sent to
+##0 Tulimshar as part of their effort to control
+##0 inflation. "They seemed to just come out of
+##0 no where! They took the shipment and my pet
+##0 squirrel Chompers!" Captain Zierock reported
+##0 while in tears.
+
+##0 It is believed the pirates divided the gold
+##0 then went separate ways to spend their spoils.
+##0 Ironically, these pirates were the target of
+##0 monsters, who plundered them not just for
+##0 their new found wealth, but also for their
+##0 crunchy bones and sea salty flesh.
+
+##0 On that note, be on the lookout for Green Slimes,
+##0 which have grown hostile as they evolve to the
+##0 harsh Tonori desert, making them a threat to
+##0 travel and trade. It is believed many of the
+##0 pirates attempted to cross the Snake Desert,
+##0 where they met the Green Slimes...and their
+##0 end.
+
+##0 In other news, Andra, a friend of Hinnak, has
+##0 increased her agricultural knowledge and needs
+##0 help keeping the soil around the farm fertile.
+##0 Interested volunteers should speak with her
+##0 about how to help.
+
+##0 Last, but certainly not least, Agostine has
+##0 returned to Nivalis. While he enjoyed his
+##0 time in Tulimshar, mingling with other artisans,
+##0 he has missed his home in Kaizei. "I made this
+##0 fabulous sweater, but nobody wanted to wear it
+##0 in this hot and smelly desert. That is when I
+##0 decided enough was enough. Sweat is just gross."
+
+##2 ~ The Hurnscald Herald ~
+
+##3 May 2011
+
+##0 Many battle hardened warriors took some time
+##0 during April and enjoyed helping the somewhat
+##0 forgetful Easter Bunny make his baskets. The
+##0 children surely must have enjoyed their sweets.
+
+##0 The demi-god Golbenez has finally made good on
+##0 his promise to open a 'place of leisure' in
+##0 the form of an inn. Youngsters beware, since
+##0 the entrance to this inn is near the old
+##0 graveyard and could be dangerous.
+
+##0 There have also been reports about a mysterious
+##0 stranger roaming the beaches near Tulimshar.
+##0 Be on the lookout if you are in the area.
+
+##2 ~ The Hurnscald Herald ~
+
##3 January 2011
##0 Reports of bandit raids to the west of
diff --git a/npc/001-1/_import.txt b/npc/001-1/_import.txt
new file mode 100644
index 00000000..b6c625ff
--- /dev/null
+++ b/npc/001-1/_import.txt
@@ -0,0 +1,28 @@
+// Map 001-1: Tulimshar
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 001-1.gat
+npc: npc/001-1/_mobs.txt
+npc: npc/001-1/_warps.txt
+npc: npc/001-1/banker.txt
+npc: npc/001-1/barber.txt
+npc: npc/001-1/bard.txt
+npc: npc/001-1/bernard.txt
+npc: npc/001-1/bleacher.txt
+npc: npc/001-1/children.txt
+npc: npc/001-1/constable.txt
+npc: npc/001-1/elanore.txt
+npc: npc/001-1/entertainer.txt
+npc: npc/001-1/gossip.txt
+npc: npc/001-1/guards.txt
+npc: npc/001-1/guide.txt
+npc: npc/001-1/luca.txt
+npc: npc/001-1/mapflags.txt
+npc: npc/001-1/merchant.txt
+npc: npc/001-1/mikhail.txt
+npc: npc/001-1/monster_guide.txt
+npc: npc/001-1/rewards_master.txt
+npc: npc/001-1/sandra.txt
+npc: npc/001-1/sarah.txt
+npc: npc/001-1/soul-menhir.txt
+npc: npc/001-1/trader.txt
+npc: npc/001-1/vincent.txt
diff --git a/npc/001-1_Tulimshar/_mobs.txt b/npc/001-1/_mobs.txt
index 66e47d3e..c8aa210f 100644
--- a/npc/001-1_Tulimshar/_mobs.txt
+++ b/npc/001-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-1 Tulimshar mobs
+// Tulimshar mobs
001-1.gat,45,86,2,1 monster Scorpion 1003,1,30000,30000,Mob001-1::On1003
001-1.gat,43,85,2,1 monster Scorpion 1003,1,60000,30000,Mob001-1::On1003
diff --git a/npc/001-1_Tulimshar/_warps.txt b/npc/001-1/_warps.txt
index 4155caf0..d116051c 100644
--- a/npc/001-1_Tulimshar/_warps.txt
+++ b/npc/001-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-1 Tulimshar warps
+// Tulimshar warps
001-1.gat,44,88 warp ToSandstorm 3,-1,002-1.gat,58,17
001-1.gat,44,20 warp toCentralTulimshar 3,-1,021-1.gat,55,145
diff --git a/npc/001-1_Tulimshar/banker.txt b/npc/001-1/banker.txt
index 445b0ebf..445b0ebf 100644
--- a/npc/001-1_Tulimshar/banker.txt
+++ b/npc/001-1/banker.txt
diff --git a/npc/001-1_Tulimshar/barber.txt b/npc/001-1/barber.txt
index 502e5401..502e5401 100644
--- a/npc/001-1_Tulimshar/barber.txt
+++ b/npc/001-1/barber.txt
diff --git a/npc/001-1_Tulimshar/bard.txt b/npc/001-1/bard.txt
index 9de957e1..9de957e1 100644
--- a/npc/001-1_Tulimshar/bard.txt
+++ b/npc/001-1/bard.txt
diff --git a/npc/001-1_Tulimshar/bernard.txt b/npc/001-1/bernard.txt
index 1c5ee328..b93a0d4d 100644
--- a/npc/001-1_Tulimshar/bernard.txt
+++ b/npc/001-1/bernard.txt
@@ -34,13 +34,13 @@ L_Yes:
L_Req0:
mes "[Bernard]";
- mes "\"Great! I need a [Roasted Maggot] for my soup.\"";
+ mes "\"Great! I need a Roasted Maggot for my soup.\"";
next;
goto L_Set;
L_Req1:
mes "[Bernard]";
- mes "\"Bring me a [Roasted Maggot]. I'll give you something if you do.\"";
+ mes "\"Bring me a Roasted Maggot. I'll give you something if you do.\"";
next;
goto L_Set;
@@ -54,7 +54,7 @@ L_Progress:
if (countitem("RoastedMaggot") < 1) goto L_NotEnough;
mes "[Bernard]";
mes "\"Oooh, perfect! It's perfect!";
- mes "You brought me my [Roasted Maggot]! Here, have some cake for your troubles.\"";
+ mes "You brought me my Roasted Maggot! Here, have some cake for your troubles.\"";
getinventorylist;
if (@inventorylist_count - (countitem("RoastedMaggot") == 1) > 99 - (countitem("CherryCake") == 0) ) goto L_TooMany;
delitem "RoastedMaggot", 1;
@@ -67,7 +67,7 @@ L_Progress2:
if (countitem("MaggotSlime") < 3) goto L_NotEnough1;
mes "[Bernard]";
mes "\"Nice! They're perfect, just perfect!";
- mes "You brought me the 3 [Maggot Slimes]! Here, have some beer as reward.\"";
+ mes "You brought me the 3 Maggot Slimes! Here, have some beer as reward.\"";
getinventorylist;
if ((@inventorylist_count - (countitem("MaggotSlime") == 3) > 99 - (countitem("Beer") == 0) )) goto L_TooMany;
delitem "MaggotSlime", 3;
@@ -79,12 +79,12 @@ L_Progress2:
L_NotEnough:
mes "[Bernard]";
- mes "\"Oh, please hurry and bring me a [Roasted Maggot]. I'm yearning for maggot soup!\"";
+ mes "\"Oh, please hurry and bring me a Roasted Maggot. I'm yearning for maggot soup!\"";
close;
L_NotEnough1:
mes "[Bernard]";
- mes "\"Please do hurry and bring me 3 [Maggot Slime]s, so I can finish my soup!\"";
+ mes "\"Please do hurry and bring me 3 Maggot Slimes, so I can finish my soup!\"";
close;
@@ -93,7 +93,7 @@ L_Done1:
mes "\"Thank you so much!\"";
mes "\"But... something is missing to make the soup creamy.\"";
next;
- mes "\"I need 3 [Maggot Slime]s for that.\"";
+ mes "\"I need 3 Maggot Slimes for that.\"";
mes "\"Bring them to me, and I'll give you something nice.\"";
set TMW_Quest,3;
close;
diff --git a/npc/001-1_Tulimshar/bleacher.txt b/npc/001-1/bleacher.txt
index a3827e43..a3827e43 100644
--- a/npc/001-1_Tulimshar/bleacher.txt
+++ b/npc/001-1/bleacher.txt
diff --git a/npc/001-1_Tulimshar/children.txt b/npc/001-1/children.txt
index c8941563..4ffb1ba5 100644
--- a/npc/001-1_Tulimshar/children.txt
+++ b/npc/001-1/children.txt
@@ -85,7 +85,7 @@ L_4:
close;
L_5:
- mes "\"I always take some spare [Cactus Juice]s with me on the field. They are heavy, though.\"";
+ mes "\"I always take some spare Cactus Juice with me on the field. They are heavy, though.\"";
close;
L_6:
diff --git a/npc/001-1_Tulimshar/constable.txt b/npc/001-1/constable.txt
index 6131f0b4..6131f0b4 100644
--- a/npc/001-1_Tulimshar/constable.txt
+++ b/npc/001-1/constable.txt
diff --git a/npc/001-1_Tulimshar/elanore.txt b/npc/001-1/elanore.txt
index 2d96ae6c..2d96ae6c 100644
--- a/npc/001-1_Tulimshar/elanore.txt
+++ b/npc/001-1/elanore.txt
diff --git a/npc/001-1_Tulimshar/entertainer.txt b/npc/001-1/entertainer.txt
index 149f1e2f..149f1e2f 100644
--- a/npc/001-1_Tulimshar/entertainer.txt
+++ b/npc/001-1/entertainer.txt
diff --git a/npc/001-1_Tulimshar/gossip.txt b/npc/001-1/gossip.txt
index 0deb42ae..0deb42ae 100644
--- a/npc/001-1_Tulimshar/gossip.txt
+++ b/npc/001-1/gossip.txt
diff --git a/npc/001-1_Tulimshar/guards.txt b/npc/001-1/guards.txt
index 1cffa515..1cffa515 100644
--- a/npc/001-1_Tulimshar/guards.txt
+++ b/npc/001-1/guards.txt
diff --git a/npc/001-1_Tulimshar/guide.txt b/npc/001-1/guide.txt
index be04e307..be04e307 100644
--- a/npc/001-1_Tulimshar/guide.txt
+++ b/npc/001-1/guide.txt
diff --git a/npc/001-1_Tulimshar/luca.txt b/npc/001-1/luca.txt
index f8f51f63..f8f51f63 100644
--- a/npc/001-1_Tulimshar/luca.txt
+++ b/npc/001-1/luca.txt
diff --git a/npc/001-1_Tulimshar/mapflags.txt b/npc/001-1/mapflags.txt
index ba066398..ba066398 100644
--- a/npc/001-1_Tulimshar/mapflags.txt
+++ b/npc/001-1/mapflags.txt
diff --git a/npc/001-1_Tulimshar/merchant.txt b/npc/001-1/merchant.txt
index a664e74a..a664e74a 100644
--- a/npc/001-1_Tulimshar/merchant.txt
+++ b/npc/001-1/merchant.txt
diff --git a/npc/001-1_Tulimshar/mikhail.txt b/npc/001-1/mikhail.txt
index 6514c07d..1db4d9d1 100644
--- a/npc/001-1_Tulimshar/mikhail.txt
+++ b/npc/001-1/mikhail.txt
@@ -19,7 +19,7 @@ L_Convince_Mikhail_First:
L_Start:
mes "[Mikhail]";
- mes "\"My grandma sent me to get five [Maggot Slime]s from the maggots in the desert, but they scare me so bad!\"";
+ mes "\"My grandma sent me to get five Maggot Slimes from the maggots in the desert, but they scare me so bad!\"";
next;
mes "\"You look like a nice person. Would you go get them for me?\"";
menu
@@ -38,7 +38,7 @@ L_accept:
L_Progress:
mes "[Mikhail]";
- mes "\"Did you bring me the five [Maggot Slime]s i need?\"";
+ mes "\"Did you bring me the five Maggot Slimes i need?\"";
next;
menu
"Yes, here they are, kiddo!", L_try,
@@ -63,6 +63,6 @@ L_get:
L_Done:
mes "[Mikhail]";
- mes "\"Thanks again for helping me get those [Maggot Slime]s!\"";
+ mes "\"Thanks again for helping me get those Maggot Slimes!\"";
close;
}
diff --git a/npc/001-1_Tulimshar/monster_guide.txt b/npc/001-1/monster_guide.txt
index 697dc38e..697dc38e 100644
--- a/npc/001-1_Tulimshar/monster_guide.txt
+++ b/npc/001-1/monster_guide.txt
diff --git a/npc/001-1_Tulimshar/rewards_master.txt b/npc/001-1/rewards_master.txt
index bd55b0ae..028b24c1 100644
--- a/npc/001-1_Tulimshar/rewards_master.txt
+++ b/npc/001-1/rewards_master.txt
@@ -12,7 +12,7 @@
next;
set @i, 0;
- setarray @Menu$, "", "", "", "", "", "", "", "", "", "", "";
+ setarray @Menu$, "", "", "", "", "", "", "", "", "", "", "", "";
callsub SUB_prep_menu;
menu
@@ -32,7 +32,7 @@
// this is for the last entry "No thanks":
if (@menu > @i) close;
// this is for the "Give all" entry:
- if (@menu == @i) goto L_Give_all;
+ if (@menu == 11) goto L_Give_all;
set @req, @menu;
set @rec, 0;
@@ -79,8 +79,8 @@ L_Give_all_next:
mes "[Ishi the Rewards Master]";
mes "\"You have brought lots of items now. You have still " + Mobpt + " monster points. Shall we continue?\"";
menu
- "yes", L_Give_all,
- "no", L_Give_all_done;
+ "Yes", L_Give_all,
+ "No", L_Give_all_done;
close;
L_Give_all_done:
diff --git a/npc/001-1_Tulimshar/sandra.txt b/npc/001-1/sandra.txt
index 45b91ab3..dcef65c9 100644
--- a/npc/001-1_Tulimshar/sandra.txt
+++ b/npc/001-1/sandra.txt
@@ -31,7 +31,7 @@ L_Opening1:
L_Opening2:
mes "[Sandra]";
- mes "\"The [Scorpion Stinger] carries many properties used in potions. Would you get some for me?\"";
+ mes "\"The Scorpion Stinger carries many properties used in potions. Would you get some for me?\"";
next;
goto L_Ask;
@@ -54,19 +54,19 @@ L_Yes:
L_Req0:
mes "[Sandra]";
- mes "\"I need 5 [Scorpion Stinger]s.\"";
+ mes "\"I need 5 Scorpion Stingers.\"";
next;
goto L_Set;
L_Req1:
mes "[Sandra]";
- mes "\"I heard a while ago that stingers from scorpions can be used for medical purposes. I need you to help me get 5 [Scorpion Stinger]s.\"";
+ mes "\"I heard a while ago that stingers from scorpions can be used for medical purposes. I need you to help me get 5 Scorpion Stingers.\"";
next;
goto L_Set;
L_Req2:
mes "[Sandra]";
- mes "\"Bring me 5 [Scorpion Stinger]s. I'll give you something if you do!\"";
+ mes "\"Bring me 5 Scorpion Stingers. I'll give you something if you do!\"";
next;
goto L_Set;
@@ -79,7 +79,7 @@ L_Set:
L_Progress:
if (countitem("ScorpionStinger") < 5) goto L_NotEnough;
mes "[Sandra]";
- mes "\"Excellent! You brought me 5 [Scorpion Stinger]s!\"";
+ mes "\"Excellent! You brought me 5 Scorpion Stingers!\"";
getinventorylist;
if (@inventorylist_count + (countitem("ScorpionStinger") == 5) - (countitem("Arrow") == 0) > 99) goto L_TooMany;
delitem "ScorpionStinger", 5;
@@ -90,7 +90,7 @@ L_Progress:
L_NotEnough:
mes "[Sandra]";
- mes "\"Please hurry and bring me 5 [Scorpion Stinger]s.\"";
+ mes "\"Please hurry and bring me 5 Scorpion Stingers.\"";
close;
L_Done:
diff --git a/npc/001-1_Tulimshar/sarah.txt b/npc/001-1/sarah.txt
index 7a109fa6..1371d334 100644
--- a/npc/001-1_Tulimshar/sarah.txt
+++ b/npc/001-1/sarah.txt
@@ -27,25 +27,25 @@ L_Start:
L_Opening0:
mes "[Sarah]";
- mes "\"[Cherry Cake] is the best!\"";
+ mes "\"Cherry Cake is the best!\"";
next;
goto L_Ask;
L_Opening1:
mes "[Sarah]";
- mes "\"Mmm, [Cherry Cake]... I love it!\"";
+ mes "\"Mmm, Cherry Cake... I love it!\"";
next;
goto L_Ask;
L_Ask:
- mes "\"Can you bring me a piece of [Cherry Cake]? Pretty please?\"";
+ mes "\"Can you bring me a piece of Cherry Cake? Pretty please?\"";
menu
"Yes.", L_Req0,
"No.", L_No;
L_Req0:
mes "[Sarah]";
- mes "\"Yippee! Bring me a piece of [Cherry Cake], and I'll give you a nice hat!\"";
+ mes "\"Yippee! Bring me a piece of Cherry Cake, and I'll give you a nice hat!\"";
next;
goto L_Set;
@@ -60,7 +60,7 @@ L_Progress:
mes "[Sarah]";
mes "\"Whee!\"";
next;
- mes "You brought me [Cherry Cake]! Here is your new hat, as promised.\"";
+ mes "You brought me Cherry Cake! Here is your new hat, as promised.\"";
emotion 9;
getinventorylist;
if ((@inventorylist_count - (countitem("CherryCake") == 1)) > 99) goto L_TooMany;
@@ -71,7 +71,7 @@ L_Progress:
L_NotEnough:
mes "[Sarah]";
- mes "\"Oh, I'm starving! Please bring me [Cherry Cake]!\"";
+ mes "\"Oh, I'm starving! Please bring me Cherry Cake!\"";
close;
L_Done:
diff --git a/npc/001-1_Tulimshar/soul-menhir.txt b/npc/001-1/soul-menhir.txt
index 00208932..00208932 100644
--- a/npc/001-1_Tulimshar/soul-menhir.txt
+++ b/npc/001-1/soul-menhir.txt
diff --git a/npc/001-1_Tulimshar/trader.txt b/npc/001-1/trader.txt
index b99a0250..064597e0 100644
--- a/npc/001-1_Tulimshar/trader.txt
+++ b/npc/001-1/trader.txt
@@ -66,15 +66,15 @@ L_Trade:
L_Trademenu:
menu
- "Do you have [Iron Powder]?", L_Iron,
- "How about [Sulphur Powder]?", L_Sulphur,
- "I need [Medium Healing Potion]s.", L_Healpots,
+ "Do you have Iron Powder?", L_Iron,
+ "How about Sulphur Powder?", L_Sulphur,
+ "I need Medium Healing Potions.", L_Healpots,
"I think I have everything I need, thanks.", -;
close;
L_Iron:
mes "[Trader]";
- mes "\"I do have a few of those. I will give you 4 [Iron Powder]s for 1 [Iron Ore] and " + @Ironprice + "gp.\"";
+ mes "\"I do have a few of those. I will give you 4 Iron Powders for 1 Iron Ore and " + @Ironprice + "gp.\"";
menu
"Sure.", L_Ipowder,
"What a ripoff! No way!", -;
@@ -82,7 +82,7 @@ L_Iron:
L_Sulphur:
mes "[Trader]";
- mes "\"I can trade you 5 [Sulphur Powder]s for 1 [Pile Of Ash] and " + @Sulphurprice + "gp.\"";
+ mes "\"I can trade you 5 Sulphur Powders for 1 Pile of Ash and " + @Sulphurprice + "gp.\"";
menu
"Here you go.", L_Spowder,
"Are you nuts?! Forget it!", -;
@@ -90,7 +90,7 @@ L_Sulphur:
L_Healpots:
mes "[Trader]";
- mes "\"Healing potions are always useful, but I rarely need anything larger than the small ones. I will happily trade you 1 [Medium Healing Potion] for 3 [Small Healing Potion]s and " + @Potionprice + "gp.\"";
+ mes "\"Healing potions are always useful, but I rarely need anything larger than the small ones. I will happily trade you 1 Medium Healing Potion for 3 Small Healing Potions and " + @Potionprice + "gp.\"";
menu
"Alright.", L_Pots,
"Whoa, that's way too much.", -;
diff --git a/npc/001-1_Tulimshar/vincent.txt b/npc/001-1/vincent.txt
index ffd05162..78ebba6a 100644
--- a/npc/001-1_Tulimshar/vincent.txt
+++ b/npc/001-1/vincent.txt
@@ -28,13 +28,13 @@ L_Start:
L_Opening1:
mes "[Vincent]";
- mes "\"I just need 10 more [Bug Leg]s to finish my action figure!\"";
+ mes "\"I just need 10 more Bug Legs to finish my action figure!\"";
next;
goto L_Ask;
L_Opening2:
mes "[Vincent]";
- mes "\"This maggot action figure is awesome! I just need to attach 10 [Bug Leg]s.\"";
+ mes "\"This maggot action figure is awesome! I just need to attach 10 Bug Legs.\"";
next;
goto L_Ask;
@@ -46,13 +46,13 @@ L_Opening3:
L_Opening4:
mes "[Vincent]";
- mes "\"Can you get me 10 [Bug Leg]s? I need them to replace the action figure parts.\"";
+ mes "\"Can you get me 10 Bug Legs? I need them to replace the action figure parts.\"";
next;
goto L_Ask;
L_Ask:
mes "[Vincent]";
- mes "\"Will you help me find 10 [Bug Leg]s?\"";
+ mes "\"Will you help me find 10 Bug Legs?\"";
next;
menu
"Yes", L_Sure,
@@ -93,13 +93,13 @@ L_Req4:
L_Wait:
mes "[Vincent]";
- mes "\"Now please go get me 10 [Bug Leg]s.\"";
+ mes "\"Now please go get me 10 Bug Legs.\"";
close;
L_Progress:
if(countitem("BugLeg") >= 10) goto L_Have;
mes "[Vincent]";
- mes "\"Please help me collect 10 [Bug Leg]s!\"";
+ mes "\"Please help me collect 10 Bug Legs!\"";
close;
L_Have:
diff --git a/npc/001-1_Tulimshar/_import.txt b/npc/001-1_Tulimshar/_import.txt
deleted file mode 100644
index 5383bd99..00000000
--- a/npc/001-1_Tulimshar/_import.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 001-1.gat
-npc: npc/001-1_Tulimshar/_mobs.txt
-npc: npc/001-1_Tulimshar/_warps.txt
-npc: npc/001-1_Tulimshar/banker.txt
-npc: npc/001-1_Tulimshar/barber.txt
-npc: npc/001-1_Tulimshar/bard.txt
-npc: npc/001-1_Tulimshar/bernard.txt
-npc: npc/001-1_Tulimshar/bleacher.txt
-npc: npc/001-1_Tulimshar/children.txt
-npc: npc/001-1_Tulimshar/constable.txt
-npc: npc/001-1_Tulimshar/elanore.txt
-npc: npc/001-1_Tulimshar/entertainer.txt
-npc: npc/001-1_Tulimshar/gossip.txt
-npc: npc/001-1_Tulimshar/guards.txt
-npc: npc/001-1_Tulimshar/guide.txt
-npc: npc/001-1_Tulimshar/luca.txt
-npc: npc/001-1_Tulimshar/mapflags.txt
-npc: npc/001-1_Tulimshar/merchant.txt
-npc: npc/001-1_Tulimshar/mikhail.txt
-npc: npc/001-1_Tulimshar/monster_guide.txt
-npc: npc/001-1_Tulimshar/rewards_master.txt
-npc: npc/001-1_Tulimshar/sandra.txt
-npc: npc/001-1_Tulimshar/sarah.txt
-npc: npc/001-1_Tulimshar/soul-menhir.txt
-npc: npc/001-1_Tulimshar/trader.txt
-npc: npc/001-1_Tulimshar/vincent.txt
diff --git a/npc/001-2/_import.txt b/npc/001-2/_import.txt
new file mode 100644
index 00000000..e318db9b
--- /dev/null
+++ b/npc/001-2/_import.txt
@@ -0,0 +1,10 @@
+// Map 001-2: Tulimshar
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 001-2.gat
+npc: npc/001-2/_mobs.txt
+npc: npc/001-2/_warps.txt
+npc: npc/001-2/casino.txt
+npc: npc/001-2/mapflags.txt
+npc: npc/001-2/phaet.txt
+npc: npc/001-2/shops.txt
+npc: npc/001-2/troupe_leader.txt
diff --git a/npc/001-2_Tulimshar/_mobs.txt b/npc/001-2/_mobs.txt
index c9183bc5..6ba5649e 100644
--- a/npc/001-2_Tulimshar/_mobs.txt
+++ b/npc/001-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-2 Tulimshar mobs
+// Tulimshar mobs
diff --git a/npc/001-2_Tulimshar/_warps.txt b/npc/001-2/_warps.txt
index 681c403c..fcf625f1 100644
--- a/npc/001-2_Tulimshar/_warps.txt
+++ b/npc/001-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-2 Tulimshar warps
+// Tulimshar warps
001-2.gat,25,35 warp ToOutside -1,-1,001-1.gat,32,72
001-2.gat,44,25 warp To2ndFloor -1,0,001-2.gat,65,25
diff --git a/npc/001-2_Tulimshar/casino.txt b/npc/001-2/casino.txt
index cf4943a4..cf4943a4 100644
--- a/npc/001-2_Tulimshar/casino.txt
+++ b/npc/001-2/casino.txt
diff --git a/npc/001-2_Tulimshar/mapflags.txt b/npc/001-2/mapflags.txt
index dda29b1e..dda29b1e 100644
--- a/npc/001-2_Tulimshar/mapflags.txt
+++ b/npc/001-2/mapflags.txt
diff --git a/npc/001-2_Tulimshar/phaet.txt b/npc/001-2/phaet.txt
index e495d93d..e495d93d 100644
--- a/npc/001-2_Tulimshar/phaet.txt
+++ b/npc/001-2/phaet.txt
diff --git a/npc/001-2_Tulimshar/shops.txt b/npc/001-2/shops.txt
index c70ad113..c70ad113 100644
--- a/npc/001-2_Tulimshar/shops.txt
+++ b/npc/001-2/shops.txt
diff --git a/npc/001-2_Tulimshar/troupe_leader.txt b/npc/001-2/troupe_leader.txt
index e7b0486e..e7b0486e 100644
--- a/npc/001-2_Tulimshar/troupe_leader.txt
+++ b/npc/001-2/troupe_leader.txt
diff --git a/npc/001-2_Tulimshar/_import.txt b/npc/001-2_Tulimshar/_import.txt
deleted file mode 100644
index 3e75640d..00000000
--- a/npc/001-2_Tulimshar/_import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 001-2.gat
-npc: npc/001-2_Tulimshar/_mobs.txt
-npc: npc/001-2_Tulimshar/_warps.txt
-npc: npc/001-2_Tulimshar/casino.txt
-npc: npc/001-2_Tulimshar/mapflags.txt
-npc: npc/001-2_Tulimshar/phaet.txt
-npc: npc/001-2_Tulimshar/shops.txt
-npc: npc/001-2_Tulimshar/troupe_leader.txt
diff --git a/npc/001-3/_import.txt b/npc/001-3/_import.txt
new file mode 100644
index 00000000..a6b8b692
--- /dev/null
+++ b/npc/001-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 001-3: Tulimshar arena
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 001-3.gat
+npc: npc/001-3/_mobs.txt
+npc: npc/001-3/_warps.txt
+npc: npc/001-3/guards.txt
+npc: npc/001-3/monsters.txt
+npc: npc/001-3/pvpflag.txt
diff --git a/npc/001-3_Tulimshar_arena/_mobs.txt b/npc/001-3/_mobs.txt
index 85880a75..ae4b044f 100644
--- a/npc/001-3_Tulimshar_arena/_mobs.txt
+++ b/npc/001-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-3 Tulimshar arena mobs
+// Tulimshar arena mobs
diff --git a/npc/001-3_Tulimshar_arena/_warps.txt b/npc/001-3/_warps.txt
index 244daeed..adb7642a 100644
--- a/npc/001-3_Tulimshar_arena/_warps.txt
+++ b/npc/001-3/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-3 Tulimshar arena warps
+// Tulimshar arena warps
001-3.gat,72,29 warp ToInn 1,-1,001-2.gat,24,23
diff --git a/npc/001-3_Tulimshar_arena/guards.txt b/npc/001-3/guards.txt
index 5b42ca4f..5b42ca4f 100644
--- a/npc/001-3_Tulimshar_arena/guards.txt
+++ b/npc/001-3/guards.txt
diff --git a/npc/001-3_Tulimshar_arena/monsters.txt b/npc/001-3/monsters.txt
index 04e6b11d..04e6b11d 100644
--- a/npc/001-3_Tulimshar_arena/monsters.txt
+++ b/npc/001-3/monsters.txt
diff --git a/npc/001-3_Tulimshar_arena/pvpflag.txt b/npc/001-3/pvpflag.txt
index 73b6e556..73b6e556 100644
--- a/npc/001-3_Tulimshar_arena/pvpflag.txt
+++ b/npc/001-3/pvpflag.txt
diff --git a/npc/001-3_Tulimshar_arena/_import.txt b/npc/001-3_Tulimshar_arena/_import.txt
deleted file mode 100644
index 01ec6939..00000000
--- a/npc/001-3_Tulimshar_arena/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 001-3.gat
-npc: npc/001-3_Tulimshar_arena/_mobs.txt
-npc: npc/001-3_Tulimshar_arena/_warps.txt
-npc: npc/001-3_Tulimshar_arena/guards.txt
-npc: npc/001-3_Tulimshar_arena/monsters.txt
-npc: npc/001-3_Tulimshar_arena/pvpflag.txt
diff --git a/npc/001-4/_import.txt b/npc/001-4/_import.txt
new file mode 100644
index 00000000..aecdcb62
--- /dev/null
+++ b/npc/001-4/_import.txt
@@ -0,0 +1,7 @@
+// Map 001-4: Omars house
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 001-4.gat
+npc: npc/001-4/_mobs.txt
+npc: npc/001-4/_warps.txt
+npc: npc/001-4/dedication.txt
+npc: npc/001-4/omar.txt
diff --git a/npc/001-4_Omars_house/_mobs.txt b/npc/001-4/_mobs.txt
index b7c2cd3d..097896c8 100644
--- a/npc/001-4_Omars_house/_mobs.txt
+++ b/npc/001-4/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-4 Omars house mobs
+// Omars house mobs
diff --git a/npc/001-4_Omars_house/_warps.txt b/npc/001-4/_warps.txt
index dcfef8c8..7831e9a1 100644
--- a/npc/001-4_Omars_house/_warps.txt
+++ b/npc/001-4/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 001-4 Omars house warps
+// Omars house warps
001-4.gat,26,34 warp toOutdoor -1,-1,001-1.gat,75,42
diff --git a/npc/001-4_Omars_house/dedication.txt b/npc/001-4/dedication.txt
index 4b240b11..4b240b11 100644
--- a/npc/001-4_Omars_house/dedication.txt
+++ b/npc/001-4/dedication.txt
diff --git a/npc/001-4_Omars_house/omar.txt b/npc/001-4/omar.txt
index aedf1806..aedf1806 100644
--- a/npc/001-4_Omars_house/omar.txt
+++ b/npc/001-4/omar.txt
diff --git a/npc/001-4_Omars_house/_import.txt b/npc/001-4_Omars_house/_import.txt
deleted file mode 100644
index 8db94949..00000000
--- a/npc/001-4_Omars_house/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 001-4.gat
-npc: npc/001-4_Omars_house/_mobs.txt
-npc: npc/001-4_Omars_house/_warps.txt
-npc: npc/001-4_Omars_house/dedication.txt
-npc: npc/001-4_Omars_house/omar.txt
diff --git a/npc/002-1/_import.txt b/npc/002-1/_import.txt
new file mode 100644
index 00000000..dfda9d8f
--- /dev/null
+++ b/npc/002-1/_import.txt
@@ -0,0 +1,12 @@
+// Map 002-1: Sandstorm
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 002-1.gat
+npc: npc/002-1/_mobs.txt
+npc: npc/002-1/_warps.txt
+npc: npc/002-1/lieutenant_dausen.txt
+npc: npc/002-1/merchant.txt
+npc: npc/002-1/nickos.txt
+npc: npc/002-1/nomads.txt
+npc: npc/002-1/rogue.txt
+npc: npc/002-1/sandstorm_mine_barrier.txt
+npc: npc/002-1/stewen.txt
diff --git a/npc/002-1_Sandstorm/_mobs.txt b/npc/002-1/_mobs.txt
index 0b8be241..9a9b39b5 100644
--- a/npc/002-1_Sandstorm/_mobs.txt
+++ b/npc/002-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 002-1 Sandstorm mobs
+// Sandstorm mobs
002-1.gat,0,0,0,0 monster Maggot 1002,20,1000,500,Mob002-1::On1002
002-1.gat,96,98,19,13 monster Maggot 1002,10,100000,30000,Mob002-1::On1002
diff --git a/npc/002-1_Sandstorm/_warps.txt b/npc/002-1/_warps.txt
index fa911e50..85d404f6 100644
--- a/npc/002-1_Sandstorm/_warps.txt
+++ b/npc/002-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 002-1 Sandstorm warps
+// Sandstorm warps
002-1.gat,58,12 warp ToTulimshar 3,-1,001-1.gat,44,80
002-1.gat,108,79 warp ToEasternDesert -1,1,005-1.gat,23,40
diff --git a/npc/002-1_Sandstorm/lieutenant_dausen.txt b/npc/002-1/lieutenant_dausen.txt
index 69502cf6..0573482b 100644
--- a/npc/002-1_Sandstorm/lieutenant_dausen.txt
+++ b/npc/002-1/lieutenant_dausen.txt
@@ -28,7 +28,7 @@ L_LD_Get_Rep_First:
L_LD_Start:
set TMW_Quest, 13;
mes "[Lieutenant Dausen]";
- mes "\"Out here in the desert, it sure does get hot! My men and I get thirsty rather quickly. [Cactus Drink]s are our favourite; if you can get some for us, we'd surely appreciate your effort. About 10 would do.\"";
+ mes "\"Out here in the desert, it sure does get hot! My men and I get thirsty rather quickly. Cactus Drinks are our favourite; if you can get some for us, we'd surely appreciate your effort. About 10 would do.\"";
close;
L_LD_Drinks:
@@ -51,7 +51,7 @@ L_LD_Drinks:
L_LD_NotEnough_Drink:
mes "[Lieutenant Dausen]";
- mes "\"Hi again. My men and I sure are thirsty for our favorite drink, the [Cactus Drink]. If we had about 10, it would help us out a great deal in this sandstorm.\"";
+ mes "\"Hi again. My men and I sure are thirsty for our favorite drink, the Cactus Drink. If we had about 10, it would help us out a great deal in this sandstorm.\"";
close;
L_LD_TooMany:
diff --git a/npc/002-1_Sandstorm/merchant.txt b/npc/002-1/merchant.txt
index 8a84ae92..8a84ae92 100644
--- a/npc/002-1_Sandstorm/merchant.txt
+++ b/npc/002-1/merchant.txt
diff --git a/npc/002-1_Sandstorm/nickos.txt b/npc/002-1/nickos.txt
index 04713ccf..bf5de510 100644
--- a/npc/002-1_Sandstorm/nickos.txt
+++ b/npc/002-1/nickos.txt
@@ -80,7 +80,7 @@ L_Nickos_Guards:
L_Nickos_AS_Start:
set TMW_Quest, 31;
mes "[Nickos]";
- mes "\"Oh, the angry scorpions are becoming a problem? We could thin down their numbers a bit. I can make it worth your time, but of course, I'll need something to show your work. Bring me 10 [Angry Scorpion Stinger]s to demonstrate your effectiveness, and you will be rewarded for your efforts.\"";
+ mes "\"Oh, the angry scorpions are becoming a problem? We could thin down their numbers a bit. I can make it worth your time, but of course, I'll need something to show your work. Bring me 10 Angry Scorpion Stingers to demonstrate your effectiveness, and you will be rewarded for your efforts.\"";
close;
L_Nickos_AS_Done:
@@ -91,14 +91,14 @@ L_Nickos_AS_Done:
delitem "AngryScorpionStinger", 10;
getitem "LeatherShield", 1;
mes "[Nickos]";
- mes "\"Ah, you are a fine combatant! Take this [Leather Shield], it might be useful for your future battles.\"";
+ mes "\"Ah, you are a fine combatant! Take this Leather Shield, it might be useful for your future battles.\"";
next;
mes "\"You might be ready to take on the underground palace. If you are interested, go talk to Naem about unlocking the barrier, he's got the key and the code to open it.\"";
close;
L_Nickos_AS_NotDone:
mes "[Nickos]";
- mes "\"Bring me 10 [Angry Scorpion Stinger]s and I'll know their numbers are down. You will be rewarded for your efforts.\"";
+ mes "\"Bring me 10 Angry Scorpion Stingers and I'll know their numbers are down. You will be rewarded for your efforts.\"";
close;
L_Nickos_TooMany:
diff --git a/npc/002-1_Sandstorm/nomads.txt b/npc/002-1/nomads.txt
index 0b7e7426..0b7e7426 100644
--- a/npc/002-1_Sandstorm/nomads.txt
+++ b/npc/002-1/nomads.txt
diff --git a/npc/002-1_Sandstorm/rogue.txt b/npc/002-1/rogue.txt
index e5afe354..e5afe354 100644
--- a/npc/002-1_Sandstorm/rogue.txt
+++ b/npc/002-1/rogue.txt
diff --git a/npc/002-1_Sandstorm/sandstorm_mine_barrier.txt b/npc/002-1/sandstorm_mine_barrier.txt
index 62abceac..62abceac 100644
--- a/npc/002-1_Sandstorm/sandstorm_mine_barrier.txt
+++ b/npc/002-1/sandstorm_mine_barrier.txt
diff --git a/npc/002-1_Sandstorm/stewen.txt b/npc/002-1/stewen.txt
index 6c099b3a..6c099b3a 100644
--- a/npc/002-1_Sandstorm/stewen.txt
+++ b/npc/002-1/stewen.txt
diff --git a/npc/002-1_Sandstorm/_import.txt b/npc/002-1_Sandstorm/_import.txt
deleted file mode 100644
index 749a24df..00000000
--- a/npc/002-1_Sandstorm/_import.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 002-1.gat
-npc: npc/002-1_Sandstorm/_mobs.txt
-npc: npc/002-1_Sandstorm/_warps.txt
-npc: npc/002-1_Sandstorm/lieutenant_dausen.txt
-npc: npc/002-1_Sandstorm/merchant.txt
-npc: npc/002-1_Sandstorm/nickos.txt
-npc: npc/002-1_Sandstorm/nomads.txt
-npc: npc/002-1_Sandstorm/rogue.txt
-npc: npc/002-1_Sandstorm/sandstorm_mine_barrier.txt
-npc: npc/002-1_Sandstorm/stewen.txt
diff --git a/npc/002-3/_import.txt b/npc/002-3/_import.txt
new file mode 100644
index 00000000..c6568edf
--- /dev/null
+++ b/npc/002-3/_import.txt
@@ -0,0 +1,11 @@
+// Map 002-3: Desert mines
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 002-3.gat
+npc: npc/002-3/_mobs.txt
+npc: npc/002-3/_warps.txt
+npc: npc/002-3/mine_triggerone.txt
+npc: npc/002-3/mine_triggerthree.txt
+npc: npc/002-3/mine_triggertwo.txt
+npc: npc/002-3/naem.txt
+npc: npc/002-3/nathan.txt
+npc: npc/002-3/underground_palace_barrier.txt
diff --git a/npc/002-3_Desert_mines/_mobs.txt b/npc/002-3/_mobs.txt
index a85ec781..26e1a3f1 100644
--- a/npc/002-3_Desert_mines/_mobs.txt
+++ b/npc/002-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 002-3 Desert mines mobs
+// Desert mines mobs
002-3.gat,39,37,14,10 monster Cave Maggot 1056,5,100000,30000,Mob002-3::On1056
002-3.gat,91,41,17,20 monster Ice Goblin 1058,3,100000,30000,Mob002-3::On1058
diff --git a/npc/002-3_Desert_mines/_warps.txt b/npc/002-3/_warps.txt
index 1f2ec929..5b7ce47c 100644
--- a/npc/002-3_Desert_mines/_warps.txt
+++ b/npc/002-3/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 002-3 Desert mines warps
+// Desert mines warps
002-3.gat,37,29 warp Exit -1,-1,002-1.gat,25,95
diff --git a/npc/002-3_Desert_mines/mine_triggerone.txt b/npc/002-3/mine_triggerone.txt
index d182609b..d182609b 100644
--- a/npc/002-3_Desert_mines/mine_triggerone.txt
+++ b/npc/002-3/mine_triggerone.txt
diff --git a/npc/002-3_Desert_mines/mine_triggerthree.txt b/npc/002-3/mine_triggerthree.txt
index 828eb594..828eb594 100644
--- a/npc/002-3_Desert_mines/mine_triggerthree.txt
+++ b/npc/002-3/mine_triggerthree.txt
diff --git a/npc/002-3_Desert_mines/mine_triggertwo.txt b/npc/002-3/mine_triggertwo.txt
index 5d005620..5d005620 100644
--- a/npc/002-3_Desert_mines/mine_triggertwo.txt
+++ b/npc/002-3/mine_triggertwo.txt
diff --git a/npc/002-3_Desert_mines/naem.txt b/npc/002-3/naem.txt
index 5f0f9bd6..5f0f9bd6 100644
--- a/npc/002-3_Desert_mines/naem.txt
+++ b/npc/002-3/naem.txt
diff --git a/npc/002-3_Desert_mines/nathan.txt b/npc/002-3/nathan.txt
index dde61d84..6eb56875 100644
--- a/npc/002-3_Desert_mines/nathan.txt
+++ b/npc/002-3/nathan.txt
@@ -76,7 +76,7 @@ L_Nathan_Help_Done:
mes "[Nathan]";
mes "You hand the bag of ore to Nathan.";
next;
- mes "\"Ah, that should be it! Thank you for your help. Here, take this [Miner's Hat]. You're a real miner now!\"";
+ mes "\"Ah, that should be it! Thank you for your help. Here, take this Miner's Hat. You're a real miner now!\"";
next;
mes "\"Oh, and I noticed a problem with these angry scorpions down here, they seem to make things much more difficult. Maybe you could tell Nickos about it on your way out?\"";
close;
diff --git a/npc/002-3_Desert_mines/underground_palace_barrier.txt b/npc/002-3/underground_palace_barrier.txt
index 34eeaf57..34eeaf57 100644
--- a/npc/002-3_Desert_mines/underground_palace_barrier.txt
+++ b/npc/002-3/underground_palace_barrier.txt
diff --git a/npc/002-3_Desert_mines/_import.txt b/npc/002-3_Desert_mines/_import.txt
deleted file mode 100644
index 88b4a9ec..00000000
--- a/npc/002-3_Desert_mines/_import.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 002-3.gat
-npc: npc/002-3_Desert_mines/_mobs.txt
-npc: npc/002-3_Desert_mines/_warps.txt
-npc: npc/002-3_Desert_mines/mine_triggerone.txt
-npc: npc/002-3_Desert_mines/mine_triggerthree.txt
-npc: npc/002-3_Desert_mines/mine_triggertwo.txt
-npc: npc/002-3_Desert_mines/naem.txt
-npc: npc/002-3_Desert_mines/nathan.txt
-npc: npc/002-3_Desert_mines/underground_palace_barrier.txt
diff --git a/npc/002-4/_import.txt b/npc/002-4/_import.txt
new file mode 100644
index 00000000..46fac3a9
--- /dev/null
+++ b/npc/002-4/_import.txt
@@ -0,0 +1,7 @@
+// Map 002-4: Desert mines
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 002-4.gat
+npc: npc/002-4/_mobs.txt
+npc: npc/002-4/_warps.txt
+npc: npc/002-4/chest.txt
+npc: npc/002-4/miners.txt
diff --git a/npc/002-4_Desert_mines/_mobs.txt b/npc/002-4/_mobs.txt
index 74487965..aa8d42a5 100644
--- a/npc/002-4_Desert_mines/_mobs.txt
+++ b/npc/002-4/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 002-4 Desert mines mobs
+// Desert mines mobs
002-4.gat,36,89,11,6 monster Ice Goblin 1058,3,100000,30000,Mob002-4::On1058
002-4.gat,33,76,2,11 monster Cave Maggot 1056,3,100000,30000,Mob002-4::On1056
diff --git a/npc/002-4_Desert_mines/_warps.txt b/npc/002-4/_warps.txt
index 9a063b0a..ed406935 100644
--- a/npc/002-4_Desert_mines/_warps.txt
+++ b/npc/002-4/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 002-4 Desert mines warps
+// Desert mines warps
002-4.gat,34,99 warp toLevel1 -1,-1,002-3.gat,68,99
diff --git a/npc/002-4_Desert_mines/chest.txt b/npc/002-4/chest.txt
index 542ce345..542ce345 100644
--- a/npc/002-4_Desert_mines/chest.txt
+++ b/npc/002-4/chest.txt
diff --git a/npc/002-4_Desert_mines/miners.txt b/npc/002-4/miners.txt
index 91350e21..6e71461d 100644
--- a/npc/002-4_Desert_mines/miners.txt
+++ b/npc/002-4/miners.txt
@@ -27,7 +27,7 @@ L_Sema_Yes:
set TMW_Quest, 39;
monster "002-4.gat", 70, 90, "", 1059, 1;
mes "[Sema the Miner]";
- mes "\"Good luck. To prove you killed it, please bring the [Iten] it swallowed when it ate the miner. Be careful, there could be more than one.\"";
+ mes "\"Good luck. To prove you killed it, please bring the Iten it swallowed when it ate the miner. Be careful, there could be more than one.\"";
close;
L_Sema_Happy:
@@ -38,7 +38,7 @@ L_Sema_Happy:
getitem "DesertShirt", 1;
set TMW_Quest, 40;
mes "[Sema the Miner]";
- mes "\"You killed it! What a relief! Please accept this [Desert Shirt] as reward.\"";
+ mes "\"You killed it! What a relief! Please accept this Desert Shirt as reward.\"";
close;
L_Sema_TooMany:
diff --git a/npc/002-4_Desert_mines/_import.txt b/npc/002-4_Desert_mines/_import.txt
deleted file mode 100644
index 9aa89734..00000000
--- a/npc/002-4_Desert_mines/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 002-4.gat
-npc: npc/002-4_Desert_mines/_mobs.txt
-npc: npc/002-4_Desert_mines/_warps.txt
-npc: npc/002-4_Desert_mines/chest.txt
-npc: npc/002-4_Desert_mines/miners.txt
diff --git a/npc/003-1_Beach/_import.txt b/npc/003-1/_import.txt
index ebd66af7..02340ca2 100644
--- a/npc/003-1_Beach/_import.txt
+++ b/npc/003-1/_import.txt
@@ -1,4 +1,6 @@
+// Map 003-1: Beach
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 003-1.gat
-npc: npc/003-1_Beach/_mobs.txt
-npc: npc/003-1_Beach/_warps.txt
+npc: npc/003-1/_mobs.txt
+npc: npc/003-1/_warps.txt
+npc: npc/003-1/stranger.txt
diff --git a/npc/003-1_Beach/_mobs.txt b/npc/003-1/_mobs.txt
index f95e3490..5aa53375 100644
--- a/npc/003-1_Beach/_mobs.txt
+++ b/npc/003-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 003-1 Beach mobs
+// Beach mobs
003-1.gat,64,67,87,93 monster Sea Slime 1033,15,100000,30000,Mob003-1::On1033
003-1.gat,120,31,22,22 monster Sea Slime 1033,5,100000,30000,Mob003-1::On1033
diff --git a/npc/003-1_Beach/_warps.txt b/npc/003-1/_warps.txt
index 2145a038..09277f19 100644
--- a/npc/003-1_Beach/_warps.txt
+++ b/npc/003-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 003-1 Beach warps
+// Beach warps
003-1.gat,172,77 warp ToSandstorm -1,3,002-1.gat,15,66
003-1.gat,141,19 warp ToBeach 1,-1,004-1.gat,37,111
diff --git a/npc/003-1/stranger.txt b/npc/003-1/stranger.txt
new file mode 100644
index 00000000..251f1b1c
--- /dev/null
+++ b/npc/003-1/stranger.txt
@@ -0,0 +1,501 @@
+003-1.gat,35,25,0 script Stranger 192, {
+
+ set @month, 5;
+ set @start_day, 18;
+ set @end_day, 25;
+ set @IRONINGOT, 5;
+ set @PINKANTENNA, 21;
+ set @EXP, 20000;
+
+ if (FLAGS & FLAG_TOWEL_COMPLETED) goto L_Event_Done;
+ if (gettime(6) != @month) goto L_No_Event;
+ if (gettime(5) < @start_day) goto L_No_Event;
+ if (gettime(5) > @end_day) goto L_No_Event;
+ if ((gettimetick(2)-TUT_var < 6*7*86400) || (baselevel < 42 )) //player must be created at least 6 weeks ago and at least level 42
+ goto L_No_Event;
+ if (FLAGS & FLAG_TOWEL_HELPED) goto L_Towel;
+
+ mes "[Stranger]";
+ mes "\"Hello, hello! It's great to see you. Maybe you can help me with a little problem I have.\"";
+ next;
+ mes "\"I need some materials to repair my spacesh- ahm, it's not important why I need it.\"";
+ next;
+ mes "\"Anyway, I'd be really happy if you can give me " + @IRONINGOT + " Iron Ingots and " + @PINKANTENNA + " Pink Antennas.\"";
+ next;
+ mes "\"Do you have that for me?\"";
+ menu
+ "Yeah, sure.",L_Items,
+ "No.",L_Close;
+ close;
+
+L_Items:
+ if (countitem("IngotIron") < @IRONINGOT) goto L_No_Item;
+ if (countitem("PinkAntenna") < @PINKANTENNA) goto L_No_Item;
+ delitem "IngotIron", @IRONINGOT;
+ delitem "PinkAntenna", @PINKANTENNA;
+ getexp @EXP, 0;
+ set FLAGS, FLAGS | FLAG_TOWEL_HELPED;
+
+ mes "[Stranger]";
+ mes "\"Great! Thank you!\"";
+ next;
+ mes "\"I have a lot of work to do now. But before you leave...\"";
+ next;
+
+L_Towel:
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Full_Inv;
+ mes "[Stranger]";
+ mes "\"On May 25th it is a very special day - Towel Day.\"";
+ next;
+ mes "\"To celebrate this I'll ask you some questions about my favourite book, The Hitchhiker's Guide to the Galaxy. If you can answer them, I'll give you something very useful.\"";
+ next;
+ mes "";
+ mes "[Server]";
+ mes "The answers might need to have whitespaces.";
+ mes "If you're using a client which confirms your answer when pressing space, change this setting before continuing.";
+ mes "";
+ next;
+ mes "[Stranger]";
+ mes "\"The first one is easy.\"";
+ next;
+
+ setarray @easy_questions$,
+ "What two words are written in big friendly letters on the back cover?",
+ "What's the name of the paranoid robot?",
+ "What is the answer to life, the universe and everything?",
+ "What is the first name of the author of the hitchhikers guide?",
+ "What is the last name of the author of the hitchhikers guide?",
+ "Who is the male human protagonist?",
+ "Who is the female human protagonist?",
+ "According to the Guide, space is ____?",
+ "What is the name of the spaceship which was stolen by the president of the universe?",
+ "How many heads does Zaphod Beeblebrox have?";
+
+ setarray @easy_answers_amount,2,2,2,2,2,4,4,2,4,2;
+
+ set @random, rand(10);
+ mes "\"" + @easy_questions$[@random] + "\"";
+ input @answer$;
+
+ if (@easy_answers_amount[@random] < 4)
+ goto L_Easy_Skip4;
+ set @quizparam$, "towelanswer0" + @random + "d";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+L_Easy_Skip4:
+ if (@easy_answers_amount[@random] < 3)
+ goto L_Easy_Skip3;
+ set @quizparam$, "towelanswer0" + @random + "c";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+L_Easy_Skip3:
+ set @quizparam$, "towelanswer0" + @random + "b";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+
+ set @quizparam$, "towelanswer0" + @random + "a";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+
+ goto L_Wrong_Answer;
+
+L_Right_Answer_Easy:
+ mes "[Stranger]";
+ mes "\"You're absolutely right. The next one will be more tricky.\"";
+ next;
+
+ setarray @medium_questions$,
+ "What is the name of the rock group claiming to be the loudest band in the universe?",
+ "What star is near Ford's home planet?",
+ "Which country does the human protagonist come from?",
+ "What is the name of the computer on The Heart of Gold?",
+ "What color is a Babel Fish?",
+ "What did the bowl of petunias think?",
+ "What body orifice should a babel fish be inserted in to work properly?",
+ "What is the name of the super computer?",
+ "What were the second most intelligent creatures on Earth?",
+ "What race creates the worst poetry in universe?",
+ "What is the name of the Vogon home planet?",
+ "What is the name of the Restaurant at the End of the Universe?";
+
+ setarray @medium_answers_amount,2,2,2,2,2,3,2,2,4,4,2,2;
+
+ set @random, rand(12);
+ mes "\"" + @medium_questions$[@random] + "\"";
+ input @answer$;
+
+ if (@medium_answers_amount[@random] < 4)
+ goto L_Medium_Skip4;
+
+ set @quizparam$, "towelanswer1" + @random + "d";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+L_Medium_Skip4:
+ if (@medium_answers_amount[@random] < 3)
+ goto L_Medium_Skip3;
+ set @quizparam$, "towelanswer1" + @random + "c";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+L_Medium_Skip3:
+ set @quizparam$, "towelanswer1" + @random + "b";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+
+ set @quizparam$, "towelanswer1" + @random + "a";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+
+ goto L_Wrong_Answer;
+
+L_Right_Answer_Medium:
+ mes "[Stranger]";
+ mes "\"Not bad, not bad. Let's see if you can answer an even more difficult one.\"";
+ next;
+
+ setarray @hard_questions$,
+ "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?",
+ "How many beers should you drink before hitchhiking?",
+ "What initials are carved into Zaphod Beeblebrox's brain?",
+ "What is Ford Prefect's nickname?",
+ "Who is responsible for the fjords of Norway?",
+ "What game is played on earth as a relict of memories to an ancient war?",
+ "What is the name of the triple-breasted whore from Eroticon VI?",
+ "Who will insult every living being in the universe, because he is immortal and getting bored?",
+ "What is the name of the piteous creature that is continually reincarnated and subsequently killed, each time unknowingly, by Arthur Dent?";
+
+ setarray @hard_answers_amount,4,2,2,2,2,2,2,4,2;
+
+ set @random, rand(9);
+ mes "\"" + @hard_questions$[@random] + "\"";
+ input @answer$;
+
+ if (@hard_answers_amount[@random] < 4)
+ goto L_Hard_Skip4;
+ set @quizparam$, "towelanswer2" + @random + "d";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+L_Hard_Skip4:
+ if (@hard_answers_amount[@random] < 3)
+ goto L_Hard_Skip3;
+ set @quizparam$, "towelanswer2" + @random + "c";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+L_Hard_Skip3:
+ set @quizparam$, "towelanswer2" + @random + "b";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+
+ set @quizparam$, "towelanswer2" + @random + "a";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+
+ goto L_Wrong_Answer;
+
+L_Right_Answer_Hard:
+ mes "[Stranger]";
+ mes "\"Unbelievable! You're really a wise person.\"";
+ next;
+ mes "\"One last question, but this shouldn't be a problem for you.\"";
+ next;
+ mes "\"What is the most important item for every hitchhiker to have?\"";
+ input @answer$;
+ if (@answer$ != "Towel" && @answer != "towel")
+ goto L_Wrong_Answer;
+
+ mes "[Stranger]";
+ mes "\"There you are! A towel is really the most important item for a hitchhiker to have.\"";
+ next;
+ mes "\"Please take this.\""; // no full inventory check, this is done before the game
+ getitem "GreyWarpTowel", 1;
+ set FLAGS, FLAGS | FLAG_TOWEL_COMPLETED;
+ next;
+ mes "[Stranger]";
+ mes "\"This towel is even more useful than usual towels are. If you change its color, it uses a special techno-, ahm, let's say, it can help you to get to other places.\"";
+ next;
+ mes "\"Bring me some powder made from gemstones and a bottle of water, and I can prepare it for you.\"";
+ next;
+ mes "\"Depending on the color it will bring you to different places. It might wear out after a while and it'll loose its color, but I can prepare it for you again.\"";
+ next;
+ mes "\"Since I'm not familar with this plane-, ahm, with this area, I can't tell which places you will end up in.\"";
+ close;
+
+L_No_Event:
+ mes "[Stranger]";
+ mes "\"Hello. Isn't this a beautiful place?\"";
+ next;
+ mes "\"And it really comes in handy that I have my towel with me. A towel is about the most massively useful thing an inte- ahm, a person can have.\"";
+ next;
+ mes "\"You can read more about that in my favourite book, 'The Hitchhiker's Guide to the Galaxy'.\"";
+ close;
+
+L_No_Item:
+ mes "[Stranger]";
+ mes "\"Hu? It seems you haven't.\"";
+ close;
+
+L_Wrong_Answer:
+ mes "[Stranger]";
+ mes "\"Nah, that's wrong. Come back if you want to try again.\"";
+ close;
+
+L_Event_Done:
+ mes "[Stranger]";
+ mes "\"Ah, welcome back. Thanks again for your help.\"";
+ next;
+ mes "\"Shall I dye your towel?\"";
+ menu
+ "That would be great!",-,
+ "No, thanks.", L_Close;
+L_Dye_Towel:
+ mes "[Stranger]";
+ mes "\"Alright, which color do you want?\"";
+// the other colors should be added when more places are released
+ menu
+ "Red",L_Red,
+ "Yellow",L_Yellow,
+ "White",L_White,
+// "Blue",L_Blue,
+// "Green",L_Green,
+// "Purple",L_Purple,
+ "Orange",L_Orange,
+ "Pink",L_Pink,
+// "Lime",L_Lime,
+// "Teal",L_Teal,
+ "I changed my mind.", L_Close;
+ close;
+
+L_Red:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need two bags of Ruby Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderRed") < 2) goto L_No_Powder;
+ delitem "GemPowderRed", 2;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "RedWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Yellow:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need two bags of Topaz Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderYellow") < 2) goto L_No_Powder;
+ delitem "GemPowderYellow", 2;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "YellowWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+
+L_White:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need two bags of Diamond Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderWhite") < 2) goto L_No_Powder;
+ delitem "GemPowderWhite", 2;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "WhiteWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Blue:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need two bags of Sapphire Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderBlue") < 2) goto L_No_Powder;
+ delitem "GemPowderBlue", 2;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "BlueWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Green:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need two bags of Emerald Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderGreen") < 2) goto L_No_Powder;
+ delitem "GemPowderGreen", 2;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "GreenWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Purple:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need two bags of Amethyst Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderPurple") < 2) goto L_No_Powder;
+ delitem "GemPowderPurple", 2;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "PurpleWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Orange:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Topaz Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderRed") < 1) goto L_No_Powder;
+ if (countitem("GemPowderYellow") < 1) goto L_No_Powder;
+ delitem "GemPowderRed", 1;
+ delitem "GemPowderYellow", 1;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "OrangeWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Pink:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Diamond Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderRed") < 1) goto L_No_Powder;
+ if (countitem("GemPowderWhite") < 1) goto L_No_Powder;
+ delitem "GemPowderRed", 1;
+ delitem "GemPowderWhite", 1;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "PinkWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Lime:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Topaz Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderGreen") < 1) goto L_No_Powder;
+ if (countitem("GemPowderYellow") < 1) goto L_No_Powder;
+ delitem "GemPowderGreen", 1;
+ delitem "GemPowderYellow", 1;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "LimeWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_Teal:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Sapphire Powder and a bottle of water for that.\"";
+ next;
+ if (countitem("GreyWarpTowel") < 1) goto L_No_Towel;
+ getinventorylist;
+ if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ if (countitem("GemPowderGreen") < 1) goto L_No_Powder;
+ if (countitem("GemPowderBlue") < 1) goto L_No_Powder;
+ delitem "GemPowderGreen", 1;
+ delitem "GemPowderBlue", 1;
+ delitem "GreyWarpTowel", 1;
+ delitem "BottleOfWater", 1;
+ getitem "TealWarpTowel", 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ close;
+
+L_No_Water:
+ mes "[Stranger]";
+ mes "\"You don't have water.\"";
+ close;
+
+L_No_Powder:
+ mes "[Stranger]";
+ mes "\"You need to bring me enough gem powder in that color. Maybe someone used to mining can help you with that.\"";
+ close;
+
+L_No_Towel:
+ mes "[Stranger]";
+ mes "\"Where's your towel? It is really useful, you should always keep it with you.\"";
+ close;
+
+L_Full_Inv:
+ mes "[Stranger]";
+ mes "\"You carry a lot of stuff with you, don't you? Maybe you should get rid of something.\"";
+ close;
+
+L_Close:
+ close;
+}
diff --git a/npc/003-2_Beach_House/_import.txt b/npc/003-2/_import.txt
index 67e7a4f5..1e6e34cc 100644
--- a/npc/003-2_Beach_House/_import.txt
+++ b/npc/003-2/_import.txt
@@ -1,4 +1,5 @@
+// Map 003-2: Beach House
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 003-2.gat
-npc: npc/003-2_Beach_House/_mobs.txt
-npc: npc/003-2_Beach_House/_warps.txt
+npc: npc/003-2/_mobs.txt
+npc: npc/003-2/_warps.txt
diff --git a/npc/003-2_Beach_House/_mobs.txt b/npc/003-2/_mobs.txt
index 8b19a02c..1828e169 100644
--- a/npc/003-2_Beach_House/_mobs.txt
+++ b/npc/003-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 003-2 Beach House mobs
+// Beach House mobs
diff --git a/npc/003-2_Beach_House/_warps.txt b/npc/003-2/_warps.txt
index 67f9162f..e9f4bad9 100644
--- a/npc/003-2_Beach_House/_warps.txt
+++ b/npc/003-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 003-2 Beach House warps
+// Beach House warps
003-2.gat,27,29 warp toOutside -1,-1,003-1.gat,48,37
003-2.gat,61,29 warp toOutside -1,-1,003-1.gat,59,30
diff --git a/npc/004-1_Beach/_import.txt b/npc/004-1/_import.txt
index db47e100..441b28ba 100644
--- a/npc/004-1_Beach/_import.txt
+++ b/npc/004-1/_import.txt
@@ -1,4 +1,5 @@
+// Map 004-1: Beach
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 004-1.gat
-npc: npc/004-1_Beach/_mobs.txt
-npc: npc/004-1_Beach/_warps.txt
+npc: npc/004-1/_mobs.txt
+npc: npc/004-1/_warps.txt
diff --git a/npc/004-1_Beach/_mobs.txt b/npc/004-1/_mobs.txt
index 722b6d65..07f32beb 100644
--- a/npc/004-1_Beach/_mobs.txt
+++ b/npc/004-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 004-1 Beach mobs
+// Beach mobs
004-1.gat,39,57,8,29 monster Sea slime 1033,5,100000,30000,Mob004-1::On1033
004-1.gat,33,83,9,40 monster Sea Slime 1033,11,100000,30000,Mob004-1::On1033
diff --git a/npc/004-1_Beach/_warps.txt b/npc/004-1/_warps.txt
index 8182c8e4..eb232ec8 100644
--- a/npc/004-1_Beach/_warps.txt
+++ b/npc/004-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 004-1 Beach warps
+// Beach warps
004-1.gat,84,113 warp ToSandstorm 1,-1,002-1.gat,29,15
004-1.gat,37,111 warp ToBeach 1,-1,003-1.gat,141,21
diff --git a/npc/004-2_Beach_House/_import.txt b/npc/004-2/_import.txt
index 4703e3d0..3efc4d70 100644
--- a/npc/004-2_Beach_House/_import.txt
+++ b/npc/004-2/_import.txt
@@ -1,4 +1,5 @@
+// Map 004-2: Beach House
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 004-2.gat
-npc: npc/004-2_Beach_House/_mobs.txt
-npc: npc/004-2_Beach_House/_warps.txt
+npc: npc/004-2/_mobs.txt
+npc: npc/004-2/_warps.txt
diff --git a/npc/004-2_Beach_House/_mobs.txt b/npc/004-2/_mobs.txt
index 2669f3c6..dd47ab77 100644
--- a/npc/004-2_Beach_House/_mobs.txt
+++ b/npc/004-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 004-2 Beach House mobs
+// Beach House mobs
diff --git a/npc/004-2_Beach_House/_warps.txt b/npc/004-2/_warps.txt
index e8a40633..b69569d3 100644
--- a/npc/004-2_Beach_House/_warps.txt
+++ b/npc/004-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 004-2 Beach House warps
+// Beach House warps
004-2.gat,39,20 warp ToRoom 0,-1,004-2.gat,75,29
004-2.gat,75,30 warp ToRoom 0,-1,004-2.gat,38,21
diff --git a/npc/005-1/_import.txt b/npc/005-1/_import.txt
new file mode 100644
index 00000000..968adcd7
--- /dev/null
+++ b/npc/005-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 005-1: Snake desert
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 005-1.gat
+npc: npc/005-1/_mobs.txt
+npc: npc/005-1/_warps.txt
+npc: npc/005-1/npcs.txt
+npc: npc/005-1/spirit.txt
+npc: npc/005-1/tree.txt
diff --git a/npc/005-1_Snake_desert/_mobs.txt b/npc/005-1/_mobs.txt
index 1e4366f9..177b995e 100644
--- a/npc/005-1_Snake_desert/_mobs.txt
+++ b/npc/005-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 005-1 Snake desert mobs
+// Snake desert mobs
005-1.gat,0,0,0,0 monster Maggot 1002,1,100000,30000,Mob005-1::On1002
005-1.gat,0,0,0,0 monster Snake 1010,1,100000,30000,Mob005-1::On1010
diff --git a/npc/005-1_Snake_desert/_warps.txt b/npc/005-1/_warps.txt
index 1e09429d..6d8c2597 100644
--- a/npc/005-1_Snake_desert/_warps.txt
+++ b/npc/005-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 005-1 Snake desert warps
+// Snake desert warps
005-1.gat,19,41 warp ToSandstorm -1,2,002-1.gat,106,78
005-1.gat,89,23 warp ToSnakeCave -1,-1,005-3.gat,52,34
diff --git a/npc/005-1_Snake_desert/npcs.txt b/npc/005-1/npcs.txt
index 12f37ca1..12f37ca1 100644
--- a/npc/005-1_Snake_desert/npcs.txt
+++ b/npc/005-1/npcs.txt
diff --git a/npc/005-1_Snake_desert/spirit.txt b/npc/005-1/spirit.txt
index d6723c8e..d6723c8e 100644
--- a/npc/005-1_Snake_desert/spirit.txt
+++ b/npc/005-1/spirit.txt
diff --git a/npc/005-1_Snake_desert/tree.txt b/npc/005-1/tree.txt
index 54b7ed1c..54b7ed1c 100644
--- a/npc/005-1_Snake_desert/tree.txt
+++ b/npc/005-1/tree.txt
diff --git a/npc/005-1_Snake_desert/_import.txt b/npc/005-1_Snake_desert/_import.txt
deleted file mode 100644
index 06f15373..00000000
--- a/npc/005-1_Snake_desert/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 005-1.gat
-npc: npc/005-1_Snake_desert/_mobs.txt
-npc: npc/005-1_Snake_desert/_warps.txt
-npc: npc/005-1_Snake_desert/npcs.txt
-npc: npc/005-1_Snake_desert/spirit.txt
-npc: npc/005-1_Snake_desert/tree.txt
diff --git a/npc/005-3_Snake_pit/_import.txt b/npc/005-3/_import.txt
index 64787f76..23982113 100644
--- a/npc/005-3_Snake_pit/_import.txt
+++ b/npc/005-3/_import.txt
@@ -1,5 +1,6 @@
+// Map 005-3: Snake pit
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 005-3.gat
-npc: npc/005-3_Snake_pit/_mobs.txt
-npc: npc/005-3_Snake_pit/_warps.txt
-npc: npc/005-3_Snake_pit/monsters.txt
+npc: npc/005-3/_mobs.txt
+npc: npc/005-3/_warps.txt
+npc: npc/005-3/monsters.txt
diff --git a/npc/005-3_Snake_pit/_mobs.txt b/npc/005-3/_mobs.txt
index 6d36e1b2..b5c48308 100644
--- a/npc/005-3_Snake_pit/_mobs.txt
+++ b/npc/005-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 005-3 Snake pit mobs
+// Snake pit mobs
diff --git a/npc/005-3_Snake_pit/_warps.txt b/npc/005-3/_warps.txt
index f56e5fcc..3005e84b 100644
--- a/npc/005-3_Snake_pit/_warps.txt
+++ b/npc/005-3/_warps.txt
@@ -1,5 +1,6 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 005-3 Snake pit warps
+// Snake pit warps
005-3.gat,52,33 warp CaveExit -1,-1,005-1.gat,89,24
005-3.gat,33,82 warp CaveExit -1,-1,005-1.gat,71,75
+005-3.gat,85,49 warp toBossCave -1,-1,005-4.gat,36,35
diff --git a/npc/005-3_Snake_pit/monsters.txt b/npc/005-3/monsters.txt
index 439b6300..439b6300 100644
--- a/npc/005-3_Snake_pit/monsters.txt
+++ b/npc/005-3/monsters.txt
diff --git a/npc/005-4/_import.txt b/npc/005-4/_import.txt
new file mode 100644
index 00000000..946e3c1d
--- /dev/null
+++ b/npc/005-4/_import.txt
@@ -0,0 +1,6 @@
+// Map 005-4: Electricity Boss Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 005-4.gat
+npc: npc/005-4/_mobs.txt
+npc: npc/005-4/_warps.txt
+npc: npc/005-4/bossfight.txt
diff --git a/npc/005-4/_mobs.txt b/npc/005-4/_mobs.txt
new file mode 100644
index 00000000..9ab766cd
--- /dev/null
+++ b/npc/005-4/_mobs.txt
@@ -0,0 +1,8 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Electricity Boss Cave mobs
+
+
+
+005-4.gat,0,0,0 script Mob005-4 -1,{
+ end;
+}
diff --git a/npc/005-4/_warps.txt b/npc/005-4/_warps.txt
new file mode 100644
index 00000000..18e5e182
--- /dev/null
+++ b/npc/005-4/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Electricity Boss Cave warps
+
+005-4.gat,37,36 warp toCave 0,-1,005-3.gat,85,50
diff --git a/npc/005-4/bossfight.txt b/npc/005-4/bossfight.txt
new file mode 100644
index 00000000..2f040462
--- /dev/null
+++ b/npc/005-4/bossfight.txt
@@ -0,0 +1,208 @@
+//Author: Kage
+
+005-4.gat,36,19,0 script Switch#elecave 127,{
+ if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy;
+
+ mes "*You see a switch, it is flipped off*";
+ menu "No, I am NOT flipping the switch... thats final.", L_Exit,
+ "Ha! What's the worst that could happen?", -;
+
+ mes "*As you flip the switch, the cave starts to rumble*";
+
+ if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; // Prevent from starting level 1 from two different players
+
+ set $@ELE_CAVE_STATUS, 1;
+ set $@ELE_CAVE_PLAYER_COUNT, getareausers("005-4.gat", 19, 19, 54, 37);
+
+ startnpctimer;
+
+L_Start_Level_1:
+ set $@ELE_CAVE_LEVEL, 1;
+
+ mapannounce "005-4.gat", "Level 1 starting", 0;
+
+ // Random colors for everyone!
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
+
+ // Two red, two blue.
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 2, "Switch#elecave::onBlueDeath";
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 2, "Switch#elecave::onRedDeath";
+ goto L_Exit; // This one is triggered on talking to the switch.
+
+L_Enjoy:
+ mes "*It seems the switch is stuck in the on position*";
+L_Exit:
+ close;
+ end;
+
+//-----------------------No player talking below this line-------------------------------
+
+// Fight logic
+OnTimer3000:
+ setnpctimer 0;
+
+ // We stop if no live players are around
+ if ($@ELE_CAVE_PLAYER_COUNT == 0) goto L_CleanUp;
+ set $@ELE_CAVE_PLAYER_COUNT, 0; // The onTick refills this with a live count
+
+ // We punish them for having a different count (Aka need kill them at the same time)
+ set $@ELE_CAVE_RED_COUNT, mobcount("005-4.gat","Switch#elecave::onRedDeath") + 1;
+ set $@ELE_CAVE_BLUE_COUNT, mobcount("005-4.gat","Switch#elecave::onBlueDeath") + 1;
+
+ set $@ELE_CAVE_DIFF, 0;
+ if ($@ELE_CAVE_RED_COUNT > $@ELE_CAVE_BLUE_COUNT) goto L_More_Red;
+ if ($@ELE_CAVE_RED_COUNT < $@ELE_CAVE_BLUE_COUNT) goto L_More_Blue;
+ goto L_Next_Step;
+
+L_More_Red:
+ set $@ELE_CAVE_DIFF, $@ELE_CAVE_RED_COUNT - $@ELE_CAVE_BLUE_COUNT;
+ mapannounce "005-4.gat", "Their are too many red ions in the air!", 0;
+ goto L_Next_Step;
+
+L_More_Blue:
+ set $@ELE_CAVE_DIFF, $@ELE_CAVE_BLUE_COUNT - $@ELE_CAVE_RED_COUNT;
+ mapannounce "005-4.gat", "Their are too many blue ions in the air!", 0;
+ goto L_Next_Step;
+
+L_Next_Step:
+ // Basic per player logic
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onTick";
+
+ if ($@ELE_CAVE_RED_COUNT == 0 && $@ELE_CAVE_BLUE_COUNT == 0) goto L_Next_Level;
+
+ end;
+
+L_Next_Level:
+ if ($@ELE_CAVE_LEVEL == 1) goto L_Start_Level_2;
+ if ($@ELE_CAVE_LEVEL == 2) goto L_Start_Level_3;
+ if ($@ELE_CAVE_LEVEL == 3) goto L_CleanUp;
+ end;
+
+L_Start_Level_2:
+ set $@ELE_CAVE_LEVEL, 2;
+
+ mapannounce "005-4.gat", "Level 2 starting", 0;
+
+ // Random colors for everyone!
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
+
+ // four red, four blue.
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 4, "Switch#elecave::onBlueDeath";
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 4, "Switch#elecave::onRedDeath";
+ end;
+
+L_Start_Level_3:
+ set $@ELE_CAVE_LEVEL, 3;
+
+ mapannounce "005-4.gat", "Level 3 starting", 0;
+
+ // Random colors for everyone!
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
+
+ // eight red, eight blue.
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 8, "Switch#elecave::onBlueDeath";
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 8, "Switch#elecave::onRedDeath";
+ end;
+
+// Being ticks
+
+onChaos:
+ if (isdead(0)) end;
+L_Set_Color:
+ message strcharinfo(0), "You feel funny.";
+ set @ELE_CAVE_COLOR, rand(1, 2);
+ end;
+
+onTick:
+ if (isdead(0)) end;
+
+ // Count this player as alive
+ set $@ELE_CAVE_PLAYER_COUNT, $@ELE_CAVE_PLAYER_COUNT + 1;
+
+ set @drainamount, MaxHp / -20;
+
+ if ($@ELE_CAVE_DIFF != 0) heal @drainamount * $@ELE_CAVE_DIFF, 0;
+
+ // Make sure they have a color
+ if (@ELE_CAVE_COLOR == 0) goto L_Set_Color;
+
+ if (@ELE_CAVE_COLOR == 1) goto L_Do_Red;
+ if (@ELE_CAVE_COLOR == 2) goto L_Do_Blue;
+
+ end;
+
+L_Do_Red:
+ specialeffect2 120; // Red effects
+
+ // Punish blue players who stand around a red player
+ areatimer "005-4.gat", getx(0) - 2, gety(0) - 2, getx(0) + 2, gety(0) + 2, 10, "Switch#elecave::onBlue";
+
+ if (isin("005-4.gat", 42, 19, 54, 32)) goto L_Heal;
+ if (isin("005-4.gat", 32, 19, 54, 37)) end;
+ message strcharinfo(0), "Sparks are flying between you and a piller.";
+ heal MaxHp / -6, 0;
+
+ end;
+
+L_Do_Blue:
+ specialeffect2 121; // Blue effects
+
+ // Punish red players who stand around a blue player
+ areatimer "005-4.gat", getx(0) - 2, gety(0) - 2, getx(0) + 2, gety(0) + 2, 10, "Switch#elecave::onRed";
+
+ if (isin("005-4.gat", 19, 19, 31, 32)) goto L_Heal;
+ if (isin("005-4.gat", 19, 19, 41, 37)) end;
+ message strcharinfo(0), "Sparks are flying between you and a piller.";
+ heal MaxHp / -6, 0;
+
+ end;
+
+L_Heal:
+ heal MaxHp / 20, 0;
+ end;
+
+// Punishment triggers
+onRed:
+ if (@ELE_CAVE_COLOR == 2) end;
+ message strcharinfo(0), "Sparks are flying between you and the person you are next to!";
+ heal MaxHp / -5, 0;
+ end;
+
+onBlue:
+ if (@ELE_CAVE_COLOR == 1) end;
+ message strcharinfo(0), "Sparks are flying between you and the person you are next to!";
+ heal MaxHp / -5, 0;
+ end;
+
+
+// Death triggers
+onBlueDeath:
+ // Blue players have to kill blue sparks
+ if (@ELE_CAVE_COLOR == 2) end;
+ message strcharinfo(0), "The dieing spark reacts explosively with you.";
+ heal MaxHp / -2, 0;
+ end;
+
+onRedDeath:
+ // Red players have to kill red sparks
+ if (@ELE_CAVE_COLOR == 1) end;
+ message strcharinfo(0), "The dieing spark reacts explosively with you.";
+ heal MaxHp / -2, 0;
+ end;
+
+onInit:
+ initnpctimer;
+ stopnpctimer;
+L_CleanUp:
+ set $@ELE_CAVE_STATUS, 0;
+ set $@ELE_CAVE_PLAYER_COUNT, 0;
+ set $@ELE_CAVE_LEVEL, 0;
+ set $@ELE_CAVE_ROUND_TIMER, 0;
+
+ killmonster "005-4.gat", "Switch#elecave::onBlueDeath";
+ killmonster "005-4.gat", "Switch#elecave::onRedDeath";
+
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
diff --git a/npc/006-1/_import.txt b/npc/006-1/_import.txt
new file mode 100644
index 00000000..ec566450
--- /dev/null
+++ b/npc/006-1/_import.txt
@@ -0,0 +1,7 @@
+// Map 006-1: Desert mountains
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 006-1.gat
+npc: npc/006-1/_mobs.txt
+npc: npc/006-1/_warps.txt
+npc: npc/006-1/mika.txt
+npc: npc/006-1/pachua.txt
diff --git a/npc/006-1_Desert_mountains/_mobs.txt b/npc/006-1/_mobs.txt
index ae13bb84..d3dffdd8 100644
--- a/npc/006-1_Desert_mountains/_mobs.txt
+++ b/npc/006-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 006-1 Desert mountains mobs
+// Desert mountains mobs
006-1.gat,25,34,12,31 monster Snake 1010,3,100000,30000,Mob006-1::On1010
006-1.gat,36,29,9,16 monster Snake 1010,1,100000,30000,Mob006-1::On1010
diff --git a/npc/006-1_Desert_mountains/_warps.txt b/npc/006-1/_warps.txt
index 3dd14f00..eab79c2b 100644
--- a/npc/006-1_Desert_mountains/_warps.txt
+++ b/npc/006-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 006-1 Desert mountains warps
+// Desert mountains warps
006-1.gat,28,21 warp ToDesert -1,-1,005-1.gat,175,96
006-1.gat,27,22 warp ToDesert -1,-1,005-1.gat,174,97
diff --git a/npc/006-1_Desert_mountains/mika.txt b/npc/006-1/mika.txt
index fc2e6f44..fc2e6f44 100644
--- a/npc/006-1_Desert_mountains/mika.txt
+++ b/npc/006-1/mika.txt
diff --git a/npc/006-1_Desert_mountains/pachua.txt b/npc/006-1/pachua.txt
index 996705c0..c7bd1855 100644
--- a/npc/006-1_Desert_mountains/pachua.txt
+++ b/npc/006-1/pachua.txt
@@ -1,14 +1,24 @@
006-1.gat,23,100,0 script Pachua 143,{
set @LEATHER_PATCH_PRICE, 300;
-
set @wants_leather_patch, QUEST_Forestbow_state & NIBBLE_4_MASK;
+// lines belong to easter 2011:
+// set @month, 4;
+// set @start_day, 15;
+// set @end_day, 30;
+
if (QUEST_MIRIAM_cheat != 0) goto L_warp_cheat;
if (QUEST_MIRIAM_start != 0) goto L_smoke;
+// lines belong to easter 2011:
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 1) goto L_Basket;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 2) goto L_MakeBasket;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 3) goto L_SeeBunny;
+
L_Begin:
mes "[Chief Pachua]";
+ mes "";
mes "\"How!\"";
next;
@@ -16,6 +26,7 @@ L_Begin:
if (getequipid(equip_legs) == 642) goto L_WearingChaps;
mes "[Chief Pachua]";
+ mes "";
mes "\"For generations my tribe has been crafting special clothes out of different items.\"";
next;
@@ -25,6 +36,7 @@ L_Check_Shops:
if(countitem("FancyHat") > 0 && countitem("SnakeSkin") > 1) goto L_Cowboy_store;
mes "[Chief Pachua]";
+ mes "";
mes "\"Maybe if you bring me the right materials I can make something for you.\"";
next;
@@ -36,6 +48,7 @@ L_Check_Shops:
L_CheckStuff:
mes "[Chief Pachua]";
+ mes "";
mes "\"Let me see what you have there.\"";
next;
return;
@@ -43,6 +56,7 @@ L_CheckStuff:
L_Super_store:
callsub L_CheckStuff;
mes "[Chief Pachua]";
+ mes "";
mes "\"Ahh you have lots of good items to work with.\"";
mes "";
mes "\"With them I can make you either";
@@ -63,6 +77,7 @@ L_Super_store:
L_Cowboy_store:
callsub L_CheckStuff;
mes "[Chief Pachua]";
+ mes "";
mes "\"To make you a Cowboy hat I will need:";
mes "1 Fancy hat";
mes "2 Snake skins";
@@ -83,6 +98,7 @@ L_Cowboy_store:
L_Chaps_store:
callsub L_CheckStuff;
mes "[Chief Pachua]";
+ mes "";
mes "\"To make you a pair of Snake Skin Chaps I will need:";
mes "1 Jeans Shorts";
mes "10 Snake skins";
@@ -131,6 +147,7 @@ L_Cowboy_black:
L_leather_patch:
mes "[Chief Pachua]";
+ mes "";
mes "\"If you just want a piece of leather, then yes, I can make that. Bring me a snake skin and " + @LEATHER_PATCH_PRICE + " GP.\"";
next;
@@ -150,6 +167,7 @@ L_leather_patch:
L_DealDone:
mes "[Chief Pachua]";
+ mes "";
mes "\"Here you are!\"";
mes "";
mes "\"Come back any time.\"";
@@ -157,37 +175,44 @@ L_DealDone:
L_NoDeal:
mes "[Chief Pachua]";
+ mes "";
mes "\"Alright, but you won't get a better deal anywhere else!\"";
close;
L_NoMoney:
mes "[Chief Pachua]";
+ mes "";
mes "\"Oh dear, it seems you don't have enough money.\"";
close;
L_NoJeans:
mes "[Chief Pachua]";
+ mes "";
mes "\"Oh dear, it seems you don't have enough jeans shorts.\"";
close;
L_NoFancy:
mes "[Chief Pachua]";
+ mes "";
mes "\"Oh dear, it seems you don't have enough fancy hats.\"";
close;
L_NoSkins:
mes "[Chief Pachua]";
+ mes "";
mes "\"Oh dear, it seems you don't have enough snake skins.\"";
close;
L_WearingCowboy:
mes "[Chief Pachua]";
+ mes "";
mes "\"Ah, I see that you are wearing a hat made with the ancient methods of my tribe.\"";
next;
goto L_Check_Shops;
L_WearingChaps:
mes "[Chief Pachua]";
+ mes "";
mes "\"Ah, I see that you are wearing pants made by my tribe.\"";
next;
goto L_Check_Shops;
@@ -197,6 +222,7 @@ L_End:
L_TooMany:
mes "[Chief Pachua]";
+ mes "";
mes "\"You don't have room for a leather patch. Come back later.\"";
close;
@@ -211,4 +237,75 @@ L_warp_cheat:
message strcharinfo(0), "Pachua releases a ring of smoke towards the sky! But, by the look on his face, you can tell he is suspicious about your methods...";
set @warp_cheat, 1;
end;
+
+L_Basket:
+ mes "[Chief Pachua]";
+ mes "";
+ mes "\"For generations my tribe has been crafting special clothes out of different items.\"";
+ mes "\"Maybe if you bring me the right materials I can make something for you.\"";
+ next;
+ menu
+ "Do you work only with clothes? Because I was looking for a basket.", -;
+ mes "\"A basket? In our tribe, we craft baskets of all kinds using only reeds. This basket, you need it to carry your items?\"";
+ menu
+ "No. It is for the Easter Bunny. I offered to get him one.", -;
+ mes "\"I appreciate your attitude. Maybe I can help you with that.\"";
+ menu
+ "I would be really grateful if you could do that!", -,
+ "Nah, I decided not to do that stupid quest.", L_End,
+ "I would prefer to talk to you about other stuff.", L_Begin; //should go to pachuas's regular chat
+ set QUEST_Easter11, 2;
+
+L_MakeBasket:
+ mes "[Chief Pachua]";
+ mes "";
+ mes "\"I will need you to gather reeds for me.\"";
+ mes "\"5 bundles should do it.\"";
+ mes "\"You should be able to get those from mouboos as they graze.\"";
+ menu
+ "I have the Reeds!", -,
+ "Ok, I will be back soon", L_End,
+ "I changed my mind, forget about it", L_End,
+ "Can I talk to you about another stuff?", L_Begin; //should go to pachuas's regular chat
+
+ if(countitem("ReedBundle") < 5) goto L_EasterNotEnough;
+ if(countitem("ReedBundle") >= 5) goto L_EasterEnough;
+ close;
+
+L_EasterNotEnough:
+ mes "[Chief Pachua]";
+ mes "";
+ mes "\"You do not have enough Reed Bundles for me to work with.\"";
+ mes "\"Go gather more.\"";
+ close;
+
+L_EasterEnough:
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem("ReedBundle") > 5) goto L_EasterTooMany;
+ if(countitem("ReedBundle") < 5) goto L_EasterNotEnough;
+ delitem "ReedBundle", 5;
+ getitem "EasterBasket", 1;
+ set QUEST_Easter11, 3;
+ mes "[Chief Pachua]";
+ mes "";
+ mes "\"You have gathered enough reeds for me to make the basket.\"";
+ mes "He skillfully soaks the reeds you brought him,";
+ mes "then swiftly weaves them into a basket shape.";
+ mes "Next, he places the damp basket in the sun to dry for a minute before handing it over to you.";
+ mes "\"Here is your Easter Basket.\"";
+ close;
+
+L_EasterTooMany:
+ mes "[Chief Pachua]";
+ mes "";
+ mes "\"You don't have room for the Easter Basket. Come back later.\"";
+ close;
+
+L_SeeBunny:
+ mes "[Chief Pachua]";
+ mes "";
+ mes "\"You need to return to the Easter Bunny now.\"";
+ next;
+ goto L_Begin;
+
}
diff --git a/npc/006-1_Desert_mountains/_import.txt b/npc/006-1_Desert_mountains/_import.txt
deleted file mode 100644
index 655acae9..00000000
--- a/npc/006-1_Desert_mountains/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 006-1.gat
-npc: npc/006-1_Desert_mountains/_mobs.txt
-npc: npc/006-1_Desert_mountains/_warps.txt
-npc: npc/006-1_Desert_mountains/mika.txt
-npc: npc/006-1_Desert_mountains/pachua.txt
diff --git a/npc/006-3_Desert_mountain_caves/_import.txt b/npc/006-3/_import.txt
index 1f1f8e49..85228166 100644
--- a/npc/006-3_Desert_mountain_caves/_import.txt
+++ b/npc/006-3/_import.txt
@@ -1,4 +1,5 @@
+// Map 006-3: Desert mountain caves
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 006-3.gat
-npc: npc/006-3_Desert_mountain_caves/_mobs.txt
-npc: npc/006-3_Desert_mountain_caves/_warps.txt
+npc: npc/006-3/_mobs.txt
+npc: npc/006-3/_warps.txt
diff --git a/npc/006-3_Desert_mountain_caves/_mobs.txt b/npc/006-3/_mobs.txt
index 849bcc11..2a401fa6 100644
--- a/npc/006-3_Desert_mountain_caves/_mobs.txt
+++ b/npc/006-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 006-3 Desert mountain caves mobs
+// Desert mountain caves mobs
006-3.gat,108,25,36,8 monster Mountain Snake 1026,3,15000,90000,Mob006-3::On1026
006-3.gat,99,50,14,13 monster Mountain Snake 1026,1,15000,90000,Mob006-3::On1026
diff --git a/npc/006-3_Desert_mountain_caves/_warps.txt b/npc/006-3/_warps.txt
index 1d8557d8..807c49b8 100644
--- a/npc/006-3_Desert_mountain_caves/_warps.txt
+++ b/npc/006-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 006-3 Desert mountain caves warps
+// Desert mountain caves warps
006-3.gat,40,26 warp ToOutside -1,-1,006-1.gat,40,27
006-3.gat,55,27 warp ToOutside -1,-1,006-1.gat,55,28
diff --git a/npc/007-1_Woodland/_import.txt b/npc/007-1/_import.txt
index 3ce8fb26..0e3373a3 100644
--- a/npc/007-1_Woodland/_import.txt
+++ b/npc/007-1/_import.txt
@@ -1,5 +1,6 @@
+// Map 007-1: Woodland
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 007-1.gat
-npc: npc/007-1_Woodland/_mobs.txt
-npc: npc/007-1_Woodland/_warps.txt
-npc: npc/007-1_Woodland/voltain.txt
+npc: npc/007-1/_mobs.txt
+npc: npc/007-1/_warps.txt
+npc: npc/007-1/voltain.txt
diff --git a/npc/007-1_Woodland/_mobs.txt b/npc/007-1/_mobs.txt
index c5dec71a..7f7a266c 100644
--- a/npc/007-1_Woodland/_mobs.txt
+++ b/npc/007-1/_mobs.txt
@@ -1,9 +1,9 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 007-1 Woodland mobs
+// Woodland mobs
007-1.gat,0,0,0,0 monster PinkFlower 1014,17,100000,30000,Mob007-1::On1014
007-1.gat,0,0,0,0 monster Spiky Mushroom 1019,15,100000,30000,Mob007-1::On1019
-007-1.gat,0,0,0,0 monster Fluffy 1020,25,100000,30000,Mob007-1::On1020
+007-1.gat,0,0,0,0 monster Snail 1041,25,100000,30000,Mob007-1::On1041
007-1.gat,0,0,0,0 monster Mauve 1029,3,270000,180000,Mob007-1::On1029
007-1.gat,0,0,0,0 monster Gamboge 1031,1,2700000,1800000,Mob007-1::On1031
007-1.gat,0,0,0,0 monster SilkWorm 1035,2,60000,30000,Mob007-1::On1035
@@ -23,11 +23,6 @@ On1019:
callfunc "MobPoints";
break;
-On1020:
- set @mobID, 1020;
- callfunc "MobPoints";
- break;
-
On1029:
set @mobID, 1029;
callfunc "MobPoints";
@@ -53,6 +48,11 @@ On1038:
callfunc "MobPoints";
break;
+On1041:
+ set @mobID, 1041;
+ callfunc "MobPoints";
+ break;
+
On1055:
set @mobID, 1055;
callfunc "MobPoints";
diff --git a/npc/007-1_Woodland/_warps.txt b/npc/007-1/_warps.txt
index 15013312..71ac7a33 100644
--- a/npc/007-1_Woodland/_warps.txt
+++ b/npc/007-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 007-1 Woodland warps
+// Woodland warps
007-1.gat,20,54 warp ToHurnscald -1,0,010-1.gat,127,53
007-1.gat,69,21 warp ToHurnscald 2,-1,008-1.gat,78,100
diff --git a/npc/007-1_Woodland/voltain.txt b/npc/007-1/voltain.txt
index ff13d70b..ff13d70b 100644
--- a/npc/007-1_Woodland/voltain.txt
+++ b/npc/007-1/voltain.txt
diff --git a/npc/008-1/_import.txt b/npc/008-1/_import.txt
new file mode 100644
index 00000000..f517bb23
--- /dev/null
+++ b/npc/008-1/_import.txt
@@ -0,0 +1,10 @@
+// Map 008-1: Hurnscald outskirts
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 008-1.gat
+npc: npc/008-1/_mobs.txt
+npc: npc/008-1/_warps.txt
+npc: npc/008-1/andra.txt
+npc: npc/008-1/diryn.txt
+npc: npc/008-1/dock.txt
+npc: npc/008-1/george.txt
+npc: npc/008-1/hinnak.txt
diff --git a/npc/008-1_Hurnscald_outskirts/_mobs.txt b/npc/008-1/_mobs.txt
index 52c99708..a4d8c3cf 100644
--- a/npc/008-1_Hurnscald_outskirts/_mobs.txt
+++ b/npc/008-1/_mobs.txt
@@ -1,10 +1,10 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 008-1 Hurnscald outskirts mobs
+// Hurnscald outskirts mobs
008-1.gat,0,0,0,0 monster PinkFlower 1014,10,20,0,Mob008-1::On1014
008-1.gat,0,0,0,0 monster Pinkie 1018,18,20,0,Mob008-1::On1018
008-1.gat,0,0,0,0 monster SpikyMushroom 1019,18,20,0,Mob008-1::On1019
-008-1.gat,0,0,0,0 monster Fluffy 1020,5,30,0,Mob008-1::On1020
+008-1.gat,0,0,0,0 monster Snail 1041,5,30,0,Mob008-1::On1041
008-1.gat,0,0,0,0 monster Mauve 1029,2,270000,180000,Mob008-1::On1029
008-1.gat,0,0,0,0 monster SilkWorm 1035,2,60000,30000,Mob008-1::On1035
008-1.gat,0,0,0,0 monster Clover 1037,2,0,1000,Mob008-1::On1037
@@ -28,11 +28,6 @@ On1019:
callfunc "MobPoints";
break;
-On1020:
- set @mobID, 1020;
- callfunc "MobPoints";
- break;
-
On1029:
set @mobID, 1029;
callfunc "MobPoints";
@@ -53,6 +48,11 @@ On1038:
callfunc "MobPoints";
break;
+On1041:
+ set @mobID, 1041;
+ callfunc "MobPoints";
+ break;
+
On1055:
set @mobID, 1055;
callfunc "MobPoints";
diff --git a/npc/008-1_Hurnscald_outskirts/_warps.txt b/npc/008-1/_warps.txt
index 2ee36380..8cc5b652 100644
--- a/npc/008-1_Hurnscald_outskirts/_warps.txt
+++ b/npc/008-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 008-1 Hurnscald outskirts warps
+// Hurnscald outskirts warps
008-1.gat,54,61 warp HurnscaldWestGate -1,1,009-1.gat,26,36
008-1.gat,79,80 warp HurnscaldSouthGate 2,-1,009-1.gat,48,54
diff --git a/npc/008-1/andra.txt b/npc/008-1/andra.txt
new file mode 100644
index 00000000..8e80d3c5
--- /dev/null
+++ b/npc/008-1/andra.txt
@@ -0,0 +1,151 @@
+// Andra asks for your help to keep the soil fertile. The best way to do it is planting, so she asks for water and seeds. When she plants the seeds, some plants are spawned.
+
+008-1.gat,36,26,0 script Andra 201,{
+ set @water_amount, 1;
+ set @seeds_amount, 4;
+ if ($@andra_status == 1) goto L_Planting;
+ if (baselevel < 30) goto L_TooYoung;
+ if (FLAGS & FLAG_ANDRA_HELPED) goto L_Return;
+ mes "[Andra]";
+ mes "\"Hello, my name is Andra. You see those nice trees? I planted every single one of them! I'm very proud of my work!\"";
+ next;
+ menu
+ "Nice! I imagine you planted them a long time ago, right?", -,
+ "Sorry, but I'm not interested in plants and trees.", L_DislikePlants;
+ mes "[Andra]";
+ mes "\"That is the fun part... It took only some months... and look how healthy and beautiful they are!\"";
+ next;
+ menu
+ "How is that possible?", -;
+ mes "[Andra]";
+ mes "\"A few years ago, a nice woman from Tulimshar did something amazing to the land around here... I guess her name was Eomie. I have no idea what she did, but since she worked on this land, everything you plant here will grow really fast!\"";
+ next;
+ mes "\"But I am very worried about something she told me when she left... She warned me that this place needs constant care. If one small spot is not cultivated for a long time, it will become less and less fertile.\"";
+ next;
+ mes "And she also told me that this soil is so fertile because it has a lot of nutrients not only on this side, but everywhere. So it is certain that all soil in this place will become weaker if we let a lot of unfertilized spots...\"";
+ next;
+ menu
+ "That sounds bad! But you just need to keep planting, right?", -;
+ mes "[Andra]";
+ mes "\"Exactly! But it is a big place. And I don't have too much money to buy seeds. If only I could find someone who could help me... ah... I know you are probably busy, but since you are here, would you like to help me in this noble task?\"";
+ menu
+ "Of course! What can I do to help you?", -,
+ "Not right now, I'm really busy.", L_Busy;
+ mes "[Andra]";
+ mes "\"Yay! I knew you would help me! I just need seeds and water... I think " + @seeds_amount + " Grass Seeds and " + @water_amount + " Bottle(s) of Water should be enough to grow some plants on the place. If you give the items, you can let the rest with me.\"";
+ next;
+ menu
+ "I don't have it right now, but I will come back later.", L_Close,
+ "Here are the seeds and the water.", -;
+ if (countitem("BottleOfWater") < @water_amount || countitem("GrassSeed") < @seeds_amount) goto L_NotEnough;
+ if ($@spawned_plants >= $@MAX_GLOBAL_PLANTS) goto L_Gather;
+ mes "[Andra]";
+ mes "\"Great! Thank you for you help. If you have more items and want to help again, feel free to talk to me. We just have to be careful to not oversoak the soil with water.. but you don't need to worry, I will know when it is the right time to stop planting.";
+ next;
+ delitem "BottleOfWater", @water_amount;
+ delitem "GrassSeed", @seeds_amount;
+ set FLAGS, FLAGS | FLAG_ANDRA_HELPED;
+ mes "Andra pours some water in a lot of different places and then throws some seeds to the sky. The wind carries some of them really far from her.";
+ close2;
+
+L_PreSummon:
+ set $@andra_status, 1;
+ set $@farmer$, strcharinfo(0);
+ startnpctimer;
+ end;
+
+OnTimer1000:
+ set $@plant_id, rand(1029,1032);
+ areamonster "008-1.gat",44,18,135,46,"plant",$@plant_id,$@PLANTS_PER_SEED, "Andra::OnPlantDeath";
+ attachrid(getcharid(3,$@farmer$));
+ message strcharinfo(0), "Andra: I think some plants will grow almost instantly! Just Watch...";
+ set $@spawned_plants, $@spawned_plants + $@PLANTS_PER_SEED;
+ end;
+
+OnTimer3000:
+ set $@plant_id, rand(1029,1032);
+ areamonster "008-1.gat",44,18,135,46,"plant",$@plant_id,$@PLANTS_PER_SEED, "Andra::OnPlantDeath";
+ set $@spawned_plants, $@spawned_plants + $@PLANTS_PER_SEED;
+ end;
+
+OnTimer5000:
+ set $@plant_id, rand(1029,1032);
+ areamonster "008-1.gat",44,18,135,46,"plant",$@plant_id,$@PLANTS_PER_SEED, "Andra::OnPlantDeath";
+ set $@spawned_plants, $@spawned_plants + $@PLANTS_PER_SEED;
+ end;
+
+OnTimer7000:
+ set $@plant_id, rand(1029,1032);
+ areamonster "008-1.gat",44,18,135,46,"plant",$@plant_id,$@PLANTS_PER_SEED, "Andra::OnPlantDeath";
+ attachrid(getcharid(3,$@farmer$));
+ message strcharinfo(0), "Andra: Good... Just take a walk and you will be able to see how your seeds turned into some nice looking plants.";
+ set $@spawned_plants, $@spawned_plants + $@PLANTS_PER_SEED;
+ set $@andra_status, 0;
+ set $@farmer$, "";
+ setnpctimer 0;
+ stopnpctimer;
+ end;
+
+L_Return:
+ mes "[Andra]";
+ mes "\"Hi " + strcharinfo(0) + ", good to see you! You came back to help me again?\"";
+ next;
+ menu
+ "Yes, and I already have the seeds and the water.", -,
+ "No, I just wanted to say hello.", L_Bye;
+ if ($@spawned_plants >= $@MAX_GLOBAL_PLANTS) goto L_Gather;
+ if (countitem("BottleOfWater") < @water_amount || countitem("GrassSeed") < @seeds_amount) goto L_NotEnough;
+ delitem "BottleOfWater", @water_amount;
+ delitem "GrassSeed", @seeds_amount;
+ mes "Andra pours some water in a lot of different places and then throws the seeds to the sky. The wind carries some of them really far from her.";
+ close2;
+ goto L_PreSummon;
+
+OnPlantDeath:
+ set $@spawned_plants, $@spawned_plants - 1;
+ end;
+
+L_NotEnough:
+ mes "[Andra]";
+ mes "\"Sorry, but you don't have the items I need... Please, come back when you have them.\"";
+ close;
+
+L_Gather:
+ mes "[Andra]";
+ mes "\"Look at all those plants! I think we shoudn't plant more seeds until someone gather those herbs...\"";
+ close;
+
+L_Bye:
+ mes "[Andra]";
+ mes "\"Oh, you are a nice person... Thanks!\"";
+ close;
+
+L_Busy:
+ mes "[Andra]";
+ mes "\"Ok, I understand. Come back if have some free time!\"";
+ close;
+
+L_DislikePlants:
+ mes "[Andra]";
+ mes "\"Really? How can someone dislike plants and trees? What a strange thing...\"";
+ close;
+
+L_Planting:
+ mes "[Andra]";
+ mes "\"Sorry, I can't talk right now. I am planting some seeds " + $@farmer$ + " gave me.\"";
+ close;
+
+L_Close:
+ close;
+
+L_TooYoung:
+ mes "[Andra]";
+ mes "\"I'm sorry, I can't talk right now. I am really busy with those trees! If you feel like talking, maybe you should come back later.\"";
+ close;
+
+OnInit:
+ set $@PLANTS_PER_SEED, 3;
+ set $@MAX_GLOBAL_PLANTS, 100; // You can plant only if the amount of plants currently in the map is < than this value.
+ initnpctimer;
+ stopnpctimer;
+}
diff --git a/npc/008-1_Hurnscald_outskirts/diryn.txt b/npc/008-1/diryn.txt
index c5ab21a4..c5ab21a4 100644
--- a/npc/008-1_Hurnscald_outskirts/diryn.txt
+++ b/npc/008-1/diryn.txt
diff --git a/npc/008-1_Hurnscald_outskirts/dock.txt b/npc/008-1/dock.txt
index 46aa5a92..46aa5a92 100644
--- a/npc/008-1_Hurnscald_outskirts/dock.txt
+++ b/npc/008-1/dock.txt
diff --git a/npc/008-1_Hurnscald_outskirts/george.txt b/npc/008-1/george.txt
index 429fdbca..429fdbca 100644
--- a/npc/008-1_Hurnscald_outskirts/george.txt
+++ b/npc/008-1/george.txt
diff --git a/npc/008-1_Hurnscald_outskirts/hinnak.txt b/npc/008-1/hinnak.txt
index 4d17310c..4d17310c 100644
--- a/npc/008-1_Hurnscald_outskirts/hinnak.txt
+++ b/npc/008-1/hinnak.txt
diff --git a/npc/008-1_Hurnscald_outskirts/_import.txt b/npc/008-1_Hurnscald_outskirts/_import.txt
deleted file mode 100644
index 6520f76d..00000000
--- a/npc/008-1_Hurnscald_outskirts/_import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 008-1.gat
-npc: npc/008-1_Hurnscald_outskirts/_mobs.txt
-npc: npc/008-1_Hurnscald_outskirts/_warps.txt
-npc: npc/008-1_Hurnscald_outskirts/andra.txt
-npc: npc/008-1_Hurnscald_outskirts/diryn.txt
-npc: npc/008-1_Hurnscald_outskirts/dock.txt
-npc: npc/008-1_Hurnscald_outskirts/george.txt
-npc: npc/008-1_Hurnscald_outskirts/hinnak.txt
diff --git a/npc/008-1_Hurnscald_outskirts/andra.txt b/npc/008-1_Hurnscald_outskirts/andra.txt
deleted file mode 100644
index e56cbbf5..00000000
--- a/npc/008-1_Hurnscald_outskirts/andra.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-
-008-1.gat,36,26,0 script Andra 201,{
- mes "[Andra]";
- mes "\"Hello, my name is Andra, what's yours?\"";
- next;
- input @name$;
-
- mes "[Andra]";
- mes "\"Hello, " + @name$ + "! What is your favorite number?\"";
- next;
- input @num;
-
- if (@num == 5) goto L_Same;
-
- mes "[Andra]";
- mes "\"I don't like that one.\"";
- close;
-
-L_Same:
- mes "[Andra]";
- mes "\"Mine too!\"";
- close;
-}
diff --git a/npc/009-1/_import.txt b/npc/009-1/_import.txt
new file mode 100644
index 00000000..cfd187fb
--- /dev/null
+++ b/npc/009-1/_import.txt
@@ -0,0 +1,13 @@
+// Map 009-1: Hurnscald
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 009-1.gat
+npc: npc/009-1/_mobs.txt
+npc: npc/009-1/_warps.txt
+npc: npc/009-1/jack.txt
+npc: npc/009-1/mapflags.txt
+npc: npc/009-1/milly.txt
+npc: npc/009-1/old_man.txt
+npc: npc/009-1/old_woman.txt
+npc: npc/009-1/sabine.txt
+npc: npc/009-1/soul-menhir.txt
+npc: npc/009-1/water_pump.txt
diff --git a/npc/009-1_Hurnscald/_mobs.txt b/npc/009-1/_mobs.txt
index 52cbcf86..629d177e 100644
--- a/npc/009-1_Hurnscald/_mobs.txt
+++ b/npc/009-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-1 Hurnscald mobs
+// Hurnscald mobs
009-1.gat,74,32,2,1 monster Clover patch 1037,1,100000,120000,Mob009-1::On1037
009-1.gat,29,44,9,13 monster PinkFlower 1014,2,0,250,Mob009-1::On1014
diff --git a/npc/009-1_Hurnscald/_warps.txt b/npc/009-1/_warps.txt
index 37b6ac14..c8a7fad7 100644
--- a/npc/009-1_Hurnscald/_warps.txt
+++ b/npc/009-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-1 Hurnscald warps
+// Hurnscald warps
009-1.gat,49,55 warp HurnscaldSouthGate 2,-1,008-1.gat,78,82
009-1.gat,97,36 warp HurnscaldEastGate -1,0,008-1.gat,129,60
diff --git a/npc/009-1_Hurnscald/jack.txt b/npc/009-1/jack.txt
index a0ee0b43..a0ee0b43 100644
--- a/npc/009-1_Hurnscald/jack.txt
+++ b/npc/009-1/jack.txt
diff --git a/npc/009-1_Hurnscald/mapflags.txt b/npc/009-1/mapflags.txt
index f435d5d7..f435d5d7 100644
--- a/npc/009-1_Hurnscald/mapflags.txt
+++ b/npc/009-1/mapflags.txt
diff --git a/npc/009-1_Hurnscald/milly.txt b/npc/009-1/milly.txt
index 2935d314..2935d314 100644
--- a/npc/009-1_Hurnscald/milly.txt
+++ b/npc/009-1/milly.txt
diff --git a/npc/009-1_Hurnscald/old_man.txt b/npc/009-1/old_man.txt
index 84079138..84079138 100644
--- a/npc/009-1_Hurnscald/old_man.txt
+++ b/npc/009-1/old_man.txt
diff --git a/npc/009-1_Hurnscald/old_woman.txt b/npc/009-1/old_woman.txt
index c48b3557..c48b3557 100644
--- a/npc/009-1_Hurnscald/old_woman.txt
+++ b/npc/009-1/old_woman.txt
diff --git a/npc/009-1_Hurnscald/sabine.txt b/npc/009-1/sabine.txt
index b8a45859..b8a45859 100644
--- a/npc/009-1_Hurnscald/sabine.txt
+++ b/npc/009-1/sabine.txt
diff --git a/npc/009-1_Hurnscald/soul-menhir.txt b/npc/009-1/soul-menhir.txt
index 5daadd23..5daadd23 100644
--- a/npc/009-1_Hurnscald/soul-menhir.txt
+++ b/npc/009-1/soul-menhir.txt
diff --git a/npc/009-1_Hurnscald/water_pump.txt b/npc/009-1/water_pump.txt
index 42c36d64..42c36d64 100644
--- a/npc/009-1_Hurnscald/water_pump.txt
+++ b/npc/009-1/water_pump.txt
diff --git a/npc/009-1_Hurnscald/_import.txt b/npc/009-1_Hurnscald/_import.txt
deleted file mode 100644
index 60e95cd4..00000000
--- a/npc/009-1_Hurnscald/_import.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 009-1.gat
-npc: npc/009-1_Hurnscald/_mobs.txt
-npc: npc/009-1_Hurnscald/_warps.txt
-npc: npc/009-1_Hurnscald/jack.txt
-npc: npc/009-1_Hurnscald/mapflags.txt
-npc: npc/009-1_Hurnscald/milly.txt
-npc: npc/009-1_Hurnscald/old_man.txt
-npc: npc/009-1_Hurnscald/old_woman.txt
-npc: npc/009-1_Hurnscald/sabine.txt
-npc: npc/009-1_Hurnscald/soul-menhir.txt
-npc: npc/009-1_Hurnscald/water_pump.txt
diff --git a/npc/009-2/_import.txt b/npc/009-2/_import.txt
new file mode 100644
index 00000000..5289780c
--- /dev/null
+++ b/npc/009-2/_import.txt
@@ -0,0 +1,23 @@
+// Map 009-2: Hurnscald
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 009-2.gat
+npc: npc/009-2/_mobs.txt
+npc: npc/009-2/_warps.txt
+npc: npc/009-2/airlia.txt
+npc: npc/009-2/alan.txt
+npc: npc/009-2/doctor.txt
+npc: npc/009-2/drunks.txt
+npc: npc/009-2/inspector.txt
+npc: npc/009-2/kfahr.txt
+npc: npc/009-2/lena.txt
+npc: npc/009-2/mapflags.txt
+npc: npc/009-2/misc.txt
+npc: npc/009-2/nicholas.txt
+npc: npc/009-2/nurse.txt
+npc: npc/009-2/olana.txt
+npc: npc/009-2/peter.txt
+npc: npc/009-2/richard.txt
+npc: npc/009-2/selim.txt
+npc: npc/009-2/shops.txt
+npc: npc/009-2/waitress.txt
+npc: npc/009-2/wyara.txt
diff --git a/npc/009-2_Hurnscald/_mobs.txt b/npc/009-2/_mobs.txt
index 1633168d..5ce2976c 100644
--- a/npc/009-2_Hurnscald/_mobs.txt
+++ b/npc/009-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-2 Hurnscald mobs
+// Hurnscald mobs
diff --git a/npc/009-2_Hurnscald/_warps.txt b/npc/009-2/_warps.txt
index 8ab2526b..647db1a4 100644
--- a/npc/009-2_Hurnscald/_warps.txt
+++ b/npc/009-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-2 Hurnscald warps
+// Hurnscald warps
009-2.gat,75,23 warp To1stFloor 0,-1,009-2.gat,73,46
009-2.gat,95,30 warp ToOutdoor -1,-1,009-1.gat,59,34
diff --git a/npc/009-2_Hurnscald/airlia.txt b/npc/009-2/airlia.txt
index 3f65a955..5ccaea3f 100644
--- a/npc/009-2_Hurnscald/airlia.txt
+++ b/npc/009-2/airlia.txt
@@ -165,7 +165,7 @@ L_Airlia_intro_fight:
L_Airlia_intro_proof:
mes "[Airlia]";
- mes "\"Let's say " + @FETCH_AMOUNT_INITIAL + " [" + getitemname(@FETCH_LABEL_INITIAL$) + "]s. You don't know how much this means to me, thank you.\"";
+ mes "\"Let's say " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s. You don't know how much this means to me, thank you.\"";
set QUEST_Airlia, @Q_STATUS_HELP_AIRLIA;
close;
@@ -182,13 +182,13 @@ L_Fetch:
if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER)
menu
"You are welcome.", -,
- "I have collected the " + @FETCH_AMOUNT_INITIAL + " [" + getitemname(@FETCH_LABEL_INITIAL$) + "]s.", L_Fetch_initial_reward;
+ "I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
"You are welcome.", -,
"I have another letter from your father.", L_Caretaker_later_rewards,
- "I have collected the " + @FETCH_AMOUNT_INITIAL + " [" + getitemname(@FETCH_LABEL_INITIAL$) + "]s.", L_Fetch_initial_reward;
+ "I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
// The following checks are REDUNDANT
// The only way to get to this lable is after a check for QUEST_Airlia == @Q_STATUS_HELP_AIRLIA
@@ -199,12 +199,12 @@ L_Fetch:
//if (QUEST_Airlia < @Q_STATUS_INITIAL_FETCH_REWARDED)
// menu
// "You are welcome.", -,
- // "I have collected the " + @FETCH_AMOUNT_INITIAL + " [" + getitemname(@FETCH_LABEL_INITIAL$) + "]s.", L_Fetch_initial_reward;
+ // "I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
//
//if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED)
// menu
// "You are welcome.", -,
- // "I have collected the " + @FETCH_AMOUNT + " [" + getitemname(@FETCH_LABEL$) + "]s.", L_Fetch_later_rewards;
+ // "I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
close;
@@ -256,13 +256,13 @@ L_Rewarded:
if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER)
menu
"You are welcome.", -,
- "I have collected the " + @FETCH_AMOUNT + " [" + getitemname(@FETCH_LABEL$) + "]s.", L_Fetch_later_rewards;
+ "I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
"You are welcome.", -,
"I have another letter from your father.", L_Caretaker_later_rewards,
- "I have collected the " + @FETCH_AMOUNT + " [" + getitemname(@FETCH_LABEL$) + "]s.", L_Fetch_later_rewards;
+ "I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
close;
}
diff --git a/npc/009-2_Hurnscald/alan.txt b/npc/009-2/alan.txt
index f19990d9..f19990d9 100644
--- a/npc/009-2_Hurnscald/alan.txt
+++ b/npc/009-2/alan.txt
diff --git a/npc/009-2_Hurnscald/doctor.txt b/npc/009-2/doctor.txt
index 2fbfcbd1..2fbfcbd1 100644
--- a/npc/009-2_Hurnscald/doctor.txt
+++ b/npc/009-2/doctor.txt
diff --git a/npc/009-2_Hurnscald/drunks.txt b/npc/009-2/drunks.txt
index 61246b4e..61246b4e 100644
--- a/npc/009-2_Hurnscald/drunks.txt
+++ b/npc/009-2/drunks.txt
diff --git a/npc/009-2_Hurnscald/inspector.txt b/npc/009-2/inspector.txt
index f25d026a..f25d026a 100644
--- a/npc/009-2_Hurnscald/inspector.txt
+++ b/npc/009-2/inspector.txt
diff --git a/npc/009-2_Hurnscald/kfahr.txt b/npc/009-2/kfahr.txt
index 88438b40..88438b40 100644
--- a/npc/009-2_Hurnscald/kfahr.txt
+++ b/npc/009-2/kfahr.txt
diff --git a/npc/009-2_Hurnscald/lena.txt b/npc/009-2/lena.txt
index 9f215cde..23f0e165 100644
--- a/npc/009-2_Hurnscald/lena.txt
+++ b/npc/009-2/lena.txt
@@ -27,7 +27,7 @@ L_Lena_Start:
L_Lena_Approves:
set TMW_Quest, 41;
mes "[Lena]";
- mes "\"You look like you can handle yourself in a fight. If you can take on this scourge I'll reward you with a hat like mine. In order to prove your mettle, bring me 10 [Bandit Hood]s so I know they've met their match.\"";
+ mes "\"You look like you can handle yourself in a fight. If you can take on this scourge I'll reward you with a hat like mine. In order to prove your mettle, bring me 10 Bandit Hoods so I know they've met their match.\"";
areamonster "008-1.gat",25,60,40,65,"Bandit",1064,3, "::";
areamonster "011-1.gat",35,40,65,60,"Bandit",1064,3, "::";
close;
@@ -45,7 +45,7 @@ L_Lena_Fairy_Hat:
delitem "BanditHood", 10;
getitem "FairyHat", 1;
mes "[Lena]";
- mes "\"Ah, you've brought me the [Bandit Hood]s. As promised, here is a hat like mine.\"";
+ mes "\"Ah, you've brought me the Bandit Hoods. As promised, here is a hat like mine.\"";
next;
mes "\"Unfortunately, I feel this bandit threat may have grown. Perhaps they are being lead? I noticed many of them seem to hang around a cave just west of Hurnscald. If you could defeat their leader I know they will become less of a threat to Hurnscald. I'll reward you with armor like mine if you do. Sound like something you could do?\"";
menu
@@ -55,7 +55,7 @@ L_Lena_Fairy_Hat:
L_Lena_NotEnough:
mes "[Lena]";
- mes "\"You don't have enough [Bandit Hood]s to prove you are taking care of this threat. Please come back with 10 [Bandit Hood]s to show you are taking care of these bandits.\"";
+ mes "\"You don't have enough Bandit Hoods to prove you are taking care of this threat. Please come back with 10 Bandit Hoods to show you are taking care of these bandits.\"";
close;
L_Lena_Bandit_Leader:
diff --git a/npc/009-2_Hurnscald/mapflags.txt b/npc/009-2/mapflags.txt
index 84ee64b6..84ee64b6 100644
--- a/npc/009-2_Hurnscald/mapflags.txt
+++ b/npc/009-2/mapflags.txt
diff --git a/npc/009-2_Hurnscald/misc.txt b/npc/009-2/misc.txt
index b969af7d..b969af7d 100644
--- a/npc/009-2_Hurnscald/misc.txt
+++ b/npc/009-2/misc.txt
diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2/nicholas.txt
index ac0b5e43..9ce99879 100644
--- a/npc/009-2_Hurnscald/nicholas.txt
+++ b/npc/009-2/nicholas.txt
@@ -36,7 +36,7 @@
set @Q_SHIELD_status, (QUEST_Forestbow_state & @Q_SHIELD_MASK) >> @Q_SHIELD_SHIFT;
mes "[Nicholas]";
- mes "\"Hello, there! I'm an expert blacksmith. If you get me some [Coal] and [Iron Ingot]s, I could make you a very valuable shield or helmet.\"";
+ mes "\"Hello, there! I'm an expert blacksmith. If you get me some Coal and Iron Ingots, I could make you a very valuable shield or helmet.\"";
next;
menu
"I have Iron Ingots!", L_Check,
@@ -54,10 +54,10 @@ L_Check:
L_Info:
mes "[Nicholas]";
- mes "\"You can find [Coal] and [Iron Ore] in mines. Once you have [Coal] and [Iron Ore], find a smith that will smelt the [Iron Ore] and cast them into [Iron Ingot]s.\"";
+ mes "\"You can find Coal and Iron Ore in mines. Once you have Coal and Iron Ore, find a smith that will smelt the Iron Ore and cast them into Iron Ingots.\"";
next;
mes "[Nicholas]";
- mes "\"Come back here with some [Coal] and [Iron Ingot]s, and I'll make something nice for you.\"";
+ mes "\"Come back here with some Coal and Iron Ingots, and I'll make something nice for you.\"";
close;
L_Pass:
@@ -67,13 +67,13 @@ L_Pass:
L_StageA:
mes "[Nicholas]";
- mes "\"That's just enough for me to make you a winged [Knight's Helmet], but it'll cost you 10,000GP, 6 [Coal] and 3 [Iron Ingot]s.\"";
+ mes "\"That's just enough for me to make you a winged Knight's Helmet, but it'll cost you 10,000GP, 6 Coal and 3 Iron Ingots.\"";
next;
goto L_main_menu;
L_StageB:
mes "[Nicholas]";
- mes "\"Ahh, with that much [Coal] and [Iron Ingot]s I can make you one of two helmets, for only 10,000GP, or I can make you a shield, for 20,000GP.\"";
+ mes "\"Ahh, with that much Coal and Iron Ingots I can make you one of two helmets, for only 10,000GP, or I can make you a shield, for 20,000GP.\"";
mes "";
mes "\"What would you like?\"";
next;
@@ -158,7 +158,7 @@ L_no_more_helmets:
L_NoItem:
mes "[Nicholas]";
- mes "\"It appears you don't have enough [Coal] and [Iron Ingot]s for me to work with. Please do come back when you have more, though.\"";
+ mes "\"It appears you don't have enough Coal and Iron Ingots for me to work with. Please do come back when you have more, though.\"";
close;
L_ComeBack:
@@ -206,7 +206,7 @@ L_YesWarlord:
L_YesShield:
mes "[Nicholas]";
- mes "Nicholas examines your [Iron Ingot]s.";
+ mes "Nicholas examines your Iron Ingots.";
mes "\"No, this iron is too brittle; for something as large as a shield I need to mix in softer iron. Can I see if you have anything suitable?\"";
next;
@@ -217,8 +217,8 @@ L_YesShield:
if (countitem("InfantryHelmet") == 0) goto L_NoInfantry;
mes "[Nicholas]";
- mes "Nicholas pulls out two of your [Infantry Helmet]s.";
- mes "\"I can use those... yes, that should work. Now all I need is a [Leather Patch] for the handle, and 20,000 GP.\"";
+ mes "Nicholas pulls out two of your Infantry Helmets.";
+ mes "\"I can use those... yes, that should work. Now all I need is a Leather Patch for the handle, and 20,000 GP.\"";
if (@Q_SHIELD_status < @SHIELD_KNOWS_PATCH)
set @Q_SHIELD_status, @SHIELD_KNOWS_PATCH;
@@ -239,7 +239,7 @@ L_YesShield:
mes "[Nicholas]";
mes "\"Yes, it looks as if you have all that is needed!\"";
- mes "You watch Nicholas melt the ingots and helmets and form a shield out of the resulting iron. He then cuts your [Leather Patch] apart and adds it to the handles.";
+ mes "You watch Nicholas melt the ingots and helmets and form a shield out of the resulting iron. He then cuts your Leather Patch apart and adds it to the handles.";
mes "\"Here is your shield!\"";
delitem "InfantryHelmet", 1;
@@ -267,27 +267,27 @@ L_ShieldNoZeny:
L_ShieldNoInfantry:
mes "[Nicholas]";
- mes "\"Now this is strange... I could have sworn that you had two [Infantry Helmet]s right here. Well, come back if you have some more!\"";
+ mes "\"Now this is strange... I could have sworn that you had two Infantry Helmets right here. Well, come back if you have some more!\"";
close;
L_ShieldNoIngot:
mes "[Nicholas]";
- mes "\"How odd... didn't I put your [Iron Ingot]s on the table right here? Well, I will need them back to make the shield.\"";
+ mes "\"How odd... didn't I put your Iron Ingots on the table right here? Well, I will need them back to make the shield.\"";
close;
L_ShieldNoCoal:
mes "[Nicholas]";
- mes "\"How odd... didn't I put your [Coal] on the table right here? Well, I will need it back to make the shield.\"";
+ mes "\"How odd... didn't I put your Coal on the table right here? Well, I will need it back to make the shield.\"";
close;
L_ShieldNoLeatherPatch:
mes "[Nicholas]";
- mes "\"You don't have a suitable [Leather Patch]. I'm sorry, but a shield without one would chafe terribly.\"";
+ mes "\"You don't have a suitable Leather Patch. I'm sorry, but a shield without one would chafe terribly.\"";
close;
L_MoreInfantry:
mes "[Nicholas]";
- mes "Nicholas takes your [Infantry Helmet] and examines it.";
+ mes "Nicholas takes your Infantry Helmet and examines it.";
mes "\"Yes, this is perfect! If you can bring me another one of those, I can make your shield.\"";
close;
@@ -307,7 +307,7 @@ L_SetzerQuest:
mes "[Nicholas]";
if (@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER)
mes "\"Another one? Sure, why not.\"";
- mes "Nicholas examines your [Short Sword], then nods.";
+ mes "Nicholas examines your Short Sword, then nods.";
mes "\"This is good quality. I can make something special out of it, with three ingot bars of iron, six lumps of coal and 50,000 GP -- but I will also need a potion of monster oil.\"";
if (@Q_SETZER_status < @SETZER_KNOWS_OIL)
set @Q_SETZER_status, @SETZER_KNOWS_OIL;
@@ -344,7 +344,7 @@ L_SetzerQuest:
mes "[Nicholas]";
mes "Nicholas hands you the completed sword. It feels strangely light in your hands.";
- mes "\"I made it lighter and faster, it should also cut a little better now. This kind of sword is called a [Setzer], after a famous gambler who invented it as a weapon in between a knife and a sword.\"";
+ mes "\"I made it lighter and faster, it should also cut a little better now. This kind of sword is called a Setzer, after a famous gambler who invented it as a weapon in between a knife and a sword.\"";
next;
mes "[Nicholas]";
@@ -373,7 +373,7 @@ L_SetzerNoMonsterOil:
L_SetzerNoSword:
mes "[Nicholas]";
- mes "\"I will need your old [Short Sword] as a basis. Please bring it to me first.\"";
+ mes "\"I will need your old Short Sword as a basis. Please bring it to me first.\"";
close;
L_end:
diff --git a/npc/009-2_Hurnscald/nurse.txt b/npc/009-2/nurse.txt
index a47fdf95..a47fdf95 100644
--- a/npc/009-2_Hurnscald/nurse.txt
+++ b/npc/009-2/nurse.txt
diff --git a/npc/009-2/olana.txt b/npc/009-2/olana.txt
new file mode 100644
index 00000000..b0471a3f
--- /dev/null
+++ b/npc/009-2/olana.txt
@@ -0,0 +1,198 @@
+009-2.gat,123,45,0 script Olana 140,{
+
+ if (FLAGS & FLAG_ROSSI_COMPLETED) goto L_FinalEnd;
+ if (Rossy_Quest == 17 || Rossy_Quest == 18) goto L_End;
+ if (Rossy_Quest >= 14 && Rossy_Quest <= 16) goto L_Julia;
+ if (Rossy_Quest == 13) goto L_Best;
+ if (Rossy_Quest == 12) goto L_Give;
+ if (Rossy_Quest == 11) goto L_Allergic;
+ if (Rossy_Quest == 10) goto L_BringRose;
+ if (Rossy_Quest == 9) goto L_RC;
+ if (Rossy_Quest == 8) goto L_RL;
+ if (Rossy_Quest >= 6 && Rossy_Quest < 8) goto L_BL;
+ if (Rossy_Quest == 5) goto L_Bring;
+ if (Rossy_Quest == 4) goto L_Cont;
+ if (Rossy_Quest == 3) goto L_See;
+ if (Rossy_Quest == 2) goto L_Daughter;
+
+ mes "[Olana]";
+ mes "\"I come from Tulimshar to Hurnscald for vacation with my two young daughters, Rossy and Julia. I already have been to Hurnscald once and felt quite safe in ths area.\"";
+ next;
+ mes "\"I let my two lovely girls play in the woods near by but they still didn't came back!\"";
+ next;
+ mes "\"Please go and have a look in the forest near the swamps and come back to see me when you'll find them.\"";
+ close;
+
+L_Daughter:
+ mes "[Olana]";
+ mes "\"I come from Tulimshar to Hurnscald for vacation with my two young daughters, Rossy and Julia. I already have been to Hurnscald once and felt quite safe in ths area.\"";
+ mes "\"I let my two lovely girls play in the woods near by but they still didn't came back!\"";
+ next;
+ mes "*Olana begins to sobb...*";
+ next;
+ menu
+ "Wait, I saw Rossy, she is fine.", L_Help,
+ "Wait a bit, I'm sure they'll both get back soon.", L_No;
+
+L_No:
+ close;
+
+L_Help:
+ mes "[Olana]";
+ mes "\"Oh yes? Is Rossy alright? That's good. I'm relieved. I hope she'll find Julia soon.\"";
+ next;
+ mes "\"Oh by the way, I would need your help myself too. I think Rossy colected some cherries while she was in the woods, could you bring me them please?.\"";
+ menu
+ "Sure, I'll be back with cherries.", L_Set,
+ "Sorry, I'm too busy.", L_No;
+
+L_Set:
+ mes "[Olana]";
+ set Rossy_Quest, 3;
+ mes "\"I'd like 10 Cherries.\"";
+ close;
+
+L_Get:
+ mes "[Olana]";
+ mes "\"Please, get 10 cherries for me.\"";
+ close;
+
+L_See:
+ if(countitem("cherry") < 10) goto L_Get;
+ mes "[Olana]";
+ set Rossy_Quest, 4;
+ mes "\"You got them for me! Thank you! Here you are... a small reward from me for your precious help!\"";
+ delitem "cherry", 10;
+ getexp 1000, 0;
+ set zeny, zeny + 1000;
+ goto L_Task;
+
+L_Task:
+ mes "[Olana]";
+ mes "\"It seems I have another task for you, would you like to help me again?\"";
+ menu
+ "Sure, tell me about it.", L_Cont,
+ "No, sorry, I'm busy.", L_No;
+
+L_Cont:
+ mes "[Olana]";
+ mes "\"Can you give this letter to my little daughter please? Her teacher asked me to do it, but I can't walk, my knees...\"";
+ menu
+ "Of course I can. Hand me the letter, I'll give it to Rossy as soon as I see her.", L_Let,
+ "No, sorry, I'm not interested in that sort of task. Hand it to her yourself.", L_No;
+
+L_Let:
+ mes "[Olana]";
+ set Rossy_Quest, 5;
+ mes "\"Please bring it to her as fast as you can, she really needs to know this news!\"";
+ close;
+
+L_Bring:
+ mes "[Olana]";
+ mes "\"Bring this letter to my daughter as fast as you can, please!\"";
+ close;
+
+L_BL:
+ mes "[Olana]";
+ mes "\"Good, now she remembers that she needs to craft a potion! Please, "+ strcharinfo(0) +", help Rossy, she will tell you what to do.\"";
+ close;
+
+L_Done:
+ mes "[Olana]";
+ mes "\"Thanks you "+ strcharinfo(0) +", I and Rossy will never forget what you did for us!\"";
+ goto L_Rose;
+
+L_Rose:
+ mes "[Olana]";
+ mes "\"I would like congratulate my daughter, Rossy, would you help me?\"";
+ menu
+ "Just tell me what to do.", L_RL,
+ "No, I'm busy, maybe later.", L_No;
+
+L_RL:
+ mes "[Olana]";
+ set Rossy_Quest, 9;
+ mes "\"Can you bring me 15 [Red Rose]s? I would like to give them to my daughter because she succesfully made her potion!\"";
+ menu
+ "Ok, I will be back with these.", L_RG,
+ "I'm allergic to roses, can't even touch them. Sorry.", L_No;
+
+L_RG:
+ mes "[Olana]";
+ mes "\"Please, bring me 15 [Red Rose]s as soon as you can.\"";
+ close;
+
+L_RC:
+ if(countitem("redrose") < 15) goto L_RG;
+ mes "[Olana]";
+ set Rossy_Quest, 10;
+ mes "\"Great job! Please hand them to my brilliant daughter, Rossy.\"";
+ close;
+
+L_BringRose:
+ mes "[Olana]";
+ mes "\"Now please hand them to my brilliant daughter, Rossy.\"";
+ close;
+
+L_Allergic:
+ mes "[Olana]";
+ set Rossy_Quest, 12;
+ mes "\"Did she like my present?\"";
+ menu
+ "Sure she did...", L_No,
+ "Well, you should of known that your daughter is allergic to roses.", -;
+ mes "[Olana]";
+ mes "\"How stupid I am! Here, take some of my money and buy [Red Tulip]s instead, about the same amount. Keep the flowers.\"";
+ set zeny, zeny + 1500;
+ next;
+ mes "\"I want Rossy to be happy and to forgive me for my stupidity.\"";
+ menu
+ "I will give her the tulips when I'll see her.", -;
+ mes "[Olana]";
+ mes "\"And don't forget to tell her that I'm really sorry.\"";
+ close;
+
+L_Give:
+ mes "[Olana]";
+ mes "\""+ strcharinfo(0) +", please, get 15 [Red Tulip]s and hand them to Rossy. Don't forget to tell her that I'm really sorry for the mistake I did.\"";
+ close;
+
+L_Best:
+ mes "[Olana]";
+ mes "\"Thank you for your help "+ strcharinfo(0) +"!\"";
+ close;
+
+L_Julia:
+ mes "[Olana]";
+ mes "\"Where is Julia? I want to know where she is! Go and find her please "+ strcharinfo(0) +"!\"";
+ close;
+
+L_End:
+ mes "[Olana]";
+ mes "\"Where is Julia? I want to know where she is! Go and find her please "+ strcharinfo(0) +"!\"";
+ menu
+ "She'll be back soon, trust me, I saved her from an evil spirit.", L_Found,
+ "I didn't saw her yet, sorry.", L_No;
+
+L_Found:
+ mes "[Olana]";
+ if (Rossy_Quest == 17) set Rossy_Quest, 18;
+ if (Rossy_Quest == 18) set Rossy_Quest, 19;
+ mes "\"Thank you "+ strcharinfo(0) +", thank you! Here is a reward for you.\"";
+ getexp 5000, 0;
+ set zeny, zeny + 5000;
+ if (Rossy_Quest == 19) goto L_Clear;
+ close;
+
+L_Clear:
+ set Rossy_Quest, 0;
+ set cavefights, 0;
+ set FLAGS, FLAGS | FLAG_ROSSI_COMPLETED;
+ close;
+
+L_FinalEnd:
+ mes "[Olana]";
+ mes "*The mother is calmly waiting her daughters to come back for diner.*";
+ close;
+
+}
diff --git a/npc/009-2_Hurnscald/peter.txt b/npc/009-2/peter.txt
index 995bfc31..11d9931d 100644
--- a/npc/009-2_Hurnscald/peter.txt
+++ b/npc/009-2/peter.txt
@@ -5,7 +5,7 @@
mes "[Peter]";
mes "\"Hello, I am Peter, apprentice to Nicholas.\"";
next;
- mes "\"I can make you some sturdy armor: you must give me [Iron Ingot]s to craft with and some gold pieces for my efforts.\"";
+ mes "\"I can make you some sturdy armor: you must give me Iron Ingots to craft with and some gold pieces for my efforts.\"";
next;
mes "[Peter]";
mes "\"What would you like me to make?\"";
@@ -69,7 +69,7 @@ L_Peter_NotEnough_Ingot:
L_Peter_NotEnough_Coal:
mes "[Peter]";
- mes "\"You don't have enough [Coal].\"";
+ mes "\"You don't have enough Coal.\"";
close;
L_Peter_TooMany:
diff --git a/npc/009-2_Hurnscald/richard.txt b/npc/009-2/richard.txt
index 023f1244..023f1244 100644
--- a/npc/009-2_Hurnscald/richard.txt
+++ b/npc/009-2/richard.txt
diff --git a/npc/009-2_Hurnscald/selim.txt b/npc/009-2/selim.txt
index dc7d29df..dc7d29df 100644
--- a/npc/009-2_Hurnscald/selim.txt
+++ b/npc/009-2/selim.txt
diff --git a/npc/009-2_Hurnscald/shops.txt b/npc/009-2/shops.txt
index 733fa54f..733fa54f 100644
--- a/npc/009-2_Hurnscald/shops.txt
+++ b/npc/009-2/shops.txt
diff --git a/npc/009-2_Hurnscald/waitress.txt b/npc/009-2/waitress.txt
index 265cd234..265cd234 100644
--- a/npc/009-2_Hurnscald/waitress.txt
+++ b/npc/009-2/waitress.txt
diff --git a/npc/009-2_Hurnscald/wyara.txt b/npc/009-2/wyara.txt
index 145f09a5..145f09a5 100644
--- a/npc/009-2_Hurnscald/wyara.txt
+++ b/npc/009-2/wyara.txt
diff --git a/npc/009-2_Hurnscald/_import.txt b/npc/009-2_Hurnscald/_import.txt
deleted file mode 100644
index 6f52cf7c..00000000
--- a/npc/009-2_Hurnscald/_import.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 009-2.gat
-npc: npc/009-2_Hurnscald/_mobs.txt
-npc: npc/009-2_Hurnscald/_warps.txt
-npc: npc/009-2_Hurnscald/airlia.txt
-npc: npc/009-2_Hurnscald/alan.txt
-npc: npc/009-2_Hurnscald/doctor.txt
-npc: npc/009-2_Hurnscald/drunks.txt
-npc: npc/009-2_Hurnscald/inspector.txt
-npc: npc/009-2_Hurnscald/kfahr.txt
-npc: npc/009-2_Hurnscald/lena.txt
-npc: npc/009-2_Hurnscald/mapflags.txt
-npc: npc/009-2_Hurnscald/misc.txt
-npc: npc/009-2_Hurnscald/nicholas.txt
-npc: npc/009-2_Hurnscald/nurse.txt
-npc: npc/009-2_Hurnscald/peter.txt
-npc: npc/009-2_Hurnscald/richard.txt
-npc: npc/009-2_Hurnscald/selim.txt
-npc: npc/009-2_Hurnscald/shops.txt
-npc: npc/009-2_Hurnscald/waitress.txt
-npc: npc/009-2_Hurnscald/wyara.txt
diff --git a/npc/009-3/_import.txt b/npc/009-3/_import.txt
new file mode 100644
index 00000000..12bf619c
--- /dev/null
+++ b/npc/009-3/_import.txt
@@ -0,0 +1,7 @@
+// Map 009-3: Cave beneath Hurnscald
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 009-3.gat
+npc: npc/009-3/_mobs.txt
+npc: npc/009-3/_warps.txt
+npc: npc/009-3/monsters.txt
+npc: npc/009-3/sword.txt
diff --git a/npc/009-3_Cave_beneath_Hurnscald/_mobs.txt b/npc/009-3/_mobs.txt
index 0ac73785..b1cc7bc4 100644
--- a/npc/009-3_Cave_beneath_Hurnscald/_mobs.txt
+++ b/npc/009-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-3 Cave beneath Hurnscald mobs
+// Cave beneath Hurnscald mobs
diff --git a/npc/009-3_Cave_beneath_Hurnscald/_warps.txt b/npc/009-3/_warps.txt
index 4349cd6d..57adbca9 100644
--- a/npc/009-3_Cave_beneath_Hurnscald/_warps.txt
+++ b/npc/009-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-3 Cave beneath Hurnscald warps
+// Cave beneath Hurnscald warps
009-3.gat,173,20 warp CaveExitToInn -1,-1,009-2.gat,147,88
009-3.gat,20,56 warp ToLakeCave -1,-1,011-4.gat,129,88
diff --git a/npc/009-3_Cave_beneath_Hurnscald/monsters.txt b/npc/009-3/monsters.txt
index b69bb3a1..b69bb3a1 100644
--- a/npc/009-3_Cave_beneath_Hurnscald/monsters.txt
+++ b/npc/009-3/monsters.txt
diff --git a/npc/009-3_Cave_beneath_Hurnscald/sword.txt b/npc/009-3/sword.txt
index fbb47433..fbb47433 100644
--- a/npc/009-3_Cave_beneath_Hurnscald/sword.txt
+++ b/npc/009-3/sword.txt
diff --git a/npc/009-3_Cave_beneath_Hurnscald/_import.txt b/npc/009-3_Cave_beneath_Hurnscald/_import.txt
deleted file mode 100644
index 514f9525..00000000
--- a/npc/009-3_Cave_beneath_Hurnscald/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 009-3.gat
-npc: npc/009-3_Cave_beneath_Hurnscald/_mobs.txt
-npc: npc/009-3_Cave_beneath_Hurnscald/_warps.txt
-npc: npc/009-3_Cave_beneath_Hurnscald/monsters.txt
-npc: npc/009-3_Cave_beneath_Hurnscald/sword.txt
diff --git a/npc/009-4/_import.txt b/npc/009-4/_import.txt
index 686387b1..db91605c 100644
--- a/npc/009-4/_import.txt
+++ b/npc/009-4/_import.txt
@@ -1,3 +1,4 @@
+// Map 009-4:
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 009-4.gat
npc: npc/009-4/_mobs.txt
diff --git a/npc/009-4/_mobs.txt b/npc/009-4/_mobs.txt
index 4f7b34c3..f4c9140e 100644
--- a/npc/009-4/_mobs.txt
+++ b/npc/009-4/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-4 mobs
+// mobs
009-4.gat,117,97,24,15 monster Silkworm 1035,3,20000,14000,Mob009-4::On1035
009-4.gat,115,98,24,15 monster Cave Snake 1021,5,20000,14000,Mob009-4::On1021
diff --git a/npc/009-4/_warps.txt b/npc/009-4/_warps.txt
index db64706a..e666d8ca 100644
--- a/npc/009-4/_warps.txt
+++ b/npc/009-4/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 009-4 warps
+// warps
009-4.gat,37,112 warp to 009-3 -1,-1,009-3.gat,162,114
009-4.gat,72,136 warp to Cavern -1,-1,009-4.gat,36,27
diff --git a/npc/009-4/barriers.txt b/npc/009-4/barriers.txt
index 0185a2fd..349ec44e 100644
--- a/npc/009-4/barriers.txt
+++ b/npc/009-4/barriers.txt
@@ -1,229 +1,229 @@
-//# see detailed description at orum.txt
-function script GetBarrierColor {
- if (@Barrier < 0 || @Barrier > 2) goto L_Error;
-
- set @Mask, 15;
- set @Shift, 4 * @Barrier;
- set @BarrierColor, (OrumQuestBarrier >> @Shift) & @Mask;
- return;
-
-L_Error:
- mes "Barrier number is out of range.";
- close;
-}
-
-function script SetBarrierColor {
- if (@Barrier < 0 || @Barrier > 2) goto L_Error;
- if (@Color < 0 || @Color > 12) goto L_Error2;
-
- set @Mask, (15 << (4 * @Barrier));
- set OrumQuestBarrier, (OrumQuestBarrier & (~(@Mask))) | @Color << (4 * @Barrier);
- return;
-
-L_Error:
- mes "Barrier number is out of range.";
- close;
-
-L_Error2:
- mes "Barrier color is out of range.";
- close;
-}
-
-
-// Starting Barrier / Quest Entrance
-009-4.gat,37,120,0 script #OrumCaveStartBarrier 0,1,0,{
-
- if (OrumQuest >= 3) close;
- if (OrumQuest == 2) goto L_Started;
-
- warp "009-4.gat", 37, 118;
- mes "As you try to pass, two torches begin to flare and push you back. They seem to form some kind of barrier..";
- close;
-
-L_Started:
- message strcharinfo(0), "The torches dim as you approach, granting you passage.";
- set OrumQuest, 3;
- close;
-}
-
-// First Barrier
-009-4.gat,57,29,0 script #OrumCaveFirstBarrier 0,1,0,{
-
- if (OrumQuest >= 5) close;
-
- message strcharinfo(0), "Nothing seems to happen as you enter this room.. The barrier must need both of its torches to function properly..";
- set OrumQuest, 5;
- close;
-}
-
-// Second Barrier
-009-4.gat,61,54,0 script #OrumCaveSecondBarrier 0,1,0,{
-
- if (OrumQuest == 3) set OrumQuest, 4;
-
- set @Barrier, 0;
- callfunc("GetBarrierColor");
- set @Torch, 0;
- callfunc("GetTorchColor");
- if (OrumQuest > 7 && @TorchColor == @BarrierColor) goto L_Allow_Second_Passage;
-
- warp "009-4.gat", 61, 56;
- mes "As you try to pass, the torches begin to flare and push you back. Perhaps there's a way to get past it..";
- mes "";
- setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
- mes "Looking closely between the two torches you can see the barrier has a " + @colors$[@BarrierColor] + " tint to it..";
- close;
-
-L_Allow_Second_Passage:
- if (OrumQuest < 9) goto L_Advance_Quest;
- close;
-
-L_Advance_Quest:
- message strcharinfo(0), "The torches dim as you enter like the first. You must be on the right trail..";
- set OrumQuest, 9;
- close;
-}
-
-// Third Barrier
-009-4.gat,24,66,0 script #OrumCaveThirdBarrier 0,1,0,{
-
- if (OrumQuest == 3) set OrumQuest, 4;
-
- set @Barrier, 1;
- callfunc("GetBarrierColor");
-
- set @Torch, 0;
- callfunc("GetTorchColor");
- set @Torch1Color, @TorchColor;
-
- set @Torch, 1;
- callfunc("GetTorchColor");
- set @Torch2Color, @TorchColor;
-
- set @firstColor, @BarrierColor - 2;
- set @secondColor, @BarrierColor + 2;
- if (@firstColor < 1) set @firstColor, 12;
- if (@secondColor > 12) set @secondColor, 1;
-
- if (OrumQuest > 8 && @Torch1Color == @firstColor && @Torch2Color == @secondColor)
- goto L_Allow_Third_Passage;
- if (OrumQuest > 8 && @Torch2Color == @firstColor && @Torch1Color == @secondColor)
- goto L_Allow_Third_Passage;
-
- warp "009-4.gat", 24, 64;
- mes "As you try to pass, the torches begin to flare and push you back. Perhaps there is a way to get past it..";
- mes "";
- setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
- mes "Looking closely between the two torches you can see the barrier has a " + @colors$[@BarrierColor] + " tint to it..";
- close;
-
-L_Allow_Third_Passage:
-if (OrumQuest < 10) goto L_Advance_Quest;
- close;
-
-L_Advance_Quest:
- set OrumQuest, 10;
- close;
-}
-
-// Ending Barrier
-009-4.gat,48,38,0 script #OrumCaveEndBarrier 0,1,0,{
-
- if (OrumQuest >= 11) close;
- if (OrumQuest == 3) set OrumQuest, 4;
-
- set @Barrier, 2;
- callfunc("GetBarrierColor");
-
- if (OrumQuest < 10) goto L_Deny_Final_Passage;
-
- set @Torch, 0;
- callfunc("GetTorchColor");
- set @Torch1Color, @TorchColor;
-
- set @Torch, 1;
- callfunc("GetTorchColor");
- set @Torch2Color, @TorchColor;
-
- set @Torch, 2;
- callfunc("GetTorchColor");
- set @Torch3Color, @TorchColor;
-
- // Extract the secondary color
- set @secondary, @BarrierColor - 1;
- if (@secondary != 3 && @secondary != 7 && @secondary != 11)
- set @secondary, @BarrierColor + 1;
-
- // Make sure it's in bounds
- if (@secondary > 12) set @secondary, @secondary - 12;
- if (@secondary < 1) set @secondary, @secondary + 12;
-
- // Extract first 2 required colors
- set @firstColor, @secondary - 2;
- set @secondColor, @secondary + 2;
- if (@firstColor > 12) set @firstColor, @firstColor - 12;
- if (@firstColor < 1) set @firstColor, @firstColor + 12;
- if (@secondColor > 12) set @secondColor, @secondColor - 12;
- if (@secondColor < 1) set @secondColor, @secondColor + 12;
-
- set @thirdColor, 12;
- set @offsetOne, @BarrierColor + 1;
- set @offsetTwo, @BarrierColor - 1;
-
- // Make sure they in bounds
- if (@offsetOne > 12) set @offsetOne, @offsetOne - 12;
- if (@offsetOne < 1) set @offsetOne, @offsetOne + 12;
- if (@offsetTwo > 12) set @offsetTwo, @offsetTwo - 12;
- if (@offsetTwo < 1) set @offsetTwo, @offsetTwo + 12;
-
- // Extract third needed color
- if (@secondary == @offsetOne)
- set @thirdColor, @firstColor;
- if (@secondary == @offsetTwo)
- set @thirdColor, @secondColor;
-
- set @firstDone, 0;
- set @secondDone, 0;
- set @thirdDone, 0;
-
- if (@firstDone == 0 && @secondDone != 1 && @thirdDone != 1 && @Torch1Color == @firstColor)
- set @firstDone, 1;
- if (@firstDone != 1 && @secondDone == 0 && @thirdDone != 1 && @Torch1Color == @secondColor)
- set @secondDone, 1;
- if (@firstDone != 1 && @secondDone != 1 && @thirdDone == 0 && @Torch1Color == @thirdColor)
- set @thirdDone, 1;
-
- if (@firstDone == 0 && @secondDone != 2 && @thirdDone != 2 && @Torch2Color == @firstColor)
- set @firstDone, 2;
- if (@firstDone != 2 && @secondDone == 0 && @thirdDone != 2 && @Torch2Color == @secondColor)
- set @secondDone, 2;
- if (@firstDone != 2 && @secondDone != 2 && @thirdDone == 0 && @Torch2Color == @thirdColor)
- set @thirdDone, 2;
-
- if (@firstDone == 0 && @secondDone != 3 && @thirdDone != 3 && @Torch3Color == @firstColor)
- set @firstDone, 3;
- if (@firstDone != 3 && @secondDone == 0 && @thirdDone != 3 && @Torch3Color == @secondColor)
- set @secondDone, 3;
- if (@firstDone != 3 && @secondDone != 3 && @thirdDone == 0 && @Torch3Color == @thirdColor)
- set @thirdDone, 3;
-
- if (@firstDone != 0 && @secondDone != 0 && @thirdDone != 0) goto L_Allow_Final_Passage;
- goto L_Deny_Final_Passage;
-
-L_Deny_Final_Passage:
- warp "009-4.gat", 48, 36;
- mes "As you try to pass, the torches begin to flare and push you back. Perhaps there is a way to get past it..";
- mes "";
- setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
- mes "Looking closely between the two torches you can see the barrier has a " + @colors$[@BarrierColor] + " tint to it..";
- close;
-
-L_Allow_Final_Passage:
- if (OrumQuest < 11) goto L_Advance_Quest;
- close;
-
-L_Advance_Quest:
- message strcharinfo(0), "The torches dim as you enter. At last you finally have access!";
- set OrumQuest, 11;
- close;
-}
+//# see detailed description at orum.txt
+function script GetBarrierColor {
+ if (@Barrier < 0 || @Barrier > 2) goto L_Error;
+
+ set @Mask, 15;
+ set @Shift, 4 * @Barrier;
+ set @BarrierColor, (OrumQuestBarrier >> @Shift) & @Mask;
+ return;
+
+L_Error:
+ mes "Barrier number is out of range.";
+ close;
+}
+
+function script SetBarrierColor {
+ if (@Barrier < 0 || @Barrier > 2) goto L_Error;
+ if (@Color < 0 || @Color > 12) goto L_Error2;
+
+ set @Mask, (15 << (4 * @Barrier));
+ set OrumQuestBarrier, (OrumQuestBarrier & (~(@Mask))) | @Color << (4 * @Barrier);
+ return;
+
+L_Error:
+ mes "Barrier number is out of range.";
+ close;
+
+L_Error2:
+ mes "Barrier color is out of range.";
+ close;
+}
+
+
+// Starting Barrier / Quest Entrance
+009-4.gat,37,120,0 script #OrumCaveStartBarrier 0,1,0,{
+
+ if (OrumQuest >= 3) close;
+ if (OrumQuest == 2) goto L_Started;
+
+ warp "009-4.gat", 37, 118;
+ mes "As you try to pass, two torches begin to flare and push you back. They seem to form some kind of barrier..";
+ close;
+
+L_Started:
+ message strcharinfo(0), "The torches dim as you approach, granting you passage.";
+ set OrumQuest, 3;
+ close;
+}
+
+// First Barrier
+009-4.gat,57,29,0 script #OrumCaveFirstBarrier 0,1,0,{
+
+ if (OrumQuest >= 5) close;
+
+ message strcharinfo(0), "Nothing seems to happen as you enter this room.. The barrier must need both of its torches to function properly..";
+ set OrumQuest, 5;
+ close;
+}
+
+// Second Barrier
+009-4.gat,61,54,0 script #OrumCaveSecondBarrier 0,1,0,{
+
+ if (OrumQuest == 3) set OrumQuest, 4;
+
+ set @Barrier, 0;
+ callfunc("GetBarrierColor");
+ set @Torch, 0;
+ callfunc("GetTorchColor");
+ if (OrumQuest > 7 && @TorchColor == @BarrierColor) goto L_Allow_Second_Passage;
+
+ warp "009-4.gat", 61, 56;
+ mes "As you try to pass, the torches begin to flare and push you back. Perhaps there's a way to get past it..";
+ mes "";
+ setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
+ mes "Looking closely between the two torches you can see the barrier has a " + @colors$[@BarrierColor] + " tint to it..";
+ close;
+
+L_Allow_Second_Passage:
+ if (OrumQuest < 9) goto L_Advance_Quest;
+ close;
+
+L_Advance_Quest:
+ message strcharinfo(0), "The torches dim as you enter like the first. You must be on the right trail..";
+ set OrumQuest, 9;
+ close;
+}
+
+// Third Barrier
+009-4.gat,24,66,0 script #OrumCaveThirdBarrier 0,1,0,{
+
+ if (OrumQuest == 3) set OrumQuest, 4;
+
+ set @Barrier, 1;
+ callfunc("GetBarrierColor");
+
+ set @Torch, 0;
+ callfunc("GetTorchColor");
+ set @Torch1Color, @TorchColor;
+
+ set @Torch, 1;
+ callfunc("GetTorchColor");
+ set @Torch2Color, @TorchColor;
+
+ set @firstColor, @BarrierColor - 2;
+ set @secondColor, @BarrierColor + 2;
+ if (@firstColor < 1) set @firstColor, 12;
+ if (@secondColor > 12) set @secondColor, 1;
+
+ if (OrumQuest > 8 && @Torch1Color == @firstColor && @Torch2Color == @secondColor)
+ goto L_Allow_Third_Passage;
+ if (OrumQuest > 8 && @Torch2Color == @firstColor && @Torch1Color == @secondColor)
+ goto L_Allow_Third_Passage;
+
+ warp "009-4.gat", 24, 64;
+ mes "As you try to pass, the torches begin to flare and push you back. Perhaps there is a way to get past it..";
+ mes "";
+ setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
+ mes "Looking closely between the two torches you can see the barrier has a " + @colors$[@BarrierColor] + " tint to it..";
+ close;
+
+L_Allow_Third_Passage:
+if (OrumQuest < 10) goto L_Advance_Quest;
+ close;
+
+L_Advance_Quest:
+ set OrumQuest, 10;
+ close;
+}
+
+// Ending Barrier
+009-4.gat,48,38,0 script #OrumCaveEndBarrier 0,1,0,{
+
+ if (OrumQuest >= 11) close;
+ if (OrumQuest == 3) set OrumQuest, 4;
+
+ set @Barrier, 2;
+ callfunc("GetBarrierColor");
+
+ if (OrumQuest < 10) goto L_Deny_Final_Passage;
+
+ set @Torch, 0;
+ callfunc("GetTorchColor");
+ set @Torch1Color, @TorchColor;
+
+ set @Torch, 1;
+ callfunc("GetTorchColor");
+ set @Torch2Color, @TorchColor;
+
+ set @Torch, 2;
+ callfunc("GetTorchColor");
+ set @Torch3Color, @TorchColor;
+
+ // Extract the secondary color
+ set @secondary, @BarrierColor - 1;
+ if (@secondary != 3 && @secondary != 7 && @secondary != 11)
+ set @secondary, @BarrierColor + 1;
+
+ // Make sure it's in bounds
+ if (@secondary > 12) set @secondary, @secondary - 12;
+ if (@secondary < 1) set @secondary, @secondary + 12;
+
+ // Extract first 2 required colors
+ set @firstColor, @secondary - 2;
+ set @secondColor, @secondary + 2;
+ if (@firstColor > 12) set @firstColor, @firstColor - 12;
+ if (@firstColor < 1) set @firstColor, @firstColor + 12;
+ if (@secondColor > 12) set @secondColor, @secondColor - 12;
+ if (@secondColor < 1) set @secondColor, @secondColor + 12;
+
+ set @thirdColor, 12;
+ set @offsetOne, @BarrierColor + 1;
+ set @offsetTwo, @BarrierColor - 1;
+
+ // Make sure they in bounds
+ if (@offsetOne > 12) set @offsetOne, @offsetOne - 12;
+ if (@offsetOne < 1) set @offsetOne, @offsetOne + 12;
+ if (@offsetTwo > 12) set @offsetTwo, @offsetTwo - 12;
+ if (@offsetTwo < 1) set @offsetTwo, @offsetTwo + 12;
+
+ // Extract third needed color
+ if (@secondary == @offsetOne)
+ set @thirdColor, @firstColor;
+ if (@secondary == @offsetTwo)
+ set @thirdColor, @secondColor;
+
+ set @firstDone, 0;
+ set @secondDone, 0;
+ set @thirdDone, 0;
+
+ if (@firstDone == 0 && @secondDone != 1 && @thirdDone != 1 && @Torch1Color == @firstColor)
+ set @firstDone, 1;
+ if (@firstDone != 1 && @secondDone == 0 && @thirdDone != 1 && @Torch1Color == @secondColor)
+ set @secondDone, 1;
+ if (@firstDone != 1 && @secondDone != 1 && @thirdDone == 0 && @Torch1Color == @thirdColor)
+ set @thirdDone, 1;
+
+ if (@firstDone == 0 && @secondDone != 2 && @thirdDone != 2 && @Torch2Color == @firstColor)
+ set @firstDone, 2;
+ if (@firstDone != 2 && @secondDone == 0 && @thirdDone != 2 && @Torch2Color == @secondColor)
+ set @secondDone, 2;
+ if (@firstDone != 2 && @secondDone != 2 && @thirdDone == 0 && @Torch2Color == @thirdColor)
+ set @thirdDone, 2;
+
+ if (@firstDone == 0 && @secondDone != 3 && @thirdDone != 3 && @Torch3Color == @firstColor)
+ set @firstDone, 3;
+ if (@firstDone != 3 && @secondDone == 0 && @thirdDone != 3 && @Torch3Color == @secondColor)
+ set @secondDone, 3;
+ if (@firstDone != 3 && @secondDone != 3 && @thirdDone == 0 && @Torch3Color == @thirdColor)
+ set @thirdDone, 3;
+
+ if (@firstDone != 0 && @secondDone != 0 && @thirdDone != 0) goto L_Allow_Final_Passage;
+ goto L_Deny_Final_Passage;
+
+L_Deny_Final_Passage:
+ warp "009-4.gat", 48, 36;
+ mes "As you try to pass, the torches begin to flare and push you back. Perhaps there is a way to get past it..";
+ mes "";
+ setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
+ mes "Looking closely between the two torches you can see the barrier has a " + @colors$[@BarrierColor] + " tint to it..";
+ close;
+
+L_Allow_Final_Passage:
+ if (OrumQuest < 11) goto L_Advance_Quest;
+ close;
+
+L_Advance_Quest:
+ message strcharinfo(0), "The torches dim as you enter. At last you finally have access!";
+ set OrumQuest, 11;
+ close;
+}
diff --git a/npc/009-4/orum.txt b/npc/009-4/orum.txt
index 9857aa80..fae4dad7 100644
--- a/npc/009-4/orum.txt
+++ b/npc/009-4/orum.txt
@@ -1,655 +1,655 @@
-//#################################################################################
-//# Orum/Waric Quest Part 1 - By Liana, reviewed by Stefan Beller #
-//# GPL v.2 #
-//# #
-//# The first quest is to find Waric in the Caves with lots of torches. #
-//# These torches must be set in the right color to have access to the next #
-//# room, guarded by a magical barrier of other torches. #
-//# #
-//# The second quest is an easy, but background-story telling quest. #
-//# Just visit the cave again, find what is really in there. #
-//# #
-//# #
-//# Used variables: #
-//# #
-//# OrumQuest stores the progress of the quest #
-//# OrumQuestTorch In nibble (0,1,2) the color of the torches is stored #
-//# In nibble (3,4,5) the intensity of the torches is stored #
-//# OrumQuestBarrier nibble (0,1,2) stores the color of the barriers #
-//#################################################################################
-
-009-4.gat,37,115,0 script Orum 158,{
- // needed to pass the very first barrier
- set @B0_WISPPOWDER, 4;
- set @B0_POLTERGEISTPOWDER, 2;
- set @B0_SPECTREPOWDER, 1;
- set @B0_HARDSPIKES, 1;
-
- // needed stuff to get colorful powders
- set @BT_IRONPOWDER, 10;
- set @BT_PILESOFASH, 10;
- set @BT_HERBS, 15;
-
- // how many colorful powders each do you get as reward?
- set @BT_REWARDCOUNT, 10;
-
- // no exp for breaking the barrier ?
- set @EXP_BREAK_BARRIERS, 0;
-
- if (OrumQuest > 0) goto L_Started;
-
- mes "[Orum]";
- mes "\"It's not wise to venture around this place! Well hmm.. I guess since you're here, maybe you can lend a little help?\"";
- next;
-
- menu
- "What exactly is 'this place'?", L_Explain,
- "Umm.. what kind of help?", L_Explain,
- "You're right, I'll be on my way.", -;
-
- mes "[Orum]";
- mes "\"Very smart thinking!\"";
- close;
-
-L_Explain:
- mes "[Orum]";
- mes "\"Recently a woman claiming to be a witch came to my village seeking help from my mentor Waric, who is a very powerful wizard, but he refused and she left. But..\"";
- next;
-
- mes "[Orum]";
- mes "\"The next day he went missing! I'm no wizard yet, but from what I overheard.. I think that witch is attempting some very foul magic and has kidnapped him for some reason!\"";
- next;
-
- mes "[Orum]";
- mes "\"I traveled in the direction she left until I came accross this cave, but it appears to be protected by some type of magical barrier and I haven't been able to get further than this room.\"";
- next;
-
- menu
- "So where would I come in?", L_Explain_Barriers,
- "I'd like to help but I have to go..", -;
-
- mes "[Orum]";
- mes "\"Thats too bad.. well, if you ever have some free time, I probably won't figure this out any time soon.\"";
- close;
-
-L_Explain_Barriers:
- mes "[Orum]";
- mes "\"I've examined this room and it appears that the barrier is made up of two torches on each side. The flame on them has a strange glow.. They must be imbued with magical properties.\"";
- next;
-
- mes "[Orum]";
- mes "\"I've never come across anything like this barrier before.. It must be drawing it's power from the torches. I tried putting them out with conventional means but I had no luck..\"";
- next;
-
- menu
- "Have any other ideas on how we get past it?", L_Explain_Note,
- "I think its meant to keep us out.. bye.", -;
-
- mes "[Orum]";
- mes "\"You may be right.. but she kidnapped Waric. I know it! So I must do something! If you ever change your mind I could sure use the help.\"";
- close;
-
-L_Explain_Note:
- mes "[Orum]";
- mes "\"Actually! After Woric went missing I looked around at his house a bit and came across a note the witch must have dropped. I skimmed over it and didn't pay much attention but I think it mentioned something about this barrier!\"";
- next;
-
- mes "He pulls it out of his pocket and begins examining it..";
- next;
-
- mes "[Orum]";
- mes "\"Ah! Here it is! If I'm reading this right we may have found a way past it after all. I guess she would need a way to come and go unaffected while everyone else is kept from entering.\"";
- next;
-
- menu
- "What does it say??", L_Explain_Aura,
- "Looks like you can do this without me.", -;
-
- mes "[Orum]";
- mes "\"Eh... well I guess I can't force you to stay..\"";
- close;
-
-L_Explain_Aura:
- mes "[Orum]";
- mes "\"Appears to be some kind of spell to place a magical aura around someone... Hmm, with these materials listed on here I'm going to guess this aura makes the wearer partly incorporeal..\"";
- next;
-
- mes "[Orum]";
- mes "\"It looks like the barrier requires substances from 3 different incorporeal creatures.. I've heard of Wisps, Poltergeists, and Spectres before but I've never seen such a thing.\"";
- next;
-
- mes "[Orum]";
- mes "\"Luckily I happen to be skilled in this field of magic! I'm pretty sure if I can get my hands on the materials listed on here I'll be able to cast this aura on us, and hopefully then we can get past this barrier!\"";
- next;
-
- menu
- "Let me guess.. that is my job?", L_Offer_Quest,
- "I think someone is calling me.. Bye", -;
- close;
-
-L_Offer_Quest:
- mes "[Orum]";
- mes "\"Well you would probably do better than me since I don't know this area very well.. It's not too much stuff so I'm sure you won't have any trouble at all.\"";
- next;
-
- menu
- "Alright alright, just give me a list.", L_Start_Quest,
- "I'm not your servant! Bye.", -;
-
- mes "[Orum]";
- mes "\"Everyone answers to someone.. that's just how the world is. If you ever change your mind I'll probably be here forever gathering these materials on my own..\"";
- close;
-
-L_Start_Quest:
- mes "He pulls a crumpled piece of paper from his pocket, smooths it out and writes a list on it before handing it to you..";
- next;
-
- mes "" + @B0_WISPPOWDER + " [Wisp Powder]s,";
- mes "" + @B0_POLTERGEISTPOWDER + " [Poltergeist Powder]s,";
- mes "" + @B0_SPECTREPOWDER + " [Spectre Powder]s,";
- mes "" + @B0_HARDSPIKES + " [Hard Spike]s";
- next;
-
- menu
- "Alright, I'll go get these.", L_Start_Gathering,
- "You can forget it! I quit!", -;
-
- mes "[Orum]";
- mes "\"I know you'll be back... they always come back!\"";
- close;
-
-L_Start_Gathering:
- mes "[Orum]";
- mes "\"That's the spirit! But try not to take too long.\"";
- set OrumQuest, 1;
- close;
-
-L_Started:
- if (OrumQuest == 1) goto L_Gathering;
- if (OrumQuest == 2) goto L_Use_First_Barrier;
- if (OrumQuest == 3) goto L_Explore;
- if (OrumQuest == 4) goto L_Found_Barriers;
- if (OrumQuest == 5) goto L_Found_Barriers;
- if (OrumQuest == 6) goto L_Found_Torches;
- if (OrumQuest == 7) goto L_Still_Gathering;
- if (OrumQuest == 8) goto L_Finish_Up;
- if (OrumQuest >= 9) goto L_Finished_Up;
- close;
-
-L_Gathering:
- mes "[Orum]";
- mes "\"Got all the things I asked for yet?\"";
- next;
-
- menu
- "Yep I have every last one of them!", L_Check_Materials,
- "Can I get another list?", L_List_Materials,
- "I still need a few things..", -;
-
- mes "Orum shakes his head in frustration..";
- next;
-
- mes "[Orum]";
- mes "\"You'd better get that stuff soon!\"";
- close;
-
-L_List_Materials:
- mes "He scavenges around in his pocket for another piece of paper then writes a new list..";
- next;
-
- mes @B0_WISPPOWDER + " [Wisp Powder]s,";
- mes @B0_POLTERGEISTPOWDER + " [Poltergeist Powder]s,";
- mes @B0_SPECTREPOWDER + " [Spectre Powder]s,";
- mes @B0_HARDSPIKES + " [Hard Spike]s";
- next;
-
- mes "[Orum]";
- mes "\"And try not to lose this one.. I'm running out of stuff to write on!\"";
- close;
-
-L_Check_Materials:
- if (countitem("WispPowder") < @B0_WISPPOWDER ||
- countitem("PoltergeistPowder") < @B0_POLTERGEISTPOWDER ||
- countitem("SpectrePowder") < @B0_SPECTREPOWDER ||
- countitem("HardSpike") < @B0_HARDSPIKES) goto L_Missing_Materials;
-
- // check directly before deleting the objects.
- delitem "WispPowder", @B0_WISPPOWDER;
- delitem "PoltergeistPowder", @B0_POLTERGEISTPOWDER;
- delitem "SpectrePowder", @B0_SPECTREPOWDER;
- delitem "HardSpike", @B0_HARDSPIKES;
-
- mes "Orum carefully looks over all of the items then grins..";
- next;
-
- mes "[Orum]";
- mes "\"Well done! And you did not even take as long as I thought you would!\"";
- next;
-
- mes "Orum takes the hard spikes in his hand and begins chanting some words..";
- next;
-
- mes "You watch as they begin to mold together, glowing brightly. He sprinkles in the powder you gathered and presses his hands together.";
-
- misceffect sfx_magic_transmute;
- next;
-
- mes "Suddenly a feeling of dizzyness hits you and you begin to feel weightless.. It passes after a moment..";
- misceffect sfx_magic_nature;
- misceffect 11, strcharinfo(0);
- next;
-
- mes "[Orum]";
- mes "\"Well we are both still in one piece so that is a good sign! Now we'll have to see if I did it right.. mind going first?\"";
- goto L_Setup_Lair;
- close;
-
-L_Missing_Materials:
- mes "Orum carefully looks over all of the items then squints his eyes at you..";
- next;
-
- mes "[Orum]";
- mes "\"I'm not going to attempt this spell until I have ALL the items on this note.. Go gather the missing materials!\"";
- close;
-
-L_Setup_Lair:
- set OrumQuest, 2;
-
- // Second Barrier
- set @temp, rand(1,6);
- set @Color, 1;
- if (@temp == 1 || @temp == 4) set @Color, 1;
- if (@temp == 2 || @temp == 5) set @Color, 5;
- if (@temp == 3 || @temp == 6) set @Color, 9;
- set @Barrier, 0;
- callfunc("SetBarrierColor");
-
- set @Torch, 0;
- set @Color, rand(1, 12);
- set @Intensity, 0;
- callfunc("SetTorchColor");
- callfunc("SetTorchIntensity");
-
- // Third Barrier
- set @temp, rand(1,6);
- set @Color, 3;
- if (@temp == 1 || @temp == 4) set @Color, 3;
- if (@temp == 2 || @temp == 5) set @Color, 7;
- if (@temp == 3 || @temp == 6) set @Color, 11;
- set @Barrier, 1;
- callfunc("SetBarrierColor");
-
- set @Torch, 1;
- set @Color, rand(1, 12);
- callfunc("SetTorchColor");
- callfunc("SetTorchIntensity");
-
- // End Barrier
- set @temp, rand(1,12);
- set @Color, 2;
- if (@temp == 1 || @temp == 7) set @Color, 2;
- if (@temp == 2 || @temp == 8) set @Color, 4;
- if (@temp == 3 || @temp == 9) set @Color, 6;
- if (@temp == 4 || @temp == 10) set @Color, 8;
- if (@temp == 5 || @temp == 11) set @Color, 10;
- if (@temp == 6 || @temp == 12) set @Color, 12;
- set @Barrier, 2;
- callfunc("SetBarrierColor");
-
- set @Torch, 2;
- set @Color, rand(1, 12);
- callfunc("SetTorchColor");
- callfunc("SetTorchIntensity");
- close;
-
-L_Use_First_Barrier:
- mes "[Orum]";
- mes "\"Casting that aura took a lot out of me.. Why don't you go explore the cave a bit while I rest?\"";
- close;
-
-L_Explore:
- mes "Orum looks up as you approach..";
- next;
-
- mes "[Orum]";
- mes "\"Find anything interesting in this place?\"";
- next;
-
- menu
- "Yep.. a whole mess of torches!", L_Explain_Objective,
- "I'm not sure what to look for..", L_Explain_Objective,
- "Going to explore more, bye.", -;
-
- mes "[Orum]";
- mes "\"Be sure to let me know if you find anything. I've almost gained my energy back.\"";
- close;
-
-L_Explain_Objective:
- mes "[Orum]";
- mes "\"I'm positive this is where that witch took Waric, so this cave must lead to somewhere. Try looking around for another exit. I've almost gained my energy back and then I can help.\"";
- close;
-
-L_Found_Barriers:
- mes "Orum looks up as you approach..";
- next;
-
- mes "[Orum]";
- mes "\"Find anything interesting in this place?\"";
- next;
-
- menu
- "Yep.. a whole mess of torches!", L_Explain_Objective,
- "I'm not sure what to look for..", L_Explain_Objective,
- "I found more barriers.. but..", L_Explain_Barriers_More,
- "Going to explore more, bye.", -;
-
- mes "[Orum]";
- mes "\"Be sure to let me know if you find anything. I'm still gaining my energy back.\"";
- close;
-
-L_Explain_Barriers_More:
- mes "[Orum]";
- mes "\"Hm let me guess.. the aura is ineffective on the rest of the barriers here?\"";
- next;
-
- menu
- "How did you know..?", L_Explain_Note_More,
- "I'm not sure, I'll go try again.", -;
-
- mes "[Orum]";
- mes "\"Always a good idea to double check things!\"";
- close;
-
-L_Explain_Note_More:
- mes "[Orum]";
- mes "\"Well while I was resting I spent more time looking over the note that witch dropped.. And I think the aura is only to get past the entrance..\"";
- next;
-
- mes "[Orum]";
- mes "\"It mentions some sort of security system to keep people from entering the actual lair but it doesn't explain in great detail. Try exploring more; maybe we will find some answers.\"";
- next;
-
- mes "Orum continues examining the note..";
- close;
-
-L_Found_Torches:
- mes "Orum looks up as you approach..";
- next;
-
- mes "[Orum]";
- mes "\"Find something interesting?\"";
- next;
-
- menu
- "Yep.. a whole mess of torches!", L_Explain_Objective,
- "I'm not sure what to look for..", L_Explain_Objective,
- "I found more barriers.. but..", L_Explain_Barriers_More,
- "I found a strange torch by itself.", L_Explain_Torches,
- "Going to explore more, bye.", -;
-
- mes "[Orum]";
- mes "\"Be sure to let me know if you find anything new.\"";
- close;
-
-L_Explain_Torches:
- mes "Orum has you direct him to the torch and he walks off to examine it before returning shortly after..";
- next;
-
- mes "[Orum]";
- mes "\"Ah yes! I was hoping we would find something like this!\"";
- next;
-
- mes "[Orum]";
- mes "\"While examining the note I found another set of spells to create some type of powder and with them was a few notes on using it with some type of torch..\"";
- next;
-
- mes "[Orum]";
- mes "\"I'll bet this torch has something to do with the rest of these barriers which are probably the security system this note mentions.\"";
- next;
-
- mes "[Orum]";
- mes "\"We will probably need to transmute this powder before we can get any further past these barriers.. Would you mind gathering a few more materials?\"";
- next;
-
- menu
- "It better be the last time.", L_Gather_More,
- "I'm done doing stuff for you!", -;
-
- mes "[Orum]";
- mes "\"I'm surprised you give up after we've gotten so far.. Shame.\"";
- close;
-
-L_Gather_More:
- mes "Orum begins writing down another list of materials..";
- next;
-
- mes @BT_IRONPOWDER + " Piles of Iron Powder,";
- mes @BT_PILESOFASH + " Piles of Sand or Ash,";
- mes @BT_HERBS + " Gamboge Herbs,";
- mes @BT_HERBS + " Alizarin Herbs,";
- mes @BT_HERBS + " Cobalt Herbs";
- next;
-
- menu
- "Yikes! I'll try..", L_Gathering_More,
- "No way! Too much stuff!", -;
-
- mes "[Orum]";
- mes "\"The note says to get these and I'm not going to attempt this spell until I have what the note says.\"";
- close;
-
-L_Gathering_More:
- set OrumQuest, 7;
- mes "[Orum]";
- mes "\"Wonderful! Try to make it quick, we must save Waric!\"";
- close;
-
-L_Still_Gathering:
- mes "[Orum]";
- mes "\"Have you finished gathering those things yet?\"";
- next;
-
- menu
- "I believe I have!", L_Finished_Gathering_More,
- "I lost my list.. again..", L_List_Materials_More,
- "I've almost got them all..", -;
-
- mes "[Orum]";
- mes "\"Don't make me remind you again! Warics life is on the line here! Hurry up!\"";
- close;
-
-L_List_Materials_More:
- mes "He scavenges around in his pocket for another piece of paper then writes a new list..";
- next;
-
- mes @BT_IRONPOWDER + " Piles of Iron Powder,";
- mes @BT_PILESOFASH + " Piles of Sand or Ash,";
- mes @BT_HERBS + " Gamboge Herbs,";
- mes @BT_HERBS + " Alizarin Herbs,";
- mes @BT_HERBS + " Cobalt Herbs";
- next;
-
- mes "[Orum]";
- mes "\"And try not to lose this one.. I don't have much more to write on!\"";
- close;
-
-L_Finished_Gathering_More:
- if (countitem("IronPowder") < @BT_IRONPOWDER ||
- countitem("PileOfAsh") < @BT_PILESOFASH ||
- countitem("GambogeHerb") < @BT_HERBS ||
- countitem("AlizarinHerb") < @BT_HERBS ||
- countitem("CobaltHerb") < @BT_HERBS) goto L_Missing_Materials_More;
-
- delitem "IronPowder", @BT_IRONPOWDER;
- delitem "PileOfAsh", @BT_PILESOFASH;
- delitem "GambogeHerb", @BT_HERBS;
- delitem "AlizarinHerb", @BT_HERBS;
- delitem "CobaltHerb", @BT_HERBS;
-
- mes "[Orum]";
- mes "\"Excellent work! And once again you did not take as long as I was expecting. I guess I will get started..\"";
- next;
-
- mes "You watch as Orum takes the iron powder and ash and begins chanting some words.. The two start to glow and mold together turning into a light, metallic looking powder..";
- next;
- misceffect sfx_magic_transmute;
-
- mes "He then splits the powder into three piles and performs separate spells on each using the herbs. After he finishes you see 3 piles of colored metallic powder that appear to be red, yellow, and blue..";
- next;
- misceffect sfx_magic_transmute;
-
- mes "[Orum]";
- mes "\"Well if I did it right.. These three powders are hopefully the key to getting past these barriers!\"";
- next;
-
- mes "[Orum]";
- mes "\"I'm weary, I must take some time to rest. Why don't you go ahead and experiment with these powders on that torch and let me know if you figure what they have to do with it.\"";
-
- getitem "RedPowder", @BT_REWARDCOUNT;
- getitem "YellowPowder", @BT_REWARDCOUNT;
- getitem "BluePowder", @BT_REWARDCOUNT;
- set OrumQuest, 8;
- close;
-
-L_Missing_Materials_More:
- mes "Orum carefully looks over all of the items then squints his eyes at you..";
- next;
-
- mes "[Orum]";
- mes "\"You really enjoy playing games with Warics life, don't you! Come back when you have ALL of the items I told you.\"";
- close;
-
-L_Finish_Up:
- mes "Orum seems to be sitting around doing nothing as you approach.";
- next;
-
- mes "[Orum]";
- mes "\"Did you find a way past any of the barriers yet?\"";
- next;
-
- menu
- "No, I'm still not sure how..", L_Explain_Torches_More,
- "I need more of that powder.", L_More_Powder,
- "I'm still trying..", -;
-
- mes "[Orum]";
- mes "\"Excellent! Let me know when you've made any progress.\"";
- close;
-
-L_Explain_Torches_More:
- mes "[Orum]";
- mes "\"Most of the barriers here have a certain color radiating from them and so do the torches. The torches seem to react with this powder so maybe we have to make these torches turn a certain color in order to lower the barriers.\"";
- next;
-
- mes "[Orum]";
- mes "\"It seems that the powders are only in these 3 colors, so you may have to experiment a bit to get the colors right.\"";
- next;
-
- mes "[Orum]";
- mes "\"Also while looking around I saw that behind one of the barriers was a cave. Maybe Waric is in there.. we should try to get that barrier dropped.\"";
- close;
-
-L_More_Powder:
- mes "[Orum]";
- mes "\"You really used up that powder fast.. Luckily I can make more as long as you can bring me those materials again.\"";
- next;
-
- menu
- "I have them right here!", L_More_Powder_Make,
- "Hmmm.. what are they again?", L_List_Materials_More,
- "I'll go get those for you..", -;
-
- mes "[Orum]";
- mes "\"You better not waste any time gathering those materials!\"";
- close;
-
-L_More_Powder_Make:
- if (countitem("IronPowder") < @BT_IRONPOWDER ||
- countitem("PileOfAsh") < @BT_PILESOFASH ||
- countitem("GambogeHerb") < @BT_HERBS ||
- countitem("AlizarinHerb") < @BT_HERBS ||
- countitem("CobaltHerb") < @BT_HERBS) goto L_Missing_Materials_More;
-
- delitem "IronPowder", @BT_IRONPOWDER;
- delitem "PileOfAsh", @BT_PILESOFASH;
- delitem "GambogeHerb", @BT_HERBS;
- delitem "AlizarinHerb", @BT_HERBS;
- delitem "CobaltHerb", @BT_HERBS;
-
- mes "[Orum]";
- mes "\"Hmm all of the items appear to be here.. Give me a moment to make that powder for you.\"";
- next;
-
- mes "Orum begins chanting the same words as he did when he made the powder before.. He seems to be quicker at it this time..";
- misceffect sfx_magic_transmute;
- next;
-
- mes "[Orum]";
- mes "\"Here you are. And try to conserve this time! The more powder I have to make, the more time and resources we use up that we could be using to save Waric!\"";
-
- getitem "RedPowder", @BT_REWARDCOUNT;
- getitem "YellowPowder", @BT_REWARDCOUNT;
- getitem "BluePowder", @BT_REWARDCOUNT;
- close;
-
-L_Finished_Up:
- mes "As you approch you think you see Orum rolling his eyes.. maybe you're imagining it..";
- next;
-
- mes "[Orum]";
- mes "\"I hope you finally dropped that barrier we need to get past!\"";
- next;
-
- menu
- "Actually.. I have!", L_Enter_Cavern,
- "I need more of that powder.", L_More_Powder,
- "Cut me some slack! I'm working on it!", -;
-
- mes "[Orum]";
- mes "\"Just hurry it up! Warics life is on the line here!\"";
- close;
-
-L_Enter_Cavern:
- if (OrumQuest >= 10) goto L_Ready_Cavern;
-
- mes "Orum heads to the barrier then gives you a look as if he does not believe you before walking forward..";
- next;
-
- mes "He is suddenly thrown against the wall behind him! Angered, he gets up, brushes himself off, and heads back to the entrance without speaking.";
- close;
-
-L_Ready_Cavern:
- // you should not get that twice ;)
- if (OrumQuest == 12) goto L_Got_Reward;
-
- mes "Orum heads to the barrier then gives you a look as if he does not believe you before walking forward..";
- next;
-
- mes "He makes it through without any problems and grins.";
- next;
-
- mes "[Orum]";
- mes "\"Very good work you have done! Please take this for your efforts. It has helped me in a bind.\"";
- next;
-
- getexp @EXP_BREAK_BARRIERS, 0;
- getitem "CandleHelmet", 1;
- mes "You receive the [Candle Helmet]";
- next;
-
- mes "\"You've done enough here to help. I will go the rest of the way alone so that your life is not endangered.. You must promise me not to go any further!\"";
- next;
-
- menu
- "Sure, I promise!", -,
- "I thought this would never be over!", -;
-
- mes "[Orum]";
- mes "\"Well I guess this is farewell!\"";
- set OrumQuest, 12;
- close;
-
-L_Got_Reward:
- mes "\"You've done enough here to help. I will go the rest of the way alone so that your life is not endangered..\"";
- close;
-}
+//#################################################################################
+//# Orum/Waric Quest Part 1 - By Liana, reviewed by Stefan Beller #
+//# GPL v.2 #
+//# #
+//# The first quest is to find Waric in the Caves with lots of torches. #
+//# These torches must be set in the right color to have access to the next #
+//# room, guarded by a magical barrier of other torches. #
+//# #
+//# The second quest is an easy, but background-story telling quest. #
+//# Just visit the cave again, find what is really in there. #
+//# #
+//# #
+//# Used variables: #
+//# #
+//# OrumQuest stores the progress of the quest #
+//# OrumQuestTorch In nibble (0,1,2) the color of the torches is stored #
+//# In nibble (3,4,5) the intensity of the torches is stored #
+//# OrumQuestBarrier nibble (0,1,2) stores the color of the barriers #
+//#################################################################################
+
+009-4.gat,37,115,0 script Orum 158,{
+ // needed to pass the very first barrier
+ set @B0_WISPPOWDER, 4;
+ set @B0_POLTERGEISTPOWDER, 2;
+ set @B0_SPECTREPOWDER, 1;
+ set @B0_HARDSPIKES, 1;
+
+ // needed stuff to get colorful powders
+ set @BT_IRONPOWDER, 10;
+ set @BT_PILESOFASH, 10;
+ set @BT_HERBS, 15;
+
+ // how many colorful powders each do you get as reward?
+ set @BT_REWARDCOUNT, 10;
+
+ // no exp for breaking the barrier ?
+ set @EXP_BREAK_BARRIERS, 0;
+
+ if (OrumQuest > 0) goto L_Started;
+
+ mes "[Orum]";
+ mes "\"It's not wise to venture around this place! Well hmm.. I guess since you're here, maybe you can lend a little help?\"";
+ next;
+
+ menu
+ "What exactly is 'this place'?", L_Explain,
+ "Umm.. what kind of help?", L_Explain,
+ "You're right, I'll be on my way.", -;
+
+ mes "[Orum]";
+ mes "\"Very smart thinking!\"";
+ close;
+
+L_Explain:
+ mes "[Orum]";
+ mes "\"Recently a woman claiming to be a witch came to my village seeking help from my mentor Waric, who is a very powerful wizard, but he refused and she left. But..\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"The next day he went missing! I'm no wizard yet, but from what I overheard.. I think that witch is attempting some very foul magic and has kidnapped him for some reason!\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"I traveled in the direction she left until I came accross this cave, but it appears to be protected by some type of magical barrier and I haven't been able to get further than this room.\"";
+ next;
+
+ menu
+ "So where would I come in?", L_Explain_Barriers,
+ "I'd like to help but I have to go..", -;
+
+ mes "[Orum]";
+ mes "\"Thats too bad.. well, if you ever have some free time, I probably won't figure this out any time soon.\"";
+ close;
+
+L_Explain_Barriers:
+ mes "[Orum]";
+ mes "\"I've examined this room and it appears that the barrier is made up of two torches on each side. The flame on them has a strange glow.. They must be imbued with magical properties.\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"I've never come across anything like this barrier before.. It must be drawing it's power from the torches. I tried putting them out with conventional means but I had no luck..\"";
+ next;
+
+ menu
+ "Have any other ideas on how we get past it?", L_Explain_Note,
+ "I think its meant to keep us out.. bye.", -;
+
+ mes "[Orum]";
+ mes "\"You may be right.. but she kidnapped Waric. I know it! So I must do something! If you ever change your mind I could sure use the help.\"";
+ close;
+
+L_Explain_Note:
+ mes "[Orum]";
+ mes "\"Actually! After Woric went missing I looked around at his house a bit and came across a note the witch must have dropped. I skimmed over it and didn't pay much attention but I think it mentioned something about this barrier!\"";
+ next;
+
+ mes "He pulls it out of his pocket and begins examining it..";
+ next;
+
+ mes "[Orum]";
+ mes "\"Ah! Here it is! If I'm reading this right we may have found a way past it after all. I guess she would need a way to come and go unaffected while everyone else is kept from entering.\"";
+ next;
+
+ menu
+ "What does it say??", L_Explain_Aura,
+ "Looks like you can do this without me.", -;
+
+ mes "[Orum]";
+ mes "\"Eh... well I guess I can't force you to stay..\"";
+ close;
+
+L_Explain_Aura:
+ mes "[Orum]";
+ mes "\"Appears to be some kind of spell to place a magical aura around someone... Hmm, with these materials listed on here I'm going to guess this aura makes the wearer partly incorporeal..\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"It looks like the barrier requires substances from 3 different incorporeal creatures.. I've heard of Wisps, Poltergeists, and Spectres before but I've never seen such a thing.\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"Luckily I happen to be skilled in this field of magic! I'm pretty sure if I can get my hands on the materials listed on here I'll be able to cast this aura on us, and hopefully then we can get past this barrier!\"";
+ next;
+
+ menu
+ "Let me guess.. that is my job?", L_Offer_Quest,
+ "I think someone is calling me.. Bye", -;
+ close;
+
+L_Offer_Quest:
+ mes "[Orum]";
+ mes "\"Well you would probably do better than me since I don't know this area very well.. It's not too much stuff so I'm sure you won't have any trouble at all.\"";
+ next;
+
+ menu
+ "Alright alright, just give me a list.", L_Start_Quest,
+ "I'm not your servant! Bye.", -;
+
+ mes "[Orum]";
+ mes "\"Everyone answers to someone.. that's just how the world is. If you ever change your mind I'll probably be here forever gathering these materials on my own..\"";
+ close;
+
+L_Start_Quest:
+ mes "He pulls a crumpled piece of paper from his pocket, smooths it out and writes a list on it before handing it to you..";
+ next;
+
+ mes "" + @B0_WISPPOWDER + " Wisp Powders,";
+ mes "" + @B0_POLTERGEISTPOWDER + " Poltergeist Powders,";
+ mes "" + @B0_SPECTREPOWDER + " Spectre Powders,";
+ mes "" + @B0_HARDSPIKES + " Hard Spikes";
+ next;
+
+ menu
+ "Alright, I'll go get these.", L_Start_Gathering,
+ "You can forget it! I quit!", -;
+
+ mes "[Orum]";
+ mes "\"I know you'll be back... they always come back!\"";
+ close;
+
+L_Start_Gathering:
+ mes "[Orum]";
+ mes "\"That's the spirit! But try not to take too long.\"";
+ set OrumQuest, 1;
+ close;
+
+L_Started:
+ if (OrumQuest == 1) goto L_Gathering;
+ if (OrumQuest == 2) goto L_Use_First_Barrier;
+ if (OrumQuest == 3) goto L_Explore;
+ if (OrumQuest == 4) goto L_Found_Barriers;
+ if (OrumQuest == 5) goto L_Found_Barriers;
+ if (OrumQuest == 6) goto L_Found_Torches;
+ if (OrumQuest == 7) goto L_Still_Gathering;
+ if (OrumQuest == 8) goto L_Finish_Up;
+ if (OrumQuest >= 9) goto L_Finished_Up;
+ close;
+
+L_Gathering:
+ mes "[Orum]";
+ mes "\"Got all the things I asked for yet?\"";
+ next;
+
+ menu
+ "Yep I have every last one of them!", L_Check_Materials,
+ "Can I get another list?", L_List_Materials,
+ "I still need a few things..", -;
+
+ mes "Orum shakes his head in frustration..";
+ next;
+
+ mes "[Orum]";
+ mes "\"You'd better get that stuff soon!\"";
+ close;
+
+L_List_Materials:
+ mes "He scavenges around in his pocket for another piece of paper then writes a new list..";
+ next;
+
+ mes @B0_WISPPOWDER + " Wisp Powders,";
+ mes @B0_POLTERGEISTPOWDER + " Poltergeist Powders,";
+ mes @B0_SPECTREPOWDER + " Spectre Powders,";
+ mes @B0_HARDSPIKES + " Hard Spikes";
+ next;
+
+ mes "[Orum]";
+ mes "\"And try not to lose this one.. I'm running out of stuff to write on!\"";
+ close;
+
+L_Check_Materials:
+ if (countitem("WispPowder") < @B0_WISPPOWDER ||
+ countitem("PoltergeistPowder") < @B0_POLTERGEISTPOWDER ||
+ countitem("SpectrePowder") < @B0_SPECTREPOWDER ||
+ countitem("HardSpike") < @B0_HARDSPIKES) goto L_Missing_Materials;
+
+ // check directly before deleting the objects.
+ delitem "WispPowder", @B0_WISPPOWDER;
+ delitem "PoltergeistPowder", @B0_POLTERGEISTPOWDER;
+ delitem "SpectrePowder", @B0_SPECTREPOWDER;
+ delitem "HardSpike", @B0_HARDSPIKES;
+
+ mes "Orum carefully looks over all of the items then grins..";
+ next;
+
+ mes "[Orum]";
+ mes "\"Well done! And you did not even take as long as I thought you would!\"";
+ next;
+
+ mes "Orum takes the hard spikes in his hand and begins chanting some words..";
+ next;
+
+ mes "You watch as they begin to mold together, glowing brightly. He sprinkles in the powder you gathered and presses his hands together.";
+
+ misceffect sfx_magic_transmute;
+ next;
+
+ mes "Suddenly a feeling of dizzyness hits you and you begin to feel weightless.. It passes after a moment..";
+ misceffect sfx_magic_nature;
+ misceffect 11, strcharinfo(0);
+ next;
+
+ mes "[Orum]";
+ mes "\"Well we are both still in one piece so that is a good sign! Now we'll have to see if I did it right.. mind going first?\"";
+ goto L_Setup_Lair;
+ close;
+
+L_Missing_Materials:
+ mes "Orum carefully looks over all of the items then squints his eyes at you..";
+ next;
+
+ mes "[Orum]";
+ mes "\"I'm not going to attempt this spell until I have ALL the items on this note.. Go gather the missing materials!\"";
+ close;
+
+L_Setup_Lair:
+ set OrumQuest, 2;
+
+ // Second Barrier
+ set @temp, rand(1,6);
+ set @Color, 1;
+ if (@temp == 1 || @temp == 4) set @Color, 1;
+ if (@temp == 2 || @temp == 5) set @Color, 5;
+ if (@temp == 3 || @temp == 6) set @Color, 9;
+ set @Barrier, 0;
+ callfunc("SetBarrierColor");
+
+ set @Torch, 0;
+ set @Color, rand(1, 12);
+ set @Intensity, 0;
+ callfunc("SetTorchColor");
+ callfunc("SetTorchIntensity");
+
+ // Third Barrier
+ set @temp, rand(1,6);
+ set @Color, 3;
+ if (@temp == 1 || @temp == 4) set @Color, 3;
+ if (@temp == 2 || @temp == 5) set @Color, 7;
+ if (@temp == 3 || @temp == 6) set @Color, 11;
+ set @Barrier, 1;
+ callfunc("SetBarrierColor");
+
+ set @Torch, 1;
+ set @Color, rand(1, 12);
+ callfunc("SetTorchColor");
+ callfunc("SetTorchIntensity");
+
+ // End Barrier
+ set @temp, rand(1,12);
+ set @Color, 2;
+ if (@temp == 1 || @temp == 7) set @Color, 2;
+ if (@temp == 2 || @temp == 8) set @Color, 4;
+ if (@temp == 3 || @temp == 9) set @Color, 6;
+ if (@temp == 4 || @temp == 10) set @Color, 8;
+ if (@temp == 5 || @temp == 11) set @Color, 10;
+ if (@temp == 6 || @temp == 12) set @Color, 12;
+ set @Barrier, 2;
+ callfunc("SetBarrierColor");
+
+ set @Torch, 2;
+ set @Color, rand(1, 12);
+ callfunc("SetTorchColor");
+ callfunc("SetTorchIntensity");
+ close;
+
+L_Use_First_Barrier:
+ mes "[Orum]";
+ mes "\"Casting that aura took a lot out of me.. Why don't you go explore the cave a bit while I rest?\"";
+ close;
+
+L_Explore:
+ mes "Orum looks up as you approach..";
+ next;
+
+ mes "[Orum]";
+ mes "\"Find anything interesting in this place?\"";
+ next;
+
+ menu
+ "Yep.. a whole mess of torches!", L_Explain_Objective,
+ "I'm not sure what to look for..", L_Explain_Objective,
+ "Going to explore more, bye.", -;
+
+ mes "[Orum]";
+ mes "\"Be sure to let me know if you find anything. I've almost gained my energy back.\"";
+ close;
+
+L_Explain_Objective:
+ mes "[Orum]";
+ mes "\"I'm positive this is where that witch took Waric, so this cave must lead to somewhere. Try looking around for another exit. I've almost gained my energy back and then I can help.\"";
+ close;
+
+L_Found_Barriers:
+ mes "Orum looks up as you approach..";
+ next;
+
+ mes "[Orum]";
+ mes "\"Find anything interesting in this place?\"";
+ next;
+
+ menu
+ "Yep.. a whole mess of torches!", L_Explain_Objective,
+ "I'm not sure what to look for..", L_Explain_Objective,
+ "I found more barriers.. but..", L_Explain_Barriers_More,
+ "Going to explore more, bye.", -;
+
+ mes "[Orum]";
+ mes "\"Be sure to let me know if you find anything. I'm still gaining my energy back.\"";
+ close;
+
+L_Explain_Barriers_More:
+ mes "[Orum]";
+ mes "\"Hm let me guess.. the aura is ineffective on the rest of the barriers here?\"";
+ next;
+
+ menu
+ "How did you know..?", L_Explain_Note_More,
+ "I'm not sure, I'll go try again.", -;
+
+ mes "[Orum]";
+ mes "\"Always a good idea to double check things!\"";
+ close;
+
+L_Explain_Note_More:
+ mes "[Orum]";
+ mes "\"Well while I was resting I spent more time looking over the note that witch dropped.. And I think the aura is only to get past the entrance..\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"It mentions some sort of security system to keep people from entering the actual lair but it doesn't explain in great detail. Try exploring more; maybe we will find some answers.\"";
+ next;
+
+ mes "Orum continues examining the note..";
+ close;
+
+L_Found_Torches:
+ mes "Orum looks up as you approach..";
+ next;
+
+ mes "[Orum]";
+ mes "\"Find something interesting?\"";
+ next;
+
+ menu
+ "Yep.. a whole mess of torches!", L_Explain_Objective,
+ "I'm not sure what to look for..", L_Explain_Objective,
+ "I found more barriers.. but..", L_Explain_Barriers_More,
+ "I found a strange torch by itself.", L_Explain_Torches,
+ "Going to explore more, bye.", -;
+
+ mes "[Orum]";
+ mes "\"Be sure to let me know if you find anything new.\"";
+ close;
+
+L_Explain_Torches:
+ mes "Orum has you direct him to the torch and he walks off to examine it before returning shortly after..";
+ next;
+
+ mes "[Orum]";
+ mes "\"Ah yes! I was hoping we would find something like this!\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"While examining the note I found another set of spells to create some type of powder and with them was a few notes on using it with some type of torch..\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"I'll bet this torch has something to do with the rest of these barriers which are probably the security system this note mentions.\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"We will probably need to transmute this powder before we can get any further past these barriers.. Would you mind gathering a few more materials?\"";
+ next;
+
+ menu
+ "It better be the last time.", L_Gather_More,
+ "I'm done doing stuff for you!", -;
+
+ mes "[Orum]";
+ mes "\"I'm surprised you give up after we've gotten so far.. Shame.\"";
+ close;
+
+L_Gather_More:
+ mes "Orum begins writing down another list of materials..";
+ next;
+
+ mes @BT_IRONPOWDER + " Piles of Iron Powder,";
+ mes @BT_PILESOFASH + " Piles of Sand or Ash,";
+ mes @BT_HERBS + " Gamboge Herbs,";
+ mes @BT_HERBS + " Alizarin Herbs,";
+ mes @BT_HERBS + " Cobalt Herbs";
+ next;
+
+ menu
+ "Yikes! I'll try..", L_Gathering_More,
+ "No way! Too much stuff!", -;
+
+ mes "[Orum]";
+ mes "\"The note says to get these and I'm not going to attempt this spell until I have what the note says.\"";
+ close;
+
+L_Gathering_More:
+ set OrumQuest, 7;
+ mes "[Orum]";
+ mes "\"Wonderful! Try to make it quick, we must save Waric!\"";
+ close;
+
+L_Still_Gathering:
+ mes "[Orum]";
+ mes "\"Have you finished gathering those things yet?\"";
+ next;
+
+ menu
+ "I believe I have!", L_Finished_Gathering_More,
+ "I lost my list.. again..", L_List_Materials_More,
+ "I've almost got them all..", -;
+
+ mes "[Orum]";
+ mes "\"Don't make me remind you again! Warics life is on the line here! Hurry up!\"";
+ close;
+
+L_List_Materials_More:
+ mes "He scavenges around in his pocket for another piece of paper then writes a new list..";
+ next;
+
+ mes @BT_IRONPOWDER + " Piles of Iron Powder,";
+ mes @BT_PILESOFASH + " Piles of Sand or Ash,";
+ mes @BT_HERBS + " Gamboge Herbs,";
+ mes @BT_HERBS + " Alizarin Herbs,";
+ mes @BT_HERBS + " Cobalt Herbs";
+ next;
+
+ mes "[Orum]";
+ mes "\"And try not to lose this one.. I don't have much more to write on!\"";
+ close;
+
+L_Finished_Gathering_More:
+ if (countitem("IronPowder") < @BT_IRONPOWDER ||
+ countitem("PileOfAsh") < @BT_PILESOFASH ||
+ countitem("GambogeHerb") < @BT_HERBS ||
+ countitem("AlizarinHerb") < @BT_HERBS ||
+ countitem("CobaltHerb") < @BT_HERBS) goto L_Missing_Materials_More;
+
+ delitem "IronPowder", @BT_IRONPOWDER;
+ delitem "PileOfAsh", @BT_PILESOFASH;
+ delitem "GambogeHerb", @BT_HERBS;
+ delitem "AlizarinHerb", @BT_HERBS;
+ delitem "CobaltHerb", @BT_HERBS;
+
+ mes "[Orum]";
+ mes "\"Excellent work! And once again you did not take as long as I was expecting. I guess I will get started..\"";
+ next;
+
+ mes "You watch as Orum takes the iron powder and ash and begins chanting some words.. The two start to glow and mold together turning into a light, metallic looking powder..";
+ next;
+ misceffect sfx_magic_transmute;
+
+ mes "He then splits the powder into three piles and performs separate spells on each using the herbs. After he finishes you see 3 piles of colored metallic powder that appear to be red, yellow, and blue..";
+ next;
+ misceffect sfx_magic_transmute;
+
+ mes "[Orum]";
+ mes "\"Well if I did it right.. These three powders are hopefully the key to getting past these barriers!\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"I'm weary, I must take some time to rest. Why don't you go ahead and experiment with these powders on that torch and let me know if you figure what they have to do with it.\"";
+
+ getitem "RedPowder", @BT_REWARDCOUNT;
+ getitem "YellowPowder", @BT_REWARDCOUNT;
+ getitem "BluePowder", @BT_REWARDCOUNT;
+ set OrumQuest, 8;
+ close;
+
+L_Missing_Materials_More:
+ mes "Orum carefully looks over all of the items then squints his eyes at you..";
+ next;
+
+ mes "[Orum]";
+ mes "\"You really enjoy playing games with Warics life, don't you! Come back when you have ALL of the items I told you.\"";
+ close;
+
+L_Finish_Up:
+ mes "Orum seems to be sitting around doing nothing as you approach.";
+ next;
+
+ mes "[Orum]";
+ mes "\"Did you find a way past any of the barriers yet?\"";
+ next;
+
+ menu
+ "No, I'm still not sure how..", L_Explain_Torches_More,
+ "I need more of that powder.", L_More_Powder,
+ "I'm still trying..", -;
+
+ mes "[Orum]";
+ mes "\"Excellent! Let me know when you've made any progress.\"";
+ close;
+
+L_Explain_Torches_More:
+ mes "[Orum]";
+ mes "\"Most of the barriers here have a certain color radiating from them and so do the torches. The torches seem to react with this powder so maybe we have to make these torches turn a certain color in order to lower the barriers.\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"It seems that the powders are only in these 3 colors, so you may have to experiment a bit to get the colors right.\"";
+ next;
+
+ mes "[Orum]";
+ mes "\"Also while looking around I saw that behind one of the barriers was a cave. Maybe Waric is in there.. we should try to get that barrier dropped.\"";
+ close;
+
+L_More_Powder:
+ mes "[Orum]";
+ mes "\"You really used up that powder fast.. Luckily I can make more as long as you can bring me those materials again.\"";
+ next;
+
+ menu
+ "I have them right here!", L_More_Powder_Make,
+ "Hmmm.. what are they again?", L_List_Materials_More,
+ "I'll go get those for you..", -;
+
+ mes "[Orum]";
+ mes "\"You better not waste any time gathering those materials!\"";
+ close;
+
+L_More_Powder_Make:
+ if (countitem("IronPowder") < @BT_IRONPOWDER ||
+ countitem("PileOfAsh") < @BT_PILESOFASH ||
+ countitem("GambogeHerb") < @BT_HERBS ||
+ countitem("AlizarinHerb") < @BT_HERBS ||
+ countitem("CobaltHerb") < @BT_HERBS) goto L_Missing_Materials_More;
+
+ delitem "IronPowder", @BT_IRONPOWDER;
+ delitem "PileOfAsh", @BT_PILESOFASH;
+ delitem "GambogeHerb", @BT_HERBS;
+ delitem "AlizarinHerb", @BT_HERBS;
+ delitem "CobaltHerb", @BT_HERBS;
+
+ mes "[Orum]";
+ mes "\"Hmm all of the items appear to be here.. Give me a moment to make that powder for you.\"";
+ next;
+
+ mes "Orum begins chanting the same words as he did when he made the powder before.. He seems to be quicker at it this time..";
+ misceffect sfx_magic_transmute;
+ next;
+
+ mes "[Orum]";
+ mes "\"Here you are. And try to conserve this time! The more powder I have to make, the more time and resources we use up that we could be using to save Waric!\"";
+
+ getitem "RedPowder", @BT_REWARDCOUNT;
+ getitem "YellowPowder", @BT_REWARDCOUNT;
+ getitem "BluePowder", @BT_REWARDCOUNT;
+ close;
+
+L_Finished_Up:
+ mes "As you approch you think you see Orum rolling his eyes.. maybe you're imagining it..";
+ next;
+
+ mes "[Orum]";
+ mes "\"I hope you finally dropped that barrier we need to get past!\"";
+ next;
+
+ menu
+ "Actually.. I have!", L_Enter_Cavern,
+ "I need more of that powder.", L_More_Powder,
+ "Cut me some slack! I'm working on it!", -;
+
+ mes "[Orum]";
+ mes "\"Just hurry it up! Warics life is on the line here!\"";
+ close;
+
+L_Enter_Cavern:
+ if (OrumQuest >= 10) goto L_Ready_Cavern;
+
+ mes "Orum heads to the barrier then gives you a look as if he does not believe you before walking forward..";
+ next;
+
+ mes "He is suddenly thrown against the wall behind him! Angered, he gets up, brushes himself off, and heads back to the entrance without speaking.";
+ close;
+
+L_Ready_Cavern:
+ // you should not get that twice ;)
+ if (OrumQuest == 12) goto L_Got_Reward;
+
+ mes "Orum heads to the barrier then gives you a look as if he does not believe you before walking forward..";
+ next;
+
+ mes "He makes it through without any problems and grins.";
+ next;
+
+ mes "[Orum]";
+ mes "\"Very good work you have done! Please take this for your efforts. It has helped me in a bind.\"";
+ next;
+
+ getexp @EXP_BREAK_BARRIERS, 0;
+ getitem "CandleHelmet", 1;
+ mes "You receive the Candle Helmet";
+ next;
+
+ mes "\"You've done enough here to help. I will go the rest of the way alone so that your life is not endangered.. You must promise me not to go any further!\"";
+ next;
+
+ menu
+ "Sure, I promise!", -,
+ "I thought this would never be over!", -;
+
+ mes "[Orum]";
+ mes "\"Well I guess this is farewell!\"";
+ set OrumQuest, 12;
+ close;
+
+L_Got_Reward:
+ mes "\"You've done enough here to help. I will go the rest of the way alone so that your life is not endangered..\"";
+ close;
+}
diff --git a/npc/009-4/torches.txt b/npc/009-4/torches.txt
index bff94f0d..f4d2cede 100644
--- a/npc/009-4/torches.txt
+++ b/npc/009-4/torches.txt
@@ -1,365 +1,365 @@
-//# see detailed description at orum.txt
-function script GetTorchColor {
- if (@Torch < 0 || @Torch > 2) goto L_Error;
-
- set @Mask, 15;
- set @Shift, 4 * @Torch;
- set @TorchColor, (OrumQuestTorch >> @Shift) & @Mask;
- return;
-
-L_Error:
- mes "Torch number is out of range.";
- close;
-}
-
-function script SetTorchColor {
- if (@Torch < 0 || @Torch > 2) goto L_Error;
- if (@Color < 1 || @Color > 12) goto L_Error2;
-
- set @Mask, (15 << (4 * @Torch));
- set OrumQuestTorch, (OrumQuestTorch & (~(@Mask))) | @Color << (4 * @Torch);
- return;
-
-L_Error:
- mes "Torch number is out of range.";
- close;
-
-L_Error2:
- mes "Torch color is out of range.";
- close;
-}
-
-function script GetTorchIntensity {
- if (@Torch < 0 || @Torch > 2) goto L_Error;
-
- set @Mask, 15;
- set @Shift, 4 * (@Torch + 3);
- set @TorchIntensity, (OrumQuestTorch >> @Shift) & @Mask;
- return;
-
-L_Error:
- mes "Torch number is out of range.";
- close;
-}
-
-function script SetTorchIntensity {
- if (@Torch < 0 || @Torch > 2) goto L_Error;
- if (@Intensity < 0 || @Intensity > 2) goto L_Error2;
-
- set @Mask, (15 << (4 * (@Torch + 3)));
- set OrumQuestTorch, (OrumQuestTorch & (~(@Mask))) | @Intensity << (4 * (@Torch + 3));
- return;
-
-L_Error:
- mes "Torch number is out of range.";
- close;
-
-L_Error2:
- mes "Torch intensity is out of range.";
- close;
-}
-
-function script DoneWithTorches {
- if (OrumQuest < 11 && OrumQuest >= 8)
- return;
-
- if (OrumQuest < 7) goto L_Different;
-
- if (OrumQuest >= 11)
- mes "The flame on the torch looks ordinary.. Lowering the final barrier seems to have drained them of their magic.";
-
- if (OrumQuest < 8)
- mes "Without that powder the note mentions there isn't much you can do with this torch..";
-
- close;
-
-L_Different:
- mes "The flame on this torch looks different than the rest.. You better tell Orum about it before doing anything.";
- set OrumQuest, 6;
- close;
-}
-
-// To make sure in range of torches
-function script InRangeTorch1 {
- if (isin("009-4.gat",67,20,69,25))
- return;
-
- mes "You're too far away to do anything with that torch.";
- close;
-}
-function script InRangeTorch2 {
- if (isin("009-4.gat",65,41,69,46))
- return;
-
- mes "You're too far away to do anything with that torch.";
- close;
-}
-function script InRangeTorch3 {
- if (isin("009-4.gat",33,84,37,88))
- return;
-
- mes "You're too far away to do anything with that torch.";
- close;
-}
-
-// First Torch
-009-4.gat,68,21,0 script Torch 127,{
- callfunc "InRangeTorch1";
- callfunc "DoneWithTorches";
-
- set @Torch, 0;
- callfunc("GetTorchColor");
- callfunc("GetTorchIntensity");
-
- set @lastColor, @TorchColor;
- setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
- setarray @intensities$,"calm","bright","blinding";
- mes "Looking closely you notice that this torch is not like the others.. This one has a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + " tint to it.";
- goto L_Color_Loop;
-
-L_Color_Loop:
- callfunc("GetTorchColor");
- menu
- "Add Red Powder", L_Use_Red,
- "Add Yellow Powder", L_Use_Yellow,
- "Add Blue Powder", L_Use_Blue,
- "Leave it alone.", -;
-
- mes "The flame flickers as if it's laughing at you..";
- close;
-
-L_Use_Red:
- if (countitem("RedPowder") < 1) goto L_No_Powder;
- if (@TorchColor > 6 && @TorchColor < 12) set @Color, @TorchColor + 1;
- if (@TorchColor < 6 && @TorchColor > 1) set @Color, @TorchColor - 1;
- if (@TorchColor == 12) set @Color, 1;
+//# see detailed description at orum.txt
+function script GetTorchColor {
+ if (@Torch < 0 || @Torch > 2) goto L_Error;
+
+ set @Mask, 15;
+ set @Shift, 4 * @Torch;
+ set @TorchColor, (OrumQuestTorch >> @Shift) & @Mask;
+ return;
+
+L_Error:
+ mes "Torch number is out of range.";
+ close;
+}
+
+function script SetTorchColor {
+ if (@Torch < 0 || @Torch > 2) goto L_Error;
+ if (@Color < 1 || @Color > 12) goto L_Error2;
+
+ set @Mask, (15 << (4 * @Torch));
+ set OrumQuestTorch, (OrumQuestTorch & (~(@Mask))) | @Color << (4 * @Torch);
+ return;
+
+L_Error:
+ mes "Torch number is out of range.";
+ close;
+
+L_Error2:
+ mes "Torch color is out of range.";
+ close;
+}
+
+function script GetTorchIntensity {
+ if (@Torch < 0 || @Torch > 2) goto L_Error;
+
+ set @Mask, 15;
+ set @Shift, 4 * (@Torch + 3);
+ set @TorchIntensity, (OrumQuestTorch >> @Shift) & @Mask;
+ return;
+
+L_Error:
+ mes "Torch number is out of range.";
+ close;
+}
+
+function script SetTorchIntensity {
+ if (@Torch < 0 || @Torch > 2) goto L_Error;
+ if (@Intensity < 0 || @Intensity > 2) goto L_Error2;
+
+ set @Mask, (15 << (4 * (@Torch + 3)));
+ set OrumQuestTorch, (OrumQuestTorch & (~(@Mask))) | @Intensity << (4 * (@Torch + 3));
+ return;
+
+L_Error:
+ mes "Torch number is out of range.";
+ close;
+
+L_Error2:
+ mes "Torch intensity is out of range.";
+ close;
+}
+
+function script DoneWithTorches {
+ if (OrumQuest < 11 && OrumQuest >= 8)
+ return;
+
+ if (OrumQuest < 7) goto L_Different;
+
+ if (OrumQuest >= 11)
+ mes "The flame on the torch looks ordinary.. Lowering the final barrier seems to have drained them of their magic.";
+
+ if (OrumQuest < 8)
+ mes "Without that powder the note mentions there isn't much you can do with this torch..";
+
+ close;
+
+L_Different:
+ mes "The flame on this torch looks different than the rest.. You better tell Orum about it before doing anything.";
+ set OrumQuest, 6;
+ close;
+}
+
+// To make sure in range of torches
+function script InRangeTorch1 {
+ if (isin("009-4.gat",67,20,69,25))
+ return;
+
+ mes "You're too far away to do anything with that torch.";
+ close;
+}
+function script InRangeTorch2 {
+ if (isin("009-4.gat",65,41,69,46))
+ return;
+
+ mes "You're too far away to do anything with that torch.";
+ close;
+}
+function script InRangeTorch3 {
+ if (isin("009-4.gat",33,84,37,88))
+ return;
+
+ mes "You're too far away to do anything with that torch.";
+ close;
+}
+
+// First Torch
+009-4.gat,68,21,0 script Torch 127,{
+ callfunc "InRangeTorch1";
+ callfunc "DoneWithTorches";
+
+ set @Torch, 0;
+ callfunc("GetTorchColor");
+ callfunc("GetTorchIntensity");
+
+ set @lastColor, @TorchColor;
+ setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
+ setarray @intensities$,"calm","bright","blinding";
+ mes "Looking closely you notice that this torch is not like the others.. This one has a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + " tint to it.";
+ goto L_Color_Loop;
+
+L_Color_Loop:
+ callfunc("GetTorchColor");
+ menu
+ "Add Red Powder", L_Use_Red,
+ "Add Yellow Powder", L_Use_Yellow,
+ "Add Blue Powder", L_Use_Blue,
+ "Leave it alone.", -;
+
+ mes "The flame flickers as if it's laughing at you..";
+ close;
+
+L_Use_Red:
+ if (countitem("RedPowder") < 1) goto L_No_Powder;
+ if (@TorchColor > 6 && @TorchColor < 12) set @Color, @TorchColor + 1;
+ if (@TorchColor < 6 && @TorchColor > 1) set @Color, @TorchColor - 1;
+ if (@TorchColor == 12) set @Color, 1;
if (@TorchColor == 0) set @Color, 1;
- callfunc("SetTorchColor");
- delitem "RedPowder", 1;
- goto L_Show_Color;
-
-L_Use_Yellow:
- if (countitem("YellowPowder") < 1) goto L_No_Powder;
- if (@TorchColor < 10 && @TorchColor > 5) set @Color, @TorchColor - 1;
- if (@TorchColor >= 1 && @TorchColor < 5) set @Color, @TorchColor + 1;
+ callfunc("SetTorchColor");
+ delitem "RedPowder", 1;
+ goto L_Show_Color;
+
+L_Use_Yellow:
+ if (countitem("YellowPowder") < 1) goto L_No_Powder;
+ if (@TorchColor < 10 && @TorchColor > 5) set @Color, @TorchColor - 1;
+ if (@TorchColor >= 1 && @TorchColor < 5) set @Color, @TorchColor + 1;
if (@TorchColor == 0) set @Color, 5;
- callfunc("SetTorchColor");
- delitem "YellowPowder", 1;
- goto L_Show_Color;
-
-L_Use_Blue:
- if (countitem("BluePowder") < 1) goto L_No_Powder;
- if (@TorchColor > 4 && @TorchColor < 9) set @Color, @TorchColor + 1;
- if (@TorchColor <= 12 && @TorchColor > 9) set @Color, @TorchColor - 1;
- if (@TorchColor == 1) set @Color, 12;
+ callfunc("SetTorchColor");
+ delitem "YellowPowder", 1;
+ goto L_Show_Color;
+
+L_Use_Blue:
+ if (countitem("BluePowder") < 1) goto L_No_Powder;
+ if (@TorchColor > 4 && @TorchColor < 9) set @Color, @TorchColor + 1;
+ if (@TorchColor <= 12 && @TorchColor > 9) set @Color, @TorchColor - 1;
+ if (@TorchColor == 1) set @Color, 12;
if (@TorchColor == 0) set @Color, 9;
- callfunc("SetTorchColor");
- delitem "BluePowder", 1;
- goto L_Show_Color;
-
-L_No_Powder:
- mes "You notice you're all out of that color of powder.. Perhaps Orum can make you some more.";
- close;
-
-L_Show_Color:
- callfunc("GetTorchColor");
- callfunc("GetTorchIntensity");
- if (@TorchColor == @lastColor) goto L_Wrong_Color;
- misceffect 5;
- set @lastColor, @TorchColor;
- mes "As your pour the powder into the flame you can see its tint transform to a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
- goto L_Color_Loop;
-
-L_Wrong_Color:
- set @Intensity, @TorchIntensity + 1;
- if (@Intensity > 2) goto L_Failed;
- callfunc("SetTorchIntensity");
- callfunc("GetTorchIntensity");
- misceffect 5;
- mes "As you pour the powder into the flame it flares violently for a moment and then turns into a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
- goto L_Color_Loop;
-
-L_Failed:
- mes "As you pour the powder into the flame it flares violently before bursting into your face!";
- misceffect 5;
- misceffect 16;
- set @Intensity, 0;
- callfunc("SetTorchIntensity");
- heal -Hp, 0;
- close;
-}
-
-// Second Torch
-009-4.gat,67,42,0 script Torch 127,{
- callfunc "InRangeTorch2";
- callfunc "DoneWithTorches";
-
- set @Torch, 1;
- callfunc("GetTorchColor");
- callfunc("GetTorchIntensity");
-
- set @lastColor, @TorchColor;
- setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
- mes "Looking closely you notice that this torch is not like the others.. This one has a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + " tint to it.";
- goto L_Color_Loop;
-
-L_Color_Loop:
- callfunc("GetTorchColor");
- menu
- "Add Red Powder", L_Use_Red,
- "Add Yellow Powder", L_Use_Yellow,
- "Add Blue Powder", L_Use_Blue,
- "Leave it alone.", -;
-
- mes "The flame flickers as if it's laughing at you..";
- close;
-
-L_Use_Red:
- if (countitem("RedPowder") < 1) goto L_No_Powder;
- if (@TorchColor > 6 && @TorchColor < 12) set @Color, @TorchColor + 1;
- if (@TorchColor < 6 && @TorchColor > 1) set @Color, @TorchColor - 1;
- if (@TorchColor == 12) set @Color, 1;
+ callfunc("SetTorchColor");
+ delitem "BluePowder", 1;
+ goto L_Show_Color;
+
+L_No_Powder:
+ mes "You notice you're all out of that color of powder.. Perhaps Orum can make you some more.";
+ close;
+
+L_Show_Color:
+ callfunc("GetTorchColor");
+ callfunc("GetTorchIntensity");
+ if (@TorchColor == @lastColor) goto L_Wrong_Color;
+ misceffect 5;
+ set @lastColor, @TorchColor;
+ mes "As your pour the powder into the flame you can see its tint transform to a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
+ goto L_Color_Loop;
+
+L_Wrong_Color:
+ set @Intensity, @TorchIntensity + 1;
+ if (@Intensity > 2) goto L_Failed;
+ callfunc("SetTorchIntensity");
+ callfunc("GetTorchIntensity");
+ misceffect 5;
+ mes "As you pour the powder into the flame it flares violently for a moment and then turns into a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
+ goto L_Color_Loop;
+
+L_Failed:
+ mes "As you pour the powder into the flame it flares violently before bursting into your face!";
+ misceffect 5;
+ misceffect 16;
+ set @Intensity, 0;
+ callfunc("SetTorchIntensity");
+ heal -Hp, 0;
+ close;
+}
+
+// Second Torch
+009-4.gat,67,42,0 script Torch 127,{
+ callfunc "InRangeTorch2";
+ callfunc "DoneWithTorches";
+
+ set @Torch, 1;
+ callfunc("GetTorchColor");
+ callfunc("GetTorchIntensity");
+
+ set @lastColor, @TorchColor;
+ setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
+ mes "Looking closely you notice that this torch is not like the others.. This one has a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + " tint to it.";
+ goto L_Color_Loop;
+
+L_Color_Loop:
+ callfunc("GetTorchColor");
+ menu
+ "Add Red Powder", L_Use_Red,
+ "Add Yellow Powder", L_Use_Yellow,
+ "Add Blue Powder", L_Use_Blue,
+ "Leave it alone.", -;
+
+ mes "The flame flickers as if it's laughing at you..";
+ close;
+
+L_Use_Red:
+ if (countitem("RedPowder") < 1) goto L_No_Powder;
+ if (@TorchColor > 6 && @TorchColor < 12) set @Color, @TorchColor + 1;
+ if (@TorchColor < 6 && @TorchColor > 1) set @Color, @TorchColor - 1;
+ if (@TorchColor == 12) set @Color, 1;
if (@TorchColor == 0) set @Color, 1;
- callfunc("SetTorchColor");
- delitem "RedPowder", 1;
- goto L_Show_Color;
-
-L_Use_Yellow:
- if (countitem("YellowPowder") < 1) goto L_No_Powder;
- if (@TorchColor < 10 && @TorchColor > 5) set @Color, @TorchColor - 1;
- if (@TorchColor >= 1 && @TorchColor < 5) set @Color, @TorchColor + 1;
+ callfunc("SetTorchColor");
+ delitem "RedPowder", 1;
+ goto L_Show_Color;
+
+L_Use_Yellow:
+ if (countitem("YellowPowder") < 1) goto L_No_Powder;
+ if (@TorchColor < 10 && @TorchColor > 5) set @Color, @TorchColor - 1;
+ if (@TorchColor >= 1 && @TorchColor < 5) set @Color, @TorchColor + 1;
if (@TorchColor == 0) set @Color, 5;
- callfunc("SetTorchColor");
- delitem "YellowPowder", 1;
- goto L_Show_Color;
-
-L_Use_Blue:
- if (countitem("BluePowder") < 1) goto L_No_Powder;
- if (@TorchColor > 4 && @TorchColor < 9) set @Color, @TorchColor + 1;
- if (@TorchColor <= 12 && @TorchColor > 9) set @Color, @TorchColor - 1;
- if (@TorchColor == 1) set @Color, 12;
+ callfunc("SetTorchColor");
+ delitem "YellowPowder", 1;
+ goto L_Show_Color;
+
+L_Use_Blue:
+ if (countitem("BluePowder") < 1) goto L_No_Powder;
+ if (@TorchColor > 4 && @TorchColor < 9) set @Color, @TorchColor + 1;
+ if (@TorchColor <= 12 && @TorchColor > 9) set @Color, @TorchColor - 1;
+ if (@TorchColor == 1) set @Color, 12;
if (@TorchColor == 0) set @Color, 9;
- callfunc("SetTorchColor");
- delitem "BluePowder", 1;
- goto L_Show_Color;
-
-L_No_Powder:
- mes "You notice you're all out of that color powder.. Perhaps Orum can make you some more.";
- close;
-
-L_Show_Color:
- callfunc("GetTorchColor");
- callfunc("GetTorchIntensity");
- if (@TorchColor == @lastColor) goto L_Wrong_Color;
- misceffect 5;
- set @lastColor, @TorchColor;
- mes "As your pour the powder into the flame you can see its tint transform to a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
- goto L_Color_Loop;
-
-L_Wrong_Color:
- set @Intensity, @TorchIntensity + 1;
- if (@Intensity > 2) goto L_Failed;
- callfunc("SetTorchIntensity");
- callfunc("GetTorchIntensity");
- misceffect 5;
- mes "As you pour the powder into the flame it flares violently for a moment and then turns into a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
- goto L_Color_Loop;
-
-L_Failed:
- mes "As you pour the powder into the flame it flares violently before bursting into your face!";
- misceffect 5;
- misceffect 16;
- set @Intensity, 0;
- callfunc("SetTorchIntensity");
- heal -Hp, 0;
- close;
-}
-
-
-// Third Torch
-009-4.gat,33,86,0 script Torch 127,{
- callfunc "InRangeTorch3";
- callfunc "DoneWithTorches";
-
- set @Torch, 2;
- callfunc("GetTorchColor");
- callfunc("GetTorchIntensity");
-
- set @lastColor, @TorchColor;
- setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
- setarray @intensities$,"calm","bright","blinding";
- mes "Looking closely you notice that this torch is not like the others.. This one has a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + " tint to it.";
- goto L_Color_Loop;
-
-L_Too_Far:
- mes "You're too far away to do anything with that torch.";
- close;
-
-L_Color_Loop:
- callfunc("GetTorchColor");
- menu
- "Add Red Powder", L_Use_Red,
- "Add Yellow Powder", L_Use_Yellow,
- "Add Blue Powder", L_Use_Blue,
- "Leave it alone.", -;
-
- mes "The flame flickers as if it's laughing at you..";
- close;
-
-L_Use_Red:
- if (countitem("RedPowder") < 1) goto L_No_Powder;
- if (@TorchColor > 6 && @TorchColor < 12) set @Color, @TorchColor + 1;
- if (@TorchColor < 6 && @TorchColor > 1) set @Color, @TorchColor - 1;
- if (@TorchColor == 12) set @Color, 1;
- callfunc("SetTorchColor");
- delitem "RedPowder", 1;
- goto L_Show_Color;
-
-L_Use_Yellow:
- if (countitem("YellowPowder") < 1) goto L_No_Powder;
- if (@TorchColor < 10 && @TorchColor > 5) set @Color, @TorchColor - 1;
- if (@TorchColor >= 1 && @TorchColor < 5) set @Color, @TorchColor + 1;
- callfunc("SetTorchColor");
- delitem "YellowPowder", 1;
- goto L_Show_Color;
-
-L_Use_Blue:
- if (countitem("BluePowder") < 1) goto L_No_Powder;
- if (@TorchColor > 4 && @TorchColor < 9) set @Color, @TorchColor + 1;
- if (@TorchColor <= 12 && @TorchColor > 9) set @Color, @TorchColor - 1;
- if (@TorchColor == 1) set @Color, 12;
- callfunc("SetTorchColor");
- delitem "BluePowder", 1;
- goto L_Show_Color;
-
-L_No_Powder:
- mes "You notice you're all out of that color powder.. Perhaps Orum can make you some more.";
- close;
-
-L_Show_Color:
- callfunc("GetTorchColor");
- callfunc("GetTorchIntensity");
- if (@TorchColor == @lastColor) goto L_Wrong_Color;
- misceffect 5;
- set @lastColor, @TorchColor;
- mes "As your pour the powder into the flame you can see its tint transform to a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
- goto L_Color_Loop;
-
-L_Wrong_Color:
- set @Intensity, @TorchIntensity + 1;
- if (@Intensity > 2) goto L_Failed;
- callfunc("SetTorchIntensity");
- callfunc("GetTorchIntensity");
- misceffect 5;
- mes "As you pour the powder into the flame it flares violently for a moment and then turns into a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
- goto L_Color_Loop;
-
-L_Failed:
- mes "As you pour the powder into the flame it flares violently before bursting into your face!";
- misceffect 5;
- misceffect 16;
- set @Intensity, 0;
- callfunc("SetTorchIntensity");
- heal -Hp, 0;
- close;
-}
+ callfunc("SetTorchColor");
+ delitem "BluePowder", 1;
+ goto L_Show_Color;
+
+L_No_Powder:
+ mes "You notice you're all out of that color powder.. Perhaps Orum can make you some more.";
+ close;
+
+L_Show_Color:
+ callfunc("GetTorchColor");
+ callfunc("GetTorchIntensity");
+ if (@TorchColor == @lastColor) goto L_Wrong_Color;
+ misceffect 5;
+ set @lastColor, @TorchColor;
+ mes "As your pour the powder into the flame you can see its tint transform to a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
+ goto L_Color_Loop;
+
+L_Wrong_Color:
+ set @Intensity, @TorchIntensity + 1;
+ if (@Intensity > 2) goto L_Failed;
+ callfunc("SetTorchIntensity");
+ callfunc("GetTorchIntensity");
+ misceffect 5;
+ mes "As you pour the powder into the flame it flares violently for a moment and then turns into a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
+ goto L_Color_Loop;
+
+L_Failed:
+ mes "As you pour the powder into the flame it flares violently before bursting into your face!";
+ misceffect 5;
+ misceffect 16;
+ set @Intensity, 0;
+ callfunc("SetTorchIntensity");
+ heal -Hp, 0;
+ close;
+}
+
+
+// Third Torch
+009-4.gat,33,86,0 script Torch 127,{
+ callfunc "InRangeTorch3";
+ callfunc "DoneWithTorches";
+
+ set @Torch, 2;
+ callfunc("GetTorchColor");
+ callfunc("GetTorchIntensity");
+
+ set @lastColor, @TorchColor;
+ setarray @colors$,"transparent","red","dark orange","orange","light orange","yellow","light green","green","dark green","blue","dark purple","purple","light purple";
+ setarray @intensities$,"calm","bright","blinding";
+ mes "Looking closely you notice that this torch is not like the others.. This one has a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + " tint to it.";
+ goto L_Color_Loop;
+
+L_Too_Far:
+ mes "You're too far away to do anything with that torch.";
+ close;
+
+L_Color_Loop:
+ callfunc("GetTorchColor");
+ menu
+ "Add Red Powder", L_Use_Red,
+ "Add Yellow Powder", L_Use_Yellow,
+ "Add Blue Powder", L_Use_Blue,
+ "Leave it alone.", -;
+
+ mes "The flame flickers as if it's laughing at you..";
+ close;
+
+L_Use_Red:
+ if (countitem("RedPowder") < 1) goto L_No_Powder;
+ if (@TorchColor > 6 && @TorchColor < 12) set @Color, @TorchColor + 1;
+ if (@TorchColor < 6 && @TorchColor > 1) set @Color, @TorchColor - 1;
+ if (@TorchColor == 12) set @Color, 1;
+ callfunc("SetTorchColor");
+ delitem "RedPowder", 1;
+ goto L_Show_Color;
+
+L_Use_Yellow:
+ if (countitem("YellowPowder") < 1) goto L_No_Powder;
+ if (@TorchColor < 10 && @TorchColor > 5) set @Color, @TorchColor - 1;
+ if (@TorchColor >= 1 && @TorchColor < 5) set @Color, @TorchColor + 1;
+ callfunc("SetTorchColor");
+ delitem "YellowPowder", 1;
+ goto L_Show_Color;
+
+L_Use_Blue:
+ if (countitem("BluePowder") < 1) goto L_No_Powder;
+ if (@TorchColor > 4 && @TorchColor < 9) set @Color, @TorchColor + 1;
+ if (@TorchColor <= 12 && @TorchColor > 9) set @Color, @TorchColor - 1;
+ if (@TorchColor == 1) set @Color, 12;
+ callfunc("SetTorchColor");
+ delitem "BluePowder", 1;
+ goto L_Show_Color;
+
+L_No_Powder:
+ mes "You notice you're all out of that color powder.. Perhaps Orum can make you some more.";
+ close;
+
+L_Show_Color:
+ callfunc("GetTorchColor");
+ callfunc("GetTorchIntensity");
+ if (@TorchColor == @lastColor) goto L_Wrong_Color;
+ misceffect 5;
+ set @lastColor, @TorchColor;
+ mes "As your pour the powder into the flame you can see its tint transform to a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
+ goto L_Color_Loop;
+
+L_Wrong_Color:
+ set @Intensity, @TorchIntensity + 1;
+ if (@Intensity > 2) goto L_Failed;
+ callfunc("SetTorchIntensity");
+ callfunc("GetTorchIntensity");
+ misceffect 5;
+ mes "As you pour the powder into the flame it flares violently for a moment and then turns into a " + @intensities$[@TorchIntensity] + " " + @colors$[@TorchColor] + "..";
+ goto L_Color_Loop;
+
+L_Failed:
+ mes "As you pour the powder into the flame it flares violently before bursting into your face!";
+ misceffect 5;
+ misceffect 16;
+ set @Intensity, 0;
+ callfunc("SetTorchIntensity");
+ heal -Hp, 0;
+ close;
+}
diff --git a/npc/009-4/waric.txt b/npc/009-4/waric.txt
index b160dfbb..9eb8e0b2 100644
--- a/npc/009-4/waric.txt
+++ b/npc/009-4/waric.txt
@@ -1,95 +1,95 @@
-//# see detailed description at orum.txt
-
-009-4.gat,99,33,0 script #WizardTrap 0,2,1,{
- set @gender$, "They're";
- if (Sex == 0) set @gender$, "She's";
- if (Sex == 1) set @gender$, "He's";
-
- mes "As you explore further into the cave you see a figure looking at you who appears angry.. but as you begin to speak, he quickly chants some words and you start to lose conciousness!";
- next;
- warp "009-4.gat", 117, 40;
- mes "When you awake you find yourself unable to move.. You seem to be held in place by something.. As your eyes regain focus you see Orum talking with the figure you saw earlier.. Orum looks over at you and mumbles";
- mes "";
- mes "[Orum]";
- mes "\"Be quiet Waric.. " + @gender$ + " awake..\"";
- close;
-}
-
-009-4.gat,120,43,0 script Orum 158,{
- mes "[Orum]";
- mes "\"I told you to forget about this place but you did not heed my advice!\"";
- next;
- mes "[Orum]";
- mes "\"Your fate is up to Waric now.. don't expect me to do anything else for you.\"";
- close;
-}
-
-009-4.gat,118,42,0 script Waric 153,{
- set @EXP_LEARNED_ALOT, 10000;
- if (OrumQuest >= 13) goto L_Behave;
- mes "Waric looks toward you rubbing his chin..";
- next;
- mes "[Waric]";
- mes "\"So... Orum tells me your the one that helped him break me out of this dreadful place, so I guess I must thank you for that.\"";
- next;
- menu
- "My pleasure! Mind letting me out of here?", L_Explain,
- "This doesn't look like a thank you!", L_Explain,
- "Let me out of here at once!", -;
-
- mes "Waric turns toward Orum..";
- next;
- mes "[Waric]";
- mes "\"We've got a feisty one here Orum!\"";
- next;
- mes "They begin discussing plans of some sort..";
- set OrumQuest, 13;
- close;
-
-L_Behave:
- mes "Waric looks toward you shaking his finger..";
- next;
- mes "[Waric]";
- mes "\"So... are you ready to behave yourself now?\"";
- next;
- menu
- "Yes mister..", L_Explain,
- "No I'm not ready yet!", -;
-
- mes "[Waric]";
- mes "\"Having fun I take it?\"";
- next;
- mes "They continue discussing their plans..";
- close;
-
-L_Explain:
- mes "[Waric]";
- mes "\"I'm not sure what Orum told you but I was not kidnapped and brought here.. I was in fact imprisoned here very long ago by a witch for practicing spells on the insignificant forest life.\"";
- next;
- mes "[Waric]";
- mes "\"She cared about the forest and all of that stuff you see. Now this cave is not bad.. I actually enjoyed it the first nights, but after a few years...\"";
- next;
- mes "Waric gets a bitter look and his face and pauses for a moment..";
- next;
- mes "[Waric]";
- mes "\"So now you can see my motive to get out of here. The only air and water I get is what's given to me through that cave over there. And as for food.. theres only so many recipes for cave snakes and silk worms...\"";
- next;
- mes "Waric shivers in disgust..";
- next;
- mes "[Woric]";
- mes "\"I'm sorry I had to constrain you like this but now that I'm free, I'm not about to let anyone stand in my way!\"";
- next;
- mes "[Waric]";
- mes "\"Now if you'll excuse us, Orum and I have some things to attend to.. And don't bother coming back to stop us because we'll be long gone.\"";
- next;
- mes "Waric raises his hands and begins chanting some words.. You watch as streams of energy begin swirling around you..";
- next;
- mes "Once more you start to lose conciousness as your surroundings begin to fade..";
- next;
- set OrumQuest, 14;
- misceffect 10;
- warp "008-1.gat", 65, 90;
- mes "You awake on your back with a squrrel sitting on top of you arranging it's acorns.. It quickly gathers them up and runs off as it sees you looking at it them..";
- getexp @EXP_LEARNED_ALOT, 0;
- close;
-}
+//# see detailed description at orum.txt
+
+009-4.gat,99,33,0 script #WizardTrap 0,2,1,{
+ set @gender$, "They're";
+ if (Sex == 0) set @gender$, "She's";
+ if (Sex == 1) set @gender$, "He's";
+
+ mes "As you explore further into the cave you see a figure looking at you who appears angry.. but as you begin to speak, he quickly chants some words and you start to lose conciousness!";
+ next;
+ warp "009-4.gat", 117, 40;
+ mes "When you awake you find yourself unable to move.. You seem to be held in place by something.. As your eyes regain focus you see Orum talking with the figure you saw earlier.. Orum looks over at you and mumbles";
+ mes "";
+ mes "[Orum]";
+ mes "\"Be quiet Waric.. " + @gender$ + " awake..\"";
+ close;
+}
+
+009-4.gat,120,43,0 script Orum 158,{
+ mes "[Orum]";
+ mes "\"I told you to forget about this place but you did not heed my advice!\"";
+ next;
+ mes "[Orum]";
+ mes "\"Your fate is up to Waric now.. don't expect me to do anything else for you.\"";
+ close;
+}
+
+009-4.gat,118,42,0 script Waric 153,{
+ set @EXP_LEARNED_ALOT, 10000;
+ if (OrumQuest >= 13) goto L_Behave;
+ mes "Waric looks toward you rubbing his chin..";
+ next;
+ mes "[Waric]";
+ mes "\"So... Orum tells me your the one that helped him break me out of this dreadful place, so I guess I must thank you for that.\"";
+ next;
+ menu
+ "My pleasure! Mind letting me out of here?", L_Explain,
+ "This doesn't look like a thank you!", L_Explain,
+ "Let me out of here at once!", -;
+
+ mes "Waric turns toward Orum..";
+ next;
+ mes "[Waric]";
+ mes "\"We've got a feisty one here Orum!\"";
+ next;
+ mes "They begin discussing plans of some sort..";
+ set OrumQuest, 13;
+ close;
+
+L_Behave:
+ mes "Waric looks toward you shaking his finger..";
+ next;
+ mes "[Waric]";
+ mes "\"So... are you ready to behave yourself now?\"";
+ next;
+ menu
+ "Yes mister..", L_Explain,
+ "No I'm not ready yet!", -;
+
+ mes "[Waric]";
+ mes "\"Having fun I take it?\"";
+ next;
+ mes "They continue discussing their plans..";
+ close;
+
+L_Explain:
+ mes "[Waric]";
+ mes "\"I'm not sure what Orum told you but I was not kidnapped and brought here.. I was in fact imprisoned here very long ago by a witch for practicing spells on the insignificant forest life.\"";
+ next;
+ mes "[Waric]";
+ mes "\"She cared about the forest and all of that stuff you see. Now this cave is not bad.. I actually enjoyed it the first nights, but after a few years...\"";
+ next;
+ mes "Waric gets a bitter look and his face and pauses for a moment..";
+ next;
+ mes "[Waric]";
+ mes "\"So now you can see my motive to get out of here. The only air and water I get is what's given to me through that cave over there. And as for food.. theres only so many recipes for cave snakes and silk worms...\"";
+ next;
+ mes "Waric shivers in disgust..";
+ next;
+ mes "[Woric]";
+ mes "\"I'm sorry I had to constrain you like this but now that I'm free, I'm not about to let anyone stand in my way!\"";
+ next;
+ mes "[Waric]";
+ mes "\"Now if you'll excuse us, Orum and I have some things to attend to.. And don't bother coming back to stop us because we'll be long gone.\"";
+ next;
+ mes "Waric raises his hands and begins chanting some words.. You watch as streams of energy begin swirling around you..";
+ next;
+ mes "Once more you start to lose conciousness as your surroundings begin to fade..";
+ next;
+ set OrumQuest, 14;
+ misceffect 10;
+ warp "008-1.gat", 65, 90;
+ mes "You awake on your back with a squrrel sitting on top of you arranging it's acorns.. It quickly gathers them up and runs off as it sees you looking at it them..";
+ getexp @EXP_LEARNED_ALOT, 0;
+ close;
+}
diff --git a/npc/010-1_Woodland/_import.txt b/npc/010-1/_import.txt
index a47035cb..c784dbe5 100644
--- a/npc/010-1_Woodland/_import.txt
+++ b/npc/010-1/_import.txt
@@ -1,4 +1,5 @@
+// Map 010-1: Woodland
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 010-1.gat
-npc: npc/010-1_Woodland/_mobs.txt
-npc: npc/010-1_Woodland/_warps.txt
+npc: npc/010-1/_mobs.txt
+npc: npc/010-1/_warps.txt
diff --git a/npc/010-1_Woodland/_mobs.txt b/npc/010-1/_mobs.txt
index a971df3f..785bafed 100644
--- a/npc/010-1_Woodland/_mobs.txt
+++ b/npc/010-1/_mobs.txt
@@ -1,10 +1,10 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 010-1 Woodland mobs
+// Woodland mobs
010-1.gat,82,63,19,19 monster Scorpion 1003,1,100000,30000,Mob010-1::On1003
010-1.gat,49,71,31,19 monster Shroom 1019,1,100000,30000,Mob010-1::On1019
010-1.gat,0,0,0,0 monster PinkFlower 1014,30,50,0,Mob010-1::On1014
-010-1.gat,0,0,0,0 monster Fluffy 1020,20,50,0,Mob010-1::On1020
+010-1.gat,0,0,0,0 monster Snail 1041,20,50,0,Mob010-1::On1041
010-1.gat,0,0,0,0 monster SpikyMushroom 1019,45,50,0,Mob010-1::On1019
010-1.gat,0,0,0,0 monster LogHead 1025,40,100,0,Mob010-1::On1025
010-1.gat,0,0,0,0 monster Mouboo 1028,15,0,10,Mob010-1::On1028
@@ -32,11 +32,6 @@ On1019:
callfunc "MobPoints";
break;
-On1020:
- set @mobID, 1020;
- callfunc "MobPoints";
- break;
-
On1025:
set @mobID, 1025;
callfunc "MobPoints";
@@ -72,6 +67,11 @@ On1038:
callfunc "MobPoints";
break;
+On1041:
+ set @mobID, 1041;
+ callfunc "MobPoints";
+ break;
+
On1055:
set @mobID, 1055;
callfunc "MobPoints";
diff --git a/npc/010-1_Woodland/_warps.txt b/npc/010-1/_warps.txt
index aacac982..d0151be7 100644
--- a/npc/010-1_Woodland/_warps.txt
+++ b/npc/010-1/_warps.txt
@@ -1,7 +1,7 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 010-1 Woodland warps
+// Woodland warps
-010-1.gat,49,23 warp ToWoodland 0,-1,011-1.gat,46,99
+010-1.gat,49,23 warp ToWoodland 0,-1,011-1.gat,48,103
010-1.gat,14,55 warp ToWoodland -1,0,015-1.gat,92,54
010-1.gat,36,94 warp ToDimondsCove -1,-1,010-2.gat,32,44
010-1.gat,56,104 warp ToWoodland 1,-1,016-1.gat,56,21
diff --git a/npc/010-2/_import.txt b/npc/010-2/_import.txt
new file mode 100644
index 00000000..567b7a12
--- /dev/null
+++ b/npc/010-2/_import.txt
@@ -0,0 +1,10 @@
+// Map 010-2: Dimond's Cove
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 010-2.gat
+npc: npc/010-2/_mobs.txt
+npc: npc/010-2/_warps.txt
+npc: npc/010-2/chef.txt
+npc: npc/010-2/dimonds.txt
+npc: npc/010-2/doug.txt
+npc: npc/010-2/loratay.txt
+npc: npc/010-2/workers.txt
diff --git a/npc/010-2_Dimonds_Cove/_mobs.txt b/npc/010-2/_mobs.txt
index 2ac4b85c..efa9aa57 100644
--- a/npc/010-2_Dimonds_Cove/_mobs.txt
+++ b/npc/010-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 010-2 Dimond's Cove mobs
+// Dimond's Cove mobs
diff --git a/npc/010-2_Dimonds_Cove/_warps.txt b/npc/010-2/_warps.txt
index 64fd7113..76e2be8b 100644
--- a/npc/010-2_Dimonds_Cove/_warps.txt
+++ b/npc/010-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 010-2 Dimond's Cove warps
+// Dimond's Cove warps
010-2.gat,27,24 warp ToCellar -1,-1,010-2.gat,35,68
010-2.gat,32,45 warp ToOutdoor -1,-1,010-1.gat,36,95
diff --git a/npc/010-2/chef.txt b/npc/010-2/chef.txt
new file mode 100644
index 00000000..d687bf91
--- /dev/null
+++ b/npc/010-2/chef.txt
@@ -0,0 +1,201 @@
+010-2.gat,33,25,0 script Chef 148,{
+
+// lines belong to easter 2011:
+// set @month, 4;
+// set @start_day, 15;
+// set @end_day, 30;
+
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 7) goto L_JellyBean;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 8) goto L_MakeJellyBean;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 9) goto L_SeeBunny;
+
+L_Begin:
+ mes "[Chef]";
+ mes "";
+ mes "\"I'm too busy right now to talk.\"";
+
+ callfunc "KadiyaSubquestConsts";
+ if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) && (countitem ("MopoxCurePotion") > 0))
+ goto L_lace_chococake;
+
+ if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE) && (countitem ("MopoxCurePotion") > 0))
+ goto L_lace_cupcake;
+ close;
+
+L_lace_chococake:
+ next;
+ menu
+ "Sorry.", L_end,
+ "I need your help with a sick young girl!", -;
+
+ mes "[Chef]";
+ mes "";
+ mes "You explain Kadiya's situation to him.";
+ mes "\"Hmrmf. I can't help you; I'm a chef, not a baker!\"";
+ close;
+
+L_lace_cupcake:
+ next;
+ menu
+ "Sorry.", L_end,
+ "I need your help with a sick young girl!", -;
+
+ mes "[Chef]";
+ mes "";
+ mes "You explain Kadiya's situation to him.";
+ mes "\"Hmrmf. I was about to make another batch of orange cupcakes. Do you have that potion with you?\"";
+ next;
+
+ menu
+ "No, sorry.", L_bringit,
+ "Yes, here you are.", -;
+
+ if (countitem ("MopoxCurePotion") < 1)
+ goto L_bringit;
+
+ mes "[Chef]";
+ mes "";
+ mes "He shudders as he smells the bottle.";
+ mes "\"That is disgusting! How do you expect me to mask this?\"";
+ mes "He ponders his own question for a moment.";
+ next;
+
+ mes "[Chef]";
+ mes "";
+ mes "\"Ah yes. We need to bind the smell in gingerbread. Bring me three pieces of gingerbread, one orange, and 500 GP for the other ingredients, and I will make you your cupcake.\"";
+ next;
+
+ menu
+ "I'll go and get it.", L_end,
+ "Here you are!", -,
+ "Not now.", L_end;
+
+ if (countitem ("GingerBreadMan") < 3) goto L_no_gingerbread;
+ if (countitem ("Orange") < 1) goto L_no_orange;
+ if (countitem ("MopoxCurePotion") < 1) goto L_no_potion;
+ if (zeny < 500) goto L_no_zeny;
+
+ set zeny, zeny - 500;
+ delitem "GingerBreadMan", 3;
+ delitem "Orange", 1;
+ delitem "MopoxCurePotion", 1;
+
+ getitem "LacedOrangeCupcake", 1;
+
+ mes "[Chef]";
+ mes "";
+ mes "\"Good, good. This should work.\"";
+ mes "He crumbles the gingerbread, mixes it with the potion and some spices, and finally adds some cupcake batter and the orange pieces.";
+ next;
+
+ mes "[Chef]";
+ mes "";
+ mes "\"Take a seat.\"";
+ mes "He fills the mixture into a cupcake form and puts it into the oven. You watch the cupcake grow for a while.";
+ mes "Finally, he removes the form and carefully extracts the cupcake.";
+ next;
+
+ mes "[Chef]";
+ mes "";
+ mes "\"Here you are. It's a bit bigger than a regular cupcake and will taste a bit like ginger, I think, but otherwise it should be fine.\"";
+ close;
+
+L_no_gingerbread:
+ mes "[Chef]";
+ mes "";
+ mes "\"I will need three pieces of gingerbread.\"";
+ close;
+
+L_no_orange:
+ mes "[Chef]";
+ mes "";
+ mes "\"Please bring me an orange for these cupcakes.\"";
+ close;
+
+L_no_zeny:
+ mes "[Chef]";
+ mes "";
+ mes "\"No. I need extra ingredients worth 500 GP, and I expect you to pay for those.\"";
+ close;
+
+L_no_potion:
+ mes "[Chef]";
+ mes "";
+ mes "\"Where did your Mopox potion go?\"";
+ close;
+
+L_bringit:
+ mes "[Chef]";
+ mes "";
+ mes "\"Bring it here when you do.\"";
+ next;
+
+L_End:
+ close;
+
+L_JellyBean:
+ mes "[Chef]";
+ mes "";
+ mes "\"I can't talk right now... I'm too busy.\"";
+ next;
+ mes "\"Oh, wait. I see you are the adventurer who was speaking with the Easter Bunny. He has a really bad memory, you know? Every year he forgets who he needs to ask to get Jelly Beans, and every year an adventurer comes to my kitchen asking if I can help the Easter Bunny get some.\"";
+ next;
+ mes "\"Even though I am really busy this time of year, I will help you make some Jelly Beans to put in the basket if you wish. Just to keep the tradition alive...\"";
+ menu
+ "I would really appreciate that!", -,
+ "Nah, I decided not to do that stupid quest.", L_End;
+ set QUEST_Easter11, 8;
+
+L_MakeJellyBean:
+ mes "[Chef]";
+ mes "";
+ mes "\"I will need you to bring me some candies.\"";
+ mes "\"I think 15 should be enough.\"";
+ mes "\"Sea slimes seem to have those, so try them.\"";
+ mes "\"And because it's the holidays, I'll add in the other ingredient for free.\"";
+ menu
+ "I have some candies!", -,
+ "Ok, I will be back soon.", L_End,
+ "I changed my mind, forget about it.", L_End;
+
+ if(countitem("Candy") < 15) goto L_EasterNotEnough;
+ if(countitem("Candy") >= 15) goto L_EasterEnough;
+ close;
+
+L_EasterNotEnough:
+ mes "[Chef]";
+ mes "";
+ mes "\"You do not have enough candies for me to work with yet.\"";
+ mes "\"Please go get more.\"";
+ close;
+
+L_EasterEnough:
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem("Candy") > 15) goto L_EasterTooMany;
+ if(countitem("Candy") < 15) goto L_EasterNotEnough;
+ delitem "Candy", 15;
+ getitem "JellyBeans", 1;
+ set QUEST_Easter11, 9;
+ mes "[Chef]";
+ mes "";
+ mes "\"You have gathered enough candies for me to make the Jelly Beans.\"";
+ mes "He puts the candies into a pot and starts melting them.";
+ mes "He adds in some gooey stuff, then lets the solution cool for a moment before forming the Jelly Beans.";
+ mes "\"Here are your Jelly Beans.\"";
+ close;
+
+L_TooMany:
+ mes "[Chef]";
+ mes "";
+ mes "\"You don't have enough room for the Jelly Beans. Come back later.\"";
+ close;
+
+L_SeeBunny:
+ mes "[Chef]";
+ mes "";
+ mes "\"Oh yeah, you need to return to the Easter Bunny now.\"";
+ next;
+ goto L_Begin;
+ close;
+
+}
diff --git a/npc/010-2_Dimonds_Cove/dimonds.txt b/npc/010-2/dimonds.txt
index c1578d55..c1578d55 100644
--- a/npc/010-2_Dimonds_Cove/dimonds.txt
+++ b/npc/010-2/dimonds.txt
diff --git a/npc/010-2_Dimonds_Cove/doug.txt b/npc/010-2/doug.txt
index 0f35e02a..d072073d 100644
--- a/npc/010-2_Dimonds_Cove/doug.txt
+++ b/npc/010-2/doug.txt
@@ -11,13 +11,13 @@
L_0:
mes "[Doug]";
- mes "\"I need 20 more [Cave Snake Lamp]s to make my light!\"";
+ mes "\"I need 20 more Cave Snake Lamps to make my light!\"";
next;
goto L_Question;
L_1:
mes "[Doug]";
- mes "\"This lamp should light up this whole place! I just need 20 [Cave Snake Lamp]s.\"";
+ mes "\"This lamp should light up this whole place! I just need 20 Cave Snake Lamps.\"";
next;
goto L_Question;
@@ -29,13 +29,13 @@ L_2:
L_3:
mes "[Doug]";
- mes "\"Can you get me 20 [Cave Snake Lamp]s? I need them to get this light finished.\"";
+ mes "\"Can you get me 20 Cave Snake Lamps? I need them to get this light finished.\"";
next;
goto L_Question;
L_Question:
mes "[Doug]";
- mes "\"Will you help me find 20 [Cave Snake Lamp]s?\"";
+ mes "\"Will you help me find 20 Cave Snake Lamps?\"";
next;
menu
"Yes", L_Sure,
@@ -76,13 +76,13 @@ J_3:
L_Go:
mes "[Doug]";
- mes "\"Now please go get me 20 [Cave Snake Lamp]s.\"";
+ mes "\"Now please go get me 20 Cave Snake Lamps.\"";
close;
L_State2:
if(countitem("CaveSnakeLamp") >= 20) goto L_Have;
mes "[Doug]";
- mes "\"Please help me collect 20 [Cave Snake Lamp]s!\"";
+ mes "\"Please help me collect 20 Cave Snake Lamps!\"";
close;
L_Have:
diff --git a/npc/010-2_Dimonds_Cove/loratay.txt b/npc/010-2/loratay.txt
index cb784ebb..2472ba86 100644
--- a/npc/010-2_Dimonds_Cove/loratay.txt
+++ b/npc/010-2/loratay.txt
@@ -232,7 +232,7 @@ L_main_menu:
L_desert_hat:
mes "[Lora Tay the Seamstress]";
mes "The seamstress sighs.";
- mes "\"One of these days it would be nice to have an actual challenge... yes, of course I can make a desert hat. A [Cotton headband], three pieces of [cotton cloth]. Hmm. And let's add 300 GP to that.\"";
+ mes "\"One of these days it would be nice to have an actual challenge... yes, of course I can make a desert hat. A Cotton Headband, three pieces of cotton cloth. Hmm. And let's add 300 GP to that.\"";
next;
set @default_choice$, "Never mind.";
@@ -344,7 +344,7 @@ L_trim_nozeny:
L_lengthen:
mes "[Lora Tay the Seamstress]";
- mes "\"Naturally, I will need a piece of [cotton cloth] to sew onto it; I must also charge you some... hmm... does 500 GP sound reasonable? Yes, I think I shall charge that.\"";
+ mes "\"Naturally, I will need a piece of Cotton Cloth to sew onto it; I must also charge you some... hmm... does 500 GP sound reasonable? Yes, I think I shall charge that.\"";
mes "\"Now, let me see. What is it that you want lengthened?\"";
next;
@@ -423,8 +423,8 @@ L_tanktop:
L_tanktop_menu:
menu "I think I would like something else.", L_main_menu,
- "A tank top, please (6 [cotton cloth])", L_tanktop_long,
- "A short tank top, please (5 [cotton cloth])", L_tanktop_short,
+ "A tank top, please (6 Cotton Cloth)", L_tanktop_long,
+ "A short tank top, please (5 Cotton Cloth)", L_tanktop_short,
"Goodbye for now.", L_end;
L_tanktop_short:
@@ -459,7 +459,7 @@ L_tanktop_long:
L_tanktop_insufficient_cloth:
mes "[Lora Tay the Seamstress]";
- mes "\"No, no, no, count again-- how much [cotton cloth] did I say I needed? That's not enough.\"";
+ mes "\"No, no, no, count again-- how much Cotton Cloth did I say I needed? That's not enough.\"";
next;
goto L_tanktop_menu;
@@ -495,7 +495,7 @@ L_robe_menu:
mes "[Lora Tay the Seamstress]";
mes "The seamstress stares at you as if you had gone out of your mind.";
- mes "\"And what precisely do you expect me to do with [silk cocoons]? String them together in some baubly chain? Somehow remove the thread and spin and weave it so that some random person can have their robe?\"";
+ mes "\"And what precisely do you expect me to do with Silk Cocoons? String them together in some baubly chain? Somehow remove the thread and spin and weave it so that some random person can have their robe?\"";
next;
menu "Will you trade cocoons for sheets?", -,
diff --git a/npc/010-2_Dimonds_Cove/workers.txt b/npc/010-2/workers.txt
index 0d80f700..0d80f700 100644
--- a/npc/010-2_Dimonds_Cove/workers.txt
+++ b/npc/010-2/workers.txt
diff --git a/npc/010-2_Dimonds_Cove/_import.txt b/npc/010-2_Dimonds_Cove/_import.txt
deleted file mode 100644
index f9482a98..00000000
--- a/npc/010-2_Dimonds_Cove/_import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 010-2.gat
-npc: npc/010-2_Dimonds_Cove/_mobs.txt
-npc: npc/010-2_Dimonds_Cove/_warps.txt
-npc: npc/010-2_Dimonds_Cove/chef.txt
-npc: npc/010-2_Dimonds_Cove/dimonds.txt
-npc: npc/010-2_Dimonds_Cove/doug.txt
-npc: npc/010-2_Dimonds_Cove/loratay.txt
-npc: npc/010-2_Dimonds_Cove/workers.txt
diff --git a/npc/010-2_Dimonds_Cove/chef.txt b/npc/010-2_Dimonds_Cove/chef.txt
deleted file mode 100644
index 03149485..00000000
--- a/npc/010-2_Dimonds_Cove/chef.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-010-2.gat,33,25,0 script Chef 148,{
- mes "[Chef]";
- mes "\"I'm too busy right now to talk.\"";
-
- callfunc "KadiyaSubquestConsts";
- if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) && (countitem ("MopoxCurePotion") > 0))
- goto L_lace_chococake;
-
- if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE) && (countitem ("MopoxCurePotion") > 0))
- goto L_lace_cupcake;
- close;
-
-L_lace_chococake:
- next;
- menu
- "Sorry.", L_end,
- "I need your help with a sick young girl!", -;
-
- mes "[Chef]";
- mes "You explain Kadiya's situation to him.";
- mes "\"Hmrmf. I can't help you; I'm a chef, not a baker!\"";
- close;
-
-L_lace_cupcake:
- next;
- menu
- "Sorry.", L_end,
- "I need your help with a sick young girl!", -;
-
- mes "[Chef]";
- mes "You explain Kadiya's situation to him.";
- mes "\"Hmrmf. I was about to make another batch of orange cupcakes. Do you have that potion with you?\"";
- next;
-
- menu
- "No, sorry.", L_bringit,
- "Yes, here you are.", -;
-
- if (countitem ("MopoxCurePotion") < 1)
- goto L_bringit;
-
- mes "[Chef]";
- mes "He shudders as he smells the bottle.";
- mes "\"That is disgusting! How do you expect me to mask this?\"";
- mes "He ponders his own question for a moment.";
- next;
-
- mes "[Chef]";
- mes "\"Ah yes. We need to bind the smell in gingerbread. Bring me three pieces of gingerbread, one orange, and 500 GP for the other ingredients, and I will make you your cupcake.\"";
- next;
-
- menu
- "I'll go and get it.", L_end,
- "Here you are!", -,
- "Not now.", L_end;
-
- if (countitem ("GingerBreadMan") < 3) goto L_no_gingerbread;
- if (countitem ("Orange") < 1) goto L_no_orange;
- if (countitem ("MopoxCurePotion") < 1) goto L_no_potion;
- if (zeny < 500) goto L_no_zeny;
-
- set zeny, zeny - 500;
- delitem "GingerBreadMan", 3;
- delitem "Orange", 1;
- delitem "MopoxCurePotion", 1;
-
- getitem "LacedOrangeCupcake", 1;
-
- mes "[Chef]";
- mes "\"Good, good. This should work.\"";
- mes "He crumbles the gingerbread, mixes it with the potion and some spices, and finally adds some cupcake batter and the orange pieces.";
- next;
-
- mes "[Chef]";
- mes "\"Take a seat.\"";
- mes "He fills the mixture into a cupcake form and puts it into the oven. You watch the cupcake grow for a while.";
- mes "Finally, he removes the form and carefully extracts the cupcake.";
- next;
-
- mes "[Chef]";
- mes "\"Here you are. It's a bit bigger than a regular cupcake and will taste a bit like ginger, I think, but otherwise it should be fine.\"";
- close;
-
-L_no_gingerbread:
- mes "[Chef]";
- mes "\"I will need three pieces of gingerbread.\"";
- close;
-
-L_no_orange:
- mes "[Chef]";
- mes "\"Please bring me an orange for these cupcakes.\"";
- close;
-
-L_no_zeny:
- mes "[Chef]";
- mes "\"No. I need extra ingredients worth 500 GP, and I expect you to pay for those.\"";
- close;
-
-L_no_potion:
- mes "[Chef]";
- mes "\"Where did your Mopox potion go?\"";
- close;
-
-L_bringit:
- mes "[Chef]";
- mes "\"Bring it here when you do.\"";
- next;
-
-L_end:
- close;
-}
diff --git a/npc/011-1/_import.txt b/npc/011-1/_import.txt
new file mode 100644
index 00000000..53f564ce
--- /dev/null
+++ b/npc/011-1/_import.txt
@@ -0,0 +1,9 @@
+// Map 011-1: Woodland
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 011-1.gat
+npc: npc/011-1/_mobs.txt
+npc: npc/011-1/_warps.txt
+npc: npc/011-1/alchemist.txt
+npc: npc/011-1/auldsbel.txt
+npc: npc/011-1/oscar.txt
+npc: npc/011-1/shops.txt
diff --git a/npc/011-1_Woodland/_mobs.txt b/npc/011-1/_mobs.txt
index caf56cb4..180f3822 100644
--- a/npc/011-1_Woodland/_mobs.txt
+++ b/npc/011-1/_mobs.txt
@@ -1,10 +1,10 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-1 Woodland mobs
+// Woodland mobs
011-1.gat,0,0,0,0 monster EvilMushroom 1013,30,0,0,Mob011-1::On1013
011-1.gat,0,0,0,0 monster PinkFlower 1014,20,0,0,Mob011-1::On1014
011-1.gat,0,0,0,0 monster Spiky Mushroom 1019,5,0,0,Mob011-1::On1019
-011-1.gat,0,0,0,0 monster Fluffy 1020,1,0,0,Mob011-1::On1020
+011-1.gat,0,0,0,0 monster Snail 1041,1,0,0,Mob011-1::On1041
011-1.gat,0,0,0,0 monster Mouboo 1028,5,0,10,Mob011-1::On1028
011-1.gat,0,0,0,0 monster Mauve 1029,3,270000,180000,Mob011-1::On1029
011-1.gat,0,0,0,0 monster Alizarin 1032,1,2700000,1800000,Mob011-1::On1032
@@ -12,6 +12,7 @@
011-1.gat,0,0,0,0 monster Clover 1037,2,0,1000,Mob011-1::On1037
011-1.gat,0,0,0,0 monster Squirrel 1038,25,30,20,Mob011-1::On1038
011-1.gat,0,0,0,0 monster Butterfly 1055,10,30,20,Mob011-1::On1055
+011-1.gat,0,0,0,0 monster Mouboo 1028,5,0,10,Mob011-1::On1028
011-1.gat,0,0,0 script Mob011-1 -1,{
@@ -30,11 +31,6 @@ On1019:
callfunc "MobPoints";
break;
-On1020:
- set @mobID, 1020;
- callfunc "MobPoints";
- break;
-
On1028:
set @mobID, 1028;
callfunc "MobPoints";
@@ -65,6 +61,11 @@ On1038:
callfunc "MobPoints";
break;
+On1041:
+ set @mobID, 1041;
+ callfunc "MobPoints";
+ break;
+
On1055:
set @mobID, 1055;
callfunc "MobPoints";
diff --git a/npc/011-1_Woodland/_warps.txt b/npc/011-1/_warps.txt
index 976e3a93..ad638d00 100644
--- a/npc/011-1_Woodland/_warps.txt
+++ b/npc/011-1/_warps.txt
@@ -1,9 +1,9 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-1 Woodland warps
+// Woodland warps
011-1.gat,58,92 warp ToCave -1,-1,011-3.gat,15,15
011-1.gat,30,61 warp ToWoodland -1,1,014-1.gat,106,91
-011-1.gat,49,104 warp ToWoodland 0,-1,010-1.gat,50,25
+011-1.gat,49,104 warp ToWoodland 0,-1,010-1.gat,48,24
011-1.gat,125,62 warp ToWoodland -1,2,008-1.gat,27,61
011-1.gat,73,11 warp ToWoodlandHills 0,-1,012-1.gat,131,162
011-1.gat,38,36 warp affenpeter -1,-1,011-6.gat,49,99
diff --git a/npc/011-1_Woodland/alchemist.txt b/npc/011-1/alchemist.txt
index bb7ef734..e38f76ba 100644
--- a/npc/011-1_Woodland/alchemist.txt
+++ b/npc/011-1/alchemist.txt
@@ -52,9 +52,6 @@ L_post_mana_potion_c:
mes "[Rauk the Alchemist]";
mes "\"I'm learning the ancient science of the alchemy.";
mes "I already know how to create a couple of potions!!\"";
- next;
-
- mes "[Rauk the Alchemist]";
mes "\"Do you want me to create one for you?\"";
next;
@@ -280,38 +277,50 @@ L_mana_potion_toomuch:
L_mana_potion_lacking:
mes "[Rauk the Alchemist]";
- mes "\"Sorry, but I need one [pearl], one [bottle of water], 30 [mauve leaves], 20 [gamboge leaves], and five piles of [volcanic ash].\"";
+ mes "\"Sorry, but I need one Pearl, one Bottle of Water, 30 Mauve Leaves, 20 Gamboge Leaves, and five Piles of Ash.\"";
next;
goto L_main_menu;
L_iron:
- if(countitem("SmallMushroom") < 2) goto L_no_iron;
+ set @COST_PER_IRON_POTION, 2;
+
+ mes "\" To make them, I'm going to need " + @COST_PER_IRON_POTION + " Small Mushrooms per Iron Potion. How many Iron Potions would you like?\"";
+ input @count;
+
+ if (@count == 0) close;
+ set @empty, countitem("SmallMushroom");
+
+ if (@empty < @count * @COST_PER_IRON_POTION) goto L_no_iron;
getinventorylist;
- if (@inventorylist_count == 100 && countitem("SmallMushroom") > 2) goto L_TooMany;
- mes "[Rauk the Alchemist]";
- mes "\"Great! You brought me exactly what I need!";
- mes "Here is your Iron potion.\"";
- delitem "SmallMushroom", 2;
- getitem "IronPotion", 1;
+ if (@inventorylist_count == 100 && countitem("SmallMushroom") == 0 && @empty > @count) goto L_TooMany;
+
+ delitem "SmallMushroom", @COST_PER_IRON_POTION * @count;
+ getitem "IronPotion", @count;
close;
L_concentration:
- if(countitem("PinkPetal") < 2) goto L_no_concentration;
+ set @COST_PER_CONCENTRATION_POTION, 2;
+
+ mes "\" To make them, I'm going to need " + @COST_PER_CONCENTRATION_POTION + " Pink Petals per Concentration Potion. How many Concentration Potions would you like?\"";
+ input @count;
+
+ if (@count == 0) close;
+ set @empty, countitem("PinkPetal");
+
+ if (@empty < @count * @COST_PER_CONCENTRATION_POTION) goto L_no_concentration;
getinventorylist;
- if (@inventorylist_count == 100 && countitem("PinkPetal") > 2) goto L_TooMany;
- mes "[Rauk the Alchemist]";
- mes "\"Great! You brought me exactly what I need!";
- mes "Here is your Concentration potion.\"";
- delitem "PinkPetal", 2;
- getitem "ConcentrationPotion", 1;
+ if (@inventorylist_count == 100 && countitem("PinkPetal") == 0 && @empty > @count) goto L_TooMany;
+
+ delitem "PinkPetal", @COST_PER_CONCENTRATION_POTION * @count;
+ getitem "ConcentrationPotion", @count;
close;
L_no_iron:
- mes "\"You have to bring me 2 [small mushrooms].\"";
+ mes "\"You have to bring me 2 Small Mushrooms for each Iron Potion.\"";
close;
L_no_concentration:
- mes "\"You have to bring me 2 [pink petals].\"";
+ mes "\"You have to bring me 2 Pink Petals for each Concentration Potion.\"";
close;
L_dyeing_intro:
diff --git a/npc/011-1_Woodland/auldsbel.txt b/npc/011-1/auldsbel.txt
index 8982f699..8982f699 100644
--- a/npc/011-1_Woodland/auldsbel.txt
+++ b/npc/011-1/auldsbel.txt
diff --git a/npc/011-1_Woodland/oscar.txt b/npc/011-1/oscar.txt
index d2b40f0e..d2b40f0e 100644
--- a/npc/011-1_Woodland/oscar.txt
+++ b/npc/011-1/oscar.txt
diff --git a/npc/011-1_Woodland/shops.txt b/npc/011-1/shops.txt
index e9616d8c..e9616d8c 100644
--- a/npc/011-1_Woodland/shops.txt
+++ b/npc/011-1/shops.txt
diff --git a/npc/011-1_Woodland/_import.txt b/npc/011-1_Woodland/_import.txt
deleted file mode 100644
index 5de3354e..00000000
--- a/npc/011-1_Woodland/_import.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 011-1.gat
-npc: npc/011-1_Woodland/_mobs.txt
-npc: npc/011-1_Woodland/_warps.txt
-npc: npc/011-1_Woodland/alchemist.txt
-npc: npc/011-1_Woodland/auldsbel.txt
-npc: npc/011-1_Woodland/oscar.txt
-npc: npc/011-1_Woodland/shops.txt
diff --git a/npc/011-3/_import.txt b/npc/011-3/_import.txt
new file mode 100644
index 00000000..799e5dd0
--- /dev/null
+++ b/npc/011-3/_import.txt
@@ -0,0 +1,7 @@
+// Map 011-3: Hermit's cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 011-3.gat
+npc: npc/011-3/_mobs.txt
+npc: npc/011-3/_warps.txt
+npc: npc/011-3/hermit.txt
+npc: npc/011-3/monsters.txt
diff --git a/npc/011-3_Hermits_cave/_mobs.txt b/npc/011-3/_mobs.txt
index ae3db870..2fc7d85b 100644
--- a/npc/011-3_Hermits_cave/_mobs.txt
+++ b/npc/011-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-3 Hermit's cave mobs
+// Hermit's cave mobs
diff --git a/npc/011-3_Hermits_cave/_warps.txt b/npc/011-3/_warps.txt
index a293fa83..0c7ae9de 100644
--- a/npc/011-3_Hermits_cave/_warps.txt
+++ b/npc/011-3/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-3 Hermit's cave warps
+// Hermit's cave warps
011-3.gat,31,21 warp ToLakeCave -1,-1,011-4.gat,72,11
diff --git a/npc/011-3_Hermits_cave/hermit.txt b/npc/011-3/hermit.txt
index 4b582cc4..4b582cc4 100644
--- a/npc/011-3_Hermits_cave/hermit.txt
+++ b/npc/011-3/hermit.txt
diff --git a/npc/011-3_Hermits_cave/monsters.txt b/npc/011-3/monsters.txt
index 37da9f40..37da9f40 100644
--- a/npc/011-3_Hermits_cave/monsters.txt
+++ b/npc/011-3/monsters.txt
diff --git a/npc/011-3_Hermits_cave/_import.txt b/npc/011-3_Hermits_cave/_import.txt
deleted file mode 100644
index 020a080e..00000000
--- a/npc/011-3_Hermits_cave/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 011-3.gat
-npc: npc/011-3_Hermits_cave/_mobs.txt
-npc: npc/011-3_Hermits_cave/_warps.txt
-npc: npc/011-3_Hermits_cave/hermit.txt
-npc: npc/011-3_Hermits_cave/monsters.txt
diff --git a/npc/011-4/_import.txt b/npc/011-4/_import.txt
new file mode 100644
index 00000000..f2e5264f
--- /dev/null
+++ b/npc/011-4/_import.txt
@@ -0,0 +1,7 @@
+// Map 011-4: Lake cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 011-4.gat
+npc: npc/011-4/_mobs.txt
+npc: npc/011-4/_warps.txt
+npc: npc/011-4/bl_barrier.txt
+npc: npc/011-4/monsters.txt
diff --git a/npc/011-4_Lake_cave/_mobs.txt b/npc/011-4/_mobs.txt
index 1c5abe39..2e4f3576 100644
--- a/npc/011-4_Lake_cave/_mobs.txt
+++ b/npc/011-4/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-4 Lake cave mobs
+// Lake cave mobs
011-4.gat,51,29,39,39 monster Shroom 1019,1,100000,30000,Mob011-4::On1019
011-4.gat,93,114,39,39 monster Lamp Snake 1021,1,100000,30000,Mob011-4::On1021
diff --git a/npc/011-4_Lake_cave/_warps.txt b/npc/011-4/_warps.txt
index 0b7f027d..40058613 100644
--- a/npc/011-4_Lake_cave/_warps.txt
+++ b/npc/011-4/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-4 Lake cave warps
+// Lake cave warps
011-4.gat,73,8 warp ToHermitsCave 0,-1,011-3.gat,31,24
011-4.gat,129,86 warp ToCaveBeneathHurnscald -1,-1,009-3.gat,21,55
diff --git a/npc/011-4_Lake_cave/bl_barrier.txt b/npc/011-4/bl_barrier.txt
index 07b44999..07b44999 100644
--- a/npc/011-4_Lake_cave/bl_barrier.txt
+++ b/npc/011-4/bl_barrier.txt
diff --git a/npc/011-4_Lake_cave/monsters.txt b/npc/011-4/monsters.txt
index d3b78249..d3b78249 100644
--- a/npc/011-4_Lake_cave/monsters.txt
+++ b/npc/011-4/monsters.txt
diff --git a/npc/011-4_Lake_cave/_import.txt b/npc/011-4_Lake_cave/_import.txt
deleted file mode 100644
index aa662cb6..00000000
--- a/npc/011-4_Lake_cave/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 011-4.gat
-npc: npc/011-4_Lake_cave/_mobs.txt
-npc: npc/011-4_Lake_cave/_warps.txt
-npc: npc/011-4_Lake_cave/bl_barrier.txt
-npc: npc/011-4_Lake_cave/monsters.txt
diff --git a/npc/011-5/_import.txt b/npc/011-5/_import.txt
index f66c2afa..0901afa2 100644
--- a/npc/011-5/_import.txt
+++ b/npc/011-5/_import.txt
@@ -1,3 +1,4 @@
+// Map 011-5:
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 011-5.gat
npc: npc/011-5/_mobs.txt
diff --git a/npc/011-5/_mobs.txt b/npc/011-5/_mobs.txt
index 5a7bbed1..22d89a4e 100644
--- a/npc/011-5/_mobs.txt
+++ b/npc/011-5/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-5 mobs
+// mobs
diff --git a/npc/011-5/_warps.txt b/npc/011-5/_warps.txt
index e5b60b31..605abadf 100644
--- a/npc/011-5/_warps.txt
+++ b/npc/011-5/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-5 warps
+// warps
diff --git a/npc/011-6/_import.txt b/npc/011-6/_import.txt
index 74e2fd98..0afbffa4 100644
--- a/npc/011-6/_import.txt
+++ b/npc/011-6/_import.txt
@@ -1,3 +1,4 @@
+// Map 011-6:
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 011-6.gat
npc: npc/011-6/_mobs.txt
diff --git a/npc/011-6/_mobs.txt b/npc/011-6/_mobs.txt
index 78b1ffcf..007e7e86 100644
--- a/npc/011-6/_mobs.txt
+++ b/npc/011-6/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-6 mobs
+// mobs
011-6.gat,152,72,283,127 monster Silk Worm 1035,9,30000,100000,Mob011-6::On1035
011-6.gat,263,38,30,34 monster Bandit 1064,1,30000,30000,Mob011-6::On1064
diff --git a/npc/011-6/_warps.txt b/npc/011-6/_warps.txt
index 22911093..458bc283 100644
--- a/npc/011-6/_warps.txt
+++ b/npc/011-6/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 011-6 warps
+// warps
011-6.gat,51,75 warp toMiddleCave1 -1,-1,011-6.gat,260,125
011-6.gat,61,71 warp toMiddleCave2 -1,-1,011-6.gat,270,122
diff --git a/npc/012-1/_import.txt b/npc/012-1/_import.txt
new file mode 100644
index 00000000..095de153
--- /dev/null
+++ b/npc/012-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 012-1: Woodland Hills
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 012-1.gat
+npc: npc/012-1/_mobs.txt
+npc: npc/012-1/_warps.txt
+npc: npc/012-1/amrak.txt
+npc: npc/012-1/injured-mouboo.txt
+npc: npc/012-1/shops.txt
diff --git a/npc/012-1_Woodland_Hills/_mobs.txt b/npc/012-1/_mobs.txt
index e1f50317..0cfb2c14 100644
--- a/npc/012-1_Woodland_Hills/_mobs.txt
+++ b/npc/012-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 012-1 Woodland Hills mobs
+// Woodland Hills mobs
012-1.gat,0,0,0,0 monster PinkFlower 1014,13,0,100,Mob012-1::On1014
012-1.gat,0,0,0,0 monster SpikyMushroom 1019,25,0,10,Mob012-1::On1019
diff --git a/npc/012-1_Woodland_Hills/_warps.txt b/npc/012-1/_warps.txt
index 4fe031e0..de7ffc77 100644
--- a/npc/012-1_Woodland_Hills/_warps.txt
+++ b/npc/012-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 012-1 Woodland Hills warps
+// Woodland Hills warps
012-1.gat,51,39 warp ToCaves -1,-1,012-3.gat,370,45
012-1.gat,147,67 warp ToCaves -1,-1,012-3.gat,474,103
diff --git a/npc/012-1_Woodland_Hills/amrak.txt b/npc/012-1/amrak.txt
index 5a2a547a..5a2a547a 100644
--- a/npc/012-1_Woodland_Hills/amrak.txt
+++ b/npc/012-1/amrak.txt
diff --git a/npc/012-1_Woodland_Hills/injured-mouboo.txt b/npc/012-1/injured-mouboo.txt
index 1aa780f5..1aa780f5 100644
--- a/npc/012-1_Woodland_Hills/injured-mouboo.txt
+++ b/npc/012-1/injured-mouboo.txt
diff --git a/npc/012-1_Woodland_Hills/shops.txt b/npc/012-1/shops.txt
index b29e5542..b29e5542 100644
--- a/npc/012-1_Woodland_Hills/shops.txt
+++ b/npc/012-1/shops.txt
diff --git a/npc/012-1_Woodland_Hills/_import.txt b/npc/012-1_Woodland_Hills/_import.txt
deleted file mode 100644
index 282ca704..00000000
--- a/npc/012-1_Woodland_Hills/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 012-1.gat
-npc: npc/012-1_Woodland_Hills/_mobs.txt
-npc: npc/012-1_Woodland_Hills/_warps.txt
-npc: npc/012-1_Woodland_Hills/amrak.txt
-npc: npc/012-1_Woodland_Hills/injured-mouboo.txt
-npc: npc/012-1_Woodland_Hills/shops.txt
diff --git a/npc/012-3/_import.txt b/npc/012-3/_import.txt
new file mode 100644
index 00000000..6e5ac13a
--- /dev/null
+++ b/npc/012-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 012-3: Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 012-3.gat
+npc: npc/012-3/_mobs.txt
+npc: npc/012-3/_warps.txt
+npc: npc/012-3/mana-seed.txt
+npc: npc/012-3/monsters.txt
+npc: npc/012-3/warningsigns.txt
diff --git a/npc/012-3_Cave/_mobs.txt b/npc/012-3/_mobs.txt
index df983cbd..ce7a365f 100644
--- a/npc/012-3_Cave/_mobs.txt
+++ b/npc/012-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 012-3 Cave mobs
+// Cave mobs
012-3.gat,447,65,17,7 monster Moggun 1061,5,100000,30000,Mob012-3::On1061
012-3.gat,441,45,17,7 monster Moggun 1061,5,100000,30000,Mob012-3::On1061
diff --git a/npc/012-3_Cave/_warps.txt b/npc/012-3/_warps.txt
index 15d47e27..41ef598f 100644
--- a/npc/012-3_Cave/_warps.txt
+++ b/npc/012-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 012-3 Cave warps
+// Cave warps
012-3.gat,37,82 warp CaveExit 0,-1,012-1.gat,98,100
012-3.gat,80,74 warp CaveExit 0,-1,012-1.gat,109,93
diff --git a/npc/012-3_Cave/mana-seed.txt b/npc/012-3/mana-seed.txt
index 6877ee2c..6877ee2c 100644
--- a/npc/012-3_Cave/mana-seed.txt
+++ b/npc/012-3/mana-seed.txt
diff --git a/npc/012-3_Cave/monsters.txt b/npc/012-3/monsters.txt
index e6f4cf79..e6f4cf79 100644
--- a/npc/012-3_Cave/monsters.txt
+++ b/npc/012-3/monsters.txt
diff --git a/npc/012-3_Cave/warningsigns.txt b/npc/012-3/warningsigns.txt
index 2bd31346..2bd31346 100644
--- a/npc/012-3_Cave/warningsigns.txt
+++ b/npc/012-3/warningsigns.txt
diff --git a/npc/012-3_Cave/_import.txt b/npc/012-3_Cave/_import.txt
deleted file mode 100644
index e1a94876..00000000
--- a/npc/012-3_Cave/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 012-3.gat
-npc: npc/012-3_Cave/_mobs.txt
-npc: npc/012-3_Cave/_warps.txt
-npc: npc/012-3_Cave/mana-seed.txt
-npc: npc/012-3_Cave/monsters.txt
-npc: npc/012-3_Cave/warningsigns.txt
diff --git a/npc/012-4_Cave/_import.txt b/npc/012-4/_import.txt
index 9aee72bc..7136ece3 100644
--- a/npc/012-4_Cave/_import.txt
+++ b/npc/012-4/_import.txt
@@ -1,5 +1,6 @@
+// Map 012-4: Cave
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 012-4.gat
-npc: npc/012-4_Cave/_mobs.txt
-npc: npc/012-4_Cave/_warps.txt
-npc: npc/012-4_Cave/pvpflag.txt
+npc: npc/012-4/_mobs.txt
+npc: npc/012-4/_warps.txt
+npc: npc/012-4/pvpflag.txt
diff --git a/npc/012-4_Cave/_mobs.txt b/npc/012-4/_mobs.txt
index 48859b7c..db88e63b 100644
--- a/npc/012-4_Cave/_mobs.txt
+++ b/npc/012-4/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 012-4 Cave mobs
+// Cave mobs
012-4.gat,215,44,11,3 monster Moggun 1061,3,100000,30000,Mob012-4::On1061
012-4.gat,221,29,11,3 monster Moggun 1061,3,100000,30000,Mob012-4::On1061
diff --git a/npc/012-4_Cave/_warps.txt b/npc/012-4/_warps.txt
index 1ee15ac7..8202452f 100644
--- a/npc/012-4_Cave/_warps.txt
+++ b/npc/012-4/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 012-4 Cave warps
+// Cave warps
012-4.gat,194,58 warp CaveEntrance 0,-1,012-3.gat,448,62
012-4.gat,363,26 warp CaveEntrance -1,-1,012-4.gat,474,186
diff --git a/npc/012-4_Cave/pvpflag.txt b/npc/012-4/pvpflag.txt
index b796cefa..b796cefa 100644
--- a/npc/012-4_Cave/pvpflag.txt
+++ b/npc/012-4/pvpflag.txt
diff --git a/npc/013-1/_import.txt b/npc/013-1/_import.txt
new file mode 100644
index 00000000..62a26f85
--- /dev/null
+++ b/npc/013-1/_import.txt
@@ -0,0 +1,6 @@
+// Map 013-1: Woodland hills
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 013-1.gat
+npc: npc/013-1/_mobs.txt
+npc: npc/013-1/_warps.txt
+npc: npc/013-1/sagatha.txt
diff --git a/npc/013-1_Woodland_hills/_mobs.txt b/npc/013-1/_mobs.txt
index a3a4c2e1..018cbda6 100644
--- a/npc/013-1_Woodland_hills/_mobs.txt
+++ b/npc/013-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 013-1 Woodland hills mobs
+// Woodland hills mobs
013-1.gat,0,0,0,0 monster PinkFlower 1014,13,0,100,Mob013-1::On1014
013-1.gat,0,0,0,0 monster SpikyMushroom 1019,12,0,100,Mob013-1::On1019
diff --git a/npc/013-1_Woodland_hills/_warps.txt b/npc/013-1/_warps.txt
index 52cd8547..f82b948f 100644
--- a/npc/013-1_Woodland_hills/_warps.txt
+++ b/npc/013-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 013-1 Woodland hills warps
+// Woodland hills warps
013-1.gat,125,103 warp toCave -1,-1,013-3.gat,34,64
013-1.gat,20,76 warp ToWoodlandHills -1,2,012-1.gat,148,60
diff --git a/npc/013-1_Woodland_hills/sagatha.txt b/npc/013-1/sagatha.txt
index 84df4fe6..84df4fe6 100644
--- a/npc/013-1_Woodland_hills/sagatha.txt
+++ b/npc/013-1/sagatha.txt
diff --git a/npc/013-1_Woodland_hills/_import.txt b/npc/013-1_Woodland_hills/_import.txt
deleted file mode 100644
index 580f0669..00000000
--- a/npc/013-1_Woodland_hills/_import.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 013-1.gat
-npc: npc/013-1_Woodland_hills/_mobs.txt
-npc: npc/013-1_Woodland_hills/_warps.txt
-npc: npc/013-1_Woodland_hills/sagatha.txt
diff --git a/npc/013-2/_import.txt b/npc/013-2/_import.txt
new file mode 100644
index 00000000..1ed37515
--- /dev/null
+++ b/npc/013-2/_import.txt
@@ -0,0 +1,8 @@
+// Map 013-2: Magic house
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 013-2.gat
+npc: npc/013-2/_mobs.txt
+npc: npc/013-2/_warps.txt
+npc: npc/013-2/apprentice.txt
+npc: npc/013-2/notes.txt
+npc: npc/013-2/wizard.txt
diff --git a/npc/013-2_Magic_house/_mobs.txt b/npc/013-2/_mobs.txt
index ef17f929..8bc43cdb 100644
--- a/npc/013-2_Magic_house/_mobs.txt
+++ b/npc/013-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 013-2 Magic house mobs
+// Magic house mobs
diff --git a/npc/013-2_Magic_house/_warps.txt b/npc/013-2/_warps.txt
index 22654434..b713ac0d 100644
--- a/npc/013-2_Magic_house/_warps.txt
+++ b/npc/013-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 013-2 Magic house warps
+// Magic house warps
013-2.gat,63,43 warp toOutside -1,-1,013-1.gat,42,91
013-2.gat,67,36 warp toRoom -1,-1,013-2.gat,21,41
diff --git a/npc/013-2_Magic_house/apprentice.txt b/npc/013-2/apprentice.txt
index 830b5171..830b5171 100644
--- a/npc/013-2_Magic_house/apprentice.txt
+++ b/npc/013-2/apprentice.txt
diff --git a/npc/013-2_Magic_house/notes.txt b/npc/013-2/notes.txt
index f45b2554..f45b2554 100644
--- a/npc/013-2_Magic_house/notes.txt
+++ b/npc/013-2/notes.txt
diff --git a/npc/013-2_Magic_house/wizard.txt b/npc/013-2/wizard.txt
index 927ddfc4..927ddfc4 100644
--- a/npc/013-2_Magic_house/wizard.txt
+++ b/npc/013-2/wizard.txt
diff --git a/npc/013-2_Magic_house/_import.txt b/npc/013-2_Magic_house/_import.txt
deleted file mode 100644
index d4b34905..00000000
--- a/npc/013-2_Magic_house/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 013-2.gat
-npc: npc/013-2_Magic_house/_mobs.txt
-npc: npc/013-2_Magic_house/_warps.txt
-npc: npc/013-2_Magic_house/apprentice.txt
-npc: npc/013-2_Magic_house/notes.txt
-npc: npc/013-2_Magic_house/wizard.txt
diff --git a/npc/013-3/_import.txt b/npc/013-3/_import.txt
new file mode 100644
index 00000000..8be025b3
--- /dev/null
+++ b/npc/013-3/_import.txt
@@ -0,0 +1,9 @@
+// Map 013-3: Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 013-3.gat
+npc: npc/013-3/_mobs.txt
+npc: npc/013-3/_warps.txt
+npc: npc/013-3/barrier.txt
+npc: npc/013-3/mask_chest.txt
+npc: npc/013-3/misc.txt
+npc: npc/013-3/sword_chest.txt
diff --git a/npc/013-3_Cave/_mobs.txt b/npc/013-3/_mobs.txt
index fb2d7595..bb36f0c7 100644
--- a/npc/013-3_Cave/_mobs.txt
+++ b/npc/013-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 013-3 Cave mobs
+// Cave mobs
013-3.gat,28,89,16,52 monster Cave Snake 1021,10,120000,60000,Mob013-3::On1021
013-3.gat,61,22,2,2 monster Fire Skull 1023,1,120000,60000,Mob013-3::On1023
diff --git a/npc/013-3_Cave/_warps.txt b/npc/013-3/_warps.txt
index d7d6e75c..373be260 100644
--- a/npc/013-3_Cave/_warps.txt
+++ b/npc/013-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 013-3 Cave warps
+// Cave warps
013-3.gat,28,20 warp hiddenExit -1,-1,013-1.gat,0,0
013-3.gat,34,63 warp toOutside -1,-1,013-1.gat,125,102
diff --git a/npc/013-3_Cave/barrier.txt b/npc/013-3/barrier.txt
index 0ec3f86a..0ec3f86a 100644
--- a/npc/013-3_Cave/barrier.txt
+++ b/npc/013-3/barrier.txt
diff --git a/npc/013-3_Cave/mask_chest.txt b/npc/013-3/mask_chest.txt
index fb72f54c..fb72f54c 100644
--- a/npc/013-3_Cave/mask_chest.txt
+++ b/npc/013-3/mask_chest.txt
diff --git a/npc/013-3_Cave/misc.txt b/npc/013-3/misc.txt
index 8f7da034..8f7da034 100644
--- a/npc/013-3_Cave/misc.txt
+++ b/npc/013-3/misc.txt
diff --git a/npc/013-3_Cave/sword_chest.txt b/npc/013-3/sword_chest.txt
index 5d2c97b7..5d2c97b7 100644
--- a/npc/013-3_Cave/sword_chest.txt
+++ b/npc/013-3/sword_chest.txt
diff --git a/npc/013-3_Cave/_import.txt b/npc/013-3_Cave/_import.txt
deleted file mode 100644
index 207e2694..00000000
--- a/npc/013-3_Cave/_import.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 013-3.gat
-npc: npc/013-3_Cave/_mobs.txt
-npc: npc/013-3_Cave/_warps.txt
-npc: npc/013-3_Cave/barrier.txt
-npc: npc/013-3_Cave/mask_chest.txt
-npc: npc/013-3_Cave/misc.txt
-npc: npc/013-3_Cave/sword_chest.txt
diff --git a/npc/014-1_Woodland/_import.txt b/npc/014-1/_import.txt
index dcfdd209..0483171c 100644
--- a/npc/014-1_Woodland/_import.txt
+++ b/npc/014-1/_import.txt
@@ -1,5 +1,6 @@
+// Map 014-1: Woodland
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 014-1.gat
-npc: npc/014-1_Woodland/_mobs.txt
-npc: npc/014-1_Woodland/_warps.txt
-npc: npc/014-1_Woodland/wedding-officiator.txt
+npc: npc/014-1/_mobs.txt
+npc: npc/014-1/_warps.txt
+npc: npc/014-1/wedding-officiator.txt
diff --git a/npc/014-1_Woodland/_mobs.txt b/npc/014-1/_mobs.txt
index f9a16d12..1c039ba1 100644
--- a/npc/014-1_Woodland/_mobs.txt
+++ b/npc/014-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 014-1 Woodland mobs
+// Woodland mobs
014-1.gat,0,0,0,0 monster EvilMushroom 1013,20,0,0,Mob014-1::On1013
014-1.gat,0,0,0,0 monster PinkFlower 1014,25,0,0,Mob014-1::On1014
diff --git a/npc/014-1_Woodland/_warps.txt b/npc/014-1/_warps.txt
index f81888e6..a3b9924b 100644
--- a/npc/014-1_Woodland/_warps.txt
+++ b/npc/014-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 014-1 Woodland warps
+// Woodland warps
014-1.gat,109,91 warp ToWoodland -1,1,011-1.gat,31,62
014-1.gat,93,58 warp ToCave -1,-1,014-3.gat,56,172
diff --git a/npc/014-1_Woodland/wedding-officiator.txt b/npc/014-1/wedding-officiator.txt
index f6bf7c9d..f6bf7c9d 100644
--- a/npc/014-1_Woodland/wedding-officiator.txt
+++ b/npc/014-1/wedding-officiator.txt
diff --git a/npc/014-3_Cave/_import.txt b/npc/014-3/_import.txt
index 6b15d275..d2d03e67 100644
--- a/npc/014-3_Cave/_import.txt
+++ b/npc/014-3/_import.txt
@@ -1,5 +1,6 @@
+// Map 014-3: Cave
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 014-3.gat
-npc: npc/014-3_Cave/_mobs.txt
-npc: npc/014-3_Cave/_warps.txt
-npc: npc/014-3_Cave/monsters.txt
+npc: npc/014-3/_mobs.txt
+npc: npc/014-3/_warps.txt
+npc: npc/014-3/monsters.txt
diff --git a/npc/014-3_Cave/_mobs.txt b/npc/014-3/_mobs.txt
index c8452fdd..996181e3 100644
--- a/npc/014-3_Cave/_mobs.txt
+++ b/npc/014-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 014-3 Cave mobs
+// Cave mobs
diff --git a/npc/014-3_Cave/_warps.txt b/npc/014-3/_warps.txt
index 73a05160..2ff59a5f 100644
--- a/npc/014-3_Cave/_warps.txt
+++ b/npc/014-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 014-3 Cave warps
+// Cave warps
014-3.gat,35,32 warp ToOutside -1,-1,014-1.gat,76,39
014-3.gat,57,173 warp ToOutside 0,-1,014-1.gat,93,59
diff --git a/npc/014-3_Cave/monsters.txt b/npc/014-3/monsters.txt
index 2237ea42..2237ea42 100644
--- a/npc/014-3_Cave/monsters.txt
+++ b/npc/014-3/monsters.txt
diff --git a/npc/015-1/_import.txt b/npc/015-1/_import.txt
new file mode 100644
index 00000000..94963d0b
--- /dev/null
+++ b/npc/015-1/_import.txt
@@ -0,0 +1,9 @@
+// Map 015-1: Woodland
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 015-1.gat
+npc: npc/015-1/_mobs.txt
+npc: npc/015-1/_warps.txt
+npc: npc/015-1/alice.txt
+npc: npc/015-1/barrier.txt
+npc: npc/015-1/monsters.txt
+npc: npc/015-1/sword.txt
diff --git a/npc/015-1_Woodland/_mobs.txt b/npc/015-1/_mobs.txt
index 22225157..cc1c71e9 100644
--- a/npc/015-1_Woodland/_mobs.txt
+++ b/npc/015-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 015-1 Woodland mobs
+// Woodland mobs
015-1.gat,0,0,0,0 monster Clover 1037,2,100000,1000,Mob015-1::On1037
015-1.gat,0,0,0,0 monster Butterfly 1055,10,30,20,Mob015-1::On1055
diff --git a/npc/015-1_Woodland/_warps.txt b/npc/015-1/_warps.txt
index 22598f14..a8152425 100644
--- a/npc/015-1_Woodland/_warps.txt
+++ b/npc/015-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 015-1 Woodland warps
+// Woodland warps
015-1.gat,93,55 warp ToWoodland -1,0,010-1.gat,15,55
015-1.gat,59,31 warp to 015_3 -1,-1,015-3.gat,31,42
diff --git a/npc/015-1_Woodland/alice.txt b/npc/015-1/alice.txt
index 125cc104..125cc104 100644
--- a/npc/015-1_Woodland/alice.txt
+++ b/npc/015-1/alice.txt
diff --git a/npc/015-1_Woodland/barrier.txt b/npc/015-1/barrier.txt
index 0ba82ec9..0ba82ec9 100644
--- a/npc/015-1_Woodland/barrier.txt
+++ b/npc/015-1/barrier.txt
diff --git a/npc/015-1_Woodland/monsters.txt b/npc/015-1/monsters.txt
index b6ff0fd9..b6ff0fd9 100644
--- a/npc/015-1_Woodland/monsters.txt
+++ b/npc/015-1/monsters.txt
diff --git a/npc/015-1_Woodland/sword.txt b/npc/015-1/sword.txt
index f5f0cd17..f5f0cd17 100644
--- a/npc/015-1_Woodland/sword.txt
+++ b/npc/015-1/sword.txt
diff --git a/npc/015-1_Woodland/_import.txt b/npc/015-1_Woodland/_import.txt
deleted file mode 100644
index 42cd6522..00000000
--- a/npc/015-1_Woodland/_import.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 015-1.gat
-npc: npc/015-1_Woodland/_mobs.txt
-npc: npc/015-1_Woodland/_warps.txt
-npc: npc/015-1_Woodland/alice.txt
-npc: npc/015-1_Woodland/barrier.txt
-npc: npc/015-1_Woodland/monsters.txt
-npc: npc/015-1_Woodland/sword.txt
diff --git a/npc/015-3/_import.txt b/npc/015-3/_import.txt
new file mode 100644
index 00000000..9a9632ba
--- /dev/null
+++ b/npc/015-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 015-3: Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 015-3.gat
+npc: npc/015-3/_mobs.txt
+npc: npc/015-3/_warps.txt
+npc: npc/015-3/barrier.txt
+npc: npc/015-3/katze.txt
+npc: npc/015-3/pot.txt
diff --git a/npc/015-3_Cave/_mobs.txt b/npc/015-3/_mobs.txt
index 42fb3d4d..43f7eea0 100644
--- a/npc/015-3_Cave/_mobs.txt
+++ b/npc/015-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 015-3 Cave mobs
+// Cave mobs
015-3.gat,21,25,3,4 monster Bats 1017,2,100000,30000,Mob015-3::On1017
015-3.gat,29,31,2,2 monster Maggots 1002,2,100000,30000,Mob015-3::On1002
diff --git a/npc/015-3_Cave/_warps.txt b/npc/015-3/_warps.txt
index e2d241ef..861a6938 100644
--- a/npc/015-3_Cave/_warps.txt
+++ b/npc/015-3/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 015-3 Cave warps
+// Cave warps
015-3.gat,31,43 warp to 015-1 -1,-1,015-1.gat,59,32
diff --git a/npc/015-3_Cave/barrier.txt b/npc/015-3/barrier.txt
index 27a18bc3..27a18bc3 100644
--- a/npc/015-3_Cave/barrier.txt
+++ b/npc/015-3/barrier.txt
diff --git a/npc/015-3_Cave/katze.txt b/npc/015-3/katze.txt
index 1654542c..f1433ed6 100644
--- a/npc/015-3_Cave/katze.txt
+++ b/npc/015-3/katze.txt
@@ -109,12 +109,12 @@ L_NeedsStuff:
set Katze, 5;
mes "[Katze]";
mes "\"You've been really kind to me. I can make you something nice, but I will need";
- mes "2 [snake skin]s,";
- mes "2 [snake tongue]s,";
- mes "2 [maggot slime]s,";
- mes "2 [white fur]s,";
- mes "2 [hard spike]s and";
- mes "2 [tiny healing potion]s.\"";
+ mes "2 Snake Skins,";
+ mes "2 Snake Tongues,";
+ mes "2 Maggot Slimes,";
+ mes "2 White Furs,";
+ mes "2 Hard Spikes and";
+ mes "2 Tiny Healing Potions.\"";
close;
L_NeedsStuff2:
@@ -137,12 +137,12 @@ L_WhatsNeeded:
L_Please:
mes "[Katze]";
mes "\"Alright... [the cat glares at you] it was";
- mes "2 [snake skin]s,";
- mes "2 [snake tongue]s,";
- mes "2 [maggot slime]s,";
- mes "2 [white fur]s,";
- mes "2 [hard spike]s and";
- mes "2 [tiny healing potion]s.\"";
+ mes "2 Snake Skins,";
+ mes "2 Snake Tongues,";
+ mes "2 Maggot Slimes,";
+ mes "2 White Furs,";
+ mes "2 Hard Spikes and";
+ mes "2 Tiny Healing Potions.\"";
close;
L_CatChecksStuff:
diff --git a/npc/015-3_Cave/pot.txt b/npc/015-3/pot.txt
index a965223d..a965223d 100644
--- a/npc/015-3_Cave/pot.txt
+++ b/npc/015-3/pot.txt
diff --git a/npc/015-3_Cave/_import.txt b/npc/015-3_Cave/_import.txt
deleted file mode 100644
index 1763a0bc..00000000
--- a/npc/015-3_Cave/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 015-3.gat
-npc: npc/015-3_Cave/_mobs.txt
-npc: npc/015-3_Cave/_warps.txt
-npc: npc/015-3_Cave/barrier.txt
-npc: npc/015-3_Cave/katze.txt
-npc: npc/015-3_Cave/pot.txt
diff --git a/npc/016-1/_import.txt b/npc/016-1/_import.txt
new file mode 100644
index 00000000..3ba02b95
--- /dev/null
+++ b/npc/016-1/_import.txt
@@ -0,0 +1,7 @@
+// Map 016-1: Woodland
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 016-1.gat
+npc: npc/016-1/_mobs.txt
+npc: npc/016-1/_warps.txt
+npc: npc/016-1/gwendolyn.txt
+npc: npc/016-1/monsters.txt
diff --git a/npc/016-1_Woodland/_mobs.txt b/npc/016-1/_mobs.txt
index 82977d3f..3cdcb753 100644
--- a/npc/016-1_Woodland/_mobs.txt
+++ b/npc/016-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 016-1 Woodland mobs
+// Woodland mobs
016-1.gat,0,0,0,0 monster Clover 1037,2,100000,30000,Mob016-1::On1037
016-1.gat,0,0,0,0 monster Butterfly 1055,10,30,20,Mob016-1::On1055
diff --git a/npc/016-1_Woodland/_warps.txt b/npc/016-1/_warps.txt
index a1b505d2..8503d94d 100644
--- a/npc/016-1_Woodland/_warps.txt
+++ b/npc/016-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 016-1 Woodland warps
+// Woodland warps
016-1.gat,56,20 warp ToWoodland 1,-1,010-1.gat,56,103
016-1.gat,20,53 warp toSwamp -1,1,025-1.gat,129,58
diff --git a/npc/016-1_Woodland/gwendolyn.txt b/npc/016-1/gwendolyn.txt
index 469b720a..469b720a 100644
--- a/npc/016-1_Woodland/gwendolyn.txt
+++ b/npc/016-1/gwendolyn.txt
diff --git a/npc/016-1_Woodland/monsters.txt b/npc/016-1/monsters.txt
index d9d0de4f..d9d0de4f 100644
--- a/npc/016-1_Woodland/monsters.txt
+++ b/npc/016-1/monsters.txt
diff --git a/npc/016-1_Woodland/_import.txt b/npc/016-1_Woodland/_import.txt
deleted file mode 100644
index e81c1da2..00000000
--- a/npc/016-1_Woodland/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 016-1.gat
-npc: npc/016-1_Woodland/_mobs.txt
-npc: npc/016-1_Woodland/_warps.txt
-npc: npc/016-1_Woodland/gwendolyn.txt
-npc: npc/016-1_Woodland/monsters.txt
diff --git a/npc/017-1/_import.txt b/npc/017-1/_import.txt
new file mode 100644
index 00000000..41eb315e
--- /dev/null
+++ b/npc/017-1/_import.txt
@@ -0,0 +1,6 @@
+// Map 017-1: Woodland hills
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 017-1.gat
+npc: npc/017-1/_mobs.txt
+npc: npc/017-1/_warps.txt
+npc: npc/017-1/monsters.txt
diff --git a/npc/017-1_Woodland_hills/_mobs.txt b/npc/017-1/_mobs.txt
index 0e918457..a28ae59b 100644
--- a/npc/017-1_Woodland_hills/_mobs.txt
+++ b/npc/017-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 017-1 Woodland hills mobs
+// Woodland hills mobs
017-1.gat,0,0,0,0 monster Clover 1037,2,0,1000,Mob017-1::On1037
017-1.gat,29,29,19,12 monster GambogeHerb 2033,1,0,25000,Mob017-1::On2033
diff --git a/npc/017-1_Woodland_hills/_warps.txt b/npc/017-1/_warps.txt
index edb30a42..3eb1c24e 100644
--- a/npc/017-1_Woodland_hills/_warps.txt
+++ b/npc/017-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 017-1 Woodland hills warps
+// Woodland hills warps
017-1.gat,46,105 warp toWoodland 2,-1,013-1.gat,45,22
017-1.gat,43,32 warp toTheatre -1,-1,017-2.gat,26,28
diff --git a/npc/017-1_Woodland_hills/monsters.txt b/npc/017-1/monsters.txt
index 28f2d7e2..28f2d7e2 100644
--- a/npc/017-1_Woodland_hills/monsters.txt
+++ b/npc/017-1/monsters.txt
diff --git a/npc/017-1_Woodland_hills/_import.txt b/npc/017-1_Woodland_hills/_import.txt
deleted file mode 100644
index 505292d3..00000000
--- a/npc/017-1_Woodland_hills/_import.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 017-1.gat
-npc: npc/017-1_Woodland_hills/_mobs.txt
-npc: npc/017-1_Woodland_hills/_warps.txt
-npc: npc/017-1_Woodland_hills/monsters.txt
diff --git a/npc/017-2_Theater/_import.txt b/npc/017-2/_import.txt
index cb701730..843da4e7 100644
--- a/npc/017-2_Theater/_import.txt
+++ b/npc/017-2/_import.txt
@@ -1,4 +1,5 @@
+// Map 017-2: Theater
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 017-2.gat
-npc: npc/017-2_Theater/_mobs.txt
-npc: npc/017-2_Theater/_warps.txt
+npc: npc/017-2/_mobs.txt
+npc: npc/017-2/_warps.txt
diff --git a/npc/017-2_Theater/_mobs.txt b/npc/017-2/_mobs.txt
index eaf7b0d2..fff25198 100644
--- a/npc/017-2_Theater/_mobs.txt
+++ b/npc/017-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 017-2 Theater mobs
+// Theater mobs
diff --git a/npc/017-2_Theater/_warps.txt b/npc/017-2/_warps.txt
index 44084f31..0cd1dec9 100644
--- a/npc/017-2_Theater/_warps.txt
+++ b/npc/017-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 017-2 Theater warps
+// Theater warps
017-2.gat,30,20 warp toBackStage02 -1,-1,017-9.gat,30,23
017-2.gat,26,30 warp toWoodlandHills -1,-1,017-1.gat,43,33
diff --git a/npc/017-9_Backstage/_import.txt b/npc/017-9/_import.txt
index db6bb923..819fd8b3 100644
--- a/npc/017-9_Backstage/_import.txt
+++ b/npc/017-9/_import.txt
@@ -1,4 +1,5 @@
+// Map 017-9: Backstage
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 017-9.gat
-npc: npc/017-9_Backstage/_mobs.txt
-npc: npc/017-9_Backstage/_warps.txt
+npc: npc/017-9/_mobs.txt
+npc: npc/017-9/_warps.txt
diff --git a/npc/017-9_Backstage/_mobs.txt b/npc/017-9/_mobs.txt
index 0fb9bb82..960546c2 100644
--- a/npc/017-9_Backstage/_mobs.txt
+++ b/npc/017-9/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 017-9 Backstage mobs
+// Backstage mobs
diff --git a/npc/017-9_Backstage/_warps.txt b/npc/017-9/_warps.txt
index 212679ba..905f4de2 100644
--- a/npc/017-9_Backstage/_warps.txt
+++ b/npc/017-9/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 017-9 Backstage warps
+// Backstage warps
017-9.gat,22,21 warp toLeftDoor -1,-1,017-2.gat,22,21
017-9.gat,26,22 warp toWoodlandHills -1,-1,017-1.gat,43,33
diff --git a/npc/018-1/_import.txt b/npc/018-1/_import.txt
new file mode 100644
index 00000000..b3ab9841
--- /dev/null
+++ b/npc/018-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 018-1: Woodland mining camp
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 018-1.gat
+npc: npc/018-1/_mobs.txt
+npc: npc/018-1/_warps.txt
+npc: npc/018-1/mike.txt
+npc: npc/018-1/miners.txt
+npc: npc/018-1/sword.txt
diff --git a/npc/018-1_Woodland_mining_camp/_mobs.txt b/npc/018-1/_mobs.txt
index fd437b4f..02cdab24 100644
--- a/npc/018-1_Woodland_mining_camp/_mobs.txt
+++ b/npc/018-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 018-1 Woodland mining camp mobs
+// Woodland mining camp mobs
018-1.gat,136,79,9,41 monster Sea Slime 1033,10,100000,30000,Mob018-1::On1033
018-1.gat,108,87,53,25 monster Log Head 1025,10,100000,30000,Mob018-1::On1025
diff --git a/npc/018-1_Woodland_mining_camp/_warps.txt b/npc/018-1/_warps.txt
index 2bb21a22..028dbd0e 100644
--- a/npc/018-1_Woodland_mining_camp/_warps.txt
+++ b/npc/018-1/_warps.txt
@@ -1,7 +1,7 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 018-1 Woodland mining camp warps
+// Woodland mining camp warps
-018-1.gat,79,59 warp toMine 0,-1,018-3.gat,100,130
+018-1.gat,79,59 warp toMine 0,-1,018-3.gat,99,132
018-1.gat,112,61 warp toCave -1,-1,018-3.gat,44,36
018-1.gat,115,40 warp toCave -1,-1,013-3.gat,22,114
018-1.gat,128,56 warp toCave -1,-1,018-3.gat,49,97
diff --git a/npc/018-1_Woodland_mining_camp/mike.txt b/npc/018-1/mike.txt
index 7e0d296c..7e0d296c 100644
--- a/npc/018-1_Woodland_mining_camp/mike.txt
+++ b/npc/018-1/mike.txt
diff --git a/npc/018-1_Woodland_mining_camp/miners.txt b/npc/018-1/miners.txt
index f16b8bd7..f16b8bd7 100644
--- a/npc/018-1_Woodland_mining_camp/miners.txt
+++ b/npc/018-1/miners.txt
diff --git a/npc/018-1_Woodland_mining_camp/sword.txt b/npc/018-1/sword.txt
index 78cad244..78cad244 100644
--- a/npc/018-1_Woodland_mining_camp/sword.txt
+++ b/npc/018-1/sword.txt
diff --git a/npc/018-1_Woodland_mining_camp/_import.txt b/npc/018-1_Woodland_mining_camp/_import.txt
deleted file mode 100644
index ac8d9913..00000000
--- a/npc/018-1_Woodland_mining_camp/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 018-1.gat
-npc: npc/018-1_Woodland_mining_camp/_mobs.txt
-npc: npc/018-1_Woodland_mining_camp/_warps.txt
-npc: npc/018-1_Woodland_mining_camp/mike.txt
-npc: npc/018-1_Woodland_mining_camp/miners.txt
-npc: npc/018-1_Woodland_mining_camp/sword.txt
diff --git a/npc/018-2/_import.txt b/npc/018-2/_import.txt
new file mode 100644
index 00000000..8ce96730
--- /dev/null
+++ b/npc/018-2/_import.txt
@@ -0,0 +1,10 @@
+// Map 018-2: Woodland mining camp
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 018-2.gat
+npc: npc/018-2/_mobs.txt
+npc: npc/018-2/_warps.txt
+npc: npc/018-2/angus.txt
+npc: npc/018-2/books.txt
+npc: npc/018-2/caul.txt
+npc: npc/018-2/miners.txt
+npc: npc/018-2/receptionist.txt
diff --git a/npc/018-2_Woodland_mining_camp/_mobs.txt b/npc/018-2/_mobs.txt
index add80d14..87593b1c 100644
--- a/npc/018-2_Woodland_mining_camp/_mobs.txt
+++ b/npc/018-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 018-2 Woodland mining camp mobs
+// Woodland mining camp mobs
018-2.gat,114,21,4,3 monster Yellow Slime 1007,1,100000,30000,Mob018-2::On1007
diff --git a/npc/018-2_Woodland_mining_camp/_warps.txt b/npc/018-2/_warps.txt
index 1a51d7e8..78c97883 100644
--- a/npc/018-2_Woodland_mining_camp/_warps.txt
+++ b/npc/018-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 018-2 Woodland mining camp warps
+// Woodland mining camp warps
018-2.gat,50,29 warp toOutside -1,-1,018-1.gat,65,74
018-2.gat,41,20 warp toOutside -1,-1,018-1.gat,65,69
diff --git a/npc/018-2_Woodland_mining_camp/angus.txt b/npc/018-2/angus.txt
index 846bed7d..846bed7d 100644
--- a/npc/018-2_Woodland_mining_camp/angus.txt
+++ b/npc/018-2/angus.txt
diff --git a/npc/018-2_Woodland_mining_camp/books.txt b/npc/018-2/books.txt
index 22364c6d..22364c6d 100644
--- a/npc/018-2_Woodland_mining_camp/books.txt
+++ b/npc/018-2/books.txt
diff --git a/npc/018-2_Woodland_mining_camp/caul.txt b/npc/018-2/caul.txt
index 56734a69..56734a69 100644
--- a/npc/018-2_Woodland_mining_camp/caul.txt
+++ b/npc/018-2/caul.txt
diff --git a/npc/018-2/miners.txt b/npc/018-2/miners.txt
new file mode 100644
index 00000000..1e337036
--- /dev/null
+++ b/npc/018-2/miners.txt
@@ -0,0 +1,152 @@
+// This NPC makes gem powders out of gemstones
+// Authors: Ali-G, enchilado, Jenalya
+
+018-2.gat,85,23,0 script Malek 109,{
+
+ set @MIN_GEM_AMOUNT, 7;
+
+ if (Inspector == 10) goto L_NohMask;
+
+ mes "[Malek]";
+ mes "\"Hi, can I help you at all?\"";
+
+ if (FLAGS & FLAG_TOWEL_HELPED)
+ menu
+ "I'm looking for someone able to make gem powder.", L_GemPowder,
+ "I was just having a look, have a nice day.", L_abort;
+ menu
+ "I was just having a look, have a nice day.", L_abort;
+
+L_NohMask:
+ mes "[Malek]";
+ mes "\"Hi, can I help you at all?\"";
+
+ if (FLAGS & FLAG_TOWEL_HELPED)
+ menu
+ "I'm looking for someone able to make gem powder.", L_GemPowder,
+ "I was just having a look, have a nice day.", L_abort,
+ "The inspector sent me here to investigate.", L_Investigation;
+ menu
+ "I was just having a look, have a nice day.", L_abort,
+ "The inspector sent me here to investigate.", L_Investigation;
+
+L_Investigation:
+ set Inspector, 11;
+ mes "\"Yeah, we did hear a commotion. We thought we heard someone go down to the basement, but we checked the whole place over and didn't see anything out of the ordinary.\"";
+ close;
+
+L_GemPowder:
+ mes "[Malek]";
+ mes "\"My father taught me how to make that sort of powder. Put the gem on a firm surface, hold your pickaxe tight and whack that gem hard. It'll be crushed into powder pretty soon if you keep at it.\"";
+ mes "\"Do you want me to make any for you?\"";
+
+ menu
+ "Yes, I really need some.", L_GemPowderStart,
+ "Actually, I don't want anything. Have a nice day.", L_abort;
+
+L_GemPowderStart:
+ mes "[Malek]";
+ mes "\"Well, I can do that. Bring me a gem and I'll make you some powder - hope you don't mind if I keep a little as payment!\"";
+
+ menu
+ "I've got some gems.", L_Check_Gems,
+ "I'll be back with a gem soon.", L_abort,
+ "Actually, I prefer my gems whole. Thanks anyway.", L_abort;
+
+L_Check_Gems:
+ mes "[Malek]";
+ mes "\"Which gem do you want me to powder for you?\"";
+ next;
+ setarray @menuitems$, "", "", "", "", "", "", "";
+ set @c, 0;
+
+L_Check_Diamond:
+ if (countitem("GemRawWhite") < 1) goto L_Check_Ruby;
+ set @menuitems$[@c], "A diamond.";
+ set @menuid[@c], 0;
+ set @c, @c + 1;
+
+L_Check_Ruby:
+ if (countitem("GemRawRed") < 1) goto L_Check_Emerald;
+ set @menuitems$[@c], "A ruby.";
+ set @menuid[@c], 1;
+ set @c, @c + 1;
+
+L_Check_Emerald:
+ if (countitem("GemRawGreen") < 1) goto L_Check_Sapphire;
+ set @menuitems$[@c], "An emerald.";
+ set @menuid[@c], 2;
+ set @c, @c + 1;
+
+L_Check_Sapphire:
+ if (countitem("GemRawBlue") < 1) goto L_Check_Topaz;
+ set @menuitems$[@c], "A sapphire.";
+ set @menuid[@c], 3;
+ set @c, @c + 1;
+
+L_Check_Topaz:
+ if (countitem("GemRawYellow") < 1) goto L_Check_Amethyst;
+ set @menuitems$[@c], "A topaz.";
+ set @menuid[@c], 4;
+ set @c, @c + 1;
+
+L_Check_Amethyst:
+ if (countitem("GemRawPurple") < 1) goto L_Choose_Gem;
+ set @menuitems$[@c], "An amethyst.";
+ set @menuid[@c], 5;
+ set @c, @c + 1;
+
+L_Choose_Gem:
+ set @menuitems$[@c], "None right now, thanks.";
+ set @menuid[@c], 6;
+ set @c, @c + 1;
+ menu
+ @menuitems$[0], -,
+ @menuitems$[1], -,
+ @menuitems$[2], -,
+ @menuitems$[3], -,
+ @menuitems$[4], -,
+ @menuitems$[5], -,
+ @menuitems$[6], -;
+ set @menu, @menu - 1;
+ if (@menu >= @c) close;
+ if (@menuid[@menu] == 0) set @gem$, "GemRawWhite";
+ if (@menuid[@menu] == 1) set @gem$, "GemRawRed";
+ if (@menuid[@menu] == 2) set @gem$, "GemRawGreen";
+ if (@menuid[@menu] == 3) set @gem$, "GemRawBlue";
+ if (@menuid[@menu] == 4) set @gem$, "GemRawYellow";
+ if (@menuid[@menu] == 5) set @gem$, "GemRawPurple";
+ if (@menuid[@menu] == 6) goto L_abort;
+
+ getinventorylist;
+ if (countitem(@gem$) < 1) goto L_no_gem;
+ if (@inventorylist_count == 100 && countitem(@gem$) > 1) goto L_TooMany;
+ delitem @gem$, 1;
+ if (@gem$ == "GemRawWhite") getitem "GemPowderWhite", @MIN_GEM_AMOUNT + rand(6) + rand(6);
+ if (@gem$ == "GemRawRed") getitem "GemPowderRed", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "GemRawGreen") getitem "GemPowderGreen", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "GemRawBlue") getitem "GemPowderBlue", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "GemRawYellow") getitem "GemPowderYellow", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "GemRawPurple") getitem "GemPowderPurple", @MIN_GEM_AMOUNT + rand(6);
+
+ mes "[Malek]";
+ mes "\"Here's your powder. Hope it's fine enough for you.\"";
+ mes "\"Do you need me to make any more?\"";
+
+ menu
+ "Yes please.", L_Check_Gems,
+ "No thank you, this is enough.", L_abort;
+
+L_TooMany:
+ mes "[Malek]";
+ mes "\"Doesn't look like you've got room for this powder. Come back when you do.\"";
+ close;
+
+L_no_gem:
+ mes "[Malek]";
+ mes "\"You don't have that gem.\"";
+ close;
+
+L_abort:
+ close;
+}
diff --git a/npc/018-2_Woodland_mining_camp/receptionist.txt b/npc/018-2/receptionist.txt
index ee735d14..ee735d14 100644
--- a/npc/018-2_Woodland_mining_camp/receptionist.txt
+++ b/npc/018-2/receptionist.txt
diff --git a/npc/018-2_Woodland_mining_camp/_import.txt b/npc/018-2_Woodland_mining_camp/_import.txt
deleted file mode 100644
index ad3cd0cd..00000000
--- a/npc/018-2_Woodland_mining_camp/_import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 018-2.gat
-npc: npc/018-2_Woodland_mining_camp/_mobs.txt
-npc: npc/018-2_Woodland_mining_camp/_warps.txt
-npc: npc/018-2_Woodland_mining_camp/angus.txt
-npc: npc/018-2_Woodland_mining_camp/books.txt
-npc: npc/018-2_Woodland_mining_camp/caul.txt
-npc: npc/018-2_Woodland_mining_camp/miners.txt
-npc: npc/018-2_Woodland_mining_camp/receptionist.txt
diff --git a/npc/018-2_Woodland_mining_camp/miners.txt b/npc/018-2_Woodland_mining_camp/miners.txt
deleted file mode 100644
index caf8afcd..00000000
--- a/npc/018-2_Woodland_mining_camp/miners.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-
-018-2.gat,85,23,0 script Miner 109,{
- if (Inspector == 10) goto L_NohMask;
-
- mes "[Miner]";
- mes "\"Hello.\"";
- close;
-
-L_NohMask:
- set Inspector, 11;
- mes "[Miner]";
- mes "\"Yeah, we did hear a commotion. We thought we heard someone go down to the basement, but we checked the whole place over and didn't see anything out of the ordinary.\"";
- close;
-}
diff --git a/npc/018-3/_import.txt b/npc/018-3/_import.txt
new file mode 100644
index 00000000..53391a07
--- /dev/null
+++ b/npc/018-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 018-3: Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 018-3.gat
+npc: npc/018-3/_mobs.txt
+npc: npc/018-3/_warps.txt
+npc: npc/018-3/bookcase.txt
+npc: npc/018-3/evil-obelisk.txt
+npc: npc/018-3/sword.txt
diff --git a/npc/018-3_Cave/_mobs.txt b/npc/018-3/_mobs.txt
index d0878d1a..a063b8bb 100644
--- a/npc/018-3_Cave/_mobs.txt
+++ b/npc/018-3/_mobs.txt
@@ -1,11 +1,11 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 018-3 Cave mobs
+// Cave mobs
018-3.gat,48,28,56,17 monster Bat 1017,10,100000,30000,Mob018-3::On1017
018-3.gat,35,144,31,48 monster Evil Mushroom 1013,10,120000,30000,Mob018-3::On1013
018-3.gat,35,65,28,22 monster Spider 1012,20,100000,50000,Mob018-3::On1012
018-3.gat,28,157,3,2 monster PinkFlower 1014,1,60000,30000,Mob018-3::On1014
-018-3.gat,99,110,17,39 monster Yellow slime 1007,10,90000,30000,Mob018-3::On1007
+018-3.gat,99,111,17,41 monster Yellow slime 1007,10,90000,30000,Mob018-3::On1007
018-3.gat,134,140,12,8 monster Maggot 1002,3,80000,40000,Mob018-3::On1002
018-3.gat,132,137,15,25 monster Spider 1012,8,300000,120000,Mob018-3::On1012
018-3.gat,102,172,131,13 monster Black scorpions 1009,20,60000,10000,Mob018-3::On1009
diff --git a/npc/018-3_Cave/_warps.txt b/npc/018-3/_warps.txt
index d676b9c6..a4450b3f 100644
--- a/npc/018-3_Cave/_warps.txt
+++ b/npc/018-3/_warps.txt
@@ -1,7 +1,7 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 018-3 Cave warps
+// Cave warps
-018-3.gat,100,131 warp toOutside 0,-1,018-1.gat,79,60
+018-3.gat,100,133 warp toOutside 0,-1,018-1.gat,78,60
018-3.gat,44,37 warp toOutside -1,-1,018-1.gat,112,62
018-3.gat,49,98 warp toOutside -1,-1,018-1.gat,128,57
018-3.gat,123,165 warp toOutside -1,-1,018-1.gat,90,43
diff --git a/npc/018-3_Cave/bookcase.txt b/npc/018-3/bookcase.txt
index 843c94ae..843c94ae 100644
--- a/npc/018-3_Cave/bookcase.txt
+++ b/npc/018-3/bookcase.txt
diff --git a/npc/018-3_Cave/evil-obelisk.txt b/npc/018-3/evil-obelisk.txt
index 4893cfeb..4893cfeb 100644
--- a/npc/018-3_Cave/evil-obelisk.txt
+++ b/npc/018-3/evil-obelisk.txt
diff --git a/npc/018-3_Cave/sword.txt b/npc/018-3/sword.txt
index f8ee7725..f8ee7725 100644
--- a/npc/018-3_Cave/sword.txt
+++ b/npc/018-3/sword.txt
diff --git a/npc/018-3_Cave/_import.txt b/npc/018-3_Cave/_import.txt
deleted file mode 100644
index 40e09c80..00000000
--- a/npc/018-3_Cave/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 018-3.gat
-npc: npc/018-3_Cave/_mobs.txt
-npc: npc/018-3_Cave/_warps.txt
-npc: npc/018-3_Cave/bookcase.txt
-npc: npc/018-3_Cave/evil-obelisk.txt
-npc: npc/018-3_Cave/sword.txt
diff --git a/npc/019-1/_import.txt b/npc/019-1/_import.txt
new file mode 100644
index 00000000..287a2cb2
--- /dev/null
+++ b/npc/019-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 019-1: Snow field
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 019-1.gat
+npc: npc/019-1/_mobs.txt
+npc: npc/019-1/_warps.txt
+npc: npc/019-1/monsters.txt
+npc: npc/019-1/santa_helper.txt
+npc: npc/019-1/snowman.txt
diff --git a/npc/019-1_Snow_field/_mobs.txt b/npc/019-1/_mobs.txt
index 4ab8b0d6..ae32c186 100644
--- a/npc/019-1_Snow_field/_mobs.txt
+++ b/npc/019-1/_mobs.txt
@@ -1,8 +1,14 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 019-1 Snow field mobs
+// Snow field mobs
+019-1.gat,0,0,0,0 monster Fluffy 1020,100,100000,30000,Mob019-1::On1020
019-1.gat,0,0,0 script Mob019-1 -1,{
+On1020:
+ set @mobID, 1020;
+ callfunc "MobPoints";
+ break;
+
end;
}
diff --git a/npc/019-1_Snow_field/_warps.txt b/npc/019-1/_warps.txt
index 2ed88379..6e1fa6c9 100644
--- a/npc/019-1_Snow_field/_warps.txt
+++ b/npc/019-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 019-1 Snow field warps
+// Snow field warps
019-1.gat,70,21 warp ToVillage 2,-1,020-1.gat,70,126
019-1.gat,61,102 warp toRomanticPlace 2,-1,030-1.gat,60,29
diff --git a/npc/019-1_Snow_field/monsters.txt b/npc/019-1/monsters.txt
index d41d63b3..d41d63b3 100644
--- a/npc/019-1_Snow_field/monsters.txt
+++ b/npc/019-1/monsters.txt
diff --git a/npc/019-1_Snow_field/santa_helper.txt b/npc/019-1/santa_helper.txt
index 79089975..d2c5bcf9 100644
--- a/npc/019-1_Snow_field/santa_helper.txt
+++ b/npc/019-1/santa_helper.txt
@@ -36,9 +36,9 @@ L_Y:
L_R:
mes "[Santa's Helper]";
mes "\"I need:";
- mes "25 [purple present box]es";
- mes "20 [blue present box]es";
- mes "5 [green present box]es\"";
+ mes "25 Purple Present Boxes";
+ mes "20 Blue Present Boxes";
+ mes "5 Green Present Boxes\"";
next;
goto L_M;
diff --git a/npc/019-1_Snow_field/snowman.txt b/npc/019-1/snowman.txt
index eda1e733..11831356 100644
--- a/npc/019-1_Snow_field/snowman.txt
+++ b/npc/019-1/snowman.txt
@@ -39,9 +39,9 @@ L_Need:
mes "[Snowman]";
mes "\"For this special hat, I need a pint of magic and a little help.";
mes "Just kidding. I would like to get some food:";
- mes "15 pieces of [Candy]";
- mes "10 [Chocolate bar]s";
- mes "5 [Cactus potion]s\"";
+ mes "15 pieces of Candy";
+ mes "10 Chocolate Bars";
+ mes "5 Cactus Potions\"";
next;
goto L_Menu;
diff --git a/npc/019-1_Snow_field/_import.txt b/npc/019-1_Snow_field/_import.txt
deleted file mode 100644
index e3a1035e..00000000
--- a/npc/019-1_Snow_field/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 019-1.gat
-npc: npc/019-1_Snow_field/_mobs.txt
-npc: npc/019-1_Snow_field/_warps.txt
-npc: npc/019-1_Snow_field/monsters.txt
-npc: npc/019-1_Snow_field/santa_helper.txt
-npc: npc/019-1_Snow_field/snowman.txt
diff --git a/npc/019-3_Snow_Cave/_import.txt b/npc/019-3/_import.txt
index 7736709b..4ccd622b 100644
--- a/npc/019-3_Snow_Cave/_import.txt
+++ b/npc/019-3/_import.txt
@@ -1,4 +1,5 @@
+// Map 019-3: Snow Cave
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 019-3.gat
-npc: npc/019-3_Snow_Cave/_mobs.txt
-npc: npc/019-3_Snow_Cave/_warps.txt
+npc: npc/019-3/_mobs.txt
+npc: npc/019-3/_warps.txt
diff --git a/npc/019-3_Snow_Cave/_mobs.txt b/npc/019-3/_mobs.txt
index c1e33180..60d9e507 100644
--- a/npc/019-3_Snow_Cave/_mobs.txt
+++ b/npc/019-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 019-3 Snow Cave mobs
+// Snow Cave mobs
019-3.gat,0,0,0,0 monster Moggun 1061,10,100000,30000,Mob019-3::On1061
019-3.gat,0,0,0,0 monster Bats 1017,50,100000,30000,Mob019-3::On1017
diff --git a/npc/019-3_Snow_Cave/_warps.txt b/npc/019-3/_warps.txt
index f058a378..2df54be1 100644
--- a/npc/019-3_Snow_Cave/_warps.txt
+++ b/npc/019-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 019-3 Snow Cave warps
+// Snow Cave warps
019-3.gat,40,99 warp WarpOutside1 -1,-1,019-1.gat,38,73
019-3.gat,98,25 warp warpOutside2 -1,-1,019-1.gat,96,38
diff --git a/npc/020-1_Nivalis/KrickKrackKrock.txt b/npc/020-1/KrickKrackKrock.txt
index b37dd0e1..b37dd0e1 100755..100644
--- a/npc/020-1_Nivalis/KrickKrackKrock.txt
+++ b/npc/020-1/KrickKrackKrock.txt
diff --git a/npc/020-1/_import.txt b/npc/020-1/_import.txt
new file mode 100644
index 00000000..704d916d
--- /dev/null
+++ b/npc/020-1/_import.txt
@@ -0,0 +1,10 @@
+// Map 020-1: Nivalis
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 020-1.gat
+npc: npc/020-1/KrickKrackKrock.txt
+npc: npc/020-1/_mobs.txt
+npc: npc/020-1/_warps.txt
+npc: npc/020-1/mapflags.txt
+npc: npc/020-1/rockscissor.txt
+npc: npc/020-1/soul-menhir.txt
+npc: npc/020-1/well.txt
diff --git a/npc/020-1_Nivalis/_mobs.txt b/npc/020-1/_mobs.txt
index a7304e20..d236884e 100644
--- a/npc/020-1_Nivalis/_mobs.txt
+++ b/npc/020-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 020-1 Nivalis mobs
+// Nivalis mobs
diff --git a/npc/020-1_Nivalis/_warps.txt b/npc/020-1/_warps.txt
index 83138739..5bac9e69 100644
--- a/npc/020-1_Nivalis/_warps.txt
+++ b/npc/020-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 020-1 Nivalis warps
+// Nivalis warps
020-1.gat,76,38 warp ToIceCave 1,-1,020-3.gat,31,28
020-1.gat,47,48 warp ToClothesShop -1,-1,020-2.gat,25,33
diff --git a/npc/020-1_Nivalis/mapflags.txt b/npc/020-1/mapflags.txt
index 203cf649..203cf649 100644
--- a/npc/020-1_Nivalis/mapflags.txt
+++ b/npc/020-1/mapflags.txt
diff --git a/npc/020-1_Nivalis/rockscissor.txt b/npc/020-1/rockscissor.txt
index d4a9d6f6..d4a9d6f6 100755..100644
--- a/npc/020-1_Nivalis/rockscissor.txt
+++ b/npc/020-1/rockscissor.txt
diff --git a/npc/020-1/soul-menhir.txt b/npc/020-1/soul-menhir.txt
new file mode 100644
index 00000000..f6e52869
--- /dev/null
+++ b/npc/020-1/soul-menhir.txt
@@ -0,0 +1,12 @@
+//
+
+020-1.gat,63,89,0 script Soul Menhir 144, {
+ callfunc "ClearVariables";
+ set @map$, "020-1.gat";
+ setarray @Xs, 62, 63, 64, 62, 64, 62, 63, 64;
+ setarray @Ys, 88, 88, 88, 89, 89, 90, 90, 90;
+ set @x, 0;
+ set @y, 0;
+ callfunc "SoulMenhir";
+ close;
+}
diff --git a/npc/020-1_Nivalis/well.txt b/npc/020-1/well.txt
index ed025a0f..ed025a0f 100755..100644
--- a/npc/020-1_Nivalis/well.txt
+++ b/npc/020-1/well.txt
diff --git a/npc/020-1_Nivalis/_import.txt b/npc/020-1_Nivalis/_import.txt
deleted file mode 100644
index d4d1e1b3..00000000
--- a/npc/020-1_Nivalis/_import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 020-1.gat
-npc: npc/020-1_Nivalis/KrickKrackKrock.txt
-npc: npc/020-1_Nivalis/_mobs.txt
-npc: npc/020-1_Nivalis/_warps.txt
-npc: npc/020-1_Nivalis/mapflags.txt
-npc: npc/020-1_Nivalis/rockscissor.txt
-npc: npc/020-1_Nivalis/soul-menhir.txt
-npc: npc/020-1_Nivalis/well.txt
diff --git a/npc/020-1_Nivalis/soul-menhir.txt b/npc/020-1_Nivalis/soul-menhir.txt
deleted file mode 100644
index ee973170..00000000
--- a/npc/020-1_Nivalis/soul-menhir.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-//
-
-020-1.gat,64,89,0 script Soul Menhir 144, {
- callfunc "ClearVariables";
- set @map$, "020-1.gat";
- setarray @Xs, 63, 64, 65, 63, 65, 63, 65;
- setarray @Ys, 88, 88, 88, 89, 89, 90, 90;
- set @x, 0;
- set @y, 0;
- callfunc "SoulMenhir";
- close;
-}
diff --git a/npc/020-2/_import.txt b/npc/020-2/_import.txt
new file mode 100644
index 00000000..77e81574
--- /dev/null
+++ b/npc/020-2/_import.txt
@@ -0,0 +1,9 @@
+// Map 020-2: Nivalis
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 020-2.gat
+npc: npc/020-2/_mobs.txt
+npc: npc/020-2/_warps.txt
+npc: npc/020-2/baktar.txt
+npc: npc/020-2/furquest.txt
+npc: npc/020-2/mapflags.txt
+npc: npc/020-2/shops.txt
diff --git a/npc/020-2_Nivalis/_mobs.txt b/npc/020-2/_mobs.txt
index 0031d6e0..04e864c0 100644
--- a/npc/020-2_Nivalis/_mobs.txt
+++ b/npc/020-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 020-2 Nivalis mobs
+// Nivalis mobs
diff --git a/npc/020-2_Nivalis/_warps.txt b/npc/020-2/_warps.txt
index 643436f0..fab55b38 100644
--- a/npc/020-2_Nivalis/_warps.txt
+++ b/npc/020-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 020-2 Nivalis warps
+// Nivalis warps
020-2.gat,25,35 warp ToOutside -1,-1,020-1.gat,47,50
020-2.gat,64,25 warp ToOutside -1,-1,020-1.gat,55,90
diff --git a/npc/020-2_Nivalis/baktar.txt b/npc/020-2/baktar.txt
index 1bcbf152..1bcbf152 100755..100644
--- a/npc/020-2_Nivalis/baktar.txt
+++ b/npc/020-2/baktar.txt
diff --git a/npc/021-2_Tulimshar/furquest.txt b/npc/020-2/furquest.txt
index 04814576..98d46660 100644
--- a/npc/021-2_Tulimshar/furquest.txt
+++ b/npc/020-2/furquest.txt
@@ -3,7 +3,7 @@
//#################################################################################
// Tulimshar Crafting Workshop - Agostine, The Legendary Tailor
-021-2.gat,32,63,0 script Agostine 137,{
+020-2.gat,27,26,0 script Agostine 137,{
if (QUEST_WG_state == 1) goto L_State_0_3;
if (QUEST_WG_state == 2) goto L_State_1;
if (QUEST_WG_state == 3) goto L_State_2;
diff --git a/npc/020-2_Nivalis/mapflags.txt b/npc/020-2/mapflags.txt
index aaa1b90f..aaa1b90f 100644
--- a/npc/020-2_Nivalis/mapflags.txt
+++ b/npc/020-2/mapflags.txt
diff --git a/npc/020-2_Nivalis/shops.txt b/npc/020-2/shops.txt
index b470d231..cc796b55 100644
--- a/npc/020-2_Nivalis/shops.txt
+++ b/npc/020-2/shops.txt
@@ -1,11 +1,11 @@
// Snow town shops
// Clothes shop
-020-2.gat,27,26,0 shop Taylor 137,523:2000,524:1600,543:800,544:5000,546:10000,586:1000,741:-1
+020-2.gat,75,28,0 shop Taylor 137,523:2000,524:1600,543:800,544:5000,546:10000,586:1000,741:-1
// Weapons shop
020-2.gat,25,65,0 shop Bracco 135,1201:50,521:1000,522:100,529:3,530:-1
// Potions shop
-020-2.gat,75,26,0 shop Mede 103,501:50,502:70,567:500,568:500
+020-2.gat,75,24,0 shop Mede 103,501:50,502:70,567:500,568:500
// INN
020-2.gat,111,23,0 script Kane 120,{
diff --git a/npc/020-2_Nivalis/_import.txt b/npc/020-2_Nivalis/_import.txt
deleted file mode 100644
index 14e50193..00000000
--- a/npc/020-2_Nivalis/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 020-2.gat
-npc: npc/020-2_Nivalis/_mobs.txt
-npc: npc/020-2_Nivalis/_warps.txt
-npc: npc/020-2_Nivalis/baktar.txt
-npc: npc/020-2_Nivalis/mapflags.txt
-npc: npc/020-2_Nivalis/shops.txt
diff --git a/npc/020-3_Ice_cave/_import.txt b/npc/020-3/_import.txt
index 77358dc1..fe2ee10c 100644
--- a/npc/020-3_Ice_cave/_import.txt
+++ b/npc/020-3/_import.txt
@@ -1,5 +1,6 @@
+// Map 020-3: Ice cave
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 020-3.gat
-npc: npc/020-3_Ice_cave/_mobs.txt
-npc: npc/020-3_Ice_cave/_warps.txt
-npc: npc/020-3_Ice_cave/monsters.txt
+npc: npc/020-3/_mobs.txt
+npc: npc/020-3/_warps.txt
+npc: npc/020-3/monsters.txt
diff --git a/npc/020-3_Ice_cave/_mobs.txt b/npc/020-3/_mobs.txt
index 0c06d75b..1b23103c 100644
--- a/npc/020-3_Ice_cave/_mobs.txt
+++ b/npc/020-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 020-3 Ice cave mobs
+// Ice cave mobs
020-3.gat,40,36,29,4 monster Bat 1017,1,100000,30000,Mob020-3::On1017
020-3.gat,40,49,34,7 monster Violet 1018,1,100000,30000,Mob020-3::On1018
diff --git a/npc/020-3_Ice_cave/_warps.txt b/npc/020-3/_warps.txt
index 3db3c780..b43072b5 100644
--- a/npc/020-3_Ice_cave/_warps.txt
+++ b/npc/020-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 020-3 Ice cave warps
+// Ice cave warps
020-3.gat,31,25 warp toOutside -1,-1,020-1.gat,76,37
020-3.gat,25,22 warp toRightLowerCave -1,-1,020-3.gat,97,101
diff --git a/npc/020-3_Ice_cave/monsters.txt b/npc/020-3/monsters.txt
index 062c6a9f..062c6a9f 100644
--- a/npc/020-3_Ice_cave/monsters.txt
+++ b/npc/020-3/monsters.txt
diff --git a/npc/020-4_Ice_cave/_import.txt b/npc/020-4_Ice_cave/_import.txt
deleted file mode 100644
index 64953f5d..00000000
--- a/npc/020-4_Ice_cave/_import.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-map: 020-4.gat
-npc: npc/020-4_Ice_cave/_mobs.txt
-npc: npc/020-4_Ice_cave/_warps.txt
-npc: npc/020-4_Ice_cave/monsters.txt
diff --git a/npc/020-4_Ice_cave/_mobs.txt b/npc/020-4_Ice_cave/_mobs.txt
deleted file mode 100644
index 99c21fea..00000000
--- a/npc/020-4_Ice_cave/_mobs.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// 020-4 Ice cave mobs
-
-
-
-020-4.gat,0,0,0 script Mob020-4 -1,{
- end;
-}
diff --git a/npc/020-4_Ice_cave/_warps.txt b/npc/020-4_Ice_cave/_warps.txt
deleted file mode 100644
index a02cadc4..00000000
--- a/npc/020-4_Ice_cave/_warps.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-// 020-4 Ice cave warps
-
-020-4.gat,36,33 warp toIceCave1 -1,-1,020-3.gat,25,23
diff --git a/npc/020-4_Ice_cave/monsters.txt b/npc/020-4_Ice_cave/monsters.txt
deleted file mode 100644
index 5aadddab..00000000
--- a/npc/020-4_Ice_cave/monsters.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-// Ice Cave second level
-
-020-4.gat,0,0,0,0 monster Bat 1017,5,0,0,Mob21::OnBat
-020-4.gat,0,0,0,0 monster Fluffy 1020,15,0,0,Mob21::OnFluffy
-
-020-4.gat,0,0,0 script Mob21 -1,{
-OnBat:
- set @mobID, 1017;
- callfunc "MobPoints";
- break;
-
-OnFluffy:
- set @mobID, 1020;
- callfunc "MobPoints";
- break;
-
- end;
-}
diff --git a/npc/021-1/_import.txt b/npc/021-1/_import.txt
new file mode 100644
index 00000000..0c068010
--- /dev/null
+++ b/npc/021-1/_import.txt
@@ -0,0 +1,14 @@
+// Map 021-1: Tulimshar
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 021-1.gat
+npc: npc/021-1/_mobs.txt
+npc: npc/021-1/_warps.txt
+npc: npc/021-1/bakery.txt
+npc: npc/021-1/eurni.txt
+npc: npc/021-1/gate_guards.txt
+npc: npc/021-1/inac.txt
+npc: npc/021-1/mapflags.txt
+npc: npc/021-1/north_shops.txt
+npc: npc/021-1/royal_guards.txt
+npc: npc/021-1/weellos.txt
+npc: npc/021-1/workers.txt
diff --git a/npc/021-1_Tulimshar/_mobs.txt b/npc/021-1/_mobs.txt
index 4879d529..ab4a88c1 100644
--- a/npc/021-1_Tulimshar/_mobs.txt
+++ b/npc/021-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 021-1 Tulimshar mobs
+// Tulimshar mobs
021-1.gat,126,86,3,2 monster Maggot 1002,2,100000,30000,Mob021-1::On1002
021-1.gat,90,65,3,2 monster Maggot 1002,2,100000,30000,Mob021-1::On1002
diff --git a/npc/021-1_Tulimshar/_warps.txt b/npc/021-1/_warps.txt
index d6da764c..5d8bdc27 100644
--- a/npc/021-1_Tulimshar/_warps.txt
+++ b/npc/021-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 021-1 Tulimshar warps
+// Tulimshar warps
021-1.gat,55,146 warp toBazaar 3,-1,001-1.gat,44,20
021-1.gat,136,146 warp toSouthTulimshar 0,-1,001-1.gat,124,21
diff --git a/npc/021-1_Tulimshar/bakery.txt b/npc/021-1/bakery.txt
index d7ca399f..d7ca399f 100644
--- a/npc/021-1_Tulimshar/bakery.txt
+++ b/npc/021-1/bakery.txt
diff --git a/npc/021-1_Tulimshar/eurni.txt b/npc/021-1/eurni.txt
index 1a140e81..1a140e81 100644
--- a/npc/021-1_Tulimshar/eurni.txt
+++ b/npc/021-1/eurni.txt
diff --git a/npc/021-1_Tulimshar/gate_guards.txt b/npc/021-1/gate_guards.txt
index 2d0dc504..2d0dc504 100644
--- a/npc/021-1_Tulimshar/gate_guards.txt
+++ b/npc/021-1/gate_guards.txt
diff --git a/npc/021-1_Tulimshar/inac.txt b/npc/021-1/inac.txt
index 15f9eca3..15f9eca3 100644
--- a/npc/021-1_Tulimshar/inac.txt
+++ b/npc/021-1/inac.txt
diff --git a/npc/021-1_Tulimshar/mapflags.txt b/npc/021-1/mapflags.txt
index 3719ed0f..3719ed0f 100644
--- a/npc/021-1_Tulimshar/mapflags.txt
+++ b/npc/021-1/mapflags.txt
diff --git a/npc/021-1_Tulimshar/north_shops.txt b/npc/021-1/north_shops.txt
index 4fc3c481..4fc3c481 100644
--- a/npc/021-1_Tulimshar/north_shops.txt
+++ b/npc/021-1/north_shops.txt
diff --git a/npc/021-1_Tulimshar/royal_guards.txt b/npc/021-1/royal_guards.txt
index 02996184..02996184 100644
--- a/npc/021-1_Tulimshar/royal_guards.txt
+++ b/npc/021-1/royal_guards.txt
diff --git a/npc/021-1_Tulimshar/weellos.txt b/npc/021-1/weellos.txt
index 06bb8f17..06bb8f17 100644
--- a/npc/021-1_Tulimshar/weellos.txt
+++ b/npc/021-1/weellos.txt
diff --git a/npc/021-1_Tulimshar/workers.txt b/npc/021-1/workers.txt
index 24ea8f84..24ea8f84 100644
--- a/npc/021-1_Tulimshar/workers.txt
+++ b/npc/021-1/workers.txt
diff --git a/npc/021-1_Tulimshar/_import.txt b/npc/021-1_Tulimshar/_import.txt
deleted file mode 100644
index 346d975a..00000000
--- a/npc/021-1_Tulimshar/_import.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 021-1.gat
-npc: npc/021-1_Tulimshar/_mobs.txt
-npc: npc/021-1_Tulimshar/_warps.txt
-npc: npc/021-1_Tulimshar/bakery.txt
-npc: npc/021-1_Tulimshar/eurni.txt
-npc: npc/021-1_Tulimshar/gate_guards.txt
-npc: npc/021-1_Tulimshar/inac.txt
-npc: npc/021-1_Tulimshar/mapflags.txt
-npc: npc/021-1_Tulimshar/north_shops.txt
-npc: npc/021-1_Tulimshar/royal_guards.txt
-npc: npc/021-1_Tulimshar/weellos.txt
-npc: npc/021-1_Tulimshar/workers.txt
diff --git a/npc/021-2/_import.txt b/npc/021-2/_import.txt
new file mode 100644
index 00000000..9dc3ac4b
--- /dev/null
+++ b/npc/021-2/_import.txt
@@ -0,0 +1,12 @@
+// Map 021-2: Tulimshar
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 021-2.gat
+npc: npc/021-2/_mobs.txt
+npc: npc/021-2/_warps.txt
+npc: npc/021-2/bakery.txt
+npc: npc/021-2/government_building.txt
+npc: npc/021-2/heathin.txt
+npc: npc/021-2/inya.txt
+npc: npc/021-2/jhedia.txt
+npc: npc/021-2/mapflags.txt
+npc: npc/021-2/workshop.txt
diff --git a/npc/021-2_Tulimshar/_mobs.txt b/npc/021-2/_mobs.txt
index 7fbbb315..a390438e 100644
--- a/npc/021-2_Tulimshar/_mobs.txt
+++ b/npc/021-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 021-2 Tulimshar mobs
+// Tulimshar mobs
diff --git a/npc/021-2_Tulimshar/_warps.txt b/npc/021-2/_warps.txt
index 667da38f..0af6f275 100644
--- a/npc/021-2_Tulimshar/_warps.txt
+++ b/npc/021-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 021-2 Tulimshar warps
+// Tulimshar warps
021-2.gat,27,30 warp toOutside -1,-1,021-1.gat,53,135
021-2.gat,33,30 warp toOutside -1,-1,021-1.gat,55,135
diff --git a/npc/021-2/bakery.txt b/npc/021-2/bakery.txt
new file mode 100644
index 00000000..8a6dbdb2
--- /dev/null
+++ b/npc/021-2/bakery.txt
@@ -0,0 +1,234 @@
+// The bakery
+
+// The chef
+021-2.gat,95,21,0 script Riskim 148,{
+
+// lines belong to easter 2011:
+// set @month, 4;
+// set @start_day, 15;
+// set @end_day, 30;
+
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 10) goto L_ChocMouboo;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 11) goto L_MakeChocMouboo;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 12) goto L_SeeBunny;
+
+L_Begin:
+ mes "[Riskim]";
+ mes "";
+ mes "\"Welcome to our bakery!\"";
+
+ callfunc "KadiyaSubquestConsts";
+ if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) && (countitem ("MopoxCurePotion") > 0))
+ goto L_lace_chococake;
+
+ if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE) && (countitem ("MopoxCurePotion") > 0))
+ goto L_lace_cupcake;
+
+ mes "\"Would you mind bringing me 6 acorns please? I need them to make flour for the chocolate cakes. I will be so delicious!\"";
+ next;
+ mes "\"Um, I mean, the cakes will be delicious...\"";
+ emotion 8;
+ next;
+
+ set @dq_level, 15;
+ set @dq_cost, 3;
+ set @dq_count, 6;
+ set @dq_name$, "Acorn";
+ set @dq_friendly_name$, "acorns";
+ set @dq_money, 250;
+ set @dq_exp, 50;
+
+ callfunc "DailyQuest";
+
+ next;
+
+ mes "\"And don't forget, our bakery is the best!\"";
+
+ close;
+
+L_lace_chococake:
+ next;
+
+ menu
+ "Thanks! Let me have a look around...", L_end,
+ "Can you put this potion into a Chocolate Cake?", -,
+ "Goodbye!", L_end;
+
+ mes "[Riskim]";
+ mes "";
+ mes "As you show Riskim the potion, he leans back, away from it.";
+ mes "\"Ooooh, I remember that smell...\"";
+ mes "\"Elanore's Mopox potion, right? She made me drink that, too...\"";
+ mes "He chuckles.";
+ mes "\"Yes, well, you do want to hide that somehow.\"";
+ next;
+
+ mes "[Riskim]";
+ mes "";
+ mes "\"We'll need extra chocolate for that one. If you can give me ten pieces of chocolate and that potion, plus 400 GP, I will bake you a special Chocolate Cake that hides the taste.\"";
+ next;
+
+ menu
+ "I will get them for you.", L_end,
+ "Here you are!", -,
+ "Maybe later.", L_end;
+
+ if (countitem("ChocolateBar") < 10)
+ goto L_lacking_ingredients;
+ if (countitem("MopoxCurePotion") < 1)
+ goto L_lacking_ingredients;
+ if (zeny < 400)
+ goto L_lacking_zeny;
+ delitem "MopoxCurePotion", 1;
+ delitem "ChocolateBar", 10;
+ getitem "LacedChocolateCake", 1;
+ set zeny, zeny - 400;
+
+ mes "[Riskim]";
+ mes "";
+ mes "\"Please have a seat!\"";
+ mes "You watch as Riskim melts the chocolate and stirs in the potion, then glazes a cake with the mixture.";
+ mes "\"It's a bit more chocolatey than your average chocolate cake, of course...\"";
+ next;
+
+ mes "[Riskim]";
+ mes "";
+ mes "Riskim hands you the cake.";
+ mes "\"Here you are. I hope that this works.\"";
+ close;
+
+L_lacking_zeny:
+ mes "[Riskim]";
+ mes "";
+ mes "\"I'm sorry, but I have to charge 400 GP.\"";
+ close;
+
+L_lacking_ingredients:
+ mes "[Riskim]";
+ mes "";
+ mes "\"Sorry, but I need ten Chocolate Bars AND your cure potion for this. Please come back later when you have everything.\"";
+ close;
+
+L_lace_cupcake:
+ next;
+
+ menu
+ "Thanks! Let me have a look around...", L_end,
+ "Can you put this potion into an Orange Cupcake?", -,
+ "Goodbye!", L_end;
+
+ mes "[Riskim]";
+ mes "";
+ mes "\"Orange Cupcakes? Oh dear... I'm sorry, but I have a very bad orange allergy.\"";
+ next;
+ mes "[Riskim]";
+ mes "";
+ mes "\"Perhaps the Chef at Dimond's Cove can help you? We get all our cupcakes from him.\"";
+ next;
+
+L_End:
+ close;
+
+L_ChocMouboo:
+ mes "[Riskim]";
+ mes "";
+ mes "\"Welcome to our bakery! Here you will find the best cakes in Tulimshar. And don't leave before you try one of our delicious Chocolate Pinkies!\"";
+ next;
+ menu
+ "Excuse me, sir? Did you say Chocolate Pinkies?", -;
+ mes "\"Yes! But there is no need to be alarmed, it is just plain chocolate molded in the shape of a small pinkie...\"";
+ next;
+ menu
+ "Do you have one in the shape of a mouboo? The Easter Bunny needs one.", -;
+ mes "\"The Easter Bunny? Interesting... I think I can help you make a Chocolate Mouboo.\"";
+ menu
+ "Nah, I decided not to do that stupid quest.", L_End,
+ "I would really appreciate that!", -;
+ set QUEST_Easter11, 11;
+
+L_MakeChocMouboo:
+ mes "[Riskim]";
+ mes "";
+ mes "\"I will need you to bring me some Chocolate Bars.\"";
+ mes "\"I think 5 bars should be enough.\"";
+ mes "\"Red slimes seem to have those, so try there.\"";
+ mes "\"I will also need a Mouboo Figurine to hollow out and use as a mold.\"";
+ mes "\"Any mage should be able to make you one out of a log, if you ask.\"";
+ menu
+ "I have everything you need.", -,
+ "Ok, I will be back soon.", L_End,
+ "I changed my mind, forget about it.", L_End;
+
+ if(countitem("ChocolateBar") < 5 || countitem("MoubooFigurine") < 1) goto L_EasterNotEnough;
+
+L_EasterEnough:
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem("ChocolateBar") > 5 && countitem("MoubooFigurine") > 1) goto L_EasterTooMany;
+ if(countitem("ChocolateBar") < 5 || countitem("MoubooFigurine") < 1) goto L_EasterNotEnough;
+ delitem "ChocolateBar", 5;
+ delitem "MoubooFigurine", 1;
+ getitem "ChocolateMouboo", 1;
+ set QUEST_Easter11, 12;
+ mes "[Riskim]";
+ mes "";
+ mes "\"Excellent. You have brought me the chocolate and the mold.\"";
+ mes "He places the chocolate in a pan to melt.";
+ mes "Next, he pours the melted chocolate into the mold.";
+ mes "Finally, he dips the mold in cold water for a moment to solidify the chocolate before skillfully cracking it open and handing you the finished product.";
+ mes "\"Here is your Chocolate Mouboo.\"";
+ close;
+
+L_EasterNotEnough:
+ mes "[Riskim]";
+ mes "";
+ if(countitem("ChocolateBar") < 5) mes "\"You do not have enough Chocolate Bars for me to work with yet.\"";
+ if(countitem("MoubooFigurine") < 1) mes "\"You do not have the Mouboo Figurine to use as a mold.\"";
+ mes "\"Please go get what I asked.\"";
+ close;
+
+L_EasterTooMany:
+ mes "[Riskim]";
+ mes "";
+ mes "\"You don't have enough room for the Chocolate Mouboo. Come back later.\"";
+ close;
+
+L_SeeBunny:
+ mes "[Riskim]";
+ mes "";
+ mes "\"You need to return to the Easter Bunny now.\"";
+ close;
+}
+
+// Server?
+021-2.gat,82,23,0 script Sara 108,{
+ mes "[Sara]";
+ mes "";
+ mes "\"Hello!\"";
+ close;
+}
+
+// The cashier
+021-2.gat,89,21,0 shop Drabur 112,WhiteCake :-1,ChocolateCake :-1,OrangeCake :-1,AppleCake :-1,Cake :-1,CherryCake :-1,OrangeCupcake :-3,Milk :-5,XmasCake :-1
+
+// Stockroom boy
+021-2.gat,133,21,0 script Iormo 160,{
+ mes "[Iormo]";
+ mes "";
+ mes "\"This stock room can get messy.\"";
+ close;
+}
+
+// An old couple eating at the bakery
+021-2.gat,71,22,0 script Rynoh 159,{
+ mes "[Rynoh]";
+ mes "";
+ mes "\"The cakes may be expensive, but they sure are delicious!\"";
+ close;
+}
+
+021-2.gat,73,22,0 script Ontas 154,{
+ mes "[Ontas]";
+ mes "";
+ mes "\"We come here every week. This place has some of the best bread I've ever eaten!\"";
+ close;
+}
diff --git a/npc/021-2_Tulimshar/government_building.txt b/npc/021-2/government_building.txt
index f4f9d0de..f4f9d0de 100644
--- a/npc/021-2_Tulimshar/government_building.txt
+++ b/npc/021-2/government_building.txt
diff --git a/npc/021-2_Tulimshar/heathin.txt b/npc/021-2/heathin.txt
index 270d510a..567d5fee 100644
--- a/npc/021-2_Tulimshar/heathin.txt
+++ b/npc/021-2/heathin.txt
@@ -33,11 +33,11 @@ L_Heathin_Start:
next;
mes "\"By the order of the Wizard's Council, I've been commissioned to forge gold ingots from gold pieces. I need to collect as many gold pieces as I can manage, forge them and give the ingots to the Council. However, I am but a simple smith and cannot complete this effort by myself.\"";
next;
- mes "\"Forging gold ingots is not just a simple matter of gold falling from the sky! I need individuals that can gather not just the gold, but also help collect [Coal] to heat my forge.\"";
+ mes "\"Forging gold ingots is not just a simple matter of gold falling from the sky! I need individuals that can gather not just the gold, but also help collect Coal to heat my forge.\"";
next;
mes "\"Of course it would make little sense for me to gather gold pieces from helpers just to pass them back out. However, I am willing to smith an award for any who would put an effort in towards completing my goal.\"";
next;
- mes "\"Perhaps you would be interested in helping me out? Would you be willing to help me gather [Coal] and gold to fulfill my commission? I am asking any and all willing souls to get me 50 coal and 100,000 gold pieces, as that would put a significant dint in my goal.\"";
+ mes "\"Perhaps you would be interested in helping me out? Would you be willing to help me gather Coal and gold to fulfill my commission? I am asking any and all willing souls to get me 50 coal and 100,000 gold pieces, as that would put a significant dint in my goal.\"";
menu
"Sure, I'll help!", L_Heathin_Help,
"I'd rather keep my gold for my own purposes, thank you very much.", L_Heathin_No,
@@ -46,7 +46,7 @@ L_Heathin_Start:
L_Heathin_Help:
set HEATHIN_QUEST, 1;
mes "[Heathin]";
- mes "\"Excellent! I am always glad when someone can be of service not just to me, but to all of Tulimshar. Please get me 50 [Coal] and 100,000 gold pieces, and you will be compensated for your efforts.\"";
+ mes "\"Excellent! I am always glad when someone can be of service not just to me, but to all of Tulimshar. Please get me 50 Coal and 100,000 gold pieces, and you will be compensated for your efforts.\"";
close;
L_Heathin_No:
@@ -56,7 +56,7 @@ L_Heathin_No:
L_Heathin_Interested:
mes "[Heathin]";
- mes "\"Well, when I am crafting these ingots, there are always stray metals left over. Surely I could forge them into ingots again, but I'd rather ensure that my commission be completed. I am willing to forge a [Simple Ring] for you, which could be made more beautiful by a skilled jeweler.\"";
+ mes "\"Well, when I am crafting these ingots, there are always stray metals left over. Surely I could forge them into ingots again, but I'd rather ensure that my commission be completed. I am willing to forge a Simple Ring for you, which could be made more beautiful by a skilled jeweler.\"";
next;
mes "\"What you do with the ring after I am done forging it is your own business, but it could come in handy.\"";
next;
@@ -74,7 +74,7 @@ L_Heathin_Ring_Award:
delitem "Coal", 50;
getitem "RingSimple", 1;
mes "[Heathin]";
- mes "\"You have brought the [Coal] and gold pieces. This is most excellent! As promised, I have crafted a ring for you. Hopefully you will find it useful.\"";
+ mes "\"You have brought the Coal and gold pieces. This is most excellent! As promised, I have crafted a ring for you. Hopefully you will find it useful.\"";
next;
mes "\"Time to smelt these gold pieces into ingots. The Council will be pleased. Thank you for your efforts!\"";
close;
@@ -83,7 +83,7 @@ L_Heathin_Ring_Wait:
mes "[Heathin]";
mes "\"Hello again. Making golden ingots keeps me pretty busy. I certainly hope I can fulfill my commission soon so that I can move on to bigger and better things.\"";
next;
- mes "\"The pay is good, certainly, but I am a far better smith than this. If you can bring me 100,000 gold pieces and 50 [Coal], it would surely get me to my goal faster.\"";
+ mes "\"The pay is good, certainly, but I am a far better smith than this. If you can bring me 100,000 gold pieces and 50 Coal, it would surely get me to my goal faster.\"";
next;
mes "\"I will be sure to provide an apt award once you are done.\"";
close;
@@ -101,7 +101,7 @@ L_Heathin_Terranite_Hood:
next;
mes "\"With some effort, I can make this metal form rings tighter than any chain mail. It isn't the prettiest in hue, but its uses can be many.\"";
next;
- mes "\"Unfortunately, it seems to be difficult to gather. Most that have searched for [Terranite Ore] either cannot find it or have never returned...\"";
+ mes "\"Unfortunately, it seems to be difficult to gather. Most that have searched for Terranite Ore either cannot find it or have never returned...\"";
next;
mes "\"I may be an excellent smith, but I certainly am no combatant. However, I would enjoy turning this ore into something useful, perhaps some type of armor to help those that may be braver.\"";
next;
@@ -125,7 +125,7 @@ L_Heathin_Terranite_Yes:
next;
mes "\"Ah, I know! I will make a helm... Well, more like a hood, since it will be woven.\"";
next;
- mes "\"It will require a great amount of heat, if the rumors are to be believed. For this, I will need 100 [Coal] to keep my forge burning hot. I will also need 10 [Terranite Ore] to make the armor. Of course, such work does not come cheap. While I may enjoy my work, my time and effort is very valuable. To compensate my efforts I will need 200,000 gold pieces. Please come back with the gold, [Coal] and ore and I'll make this hood for you.\"";
+ mes "\"It will require a great amount of heat, if the rumors are to be believed. For this, I will need 100 Coal to keep my forge burning hot. I will also need 10 Terranite Ore to make the armor. Of course, such work does not come cheap. While I may enjoy my work, my time and effort is very valuable. To compensate my efforts I will need 200,000 gold pieces. Please come back with the gold, Coal and ore and I'll make this hood for you.\"";
close;
L_Heathin_Terranite_Hood_Forge:
@@ -140,7 +140,7 @@ L_Heathin_Terranite_Hood_Forge:
L_Heathin_Terranite_Hood_Wait:
mes "[Heathin]";
- mes "\"I am very busy right now. If you could bring me 10 [Terranite Ore], 100 [Coal] and 200,000 gold pieces, I will make that terranite hood for you.\"";
+ mes "\"I am very busy right now. If you could bring me 10 Terranite Ore, 100 Coal and 200,000 gold pieces, I will make that terranite hood for you.\"";
close;
L_Heathin_Terranite_Hood_Ready:
@@ -153,9 +153,9 @@ L_Heathin_Terranite_Hood_Ready:
L_Heathin_Terranite_Legs:
set HEATHIN_QUEST, 6;
mes "[Heathin]";
- mes "\"I am glad you are back! I've just finished up some more of my commission. Now I can get back to making terranite armor for you. This time I will make some pants, but they need more ore, more [Coal] to heat my forge and of course, more gold for my efforts.\"";
+ mes "\"I am glad you are back! I've just finished up some more of my commission. Now I can get back to making terranite armor for you. This time I will make some pants, but they need more ore, more Coal to heat my forge and of course, more gold for my efforts.\"";
next;
- mes "\"To make terranite pants, I need 200 [Coal], 30 [Terranite Ore] and 400,000 gold pieces. The faster you bring this to me, the faster I can have your terranite pants ready.\"";
+ mes "\"To make terranite pants, I need 200 Coal, 30 Terranite Ore and 400,000 gold pieces. The faster you bring this to me, the faster I can have your terranite pants ready.\"";
close;
L_Heathin_Terranite_Legs_Forge:
@@ -170,12 +170,12 @@ L_Heathin_Terranite_Legs_Forge:
L_Heathin_Terranite_Legs_Wait:
mes "[Heathin]";
- mes "\"I am very busy right now. If you could bring me 30 [Terranite Ore], 200 [Coal] and 400,000 gold pieces, I will make those terranite pants for you.\"";
+ mes "\"I am very busy right now. If you could bring me 30 Terranite Ore, 200 Coal and 400,000 gold pieces, I will make those terranite pants for you.\"";
close;
L_Heathin_Terranite_Legs_Ready:
set HEATHIN_QUEST, 8;
- getitem "TerraniteLegsArmor", 1;
+ getitem "TerraniteLegs", 1;
mes "[Heathin]";
mes "\"I am all done with your terranite pants. Hope you enjoy them! I have some more work to complete for the Council. Come back later and I might be able to assist you again.\"";
close;
@@ -183,9 +183,9 @@ L_Heathin_Terranite_Legs_Ready:
L_Heathin_Terranite_Chest_Armor:
set HEATHIN_QUEST, 9;
mes "[Heathin]";
- mes "\"Good to see you again. I have just finished up some more of my commission. Now I can get back to making terranite armor for you. This time, I will make some terranite chest armor, but it needs more ore, more [Coal] for my forge and of course, more gold to compensate for my efforts.\"";
+ mes "\"Good to see you again. I have just finished up some more of my commission. Now I can get back to making terranite armor for you. This time, I will make some terranite chest armor, but it needs more ore, more Coal for my forge and of course, more gold to compensate for my efforts.\"";
next;
- mes "\"To make terranite chest armor, I need 250 [Coal], 40 [Terranite Ore] and 500,000 gold pieces. The faster you bring this to me, the faster I can have your terranite armor ready.\"";
+ mes "\"To make terranite chest armor, I need 250 Coal, 40 Terranite Ore and 500,000 gold pieces. The faster you bring this to me, the faster I can have your terranite armor ready.\"";
close;
L_Heathin_Terranite_Chest_Armor_Forge:
@@ -200,7 +200,7 @@ L_Heathin_Terranite_Chest_Armor_Forge:
L_Heathin_Terranite_Chest_Armor_Wait:
mes "[Heathin]";
- mes "\"I am very busy right now. If you could bring me 40 [Terranite Ore], 250 [Coal] and 500,000 gold pieces, I will make that chest armor for you.\"";
+ mes "\"I am very busy right now. If you could bring me 40 Terranite Ore, 250 Coal and 500,000 gold pieces, I will make that chest armor for you.\"";
close;
L_Heathin_Terranite_Chest_Armor_Ready:
@@ -212,9 +212,9 @@ L_Heathin_Terranite_Chest_Armor_Ready:
L_Heathin_Terranite_Arrows:
mes "[Heathin]";
- mes "\"How good to see you. I have experimented a little with [Terranite Ore] to see what else can be done with it. It seems to have some qualities suitable for weapons, but I have only tested it with arrows. If you would like, I can make [Terranite Arrow]s, but as as with the armor, I need [Coal], [Terranite Ore] and payment for my efforts.\"";
+ mes "\"How good to see you. I have experimented a little with Terranite Ore to see what else can be done with it. It seems to have some qualities suitable for weapons, but I have only tested it with arrows. If you would like, I can make Terranite Arrows, but as as with the armor, I need Coal, Terranite Ore and payment for my efforts.\"";
next;
- mes "\"Also, it might be a while until I have time to see what else I can make with terranite other than arrows, as right now the Council is keeping me rather busy with my commission. So, would you like some [Terranite Arrow]s?\"";
+ mes "\"Also, it might be a while until I have time to see what else I can make with terranite other than arrows, as right now the Council is keeping me rather busy with my commission. So, would you like some Terranite Arrows?\"";
menu
"No, thank you.", L_Heathin_Terranite_Arrows_No,
"Sure, I could use some arrows.", L_Heathin_Terranite_Arrows_Yes;
@@ -228,7 +228,7 @@ L_Heathin_Terranite_Arrows_No:
L_Heathin_Terranite_Arrows_Yes:
set HEATHIN_QUEST, 12;
mes "[Heathin]";
- mes "\"Good, good. I shall begin crafting these arrows as soon as you come back. However, I cannot just make small handfuls as it would not be worth my time and effort to have my concentration interrupted for small tasks. I will make 1,000 [Terranite Arrow]s per request, for which I will need "+@TARROW_REQ_TERRA_ORE+" [Terranite Ore], "+@TARROW_REQ_COAL+" [Coal] and "+@TARROW_REQ_GP+" gold pieces.\"";
+ mes "\"Good, good. I shall begin crafting these arrows as soon as you come back. However, I cannot just make small handfuls as it would not be worth my time and effort to have my concentration interrupted for small tasks. I will make 1,000 Terranite Arrows per request, for which I will need "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\"";
next;
mes "\"See you soon!\"";
close;
@@ -245,19 +245,19 @@ L_Heathin_Terranite_Arrows_Forge:
L_Heathin_Terranite_Arrows_Wait:
mes "[Heathin]";
- mes "\"If you want [Terranite Arrow]s, please get me "+@TARROW_REQ_TERRA_ORE+" [Terranite Ore], "+@TARROW_REQ_COAL+" [Coal] and "+@TARROW_REQ_GP+" gold pieces.\"";
+ mes "\"If you want Terranite Arrows, please get me "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\"";
close;
L_Heathin_Terranite_Arrows_Ready:
getitem "TerraniteArrow", 1000;
set HEATHIN_QUEST, 14;
mes "[Heathin]";
- mes "\"All done, here you go! I hope you like them. I am still working on my commission, but if you ever need any more [Terranite Arrow]s, just come on by with "+@TARROW_REQ_COAL+" [Coal], "+@TARROW_REQ_TERRA_ORE+" [Terranite Ore] and "+@TARROW_REQ_GP+" gold pieces and I will make another 1,000 arrows for you. By now I have enough [Terranite Ore] in reserve that you can just trade me my requirements to keep my resources up. Thank you for all your efforts!\"";
+ mes "\"All done, here you go! I hope you like them. I am still working on my commission, but if you ever need any more Terranite Arrows, just come on by with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces and I will make another 1,000 arrows for you. By now I have enough Terranite Ore in reserve that you can just trade me my requirements to keep my resources up. Thank you for all your efforts!\"";
close;
L_Heathin_Terranite_Arrows_Trade:
mes "[Heathin]";
- mes "\"Hello, there. If you have "+@TARROW_REQ_COAL+" [Coal], "+@TARROW_REQ_TERRA_ORE+" [Terranite Ore] and "+@TARROW_REQ_GP+" gold pieces, I will trade you 1,000 [Terranite Arrow]s. Would you like some [Terranite Arrow]s?\"";
+ mes "\"Hello, there. If you have "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces, I will trade you 1,000 Terranite Arrows. Would you like some Terranite Arrows?\"";
menu
"No.", L_Heathin_Terranite_Arrows_Trade_No,
"Yes.", L_Heathin_Terranite_Arrows_Trade_Yes;
@@ -265,7 +265,7 @@ L_Heathin_Terranite_Arrows_Trade:
L_Heathin_Terranite_Arrows_Trade_No:
mes "[Heathin]";
- mes "\"Come back again if you would like to get [Terranite Arrow]s.\"";
+ mes "\"Come back again if you would like to get Terranite Arrows.\"";
close;
L_Heathin_Terranite_Arrows_Trade_Yes:
@@ -276,12 +276,12 @@ L_Heathin_Terranite_Arrows_Trade_Yes:
set @lucky, 5 * rand(readparam(bLuk));
getitem "TerraniteArrow", 1000 + @lucky;
mes "[Heathin]";
- mes "\"Here you go! You are lucky, I could forge "+@lucky+" more arrows than expected. Come back again if you want more [Terranite Arrow]s.\"";
+ mes "\"Here you go! You are lucky, I could forge "+@lucky+" more arrows than expected. Come back again if you want more Terranite Arrows.\"";
close;
L_Heathin_Terranite_Arrows_Trade_Wait:
mes "[Heathin]";
- mes "\"It seems that you do not have the necessary resources for me to trade you. Please come back with "+@TARROW_REQ_COAL+" [Coal], "+@TARROW_REQ_TERRA_ORE+" [Terranite Ore] and "+@TARROW_REQ_GP+" gold pieces if you want another 1,000 [Terranite Arrow]s.\"";
+ mes "\"It seems that you do not have the necessary resources for me to trade you. Please come back with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces if you want another 1,000 Terranite Arrows.\"";
close;
}
diff --git a/npc/021-2_Tulimshar/inya.txt b/npc/021-2/inya.txt
index 4d95bfb0..ac383e87 100644
--- a/npc/021-2_Tulimshar/inya.txt
+++ b/npc/021-2/inya.txt
@@ -4,9 +4,9 @@
021-2.gat,43,62,0 script Inya 106,{
mes "[Inya]";
- mes "\"I am Inya, a jeweler of fine rings. If you have a [Simple Ring] and a gem, I can make a nice ring for you for 1,000,000 gold pieces.\"";
+ mes "\"I am Inya, a jeweler of fine rings. If you have a Simple Ring and a gem, I can make a nice ring for you for 1,000,000 gold pieces.\"";
next;
- mes "\"Also, if you have a ring with gems on it, I can remove the gems and return the [Simple Ring] to you for 500,000 gold pieces.\"";
+ mes "\"Also, if you have a ring with gems on it, I can remove the gems and return the Simple Ring to you for 500,000 gold pieces.\"";
next;
mes "\"So, how can I help you?\"";
menu
diff --git a/npc/021-2_Tulimshar/jhedia.txt b/npc/021-2/jhedia.txt
index 2677a099..b4ec8380 100644
--- a/npc/021-2_Tulimshar/jhedia.txt
+++ b/npc/021-2/jhedia.txt
@@ -7,7 +7,7 @@
set @Coal_Per, 10;
mes "[Jhedia]";
- mes "\"I forge [Iron Ore] into ingots. Ingots are more useful for skilled smiths, like armorers, because the ore is refined and made into useful units which can be worked with. To make ingots, I need " + @Iron_Ore_Per + " [Iron Ore] and " + @Cost_Per_Ingot + " gp per ingot. I also need " + @Coal_Per + " [Coal] for my forge.\"";
+ mes "\"I forge Iron Ore into ingots. Ingots are more useful for skilled smiths, like armorers, because the ore is refined and made into useful units which can be worked with. To make ingots, I need " + @Iron_Ore_Per + " Iron Ore and " + @Cost_Per_Ingot + " gp per ingot. I also need " + @Coal_Per + " Coal for my forge.\"";
next;
mes "[Jhedia]";
mes "\"How many ingots would you like?\"";
@@ -33,12 +33,12 @@ L_Jhedia_Bye:
L_Jhedia_NotEnough_Ore:
mes "[Jhedia]";
- mes "\"You do not seem to have enough [Iron Ore].\"";
+ mes "\"You do not seem to have enough Iron Ore.\"";
close;
L_Jhedia_NotEnough_Coal:
mes "[Jhedia]";
- mes "\"You do not seem to have enough [Coal].\"";
+ mes "\"You do not seem to have enough Coal.\"";
close;
L_Jhedia_NotEnough_Zeny:
diff --git a/npc/021-2_Tulimshar/mapflags.txt b/npc/021-2/mapflags.txt
index 8f4a9dcd..8f4a9dcd 100644
--- a/npc/021-2_Tulimshar/mapflags.txt
+++ b/npc/021-2/mapflags.txt
diff --git a/npc/021-2_Tulimshar/workshop.txt b/npc/021-2/workshop.txt
index ffe732b4..ffe732b4 100644
--- a/npc/021-2_Tulimshar/workshop.txt
+++ b/npc/021-2/workshop.txt
diff --git a/npc/021-2_Tulimshar/_import.txt b/npc/021-2_Tulimshar/_import.txt
deleted file mode 100644
index 447aa1fe..00000000
--- a/npc/021-2_Tulimshar/_import.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 021-2.gat
-npc: npc/021-2_Tulimshar/_mobs.txt
-npc: npc/021-2_Tulimshar/_warps.txt
-npc: npc/021-2_Tulimshar/bakery.txt
-npc: npc/021-2_Tulimshar/furquest.txt
-npc: npc/021-2_Tulimshar/government_building.txt
-npc: npc/021-2_Tulimshar/heathin.txt
-npc: npc/021-2_Tulimshar/inya.txt
-npc: npc/021-2_Tulimshar/jhedia.txt
-npc: npc/021-2_Tulimshar/mapflags.txt
-npc: npc/021-2_Tulimshar/workshop.txt
diff --git a/npc/021-2_Tulimshar/bakery.txt b/npc/021-2_Tulimshar/bakery.txt
deleted file mode 100644
index 8fcddf81..00000000
--- a/npc/021-2_Tulimshar/bakery.txt
+++ /dev/null
@@ -1,121 +0,0 @@
-// The bakery
-
-// The chef
-021-2.gat,95,21,0 script Riskim 148,{
- mes "[Riskim]";
- mes "\"Welcome to our bakery!\"";
- callfunc "KadiyaSubquestConsts";
- if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) && (countitem ("MopoxCurePotion") > 0))
- goto L_lace_chococake;
-
- if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE) && (countitem ("MopoxCurePotion") > 0))
- goto L_lace_cupcake;
-
- close;
-
-L_lace_chococake:
- next;
-
- menu
- "Thanks! Let me have a look around...", L_end,
- "Can you put this potion into a [Chocolate Cake]?", -,
- "Goodbye!", L_end;
-
- mes "[Riskim]";
- mes "As you show Riskim the potion, he leans back, away from it.";
- mes "\"Ooooh, I remember that smell...\"";
- mes "\"Elanore's Mopox potion, right? She made me drink that, too...\"";
- mes "He chuckles.";
- mes "\"Yes, well, you do want to hide that somehow.\"";
- next;
-
- mes "[Riskim]";
- mes "\"We'll need extra chocolate for that one. If you can give me ten pieces of chocolate and that potion, plus 400 GP, I will bake you a special [Chocolate Cake] that hides the taste.\"";
- next;
-
- menu
- "I will get them for you.", L_end,
- "Here you are!", -,
- "Maybe later.", L_end;
-
- if (countitem("ChocolateBar") < 10)
- goto L_lacking_ingredients;
- if (countitem("MopoxCurePotion") < 1)
- goto L_lacking_ingredients;
- if (zeny < 400)
- goto L_lacking_zeny;
- delitem "MopoxCurePotion", 1;
- delitem "ChocolateBar", 10;
- getitem "LacedChocolateCake", 1;
- set zeny, zeny - 400;
-
- mes "[Riskim]";
- mes "\"Please have a seat!\"";
- mes "You watch as Riskim melts the chocolate and stirs in the potion, then glazes a cake with the mixture.";
- mes "\"It's a bit more chocolatey than your average chocolate cake, of course...\"";
- next;
-
- mes "[Riskim]";
- mes "Riskim hands you the cake.";
- mes "\"Here you are. I hope that this works.\"";
- close;
-
-L_lacking_zeny:
- mes "[Riskim]";
- mes "\"I'm sorry, but I have to charge 400 GP.\"";
- close;
-
-L_lacking_ingredients:
- mes "[Riskim]";
- mes "\"Sorry, but I need ten [Chocolate Bar]s AND your cure potion for this. Please come back later when you have everything.\"";
- close;
-
-L_lace_cupcake:
- next;
-
- menu
- "Thanks! Let me have a look around...", L_end,
- "Can you put this potion into an [Orange Cupcake]?", -,
- "Goodbye!", L_end;
-
- mes "[Riskim]";
- mes "\"[Orange Cupcake]s? Oh dear... I'm sorry, but I have a very bad orange allergy.\"";
- next;
- mes "[Riskim]";
- mes "\"Perhaps the Chef at Dimond's Cove can help you? We get all our cupcakes from him.\"";
- next;
-
-L_end:
- close;
-
-}
-
-// Server?
-021-2.gat,82,23,0 script Sara 108,{
- mes "[Sara]";
- mes "\"Hello!\"";
- close;
-}
-
-// The cashier
-021-2.gat,89,21,0 shop Drabur 112,WhiteCake :-1,ChocolateCake :-1,OrangeCake :-1,AppleCake :-1,Cake :-1,CherryCake :-1,OrangeCupcake :-3,Milk :-5,XmasCake :-1
-
-// Stockroom boy
-021-2.gat,133,21,0 script Iormo 160,{
- mes "[Iormo]";
- mes "\"This stock room can get messy.\"";
- close;
-}
-
-// An old couple eating at the bakery
-021-2.gat,71,22,0 script Rynoh 159,{
- mes "[Rynoh]";
- mes "\"The cakes may be expensive, but they sure are delicious!\"";
- close;
-}
-
-021-2.gat,73,22,0 script Ontas 154,{
- mes "[Ontas]";
- mes "\"We come here every week. This place has some of the best bread I've ever eaten!\"";
- close;
-}
diff --git a/npc/021-8_Meeting_Rooms/_import.txt b/npc/021-8_Meeting_Rooms/_import.txt
deleted file mode 100644
index 3c454cc1..00000000
--- a/npc/021-8_Meeting_Rooms/_import.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-map: 021-8.gat
-npc: npc/021-8_Meeting_Rooms/_mobs.txt
-npc: npc/021-8_Meeting_Rooms/_warps.txt
diff --git a/npc/021-8_Meeting_Rooms/_mobs.txt b/npc/021-8_Meeting_Rooms/_mobs.txt
deleted file mode 100644
index 993017ea..00000000
--- a/npc/021-8_Meeting_Rooms/_mobs.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// 021-8 Meeting Rooms mobs
-
-
-
-021-8.gat,0,0,0 script Mob021-8 -1,{
- end;
-}
diff --git a/npc/021-8_Meeting_Rooms/_warps.txt b/npc/021-8_Meeting_Rooms/_warps.txt
deleted file mode 100644
index 9d92f8c4..00000000
--- a/npc/021-8_Meeting_Rooms/_warps.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-// 021-8 Meeting Rooms warps
-
diff --git a/npc/022-1_Tulimshar/_import.txt b/npc/022-1/_import.txt
index 8f72cbc0..8f72cbc0 100644
--- a/npc/022-1_Tulimshar/_import.txt
+++ b/npc/022-1/_import.txt
diff --git a/npc/022-1_Tulimshar/_mobs.txt b/npc/022-1/_mobs.txt
index 8fc7bbe8..a61eb346 100644
--- a/npc/022-1_Tulimshar/_mobs.txt
+++ b/npc/022-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 022-1 Tulimshar mobs
+// Tulimshar mobs
diff --git a/npc/022-1_Tulimshar/_warps.txt b/npc/022-1/_warps.txt
index 811db150..38e63696 100644
--- a/npc/022-1_Tulimshar/_warps.txt
+++ b/npc/022-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 022-1 Tulimshar warps
+// Tulimshar warps
022-1.gat,72,108 warp ToCentralTulimshar 3,-1,021-1.gat,73,21
022-1.gat,113,108 warp ToCentralTulimshar 3,-1,021-1.gat,113,21
diff --git a/npc/022-1_Tulimshar/dock.txt b/npc/022-1/dock.txt
index 72d28486..72d28486 100644
--- a/npc/022-1_Tulimshar/dock.txt
+++ b/npc/022-1/dock.txt
diff --git a/npc/022-1_Tulimshar/elanore.txt b/npc/022-1/elanore.txt
index 52e64171..52e64171 100644
--- a/npc/022-1_Tulimshar/elanore.txt
+++ b/npc/022-1/elanore.txt
diff --git a/npc/022-1_Tulimshar/ferry_master.txt b/npc/022-1/ferry_master.txt
index a1d9d69a..a1d9d69a 100644
--- a/npc/022-1_Tulimshar/ferry_master.txt
+++ b/npc/022-1/ferry_master.txt
diff --git a/npc/022-1_Tulimshar/mapflags.txt b/npc/022-1/mapflags.txt
index f1b0444b..f1b0444b 100644
--- a/npc/022-1_Tulimshar/mapflags.txt
+++ b/npc/022-1/mapflags.txt
diff --git a/npc/022-1_Tulimshar/tutorial.txt b/npc/022-1/tutorial.txt
index a0166921..a0166921 100644
--- a/npc/022-1_Tulimshar/tutorial.txt
+++ b/npc/022-1/tutorial.txt
diff --git a/npc/023-1_Beach_Cliffs/_import.txt b/npc/023-1_Beach_Cliffs/_import.txt
deleted file mode 100644
index 3d0bf1e4..00000000
--- a/npc/023-1_Beach_Cliffs/_import.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-map: 023-1.gat
-npc: npc/023-1_Beach_Cliffs/_mobs.txt
-npc: npc/023-1_Beach_Cliffs/_warps.txt
diff --git a/npc/023-1_Beach_Cliffs/_mobs.txt b/npc/023-1_Beach_Cliffs/_mobs.txt
deleted file mode 100644
index 60725477..00000000
--- a/npc/023-1_Beach_Cliffs/_mobs.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// 023-1 Beach Cliffs mobs
-
-
-
-023-1.gat,0,0,0 script Mob023-1 -1,{
- end;
-}
diff --git a/npc/023-1_Beach_Cliffs/_warps.txt b/npc/023-1_Beach_Cliffs/_warps.txt
deleted file mode 100644
index 0090bda5..00000000
--- a/npc/023-1_Beach_Cliffs/_warps.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-// 023-1 Beach Cliffs warps
-
diff --git a/npc/024-1/_import.txt b/npc/024-1/_import.txt
new file mode 100644
index 00000000..debf3dda
--- /dev/null
+++ b/npc/024-1/_import.txt
@@ -0,0 +1,10 @@
+// Map 024-1: Tulimshar Canyon
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 024-1.gat
+npc: npc/024-1/_mobs.txt
+npc: npc/024-1/_warps.txt
+npc: npc/024-1/ched.txt
+npc: npc/024-1/david.txt
+npc: npc/024-1/eomie.txt
+npc: npc/024-1/tinris.txt
+npc: npc/024-1/tondar.txt
diff --git a/npc/024-1_Tulimshar_Canyon/_mobs.txt b/npc/024-1/_mobs.txt
index 6309a08c..81103764 100644
--- a/npc/024-1_Tulimshar_Canyon/_mobs.txt
+++ b/npc/024-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 024-1 Tulimshar Canyon mobs
+// Tulimshar Canyon mobs
024-1.gat,89,52,3,2 monster Maggot 1002,2,100000,30000,Mob024-1::On1002
024-1.gat,40,45,3,2 monster Maggot 1002,2,100000,30000,Mob024-1::On1002
diff --git a/npc/024-1_Tulimshar_Canyon/_warps.txt b/npc/024-1/_warps.txt
index b1b545bb..12012376 100644
--- a/npc/024-1_Tulimshar_Canyon/_warps.txt
+++ b/npc/024-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 024-1 Tulimshar Canyon warps
+// Tulimshar Canyon warps
024-1.gat,86,73 warp toCentralTulimshar 3,-1,021-1.gat,49,64
024-1.gat,80,48 warp toBuilding 0,-1,024-2.gat,26,26
diff --git a/npc/024-1_Tulimshar_Canyon/ched.txt b/npc/024-1/ched.txt
index 43dd832e..43dd832e 100644
--- a/npc/024-1_Tulimshar_Canyon/ched.txt
+++ b/npc/024-1/ched.txt
diff --git a/npc/024-1/david.txt b/npc/024-1/david.txt
new file mode 100644
index 00000000..7174ee7c
--- /dev/null
+++ b/npc/024-1/david.txt
@@ -0,0 +1,51 @@
+024-1.gat,70,70,0 script David 120,{
+
+ if (Rossy_Quest == 17) goto L_FinalEnd;
+ if (Rossy_Quest == 14) goto L_Julia;
+ if (Rossy_Quest >= 8) goto L_Done;
+
+ mes "[David]";
+ mes "\"Learning magic is hard...\"";
+ if (Rossy_Quest == 7) goto L_Help;
+ close;
+
+L_Help:
+ menu
+ "Do you know Rossy?", L_Set,
+ "I can tell, it is hard.", L_No;
+
+L_Set:
+ mes "[David]";
+ mes "\"Yes, I do. I am her new teacher. That makes me remember she didn't hand me her potion yet. Time is running out.\"";
+ menu
+ "A potion? Oh, uhm... never heard about it.", L_No,
+ "Right, I have her potion in my pocket. She asked me to bring it to you for her. Here it is.", -;
+ mes "[David]";
+ mes "\"Let me see...\"";
+ set Rossy_Quest, 8;
+ mes "\"This potion is... perfect! Tell Rossy that she succesfully made her potion! And here is a small reward for your help.\"";
+ getexp 2000, 0;
+ set zeny, zeny + 500;
+ close;
+
+L_Done:
+ mes "[David]";
+ mes "\"I am really happy that my best student succesfully passed her exam! Thank you "+ strcharinfo(0) +"!\"";
+ close;
+
+L_No:
+ close;
+
+L_Julia:
+ mes "[David]";
+ mes "\"I heard Rossy's sister got kidnapped. We count on you to find her!\"";
+ next;
+ mes "\"When you'll find her, talk to her sister and her mother.\"";
+ close;
+
+L_FinalEnd:
+ mes "[David]";
+ mes "Well done for finding Julia!";
+ close;
+
+}
diff --git a/npc/024-1/eomie.txt b/npc/024-1/eomie.txt
new file mode 100644
index 00000000..4b82920e
--- /dev/null
+++ b/npc/024-1/eomie.txt
@@ -0,0 +1,90 @@
+// A professor at Tulimshar's magic academy
+
+024-1.gat,72,94,0 script Eomie 164,{
+
+// lines belong to easter 2011:
+// set @month, 4;
+// set @start_day, 15;
+// set @end_day, 30;
+
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 4) goto L_Grass;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 5) goto L_MakeGrass;
+// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 6) goto L_SeeBunny;
+
+L_Greeting:
+ mes "[Eomie]";
+ mes "";
+ mes "\"I maintain this little spot of grass in the desert.\"";
+ close;
+
+L_Grass:
+ mes "[Eomie]";
+ mes "";
+ mes "\"I maintain this little spot of grass in the desert.\"";
+ next;
+ menu
+ "It looks beautiful. I wish I could find a Grass Liner like this.", -;
+ mes "\"A Grass Liner? Last year I helped the Easter Bunny with a Grass Liner for his basket... It was really easy... Is this liner for yourself?\"";
+ next;
+ menu
+ "No. Actually, it is for the Easter Bunny again...", -;
+ mes "\"Why didn't you say so before? I can help you make the Grass Liner for the basket if you wish.\"";
+ menu
+ "I would really appreciate that!", -,
+ "Nah, I decided not to do that stupid quest.", L_End;
+ set QUEST_Easter11, 5;
+
+L_MakeGrass:
+ mes "[Eomie]";
+ mes "";
+ mes "\"I will need you to bring me some Grass Seeds.\"";
+ mes "\"I think 5 seeds should be enough.\"";
+ mes "\"Squirrels tend to pick those up as they gather food.\"";
+ menu
+ "I have some seeds...", -,
+ "Ok, I will be back soon.", L_End,
+ "I changed my mind, forget about it.", L_End;
+
+ if(countitem("GrassSeed") < 5) goto L_EasterNotEnough;
+ if(countitem("GrassSeed") >= 5) goto L_EasterEnough;
+ close;
+
+L_EasterNotEnough:
+ mes "[Eomie]";
+ mes "";
+ mes "\"You do not have enough Grass Seeds for me to work with yet.\"";
+ mes "\"Please go get more.\"";
+ close;
+
+L_EasterEnough:
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem("GrassSeed") > 10) goto L_EasterTooMany;
+ if(countitem("GrassSeed") < 5) goto L_EasterNotEnough;
+ delitem "GrassSeed", 5;
+ getitem "GrassLiner", 1;
+ set QUEST_Easter11, 6;
+ mes "[Eomie]";
+ mes "";
+ mes "\"You have gathered enough Grass Seeds for me to grow the liner.\"";
+ mes "She plants the seeds and murmurs a spell over them.";
+ mes "You both watch the grass grow tall and when it's done growing,";
+ mes "she deftly gathers it for you.";
+ mes "\"Here is your Grass Liner.\"";
+ close;
+
+L_EasterTooMany:
+ mes "[Eomie]";
+ mes "";
+ mes "\"You don't have enough room for the Grass Liner. Come back later.\"";
+ close;
+
+L_SeeBunny:
+ mes "[Eomie]";
+ mes "";
+ mes "\"You need to return to the Easter Bunny now.\"";
+ close;
+
+L_End:
+ close;
+
+}
diff --git a/npc/024-1_Tulimshar_Canyon/tinris.txt b/npc/024-1/tinris.txt
index 29381f57..29381f57 100644
--- a/npc/024-1_Tulimshar_Canyon/tinris.txt
+++ b/npc/024-1/tinris.txt
diff --git a/npc/024-1_Tulimshar_Canyon/tondar.txt b/npc/024-1/tondar.txt
index 585806df..585806df 100644
--- a/npc/024-1_Tulimshar_Canyon/tondar.txt
+++ b/npc/024-1/tondar.txt
diff --git a/npc/024-1_Tulimshar_Canyon/_import.txt b/npc/024-1_Tulimshar_Canyon/_import.txt
deleted file mode 100644
index 2e29ca1f..00000000
--- a/npc/024-1_Tulimshar_Canyon/_import.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 024-1.gat
-npc: npc/024-1_Tulimshar_Canyon/_mobs.txt
-npc: npc/024-1_Tulimshar_Canyon/_warps.txt
-npc: npc/024-1_Tulimshar_Canyon/ched.txt
-npc: npc/024-1_Tulimshar_Canyon/eomie.txt
-npc: npc/024-1_Tulimshar_Canyon/tinris.txt
-npc: npc/024-1_Tulimshar_Canyon/tondar.txt
diff --git a/npc/024-1_Tulimshar_Canyon/eomie.txt b/npc/024-1_Tulimshar_Canyon/eomie.txt
deleted file mode 100644
index 0bf187df..00000000
--- a/npc/024-1_Tulimshar_Canyon/eomie.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// A professor at Tulimshar's magic academy
-
-024-1.gat,72,94,0 script Eomie 164,{
- mes "[Eomie]";
- mes "\"I maintain this little spot of grass in the desert.\"";
- close;
-}
diff --git a/npc/024-2/_import.txt b/npc/024-2/_import.txt
new file mode 100644
index 00000000..2a03af32
--- /dev/null
+++ b/npc/024-2/_import.txt
@@ -0,0 +1,8 @@
+// Map 024-2: Tulimshar Magic School
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 024-2.gat
+npc: npc/024-2/_mobs.txt
+npc: npc/024-2/_warps.txt
+npc: npc/024-2/barrier.txt
+npc: npc/024-2/tyer.txt
+npc: npc/024-2/tyer_trigger.txt
diff --git a/npc/024-2_Tulimshar_Magic_School/_mobs.txt b/npc/024-2/_mobs.txt
index 83a6819e..7074e7a7 100644
--- a/npc/024-2_Tulimshar_Magic_School/_mobs.txt
+++ b/npc/024-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 024-2 Tulimshar Magic School mobs
+// Tulimshar Magic School mobs
diff --git a/npc/024-2_Tulimshar_Magic_School/_warps.txt b/npc/024-2/_warps.txt
index fb152665..e7b9d28f 100644
--- a/npc/024-2_Tulimshar_Magic_School/_warps.txt
+++ b/npc/024-2/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 024-2 Tulimshar Magic School warps
+// Tulimshar Magic School warps
024-2.gat,26,27 warp toOutside 0,-1,024-1.gat,79,49
024-2.gat,42,28 warp toOutside -1,-1,024-1.gat,86,49
diff --git a/npc/024-2_Tulimshar_Magic_School/barrier.txt b/npc/024-2/barrier.txt
index ede39644..ede39644 100644
--- a/npc/024-2_Tulimshar_Magic_School/barrier.txt
+++ b/npc/024-2/barrier.txt
diff --git a/npc/024-2_Tulimshar_Magic_School/tyer.txt b/npc/024-2/tyer.txt
index f6b78331..f6b78331 100644
--- a/npc/024-2_Tulimshar_Magic_School/tyer.txt
+++ b/npc/024-2/tyer.txt
diff --git a/npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt b/npc/024-2/tyer_trigger.txt
index ee588365..ee588365 100644
--- a/npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt
+++ b/npc/024-2/tyer_trigger.txt
diff --git a/npc/024-2_Tulimshar_Magic_School/_import.txt b/npc/024-2_Tulimshar_Magic_School/_import.txt
deleted file mode 100644
index 4022a12e..00000000
--- a/npc/024-2_Tulimshar_Magic_School/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 024-2.gat
-npc: npc/024-2_Tulimshar_Magic_School/_mobs.txt
-npc: npc/024-2_Tulimshar_Magic_School/_warps.txt
-npc: npc/024-2_Tulimshar_Magic_School/barrier.txt
-npc: npc/024-2_Tulimshar_Magic_School/tyer.txt
-npc: npc/024-2_Tulimshar_Magic_School/tyer_trigger.txt
diff --git a/npc/025-1/_import.txt b/npc/025-1/_import.txt
new file mode 100644
index 00000000..a29be248
--- /dev/null
+++ b/npc/025-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 025-1: Woodland Swamp
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 025-1.gat
+npc: npc/025-1/_mobs.txt
+npc: npc/025-1/_warps.txt
+npc: npc/025-1/barrier.txt
+npc: npc/025-1/reset.txt
+npc: npc/025-1/rossy.txt
diff --git a/npc/025-1_Woodland_Swamp/_mobs.txt b/npc/025-1/_mobs.txt
index eb389ab5..7f444112 100644
--- a/npc/025-1_Woodland_Swamp/_mobs.txt
+++ b/npc/025-1/_mobs.txt
@@ -1,10 +1,10 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 025-1 Woodland Swamp mobs
+// Woodland Swamp mobs
025-1.gat,100,60,56,79 monster Clover Patch 1037,3,30000,10000,Mob025-1::On1037
025-1.gat,56,96,13,5 monster Clover Patch 1037,1,1200000,10000,Mob025-1::On1037
025-1.gat,56,36,77,33 monster Alizarin Plant 1032,2,240000,12000,Mob025-1::On1032
-025-1.gat,55,62,24,13 monster Fluffy 1020,7,30000,12000,Mob025-1::On1020
+025-1.gat,55,62,24,13 monster Snail 1041,7,30000,12000,Mob025-1::On1041
025-1.gat,38,84,37,31 monster Silkworm 1035,18,40000,300,Mob025-1::On1035
025-1.gat,96,47,63,55 monster Log Head 1025,14,18000,3000,Mob025-1::On1025
025-1.gat,73,61,106,83 monster PinkFlower 1014,34,20000,5000,Mob025-1::On1014
@@ -29,11 +29,6 @@ On1019:
callfunc "MobPoints";
break;
-On1020:
- set @mobID, 1020;
- callfunc "MobPoints";
- break;
-
On1025:
set @mobID, 1025;
callfunc "MobPoints";
@@ -59,5 +54,10 @@ On1038:
callfunc "MobPoints";
break;
+On1041:
+ set @mobID, 1041;
+ callfunc "MobPoints";
+ break;
+
end;
}
diff --git a/npc/025-1_Woodland_Swamp/_warps.txt b/npc/025-1/_warps.txt
index 84000cb2..e408c509 100644
--- a/npc/025-1_Woodland_Swamp/_warps.txt
+++ b/npc/025-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 025-1 Woodland Swamp warps
+// Woodland Swamp warps
025-1.gat,19,66 warp toSwamp -1,-1,026-1.gat,128,66
025-1.gat,90,19 warp toWoodland 2,-1,015-1.gat,59,100
diff --git a/npc/025-1/barrier.txt b/npc/025-1/barrier.txt
new file mode 100644
index 00000000..9290d9c5
--- /dev/null
+++ b/npc/025-1/barrier.txt
@@ -0,0 +1,13 @@
+//
+025-1.gat,42,79,0 script #JuliaBarrier 127,1,1,{
+ if (Rossy_Quest <= 13) goto L_Block;
+ if (Alrd_Been != 1) message strcharinfo(0), "You hear distant screams of fear.";
+ set Alrd_Been, 1;
+ warp "025-3.gat", 112, 97;
+ end;
+
+L_Block:
+ message strcharinfo(0), "You are too frightened by what you can hear coming out of the cave that you can't enter.";
+ end;
+
+}
diff --git a/npc/025-1/reset.txt b/npc/025-1/reset.txt
new file mode 100644
index 00000000..634b2c29
--- /dev/null
+++ b/npc/025-1/reset.txt
@@ -0,0 +1,73 @@
+//
+025-1.gat,47,84,0 script reset 145,{
+
+ mes "Do you want to reset Rossy Quest?";
+ menu
+ "Reset every variable of the quest.", -,
+ "Set Rossy_Quest.", L_Set,
+ "Pass cave quest.", L_Pass2,
+ "Pass all caves except boss cave.", L_Pass,
+ "Reset Alrd_Been only.", L_reSet,
+ "Do not reset.", L_No;
+ set Rossy_Quest, 0;
+ set cavefights, 0;
+ set Alrd_Been, 0;
+ set Boss_10, 0;
+ set Clauquer_Talk, 0;
+ set Clauquer_Enough, 0;
+ set Killed_Boss, 0;
+ set @juliadone1, 0;
+ set @juliadone2, 0;
+ set @juliadone3, 0;
+ set @juliadone4, 0;
+ set @juliadone5, 0;
+ set @juliadone6, 0;
+ set @juliadone7, 0;
+ set @juliadone8, 0;
+ set @juliadone9, 0;
+ set @juliadone10, 0;
+ set FLAGS, FLAGS & ~FLAG_ROSSI_COMPLETED;
+
+L_No:
+ close;
+
+L_reSet:
+ set Alrd_Been, 0;
+ close;
+
+L_Set:
+ mes "value";
+ input @name$;
+ set Rossy_Quest, @name$;
+ close;
+
+L_Pass:
+ set Rossy_Quest, 15;
+ set Clauquer_Talk, 1;
+ set Clauquer_Enough, 1;
+ set cavefights, (cavefights ^ BATTLE_CAVE1);
+ set cavefights, (cavefights ^ BATTLE_CAVE2);
+ set cavefights, (cavefights ^ BATTLE_CAVE3);
+ set cavefights, (cavefights ^ BATTLE_CAVE4);
+ set cavefights, (cavefights ^ BATTLE_CAVE5);
+ set cavefights, (cavefights ^ BATTLE_CAVE6);
+ set cavefights, (cavefights ^ BATTLE_CAVE7);
+ set cavefights, (cavefights ^ BATTLE_CAVE8);
+ set cavefights, (cavefights ^ BATTLE_CAVE9);
+ close;
+
+L_Pass2:
+ set Rossy_Quest, 16;
+ set Killed_Boss, 1;
+ set Clauquer_Talk, 1;
+ set cavefights, (cavefights ^ BATTLE_CAVE1);
+ set cavefights, (cavefights ^ BATTLE_CAVE2);
+ set cavefights, (cavefights ^ BATTLE_CAVE3);
+ set cavefights, (cavefights ^ BATTLE_CAVE4);
+ set cavefights, (cavefights ^ BATTLE_CAVE5);
+ set cavefights, (cavefights ^ BATTLE_CAVE6);
+ set cavefights, (cavefights ^ BATTLE_CAVE7);
+ set cavefights, (cavefights ^ BATTLE_CAVE8);
+ set cavefights, (cavefights ^ BATTLE_CAVE9);
+ close;
+}
diff --git a/npc/025-1/rossy.txt b/npc/025-1/rossy.txt
new file mode 100644
index 00000000..7d6d2d3b
--- /dev/null
+++ b/npc/025-1/rossy.txt
@@ -0,0 +1,217 @@
+025-1.gat,80,88,0 script Rossy 114,{
+
+ if (FLAGS & FLAG_ROSSI_COMPLETED) goto L_FinalEnd;
+ if (Rossy_Quest == 17 || Rossy_Quest == 18) goto L_End;
+ if (Rossy_Quest >= 14 && Rossy_Quest <= 16) goto L_Julia;
+ if (Rossy_Quest >= 13) goto L_Best;
+ if (Rossy_Quest >= 11) goto L_Allergic;
+ if (Rossy_Quest >= 8 && Rossy_Quest < 11) goto L_Donet;
+ if (Rossy_Quest == 7) goto L_BT;
+ if (Rossy_Quest == 6) goto L_Check2;
+ if (Rossy_Quest == 5) goto L_Let;
+ if (Rossy_Quest >= 2 && Rossy_Quest < 5) goto L_Done;
+ if (Rossy_Quest == 1) goto L_Check;
+
+ mes "[Rossy]";
+ mes "*The young girl looks at you in tears.*";
+ menu
+ "Please stop crying and tell me what's wrong.", -,
+ "I don't like people who cry. Bye.", L_No;
+ next;
+ mes "[Rossy]";
+ mes "\"I dropped a basket of fruits on the ground and these evil snails ate them all!\"";
+ if (baselevel < 50) goto L_LowLevel;
+ menu
+ "Oh, I presume that you want some. Would you like me to get some fruits for you?", L_Set,
+ "Oh well, life isn't fair.", L_No;
+
+L_LowLevel:
+ menu
+ "I can't do anything about it, sorry.", L_No;
+
+L_No:
+ close;
+
+L_Set:
+ mes "[Rossy]";
+ mes "\"That would be great! Can you get 10 Cherries for me? These are the fruits I like best.\"";
+ next;
+ menu
+ "Sure, I'll be back with your cherries.", L_Get,
+ "No, get some yourself.", L_No;
+
+L_Get:
+ mes "[Rossy]";
+ set Rossy_Quest, 1;
+ mes "\"Please, get 10 Cherries for me.\"";
+ close;
+
+L_Check:
+ if(countitem("Cherry") < 10) goto L_Get;
+ mes "[Rossy]";
+ set Rossy_Quest, 2;
+ getexp 2000, 0;
+ mes "\"I can't believe my eyes, you got them all! Please give them to my mother when she will ask for them.\"";
+ next;
+ menu
+ "No problem, I'm in a hurry, bye.", -,
+ "Certainly, I'm always here to help, do you need anything else?", L_Done;
+ mes "[Rossy]";
+ mes "\"I might need your help later. Bye.\"";
+
+L_Done:
+ mes "[Rossy]";
+ mes "\"My mother might need help. She is in one of the buildings in the town north east from here.\"";
+ close;
+
+L_Let:
+ mes "[Rossy]";
+ mes "\"Hello "+ strcharinfo(0) +", nice to see you again. Hey, what are you hiding behind your back? Is that a... letter?\"";
+ next;
+ menu
+ "Your mother asked me to hand you this letter. She told me it was from your teacher.", L_Let2,
+ "Not at all... I need to go now, see you next time.", L_No;
+
+L_Let2:
+ mes "[Rossy]";
+ mes "*The little girl grabs the piece of paper and reads it with an authomatic gesture. Her face turns pale.*";
+ menu
+ "What does it say?", -;
+ mes "[Rossy]";
+ mes "\"Oh no, I completely forgot! I need to make a potion but don't have any of the ingredients required. Could you get them for me?\"";
+ next;
+ menu
+ "Of course I can, what do you need?", L_Sett,
+ "Well, I'm already really busy right now, sorry. Bye.", L_No;
+
+L_Sett:
+ mes "[Rossy]";
+ set Rossy_Quest, 6;
+ mes "\"I need 24 [Cactus Drink]s, 32 [Maggot Slime]s, 50 [Gamboge Herb]s, 43 [Alizarin Herb]s and 30 [Bug Leg]s.\"";
+ next;
+ mes "\"Please collect all of that and come back to see me. I know the recipe by heart.\"";
+ close;
+
+L_NE:
+ mes "[Rossy]";
+ mes "\"Please bring me 24 [Cactus Drink]s, 32 [Maggot Slime]s, 50 [Gamboge Herb]s, 43 [Alizarin Herb]s and 30 [Bug Leg]s.\"";
+ next;
+ mes "\"It seems you miss some of the ingredients I've asked you. Please hurry!\"";
+ close;
+
+L_Check2:
+ if(countitem("CactusDrink") < 24) goto L_NE;
+ if(countitem("MaggotSlime") < 32) goto L_NE;
+ if(countitem("GambogeHerb") < 50) goto L_NE;
+ if(countitem("AlizarinHerb") < 43) goto L_NE;
+ if(countitem("BugLeg") < 30) goto L_NE;
+ mes "[Rossy]";
+ set Rossy_Quest, 7;
+ mes "\"Oh, thank you "+ strcharinfo(0) +" so much! If you don't mind, please bring this potion to my teacher and don't lose it!\"";
+ delitem "CactusDrink", 24;
+ delitem "MaggotSlime", 32;
+ delitem "GambogeHerb", 50;
+ delitem "AlizarinHerb", 43;
+ delitem "BugLeg", 30;
+ getexp 3000, 0;
+ next;
+ mes "\"His name is David, he is a very young magician and lives near the magic school in the north of Tulimshar.\"";
+ next;
+ mes "\"Please, give it to him as soon as you can!\"";
+ close;
+
+L_BT:
+ mes "[Rossy]";
+ mes "\"Great. Now you just should bring it to my teacher. His name is David, he is a very young magician and lives near the magic school in the north of Tulimshar.\"";
+ next;
+ mes "\"You should take the ferry, that'll be faster than swimming!\"";
+ close;
+
+L_Donet:
+ if (Rossy_Quest == 10 && countitem("redrose") >= 15) goto L_RG;
+ menu
+ "David took your potion and he tested it in front of me. It perfectly worked!", -;
+ mes "[Rossy]";
+ mes "\"Hurray! You might want to tell that to my mother now.\"";
+ close;
+
+L_RG:
+ menu
+ "Your mother asked me to bring you these flowers because you succesfully made your potion.", -;
+ mes "[Rossy]";
+ set Rossy_Quest, 11;
+ mes "\"How nice!\"";
+ next;
+ mes "*Rossy takes the flowers from your hands and suddenly throws them on the ground. She begins sneezing.*";
+ delitem "redrose", 15;
+ menu
+ "I presume that you don't like roses, right?", -;
+ mes "[Rossy]";
+ mes "\"I am allergic to roses, my mother should already know that!\"";
+ close;
+
+L_Allergic:
+ mes "*Rossy sneezes a lot*";
+ if (Rossy_Quest == 12 && countitem("redtulip") >= 15) goto L_Sorry;
+ close;
+
+L_Sorry:
+ menu
+ "Your mother is sorry about the roses. Here are some beautiful red tulips instead.", L_See;
+
+L_See:
+ mes "[Rossy]";
+ set Rossy_Quest, 13;
+ delitem "redtulip", 15;
+ mes "\"That's better! Go and tell my mother that she is the nicest mother in the world.\"";
+ next;
+ mes "\"Come back and see me afterwards.\"";
+ getexp 2500, 0;
+ close;
+
+L_Best:
+ mes "[Rossy]";
+ set Rossy_Quest, 14;
+ mes "\"Thank you "+ strcharinfo(0) +", you helped me so much!\"";
+ next;
+ mes "\"I now need to find my sister before my mum gets worried... Please find her!\"";
+ close;
+
+L_Julia:
+ mes "[Rossy]";
+ mes "\"I saw my twin, Julia! She was forced to enter a cave not far from here. I heard her scream. Please enter that cave and save her now!\"";
+ close;
+
+L_End:
+ mes "[Rossy]";
+ mes "\"I saw my twin, Julia! She was forced to enter a cave not far from here. I heard her scream. Did you saved her yet?\"";
+ menu
+ "She'll be back soon, trust me, I saved her.", L_Found,
+ "I didn't saw her yet, sorry.", L_No;
+
+L_Found:
+ mes "[Rossy]";
+ if (Rossy_Quest == 17) set Rossy_Quest, 18;
+ if (Rossy_Quest == 18) set Rossy_Quest, 19;
+ mes "\"Oh "+ strcharinfo(0) +", thank you very much! Take this, you deserve it!\"";
+ next;
+ mes "\"*Rossy hands you a huge bag full of coins.*\"";
+ getexp 5000, 0;
+ set zeny, zeny + 5000;
+ if (Rossy_Quest == 19) goto L_Clear;
+ close;
+
+L_Clear:
+ set Rossy_Quest, 0;
+ set cavefights, 0;
+ set FLAGS, FLAGS | FLAG_ROSSI_COMPLETED;
+ close;
+
+
+L_FinalEnd:
+ mes "[Rossy]";
+ mes "\"Julia and I are playing hide and seek right now, it is funny in the forest!\"";
+ mes "*The young girl laughs quietly.*";
+ close;
+
+}
diff --git a/npc/025-1_Woodland_Swamp/_import.txt b/npc/025-1_Woodland_Swamp/_import.txt
deleted file mode 100644
index 651e7afa..00000000
--- a/npc/025-1_Woodland_Swamp/_import.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 025-1.gat
-npc: npc/025-1_Woodland_Swamp/_mobs.txt
-npc: npc/025-1_Woodland_Swamp/_warps.txt
diff --git a/npc/025-3/_import.txt b/npc/025-3/_import.txt
new file mode 100644
index 00000000..285e674e
--- /dev/null
+++ b/npc/025-3/_import.txt
@@ -0,0 +1,6 @@
+// Map 025-3:
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 025-3.gat
+npc: npc/025-3/_mobs.txt
+npc: npc/025-3/_warps.txt
+npc: npc/025-3/barriers.txt
diff --git a/npc/025-3/_mobs.txt b/npc/025-3/_mobs.txt
new file mode 100644
index 00000000..9ce0508c
--- /dev/null
+++ b/npc/025-3/_mobs.txt
@@ -0,0 +1,32 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// mobs
+
+025-3.gat,0,0,0,0 monster CaveMaggot 1056,100,0,100,Mob025-3::On1056
+025-3.gat,0,0,0,0 monster Archant 1060,20,0,100,Mob025-3::On1060
+025-3.gat,0,0,0,0 monster AngryScorpion 1057,25,0,0,Mob025-3::On1057
+025-3.gat,67,153,4,2 monster Skeleton 1043,1,0,30000,Mob025-3::On1043
+
+
+025-3.gat,0,0,0 script Mob025-3 -1,{
+On1043:
+ set @mobID, 1043;
+ callfunc "MobPoints";
+ break;
+
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ break;
+
+On1057:
+ set @mobID, 1057;
+ callfunc "MobPoints";
+ break;
+
+On1060:
+ set @mobID, 1060;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/npc/025-3/_warps.txt b/npc/025-3/_warps.txt
new file mode 100644
index 00000000..c64903e0
--- /dev/null
+++ b/npc/025-3/_warps.txt
@@ -0,0 +1,5 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// warps
+
+025-3.gat,112,98 warp ToOutside 1,-1,025-1.gat,42,81
+025-3.gat,105,86 warp ToHelper -1,-1,025-4.gat,28,36
diff --git a/npc/025-3/barriers.txt b/npc/025-3/barriers.txt
new file mode 100644
index 00000000..bac28c8a
--- /dev/null
+++ b/npc/025-3/barriers.txt
@@ -0,0 +1,930 @@
+// -----------------------------------Warp to Cave 1 ---------------------------------------
+
+025-3.gat,78,127,0 script #WarpBattleCave1 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 26, 63, 60, 97) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE1) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave1, 1;
+ warp "025-4.gat", 41, 95;
+ set $@cave1fighter$, strcharinfo(0);
+ set $@cave1fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave1start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave1fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone1 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone1, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave1 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave1fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave1fighter$));
+ if (gettimetick(2) - $@cave1start >= $@CAVE1_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave1fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave1fighter$));
+ warp "025-3.gat", 78, 129;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave1, 0;
+ set $@cave1_kills, 0;
+ set $@cave1start, 0;
+ set $@cave1fighter$, "";
+ set $@cave1fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight1::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave1fighter$));
+ warp "025-3.gat", 78, 129;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave1, 0;
+ set $@cave1_kills, 0;
+ set $@cave1start, 0;
+ set $@cave1fighter$, "";
+ set $@cave1fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight1::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave1, 0;
+ set $@cave1_kills, 0;
+ set $@cave1start, 0;
+ set $@cave1fighter$, "";
+ set $@cave1fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight1::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+}
+
+// ---------------------------- Warp to Cave 2 ----------------------------
+
+025-3.gat,53,107,0 script #WarpBattleCave2 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 97, 62, 126, 96) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE2) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave2, 1;
+ warp "025-4.gat", 110, 94;
+ set $@cave2fighter$, strcharinfo(0);
+ set $@cave2fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave2start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave2fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone2 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone2, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave2 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave2fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave2fighter$));
+ if (gettimetick(2) - $@cave2start >= $@CAVE2_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave2fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave2fighter$));
+ warp "025-3.gat", 53, 109;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave2, 0;
+ set $@cave2_kills, 0;
+ set $@cave2start, 0;
+ set $@cave2fighter$, "";
+ set $@cave2fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight2::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave2fighter$));
+ warp "025-3.gat", 53, 109;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave2, 0;
+ set $@cave2_kills, 0;
+ set $@cave2start, 0;
+ set $@cave2fighter$, "";
+ set $@cave2fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight2::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave2, 0;
+ set $@cave2_kills, 0;
+ set $@cave2start, 0;
+ set $@cave2fighter$, "";
+ set $@cave2fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight2::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// --------------------------------- Warp to Cave 3 ----------------------------------------
+
+025-3.gat,71,83,0 script #WarpBattleCave3 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 150, 84, 177, 117) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE3) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave3, 1;
+ warp "025-4.gat", 168, 115;
+ set $@cave3fighter$, strcharinfo(0);
+ set $@cave3fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave3start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave3fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone3 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone3, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave3 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave3fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave3fighter$));
+ if (gettimetick(2) - $@cave3start >= $@CAVE3_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave3fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave3fighter$));
+ warp "025-3.gat", 71, 85;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave3, 0;
+ set $@cave3_kills, 0;
+ set $@cave3start, 0;
+ set $@cave3fighter$, "";
+ set $@cave3fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight3::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave3fighter$));
+ warp "025-3.gat", 71, 85;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave3, 0;
+ set $@cave3_kills, 0;
+ set $@cave3start, 0;
+ set $@cave3fighter$, "";
+ set $@cave3fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight3::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave3, 0;
+ set $@cave3_kills, 0;
+ set $@cave3start, 0;
+ set $@cave3fighter$, "";
+ set $@cave3fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight3::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// --------------------------- Warp to Cave 4 --------------------------------------
+
+025-3.gat,80,83,0 script #WarpBattleCave4 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 28, 124, 57, 156) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE4) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave4, 1;
+ warp "025-4.gat", 32, 154;
+ set $@cave4fighter$, strcharinfo(0);
+ set $@cave4fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave4start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave4fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone4 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone4, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave4 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave4fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave4fighter$));
+ if (gettimetick(2) - $@cave4start >= $@CAVE4_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave4fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave4fighter$));
+ warp "025-3.gat", 80, 85;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave4, 0;
+ set $@cave4_kills, 0;
+ set $@cave4start, 0;
+ set $@cave4fighter$, "";
+ set $@cave4fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight4::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave4fighter$));
+ warp "025-3.gat", 80, 85;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave4, 0;
+ set $@cave4_kills, 0;
+ set $@cave4start, 0;
+ set $@cave4fighter$, "";
+ set $@cave4fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight4::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave4, 0;
+ set $@cave4_kills, 0;
+ set $@cave4start, 0;
+ set $@cave4fighter$, "";
+ set $@cave4fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight4::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// --------------------------- Warp to Cave 5 ----------------------------------------
+
+025-3.gat,71,30,0 script #WarpBattleCave5 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 91, 131, 124, 160) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE5) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave5, 1;
+ warp "025-4.gat", 100, 158;
+ set $@cave5fighter$, strcharinfo(0);
+ set $@cave5fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave5start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave5fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone5 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone5, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave5 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave5fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave5fighter$));
+ if (gettimetick(2) - $@cave5start >= $@CAVE5_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave5fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave5fighter$));
+ warp "025-3.gat", 71, 32;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave5, 0;
+ set $@cave5_kills, 0;
+ set $@cave5start, 0;
+ set $@cave5fighter$, "";
+ set $@cave5fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight5::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave5fighter$));
+ warp "025-3.gat", 71, 32;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave5, 0;
+ set $@cave5_kills, 0;
+ set $@cave5start, 0;
+ set $@cave5fighter$, "";
+ set $@cave5fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight5::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave5, 0;
+ set $@cave5_kills, 0;
+ set $@cave5start, 0;
+ set $@cave5fighter$, "";
+ set $@cave5fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight5::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// -------------------------------- Warp to Cave 6 -----------------------------------------
+
+025-3.gat,128,35,0 script #WarpBattleCave6 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 153, 143, 178, 174) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE6) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave6, 1;
+ warp "025-4.gat", 159, 172;
+ set $@cave6fighter$, strcharinfo(0);
+ set $@cave6fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave6start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave6fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone6 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone6, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave6 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave6fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave6fighter$));
+ if (gettimetick(2) - $@cave6start >= $@CAVE6_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave6fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave6fighter$));
+ warp "025-3.gat", 128, 37;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave6, 0;
+ set $@cave6_kills, 0;
+ set $@cave6start, 0;
+ set $@cave6fighter$, "";
+ set $@cave6fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight6::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave6fighter$));
+ warp "025-3.gat", 128, 37;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave6, 0;
+ set $@cave6_kills, 0;
+ set $@cave6start, 0;
+ set $@cave6fighter$, "";
+ set $@cave6fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight6::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave6, 0;
+ set $@cave6_kills, 0;
+ set $@cave6start, 0;
+ set $@cave6fighter$, "";
+ set $@cave6fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight6::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// ---------------------------- Warp to Cave 7 ------------------------------------------
+
+025-3.gat,70,57,0 script #WarpBattleCave7 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 27, 185, 61, 219) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE7) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave7, 1;
+ warp "025-4.gat", 42, 217;
+ set $@cave7fighter$, strcharinfo(0);
+ set $@cave7fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave7start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave7fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone7 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone7, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave7 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave7fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave7fighter$));
+ if (gettimetick(2) - $@cave7start >= $@CAVE7_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave7fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave7fighter$));
+ warp "025-3.gat", 70, 59;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave7, 0;
+ set $@cave7_kills, 0;
+ set $@cave7start, 0;
+ set $@cave7fighter$, "";
+ set $@cave7fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight7::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave7fighter$));
+ warp "025-3.gat", 70, 59;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave7, 0;
+ set $@cave7_kills, 0;
+ set $@cave7start, 0;
+ set $@cave7fighter$, "";
+ set $@cave7fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight7::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave7, 0;
+ set $@cave7_kills, 0;
+ set $@cave7start, 0;
+ set $@cave7fighter$, "";
+ set $@cave7fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight7::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// -----------------------------------------------Warp to Cave 8-------------------------------------------------------------
+
+025-3.gat,138,92,0 script #WarpBattleCave8 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 90, 193, 119, 216) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE8) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave8, 1;
+ warp "025-4.gat", 105, 214;
+ set $@cave8fighter$, strcharinfo(0);
+ set $@cave8fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave8start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave8fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone8 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone8, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave8 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave8fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave8fighter$));
+ if (gettimetick(2) - $@cave8start >= $@CAVE8_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave8fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave8fighter$));
+ warp "025-3.gat", 138, 94;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave8, 0;
+ set $@cave8_kills, 0;
+ set $@cave8start, 0;
+ set $@cave8fighter$, "";
+ set $@cave8fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight8::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave8fighter$));
+ warp "025-3.gat", 138, 94;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave8, 0;
+ set $@cave8_kills, 0;
+ set $@cave8start, 0;
+ set $@cave8fighter$, "";
+ set $@cave8fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight8::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave8, 0;
+ set $@cave8_kills, 0;
+ set $@cave8start, 0;
+ set $@cave8fighter$, "";
+ set $@cave8fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight8::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// ------------------------------ Warp to Cave 9 ----------------------------------------
+
+025-3.gat,138,160,0 script #WarpBattleCave9 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+// Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 144, 192, 173, 226) >= 1) goto L_SomeoneInside;
+// Check if you already done this fight
+ if (cavefights & BATTLE_CAVE9) goto L_AlreadyDone;
+ if (Rossy_Quest < 15) goto L_Block;
+
+L_StartFight:
+ set $@battlecave9, 1;
+ warp "025-4.gat", 157, 224;
+ set $@cave9fighter$, strcharinfo(0);
+ set $@cave9fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave9start, gettimetick(2);
+ message strcharinfo(0), "As you enter, you feel evil forces filling up this cave.";
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave9fighter$ + " is already inside.";
+ end;
+
+L_AlreadyDone:
+ message strcharinfo(0), "I already defeated the monsters in this cave.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone9 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone9, 1;
+ end;
+
+L_Block:
+ message strcharinfo(0), "I should maybe learn a bit more about this place before I go inside.";
+ end;
+
+OnTimer5000:
+ if ($@battlecave9 == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave9fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave9fighter$));
+ if (gettimetick(2) - $@cave9start >= $@CAVE9_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave9fighterdeaths) goto L_CleaningDead;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave9fighter$));
+ warp "025-3.gat", 138, 158;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave9, 0;
+ set $@cave9_kills, 0;
+ set $@cave9start, 0;
+ set $@cave9fighter$, "";
+ set $@cave9fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight9::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave9fighter$));
+ warp "025-3.gat", 138, 158;
+ message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ set $@wave_cave9, 0;
+ set $@cave9_kills, 0;
+ set $@cave9start, 0;
+ set $@cave9fighter$, "";
+ set $@cave9fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight9::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave9, 0;
+ set $@cave9_kills, 0;
+ set $@cave9start, 0;
+ set $@cave9fighter$, "";
+ set $@cave9fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartCaveFight9::OnMonsterDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
+// ----------------------------- Warp to Boss Cave -------------------------------
+
+025-3.gat,77,170,0 script #WarpBossCave 127,1,1,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_AlreadyHelped;
+//Check if someone is already inside. Change the x1, y1, x2, y2 values according to the place the player will be warped
+ if (getareausers("025-4.gat", 142, 24, 172, 48) >= 1) goto L_SomeoneInside;
+//Check if you can enter this cave
+ if (cavefights & BATTLE_CAVE1 && cavefights & BATTLE_CAVE2 && cavefights & BATTLE_CAVE3 && cavefights & BATTLE_CAVE4 && cavefights & BATTLE_CAVE5 && cavefights & BATTLE_CAVE6 && cavefights & BATTLE_CAVE7 && cavefights & BATTLE_CAVE8 && cavefights & BATTLE_CAVE9) goto L_StartFight;
+
+ message strcharinfo(0), "As you try to enter, you bump into an invisible door. You can feel a total of nince small lockets.";
+ end;
+
+L_StartFight:
+ message strcharinfo(0), "You insert the nine tiny keys you collected but as you enter, you hear screams that seem to be very close.";
+ set $@battlebosscave, 1;
+ warp "025-4.gat", 157, 46;
+ set $@cave10fighter$, strcharinfo(0);
+ set $@cave10fighterdeaths, PC_DIE_COUNTER;
+ startnpctimer;
+ set $@cave10start, gettimetick(2);
+ end;
+
+L_SomeoneInside:
+ message strcharinfo(0), $@cave10fighter$ + " is already inside.";
+ end;
+
+L_AlreadyHelped:
+ if (@juliadone10 == 1) end;
+ message strcharinfo(0), "There are nothing more than dead monster corpses in this cave.";
+ set @juliadone10, 1;
+ end;
+
+OnTimer5000:
+ if ($@battlebosscave == 0) goto L_AlreadyClean;
+ if (isloggedin(getcharid(3,$@cave10fighter$))==0) goto L_CleaningNorid;
+ attachrid(getcharid(3,$@cave10fighter$));
+ if (gettimetick(2) - $@cave10start >= $@CAVE10_TIME) goto L_Cleaning;
+ if (PC_DIE_COUNTER > $@cave10fighterdeaths) goto L_CleaningDead;
+ if ($@wave_cave10 == 5) goto L_SummonBoss;
+ setnpctimer 0;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave10fighter$));
+ warp "025-3.gat", 77, 168;
+ message strcharinfo(0), "You took too much time to free this cave from evil forces.";
+ set $@wave_cave10, 0;
+ set $@cave10_kills, 0;
+ set $@cave10start, 0;
+ set $@cave10fighter$, "";
+ set $@cave10fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartBossCaveFight::OnMonsterDeath";
+ killmonster "025-4.gat", "#StartBossCaveFight::OnBossDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningDead:
+ attachrid(getcharid(3,$@cave10fighter$));
+ warp "025-3.gat", 77, 168;
+ if ($@wave_cave10 < 5) message strcharinfo(0), "You were surrounded by monsters and got eaten alive.";
+ if ($@wave_cave10 == 5) message strcharinfo(0), "This horrible monster is probably too powerful for you right now.";
+ set $@wave_cave10, 0;
+ set $@cave10_kills, 0;
+ set $@cave10start, 0;
+ set $@cave10fighter$, "";
+ set $@cave10fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartBossCaveFight::OnMonsterDeath";
+ killmonster "025-4.gat", "#StartBossCaveFight::OnBossDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_CleaningNorid:
+ set $@wave_cave10, 0;
+ set $@cave10_kills, 0;
+ set $@cave10start, 0;
+ set $@cave10fighter$, "";
+ set $@cave10fighterdeaths$, 0;
+ killmonster "025-4.gat", "#StartBossCaveFight::OnMonsterDeath";
+ killmonster "025-4.gat", "#StartBossCaveFight::OnBossDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_AlreadyClean:
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+}
+
diff --git a/npc/025-4/_import.txt b/npc/025-4/_import.txt
new file mode 100644
index 00000000..a8b01ca1
--- /dev/null
+++ b/npc/025-4/_import.txt
@@ -0,0 +1,9 @@
+// Map 025-4:
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 025-4.gat
+npc: npc/025-4/_mobs.txt
+npc: npc/025-4/_warps.txt
+npc: npc/025-4/battlecaves.txt
+npc: npc/025-4/clauquer.txt
+npc: npc/025-4/julia.txt
+npc: npc/025-4/mapflags.txt
diff --git a/npc/025-4/_mobs.txt b/npc/025-4/_mobs.txt
new file mode 100644
index 00000000..6ee5b1d1
--- /dev/null
+++ b/npc/025-4/_mobs.txt
@@ -0,0 +1,15 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// mobs
+
+025-4.gat,29,31,20,14 monster CaveMaggot 1056,3,0,0,Mob025-4::On1056
+025-4.gat,94,24,20,21 monster CaveMaggot 1056,5,0,0,Mob025-4::On1056
+
+
+025-4.gat,0,0,0 script Mob025-4 -1,{
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/npc/025-4/_warps.txt b/npc/025-4/_warps.txt
new file mode 100644
index 00000000..e0b9ae4d
--- /dev/null
+++ b/npc/025-4/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// warps
+
+025-4.gat,28,37 warp ToMainHall -1,-1,025-3.gat,105,87
diff --git a/npc/025-4/battlecaves.txt b/npc/025-4/battlecaves.txt
new file mode 100644
index 00000000..3b63203e
--- /dev/null
+++ b/npc/025-4/battlecaves.txt
@@ -0,0 +1,852 @@
+// --------------------------------- Cave 1 -----------------------------------
+
+025-4.gat,41,91,0 script #StartCaveFight1 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave1 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave1_loop, $@cave1_loop + 1;
+ areamonster "025-4.gat",26,63,60,97,"",$@CAVE1_MONSTERS_IDS[$@cave1_loop],$@CAVE1_MONSTERS_QTY[$@cave1_loop],"#StartCaveFight1::OnMonsterDeath";
+ if ($@cave1_loop <= getarraysize($@CAVE1_MONSTERS_IDS)) goto L_Summon;
+ set $@cave1_loop, 0;
+ set $@wave_cave1, $@wave_cave1 + 1;
+ end;
+
+L_Done:
+ set $@cave1_kills, 0;
+ attachrid(getcharid(3,$@cave1fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave1 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave1 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave1 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave1 != $@CAVE1_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE1);
+ warp "025-3.gat", 78, 129;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave1fighter$));
+ set $@wave_cave1, 0;
+ set $@cave1_kills, 0;
+ set $@cave1start, 0;
+ set $@cave1fighter$, "";
+ set $@cave1fighterdeaths$, 0;
+ set $@battlecave1, 0;
+ killmonster "025-4.gat", "#StartCaveFight1::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave1_kills, $@cave1_kills + 1;
+ if ($@cave1_kills >= $@CAVE1_MONSTERS_QTY[1] + $@CAVE1_MONSTERS_QTY[2] + $@CAVE1_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE1_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE1_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE1_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE1_TIME, 900;
+}
+
+// --------------------- Cave 1 Checker ----------------------------
+
+025-4.gat,41,97,0 script #CheckCaveFight1 127,1,1,{
+ if (cavefight & BATTLE_CAVE1) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 78, 130;
+ end;
+}
+
+// --------------------------------- Cave 2 ---------------------------------------
+
+
+025-4.gat,110,90,0 script #StartCaveFight2 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave2 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave2_loop, $@cave2_loop + 1;
+ areamonster "025-4.gat",97, 62, 126, 96,"",$@CAVE2_MONSTERS_IDS[$@cave2_loop],$@CAVE2_MONSTERS_QTY[$@cave2_loop],"#StartCaveFight2::OnMonsterDeath";
+ if ($@cave2_loop <= getarraysize($@CAVE2_MONSTERS_IDS)) goto L_Summon;
+ set $@cave2_loop, 0;
+ set $@wave_cave2, $@wave_cave2 + 1;
+ end;
+
+L_Done:
+ set $@cave2_kills, 0;
+ attachrid(getcharid(3,$@cave2fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave2 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave2 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave2 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave2 != $@CAVE2_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE2);
+ warp "025-3.gat", 53, 109;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave2fighter$));
+ set $@wave_cave2, 0;
+ set $@cave2_kills, 0;
+ set $@cave2start, 0;
+ set $@cave2fighter$, "";
+ set $@cave2fighterdeaths$, 0;
+ set $@battlecave2, 0;
+ killmonster "025-4.gat", "#StartCaveFight2::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave2_kills, $@cave2_kills + 1;
+ if ($@cave2_kills >= $@CAVE2_MONSTERS_QTY[1] + $@CAVE2_MONSTERS_QTY[2] + $@CAVE2_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE2_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE2_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE2_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE2_TIME, 900;
+}
+
+// --------------------- Cave 2 Checker ----------------------------
+
+025-4.gat,110,96,0 script #CheckCaveFight2 127,1,1,{
+ if (cavefight & BATTLE_CAVE2) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 53, 110;
+ end;
+}
+
+// ------------------------------------ Cave 3 --------------------------------------
+025-4.gat,168,111,0 script #StartCaveFight3 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave3 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave3_loop, $@cave3_loop + 1;
+ areamonster "025-4.gat",150, 84, 177, 117,"",$@CAVE3_MONSTERS_IDS[$@cave3_loop],$@CAVE3_MONSTERS_QTY[$@cave3_loop],"#StartCaveFight3::OnMonsterDeath";
+ if ($@cave3_loop <= getarraysize($@CAVE3_MONSTERS_IDS)) goto L_Summon;
+ set $@cave3_loop, 0;
+ set $@wave_cave3, $@wave_cave3 + 1;
+ end;
+
+L_Done:
+ set $@cave3_kills, 0;
+ attachrid(getcharid(3,$@cave3fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave3 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave3 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave3 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave3 != $@CAVE3_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE3);
+ warp "025-3.gat", 71, 85;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave3fighter$));
+ set $@wave_cave3, 0;
+ set $@cave3_kills, 0;
+ set $@cave3start, 0;
+ set $@cave3fighter$, "";
+ set $@cave3fighterdeaths$, 0;
+ set $@battlecave3, 0;
+ killmonster "025-4.gat", "#StartCaveFight3::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave3_kills, $@cave3_kills + 1;
+ if ($@cave3_kills >= $@CAVE3_MONSTERS_QTY[1] + $@CAVE3_MONSTERS_QTY[2] + $@CAVE3_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE3_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE3_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE3_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE3_TIME, 900;
+}
+
+// --------------------- Cave 3 Checker ----------------------------
+
+025-4.gat,168,117,0 script #CheckCaveFight3 127,1,1,{
+ if (cavefight & BATTLE_CAVE3) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 71, 85;
+ end;
+}
+
+// --------------------------- Cave 4 --------------------------------
+025-4.gat,32,150,0 script #StartCaveFight4 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave4 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave4_loop, $@cave4_loop + 1;
+ areamonster "025-4.gat",28, 124, 57, 156,"",$@CAVE4_MONSTERS_IDS[$@cave4_loop],$@CAVE4_MONSTERS_QTY[$@cave4_loop],"#StartCaveFight4::OnMonsterDeath";
+ if ($@cave4_loop <= getarraysize($@CAVE4_MONSTERS_IDS)) goto L_Summon;
+ set $@cave4_loop, 0;
+ set $@wave_cave4, $@wave_cave4 + 1;
+ end;
+
+L_Done:
+ set $@cave4_kills, 0;
+ attachrid(getcharid(3,$@cave4fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave4 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave4 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave4 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave4 != $@CAVE4_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE4);
+ warp "025-3.gat", 80, 85;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave4fighter$));
+ set $@wave_cave4, 0;
+ set $@cave4_kills, 0;
+ set $@cave4start, 0;
+ set $@cave4fighter$, "";
+ set $@cave4fighterdeaths$, 0;
+ set $@battlecave4, 0;
+ killmonster "025-4.gat", "#StartCaveFight4::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave4_kills, $@cave4_kills + 1;
+ if ($@cave4_kills >= $@CAVE4_MONSTERS_QTY[1] + $@CAVE4_MONSTERS_QTY[2] + $@CAVE4_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE4_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE4_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE4_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE4_TIME, 900;
+}
+
+// --------------------- Cave 4 Checker ----------------------------
+
+025-4.gat,32,156,0 script #CheckCaveFight4 127,1,1,{
+ if (cavefight & BATTLE_CAVE4) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 80, 85;
+ end;
+}
+
+// ---------------------------- Cave 5 ------------------------------
+
+025-4.gat,100,154,0 script #StartCaveFight5 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave5 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave5_loop, $@cave5_loop + 1;
+ areamonster "025-4.gat",91, 131, 124, 160,"",$@CAVE5_MONSTERS_IDS[$@cave5_loop],$@CAVE5_MONSTERS_QTY[$@cave5_loop],"#StartCaveFight5::OnMonsterDeath";
+ if ($@cave5_loop <= getarraysize($@CAVE5_MONSTERS_IDS)) goto L_Summon;
+ set $@cave5_loop, 0;
+ set $@wave_cave5, $@wave_cave5 + 1;
+ end;
+
+L_Done:
+ set $@cave5_kills, 0;
+ attachrid(getcharid(3,$@cave5fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave5 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave5 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave5 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave5 != $@CAVE5_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE5);
+ warp "025-3.gat", 71, 32;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave5fighter$));
+ set $@wave_cave5, 0;
+ set $@cave5_kills, 0;
+ set $@cave5start, 0;
+ set $@cave5fighter$, "";
+ set $@cave5fighterdeaths$, 0;
+ set $@battlecave5, 0;
+ killmonster "025-4.gat", "#StartCaveFight5::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave5_kills, $@cave5_kills + 1;
+ if ($@cave5_kills >= $@CAVE5_MONSTERS_QTY[1] + $@CAVE5_MONSTERS_QTY[2] + $@CAVE5_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE5_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE5_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE5_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE5_TIME, 900;
+}
+
+// --------------------- Cave 5 Checker ----------------------------
+
+025-4.gat,100,160,0 script #CheckCaveFight5 127,1,1,{
+ if (cavefight & BATTLE_CAVE5) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 71, 33;
+ end;
+}
+
+// -------------------------------- Cave 6 -----------------------------------------
+
+025-4.gat,159,168,0 script #StartCaveFight6 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave6 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave6_loop, $@cave6_loop + 1;
+ areamonster "025-4.gat",153, 143, 178, 174,"",$@CAVE6_MONSTERS_IDS[$@cave6_loop],$@CAVE6_MONSTERS_QTY[$@cave6_loop],"#StartCaveFight6::OnMonsterDeath";
+ if ($@cave6_loop <= getarraysize($@CAVE6_MONSTERS_IDS)) goto L_Summon;
+ set $@cave6_loop, 0;
+ set $@wave_cave6, $@wave_cave6 + 1;
+ end;
+
+L_Done:
+ set $@cave6_kills, 0;
+ attachrid(getcharid(3,$@cave6fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave6 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave6 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave6 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave6 != $@CAVE6_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE6);
+ warp "025-3.gat", 128, 37;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave6fighter$));
+ set $@wave_cave6, 0;
+ set $@cave6_kills, 0;
+ set $@cave6start, 0;
+ set $@cave6fighter$, "";
+ set $@cave6fighterdeaths$, 0;
+ set $@battlecave6, 0;
+ killmonster "025-4.gat", "#StartCaveFight6::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave6_kills, $@cave6_kills + 1;
+ if ($@cave6_kills >= $@CAVE6_MONSTERS_QTY[1] + $@CAVE6_MONSTERS_QTY[2] + $@CAVE6_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE6_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE6_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE6_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE6_TIME, 900;
+}
+
+// --------------------- Cave 6 Checker ----------------------------
+
+025-4.gat,159,174,0 script #CheckCaveFight6 127,1,1,{
+ if (cavefight & BATTLE_CAVE6) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 128, 38;
+ end;
+}
+
+// -------------------------------- Cave 7 -----------------------------------
+
+025-4.gat,39,215,0 script #StartCaveFight7 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave7 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave7_loop, $@cave7_loop + 1;
+ areamonster "025-4.gat",27, 185, 61, 219,"",$@CAVE7_MONSTERS_IDS[$@cave7_loop],$@CAVE7_MONSTERS_QTY[$@cave7_loop],"#StartCaveFight7::OnMonsterDeath";
+ if ($@cave7_loop <= getarraysize($@CAVE7_MONSTERS_IDS)) goto L_Summon;
+ set $@cave7_loop, 0;
+ set $@wave_cave7, $@wave_cave7 + 1;
+ end;
+
+L_Done:
+ set $@cave7_kills, 0;
+ attachrid(getcharid(3,$@cave7fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave7 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave7 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave7 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave7 != $@CAVE7_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE7);
+ warp "025-3.gat", 70, 59;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave7fighter$));
+ set $@wave_cave7, 0;
+ set $@cave7_kills, 0;
+ set $@cave7start, 0;
+ set $@cave7fighter$, "";
+ set $@cave7fighterdeaths$, 0;
+ set $@battlecave7, 0;
+ killmonster "025-4.gat", "#StartCaveFight7::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave7_kills, $@cave7_kills + 1;
+ if ($@cave7_kills >= $@CAVE7_MONSTERS_QTY[1] + $@CAVE7_MONSTERS_QTY[2] + $@CAVE7_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE7_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE7_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE7_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE7_TIME, 900;
+}
+
+// --------------------- Cave 7 Checker ----------------------------
+
+025-4.gat,42,219,0 script #CheckCaveFight7 127,1,1,{
+ if (cavefight & BATTLE_CAVE7) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 70, 60;
+ end;
+}
+
+// --------------------------- Cave 8 -------------------------------
+
+025-4.gat,105,210,0 script #StartCaveFight8 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave8 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave8_loop, $@cave8_loop + 1;
+ areamonster "025-4.gat",90, 193, 119, 216,"",$@CAVE8_MONSTERS_IDS[$@cave8_loop],$@CAVE8_MONSTERS_QTY[$@cave8_loop],"#StartCaveFight8::OnMonsterDeath";
+ if ($@cave8_loop <= getarraysize($@CAVE8_MONSTERS_IDS)) goto L_Summon;
+ set $@cave8_loop, 0;
+ set $@wave_cave8, $@wave_cave8 + 1;
+ end;
+
+L_Done:
+ set $@cave8_kills, 0;
+ attachrid(getcharid(3,$@cave8fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave8 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave8 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave8 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. It was empty.";
+
+ if ($@wave_cave8 != $@CAVE8_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE8);
+ warp "025-3.gat", 138, 94;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave8fighter$));
+ set $@wave_cave8, 0;
+ set $@cave8_kills, 0;
+ set $@cave8start, 0;
+ set $@cave8fighter$, "";
+ set $@cave8fighterdeaths$, 0;
+ set $@battlecave8, 0;
+ killmonster "025-4.gat", "#StartCaveFight8::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave8_kills, $@cave8_kills + 1;
+ if ($@cave8_kills >= $@CAVE8_MONSTERS_QTY[1] + $@CAVE8_MONSTERS_QTY[2] + $@CAVE8_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE8_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE8_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE8_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE8_TIME, 900;
+}
+
+// --------------------- Cave 8 Checker ----------------------------
+
+025-4.gat,105,216,0 script #CheckCaveFight8 127,1,1,{
+ if (cavefight & BATTLE_CAVE8) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 138, 95;
+ end;
+}
+
+// --------------------------- Cave 9 -------------------------------
+
+025-4.gat,157,220,0 script #StartCaveFight9 111,{
+ if (Rossy_Quest < 15) goto L_Cheat;
+ if ($@battlecave9 == 1) goto L_Summon;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Summon:
+ set $@cave9_loop, $@cave9_loop + 1;
+ areamonster "025-4.gat",144, 192, 173, 226,"",$@CAVE9_MONSTERS_IDS[$@cave9_loop],$@CAVE9_MONSTERS_QTY[$@cave9_loop],"#StartCaveFight9::OnMonsterDeath";
+ if ($@cave9_loop <= getarraysize($@CAVE9_MONSTERS_IDS)) goto L_Summon;
+ set $@cave9_loop, 0;
+ set $@wave_cave9, $@wave_cave9 + 1;
+ end;
+
+L_Done:
+ set $@cave9_kills, 0;
+ attachrid(getcharid(3,$@cave9fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave9 == 1) message strcharinfo(0), "Oh no, more monsters?!";
+ if ($@wave_cave9 == 2) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave9 == 3) message strcharinfo(0), "As you killed all the monsters, you opened the chest. You found a strange key into the chest.";
+
+ if ($@wave_cave9 != $@CAVE9_WAVES) goto L_Summon;
+ set cavefights, (cavefights ^ BATTLE_CAVE9);
+ warp "025-3.gat", 138, 158;
+ goto L_Cleaning;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave9fighter$));
+ set $@wave_cave9, 0;
+ set $@cave9_kills, 0;
+ set $@cave9start, 0;
+ set $@cave9fighter$, "";
+ set $@cave9fighterdeaths$, 0;
+ set $@battlecave9, 0;
+ killmonster "025-4.gat", "#StartCaveFight9::OnMonsterDeath";
+ end;
+
+OnMonsterDeath:
+ set $@cave9_kills, $@cave9_kills + 1;
+ if ($@cave9_kills >= $@CAVE9_MONSTERS_QTY[1] + $@CAVE9_MONSTERS_QTY[2] + $@CAVE9_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned.
+ setarray $@CAVE9_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE9_MONSTERS_QTY[1], 3, 2, 2, 2;
+// Number of waves.
+ set $@CAVE9_WAVES, 3;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE9_TIME, 900;
+}
+
+// --------------------- Cave 9 Checker ----------------------------
+
+025-4.gat,157,226,0 script #CheckCaveFight9 127,1,1,{
+ if (cavefight & BATTLE_CAVE9) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 138, 158;
+ end;
+}
+
+// --------------------- Boss Cave ----------------------------
+
+025-4.gat,157,42,0 script #StartBossCaveFight 111,{
+ if (Rossy_Quest == 16) goto L_Found;
+ if ($@battlebosscave == 1 && cavefights & BATTLE_CAVE1 && cavefights & BATTLE_CAVE2 && cavefights & BATTLE_CAVE3 && cavefights & BATTLE_CAVE4 && cavefights & BATTLE_CAVE5 && cavefights & BATTLE_CAVE6 && cavefights & BATTLE_CAVE7 && cavefights & BATTLE_CAVE8 && cavefights & BATTLE_CAVE9 && Rossy_Quest == 15) goto L_Summon;
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Found:
+ message strcharinfo(0), "You found a golden key.";
+ set Killed_Boss, 1;
+ end;
+
+L_Summon:
+ set $@cave10_loop, $@cave10_loop + 1;
+ areamonster "025-4.gat",142, 24, 172, 48,"",$@CAVE10_MONSTERS_IDS[$@cave10_loop],$@CAVE10_MONSTERS_QTY[$@cave10_loop],"#StartBossCaveFight::OnMonsterDeath";
+ if ($@cave10_loop <= getarraysize($@CAVE10_MONSTERS_IDS)) goto L_Summon;
+ set $@cave10_loop, 0;
+ set $@wave_cave10, $@wave_cave10 + 1;
+ end;
+
+L_SummonBoss:
+ attachrid(getcharid(3,$@cave10fighter$));
+ message strcharinfo(0), "WHaaat? What is this?!";
+ areamonster "025-4.gat",142, 24, 172, 48,"",$@BOSS,1,"#StartBossCaveFight::OnBossDeath";
+ stopnpctimer;
+ setnpctimer 0;
+ end;
+
+L_Done:
+ set $@cave10_kills, 0;
+ attachrid(getcharid(3,$@cave10fighter$));
+
+// Here you can define the messages to be shown for the players on the beginning of each wave.
+// Remember to adjust the number of conditionals according to the number of waves.
+
+ if ($@wave_cave10 == 1) message strcharinfo(0), "I can't give up now!";
+ if ($@wave_cave10 == 2) message strcharinfo(0), "I feel I'm getting close to the end...";
+ if ($@wave_cave10 == 3) message strcharinfo(0), "What? This is harder than I imagined!";
+ if ($@wave_cave10 == 4) message strcharinfo(0), "Finally! It seems I have defeated all of them! Wait... what is that?!";
+
+ if ($@wave_cave10 != $@CAVE10_WAVES) goto L_Summon;
+ set $@wave_cave10, 5;
+ startnpctimer;
+ end;
+
+L_Cleaning:
+ attachrid(getcharid(3,$@cave10fighter$));
+ set $@wave_cave10, 0;
+ set $@cave10_kills, 0;
+ set $@cave10start, 0;
+ set $@cave10fighter$, "";
+ set $@cave10fighterdeaths$, 0;
+ set $@battlebosscave, 0;
+ killmonster "025-4.gat", "#StartBossCaveFight::OnMonsterDeath";
+ killmonster "025-4.gat", "#StartBossCaveFight::OnBossDeath";
+ end;
+
+OnTimer4000:
+ attachrid(getcharid(3,$@cave10fighter$));
+ set @boss, @boss + 1;
+ if (@boss == 1) message strcharinfo(0), "Due to the number of monsters in this cave, you feel you have more time to kill them all before other monsters come.";
+ if (@boss == 2) goto L_SummonBoss;
+ setnpctimer 0;
+ end;
+
+OnMonsterDeath:
+ set $@cave10_kills, $@cave10_kills + 1;
+ if ($@cave10_kills >= $@CAVE10_MONSTERS_QTY[1] + $@CAVE10_MONSTERS_QTY[2] + $@CAVE10_MONSTERS_QTY[3]) goto L_Done;
+ end;
+
+OnBossDeath:
+ attachrid(getcharid(3,$@cave10fighter$));
+ set $@wave_cave10, 0;
+ set $@cave10_kills, 0;
+ set $@cave10start, 0;
+ set $@cave10fighter$, "";
+ set $@cave10fighterdeaths$, 0;
+ message strcharinfo(0), "What a harsh battle! Oh, a golden key, it might open the chest!";
+ set Rossy_Quest, 16;
+ end;
+
+onInit:
+// Here you can define the specifics of each battle cave.
+// Monsters IDs to be spawned. before the boss.
+ setarray $@CAVE10_MONSTERS_IDS[1], 1050, 1051, 1083, 1084;
+// Number of monsters of each ID.
+ setarray $@CAVE10_MONSTERS_QTY[1], 3, 2, 2, 2;
+// ID of the boss monster.
+ set $@BOSS, 1086;
+// Number of waves. before the boss.
+ set $@CAVE10_WAVES, 4;
+// Maximum time (in seconds) for the player to finish the fight.
+ set $@CAVE10_TIME, 1500;
+}
+
+// --------------------- Boss Cave Checker ----------------------------
+
+025-4.gat,157,48,0 script #CheckCaveFightBoss 127,1,1,{
+ if (Rossy_Quest >= 17) goto L_Done;
+ if (Killed_Boss == 1) goto L_Done;
+ message strcharinfo(0), "Evil forces make you stop, you need to defeat them first before getting out.";
+ end;
+
+L_Killed:
+ message strcharinfo(0), "The little girl seems so close, you can't let her stay here.";
+ end;
+
+L_Done:
+ warp "025-3.gat", 77, 168;
+ end;
+}
+
+// --------------------- Julia Cave Checker Outside ----------------------------
+
+025-4.gat,157,24,0 script #CheckJuliaCaveOutside 127,1,1,{
+ if (Killed_Boss == 1) goto L_Done;
+ message strcharinfo(0), "As you try to walk through, you bump into an invisible door. You might need a key to open it.";
+ end;
+
+L_Done:
+ warp "025-4.gat", 93, 33;
+ end;
+}
+
+// --------------------- Julia Cave Checker Inside ----------------------------
+
+025-4.gat,93,35,0 script #CheckJuliaCaveInside 127,1,1,{
+ if (Rossy_Quest >= 17 && Killed_Boss == 1) goto L_Done;
+ if (Rossy_Quest >= 17 && Killed_Boss == 0) goto L_Cheat2;
+ if (Rossy_Quest == 16 && Killed_Boss == 1) goto L_Save;
+ if (Rossy_Quest == 16 && Killed_Boss == 0) goto L_Cheat3;
+ if (Rossy_Quest <= 15) goto L_Cheat;
+ end;
+
+L_Cheat:
+ message strcharinfo(0), "You shouldn't be here, you cheater.";
+ percentheal -100, 0;
+ end;
+
+L_Cheat2:
+ message strcharinfo(0), "You saved Julia without having killed the boss? Is that even possible?";
+ percentheal -100, 0;
+ end;
+
+L_Cheat3:
+ message strcharinfo(0), "You can save Julia without killing the boss? Cheating isn't fair.";
+ percentheal -100, 0;
+ end;
+
+L_Done:
+ warp "025-4.gat", 157, 26;
+ end;
+
+L_Save:
+ message strcharinfo(0), "You can't leave Julia here, all alone!";
+ end;
+}
+
diff --git a/npc/025-4/clauquer.txt b/npc/025-4/clauquer.txt
new file mode 100644
index 00000000..e39e27d7
--- /dev/null
+++ b/npc/025-4/clauquer.txt
@@ -0,0 +1,88 @@
+025-4.gat,30,30,0 script Clauquer 169,{
+
+ if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_Rescued;
+ if (Rossy_Quest == 15) goto L_Hmmm;
+ if (Rossy_Quest == 14) goto L_Help;
+ if (Rossy_Quest <= 13) goto L_Huh;
+ if (Clauquer_Enough == 1) goto L_End;
+
+L_Help:
+ mes "[Clauquer]";
+ mes "\"Hello stranger, are you lost?\"";
+ next;
+ mes "\"Don't answer, I know you are looking for someone... A little girl, is that right?\"";
+ menu
+ "I must admit you're right, but how come you...", -,
+ "I'm not lost and I don't need help, bye.", L_No;
+ next;
+ mes "[Clauquer]";
+ mes "\"How do I kow you're looking for her? Well because I saw her. I also heard her, she screamed and still screams like hell. Moreover I don't think you will come in these caves just for fun!\"";
+ menu
+ "Of course not.", -,
+ next;
+ mes "[Clauquer]";
+ mes "\"I can see that you need help to be able to save the little girl. First of all, you should know that these little caves contain horrible blood thursty earth monsters. They are coming from nowhere and you can't escape while they are still alive. Watch out because if you take too much time, you will die due to the smell of the caves. You will try to come out of the aceve, crawling and whe you'll be outside, the normal air will kill you. So you better be quick.\"";
+ next;
+ mes "\"In these caves, or you die, or they die, that is the only rule. When the monsters of a cave will be dead, you'll quickly come out of the cave because of its smell. Don't worry, you'll have time to look in each chest of each caves. Why chests? Well because you have a hidden cave which is locked by several lockets on an invisible door. I don't exactly know the number of lockets but that might turn around 10.\"";
+ next;
+ mes "\"When you'll enter the locked cave, you'll be in front of numerous monsters. But watch out, the last one is more dangerous than the other ones. As you will see him, you will be frightened to death. Don't worry, I can give you some advices.\"";
+ menu
+ "Please go on.", -,
+ "Sounds dangerous, but I know enough now.", L_Enough;
+ next;
+ mes "[Clauquer]";
+ mes "\"I advice you to be mentally prepared for this rescue operation. A fey nature spirit creature kidnapped the little girl to change it into a changling. However the changling has been killed along the way to the caves. In fact no, he tried to take the girl's appearence but she was mentally too strong for the changling. That is why the fey element is waiting for another fresh changling, stronger than the previous one. As you can see, scary story.\"";
+ next;
+ mes "\"Oh, I advice you to use battle potions for every single battle, I'm thinking of Concentration and Iron Potions. You might want to take some food with you, you might be hungry in battle. I would personally take some water, I'm always thirsty. Don't be afraid to take too much of each, the battles take time to end.\"";
+ next;
+ mes "\"I think you're now ready to explore these caves and fight. May god be with you.\"";
+ set Rossy_Quest, 15;
+ close;
+
+L_Enough:
+ mes "[Clauquer]";
+ mes "\"Enough? No, you don't even know the fun part yet. I know you'll come back soon.\"";
+ set Clauquer_Enough, 1;
+ close;
+
+L_End:
+
+ mes "[Clauquer]";
+ mes "\"I see you came back because you didn't know enough of these caves... Well, well...\"";
+ next;
+ mes "\"I advice you to be mentally prepared for this rescue operation. A fey nature spirit creature kidnapped the little girl to change it into a changling. However the changling has been killed along the way to the caves. In fact no, he tried to take the girl's appearence but she was mentally too strong for the changling. That is why the fey element is waiting for another fresh changling, stronger than the previous one. As you can see, scary story.\"";
+ next;
+ mes "\"Oh, I advice you to use battle potions for every single battle, I'm thinking of Concentration and Iron Potions. You might want to take some food with you, you might be hungry in battle. I would personally take some water, I'm always thirsty. Don't be afraid to take too much of each, the battles take time to end.\"";
+ next;
+ mes "\"I think you're now ready to explore these caves and fight. May god be with you.\"";
+ set Rossy_Quest, 15;
+ close;
+
+L_Hmmm:
+ if (Clauquer_Talk == 1) goto L_Huh;
+ mes "[Clauquer]";
+ mes "\"You already know everythng about these caves. You don't need me anymore to find the little girl.\"";
+ menu
+ "But please, I really need your help!", -,
+ "You're right, I don't need your help!", L_No;
+ next;
+ mes "\"I don't repeat myself. Bye.\"";
+ set Clauquer_Talk, 1;
+ close;
+
+L_Huh:
+ mes "[Clauquer]";
+ mes "Why are you here? Get out.";
+ close;
+
+L_No:
+ close;
+
+L_Rescued:
+ mes "[Clauquer]";
+ mes "Please put something here.";
+ next;
+ mes "*The man talks about you, rescuing the girl.*";
+ close;
+
+}
diff --git a/npc/025-4/julia.txt b/npc/025-4/julia.txt
new file mode 100644
index 00000000..ad0c8a1a
--- /dev/null
+++ b/npc/025-4/julia.txt
@@ -0,0 +1,39 @@
+025-4.gat,89,21,0 script Julia 114,{
+
+ if (Rossy_Quest > 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_End;
+ if (Rossy_Quest == 16) goto L_Done;
+ if (Rossy_Quest <= 15) goto L_Hmmm;
+
+L_Done:
+ mes "[Julia]";
+ mes "I heard some battle noises few minutes ago and I presume you are here to save me!";
+ next;
+ menu
+ "Of course I'm here to save you, Rossy sent me here!", -;
+ mes "Rossy? My twin sister? I knew she was going to look for me. Well, here is a present for you.";
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
+ getitem "BlackBoots", 1;
+ getexp 5000, 0;
+ set Rossy_Quest, 17;
+ mes "I'm out of here now, come out from this horrible cave.";
+ close;
+
+L_End:
+ mes "[Julia]";
+ mes "Come out from this horrible cave.";
+ close;
+
+L_Hmmm:
+ mes "[Julia]";
+ mes "Don't hurt me!";
+ close;
+
+L_TooMany:
+ mes "[Julia]";
+ mes "\"Oh, you don't have room for it. Come back when your backpack will not be full.\"";
+ next;
+ mes "I'll wait here until you get your present!";
+ close;
+
+}
diff --git a/npc/025-4/mapflags.txt b/npc/025-4/mapflags.txt
new file mode 100644
index 00000000..1c8999bb
--- /dev/null
+++ b/npc/025-4/mapflags.txt
@@ -0,0 +1 @@
+025-4.gat mapflag nosave 025-3,112,96;
diff --git a/npc/026-1_Swamp/_import.txt b/npc/026-1/_import.txt
index bc7e00f5..ae18387c 100644
--- a/npc/026-1_Swamp/_import.txt
+++ b/npc/026-1/_import.txt
@@ -1,5 +1,6 @@
+// Map 026-1: Swamp
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 026-1.gat
-npc: npc/026-1_Swamp/_mobs.txt
-npc: npc/026-1_Swamp/_warps.txt
-npc: npc/026-1_Swamp/sign.txt
+npc: npc/026-1/_mobs.txt
+npc: npc/026-1/_warps.txt
+npc: npc/026-1/sign.txt
diff --git a/npc/026-1_Swamp/_mobs.txt b/npc/026-1/_mobs.txt
index ab0d5473..89a32db8 100644
--- a/npc/026-1_Swamp/_mobs.txt
+++ b/npc/026-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 026-1 Swamp mobs
+// Swamp mobs
026-1.gat,70,58,111,83 monster Wisp 1040,34,120000,40000,Mob026-1::On1040
026-1.gat,70,59,110,84 monster Spectre 1042,34,120000,40000,Mob026-1::On1042
diff --git a/npc/026-1_Swamp/_warps.txt b/npc/026-1/_warps.txt
index b555b2b7..dc5c51fc 100644
--- a/npc/026-1_Swamp/_warps.txt
+++ b/npc/026-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 026-1 Swamp warps
+// Swamp warps
026-1.gat,63,16 warp toGraveyard -1,-1,027-1.gat,63,105
026-1.gat,129,66 warp toSwamp -1,-1,025-1.gat,20,66
diff --git a/npc/026-1_Swamp/sign.txt b/npc/026-1/sign.txt
index 44813c38..44813c38 100644
--- a/npc/026-1_Swamp/sign.txt
+++ b/npc/026-1/sign.txt
diff --git a/npc/027-1/_import.txt b/npc/027-1/_import.txt
new file mode 100644
index 00000000..14fc594e
--- /dev/null
+++ b/npc/027-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 027-1: Graveyard
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 027-1.gat
+npc: npc/027-1/_mobs.txt
+npc: npc/027-1/_warps.txt
+npc: npc/027-1/golbenez.txt
+npc: npc/027-1/graves.txt
+npc: npc/027-1/monsters.txt
diff --git a/npc/027-1_Graveyard/_mobs.txt b/npc/027-1/_mobs.txt
index 5f878e68..e7eac33a 100644
--- a/npc/027-1_Graveyard/_mobs.txt
+++ b/npc/027-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-1 Graveyard mobs
+// Graveyard mobs
027-1.gat,81,91,95,27 monster Poltergeist 1047,4,900000,60000,Mob027-1::On1047
027-1.gat,81,91,97,25 monster Spectre 1042,4,900000,60000,Mob027-1::On1042
diff --git a/npc/027-1_Graveyard/_warps.txt b/npc/027-1/_warps.txt
index 57062f58..b8f1991e 100644
--- a/npc/027-1_Graveyard/_warps.txt
+++ b/npc/027-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-1 Graveyard warps
+// Graveyard warps
027-1.gat,88,84 warp toCaretaker's -1,-1,027-2.gat,26,32
027-1.gat,63,106 warp toSwamp -1,-1,026-1.gat,63,17
diff --git a/npc/027-1_Graveyard/golbenez.txt b/npc/027-1/golbenez.txt
index 5eae44d4..336cdea3 100644
--- a/npc/027-1_Graveyard/golbenez.txt
+++ b/npc/027-1/golbenez.txt
@@ -1,4 +1,4 @@
-//027-1.gat,68,89,0 script #Golbenez#_M 204,{
+027-1.gat,68,89,0 script #Golbenez#_M 204,{
set @fee, 666;
diff --git a/npc/027-1_Graveyard/graves.txt b/npc/027-1/graves.txt
index ecda6ea0..ecda6ea0 100644
--- a/npc/027-1_Graveyard/graves.txt
+++ b/npc/027-1/graves.txt
diff --git a/npc/027-1_Graveyard/monsters.txt b/npc/027-1/monsters.txt
index 17cabce7..0efe43c4 100644
--- a/npc/027-1_Graveyard/monsters.txt
+++ b/npc/027-1/monsters.txt
@@ -27,12 +27,10 @@ _MOBCOUNT_ZOMBIES:
set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
if (@state != 1) return;
- set @bracelet, @bracelet + 1;
-//TODO: remove debug
-// if (@bracelet < 10) return;
-// if (rand(8) != 0) return;
- message strcharinfo(0), "Debug: got bracelet with one kill instead of many";
- message strcharinfo(0), "You found a strange bracelet hidden in the zombie's rotten rags. Maybe this is what Aldred was looking for...";
+ set @ring, @ring + 1;
+ if (@ring < 10) return;
+ if (rand(8) != 0) return;
+ message strcharinfo(0), "You found a ring hidden in the zombie's rotten rags. Maybe this is what Aldred was looking for...";
set @state, 2;
callsub S_Update_Mask;
return;
@@ -45,10 +43,10 @@ _MOBCOUNT_FALLENS:
set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
if (@state != 1) return;
- set @bracelet, @bracelet + 1;
- if (@bracelet < 10) return;
+ set @ring, @ring + 1;
+ if (@ring < 10) return;
if (rand(8) != 0) return;
- message strcharinfo(0), "You found a strange bracelet inside the fallen's broken helmet. Maybe this is what Aldred was looking for...";
+ message strcharinfo(0), "You found a ring inside the fallen's broken helmet. Maybe this is what Aldred was looking for...";
set @state, 2;
callsub S_Update_Mask;
return;
diff --git a/npc/027-1_Graveyard/_import.txt b/npc/027-1_Graveyard/_import.txt
deleted file mode 100644
index 4a185c48..00000000
--- a/npc/027-1_Graveyard/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 027-1.gat
-npc: npc/027-1_Graveyard/_mobs.txt
-npc: npc/027-1_Graveyard/_warps.txt
-npc: npc/027-1_Graveyard/golbenez.txt
-npc: npc/027-1_Graveyard/graves.txt
-npc: npc/027-1_Graveyard/monsters.txt
diff --git a/npc/027-2/_import.txt b/npc/027-2/_import.txt
new file mode 100644
index 00000000..56dcdd1b
--- /dev/null
+++ b/npc/027-2/_import.txt
@@ -0,0 +1,22 @@
+// Map 027-2: Caretaker's House
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 027-2.gat
+npc: npc/027-2/_mobs.txt
+npc: npc/027-2/_warps.txt
+npc: npc/027-2/alacrius.txt
+npc: npc/027-2/alacrius2.txt
+npc: npc/027-2/barman.txt
+npc: npc/027-2/caretaker.txt
+npc: npc/027-2/cerhan.txt
+npc: npc/027-2/crying_child.txt
+npc: npc/027-2/diary.txt
+npc: npc/027-2/door.txt
+npc: npc/027-2/evil_guard.txt
+npc: npc/027-2/golbenez.txt
+npc: npc/027-2/gy_inn_shops.txt
+npc: npc/027-2/headless_man.txt
+npc: npc/027-2/husband.txt
+npc: npc/027-2/innkeeper.txt
+npc: npc/027-2/lover.txt
+npc: npc/027-2/testnpcs.txt
+npc: npc/027-2/werewolf.txt
diff --git a/npc/027-2_Caretakers_House/_mobs.txt b/npc/027-2/_mobs.txt
index 5408e5fa..b316be00 100644
--- a/npc/027-2_Caretakers_House/_mobs.txt
+++ b/npc/027-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-2 Caretaker's House mobs
+// Caretaker's House mobs
027-2.gat,81,41,11,9 monster DrunkenSkeleton 1077,1,100000,30000,Mob027-2::On1077
027-2.gat,91,38,11,9 monster TipsySkeleton 1078,1,100000,30000,Mob027-2::On1078
diff --git a/npc/027-2_Caretakers_House/_warps.txt b/npc/027-2/_warps.txt
index 53146801..fcc40b4d 100644
--- a/npc/027-2_Caretakers_House/_warps.txt
+++ b/npc/027-2/_warps.txt
@@ -1,7 +1,7 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-2 Caretaker's House warps
+// Caretaker's House warps
027-2.gat,26,33 warp toGraveyard -1,-1,027-1.gat,88,85
027-2.gat,128,35 warp To2ndFloor 0,-1,027-2.gat,75,93
-027-2.gat,76,95 warp To1stFloor 0,-1,027-2.gat,127,37
+027-2.gat,75,95 warp To1stFloor 0,-1,027-2.gat,127,37
027-2.gat,106,46 warp ToOutside 0,-1,027-1.gat,68,89
diff --git a/npc/027-2_Caretakers_House/alacrius.txt b/npc/027-2/alacrius.txt
index 99714ebc..99714ebc 100755..100644
--- a/npc/027-2_Caretakers_House/alacrius.txt
+++ b/npc/027-2/alacrius.txt
diff --git a/npc/027-2_Caretakers_House/alacrius2.txt b/npc/027-2/alacrius2.txt
index b48ebd3f..df1587ec 100755..100644
--- a/npc/027-2_Caretakers_House/alacrius2.txt
+++ b/npc/027-2/alacrius2.txt
@@ -1,113 +1,113 @@
-// Starts the reaper quest
-
-//027-2.gat,107,29,0 script Alacrius 313,{
- if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_Enjoy;
-
-
- mes "[Alacrius]";
- mes "\"Hello, I'm Alacrius. \"";
- next;
- mes "[Alacrius]";
- mes "\"A very long time ago, I figured a way to cheat death and the limits of time and space. You may think it is evil, but I did it because of true love... \"";
- next;
- mes "[Alacrius]";
- mes "\"The reaper kidnapped my beloved wife, and took her to the underworld. I had to find a way to stop him, and as time went by, I became what you can see now... But if you dare to cheat death, time and space you'll have to pay a high price... \"";
- next;
-
- mes "[Alacrius]";
- mes "\"Being away from time and space doesn't allow me to try to save my beloved wife... I need your help. Do you think you have what it takes to handle the most powerful monsters over the world of Mana? \"";
- next;
-
- menu
- "Let's go!",L_PLAY_OK,
- "No, thank you.",-;
- close;
-
-
-L_PLAY_OK:
-
- if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_AlreadyStarted;
- set $@FIGHT_ALACRIUS_STATUS, 1;
- set $@MO_REAPER, 0;
- startnpctimer;
- set @PRIZE, 1;
-
- goto L_Exit;
-
-L_Enjoy:
- if ($@MO_REAPER == 1) goto L_AllDead;
- mes "[Alacrius]";
- mes "\"...Please hurry up, the time is running...\"";
- goto L_Exit;
-
-L_AlreadyStarted:
- mes "[Alacrius]";
- mes "\"The Reaper is alive.\"";
- goto L_Exit;
-
-L_Exit:
- close;
- end;
-
-
-// Time to fight
-OnTimer10000:
-
- monster "027-2.gat",0,0,"Reaper Quest",1111,1,"Alacrius::OnDeadReaper";
- end;
-
-OnDeadReaper:
- set $@MO_REAPER, $@MO_REAPER + 1;
- killmonster "027-2.gat","All";
- end;
-
-OnDeadLost:
- set $@MO_LOST, $@MO_LOST + 1;
- end;
-
-
-OnTimer120000:
-
- set $@MO_REAPER,0;
- set $@FIGHT_ALACRIUS_STATUS, 0;
- killmonster "027-2.gat","All";
- stopnpctimer;
- setnpctimer 0;
- set @PRIZE, 0;
- npctalk "Oh my beloved wife, you could not be rescued! I will have to purge my mistakes again...";
- npctalk "Please, help my beloved wife!!";
-
- end;
-
-OnDead:
- end;
-
-
-L_AllDead:
- if(@PRIZE == 0) goto L_NOHERO;
-
- getinventorylist;
- if (@inventorylist_count == 100) goto L_TooMany;
- getitem "CasinoCoins", 1;
-
- mes "[Alacrius]";
- mes "Thank you very much, you saved my love!! Here you are, a prize according to the dangers you've been exposed to.";
- set @PRIZE , 0;
- set $@MO_REAPER,0;
- close;
- end;
-
-L_TooMany:
- mes "[Alacrius]";
- mes "You have no room for the reward.";
- close;
-
-L_NOHERO:
- mes "[Alacrius]";
- mes "Sorry, but you didn't save my love... Try it again when you're ready...";
- close;
- end;
-OnInit:
- initnpctimer;
- stopnpctimer;
-}
+// Starts the reaper quest
+
+//027-2.gat,107,29,0 script Alacrius 313,{
+ if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_Enjoy;
+
+
+ mes "[Alacrius]";
+ mes "\"Hello, I'm Alacrius. \"";
+ next;
+ mes "[Alacrius]";
+ mes "\"A very long time ago, I figured a way to cheat death and the limits of time and space. You may think it is evil, but I did it because of true love... \"";
+ next;
+ mes "[Alacrius]";
+ mes "\"The reaper kidnapped my beloved wife, and took her to the underworld. I had to find a way to stop him, and as time went by, I became what you can see now... But if you dare to cheat death, time and space you'll have to pay a high price... \"";
+ next;
+
+ mes "[Alacrius]";
+ mes "\"Being away from time and space doesn't allow me to try to save my beloved wife... I need your help. Do you think you have what it takes to handle the most powerful monsters over the world of Mana? \"";
+ next;
+
+ menu
+ "Let's go!",L_PLAY_OK,
+ "No, thank you.",-;
+ close;
+
+
+L_PLAY_OK:
+
+ if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_AlreadyStarted;
+ set $@FIGHT_ALACRIUS_STATUS, 1;
+ set $@MO_REAPER, 0;
+ startnpctimer;
+ set @PRIZE, 1;
+
+ goto L_Exit;
+
+L_Enjoy:
+ if ($@MO_REAPER == 1) goto L_AllDead;
+ mes "[Alacrius]";
+ mes "\"...Please hurry up, the time is running...\"";
+ goto L_Exit;
+
+L_AlreadyStarted:
+ mes "[Alacrius]";
+ mes "\"The Reaper is alive.\"";
+ goto L_Exit;
+
+L_Exit:
+ close;
+ end;
+
+
+// Time to fight
+OnTimer10000:
+
+ monster "027-2.gat",0,0,"Reaper Quest",1111,1,"Alacrius::OnDeadReaper";
+ end;
+
+OnDeadReaper:
+ set $@MO_REAPER, $@MO_REAPER + 1;
+ killmonster "027-2.gat","All";
+ end;
+
+OnDeadLost:
+ set $@MO_LOST, $@MO_LOST + 1;
+ end;
+
+
+OnTimer120000:
+
+ set $@MO_REAPER,0;
+ set $@FIGHT_ALACRIUS_STATUS, 0;
+ killmonster "027-2.gat","All";
+ stopnpctimer;
+ setnpctimer 0;
+ set @PRIZE, 0;
+ npctalk "Oh my beloved wife, you could not be rescued! I will have to purge my mistakes again...";
+ npctalk "Please, help my beloved wife!!";
+
+ end;
+
+OnDead:
+ end;
+
+
+L_AllDead:
+ if(@PRIZE == 0) goto L_NOHERO;
+
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
+ getitem "CasinoCoins", 1;
+
+ mes "[Alacrius]";
+ mes "Thank you very much, you saved my love!! Here you are, a prize according to the dangers you've been exposed to.";
+ set @PRIZE , 0;
+ set $@MO_REAPER,0;
+ close;
+ end;
+
+L_TooMany:
+ mes "[Alacrius]";
+ mes "You have no room for the reward.";
+ close;
+
+L_NOHERO:
+ mes "[Alacrius]";
+ mes "Sorry, but you didn't save my love... Try it again when you're ready...";
+ close;
+ end;
+OnInit:
+ initnpctimer;
+ stopnpctimer;
+}
diff --git a/npc/027-2_Caretakers_House/barman.txt b/npc/027-2/barman.txt
index 616b761a..616b761a 100644
--- a/npc/027-2_Caretakers_House/barman.txt
+++ b/npc/027-2/barman.txt
diff --git a/npc/027-2_Caretakers_House/caretaker.txt b/npc/027-2/caretaker.txt
index bf4d35fc..bf4d35fc 100644
--- a/npc/027-2_Caretakers_House/caretaker.txt
+++ b/npc/027-2/caretaker.txt
diff --git a/npc/027-2_Caretakers_House/cerhan.txt b/npc/027-2/cerhan.txt
index 33ee7895..33ee7895 100644
--- a/npc/027-2_Caretakers_House/cerhan.txt
+++ b/npc/027-2/cerhan.txt
diff --git a/npc/027-2_Caretakers_House/crying_child.txt b/npc/027-2/crying_child.txt
index 51476106..d7cbeac3 100644
--- a/npc/027-2_Caretakers_House/crying_child.txt
+++ b/npc/027-2/crying_child.txt
@@ -5,13 +5,13 @@
// Crying Child subquest
// Variable states:
-// 1 = You agree to help the child to find the bracelet outside
-// 2 = You found the bracelet (see _mobs.txt)
-// 3 = You gave the bracelet to the child
-// 4 = You decided to help the child again, by investigating what the bracelet means to them.
-// 5 = The father/husband told you what he thinks of the bracelet
-// 6 = The mother/wife told you what he thinks of the bracelet
-// 7 = The kid decided that the bracelet has no value to their parents, so you can have it.
+// 1 = You agree to help the child to find the ring outside
+// 2 = You found the ring (see 027-1.../monsters.txt)
+// 3 = You gave the ring to the child
+// 4 = You decided to help the child again, by investigating what the ring means to them.
+// 5 = The father/husband told you what he thinks of the ring
+// 6 = The mother/wife told you what he thinks of the ring
+// 7 = The kid decided that the ring has no value to their parents, so you can have it.
set @Graveyard_Inn_MASK, NIBBLE_2_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_2_SHIFT;
@@ -68,31 +68,31 @@ L_intro:
menu
"Here, here, don't cry... What did you do?",-;
mes "[Aldred]";
- mes "\"Err.. I was looking at my parents stuff and I found this funny thing! It looks like a big blue beetle... I thought it would be fun to play with it for a while, so I took it with me. But I... *sniffle*... I lost it...\"";
+ mes "\"Err.. I was looking at my parents stuff and I found this funny thing! It looked like a normal ring, but with a round empty space... I thought it would be fun to take it with me and maybe look for a stone or a gem to fill the empty space. But I... *sniffle*... I lost it...\"";
next;
mes "\"I don't know what happened. I was in this room and... I heard some very loud noises, people screaming, cracking sounds... and a smell, a terrible smell, like something rotten. And then I can't remember anything else!\"";
next;
- mes "\"I think it was something very bad, because, after all that, I woke up the way I am now and the blue beetle was lost. Oh, and my parents are acting like they are not themselves. I don't know what happened, maybe it was my fault... I shouldn't have played with that... *sniffle*... \"";
+ mes "\"I think it was something very bad, because, after all that, I woke up the way I am now and I couldn't find the ring in my pocket. Oh, and my parents are acting like they are not themselves. I don't know what happened, maybe it was my fault... I shouldn't have played with that ring... *sniffle*... \"";
next;
menu
"Don't worry, I will look around. Maybe I can find it for you...",-,
"Hey, you messed up, now you deal with this.",L_close;
mes "[Aldred]";
- mes "\"Thank you " +strcharinfo(0)+"! Find it for me, pleeeease! Ohh, and don't tell my parents I lost their beetle, okay?\"";
+ mes "\"Thank you " +strcharinfo(0)+"! Find it for me, pleeeease! Ohh, and don't tell my parents I lost their ring, okay?\"";
set @state, 1;
callsub S_Update_Mask;
close;
L_return:
mes "[Aldred]";
- mes "\"Please, help me " +@madamsir$+ ". If you find the beetle I think things can be a little better between me and my parents.\"";
+ mes "\"Please, help me " +@madamsir$+ ". If you find that ring I think things can be a little better between me and my parents.\"";
close;
L_return1:
menu
- "Hi Aldred. I found the blue beetle!",-;
+ "Hi Aldred. I found the ring!",-;
mes "[Aldred]";
mes "\"Great! You are the best! Where did you find it?\"";
next;
@@ -112,7 +112,7 @@ L_return1:
L_return2:
mes "[Aldred]";
- mes "\"Hi "+strcharinfo(0)+ "! I was thinking... you were sooo nice helping me find the beetle... I think I should give you a gift, but I'm just a dead kid, I have nothing to give you!\"";
+ mes "\"Hi "+strcharinfo(0)+ "! I was thinking... you were sooo nice helping me find the ring... I think I should give you a gift, but I'm just a dead kid, I have nothing to give you!\"";
next;
menu
"Don't worry, you don't need to give me anything...",-;
@@ -127,22 +127,22 @@ L_return2:
mes "[Aldred]";
mes "\"Ok, great... But please, don't tell them about it. I don't want my parents to know I was playing with their stuff. My father is always carrying a lantern... I guess he is still afraid of the dark. My mother is the innkeeper. She is very beautiful and she is wearing a red dress.\"";
next;
- mes "\"Don't forget to come back with the beetle after you talk to my parents.\"";
- message strcharinfo(0), "Aldred hands you the strange item and you keep it in a small pocket of your backpack";
+ mes "\"Don't forget to come back with the ring after you talk to my parents.\"";
+ message strcharinfo(0), "Aldred hands you the ring and you keep it in a small pocket of your backpack";
close;
L_return3:
mes "[Aldred]";
- mes "\"I hope this thing doesn't mean a lot to my parents. This way you can keep it as a gift and I won't feel guilty about playing with it.\"";
+ mes "\"I hope this ring doesn't mean a lot to my parents. This way you can keep it as a gift and I won't feel guilty about taking it.\"";
close;
L_return4:
menu
"Hi, I talked to your parents.",-;
mes "[Aldred]";
- mes "\"Really? What did my father say about that thing?\"";
+ mes "\"Really? What did my father say about it?\"";
menu
- "He said it is just a cheap bracelet. And it does not belong to him.",-;
+ "He said it is just a cheap ring. And it does not belong to him.",-;
mes "[Aldred]";
mes "\"And what did my mother say?\"";
menu
@@ -151,13 +151,13 @@ L_return4:
mes "\"Really? A gift? And why she doesn't want it?\"";
next;
menu
- "She said it makes her sad",-;
- mes "\"Ohh... really? I don't like when my mother gets sad... If this thing is making her feel bad, I should keep it away from her. \"";
+ "She said it makes her sad.",-;
+ mes "\"Ohh... really? I don't like when my mother gets sad... If this ring is making her feel bad, I should keep it away from her. \"";
next;
mes "\"Well, I guess you can keep it, but don't show it to my mother again, she is already very sad. But now I am really curious, who else would give a gift to my mother? There are so many strange things happening lately...\"";
getinventorylist;
if (@inventorylist_count == 100) goto L_full;
- getitem "ScarabArmlet", 1;
+ getitem "RingSimple", 1;
set @state, 7;
callsub S_Update_Mask;
mes "\"I will tell my parents how great and helpful you are. Maybe they can even let you stay here at the inn for free!\"";
@@ -170,7 +170,7 @@ L_return5:
L_full:
mes "[Aldred]";
- mes "\"I dont think you can carry this bracelet... Your backpack is full! Throw something away and come back to get the bracelet.\"";
+ mes "\"I dont think you can carry this ring... Your backpack is full! Throw something away and come back to get it.\"";
close;
diff --git a/npc/027-2_Caretakers_House/diary.txt b/npc/027-2/diary.txt
index 15eaa85e..15eaa85e 100644
--- a/npc/027-2_Caretakers_House/diary.txt
+++ b/npc/027-2/diary.txt
diff --git a/npc/027-2_Caretakers_House/door.txt b/npc/027-2/door.txt
index 630e0ee2..630e0ee2 100644
--- a/npc/027-2_Caretakers_House/door.txt
+++ b/npc/027-2/door.txt
diff --git a/npc/027-2_Caretakers_House/evil_guard.txt b/npc/027-2/evil_guard.txt
index 0ee91cfa..0ee91cfa 100644
--- a/npc/027-2_Caretakers_House/evil_guard.txt
+++ b/npc/027-2/evil_guard.txt
diff --git a/npc/027-2_Caretakers_House/golbenez.txt b/npc/027-2/golbenez.txt
index 44724d37..651ccac1 100644
--- a/npc/027-2_Caretakers_House/golbenez.txt
+++ b/npc/027-2/golbenez.txt
@@ -116,14 +116,14 @@ L_Detective:
mes "[Golbenez]";
mes "\"You should have seen your face. Really, mortals can be so funny.\"";
next;
- mes "\"Ok, I'll show you the birdbrained womans memories if you bring me " + @ROTTENRAGS_AMOUNT + " [Rotten Rags]. And an [Orange Cake].\"";
+ mes "\"Ok, I'll show you the birdbrained womans memories if you bring me " + @ROTTENRAGS_AMOUNT + " Rotten Rags. And an Orange Cake.\"";
set @state, 2;
callsub S_Update_Mask;
close;
L_Reid:
mes "[Golbenez]";
- mes "\"So, do you have the " + @ROTTENRAGS_AMOUNT + " [Rotten Rags] I want?\"";
+ mes "\"So, do you have the " + @ROTTENRAGS_AMOUNT + " Rotten Rags I want?\"";
if (countitem("RottenRags") < @ROTTENRAGS_AMOUNT)
menu
"What do you need them for?",L_Why_Stuff,
@@ -156,12 +156,12 @@ L_Reid:
mes "[Golbenez]";
mes "\"I'll explain the deal to you. Once you have paid for a memory, you can come and see it again as often as you like. And I collect whatever memory I want to. Mortals can be very amusing.\"";
next;
- mes "\"I have more memories you might want to see. Bring me "+ @UNDEADEAR_AMOUNT + " [Undead Ear]s. And a [Chocolate Cake].\"";
+ mes "\"I have more memories you might want to see. Bring me "+ @UNDEADEAR_AMOUNT + " Undead Ears. And a Chocolate Cake.\"";
close;
L_Hamond:
mes "[Golbenez]";
- mes "\"Ah, mortal. Do you have the " + @UNDEADEAR_AMOUNT + " [Undead Ear]s I want?\"";
+ mes "\"Ah, mortal. Do you have the " + @UNDEADEAR_AMOUNT + " Undead Ears I want?\"";
if (countitem("UndeadEar") < @UNDEADEAR_AMOUNT)
menu
"I want to see Reids memory again.",L_R_Again,
@@ -190,12 +190,12 @@ L_Hamond:
next;
mes "\"And how predictable they are. I can see in your eyes that you want to know how this drama went on.\"";
next;
- mes "\"Bring me " + @UNDEADEYE_AMOUNT + " [Undead Eye]s and an [Apple Cake].\"";
+ mes "\"Bring me " + @UNDEADEYE_AMOUNT + " Undead Eyes and an Apple Cake.\"";
close;
L_Savaric:
mes "[Golbenez]";
- mes "\"I hope you are bringing me the " + @UNDEADEYE_AMOUNT + " [Undead Eye]s I want.\"";
+ mes "\"I hope you are bringing me the " + @UNDEADEYE_AMOUNT + " Undead Eyes I want.\"";
if (countitem("UndeadEye") < @UNDEADEYE_AMOUNT)
menu
"I want to see Reids memory again.",L_R_Again,
diff --git a/npc/027-2_Caretakers_House/gy_inn_shops.txt b/npc/027-2/gy_inn_shops.txt
index a90d4301..a90d4301 100755..100644
--- a/npc/027-2_Caretakers_House/gy_inn_shops.txt
+++ b/npc/027-2/gy_inn_shops.txt
diff --git a/npc/027-2_Caretakers_House/headless_man.txt b/npc/027-2/headless_man.txt
index b777e07d..5e7454ca 100644
--- a/npc/027-2_Caretakers_House/headless_man.txt
+++ b/npc/027-2/headless_man.txt
@@ -68,18 +68,18 @@ L_Quest_start:
mes "[Thurstan]";
mes "\"Great! I will need the following things.\"";
- mes "\"" + @Wisp_Powder + " [Wisp Powder],\"";
- mes "\"" + @Polt_Powder + " [Poltergeist Powder],\"";
- mes "\"" + @Spec_Powder + " [Spectre Powder],\"";
- mes "\"" + @Iron_Pot + " [Iron Potion],\"";
- mes "\"" + @Conc_Pot + " [Concentration Potion],\"";
- mes "\"" + @Red_Dye + " vials of [Red Dye],\"";
- mes "\"" + @Yellow_Dye + " vials of [Yellow Dye],\"";
+ mes "\"" + @Wisp_Powder + " Wisp Powder,\"";
+ mes "\"" + @Polt_Powder + " Poltergeist Powder,\"";
+ mes "\"" + @Spec_Powder + " Spectre Powder,\"";
+ mes "\"" + @Iron_Pot + " Iron Potion,\"";
+ mes "\"" + @Conc_Pot + " Concentration Potion,\"";
+ mes "\"" + @Red_Dye + " vials of Red Dye,\"";
+ mes "\"" + @Yellow_Dye + " vials of Yellow Dye,\"";
mes "\"and...\"";
- mes "\"" + @LB_Dye + " vials of [Light Blue Dye],\"";
+ mes "\"" + @LB_Dye + " vials of Light Blue Dye,\"";
next;
mes "[Thurstan]";
- mes "\"My friend also said that I should use a metal bowl instead of a wooden one. I don't have one and I think a cauldron from the kitchen would be too big. Perhaps we could use an [Infantry Helmet] to serve that task.\"";
+ mes "\"My friend also said that I should use a metal bowl instead of a wooden one. I don't have one and I think a cauldron from the kitchen would be too big. Perhaps we could use an Infantry Helmet to serve that task.\"";
next;
mes "[Thurstan]";
mes "\"I know it probably doesn't seem like that much to you, but it is a really big deal for me. I will try to find something to compensate you for your efforts.\"";
@@ -159,15 +159,15 @@ L_Quest_notenough:
L_Quest_items:
mes "[Thurstan]";
- mes "\"" + @Wisp_Powder + " [Wisp Powder],\"";
- mes "\"" + @Polt_Powder + " [Poltergeist Powder],\"";
- mes "\"" + @Spec_Powder + " [Spectre Powder],\"";
- mes "\"" + @Iron_Pot + " [Iron Potion],\"";
- mes "\"" + @Conc_Pot + " [Concentration Potion],\"";
- mes "\"" + @Red_Dye + " vials of [Red Dye],\"";
- mes "\"" + @Yellow_Dye + " vials of [Yellow Dye],\"";
- mes "\"" + @LB_Dye + " vials of [Light Blue Dye],\"";
- mes "\"We'll also need 1 [Infantry Helmet] to use as a bowl for mixing everything together.\"";
+ mes "\"" + @Wisp_Powder + " Wisp Powder,\"";
+ mes "\"" + @Polt_Powder + " Poltergeist Powder,\"";
+ mes "\"" + @Spec_Powder + " Spectre Powder,\"";
+ mes "\"" + @Iron_Pot + " Iron Potion,\"";
+ mes "\"" + @Conc_Pot + " Concentration Potion,\"";
+ mes "\"" + @Red_Dye + " vials of Red Dye,\"";
+ mes "\"" + @Yellow_Dye + " vials of Yellow Dye,\"";
+ mes "\"" + @LB_Dye + " vials of Light Blue Dye,\"";
+ mes "\"We'll also need 1 Infantry Helmet to use as a bowl for mixing everything together.\"";
close;
L_Quest_finished:
diff --git a/npc/027-2_Caretakers_House/husband.txt b/npc/027-2/husband.txt
index 3c05a985..fef2bafd 100644
--- a/npc/027-2_Caretakers_House/husband.txt
+++ b/npc/027-2/husband.txt
@@ -1,9 +1,9 @@
// author: Jenalya
// love triangle quest, involved npcs: Reid's Ghost, Hamond, Savaric, Aldred, Golbenez
// state 0: if baselevel >= 85, he asks for something to cool the drinks (ice cubes)
-// state 1: can be asked about the bracelet. needs @ICE_CUBE_AMOUNT ice cubes, then asks for bones and skulls.
+// state 1: can be asked about the ring. needs @ICE_CUBE_AMOUNT ice cubes, then asks for bones and skulls.
// state 2: wants @BONE_AMOUNT and @SKULL_AMOUNT bones and skulls
-// state 3: can be asked about the bracelet. needs @woman > 5 to be asked about savaric, tells, if crying child quest is completed
+// state 3: can be asked about the ring. needs @woman > 5 to be asked about savaric, tells, if crying child quest is completed
// state 4: if @golbanez < 5, can be told about the memories, then asks the player to bring @RUBY_AMOUNT rubies to reid
// state 5: waiting
// state 6: is set in reid, gives as reward a special bowler hat
@@ -84,12 +84,12 @@ L_Ice_Cube:
if ((@kidstate == 4) && countitem("IceCube") > 0)
menu
"Maybe this never melting Ice Cube?", L_Check_Ice,
- "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I'm still searching.", L_Close;
if (@kidstate == 4)
menu
- "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I'm still searching.", L_Close;
if (countitem("IceCube") > 0)
@@ -158,12 +158,12 @@ L_Brought_Bones:
if ((@kidstate == 4) && (@woman > 5))
menu
"Would you tell me about this mage named Savaric?", L_Savaric,
- "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"You're welcome.", L_Close;
if (@kidstate == 4)
menu
- "I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"You're welcome.", L_Close;
if (@woman > 5)
@@ -218,13 +218,13 @@ L_Woman:
mes "\"And, to be honest, I'd only be able to talk about such a complicated matter if I am sure I am sharing my feelings with a good, wise and understanding person. No offense, it is just that I barely know you...\"";
close;
-L_Bracelet:
+L_Ring:
mes "[Hamond]";
- mes "\"Well.. this is just a cheap bracelet. It is very popular with the young kids these days, especially the magic students. They call it 'Scarab Armlet'. Fancy name, huh? But to me it is just a cheap bracelet.\"";
+ mes "\"Well.. this is just a cheap ring. It is very popular with the young kids, especially the magic students.\"";
next;
- mes "\"They also say it increases 'magic attack'. But, in fact, I think these kids are delusional. Magic, pah.\"";
+ mes "\"They say the ring increases 'magic attack' if you add a sapphire gem to it... But, in fact, I think these kids are delusional. Magic, pah.\"";
next;
- mes "\"Anyway, you can easily find one of these in a lot of small shops in this town. I am pretty sure that whoever lost it won't bother coming all the way back to get it.\"";
+ mes "\"Anyway, I remember you could easily find one of these in a lot of small shops in town. I am pretty sure that whoever lost it won't bother coming all the way back to get it.\"";
set @kidstate, 5;
callsub S_Update_Mask_Kid;
close;
@@ -260,14 +260,14 @@ L_News:
mes "[Hamond]";
mes "\"I- I need to apologize.\"";
next;
- mes "\"" + strcharinfo(0) + "! Can you help me once more? Please get " + @RUBY_AMOUNT + " [Ruby]s and bring them to her as a symbol of my love and my remorse.\"";
+ mes "\"" + strcharinfo(0) + "! Can you help me once more? Please get " + @RUBY_AMOUNT + " Rubies and bring them to her as a symbol of my love and my remorse.\"";
set @state, 5;
callsub S_Update_Mask;
close;
L_Waiting:
mes "[Hamond]";
- mes "\"Did you bring Reid the " + @RUBY_AMOUNT + " [Ruby]s?\"";
+ mes "\"Did you bring Reid the " + @RUBY_AMOUNT + " Rubies?\"";
close;
L_Apologize:
@@ -295,9 +295,9 @@ L_Thanks:
L_Not_Enough_B:
if (countitem("Bone") < @BONE_AMOUNT)
- mes "\"I need more [Bone]s than you have with you right now.\"";
+ mes "\"I need more Bones than you have with you right now.\"";
if (countitem("Skull") < @SKULL_AMOUNT)
- mes "\"Maybe you should come back with more [Skull]s than you have now. I don't think it is enough.\"";
+ mes "\"Maybe you should come back with more Skulls than you have now. I don't think it is enough.\"";
close;
L_Not_Enough_Cubes:
diff --git a/npc/027-2_Caretakers_House/innkeeper.txt b/npc/027-2/innkeeper.txt
index 9a8072cc..a8cd3778 100644
--- a/npc/027-2_Caretakers_House/innkeeper.txt
+++ b/npc/027-2/innkeeper.txt
@@ -2,9 +2,9 @@
// love triangle quest, involved npcs: Reid's Ghost, Hamond, Savaric, Aldred, Golbenez
// state 0: first talk
// state 1: if baselevel >= 85 player can ask about the inn and dead
-// state 2: reid knows now she's dead, can be asked about the bracelet
-// state 3: can be asked about bracelet, player offered help to find out what happened, she wants something to represent her sadness (frozen yeti tears)
-// state 4: can be asked about bracelet, can be asked about her life
+// state 2: reid knows now she's dead, can be asked about the ring
+// state 3: can be asked about ring, player offered help to find out what happened, she wants something to represent her sadness (frozen yeti tears)
+// state 4: can be asked about ring, can be asked about her life
// state 5: if crying child quest is completed she tells about savaric, and her rooms on the first floor can be entered now to read her diary
// state 6: tells the player to read her diary
// state 7: set in diary, if player has seen all memories (@golbanez < 5), can tell her about it
@@ -115,7 +115,7 @@ L_Offer_Help2:
if (@kidstate == 5)
menu
"Shall I help you to find out what happened to you?", L_Offer_Help1,
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I don't want to bother you.", L_Close;
L_Skip1:
menu
@@ -139,12 +139,12 @@ L_Bring_Tears:
if ((@kidstate == 5) && countitem("FrozenYetiTear") > 0)
menu
"I found this frozen tear to represent your sadness.", L_Check_Tears,
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I'm still searching.", L_Close;
if (@kidstate == 5)
menu
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I'm still searching.", L_Close;
if (countitem("FrozenYetiTear") > 0)
@@ -176,7 +176,7 @@ L_Ask_Life:
if (@kidstate == 5)
menu
"Please tell me about your life. Maybe this will give us a clue about what happened.",L_Skip2,
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet,
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I need to think about that.", L_Close;
L_Skip2:
menu
@@ -222,12 +222,12 @@ L_Check_Kid:
if (@kidstate == 5)
menu
- "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Bracelet;
+ "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring;
if ((Sex == 1) && (@kidstate < 7)) goto L_Man;
if ((Sex == 0) && (@kidstate < 7)) goto L_Woman;
- mes "\"What I'm going to tell you is very personal, but your acts have shown me that you're a person I can trust. You kindly asked me about that bracelet you have found... and also, even my son, who is always so reserved with strangers, came to me and spent a long time telling me a lot of nice things about you. So I will tell you about my sad love.\"";
+ mes "\"What I'm going to tell you is very personal, but your acts have shown me that you're a person I can trust. You kindly asked me about that ring you have found... and also, even my son, who is always so reserved with strangers, came to me and spent a long time telling me a lot of nice things about you. So I will tell you about my sad love.\"";
next;
L_Lovestory:
@@ -393,13 +393,13 @@ L_Woman:
mes "\"But I'm not sure if I want to tell you. I know you helped me already and showed me you are a sensitive woman, but I barely know you. I am sorry, but I have to think a little bit more. Maybe later, when I know you better, I can tell you more about it. \"";
close;
-L_Bracelet:
+L_Ring:
mes "[Reid's Ghost]";
mes "\"Oh, this - I - it's mine. It was a present from a very precious person.\"";
next;
- mes "She reaches out to take the bracelet, but her fingers go just through it. She looks sad.";
+ mes "She reaches out to take the ring, but it just go through her fingers. She looks sad.";
next;
- mes "\"Ah, I forgot again. It pains me not being able to hold it. Please, take it with you, I don't want it anymore. It hurts too much.\"";
+ mes "\"Ah, I forgot again. It pains me not being able to wear it. Please, take it with you, I don't want it anymore. It hurts too much.\"";
set @kidstate, 6;
callsub S_Update_Mask_Kid;
close;
diff --git a/npc/027-2_Caretakers_House/lover.txt b/npc/027-2/lover.txt
index e194dce5..70fe1dc8 100644
--- a/npc/027-2_Caretakers_House/lover.txt
+++ b/npc/027-2/lover.txt
@@ -28,6 +28,8 @@
set @CRYSTAL_AMOUNT, 500;
set @CRYSTAL_EXP, 200000;
+ set @CRYSTAL_EXTRA_EXP, 100;
+ set @CRYSTAL_MAX, 2000;
set @DIAMOND_AMOUNT, 20; // caution, this value needs to be the same as in the innkeepers script!
if (@state >= 7) goto L_Have_Soul;
@@ -55,14 +57,16 @@
mes "[Hanged Man]";
mes "\"Oh, someone is holding you back with magic! I sense a really dark and mighty power. What has happened!?\"";
next;
- mes "\"Can I ask you for a favor? Can you bring me lots of [Dark Crystal]s? You might need to ask a dark mage for it. I want to try to break the barrier.\"";
+ mes "\"Can I ask you for a favor? Can you bring me lots of Dark Crystals? You might need to ask a dark mage for it. I want to try to break the barrier.\"";
+ next;
+ mes "\"I'll need... well, at least " + @CRYSTAL_AMOUNT + ". But if you have more, I can use extras!\"";
set @state, 1;
callsub S_Update_Mask;
close;
L_Crystals:
mes "[Hanged Man]";
- mes "\"Ah, you're back! Did you get the [Dark Crystal]s?\"";
+ mes "\"Ah, you're back! Did you get the Dark Crystals?\"";
if (countitem("DarkCrystal") == 0)
menu
@@ -71,12 +75,27 @@ L_Crystals:
if (countitem("DarkCrystal") < @CRYSTAL_AMOUNT)
goto L_Not_Enough_Crystals;
- delitem "DarkCrystal", countitem("DarkCrystal");
+ delitem "DarkCrystal", @CRYSTAL_AMOUNT;
getexp @CRYSTAL_EXP, 0;
next;
mes "\"Oh, I can feel them! Please lay them down on the floor.\"";
next;
- mes "You lay your dark crystals down on the floor and step back, nervously expecting the coming.";
+ mes "You lay "+ @CRYSTAL_AMOUNT + " dark crystals down on the floor and step back, nervously expecting the coming.";
+ next;
+ if (countitem("DarkCrystal") == 0) goto L_Skip;
+ mes "[Hanged Man]";
+ mes "\"You have more of them, haven't you? It will work better if you give them to me too.\"";
+ menu
+ "Ok, here you go.",-,
+ "I prefer to keep them.",L_Skip;
+ set @crystal, countitem("DarkCrystal");
+ if (@crystal > @CRYSTAL_MAX)
+ set @crystal, @CRYSTAL_MAX;
+ delitem "DarkCrystal", @crystal;
+ getexp @crystal*@CRYSTAL_EXTRA_EXP, 0;
+L_Skip:
+ mes "[Hanged Man]";
+ mes "\"Well, let's start now.\"";
next;
mes "The hanged man seems very concentrated now, which looks absurd with him hanging there.";
next;
@@ -186,14 +205,14 @@ L_Golb:
mes "[Savaric]";
mes "\"" + strcharinfo(0) + ", please, can you go to Reid and tell her about what I've done? And then ask her if she will ever be able to forgive me?\"";
next;
- mes "\"But wait. It is not enough just to ask for forgiveness. Please, can you bring her " + @DIAMOND_AMOUNT + " [Diamond]s? They symbolize my pure feelings for her.\"";
+ mes "\"But wait. It is not enough just to ask for forgiveness. Please, can you bring her " + @DIAMOND_AMOUNT + " Diamonds? They symbolize my pure feelings for her.\"";
set @state, 4;
callsub S_Update_Mask;
close;
L_Waiting:
mes "[Savaric]";
- mes "\"Have you already brought the [Diamond]s to Reid?\"";
+ mes "\"Have you already brought the Diamonds to Reid?\"";
close;
L_Apologize:
diff --git a/npc/027-2_Caretakers_House/testnpcs.txt b/npc/027-2/testnpcs.txt
index 57dc1f7b..57dc1f7b 100755..100644
--- a/npc/027-2_Caretakers_House/testnpcs.txt
+++ b/npc/027-2/testnpcs.txt
diff --git a/npc/027-2_Caretakers_House/werewolf.txt b/npc/027-2/werewolf.txt
index 20794433..87d93173 100644
--- a/npc/027-2_Caretakers_House/werewolf.txt
+++ b/npc/027-2/werewolf.txt
@@ -73,7 +73,7 @@ L_Happy:
mes "[Wolfgang]";
mes "\"Delicious. Thanks again.\"";
next;
- mes "\"By the way... would you be interested in a little round of black jack?\"";
+ mes "\"By the way... would you be interested in a little round of blackjack?\"";
mes "He pulls a deck of cards out of his pocket.";
next;
mes "[Wolfgang]";
diff --git a/npc/027-2_Caretakers_House/_import.txt b/npc/027-2_Caretakers_House/_import.txt
deleted file mode 100644
index 56365f9d..00000000
--- a/npc/027-2_Caretakers_House/_import.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 027-2.gat
-npc: npc/027-2_Caretakers_House/_mobs.txt
-npc: npc/027-2_Caretakers_House/_warps.txt
-npc: npc/027-2_Caretakers_House/alacrius.txt
-npc: npc/027-2_Caretakers_House/alacrius2.txt
-npc: npc/027-2_Caretakers_House/barman.txt
-npc: npc/027-2_Caretakers_House/caretaker.txt
-npc: npc/027-2_Caretakers_House/cerhan.txt
-npc: npc/027-2_Caretakers_House/crying_child.txt
-npc: npc/027-2_Caretakers_House/diary.txt
-npc: npc/027-2_Caretakers_House/door.txt
-npc: npc/027-2_Caretakers_House/evil_guard.txt
-npc: npc/027-2_Caretakers_House/golbenez.txt
-npc: npc/027-2_Caretakers_House/gy_inn_shops.txt
-npc: npc/027-2_Caretakers_House/headless_man.txt
-npc: npc/027-2_Caretakers_House/husband.txt
-npc: npc/027-2_Caretakers_House/innkeeper.txt
-npc: npc/027-2_Caretakers_House/lover.txt
-npc: npc/027-2_Caretakers_House/testnpcs.txt
-npc: npc/027-2_Caretakers_House/werewolf.txt
diff --git a/npc/027-3/_import.txt b/npc/027-3/_import.txt
new file mode 100644
index 00000000..96b4da1a
--- /dev/null
+++ b/npc/027-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 027-3: Crypt
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 027-3.gat
+npc: npc/027-3/_mobs.txt
+npc: npc/027-3/_warps.txt
+npc: npc/027-3/caskets.txt
+npc: npc/027-3/entrance.txt
+npc: npc/027-3/mapflags.txt
diff --git a/npc/027-3_Crypt/_mobs.txt b/npc/027-3/_mobs.txt
index 74c61824..11df5c67 100755..100644
--- a/npc/027-3_Crypt/_mobs.txt
+++ b/npc/027-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-3 Crypt mobs
+// Crypt mobs
diff --git a/npc/027-3_Crypt/_warps.txt b/npc/027-3/_warps.txt
index 28e8a16e..50380b5d 100755..100644
--- a/npc/027-3_Crypt/_warps.txt
+++ b/npc/027-3/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-3 Crypt warps
+// Crypt warps
027-3.gat,127,44 warp toCryptLevel2 1,-1,027-4.gat,37,21
diff --git a/npc/027-3_Crypt/caskets.txt b/npc/027-3/caskets.txt
index c7ae44bd..2a3bf043 100755..100644
--- a/npc/027-3_Crypt/caskets.txt
+++ b/npc/027-3/caskets.txt
@@ -1,7 +1,7 @@
-// Casket monster traps and key puzzle.
-027-3.gat,40,35,0 script #casket1 127,1,1{
- heal 3,0;
- specialeffect 301;
- specialeffect 302;
- end;
+// Casket monster traps and key puzzle.
+027-3.gat,40,35,0 script #casket1 127,1,1{
+ heal 3,0;
+ specialeffect 301;
+ specialeffect 302;
+ end;
} \ No newline at end of file
diff --git a/npc/027-3_Crypt/entrance.txt b/npc/027-3/entrance.txt
index 0ba3def5..62bd93d7 100755..100644
--- a/npc/027-3_Crypt/entrance.txt
+++ b/npc/027-3/entrance.txt
@@ -1,41 +1,41 @@
-// Effects for opening and closing the gate. Also set it so no new player can't be warped in once the gate is opened.
-
-027-3.gat,40,57,0 script #gatecontrol 127, 2, 1{
- mes "Once you pass this point I cannot warp anyone else to help. "
- + "Are you sure you are ready to go?";
- menu
- "Let's go",L_BEGIN,
- "No thank you",-;
- warp "027-3.gat",40,60;
- close;
-
-L_BEGIN:
- disablenpc "#closedgate";
- initnpctimer;
- specialeffect 300;
- // add stop alacrius warp flag to temp globals
- close;
-
-OnTimer2000:
- enablenpc "#opengate";
- disablenpc "#gatecontrol";
- end;
-}
-
-027-3.gat,40,59,0 script #closedgate 322,{
- end;
-}
-027-3.gat,40,59,0 script #opengate 323,{
- end;
-}
-
-
-// Effects for the exit.
-
-027-3.gat,40,78,0 script #cryptexit2 127, 3, 3{
- mes "Unfortunately, once I bring you to this time pocket"
- + "you cannot leave through its normal exit."
- + "The only way to get out is to defeat the reaper"
- + "or die...";
- close;
-} \ No newline at end of file
+// Effects for opening and closing the gate. Also set it so no new player can't be warped in once the gate is opened.
+
+027-3.gat,40,57,0 script #gatecontrol 127,2,1{
+ mes "Once you pass this point I cannot warp anyone else to help. "
+ + "Are you sure you are ready to go?";
+ menu
+ "Let's go",L_BEGIN,
+ "No thank you",-;
+ warp "027-3.gat",40,60;
+ close;
+
+L_BEGIN:
+ disablenpc "#closedgate";
+ initnpctimer;
+ specialeffect 300;
+ // add stop alacrius warp flag to temp globals
+ close;
+
+OnTimer2000:
+ enablenpc "#opengate";
+ disablenpc "#gatecontrol";
+ end;
+}
+
+027-3.gat,40,59,0 script #closedgate 322,{
+ end;
+}
+027-3.gat,40,59,0 script #opengate 323,{
+ end;
+}
+
+
+// Effects for the exit.
+
+027-3.gat,40,78,0 script #cryptexit2 127,3,3{
+ mes "Unfortunately, once I bring you to this time pocket"
+ + "you cannot leave through its normal exit."
+ + "The only way to get out is to defeat the reaper"
+ + "or die...";
+ close;
+}
diff --git a/npc/027-3_Crypt/mapflags.txt b/npc/027-3/mapflags.txt
index 5f9c091d..5f9c091d 100755..100644
--- a/npc/027-3_Crypt/mapflags.txt
+++ b/npc/027-3/mapflags.txt
diff --git a/npc/027-3_Crypt/_import.txt b/npc/027-3_Crypt/_import.txt
deleted file mode 100755
index 97563a74..00000000
--- a/npc/027-3_Crypt/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 027-3.gat
-npc: npc/027-3_Crypt/_mobs.txt
-npc: npc/027-3_Crypt/_warps.txt
-npc: npc/027-3_Crypt/caskets.txt
-npc: npc/027-3_Crypt/entrance.txt
-npc: npc/027-3_Crypt/mapflags.txt
diff --git a/npc/027-4/_import.txt b/npc/027-4/_import.txt
new file mode 100644
index 00000000..d5638404
--- /dev/null
+++ b/npc/027-4/_import.txt
@@ -0,0 +1,7 @@
+// Map 027-4: Inner Chamber
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 027-4.gat
+npc: npc/027-4/_mobs.txt
+npc: npc/027-4/_warps.txt
+npc: npc/027-4/mapflags.txt
+npc: npc/027-4/reaper_script.txt
diff --git a/npc/027-4_Inner_Chamber/_mobs.txt b/npc/027-4/_mobs.txt
index e74f08a9..26dbe342 100755..100644
--- a/npc/027-4_Inner_Chamber/_mobs.txt
+++ b/npc/027-4/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-4 Inner Chamber mobs
+// Inner Chamber mobs
diff --git a/npc/027-4_Inner_Chamber/_warps.txt b/npc/027-4/_warps.txt
index aa61724c..4611509a 100755..100644
--- a/npc/027-4_Inner_Chamber/_warps.txt
+++ b/npc/027-4/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 027-4 Inner Chamber warps
+// Inner Chamber warps
027-4.gat,37,19 warp toCryptLevel1 1,-1,027-3.gat,127,42
diff --git a/npc/027-4_Inner_Chamber/mapflags.txt b/npc/027-4/mapflags.txt
index 1784cd64..1784cd64 100755..100644
--- a/npc/027-4_Inner_Chamber/mapflags.txt
+++ b/npc/027-4/mapflags.txt
diff --git a/npc/027-4_Inner_Chamber/reaper_script.txt b/npc/027-4/reaper_script.txt
index b09a2399..2f218f0d 100755..100644
--- a/npc/027-4_Inner_Chamber/reaper_script.txt
+++ b/npc/027-4/reaper_script.txt
@@ -1,15 +1,15 @@
-// The scripts associated with the reaper mob summoned by Alacrius in the 027-2
-
-027-4.gat,0,0,0 script Reaper -1,{
-OnDead:
- mes "you won!";
- mapwarp "027-4.gat", "027-2.gat",104,41;
- close;
-
-OnPCDieEvent:
- // summon a zombie and give a message and sfx
- end;
-OnAvenged:
- // tell players your fallen comrad has been avenged
- end;
+// The scripts associated with the reaper mob summoned by Alacrius in the 027-2
+
+027-4.gat,0,0,0 script Reaper -1,{
+OnDead:
+ mes "you won!";
+ mapwarp "027-4.gat", "027-2.gat",104,41;
+ close;
+
+OnPCDieEvent:
+ // summon a zombie and give a message and sfx
+ end;
+OnAvenged:
+ // tell players your fallen comrad has been avenged
+ end;
} \ No newline at end of file
diff --git a/npc/027-4_Inner_Chamber/_import.txt b/npc/027-4_Inner_Chamber/_import.txt
deleted file mode 100755
index a873f1ff..00000000
--- a/npc/027-4_Inner_Chamber/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 027-4.gat
-npc: npc/027-4_Inner_Chamber/_mobs.txt
-npc: npc/027-4_Inner_Chamber/_warps.txt
-npc: npc/027-4_Inner_Chamber/mapflags.txt
-npc: npc/027-4_Inner_Chamber/reaper_script.txt
diff --git a/npc/028-1/_import.txt b/npc/028-1/_import.txt
index 2bd71dba..1cfec48c 100644
--- a/npc/028-1/_import.txt
+++ b/npc/028-1/_import.txt
@@ -1,3 +1,4 @@
+// Map 028-1:
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 028-1.gat
npc: npc/028-1/Portal.txt
diff --git a/npc/028-1/_mobs.txt b/npc/028-1/_mobs.txt
index 09194112..a71093ad 100644
--- a/npc/028-1/_mobs.txt
+++ b/npc/028-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 028-1 mobs
+// mobs
028-1.gat,115,72,27,25 monster SpikyMushrooms 1019,18,20000,600,Mob028-1::On1019
028-1.gat,83,69,25,19 monster Bat 1017,18,100000,1200,Mob028-1::On1017
diff --git a/npc/028-1/_warps.txt b/npc/028-1/_warps.txt
index 87cfe5a6..1d7ccba9 100644
--- a/npc/028-1/_warps.txt
+++ b/npc/028-1/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 028-1 warps
+// warps
028-1.gat,114,122 warp To028-3 -1,-1,028-3.gat,33,78
diff --git a/npc/028-3/_import.txt b/npc/028-3/_import.txt
index beee1f4e..bb8dd79e 100644
--- a/npc/028-3/_import.txt
+++ b/npc/028-3/_import.txt
@@ -1,3 +1,4 @@
+// Map 028-3:
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 028-3.gat
npc: npc/028-3/_mobs.txt
diff --git a/npc/028-3/_mobs.txt b/npc/028-3/_mobs.txt
index 912ec985..a5dec284 100644
--- a/npc/028-3/_mobs.txt
+++ b/npc/028-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 028-3 mobs
+// mobs
028-3.gat,51,49,22,15 monster Silkworm 1035,10,0,3000,Mob028-3::On1035
028-3.gat,43,35,1,1 monster EvilMushroom 1013,3,40000,5000,Mob028-3::On1013
diff --git a/npc/028-3/_warps.txt b/npc/028-3/_warps.txt
index e4074a2a..62972083 100644
--- a/npc/028-3/_warps.txt
+++ b/npc/028-3/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 028-3 warps
+// warps
028-3.gat,33,78 warp To028-1 -1,-1,028-1.gat,114,122
diff --git a/npc/029-1/_import.txt b/npc/029-1/_import.txt
new file mode 100644
index 00000000..5c1410b0
--- /dev/null
+++ b/npc/029-1/_import.txt
@@ -0,0 +1,7 @@
+// Map 029-1: Candor
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 029-1.gat
+npc: npc/029-1/_mobs.txt
+npc: npc/029-1/_warps.txt
+npc: npc/029-1/barrier.txt
+npc: npc/029-1/dock.txt
diff --git a/npc/029-1_Candor/_mobs.txt b/npc/029-1/_mobs.txt
index 1b19f809..7fdf044c 100644
--- a/npc/029-1_Candor/_mobs.txt
+++ b/npc/029-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 029-1 Candor mobs
+// Candor mobs
029-1.gat,68,64,11,13 monster Evil Mushrooms 1013,4,20000,60000,Mob029-1::On1013
029-1.gat,31,32,12,13 monster Squirrel 1038,3,30000,60000,Mob029-1::On1038
diff --git a/npc/031-4_Cave/_warps.txt b/npc/029-1/_warps.txt
index 20946cc1..ffe9c2d6 100644
--- a/npc/031-4_Cave/_warps.txt
+++ b/npc/029-1/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-4 Cave warps
+// Candor warps
diff --git a/npc/029-1_Candor/barrier.txt b/npc/029-1/barrier.txt
index a92993ff..fe51dadc 100644
--- a/npc/029-1_Candor/barrier.txt
+++ b/npc/029-1/barrier.txt
@@ -1,8 +1,8 @@
-029-1.gat,53,36,0 script #CandorBarrier 127,1,1,{
- if ($@FIGHT_CAVE_STATUS == 1) goto L_Block;
- warp "029-3.gat", 46, 23;
- end;
-
- L_Block:
- message strcharinfo(0), "Some force seems to be blocking you from entering.";
-}
+029-1.gat,53,36,0 script #CandorBarrier 127,1,1,{
+ if ($@FIGHT_CAVE_STATUS == 1) goto L_Block;
+ warp "029-3.gat", 46, 23;
+ end;
+
+ L_Block:
+ message strcharinfo(0), "Some force seems to be blocking you from entering.";
+}
diff --git a/npc/029-1_Candor/dock.txt b/npc/029-1/dock.txt
index 76cc8a16..76cc8a16 100644
--- a/npc/029-1_Candor/dock.txt
+++ b/npc/029-1/dock.txt
diff --git a/npc/029-1_Candor/_import.txt b/npc/029-1_Candor/_import.txt
deleted file mode 100644
index d69775f4..00000000
--- a/npc/029-1_Candor/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 029-1.gat
-npc: npc/029-1_Candor/_mobs.txt
-npc: npc/029-1_Candor/_warps.txt
-npc: npc/029-1_Candor/barrier.txt
-npc: npc/029-1_Candor/dock.txt
diff --git a/npc/029-3/_import.txt b/npc/029-3/_import.txt
new file mode 100644
index 00000000..e8ca1dac
--- /dev/null
+++ b/npc/029-3/_import.txt
@@ -0,0 +1,8 @@
+// Map 029-3: Fight Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 029-3.gat
+npc: npc/029-3/_mobs.txt
+npc: npc/029-3/_warps.txt
+npc: npc/029-3/barrier.txt
+npc: npc/029-3/mapflags.txt
+npc: npc/029-3/parua.txt
diff --git a/npc/029-3_Fight_Cave/_mobs.txt b/npc/029-3/_mobs.txt
index 27a30031..4e3b4282 100644
--- a/npc/029-3_Fight_Cave/_mobs.txt
+++ b/npc/029-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 029-3 Fight Cave mobs
+// Fight Cave mobs
diff --git a/npc/029-1_Candor/_warps.txt b/npc/029-3/_warps.txt
index a928551f..42f13dee 100644
--- a/npc/029-1_Candor/_warps.txt
+++ b/npc/029-3/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 029-1 Candor warps
+// Fight Cave warps
diff --git a/npc/029-3_Fight_Cave/barrier.txt b/npc/029-3/barrier.txt
index ec8aeb3d..23b37ea3 100644
--- a/npc/029-3_Fight_Cave/barrier.txt
+++ b/npc/029-3/barrier.txt
@@ -1,8 +1,8 @@
-029-3.gat,45,20,0 script #FightCaveBarrier 127,1,1,{
- if ($@FIGHT_CAVE_STATUS == 1) goto L_Block;
- warp "029-1.gat", 54, 39;
- end;
-
- L_Block:
- message strcharinfo(0), "Some force seems to be blocking you from exiting.";
-}
+029-3.gat,45,20,0 script #FightCaveBarrier 127,1,1,{
+ if ($@FIGHT_CAVE_STATUS == 1) goto L_Block;
+ warp "029-1.gat", 54, 39;
+ end;
+
+ L_Block:
+ message strcharinfo(0), "Some force seems to be blocking you from exiting.";
+}
diff --git a/npc/029-3_Fight_Cave/mapflags.txt b/npc/029-3/mapflags.txt
index 845a0f01..845a0f01 100644
--- a/npc/029-3_Fight_Cave/mapflags.txt
+++ b/npc/029-3/mapflags.txt
diff --git a/npc/029-3_Fight_Cave/parua.txt b/npc/029-3/parua.txt
index c292f963..c292f963 100644
--- a/npc/029-3_Fight_Cave/parua.txt
+++ b/npc/029-3/parua.txt
diff --git a/npc/029-3_Fight_Cave/_import.txt b/npc/029-3_Fight_Cave/_import.txt
deleted file mode 100644
index ff5c622c..00000000
--- a/npc/029-3_Fight_Cave/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 029-3.gat
-npc: npc/029-3_Fight_Cave/_mobs.txt
-npc: npc/029-3_Fight_Cave/_warps.txt
-npc: npc/029-3_Fight_Cave/barrier.txt
-npc: npc/029-3_Fight_Cave/mapflags.txt
-npc: npc/029-3_Fight_Cave/parua.txt
diff --git a/npc/030-1_Snow_field/_import.txt b/npc/030-1/_import.txt
index 98b0f9e6..d8cabe5d 100644
--- a/npc/030-1_Snow_field/_import.txt
+++ b/npc/030-1/_import.txt
@@ -1,4 +1,5 @@
+// Map 030-1: Snow field
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 030-1.gat
-npc: npc/030-1_Snow_field/_mobs.txt
-npc: npc/030-1_Snow_field/_warps.txt
+npc: npc/030-1/_mobs.txt
+npc: npc/030-1/_warps.txt
diff --git a/npc/030-1_Snow_field/_mobs.txt b/npc/030-1/_mobs.txt
index 363761f6..830b17e4 100644
--- a/npc/030-1_Snow_field/_mobs.txt
+++ b/npc/030-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 030-1 Snow field mobs
+// Snow field mobs
030-1.gat,78,55,66,70 monster Santa Slime 1015,5,100000,30000,Mob030-1::On1015
030-1.gat,84,57,66,70 monster Squirrel 1038,10,100000,30000,Mob030-1::On1038
diff --git a/npc/030-1_Snow_field/_warps.txt b/npc/030-1/_warps.txt
index 82265e05..1a4e7582 100644
--- a/npc/030-1_Snow_field/_warps.txt
+++ b/npc/030-1/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 030-1 Snow field warps
+// Snow field warps
030-1.gat,61,28 warp toSnowfield 0,-1,019-1.gat,61,100
diff --git a/npc/031-1/_import.txt b/npc/031-1/_import.txt
new file mode 100644
index 00000000..f525795e
--- /dev/null
+++ b/npc/031-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 031-1: NivalisPort
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 031-1.gat
+npc: npc/031-1/_mobs.txt
+npc: npc/031-1/_warps.txt
+npc: npc/031-1/angelaOutside.txt
+npc: npc/031-1/frozenbeard.txt
+npc: npc/031-1/house.txt
diff --git a/npc/031-1_NivalisPort/_mobs.txt b/npc/031-1/_mobs.txt
index 2c9fe2ce..2d799801 100644
--- a/npc/031-1_NivalisPort/_mobs.txt
+++ b/npc/031-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-1 NivalisPort mobs
+// NivalisPort mobs
031-1.gat,75,72,86,110 monster Santa Slime 1015,5,100000,30000,Mob031-1::On1015
031-1.gat,89,74,86,110 monster Squirrel 1038,10,100000,30000,Mob031-1::On1038
diff --git a/npc/031-1_NivalisPort/_warps.txt b/npc/031-1/_warps.txt
index 3c5b8a77..9ca21459 100644
--- a/npc/031-1_NivalisPort/_warps.txt
+++ b/npc/031-1/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-1 NivalisPort warps
+// NivalisPort warps
031-1.gat,37,55 warp toNivalis -1,-1,020-1.gat,106,55
031-1.gat,76,24 warp toLabyrinth -1,-1,031-3.gat,212,298
diff --git a/npc/031-1_NivalisPort/angelaOutside.txt b/npc/031-1/angelaOutside.txt
index 3df9daa9..3df9daa9 100644
--- a/npc/031-1_NivalisPort/angelaOutside.txt
+++ b/npc/031-1/angelaOutside.txt
diff --git a/npc/031-1_NivalisPort/frozenbeard.txt b/npc/031-1/frozenbeard.txt
index 4f871554..4f871554 100644
--- a/npc/031-1_NivalisPort/frozenbeard.txt
+++ b/npc/031-1/frozenbeard.txt
diff --git a/npc/031-1_NivalisPort/house.txt b/npc/031-1/house.txt
index d9714ef5..d9714ef5 100644
--- a/npc/031-1_NivalisPort/house.txt
+++ b/npc/031-1/house.txt
diff --git a/npc/031-1_NivalisPort/_import.txt b/npc/031-1_NivalisPort/_import.txt
deleted file mode 100644
index 8eee4e26..00000000
--- a/npc/031-1_NivalisPort/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 031-1.gat
-npc: npc/031-1_NivalisPort/_mobs.txt
-npc: npc/031-1_NivalisPort/_warps.txt
-npc: npc/031-1_NivalisPort/angelaOutside.txt
-npc: npc/031-1_NivalisPort/frozenbeard.txt
-npc: npc/031-1_NivalisPort/house.txt
diff --git a/npc/031-2/_import.txt b/npc/031-2/_import.txt
new file mode 100644
index 00000000..39d9ffce
--- /dev/null
+++ b/npc/031-2/_import.txt
@@ -0,0 +1,7 @@
+// Map 031-2: Angela's House
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 031-2.gat
+npc: npc/031-2/_mobs.txt
+npc: npc/031-2/_warps.txt
+npc: npc/031-2/angelaHouse.txt
+npc: npc/031-2/cindyHouse.txt
diff --git a/npc/031-2_Angelas_House/_mobs.txt b/npc/031-2/_mobs.txt
index 939fb83f..196d0da7 100644
--- a/npc/031-2_Angelas_House/_mobs.txt
+++ b/npc/031-2/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-2 Angela's House mobs
+// Angela's House mobs
diff --git a/npc/031-2_Angelas_House/_warps.txt b/npc/031-2/_warps.txt
index 1313a7ef..e56544d2 100644
--- a/npc/031-2_Angelas_House/_warps.txt
+++ b/npc/031-2/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-2 Angela's House warps
+// Angela's House warps
031-2.gat,23,30 warp door -1,-1,031-1.gat,95,82
diff --git a/npc/031-2_Angelas_House/angelaHouse.txt b/npc/031-2/angelaHouse.txt
index 488f600a..488f600a 100644
--- a/npc/031-2_Angelas_House/angelaHouse.txt
+++ b/npc/031-2/angelaHouse.txt
diff --git a/npc/031-2_Angelas_House/cindyHouse.txt b/npc/031-2/cindyHouse.txt
index 97aa2bb9..97aa2bb9 100644
--- a/npc/031-2_Angelas_House/cindyHouse.txt
+++ b/npc/031-2/cindyHouse.txt
diff --git a/npc/031-2_Angelas_House/_import.txt b/npc/031-2_Angelas_House/_import.txt
deleted file mode 100644
index 0762ea7f..00000000
--- a/npc/031-2_Angelas_House/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 031-2.gat
-npc: npc/031-2_Angelas_House/_mobs.txt
-npc: npc/031-2_Angelas_House/_warps.txt
-npc: npc/031-2_Angelas_House/angelaHouse.txt
-npc: npc/031-2_Angelas_House/cindyHouse.txt
diff --git a/npc/031-3_Cave/_import.txt b/npc/031-3/_import.txt
index 098d7112..2cb30906 100644
--- a/npc/031-3_Cave/_import.txt
+++ b/npc/031-3/_import.txt
@@ -1,5 +1,6 @@
+// Map 031-3: Cave
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 031-3.gat
-npc: npc/031-3_Cave/_mobs.txt
-npc: npc/031-3_Cave/_warps.txt
-npc: npc/031-3_Cave/labyrinth.txt
+npc: npc/031-3/_mobs.txt
+npc: npc/031-3/_warps.txt
+npc: npc/031-3/labyrinth.txt
diff --git a/npc/031-3_Cave/_mobs.txt b/npc/031-3/_mobs.txt
index 0f13f117..106d0063 100644
--- a/npc/031-3_Cave/_mobs.txt
+++ b/npc/031-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-3 Cave mobs
+// Cave mobs
031-3.gat,39,276,42,16 monster Santa Slime 1015,5,100000,30000,Mob031-3::On1015
031-3.gat,230,279,25,26 monster IceGoblin 1058,5,100000,30000,Mob031-3::On1058
diff --git a/npc/031-3_Cave/_warps.txt b/npc/031-3/_warps.txt
index 05ca545d..520c7242 100644
--- a/npc/031-3_Cave/_warps.txt
+++ b/npc/031-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-3 Cave warps
+// Cave warps
031-3.gat,212,300 warp toOutside -1,-1,031-1.gat,76,26
031-3.gat,205,264 warp toCave -1,-1,031-3.gat,149,261
diff --git a/npc/031-3_Cave/labyrinth.txt b/npc/031-3/labyrinth.txt
index feef9c1d..feef9c1d 100755..100644
--- a/npc/031-3_Cave/labyrinth.txt
+++ b/npc/031-3/labyrinth.txt
diff --git a/npc/031-4/_import.txt b/npc/031-4/_import.txt
new file mode 100644
index 00000000..87eec449
--- /dev/null
+++ b/npc/031-4/_import.txt
@@ -0,0 +1,8 @@
+// Map 031-4: Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 031-4.gat
+npc: npc/031-4/_mobs.txt
+npc: npc/031-4/_warps.txt
+npc: npc/031-4/barrier.txt
+npc: npc/031-4/cindyCave.txt
+npc: npc/031-4/mapflags.txt
diff --git a/npc/031-4_Cave/_mobs.txt b/npc/031-4/_mobs.txt
index 838bd363..d1ce9b7c 100644
--- a/npc/031-4_Cave/_mobs.txt
+++ b/npc/031-4/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 031-4 Cave mobs
+// Cave mobs
diff --git a/npc/029-3_Fight_Cave/_warps.txt b/npc/031-4/_warps.txt
index 6d585fe9..d1984dbc 100644
--- a/npc/029-3_Fight_Cave/_warps.txt
+++ b/npc/031-4/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 029-3 Fight Cave warps
+// Cave warps
diff --git a/npc/031-4_Cave/barrier.txt b/npc/031-4/barrier.txt
index e8b4a5ac..e8b4a5ac 100644
--- a/npc/031-4_Cave/barrier.txt
+++ b/npc/031-4/barrier.txt
diff --git a/npc/031-4_Cave/cindyCave.txt b/npc/031-4/cindyCave.txt
index e6b8702d..223aa80b 100644
--- a/npc/031-4_Cave/cindyCave.txt
+++ b/npc/031-4/cindyCave.txt
@@ -94,7 +94,7 @@ L_Reward:
L_Wizard_Hat:
// get a wizard hat in one of the ten colors - no white
- setarray @wizardhats[0], 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209;
+ setarray @wizardhats, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209;
getitem @wizardhats[@reward], 1;
set @rescue_Cindy, 3;
callsub S_Update_Mask;
diff --git a/npc/031-4_Cave/mapflags.txt b/npc/031-4/mapflags.txt
index 9e4e8f6b..9e4e8f6b 100644
--- a/npc/031-4_Cave/mapflags.txt
+++ b/npc/031-4/mapflags.txt
diff --git a/npc/031-4_Cave/_import.txt b/npc/031-4_Cave/_import.txt
deleted file mode 100644
index f6c88481..00000000
--- a/npc/031-4_Cave/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 031-4.gat
-npc: npc/031-4_Cave/_mobs.txt
-npc: npc/031-4_Cave/_warps.txt
-npc: npc/031-4_Cave/barrier.txt
-npc: npc/031-4_Cave/cindyCave.txt
-npc: npc/031-4_Cave/mapflags.txt
diff --git a/npc/032-1_Outback/_import.txt b/npc/032-1/_import.txt
index ffbbd068..939f1d9c 100644
--- a/npc/032-1_Outback/_import.txt
+++ b/npc/032-1/_import.txt
@@ -1,5 +1,6 @@
+// Map 032-1: Outback
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 032-1.gat
-npc: npc/032-1_Outback/_mobs.txt
-npc: npc/032-1_Outback/_warps.txt
-npc: npc/032-1_Outback/miriam.txt
+npc: npc/032-1/_mobs.txt
+npc: npc/032-1/_warps.txt
+npc: npc/032-1/miriam.txt
diff --git a/npc/032-1_Outback/_mobs.txt b/npc/032-1/_mobs.txt
index 2abc3efd..54ab94bc 100644
--- a/npc/032-1_Outback/_mobs.txt
+++ b/npc/032-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 032-1 Outback mobs
+// Outback mobs
032-1.gat,47,64,27,15 monster BlackScorpion 1009,5,30000,100000,Mob032-1::On1009
032-1.gat,24,72,27,24 monster BlackScorpion 1009,5,30000,100000,Mob032-1::On1009
diff --git a/npc/032-1_Outback/_warps.txt b/npc/032-1/_warps.txt
index f35af59e..96d039cf 100644
--- a/npc/032-1_Outback/_warps.txt
+++ b/npc/032-1/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 032-1 Outback warps
+// Outback warps
032-1.gat,64,52 warp ToCave -1,-1,032-3.gat,56,59
diff --git a/npc/032-1_Outback/miriam.txt b/npc/032-1/miriam.txt
index 5714f807..b6dac559 100644
--- a/npc/032-1_Outback/miriam.txt
+++ b/npc/032-1/miriam.txt
@@ -60,7 +60,7 @@ L_intro:
next;
mes "\"But the problem is that I wasn't expecting to be here for so long, so I will need some food and something to drink.\"";
next;
- mes "\"So, if you really want to prove that you are sorry, bring me 5 [Concentration Potions] and 10 [Snake Tongues].\"";
+ mes "\"So, if you really want to prove that you are sorry, bring me 5 Concentration Potions and 10 Snake Tongues.\"";
next;
menu
"Ok, but those potions will not help with your mental concent...",-,
@@ -114,7 +114,7 @@ L_ask3:
next;
mes "\"And stop asking such silly questions in the future.\"";
next;
- mes "\"So, if you really want to help me now, bring me 5 [Concentration Potions] and 10 [Snake Tongues].\"";
+ mes "\"So, if you really want to help me now, bring me 5 Concentration Potions and 10 Snake Tongues.\"";
close;
L_getitems:
diff --git a/npc/032-3_Cave/_import.txt b/npc/032-3/_import.txt
index 80db5cd7..67304eae 100644
--- a/npc/032-3_Cave/_import.txt
+++ b/npc/032-3/_import.txt
@@ -1,4 +1,5 @@
+// Map 032-3: Cave
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 032-3.gat
-npc: npc/032-3_Cave/_mobs.txt
-npc: npc/032-3_Cave/_warps.txt
+npc: npc/032-3/_mobs.txt
+npc: npc/032-3/_warps.txt
diff --git a/npc/032-3_Cave/_mobs.txt b/npc/032-3/_mobs.txt
index 785736ad..0e5fc998 100644
--- a/npc/032-3_Cave/_mobs.txt
+++ b/npc/032-3/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 032-3 Cave mobs
+// Cave mobs
032-3.gat,90,44,9,10 monster Sceleton 1043,3,30000,100000,Mob032-3::On1043
032-3.gat,44,23,29,22 monster MountainSnake 1026,7,30000,100000,Mob032-3::On1026
diff --git a/npc/032-3_Cave/_warps.txt b/npc/032-3/_warps.txt
index 92d7c667..e84a8da2 100644
--- a/npc/032-3_Cave/_warps.txt
+++ b/npc/032-3/_warps.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 032-3 Cave warps
+// Cave warps
032-3.gat,128,33 warp ToDesert -1,-1,006-1.gat,30,124
032-3.gat,56,61 warp toDesert -1,-1,032-1.gat,64,53
diff --git a/npc/033-1_Snow_field/_import.txt b/npc/033-1/_import.txt
index f4c9b02d..32de0cb4 100644
--- a/npc/033-1_Snow_field/_import.txt
+++ b/npc/033-1/_import.txt
@@ -1,4 +1,5 @@
+// Map 033-1: Snow field
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 033-1.gat
-npc: npc/033-1_Snow_field/_mobs.txt
-npc: npc/033-1_Snow_field/_warps.txt
+npc: npc/033-1/_mobs.txt
+npc: npc/033-1/_warps.txt
diff --git a/npc/033-1_Snow_field/_mobs.txt b/npc/033-1/_mobs.txt
index 81abc445..61a53305 100644
--- a/npc/033-1_Snow_field/_mobs.txt
+++ b/npc/033-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 033-1 Snow field mobs
+// Snow field mobs
diff --git a/npc/033-1_Snow_field/_warps.txt b/npc/033-1/_warps.txt
index 9e0c0d7e..37bdd507 100644
--- a/npc/033-1_Snow_field/_warps.txt
+++ b/npc/033-1/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 033-1 Snow field warps
+// Snow field warps
diff --git a/npc/034-1_Snow_field/_import.txt b/npc/034-1/_import.txt
index fd396fae..e4b39026 100644
--- a/npc/034-1_Snow_field/_import.txt
+++ b/npc/034-1/_import.txt
@@ -1,4 +1,5 @@
+// Map 034-1: Snow field
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 034-1.gat
-npc: npc/034-1_Snow_field/_mobs.txt
-npc: npc/034-1_Snow_field/_warps.txt
+npc: npc/034-1/_mobs.txt
+npc: npc/034-1/_warps.txt
diff --git a/npc/034-1_Snow_field/_mobs.txt b/npc/034-1/_mobs.txt
index ef65db49..50d15f66 100644
--- a/npc/034-1_Snow_field/_mobs.txt
+++ b/npc/034-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 034-1 Snow field mobs
+// Snow field mobs
diff --git a/npc/034-1/_warps.txt b/npc/034-1/_warps.txt
new file mode 100644
index 00000000..37bdd507
--- /dev/null
+++ b/npc/034-1/_warps.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Snow field warps
+
diff --git a/npc/034-1_Snow_field/_warps.txt b/npc/034-1_Snow_field/_warps.txt
deleted file mode 100644
index 59239f0e..00000000
--- a/npc/034-1_Snow_field/_warps.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// 034-1 Snow field warps
-
diff --git a/npc/_import.txt b/npc/_import.txt
index 3530824d..f6da80e5 100644
--- a/npc/_import.txt
+++ b/npc/_import.txt
@@ -1,79 +1,82 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-import: npc/001-1_Tulimshar/_import.txt
-import: npc/001-2_Tulimshar/_import.txt
-import: npc/001-3_Tulimshar_arena/_import.txt
-import: npc/001-4_Omars_house/_import.txt
-import: npc/002-1_Sandstorm/_import.txt
-import: npc/002-3_Desert_mines/_import.txt
-import: npc/002-4_Desert_mines/_import.txt
-import: npc/003-1_Beach/_import.txt
-import: npc/003-2_Beach_House/_import.txt
-import: npc/004-1_Beach/_import.txt
-import: npc/004-2_Beach_House/_import.txt
-import: npc/005-1_Snake_desert/_import.txt
-import: npc/005-3_Snake_pit/_import.txt
-import: npc/006-1_Desert_mountains/_import.txt
-import: npc/006-3_Desert_mountain_caves/_import.txt
-import: npc/007-1_Woodland/_import.txt
-import: npc/008-1_Hurnscald_outskirts/_import.txt
-import: npc/009-1_Hurnscald/_import.txt
-import: npc/009-2_Hurnscald/_import.txt
-import: npc/009-3_Cave_beneath_Hurnscald/_import.txt
+import: npc/001-1/_import.txt
+import: npc/001-2/_import.txt
+import: npc/001-3/_import.txt
+import: npc/001-4/_import.txt
+import: npc/002-1/_import.txt
+import: npc/002-3/_import.txt
+import: npc/002-4/_import.txt
+import: npc/003-1/_import.txt
+import: npc/003-2/_import.txt
+import: npc/004-1/_import.txt
+import: npc/004-2/_import.txt
+import: npc/005-1/_import.txt
+import: npc/005-3/_import.txt
+import: npc/005-4/_import.txt
+import: npc/006-1/_import.txt
+import: npc/006-3/_import.txt
+import: npc/007-1/_import.txt
+import: npc/008-1/_import.txt
+import: npc/009-1/_import.txt
+import: npc/009-2/_import.txt
+import: npc/009-3/_import.txt
import: npc/009-4/_import.txt
-import: npc/010-1_Woodland/_import.txt
-import: npc/010-2_Dimonds_Cove/_import.txt
-import: npc/011-1_Woodland/_import.txt
-import: npc/011-3_Hermits_cave/_import.txt
-import: npc/011-4_Lake_cave/_import.txt
+import: npc/010-1/_import.txt
+import: npc/010-2/_import.txt
+import: npc/011-1/_import.txt
+import: npc/011-3/_import.txt
+import: npc/011-4/_import.txt
import: npc/011-5/_import.txt
import: npc/011-6/_import.txt
-import: npc/012-1_Woodland_Hills/_import.txt
-import: npc/012-3_Cave/_import.txt
-import: npc/012-4_Cave/_import.txt
-import: npc/013-1_Woodland_hills/_import.txt
-import: npc/013-2_Magic_house/_import.txt
-import: npc/013-3_Cave/_import.txt
-import: npc/014-1_Woodland/_import.txt
-import: npc/014-3_Cave/_import.txt
-import: npc/015-1_Woodland/_import.txt
-import: npc/015-3_Cave/_import.txt
-import: npc/016-1_Woodland/_import.txt
-import: npc/017-1_Woodland_hills/_import.txt
-import: npc/017-2_Theater/_import.txt
-import: npc/017-9_Backstage/_import.txt
-import: npc/018-1_Woodland_mining_camp/_import.txt
-import: npc/018-2_Woodland_mining_camp/_import.txt
-import: npc/018-3_Cave/_import.txt
-import: npc/019-1_Snow_field/_import.txt
-import: npc/019-3_Snow_Cave/_import.txt
-import: npc/020-1_Nivalis/_import.txt
-import: npc/020-2_Nivalis/_import.txt
-import: npc/020-3_Ice_cave/_import.txt
-import: npc/021-1_Tulimshar/_import.txt
-import: npc/021-2_Tulimshar/_import.txt
-import: npc/022-1_Tulimshar/_import.txt
-import: npc/024-1_Tulimshar_Canyon/_import.txt
-import: npc/024-2_Tulimshar_Magic_School/_import.txt
-import: npc/025-1_Woodland_Swamp/_import.txt
-import: npc/026-1_Swamp/_import.txt
-import: npc/027-1_Graveyard/_import.txt
-import: npc/027-2_Caretakers_House/_import.txt
-import: npc/027-3_Crypt/_import.txt
-import: npc/027-4_Inner_Chamber/_import.txt
+import: npc/012-1/_import.txt
+import: npc/012-3/_import.txt
+import: npc/012-4/_import.txt
+import: npc/013-1/_import.txt
+import: npc/013-2/_import.txt
+import: npc/013-3/_import.txt
+import: npc/014-1/_import.txt
+import: npc/014-3/_import.txt
+import: npc/015-1/_import.txt
+import: npc/015-3/_import.txt
+import: npc/016-1/_import.txt
+import: npc/017-1/_import.txt
+import: npc/017-2/_import.txt
+import: npc/017-9/_import.txt
+import: npc/018-1/_import.txt
+import: npc/018-2/_import.txt
+import: npc/018-3/_import.txt
+import: npc/019-1/_import.txt
+import: npc/019-3/_import.txt
+import: npc/020-1/_import.txt
+import: npc/020-2/_import.txt
+import: npc/020-3/_import.txt
+import: npc/021-1/_import.txt
+import: npc/021-2/_import.txt
+import: npc/022-1/_import.txt
+import: npc/024-1/_import.txt
+import: npc/024-2/_import.txt
+import: npc/025-1/_import.txt
+import: npc/025-3/_import.txt
+import: npc/025-4/_import.txt
+import: npc/026-1/_import.txt
+import: npc/027-1/_import.txt
+import: npc/027-2/_import.txt
+import: npc/027-3/_import.txt
+import: npc/027-4/_import.txt
import: npc/028-1/_import.txt
import: npc/028-3/_import.txt
-import: npc/029-1_Candor/_import.txt
-import: npc/029-3_Fight_Cave/_import.txt
-import: npc/030-1_Snow_field/_import.txt
-import: npc/031-1_NivalisPort/_import.txt
-import: npc/031-2_Angelas_House/_import.txt
-import: npc/031-3_Cave/_import.txt
-import: npc/031-4_Cave/_import.txt
-import: npc/032-1_Outback/_import.txt
-import: npc/032-3_Cave/_import.txt
-import: npc/033-1_Snow_field/_import.txt
-import: npc/034-1_Snow_field/_import.txt
+import: npc/029-1/_import.txt
+import: npc/029-3/_import.txt
+import: npc/030-1/_import.txt
+import: npc/031-1/_import.txt
+import: npc/031-2/_import.txt
+import: npc/031-3/_import.txt
+import: npc/031-4/_import.txt
+import: npc/032-1/_import.txt
+import: npc/032-3/_import.txt
+import: npc/033-1/_import.txt
+import: npc/034-1/_import.txt
import: npc/041-1/_import.txt
import: npc/042-1/_import.txt
import: npc/042-2/_import.txt
diff --git a/npc/botcheck/_import.txt b/npc/botcheck/_import.txt
index d1327a6d..8c1b3663 100644
--- a/npc/botcheck/_import.txt
+++ b/npc/botcheck/_import.txt
@@ -1,3 +1,4 @@
+// Map botcheck:
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: botcheck.gat
npc: npc/botcheck/_mobs.txt
diff --git a/npc/botcheck/_mobs.txt b/npc/botcheck/_mobs.txt
index d8144379..c54ee2ac 100644
--- a/npc/botcheck/_mobs.txt
+++ b/npc/botcheck/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// botcheck mobs
+// mobs
diff --git a/npc/botcheck/_warps.txt b/npc/botcheck/_warps.txt
index 5d0524c1..605abadf 100644
--- a/npc/botcheck/_warps.txt
+++ b/npc/botcheck/_warps.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// botcheck warps
+// warps
diff --git a/npc/easter/2011/bunny.txt b/npc/easter/2011/bunny.txt
new file mode 100644
index 00000000..e9d920ac
--- /dev/null
+++ b/npc/easter/2011/bunny.txt
@@ -0,0 +1,214 @@
+//Easter Quest 2011
+//conceived and scripted by Tiana
+//Reviewed by alastrim, Jenalya, Kandiman, enchilado
+
+// 008-1.gat,45,23, 0 script Easter Bunny 173,{
+ set @month, 4;
+ set @start_day, 15;
+ set @end_day, 30;
+
+ if (gettime(6) != @month) goto no_event;
+ if (gettime(5) < @start_day) goto no_event;
+ if (gettime(5) > @end_day) goto no_event;
+ if (gettimetick(2)-TUT_var < 2*7*86400) goto L_TooSoon;
+
+ if (QUEST_Easter11 == 1 || QUEST_Easter11 == 2) goto L_GetBasket;
+ if (QUEST_Easter11 == 3) goto L_BasketCheck;
+ if (QUEST_Easter11 == 4 || QUEST_Easter11 == 5) goto L_GetGrass;
+ if (QUEST_Easter11 == 6) goto L_GrassCheck;
+ if (QUEST_Easter11 == 7 || QUEST_Easter11 == 8) goto L_GetJelly;
+ if (QUEST_Easter11 == 9) goto L_JellyCheck;
+ if (QUEST_Easter11 == 10 || QUEST_Easter11 == 11) goto L_GetChoco;
+ if (QUEST_Easter11 == 12) goto L_ChocoCheck;
+ if (QUEST_Easter11 == 13) goto L_GetPrizes;
+ if (QUEST_Easter11 == 14) goto L_Done;
+ if (BaseLevel < 40) goto L_TooYoung;
+
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hi there! Would you like to help me with this year's Easter Quest?\"";
+ next;
+
+ menu
+ "What kind of help do you need?", -,
+ "No way, these holiday quests suck.", L_End;
+
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"I need you to help me by getting an easter basket ready for me.\"";
+ next;
+
+ menu
+ "I should be able to help with that, what do I need to do?", -,
+ "That doesn't sound very exciting, no thanks.", L_End;
+
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Thank you! Here is what you need to do:\"";
+ mes "\"I need you to get me a basket, the grass to line it, and some stuff to put in the basket. Some people should be able to help you get those items.\"";
+ next;
+ mes "\"I cannot remember who though. Maybe you should start with the Basket. You should look for someone with good handicraft abilities, someone who knows how to work with reeds... Do you have any idea who could do this? \"";
+ next;
+
+ menu
+ "Ok, I'll ask around and see what I can find.", -,
+ "You can't give me more help than that? Then go do it yourself.", L_End;
+
+ set QUEST_Easter11, 1;
+ close;
+
+L_GetBasket:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"I see that you haven't found anyone who can make the basket yet... hmm... a reed basket... Who could make such an item?\"";
+ set @tip, rand(10);
+ if (@tip != 9) close;
+ next;
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hey... I just remembered. I heard there is an indian fellow living in the mountains who comes from a tribe that is famous for its beautiful craftwork. Maybe he can make the basket...\"";
+ close;
+
+L_BasketCheck:
+ if(countitem("EasterBasket") < 1) goto L_BasketNoitem;
+ delitem "EasterBasket", 1;
+ set QUEST_Easter11, 4;
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Very good. This basket is perfect. Now I need some grass to line it. But please, do not pull it from the ground, because it makes the basket really ugly and dirty. I am sure there must be someone who can help you grow a nice, clean patch of grass.\"";
+ close;
+
+L_BasketNoitem:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"I heard you talked to that indian in the mountains. That was very smart! But you do not have the basket... That is too bad.\"";
+ close;
+
+L_GetGrass:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"I see you didn't find the [Grass Liner]... If only I could help you find someone who can do this...\"";
+ set @tip, rand(10);
+ if (@tip != 9) close;
+ next;
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Wait... ohh... Now I remember. Last year there was a woman who helped me with a perfect and clean [Grass Liner] for my easter basket. She used to live near the magic school in Tulimshar. Maybe she is still there.\"";
+ close;
+
+L_GrassCheck:
+ if(countitem("GrassLiner") < 1) goto L_GrassNoitem;
+ delitem "GrassLiner", 1;
+ set QUEST_Easter11, 7;
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Perfect. This basket is going to be beautiful. Now I need some stuff to put in the basket. I think we should start with some [Jelly Beans]. But I have no idea where you can find any. I looked in all of Hurnscald's shops and no one sells them! Maybe you will need to find someone who can cook them.\"";
+ close;
+
+L_GrassNoitem:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"You talked to Eomie, the woman who maintains that little spot of grass in the desert. You are really smart! But what happened? I was expecting that you would come back with the [Grass Liner]...\"";
+ close;
+
+L_GetJelly:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hi... Sorry to cause you so much trouble. This candy is so hard to find... One time I tried to make some myself and it was really bad... I'm sure there must be a secret ingredient I didn't know.\"";
+ set @tip, rand(10);
+ if (@tip != 9) close;
+ next;
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hey, maybe you can ask a skilled chef to make some [Jelly Beans] for you.\"";
+ close;
+
+L_JellyCheck:
+ if(countitem("JellyBeans") < 1) goto L_JellyNoitem;
+ delitem "JellyBeans", 1;
+ set QUEST_Easter11, 10;
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Ohh. You got a lot of [Jelly Beans]! This is way better than I expected. Now I there is only one more thing that we need... Chocolate! But not the usual [Chocolate Bar]. I need the chocolate shaped in the form of a mouboo. Sadly, I also have no idea how to get it. I am sure that a brilliant person like you can find a way to get it... \"";
+ close;
+
+L_JellyNoitem:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"I see you talked with the Chef at Dimond's Cove but you came back with no [Jelly Beans]... What happened?\"";
+ close;
+
+L_GetChoco:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hello. I was thinking... Maybe someone could melt down some [Chocolate Bar]s and pour it into a mouboo shaped mold...\"";
+ set @tip, rand(10);
+ if (@tip != 9) close;
+ next;
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hmm... A bakery! I am sure there must be someone in a bakery that can do this.\"";
+ close;
+
+L_ChocoCheck:
+ if(countitem("ChocolateMouboo") < 1) goto L_ChocoNoitem;
+ delitem "ChocolateMouboo", 1;
+ set QUEST_Easter11, 13;
+
+L_GetPrizes:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Great, now the basket is perfect!\"";
+ mes "\"I really appreciate your help. With everyone helping I was able to have enough time to do some crafts.\"";
+ mes "\"Here, accept this simple gift as a thank you!\"";
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_EasterTooMany;
+ setarray @reward$, "BunnyEars", "TopHat", "MushHat", "ShroomHat", "FunkyHat";
+ getitem @reward$[rand(getarraysize(@reward$))], 1;
+ set QUEST_Easter11, 14;
+ close;
+
+L_ChocoNoitem:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Some people told me you were in a bakery in Tulimshar... I was hoping you would come back with the [Chocolate Mouboo].\"";
+ close;
+
+L_TooYoung:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hello there young one!\"";
+ mes "\"Gain some more strength and I have a quest for you.\"";
+ close;
+
+L_TooSoon:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Hello there!\"";
+ mes "\"I need some help with Easter this year,\"";
+ mes "\"however you are not experienced enough in this world to properly assist yet.\"";
+ mes "\"Thank you for your interest though!\"";
+ close;
+
+L_EasterTooMany:
+ mes "[Riskim]";
+ mes "";
+ mes "\"You don't have enough room for my gift. Come back later.\"";
+ close;
+
+L_Done:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Thank you for getting that basket together for me!\"";
+ close;
+
+no_event:
+ mes "[Easter Bunny]";
+ mes "";
+ mes "\"Easter is the greatest holiday ever!!!\"";
+ set QUEST_Easter11, 0;
+ close;
+
+L_End:
+ close;
+}
diff --git a/npc/functions/banker.txt b/npc/functions/banker.txt
index 00f033c9..3c060071 100644
--- a/npc/functions/banker.txt
+++ b/npc/functions/banker.txt
@@ -1,6 +1,7 @@
//
function script Banker {
+
if (BankAccount > 0) callsub S_MoveAccount;
L_Start:
@@ -13,13 +14,16 @@ L_Start:
"Withdraw", L_With,
"Check my balance", L_Balance,
"Open my storage", L_Storage,
+ "Change Bank Options", L_Change,
"Nevermind", L_Nev;
-
+
close;
-
+
// need to close window before opening storage.
L_Storage:
+ if (#BankOptions & OPT_STORAGE_CLOSE) close2;
openstorage;
+ if (#BankOptions & OPT_STORAGE_CLOSE) end;
goto L_Start;
L_Dep:
@@ -40,7 +44,7 @@ L_Dep:
"I've changed my mind", L_Start,
"Quit", -;
return;
-
+
L_Dep_Input:
input @Amount;
if (@Amount >= 0) goto L_Dep_Continue;
@@ -96,13 +100,13 @@ L_Dep_1kk:
L_Dep_All:
if (zeny<1) goto L_NoMoney;
set @Amount, zeny;
-
+
L_Dep_Continue:
if (zeny < @Amount) goto L_NoMoney;
set zeny, zeny - @Amount;
set #BankAccount, #BankAccount + @Amount;
goto L_Balance;
-
+
L_With:
mes "[" + @npcname$ + "]";
mes "\"How much would you like to withdraw?\"";
@@ -182,25 +186,43 @@ L_With_Continue:
set zeny, zeny + @Amount;
set #BankAccount, #BankAccount - @Amount;
goto L_Balance;
-
+
L_Balance:
mes "[" + @npcname$ + "]";
mes "\"Your current bank balance is:";
mes #BankAccount + " GP\"";
+ if (#BankOptions & OPT_BANK_CLOSE) close;
goto L_Start;
-
+
L_Nev:
mes "[" + @npcname$ + "]";
mes "\"Goodbye then.\"";
return;
-
+
L_NoMoney:
mes "[" + @npcname$ + "]";
mes "\"Oh dear, it seems that you don't have enough money.\"";
goto L_Start;
-
+
S_MoveAccount:
set #BankAccount, #BankAccount + BankAccount;
set BankAccount, 0;
return;
+
+L_Change:
+ setarray @menuitems$, "Keep the current settings", "Close NPC dialog after selecting storage option", "Close NPC dialog after checking your balance";
+ if (#BankOptions & OPT_STORAGE_CLOSE) set @menuitems$[1], "Return to main menu after leaving storage";
+ if (#BankOptions & OPT_BANK_CLOSE) set @menuitems$[2], "Return to main menu after leaving bank";
+ menu
+ @menuitems$[0], L_Start,
+ @menuitems$[1], L_Change_Storage,
+ @menuitems$[2], L_Change_Bank;
+
+L_Change_Storage:
+ set #BankOptions, (#BankOptions ^ OPT_STORAGE_CLOSE);
+ goto L_Start;
+
+L_Change_Bank:
+ set #BankOptions, (#BankOptions ^ OPT_BANK_CLOSE);
+ goto L_Start;
}
diff --git a/npc/functions/barber.txt b/npc/functions/barber.txt
index 28f17ec5..8d0a32e3 100644
--- a/npc/functions/barber.txt
+++ b/npc/functions/barber.txt
@@ -28,12 +28,13 @@ L_Style:
"Mane", -,
"Bun", -,
"Shoulder Length Flick", -,
+ "Fizzy", -,
"Surprise me", -,
"Nah, I'm fine", L_Done;
L_Process_Style:
set @style, @menu - 1;
- if (@style == 18) set @style, rand(18);
+ if (@style == 19) set @style, rand(19);
setlook 1, @style;
return;
diff --git a/npc/functions/magic.txt b/npc/functions/magic.txt
index 6e741312..c4abcab6 100644
--- a/npc/functions/magic.txt
+++ b/npc/functions/magic.txt
@@ -147,7 +147,7 @@ L_Q_post_astralsoul:
set @menu, 0;
set @c, @choice_idx[@menu];
- return @c;
+ return;
}
diff --git a/npc/functions/mob_points.txt b/npc/functions/mob_points.txt
index 54ee47bc..a84e24a5 100644
--- a/npc/functions/mob_points.txt
+++ b/npc/functions/mob_points.txt
@@ -7,7 +7,7 @@ function script MobPoints {
1, // Maggot
2, // Scorpion
20, // Red Scorpion
- 10, // Green Slime
+ 40, // Green Slime
30, // Giant Maggot
15, // Yellow Slime
25, // Red Slime
@@ -43,7 +43,7 @@ function script MobPoints {
5, // Squirrel
0, // Fire Lizard
80, // Wisp
- 0, // Snail
+ 15, // Snail
80, // Spectre
100, // Skeleton
100, // Lady Skeleton
@@ -82,6 +82,9 @@ function script MobPoints {
100, // Drunken Skeleton
100, // Tipsy Skeleton
100, // Drunken Lady Skeleton
+ 60, // BlueSpark
+ 60, // RedSpark
+ 0, // Serqet
// Add more here
0; // END
diff --git a/npc/functions/strangerquiz.txt b/npc/functions/strangerquiz.txt
new file mode 100644
index 00000000..28fc6887
--- /dev/null
+++ b/npc/functions/strangerquiz.txt
@@ -0,0 +1,7 @@
+
+function script StrangerQuiz {
+ // param @quizparam$$
+ // return in @quizanswer$
+ set @quizanswer$, getspellinvocation(@quizparam$);
+ return;
+}
diff --git a/npc/items/scissors.txt b/npc/items/scissors.txt
index 92be20f2..0e10453c 100644
--- a/npc/items/scissors.txt
+++ b/npc/items/scissors.txt
@@ -7,7 +7,7 @@ function script useScissors {
end;
L_Change:
- setlook 1, rand(18);
+ setlook 1, rand(19);
getitem "Scissors", 1;
end;
}
diff --git a/npc/items/warpTowels.txt b/npc/items/warpTowels.txt
new file mode 100644
index 00000000..1c39b98b
--- /dev/null
+++ b/npc/items/warpTowels.txt
@@ -0,0 +1,130 @@
+function script useWhiteWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "020-1.gat",66,91; // Nivalis
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "WhiteWarpTowel", 1;
+ end;
+}
+function script useRedWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "009-1.gat",51,40; // Hurnscald
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "RedWarpTowel", 1;
+ end; end;
+}
+function script useGreenWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "003-1.gat",35,25;
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "GreenWarpTowel", 1;
+ end; end;
+}
+function script useBlueWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "003-1.gat",35,25;
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "BlueWarpTowel", 1;
+ end; end;
+}
+function script useYellowWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "001-1.gat",40,71; // Tulimshar
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "YellowWarpTowel", 1;
+ end; end;
+}
+function script usePurpleWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "003-1.gat",35,25;
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "PurpleWarpTowel", 1;
+ end; end;
+}
+function script useOrangeWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "027-1.gat",70,100; // Graveyard
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "OrangeWarpTowel", 1;
+ end; end;
+}
+function script usePinkWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "012-3.gat",448,66; // Terranite Cave
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "PinkWarpTowel", 1;
+ end; end;
+}
+function script useTealWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "003-1.gat",35,25;
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "TealWarpTowel", 1;
+ end; end;
+}
+function script useLimeWarpTowel {
+ if (isin("botcheck.gat",8,11,32,29)) goto L_Botcheck;
+ warp "003-1.gat",35,25;
+ if (rand(15))
+ goto L_Keep;
+ getitem "GreyWarpTowel", 1;
+ end;
+L_Botcheck:
+ message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+L_Keep:
+ getitem "LimeWarpTowel", 1;
+ end; end;
+}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 42622c1b..8d07ff18 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -13,6 +13,7 @@ npc: npc/functions/mob_points.txt
npc: npc/functions/process_equip.txt
npc: npc/functions/slot_machine.txt
npc: npc/functions/soul_menhir.txt
+npc: npc/functions/strangerquiz.txt
npc: npc/functions/water_bottle.txt
npc: npc/functions/evil_obelisk.txt
@@ -22,6 +23,7 @@ npc: npc/items/scissors.txt
npc: npc/items/shock_sweet.txt
npc: npc/items/unreleased_item.txt
npc: npc/items/restricted_item.txt
+npc: npc/items/warpTowels.txt
import: npc/_import.txt
diff --git a/npc/xmas/2010/golbanez.txt b/npc/xmas/2010/golbanez.txt
index 0b145ca9..f5a0e01b 100755..100644
--- a/npc/xmas/2010/golbanez.txt
+++ b/npc/xmas/2010/golbanez.txt
@@ -133,8 +133,10 @@ L_Menu:
"Nevermind.", Glb_nvm;
// in this array the items should be filled in. Remember to change the ID when the boxes are added to item_db.
- setarray @menuitem[2], "4021", "4022";
- setarray @menuvalue[2], 50000, 100000;
+ set @menuitem[2], 4021;
+ set @menuitem[3], 4022;
+ set @menuvalue[2], 50000;
+ set @menuvalue[3], 100000;
mes "\"How many presents do you want to give?\"";
diff --git a/npc/xmas/2010/santa.txt b/npc/xmas/2010/santa.txt
index 3ef9257d..bd82a251 100755..100644
--- a/npc/xmas/2010/santa.txt
+++ b/npc/xmas/2010/santa.txt
@@ -45,7 +45,7 @@ L_Skip_Dialogue:
L_Calculate_Prizes:
getinventorylist;
if (@inventorylist_count == 100) goto L_full;
- setarray @prizes[0], 1216, 629, 630, 634, 1214, 633, 628, 627, 621;
+ setarray @prizes, 1216, 629, 630, 634, 1214, 633, 628, 627, 621;
mes "\"You are so generous! I believe I can give you one of the hats from this bag. I know you like these silly hats. Yes, Santa knows this kind of thing... Ho-Ho-Ho! Put your hand here and pick one hat... No, you cant look, it MUST be a surprise...\"";
getitem @prizes[rand(8)], 1;
set Xmas2010, 2;
diff --git a/tools/tmwcon/src/converter/Process.java b/tools/tmwcon/src/converter/Process.java
index 8b01d0d0..92fa3da4 100644
--- a/tools/tmwcon/src/converter/Process.java
+++ b/tools/tmwcon/src/converter/Process.java
@@ -1,5 +1,5 @@
/*
- * TMWServ to eAthena Converter (c) 2008 Jared Adams
+ * TMWServ to eAthena Converter (c) 2008, 2011 Jared Adams
* License: GPL, v2 or later
*/
@@ -131,11 +131,12 @@ public class Process {
}
}
- private static void makeInclude(String name, File folder) {
+ private static void makeInclude(String name, String title, File folder) {
File _import = new File(folder, importFile);
List<String> output_elements = new ArrayList<String>();
processFiles(folder, output_elements);
PrintWriter importOut = Main.getWriter(_import);
+ importOut.printf("// Map %s: %s\n", name, title);
importOut.printf("// This file is generated automatically. All manually changes will be removed when running the Converter.\nmap: %s.gat\n", name);
Collections.sort(output_elements);
for (String s : output_elements)
@@ -152,12 +153,6 @@ public class Process {
String title = getProp(props, "name", "");
String folderName = scriptDirectory + name;
- if (title.length() > 0) {
- folderName += "_" + title.replaceAll("\\s", "_").replaceAll("[^A-Za-z0-9\\-_]", "");
- title = name + " " + title;
- } else {
- title = name;
- }
File folder = new File(baseFolder + folderName);
folder.mkdirs();
@@ -168,12 +163,12 @@ public class Process {
if (wlkFile.exists() && mapFile.lastModified() < wlkFile.lastModified()) {
System.out.println("Up to date, skipping");
- makeInclude(name, folder);
+ makeInclude(name, title, folder);
return folderName;
}
if (summary != null) {
- summary.printf("\tName: '%s'\n", title);
+ summary.printf("\tName: %s: '%s'\n", name, title);
summary.printf("\tMusic: '%s'\n", getProp(props, "music", ""));
summary.printf("\tMinimap: '%s'\n", getProp(props, "minimap", ""));
}
@@ -209,7 +204,7 @@ public class Process {
mobOut.flush();
mobOut.close();
- makeInclude(name, folder);
+ makeInclude(name, title, folder);
return folderName;
}