summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJessica Tölke <jtoelke@mail.upb.de>2013-07-07 12:51:32 +0200
committerJessica Tölke <jtoelke@mail.upb.de>2013-07-07 12:51:32 +0200
commit0dd134db3f6f67bb5e4401f1ba7bf3e97f201505 (patch)
tree4a200c1eeb684039390959107a6f413e065384fd
parenta89882b69d9f12499404ca9d471d5a735bc63988 (diff)
parent135f0fe12564decad0d3e2ff8af8f798b0a7f4cf (diff)
downloadserverdata-0dd134db3f6f67bb5e4401f1ba7bf3e97f201505.tar.gz
serverdata-0dd134db3f6f67bb5e4401f1ba7bf3e97f201505.tar.bz2
serverdata-0dd134db3f6f67bb5e4401f1ba7bf3e97f201505.tar.xz
serverdata-0dd134db3f6f67bb5e4401f1ba7bf3e97f201505.zip
Merge remote-tracking branch 'origin/master' into waric
Conflicts: world/map/db/mob_db.txt
m---------client-data0
-rw-r--r--tools/_news_colors.py3
-rwxr-xr-xtools/tmx_converter.py2
-rw-r--r--world/map/conf/magic.conf.template65
-rw-r--r--world/map/data/002-1.wlkbin17412 -> 17412 bytes
-rw-r--r--world/map/data/002-2.wlkbin0 -> 10004 bytes
-rw-r--r--world/map/data/002-3.wlkbin16388 -> 12104 bytes
-rw-r--r--world/map/data/002-4.wlkbin16388 -> 16388 bytes
-rw-r--r--world/map/data/002-5.wlkbin0 -> 16388 bytes
-rw-r--r--world/map/data/003-1.wlkbin26224 -> 26224 bytes
-rw-r--r--world/map/data/004-1.wlkbin15565 -> 15565 bytes
-rw-r--r--world/map/data/018-1.wlkbin24004 -> 24004 bytes
-rw-r--r--world/map/data/021-1.wlkbin29908 -> 29908 bytes
-rw-r--r--world/map/data/021-3.wlkbin0 -> 29908 bytes
-rw-r--r--world/map/data/031-1.wlkbin18948 -> 18948 bytes
-rw-r--r--world/map/data/043-1.wlkbin0 -> 18004 bytes
-rw-r--r--world/map/data/043-3.wlkbin0 -> 22504 bytes
-rw-r--r--world/map/data/055-1.wlkbin21084 -> 21084 bytes
-rw-r--r--world/map/data/055-3.wlkbin22504 -> 22504 bytes
-rw-r--r--world/map/data/057-1.wlkbin21084 -> 21084 bytes
-rw-r--r--world/map/data/resnametable.txt5
-rw-r--r--world/map/db/const.txt5
-rw-r--r--world/map/db/item_db.txt2
-rw-r--r--world/map/db/mob_db.txt3
-rw-r--r--world/map/news.d/13-lpc.txt2
-rw-r--r--world/map/news.d/19-rollbackup.txt9
-rw-r--r--world/map/news.d/20-double-exp-drop.txt (renamed from world/map/news.d/19-double-exp-drop.txt)0
-rw-r--r--world/map/news.d/21-tulimshar-caves.txt25
-rw-r--r--world/map/news.html46
-rw-r--r--world/map/news.txt40
-rw-r--r--world/map/npc/001-1/_mobs.txt3
-rw-r--r--world/map/npc/001-1/banker.txt3
-rw-r--r--world/map/npc/001-1/barber.txt3
-rw-r--r--world/map/npc/001-1/bard.txt5
-rw-r--r--world/map/npc/001-1/bernard.txt4
-rw-r--r--world/map/npc/001-1/bleacher.txt3
-rw-r--r--world/map/npc/001-1/children.txt6
-rw-r--r--world/map/npc/001-1/constable.txt3
-rw-r--r--world/map/npc/001-1/elanore.txt7
-rw-r--r--world/map/npc/001-1/entertainer.txt4
-rw-r--r--world/map/npc/001-1/gossip.txt4
-rw-r--r--world/map/npc/001-1/guards.txt7
-rw-r--r--world/map/npc/001-1/guide.txt17
-rw-r--r--world/map/npc/001-1/luca.txt4
-rw-r--r--world/map/npc/001-1/mikhail.txt4
-rw-r--r--world/map/npc/001-1/monster_guide.txt3
-rw-r--r--world/map/npc/001-1/npcs.txt6
-rw-r--r--world/map/npc/001-1/rewards_master.txt3
-rw-r--r--world/map/npc/001-1/sandra.txt4
-rw-r--r--world/map/npc/001-1/sarah.txt4
-rw-r--r--world/map/npc/001-1/soul-menhir.txt3
-rw-r--r--world/map/npc/001-1/trader.txt3
-rw-r--r--world/map/npc/001-1/vincent.txt3
-rw-r--r--world/map/npc/001-2/_mobs.txt3
-rw-r--r--world/map/npc/001-2/casino.txt29
-rw-r--r--world/map/npc/001-2/dedication.txt3
-rw-r--r--world/map/npc/001-2/omar.txt9
-rw-r--r--world/map/npc/001-2/phaet.txt3
-rw-r--r--world/map/npc/001-2/shops.txt3
-rw-r--r--world/map/npc/001-2/troupe_leader.txt3
-rw-r--r--world/map/npc/001-3/_mobs.txt3
-rw-r--r--world/map/npc/001-3/guards.txt6
-rw-r--r--world/map/npc/002-1/_import.txt3
-rw-r--r--world/map/npc/002-1/_mobs.txt11
-rw-r--r--world/map/npc/002-1/_warps.txt5
-rw-r--r--world/map/npc/002-1/lieutenant_dausen.txt4
-rw-r--r--world/map/npc/002-1/merchant.txt3
-rw-r--r--world/map/npc/002-1/nickos.txt4
-rw-r--r--world/map/npc/002-1/nomads.txt6
-rw-r--r--world/map/npc/002-1/stewen.txt4
-rw-r--r--world/map/npc/002-2/_import.txt6
-rw-r--r--world/map/npc/002-2/_mobs.txt9
-rw-r--r--world/map/npc/002-2/_warps.txt4
-rw-r--r--world/map/npc/002-2/rogue.txt (renamed from world/map/npc/002-1/rogue.txt)4
-rw-r--r--world/map/npc/002-3/_import.txt9
-rw-r--r--world/map/npc/002-3/_mobs.txt34
-rw-r--r--world/map/npc/002-3/_warps.txt6
-rw-r--r--world/map/npc/002-3/merchant.txt3
-rw-r--r--world/map/npc/002-3/mining_camp_barrier.txt (renamed from world/map/npc/002-1/sandstorm_mine_barrier.txt)6
-rw-r--r--world/map/npc/002-3/nathan.txt4
-rw-r--r--world/map/npc/002-4/_import.txt9
-rw-r--r--world/map/npc/002-4/_mobs.txt56
-rw-r--r--world/map/npc/002-4/_warps.txt4
-rw-r--r--world/map/npc/002-4/mine_triggerone.txt (renamed from world/map/npc/002-3/mine_triggerone.txt)6
-rw-r--r--world/map/npc/002-4/mine_triggerthree.txt (renamed from world/map/npc/002-3/mine_triggerthree.txt)6
-rw-r--r--world/map/npc/002-4/mine_triggertwo.txt (renamed from world/map/npc/002-3/mine_triggertwo.txt)4
-rw-r--r--world/map/npc/002-4/naem.txt (renamed from world/map/npc/002-3/naem.txt)4
-rw-r--r--world/map/npc/002-4/underground_palace_barrier.txt (renamed from world/map/npc/002-3/underground_palace_barrier.txt)6
-rw-r--r--world/map/npc/002-5/_import.txt7
-rw-r--r--world/map/npc/002-5/_mobs.txt51
-rw-r--r--world/map/npc/002-5/_warps.txt4
-rw-r--r--world/map/npc/002-5/chest.txt (renamed from world/map/npc/002-4/chest.txt)6
-rw-r--r--world/map/npc/002-5/sema.txt (renamed from world/map/npc/002-4/miners.txt)8
-rw-r--r--world/map/npc/003-1/_mobs.txt3
-rw-r--r--world/map/npc/003-1/_warps.txt1
-rw-r--r--world/map/npc/003-1/stranger.txt4
-rw-r--r--world/map/npc/003-2/_mobs.txt3
-rw-r--r--world/map/npc/004-1/_mobs.txt3
-rw-r--r--world/map/npc/004-2/_mobs.txt3
-rw-r--r--world/map/npc/005-1/_mobs.txt3
-rw-r--r--world/map/npc/005-1/npcs.txt6
-rw-r--r--world/map/npc/005-1/spirit.txt9
-rw-r--r--world/map/npc/005-1/tree.txt12
-rw-r--r--world/map/npc/005-3/_mobs.txt3
-rw-r--r--world/map/npc/005-4/_mobs.txt3
-rw-r--r--world/map/npc/005-4/bossfight.txt42
-rw-r--r--world/map/npc/006-1/_mobs.txt3
-rw-r--r--world/map/npc/006-1/mika.txt3
-rw-r--r--world/map/npc/006-1/pachua.txt3
-rw-r--r--world/map/npc/006-3/_mobs.txt3
-rw-r--r--world/map/npc/007-1/_mobs.txt3
-rw-r--r--world/map/npc/007-1/voltain.txt4
-rw-r--r--world/map/npc/007-1/witch.txt37
-rw-r--r--world/map/npc/008-1/_mobs.txt3
-rw-r--r--world/map/npc/008-1/andra.txt4
-rw-r--r--world/map/npc/008-1/annualeaster.txt33
-rw-r--r--world/map/npc/008-1/diryn.txt17
-rw-r--r--world/map/npc/008-1/dock.txt3
-rw-r--r--world/map/npc/008-1/george.txt3
-rw-r--r--world/map/npc/008-1/hinnak.txt3
-rw-r--r--world/map/npc/009-1/_mobs.txt3
-rw-r--r--world/map/npc/009-1/jack.txt15
-rw-r--r--world/map/npc/009-1/milly.txt38
-rw-r--r--world/map/npc/009-1/old_man.txt3
-rw-r--r--world/map/npc/009-1/old_woman.txt3
-rw-r--r--world/map/npc/009-1/sabine.txt3
-rw-r--r--world/map/npc/009-1/soul-menhir.txt3
-rw-r--r--world/map/npc/009-1/water_pump.txt3
-rw-r--r--world/map/npc/009-2/_mobs.txt3
-rw-r--r--world/map/npc/009-2/airlia.txt3
-rw-r--r--world/map/npc/009-2/alan.txt3
-rw-r--r--world/map/npc/009-2/doctor.txt3
-rw-r--r--world/map/npc/009-2/drunks.txt6
-rw-r--r--world/map/npc/009-2/inspector.txt3
-rw-r--r--world/map/npc/009-2/kfahr.txt3
-rw-r--r--world/map/npc/009-2/lena.txt4
-rw-r--r--world/map/npc/009-2/misc.txt6
-rw-r--r--world/map/npc/009-2/nicholas.txt4
-rw-r--r--world/map/npc/009-2/nurse.txt3
-rw-r--r--world/map/npc/009-2/olana.txt4
-rw-r--r--world/map/npc/009-2/peter.txt4
-rw-r--r--world/map/npc/009-2/richard.txt3
-rw-r--r--world/map/npc/009-2/selim.txt3
-rw-r--r--world/map/npc/009-2/shops.txt3
-rw-r--r--world/map/npc/009-2/waitress.txt4
-rw-r--r--world/map/npc/009-2/wyara.txt3
-rw-r--r--world/map/npc/009-3/_mobs.txt3
-rw-r--r--world/map/npc/009-3/sword.txt3
-rw-r--r--world/map/npc/009-3/warp.txt3
-rw-r--r--world/map/npc/009-4/_mobs.txt3
-rw-r--r--world/map/npc/009-4/barriers.txt26
-rw-r--r--world/map/npc/009-4/orum.txt3
-rw-r--r--world/map/npc/009-4/orum_warps.txt9
-rw-r--r--world/map/npc/009-4/torches.txt36
-rw-r--r--world/map/npc/009-4/waric.txt9
-rw-r--r--world/map/npc/009-5/_mobs.txt3
-rw-r--r--world/map/npc/009-6/_mobs.txt3
-rw-r--r--world/map/npc/009-6/brodomir.txt7
-rw-r--r--world/map/npc/010-1/_mobs.txt3
-rw-r--r--world/map/npc/010-2/_mobs.txt3
-rw-r--r--world/map/npc/010-2/chef.txt7
-rw-r--r--world/map/npc/010-2/dimonds.txt39
-rw-r--r--world/map/npc/010-2/doug.txt4
-rw-r--r--world/map/npc/010-2/loratay.txt4
-rw-r--r--world/map/npc/010-2/workers.txt6
-rw-r--r--world/map/npc/011-1/_mobs.txt3
-rw-r--r--world/map/npc/011-1/alchemist.txt4
-rw-r--r--world/map/npc/011-1/auldsbel.txt10
-rw-r--r--world/map/npc/011-1/oscar.txt30
-rw-r--r--world/map/npc/011-3/_mobs.txt3
-rw-r--r--world/map/npc/011-3/hermit.txt3
-rw-r--r--world/map/npc/011-4/_mobs.txt3
-rw-r--r--world/map/npc/011-4/bl_barrier.txt4
-rw-r--r--world/map/npc/011-6/_mobs.txt3
-rw-r--r--world/map/npc/011-6/bryant.txt16
-rw-r--r--world/map/npc/012-1/_mobs.txt3
-rw-r--r--world/map/npc/012-1/amrak.txt3
-rw-r--r--world/map/npc/012-1/injured-mouboo.txt6
-rw-r--r--world/map/npc/012-3/_mobs.txt3
-rw-r--r--world/map/npc/012-3/mana-seed.txt4
-rw-r--r--world/map/npc/012-3/warningsigns.txt6
-rw-r--r--world/map/npc/012-4/_mobs.txt3
-rw-r--r--world/map/npc/013-1/_mobs.txt3
-rw-r--r--world/map/npc/013-1/sagatha.txt12
-rw-r--r--world/map/npc/013-2/_mobs.txt3
-rw-r--r--world/map/npc/013-2/apprentice.txt3
-rw-r--r--world/map/npc/013-2/notes.txt33
-rw-r--r--world/map/npc/013-2/wizard.txt5
-rw-r--r--world/map/npc/013-3/_mobs.txt3
-rw-r--r--world/map/npc/013-3/barrier.txt3
-rw-r--r--world/map/npc/013-3/mask_chest.txt3
-rw-r--r--world/map/npc/013-3/misc.txt3
-rw-r--r--world/map/npc/013-3/sword_chest.txt3
-rw-r--r--world/map/npc/014-1/_mobs.txt3
-rw-r--r--world/map/npc/014-1/wedding-officiator.txt3
-rw-r--r--world/map/npc/014-3/_mobs.txt3
-rw-r--r--world/map/npc/015-1/_mobs.txt3
-rw-r--r--world/map/npc/015-1/alice.txt4
-rw-r--r--world/map/npc/015-1/barrier.txt3
-rw-r--r--world/map/npc/015-1/sword.txt3
-rw-r--r--world/map/npc/015-3/_mobs.txt3
-rw-r--r--world/map/npc/015-3/barrier.txt4
-rw-r--r--world/map/npc/015-3/katze.txt4
-rw-r--r--world/map/npc/015-3/pot.txt4
-rw-r--r--world/map/npc/016-1/_mobs.txt3
-rw-r--r--world/map/npc/016-1/gwendolyn.txt17
-rw-r--r--world/map/npc/017-1/_mobs.txt3
-rw-r--r--world/map/npc/017-2/_mobs.txt3
-rw-r--r--world/map/npc/017-3/_mobs.txt3
-rw-r--r--world/map/npc/017-4/_mobs.txt3
-rw-r--r--world/map/npc/017-9/_mobs.txt3
-rw-r--r--world/map/npc/018-1/_mobs.txt3
-rw-r--r--world/map/npc/018-1/_warps.txt4
-rw-r--r--world/map/npc/018-1/mike.txt4
-rw-r--r--world/map/npc/018-1/miners.txt3
-rw-r--r--world/map/npc/018-1/sword.txt3
-rw-r--r--world/map/npc/018-2/_mobs.txt3
-rw-r--r--world/map/npc/018-2/angus.txt3
-rw-r--r--world/map/npc/018-2/books.txt3
-rw-r--r--world/map/npc/018-2/caul.txt3
-rw-r--r--world/map/npc/018-2/miners.txt3
-rw-r--r--world/map/npc/018-2/receptionist.txt3
-rw-r--r--world/map/npc/018-3/_mobs.txt3
-rw-r--r--world/map/npc/018-3/bookcase.txt3
-rw-r--r--world/map/npc/018-3/evil-obelisk.txt3
-rw-r--r--world/map/npc/018-3/sword.txt3
-rw-r--r--world/map/npc/019-1/_mobs.txt3
-rw-r--r--world/map/npc/019-1/mobmanager.txt6
-rw-r--r--world/map/npc/019-1/santa_helper.txt3
-rw-r--r--world/map/npc/019-1/snowman.txt3
-rw-r--r--world/map/npc/019-3/_mobs.txt3
-rw-r--r--world/map/npc/019-4/_mobs.txt3
-rw-r--r--world/map/npc/020-1/KrickKrackKrock.txt4
-rw-r--r--world/map/npc/020-1/_mobs.txt3
-rw-r--r--world/map/npc/020-1/rockscissor.txt3
-rw-r--r--world/map/npc/020-1/soul-menhir.txt3
-rw-r--r--world/map/npc/020-1/well.txt7
-rw-r--r--world/map/npc/020-2/_mobs.txt3
-rw-r--r--world/map/npc/020-2/baktar.txt99
-rw-r--r--world/map/npc/020-2/banker.txt6
-rw-r--r--world/map/npc/020-2/furquest.txt4
-rw-r--r--world/map/npc/020-2/shops.txt6
-rw-r--r--world/map/npc/020-3/_mobs.txt3
-rw-r--r--world/map/npc/021-1/_import.txt3
-rw-r--r--world/map/npc/021-1/_mobs.txt3
-rw-r--r--world/map/npc/021-1/bakery.txt4
-rw-r--r--world/map/npc/021-1/banu.txt4
-rw-r--r--world/map/npc/021-1/eurni.txt3
-rw-r--r--world/map/npc/021-1/gate_guards.txt21
-rw-r--r--world/map/npc/021-1/hetchel.txt3
-rw-r--r--world/map/npc/021-1/hideandseek.txt27
-rw-r--r--world/map/npc/021-1/imec.txt7
-rw-r--r--world/map/npc/021-1/inac.txt3
-rw-r--r--world/map/npc/021-1/north_shops.txt10
-rw-r--r--world/map/npc/021-1/npcs.txt12
-rw-r--r--world/map/npc/021-1/sewer_east.txt17
-rw-r--r--world/map/npc/021-1/sewer_north.txt17
-rw-r--r--world/map/npc/021-1/sewer_west.txt17
-rw-r--r--world/map/npc/021-1/weellos.txt3
-rw-r--r--world/map/npc/021-1/workers.txt9
-rw-r--r--world/map/npc/021-2/_mobs.txt3
-rw-r--r--world/map/npc/021-2/bakery.txt16
-rw-r--r--world/map/npc/021-2/bank.txt3
-rw-r--r--world/map/npc/021-2/barber.txt3
-rw-r--r--world/map/npc/021-2/government_building.txt9
-rw-r--r--world/map/npc/021-2/heathin.txt4
-rw-r--r--world/map/npc/021-2/hotel_receptionist.txt3
-rw-r--r--world/map/npc/021-2/inya.txt4
-rw-r--r--world/map/npc/021-2/jhedia.txt4
-rw-r--r--world/map/npc/021-2/kylian.txt10
-rw-r--r--world/map/npc/021-2/yanis.txt4
-rw-r--r--world/map/npc/021-3/_import.txt5
-rw-r--r--world/map/npc/021-3/_mobs.txt50
-rw-r--r--world/map/npc/021-3/_warps.txt6
-rw-r--r--world/map/npc/022-1/_mobs.txt3
-rw-r--r--world/map/npc/022-1/adrian.txt4
-rw-r--r--world/map/npc/022-1/anwar.txt7
-rw-r--r--world/map/npc/022-1/dock.txt3
-rw-r--r--world/map/npc/022-1/ferry_master.txt3
-rw-r--r--world/map/npc/022-1/npcs.txt12
-rw-r--r--world/map/npc/022-1/tutorial.txt6
-rw-r--r--world/map/npc/024-1/_mobs.txt3
-rw-r--r--world/map/npc/024-1/ched.txt3
-rw-r--r--world/map/npc/024-1/david.txt4
-rw-r--r--world/map/npc/024-1/eomie.txt4
-rw-r--r--world/map/npc/024-1/tinris.txt4
-rw-r--r--world/map/npc/024-1/tondar.txt3
-rw-r--r--world/map/npc/024-2/_mobs.txt3
-rw-r--r--world/map/npc/024-2/barrier.txt3
-rw-r--r--world/map/npc/024-2/tyer.txt3
-rw-r--r--world/map/npc/024-2/tyer_trigger.txt3
-rw-r--r--world/map/npc/024-3/_mobs.txt3
-rw-r--r--world/map/npc/024-4/_mobs.txt3
-rw-r--r--world/map/npc/025-1/_mobs.txt3
-rw-r--r--world/map/npc/025-1/barrier.txt4
-rw-r--r--world/map/npc/025-1/reset.txt4
-rw-r--r--world/map/npc/025-1/rossy.txt4
-rw-r--r--world/map/npc/025-3/_mobs.txt3
-rw-r--r--world/map/npc/025-3/barriers.txt31
-rw-r--r--world/map/npc/025-4/_mobs.txt3
-rw-r--r--world/map/npc/025-4/battlecaves.txt66
-rw-r--r--world/map/npc/025-4/clauquer.txt4
-rw-r--r--world/map/npc/025-4/julia.txt4
-rw-r--r--world/map/npc/026-1/_mobs.txt3
-rw-r--r--world/map/npc/026-1/sign.txt3
-rw-r--r--world/map/npc/027-1/_mobs.txt3
-rw-r--r--world/map/npc/027-1/golbenez.txt4
-rw-r--r--world/map/npc/027-1/graves.txt39
-rw-r--r--world/map/npc/027-1/monsters.txt3
-rw-r--r--world/map/npc/027-2/_mobs.txt3
-rw-r--r--world/map/npc/027-2/alacrius.txt3
-rw-r--r--world/map/npc/027-2/alacrius2.txt3
-rw-r--r--world/map/npc/027-2/barman.txt3
-rw-r--r--world/map/npc/027-2/caretaker.txt5
-rw-r--r--world/map/npc/027-2/cerhan.txt3
-rw-r--r--world/map/npc/027-2/crying_child.txt4
-rw-r--r--world/map/npc/027-2/diary.txt3
-rw-r--r--world/map/npc/027-2/door.txt6
-rw-r--r--world/map/npc/027-2/evil_guard.txt6
-rw-r--r--world/map/npc/027-2/golbenez.txt4
-rw-r--r--world/map/npc/027-2/gy_inn_shops.txt9
-rw-r--r--world/map/npc/027-2/headless_man.txt4
-rw-r--r--world/map/npc/027-2/husband.txt4
-rw-r--r--world/map/npc/027-2/innkeeper.txt4
-rw-r--r--world/map/npc/027-2/lover.txt4
-rw-r--r--world/map/npc/027-2/testnpcs.txt12
-rw-r--r--world/map/npc/027-2/werewolf.txt3
-rw-r--r--world/map/npc/027-3/_mobs.txt3
-rw-r--r--world/map/npc/027-3/caskets.txt3
-rw-r--r--world/map/npc/027-3/entrance.txt12
-rw-r--r--world/map/npc/027-4/_mobs.txt3
-rw-r--r--world/map/npc/027-4/reaper_script.txt3
-rw-r--r--world/map/npc/028-1/Portal.txt4
-rw-r--r--world/map/npc/028-1/_mobs.txt3
-rw-r--r--world/map/npc/028-3/_mobs.txt3
-rw-r--r--world/map/npc/029-1/_mobs.txt3
-rw-r--r--world/map/npc/029-1/barrier.txt3
-rw-r--r--world/map/npc/029-1/dock.txt3
-rw-r--r--world/map/npc/029-3/_mobs.txt3
-rw-r--r--world/map/npc/029-3/barrier.txt3
-rw-r--r--world/map/npc/029-3/parua.txt36
-rw-r--r--world/map/npc/030-1/_mobs.txt3
-rw-r--r--world/map/npc/030-2/_mobs.txt3
-rw-r--r--world/map/npc/031-1/_import.txt1
-rw-r--r--world/map/npc/031-1/_mobs.txt3
-rw-r--r--world/map/npc/031-1/angelaOutside.txt4
-rw-r--r--world/map/npc/031-1/dock.txt7
-rw-r--r--world/map/npc/031-1/frozenbeard.txt27
-rw-r--r--world/map/npc/031-1/house.txt3
-rw-r--r--world/map/npc/031-2/_mobs.txt3
-rw-r--r--world/map/npc/031-2/angelaHouse.txt4
-rw-r--r--world/map/npc/031-2/cindyHouse.txt4
-rw-r--r--world/map/npc/031-3/_mobs.txt3
-rw-r--r--world/map/npc/031-3/labyrinth.txt3
-rw-r--r--world/map/npc/031-4/_mobs.txt3
-rw-r--r--world/map/npc/031-4/barrier.txt3
-rw-r--r--world/map/npc/031-4/cindyCave.txt23
-rw-r--r--world/map/npc/032-1/_mobs.txt3
-rw-r--r--world/map/npc/032-1/miriam.txt4
-rw-r--r--world/map/npc/032-3/_mobs.txt3
-rw-r--r--world/map/npc/033-1/_mobs.txt3
-rw-r--r--world/map/npc/033-1/backDoor.txt3
-rw-r--r--world/map/npc/033-1/barbarianinit.txt3
-rw-r--r--world/map/npc/033-1/birrod.txt4
-rw-r--r--world/map/npc/033-1/kimarr.txt3
-rw-r--r--world/map/npc/033-1/yerrnk.txt3
-rw-r--r--world/map/npc/034-1/_mobs.txt3
-rw-r--r--world/map/npc/034-1/ambushs.txt90
-rw-r--r--world/map/npc/034-1/yetiSpawn.txt6
-rw-r--r--world/map/npc/034-2/_mobs.txt3
-rw-r--r--world/map/npc/041-1/_mobs.txt3
-rw-r--r--world/map/npc/041-1/tutorial.txt3
-rw-r--r--world/map/npc/042-1/_mobs.txt3
-rw-r--r--world/map/npc/042-1/hasan.txt18
-rw-r--r--world/map/npc/042-1/kaan.txt4
-rw-r--r--world/map/npc/042-1/npcs.txt3
-rw-r--r--world/map/npc/042-1/valon.txt4
-rw-r--r--world/map/npc/042-2/_mobs.txt3
-rw-r--r--world/map/npc/042-2/sorfina.txt14
-rw-r--r--world/map/npc/042-2/tanisha.txt3
-rw-r--r--world/map/npc/043-1/_import.txt5
-rw-r--r--world/map/npc/043-1/_mobs.txt27
-rw-r--r--world/map/npc/043-1/_warps.txt6
-rw-r--r--world/map/npc/043-3/_import.txt5
-rw-r--r--world/map/npc/043-3/_mobs.txt43
-rw-r--r--world/map/npc/043-3/_warps.txt4
-rw-r--r--world/map/npc/044-1/_mobs.txt3
-rw-r--r--world/map/npc/044-3/_mobs.txt3
-rw-r--r--world/map/npc/045-1/_mobs.txt3
-rw-r--r--world/map/npc/046-1/_mobs.txt3
-rw-r--r--world/map/npc/046-3/_mobs.txt3
-rw-r--r--world/map/npc/047-1/_mobs.txt3
-rw-r--r--world/map/npc/048-1/_mobs.txt3
-rw-r--r--world/map/npc/048-2/_mobs.txt3
-rw-r--r--world/map/npc/048-2/bluesageConfig.txt12
-rw-r--r--world/map/npc/048-2/helperAccused.txt4
-rw-r--r--world/map/npc/048-2/helperBookpages1.txt4
-rw-r--r--world/map/npc/048-2/helperBookpages2.txt4
-rw-r--r--world/map/npc/048-2/helperBookpages3.txt4
-rw-r--r--world/map/npc/048-2/helperChief.txt4
-rw-r--r--world/map/npc/048-2/helperCleaning1.txt4
-rw-r--r--world/map/npc/048-2/helperCleaning2.txt4
-rw-r--r--world/map/npc/048-2/helperCleaning3.txt4
-rw-r--r--world/map/npc/048-2/helperCleaning4.txt4
-rw-r--r--world/map/npc/048-2/helperCleaning5.txt4
-rw-r--r--world/map/npc/048-2/helperJanitor.txt4
-rw-r--r--world/map/npc/048-2/helperMInk.txt4
-rw-r--r--world/map/npc/048-2/helperMReed.txt4
-rw-r--r--world/map/npc/048-2/helperMSilk.txt4
-rw-r--r--world/map/npc/048-2/helperMYetiClaw.txt4
-rw-r--r--world/map/npc/048-2/helperResting1.txt4
-rw-r--r--world/map/npc/048-2/helperResting2.txt4
-rw-r--r--world/map/npc/048-2/sageNikolai.txt7
-rw-r--r--world/map/npc/048-2/slimes.txt42
-rw-r--r--world/map/npc/048-2/visitors.txt6
-rw-r--r--world/map/npc/051-1/_mobs.txt3
-rw-r--r--world/map/npc/051-1/desert.txt6
-rw-r--r--world/map/npc/051-1/desertmonsters.txt34
-rw-r--r--world/map/npc/051-1/forest.txt6
-rw-r--r--world/map/npc/051-1/forestmonsters.txt4
-rw-r--r--world/map/npc/051-1/janitor.txt6
-rw-r--r--world/map/npc/051-3/_mobs.txt3
-rw-r--r--world/map/npc/051-3/ambush.txt26
-rw-r--r--world/map/npc/051-3/jailslimes.txt4
-rw-r--r--world/map/npc/051-3/janitor.txt5
-rw-r--r--world/map/npc/051-3/locks.txt16
-rw-r--r--world/map/npc/051-3/reinforcements.txt24
-rw-r--r--world/map/npc/052-1/_mobs.txt3
-rw-r--r--world/map/npc/052-1/channelling.txt26
-rw-r--r--world/map/npc/052-1/janitor.txt3
-rw-r--r--world/map/npc/052-2/_mobs.txt3
-rw-r--r--world/map/npc/052-2/chest.txt26
-rw-r--r--world/map/npc/052-2/janitor.txt15
-rw-r--r--world/map/npc/052-2/lobby.txt42
-rw-r--r--world/map/npc/052-2/partyroom.txt37
-rw-r--r--world/map/npc/052-2/storage.txt41
-rw-r--r--world/map/npc/055-1/_mobs.txt3
-rw-r--r--world/map/npc/055-1/_warps.txt4
-rw-r--r--world/map/npc/055-1/pumpkins.txt3
-rw-r--r--world/map/npc/055-3/_mobs.txt3
-rw-r--r--world/map/npc/055-3/_warps.txt6
-rw-r--r--world/map/npc/056-1/_mobs.txt3
-rw-r--r--world/map/npc/056-2/_mobs.txt3
-rw-r--r--world/map/npc/056-2/barrier.txt3
-rw-r--r--world/map/npc/056-2/mirak.txt3
-rw-r--r--world/map/npc/056-2/notes.txt6
-rw-r--r--world/map/npc/057-1/_mobs.txt3
-rw-r--r--world/map/npc/_import.txt5
-rw-r--r--world/map/npc/botcheck/_import.txt1
-rw-r--r--world/map/npc/botcheck/_mobs.txt3
-rw-r--r--world/map/npc/botcheck/announcements.txt173
-rw-r--r--world/map/npc/easter/2010/eggs.txt1
-rw-r--r--world/map/npc/functions/banker.txt8
-rw-r--r--world/map/npc/functions/barber.txt6
-rw-r--r--world/map/npc/functions/clear_vars.txt10
-rw-r--r--world/map/npc/functions/dailyquest.txt7
-rwxr-xr-xworld/map/npc/functions/debug.txt19
-rw-r--r--world/map/npc/functions/evil_obelisk.txt3
-rw-r--r--world/map/npc/functions/ferry.txt18
-rw-r--r--world/map/npc/functions/game_rules.txt3
-rw-r--r--world/map/npc/functions/inn.txt3
-rw-r--r--world/map/npc/functions/lockpicking.txt4
-rw-r--r--world/map/npc/functions/magic.txt13
-rw-r--r--world/map/npc/functions/mob_points.txt3
-rw-r--r--world/map/npc/functions/process_equip.txt3
-rw-r--r--world/map/npc/functions/slot_machine.txt3
-rw-r--r--world/map/npc/functions/soul_menhir.txt3
-rw-r--r--world/map/npc/functions/strangerquiz.txt3
-rw-r--r--world/map/npc/functions/time.txt3
-rw-r--r--world/map/npc/functions/water_bottle.txt3
-rw-r--r--world/map/npc/halloween/2008/prize_master.txt17
-rw-r--r--world/map/npc/halloween/2011/trick_or_treat.txt1
-rw-r--r--world/map/npc/items/magic_gm_top_hat.txt3
-rw-r--r--world/map/npc/items/purification_potion.txt3
-rw-r--r--world/map/npc/items/require_stat.txt3
-rw-r--r--world/map/npc/items/restricted_item.txt3
-rw-r--r--world/map/npc/items/scissors.txt3
-rw-r--r--world/map/npc/items/shock_sweet.txt3
-rw-r--r--world/map/npc/items/unreleased_item.txt3
-rw-r--r--world/map/npc/items/warpTowels.txt160
480 files changed, 2527 insertions, 1251 deletions
diff --git a/client-data b/client-data
-Subproject a2fd108c1ca8cf389575eca833fc12c18d7e097
+Subproject dbcdffa7c9ba81c193cc1c9f501355afd99187c
diff --git a/tools/_news_colors.py b/tools/_news_colors.py
index 8b0c00b9..e98f73bf 100644
--- a/tools/_news_colors.py
+++ b/tools/_news_colors.py
@@ -20,6 +20,8 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+import cgi
+
__all__ = ['make_html_colors_dict', 'make_txt_colors_dict']
class Color(object):
@@ -49,6 +51,7 @@ class HtmlDate(object):
class HtmlLink(object):
__slots__ = ()
def __format__(self, target):
+ target = cgi.escape(target, True)
return '<a href="%s">%s</a>' % (target, target)
class HtmlSignature(object):
diff --git a/tools/tmx_converter.py b/tools/tmx_converter.py
index 94cf0b2c..009a1145 100755
--- a/tools/tmx_converter.py
+++ b/tools/tmx_converter.py
@@ -289,7 +289,7 @@ class ContentHandler(xml.sax.ContentHandler):
self.state = State.FINAL
def endDocument(self):
- self.mobs.write('\n\n%s.gat,0,0,0|script|Mob%s|-1,{\n' % (self.base, self.base))
+ self.mobs.write('\n\n%s.gat,0,0,0|script|Mob%s|-1,\n{\n' % (self.base, self.base))
for mob_id in sorted(self.mob_ids):
self.mobs.write('On%d:\n set @mobID, %d;\n callfunc "MobPoints";\n end;\n\n' % (mob_id, mob_id))
self.mobs.write(' end;\n}\n')
diff --git a/world/map/conf/magic.conf.template b/world/map/conf/magic.conf.template
index eb4f590d..54f4a602 100644
--- a/world/map/conf/magic.conf.template
+++ b/world/map/conf/magic.conf.template
@@ -92,10 +92,9 @@ PROCEDURE gain_heal_xp(value, # How many HP we healed
IF target <> caster
THEN gain_experience(caster, base_exp_factor * extract_healer_experience(target, value), 0, 1);
-PROCEDURE gain_xp(gain) =
+PROCEDURE gain_xp(gain, index) =
IF (level + 3 > skill(caster, MAGIC)) # Level 4 and 5 magic users don't gain anything from spell levels 0 resp. 0+1
THEN (
- index = spell_index(self_spell);
last_index = (script_int(caster, SCRIPT_XP) >> SCRIPT_LASTSPELL_SHIFT) & SCRIPT_LASTSPELL_MASK;
last_xp = (script_int(caster, SCRIPT_XP) >> SCRIPT_XP_SHIFT) & SCRIPT_XP_MASK;
IF (index != last_index)
@@ -293,7 +292,7 @@ SPELL transmute-wood-to-figurine (name : STRING) : "#T00" =
EFFECT CALL adjust_spellpower(school);
CALL default_effect();
CALL create_item("MoubooFigurine", 1, "WarpedLog", 40);
- CALL gain_xp(1);
+ CALL gain_xp(1, 0);
| REQUIRE name = "lurk" =>
EFFECT CALL adjust_spellpower(school);
CALL default_effect();
@@ -311,7 +310,7 @@ SPELL make-sulphur : "#T01" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
CALL create_item("SulphurPowder", 1 + spellpower / 100 + (random(max(1, 800 - spellpower)) / 180), "PileOfAsh", 50);
- CALL gain_xp(1);
+ CALL gain_xp(1, 1);
SPELL lesser-heal (target : STRING) : "#L00" =
LET level = 0
@@ -333,7 +332,7 @@ SPELL lesser-heal (target : STRING) : "#L00" =
THEN ABORT;)
CALL gain_heal_xp(min(200, max_hp(target) - hp(target)), 1, 2, 2); # report half values for non-instaheal
CALL heal(target, 200);
- CALL gain_xp(1);
+ CALL gain_xp(1, 2);
SPELL flare-dart : "#W00" =
@@ -349,7 +348,7 @@ SPELL flare-dart : "#W00" =
CALL install_attack_spell(3 + spellpower / 50,
1200,
4, 31);
- CALL gain_xp(1);
+ CALL gain_xp(1, 3);
ATTRIGGER CALL attack_check(target);
CALL elt_damage (target, damage, damage_bonus, ELT_WATER, ELT_FIRE, 15);
@@ -363,13 +362,13 @@ SPELL magic-blade : "#W01" =
EFFECT CALL adjust_spellpower(WAR);
CALL default_effect();
CALL install_melee_spell(10 + spellpower / 15, 1200, 30);
- CALL gain_xp(1);
+ CALL gain_xp(1, 4);
ATTRIGGER CALL melee_damage(target, 60, 5 + str(caster));
| COMPONENTS ["Knife"] =>
EFFECT CALL adjust_spellpower(WAR);
CALL default_effect();
CALL install_melee_spell(10 + spellpower / 15, 1200, 30);
- CALL gain_xp(1);
+ CALL gain_xp(1, 5);
ATTRIGGER CALL melee_damage(target, 40, 5 + str(caster));
)
@@ -393,7 +392,7 @@ SPELL grow-mauve : "#N01" =
COMPONENTS ["MauveHerb", "Root"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
- CALL gain_xp(1);
+ CALL gain_xp(1, 6);
spawn(rbox(location, 2), caster, 1029, 1, skill(caster, school) / 2 + 1, 10000);
SPELL grow-alizarin : "#N02" =
@@ -404,7 +403,7 @@ SPELL grow-alizarin : "#N02" =
COMPONENTS ["AlizarinHerb", "Root"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
- CALL gain_xp(1);
+ CALL gain_xp(1, 7);
spawn(rbox(location, 2), caster, 1032, 1, skill(caster, school) / 2 + 1, 10000);
SPELL grow-gamboge : "#N03" =
@@ -415,7 +414,7 @@ SPELL grow-gamboge : "#N03" =
COMPONENTS ["GambogeHerb", "Root"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
- CALL gain_xp(1);
+ CALL gain_xp(1, 8);
spawn(rbox(location, 2), caster, 1031, 1, skill(caster, school) / 2 + 1, 10000);
SPELL grow-cobalt : "#N04" =
@@ -426,7 +425,7 @@ SPELL grow-cobalt : "#N04" =
COMPONENTS ["CobaltHerb", "Root"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
- CALL gain_xp(1);
+ CALL gain_xp(1, 9);
spawn(rbox(location, 2), caster, 1030, 1, skill(caster, school) / 2 + 1, 10000);
@@ -437,7 +436,7 @@ LOCAL SPELL summon-maggots : "#A00" =
REQUIRE skill(caster, MAGIC) > level,
COMPONENTS ["MaggotSlime", "Root"])
=> EFFECT CALL adjust_spellpower(school);
- CALL gain_xp(1);
+ CALL gain_xp(1, 10);
CALL summon_spell(1002,
1 + ((sqrt(spellpower) + (spellpower / 15)) / 5),
5000 - (spellpower * 5),
@@ -473,7 +472,7 @@ SPELL make-arrows : "#T10" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
CALL create_item("Arrow", 1 + spellpower / 40 + (random(max(1, 800 - spellpower)) / 80), "WarpedLog", 500);
- CALL gain_xp(1);
+ CALL gain_xp(1, 11);
SPELL make-shirt : "#T11" =
LET level = 1
@@ -485,7 +484,7 @@ SPELL make-shirt : "#T11" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
CALL create_item("CottonShirt", 1, "CottonCloth", 425);
- CALL gain_xp(2);
+ CALL gain_xp(2, 12);
SPELL make-tanktop : "#T12" =
LET level = 1
@@ -497,7 +496,7 @@ SPELL make-tanktop : "#T12" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
CALL create_item("TankTop", 1, "CottonCloth", 350);
- CALL gain_xp(2);
+ CALL gain_xp(2, 13);
SPELL make-short-tanktop : "#T13" =
LET level = 1
@@ -509,7 +508,7 @@ SPELL make-short-tanktop : "#T13" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
CALL create_item("ShortTankTop", 1, "CottonCloth", 250);
- CALL gain_xp(2);
+ CALL gain_xp(2, 14);
SPELL make-iron-powder : "#T14" =
LET level = 1
@@ -521,7 +520,7 @@ SPELL make-iron-powder : "#T14" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
CALL create_item("IronPowder", 1 + spellpower / 140 + (random(max(1, 900 - spellpower)) / 220), "IronOre", 700);
- CALL gain_xp(3);
+ CALL gain_xp(3, 15);
SPELL make-concentration-potion : "#T15" =
LET level = 1
@@ -537,7 +536,7 @@ SPELL make-concentration-potion : "#T15" =
2000);
IF (success)
THEN CALL set_var(MAGIC_FLAGS, 1, MFLAG_MADE_CONC_POTION_SHIFT, 1);
- CALL gain_xp(4);
+ CALL gain_xp(4, 16);
SPELL merge-concentration-potions : "#T16" =
LET level = 1
@@ -552,7 +551,7 @@ SPELL merge-concentration-potions : "#T16" =
message (caster, "success = " + success);
IF (success)
THEN CALL set_var(MAGIC_FLAGS, 1, MFLAG_MADE_CONC_POTION_SHIFT, 1);
- CALL gain_xp(4);
+ CALL gain_xp(4, 17);
SPELL lay-on-hands (target : STRING) : "#L10" =
@@ -597,7 +596,7 @@ SPELL lay-on-hands (target : STRING) : "#L10" =
CALL gain_heal_xp(power, 1, 1, 3);
CALL quickheal(target, power);
status_change(caster, SC_HALT_REGENERATE, 0, 0, 0, 0, 10000);
- CALL gain_xp(min(4, payment / 100));
+ CALL gain_xp(min(4, payment / 100), 18);
SPELL lightning-strike : "#W10" =
LET level = 1
@@ -612,7 +611,7 @@ SPELL lightning-strike : "#W10" =
CALL install_attack_spell(1 + spellpower / 90,
3000,
8, 31);
- CALL gain_xp(2);
+ CALL gain_xp(2, 19);
ATTRIGGER CALL attack_check(target);
in_rain = 0;
area = location(caster);
@@ -660,7 +659,7 @@ LOCAL SPELL arrow-hail : "#W11" =
damage = 125;
damage_bonus = spellpower / 5;
- CALL gain_xp(2);
+ CALL gain_xp(2, 20);
FOR i = 0 TO spellpower / 8 DO (
FOR j = 0 TO 2 DO (
location = random_location(area);
@@ -706,7 +705,7 @@ SPELL flying-backpack (target : PC) : "#N10" =
THEN sfx(caster, 2, 0);
status_change(target, SC_FLYING_BACKPACK, 0, 0, 0, 0, 5000 + (spellpower * 500));
message (target, "Your backpack is lifted by a mystical force; you no longer feel it pressing on your back.");
- CALL gain_xp(1);
+ CALL gain_xp(1, 21);
ATEND message (target, "Your backpack is no longer levitating.");
sfx(target, 2, 0);
@@ -725,7 +724,7 @@ SPELL protect (target : PC) : "#N11" =
THEN CALL default_effect();
status_change(target, SC_PHYS_SHIELD, 5 + max(15, spellpower / 20), 0, 0, 0, 5000 + (spellpower * 1000));
message (target, "You feel more protected.");
- CALL gain_xp(2);
+ CALL gain_xp(2, 22);
ATEND message (target, "You feel less protected.");
sfx(target, 111, 0);
@@ -740,7 +739,7 @@ SPELL happy-curse (target : PC) : "#N12" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
FOR i = 0 TO (spellpower / 10) DO (emote(target, 3); WAIT 500;);
- CALL gain_xp(1);
+ CALL gain_xp(1, 23);
LOCAL SPELL rain : "#N13" =
LET level = 1
@@ -758,7 +757,7 @@ LOCAL SPELL rain : "#N13" =
THEN (message (caster, "A nearby raincloud absorbs your magic.");
ABORT;)
- CALL gain_xp(1);
+ CALL gain_xp(1, 24);
range = min(MAX_RAIN_SPELL_RADIUS, 3 + min(spellpower, 200) / 30);
area = rbox(location(caster), range);
IF (is_in(location(npc("#DruidTree0#_M")), area)
@@ -847,7 +846,7 @@ SPELL barrier (target : PC) : "#A10" =
THEN CALL default_effect();
status_change(target, SC_MBARRIER, 20 + max(30, spellpower / 8), 0, 0, 0, 2000 + (spellpower * 200));
message (target, "You are surrounded by a magical barrier.");
- CALL gain_xp(3);
+ CALL gain_xp(3, 25);
ATEND message (target, "Your magical barrier dissipates.");
sfx(target, SFX_UNBARRIER, 0);
@@ -861,7 +860,7 @@ LOCAL SPELL summon-spiky-mushrooms : "#A11" =
COMPONENTS ["HardSpike", "Root"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
- CALL gain_xp(1);
+ CALL gain_xp(1, 26);
CALL summon_spell(1019, 1 + spellpower / 120, 5000 - (spellpower * 9), spellpower * 400, 2);
LOCAL SPELL summon-fluffies : "#A12" =
@@ -873,7 +872,7 @@ LOCAL SPELL summon-fluffies : "#A12" =
COMPONENTS ["WhiteFur", "Root"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
- CALL gain_xp(1);
+ CALL gain_xp(1, 27);
CALL summon_spell(1020, 1 + spellpower / 170 + spellpower / 430, 5000 - (spellpower * 8), spellpower * 350, 3);
@@ -925,7 +924,7 @@ SPELL enchant-lifestone : "#G12" =
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
create_item(caster, "Lifestone", 1);
- CALL gain_xp(1);
+ CALL gain_xp(1, 28);
SPELL sense-spouse : "#G13" =
LET level = 1
@@ -977,7 +976,7 @@ SPELL hide (target : PC) : "#A13" =
IF (caster <> target)
THEN CALL default_effect();
status_change(target, SC_HIDE, 0, 0, 0, 0, 5000 + (spellpower * 2500));
- CALL gain_xp(2);
+ CALL gain_xp(2, 29);
message(target, "You are hidden!");
IF (caster <> target) THEN message(caster, "You hid someone!");
ATEND message(target, "You are no longer hidden.");
@@ -1000,7 +999,7 @@ SPELL cure-poison (target : PC) : "#L20" =
IF (running_status_update (target, SC_POISON))
THEN (CALL gain_heal_xp(40, 1, 2, 2);
stop_status_change (target, SC_POISON);
- CALL gain_xp(2);
+ CALL gain_xp(2, 30);
IF caster <> target
THEN sfx(target, SFX_HEAL, 0););
diff --git a/world/map/data/002-1.wlk b/world/map/data/002-1.wlk
index 3ab797d7..bb3dcef9 100644
--- a/world/map/data/002-1.wlk
+++ b/world/map/data/002-1.wlk
Binary files differ
diff --git a/world/map/data/002-2.wlk b/world/map/data/002-2.wlk
new file mode 100644
index 00000000..1de69a2b
--- /dev/null
+++ b/world/map/data/002-2.wlk
Binary files differ
diff --git a/world/map/data/002-3.wlk b/world/map/data/002-3.wlk
index e2d05c89..35421c22 100644
--- a/world/map/data/002-3.wlk
+++ b/world/map/data/002-3.wlk
Binary files differ
diff --git a/world/map/data/002-4.wlk b/world/map/data/002-4.wlk
index b6abb2c1..40b37e67 100644
--- a/world/map/data/002-4.wlk
+++ b/world/map/data/002-4.wlk
Binary files differ
diff --git a/world/map/data/002-5.wlk b/world/map/data/002-5.wlk
new file mode 100644
index 00000000..738a6412
--- /dev/null
+++ b/world/map/data/002-5.wlk
Binary files differ
diff --git a/world/map/data/003-1.wlk b/world/map/data/003-1.wlk
index 34168aed..fceedb2f 100644
--- a/world/map/data/003-1.wlk
+++ b/world/map/data/003-1.wlk
Binary files differ
diff --git a/world/map/data/004-1.wlk b/world/map/data/004-1.wlk
index bacd8355..b48d311a 100644
--- a/world/map/data/004-1.wlk
+++ b/world/map/data/004-1.wlk
Binary files differ
diff --git a/world/map/data/018-1.wlk b/world/map/data/018-1.wlk
index 05b6b198..1da6b139 100644
--- a/world/map/data/018-1.wlk
+++ b/world/map/data/018-1.wlk
Binary files differ
diff --git a/world/map/data/021-1.wlk b/world/map/data/021-1.wlk
index 2e18e65f..19de30d3 100644
--- a/world/map/data/021-1.wlk
+++ b/world/map/data/021-1.wlk
Binary files differ
diff --git a/world/map/data/021-3.wlk b/world/map/data/021-3.wlk
new file mode 100644
index 00000000..663cfbd4
--- /dev/null
+++ b/world/map/data/021-3.wlk
Binary files differ
diff --git a/world/map/data/031-1.wlk b/world/map/data/031-1.wlk
index 8b5b0d7f..9b33c24d 100644
--- a/world/map/data/031-1.wlk
+++ b/world/map/data/031-1.wlk
Binary files differ
diff --git a/world/map/data/043-1.wlk b/world/map/data/043-1.wlk
new file mode 100644
index 00000000..4b2fdd8b
--- /dev/null
+++ b/world/map/data/043-1.wlk
Binary files differ
diff --git a/world/map/data/043-3.wlk b/world/map/data/043-3.wlk
new file mode 100644
index 00000000..1a17b2f9
--- /dev/null
+++ b/world/map/data/043-3.wlk
Binary files differ
diff --git a/world/map/data/055-1.wlk b/world/map/data/055-1.wlk
index ea9e9293..0f0d3501 100644
--- a/world/map/data/055-1.wlk
+++ b/world/map/data/055-1.wlk
Binary files differ
diff --git a/world/map/data/055-3.wlk b/world/map/data/055-3.wlk
index 6c8c1fa0..00bfd16d 100644
--- a/world/map/data/055-3.wlk
+++ b/world/map/data/055-3.wlk
Binary files differ
diff --git a/world/map/data/057-1.wlk b/world/map/data/057-1.wlk
index b3c89549..0e72809f 100644
--- a/world/map/data/057-1.wlk
+++ b/world/map/data/057-1.wlk
Binary files differ
diff --git a/world/map/data/resnametable.txt b/world/map/data/resnametable.txt
index 07f1f6a2..552a135b 100644
--- a/world/map/data/resnametable.txt
+++ b/world/map/data/resnametable.txt
@@ -2,8 +2,10 @@
001-2.gat#001-2.wlk#
001-3.gat#001-3.wlk#
002-1.gat#002-1.wlk#
+002-2.gat#002-2.wlk#
002-3.gat#002-3.wlk#
002-4.gat#002-4.wlk#
+002-5.gat#002-5.wlk#
003-1.gat#003-1.wlk#
003-2.gat#003-2.wlk#
004-1.gat#004-1.wlk#
@@ -54,6 +56,7 @@
020-3.gat#020-3.wlk#
021-1.gat#021-1.wlk#
021-2.gat#021-2.wlk#
+021-3.gat#021-3.wlk#
022-1.gat#022-1.wlk#
024-1.gat#024-1.wlk#
024-2.gat#024-2.wlk#
@@ -85,6 +88,8 @@
041-1.gat#041-1.wlk#
042-1.gat#042-1.wlk#
042-2.gat#042-2.wlk#
+043-1.gat#043-1.wlk#
+043-3.gat#043-3.wlk#
044-1.gat#044-1.wlk#
044-3.gat#044-3.wlk#
045-1.gat#045-1.wlk#
diff --git a/world/map/db/const.txt b/world/map/db/const.txt
index f6c3ccde..cc604257 100644
--- a/world/map/db/const.txt
+++ b/world/map/db/const.txt
@@ -1,5 +1,7 @@
// Constants usable in scripts.
-// This constant is used to define whether unreleased items are equippable. This defaults to on, but should be disabled on the official server.
+// This constant is used to define whether unreleased items are equippable.
+// This defaults to 1, but should be disabled on the official server.
+// If set to 2 or higher, it also disables global timers to aid gdb'ing.
debug 1
@@ -541,6 +543,7 @@ FLAG_DECLINED_BEANIEHAT 8192 // player declined Beanie Copter Hat from Milly
DOCK_tulimshar 1
DOCK_hurnscald 2
DOCK_candor 3
+DOCK_nivalis 4
// -----------------
// -- Easter 2010 --
diff --git a/world/map/db/item_db.txt b/world/map/db/item_db.txt
index f31e0203..023cbbef 100644
--- a/world/map/db/item_db.txt
+++ b/world/map/db/item_db.txt
@@ -2,7 +2,7 @@
0, DEFAULT, Default, 0, 20, 10, 10, , , , , , 2, , , , , {}, {}
501, CactusDrink, Cactus Drink, 0, 50, 25, 4, , , , , , 2, , , 0, , {itemheal 15, 0;}, {}
502, CactusPotion, Cactus Potion, 0, 70, 35, 7, , , , , , 2, , , 0, , {itemheal 25, 0;}, {}
-503, CasinoCoins, Casino Coins, 3, 20, 10, 1, , , , , , , , , , , {}, {}
+503, CasinoCoins, Casino Coins, 3, 10, 10, 1, , , , , , , , , , , {}, {}
504, DecorCandy, Decor Candy, 3, 25, 10, 1, , , , , , , , , , , {}, {}
505, MaggotSlime, Maggot Slime, 3, 8, 4, 1, , , , , , , , , , , {}, {}
506, CandyCane, Candy Cane, 0, 20, 10, 1, , , , , , 2, , , 0, , {itemheal 5, 0;}, {}
diff --git a/world/map/db/mob_db.txt b/world/map/db/mob_db.txt
index 7898fbc7..f8d4311f 100644
--- a/world/map/db/mob_db.txt
+++ b/world/map/db/mob_db.txt
@@ -117,5 +117,8 @@
1105, ViciousSquirrel, ViciousSquirrel, 15, 140, 1, 0, 5, 1, 20, 25, 1, 6, 3, 3, 1, 0, 15, 40, 1, 1, 1, 3, 20, 133, 800, 800, 672, 480, 704, 7000, 680, 1000, 681, 1000, 682, 1000, 683, 1000, 807, 800, 4005, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15
1106, WickedMushroom, WickedMushroom, 110, 550, 0, 0, 35, 1, 70, 80, 4, 4, 16, 12, 10, 10, 35, 10, 1, 1, 1, 3, 22, 133, 800, 1800, 672, 480, 613, 500, 4007, 50, 567, 100, 566, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 60
1107, Bluepar, Bluepar, 30, 350, 0, 0, 7, 2, 7, 15, 0, 5, 1, 1, 1, 0, 20, 25, 2, 2, 1, 3, 20, 133, 800, 1872, 672, 480, 567, 800, 568, 800, 4002, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 50
+1108, AngryFireGoblin, AngryFireGoblin, 30, 320, 0, 0, 4, 1, 25, 40, 0, 10, 3, 3, 3, 2, 10, 50, 1, 1, 1, 3, 23, 133, 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
+1109, AngrySeaSlime, AngrySeaSlime, 80, 1200, 0, 0, 23, 1, 40, 70, 13, 17, 3, 30, 3, 0, 35, 35, 1, 1, 1, 0, 41, 135, 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
+1110, AngryGreenSlime, AngryGreenSlime, 60, 1000, 0, 0, 126, 1, 100, 160, 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
#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
diff --git a/world/map/news.d/13-lpc.txt b/world/map/news.d/13-lpc.txt
index 1ab530ca..c68a892d 100644
--- a/world/map/news.d/13-lpc.txt
+++ b/world/map/news.d/13-lpc.txt
@@ -32,7 +32,7 @@ Now, the links:
Server coding: {link:irc://chat.freenode.net#tmwa}
-Everything else: {link:irc://irc.themanaworld.org#tmw-dev} or {link:irc://chat.freenode.net#themanaworld-dev}
+Everything else: {link:irc://chat.freenode.net#themanaworld-dev}
Forums: {link:http://forums.themanaworld.org/}
diff --git a/world/map/news.d/19-rollbackup.txt b/world/map/news.d/19-rollbackup.txt
new file mode 100644
index 00000000..16e77ba5
--- /dev/null
+++ b/world/map/news.d/19-rollbackup.txt
@@ -0,0 +1,9 @@
+{date:2013-06-05}
+
+We had a server crash, and had to restore everything from offline backup.
+
+34 hours were lost, from about 17:30 (UTC) on 4 June to about 03:30 on 6 June. This affects the game, the forums, and the wiki.
+
+We're going to set up hourly offsite backups of game, forum, and wiki data so that future outages are less painful.
+
+{author:Frost}
diff --git a/world/map/news.d/19-double-exp-drop.txt b/world/map/news.d/20-double-exp-drop.txt
index 85140414..85140414 100644
--- a/world/map/news.d/19-double-exp-drop.txt
+++ b/world/map/news.d/20-double-exp-drop.txt
diff --git a/world/map/news.d/21-tulimshar-caves.txt b/world/map/news.d/21-tulimshar-caves.txt
new file mode 100644
index 00000000..382c3cbe
--- /dev/null
+++ b/world/map/news.d/21-tulimshar-caves.txt
@@ -0,0 +1,25 @@
+{date:2013-06-29}
+
+This release brings a few new additions to the game:
+
+Wushin overhauled the desert caves with an awesome
+new cave tileset. Also the sewers below Tulimshar are
+now accessible. Make sure to check them out!
+
+Malivox took the occasion to stop camping in the
+desert and moved into a small house south of
+Tulimshar.
+
+Frozenbeard has expanded his ferry service in
+Nivalis. You can now go between Nivalis and
+the other major docks both ways. Proper docks for
+Nivalis are being worked on.
+
+With a ferry now serving Nivalis, Dyrin will send you
+somehwere else in Kaizei instead, away from Nivalis.
+
+As usual there are also a lot of smaller fixes and
+changes. Thanks to everyone who reported issues
+and helped fix these things!
+
+{author:TMW Development Team}
diff --git a/world/map/news.html b/world/map/news.html
index e017ff80..d187cf6e 100644
--- a/world/map/news.html
+++ b/world/map/news.html
@@ -1,6 +1,34 @@
<!-- Generated by tools/news.py for index.php -->
<div>
<p/>
+<font color="#0000ff">2013-06-29</font>
+<p/>
+This release brings a few new additions to the game:
+<p/>
+Wushin overhauled the desert caves with an awesome
+new cave tileset. Also the sewers below Tulimshar are
+now accessible. Make sure to check them out!
+<p/>
+Malivox took the occasion to stop camping in the
+desert and moved into a small house south of
+Tulimshar.
+<p/>
+Frozenbeard has expanded his ferry service in
+Nivalis. You can now go between Nivalis and
+the other major docks both ways. Proper docks for
+Nivalis are being worked on.
+<p/>
+With a ferry now serving Nivalis, Dyrin will send you
+somehwere else in Kaizei instead, away from Nivalis.
+<p/>
+As usual there are also a lot of smaller fixes and
+changes. Thanks to everyone who reported issues
+and helped fix these things!
+<p/>
+-<font color="#009000">TMW Development Team</font>
+</div>
+<div>
+<p/>
<font color="#0000ff">2013-06-07</font>
<p/>
This weekend we're temporarily doubling both the
@@ -25,6 +53,18 @@ you will no longer be kicked with an invalid packet error.
</div>
<div>
<p/>
+<font color="#0000ff">2013-06-05</font>
+<p/>
+We had a server crash, and had to restore everything from offline backup.
+<p/>
+34 hours were lost, from about 17:30 (UTC) on 4 June to about 03:30 on 6 June. This affects the game, the forums, and the wiki.
+<p/>
+We're going to set up hourly offsite backups of game, forum, and wiki data so that future outages are less painful.
+<p/>
+-<font color="#009000">Frost</font>
+</div>
+<div>
+<p/>
<font color="#0000ff">2013-04-28</font>
<p/>
We're having a bugfix release today.
@@ -91,7 +131,7 @@ This means there was some downtime, starting at 16:00 UTC.
Most work was done in 1.5 hours, with a brief shutdown later.
DNS settings may take a while to propogate.
<p/>
-For more information, see <a href="http://forums.themanaworld.org/viewtopic.php?f=1&t=17126">http://forums.themanaworld.org/viewtopic.php?f=1&t=17126</a>
+For more information, see <a href="http://forums.themanaworld.org/viewtopic.php?f=1&amp;t=17126">http://forums.themanaworld.org/viewtopic.php?f=1&amp;t=17126</a>
<p/>
-<font color="#009000">the TMWC</font>
</div>
@@ -146,7 +186,7 @@ Now, the links:
<p/>
Server coding: <a href="irc://chat.freenode.net#tmwa">irc://chat.freenode.net#tmwa</a>
<p/>
-Everything else: <a href="irc://irc.themanaworld.org#tmw-dev">irc://irc.themanaworld.org#tmw-dev</a> or <a href="irc://chat.freenode.net#themanaworld-dev">irc://chat.freenode.net#themanaworld-dev</a>
+Everything else: <a href="irc://chat.freenode.net#themanaworld-dev">irc://chat.freenode.net#themanaworld-dev</a>
<p/>
Forums: <a href="http://forums.themanaworld.org/">http://forums.themanaworld.org/</a>
<p/>
@@ -186,7 +226,7 @@ support, depending on exactly how old it is:
Of course, if a particular client release is
buggy, we may not be able to support it at all.
<p/>
-For more details, see <a href="http://forums.themanaworld.org/viewtopic.php?f=4&t=16867">http://forums.themanaworld.org/viewtopic.php?f=4&t=16867</a>.
+For more details, see <a href="http://forums.themanaworld.org/viewtopic.php?f=4&amp;t=16867">http://forums.themanaworld.org/viewtopic.php?f=4&amp;t=16867</a>.
<p/>
ManaPlus is available at <a href="http://manaplus.evolonline.org/">http://manaplus.evolonline.org/</a>
<p/>
diff --git a/world/map/news.txt b/world/map/news.txt
index f54b41ca..5fe16dd5 100644
--- a/world/map/news.txt
+++ b/world/map/news.txt
@@ -1,3 +1,30 @@
+##32013-06-29##0
+
+This release brings a few new additions to the game:
+
+Wushin overhauled the desert caves with an awesome
+new cave tileset. Also the sewers below Tulimshar are
+now accessible. Make sure to check them out!
+
+Malivox took the occasion to stop camping in the
+desert and moved into a small house south of
+Tulimshar.
+
+Frozenbeard has expanded his ferry service in
+Nivalis. You can now go between Nivalis and
+the other major docks both ways. Proper docks for
+Nivalis are being worked on.
+
+With a ferry now serving Nivalis, Dyrin will send you
+somehwere else in Kaizei instead, away from Nivalis.
+
+As usual there are also a lot of smaller fixes and
+changes. Thanks to everyone who reported issues
+and helped fix these things!
+
+-##2TMW Development Team##0
+
+
##32013-06-07##0
This weekend we're temporarily doubling both the
@@ -21,6 +48,17 @@ you will no longer be kicked with an invalid packet error.
-##2 TMW Development Team##0
+##32013-06-05##0
+
+We had a server crash, and had to restore everything from offline backup.
+
+34 hours were lost, from about 17:30 (UTC) on 4 June to about 03:30 on 6 June. This affects the game, the forums, and the wiki.
+
+We're going to set up hourly offsite backups of game, forum, and wiki data so that future outages are less painful.
+
+-##2Frost##0
+
+
##32013-04-28##0
We're having a bugfix release today.
@@ -137,7 +175,7 @@ Now, the links:
Server coding: @@irc://chat.freenode.net#tmwa|irc://chat.freenode.net#tmwa@@##0
-Everything else: @@irc://irc.themanaworld.org#tmw-dev|irc://irc.themanaworld.org#tmw-dev@@##0 or @@irc://chat.freenode.net#themanaworld-dev|irc://chat.freenode.net#themanaworld-dev@@##0
+Everything else: @@irc://chat.freenode.net#themanaworld-dev|irc://chat.freenode.net#themanaworld-dev@@##0
Forums: @@http://forums.themanaworld.org/|http://forums.themanaworld.org/@@##0
diff --git a/world/map/npc/001-1/_mobs.txt b/world/map/npc/001-1/_mobs.txt
index 6aaae042..bb79c71d 100644
--- a/world/map/npc/001-1/_mobs.txt
+++ b/world/map/npc/001-1/_mobs.txt
@@ -23,7 +23,8 @@
001-1.gat,137,25,15,7|monster|FireGoblin|1011,1,61000,60000,Mob001-1::On1011
-001-1.gat,0,0,0|script|Mob001-1|-1,{
+001-1.gat,0,0,0|script|Mob001-1|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/001-1/banker.txt b/world/map/npc/001-1/banker.txt
index c5807d0e..aee3e4ba 100644
--- a/world/map/npc/001-1/banker.txt
+++ b/world/map/npc/001-1/banker.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,57,52,0|script|Tybalt|107,{
+001-1.gat,57,52,0|script|Tybalt|107,
+{
callfunc "ClearVariables";
set @npcname$, "Tybalt";
callfunc "Banker";
diff --git a/world/map/npc/001-1/barber.txt b/world/map/npc/001-1/barber.txt
index 103e303a..e58ee880 100644
--- a/world/map/npc/001-1/barber.txt
+++ b/world/map/npc/001-1/barber.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,53,38,0|script|Nicolas|100,{
+001-1.gat,53,38,0|script|Nicolas|100,
+{
mes "[Nicolas the Barber]";
mes "\"Do you need a barber?\"";
next;
diff --git a/world/map/npc/001-1/bard.txt b/world/map/npc/001-1/bard.txt
index 4278bb7a..2de20249 100644
--- a/world/map/npc/001-1/bard.txt
+++ b/world/map/npc/001-1/bard.txt
@@ -1,7 +1,8 @@
//
-//001-1.gat,46,76,0|script|Bard|152,{
-001-1.gat,40,73,0|script|Bard|152,{
+//001-1.gat,46,76,0|script|Bard|152,
+001-1.gat,40,73,0|script|Bard|152,
+{
setarray @songs$, "\"There once was a bard, who had it hard, because a man in dark green, was very mean.\"",
"\"At Hurnscald inn, there was a person of fairest skin, declining wedding bands from quite a many hands.\"",
"\"As the Sun sets down in the forest's brown, she whom the fragrance holds counts her gold.\"";
diff --git a/world/map/npc/001-1/bernard.txt b/world/map/npc/001-1/bernard.txt
index 0d65e6d2..25364698 100644
--- a/world/map/npc/001-1/bernard.txt
+++ b/world/map/npc/001-1/bernard.txt
@@ -1,7 +1,7 @@
// Variables used: nibble 0 of QUEST_SouthTulimshar
-001-1.gat,37,44,0|script|Bernard|117,{
-
+001-1.gat,37,44,0|script|Bernard|117,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/001-1/bleacher.txt b/world/map/npc/001-1/bleacher.txt
index 6ff75cca..e681f8c0 100644
--- a/world/map/npc/001-1/bleacher.txt
+++ b/world/map/npc/001-1/bleacher.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,27,53,0|script|Candide|156,{
+001-1.gat,27,53,0|script|Candide|156,
+{
mes "[Candide]";
mes "\"I've figured out how that volcanic ash bleaches cloth.";
mes "I could do it for you, but I'll need three piles of ash and 5,000 GP for supplies per item.\"";
diff --git a/world/map/npc/001-1/children.txt b/world/map/npc/001-1/children.txt
index 91aa2e1f..16c2d10a 100644
--- a/world/map/npc/001-1/children.txt
+++ b/world/map/npc/001-1/children.txt
@@ -1,6 +1,7 @@
// Aisha and Nina
-001-1.gat,95,29,0|script|Aisha|108,{
+001-1.gat,95,29,0|script|Aisha|108,
+{
set @TEMP,rand(9);
if(@TEMP == 0) goto L_1;
if(@TEMP == 1) goto L_1;
@@ -57,7 +58,8 @@ L_Close:
close;
}
-001-1.gat,39,67,0|script|Nina|103,{
+001-1.gat,39,67,0|script|Nina|103,
+{
mes "[Nina]";
set @TEMP,rand(10);
if(@TEMP == 0) goto L_1;
diff --git a/world/map/npc/001-1/constable.txt b/world/map/npc/001-1/constable.txt
index 6c8be358..e5de9b92 100644
--- a/world/map/npc/001-1/constable.txt
+++ b/world/map/npc/001-1/constable.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,37,35,0|script|Constable Perry Graf|150,{
+001-1.gat,37,35,0|script|Constable Perry Graf|150,
+{
// set @npcname$, "Constable Perry Graf";
set @canSkip, 1;
callfunc "GameRules";
diff --git a/world/map/npc/001-1/elanore.txt b/world/map/npc/001-1/elanore.txt
index 24ca9edd..34b30766 100644
--- a/world/map/npc/001-1/elanore.txt
+++ b/world/map/npc/001-1/elanore.txt
@@ -1,6 +1,7 @@
//
-function|script|ElanoreFix|{
+function|script|ElanoreFix|,
+{
set @Q_MASK, NIBBLE_1_MASK;
set @Q_SHIFT, NIBBLE_1_SHIFT;
@@ -16,8 +17,8 @@ function|script|ElanoreFix|{
return;
}
-001-1.gat,58,68,0|script|Elanore#_M|108,{
-
+001-1.gat,58,68,0|script|Elanore#_M|108,
+{
set @has_magic, getskilllv(SKILL_MAGIC);
set @Q_MASK, NIBBLE_1_MASK;
diff --git a/world/map/npc/001-1/entertainer.txt b/world/map/npc/001-1/entertainer.txt
index b1ef1372..ea8e0870 100644
--- a/world/map/npc/001-1/entertainer.txt
+++ b/world/map/npc/001-1/entertainer.txt
@@ -1,6 +1,7 @@
// Emote NPC allows for players to learn the emote skill
-001-1.gat,30,45,0|script|Entertainer|165,{
+001-1.gat,30,45,0|script|Entertainer|165,
+{
if (getskilllv(SKILL_EMOTE) > 0) goto L_Has;
mes "[Entertainer]";
@@ -40,5 +41,6 @@ OnTimer3000:
setnpctimer 0;
OnInit:
+ if (debug >= 2) end;
initnpctimer;
}
diff --git a/world/map/npc/001-1/gossip.txt b/world/map/npc/001-1/gossip.txt
index 468b8b48..881ada61 100644
--- a/world/map/npc/001-1/gossip.txt
+++ b/world/map/npc/001-1/gossip.txt
@@ -1,7 +1,7 @@
// NPC to provide hints on progression of linear quest chain in Tulimshar
-001-1.gat,49,31,0|script|Gladys|154,{
-
+001-1.gat,49,31,0|script|Gladys|154,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/001-1/guards.txt b/world/map/npc/001-1/guards.txt
index 184956da..cce350c7 100644
--- a/world/map/npc/001-1/guards.txt
+++ b/world/map/npc/001-1/guards.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,48,79,0|script|Ekinu|104,{
+001-1.gat,48,79,0|script|Ekinu|104,
+{
mes "[Ekinu the Town Guard]";
mes "\"What a disaster... I can't believe that we managed to rebuild the town so fast, though.\"";
next;
@@ -74,8 +75,8 @@ L_Close:
close;
}
-001-1.gat,40,79,0|script|Ryan|104,{
-
+001-1.gat,40,79,0|script|Ryan|104,
+{
if (getskilllv(SKILL_MAGIC)) goto L_message;
mes "[Ryan the Town Guard]";
diff --git a/world/map/npc/001-1/guide.txt b/world/map/npc/001-1/guide.txt
index 18ee0a09..f50e3eda 100644
--- a/world/map/npc/001-1/guide.txt
+++ b/world/map/npc/001-1/guide.txt
@@ -1,12 +1,17 @@
//
-001-1.gat,32,27,0|script|Ian|102,{
+001-1.gat,32,27,0|script|Ian|102,
+{
// This line is only relevant for players, who started before the timestamp was introduced.
// Set the graduation cap flag at the right position.
// It is a bugfix
- if ((TUT_var < 4) && (TUT_var & 2)) set FLAGS, FLAGS|FLAG_GOT_GRADUATIONCAP;
+ if ((TUT_var < 4) && (TUT_var & 2))
+ set FLAGS, FLAGS|FLAG_GOT_GRADUATIONCAP;
- if ((TUT_var != 0) && !(FLAGS & FLAG_GOT_GRADUATIONCAP) && BaseLevel >= 10) callsub S_Grad;
+ if ((TUT_var != 0) && !(FLAGS & FLAG_GOT_GRADUATIONCAP) && BaseLevel >= 10)
+ goto L_Grad;
+
+L_DoneGrad:
mes "[Ian the Guide]";
mes "\"Would you like to know about something?\"";
next;
@@ -160,7 +165,7 @@ L_Know:
mes "\"But remember, the game isn't fun when you already know what to do. Use it well or you will lose interest in playing The Mana World! Please help by reporting anything that is unclear, outdated or that needs to be seen on our forums at http://forums.themanaworld.org.\"";
close;
-S_Grad:
+L_Grad:
getinventorylist;
if (@inventorylist_count == 100) goto L_TooMany;
mes "[Ian the Guide]";
@@ -168,11 +173,11 @@ S_Grad:
getitem "GraduationCap", 1;
set FLAGS, FLAGS | FLAG_GOT_GRADUATIONCAP;
next;
- return;
+ goto L_DoneGrad;
L_TooMany:
mes "[Ian the Guide]";
mes "\"I wanted to give you something, but you don't have room for it.\"";
next;
- return;
+ goto L_DoneGrad;
}
diff --git a/world/map/npc/001-1/luca.txt b/world/map/npc/001-1/luca.txt
index f1725404..55502e35 100644
--- a/world/map/npc/001-1/luca.txt
+++ b/world/map/npc/001-1/luca.txt
@@ -1,7 +1,7 @@
//
-001-1.gat,108,55,0|script|Luca|102,{
-
+001-1.gat,108,55,0|script|Luca|102,
+{
set @EXP_BRAWLING, 2000;
if (BaseLevel >= 35) goto L_teach;
diff --git a/world/map/npc/001-1/mikhail.txt b/world/map/npc/001-1/mikhail.txt
index 3980ac9b..c82dd89f 100644
--- a/world/map/npc/001-1/mikhail.txt
+++ b/world/map/npc/001-1/mikhail.txt
@@ -1,7 +1,7 @@
// Variables used: nibble 0 of QUEST_SouthTulimshar
-001-1.gat,50,46,0|script|Mikhail|120,{
-
+001-1.gat,50,46,0|script|Mikhail|120,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/001-1/monster_guide.txt b/world/map/npc/001-1/monster_guide.txt
index 7d5693e2..0aca7e41 100644
--- a/world/map/npc/001-1/monster_guide.txt
+++ b/world/map/npc/001-1/monster_guide.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,48,52,0|script|Aidan|102,{
+001-1.gat,48,52,0|script|Aidan|102,
+{
if(MPQUEST == 0) goto Register;
mes "[Aidan the Monster Guide]";
mes "You currently have " +Mobpt+ " Monster Points. These points are acquired while killing monsters";
diff --git a/world/map/npc/001-1/npcs.txt b/world/map/npc/001-1/npcs.txt
index b58ae7d8..c2b020af 100644
--- a/world/map/npc/001-1/npcs.txt
+++ b/world/map/npc/001-1/npcs.txt
@@ -1,6 +1,7 @@
// Talk NPCs to help make trek interesting around the Bazaar.
-001-1.gat,46,26,0|script|Yalina|209,{
+001-1.gat,46,26,0|script|Yalina|209,
+{
set @npcname$, "Yalina";
mes "[" + @npcname$ + "]";
@@ -13,7 +14,8 @@
close;
}
-001-1.gat,84,72,0|script|Cyndala|210,{
+001-1.gat,84,72,0|script|Cyndala|210,
+{
set @npcname$, "Cyndala";
mes "[" + @npcname$ + "]";
diff --git a/world/map/npc/001-1/rewards_master.txt b/world/map/npc/001-1/rewards_master.txt
index abf85ce8..7ebc12f5 100644
--- a/world/map/npc/001-1/rewards_master.txt
+++ b/world/map/npc/001-1/rewards_master.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,50,53,0|script|Ishi|106,{
+001-1.gat,50,53,0|script|Ishi|106,
+{
if (MPQUEST == 0) goto L_Register;
if (tvis == 0) set tvis, 1;
if (Mobpt < tvis) goto L_NotEnough;
diff --git a/world/map/npc/001-1/sandra.txt b/world/map/npc/001-1/sandra.txt
index 021f8519..50e302db 100644
--- a/world/map/npc/001-1/sandra.txt
+++ b/world/map/npc/001-1/sandra.txt
@@ -1,7 +1,7 @@
// Variables used: nibble 3 of QUEST_SouthTulimshar
-001-1.gat,110,71,0|script|Sandra|114,{
-
+001-1.gat,110,71,0|script|Sandra|114,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/001-1/sarah.txt b/world/map/npc/001-1/sarah.txt
index 3d2cb806..9f61fc19 100644
--- a/world/map/npc/001-1/sarah.txt
+++ b/world/map/npc/001-1/sarah.txt
@@ -1,7 +1,7 @@
// Variables used: nibble 1 of QUEST_SouthTulimshar
-001-1.gat,137,78,0|script|Sarah|106,{
-
+001-1.gat,137,78,0|script|Sarah|106,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/001-1/soul-menhir.txt b/world/map/npc/001-1/soul-menhir.txt
index 2a7f5c27..4ebea361 100644
--- a/world/map/npc/001-1/soul-menhir.txt
+++ b/world/map/npc/001-1/soul-menhir.txt
@@ -1,6 +1,7 @@
//
-001-1.gat,38,69,0|script|Soul Menhir|345,{
+001-1.gat,38,69,0|script|Soul Menhir|345,
+{
callfunc "ClearVariables";
set @map$, "001-1.gat";
setarray @Xs, 37, 38, 39, 37, 39, 37, 39;
diff --git a/world/map/npc/001-1/trader.txt b/world/map/npc/001-1/trader.txt
index b4157ab2..cf2854ef 100644
--- a/world/map/npc/001-1/trader.txt
+++ b/world/map/npc/001-1/trader.txt
@@ -3,7 +3,8 @@
// Updated by: TheKandiman
// Reviewed by: Wombat
-001-1.gat,57,33,0|script|Trader|115,{
+001-1.gat,57,33,0|script|Trader|115,
+{
set @Ironprice, 1000;
set @Sulphurprice, 1200;
set @Potionprice, 500;
diff --git a/world/map/npc/001-1/vincent.txt b/world/map/npc/001-1/vincent.txt
index 4ed4adfc..eb4c1fed 100644
--- a/world/map/npc/001-1/vincent.txt
+++ b/world/map/npc/001-1/vincent.txt
@@ -1,6 +1,7 @@
// Variables used: nibble 2 of QUEST_SouthTulimshar
-001-1.gat,135,42,0|script|Vincent|113,{
+001-1.gat,135,42,0|script|Vincent|113,
+{
set @hw2011_npc_id, $@hw2011_npc_vincent;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
diff --git a/world/map/npc/001-2/_mobs.txt b/world/map/npc/001-2/_mobs.txt
index 4aeb43d6..a6625718 100644
--- a/world/map/npc/001-2/_mobs.txt
+++ b/world/map/npc/001-2/_mobs.txt
@@ -3,6 +3,7 @@
-001-2.gat,0,0,0|script|Mob001-2|-1,{
+001-2.gat,0,0,0|script|Mob001-2|-1,
+{
end;
}
diff --git a/world/map/npc/001-2/casino.txt b/world/map/npc/001-2/casino.txt
index cb7966bc..d5090135 100644
--- a/world/map/npc/001-2/casino.txt
+++ b/world/map/npc/001-2/casino.txt
@@ -1,7 +1,8 @@
// Casino
// takes part in quest given by 021-2/kylian.txt
-001-2.gat,32,72,0|script|#CasinoEntrance|32767,1,1,{
+001-2.gat,32,72,0|script|#CasinoEntrance|32767,1,1,
+{
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowCasinoNT;
set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT);
if (@kylian != 6)
@@ -14,36 +15,35 @@ L_End:
end;
}
-001-2.gat,134,23,0|script|Valdo|117,{
+001-2.gat,134,23,0|script|Valdo|117,
+{
mes "[Valdo the Worker]";
mes "\"Please let me work. I'm really in a hurry!\"";
close;
}
-001-2.gat,37,65,0|script|Slot1|400,{
+001-2.gat,37,65,0|script|Slot1|400,
+{
callfunc "SlotMachine";
close;
}
-001-2.gat,39,65,0|script|Slot2|400,{
+001-2.gat,39,65,0|script|Slot2|400,
+{
callfunc "SlotMachine";
close;
}
-001-2.gat,41,65,0|script|Slot3|400,{
+001-2.gat,41,65,0|script|Slot3|400,
+{
callfunc "SlotMachine";
close;
}
-001-2.gat,32,67,0|script|MoneyChanger|124,{
- mes "[Money Changer]";
- mes "\"I used to exchange Casino Coins for cash, but the Wizard's Council shut me down. Now the casino runs off only those Casino Coins currently in circulation.\"";
- next;
- mes "\"I heard that many a gambler wandered onto the Beach to the South West and through to the Snake Desert to the South East. If you want to find coins already in circulation, you might find some on the monsters there.\"";
- close;
-}
+001-2.gat,32,67,0|shop|MoneyChanger|124,CasinoCoins :-1
-001-2.gat,28,63,0|script|BlackJack|107,{
+001-2.gat,28,63,0|script|BlackJack|107,
+{
mes "[Croupier]";
mes "\"Would you like to play Black Jack?";
mes "You will need 15 casino coins.\"";
@@ -118,7 +118,8 @@ L_Close:
close;
}
-001-2.gat,22,69,0|script|Roulette|107,{
+001-2.gat,22,69,0|script|Roulette|107,
+{
mes "\"Good evening monsieur...";
mes "How much would you like to bet?\"";
next;
diff --git a/world/map/npc/001-2/dedication.txt b/world/map/npc/001-2/dedication.txt
index ec4e7e52..8533b28e 100644
--- a/world/map/npc/001-2/dedication.txt
+++ b/world/map/npc/001-2/dedication.txt
@@ -1,6 +1,7 @@
// Dedication to Irene Christina
-001-2.gat,76,68,0|script|#IreneDedication|400,{
+001-2.gat,76,68,0|script|#IreneDedication|400,
+{
mes "~ Irene Christina ~";
mes "The song in this house is dedicated to Irene.";
next;
diff --git a/world/map/npc/001-2/omar.txt b/world/map/npc/001-2/omar.txt
index 9b1eea8b..65f3e2d1 100644
--- a/world/map/npc/001-2/omar.txt
+++ b/world/map/npc/001-2/omar.txt
@@ -1,5 +1,6 @@
//
-function|script|KadiyaSubquestConsts|{
+function|script|KadiyaSubquestConsts|,
+{
set @Q_kadiya_status, (QUEST_MAGIC2 & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
set @Q_STATUS_NONE, 0;
@@ -20,7 +21,8 @@ function|script|KadiyaSubquestConsts|{
return;
}
-001-2.gat,70,60,0|script|Omar|162,{
+001-2.gat,70,60,0|script|Omar|162,
+{
callfunc "ElanoreFix";
callfunc "KadiyaSubquestConsts";
@@ -174,7 +176,8 @@ S_update_var:
return;
}
-001-2.gat,76,59,0|script|Kadiya|174,{
+001-2.gat,76,59,0|script|Kadiya|174,
+{
callfunc "ElanoreFix";
set @Q_MASK, NIBBLE_3_MASK;
set @Q_SHIFT, NIBBLE_3_SHIFT;
diff --git a/world/map/npc/001-2/phaet.txt b/world/map/npc/001-2/phaet.txt
index dfdf2ebe..36410c48 100644
--- a/world/map/npc/001-2/phaet.txt
+++ b/world/map/npc/001-2/phaet.txt
@@ -1,6 +1,7 @@
//
-001-2.gat,24,23,0|script|Phaet|125,{
+001-2.gat,24,23,0|script|Phaet|125,
+{
mes "[Phaet the Royal Guard]";
mes "\"Hey, you seem tough enough! Would you like to prove your skills? I'll let you in the arena if you give me 50 gp. You can fight against other players there.\"";
next;
diff --git a/world/map/npc/001-2/shops.txt b/world/map/npc/001-2/shops.txt
index 75753a4f..1857a5df 100644
--- a/world/map/npc/001-2/shops.txt
+++ b/world/map/npc/001-2/shops.txt
@@ -2,7 +2,8 @@
001-2.gat,26,26,0|shop|InnKeeper|112,Beer :-1,Cake :-1,CherryCake :-1
-001-2.gat,103,26,0|script|Rebecca|118,{
+001-2.gat,103,26,0|script|Rebecca|118,
+{
set @npcname$, "Rebecca the Inn Keeper";
set @cost, 100;
callfunc "Inn";
diff --git a/world/map/npc/001-2/troupe_leader.txt b/world/map/npc/001-2/troupe_leader.txt
index f69629a5..f48cd51a 100644
--- a/world/map/npc/001-2/troupe_leader.txt
+++ b/world/map/npc/001-2/troupe_leader.txt
@@ -1,6 +1,7 @@
//
-001-2.gat,34,25,0|script|Troupe Leader|165,{
+001-2.gat,34,25,0|script|Troupe Leader|165,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/001-3/_mobs.txt b/world/map/npc/001-3/_mobs.txt
index 47156be7..d57aeb12 100644
--- a/world/map/npc/001-3/_mobs.txt
+++ b/world/map/npc/001-3/_mobs.txt
@@ -4,7 +4,8 @@
001-3.gat,0,0,0,0|monster|Maggot|1002,10,0,0,Mob001-3::On1002
-001-3.gat,0,0,0|script|Mob001-3|-1,{
+001-3.gat,0,0,0|script|Mob001-3|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/001-3/guards.txt b/world/map/npc/001-3/guards.txt
index 7ff899d0..78ee6ca6 100644
--- a/world/map/npc/001-3/guards.txt
+++ b/world/map/npc/001-3/guards.txt
@@ -1,6 +1,7 @@
//
-001-3.gat,77,37,0|script|Phaet|125,{
+001-3.gat,77,37,0|script|Phaet|125,
+{
mes "[Phaet the Royal Guard]";
mes "\"Do you want to go back?\"";
next;
@@ -18,7 +19,8 @@ L_Sure:
close;
}
-001-3.gat,69,37,0|script|Aradin|126,{
+001-3.gat,69,37,0|script|Aradin|126,
+{
mes "[Aradin the Royal Guard]";
mes "\"Don't touch me...";
mes "You wouldn't enjoy the consequences.\"";
diff --git a/world/map/npc/002-1/_import.txt b/world/map/npc/002-1/_import.txt
index f1ebfb77..2738eb37 100644
--- a/world/map/npc/002-1/_import.txt
+++ b/world/map/npc/002-1/_import.txt
@@ -4,9 +4,6 @@ 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/world/map/npc/002-1/_mobs.txt b/world/map/npc/002-1/_mobs.txt
index feea41c1..3579851b 100644
--- a/world/map/npc/002-1/_mobs.txt
+++ b/world/map/npc/002-1/_mobs.txt
@@ -2,22 +2,23 @@
// Sandstorm Desert 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
+002-1.gat,95,97,16,9|monster|Maggot|1002,10,100000,30000,Mob002-1::On1002
002-1.gat,94,35,11,4|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
002-1.gat,68,59,7,6|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
002-1.gat,57,86,15,8|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
-002-1.gat,19,94,7,8|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
+002-1.gat,27,85,7,8|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
002-1.gat,44,35,3,2|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
002-1.gat,38,29,3,2|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
002-1.gat,62,91,24,6|monster|Maggot|1002,3,100000,30000,Mob002-1::On1002
-002-1.gat,61,74,41,43|monster|FireGoblin|1011,15,100000,30000,Mob002-1::On1011
+002-1.gat,60,73,38,40|monster|FireGoblin|1011,15,100000,30000,Mob002-1::On1011
002-1.gat,82,24,34,15|monster|Scorpion|1003,8,100000,30000,Mob002-1::On1003
002-1.gat,32,35,34,33|monster|Scorpion|1003,8,100000,30000,Mob002-1::On1003
-002-1.gat,27,82,22,43|monster|Scorpion|1003,8,100000,30000,Mob002-1::On1003
+002-1.gat,26,73,20,24|monster|Scorpion|1003,8,100000,30000,Mob002-1::On1003
002-1.gat,95,75,15,17|monster|BlackScorpion|1009,1,100000,1800000,Mob002-1::On1009
-002-1.gat,0,0,0|script|Mob002-1|-1,{
+002-1.gat,0,0,0|script|Mob002-1|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/002-1/_warps.txt b/world/map/npc/002-1/_warps.txt
index e238d32f..b86304b9 100644
--- a/world/map/npc/002-1/_warps.txt
+++ b/world/map/npc/002-1/_warps.txt
@@ -2,6 +2,9 @@
// Sandstorm Desert warps
002-1.gat,58,13|warp|To South Tulimshar|3,-1,001-1.gat,44,86
-002-1.gat,108,79|warp|To Snake Desert|-1,1,005-1.gat,20,40
002-1.gat,12,67|warp|To Beach|-1,3,003-1.gat,171,76
002-1.gat,28,13|warp|To Beach|1,-1,004-1.gat,84,114
+002-1.gat,79,99|warp|To Desert Mine Camp|-1,-1,002-3.gat,85,49
+002-1.gat,20,94|warp|To Desert Mine Camp|-1,-1,002-3.gat,51,33
+002-1.gat,104,92|warp|To Mystics House|-1,-1,002-2.gat,28,29
+002-1.gat,108,79|warp|To Snake Desert|-1,1,005-1.gat,20,40
diff --git a/world/map/npc/002-1/lieutenant_dausen.txt b/world/map/npc/002-1/lieutenant_dausen.txt
index 47fb0c57..d5e1ab9e 100644
--- a/world/map/npc/002-1/lieutenant_dausen.txt
+++ b/world/map/npc/002-1/lieutenant_dausen.txt
@@ -1,8 +1,8 @@
// Lieutenant in charge of monitoring the monster threat surrounding the city.
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-1.gat,54,27,0|script|Lieutenant Dausen|122,{
-
+002-1.gat,54,27,0|script|Lieutenant Dausen|122,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-1/merchant.txt b/world/map/npc/002-1/merchant.txt
deleted file mode 100644
index b1b2c3fd..00000000
--- a/world/map/npc/002-1/merchant.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-//
-
-002-1.gat,19,99,0|shop|Ishyah|109,MinersHat :-1,MinerGloves :-1,ShortBow :-1,Arrow :-1,LeatherShield :-1
diff --git a/world/map/npc/002-1/nickos.txt b/world/map/npc/002-1/nickos.txt
index 67ac2d63..f9365d02 100644
--- a/world/map/npc/002-1/nickos.txt
+++ b/world/map/npc/002-1/nickos.txt
@@ -1,8 +1,8 @@
// Sandstorm mine guard
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-1.gat,28,94,0|script|Nickos|123,{
-
+002-1.gat,28,94,0|script|Nickos|123,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-1/nomads.txt b/world/map/npc/002-1/nomads.txt
index 805b8fef..2d93ffe4 100644
--- a/world/map/npc/002-1/nomads.txt
+++ b/world/map/npc/002-1/nomads.txt
@@ -1,13 +1,15 @@
//
-002-1.gat,15,67,0|script|Samuel|132,{
+002-1.gat,15,67,0|script|Samuel|132,
+{
mes "[Samuel the Nomad]";
mes "\"This is really a nice place.\"";
mes "Don't you think so?\"";
close;
}
-002-1.gat,18,68,0|script|Elijah|128,{
+002-1.gat,18,68,0|script|Elijah|128,
+{
mes "[Elijah the Nomad]";
mes "\"If I only had a tent...\"";
close;
diff --git a/world/map/npc/002-1/stewen.txt b/world/map/npc/002-1/stewen.txt
index 0aa04b34..602e55fb 100644
--- a/world/map/npc/002-1/stewen.txt
+++ b/world/map/npc/002-1/stewen.txt
@@ -1,8 +1,8 @@
// East sandstorm guard
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-1.gat,106,76,0|script|Stewen|123,{
-
+002-1.gat,106,76,0|script|Stewen|123,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-2/_import.txt b/world/map/npc/002-2/_import.txt
new file mode 100644
index 00000000..6108ea70
--- /dev/null
+++ b/world/map/npc/002-2/_import.txt
@@ -0,0 +1,6 @@
+// Map 002-2: Sandstorm Desert Indoors
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 002-2.gat
+npc: npc/002-2/_mobs.txt
+npc: npc/002-2/_warps.txt
+npc: npc/002-2/rogue.txt
diff --git a/world/map/npc/002-2/_mobs.txt b/world/map/npc/002-2/_mobs.txt
new file mode 100644
index 00000000..91350716
--- /dev/null
+++ b/world/map/npc/002-2/_mobs.txt
@@ -0,0 +1,9 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Sandstorm Desert Indoors mobs
+
+
+
+002-2.gat,0,0,0|script|Mob002-2|-1,
+{
+ end;
+}
diff --git a/world/map/npc/002-2/_warps.txt b/world/map/npc/002-2/_warps.txt
new file mode 100644
index 00000000..e370ad8f
--- /dev/null
+++ b/world/map/npc/002-2/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Sandstorm Desert Indoors warps
+
+002-2.gat,28,30|warp|To Sand Storm|-1,-1,002-1.gat,104,93
diff --git a/world/map/npc/002-1/rogue.txt b/world/map/npc/002-2/rogue.txt
index 7358230c..39a4d8ce 100644
--- a/world/map/npc/002-1/rogue.txt
+++ b/world/map/npc/002-2/rogue.txt
@@ -1,7 +1,7 @@
//
-002-1.gat,22,21,0|script|Malivox|103,{
-
+002-2.gat,25,28,0|script|Malivox|103,
+{
// if (ResetA_charstate == 1) goto L_Multiple;
// set @cost, 10000000 / ($ResetA_uses + 1);
diff --git a/world/map/npc/002-3/_import.txt b/world/map/npc/002-3/_import.txt
index 2f37b959..83f6f548 100644
--- a/world/map/npc/002-3/_import.txt
+++ b/world/map/npc/002-3/_import.txt
@@ -1,11 +1,8 @@
-// Map 002-3: Desert Mines
+// Map 002-3: Tulimshar Mining Camp
// 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/merchant.txt
+npc: npc/002-3/mining_camp_barrier.txt
npc: npc/002-3/nathan.txt
-npc: npc/002-3/underground_palace_barrier.txt
diff --git a/world/map/npc/002-3/_mobs.txt b/world/map/npc/002-3/_mobs.txt
index dbd06f59..7d7ac034 100644
--- a/world/map/npc/002-3/_mobs.txt
+++ b/world/map/npc/002-3/_mobs.txt
@@ -1,37 +1,9 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Desert Mines mobs
+// Tulimshar Mining Camp mobs
-002-3.gat,39,37,15,11|monster|CaveMaggot|1056,5,100000,30000,Mob002-3::On1056
-002-3.gat,91,41,17,20|monster|IceGoblin|1058,3,100000,30000,Mob002-3::On1058
-002-3.gat,71,35,25,17|monster|CaveMaggot|1056,4,100000,30000,Mob002-3::On1056
-002-3.gat,69,100,8,5|monster|IceGoblin|1058,2,100000,30000,Mob002-3::On1058
-002-3.gat,68,57,26,24|monster|AngryScorpion|1057,5,100000,30000,Mob002-3::On1057
-002-3.gat,49,58,4,15|monster|AngryScorpion|1057,5,100000,30000,Mob002-3::On1057
-002-3.gat,38,76,15,22|monster|AngryScorpion|1057,4,100000,30000,Mob002-3::On1057
-002-3.gat,58,78,6,17|monster|CaveMaggot|1056,4,100000,30000,Mob002-3::On1056
-002-3.gat,89,68,11,32|monster|AngryScorpion|1057,4,100000,30000,Mob002-3::On1057
-002-3.gat,84,93,19,17|monster|CaveMaggot|1056,4,100000,30000,Mob002-3::On1056
-002-3.gat,72,77,21,14|monster|IceGoblin|1058,3,100000,30000,Mob002-3::On1058
-002-3.gat,67,91,11,12|monster|AngryScorpion|1057,4,100000,30000,Mob002-3::On1057
-002-3.gat,58,95,6,13|monster|CaveMaggot|1056,4,100000,30000,Mob002-3::On1056
-002-3.gat,63,100,2,5|monster|AngryScorpion|1057,3,100000,30000,Mob002-3::On1057
-002-3.gat,0,0,0|script|Mob002-3|-1,{
-On1056:
- set @mobID, 1056;
- callfunc "MobPoints";
- end;
-
-On1057:
- set @mobID, 1057;
- callfunc "MobPoints";
- end;
-
-On1058:
- set @mobID, 1058;
- callfunc "MobPoints";
- end;
-
+002-3.gat,0,0,0|script|Mob002-3|-1,
+{
end;
}
diff --git a/world/map/npc/002-3/_warps.txt b/world/map/npc/002-3/_warps.txt
index 4f7f2198..e7ed3d83 100644
--- a/world/map/npc/002-3/_warps.txt
+++ b/world/map/npc/002-3/_warps.txt
@@ -1,4 +1,6 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Desert Mines warps
+// Tulimshar Mining Camp warps
-002-3.gat,37,29|warp|To Outside|-1,-1,002-1.gat,20,97
+002-3.gat,22,87|warp|To Beach|-1,-1,043-1.gat,85,55
+002-3.gat,85,51|warp|To Sand Storm Upper|-1,-1,002-1.gat,79,101
+002-3.gat,51,36|warp|To Sand Storm|-1,-1,002-1.gat,20,96
diff --git a/world/map/npc/002-3/merchant.txt b/world/map/npc/002-3/merchant.txt
new file mode 100644
index 00000000..3eb2f426
--- /dev/null
+++ b/world/map/npc/002-3/merchant.txt
@@ -0,0 +1,3 @@
+//
+
+002-3.gat,60,47,0|shop|Ishyah|109,MinersHat :-1,MinerGloves :-1,ShortBow :-1,Arrow :-1,LeatherShield :-1
diff --git a/world/map/npc/002-1/sandstorm_mine_barrier.txt b/world/map/npc/002-3/mining_camp_barrier.txt
index 49c9b733..2ff0b35e 100644
--- a/world/map/npc/002-1/sandstorm_mine_barrier.txt
+++ b/world/map/npc/002-3/mining_camp_barrier.txt
@@ -1,7 +1,7 @@
//Sandstorm mine barrier
-002-1.gat,20,94,0|script|#Sandstorm_Mine_Barrier|45,0,0,{
-
+002-3.gat,82,32,0|script|#Sandstorm_Mine_Barrier|45,0,0,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
@@ -13,7 +13,7 @@
goto L_End;
L_Sandstorm_Barrier_Open:
- warp "002-3.gat",37,31;
+ warp "002-4.gat",37,31;
goto L_End;
L_End:
diff --git a/world/map/npc/002-3/nathan.txt b/world/map/npc/002-3/nathan.txt
index b668f7b7..b3661911 100644
--- a/world/map/npc/002-3/nathan.txt
+++ b/world/map/npc/002-3/nathan.txt
@@ -1,7 +1,7 @@
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-3.gat,35,35,6|script|Nathan|109,{
-
+002-3.gat,42,45,6|script|Nathan|109,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-4/_import.txt b/world/map/npc/002-4/_import.txt
index 4758cedf..09530371 100644
--- a/world/map/npc/002-4/_import.txt
+++ b/world/map/npc/002-4/_import.txt
@@ -1,7 +1,10 @@
-// Map 002-4: Deep Desert Mines
+// 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
+npc: npc/002-4/mine_triggerone.txt
+npc: npc/002-4/mine_triggerthree.txt
+npc: npc/002-4/mine_triggertwo.txt
+npc: npc/002-4/naem.txt
+npc: npc/002-4/underground_palace_barrier.txt
diff --git a/world/map/npc/002-4/_mobs.txt b/world/map/npc/002-4/_mobs.txt
index 0f275e9f..0fd06e51 100644
--- a/world/map/npc/002-4/_mobs.txt
+++ b/world/map/npc/002-4/_mobs.txt
@@ -1,31 +1,24 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Deep Desert Mines mobs
-
-002-4.gat,37,89,12,7|monster|IceGoblin|1058,3,100000,30000,Mob002-4::On1058
-002-4.gat,33,76,3,11|monster|CaveMaggot|1056,3,100000,30000,Mob002-4::On1056
-002-4.gat,40,68,7,5|monster|AngryScorpion|1057,3,100000,30000,Mob002-4::On1057
-002-4.gat,40,38,18,5|monster|Archant|1060,3,100000,30000,Mob002-4::On1060
-002-4.gat,62,71,3,7|monster|IceGoblin|1058,3,100000,30000,Mob002-4::On1058
-002-4.gat,56,97,2,5|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,68,100,12,2|monster|YellowSlime|1007,4,100000,30000,Mob002-4::On1007
-002-4.gat,92,80,1,5|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,89,94,1,5|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,74,78,1,5|monster|Archant|1060,2,100000,30000,Mob002-4::On1060
-002-4.gat,94,71,2,6|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,91,64,8,2|monster|YellowSlime|1007,1,100000,30000,Mob002-4::On1007
-002-4.gat,74,35,1,5|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,84,33,1,5|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,84,46,1,5|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,99,38,1,5|monster|Archant|1060,1,100000,30000,Mob002-4::On1060
-002-4.gat,93,39,8,2|monster|YellowSlime|1007,2,100000,30000,Mob002-4::On1007
-
-
-002-4.gat,0,0,0|script|Mob002-4|-1,{
-On1007:
- set @mobID, 1007;
- callfunc "MobPoints";
- end;
-
+// Desert Mines mobs
+
+002-4.gat,39,37,15,11|monster|CaveMaggot|1056,5,100000,30000,Mob002-4::On1056
+002-4.gat,91,41,17,20|monster|AngryFireGoblin|1108,3,100000,30000,Mob002-4::On1108
+002-4.gat,71,35,25,17|monster|CaveMaggot|1056,4,100000,30000,Mob002-4::On1056
+002-4.gat,69,100,8,5|monster|AngryFireGoblin|1108,2,100000,30000,Mob002-4::On1108
+002-4.gat,68,57,26,24|monster|AngryScorpion|1057,5,100000,30000,Mob002-4::On1057
+002-4.gat,49,58,4,15|monster|AngryScorpion|1057,5,100000,30000,Mob002-4::On1057
+002-4.gat,38,76,15,22|monster|AngryScorpion|1057,4,100000,30000,Mob002-4::On1057
+002-4.gat,58,78,6,17|monster|CaveMaggot|1056,4,100000,30000,Mob002-4::On1056
+002-4.gat,89,68,11,32|monster|AngryScorpion|1057,4,100000,30000,Mob002-4::On1057
+002-4.gat,84,93,19,17|monster|CaveMaggot|1056,4,100000,30000,Mob002-4::On1056
+002-4.gat,72,77,21,14|monster|AngryFireGoblin|1108,3,100000,30000,Mob002-4::On1108
+002-4.gat,67,91,11,12|monster|AngryScorpion|1057,4,100000,30000,Mob002-4::On1057
+002-4.gat,58,95,6,13|monster|CaveMaggot|1056,4,100000,30000,Mob002-4::On1056
+002-4.gat,63,100,2,5|monster|AngryScorpion|1057,3,100000,30000,Mob002-4::On1057
+
+
+002-4.gat,0,0,0|script|Mob002-4|-1,
+{
On1056:
set @mobID, 1056;
callfunc "MobPoints";
@@ -36,13 +29,8 @@ On1057:
callfunc "MobPoints";
end;
-On1058:
- set @mobID, 1058;
- callfunc "MobPoints";
- end;
-
-On1060:
- set @mobID, 1060;
+On1108:
+ set @mobID, 1108;
callfunc "MobPoints";
end;
diff --git a/world/map/npc/002-4/_warps.txt b/world/map/npc/002-4/_warps.txt
index 4d4af370..072d2ba2 100644
--- a/world/map/npc/002-4/_warps.txt
+++ b/world/map/npc/002-4/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Deep Desert Mines warps
+// Desert Mines warps
-002-4.gat,34,99|warp|To First Level|-1,-1,002-3.gat,68,99
+002-4.gat,37,29|warp|To Mining camp|-1,-1,002-3.gat,82,30
diff --git a/world/map/npc/002-3/mine_triggerone.txt b/world/map/npc/002-4/mine_triggerone.txt
index 05aa1c01..6d7e8e13 100644
--- a/world/map/npc/002-3/mine_triggerone.txt
+++ b/world/map/npc/002-4/mine_triggerone.txt
@@ -1,8 +1,8 @@
-//Sandstorm mine trigger 1 Trigger 002-3 35,43 (127)
+//Sandstorm mine trigger 1 Trigger 002-4 35,43 (127)
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-3.gat,30,47,0|script|Button|400,0,0,{
-
+002-4.gat,30,47,0|script|Button|400,0,0,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-3/mine_triggerthree.txt b/world/map/npc/002-4/mine_triggerthree.txt
index 0bfecd22..015928f1 100644
--- a/world/map/npc/002-3/mine_triggerthree.txt
+++ b/world/map/npc/002-4/mine_triggerthree.txt
@@ -1,8 +1,8 @@
-//Sandstorm mine trigger 3 Trigger 002-3 98,42 (127)
+//Sandstorm mine trigger 3 Trigger 002-4 98,42 (127)
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-3.gat,91,99,0|script|Button|400,0,0,{
-
+002-4.gat,91,99,0|script|Button|400,0,0,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-3/mine_triggertwo.txt b/world/map/npc/002-4/mine_triggertwo.txt
index d18712ee..4af6ad7e 100644
--- a/world/map/npc/002-3/mine_triggertwo.txt
+++ b/world/map/npc/002-4/mine_triggertwo.txt
@@ -3,8 +3,8 @@
// - nibble 4 and 5 of QUEST_SouthTulimshar
// - in FLAGS, FLAG_OPENED_UNDERGROUND
-002-3.gat,100,37,0|script|Button|400,0,0,{
-
+002-4.gat,100,37,0|script|Button|400,0,0,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-3/naem.txt b/world/map/npc/002-4/naem.txt
index bfcde613..04818ebf 100644
--- a/world/map/npc/002-3/naem.txt
+++ b/world/map/npc/002-4/naem.txt
@@ -2,8 +2,8 @@
// - nibble 4 and 5 of QUEST_SouthTulimshar
// - in FLAGS, bits FLAG_GOT_NAEM_GLOVES and FLAG_OPENED_UNDERGROUND
-002-3.gat,85,97,6|script|Naem|109,{
-
+002-4.gat,91,96,6|script|Naem|109,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/002-3/underground_palace_barrier.txt b/world/map/npc/002-4/underground_palace_barrier.txt
index a56fe801..240dbbae 100644
--- a/world/map/npc/002-3/underground_palace_barrier.txt
+++ b/world/map/npc/002-4/underground_palace_barrier.txt
@@ -1,7 +1,7 @@
//underground palace barrier
-002-3.gat,68,98,0|script|#UGP_Barrier|45,0,0,{
-
+002-4.gat,68,98,0|script|#UGP_Barrier|45,0,0,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
@@ -13,7 +13,7 @@
goto L_End;
L_Underground_Palace_Barrier_Open:
- warp "002-4.gat",34,98;
+ warp "002-5.gat",37,96;
goto L_End;
L_End:
diff --git a/world/map/npc/002-5/_import.txt b/world/map/npc/002-5/_import.txt
new file mode 100644
index 00000000..e12c5372
--- /dev/null
+++ b/world/map/npc/002-5/_import.txt
@@ -0,0 +1,7 @@
+// Map 002-5: Deep Desert Mines
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 002-5.gat
+npc: npc/002-5/_mobs.txt
+npc: npc/002-5/_warps.txt
+npc: npc/002-5/chest.txt
+npc: npc/002-5/sema.txt
diff --git a/world/map/npc/002-5/_mobs.txt b/world/map/npc/002-5/_mobs.txt
new file mode 100644
index 00000000..9d14c217
--- /dev/null
+++ b/world/map/npc/002-5/_mobs.txt
@@ -0,0 +1,51 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Deep Desert Mines mobs
+
+002-5.gat,37,89,12,7|monster|AngryFireGoblin|1108,3,100000,30000,Mob002-5::On1108
+002-5.gat,33,76,3,11|monster|CaveMaggot|1056,3,100000,30000,Mob002-5::On1056
+002-5.gat,40,68,7,5|monster|AngryScorpion|1057,3,100000,30000,Mob002-5::On1057
+002-5.gat,40,38,18,5|monster|Archant|1060,3,100000,30000,Mob002-5::On1060
+002-5.gat,56,97,2,5|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,68,100,12,2|monster|YellowSlime|1007,4,100000,30000,Mob002-5::On1007
+002-5.gat,91,80,1,5|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,89,94,1,5|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,74,78,1,5|monster|Archant|1060,2,100000,30000,Mob002-5::On1060
+002-5.gat,94,72,2,4|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,90,61,6,2|monster|YellowSlime|1007,1,100000,30000,Mob002-5::On1007
+002-5.gat,74,35,1,5|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,84,33,1,5|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,84,46,1,5|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,99,38,1,5|monster|Archant|1060,1,100000,30000,Mob002-5::On1060
+002-5.gat,93,38,8,2|monster|YellowSlime|1007,2,100000,30000,Mob002-5::On1007
+002-5.gat,62,62,5,43|monster|AngryFireGoblin|1108,3,100000,30000,Mob002-5::On1108
+
+
+002-5.gat,0,0,0|script|Mob002-5|-1,
+{
+On1007:
+ set @mobID, 1007;
+ callfunc "MobPoints";
+ end;
+
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ end;
+
+On1057:
+ set @mobID, 1057;
+ callfunc "MobPoints";
+ end;
+
+On1060:
+ set @mobID, 1060;
+ callfunc "MobPoints";
+ end;
+
+On1108:
+ set @mobID, 1108;
+ callfunc "MobPoints";
+ end;
+
+ end;
+}
diff --git a/world/map/npc/002-5/_warps.txt b/world/map/npc/002-5/_warps.txt
new file mode 100644
index 00000000..a7f33af9
--- /dev/null
+++ b/world/map/npc/002-5/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Deep Desert Mines warps
+
+002-5.gat,34,98|warp|To Second Level|-1,-1,002-4.gat,68,99
diff --git a/world/map/npc/002-4/chest.txt b/world/map/npc/002-5/chest.txt
index 61b59109..f3818bf6 100644
--- a/world/map/npc/002-4/chest.txt
+++ b/world/map/npc/002-5/chest.txt
@@ -1,7 +1,7 @@
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-4.gat,93,37,0|script|Treasure|111,{
-
+002-5.gat,93,37,0|script|Supply Chest|378,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
@@ -9,7 +9,7 @@
if (@state >= 26) goto L_Finished;
- mes "There is a chest here.";
+ mes "Hrmm... A supply chest.";
mes "Do you want to try to open it?";
next;
menu
diff --git a/world/map/npc/002-4/miners.txt b/world/map/npc/002-5/sema.txt
index 3fa17e35..3462c5ca 100644
--- a/world/map/npc/002-4/miners.txt
+++ b/world/map/npc/002-5/sema.txt
@@ -1,7 +1,7 @@
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-002-4.gat,32,94,6|script|Sema|340,{
-
+002-5.gat,43,91,6|script|Sema|340,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
@@ -12,7 +12,7 @@
if (@state == 26) goto L_Sema_GCM;
mes "[Sema the Miner]";
- mes "\"Hello adventurer. I do not know exactly where, but somewhere in this cave there is a chest. And wouldn't you know it! The archants have eaten all the spare keys for the chest. Go and do what you must do.\"";
+ mes "\"Hello adventurer. I do not know exactly where, but somewhere in this cave there is a supply chest. And wouldn't you know it! The archants have eaten all the spare keys for the chest. Go and do what you must do.\"";
goto L_Close;
L_Sema_GCM:
@@ -30,7 +30,7 @@ L_Sema_No:
L_Sema_Yes:
set @state, 27;
callsub S_Update_Var;
- monster "002-4.gat", 70, 90, "", 1059, 1;
+ monster "002-5.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.\"";
goto L_Close;
diff --git a/world/map/npc/003-1/_mobs.txt b/world/map/npc/003-1/_mobs.txt
index 4bbca634..35c3274f 100644
--- a/world/map/npc/003-1/_mobs.txt
+++ b/world/map/npc/003-1/_mobs.txt
@@ -9,7 +9,8 @@
003-1.gat,35,25,10,3|monster|MountainSnake|1026,1,700000,600000,Mob003-1::On1026
-003-1.gat,0,0,0|script|Mob003-1|-1,{
+003-1.gat,0,0,0|script|Mob003-1|-1,
+{
On1004:
set @mobID, 1004;
callfunc "MobPoints";
diff --git a/world/map/npc/003-1/_warps.txt b/world/map/npc/003-1/_warps.txt
index fc6128df..0adea8a4 100644
--- a/world/map/npc/003-1/_warps.txt
+++ b/world/map/npc/003-1/_warps.txt
@@ -5,3 +5,4 @@
003-1.gat,141,19|warp|To Beach|1,-1,004-1.gat,37,110
003-1.gat,48,36|warp|To Beach House|-1,-1,003-2.gat,22,28
003-1.gat,59,29|warp|To Beach Storage|-1,-1,003-2.gat,56,28
+003-1.gat,114,117|warp|To Beach|1,-1,043-1.gat,44,20
diff --git a/world/map/npc/003-1/stranger.txt b/world/map/npc/003-1/stranger.txt
index 2aaeeea9..97428470 100644
--- a/world/map/npc/003-1/stranger.txt
+++ b/world/map/npc/003-1/stranger.txt
@@ -1,5 +1,5 @@
-003-1.gat,35,25,0|script|Stranger|192, {
-
+003-1.gat,35,25,0|script|Stranger|192,
+{
set @month, 5;
set @start_day, 18;
set @end_day, 25;
diff --git a/world/map/npc/003-2/_mobs.txt b/world/map/npc/003-2/_mobs.txt
index af203ef4..e4b0befc 100644
--- a/world/map/npc/003-2/_mobs.txt
+++ b/world/map/npc/003-2/_mobs.txt
@@ -3,6 +3,7 @@
-003-2.gat,0,0,0|script|Mob003-2|-1,{
+003-2.gat,0,0,0|script|Mob003-2|-1,
+{
end;
}
diff --git a/world/map/npc/004-1/_mobs.txt b/world/map/npc/004-1/_mobs.txt
index e64585d8..31656f56 100644
--- a/world/map/npc/004-1/_mobs.txt
+++ b/world/map/npc/004-1/_mobs.txt
@@ -10,7 +10,8 @@
004-1.gat,93,27,2,3|monster|BlackScorpion|1009,1,120000,60000,Mob004-1::On1009
-004-1.gat,0,0,0|script|Mob004-1|-1,{
+004-1.gat,0,0,0|script|Mob004-1|-1,
+{
On1004:
set @mobID, 1004;
callfunc "MobPoints";
diff --git a/world/map/npc/004-2/_mobs.txt b/world/map/npc/004-2/_mobs.txt
index 72d30f0c..46b9e891 100644
--- a/world/map/npc/004-2/_mobs.txt
+++ b/world/map/npc/004-2/_mobs.txt
@@ -3,6 +3,7 @@
-004-2.gat,0,0,0|script|Mob004-2|-1,{
+004-2.gat,0,0,0|script|Mob004-2|-1,
+{
end;
}
diff --git a/world/map/npc/005-1/_mobs.txt b/world/map/npc/005-1/_mobs.txt
index 7e6d30f5..aea62c29 100644
--- a/world/map/npc/005-1/_mobs.txt
+++ b/world/map/npc/005-1/_mobs.txt
@@ -14,7 +14,8 @@
005-1.gat,96,49,103,48|monster|Maggot|1002,20,100000,30000,Mob005-1::On1002
-005-1.gat,0,0,0|script|Mob005-1|-1,{
+005-1.gat,0,0,0|script|Mob005-1|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/005-1/npcs.txt b/world/map/npc/005-1/npcs.txt
index 2c40697f..499b637e 100644
--- a/world/map/npc/005-1/npcs.txt
+++ b/world/map/npc/005-1/npcs.txt
@@ -2,14 +2,16 @@
005-1.gat,69,76,0|shop|George|115,ShortBow :-1,Arrow :1,IronArrow :-1,Beer :-1,ChickenLeg :-2
-005-1.gat,66,75,0|script|Kieron|132,{
+005-1.gat,66,75,0|script|Kieron|132,
+{
mes "[Kieron]";
mes "\"Be careful if you're going in that cave,";
mes "it's packed full of monsters.\"";
close;
}
-005-1.gat,91,23,0|script|William|131,{
+005-1.gat,91,23,0|script|William|131,
+{
mes "[William]";
mes "\"Going in the cave?";
mes "You better watch your step, last time I checked it was full of monsters!\"";
diff --git a/world/map/npc/005-1/spirit.txt b/world/map/npc/005-1/spirit.txt
index cd75d536..fa4e61a8 100644
--- a/world/map/npc/005-1/spirit.txt
+++ b/world/map/npc/005-1/spirit.txt
@@ -1,4 +1,5 @@
-function|script|EarthImpTouch|{
+function|script|EarthImpTouch|,
+{
if (getskilllv(SKILL_MAGIC)) goto L_message;
mes "[Well]";
@@ -275,10 +276,12 @@ S_update_var:
return;
}
-005-1.gat,118,70,0|script|#EarthImp0#_M|400,{
+005-1.gat,118,70,0|script|#EarthImp0#_M|400,
+{
callfunc "EarthImpTouch";
}
-005-1.gat,119,70,0|script|#EarthImp1#_M|400,{
+005-1.gat,119,70,0|script|#EarthImp1#_M|400,
+{
callfunc "EarthImpTouch";
}
diff --git a/world/map/npc/005-1/tree.txt b/world/map/npc/005-1/tree.txt
index e42a050f..2b63f8cb 100644
--- a/world/map/npc/005-1/tree.txt
+++ b/world/map/npc/005-1/tree.txt
@@ -1,4 +1,5 @@
-function|script|QuestTreeTrigger|{
+function|script|QuestTreeTrigger|,
+{
set @Q_MASK, NIBBLE_2_MASK;
set @Q_SHIFT, NIBBLE_2_SHIFT;
@@ -45,7 +46,8 @@ S_update_var:
return;
}
-function|script|QuestTreeTouch|{
+function|script|QuestTreeTouch|,
+{
set @Q_MASK, NIBBLE_2_MASK;
set @Q_SHIFT, NIBBLE_2_SHIFT;
@@ -156,10 +158,12 @@ L_Close:
}
-005-1.gat,79,41,0|script|#DruidTree0#_M|400,{
+005-1.gat,79,41,0|script|#DruidTree0#_M|400,
+{
callfunc "QuestTreeTouch";
}
-005-1.gat,80,41,0|script|#DruidTree1#_M|400,{
+005-1.gat,80,41,0|script|#DruidTree1#_M|400,
+{
callfunc "QuestTreeTouch";
}
diff --git a/world/map/npc/005-3/_mobs.txt b/world/map/npc/005-3/_mobs.txt
index 29e96579..08985e9a 100644
--- a/world/map/npc/005-3/_mobs.txt
+++ b/world/map/npc/005-3/_mobs.txt
@@ -4,7 +4,8 @@
005-3.gat,0,0,0,0|monster|Snake|1010,175,0,0,Mob005-3::On1010
-005-3.gat,0,0,0|script|Mob005-3|-1,{
+005-3.gat,0,0,0|script|Mob005-3|-1,
+{
On1010:
set @mobID, 1010;
callfunc "MobPoints";
diff --git a/world/map/npc/005-4/_mobs.txt b/world/map/npc/005-4/_mobs.txt
index 2c626003..35b4adb1 100644
--- a/world/map/npc/005-4/_mobs.txt
+++ b/world/map/npc/005-4/_mobs.txt
@@ -3,6 +3,7 @@
-005-4.gat,0,0,0|script|Mob005-4|-1,{
+005-4.gat,0,0,0|script|Mob005-4|-1,
+{
end;
}
diff --git a/world/map/npc/005-4/bossfight.txt b/world/map/npc/005-4/bossfight.txt
index bc196ef3..8f8ab384 100644
--- a/world/map/npc/005-4/bossfight.txt
+++ b/world/map/npc/005-4/bossfight.txt
@@ -1,6 +1,7 @@
//Author: Kage
-005-4.gat,36,19,0|script|Switch#elecave|400,{
+005-4.gat,36,19,0|script|Switch#elecave|400,
+{
if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy;
mes "*You see a switch, it is flipped off*";
@@ -22,11 +23,11 @@ L_Start_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";
+ 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";
+ 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:
@@ -58,8 +59,8 @@ OnTimer3000:
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_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;
@@ -84,7 +85,7 @@ L_More_Blue:
L_Next_Step:
// Basic per player logic
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onTick";
+ 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;
@@ -102,11 +103,11 @@ L_Start_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";
+ 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";
+ 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:
@@ -115,23 +116,23 @@ L_Start_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";
+ 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";
+ 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:
+OnChaos:
if (isdead()) end;
L_Set_Color:
message strcharinfo(0), "You feel funny. You think your color has changed.";
set @ELE_CAVE_COLOR, rand(1, 2);
end;
-onTick:
+OnTick:
if (isdead()) end;
// Count this player as alive
@@ -174,21 +175,22 @@ L_Heal:
end;
// Death triggers
-onBlueDeath:
+OnBlueDeath:
// Blue players have to kill blue sparks
if (@ELE_CAVE_COLOR == 2) end;
message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you.";
heal MaxHp / -2, 0;
end;
-onRedDeath:
+OnRedDeath:
// Red players have to kill red sparks
if (@ELE_CAVE_COLOR == 1) end;
message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you.";
heal MaxHp / -2, 0;
end;
-onInit:
+OnInit:
+ if (debug >= 2) end;
initnpctimer;
stopnpctimer;
L_CleanUp:
@@ -198,8 +200,8 @@ L_CleanUp:
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";
+ killmonster "005-4.gat", "Switch#elecave::OnBlueDeath";
+ killmonster "005-4.gat", "Switch#elecave::OnRedDeath";
stopnpctimer;
setnpctimer 0;
diff --git a/world/map/npc/006-1/_mobs.txt b/world/map/npc/006-1/_mobs.txt
index 386ed695..6bf53fee 100644
--- a/world/map/npc/006-1/_mobs.txt
+++ b/world/map/npc/006-1/_mobs.txt
@@ -18,7 +18,8 @@
006-1.gat,36,98,33,35|monster|Scorpion|1003,10,100000,30000,Mob006-1::On1003
-006-1.gat,0,0,0|script|Mob006-1|-1,{
+006-1.gat,0,0,0|script|Mob006-1|-1,
+{
On1003:
set @mobID, 1003;
callfunc "MobPoints";
diff --git a/world/map/npc/006-1/mika.txt b/world/map/npc/006-1/mika.txt
index b4e2d69c..2b5c7401 100644
--- a/world/map/npc/006-1/mika.txt
+++ b/world/map/npc/006-1/mika.txt
@@ -1,4 +1,5 @@
-006-1.gat,39,27,0|script|Mika|114,{
+006-1.gat,39,27,0|script|Mika|114,
+{
mes "[Mika]";
mes "\"My father told me about a man living in this desert who makes clothes out of snake skin.\"";
next;
diff --git a/world/map/npc/006-1/pachua.txt b/world/map/npc/006-1/pachua.txt
index 9f2d1dab..7fe9377f 100644
--- a/world/map/npc/006-1/pachua.txt
+++ b/world/map/npc/006-1/pachua.txt
@@ -1,4 +1,5 @@
-006-1.gat,23,100,0|script|Pachua|143,{
+006-1.gat,23,100,0|script|Pachua|143,
+{
set @LEATHER_PATCH_PRICE, 300;
// @wants_leather_patch is used as boolean
set @wants_leather_patch, QUEST_Forestbow_state & NIBBLE_4_MASK;
diff --git a/world/map/npc/006-3/_mobs.txt b/world/map/npc/006-3/_mobs.txt
index 84b288ef..a9c22311 100644
--- a/world/map/npc/006-3/_mobs.txt
+++ b/world/map/npc/006-3/_mobs.txt
@@ -29,7 +29,8 @@
006-3.gat,83,107,13,14|monster|YellowSlime|1007,6,90000,30000,Mob006-3::On1007
-006-3.gat,0,0,0|script|Mob006-3|-1,{
+006-3.gat,0,0,0|script|Mob006-3|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/007-1/_mobs.txt b/world/map/npc/007-1/_mobs.txt
index 4e1d7488..90be87d2 100644
--- a/world/map/npc/007-1/_mobs.txt
+++ b/world/map/npc/007-1/_mobs.txt
@@ -12,7 +12,8 @@
007-1.gat,0,0,0,0|monster|Butterfly|1055,10,30,20,Mob007-1::On1055
-007-1.gat,0,0,0|script|Mob007-1|-1,{
+007-1.gat,0,0,0|script|Mob007-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/007-1/voltain.txt b/world/map/npc/007-1/voltain.txt
index d1a28236..659e9d7c 100644
--- a/world/map/npc/007-1/voltain.txt
+++ b/world/map/npc/007-1/voltain.txt
@@ -25,8 +25,8 @@
// # 12: bring gamboge herbs
// # 13: bring chocolate cake
-007-1.gat,37,21,0|script|Voltain|103,{
-
+007-1.gat,37,21,0|script|Voltain|103,
+{
set @BOTTLE_NEEDED, 3;
set @BOTTLE_REWARD_XP, 100;
set @BOTTLE_REWARD_GOLD, 450;
diff --git a/world/map/npc/007-1/witch.txt b/world/map/npc/007-1/witch.txt
index 354df9a0..8eb78a2b 100644
--- a/world/map/npc/007-1/witch.txt
+++ b/world/map/npc/007-1/witch.txt
@@ -14,8 +14,8 @@
// 254: Quest is being ended and cleaned: the hero logged off.
// 255: Quest is being ended and cleaned: the hero died or he ran out of time
-007-1.gat,77,81,0|script|Valia|370,{
-
+007-1.gat,77,81,0|script|Valia|370,
+{
set @illia_sapphire_powder, 3;
set @illia_amethyst_powder, 1;
set @illia_iron_powder, 13;
@@ -639,10 +639,11 @@ OnTimer300000:
}
-007-1.gat,128,100,0|script|#IlliaDaemon|127,{
+007-1.gat,128,100,0|script|#IlliaDaemon|127,
+{
end;
-onInit:
+OnInit:
disablenpc "#IlliaTorch1";
disablenpc "#IlliaTorch2";
disablenpc "#IlliaTorch3";
@@ -871,8 +872,8 @@ L_Start:
}
-function|script|UpdateIlliaProgress|{
-
+function|script|UpdateIlliaProgress|,
+{
if ($@illia_progress == 1)
goto L_Torch1;
if ($@illia_progress == 2)
@@ -921,34 +922,42 @@ return;
}
-007-1.gat,72,88,0|script|#IlliaTorch1|374,{
+007-1.gat,72,88,0|script|#IlliaTorch1|374,
+{
end;
}
-007-1.gat,71,85,0|script|#IlliaTorch2|374,{
+007-1.gat,71,85,0|script|#IlliaTorch2|374,
+{
end;
}
-007-1.gat,75,70,0|script|#IlliaTorch3|374,{
+007-1.gat,75,70,0|script|#IlliaTorch3|374,
+{
end;
}
-007-1.gat,85,71,0|script|#IlliaTorch4|374,{
+007-1.gat,85,71,0|script|#IlliaTorch4|374,
+{
end;
}
-007-1.gat,88,69,0|script|#IlliaTorch5|374,{
+007-1.gat,88,69,0|script|#IlliaTorch5|374,
+{
end;
}
-007-1.gat,86,68,0|script|#IlliaTorch6|374,{
+007-1.gat,86,68,0|script|#IlliaTorch6|374,
+{
end;
}
-007-1.gat,87,68,0|script|#IlliaTorch7|374,{
+007-1.gat,87,68,0|script|#IlliaTorch7|374,
+{
end;
}
-007-1.gat,88,67,0|script|#IlliaTorch8|374,{
+007-1.gat,88,67,0|script|#IlliaTorch8|374,
+{
end;
}
diff --git a/world/map/npc/008-1/_mobs.txt b/world/map/npc/008-1/_mobs.txt
index 433f4ee4..1f64f55f 100644
--- a/world/map/npc/008-1/_mobs.txt
+++ b/world/map/npc/008-1/_mobs.txt
@@ -12,7 +12,8 @@
008-1.gat,0,0,0,0|monster|Butterfly|1055,10,30,20,Mob008-1::On1055
-008-1.gat,0,0,0|script|Mob008-1|-1,{
+008-1.gat,0,0,0|script|Mob008-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/008-1/andra.txt b/world/map/npc/008-1/andra.txt
index a58e465a..d86a32a1 100644
--- a/world/map/npc/008-1/andra.txt
+++ b/world/map/npc/008-1/andra.txt
@@ -1,7 +1,7 @@
// 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,{
-
+008-1.gat,36,26,0|script|Andra|201,
+{
set @water_amount, 1;
set @seeds_amount, 4;
if ($@andra_status == 1) goto L_Planting;
diff --git a/world/map/npc/008-1/annualeaster.txt b/world/map/npc/008-1/annualeaster.txt
index 510ee9d3..66c1c746 100644
--- a/world/map/npc/008-1/annualeaster.txt
+++ b/world/map/npc/008-1/annualeaster.txt
@@ -9,8 +9,8 @@
// the event in these days.
-function|script|AnnualEasterEvent|{
-
+function|script|AnnualEasterEvent|,
+{
if ((gettimetick(2)-TUT_var < 5*7*86400) || (BaseLevel < 40)) //player must be created at least 5 weeks ago
goto L_EndTooYoung;
@@ -110,26 +110,30 @@ L_End1:
return;
}
-008-1.gat,65,40,0|script|#TestEgg0|375,{
+008-1.gat,65,40,0|script|#TestEgg0|375,
+{
set @EasterEggID, 0;
callfunc("AnnualEasterEvent");
}
-008-1.gat,65,40,0|script|#TestEgg1|375,{
+008-1.gat,65,40,0|script|#TestEgg1|375,
+{
set @EasterEggID, 1;
callfunc("AnnualEasterEvent");
}
-008-1.gat,65,40,0|script|#TestEgg2|375,{
+008-1.gat,65,40,0|script|#TestEgg2|375,
+{
set @EasterEggID, 2;
callfunc("AnnualEasterEvent");
}
-008-1.gat,59,38,0|script|#AnnualEaster|-1,{
+008-1.gat,59,38,0|script|#AnnualEaster|-1,
+{
end;
-onInit:
+OnInit:
set $@EASTER_FOUND_WAIT_TIME, 15;
set $@EASTER_FINAL_REW_INV_CHANCE, 70;
set $@EASTER_EGG_INV_CHANCE, 750;
@@ -148,6 +152,7 @@ onInit:
setarray $@FinalAnnualEasterReward$, "RedEggshellHat", "BlueEggshellHat", "YellowEggshellHat", "GreenEggshellHat", "OrangeEggshellHat", "DarkEggshellHat";
callsub S_disableEggs;
+ if (debug >= 2) end;
initnpctimer;
end;
@@ -167,10 +172,20 @@ OnTimer1000:
set $@isEaster, 1;
if (!$@wasEaster && $@isEaster)
- callsub S_enableEggs;
+ goto L_do_update_enable;
if ($@wasEaster && !$@isEaster)
- callsub S_disableEggs;
+ goto L_do_update_disable;
+ goto L_done_update;
+
+L_do_update_enable:
+ callsub S_enableEggs;
+ goto L_done_update;
+
+L_do_update_disable:
+ callsub S_disableEggs;
+ goto L_done_update;
+L_done_update:
set $@wasEaster, $@isEaster;
if (!$@isEaster)
diff --git a/world/map/npc/008-1/diryn.txt b/world/map/npc/008-1/diryn.txt
index 21767c29..ae3368ac 100644
--- a/world/map/npc/008-1/diryn.txt
+++ b/world/map/npc/008-1/diryn.txt
@@ -2,7 +2,8 @@
// Author: Wombat
// cost depending on level and adapted to new scripting guidelines: Jenalya
-008-1.gat,81,82,0|script|Diryn the Traveler|103,{
+008-1.gat,81,82,0|script|Diryn the Traveler|103,
+{
if (BaseLevel < 45)
goto L_LowerCost;
@@ -11,7 +12,7 @@
set @cost_magichouse, 1000;
set @cost_terranitecave, 1500;
set @cost_tulimshar, 1000;
- set @cost_nivalis, 1000;
+ set @cost_nivalis, 1500;
L_Start:
mes "[Diryn]";
@@ -31,7 +32,7 @@ L_Diryn_Yes:
"Magic House (" + @cost_magichouse + " GP)", L_Diryn_Magic_House,
"Terranite Cave (" + @cost_terranitecave + " GP)", L_Diryn_Terranite,
"Tulimshar Town Square (" + @cost_tulimshar + " GP)", L_Diryn_Tulimshar,
- "Nivalis (" + @cost_nivalis + " GP)", L_Diryn_Nivalis,
+ "Sage Nikolai's Mansion (" + @cost_nivalis + " GP)", L_Diryn_Nivalis,
"I'm not interested.", L_Diryn_No;
L_Diryn_Druid_Tree:
@@ -39,6 +40,7 @@ L_Diryn_Druid_Tree:
goto L_NoMoney;
mes "[Diryn]";
mes "\"Be fearless!\"";
+ close2;
set Zeny, Zeny - @cost_druidtree;
warp "005-1.gat",73,36;
goto L_Clearvars;
@@ -48,6 +50,7 @@ L_Diryn_Graveyard:
goto L_NoMoney;
mes "[Diryn]";
mes "\"Be fearless!\"";
+ close2;
set Zeny, Zeny - @cost_graveyard;
warp "027-1.gat",70,85;
goto L_Clearvars;
@@ -57,6 +60,7 @@ L_Diryn_Magic_House:
goto L_NoMoney;
mes "[Diryn]";
mes "\"Be fearless!\"";
+ close2;
set Zeny, Zeny - @cost_magichouse;
warp "013-1.gat",45,92;
goto L_Clearvars;
@@ -66,6 +70,7 @@ L_Diryn_Terranite:
goto L_NoMoney;
mes "[Diryn]";
mes "\"Be fearless!\"";
+ close2;
set Zeny, Zeny - @cost_terranitecave;
warp "012-3.gat",445,65;
goto L_Clearvars;
@@ -75,6 +80,7 @@ L_Diryn_Tulimshar:
goto L_NoMoney;
mes "[Diryn]";
mes "\"Be fearless!\"";
+ close2;
set Zeny, Zeny - @cost_tulimshar;
warp "001-1.gat",44,70;
goto L_Clearvars;
@@ -84,8 +90,9 @@ L_Diryn_Nivalis:
goto L_NoMoney;
mes "[Diryn]";
mes "\"Be fearless!\"";
+ close2;
set Zeny, Zeny - @cost_nivalis;
- warp "020-1.gat",71,100;
+ warp "048-1.gat",65,45;
goto L_Clearvars;
L_Diryn_No:
@@ -114,5 +121,5 @@ L_Clearvars:
set @cost_terranitecave, 0;
set @cost_tulimshar, 0;
set @cost_nivalis, 0;
- close;
+ end;
}
diff --git a/world/map/npc/008-1/dock.txt b/world/map/npc/008-1/dock.txt
index c944fe71..2d6be3fe 100644
--- a/world/map/npc/008-1/dock.txt
+++ b/world/map/npc/008-1/dock.txt
@@ -1,6 +1,7 @@
// The ferry dock
-008-1.gat,140,64,0|script|#hurnscalddock|45,2,1,{
+008-1.gat,140,64,0|script|#hurnscalddock|45,2,1,
+{
set @loc, DOCK_hurnscald;
callfunc "Ferry";
}
diff --git a/world/map/npc/008-1/george.txt b/world/map/npc/008-1/george.txt
index 70725432..fb7406bb 100644
--- a/world/map/npc/008-1/george.txt
+++ b/world/map/npc/008-1/george.txt
@@ -1,6 +1,7 @@
//
-008-1.gat,136,36,0|script|George|138,{
+008-1.gat,136,36,0|script|George|138,
+{
set @hw2011_npc_id, $@hw2011_npc_george;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
diff --git a/world/map/npc/008-1/hinnak.txt b/world/map/npc/008-1/hinnak.txt
index d2551e5a..8deb8263 100644
--- a/world/map/npc/008-1/hinnak.txt
+++ b/world/map/npc/008-1/hinnak.txt
@@ -5,7 +5,8 @@
//
// Variables used: Nibble 1 of QUEST_Hurnscald (previously QUEST_Scythe_state)
-008-1.gat,101,30,0|script|Hinnak|142,{
+008-1.gat,101,30,0|script|Hinnak|142,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/009-1/_mobs.txt b/world/map/npc/009-1/_mobs.txt
index f3cac242..e368c8d5 100644
--- a/world/map/npc/009-1/_mobs.txt
+++ b/world/map/npc/009-1/_mobs.txt
@@ -8,7 +8,8 @@
009-1.gat,0,0,0,0|monster|Butterfly|1055,5,30,20,Mob009-1::On1055
-009-1.gat,0,0,0|script|Mob009-1|-1,{
+009-1.gat,0,0,0|script|Mob009-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/009-1/jack.txt b/world/map/npc/009-1/jack.txt
index 65968d5e..6d7bf498 100644
--- a/world/map/npc/009-1/jack.txt
+++ b/world/map/npc/009-1/jack.txt
@@ -14,7 +14,8 @@
//#################################################################################
// Lumberjack
-009-1.gat,40,45,0|script|Jack|141,{
+009-1.gat,40,45,0|script|Jack|141,
+{
callfunc "ClearVariables";
set @RAWLOGS_AMOUNT, 40;
@@ -39,8 +40,11 @@
mes "[Jack Lumber]";
mes "\"Hello there, my name is Jack Lumber, the enemy of all trees. If you need some firewood just let me know.\"";
- if (@inspector == 1)
- callsub S_NohMask_Ask;
+ if (@inspector != 1)
+ goto L_NotInspector;
+ callsub S_NohMask_Ask;
+
+L_NotInspector:
next;
if (@Q_Forestbow < 1)
goto L_Close;
@@ -96,8 +100,9 @@ L_Bow_state_2:
if (@Q_Forestbow > 3) goto L_Bow_state_4;
mes "\"Good luck hunting those tree monsters - you will need it.\"";
- if (@inspector == 1)
- callsub S_NohMask_Ask;
+ if (@inspector != 1)
+ goto L_Close;
+ callsub S_NohMask_Ask;
goto L_Close;
L_Bow_state_4:
diff --git a/world/map/npc/009-1/milly.txt b/world/map/npc/009-1/milly.txt
index a6b505cc..00a63939 100644
--- a/world/map/npc/009-1/milly.txt
+++ b/world/map/npc/009-1/milly.txt
@@ -6,7 +6,8 @@
//
// Inspector quest
-009-1.gat,81,41,0|script|Milly|114,{
+009-1.gat,81,41,0|script|Milly|114,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
@@ -29,8 +30,7 @@
mes "[Milly]";
mes "\"Hello traveler, welcome to Hurnscald.\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"Have you met Kfahr yet? He is the greatest hero that ever walked the land of Hurnscald!\"";
menu
@@ -61,8 +61,7 @@ L_NoKnifeYet:
mes "[Milly]";
mes "\"Hi again.\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"Have you talked to Kfahr lately?\"";
menu
@@ -109,8 +108,7 @@ L_GotBoneKnife:
mes "[Milly]";
mes "\"Hi there.\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"I heard that you got an exotic knife from Kfahr.";
mes "Would you kindly show it to me?\"";
@@ -159,8 +157,7 @@ L_SavedRossy:
mes "[Milly]";
mes "\"Hi friend!\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"Word of your fame has spread throughout all Hurnscald of your great heroism by helping my friends Rossy and Julia!\"";
next;
@@ -195,8 +192,7 @@ L_SavedCindy:
mes "[Milly]";
mes "\"Hi!\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"Are the rumors true?\"";
next;
@@ -234,8 +230,7 @@ L_GotSetzer:
mes "[Milly]";
mes "\"Hello!\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"I heard that you got hold of a Setzer!\"";
next;
@@ -266,8 +261,7 @@ L_OfferCap:
mes "[Milly]";
mes "\"Hi there, hero of Hurnscald!\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"You really have proven yourself over and over. There is no way anyone could possibly say, you are not the equal of Kfahr!\"";
next;
@@ -326,8 +320,7 @@ L_FinishedGood:
mes "[Milly]";
mes "\"Hi there friend, my hero!\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"Wear the copter beany cap in good health, mana and wealth! See you around!\"";
goto L_Close;
@@ -336,8 +329,7 @@ L_FinishedBad:
mes "[Milly]";
mes "\"Oh, it's you. I suppose you're here to make fun of my hat again.\"";
next;
- if (@inspector == 1)
- callsub S_InspectorQuest;
+ callsub S_InspectorMaybe;
mes "\"Won't you continue your travels soon?\"";
menu
"That's what I'm going to do.", -,
@@ -368,7 +360,9 @@ L_Close:
set @inspector, 0;
close;
-S_InspectorQuest:
+S_InspectorMaybe:
+ if (@inspector != 1)
+ return;
menu
"Have you seen anything strange lately?", L_NohMask_Strange,
"Do you know anything about the recent robberies?", L_NohMask_Robbery,
@@ -390,8 +384,8 @@ L_Return:
return;
}
-009-1.gat,82,41,0|script|MillyDebugHelper|114,{
-
+009-1.gat,82,41,0|script|MillyDebugHelper|114,
+{
mes "You can set certain quests as finished or not finished. What would you like to do?";
menu
"Bone Knife Quest done.", L_DBoneKnife,
diff --git a/world/map/npc/009-1/old_man.txt b/world/map/npc/009-1/old_man.txt
index e799cc89..cebd0f59 100644
--- a/world/map/npc/009-1/old_man.txt
+++ b/world/map/npc/009-1/old_man.txt
@@ -1,6 +1,7 @@
// Old man
-009-1.gat,85,51,0|script|Old Man|159,{
+009-1.gat,85,51,0|script|Old Man|159,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/009-1/old_woman.txt b/world/map/npc/009-1/old_woman.txt
index fbd0e7aa..7e33e034 100644
--- a/world/map/npc/009-1/old_woman.txt
+++ b/world/map/npc/009-1/old_woman.txt
@@ -1,6 +1,7 @@
// Old woman
-009-1.gat,29,43,0|script|Old Woman|154,{
+009-1.gat,29,43,0|script|Old Woman|154,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/009-1/sabine.txt b/world/map/npc/009-1/sabine.txt
index d67c55b0..48d7e441 100644
--- a/world/map/npc/009-1/sabine.txt
+++ b/world/map/npc/009-1/sabine.txt
@@ -1,6 +1,7 @@
// Girl sitting on bench
-009-1.gat,88,27,0|script|Sabine|106,{
+009-1.gat,88,27,0|script|Sabine|106,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/009-1/soul-menhir.txt b/world/map/npc/009-1/soul-menhir.txt
index d3e5d385..063ac7a9 100644
--- a/world/map/npc/009-1/soul-menhir.txt
+++ b/world/map/npc/009-1/soul-menhir.txt
@@ -1,6 +1,7 @@
//
-009-1.gat,53,40,0|script|Soul Menhir|344,{
+009-1.gat,53,40,0|script|Soul Menhir|344,
+{
callfunc "ClearVariables";
set @map$, "009-1.gat";
setarray @Xs, 52, 53, 54, 52, 54, 52, 54;
diff --git a/world/map/npc/009-1/water_pump.txt b/world/map/npc/009-1/water_pump.txt
index 3ce09159..b582b312 100644
--- a/world/map/npc/009-1/water_pump.txt
+++ b/world/map/npc/009-1/water_pump.txt
@@ -1,5 +1,6 @@
// Water pump. You can fill empty bottles here
-009-1.gat,76,33,0|script|Water Pump|203,{
+009-1.gat,76,33,0|script|Water Pump|203,
+{
callfunc "WaterBottle";
}
diff --git a/world/map/npc/009-2/_mobs.txt b/world/map/npc/009-2/_mobs.txt
index 198257c3..f404b00d 100644
--- a/world/map/npc/009-2/_mobs.txt
+++ b/world/map/npc/009-2/_mobs.txt
@@ -3,6 +3,7 @@
-009-2.gat,0,0,0|script|Mob009-2|-1,{
+009-2.gat,0,0,0|script|Mob009-2|-1,
+{
end;
}
diff --git a/world/map/npc/009-2/airlia.txt b/world/map/npc/009-2/airlia.txt
index 3bc92277..33d38d38 100644
--- a/world/map/npc/009-2/airlia.txt
+++ b/world/map/npc/009-2/airlia.txt
@@ -6,7 +6,8 @@
// * Airlia quest = 2 unlocks other options, perhaps with future Warrior Guild prospects (this is long term)
-009-2.gat,123,71,0|script|Airlia|108,{
+009-2.gat,123,71,0|script|Airlia|108,
+{
// Subquest 1a: Caretaker's daughter (initial, once)
set @LETTER_REWARD_GOLD_INITIAL, 1000;
set @LETTER_REWARD_EXP_INITIAL, 2000;
diff --git a/world/map/npc/009-2/alan.txt b/world/map/npc/009-2/alan.txt
index 53715527..22f2fbc1 100644
--- a/world/map/npc/009-2/alan.txt
+++ b/world/map/npc/009-2/alan.txt
@@ -8,7 +8,8 @@
//#################################################################################
// Archer Shop Master
-009-2.gat,99,23,0|script|Alan|125,{
+009-2.gat,99,23,0|script|Alan|125,
+{
callfunc "ClearVariables";
set @Q_MASK, NIBBLE_0_MASK;
diff --git a/world/map/npc/009-2/doctor.txt b/world/map/npc/009-2/doctor.txt
index c9b5684a..a2e16ff9 100644
--- a/world/map/npc/009-2/doctor.txt
+++ b/world/map/npc/009-2/doctor.txt
@@ -1,6 +1,7 @@
// Doctor
-009-2.gat,148,25,0|script|Doctor|107,{
+009-2.gat,148,25,0|script|Doctor|107,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/009-2/drunks.txt b/world/map/npc/009-2/drunks.txt
index a20a0c91..d97100ac 100644
--- a/world/map/npc/009-2/drunks.txt
+++ b/world/map/npc/009-2/drunks.txt
@@ -1,6 +1,7 @@
//Left drinking contest guy
-009-2.gat,65,55,0|script|Drinker|121,{
+009-2.gat,65,55,0|script|Drinker|121,
+{
mes "[Binge Drinker]";
mes "\"Ha! I'll drink muuuch mo.. more than you! Im not ooone biiit dr...dr..unk!\"";
close;
@@ -8,7 +9,8 @@
//Right drinking contest guy
-009-2.gat,68,55,0|script|Drinker|121,{
+009-2.gat,68,55,0|script|Drinker|121,
+{
mes "[Binge Drinker]";
mes "\"I can still drink more! Better give up you... you... teelotaler! MORE BEER MELINDA!\"";
//I know it's called "teetotaler". That error is on purpose.
diff --git a/world/map/npc/009-2/inspector.txt b/world/map/npc/009-2/inspector.txt
index 59bbd067..662b0c74 100644
--- a/world/map/npc/009-2/inspector.txt
+++ b/world/map/npc/009-2/inspector.txt
@@ -1,6 +1,7 @@
//
-009-2.gat,24,99,0|script|Inspector#Hurnscald|150,{
+009-2.gat,24,99,0|script|Inspector#Hurnscald|150,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/009-2/kfahr.txt b/world/map/npc/009-2/kfahr.txt
index 0df90c34..0b82d06a 100644
--- a/world/map/npc/009-2/kfahr.txt
+++ b/world/map/npc/009-2/kfahr.txt
@@ -13,7 +13,8 @@
//#
//#################################################################################
-009-2.gat,67,57,0|script|Kfahr|125,{
+009-2.gat,67,57,0|script|Kfahr|125,
+{
set @hw2011_npc_id, $@hw2011_npc_kfahr;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
diff --git a/world/map/npc/009-2/lena.txt b/world/map/npc/009-2/lena.txt
index c959d86f..4b49edf5 100644
--- a/world/map/npc/009-2/lena.txt
+++ b/world/map/npc/009-2/lena.txt
@@ -1,8 +1,8 @@
// Quest for Fairy Hat and Forest Armor
// Variables used: nibble 0 of QUEST_Hurnscald
-009-2.gat,146,43,0|script|Lena|182,{
-
+009-2.gat,146,43,0|script|Lena|182,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
diff --git a/world/map/npc/009-2/misc.txt b/world/map/npc/009-2/misc.txt
index 41d4c78e..5c80dc90 100644
--- a/world/map/npc/009-2/misc.txt
+++ b/world/map/npc/009-2/misc.txt
@@ -1,6 +1,7 @@
//Note in bar
-009-2.gat,54,49,0|script|Note|400,{
+009-2.gat,54,49,0|script|Note|400,
+{
mes "[Note]";
mes "\"We refuse service to anyone who:\"";
mes "\"-Has a bubblehead\"";
@@ -11,7 +12,8 @@
}
//Bookshelf
-009-2.gat,109,44,0|script|#Book|400,{
+009-2.gat,109,44,0|script|#Book|400,
+{
if (getskilllv(SKILL_MAGIC))
goto L_magic;
mes "[Bookshelf]";
diff --git a/world/map/npc/009-2/nicholas.txt b/world/map/npc/009-2/nicholas.txt
index 08fe98c2..d43b7df0 100644
--- a/world/map/npc/009-2/nicholas.txt
+++ b/world/map/npc/009-2/nicholas.txt
@@ -11,8 +11,8 @@
//#
//#################################################################################
-009-2.gat,185,55,0|script|Nicholas|135,{
-
+009-2.gat,185,55,0|script|Nicholas|135,
+{
set @SETZER_XP, 100000;
set @SHIELD_XP, 20000;
diff --git a/world/map/npc/009-2/nurse.txt b/world/map/npc/009-2/nurse.txt
index b89d1f60..d89b30d4 100644
--- a/world/map/npc/009-2/nurse.txt
+++ b/world/map/npc/009-2/nurse.txt
@@ -22,7 +22,8 @@
//######################################################################################
-009-2.gat,147,65,0|script|Nurse|119,{
+009-2.gat,147,65,0|script|Nurse|119,
+{
set @hw2011_npc_id, $@hw2011_npc_nurse;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
diff --git a/world/map/npc/009-2/olana.txt b/world/map/npc/009-2/olana.txt
index fe0e92e1..d528cc41 100644
--- a/world/map/npc/009-2/olana.txt
+++ b/world/map/npc/009-2/olana.txt
@@ -1,7 +1,7 @@
// Authors: alastrim, Ali-g, Dark Mage
-009-2.gat,63,79,0|script|Olana|190,{
-
+009-2.gat,63,79,0|script|Olana|190,
+{
set @MinLevel, 60;
set @Cherry_Amount, 10;
diff --git a/world/map/npc/009-2/peter.txt b/world/map/npc/009-2/peter.txt
index e0588f99..8c8f648d 100644
--- a/world/map/npc/009-2/peter.txt
+++ b/world/map/npc/009-2/peter.txt
@@ -1,7 +1,7 @@
// Nicholas' Apprentice and Armorsmith
-009-2.gat,183,57,0|script|Peter|157,{
-
+009-2.gat,183,57,0|script|Peter|157,
+{
set @peter_chain_mail_coal, 10;
set @peter_chain_mail_ingot, 5;
set @peter_chain_mail_money, 20000;
diff --git a/world/map/npc/009-2/richard.txt b/world/map/npc/009-2/richard.txt
index b19b215f..143de014 100644
--- a/world/map/npc/009-2/richard.txt
+++ b/world/map/npc/009-2/richard.txt
@@ -1,6 +1,7 @@
//
-009-2.gat,20,99,0|script|Richard|161,{
+009-2.gat,20,99,0|script|Richard|161,
+{
callfunc "ClearVariables";
set @npcname$, "Richard";
callfunc "Banker";
diff --git a/world/map/npc/009-2/selim.txt b/world/map/npc/009-2/selim.txt
index c434b656..055e54eb 100644
--- a/world/map/npc/009-2/selim.txt
+++ b/world/map/npc/009-2/selim.txt
@@ -5,7 +5,8 @@
//# #
//#################################################################################
-009-2.gat,32,104,0|script|Selim|326,{
+009-2.gat,32,104,0|script|Selim|326,
+{
setarray @all_colours$, "red", "green", "dark blue", "yellow", "light blue", "pink", "black", "orange", "purple", "dark green";
mes "[Selim]";
diff --git a/world/map/npc/009-2/shops.txt b/world/map/npc/009-2/shops.txt
index ce7fc548..c6267ceb 100644
--- a/world/map/npc/009-2/shops.txt
+++ b/world/map/npc/009-2/shops.txt
@@ -10,7 +10,8 @@
// Receptionist
// Offers the player to rest at the inn for 100gp
-009-2.gat,50,48,0|script|Receptionist|108,{
+009-2.gat,50,48,0|script|Receptionist|108,
+{
set @npcname$, "Receptionist";
set @cost, 100;
callfunc "Inn";
diff --git a/world/map/npc/009-2/waitress.txt b/world/map/npc/009-2/waitress.txt
index 782426b2..473b34e0 100644
--- a/world/map/npc/009-2/waitress.txt
+++ b/world/map/npc/009-2/waitress.txt
@@ -1,7 +1,7 @@
// Waitress
-009-2.gat,60,52,0|script|Melinda|140,{
-
+009-2.gat,60,52,0|script|Melinda|140,
+{
mes "[Melinda]";
mes "\"Hi, sweetie! Want a fresh beer for 170 GP?\"";
next;
diff --git a/world/map/npc/009-2/wyara.txt b/world/map/npc/009-2/wyara.txt
index cef03385..27050f1d 100644
--- a/world/map/npc/009-2/wyara.txt
+++ b/world/map/npc/009-2/wyara.txt
@@ -1,7 +1,8 @@
// ----------------------------------------
// Wyara the Hurnscald witch
// ----------------------------------------
-009-2.gat,121,26,0|script|Wyara#_M|103,{
+009-2.gat,121,26,0|script|Wyara#_M|103,
+{
set @Q_MASK, NIBBLE_2_MASK;
set @Q_SHIFT, NIBBLE_2_SHIFT;
set @Q_status, (QUEST_MAGIC2 & @Q_MASK) >> @Q_SHIFT;
diff --git a/world/map/npc/009-3/_mobs.txt b/world/map/npc/009-3/_mobs.txt
index aa3760dc..79285ccc 100644
--- a/world/map/npc/009-3/_mobs.txt
+++ b/world/map/npc/009-3/_mobs.txt
@@ -6,7 +6,8 @@
009-3.gat,0,0,0,0|monster|RedSlime|1008,35,0,0,Mob009-3::On1008
-009-3.gat,0,0,0|script|Mob009-3|-1,{
+009-3.gat,0,0,0|script|Mob009-3|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/009-3/sword.txt b/world/map/npc/009-3/sword.txt
index a1e16036..1be13790 100644
--- a/world/map/npc/009-3/sword.txt
+++ b/world/map/npc/009-3/sword.txt
@@ -1,4 +1,5 @@
-009-3.gat,26,100,0|script|#MysticSword#_M|400,{
+009-3.gat,26,100,0|script|#MysticSword#_M|400,
+{
if (getskilllv(SKILL_MAGIC))
goto L_message;
close;
diff --git a/world/map/npc/009-3/warp.txt b/world/map/npc/009-3/warp.txt
index 9bb9ab28..d02c365a 100644
--- a/world/map/npc/009-3/warp.txt
+++ b/world/map/npc/009-3/warp.txt
@@ -1,4 +1,5 @@
-009-3.gat,162,80,0|script|#PVPCaveBarrier|45,0,0,{
+009-3.gat,162,80,0|script|#PVPCaveBarrier|45,0,0,
+{
mes "Do you want to enter the PVP cave? It costs 150GP.";
menu
"No.", L_Exit,
diff --git a/world/map/npc/009-4/_mobs.txt b/world/map/npc/009-4/_mobs.txt
index fcae92f7..38dc2f30 100644
--- a/world/map/npc/009-4/_mobs.txt
+++ b/world/map/npc/009-4/_mobs.txt
@@ -10,7 +10,8 @@
009-4.gat,38,116,24,15|monster|Maggot|1002,3,20000,14000,Mob009-4::On1002
-009-4.gat,0,0,0|script|Mob009-4|-1,{
+009-4.gat,0,0,0|script|Mob009-4|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/009-4/barriers.txt b/world/map/npc/009-4/barriers.txt
index 78635c54..939f4ae2 100644
--- a/world/map/npc/009-4/barriers.txt
+++ b/world/map/npc/009-4/barriers.txt
@@ -1,5 +1,6 @@
//# see detailed description at orum.txt
-function|script|GetBarrierColor|{
+function|script|GetBarrierColor|,
+{
if (@Barrier < 0 || @Barrier > 2) goto L_Error;
set @Mask, 15;
@@ -12,7 +13,8 @@ L_Error:
close;
}
-function|script|SetBarrierColor|{
+function|script|SetBarrierColor|,
+{
if (@Barrier < 0 || @Barrier > 2)
goto L_Error;
if (@BarrierColor <= 0 || @BarrierColor > 12)
@@ -33,8 +35,8 @@ L_Error2:
// Starting Barrier / Quest Entrance
-009-4.gat,37,120,0|script|#OrumCaveStartBarrier|0,1,0,{
-
+009-4.gat,37,120,0|script|#OrumCaveStartBarrier|0,1,0,
+{
if (OrumQuest >= 3) close;
if (OrumQuest == 2) goto L_Started;
@@ -49,8 +51,8 @@ L_Started:
}
// First Barrier
-009-4.gat,57,29,0|script|#OrumCaveFirstBarrier|0,1,0,{
-
+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.";
@@ -59,8 +61,8 @@ L_Started:
}
// Second Barrier
-009-4.gat,61,54,0|script|#OrumCaveSecondBarrier|0,1,0,{
-
+009-4.gat,61,54,0|script|#OrumCaveSecondBarrier|0,1,0,
+{
if (OrumQuest == 3) set OrumQuest, 4;
set @Barrier, 0;
@@ -88,8 +90,8 @@ L_Advance_Quest:
}
// Third Barrier
-009-4.gat,24,66,0|script|#OrumCaveThirdBarrier|0,1,0,{
-
+009-4.gat,24,66,0|script|#OrumCaveThirdBarrier|0,1,0,
+{
if (OrumQuest == 3) set OrumQuest, 4;
set @Barrier, 1;
@@ -132,8 +134,8 @@ L_Advance_Quest:
}
// Ending Barrier
-009-4.gat,48,38,0|script|#OrumCaveEndBarrier|0,1,0,{
-
+009-4.gat,48,38,0|script|#OrumCaveEndBarrier|0,1,0,
+{
if (OrumQuest >= 11) close;
if (OrumQuest == 3) set OrumQuest, 4;
diff --git a/world/map/npc/009-4/orum.txt b/world/map/npc/009-4/orum.txt
index 8ee21c7c..a8c4b505 100644
--- a/world/map/npc/009-4/orum.txt
+++ b/world/map/npc/009-4/orum.txt
@@ -18,7 +18,8 @@
//# OrumQuestBarrier nibble (0,1,2) stores the color of the barriers #
//#################################################################################
-009-4.gat,37,115,0|script|Orum|158,{
+009-4.gat,37,115,0|script|Orum|158,
+{
// needed to pass the very first barrier
set @B0_WISPPOWDER, 4;
set @B0_POLTERGEISTPOWDER, 2;
diff --git a/world/map/npc/009-4/orum_warps.txt b/world/map/npc/009-4/orum_warps.txt
index 858e0ea0..d4267eb1 100644
--- a/world/map/npc/009-4/orum_warps.txt
+++ b/world/map/npc/009-4/orum_warps.txt
@@ -1,4 +1,5 @@
-009-3.gat,162,113,0|script|#OrumQuestEnter|45,0,0,{
+009-3.gat,162,113,0|script|#OrumQuestEnter|45,0,0,
+{
if (OrumQuest >= 12) goto L_Second_Entrance;
warp "009-4.gat", 37, 113;
close;
@@ -7,7 +8,8 @@ L_Second_Entrance:
warp "009-4.gat", 72, 126;
close;
}
-009-4.gat,36,26,0|script|#LairExit|45,0,0,{
+009-4.gat,36,26,0|script|#LairExit|45,0,0,
+{
if (OrumQuest >= 12) goto L_Second_Entrance;
warp "009-4.gat", 37, 122;
close;
@@ -17,7 +19,8 @@ L_Second_Entrance:
close;
}
-009-4.gat,51,47,0|script|#CavernEnter|45,0,0,{
+009-4.gat,51,47,0|script|#CavernEnter|45,0,0,
+{
if (OrumQuest >= 14) goto L_Second_Cavern;
if (OrumQuest < 12) goto L_See_Orum;
warp "009-4.gat", 103, 23;
diff --git a/world/map/npc/009-4/torches.txt b/world/map/npc/009-4/torches.txt
index 86dd95fe..03acc6b0 100644
--- a/world/map/npc/009-4/torches.txt
+++ b/world/map/npc/009-4/torches.txt
@@ -1,6 +1,7 @@
//# see detailed description at orum.txt
//# see detailed description at orum.txt
-function|script|GetTorchColor|{
+function|script|GetTorchColor|,
+{
if (@Torch < 0 || @Torch > 2) goto L_Error;
set @Mask, 15;
@@ -13,7 +14,8 @@ L_Error:
close;
}
-function|script|SetTorchColor|{
+function|script|SetTorchColor|,
+{
if (@Torch < 0 || @Torch > 2) goto L_Error;
if (@TorchColor < 1 || @TorchColor > 12) goto L_Error2;
@@ -30,7 +32,8 @@ L_Error2:
close;
}
-function|script|GetTorchIntensity|{
+function|script|GetTorchIntensity|,
+{
if (@Torch < 0 || @Torch > 2) goto L_Error;
set @Mask, 15;
@@ -43,7 +46,8 @@ L_Error:
close;
}
-function|script|SetTorchIntensity|{
+function|script|SetTorchIntensity|,
+{
if (@Torch < 0 || @Torch > 2) goto L_Error;
if (@TorchIntensity < 0 || @TorchIntensity > 2) goto L_Error2;
@@ -60,7 +64,8 @@ L_Error2:
close;
}
-function|script|DoneWithTorches|{
+function|script|DoneWithTorches|,
+{
if (OrumQuest < 11 && OrumQuest >= 8)
return;
@@ -80,26 +85,30 @@ L_Different:
}
// To make sure in range of torches
-function|script|InRangeTorch1|{
+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|{
+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|{
+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;
}
-function|script|TorchLoop|{
+function|script|TorchLoop|,
+{
// Variables used here:
// @Torch - pass before calling
// @TorchColor - initialized here, updated throughout
@@ -259,7 +268,8 @@ L_Failed:
}
// First Torch
-009-4.gat,68,21,0|script|Torch|400,{
+009-4.gat,68,21,0|script|Torch|400,
+{
callfunc "InRangeTorch1";
callfunc "DoneWithTorches";
@@ -269,7 +279,8 @@ L_Failed:
}
// Second Torch
-009-4.gat,67,42,0|script|Torch|400,{
+009-4.gat,67,42,0|script|Torch|400,
+{
callfunc "InRangeTorch2";
callfunc "DoneWithTorches";
@@ -279,7 +290,8 @@ L_Failed:
}
// Third Torch
-009-4.gat,33,86,0|script|Torch|400,{
+009-4.gat,33,86,0|script|Torch|400,
+{
callfunc "InRangeTorch3";
callfunc "DoneWithTorches";
diff --git a/world/map/npc/009-4/waric.txt b/world/map/npc/009-4/waric.txt
index c373522a..9231bb94 100644
--- a/world/map/npc/009-4/waric.txt
+++ b/world/map/npc/009-4/waric.txt
@@ -1,6 +1,7 @@
//# see detailed description at orum.txt
-009-4.gat,99,33,0|script|#WizardTrap|0,2,1,{
+009-4.gat,99,33,0|script|#WizardTrap|0,2,1,
+{
set @gender$, "They're";
if (Sex == 0)
set @gender$, "She's";
@@ -18,7 +19,8 @@
close;
}
-009-4.gat,120,43,0|script|Orum|158,{
+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;
@@ -26,7 +28,8 @@
close;
}
-009-4.gat,118,42,0|script|Waric|153,{
+009-4.gat,118,42,0|script|Waric|153,
+{
set @EXP_LEARNED_ALOT, 10000;
if (OrumQuest >= 13)
goto L_Behave;
diff --git a/world/map/npc/009-5/_mobs.txt b/world/map/npc/009-5/_mobs.txt
index cce523f3..bbcf3732 100644
--- a/world/map/npc/009-5/_mobs.txt
+++ b/world/map/npc/009-5/_mobs.txt
@@ -3,6 +3,7 @@
-009-5.gat,0,0,0|script|Mob009-5|-1,{
+009-5.gat,0,0,0|script|Mob009-5|-1,
+{
end;
}
diff --git a/world/map/npc/009-6/_mobs.txt b/world/map/npc/009-6/_mobs.txt
index d97492a3..c565f872 100644
--- a/world/map/npc/009-6/_mobs.txt
+++ b/world/map/npc/009-6/_mobs.txt
@@ -3,6 +3,7 @@
-009-6.gat,0,0,0|script|Mob009-6|-1,{
+009-6.gat,0,0,0|script|Mob009-6|-1,
+{
end;
}
diff --git a/world/map/npc/009-6/brodomir.txt b/world/map/npc/009-6/brodomir.txt
index 881a7b4d..8d9bf5f5 100644
--- a/world/map/npc/009-6/brodomir.txt
+++ b/world/map/npc/009-6/brodomir.txt
@@ -18,7 +18,8 @@
// $@BRODOMIR_MONEY: Amount of money given by the sponsor
-009-6.gat,36,40,0|script|Brodomir|116,{
+009-6.gat,36,40,0|script|Brodomir|116,
+{
set @brodomir_money, 0;
set @brodomir_item_amount, 0;
set @brodomir_item$, "";
@@ -191,10 +192,10 @@ L_SkipItemback:
L_Check:
if (getareausers("009-5.gat", 20, 20, 80, 80, 1) > 1)
end;
- areatimer "009-5.gat", 20, 20, 80, 80, 0, "Brodomir::onReward";
+ areatimer "009-5.gat", 20, 20, 80, 80, 0, "Brodomir::OnReward";
goto L_End;
-onReward:
+OnReward:
if (isdead())
goto L_Dead;
message strcharinfo(0), "Congratulations you won!";
diff --git a/world/map/npc/010-1/_mobs.txt b/world/map/npc/010-1/_mobs.txt
index 6ad04c83..d9466ea3 100644
--- a/world/map/npc/010-1/_mobs.txt
+++ b/world/map/npc/010-1/_mobs.txt
@@ -16,7 +16,8 @@
010-1.gat,0,0,0,0|monster|Butterfly|1055,10,30,20,Mob010-1::On1055
-010-1.gat,0,0,0|script|Mob010-1|-1,{
+010-1.gat,0,0,0|script|Mob010-1|-1,
+{
On1003:
set @mobID, 1003;
callfunc "MobPoints";
diff --git a/world/map/npc/010-2/_mobs.txt b/world/map/npc/010-2/_mobs.txt
index 8f167635..46950616 100644
--- a/world/map/npc/010-2/_mobs.txt
+++ b/world/map/npc/010-2/_mobs.txt
@@ -3,6 +3,7 @@
-010-2.gat,0,0,0|script|Mob010-2|-1,{
+010-2.gat,0,0,0|script|Mob010-2|-1,
+{
end;
}
diff --git a/world/map/npc/010-2/chef.txt b/world/map/npc/010-2/chef.txt
index f0b391a0..6343e517 100644
--- a/world/map/npc/010-2/chef.txt
+++ b/world/map/npc/010-2/chef.txt
@@ -1,5 +1,5 @@
-010-2.gat,33,25,0|script|Chef|148,{
-
+010-2.gat,33,25,0|script|Chef|148,
+{
// lines belong to Easter 2011:
// set @month, 4;
// set @start_day, 15;
@@ -337,7 +337,8 @@ L_Close:
close;
}
-//010-2.gat,28,31,0|script|#chefproposition|32767,0,0{
+//010-2.gat,28,31,0|script|#chefproposition|32767,0,0
+//{
//OnTouch:
// if (gettime(7) != $@easter2012_year || QUEST_Easter12 != 8 || !((gettime(6) == 4 && gettime(5) >= $@easter2012_reward_start_day) && (gettime(6) == 4 && gettime(5) <= $@easter2012_reward_end_day)))
// end;
diff --git a/world/map/npc/010-2/dimonds.txt b/world/map/npc/010-2/dimonds.txt
index 97b6fe90..8fe8cbc5 100644
--- a/world/map/npc/010-2/dimonds.txt
+++ b/world/map/npc/010-2/dimonds.txt
@@ -1,6 +1,7 @@
//
-010-2.gat,34,38,0|script|Dimond|165,{
+010-2.gat,34,38,0|script|Dimond|165,
+{
mes "[Dimond]";
mes "\"Welcome to Dimond's Cove!\"";
mes "";
@@ -11,7 +12,8 @@
close;
}
-010-2.gat,40,35,0|script|Phil|157,{
+010-2.gat,40,35,0|script|Phil|157,
+{
mes "[Phil]";
mes "\"We're having problems with our equipment!\"";
next;
@@ -20,7 +22,8 @@
close;
}
-010-2.gat,40,37,0|script|Jerry|160,{
+010-2.gat,40,37,0|script|Jerry|160,
+{
mes "[Jerry]";
mes "\"I don't know what's wrong.\"";
next;
@@ -29,7 +32,8 @@
close;
}
-010-2.gat,42,36,0|script|Robert|162,{
+010-2.gat,42,36,0|script|Robert|162,
+{
mes "[Robert]";
mes "\"I hope we can figure something out!\"";
next;
@@ -38,7 +42,8 @@
close;
}
-010-2.gat,35,35,0|script|Shannon|193,{
+010-2.gat,35,35,0|script|Shannon|193,
+{
set @month, 1;
set @start_day, 24;
set @end_day, 26;
@@ -476,7 +481,8 @@ leave:
close;
}
-010-2.gat,27,30,0|script|Bar Rules|400,{
+010-2.gat,27,30,0|script|Bar Rules|400,
+{
mes "Dimonds Cove Bar Rules";
next;
mes "No excessive drinking!";
@@ -495,25 +501,29 @@ leave:
close;
}
-010-2.gat,71,38,0|script|Store Policy|400,{
+010-2.gat,71,38,0|script|Store Policy|400,
+{
mes "All sales are final.";
mes "Returns are subject to a 50% re-stocking fee.";
close;
}
-010-2.gat,77,38,0|script|Store Policy|400,{
+010-2.gat,77,38,0|script|Store Policy|400,
+{
mes "All sales are final.";
mes "Returns are subject to a 50% re-stocking fee.";
close;
}
-010-2.gat,36,30,0|script|Directions|400,{
+010-2.gat,36,30,0|script|Directions|400,
+{
mes "This way to the Dimonds Cove Inn.";
mes "Five star accommodation for the weary traveler!";
close;
}
-010-2.gat,80,32,0|script|Dimonds Cove 1|400,{
+010-2.gat,80,32,0|script|Dimonds Cove 1|400,
+{
mes "The Story of Dimonds Cove";
next;
mes "One day Dimond D. Stone dreamed of her own restaurant.";
@@ -532,14 +542,16 @@ leave:
close;
}
-010-2.gat,85,32,0|script|Dimonds Cove 2|400,{
+010-2.gat,85,32,0|script|Dimonds Cove 2|400,
+{
mes "List of Events at Dimonds Cove";
mes "January 2008 - Construction of Dimonds Cove.";
close;
}
-010-2.gat,71,30,0|script|Inn|400,{
+010-2.gat,71,30,0|script|Inn|400,
+{
mes "Welcome to the Dimonds Cove Inn";
mes "Rooms are 200 gp a night.";
mes "Plese check in with Basil.";
@@ -555,7 +567,8 @@ leave:
010-2.gat,65,41,0|shop|General Store|137,CottonShorts :-1,FancyHat :-1,SilkHeadband :-1,CottonSkirt :-1,Boots :-1,CottonBoots :-1
-010-2.gat,75,68,0|script|Basil|107,{
+010-2.gat,75,68,0|script|Basil|107,
+{
set @npcname$, "Basil the Inn Keeper";
set @cost, 200;
callfunc "Inn";
diff --git a/world/map/npc/010-2/doug.txt b/world/map/npc/010-2/doug.txt
index 1d2cf4e4..4b5598d7 100644
--- a/world/map/npc/010-2/doug.txt
+++ b/world/map/npc/010-2/doug.txt
@@ -1,7 +1,7 @@
//
-010-2.gat,68,87,0|script|Doug|113,{
-
+010-2.gat,68,87,0|script|Doug|113,
+{
mes "[Doug]";
mes "\"This room is too dark. I want to brighten it up.\"";
next;
diff --git a/world/map/npc/010-2/loratay.txt b/world/map/npc/010-2/loratay.txt
index f34d9c57..436f7f09 100644
--- a/world/map/npc/010-2/loratay.txt
+++ b/world/map/npc/010-2/loratay.txt
@@ -1,5 +1,5 @@
-010-2.gat,85,85,0|script|Lora Tay|151,{
-
+010-2.gat,85,85,0|script|Lora Tay|151,
+{
set @ROBE_COCOONS_NR, 150; // must be multiple of ten
set @ROBE_ZENY, 10000;
set @ROBE_SHEETS_NR, 6; // number of silk sheets required for the silk robe. Must be less than 10.
diff --git a/world/map/npc/010-2/workers.txt b/world/map/npc/010-2/workers.txt
index ab2e6d5d..3dc6e928 100644
--- a/world/map/npc/010-2/workers.txt
+++ b/world/map/npc/010-2/workers.txt
@@ -1,12 +1,14 @@
//
-010-2.gat,23,70,0|script|Josh|155,{
+010-2.gat,23,70,0|script|Josh|155,
+{
mes "[Josh]";
mes "\"We're working on getting the cellar pass open.\"";
close;
}
-010-2.gat,39,75,0|script|Zack|155,{
+010-2.gat,39,75,0|script|Zack|155,
+{
set @hw2011_npc_id, $@hw2011_npc_zack;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
diff --git a/world/map/npc/011-1/_mobs.txt b/world/map/npc/011-1/_mobs.txt
index 8c14da07..f797a153 100644
--- a/world/map/npc/011-1/_mobs.txt
+++ b/world/map/npc/011-1/_mobs.txt
@@ -15,7 +15,8 @@
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,{
+011-1.gat,0,0,0|script|Mob011-1|-1,
+{
On1013:
set @mobID, 1013;
callfunc "MobPoints";
diff --git a/world/map/npc/011-1/alchemist.txt b/world/map/npc/011-1/alchemist.txt
index 35609063..6b47eb07 100644
--- a/world/map/npc/011-1/alchemist.txt
+++ b/world/map/npc/011-1/alchemist.txt
@@ -1,6 +1,6 @@
// This NPC makes potions and dyes
-011-1.gat,117,77,0|script|Rauk|103,{
-
+011-1.gat,117,77,0|script|Rauk|103,
+{
// Setzer quest/monster oil quest participation
set @SETZER_INITIAL, 0;
set @SETZER_KNOWS_OIL, 1;
diff --git a/world/map/npc/011-1/auldsbel.txt b/world/map/npc/011-1/auldsbel.txt
index 6da0b1dc..8fb16e2c 100644
--- a/world/map/npc/011-1/auldsbel.txt
+++ b/world/map/npc/011-1/auldsbel.txt
@@ -1,8 +1,8 @@
// Auldsbel the Wizard
// Transmutation Magic expert
-011-1.gat,50,68,0|script|Auldsbel#_M|168,{
-
+011-1.gat,50,68,0|script|Auldsbel#_M|168,
+{
set @mexp, MAGIC_EXPERIENCE & 65535;
set @Q_STATUS_INITIAL, 0;
@@ -441,7 +441,7 @@ L_about_other_prerequisites:
L_about_speed:
mes "[Auldsbel the Wizard]";
- mes "\"Most spells are effective immediately, unless they require some complex astral connectoin-- summoning or teleporting can take a while to take effect, for example. Still, after casting a spell you usually need a moment to recover before casting the next.\"";
+ mes "\"Most spells are effective immediately, unless they require some complex astral connection-- summoning or teleporting can take a while to take effect, for example. Still, after casting a spell you usually need a moment to recover before casting the next.\"";
next;
goto L_about_spells_minimenu;
@@ -944,10 +944,10 @@ L_component_quest_5:
mes "\"I suggest that you run.\"";
next;
misceffect sfx_magic_transmute;
- monster "this", 50, 68, "Grass Snake", 1034, 4, "Auldsbel#_M::onSnakeDeath";
+ monster "this", 50, 68, "Grass Snake", 1034, 4, "Auldsbel#_M::OnSnakeDeath";
close;
-onSnakeDeath:
+OnSnakeDeath:
set BOSS_POINTS, BOSS_POINTS + 5;
message strcharinfo(0), "You gain 5 Boss Points giving you a total of " + BOSS_POINTS + ".";
end;
diff --git a/world/map/npc/011-1/oscar.txt b/world/map/npc/011-1/oscar.txt
index d85bd67b..c9ee88da 100644
--- a/world/map/npc/011-1/oscar.txt
+++ b/world/map/npc/011-1/oscar.txt
@@ -28,7 +28,8 @@
// 6: the player saved the farmer from the pumpkin invasion (all pumpkins / mobs killed)
// 10: the player failed to save the farmer from the pumpkin invasion (player left the map, died -- logging off is allowed however)
-function|script|HalloweenQuestWaterPumpkins|{
+function|script|HalloweenQuestWaterPumpkins|,
+{
if (Quest_Halloween != 5 || $@HalloweenQuest_PumpkinHunter$ != "")
end;
set $@HalloweenQuest_PumpkinHunter$, strcharinfo(0);
@@ -36,7 +37,8 @@ function|script|HalloweenQuestWaterPumpkins|{
end;
}
-011-1.gat,94,38,0|script|Oscar|142,{
+011-1.gat,94,38,0|script|Oscar|142,
+{
// Check we are at the good time of the year
if (!(gettime(6) == 11 && (gettime(5) >= 4 && gettime(5) <= 30))) goto L_NoEvent;
// Check halloween quest has been done or not.
@@ -297,7 +299,7 @@ L_QuestAlreadyDone:
mes "That was interesting, but really, fruits are more quiet!\"";
goto L_End;
-onInit:
+OnInit:
set $@halloween_num_seeds, 12;
set $@halloween_num_water_bottles, 15;
set $@halloween_num_pumpkins, $@halloween_num_seeds * 4;
@@ -310,8 +312,8 @@ OnTimer3000:
end;
callsub S_CheckPlayer;
set $@HalloweenQuest_PumpkinsTimer, $@HalloweenQuest_PumpkinsTimer + 1;
- if (mobcount("011-1.gat", "Oscar::onPD") < 0 &&
- mobcount("011-1.gat", "Oscar::onPDP") < 0 &&
+ if (mobcount("011-1.gat", "Oscar::OnPD") < 0 &&
+ mobcount("011-1.gat", "Oscar::OnPDP") < 0 &&
$@HalloweenQuest_PumpkinsCount <= 0)
goto L_AllPumpkinsDead;
// A quick "cheer up"
@@ -327,14 +329,14 @@ OnTimer3000:
L_TrySpawnPumpkin:
if ($@HalloweenQuest_PumpkinsCount > 0)
- areamonster "011-1.gat", 97, 40, 101, 44, "", 1063, 1, "Oscar::onPD";
+ areamonster "011-1.gat", 97, 40, 101, 44, "", 1063, 1, "Oscar::OnPD";
setnpctimer 0;
end;
OnTimer2500:
if ($@HalloweenQuest_PumpkinsState != 0)
end;
- areamonster "011-1.gat", 97, 40, 101, 44, "", 1063, 2, "Oscar::onPD";
+ areamonster "011-1.gat", 97, 40, 101, 44, "", 1063, 2, "Oscar::OnPD";
end;
OnTimer6000:
@@ -346,7 +348,7 @@ OnTimer6000:
setnpctimer 0;
end;
-onPD:
+OnPD:
if (strcharinfo(0) != $@HalloweenQuest_PumpkinHunter$)
goto L_KillBadHunter;
set $@HalloweenQuest_PumpkinsCount, $@HalloweenQuest_PumpkinsCount - 1;
@@ -367,18 +369,18 @@ onPD:
getitem "PumpkinHelmet", 1;
// huntsman spider x1
if (@halloween_rand < (15*BaseLevel)/100)
- areamonster "011-1.gat", 97, 40, 101, 44, "", 1083, 1, "Oscar::onPDP";
+ areamonster "011-1.gat", 97, 40, 101, 44, "", 1083, 1, "Oscar::OnPDP";
// Or spider x1
if (@halloween_rand >= (15*BaseLevel)/100 && @halloween_rand < (75*BaseLevel)/100)
- areamonster "011-1.gat", 97, 40, 101, 44, "", 1012, 1, "Oscar::onPDP";
+ areamonster "011-1.gat", 97, 40, 101, 44, "", 1012, 1, "Oscar::OnPDP";
// Or archant x2
if (@halloween_rand >= (75*BaseLevel)/100)
- areamonster "011-1.gat", 97, 40, 101, 44, "", 1060, 2, "Oscar::onPDP";
+ areamonster "011-1.gat", 97, 40, 101, 44, "", 1060, 2, "Oscar::OnPDP";
set @halloween_rand, 0;
end;
-onPDP:
+OnPDP:
end;
L_KillBadHunter:
@@ -433,8 +435,8 @@ L_Success:
goto L_Clean;
L_Clean:
- killmonster "011-1.gat", "Oscar::onPD";
- killmonster "011-1.gat", "Oscar::onPDP";
+ killmonster "011-1.gat", "Oscar::OnPD";
+ killmonster "011-1.gat", "Oscar::OnPDP";
set $@HalloweenQuest_PumpkinHunter$, "";
set $@HalloweenQuest_PumpkinsCount, 0;
set $@HalloweenQuest_PumpkinsState, 0;
diff --git a/world/map/npc/011-3/_mobs.txt b/world/map/npc/011-3/_mobs.txt
index ef4ef58c..eb75be5c 100644
--- a/world/map/npc/011-3/_mobs.txt
+++ b/world/map/npc/011-3/_mobs.txt
@@ -5,7 +5,8 @@
011-3.gat,0,0,0,0|monster|Silkworm|1035,3,60000,30000,Mob011-3::On1035
-011-3.gat,0,0,0|script|Mob011-3|-1,{
+011-3.gat,0,0,0|script|Mob011-3|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/011-3/hermit.txt b/world/map/npc/011-3/hermit.txt
index 6276b933..eb698a3a 100644
--- a/world/map/npc/011-3/hermit.txt
+++ b/world/map/npc/011-3/hermit.txt
@@ -1,6 +1,7 @@
//
-011-3.gat,30,23,0|script|Arkim|116,{
+011-3.gat,30,23,0|script|Arkim|116,
+{
mes "[Arkim the Hermit]";
mes "\"Do you want to go back outside?\"";
if (@knowhermitstory == 1) goto L_Short_Menu;
diff --git a/world/map/npc/011-4/_mobs.txt b/world/map/npc/011-4/_mobs.txt
index 1e013fcc..a2be8c85 100644
--- a/world/map/npc/011-4/_mobs.txt
+++ b/world/map/npc/011-4/_mobs.txt
@@ -7,7 +7,8 @@
011-4.gat,0,0,0,0|monster|SpikyMushroom|1019,15,0,0,Mob011-4::On1019
-011-4.gat,0,0,0|script|Mob011-4|-1,{
+011-4.gat,0,0,0|script|Mob011-4|-1,
+{
On1019:
set @mobID, 1019;
callfunc "MobPoints";
diff --git a/world/map/npc/011-4/bl_barrier.txt b/world/map/npc/011-4/bl_barrier.txt
index 13524ee8..07cc5678 100644
--- a/world/map/npc/011-4/bl_barrier.txt
+++ b/world/map/npc/011-4/bl_barrier.txt
@@ -1,7 +1,7 @@
//bandit lord barrier
-011-4.gat,111,121,0|script|#BL_Barrier|45,0,0,{
-
+011-4.gat,111,121,0|script|#BL_Barrier|45,0,0,
+{
set @state, ((QUEST_Hurnscald & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if (@state >= 4) goto L_Bandit_Lord_Barrier_Open;
diff --git a/world/map/npc/011-6/_mobs.txt b/world/map/npc/011-6/_mobs.txt
index 69867dee..a6574415 100644
--- a/world/map/npc/011-6/_mobs.txt
+++ b/world/map/npc/011-6/_mobs.txt
@@ -50,7 +50,8 @@
011-6.gat,263,236,16,5|monster|CaveMaggot|1056,3,30000,100000,Mob011-6::On1056
-011-6.gat,0,0,0|script|Mob011-6|-1,{
+011-6.gat,0,0,0|script|Mob011-6|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/011-6/bryant.txt b/world/map/npc/011-6/bryant.txt
index f06b2a80..528bf434 100644
--- a/world/map/npc/011-6/bryant.txt
+++ b/world/map/npc/011-6/bryant.txt
@@ -1,8 +1,8 @@
//NPC to set the state for killing the bandit lord.
// Variables used: nibble 0 of QUEST_Hurnscald
-011-6.gat,27,200,0|script|Bryant|126,{
-
+011-6.gat,27,200,0|script|Bryant|126,
+{
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
@@ -25,10 +25,10 @@ L_Bryant_Summon:
mes "\"I believe I saw him run into a cave south and east of here. There is a red carpet in front of the cave entrance. Be careful and good luck.\"";
set @state, 4;
callsub S_Update_Var;
- monster "011-6.gat",260,250,"BanditLord",1065,1, "Bryant::onBanditLordDead";
+ monster "011-6.gat",260,250,"BanditLord",1065,1, "Bryant::OnBanditLordDead";
goto L_Close;
-onBanditLordDead:
+OnBanditLordDead:
message strcharinfo(0), "You killed the bandit lord.";
set @state, ((QUEST_Hurnscald & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if (@state != 4)
@@ -51,15 +51,15 @@ L_Bryant_Waits:
L_Bryant_No:
mes "[Bryant]";
mes "\"Well, maybe he ran off. I'm pretty sure he should be there now.\"";
- killmonster "011-6.gat", "Bryant::onBanditLordDead";
- monster "011-6.gat",260,250,"BanditLord",1065,1, "Bryant::onBanditLordDead";
+ killmonster "011-6.gat", "Bryant::OnBanditLordDead";
+ monster "011-6.gat",260,250,"BanditLord",1065,1, "Bryant::OnBanditLordDead";
goto L_Close;
L_Bryant_Yes:
mes "[Bryant]";
mes "\"I don't think you killed him. Please try to find and kill him. He should be in the cave south and east of here with the red carpet in front of it.\"";
- killmonster "011-6.gat", "Bryant::onBanditLordDead";
- monster "011-6.gat",260,250,"BanditLord",1065,1, "Bryant::onBanditLordDead";
+ killmonster "011-6.gat", "Bryant::OnBanditLordDead";
+ monster "011-6.gat",260,250,"BanditLord",1065,1, "Bryant::OnBanditLordDead";
goto L_Close;
L_Bryant_Quiet:
diff --git a/world/map/npc/012-1/_mobs.txt b/world/map/npc/012-1/_mobs.txt
index 1dc257ba..45eb58b9 100644
--- a/world/map/npc/012-1/_mobs.txt
+++ b/world/map/npc/012-1/_mobs.txt
@@ -14,7 +14,8 @@
012-1.gat,0,0,0,0|monster|Butterfly|1055,20,30,20,Mob012-1::On1055
-012-1.gat,0,0,0|script|Mob012-1|-1,{
+012-1.gat,0,0,0|script|Mob012-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/012-1/amrak.txt b/world/map/npc/012-1/amrak.txt
index 2a527eb0..74e6cd88 100644
--- a/world/map/npc/012-1/amrak.txt
+++ b/world/map/npc/012-1/amrak.txt
@@ -1,6 +1,7 @@
//
-012-1.gat,137,104,0|script|Amrak|103,{
+012-1.gat,137,104,0|script|Amrak|103,
+{
mes "[Amrak]";
mes "\"I'm studying this waterfall. The water seems to flow from it like magic.\"";
next;
diff --git a/world/map/npc/012-1/injured-mouboo.txt b/world/map/npc/012-1/injured-mouboo.txt
index 57117d17..91042c13 100644
--- a/world/map/npc/012-1/injured-mouboo.txt
+++ b/world/map/npc/012-1/injured-mouboo.txt
@@ -1,6 +1,7 @@
// The following auxiliary function is used both by appropriate magic and within the regular script:
-function|script|QuestMoubooHeal|{
+function|script|QuestMoubooHeal|,
+{
set @Q_MASK, NIBBLE_2_MASK;
set @Q_SHIFT, NIBBLE_2_SHIFT;
@@ -42,7 +43,8 @@ S_update_var:
return;
}
-012-1.gat,57,153,0|script|Mouboo|171,{
+012-1.gat,57,153,0|script|Mouboo|171,
+{
set @Q_MASK, NIBBLE_2_MASK;
set @Q_SHIFT, NIBBLE_2_SHIFT;
diff --git a/world/map/npc/012-3/_mobs.txt b/world/map/npc/012-3/_mobs.txt
index 6b3af28e..6395b3fb 100644
--- a/world/map/npc/012-3/_mobs.txt
+++ b/world/map/npc/012-3/_mobs.txt
@@ -19,7 +19,8 @@
012-3.gat,0,0,0,0|monster|CaveSnake|1021,75,0,0,Mob012-3::On1021
-012-3.gat,0,0,0|script|Mob012-3|-1,{
+012-3.gat,0,0,0|script|Mob012-3|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/012-3/mana-seed.txt b/world/map/npc/012-3/mana-seed.txt
index 199e2a34..05e27697 100644
--- a/world/map/npc/012-3/mana-seed.txt
+++ b/world/map/npc/012-3/mana-seed.txt
@@ -1,5 +1,5 @@
-012-3.gat,62,130,0|script|Mana Seed#MAGIC|166,{
-
+012-3.gat,62,130,0|script|Mana Seed#MAGIC|166,
+{
setarray @magic_exp_needed,
0, // level 0
0,
diff --git a/world/map/npc/012-3/warningsigns.txt b/world/map/npc/012-3/warningsigns.txt
index 081f8c67..4dd2336d 100644
--- a/world/map/npc/012-3/warningsigns.txt
+++ b/world/map/npc/012-3/warningsigns.txt
@@ -1,6 +1,7 @@
//warning signs at pvp entrance!
-012-3.gat,445,61,0|script|sign|187,{
+012-3.gat,445,61,0|script|sign|187,
+{
mes "You are about to enter a dangerous area!";
next;
mes "This area has a great distance to town. So the protection spell of the town is not active in that cave!";
@@ -8,7 +9,8 @@
close;
}
-012-3.gat,451,61,0|script|sign|186,{
+012-3.gat,451,61,0|script|sign|186,
+{
mes "You are about to enter a dangerous area!";
next;
mes "This area has a great distance to town. So the protection spell of the town is not active in that cave!";
diff --git a/world/map/npc/012-4/_mobs.txt b/world/map/npc/012-4/_mobs.txt
index 31dafb3a..205d722d 100644
--- a/world/map/npc/012-4/_mobs.txt
+++ b/world/map/npc/012-4/_mobs.txt
@@ -67,7 +67,8 @@
012-4.gat,91,180,23,10|monster|Spider|1012,20,100000,30000,Mob012-4::On1012
-012-4.gat,0,0,0|script|Mob012-4|-1,{
+012-4.gat,0,0,0|script|Mob012-4|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/013-1/_mobs.txt b/world/map/npc/013-1/_mobs.txt
index 07a4df90..c1d0453f 100644
--- a/world/map/npc/013-1/_mobs.txt
+++ b/world/map/npc/013-1/_mobs.txt
@@ -18,7 +18,8 @@
013-1.gat,0,0,0,0|monster|Butterfly|1055,10,30,20,Mob013-1::On1055
-013-1.gat,0,0,0|script|Mob013-1|-1,{
+013-1.gat,0,0,0|script|Mob013-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/013-1/sagatha.txt b/world/map/npc/013-1/sagatha.txt
index e157139d..a25db145 100644
--- a/world/map/npc/013-1/sagatha.txt
+++ b/world/map/npc/013-1/sagatha.txt
@@ -1,7 +1,8 @@
// Sagatha the witch, expert for nature and astral magic
//----------------------------------------
-function|script|QuestSagathaHappy|{
+function|script|QuestSagathaHappy|,
+{
set @unhappiness, (QUEST_MAGIC & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
if (@unhappiness < @value)
goto L_zero;
@@ -18,7 +19,8 @@ L_write:
}
//----------------------------------------
-function|script|QuestSagathaAnnoy|{
+function|script|QuestSagathaAnnoy|,
+{
set @unhappiness, (QUEST_MAGIC & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
if ((@unhappiness + @value) > 15)
goto L_max;
@@ -35,7 +37,8 @@ L_write:
}
//----------------------------------------
-function|script|SagathaStatus|{
+function|script|SagathaStatus|,
+{
if (getequipid(equip_head) != 1216 && getequipid(equip_head) != 752)
goto L_next;
set @value, 15;
@@ -66,7 +69,8 @@ L_next:
}
//----------------------------------------
-013-1.gat,131,24,0|script|Sagatha#_M|167,{
+013-1.gat,131,24,0|script|Sagatha#_M|167,
+{
callfunc "SagathaStatus";
set @Q_MASK, NIBBLE_4_MASK | NIBBLE_5_MASK;
diff --git a/world/map/npc/013-2/_mobs.txt b/world/map/npc/013-2/_mobs.txt
index 75642581..6464434f 100644
--- a/world/map/npc/013-2/_mobs.txt
+++ b/world/map/npc/013-2/_mobs.txt
@@ -3,6 +3,7 @@
-013-2.gat,0,0,0|script|Mob013-2|-1,{
+013-2.gat,0,0,0|script|Mob013-2|-1,
+{
end;
}
diff --git a/world/map/npc/013-2/apprentice.txt b/world/map/npc/013-2/apprentice.txt
index 2f7fa3ee..17fd2368 100644
--- a/world/map/npc/013-2/apprentice.txt
+++ b/world/map/npc/013-2/apprentice.txt
@@ -1,4 +1,5 @@
-013-2.gat,25,37,0|script|Fabius|115,{
+013-2.gat,25,37,0|script|Fabius|115,
+{
mes "[Fabius]";
mes "\"Hey! Wanna have a drink or something? High quality, low cost. A poor fella like me needs a bit of extra cash, ye know.\"";
next;
diff --git a/world/map/npc/013-2/notes.txt b/world/map/npc/013-2/notes.txt
index 49997195..f946254f 100644
--- a/world/map/npc/013-2/notes.txt
+++ b/world/map/npc/013-2/notes.txt
@@ -1,22 +1,26 @@
//
-013-2.gat,23,32,0|script|Motto|400,{
+013-2.gat,23,32,0|script|Motto|400,
+{
mes "Mid pleasures and palaces though we may roam,";
mes "Be it ever so humble, there's no place like home.";
close;
}
-013-2.gat,30,32,0|script|Note|400,{
+013-2.gat,30,32,0|script|Note|400,
+{
mes "Please do not open.";
close;
}
-013-2.gat,38,20,0|script|Saying|400,{
+013-2.gat,38,20,0|script|Saying|400,
+{
mes "The early bird catcheth the worm.";
close;
}
-013-2.gat,27,21,0|script|Mirror|400,{
+013-2.gat,27,21,0|script|Mirror|400,
+{
mes "You say: \"Mirror mirror on the wall, who has the nicest haircut of them all?\"";
next;
mes "\"Oh fair adventurer, your hair indeed looks nice. But wouldn't it look much better, after I have rolled my dice?\"";
@@ -31,7 +35,8 @@
}
// Warp to north-eastern woods
-013-2.gat,25,23,0|script|Spell|400,{
+013-2.gat,25,23,0|script|Spell|400,
+{
mes "You read: \"I see trees of green, red roses too. I see them bloom for me and you. And I think to myself: \'What a wonderful world\'\"";
next;
mes "You think: \"Huh?\"";
@@ -43,7 +48,8 @@
}
// Warp to Indian in south-eastern desert
-013-2.gat,27,24,0|script|Spell|400,{
+013-2.gat,27,24,0|script|Spell|400,
+{
mes "You read: \"A red-coloured fellow smoking his pipe - down in the desert - that's what I like!\"";
next;
mes "You feel the floor disappear below your feet...";
@@ -63,7 +69,8 @@ L_cheat:
}
// Warp to snow area
-013-2.gat,25,27,0|script|Spell|400,{
+013-2.gat,25,27,0|script|Spell|400,
+{
mes "You read: \"Snow-white flakes and eminent frost - I'll go there, whatever the cost!\"";
next;
mes "You feel yourself getting lighter...";
@@ -93,7 +100,8 @@ L_Close:
}
// Warp to Dimond
-013-2.gat,27,27,0|script|Spell|400,{
+013-2.gat,27,27,0|script|Spell|400,
+{
mes "You read: \"People and cosiness, lively and fun - that's where I've gone!\"";
next;
mes "The world around you slowly dissolves...";
@@ -103,7 +111,8 @@ L_Close:
}
// Warp to mines level 2
-013-2.gat,26,28,0|script|Spell|400,{
+013-2.gat,26,28,0|script|Spell|400,
+{
mes "You read: \"Darkness and legs, eight of them each - I'd rather not go there, but now it's too late...\"";
next;
mes "For a moment everything turns black...";
@@ -113,7 +122,8 @@ L_Close:
}
// Death
-013-2.gat,21,29,0|script|Spell|400,{
+013-2.gat,21,29,0|script|Spell|400,
+{
mes "You read: \"Heart stops pumping, breath begone - life is stopping, death has come!\"";
next;
mes "You're losing control of your body... everything turns black... while slipping to the floor, you hear a faraway scream... suddenly, you see THE LIGHT!";
@@ -123,7 +133,8 @@ L_Close:
}
// Naked
-013-2.gat,28,29,0|script|Spell|400,{
+013-2.gat,28,29,0|script|Spell|400,
+{
mes "You read: \"Cotton, steel, leather and wool - have I ever seen a greater fool?\"";
next;
mes "You suddenly feel naked; you ARE naked!";
diff --git a/world/map/npc/013-2/wizard.txt b/world/map/npc/013-2/wizard.txt
index 31b783dc..9aed2593 100644
--- a/world/map/npc/013-2/wizard.txt
+++ b/world/map/npc/013-2/wizard.txt
@@ -1,4 +1,5 @@
-013-2.gat,66,39,0|script|Old Wizard#_W|116,{
+013-2.gat,66,39,0|script|Old Wizard#_W|116,
+{
set @has_magic, getskilllv(SKILL_MAGIC);
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_OLD_WIZARD;
@@ -64,7 +65,7 @@ L_teachspell:
mes "\"Put a piece of cotton cloth on your head, and speak out '" + getspellinvocation("hide") + "', loudly and clearly. The protection lasts quite long, but you may have to renew it on occasion.\"";
next;
mes "[Old Wizard]";
- mes "\"You can also cast it on others, of course. Just speak their name after you prononuce the invocation.\"";
+ mes "\"You can also cast it on others, of course. Just speak their name after you pronounce the invocation.\"";
next;
mes "[Old Wizard]";
mes "\"You may find it useful for getting a little peace and quiet at times, but it can also get in the way of friends trying to find you, so use it with care.\"";
diff --git a/world/map/npc/013-3/_mobs.txt b/world/map/npc/013-3/_mobs.txt
index 574a9d54..c2b44828 100644
--- a/world/map/npc/013-3/_mobs.txt
+++ b/world/map/npc/013-3/_mobs.txt
@@ -31,7 +31,8 @@
013-3.gat,67,46,2,1|monster|FireSkull|1023,1,120000,60000,Mob013-3::On1023
-013-3.gat,0,0,0|script|Mob013-3|-1,{
+013-3.gat,0,0,0|script|Mob013-3|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/013-3/barrier.txt b/world/map/npc/013-3/barrier.txt
index 63c5eae9..a0d5ec7e 100644
--- a/world/map/npc/013-3/barrier.txt
+++ b/world/map/npc/013-3/barrier.txt
@@ -1,6 +1,7 @@
//
-013-3.gat,71,21,0|script|#DemonMineBarrier1#_M|45,1,1,{
+013-3.gat,71,21,0|script|#DemonMineBarrier1#_M|45,1,1,
+{
callfunc "ClearVariables";
set @state, ((QUEST_Hurnscald & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
diff --git a/world/map/npc/013-3/mask_chest.txt b/world/map/npc/013-3/mask_chest.txt
index 4a15bc0b..87b90878 100644
--- a/world/map/npc/013-3/mask_chest.txt
+++ b/world/map/npc/013-3/mask_chest.txt
@@ -1,6 +1,7 @@
//
-013-3.gat,28,27,0|script|Chest#DemonMask|111,{
+013-3.gat,28,27,0|script|Chest#DemonMask|111,
+{
callfunc "ClearVariables";
set @state, ((QUEST_Hurnscald & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
diff --git a/world/map/npc/013-3/misc.txt b/world/map/npc/013-3/misc.txt
index 116adef5..eadfef13 100644
--- a/world/map/npc/013-3/misc.txt
+++ b/world/map/npc/013-3/misc.txt
@@ -1,6 +1,7 @@
//
-013-3.gat,127,68,0|script|Chest|111,{
+013-3.gat,127,68,0|script|Chest|111,
+{
mes "You can't see any way to open this chest.";
close;
}
diff --git a/world/map/npc/013-3/sword_chest.txt b/world/map/npc/013-3/sword_chest.txt
index 8c89b52d..f6b9836e 100644
--- a/world/map/npc/013-3/sword_chest.txt
+++ b/world/map/npc/013-3/sword_chest.txt
@@ -1,6 +1,7 @@
//
-013-3.gat,177,22,0|script|Chest|111,{
+013-3.gat,177,22,0|script|Chest|111,
+{
callfunc "ClearVariables";
if (FLAGS & FLAG_HURNSMINE_CHEST) goto L_Finished;
diff --git a/world/map/npc/014-1/_mobs.txt b/world/map/npc/014-1/_mobs.txt
index 371dc4d1..55e7797d 100644
--- a/world/map/npc/014-1/_mobs.txt
+++ b/world/map/npc/014-1/_mobs.txt
@@ -19,7 +19,8 @@
014-1.gat,0,0,0,0|monster|Butterfly|1055,10,30,20,Mob014-1::On1055
-014-1.gat,0,0,0|script|Mob014-1|-1,{
+014-1.gat,0,0,0|script|Mob014-1|-1,
+{
On1013:
set @mobID, 1013;
callfunc "MobPoints";
diff --git a/world/map/npc/014-1/wedding-officiator.txt b/world/map/npc/014-1/wedding-officiator.txt
index 75f31015..a576fae9 100644
--- a/world/map/npc/014-1/wedding-officiator.txt
+++ b/world/map/npc/014-1/wedding-officiator.txt
@@ -1,6 +1,7 @@
// Wedding officiator: Marriages and divorces
-014-1.gat,31,31,0|script|Wedding Officiator|164,{
+014-1.gat,31,31,0|script|Wedding Officiator|164,
+{
mes "[Wedding Officiator]";
mes "A young lady in a long, green dress is overseeing the park. As she notices you looking at her, she gives you a broad and happy smile.";
mes "\"Hi there! I'm Wendy, here for all your marriage needs!\"";
diff --git a/world/map/npc/014-3/_mobs.txt b/world/map/npc/014-3/_mobs.txt
index 7e7300c3..9b1d9701 100644
--- a/world/map/npc/014-3/_mobs.txt
+++ b/world/map/npc/014-3/_mobs.txt
@@ -4,7 +4,8 @@
014-3.gat,0,0,0,0|monster|Bat|1017,50,0,0,Mob014-3::On1017
-014-3.gat,0,0,0|script|Mob014-3|-1,{
+014-3.gat,0,0,0|script|Mob014-3|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/015-1/_mobs.txt b/world/map/npc/015-1/_mobs.txt
index ba3d41d2..a1dbcfec 100644
--- a/world/map/npc/015-1/_mobs.txt
+++ b/world/map/npc/015-1/_mobs.txt
@@ -13,7 +13,8 @@
015-1.gat,0,0,0,0|monster|MauvePlant|1029,4,270000,180000,Mob015-1::On1029
-015-1.gat,0,0,0|script|Mob015-1|-1,{
+015-1.gat,0,0,0|script|Mob015-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/015-1/alice.txt b/world/map/npc/015-1/alice.txt
index 972d48b3..bf37d874 100644
--- a/world/map/npc/015-1/alice.txt
+++ b/world/map/npc/015-1/alice.txt
@@ -1,8 +1,8 @@
// A herb collector giving the players some hints about finding and brewing
// herbs.
-015-1.gat,52,53,0|script|Alice|106,{
-
+015-1.gat,52,53,0|script|Alice|106,
+{
set @cat, ((Katze & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
set @Hiss, ((Katze & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
diff --git a/world/map/npc/015-1/barrier.txt b/world/map/npc/015-1/barrier.txt
index 778f2d9b..0bf5d7e1 100644
--- a/world/map/npc/015-1/barrier.txt
+++ b/world/map/npc/015-1/barrier.txt
@@ -1,7 +1,8 @@
// This barrier is for checking whether the player went outside after
// progressing with the cat quest.
-015-1.gat,59,32,0|script|#CatOutsideBarrier|0,1,1,{
+015-1.gat,59,32,0|script|#CatOutsideBarrier|0,1,1,
+{
set @catNeedsAlone, 0;
end;
}
diff --git a/world/map/npc/015-1/sword.txt b/world/map/npc/015-1/sword.txt
index 55c7c65d..e68d54ef 100644
--- a/world/map/npc/015-1/sword.txt
+++ b/world/map/npc/015-1/sword.txt
@@ -1,4 +1,5 @@
-015-1.gat,97,97,0|script|#MagicSword#_M|400,{
+015-1.gat,97,97,0|script|#MagicSword#_M|400,
+{
if (getskilllv(SKILL_MAGIC))
goto L_message;
mes "It appears to be an ordinary sword.";
diff --git a/world/map/npc/015-3/_mobs.txt b/world/map/npc/015-3/_mobs.txt
index 66c28a26..8faac86c 100644
--- a/world/map/npc/015-3/_mobs.txt
+++ b/world/map/npc/015-3/_mobs.txt
@@ -7,7 +7,8 @@
015-3.gat,40,19,1,1|monster|Spider|1012,1,100000,30000,Mob015-3::On1012
-015-3.gat,0,0,0|script|Mob015-3|-1,{
+015-3.gat,0,0,0|script|Mob015-3|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/015-3/barrier.txt b/world/map/npc/015-3/barrier.txt
index e799f8af..a1393304 100644
--- a/world/map/npc/015-3/barrier.txt
+++ b/world/map/npc/015-3/barrier.txt
@@ -1,8 +1,8 @@
// You can only enter the cat cave naked, otherwise the cat's reaction scares
// you away. You can also get in while wearing the cat ears.
-015-3.gat,31,42,0|script|#CatCaveBarrier|45,1,1,{
-
+015-3.gat,31,42,0|script|#CatCaveBarrier|45,1,1,
+{
set @Hiss, ((Katze & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
if (getequipid(equip_head) != 1217
&& (getequipid(equip_head) > 0
diff --git a/world/map/npc/015-3/katze.txt b/world/map/npc/015-3/katze.txt
index 75e87be3..d90cd10c 100644
--- a/world/map/npc/015-3/katze.txt
+++ b/world/map/npc/015-3/katze.txt
@@ -16,8 +16,8 @@
// * 2 Hard spikes
// * 2 Tiny potions
-015-3.gat,32,25,0|script|Katze|172,{
-
+015-3.gat,32,25,0|script|Katze|172,
+{
set @cat, ((Katze & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if (@cat == 1 && @catNeedsAlone == 0) goto L_NeedsFood;
diff --git a/world/map/npc/015-3/pot.txt b/world/map/npc/015-3/pot.txt
index 03f2b2c8..cb38b344 100644
--- a/world/map/npc/015-3/pot.txt
+++ b/world/map/npc/015-3/pot.txt
@@ -1,7 +1,7 @@
// The pot where the player can deposit stuff for the cat.
-015-3.gat,37,29,0|script|Pot|400,{
-
+015-3.gat,37,29,0|script|Pot|400,
+{
set @cat, ((Katze & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if (@cat > 0)
diff --git a/world/map/npc/016-1/_mobs.txt b/world/map/npc/016-1/_mobs.txt
index c0f03028..b56c1f58 100644
--- a/world/map/npc/016-1/_mobs.txt
+++ b/world/map/npc/016-1/_mobs.txt
@@ -13,7 +13,8 @@
016-1.gat,0,0,0,0|monster|Silkworm|1035,7,150000,7000,Mob016-1::On1035
-016-1.gat,0,0,0|script|Mob016-1|-1,{
+016-1.gat,0,0,0|script|Mob016-1|-1,
+{
On1003:
set @mobID, 1003;
callfunc "MobPoints";
diff --git a/world/map/npc/016-1/gwendolyn.txt b/world/map/npc/016-1/gwendolyn.txt
index f3ae3f7e..30521be5 100644
--- a/world/map/npc/016-1/gwendolyn.txt
+++ b/world/map/npc/016-1/gwendolyn.txt
@@ -21,7 +21,8 @@
// 5, state5: you are ready to do the targeting minigame
// 6, state6: you did the minigame
-016-1.gat,33,45,0|script|Gwendolyn|182,{
+016-1.gat,33,45,0|script|Gwendolyn|182,
+{
// schoolfee in gp
set @SCHOOLFEE, 25000;
// how many eggs do you need of each kind?
@@ -79,7 +80,7 @@ L_fee:
set Zeny, Zeny - @SCHOOLFEE;
set @Q_hawkseye, 2;
- callsub S_Update_Var;
+ callsub S_Update_Var;
mes "[Gwendolyn Bowmaker]";
mes "\"The first thing you need is, obviously, a bow. You should not use any you come across, but a high quality one. I think it would be best to go to Alan in Hurnscald. He is my cousin, and knows how to make Forest Bows of exquisite quality. \"";
@@ -101,7 +102,7 @@ L_state2:
goto L_bow_bought;
set @Q_hawkseye, 3;
- callsub S_Update_Var;
+ callsub S_Update_Var;
mes "[Gwendolyn Bowmaker]";
mes "\"Very well, this looks fine. It is time for your first lesson. \"";
next;
@@ -142,7 +143,7 @@ L_state3:
getexp @QUEST_EGG_EXP, 0;
set @Q_hawkseye, 4;
- callsub S_Update_Var;
+ callsub S_Update_Var;
mes "[Gwendolyn Bowmaker]";
mes "\"Very well. That will make a great meal.\"";
@@ -157,7 +158,7 @@ L_state4:
next;
set @Q_hawkseye, 5;
- callsub S_Update_Var;
+ callsub S_Update_Var;
mes "[Gwendolyn Bowmaker]";
mes "\"Ok. You have made great progress. I think you are ready for further tasks.\"";
next;
@@ -432,7 +433,7 @@ L_target_hit:
if( rand(500) > (2*readparam(bDex) + readparam(bAgi)))
goto L_target_nohit;
set @Q_hawkseye, 6;
- callsub S_Update_Var;
+ callsub S_Update_Var;
setskill SKILL_MALLARDS_EYE, 1;
getexp @QUEST_HAWK_EXP, 0;
@@ -465,13 +466,13 @@ L_state1:
L_no_student:
mes "\"That's a pity. Well, if you change your mind, come back any time.\"";
set @Q_hawkseye, 1;
- callsub S_Update_Var;
+ callsub S_Update_Var;
goto L_Close;
L_no_money:
mes "\"I am sorry, but it seems that you don't have enough money. Come back when you have reorganized your finances.\"";
set @Q_hawkseye, 1;
- callsub S_Update_Var;
+ callsub S_Update_Var;
goto L_Close;
L_no_bow:
diff --git a/world/map/npc/017-1/_mobs.txt b/world/map/npc/017-1/_mobs.txt
index 07fede56..781dd7d3 100644
--- a/world/map/npc/017-1/_mobs.txt
+++ b/world/map/npc/017-1/_mobs.txt
@@ -21,7 +21,8 @@
017-1.gat,0,0,0,0|monster|Squirrel|1038,30,20,10,Mob017-1::On1038
-017-1.gat,0,0,0|script|Mob017-1|-1,{
+017-1.gat,0,0,0|script|Mob017-1|-1,
+{
On1011:
set @mobID, 1011;
callfunc "MobPoints";
diff --git a/world/map/npc/017-2/_mobs.txt b/world/map/npc/017-2/_mobs.txt
index c2355097..1fa5a2ef 100644
--- a/world/map/npc/017-2/_mobs.txt
+++ b/world/map/npc/017-2/_mobs.txt
@@ -3,6 +3,7 @@
-017-2.gat,0,0,0|script|Mob017-2|-1,{
+017-2.gat,0,0,0|script|Mob017-2|-1,
+{
end;
}
diff --git a/world/map/npc/017-3/_mobs.txt b/world/map/npc/017-3/_mobs.txt
index da7b8a06..c1312235 100644
--- a/world/map/npc/017-3/_mobs.txt
+++ b/world/map/npc/017-3/_mobs.txt
@@ -3,6 +3,7 @@
-017-3.gat,0,0,0|script|Mob017-3|-1,{
+017-3.gat,0,0,0|script|Mob017-3|-1,
+{
end;
}
diff --git a/world/map/npc/017-4/_mobs.txt b/world/map/npc/017-4/_mobs.txt
index d0afa2fe..e6678f62 100644
--- a/world/map/npc/017-4/_mobs.txt
+++ b/world/map/npc/017-4/_mobs.txt
@@ -3,6 +3,7 @@
-017-4.gat,0,0,0|script|Mob017-4|-1,{
+017-4.gat,0,0,0|script|Mob017-4|-1,
+{
end;
}
diff --git a/world/map/npc/017-9/_mobs.txt b/world/map/npc/017-9/_mobs.txt
index b1a6a8d0..b43738be 100644
--- a/world/map/npc/017-9/_mobs.txt
+++ b/world/map/npc/017-9/_mobs.txt
@@ -3,6 +3,7 @@
-017-9.gat,0,0,0|script|Mob017-9|-1,{
+017-9.gat,0,0,0|script|Mob017-9|-1,
+{
end;
}
diff --git a/world/map/npc/018-1/_mobs.txt b/world/map/npc/018-1/_mobs.txt
index 78f9caec..e0665795 100644
--- a/world/map/npc/018-1/_mobs.txt
+++ b/world/map/npc/018-1/_mobs.txt
@@ -29,7 +29,8 @@
018-1.gat,0,0,0,0|monster|Butterfly|1055,20,30,20,Mob018-1::On1055
-018-1.gat,0,0,0|script|Mob018-1|-1,{
+018-1.gat,0,0,0|script|Mob018-1|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/018-1/_warps.txt b/world/map/npc/018-1/_warps.txt
index 67e45f36..7996cc23 100644
--- a/world/map/npc/018-1/_warps.txt
+++ b/world/map/npc/018-1/_warps.txt
@@ -14,7 +14,7 @@
018-1.gat,158,34|warp|To Northern Mine|-1,-1,018-3.gat,64,103
018-1.gat,162,44|warp|To Northern Mine|-1,-1,018-3.gat,29,166
018-1.gat,177,20|warp|To Jack O Cave|-1,-1,013-3.gat,177,90
-018-1.gat,65,73|warp|Woodland Mining Camp Indoor|-1,-1,018-2.gat,50,28
+018-1.gat,65,73|warp|To Woodland Mining Camp Indoor|-1,-1,018-2.gat,50,28
018-1.gat,79,98|warp|To Hurnscald Outskirts|2,-1,008-1.gat,78,18
-018-1.gat,64,70|warp|Woodland Mining Camp Indoor|-1,-1,018-2.gat,41,21
+018-1.gat,64,70|warp|To Woodland Mining Camp Indoor|-1,-1,018-2.gat,41,21
018-1.gat,78,34|warp|To Northern Mine|-1,-1,018-3.gat,107,147
diff --git a/world/map/npc/018-1/mike.txt b/world/map/npc/018-1/mike.txt
index 33c33c52..e4c475f8 100644
--- a/world/map/npc/018-1/mike.txt
+++ b/world/map/npc/018-1/mike.txt
@@ -1,5 +1,5 @@
-018-1.gat,77,60,0|script|Mike|113,{
-
+018-1.gat,77,60,0|script|Mike|113,
+{
mes "[Mike]";
mes "\"I need black stingers to make some medicine to cure my sister.\"";
next;
diff --git a/world/map/npc/018-1/miners.txt b/world/map/npc/018-1/miners.txt
index f372b120..a83498ed 100644
--- a/world/map/npc/018-1/miners.txt
+++ b/world/map/npc/018-1/miners.txt
@@ -1,6 +1,7 @@
//
-018-1.gat,80,61,0|script|Miner|109,{
+018-1.gat,80,61,0|script|Miner|109,
+{
mes "[Miner]";
mes "\"Be careful in there.\"";
close;
diff --git a/world/map/npc/018-1/sword.txt b/world/map/npc/018-1/sword.txt
index 607c3dbf..271fc39d 100644
--- a/world/map/npc/018-1/sword.txt
+++ b/world/map/npc/018-1/sword.txt
@@ -1,4 +1,5 @@
-018-1.gat,110,43,0|script|#IceSword#_M|400,{
+018-1.gat,110,43,0|script|#IceSword#_M|400,
+{
if (getskilllv(SKILL_MAGIC))
goto L_message;
close;
diff --git a/world/map/npc/018-2/_mobs.txt b/world/map/npc/018-2/_mobs.txt
index 5e24ee51..accf49f0 100644
--- a/world/map/npc/018-2/_mobs.txt
+++ b/world/map/npc/018-2/_mobs.txt
@@ -4,7 +4,8 @@
018-2.gat,114,21,4,3|monster|YellowSlime|1007,1,100000,30000,Mob018-2::On1007
-018-2.gat,0,0,0|script|Mob018-2|-1,{
+018-2.gat,0,0,0|script|Mob018-2|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/018-2/angus.txt b/world/map/npc/018-2/angus.txt
index f44bef56..cfc11587 100644
--- a/world/map/npc/018-2/angus.txt
+++ b/world/map/npc/018-2/angus.txt
@@ -1,6 +1,7 @@
// Angus the craftsman
-018-2.gat,31,39,0|script|Angus|147,{
+018-2.gat,31,39,0|script|Angus|147,
+{
set @honorific$, "lad";
if (Sex == 0) set @honorific$, "lass";
diff --git a/world/map/npc/018-2/books.txt b/world/map/npc/018-2/books.txt
index 25bbe3fe..90c4d090 100644
--- a/world/map/npc/018-2/books.txt
+++ b/world/map/npc/018-2/books.txt
@@ -1,6 +1,7 @@
//
-018-2.gat,112,19,0|script|#Bookcase38|400,0,1{
+018-2.gat,112,19,0|script|#Bookcase38|400,0,1
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/018-2/caul.txt b/world/map/npc/018-2/caul.txt
index 3b5f771f..8da98bdc 100644
--- a/world/map/npc/018-2/caul.txt
+++ b/world/map/npc/018-2/caul.txt
@@ -7,7 +7,8 @@
//#
//#################################################################################
-018-2.gat,37,22,0|script|Caul|107,{
+018-2.gat,37,22,0|script|Caul|107,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/018-2/miners.txt b/world/map/npc/018-2/miners.txt
index 21d57957..d4397492 100644
--- a/world/map/npc/018-2/miners.txt
+++ b/world/map/npc/018-2/miners.txt
@@ -1,7 +1,8 @@
// This NPC makes gem powders out of gemstones
// Authors: Ali-G, enchilado, Jenalya
-018-2.gat,85,23,0|script|Malek|109,{
+018-2.gat,85,23,0|script|Malek|109,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/018-2/receptionist.txt b/world/map/npc/018-2/receptionist.txt
index 5f03c4b1..019e6f42 100644
--- a/world/map/npc/018-2/receptionist.txt
+++ b/world/map/npc/018-2/receptionist.txt
@@ -1,6 +1,7 @@
//
-018-2.gat,50,24,0|script|Receptionist|108,{
+018-2.gat,50,24,0|script|Receptionist|108,
+{
callfunc "ClearVariables";
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
diff --git a/world/map/npc/018-3/_mobs.txt b/world/map/npc/018-3/_mobs.txt
index 51689cd4..d3fbcf92 100644
--- a/world/map/npc/018-3/_mobs.txt
+++ b/world/map/npc/018-3/_mobs.txt
@@ -28,7 +28,8 @@
018-3.gat,68,101,5,4|monster|Snake|1010,4,60000,30000,Mob018-3::On1010
-018-3.gat,0,0,0|script|Mob018-3|-1,{
+018-3.gat,0,0,0|script|Mob018-3|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/018-3/bookcase.txt b/world/map/npc/018-3/bookcase.txt
index 72716754..f30ff1da 100644
--- a/world/map/npc/018-3/bookcase.txt
+++ b/world/map/npc/018-3/bookcase.txt
@@ -1,6 +1,7 @@
//
-018-3.gat,75,123,0|script|#DemonMineBookcase1|400,{
+018-3.gat,75,123,0|script|#DemonMineBookcase1|400,
+{
callfunc "ClearVariables";
set @state, ((QUEST_Hurnscald & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
diff --git a/world/map/npc/018-3/evil-obelisk.txt b/world/map/npc/018-3/evil-obelisk.txt
index aec1345b..85f9ca20 100644
--- a/world/map/npc/018-3/evil-obelisk.txt
+++ b/world/map/npc/018-3/evil-obelisk.txt
@@ -1,6 +1,7 @@
//
-018-3.gat,67,28,0|script|Evil Obelisk|185,{
+018-3.gat,67,28,0|script|Evil Obelisk|185,
+{
callfunc "ClearVariables";
set @map$, "018-3.gat";
set @x0, 56;
diff --git a/world/map/npc/018-3/sword.txt b/world/map/npc/018-3/sword.txt
index 703890f3..8df51f67 100644
--- a/world/map/npc/018-3/sword.txt
+++ b/world/map/npc/018-3/sword.txt
@@ -1,4 +1,5 @@
-018-3.gat,71,127,0|script|#DemonSword#_M|400,{
+018-3.gat,71,127,0|script|#DemonSword#_M|400,
+{
if (getskilllv(SKILL_MAGIC))
goto L_message;
close;
diff --git a/world/map/npc/019-1/_mobs.txt b/world/map/npc/019-1/_mobs.txt
index fb76550e..c638f1b0 100644
--- a/world/map/npc/019-1/_mobs.txt
+++ b/world/map/npc/019-1/_mobs.txt
@@ -6,7 +6,8 @@
019-1.gat,0,0,0,0|monster|WhiteBell|1095,5,100000,30000,Mob019-1::On1095
-019-1.gat,0,0,0|script|Mob019-1|-1,{
+019-1.gat,0,0,0|script|Mob019-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/019-1/mobmanager.txt b/world/map/npc/019-1/mobmanager.txt
index d0d4e498..22917bea 100644
--- a/world/map/npc/019-1/mobmanager.txt
+++ b/world/map/npc/019-1/mobmanager.txt
@@ -1,9 +1,10 @@
// Spawns mobs
-019-1.gat,0,0,0|script|SpawnManager|-1,{
+019-1.gat,0,0,0|script|SpawnManager|-1,
+{
end; // just to be secure
-onInit:
+OnInit:
set $@019_1_SANTASLIME_MONSTER_MAX_NUMBER,15;
set $@019_1_SANTASLIME_MOMSTER_ID,1015;
set $@019_1_SANTASLIME_MONSTER_SPAWN_X1,32;
@@ -12,6 +13,7 @@ onInit:
set $@019_1_SANTASLIME_MONSTER_SPAWN_Y2,101;
set $@019_1_SANTASLIME_month,gettime(6);
set $@019_1_SANTASLIME_monster_number,0;
+ if (debug >= 2) end;
initnpctimer;
if ($@019_1_SANTASLIME_month == 12 || $@019_1_SANTASLIME_month == 1 || $@019_1_SANTASLIME_month == 2) goto L_Init_Spawn;
end;
diff --git a/world/map/npc/019-1/santa_helper.txt b/world/map/npc/019-1/santa_helper.txt
index e0b7456d..758a1b0a 100644
--- a/world/map/npc/019-1/santa_helper.txt
+++ b/world/map/npc/019-1/santa_helper.txt
@@ -1,7 +1,8 @@
// Author: accoring to git history probably Jaxad
// quest made seasonal and adapted to new scripting standards by Jenalya
-019-1.gat,74,75,0|script|Santa's Helper|105,{
+019-1.gat,74,75,0|script|Santa's Helper|105,
+{
callfunc "ClearVariables";
if (FLAGS & FLAG_SANTAS_HELPER) goto L_Done;
if ((gettime(6) == 12) || ((gettime(6) == 1) && (gettime(5) < 7))) goto L_Quest;
diff --git a/world/map/npc/019-1/snowman.txt b/world/map/npc/019-1/snowman.txt
index b2c8a67d..261336f9 100644
--- a/world/map/npc/019-1/snowman.txt
+++ b/world/map/npc/019-1/snowman.txt
@@ -1,7 +1,8 @@
// Author: accoring to git history probably Jaxad
// quest made seasonal and adapted to new scripting standards by Jenalya
-019-1.gat,77,44,0|script|Snowman|129,{
+019-1.gat,77,44,0|script|Snowman|129,
+{
callfunc "ClearVariables";
if (FLAGS & FLAG_SNOWMAN) goto L_Done;
if (gettime(6) == 12 || gettime(6) == 1 || gettime(6) == 2) goto L_Quest;
diff --git a/world/map/npc/019-3/_mobs.txt b/world/map/npc/019-3/_mobs.txt
index 1592d3dc..eca884fd 100644
--- a/world/map/npc/019-3/_mobs.txt
+++ b/world/map/npc/019-3/_mobs.txt
@@ -5,7 +5,8 @@
019-3.gat,0,0,0,0|monster|Bat|1017,50,100000,30000,Mob019-3::On1017
-019-3.gat,0,0,0|script|Mob019-3|-1,{
+019-3.gat,0,0,0|script|Mob019-3|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/019-4/_mobs.txt b/world/map/npc/019-4/_mobs.txt
index d1686d01..109df48b 100644
--- a/world/map/npc/019-4/_mobs.txt
+++ b/world/map/npc/019-4/_mobs.txt
@@ -7,7 +7,8 @@
019-4.gat,0,0,0,0|monster|BlueSlime|1091,7,45000,30000,Mob019-4::On1091
-019-4.gat,0,0,0|script|Mob019-4|-1,{
+019-4.gat,0,0,0|script|Mob019-4|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/020-1/KrickKrackKrock.txt b/world/map/npc/020-1/KrickKrackKrock.txt
index 59f02370..14a23bb9 100644
--- a/world/map/npc/020-1/KrickKrackKrock.txt
+++ b/world/map/npc/020-1/KrickKrackKrock.txt
@@ -3,8 +3,8 @@
//To enable: sed 's_^// __' -i npc/020-1/KrickKrackKrock.txt
-// 020-1.gat,82,82,0|script|Criker|192,{
-
+// 020-1.gat,82,82,0|script|Criker|192,
+// {
// L_Main:
// //Var
diff --git a/world/map/npc/020-1/_mobs.txt b/world/map/npc/020-1/_mobs.txt
index 8bba5b8b..e988ed19 100644
--- a/world/map/npc/020-1/_mobs.txt
+++ b/world/map/npc/020-1/_mobs.txt
@@ -4,7 +4,8 @@
020-1.gat,0,0,0,0|monster|WhiteBell|1095,3,100000,30000,Mob020-1::On1095
-020-1.gat,0,0,0|script|Mob020-1|-1,{
+020-1.gat,0,0,0|script|Mob020-1|-1,
+{
On1095:
set @mobID, 1095;
callfunc "MobPoints";
diff --git a/world/map/npc/020-1/rockscissor.txt b/world/map/npc/020-1/rockscissor.txt
index 9cd8b757..a4ca909e 100644
--- a/world/map/npc/020-1/rockscissor.txt
+++ b/world/map/npc/020-1/rockscissor.txt
@@ -11,7 +11,8 @@
//To enable: sed 's_^// __' -i npc/020-1/rockscissor.txt
-// 020-1.gat,74,78,0|script|Gobmel|189,{
+// 020-1.gat,74,78,0|script|Gobmel|189,
+// {
// //var
// set @NPC_name$, "[Gobmel]";
// set @NPC_point, 0;
diff --git a/world/map/npc/020-1/soul-menhir.txt b/world/map/npc/020-1/soul-menhir.txt
index cdcc05c1..75ba384a 100644
--- a/world/map/npc/020-1/soul-menhir.txt
+++ b/world/map/npc/020-1/soul-menhir.txt
@@ -1,6 +1,7 @@
//
-020-1.gat,63,89,0|script|Soul Menhir|346,{
+020-1.gat,63,89,0|script|Soul Menhir|346,
+{
callfunc "ClearVariables";
set @map$, "020-1.gat";
setarray @Xs, 62, 63, 64, 62, 64, 62, 64;
diff --git a/world/map/npc/020-1/well.txt b/world/map/npc/020-1/well.txt
index 265ce212..17b63c5c 100644
--- a/world/map/npc/020-1/well.txt
+++ b/world/map/npc/020-1/well.txt
@@ -14,8 +14,8 @@
//# used variables: QUEST_Nivalis_state Nibble4
//############################################
-020-1.gat,99,83,0|script|#Well|400,{
-
+020-1.gat,99,83,0|script|#Well|400,
+{
set @Q_MASK, NIBBLE_4_MASK;
set @Q_SHIFT, NIBBLE_4_SHIFT;
set @Q_status, ((QUEST_Nivalis_state) & @Q_MASK) >> @Q_SHIFT;
@@ -97,7 +97,8 @@ S_Update_Var:
return;
}
-020-2.gat,100,28,0|script|Miler|100,{
+020-2.gat,100,28,0|script|Miler|100,
+{
set @Q_MASK, NIBBLE_4_MASK;
set @Q_SHIFT, NIBBLE_4_SHIFT;
set @Q_status, ((QUEST_Nivalis_state) & @Q_MASK) >> @Q_SHIFT;
diff --git a/world/map/npc/020-2/_mobs.txt b/world/map/npc/020-2/_mobs.txt
index 01a67c89..8d1af8c3 100644
--- a/world/map/npc/020-2/_mobs.txt
+++ b/world/map/npc/020-2/_mobs.txt
@@ -3,6 +3,7 @@
-020-2.gat,0,0,0|script|Mob020-2|-1,{
+020-2.gat,0,0,0|script|Mob020-2|-1,
+{
end;
}
diff --git a/world/map/npc/020-2/baktar.txt b/world/map/npc/020-2/baktar.txt
index c6603d43..2ac3cec6 100644
--- a/world/map/npc/020-2/baktar.txt
+++ b/world/map/npc/020-2/baktar.txt
@@ -31,7 +31,8 @@
//# bit 0 knows the name/location of the opponent
//# bit 1 killed the ugly opponent
//#=========================
-020-2.gat,70,61,0|script|Baktar|191,{
+020-2.gat,70,61,0|script|Baktar|191,
+{
set @npcname$, "[Baktar]";
set @Q_MASK, BYTE_0_MASK;
@@ -98,7 +99,7 @@ L_KnowAlready:
mes @npcname$;
mes "\"I love Tulimshar's stuff. I'm collecting souvenirs from Tulimshar to help remind me of all the great times I had there. If you give me an interesting item from the area, I'll give you a nice reward. So, you have a new item?\"";
goto L_startitem;
-close;
+ close;
L_exotic:
mes @npcname$;
@@ -183,76 +184,76 @@ L_NeverMind:
L_DesertHat_Item:
if(@Q_status & (1<<@BIT_DESERTHAT)) goto L_havealready;
if (countitem("DesertHat") < 1) goto L_Noitem;
- delitem "DesertHat", 1;
- set Zeny, Zeny + @MONEY_DESERTHAT;
- getexp @XP_DESERTHAT,0;
- set @Q_status, @Q_status | (1<<@BIT_DESERTHAT);
- callsub S_Update_Var;
+ delitem "DesertHat", 1;
+ set Zeny, Zeny + @MONEY_DESERTHAT;
+ getexp @XP_DESERTHAT,0;
+ set @Q_status, @Q_status | (1<<@BIT_DESERTHAT);
+ callsub S_Update_Var;
close;
L_DesertShirt_Item:
if(@Q_status & (1<<@BIT_DESERTSHIRT)) goto L_havealready;
if (countitem("DesertShirt") < 1) goto L_Noitem;
- delitem "DesertShirt", 1;
- set Zeny, Zeny + @MONEY_DESERTSHIRT;
- getexp @XP_DESERTSHIRT,0;
- set @Q_status, @Q_status | (1<<@BIT_DESERTSHIRT);
- callsub S_Update_Var;
+ delitem "DesertShirt", 1;
+ set Zeny, Zeny + @MONEY_DESERTSHIRT;
+ getexp @XP_DESERTSHIRT,0;
+ set @Q_status, @Q_status | (1<<@BIT_DESERTSHIRT);
+ callsub S_Update_Var;
close;
L_SerfHat_Item:
if(@Q_status & (1<<@BIT_SERFHAT)) goto L_havealready;
if (countitem("SerfHat") < 1) goto L_Noitem;
- delitem "SerfHat", 1;
- set Zeny, Zeny + @MONEY_SERFHAT;
- getexp @XP_SERFHAT,0;
- set @Q_status, @Q_status | (1<<@BIT_SERFHAT);
- callsub S_Update_Var;
+ delitem "SerfHat", 1;
+ set Zeny, Zeny + @MONEY_SERFHAT;
+ getexp @XP_SERFHAT,0;
+ set @Q_status, @Q_status | (1<<@BIT_SERFHAT);
+ callsub S_Update_Var;
close;
L_tongue_Item:
if(@Q_status & (1<<@BIT_MS_TONGUE)) goto L_havealready;
if (countitem("MountainSnakeTongue") < 1) goto L_Noitem;
- delitem "MountainSnakeTongue", 1;
- set Zeny, Zeny + @MONEY_MS_TONGUE;
- getexp @XP_MS_TONGUE,0;
- set @Q_status, @Q_status | (1<<@BIT_MS_TONGUE);
- callsub S_Update_Var;
-close;
+ delitem "MountainSnakeTongue", 1;
+ set Zeny, Zeny + @MONEY_MS_TONGUE;
+ getexp @XP_MS_TONGUE,0;
+ set @Q_status, @Q_status | (1<<@BIT_MS_TONGUE);
+ callsub S_Update_Var;
+ close;
L_egg_Item:
if(@Q_status & (1<<@BIT_MS_EGG)) goto L_havealready;
if (countitem("MountainSnakeEgg") < 1) goto L_Noitem;
- delitem "MountainSnakeEgg", 1;
- set Zeny, Zeny + @MONEY_MS_EGG;
- getexp @XP_MS_EGG,0;
- set @Q_status, @Q_status | (1<<@BIT_MS_EGG);
- callsub S_Update_Var;
-close;
+ delitem "MountainSnakeEgg", 1;
+ set Zeny, Zeny + @MONEY_MS_EGG;
+ getexp @XP_MS_EGG,0;
+ set @Q_status, @Q_status | (1<<@BIT_MS_EGG);
+ callsub S_Update_Var;
+ close;
L_skin_Item:
if(@Q_status & (1<<@BIT_SNAKESKIN)) goto L_havealready;
if (countitem("SnakeSkin") < 1) goto L_Noitem;
- delitem "SnakeSkin", 1;
- set Zeny, Zeny + @MONEY_SNAKESKIN;
- getexp @XP_SNAKESKIN,0;
- set @Q_status, @Q_status | (1<<@BIT_SNAKESKIN);
- callsub S_Update_Var;
-close;
+ delitem "SnakeSkin", 1;
+ set Zeny, Zeny + @MONEY_SNAKESKIN;
+ getexp @XP_SNAKESKIN,0;
+ set @Q_status, @Q_status | (1<<@BIT_SNAKESKIN);
+ callsub S_Update_Var;
+ close;
L_BugLegItem:
if(@Q_status & (1<<@BIT_BUGLEG)) goto L_havealready;
if (countitem("BugLeg") < 1) goto L_Noitem;
- delitem "BugLeg", 1;
- set Zeny, Zeny + @MONEY_BUGLEG;
- getexp @XP_BUGLEG,0;
- set @Q_status, @Q_status | (1<<@BIT_BUGLEG);
- callsub S_Update_Var;
-close;
+ delitem "BugLeg", 1;
+ set Zeny, Zeny + @MONEY_BUGLEG;
+ getexp @XP_BUGLEG,0;
+ set @Q_status, @Q_status | (1<<@BIT_BUGLEG);
+ callsub S_Update_Var;
+ close;
L_Noitem:
mes @npcname$;
mes "\"Well, if you happen to get items from Tulimshar, see me first before you sell anything.\"";
-close;
+ close;
L_havealready:
mes @npcname$;
mes "\"I already collected what you can offer me.\"";
-close;
+ close;
S_Update_Var:
set QUEST_Nivalis_state,
@@ -293,7 +294,7 @@ L_2_init:
next;
set @Q_status2, 1;
callsub S_Update_Var2;
-close;
+ close;
L_2_talk1:
mes @npcname$;
@@ -313,7 +314,7 @@ L_2_talk1:
mes "\"Ok.\"";
set @Q_status2, 2;
callsub S_Update_Var2;
-close;
+ close;
L_2_talk2:
mes @npcname$;
@@ -336,7 +337,7 @@ L_2_talk2:
mes "\"I WANT YOU TO KILL THAT BASTARD!!\"";
set @Q_status2, 3;
callsub S_Update_Var2;
-close;
+ close;
L_2_talk3:
menu "Ok, I am a professional in doing such things", L_2_professional,
@@ -346,7 +347,7 @@ L_2_talk3:
"Nevermind", -;
mes @npcname$;
mes "\"Get out of my way, prank!\"";
-close;
+ close;
L_2_professional:
mes @npcname$;
@@ -374,7 +375,7 @@ L_2_name:
"They call me Mistakes. I am a professional killer as well. You heard about that business in the terranite cave?", -;
mes @npcname$;
mes "\"Alright, I see. Ok maybe I really need to calm down. Please leave me alone... I will try to calm down, ok?\"";
-close;
+ close;
S_Update_Var2:
set QUEST_Nivalis_state,
@@ -383,6 +384,6 @@ S_Update_Var2:
set QUEST_Nivalis_state,
(QUEST_Nivalis_state & ~(@Q_MASK2_BITS)
| (@Q_status2_bits << @Q_SHIFT2_BITS));
-return;
+ return;
}
diff --git a/world/map/npc/020-2/banker.txt b/world/map/npc/020-2/banker.txt
index 9bbdd86d..7fb3b511 100644
--- a/world/map/npc/020-2/banker.txt
+++ b/world/map/npc/020-2/banker.txt
@@ -1,11 +1,13 @@
-020-2.gat,122,64,0|script|Ben|193,{
+020-2.gat,122,64,0|script|Ben|193,
+{
callfunc "ClearVariables";
set @npcname$, "Ben";
callfunc "Banker";
close;
}
-020-2.gat,127,63,0|script|Maria|190,{
+020-2.gat,127,63,0|script|Maria|190,
+{
mes "[Maria]";
mes "\"Hello!";
mes "\"Isn't it great?\"";
diff --git a/world/map/npc/020-2/furquest.txt b/world/map/npc/020-2/furquest.txt
index 81bb245e..0f0b2957 100644
--- a/world/map/npc/020-2/furquest.txt
+++ b/world/map/npc/020-2/furquest.txt
@@ -3,8 +3,8 @@
//#################################################################################
// Tulimshar Crafting Workshop - Agostine, The Legendary Tailor
-020-2.gat,27,26,0|script|Agostine|137,{
-
+020-2.gat,27,26,0|script|Agostine|137,
+{
set @CUTFUR_EXP, 10;
set @FINEDRESS_COTTON_CLOTHS, 20;
set @FINEDRESS_GP, 20000;
diff --git a/world/map/npc/020-2/shops.txt b/world/map/npc/020-2/shops.txt
index 3cb03c7d..80399668 100644
--- a/world/map/npc/020-2/shops.txt
+++ b/world/map/npc/020-2/shops.txt
@@ -1,7 +1,8 @@
// Snow town shops
// About the Area NPC
-020-2.gat,75,28,0|script|Taylor|137,{
+020-2.gat,75,28,0|script|Taylor|137,
+{
mes "[Taylor]";
mes "\"While it can be dangerous up here in Kaizei, I take comfort that Nivalis is not surrounded by the Yeti like Thermin is. What a weird town.\"";
next;
@@ -18,7 +19,8 @@
020-2.gat,75,24,0|shop|Mede|103,CactusDrink :-1, CactusPotion :-1, IronPotion :-1, ConcentrationPotion :-1
// INN
-020-2.gat,111,23,0|script|Kane|120,{
+020-2.gat,111,23,0|script|Kane|120,
+{
set @npcname$, "Kane the Inn Keeper";
set @cost, 100;
diff --git a/world/map/npc/020-3/_mobs.txt b/world/map/npc/020-3/_mobs.txt
index 47d1ca5f..8611e97e 100644
--- a/world/map/npc/020-3/_mobs.txt
+++ b/world/map/npc/020-3/_mobs.txt
@@ -7,7 +7,8 @@
020-3.gat,0,0,0,0|monster|Pinkie|1018,10,0,0,Mob020-3::On1018
-020-3.gat,0,0,0|script|Mob020-3|-1,{
+020-3.gat,0,0,0|script|Mob020-3|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/021-1/_import.txt b/world/map/npc/021-1/_import.txt
index 9fa30a77..eda5518c 100644
--- a/world/map/npc/021-1/_import.txt
+++ b/world/map/npc/021-1/_import.txt
@@ -14,5 +14,8 @@ npc: npc/021-1/inac.txt
npc: npc/021-1/mapflags.txt
npc: npc/021-1/north_shops.txt
npc: npc/021-1/npcs.txt
+npc: npc/021-1/sewer_east.txt
+npc: npc/021-1/sewer_north.txt
+npc: npc/021-1/sewer_west.txt
npc: npc/021-1/weellos.txt
npc: npc/021-1/workers.txt
diff --git a/world/map/npc/021-1/_mobs.txt b/world/map/npc/021-1/_mobs.txt
index 7878ff89..fc45882c 100644
--- a/world/map/npc/021-1/_mobs.txt
+++ b/world/map/npc/021-1/_mobs.txt
@@ -8,7 +8,8 @@
021-1.gat,98,24,2,2|monster|SeaSlime|1033,1,150000,100000,Mob021-1::On1033
-021-1.gat,0,0,0|script|Mob021-1|-1,{
+021-1.gat,0,0,0|script|Mob021-1|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/021-1/bakery.txt b/world/map/npc/021-1/bakery.txt
index 4535395e..12c352bc 100644
--- a/world/map/npc/021-1/bakery.txt
+++ b/world/map/npc/021-1/bakery.txt
@@ -2,7 +2,8 @@
021-1.gat,105,104,0|shop|Ara|163,WhiteCake :-1,ChocolateCake :-1,OrangeCake :-1,AppleCake :-1,CherryCake :-1
-021-1.gat,108,102,0|script|Itka|114,{
+021-1.gat,108,102,0|script|Itka|114,
+{
mes "[Itka]";
mes "\"This bakery is the best!\"";
close;
@@ -13,5 +14,6 @@ OnTimer300000:
end;
OnInit:
+ if (debug >= 2) end;
initnpctimer;
}
diff --git a/world/map/npc/021-1/banu.txt b/world/map/npc/021-1/banu.txt
index 1e9d462c..2bff70e2 100644
--- a/world/map/npc/021-1/banu.txt
+++ b/world/map/npc/021-1/banu.txt
@@ -3,8 +3,8 @@
// Using bit 10 and 11 of QUEST_NorthTulimshar (second half of nibble 2)
// author: Jenalya
-021-1.gat,102,54,0|script|Banu|154,{
-
+021-1.gat,102,54,0|script|Banu|154,
+{
set @BanuNT_MASK, 0xC00;
set @BanuNT_SHIFT, 10;
set @state, ((QUEST_NorthTulimshar & @BanuNT_MASK) >> @BanuNT_SHIFT);
diff --git a/world/map/npc/021-1/eurni.txt b/world/map/npc/021-1/eurni.txt
index 16a2ea77..0170c6b6 100644
--- a/world/map/npc/021-1/eurni.txt
+++ b/world/map/npc/021-1/eurni.txt
@@ -1,6 +1,7 @@
//
-021-1.gat,141,113,0|script|Eurni|136,{
+021-1.gat,141,113,0|script|Eurni|136,
+{
set @hw2011_npc_id, $@hw2011_npc_eurni;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
diff --git a/world/map/npc/021-1/gate_guards.txt b/world/map/npc/021-1/gate_guards.txt
index ad0e80b4..52fa5a4b 100644
--- a/world/map/npc/021-1/gate_guards.txt
+++ b/world/map/npc/021-1/gate_guards.txt
@@ -1,45 +1,52 @@
// Various guards at gates
// Guards by the gates to the port
-021-1.gat,70,23,0|script|Guard|104,{
+021-1.gat,70,23,0|script|Guard|104,
+{
mes "[Guard]";
mes "\"Lots of stuff happens in the port district. Those sailors can get quite rowdy.\"";
close;
}
-021-1.gat,110,23,0|script|Guard|104,{
+021-1.gat,110,23,0|script|Guard|104,
+{
mes "[Guard]";
mes "\"I'm not quite sure why I'm here, since that bridge is out.\"";
close;
}
// Guard near the magic school
-021-1.gat,46,65,0|script|Guard|104,{
+021-1.gat,46,65,0|script|Guard|104,
+{
mes "[Guard]";
mes "\"I'm just here to provide a presence for the guards at this gate. The mages here can defend themselves without problem.\"";
close;
}
// Guards by the gates to East Tulimshar
-021-1.gat,146,23,0|script|Guard|104,{
+021-1.gat,146,23,0|script|Guard|104,
+{
mes "[Guard]";
mes "\"I make sure less desirables don't enter the Noble District.\"";
close;
}
-021-1.gat,156,42,0|script|Guard|104,{
+021-1.gat,156,42,0|script|Guard|104,
+{
mes "[Guard]";
mes "\"The volcano and earthquake did a lot of damage, but the citizens of Tulimshar sure did a good job of cleaning up.\"";
close;
}
-021-1.gat,156,95,0|script|Guard|104,{
+021-1.gat,156,95,0|script|Guard|104,
+{
mes "[Guard]";
mes "\"The Palace is East of here. That is where you will find the Council of Wizards.\"";
close;
}
// Near the bazaar, outside the government building
-021-1.gat,55,136,0|script|Guard|123,{
+021-1.gat,55,136,0|script|Guard|123,
+{
mes "[Guard]";
mes "\"This is a government building. They have some clerical and tax offices in here. There is also a jail in the subbasement.\"";
close;
diff --git a/world/map/npc/021-1/hetchel.txt b/world/map/npc/021-1/hetchel.txt
index e7ca7bd9..d2ed7012 100644
--- a/world/map/npc/021-1/hetchel.txt
+++ b/world/map/npc/021-1/hetchel.txt
@@ -17,7 +17,8 @@
// @SHEET_ZENY : Money to pay per sheet: A sixth of 10000-2*500-6000
// @SheetCount Number of sheets to buy (variable).
-021-1.gat,120,39,0|script|Hetchel|376,{
+021-1.gat,120,39,0|script|Hetchel|376,
+{
set @SHEET_COCOONS_NR, 25;
set @SHEET_ZENY, 500;
set @SheetCount, 0;
diff --git a/world/map/npc/021-1/hideandseek.txt b/world/map/npc/021-1/hideandseek.txt
index 22b0c86b..fb789340 100644
--- a/world/map/npc/021-1/hideandseek.txt
+++ b/world/map/npc/021-1/hideandseek.txt
@@ -6,7 +6,8 @@
// bit 7: unused
// Author: Jenalya
--|script|#hideandseekNTconfig|-1,{
+-|script|#hideandseekNTconfig|-1,
+{
OnInit:
set $@hideandseekNT_MASK, BYTE_0_MASK;
set $@hideandseekNT_SHIFT, BYTE_0_SHIFT;
@@ -21,8 +22,8 @@ OnInit:
end;
}
-021-1.gat,87,66,0|script|Ayasha|258,{
-
+021-1.gat,87,66,0|script|Ayasha|258,
+{
set @state, ((QUEST_NorthTulimshar & $@hideandseekNT_MASK) >> $@hideandseekNT_SHIFT);
set @EXP, 75;
@@ -81,8 +82,8 @@ L_Close:
close;
}
-021-1.gat,63,107,0|script|Latif|262,{
-
+021-1.gat,63,107,0|script|Latif|262,
+{
set @state, ((QUEST_NorthTulimshar & $@hideandseekNT_MASK) >> $@hideandseekNT_SHIFT);
set @EXP, 15;
@@ -136,8 +137,8 @@ L_Close:
close;
}
-021-1.gat,123,116,0|script|Charda|260,{
-
+021-1.gat,123,116,0|script|Charda|260,
+{
set @state, ((QUEST_NorthTulimshar & $@hideandseekNT_MASK) >> $@hideandseekNT_SHIFT);
set @EXP, 15;
@@ -188,8 +189,8 @@ L_Close:
close;
}
-021-1.gat,78,87,0|script|Faris|259,{
-
+021-1.gat,78,87,0|script|Faris|259,
+{
set @state, ((QUEST_NorthTulimshar & $@hideandseekNT_MASK) >> $@hideandseekNT_SHIFT);
set @EXP, 25;
@@ -236,8 +237,8 @@ L_Close:
close;
}
-021-1.gat,98,25,0|script|Rasin|263,{
-
+021-1.gat,98,25,0|script|Rasin|263,
+{
set @state, ((QUEST_NorthTulimshar & $@hideandseekNT_MASK) >> $@hideandseekNT_SHIFT);
set @EXP, 15;
@@ -275,8 +276,8 @@ L_Close:
close;
}
-021-1.gat,155,25,0|script|Ghada|265,{
-
+021-1.gat,155,25,0|script|Ghada|265,
+{
set @state, ((QUEST_NorthTulimshar & $@hideandseekNT_MASK) >> $@hideandseekNT_SHIFT);
set @EXP, 15;
diff --git a/world/map/npc/021-1/imec.txt b/world/map/npc/021-1/imec.txt
index ac541c87..ee46d688 100644
--- a/world/map/npc/021-1/imec.txt
+++ b/world/map/npc/021-1/imec.txt
@@ -3,15 +3,16 @@
// Using bit 8 and 9 of QUEST_NorthTulimshar (first half of nibble 2)
// author: Jenalya
--|script|#ImecShopConfig|-1,{
+-|script|#ImecShopConfig|-1,
+{
OnInit:
set $@ImecShopNT_MASK, 0x300;
set $@ImecShopNT_SHIFT, 8;
end;
}
-021-1.gat,120,33,0|script|Imec|162,{
-
+021-1.gat,120,33,0|script|Imec|162,
+{
set @state, ((QUEST_NorthTulimshar & $@ImecShopNT_MASK) >> $@ImecShopNT_SHIFT);
set @money, 500;
diff --git a/world/map/npc/021-1/inac.txt b/world/map/npc/021-1/inac.txt
index 9ac054fc..b5b8fa45 100644
--- a/world/map/npc/021-1/inac.txt
+++ b/world/map/npc/021-1/inac.txt
@@ -1,6 +1,7 @@
//
-021-1.gat,53,103,0|script|Inac|156,{
+021-1.gat,53,103,0|script|Inac|156,
+{
set @hw2011_npc_id, $@hw2011_npc_inac;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
diff --git a/world/map/npc/021-1/north_shops.txt b/world/map/npc/021-1/north_shops.txt
index 71b9e757..b4e03d28 100644
--- a/world/map/npc/021-1/north_shops.txt
+++ b/world/map/npc/021-1/north_shops.txt
@@ -5,12 +5,14 @@
// Some clothing
021-1.gat,135,38,0|shop|Inar|108,CottonShirt :-1,CottonShorts :-1,CottonBoots :-1,DesertShirt :-1,SilkRobe :-5,DesertHat :-4
-021-1.gat,129,40,0|script|Well|400,{
+021-1.gat,129,40,0|script|Well|400,
+{
callfunc "WaterBottle";
}
// An officer (for security)
-021-1.gat,128,36,0|script|Officer|150,{
+021-1.gat,128,36,0|script|Officer|150,
+{
mes "[Officer]";
mes "I'm here for extra security for this market.";
close;
@@ -18,8 +20,8 @@
// A snobby store that won't sell to the player
// takes part in quest given by 021-2/kylian.txt
-021-1.gat,138,29,0|script|Latoy|106,{
-
+021-1.gat,138,29,0|script|Latoy|106,
+{
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowLatoyNT;
set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT);
diff --git a/world/map/npc/021-1/npcs.txt b/world/map/npc/021-1/npcs.txt
index 662a69e2..40b100e1 100644
--- a/world/map/npc/021-1/npcs.txt
+++ b/world/map/npc/021-1/npcs.txt
@@ -1,6 +1,7 @@
// Talk NPCs to help make trek interesting between Tutorial and Bazaar.
-021-1.gat,77,42,0|script|Jeric|214,{
+021-1.gat,77,42,0|script|Jeric|214,
+{
set @npcname$, "Jeric";
mes "[" + @npcname$ + "]";
@@ -10,7 +11,8 @@
close;
}
-021-1.gat,76,67,0|script|Silvia|207,{
+021-1.gat,76,67,0|script|Silvia|207,
+{
set @npcname$, "Silvia";
mes "[" + @npcname$ + "]";
@@ -22,7 +24,8 @@
close;
}
-021-1.gat,55,66,0|script|Pauline|208,{
+021-1.gat,55,66,0|script|Pauline|208,
+{
set @npcname$, "Pauline";
mes "[" + @npcname$ + "]";
@@ -32,7 +35,8 @@
close;
}
-021-1.gat,51,123,0|script|Michel|215,{
+021-1.gat,51,123,0|script|Michel|215,
+{
set @npcname$, "Michel";
mes "[" + @npcname$ + "]";
diff --git a/world/map/npc/021-1/sewer_east.txt b/world/map/npc/021-1/sewer_east.txt
new file mode 100644
index 00000000..5dae481e
--- /dev/null
+++ b/world/map/npc/021-1/sewer_east.txt
@@ -0,0 +1,17 @@
+// The Sewer Grate
+
+021-1.gat,145,136,0|script|#tulimsharsewer2|45,0,0,
+{
+ mes "Descend into the sewers?";
+ next;
+ menu
+ "Yes.", L_Sewer,
+ "Nevermind.", L_Close;
+
+L_Sewer:
+ warp "021-3",143,129;
+ goto L_Close;
+
+L_Close:
+ close;
+}
diff --git a/world/map/npc/021-1/sewer_north.txt b/world/map/npc/021-1/sewer_north.txt
new file mode 100644
index 00000000..572dbb5b
--- /dev/null
+++ b/world/map/npc/021-1/sewer_north.txt
@@ -0,0 +1,17 @@
+// The Sewer Grate
+
+021-1.gat,124,41,0|script|#tulimsharsewer1|45,0,0,
+{
+ mes "Descend into the sewers?";
+ next;
+ menu
+ "Yes.", L_Sewer,
+ "Nevermind.", L_Close;
+
+L_Sewer:
+ warp "021-3",125,35;
+ goto L_Close;
+
+L_Close:
+ close;
+}
diff --git a/world/map/npc/021-1/sewer_west.txt b/world/map/npc/021-1/sewer_west.txt
new file mode 100644
index 00000000..fcb3aa25
--- /dev/null
+++ b/world/map/npc/021-1/sewer_west.txt
@@ -0,0 +1,17 @@
+// The Sewer Grate
+
+021-1.gat,52,104,0|script|#tulimsharsewer3|45,0,0,
+{
+ mes "Descend into the sewers?";
+ next;
+ menu
+ "Yes.", L_Sewer,
+ "Nevermind.", L_Close;
+
+L_Sewer:
+ warp "021-3",57,101;
+ goto L_Close;
+
+L_Close:
+ close;
+}
diff --git a/world/map/npc/021-1/weellos.txt b/world/map/npc/021-1/weellos.txt
index d86f7221..b3321eb4 100644
--- a/world/map/npc/021-1/weellos.txt
+++ b/world/map/npc/021-1/weellos.txt
@@ -1,7 +1,8 @@
// A historian
// takes part in quest given by 021-2/kylian.txt
-021-1.gat,130,125,0|script|Weellos|103,{
+021-1.gat,130,125,0|script|Weellos|103,
+{
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowWeellosNT;
set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT);
diff --git a/world/map/npc/021-1/workers.txt b/world/map/npc/021-1/workers.txt
index fcbed396..59419da0 100644
--- a/world/map/npc/021-1/workers.txt
+++ b/world/map/npc/021-1/workers.txt
@@ -1,18 +1,21 @@
//
-021-1.gat,144,22,0|script|Construction Worker|155,{
+021-1.gat,144,22,0|script|Construction Worker|155,
+{
mes "[Construction worker]";
mes "\"I can't let you beyond this gate. The area is closed for renovation.\"";
close;
}
-021-1.gat,156,97,0|script|Construction Worker|155,{
+021-1.gat,156,97,0|script|Construction Worker|155,
+{
mes "[Construction worker]";
mes "\"East Tulimshar is closed for repairs.\"";
close;
}
-021-1.gat,156,44,0|script|Construction Worker|155,{
+021-1.gat,156,44,0|script|Construction Worker|155,
+{
mes "[Construction worker]";
mes "\"East Tulimshar is closed for repairs.\"";
close;
diff --git a/world/map/npc/021-2/_mobs.txt b/world/map/npc/021-2/_mobs.txt
index d45ca8be..5b7d3384 100644
--- a/world/map/npc/021-2/_mobs.txt
+++ b/world/map/npc/021-2/_mobs.txt
@@ -3,6 +3,7 @@
-021-2.gat,0,0,0|script|Mob021-2|-1,{
+021-2.gat,0,0,0|script|Mob021-2|-1,
+{
end;
}
diff --git a/world/map/npc/021-2/bakery.txt b/world/map/npc/021-2/bakery.txt
index bea20d9e..5239c498 100644
--- a/world/map/npc/021-2/bakery.txt
+++ b/world/map/npc/021-2/bakery.txt
@@ -1,8 +1,8 @@
// The bakery
// The chef
-021-2.gat,95,21,0|script|Riskim|148,{
-
+021-2.gat,95,21,0|script|Riskim|148,
+{
// lines belong to easter 2011:
// set @month, 4;
// set @start_day, 15;
@@ -201,7 +201,8 @@ L_SeeBunny:
}
// Server?
-021-2.gat,82,23,0|script|Sara|108,{
+021-2.gat,82,23,0|script|Sara|108,
+{
mes "[Sara]";
mes "";
mes "\"Hello!\"";
@@ -212,7 +213,8 @@ L_SeeBunny:
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,{
+021-2.gat,133,21,0|script|Iormo|160,
+{
mes "[Iormo]";
mes "";
mes "\"This stock room can get messy.\"";
@@ -220,14 +222,16 @@ L_SeeBunny:
}
// An old couple eating at the bakery
-021-2.gat,71,22,0|script|Rynoh|159,{
+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,{
+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!\"";
diff --git a/world/map/npc/021-2/bank.txt b/world/map/npc/021-2/bank.txt
index 5ebbe5ea..a1fbd3c1 100644
--- a/world/map/npc/021-2/bank.txt
+++ b/world/map/npc/021-2/bank.txt
@@ -1,5 +1,6 @@
// Another banker
-021-2.gat,69,135,0|script|Hydusun|149,{
+021-2.gat,69,135,0|script|Hydusun|149,
+{
set @npcname$, "Hydusun";
callfunc "Banker";
close;
diff --git a/world/map/npc/021-2/barber.txt b/world/map/npc/021-2/barber.txt
index d0ff401e..a4075a36 100644
--- a/world/map/npc/021-2/barber.txt
+++ b/world/map/npc/021-2/barber.txt
@@ -1,5 +1,6 @@
// A barber (later we can make it so certain styles need to come from him, for a price)
-021-2.gat,72,101,0|script|Issay|156,{
+021-2.gat,72,101,0|script|Issay|156,
+{
mes "[Issay the Barber]";
mes "\"Do you need a change of style?\"";
next;
diff --git a/world/map/npc/021-2/government_building.txt b/world/map/npc/021-2/government_building.txt
index 944efd09..1422e50a 100644
--- a/world/map/npc/021-2/government_building.txt
+++ b/world/map/npc/021-2/government_building.txt
@@ -1,7 +1,8 @@
// The government builing in the south west
// A clerk
-021-2.gat,27,17,0|script|Estard|107,{
+021-2.gat,27,17,0|script|Estard|107,
+{
mes "[Estard]";
mes "\"Hello what can I do for you?\"";
next;
@@ -138,7 +139,8 @@ S_give_rings:
return;
}
-021-2.gat,36,17,0|script|Tathin|107,{
+021-2.gat,36,17,0|script|Tathin|107,
+{
set @hw2011_npc_id, $@hw2011_npc_tathin;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
@@ -225,7 +227,8 @@ L_TrickOrTreat:
}
// Guard
-021-2.gat,20,19,0|script|Guard|123,1,1,{
+021-2.gat,20,19,0|script|Guard|123,1,1,
+{
mes "[Guard]";
mes "\"You can't come back here.\"";
close;
diff --git a/world/map/npc/021-2/heathin.txt b/world/map/npc/021-2/heathin.txt
index 681f40df..c01d2fd4 100644
--- a/world/map/npc/021-2/heathin.txt
+++ b/world/map/npc/021-2/heathin.txt
@@ -1,7 +1,7 @@
//Items for NPC are incomplete. Makes "simple ring" which can be crafted into a useful ring by Inya and terranite armor.
-021-2.gat,70,129,0|script|Heathin|147,{
-
+021-2.gat,70,129,0|script|Heathin|147,
+{
set @TARROW_REQ_TERRA_ORE, 1;
set @TARROW_REQ_COAL, 5;
set @TARROW_REQ_GP, 3000;
diff --git a/world/map/npc/021-2/hotel_receptionist.txt b/world/map/npc/021-2/hotel_receptionist.txt
index 0a7fcbb2..dac560c6 100644
--- a/world/map/npc/021-2/hotel_receptionist.txt
+++ b/world/map/npc/021-2/hotel_receptionist.txt
@@ -1,7 +1,8 @@
// Tulimshar's main workshop
// The receptionist
-021-2.gat,22,63,0|script|Sonir|118,{
+021-2.gat,22,63,0|script|Sonir|118,
+{
mes "[Sonir]";
mes "\"Welcome to The Wizards's Rest!\"";
next;
diff --git a/world/map/npc/021-2/inya.txt b/world/map/npc/021-2/inya.txt
index 4a70730c..97424592 100644
--- a/world/map/npc/021-2/inya.txt
+++ b/world/map/npc/021-2/inya.txt
@@ -1,8 +1,8 @@
//Gemstones: Diamond (white) , Ruby (red), Emerald (green), Sapphire (blue), Topaz (yellow), Amethyst (purple)
//The power of the gems is important to future balance of these rings. Are they related to stats, tiers of power, schools of magic?
-021-2.gat,80,134,0|script|Inya|106,{
-
+021-2.gat,80,134,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.\"";
next;
diff --git a/world/map/npc/021-2/jhedia.txt b/world/map/npc/021-2/jhedia.txt
index 1bffd0eb..dcb76d47 100644
--- a/world/map/npc/021-2/jhedia.txt
+++ b/world/map/npc/021-2/jhedia.txt
@@ -1,7 +1,7 @@
// Ingot maker takes iron ore, gives ingots for future crafting purposes.
-021-2.gat,70,124,0|script|Jhedia|160,{
-
+021-2.gat,70,124,0|script|Jhedia|160,
+{
set @Cost_Per_Ingot, 1000;
set @Iron_Ore_Per, 5;
set @Coal_Per, 10;
diff --git a/world/map/npc/021-2/kylian.txt b/world/map/npc/021-2/kylian.txt
index 737214a5..c228acba 100644
--- a/world/map/npc/021-2/kylian.txt
+++ b/world/map/npc/021-2/kylian.txt
@@ -32,7 +32,8 @@
// @KylianNTSightSeeing
// @KylianNTCasino
--|script|#businessmanNTconfig|-1,{
+-|script|#businessmanNTconfig|-1,
+{
OnInit:
// Nibble 4
set $@knowYanisNT, 0x10000;
@@ -45,15 +46,16 @@ OnInit:
end;
}
-021-2.gat,25,67,0|script|#KylianOut|32767,1,1,{
+021-2.gat,25,67,0|script|#KylianOut|32767,1,1,
+{
set @KylianNTLicense, 0;
set @KylianNTSightSeeing, 0;
set @KylianNTCasino, 0;
end;
}
-021-2.gat,32,92,0|script|Kylian|193,{
-
+021-2.gat,32,92,0|script|Kylian|193,
+{
set @state, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT);
set @acorn_amount, 12;
diff --git a/world/map/npc/021-2/yanis.txt b/world/map/npc/021-2/yanis.txt
index 27e69f63..384c6d92 100644
--- a/world/map/npc/021-2/yanis.txt
+++ b/world/map/npc/021-2/yanis.txt
@@ -1,8 +1,8 @@
// Government official taking care about shop licenses
// involved in quest given by 021-1/imec.txt and 021-2/kylian.txt
-021-2.gat,33,17,0|script|Yanis|107,{
-
+021-2.gat,33,17,0|script|Yanis|107,
+{
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowYanisNT;
set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT);
set @imec, ((QUEST_NorthTulimshar & $@ImecShopNT_MASK) >> $@ImecShopNT_SHIFT);
diff --git a/world/map/npc/021-3/_import.txt b/world/map/npc/021-3/_import.txt
new file mode 100644
index 00000000..544afc3a
--- /dev/null
+++ b/world/map/npc/021-3/_import.txt
@@ -0,0 +1,5 @@
+// Map 021-3: Central Tulimshar Sewers
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 021-3.gat
+npc: npc/021-3/_mobs.txt
+npc: npc/021-3/_warps.txt
diff --git a/world/map/npc/021-3/_mobs.txt b/world/map/npc/021-3/_mobs.txt
new file mode 100644
index 00000000..368aed44
--- /dev/null
+++ b/world/map/npc/021-3/_mobs.txt
@@ -0,0 +1,50 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Central Tulimshar Sewers mobs
+
+021-3.gat,120,130,20,21|monster|AngrySeaSlime|1109,6,150000,100000,Mob021-3::On1109
+021-3.gat,53,130,20,21|monster|AngrySeaSlime|1109,6,150000,100000,Mob021-3::On1109
+021-3.gat,128,69,27,7|monster|AngrySeaSlime|1109,6,150000,100000,Mob021-3::On1109
+021-3.gat,120,38,11,8|monster|CaveMaggot|1056,5,100000,30000,Mob021-3::On1056
+021-3.gat,103,58,8,3|monster|CaveMaggot|1056,5,100000,30000,Mob021-3::On1056
+021-3.gat,80,98,34,31|monster|CaveMaggot|1056,5,100000,30000,Mob021-3::On1056
+021-3.gat,129,82,8,3|monster|CaveMaggot|1056,5,100000,30000,Mob021-3::On1056
+021-3.gat,140,38,16,8|monster|AngryFireGoblin|1108,3,100000,30000,Mob021-3::On1108
+021-3.gat,79,98,33,31|monster|BlackScorpion|1009,4,100000,1800000,Mob021-3::On1009
+021-3.gat,52,53,2,17|monster|Snake|1010,2,40000,50000,Mob021-3::On1010
+021-3.gat,93,31,28,22|monster|SeaSlime|1033,6,100000,30000,Mob021-3::On1033
+
+
+021-3.gat,0,0,0|script|Mob021-3|-1,
+{
+On1009:
+ set @mobID, 1009;
+ callfunc "MobPoints";
+ end;
+
+On1010:
+ set @mobID, 1010;
+ callfunc "MobPoints";
+ end;
+
+On1033:
+ set @mobID, 1033;
+ callfunc "MobPoints";
+ end;
+
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ end;
+
+On1108:
+ set @mobID, 1108;
+ callfunc "MobPoints";
+ end;
+
+On1109:
+ set @mobID, 1109;
+ callfunc "MobPoints";
+ end;
+
+ end;
+}
diff --git a/world/map/npc/021-3/_warps.txt b/world/map/npc/021-3/_warps.txt
new file mode 100644
index 00000000..192f6c95
--- /dev/null
+++ b/world/map/npc/021-3/_warps.txt
@@ -0,0 +1,6 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Central Tulimshar Sewers warps
+
+021-3.gat,143,127|warp|To Central Tulimshar|-1,-1,021-1.gat,147,137
+021-3.gat,125,33|warp|To Central Tulimshar|-1,-1,021-1.gat,124,39
+021-3.gat,57,99|warp|To Central Tulimshar|-1,-1,021-1.gat,50,105
diff --git a/world/map/npc/022-1/_mobs.txt b/world/map/npc/022-1/_mobs.txt
index 92b81a81..ceea5fc7 100644
--- a/world/map/npc/022-1/_mobs.txt
+++ b/world/map/npc/022-1/_mobs.txt
@@ -3,6 +3,7 @@
-022-1.gat,0,0,0|script|Mob022-1|-1,{
+022-1.gat,0,0,0|script|Mob022-1|-1,
+{
end;
}
diff --git a/world/map/npc/022-1/adrian.txt b/world/map/npc/022-1/adrian.txt
index fbae8706..dd70914d 100644
--- a/world/map/npc/022-1/adrian.txt
+++ b/world/map/npc/022-1/adrian.txt
@@ -5,8 +5,8 @@
// state 2: Adrian gave the luggage to the player
// state 3: player gave luggage to Kylian and Kylian asks who to talk to for the shop license
-022-1.gat,58,54,0|script|Adrian|213,{
-
+022-1.gat,58,54,0|script|Adrian|213,
+{
set @state, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT);
mes "[Adrian]";
diff --git a/world/map/npc/022-1/anwar.txt b/world/map/npc/022-1/anwar.txt
index b53b6731..b45b5fd2 100644
--- a/world/map/npc/022-1/anwar.txt
+++ b/world/map/npc/022-1/anwar.txt
@@ -17,15 +17,16 @@
// state 14: gave present to Eomie
// state 15: reported back to Anwar and done
--|script|#magicfieldNTconfig|-1,{
+-|script|#magicfieldNTconfig|-1,
+{
OnInit:
set $@magicfieldNT_MASK, NIBBLE_3_MASK;
set $@magicfieldNT_SHIFT, NIBBLE_3_SHIFT;
end;
}
-022-1.gat,41,46,0|script|Anwar|156,{
-
+022-1.gat,41,46,0|script|Anwar|156,
+{
set @state, ((QUEST_NorthTulimshar & $@magicfieldNT_MASK) >> $@magicfieldNT_SHIFT);
set @cloth_amount, 3;
diff --git a/world/map/npc/022-1/dock.txt b/world/map/npc/022-1/dock.txt
index 654f4199..ed4c7695 100644
--- a/world/map/npc/022-1/dock.txt
+++ b/world/map/npc/022-1/dock.txt
@@ -1,6 +1,7 @@
// The ferry dock
-022-1.gat,84,72,0|script|#tulimshardock|45,6,1,{
+022-1.gat,84,72,0|script|#tulimshardock|45,6,1,
+{
set @loc, DOCK_tulimshar;
callfunc "Ferry";
}
diff --git a/world/map/npc/022-1/ferry_master.txt b/world/map/npc/022-1/ferry_master.txt
index 0622fd98..a4ad69ba 100644
--- a/world/map/npc/022-1/ferry_master.txt
+++ b/world/map/npc/022-1/ferry_master.txt
@@ -1,6 +1,7 @@
//
-022-1.gat,73,71,0|script|Ferry Master|138,{
+022-1.gat,73,71,0|script|Ferry Master|138,
+{
mes "[Ferry Master]";
mes "\"Hello! Do you need something?\"";
next;
diff --git a/world/map/npc/022-1/npcs.txt b/world/map/npc/022-1/npcs.txt
index 4bcf9dcf..a5b815d8 100644
--- a/world/map/npc/022-1/npcs.txt
+++ b/world/map/npc/022-1/npcs.txt
@@ -1,6 +1,7 @@
// Talk NPCs to help make trek interesting between Tutorial and Bazaar.
-022-1.gat,35,36,0|script|Marikel|211,{
+022-1.gat,35,36,0|script|Marikel|211,
+{
set @npcname$, "Marikel";
mes "[" + @npcname$ + "]";
@@ -27,7 +28,8 @@ L_Marikel_2:
close;
}
-022-1.gat,65,46,0|script|Joelin|212,{
+022-1.gat,65,46,0|script|Joelin|212,
+{
set @npcname$, "Joelin";
mes "[" + @npcname$ + "]";
@@ -37,7 +39,8 @@ L_Marikel_2:
close;
}
-022-1.gat,67,46,0|script|Harper|213,{
+022-1.gat,67,46,0|script|Harper|213,
+{
set @npcname$, "Harper";
mes "[" + @npcname$ + "]";
@@ -45,7 +48,8 @@ L_Marikel_2:
close;
}
-022-1.gat,75,99,0|script|Swezanne|206,{
+022-1.gat,75,99,0|script|Swezanne|206,
+{
set @npcname$, "Swezanne";
mes "[" + @npcname$ + "]";
diff --git a/world/map/npc/022-1/tutorial.txt b/world/map/npc/022-1/tutorial.txt
index 23a924f1..1ecbb1a8 100644
--- a/world/map/npc/022-1/tutorial.txt
+++ b/world/map/npc/022-1/tutorial.txt
@@ -2,13 +2,15 @@
// Author: Jenalya
// if you enter the tutorial area from outside, it is set to be already done
-022-1.gat,19,37,0|script|#tutorial|45,0,2{
+022-1.gat,19,37,0|script|#tutorial|45,0,2
+{
callfunc "TutorialCompleted";
warp "042-1.gat", 95, 69;
end;
}
-function|script|TutorialCompleted|{
+function|script|TutorialCompleted|,
+{
set hasan, 0;
set kaan, 0;
set sorfina, 0;
diff --git a/world/map/npc/024-1/_mobs.txt b/world/map/npc/024-1/_mobs.txt
index 3e8c406e..5dac248d 100644
--- a/world/map/npc/024-1/_mobs.txt
+++ b/world/map/npc/024-1/_mobs.txt
@@ -10,7 +10,8 @@
024-1.gat,63,54,3,6|monster|Maggot|1002,1,100000,30000,Mob024-1::On1002
-024-1.gat,0,0,0|script|Mob024-1|-1,{
+024-1.gat,0,0,0|script|Mob024-1|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/024-1/ched.txt b/world/map/npc/024-1/ched.txt
index 662c6b81..2628f99a 100644
--- a/world/map/npc/024-1/ched.txt
+++ b/world/map/npc/024-1/ched.txt
@@ -1,6 +1,7 @@
// Student at Tulimshar's magic academy
-024-1.gat,69,56,0|script|Ched|113,{
+024-1.gat,69,56,0|script|Ched|113,
+{
if (isin("024-1.gat", 62, 52, 65, 57)) goto L_Garden;
if (isin("024-1.gat", 66, 43, 80, 54)) goto L_Canyon;
diff --git a/world/map/npc/024-1/david.txt b/world/map/npc/024-1/david.txt
index 6924e5ad..14b8d848 100644
--- a/world/map/npc/024-1/david.txt
+++ b/world/map/npc/024-1/david.txt
@@ -1,5 +1,5 @@
-024-1.gat,70,70,0|script|David|120,{
-
+024-1.gat,70,70,0|script|David|120,
+{
set @Potion_EXP, 2000;
if (Rossy_Quest == 17) goto L_FinalEnd;
diff --git a/world/map/npc/024-1/eomie.txt b/world/map/npc/024-1/eomie.txt
index 6999eccf..544eeaf9 100644
--- a/world/map/npc/024-1/eomie.txt
+++ b/world/map/npc/024-1/eomie.txt
@@ -18,8 +18,8 @@
// state 14: gave present to Eomie
// state 15: reported back to Anwar and done
-024-1.gat,72,94,0|script|Eomie|164,{
-
+024-1.gat,72,94,0|script|Eomie|164,
+{
// lines belong to easter 2011:
// set @month, 4;
// set @start_day, 15;
diff --git a/world/map/npc/024-1/tinris.txt b/world/map/npc/024-1/tinris.txt
index a0313b32..1dcb3ccd 100644
--- a/world/map/npc/024-1/tinris.txt
+++ b/world/map/npc/024-1/tinris.txt
@@ -17,8 +17,8 @@
// state 14: gave present to Eomie
// state 15: reported back to Anwar and done
-024-1.gat,82,64,0|script|Tinris|160,{
-
+024-1.gat,82,64,0|script|Tinris|160,
+{
set @state, ((QUEST_NorthTulimshar & $@magicfieldNT_MASK) >> $@magicfieldNT_SHIFT);
set @cake_exp, 50;
diff --git a/world/map/npc/024-1/tondar.txt b/world/map/npc/024-1/tondar.txt
index 29041e33..7252b476 100644
--- a/world/map/npc/024-1/tondar.txt
+++ b/world/map/npc/024-1/tondar.txt
@@ -1,6 +1,7 @@
// A professor at Tulimshar's magic academy
-024-1.gat,83,51,0|script|Tondar|168,{
+024-1.gat,83,51,0|script|Tondar|168,
+{
mes "[Tondar]";
mes "\"We're not accepting any new students right now.\"";
if (getskilllv(SKILL_MAGIC) > 0)
diff --git a/world/map/npc/024-2/_mobs.txt b/world/map/npc/024-2/_mobs.txt
index 92276ebf..b526b00a 100644
--- a/world/map/npc/024-2/_mobs.txt
+++ b/world/map/npc/024-2/_mobs.txt
@@ -3,6 +3,7 @@
-024-2.gat,0,0,0|script|Mob024-2|-1,{
+024-2.gat,0,0,0|script|Mob024-2|-1,
+{
end;
}
diff --git a/world/map/npc/024-2/barrier.txt b/world/map/npc/024-2/barrier.txt
index e5de5bb9..6b971d1f 100644
--- a/world/map/npc/024-2/barrier.txt
+++ b/world/map/npc/024-2/barrier.txt
@@ -1,6 +1,7 @@
// A barrier in the magic school to keep less experienced players out of the canyon
-024-2.gat,31,24,0|script|#MagicSchoolBarrier1#M|0,1,1,{
+024-2.gat,31,24,0|script|#MagicSchoolBarrier1#M|0,1,1,
+{
if (BaseLevel < 40) goto L_PushBack;
close;
diff --git a/world/map/npc/024-2/tyer.txt b/world/map/npc/024-2/tyer.txt
index bbd829cd..334c62ad 100644
--- a/world/map/npc/024-2/tyer.txt
+++ b/world/map/npc/024-2/tyer.txt
@@ -1,6 +1,7 @@
// A man in the magic school
-024-2.gat,36,21,0|script|Tyer|157,{
+024-2.gat,36,21,0|script|Tyer|157,
+{
mes "[Tyer]";
mes "\"Hello.\"";
close;
diff --git a/world/map/npc/024-2/tyer_trigger.txt b/world/map/npc/024-2/tyer_trigger.txt
index 603eb7d8..9a1a8c27 100644
--- a/world/map/npc/024-2/tyer_trigger.txt
+++ b/world/map/npc/024-2/tyer_trigger.txt
@@ -1,6 +1,7 @@
// A man in the magic school
-024-2.gat,33,24,0|script|#Tyer_Trigger|0,1,1,{
+024-2.gat,33,24,0|script|#Tyer_Trigger|0,1,1,
+{
if (BaseLevel >= 40) end;
mes "[Tyer]";
diff --git a/world/map/npc/024-3/_mobs.txt b/world/map/npc/024-3/_mobs.txt
index 5dc5d7fd..82bfa7ad 100644
--- a/world/map/npc/024-3/_mobs.txt
+++ b/world/map/npc/024-3/_mobs.txt
@@ -3,6 +3,7 @@
-024-3.gat,0,0,0|script|Mob024-3|-1,{
+024-3.gat,0,0,0|script|Mob024-3|-1,
+{
end;
}
diff --git a/world/map/npc/024-4/_mobs.txt b/world/map/npc/024-4/_mobs.txt
index c0ad131d..36b6da26 100644
--- a/world/map/npc/024-4/_mobs.txt
+++ b/world/map/npc/024-4/_mobs.txt
@@ -3,6 +3,7 @@
-024-4.gat,0,0,0|script|Mob024-4|-1,{
+024-4.gat,0,0,0|script|Mob024-4|-1,
+{
end;
}
diff --git a/world/map/npc/025-1/_mobs.txt b/world/map/npc/025-1/_mobs.txt
index 32d4ee65..b3a7ab4f 100644
--- a/world/map/npc/025-1/_mobs.txt
+++ b/world/map/npc/025-1/_mobs.txt
@@ -13,7 +13,8 @@
025-1.gat,26,61,15,85|monster|Scorpion|1003,12,100000,50000,Mob025-1::On1003
-025-1.gat,0,0,0|script|Mob025-1|-1,{
+025-1.gat,0,0,0|script|Mob025-1|-1,
+{
On1003:
set @mobID, 1003;
callfunc "MobPoints";
diff --git a/world/map/npc/025-1/barrier.txt b/world/map/npc/025-1/barrier.txt
index 3b9fbb97..619ce0d7 100644
--- a/world/map/npc/025-1/barrier.txt
+++ b/world/map/npc/025-1/barrier.txt
@@ -1,7 +1,7 @@
// Authors: alastrim, Ali-g, Dark Mage
-025-1.gat,42,79,0|script|#JuliaBarrier|45,1,1,{
-
+025-1.gat,42,79,0|script|#JuliaBarrier|45,1,1,
+{
if (Rossy_Quest > 14 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_Warp;
if (Rossy_Quest <= 13) goto L_Block;
if (Rossy_Quest == 14) message strcharinfo(0), "You hear distant screams of fear.";
diff --git a/world/map/npc/025-1/reset.txt b/world/map/npc/025-1/reset.txt
index ccfdab26..5084d905 100644
--- a/world/map/npc/025-1/reset.txt
+++ b/world/map/npc/025-1/reset.txt
@@ -1,7 +1,7 @@
//To enable: sed 's_^// __' -i npc/025-1/reset.txt
-// 025-1.gat,47,84,0|script|reset|145,{
-
+// 025-1.gat,47,84,0|script|reset|145,
+// {
// mes "Do you want to reset Rossy Quest?";
// menu
// "Reset every variable of the quest.", -,
diff --git a/world/map/npc/025-1/rossy.txt b/world/map/npc/025-1/rossy.txt
index c468503f..de3ce386 100644
--- a/world/map/npc/025-1/rossy.txt
+++ b/world/map/npc/025-1/rossy.txt
@@ -1,7 +1,7 @@
// Authors: alastrim, Ali-g, Dark Mage
-025-1.gat,80,88,0|script|Rossy|114,{
-
+025-1.gat,80,88,0|script|Rossy|114,
+{
set @Cherry_Amount, 10;
set @Cherry_EXP, 2000;
diff --git a/world/map/npc/025-3/_mobs.txt b/world/map/npc/025-3/_mobs.txt
index 73bf37fa..d849c118 100644
--- a/world/map/npc/025-3/_mobs.txt
+++ b/world/map/npc/025-3/_mobs.txt
@@ -7,7 +7,8 @@
025-3.gat,69,153,13,1|monster|Skeleton|1043,1,0,30000,Mob025-3::On1043
-025-3.gat,0,0,0|script|Mob025-3|-1,{
+025-3.gat,0,0,0|script|Mob025-3|-1,
+{
On1043:
set @mobID, 1043;
callfunc "MobPoints";
diff --git a/world/map/npc/025-3/barriers.txt b/world/map/npc/025-3/barriers.txt
index ebd27a1b..773b3571 100644
--- a/world/map/npc/025-3/barriers.txt
+++ b/world/map/npc/025-3/barriers.txt
@@ -2,7 +2,8 @@
// -----------------------------------Warp to Cave 1 ---------------------------------------
-025-3.gat,78,127,0|script|#WarpBattleCave1|45,1,1,{
+025-3.gat,78,127,0|script|#WarpBattleCave1|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 26, 63, 60, 97) >= 1 || $@battlecave1 > 0)
@@ -127,7 +128,8 @@ L_AlreadyClean:
// ---------------------------- Warp to Cave 2 ----------------------------
-025-3.gat,53,107,0|script|#WarpBattleCave2|45,1,1,{
+025-3.gat,53,107,0|script|#WarpBattleCave2|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 97, 62, 126, 96) >= 1 || $@battlecave2 > 0)
@@ -251,7 +253,8 @@ L_AlreadyClean:
// --------------------------------- Warp to Cave 3 ----------------------------------------
-025-3.gat,71,83,0|script|#WarpBattleCave3|45,1,1,{
+025-3.gat,71,83,0|script|#WarpBattleCave3|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 150, 84, 177, 117) >= 1 || $@battlecave3 > 0)
@@ -375,7 +378,8 @@ L_AlreadyClean:
// --------------------------- Warp to Cave 4 --------------------------------------
-025-3.gat,80,83,0|script|#WarpBattleCave4|45,1,1,{
+025-3.gat,80,83,0|script|#WarpBattleCave4|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 28, 124, 57, 156) >= 1 || $@battlecave4 > 0)
@@ -499,7 +503,8 @@ L_AlreadyClean:
// --------------------------- Warp to Cave 5 ----------------------------------------
-025-3.gat,71,30,0|script|#WarpBattleCave5|45,1,1,{
+025-3.gat,71,30,0|script|#WarpBattleCave5|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 91, 131, 124, 160) >= 1 || $@battlecave5 > 0)
@@ -623,7 +628,8 @@ L_AlreadyClean:
// -------------------------------- Warp to Cave 6 -----------------------------------------
-025-3.gat,128,35,0|script|#WarpBattleCave6|45,1,1,{
+025-3.gat,128,35,0|script|#WarpBattleCave6|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 153, 143, 178, 174) >= 1 || $@battlecave6 > 0)
@@ -747,7 +753,8 @@ L_AlreadyClean:
// ---------------------------- Warp to Cave 7 ------------------------------------------
-025-3.gat,70,57,0|script|#WarpBattleCave7|45,1,1,{
+025-3.gat,70,57,0|script|#WarpBattleCave7|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 27, 185, 61, 219) >= 1 || $@battlecave7 > 0)
@@ -871,7 +878,8 @@ L_AlreadyClean:
// -----------------------------------------------Warp to Cave 8-------------------------------------------------------------
-025-3.gat,138,92,0|script|#WarpBattleCave8|45,1,1,{
+025-3.gat,138,92,0|script|#WarpBattleCave8|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 90, 193, 119, 216) >= 1 || $@battlecave8 > 0)
@@ -995,8 +1003,8 @@ L_AlreadyClean:
// ------------------------------ Warp to Cave 9 ----------------------------------------
-025-3.gat,138,160,0|script|#WarpBattleCave9|45,1,1,{
-
+025-3.gat,138,160,0|script|#WarpBattleCave9|45,1,1,
+{
if (Rossy_Quest >= 16 || FLAGS & FLAG_ROSSI_COMPLETED)
goto L_AlreadyHelped;
if (getareausers("025-4.gat", 144, 192, 173, 226) >= 1 || $@battlecave9 > 0)
@@ -1120,7 +1128,8 @@ L_AlreadyClean:
// ----------------------------- Warp to Boss Cave -------------------------------
-025-3.gat,77,170,0|script|#WarpBossCave|45,1,1,{
+025-3.gat,77,170,0|script|#WarpBossCave|45,1,1,
+{
if (Rossy_Quest > 16 || FLAGS & FLAG_ROSSI_COMPLETED)
end;
if (Rossy_Quest == 16)
diff --git a/world/map/npc/025-4/_mobs.txt b/world/map/npc/025-4/_mobs.txt
index e8bd7b59..9034f0b4 100644
--- a/world/map/npc/025-4/_mobs.txt
+++ b/world/map/npc/025-4/_mobs.txt
@@ -5,7 +5,8 @@
025-4.gat,94,24,20,21|monster|CaveMaggot|1056,5,0,100,Mob025-4::On1056
-025-4.gat,0,0,0|script|Mob025-4|-1,{
+025-4.gat,0,0,0|script|Mob025-4|-1,
+{
On1056:
set @mobID, 1056;
callfunc "MobPoints";
diff --git a/world/map/npc/025-4/battlecaves.txt b/world/map/npc/025-4/battlecaves.txt
index a0349847..b3d69f3b 100644
--- a/world/map/npc/025-4/battlecaves.txt
+++ b/world/map/npc/025-4/battlecaves.txt
@@ -2,7 +2,8 @@
// --------------------------------- Cave 1 -----------------------------------
-025-4.gat,41,85,0|script|#StartCaveFight1|324,{
+025-4.gat,41,85,0|script|#StartCaveFight1|324,
+{
if ($@battlecave1 == 2 && $@cave1fighter$ == strcharinfo(0))
end;
if ($@battlecave1 == 2 && $@cave1fighter$ != strcharinfo(0))
@@ -74,7 +75,8 @@ L_no_root:
// --------------------- Cave 1 Checker ----------------------------
-025-4.gat,41,97,0|script|#CheckCaveFight1|45,1,1,{
+025-4.gat,41,97,0|script|#CheckCaveFight1|45,1,1,
+{
if (cavefights & BATTLE_CAVE1 || $@battlecave1 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -88,7 +90,8 @@ L_Done:
// --------------------------------- Cave 2 ---------------------------------------
-025-4.gat,115,77,0|script|#StartCaveFight2|324,{
+025-4.gat,115,77,0|script|#StartCaveFight2|324,
+{
if ($@battlecave2 == 2 && $@cave2fighter$ == strcharinfo(0))
end;
if ($@battlecave2 == 2 && $@cave2fighter$ != strcharinfo(0))
@@ -160,7 +163,8 @@ L_no_root:
// --------------------- Cave 2 Checker ----------------------------
-025-4.gat,110,96,0|script|#CheckCaveFight2|45,1,1,{
+025-4.gat,110,96,0|script|#CheckCaveFight2|45,1,1,
+{
if (cavefights & BATTLE_CAVE2 || $@battlecave2 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -172,7 +176,8 @@ L_Done:
}
// ------------------------------------ Cave 3 --------------------------------------
-025-4.gat,164,103,0|script|#StartCaveFight3|324,{
+025-4.gat,164,103,0|script|#StartCaveFight3|324,
+{
if ($@battlecave3 == 2 && $@cave3fighter$ == strcharinfo(0))
end;
if ($@battlecave3 == 2 && $@cave3fighter$ != strcharinfo(0))
@@ -245,7 +250,8 @@ L_no_root:
// --------------------- Cave 3 Checker ----------------------------
-025-4.gat,168,117,0|script|#CheckCaveFight3|45,1,1,{
+025-4.gat,168,117,0|script|#CheckCaveFight3|45,1,1,
+{
if (cavefights & BATTLE_CAVE3 || $@battlecave3 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -257,7 +263,8 @@ L_Done:
}
// --------------------------- Cave 4 --------------------------------
-025-4.gat,39,143,0|script|#StartCaveFight4|324,{
+025-4.gat,39,143,0|script|#StartCaveFight4|324,
+{
if ($@battlecave4 == 2 && $@cave4fighter$ == strcharinfo(0))
end;
if ($@battlecave4 == 2 && $@cave4fighter$ != strcharinfo(0))
@@ -332,7 +339,8 @@ L_no_root:
// --------------------- Cave 4 Checker ----------------------------
-025-4.gat,32,156,0|script|#CheckCaveFight4|45,1,1,{
+025-4.gat,32,156,0|script|#CheckCaveFight4|45,1,1,
+{
if (cavefights & BATTLE_CAVE4 || $@battlecave4 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -345,7 +353,8 @@ L_Done:
// ---------------------------- Cave 5 ------------------------------
-025-4.gat,109,143,0|script|#StartCaveFight5|324,{
+025-4.gat,109,143,0|script|#StartCaveFight5|324,
+{
if ($@battlecave5 == 2 && $@cave5fighter$ == strcharinfo(0))
end;
if ($@battlecave5 == 2 && $@cave5fighter$ != strcharinfo(0))
@@ -420,7 +429,8 @@ L_no_root:
// --------------------- Cave 5 Checker ----------------------------
-025-4.gat,100,160,0|script|#CheckCaveFight5|45,1,1,{
+025-4.gat,100,160,0|script|#CheckCaveFight5|45,1,1,
+{
if (cavefights & BATTLE_CAVE5 || $@battlecave5 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -433,7 +443,8 @@ L_Done:
// -------------------------------- Cave 6 -----------------------------------------
-025-4.gat,162,162,0|script|#StartCaveFight6|324,{
+025-4.gat,162,162,0|script|#StartCaveFight6|324,
+{
if ($@battlecave6 == 2 && $@cave6fighter$ == strcharinfo(0))
end;
if ($@battlecave6 == 2 && $@cave6fighter$ != strcharinfo(0))
@@ -508,7 +519,8 @@ L_no_root:
// --------------------- Cave 6 Checker ----------------------------
-025-4.gat,159,174,0|script|#CheckCaveFight6|45,1,1,{
+025-4.gat,159,174,0|script|#CheckCaveFight6|45,1,1,
+{
if (cavefights & BATTLE_CAVE6 || $@battlecave6 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -521,7 +533,8 @@ L_Done:
// -------------------------------- Cave 7 -----------------------------------
-025-4.gat,44,202,0|script|#StartCaveFight7|324,{
+025-4.gat,44,202,0|script|#StartCaveFight7|324,
+{
if ($@battlecave7 == 2 && $@cave7fighter$ == strcharinfo(0))
end;
if ($@battlecave7 == 2 && $@cave7fighter$ != strcharinfo(0))
@@ -598,7 +611,8 @@ L_no_root:
// --------------------- Cave 7 Checker ----------------------------
-025-4.gat,42,219,0|script|#CheckCaveFight7|45,1,1,{
+025-4.gat,42,219,0|script|#CheckCaveFight7|45,1,1,
+{
if (cavefights & BATTLE_CAVE7 || $@battlecave7 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -611,7 +625,8 @@ L_Done:
// --------------------------- Cave 8 -------------------------------
-025-4.gat,105,210,0|script|#StartCaveFight8|324,{
+025-4.gat,105,210,0|script|#StartCaveFight8|324,
+{
if ($@battlecave8 == 2 && $@cave8fighter$ == strcharinfo(0))
end;
if ($@battlecave8 == 2 && $@cave8fighter$ != strcharinfo(0))
@@ -688,7 +703,8 @@ L_no_root:
// --------------------- Cave 8 Checker ----------------------------
-025-4.gat,105,216,0|script|#CheckCaveFight8|45,1,1,{
+025-4.gat,105,216,0|script|#CheckCaveFight8|45,1,1,
+{
if (cavefights & BATTLE_CAVE8 || $@battlecave8 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -701,7 +717,8 @@ L_Done:
// --------------------------- Cave 9 -------------------------------
-025-4.gat,157,220,0|script|#StartCaveFight9|324,{
+025-4.gat,157,220,0|script|#StartCaveFight9|324,
+{
if ($@battlecave9 == 2 && $@cave9fighter$ == strcharinfo(0))
end;
if ($@battlecave9 == 2 && $@cave9fighter$ != strcharinfo(0))
@@ -778,7 +795,8 @@ L_no_root:
// --------------------- Cave 9 Checker ----------------------------
-025-4.gat,157,226,0|script|#CheckCaveFight9|45,1,1,{
+025-4.gat,157,226,0|script|#CheckCaveFight9|45,1,1,
+{
if (cavefights & BATTLE_CAVE9 || $@battlecave9 == 1)
goto L_Done;
message strcharinfo(0), "You can't get out! Seems like a barrier was created when the energy transmuted itself into monsters.";
@@ -791,7 +809,8 @@ L_Done:
// --------------------- Boss Cave ----------------------------
-025-4.gat,157,30,0|script|#StartBossCaveFight|325,{
+025-4.gat,157,30,0|script|#StartBossCaveFight|325,
+{
if ($@battlecave10 == 2 && $@cave10fighter$ == strcharinfo(0))
end;
if (Rossy_Quest >= 16)
@@ -891,7 +910,8 @@ L_no_root:
// --------------------- Boss Cave Checker ----------------------------
-025-4.gat,157,48,0|script|#CheckCaveFightBoss|45,1,1,{
+025-4.gat,157,48,0|script|#CheckCaveFightBoss|45,1,1,
+{
if (Rossy_Quest >= 17)
goto L_Done;
if (Rossy_Quest == 16)
@@ -917,7 +937,8 @@ L_Out:
// --------------------- Julia Cave Checker Outside ----------------------------
-025-4.gat,157,24,0|script|#CheckJuliaCaveOutside|45,1,1,{
+025-4.gat,157,24,0|script|#CheckJuliaCaveOutside|45,1,1,
+{
if (Rossy_Quest > 15)
goto L_Done;
message strcharinfo(0), "As you try to walk through, you bump into a strong magical barrier.";
@@ -931,7 +952,8 @@ L_Done:
// --------------------- Julia Cave Checker Inside ----------------------------
-025-4.gat,93,35,0|script|#CheckJuliaCaveInside|45,1,1,{
+025-4.gat,93,35,0|script|#CheckJuliaCaveInside|45,1,1,
+{
if (Rossy_Quest >= 17)
goto L_Done;
if (Rossy_Quest == 16)
diff --git a/world/map/npc/025-4/clauquer.txt b/world/map/npc/025-4/clauquer.txt
index 0537a73f..71a3dd4f 100644
--- a/world/map/npc/025-4/clauquer.txt
+++ b/world/map/npc/025-4/clauquer.txt
@@ -1,7 +1,7 @@
// Authors: alastrim, Ali-g, Dark Mage
-025-4.gat,30,30,0|script|Clauquer|169,{
-
+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;
diff --git a/world/map/npc/025-4/julia.txt b/world/map/npc/025-4/julia.txt
index 5922a60c..1f8671b1 100644
--- a/world/map/npc/025-4/julia.txt
+++ b/world/map/npc/025-4/julia.txt
@@ -1,7 +1,7 @@
// Authors: alastrim, Ali-g, Dark Mage
-025-4.gat,89,21,0|script|Julia|114,{
-
+025-4.gat,89,21,0|script|Julia|114,
+{
set @Reward_EXP, 5000;
if (Rossy_Quest > 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_End;
diff --git a/world/map/npc/026-1/_mobs.txt b/world/map/npc/026-1/_mobs.txt
index c65da2e6..db84953c 100644
--- a/world/map/npc/026-1/_mobs.txt
+++ b/world/map/npc/026-1/_mobs.txt
@@ -11,7 +11,8 @@
026-1.gat,0,0,0,0|monster|LogHead|1025,8,300000,40000,Mob026-1::On1025
-026-1.gat,0,0,0|script|Mob026-1|-1,{
+026-1.gat,0,0,0|script|Mob026-1|-1,
+{
On1003:
set @mobID, 1003;
callfunc "MobPoints";
diff --git a/world/map/npc/026-1/sign.txt b/world/map/npc/026-1/sign.txt
index 217241b5..05a1939e 100644
--- a/world/map/npc/026-1/sign.txt
+++ b/world/map/npc/026-1/sign.txt
@@ -1,6 +1,7 @@
//
-026-1.gat,64,16,0|script|Sign|400,{
+026-1.gat,64,16,0|script|Sign|400,
+{
mes "Hurnscald's Graveyard is north of here.";
mes "BEWARE!";
close;
diff --git a/world/map/npc/027-1/_mobs.txt b/world/map/npc/027-1/_mobs.txt
index ba3024ac..4aef122d 100644
--- a/world/map/npc/027-1/_mobs.txt
+++ b/world/map/npc/027-1/_mobs.txt
@@ -21,7 +21,8 @@
027-1.gat,28,67,2,1|monster|JackO|1022,1,265000,200000,Mob027-1::On1022
-027-1.gat,0,0,0|script|Mob027-1|-1,{
+027-1.gat,0,0,0|script|Mob027-1|-1,
+{
On1022:
set @mobID, 1022;
callfunc "MobPoints";
diff --git a/world/map/npc/027-1/golbenez.txt b/world/map/npc/027-1/golbenez.txt
index bc44e850..d560f953 100644
--- a/world/map/npc/027-1/golbenez.txt
+++ b/world/map/npc/027-1/golbenez.txt
@@ -1,5 +1,5 @@
-027-1.gat,68,89,0|script|#Golbenez#_M|204,{
-
+027-1.gat,68,89,0|script|#Golbenez#_M|204,
+{
set @fee, 666;
mes "[Golbenez]";
diff --git a/world/map/npc/027-1/graves.txt b/world/map/npc/027-1/graves.txt
index 7f54d8c1..b33ad67e 100644
--- a/world/map/npc/027-1/graves.txt
+++ b/world/map/npc/027-1/graves.txt
@@ -1,90 +1,103 @@
// Easter egg graves
-function|script|GraveTooFar|{
+function|script|GraveTooFar|,
+{
if (isin("027-1.gat",89,54,122,76))
return;
mes "You are too far away to read the grave.";
close;
}
-027-1.gat,89,62,0|script|Grave|400,{
+027-1.gat,89,62,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ FotherJ ~";
mes "The mad sprite making genius who made all the creepy undead monster graphics.";
close;
}
-027-1.gat,118,54,0|script|Grave|400,{
+027-1.gat,118,54,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Yosuhara ~";
mes "Contributed some of the tombstones.";
close;
}
-027-1.gat,111,62,0|script|Grave|400,{
+027-1.gat,111,62,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Feline Monstrosity ~";
mes "Made the background music you are hearing.";
close;
}
-027-1.gat,112,76,0|script|Grave|400,{
+027-1.gat,112,76,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Superkoop ~";
mes "Mapped the swamp to the south.";
close;
}
-027-1.gat,120,76,0|script|Grave|400,{
+027-1.gat,120,76,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Aroleon ~";
mes "Mapped the swamp to the southeast.";
close;
}
-027-1.gat,100,68,0|script|Grave|400,{
+027-1.gat,100,68,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ John P ~";
mes "Wrote the graveyard backstory and the dialog for the caretaker quest.";
close;
}
-027-1.gat,94,70,0|script|Grave|400,{
+027-1.gat,94,70,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Spit23 ~";
mes "Made those freakin awesome cemetery gates.";
close;
}
-027-1.gat,106,60,0|script|Grave|400,{
+027-1.gat,106,60,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Black Don ~";
mes "Contributed those cool gargoyle statues.";
close;
}
-027-1.gat,92,54,0|script|Grave|400,{
+027-1.gat,92,54,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Jaxad0127 ~";
mes "Did all the scripting work for the graveyard. Made Caretaker's house.";
close;
}
-027-1.gat,122,64,0|script|Grave|400,{
+027-1.gat,122,64,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Ces Vargavind ~";
mes "Scripted caretaker's daughter.";
close;
}
-027-1.gat,102,62,0|script|Grave|400,{
+027-1.gat,102,62,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Crush ~";
mes "Organizer of the whole graveyard project, graveyard fence graphics, mapping of the graveyard itself.";
close;
}
-027-1.gat,104,76,0|script|Grave|400,{
+027-1.gat,104,76,0|script|Grave|400,
+{
callfunc "GraveTooFar";
mes "~ Freeyorp ~";
mes "Planned out monster stats and placements.";
diff --git a/world/map/npc/027-1/monsters.txt b/world/map/npc/027-1/monsters.txt
index 9f49e673..8daed98c 100644
--- a/world/map/npc/027-1/monsters.txt
+++ b/world/map/npc/027-1/monsters.txt
@@ -6,7 +6,8 @@
027-1.gat,37,65,33,22|monster|Zombie|1036,3,140000,30000,specialMob027-1::On1036
027-1.gat,37,65,33,22|monster|Fallen|1045,3,120000,30000,specialMob027-1::On1045
-027-1.gat,0,0,0|script|specialMob027-1|-1,{
+027-1.gat,0,0,0|script|specialMob027-1|-1,
+{
On1036:
set @mobID, 1036;
callsub _MOBCOUNT_ZOMBIES;
diff --git a/world/map/npc/027-2/_mobs.txt b/world/map/npc/027-2/_mobs.txt
index b0c56143..38e0dc5d 100644
--- a/world/map/npc/027-2/_mobs.txt
+++ b/world/map/npc/027-2/_mobs.txt
@@ -9,7 +9,8 @@
027-2.gat,116,26,11,9|monster|DrunkenLadySkeleton|1079,1,100000,30000,Mob027-2::On1079
-027-2.gat,0,0,0|script|Mob027-2|-1,{
+027-2.gat,0,0,0|script|Mob027-2|-1,
+{
On1077:
set @mobID, 1077;
callfunc "MobPoints";
diff --git a/world/map/npc/027-2/alacrius.txt b/world/map/npc/027-2/alacrius.txt
index 3271986e..d8b2b513 100644
--- a/world/map/npc/027-2/alacrius.txt
+++ b/world/map/npc/027-2/alacrius.txt
@@ -2,7 +2,8 @@
//(incomplete, use alacrius2.txt instead)
//To enable: sed 's_^// __' -i npc/027-2/alacrius.txt
-//027-2.gat,107,29,0|script|Alacrius|313,{
+//027-2.gat,107,29,0|script|Alacrius|313,
+//{
// // if started, go to started
// // if fail go to failed
// // if complete go to complete
diff --git a/world/map/npc/027-2/alacrius2.txt b/world/map/npc/027-2/alacrius2.txt
index b6ed70ff..94607b2d 100644
--- a/world/map/npc/027-2/alacrius2.txt
+++ b/world/map/npc/027-2/alacrius2.txt
@@ -1,7 +1,8 @@
//Starts the reaper quest
//To enable: sed 's_^// __' -i npc/027-2/alacrius2.txt
-// 027-2.gat,107,29,0|script|Alacrius|313,{
+// 027-2.gat,107,29,0|script|Alacrius|313,
+// {
// if ($@FIGHT_ALACRIUS_STATUS != 0) goto L_Enjoy;
diff --git a/world/map/npc/027-2/barman.txt b/world/map/npc/027-2/barman.txt
index 36b20533..8fbf4867 100644
--- a/world/map/npc/027-2/barman.txt
+++ b/world/map/npc/027-2/barman.txt
@@ -1,4 +1,5 @@
-027-2.gat,103,22,0|script|Bennet|310,{
+027-2.gat,103,22,0|script|Bennet|310,
+{
mes "[Bennet]";
mes "\"Hi there, stranger! My name is Bennet, the bartender here.\"";
next;
diff --git a/world/map/npc/027-2/caretaker.txt b/world/map/npc/027-2/caretaker.txt
index c3959604..cb1cdc8f 100644
--- a/world/map/npc/027-2/caretaker.txt
+++ b/world/map/npc/027-2/caretaker.txt
@@ -2,7 +2,8 @@
// TODO: add dialog/code for giving more letters
// Airlia supports receiving an infinate number of letters
-027-2.gat,24,25,0|script|Caretaker|159,{
+027-2.gat,24,25,0|script|Caretaker|159,
+{
set @hw2011_npc_id, $@hw2011_npc_caretaker;
if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
goto L_TrickOrTreat;
@@ -116,7 +117,7 @@ OnTimer3000:
setnpctimer 0;
end;
-onInit:
+OnInit:
monster "027-2.gat", 29, 21, "Caretaker's Wife", 1044, 1, "Caretaker::OnWifeDeath";
end;
diff --git a/world/map/npc/027-2/cerhan.txt b/world/map/npc/027-2/cerhan.txt
index 6f453835..ec860ca4 100644
--- a/world/map/npc/027-2/cerhan.txt
+++ b/world/map/npc/027-2/cerhan.txt
@@ -1,6 +1,7 @@
// Author: Jenalya
-027-2.gat,70,77,0|script|Cerhan|311,{
+027-2.gat,70,77,0|script|Cerhan|311,
+{
mes "[Cerhan]";
mes "\"Ah, hello! It's good to see another normal human at this strange place!\"";
next;
diff --git a/world/map/npc/027-2/crying_child.txt b/world/map/npc/027-2/crying_child.txt
index f6df816c..a2eedf80 100644
--- a/world/map/npc/027-2/crying_child.txt
+++ b/world/map/npc/027-2/crying_child.txt
@@ -2,8 +2,8 @@
// love triangle quest, involved npcs: Reid's Ghost, Hamond, Savaric, Aldred, Golbenez
// Jenalya: some changes about variables (setting to zero if only used locally, naming)
-027-2.gat,50,92,0|script|Aldred|314,{
-
+027-2.gat,50,92,0|script|Aldred|314,
+{
// Crying Child subquest
// Variable states:
// 1 = You agree to help the child to find the ring outside
diff --git a/world/map/npc/027-2/diary.txt b/world/map/npc/027-2/diary.txt
index bfef84a6..d4f4b4ab 100644
--- a/world/map/npc/027-2/diary.txt
+++ b/world/map/npc/027-2/diary.txt
@@ -1,6 +1,7 @@
// Author: Jenalya
-027-2.gat,26,97,0|script|#Diary|400, {
+027-2.gat,26,97,0|script|#Diary|400,
+{
set @Graveyard_Inn_MASK, NIBBLE_0_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_0_SHIFT;
diff --git a/world/map/npc/027-2/door.txt b/world/map/npc/027-2/door.txt
index a39b21f6..8c0c54cc 100644
--- a/world/map/npc/027-2/door.txt
+++ b/world/map/npc/027-2/door.txt
@@ -1,4 +1,5 @@
-027-2.gat,25,100,0|script|#DoorIn|45,1,1,{
+027-2.gat,25,100,0|script|#DoorIn|45,1,1,
+{
set @Graveyard_Inn_MASK, NIBBLE_0_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_0_SHIFT;
@@ -14,7 +15,8 @@ L_Warp:
end;
}
-027-2.gat,26,99,0|script|#DoorOut|45,1,1,{
+027-2.gat,26,99,0|script|#DoorOut|45,1,1,
+{
warp "027-2.gat", 23, 98;
end;
}
diff --git a/world/map/npc/027-2/evil_guard.txt b/world/map/npc/027-2/evil_guard.txt
index bbb349df..99175c23 100644
--- a/world/map/npc/027-2/evil_guard.txt
+++ b/world/map/npc/027-2/evil_guard.txt
@@ -1,4 +1,5 @@
-027-2.gat,100,43,0|script|Blackwin|316,{
+027-2.gat,100,43,0|script|Blackwin|316,
+{
mes "...";
next;
mes "The guard glares at you, silently daring you to try something.";
@@ -11,7 +12,8 @@
close;
}
-027-2.gat,112,37,0|script|Forwin|316,{
+027-2.gat,112,37,0|script|Forwin|316,
+{
mes "[Evil Guard]";
mes "\"" + strcharinfo(0) + "...\"";
next;
diff --git a/world/map/npc/027-2/golbenez.txt b/world/map/npc/027-2/golbenez.txt
index 75836658..ffc0206f 100644
--- a/world/map/npc/027-2/golbenez.txt
+++ b/world/map/npc/027-2/golbenez.txt
@@ -9,8 +9,8 @@
// state 6: wants jackOsouls, random chance of 1/50 to success, small amount of exp for fail
// state 7: done
-027-2.gat,39,91,0|script|Golbenez|307,{
-
+027-2.gat,39,91,0|script|Golbenez|307,
+{
set @Graveyard_Inn_MASK, NIBBLE_4_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_4_SHIFT;
diff --git a/world/map/npc/027-2/gy_inn_shops.txt b/world/map/npc/027-2/gy_inn_shops.txt
index 4298106f..15ec2292 100644
--- a/world/map/npc/027-2/gy_inn_shops.txt
+++ b/world/map/npc/027-2/gy_inn_shops.txt
@@ -12,7 +12,8 @@
027-2.gat,93,22,0|shop|Umfrey|302,BoneArrows :-1,ShockSweet :-1
027-2.gat,56,99,0|shop|Leofwin|304,CactusDrink :-1,CactusPotion :-1,BugLeg :-1,SmallMushroom :-1,IronPotion :-1,ConcentrationPotion :-1,HardSpike :-1,DarkCrystal :-1,Root :-1,WispPowder :-1,SpectrePowder :-1,PoltergeistPowder :-1
-027-2.gat,106,22,0|script|Edwin|309,{
+027-2.gat,106,22,0|script|Edwin|309,
+{
set @npcname$, "Edwin";
mes "[" + @npcname$ + "]";
@@ -23,7 +24,8 @@
}
// Inn
-027-2.gat,107,39,0|script|Barbara Grey|320,{
+027-2.gat,107,39,0|script|Barbara Grey|320,
+{
set @npcname$, "Barbara Grey";
set @cost, 1000;
@@ -35,7 +37,8 @@
}
// Bank and Storage
-027-2.gat,88,22,0|script|J.P. Morbid|321,{
+027-2.gat,88,22,0|script|J.P. Morbid|321,
+{
callfunc "ClearVariables";
set @npcname$, "J.P. Morbid";
callfunc "Banker";
diff --git a/world/map/npc/027-2/headless_man.txt b/world/map/npc/027-2/headless_man.txt
index 086856cf..e22b6442 100644
--- a/world/map/npc/027-2/headless_man.txt
+++ b/world/map/npc/027-2/headless_man.txt
@@ -5,8 +5,8 @@
// state 2: items delivered, return for reward and followup story
// state 3: quest completed
-027-2.gat,22,76,0|script|Thurstan|318,{
-
+027-2.gat,22,76,0|script|Thurstan|318,
+{
if (Sex == 0) set @madamsir$, "Madam";
if (Sex == 1) set @madamsir$, "Sir";
diff --git a/world/map/npc/027-2/husband.txt b/world/map/npc/027-2/husband.txt
index 9e1b0c04..4217d9a4 100644
--- a/world/map/npc/027-2/husband.txt
+++ b/world/map/npc/027-2/husband.txt
@@ -9,8 +9,8 @@
// state 6: is set in reid, gives as reward a special bowler hat
// state 7: done
-027-2.gat,22,84,0|script|Hamond|319,{
-
+027-2.gat,22,84,0|script|Hamond|319,
+{
set @Graveyard_Inn_MASK, NIBBLE_3_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_3_SHIFT;
diff --git a/world/map/npc/027-2/innkeeper.txt b/world/map/npc/027-2/innkeeper.txt
index e3319b76..4204d041 100644
--- a/world/map/npc/027-2/innkeeper.txt
+++ b/world/map/npc/027-2/innkeeper.txt
@@ -13,8 +13,8 @@
// state 10: she spoke with hamond and savaric, gives reward mylarin dust (needed for a crafting quest in thermin)
// state 11: done, can ask about mylarin dust again
-027-2.gat,104,39,0|script|Reid's Ghost|315,{
-
+027-2.gat,104,39,0|script|Reid's Ghost|315,
+{
set @Graveyard_Inn_MASK, NIBBLE_0_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_0_SHIFT;
diff --git a/world/map/npc/027-2/lover.txt b/world/map/npc/027-2/lover.txt
index 1a544158..354362b1 100644
--- a/world/map/npc/027-2/lover.txt
+++ b/world/map/npc/027-2/lover.txt
@@ -9,8 +9,8 @@
// state 6: waiting for youl, if @golbanez >= 7 got it, giving sorcerer robe
// state 7: done
-027-2.gat,43,73,0|script|Savaric|317,{
-
+027-2.gat,43,73,0|script|Savaric|317,
+{
set @Graveyard_Inn_MASK, NIBBLE_1_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_1_SHIFT;
diff --git a/world/map/npc/027-2/testnpcs.txt b/world/map/npc/027-2/testnpcs.txt
index 48f85a95..88d762e3 100644
--- a/world/map/npc/027-2/testnpcs.txt
+++ b/world/map/npc/027-2/testnpcs.txt
@@ -1,6 +1,7 @@
//several NPCs in the Reid's Inn
-027-2.gat,80,34,0|script|Lovers|303,{
+027-2.gat,80,34,0|script|Lovers|303,
+{
mes "You see a man and a woman holding each other very tight.";
next;
mes "They are kissing and whispering things to each other you can't hear.";
@@ -11,7 +12,8 @@
close;
}
-027-2.gat,75,29,0|script|Archibald|306,{
+027-2.gat,75,29,0|script|Archibald|306,
+{
//the broken grammar is intentional
mes "[Archibald]";
mes "\"Me need to prepare the food. Me helping the chef cook.\"";
@@ -20,7 +22,8 @@
close;
}
-027-2.gat,77,40,0|script|Darnel|308,{
+027-2.gat,77,40,0|script|Darnel|308,
+{
set @drunker, rand(4);
if (@drunker == 0) goto L_0;
if (@drunker == 1) goto L_1;
@@ -49,7 +52,8 @@ L_Close:
close;
}
-027-2.gat,110,23,0|script|Nigel|312,{
+027-2.gat,110,23,0|script|Nigel|312,
+{
mes "[Nigel]";
mes "\"Ohh... My head is killing me! I have to stop "
+ "drinking too much or I will lose my job... But "
diff --git a/world/map/npc/027-2/werewolf.txt b/world/map/npc/027-2/werewolf.txt
index 9c7c4468..c3187e92 100644
--- a/world/map/npc/027-2/werewolf.txt
+++ b/world/map/npc/027-2/werewolf.txt
@@ -1,6 +1,7 @@
// author: Jenalya
-027-2.gat,118,23,0|script|Wolfgang|305,{
+027-2.gat,118,23,0|script|Wolfgang|305,
+{
set @Graveyard_Inn_MASK, NIBBLE_5_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_5_SHIFT;
diff --git a/world/map/npc/027-3/_mobs.txt b/world/map/npc/027-3/_mobs.txt
index 754846e5..35f136e0 100644
--- a/world/map/npc/027-3/_mobs.txt
+++ b/world/map/npc/027-3/_mobs.txt
@@ -3,6 +3,7 @@
-027-3.gat,0,0,0|script|Mob027-3|-1,{
+027-3.gat,0,0,0|script|Mob027-3|-1,
+{
end;
}
diff --git a/world/map/npc/027-3/caskets.txt b/world/map/npc/027-3/caskets.txt
index 3531e2ee..b941195d 100644
--- a/world/map/npc/027-3/caskets.txt
+++ b/world/map/npc/027-3/caskets.txt
@@ -1,5 +1,6 @@
// Casket monster traps and key puzzle.
-027-3.gat,40,35,0|script|#casket1|400,1,1{
+027-3.gat,40,35,0|script|#casket1|400,1,1
+{
heal 3,0;
specialeffect 301;
specialeffect 302;
diff --git a/world/map/npc/027-3/entrance.txt b/world/map/npc/027-3/entrance.txt
index 490769a1..5449a12c 100644
--- a/world/map/npc/027-3/entrance.txt
+++ b/world/map/npc/027-3/entrance.txt
@@ -1,6 +1,7 @@
// 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|400,2,1{
+027-3.gat,40,57,0|script|#gatecontrol|400,2,1
+{
mes "Once you pass this point I cannot warp anyone else to help. "
+ "Are you sure you are ready to go?";
menu
@@ -22,17 +23,20 @@ OnTimer2000:
end;
}
-027-3.gat,40,59,0|script|#closedgate|322,{
+027-3.gat,40,59,0|script|#closedgate|322,
+{
end;
}
-027-3.gat,40,59,0|script|#opengate|323,{
+027-3.gat,40,59,0|script|#opengate|323,
+{
end;
}
// Effects for the exit.
-027-3.gat,40,78,0|script|#cryptexit2|400,3,3{
+027-3.gat,40,78,0|script|#cryptexit2|400,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"
diff --git a/world/map/npc/027-4/_mobs.txt b/world/map/npc/027-4/_mobs.txt
index 091b48ac..ae73e143 100644
--- a/world/map/npc/027-4/_mobs.txt
+++ b/world/map/npc/027-4/_mobs.txt
@@ -3,6 +3,7 @@
-027-4.gat,0,0,0|script|Mob027-4|-1,{
+027-4.gat,0,0,0|script|Mob027-4|-1,
+{
end;
}
diff --git a/world/map/npc/027-4/reaper_script.txt b/world/map/npc/027-4/reaper_script.txt
index 38ee6fc3..a67e7c75 100644
--- a/world/map/npc/027-4/reaper_script.txt
+++ b/world/map/npc/027-4/reaper_script.txt
@@ -1,6 +1,7 @@
// The scripts associated with the reaper mob summoned by Alacrius in the 027-2
-027-4.gat,0,0,0|script|Reaper|-1,{
+027-4.gat,0,0,0|script|Reaper|-1,
+{
OnDead:
mes "you won!";
mapwarp "027-4.gat", "027-2.gat",104,41;
diff --git a/world/map/npc/028-1/Portal.txt b/world/map/npc/028-1/Portal.txt
index f6598146..68826cde 100644
--- a/world/map/npc/028-1/Portal.txt
+++ b/world/map/npc/028-1/Portal.txt
@@ -1,5 +1,5 @@
-028-1.gat,69,71,0|script|Portal#_M|400,{
-
+028-1.gat,69,71,0|script|Portal#_M|400,
+{
if (isin("028-1.gat",65,67,73,73)) goto L_Main;
mes "There is something there, but you aren't quite close enough to see exactly what it is.";
close;
diff --git a/world/map/npc/028-1/_mobs.txt b/world/map/npc/028-1/_mobs.txt
index 0ca1da2c..6e056048 100644
--- a/world/map/npc/028-1/_mobs.txt
+++ b/world/map/npc/028-1/_mobs.txt
@@ -15,7 +15,8 @@
028-1.gat,60,45,1,1|monster|Fallen|1045,1,700000,300000,Mob028-1::On1045
-028-1.gat,0,0,0|script|Mob028-1|-1,{
+028-1.gat,0,0,0|script|Mob028-1|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/028-3/_mobs.txt b/world/map/npc/028-3/_mobs.txt
index 4c74a41a..79accc01 100644
--- a/world/map/npc/028-3/_mobs.txt
+++ b/world/map/npc/028-3/_mobs.txt
@@ -7,7 +7,8 @@
028-3.gat,50,49,61,60|monster|Bat|1017,10,60000,10000,Mob028-3::On1017
-028-3.gat,0,0,0|script|Mob028-3|-1,{
+028-3.gat,0,0,0|script|Mob028-3|-1,
+{
On1013:
set @mobID, 1013;
callfunc "MobPoints";
diff --git a/world/map/npc/029-1/_mobs.txt b/world/map/npc/029-1/_mobs.txt
index 50ba01a1..e0577f4e 100644
--- a/world/map/npc/029-1/_mobs.txt
+++ b/world/map/npc/029-1/_mobs.txt
@@ -9,7 +9,8 @@
029-1.gat,59,51,13,9|monster|LogHead|1025,2,25000,30000,Mob029-1::On1025
-029-1.gat,0,0,0|script|Mob029-1|-1,{
+029-1.gat,0,0,0|script|Mob029-1|-1,
+{
On1013:
set @mobID, 1013;
callfunc "MobPoints";
diff --git a/world/map/npc/029-1/barrier.txt b/world/map/npc/029-1/barrier.txt
index 54ef3878..0ed76d2d 100644
--- a/world/map/npc/029-1/barrier.txt
+++ b/world/map/npc/029-1/barrier.txt
@@ -1,4 +1,5 @@
-029-1.gat,54,37,0|script|#CandorBarrier|45,0,0,{
+029-1.gat,54,37,0|script|#CandorBarrier|45,0,0,
+{
if ($@FIGHT_CAVE_STATUS == 1) goto L_Block;
warp "029-3.gat", 46, 23;
end;
diff --git a/world/map/npc/029-1/dock.txt b/world/map/npc/029-1/dock.txt
index dbc9449d..cf5dd795 100644
--- a/world/map/npc/029-1/dock.txt
+++ b/world/map/npc/029-1/dock.txt
@@ -1,6 +1,7 @@
// The ferry dock
-029-1.gat,22,37,0|script|#candordock|45,2,1,{
+029-1.gat,22,37,0|script|#candordock|45,2,1,
+{
set @loc, DOCK_candor;
callfunc "Ferry";
}
diff --git a/world/map/npc/029-3/_mobs.txt b/world/map/npc/029-3/_mobs.txt
index f830bb2d..f321a294 100644
--- a/world/map/npc/029-3/_mobs.txt
+++ b/world/map/npc/029-3/_mobs.txt
@@ -3,6 +3,7 @@
-029-3.gat,0,0,0|script|Mob029-3|-1,{
+029-3.gat,0,0,0|script|Mob029-3|-1,
+{
end;
}
diff --git a/world/map/npc/029-3/barrier.txt b/world/map/npc/029-3/barrier.txt
index bfd4e3be..1e383ced 100644
--- a/world/map/npc/029-3/barrier.txt
+++ b/world/map/npc/029-3/barrier.txt
@@ -1,4 +1,5 @@
-029-3.gat,46,21,0|script|#FightCaveBarrier|45,0,0,{
+029-3.gat,46,21,0|script|#FightCaveBarrier|45,0,0,
+{
if ($@FIGHT_CAVE_STATUS == 1) goto L_Block;
warp "029-1.gat", 54, 39;
end;
diff --git a/world/map/npc/029-3/parua.txt b/world/map/npc/029-3/parua.txt
index 837e913a..41b5d79c 100644
--- a/world/map/npc/029-3/parua.txt
+++ b/world/map/npc/029-3/parua.txt
@@ -1,5 +1,6 @@
// Parua's fight
-029-3.gat,50,25,0|script|Parua|183,{
+029-3.gat,50,25,0|script|Parua|183,
+{
if ($@FIGHT_CAVE_STATUS == 1) goto L_Enjoy;
if ($@FIGHT_CAVE_STATUS >= 2) goto L_Wait;
mes "[Parua]";
@@ -138,7 +139,7 @@ OnTimer5000:
L_Return_1:
set $@FIGHT_CAVE_PLAYER_COUNT, 0;
- areatimer "029-3.gat", 20, 20, 70, 60, 10, "Parua::onTick";
+ areatimer "029-3.gat", 20, 20, 70, 60, 10, "Parua::OnTick";
end;
L_CaveLogic:
@@ -148,7 +149,7 @@ L_CaveLogic:
if ($@FIGHT_CAVE_PLAYER_COUNT <= 0)
goto L_CleanUp;
set $@FIGHT_CAVE_ROUND_TIMER, $@FIGHT_CAVE_ROUND_TIMER + 5; // Advance 5 seconds
- if (mobcount("029-3.gat", "Parua::onPetDeath") <= 0)
+ if (mobcount("029-3.gat", "Parua::OnPetDeath") <= 0)
goto L_NextRound;
if ($@FIGHT_CAVE_ROUND_TIMER + $@FIGHT_CAVE_ROUND_PEN >= 120)
goto L_NextRound;
@@ -166,7 +167,7 @@ L_NextRound:
goto L_CleanUp;
set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_LEVEL;
- areatimer "029-3.gat", 20, 20, 70, 60, 10, "Parua::onNewRound";
+ areatimer "029-3.gat", 20, 20, 70, 60, 10, "Parua::OnNewRound";
mapannounce "029-1.gat", "Parua: The next round (level " + $@FIGHT_CAVE_LEVEL + ") is starting with " + $@FIGHT_CAVE_PLAYER_COUNT + " player(s) left alive." , 0;
mapannounce "029-3.gat", "Parua: The next round (level " + $@FIGHT_CAVE_LEVEL + ") is starting with " + $@FIGHT_CAVE_PLAYER_COUNT + " player(s) left alive." , 0;
@@ -232,47 +233,47 @@ L_Fifteen_Minutes:
L_MOB1:
set $@MOB_1_SUMMON, $@MOB_1_SUMMON + 1;
set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 243;
- areamonster "029-3.gat", 20, 20, 70, 60, "", 1022, 1, "Parua::onPetDeath";
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1022, 1, "Parua::OnPetDeath";
goto L_Summon;
L_MOB2:
set $@MOB_2_SUMMON, $@MOB_2_SUMMON + 1;
set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 81;
- areamonster "029-3.gat", 20, 20, 70, 60, "", 1045, 1, "Parua::onPetDeath";
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1045, 1, "Parua::OnPetDeath";
goto L_Summon;
L_MOB3:
set $@MOB_3_SUMMON, $@MOB_3_SUMMON + 1;
set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 27;
- areamonster "029-3.gat", 20, 20, 70, 60, "", 1024, 1, "Parua::onPetDeath";
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1024, 1, "Parua::OnPetDeath";
goto L_Summon;
L_MOB4:
set $@MOB_4_SUMMON, $@MOB_4_SUMMON + 1;
set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 9;
- areamonster "029-3.gat", 20, 20, 70, 60, "", 1043, 1, "Parua::onPetDeath";
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1043, 1, "Parua::OnPetDeath";
goto L_Summon;
L_MOB5:
set $@MOB_5_SUMMON, $@MOB_5_SUMMON + 1;
set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 3;
- areamonster "029-3.gat", 20, 20, 70, 60, "", 1010, 1, "Parua::onPetDeath";
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1010, 1, "Parua::OnPetDeath";
goto L_Summon;
L_MOB6:
set $@MOB_6_SUMMON, $@MOB_6_SUMMON + 1;
set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 1;
- areamonster "029-3.gat", 20, 20, 70, 60, "", 1008, 1, "Parua::onPetDeath";
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1008, 1, "Parua::OnPetDeath";
goto L_Summon;
// Called on each player once every 5 seconds
-onTick:
+OnTick:
if (isdead()) end;
set $@FIGHT_CAVE_PLAYER_COUNT, $@FIGHT_CAVE_PLAYER_COUNT + 1;
end;
// called on each player when a new round begins
-onNewRound:
+OnNewRound:
if (isdead())
end;
if ($@FIGHT_CAVE_LEVEL < 600)
@@ -289,22 +290,23 @@ onNewRound:
message strcharinfo(0), "The evil energy of this place hurts you. You should keep moving!";
end;
-onPetDeath:
+OnPetDeath:
end;
-onInit:
+OnInit:
+ if (debug >= 2) end;
initnpctimer;
stopnpctimer;
L_CleanUp:
npctalk "Game Over";
mapannounce "029-1.gat", "Parua: The dungeon is now ready for its next victims.", 0;
- areatimer "029-3.gat", 20, 20, 70, 60, 10, "Parua::onReward";
+ areatimer "029-3.gat", 20, 20, 70, 60, 10, "Parua::OnReward";
set $@FIGHT_CAVE_STATUS, 0;
set $@FIGHT_CAVE_PLAYER_COUNT, 0;
set $@FIGHT_CAVE_LEVEL, 1;
set $@FIGHT_CAVE_ROUND_TIMER, 0;
- killmonster "029-3.gat", "Parua::onPetDeath";
+ killmonster "029-3.gat", "Parua::OnPetDeath";
stopnpctimer;
setnpctimer 0;
end;
@@ -334,7 +336,7 @@ L_IdleCheckPassed:
//set @candor_idle_counter, 0;
end;
-onReward:
+OnReward:
if (isdead())
end;
set BOSS_POINTS, BOSS_POINTS + 100;
diff --git a/world/map/npc/030-1/_mobs.txt b/world/map/npc/030-1/_mobs.txt
index 868a9a32..62ab5d53 100644
--- a/world/map/npc/030-1/_mobs.txt
+++ b/world/map/npc/030-1/_mobs.txt
@@ -6,7 +6,8 @@
030-1.gat,0,0,0,0|monster|WhiteBell|1095,4,100000,30000,Mob030-1::On1095
-030-1.gat,0,0,0|script|Mob030-1|-1,{
+030-1.gat,0,0,0|script|Mob030-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/030-2/_mobs.txt b/world/map/npc/030-2/_mobs.txt
index 29bcc3c9..3a475565 100644
--- a/world/map/npc/030-2/_mobs.txt
+++ b/world/map/npc/030-2/_mobs.txt
@@ -3,6 +3,7 @@
-030-2.gat,0,0,0|script|Mob030-2|-1,{
+030-2.gat,0,0,0|script|Mob030-2|-1,
+{
end;
}
diff --git a/world/map/npc/031-1/_import.txt b/world/map/npc/031-1/_import.txt
index c8de7af8..7a1fc1cb 100644
--- a/world/map/npc/031-1/_import.txt
+++ b/world/map/npc/031-1/_import.txt
@@ -4,5 +4,6 @@ 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/dock.txt
npc: npc/031-1/frozenbeard.txt
npc: npc/031-1/house.txt
diff --git a/world/map/npc/031-1/_mobs.txt b/world/map/npc/031-1/_mobs.txt
index 690b0456..829254ec 100644
--- a/world/map/npc/031-1/_mobs.txt
+++ b/world/map/npc/031-1/_mobs.txt
@@ -7,7 +7,8 @@
031-1.gat,0,0,0,0|monster|WhiteBell|1095,4,100000,30000,Mob031-1::On1095
-031-1.gat,0,0,0|script|Mob031-1|-1,{
+031-1.gat,0,0,0|script|Mob031-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/031-1/angelaOutside.txt b/world/map/npc/031-1/angelaOutside.txt
index 5e7017a8..c7384dae 100644
--- a/world/map/npc/031-1/angelaOutside.txt
+++ b/world/map/npc/031-1/angelaOutside.txt
@@ -4,8 +4,8 @@
// state2 and state3: Cindy is saved Angela invites you to visit them for giving a reward
// state greater than 3: Angela invites and asks you to bring present boxes
-031-1.gat,79,24,0|script|Angela|195,{
-
+031-1.gat,79,24,0|script|Angela|195,
+{
set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
diff --git a/world/map/npc/031-1/dock.txt b/world/map/npc/031-1/dock.txt
new file mode 100644
index 00000000..d566c600
--- /dev/null
+++ b/world/map/npc/031-1/dock.txt
@@ -0,0 +1,7 @@
+// The ferry dock
+
+031-1.gat,105,109,0|script|#nivalisdock|45,6,1,
+{
+ set @loc, DOCK_nivalis;
+ callfunc "Ferry";
+}
diff --git a/world/map/npc/031-1/frozenbeard.txt b/world/map/npc/031-1/frozenbeard.txt
index c75d6f16..19ad560d 100644
--- a/world/map/npc/031-1/frozenbeard.txt
+++ b/world/map/npc/031-1/frozenbeard.txt
@@ -1,6 +1,7 @@
//
-031-1.gat,97,115,0|script|Frozenbeard|138,{
+031-1.gat,96,113,0|script|Frozenbeard|138,
+{
// if (QUEST_Easter12 == 2 && ((gettime(6) == 3 && gettime(5) >= $@easter2012_start_day) || (gettime(6) == 4 && gettime(5) < $@easter2012_reward_start_day)))
// menu
// "I need to find a way to go back home, can you help me?", L_Frozenbeard_Default,
@@ -8,29 +9,7 @@
L_Frozenbeard_Default:
mes "[Frozenbeard]";
- mes "\"Arrr mate! There is no dock here, so I had to row boat from my ship! I am pioneering and mapping the trade route between here and Argaes, around the Hurnscald area. I'll hail my shipmates to send a boat and we'll sail out to Argaes, be there in no time, but it will cost you a fee. 500 gold pieces. What do you say?";
- menu
- "Sure. (500 GP)", L_Frozenbeard_Argaes,
- "Not right now.", L_Frozenbeard_Stay;
- close;
-
-L_Frozenbeard_Argaes:
- if (Zeny < 500)
- goto L_NoMoney;
- mes "[Frozenbeard]";
- mes "\"Pleasant Journeys!\"";
- set Zeny, Zeny-500;
- warp "008-1.gat",137,64;
- close;
-
-L_Frozenbeard_Stay:
- mes "[Frozenbeard]";
- mes "\"Suit yourself. Feel free to come out here anytime, I am really busy making sure these routes are accurate.\"";
- close;
-
-L_NoMoney:
- mes "[Frozenbeard]";
- mes "\"You need more money. I'll wait here while you get some.\"";
+ mes "\"Arrr mate! I'm glad there's a dock here, so I don't have to row boat from my ship anymore! I pioneered the trade routes between Nivalis and the rest of the World, so now merchants and adventurers can travel to and fro without any hassle other than the harsh weather up here, yarr.\"";
close;
// lines below here belong to Easter 2012
diff --git a/world/map/npc/031-1/house.txt b/world/map/npc/031-1/house.txt
index b35d816f..3d250e4e 100644
--- a/world/map/npc/031-1/house.txt
+++ b/world/map/npc/031-1/house.txt
@@ -2,7 +2,8 @@
// player can enter, if Cindy is already saved and the player has been invited, quest status > 2
// author: Jenalya
-031-1.gat,95,80,0|script|#Door|45,0,0,{
+031-1.gat,95,80,0|script|#Door|45,0,0,
+{
set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
diff --git a/world/map/npc/031-2/_mobs.txt b/world/map/npc/031-2/_mobs.txt
index 8cc0875e..d942f137 100644
--- a/world/map/npc/031-2/_mobs.txt
+++ b/world/map/npc/031-2/_mobs.txt
@@ -3,6 +3,7 @@
-031-2.gat,0,0,0|script|Mob031-2|-1,{
+031-2.gat,0,0,0|script|Mob031-2|-1,
+{
end;
}
diff --git a/world/map/npc/031-2/angelaHouse.txt b/world/map/npc/031-2/angelaHouse.txt
index 4960a5f1..03b1b7c7 100644
--- a/world/map/npc/031-2/angelaHouse.txt
+++ b/world/map/npc/031-2/angelaHouse.txt
@@ -3,8 +3,8 @@
// state3: it's your first visit, you can choose a reward
// state4: you can do daily quests with white and yellow presents boxes
-031-2.gat,29,28,0|script|Angela|196,{
-
+031-2.gat,29,28,0|script|Angela|196,
+{
set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
diff --git a/world/map/npc/031-2/cindyHouse.txt b/world/map/npc/031-2/cindyHouse.txt
index 13db7106..ba8c3005 100644
--- a/world/map/npc/031-2/cindyHouse.txt
+++ b/world/map/npc/031-2/cindyHouse.txt
@@ -2,8 +2,8 @@
// state0,1,2: you shouldn't be able to reach this place
// state3 and greater: Cindy is saved, she says one of some random phrases
-031-2.gat,27,26,0|script|Cindy|197, {
-
+031-2.gat,27,26,0|script|Cindy|197,
+{
set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
diff --git a/world/map/npc/031-3/_mobs.txt b/world/map/npc/031-3/_mobs.txt
index a73d190f..4fdd83b6 100644
--- a/world/map/npc/031-3/_mobs.txt
+++ b/world/map/npc/031-3/_mobs.txt
@@ -92,7 +92,8 @@
031-3.gat,52,285,14,9|monster|BlueSlime|1091,2,100000,30000,Mob031-3::On1091
-031-3.gat,0,0,0|script|Mob031-3|-1,{
+031-3.gat,0,0,0|script|Mob031-3|-1,
+{
On1017:
set @mobID, 1017;
callfunc "MobPoints";
diff --git a/world/map/npc/031-3/labyrinth.txt b/world/map/npc/031-3/labyrinth.txt
index 39a8ba90..ff9374b1 100644
--- a/world/map/npc/031-3/labyrinth.txt
+++ b/world/map/npc/031-3/labyrinth.txt
@@ -1,7 +1,8 @@
// Conditional warp for yeti cave
// Authors: Jenalya
-031-3.gat,46,24,0|script|#YetiBarrier|45,0,0,{
+031-3.gat,46,24,0|script|#YetiBarrier|45,0,0,
+{
if ($@FIGHT_YETI_STATUS == 1) goto L_Blocked;
warp "031-4.gat", 40, 70;
end;
diff --git a/world/map/npc/031-4/_mobs.txt b/world/map/npc/031-4/_mobs.txt
index 5bbd2f39..5bc52ad0 100644
--- a/world/map/npc/031-4/_mobs.txt
+++ b/world/map/npc/031-4/_mobs.txt
@@ -3,6 +3,7 @@
-031-4.gat,0,0,0|script|Mob031-4|-1,{
+031-4.gat,0,0,0|script|Mob031-4|-1,
+{
end;
}
diff --git a/world/map/npc/031-4/barrier.txt b/world/map/npc/031-4/barrier.txt
index 83daffd7..e8401ba8 100644
--- a/world/map/npc/031-4/barrier.txt
+++ b/world/map/npc/031-4/barrier.txt
@@ -1,4 +1,5 @@
-031-4.gat,40,71,0|script|#YetiBarrier|45,0,0,{
+031-4.gat,40,71,0|script|#YetiBarrier|45,0,0,
+{
if ($@FIGHT_YETI_STATUS == 1) goto L_Block;
warp "031-3.gat", 46, 25;
end;
diff --git a/world/map/npc/031-4/cindyCave.txt b/world/map/npc/031-4/cindyCave.txt
index ef84a33f..6c03e951 100644
--- a/world/map/npc/031-4/cindyCave.txt
+++ b/world/map/npc/031-4/cindyCave.txt
@@ -4,7 +4,8 @@
// state2: Cindy is saved, she gives you a reward (wizard hat or wooden staff)
// state3: and greater: Cindy is saved, she asks you to visit them
-031-4.gat,42,42,0|script|Cindy|198, {
+031-4.gat,42,42,0|script|Cindy|198,
+{
if ($@FIGHT_YETI_STATUS != 0) goto L_Yeti;
set @KEYS_AMOUNT, 10;
@@ -63,7 +64,7 @@ L_Try_Cage:
set $@FIGHT_YETI_WAVE, 0;
set $@YETI_COUNT, 1;
set $@FIGHT_YETI_PLAYER_COUNT, getmapusers("031-4.gat");
- areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, 1, "Cindy::onPetDeath";
+ areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, 1, "Cindy::OnPetDeath";
initnpctimer;
goto L_Close;
@@ -141,7 +142,7 @@ OnTimer5000:
L_Return_1:
set $@FIGHT_YETI_PLAYER_COUNT, 0;
- areatimer "031-4.gat", 0, 0, 95, 91, 10, "Cindy::onTick";
+ areatimer "031-4.gat", 0, 0, 95, 91, 10, "Cindy::OnTick";
end;
L_CaveLogic:
@@ -151,7 +152,7 @@ L_CaveLogic:
if ($@FIGHT_YETI_PLAYER_COUNT <= 0)
goto L_CleanUp;
set $@FIGHT_YETI_ROUND_TIMER, $@FIGHT_YETI_ROUND_TIMER + 5; // Advance 5 seconds
- if (mobcount("031-4.gat", "Cindy::onPetDeath") < 0)
+ if (mobcount("031-4.gat", "Cindy::OnPetDeath") < 0)
goto L_NextWave;
if ($@FIGHT_YETI_ROUND_TIMER + $@FIGHT_YETI_ROUND_PEN >= 120)
goto L_NextWave;
@@ -167,13 +168,13 @@ L_NextWave:
&& $@FIGHT_YETI_WAVE < 22)
goto L_Return_1;
if ($@FIGHT_YETI_WAVE > 22)
- areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5, "Cindy::onPetDeath";
+ areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5, "Cindy::OnPetDeath";
if ($@FIGHT_YETI_WAVE > 22)
set $@YETI_COUNT, $@YETI_COUNT + $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5;
set $@FIGHT_YETI_NUMBER, (5 + (1 * $@FIGHT_YETI_WAVE) + (2 * $@FIGHT_YETI_PLAYER_COUNT))/4;
set $@YETI_COUNT, $@YETI_COUNT + $@FIGHT_YETI_NUMBER;
- areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_NUMBER, "Cindy::onPetDeath";
+ areamonster "031-4.gat", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_NUMBER, "Cindy::OnPetDeath";
if ($@FIGHT_YETI_WAVE == 1)
mapannounce "031-4.gat", "Cindy: Yetis!", 0;
@@ -220,17 +221,17 @@ L_NextWave:
goto L_Return_1;
// Called on each player once every 5 seconds
-onTick:
+OnTick:
if (isdead()) end;
set $@FIGHT_YETI_PLAYER_COUNT, $@FIGHT_YETI_PLAYER_COUNT + 1;
end;
-onPetDeath:
+OnPetDeath:
set $@YETI_COUNT, $@YETI_COUNT - 1;
end;
L_CleanUp:
- areatimer "031-4.gat", 0, 0, 95, 91, 10, "Cindy::onReward";
+ areatimer "031-4.gat", 0, 0, 95, 91, 10, "Cindy::OnReward";
set $@FIGHT_YETI_STATUS, 0;
set $@FIGHT_YETI_PLAYER_COUNT, 0;
set $@FIGHT_YETI_WAVE, 0;
@@ -238,12 +239,12 @@ L_CleanUp:
set $@YETI_COUNT, 0;
set $@FIGHT_YETI_ROUND_PEN, 0;
set $@FIGHT_YETI_NUMBER, 0;
- killmonster "031-4.gat", "Cindy::onPetDeath";
+ killmonster "031-4.gat", "Cindy::OnPetDeath";
stopnpctimer;
setnpctimer 0;
end;
-onReward:
+OnReward:
if (isdead()) end;
set @bonus, (BaseLevel/2);
set DailyQuestBonus, DailyQuestBonus + @bonus;
diff --git a/world/map/npc/032-1/_mobs.txt b/world/map/npc/032-1/_mobs.txt
index dc68e34b..8d879b0d 100644
--- a/world/map/npc/032-1/_mobs.txt
+++ b/world/map/npc/032-1/_mobs.txt
@@ -8,7 +8,8 @@
032-1.gat,77,76,34,27|monster|Snake|1010,13,30000,100000,Mob032-1::On1010
-032-1.gat,0,0,0|script|Mob032-1|-1,{
+032-1.gat,0,0,0|script|Mob032-1|-1,
+{
On1009:
set @mobID, 1009;
callfunc "MobPoints";
diff --git a/world/map/npc/032-1/miriam.txt b/world/map/npc/032-1/miriam.txt
index 247a2a8b..f812454f 100644
--- a/world/map/npc/032-1/miriam.txt
+++ b/world/map/npc/032-1/miriam.txt
@@ -18,8 +18,8 @@
// after you gained the speed skill, all variables are reset to zero.
//#############################################
-032-1.gat,55,20,0|script|Miriam|175,{
-
+032-1.gat,55,20,0|script|Miriam|175,
+{
if (getskilllv(SKILL_SPEED)) goto L_fast;
if (getequipid(equip_torso) < 0) goto L_naked;
if (QUEST_MIRIAM == 0) goto L_intro;
diff --git a/world/map/npc/032-3/_mobs.txt b/world/map/npc/032-3/_mobs.txt
index 05ff2049..6c04eda2 100644
--- a/world/map/npc/032-3/_mobs.txt
+++ b/world/map/npc/032-3/_mobs.txt
@@ -13,7 +13,8 @@
032-3.gat,0,0,0,0|monster|Bat|1017,25,30000,100000,Mob032-3::On1017
-032-3.gat,0,0,0|script|Mob032-3|-1,{
+032-3.gat,0,0,0|script|Mob032-3|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/033-1/_mobs.txt b/world/map/npc/033-1/_mobs.txt
index 560442e6..30ad6b12 100644
--- a/world/map/npc/033-1/_mobs.txt
+++ b/world/map/npc/033-1/_mobs.txt
@@ -7,7 +7,8 @@
033-1.gat,0,0,0,0|monster|WhiteBell|1095,3,100000,30000,Mob033-1::On1095
-033-1.gat,0,0,0|script|Mob033-1|-1,{
+033-1.gat,0,0,0|script|Mob033-1|-1,
+{
On1038:
set @mobID, 1038;
callfunc "MobPoints";
diff --git a/world/map/npc/033-1/backDoor.txt b/world/map/npc/033-1/backDoor.txt
index d7f48567..9f40bb5c 100644
--- a/world/map/npc/033-1/backDoor.txt
+++ b/world/map/npc/033-1/backDoor.txt
@@ -1,4 +1,5 @@
-033-1.gat,86,28,0|script|#KimarrBackDoor|45,0,0,{
+033-1.gat,86,28,0|script|#KimarrBackDoor|45,0,0,
+{
if ($@Fluffy_Hunting == 0)
goto L_Warp;
end;
diff --git a/world/map/npc/033-1/barbarianinit.txt b/world/map/npc/033-1/barbarianinit.txt
index 3307ac0f..09c7b1f0 100644
--- a/world/map/npc/033-1/barbarianinit.txt
+++ b/world/map/npc/033-1/barbarianinit.txt
@@ -1,4 +1,5 @@
--|script|#barbarian033_1init|-1,{
+-|script|#barbarian033_1init|-1,
+{
OnInit:
set $@Q_Barbarians_MASK, NIBBLE_0_MASK;
set $@Q_Barbarians_SHIFT, NIBBLE_0_SHIFT;
diff --git a/world/map/npc/033-1/birrod.txt b/world/map/npc/033-1/birrod.txt
index 106ca056..b2af19a0 100644
--- a/world/map/npc/033-1/birrod.txt
+++ b/world/map/npc/033-1/birrod.txt
@@ -1,5 +1,5 @@
-033-1.gat,72,27,0|script|Birrod|217,{
-
+033-1.gat,72,27,0|script|Birrod|217,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
set @wolvern_level, 40; // minimum level to do the wolvern hunting
diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt
index 9365060e..6614f273 100644
--- a/world/map/npc/033-1/kimarr.txt
+++ b/world/map/npc/033-1/kimarr.txt
@@ -32,7 +32,8 @@
// that's the only reason I didn't make that one a local variable like it really is
-033-1.gat,74,32,0|script|Kimarr|218,{
+033-1.gat,74,32,0|script|Kimarr|218,
+{
if ($@Fluffy_FighterID == getcharid(3))
goto L_Attention;
diff --git a/world/map/npc/033-1/yerrnk.txt b/world/map/npc/033-1/yerrnk.txt
index 5e996bd1..c2ae904b 100644
--- a/world/map/npc/033-1/yerrnk.txt
+++ b/world/map/npc/033-1/yerrnk.txt
@@ -1,4 +1,5 @@
-033-1.gat,66,28,0|script|Yerrnk|216,{
+033-1.gat,66,28,0|script|Yerrnk|216,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
set @yeti_level, 70;
diff --git a/world/map/npc/034-1/_mobs.txt b/world/map/npc/034-1/_mobs.txt
index b6137fa8..f5b2d0ee 100644
--- a/world/map/npc/034-1/_mobs.txt
+++ b/world/map/npc/034-1/_mobs.txt
@@ -7,7 +7,8 @@
034-1.gat,0,0,0,0|monster|Squirrel|1038,50,100000,30000,Mob034-1::On1038
-034-1.gat,0,0,0|script|Mob034-1|-1,{
+034-1.gat,0,0,0|script|Mob034-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/034-1/ambushs.txt b/world/map/npc/034-1/ambushs.txt
index a1aa8a69..787e99ad 100644
--- a/world/map/npc/034-1/ambushs.txt
+++ b/world/map/npc/034-1/ambushs.txt
@@ -1,7 +1,8 @@
// This file belongs to the wolvern hunting quest given by 033-1/birrod.txt
// Author: Jenalya, cody, PjotrOrial
-034-1.gat,118,59,0|script|#Ambush0Trigger|32767,2,2,{
+034-1.gat,118,59,0|script|#Ambush0Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -20,7 +21,8 @@
end;
}
-034-1.gat,118,59,0|script|#Ambush0|32767,{
+034-1.gat,118,59,0|script|#Ambush0|32767,
+{
end;
OnAmbush:
@@ -57,7 +59,8 @@ L_Count:
}
-034-1.gat,94,91,0|script|#Ambush1Trigger|32767,2,2,{
+034-1.gat,94,91,0|script|#Ambush1Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -76,7 +79,8 @@ L_Count:
end;
}
-034-1.gat,94,91,0|script|#Ambush1|32767,{
+034-1.gat,94,91,0|script|#Ambush1|32767,
+{
end;
OnAmbush:
@@ -113,7 +117,8 @@ L_Count:
}
-034-1.gat,122,35,0|script|#Ambush2Trigger|32767,2,2,{
+034-1.gat,122,35,0|script|#Ambush2Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -132,7 +137,8 @@ L_Count:
end;
}
-034-1.gat,122,35,0|script|#Ambush2|32767,{
+034-1.gat,122,35,0|script|#Ambush2|32767,
+{
end;
OnAmbush:
@@ -169,7 +175,8 @@ L_Count:
}
-034-1.gat,83,44,0|script|#Ambush3Trigger|32767,2,2,{
+034-1.gat,83,44,0|script|#Ambush3Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -188,7 +195,8 @@ L_Count:
end;
}
-034-1.gat,83,44,0|script|#Ambush3|32767,{
+034-1.gat,83,44,0|script|#Ambush3|32767,
+{
end;
OnAmbush:
@@ -225,7 +233,8 @@ L_Count:
}
-034-1.gat,74,28,0|script|#Ambush4Trigger|32767,2,2,{
+034-1.gat,74,28,0|script|#Ambush4Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -244,7 +253,8 @@ L_Count:
end;
}
-034-1.gat,74,28,0|script|#Ambush4|32767,{
+034-1.gat,74,28,0|script|#Ambush4|32767,
+{
end;
OnAmbush:
@@ -281,7 +291,8 @@ L_Count:
}
-034-1.gat,26,44,0|script|#Ambush5Trigger|32767,2,2,{
+034-1.gat,26,44,0|script|#Ambush5Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -300,7 +311,8 @@ L_Count:
end;
}
-034-1.gat,26,44,0|script|#Ambush5|32767,{
+034-1.gat,26,44,0|script|#Ambush5|32767,
+{
end;
OnAmbush:
@@ -337,7 +349,8 @@ L_Count:
}
-034-1.gat,50,47,0|script|#Ambush6Trigger|32767,2,2,{
+034-1.gat,50,47,0|script|#Ambush6Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -356,7 +369,8 @@ L_Count:
end;
}
-034-1.gat,50,47,0|script|#Ambush6|32767,{
+034-1.gat,50,47,0|script|#Ambush6|32767,
+{
end;
OnAmbush:
@@ -393,7 +407,8 @@ L_Count:
}
-034-1.gat,36,62,0|script|#Ambush7Trigger|32767,2,2,{
+034-1.gat,36,62,0|script|#Ambush7Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -412,7 +427,8 @@ L_Count:
end;
}
-034-1.gat,36,62,0|script|#Ambush7|32767,{
+034-1.gat,36,62,0|script|#Ambush7|32767,
+{
end;
OnAmbush:
@@ -449,7 +465,8 @@ L_Count:
}
-034-1.gat,26,95,0|script|#Ambush8Trigger|32767,2,2,{
+034-1.gat,26,95,0|script|#Ambush8Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -468,7 +485,8 @@ L_Count:
end;
}
-034-1.gat,26,95,0|script|#Ambush8|32767,{
+034-1.gat,26,95,0|script|#Ambush8|32767,
+{
end;
OnAmbush:
@@ -505,7 +523,8 @@ L_Count:
}
-034-1.gat,56,91,0|script|#Ambush9Trigger|32767,2,2,{
+034-1.gat,56,91,0|script|#Ambush9Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -524,7 +543,8 @@ L_Count:
end;
}
-034-1.gat,56,91,0|script|#Ambush9|32767,{
+034-1.gat,56,91,0|script|#Ambush9|32767,
+{
end;
OnAmbush:
@@ -561,7 +581,8 @@ L_Count:
}
-034-1.gat,65,66,0|script|#Ambush10Trigger|32767,2,2,{
+034-1.gat,65,66,0|script|#Ambush10Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -580,7 +601,8 @@ L_Count:
end;
}
-034-1.gat,65,66,0|script|#Ambush10|32767,{
+034-1.gat,65,66,0|script|#Ambush10|32767,
+{
end;
OnAmbush:
@@ -617,7 +639,8 @@ L_Count:
}
-034-1.gat,86,68,0|script|#Ambush11Trigger|32767,2,2,{
+034-1.gat,86,68,0|script|#Ambush11Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -636,7 +659,8 @@ L_Count:
end;
}
-034-1.gat,86,68,0|script|#Ambush11|32767,{
+034-1.gat,86,68,0|script|#Ambush11|32767,
+{
end;
OnAmbush:
@@ -673,7 +697,8 @@ L_Count:
}
-034-1.gat,101,79,0|script|#Ambush12Trigger|32767,2,2,{
+034-1.gat,101,79,0|script|#Ambush12Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -692,7 +717,8 @@ L_Count:
end;
}
-034-1.gat,101,79,0|script|#Ambush12|32767,{
+034-1.gat,101,79,0|script|#Ambush12|32767,
+{
end;
OnAmbush:
@@ -729,7 +755,8 @@ L_Count:
}
-034-1.gat,124,88,0|script|#Ambush13Trigger|32767,2,2,{
+034-1.gat,124,88,0|script|#Ambush13Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -748,7 +775,8 @@ L_Count:
end;
}
-034-1.gat,124,88,0|script|#Ambush13|32767,{
+034-1.gat,124,88,0|script|#Ambush13|32767,
+{
end;
OnAmbush:
@@ -785,7 +813,8 @@ L_Count:
}
-034-1.gat,117,103,0|script|#Ambush14Trigger|32767,2,2,{
+034-1.gat,117,103,0|script|#Ambush14Trigger|32767,2,2,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 4)
end;
@@ -804,7 +833,8 @@ L_Count:
end;
}
-034-1.gat,117,103,0|script|#Ambush14|32767,{
+034-1.gat,117,103,0|script|#Ambush14|32767,
+{
end;
OnAmbush:
diff --git a/world/map/npc/034-1/yetiSpawn.txt b/world/map/npc/034-1/yetiSpawn.txt
index 9c1b537a..ebf7b171 100644
--- a/world/map/npc/034-1/yetiSpawn.txt
+++ b/world/map/npc/034-1/yetiSpawn.txt
@@ -1,7 +1,8 @@
// This file belongs to the yeti hunting quest given by 033-1/yerrnk.txt
// Author: Jenalya
-034-1.gat,79,98,0|script|#Yerrnk_YetiTrigger|32767,1,3,{
+034-1.gat,79,98,0|script|#Yerrnk_YetiTrigger|32767,1,3,
+{
set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT);
if (@state != 7)
end;
@@ -14,7 +15,8 @@
end;
}
-034-1.gat,78,98,0|script|#Yerrnk_Yeti|32767,{
+034-1.gat,78,98,0|script|#Yerrnk_Yeti|32767,
+{
end;
OnYeti:
diff --git a/world/map/npc/034-2/_mobs.txt b/world/map/npc/034-2/_mobs.txt
index 9cabee2a..81fca6aa 100644
--- a/world/map/npc/034-2/_mobs.txt
+++ b/world/map/npc/034-2/_mobs.txt
@@ -3,6 +3,7 @@
-034-2.gat,0,0,0|script|Mob034-2|-1,{
+034-2.gat,0,0,0|script|Mob034-2|-1,
+{
end;
}
diff --git a/world/map/npc/041-1/_mobs.txt b/world/map/npc/041-1/_mobs.txt
index 9ae0a1c1..d53f9bd2 100644
--- a/world/map/npc/041-1/_mobs.txt
+++ b/world/map/npc/041-1/_mobs.txt
@@ -14,7 +14,8 @@
041-1.gat,83,64,18,9|monster|RedScorpion|1004,3,100000,30000,Mob041-1::On1004
-041-1.gat,0,0,0|script|Mob041-1|-1,{
+041-1.gat,0,0,0|script|Mob041-1|-1,
+{
On1003:
set @mobID, 1003;
callfunc "MobPoints";
diff --git a/world/map/npc/041-1/tutorial.txt b/world/map/npc/041-1/tutorial.txt
index 95a5e6e0..813df482 100644
--- a/world/map/npc/041-1/tutorial.txt
+++ b/world/map/npc/041-1/tutorial.txt
@@ -2,7 +2,8 @@
// Author: Jenalya
// if you enter the tutorial area, it is set to be already done
-041-1.gat,58,5,0|script|#tutorial|45,1,0{
+041-1.gat,58,5,0|script|#tutorial|45,1,0
+{
set FLAGS, FLAGS | FLAG_TUTORIAL_DONE;
warp "042-1.gat", 44, 143;
end;
diff --git a/world/map/npc/042-1/_mobs.txt b/world/map/npc/042-1/_mobs.txt
index 15b4d2e9..a64cf913 100644
--- a/world/map/npc/042-1/_mobs.txt
+++ b/world/map/npc/042-1/_mobs.txt
@@ -8,7 +8,8 @@
042-1.gat,62,81,42,50|monster|FireGoblin|1011,2,100000,30000,Mob042-1::On1011
-042-1.gat,0,0,0|script|Mob042-1|-1,{
+042-1.gat,0,0,0|script|Mob042-1|-1,
+{
On1002:
set @mobID, 1002;
callfunc "MobPoints";
diff --git a/world/map/npc/042-1/hasan.txt b/world/map/npc/042-1/hasan.txt
index 70b3a430..581eb83a 100644
--- a/world/map/npc/042-1/hasan.txt
+++ b/world/map/npc/042-1/hasan.txt
@@ -1,8 +1,8 @@
// This file is part of the Tutorial
// Authors: Jenalya, alastrim
-042-1.gat,90,61,0|script|Hasan|189,{
-
+042-1.gat,90,61,0|script|Hasan|189,
+{
set @toll, 10000;
set @x, getx();
set @y, gety();
@@ -96,7 +96,7 @@ L_Trick:
set $@ScorpionTimer, 0;
set $@ScorpionFighter, getcharid(3);
set $@ScorpDeath, PC_DIE_COUNTER;
- monster "042-1.gat",89,63,"Scorpion",1003,1, "Hasan::onScorpionDeath";
+ monster "042-1.gat",89,63,"Scorpion",1003,1, "Hasan::OnScorpionDeath";
initnpctimer;
end;
@@ -158,11 +158,11 @@ L_SummonAgain:
message strcharinfo(0), "Kaan is mad at you for your interference! He walks over to the edge of the cliff and throws a rock on top of your head, then lets another scorpion run just near Hasan!";
percentheal -100, 0;
message strcharinfo(0), "Kaan: \"Just go while he is distracted and no one is interfering!\"";
- monster "042-1.gat",89,63,"Scorpion",1003,1, "Hasan::onScorpionDeath";
+ monster "042-1.gat",89,63,"Scorpion",1003,1, "Hasan::OnScorpionDeath";
end;
L_Clean:
- killmonster "042-1.gat", "Hasan::onScorpionDeath";
+ killmonster "042-1.gat", "Hasan::OnScorpionDeath";
set $@ScorpionFighter, 0;
set $@ScorpionTimer, 0;
set $@ScorpDeath, 0;
@@ -200,7 +200,7 @@ OnTimer5000:
setnpctimer 0;
end;
-onScorpionDeath:
+OnScorpionDeath:
if (getcharid(3) != $@ScorpionFighter)
goto L_SummonAgain;
if (hasan != 3)
@@ -211,7 +211,8 @@ onScorpionDeath:
}
-042-1.gat,90,62,0|script|#Toll|32767,2,2,{
+042-1.gat,90,62,0|script|#Toll|32767,2,2,
+{
end;
OnTouch:
@@ -226,7 +227,8 @@ OnTouch:
}
-042-1.gat,96,69,0|script|#barrier|45,0,2{
+042-1.gat,96,69,0|script|#barrier|45,0,2
+{
end;
OnTouch:
diff --git a/world/map/npc/042-1/kaan.txt b/world/map/npc/042-1/kaan.txt
index ac2e6edc..027e5895 100644
--- a/world/map/npc/042-1/kaan.txt
+++ b/world/map/npc/042-1/kaan.txt
@@ -1,8 +1,8 @@
// This file is part of the Tutorial
// Author: Jenalya
-042-1.gat,84,65,0|script|Kaan|160,{
-
+042-1.gat,84,65,0|script|Kaan|160,
+{
if (FLAGS & FLAG_TUTORIAL_DONE) goto L_Tut_Done;
if (hasan == 4) goto L_Hasan_Saved;
if ($@ScorpionFighter == getcharid(3)) goto L_Run;
diff --git a/world/map/npc/042-1/npcs.txt b/world/map/npc/042-1/npcs.txt
index 9d2d6ebb..d1bb5586 100644
--- a/world/map/npc/042-1/npcs.txt
+++ b/world/map/npc/042-1/npcs.txt
@@ -1,6 +1,7 @@
// Talk NPCs to help make trek interesting between Tutorial and Bazaar.
-042-1.gat,82,96,0|script|Liana|205,{
+042-1.gat,82,96,0|script|Liana|205,
+{
set @npcname$, "Liana";
mes "[" + @npcname$ + "]";
diff --git a/world/map/npc/042-1/valon.txt b/world/map/npc/042-1/valon.txt
index 07d2ae66..63530aec 100644
--- a/world/map/npc/042-1/valon.txt
+++ b/world/map/npc/042-1/valon.txt
@@ -1,8 +1,8 @@
// This file is part of the Tutorial
// Author: Jenalya
-042-1.gat,44,144,0|script|Valon|156,1,0{
-
+042-1.gat,44,144,0|script|Valon|156,1,0
+{
if (FLAGS & FLAG_TUTORIAL_DONE) goto L_Tut_Done;
mes "[Valon]";
diff --git a/world/map/npc/042-2/_mobs.txt b/world/map/npc/042-2/_mobs.txt
index 4bebc4ec..a423b87a 100644
--- a/world/map/npc/042-2/_mobs.txt
+++ b/world/map/npc/042-2/_mobs.txt
@@ -3,6 +3,7 @@
-042-2.gat,0,0,0|script|Mob042-2|-1,{
+042-2.gat,0,0,0|script|Mob042-2|-1,
+{
end;
}
diff --git a/world/map/npc/042-2/sorfina.txt b/world/map/npc/042-2/sorfina.txt
index 7d767e3f..dd63b753 100644
--- a/world/map/npc/042-2/sorfina.txt
+++ b/world/map/npc/042-2/sorfina.txt
@@ -1,8 +1,8 @@
// This file is part of the Tutorial
// Author: Jenalya
-042-2.gat,28,26,0|script|Sorfina|154,4,4{
-
+042-2.gat,28,26,0|script|Sorfina|154,4,4
+{
if (FLAGS & FLAG_TUTORIAL_DONE) goto L_Again;
if (sorfina == 4) goto L_Heal;
if (sorfina == 3) goto L_Clothes;
@@ -247,7 +247,8 @@ OnTouch:
goto L_Start;
}
-042-2.gat,33,27,0|script|#Carpet|32767,1,1{
+042-2.gat,33,27,0|script|#Carpet|32767,1,1
+{
end;
OnTouch:
@@ -269,8 +270,8 @@ OnTouch:
close;
}
-042-2.gat,27,23,0|script|Chest|111,{
-
+042-2.gat,27,23,0|script|Chest|111,
+{
if (sorfina > 2) goto L_Empty;
if (sorfina == 2) goto L_Shirt;
@@ -296,7 +297,8 @@ L_Empty:
close;
}
-042-2.gat,44,31,0|script|#DoorOut|45,0,0{
+042-2.gat,44,31,0|script|#DoorOut|45,0,0
+{
end;
OnTouch:
diff --git a/world/map/npc/042-2/tanisha.txt b/world/map/npc/042-2/tanisha.txt
index 9363d1b6..437099dd 100644
--- a/world/map/npc/042-2/tanisha.txt
+++ b/world/map/npc/042-2/tanisha.txt
@@ -2,7 +2,8 @@
// Authors: Jenalya, alastrim
// Cleanup: o11c
-042-2.gat,37,90,0|script|Tanisha|114,{
+042-2.gat,37,90,0|script|Tanisha|114,
+{
if (isin("042-2.gat", 30, 85, 36, 89))
goto L_Fighting;
diff --git a/world/map/npc/043-1/_import.txt b/world/map/npc/043-1/_import.txt
new file mode 100644
index 00000000..0ed2ee41
--- /dev/null
+++ b/world/map/npc/043-1/_import.txt
@@ -0,0 +1,5 @@
+// Map 043-1: Beach
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 043-1.gat
+npc: npc/043-1/_mobs.txt
+npc: npc/043-1/_warps.txt
diff --git a/world/map/npc/043-1/_mobs.txt b/world/map/npc/043-1/_mobs.txt
new file mode 100644
index 00000000..7d8c46b9
--- /dev/null
+++ b/world/map/npc/043-1/_mobs.txt
@@ -0,0 +1,27 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Beach mobs
+
+043-1.gat,0,0,0,0|monster|SeaSlime|1033,17,40000,30000,Mob043-1::On1033
+043-1.gat,0,0,0,0|monster|YellowSlime|1007,15,60000,60000,Mob043-1::On1007
+043-1.gat,0,0,0,0|monster|GreenSlime|1005,20,60000,60000,Mob043-1::On1005
+
+
+043-1.gat,0,0,0|script|Mob043-1|-1,
+{
+On1005:
+ set @mobID, 1005;
+ callfunc "MobPoints";
+ end;
+
+On1007:
+ set @mobID, 1007;
+ callfunc "MobPoints";
+ end;
+
+On1033:
+ set @mobID, 1033;
+ callfunc "MobPoints";
+ end;
+
+ end;
+}
diff --git a/world/map/npc/043-1/_warps.txt b/world/map/npc/043-1/_warps.txt
new file mode 100644
index 00000000..bbc9c47d
--- /dev/null
+++ b/world/map/npc/043-1/_warps.txt
@@ -0,0 +1,6 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Beach warps
+
+043-1.gat,44,19|warp|To Beach|1,-1,003-1.gat,114,116
+043-1.gat,85,54|warp|To Mining Camp|-1,-1,002-3.gat,22,85
+043-1.gat,52,38|warp|To Slime Hive|-1,-1,043-3.gat,31,34
diff --git a/world/map/npc/043-3/_import.txt b/world/map/npc/043-3/_import.txt
new file mode 100644
index 00000000..027beecc
--- /dev/null
+++ b/world/map/npc/043-3/_import.txt
@@ -0,0 +1,5 @@
+// Map 043-3: Cave
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 043-3.gat
+npc: npc/043-3/_mobs.txt
+npc: npc/043-3/_warps.txt
diff --git a/world/map/npc/043-3/_mobs.txt b/world/map/npc/043-3/_mobs.txt
new file mode 100644
index 00000000..416a6e9a
--- /dev/null
+++ b/world/map/npc/043-3/_mobs.txt
@@ -0,0 +1,43 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Cave mobs
+
+043-3.gat,39,45,24,17|monster|CaveMaggot|1056,6,20000,20000,Mob043-3::On1056
+043-3.gat,44,60,24,17|monster|CaveMaggot|1056,6,20000,20000,Mob043-3::On1056
+043-3.gat,41,96,34,26|monster|CaveMaggot|1056,10,20000,20000,Mob043-3::On1056
+043-3.gat,52,91,6,7|monster|AngryScorpion|1057,5,30000,30000,Mob043-3::On1057
+043-3.gat,102,116,26,19|monster|AngryFireGoblin|1108,10,30000,30000,Mob043-3::On1108
+043-3.gat,33,99,6,7|monster|AngryScorpion|1057,5,30000,30000,Mob043-3::On1057
+043-3.gat,116,78,25,19|monster|AngryFireGoblin|1108,8,30000,30000,Mob043-3::On1108
+043-3.gat,113,47,30,22|monster|RedSlime|1008,15,45000,35000,Mob043-3::On1008
+043-3.gat,94,44,40,18|monster|GreenSlime|1005,5,30000,15000,Mob043-3::On1005
+
+
+043-3.gat,0,0,0|script|Mob043-3|-1,
+{
+On1005:
+ set @mobID, 1005;
+ callfunc "MobPoints";
+ end;
+
+On1008:
+ set @mobID, 1008;
+ callfunc "MobPoints";
+ end;
+
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ end;
+
+On1057:
+ set @mobID, 1057;
+ callfunc "MobPoints";
+ end;
+
+On1108:
+ set @mobID, 1108;
+ callfunc "MobPoints";
+ end;
+
+ end;
+}
diff --git a/world/map/npc/043-3/_warps.txt b/world/map/npc/043-3/_warps.txt
new file mode 100644
index 00000000..244d5564
--- /dev/null
+++ b/world/map/npc/043-3/_warps.txt
@@ -0,0 +1,4 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Cave warps
+
+043-3.gat,32,36|warp|To Beach|0,-1,043-1.gat,52,39
diff --git a/world/map/npc/044-1/_mobs.txt b/world/map/npc/044-1/_mobs.txt
index 2ae40c5b..5812314e 100644
--- a/world/map/npc/044-1/_mobs.txt
+++ b/world/map/npc/044-1/_mobs.txt
@@ -19,7 +19,8 @@
044-1.gat,0,0,0,0|monster|WhiteBell|1095,10,100000,30000,Mob044-1::On1095
-044-1.gat,0,0,0|script|Mob044-1|-1,{
+044-1.gat,0,0,0|script|Mob044-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/044-3/_mobs.txt b/world/map/npc/044-3/_mobs.txt
index 8a491d3e..93800c6f 100644
--- a/world/map/npc/044-3/_mobs.txt
+++ b/world/map/npc/044-3/_mobs.txt
@@ -24,7 +24,8 @@
044-3.gat,121,172,9,8|monster|WhiteSlime|1093,7,100000,30000,Mob044-3::On1093
-044-3.gat,0,0,0|script|Mob044-3|-1,{
+044-3.gat,0,0,0|script|Mob044-3|-1,
+{
On1058:
set @mobID, 1058;
callfunc "MobPoints";
diff --git a/world/map/npc/045-1/_mobs.txt b/world/map/npc/045-1/_mobs.txt
index c82f58f5..d0a5f473 100644
--- a/world/map/npc/045-1/_mobs.txt
+++ b/world/map/npc/045-1/_mobs.txt
@@ -15,7 +15,8 @@
045-1.gat,0,0,0,0|monster|WhiteBell|1095,5,100000,30000,Mob045-1::On1095
-045-1.gat,0,0,0|script|Mob045-1|-1,{
+045-1.gat,0,0,0|script|Mob045-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/046-1/_mobs.txt b/world/map/npc/046-1/_mobs.txt
index b2ab1634..a52f0451 100644
--- a/world/map/npc/046-1/_mobs.txt
+++ b/world/map/npc/046-1/_mobs.txt
@@ -14,7 +14,8 @@
046-1.gat,145,60,10,9|monster|Wolvern|1090,2,100000,30000,Mob046-1::On1090
-046-1.gat,0,0,0|script|Mob046-1|-1,{
+046-1.gat,0,0,0|script|Mob046-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/046-3/_mobs.txt b/world/map/npc/046-3/_mobs.txt
index 307cf285..96d59230 100644
--- a/world/map/npc/046-3/_mobs.txt
+++ b/world/map/npc/046-3/_mobs.txt
@@ -18,7 +18,8 @@
046-3.gat,113,48,12,8|monster|Yeti|1072,2,100000,30000,Mob046-3::On1072
-046-3.gat,0,0,0|script|Mob046-3|-1,{
+046-3.gat,0,0,0|script|Mob046-3|-1,
+{
On1058:
set @mobID, 1058;
callfunc "MobPoints";
diff --git a/world/map/npc/047-1/_mobs.txt b/world/map/npc/047-1/_mobs.txt
index 2151fb1e..75d39326 100644
--- a/world/map/npc/047-1/_mobs.txt
+++ b/world/map/npc/047-1/_mobs.txt
@@ -12,7 +12,8 @@
047-1.gat,61,29,23,13|monster|Wolvern|1090,4,100000,30000,Mob047-1::On1090
-047-1.gat,0,0,0|script|Mob047-1|-1,{
+047-1.gat,0,0,0|script|Mob047-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/048-1/_mobs.txt b/world/map/npc/048-1/_mobs.txt
index 953e1932..34a8731a 100644
--- a/world/map/npc/048-1/_mobs.txt
+++ b/world/map/npc/048-1/_mobs.txt
@@ -14,7 +14,8 @@
048-1.gat,42,25,2,2|monster|WhiteSlime|1093,4,100000,30000,Mob048-1::On1093
-048-1.gat,0,0,0|script|Mob048-1|-1,{
+048-1.gat,0,0,0|script|Mob048-1|-1,
+{
On1020:
set @mobID, 1020;
callfunc "MobPoints";
diff --git a/world/map/npc/048-2/_mobs.txt b/world/map/npc/048-2/_mobs.txt
index 6aa368b2..a1f6d8a3 100644
--- a/world/map/npc/048-2/_mobs.txt
+++ b/world/map/npc/048-2/_mobs.txt
@@ -3,6 +3,7 @@
-048-2.gat,0,0,0|script|Mob048-2|-1,{
+048-2.gat,0,0,0|script|Mob048-2|-1,
+{
end;
}
diff --git a/world/map/npc/048-2/bluesageConfig.txt b/world/map/npc/048-2/bluesageConfig.txt
index 6ff952bd..cb237441 100644
--- a/world/map/npc/048-2/bluesageConfig.txt
+++ b/world/map/npc/048-2/bluesageConfig.txt
@@ -51,7 +51,8 @@
// Bit 0: started the subquest
// Bit 1 - 7: each spawn point is unique and saved with a flag
--|script|#bluesageconfig|-1,{
+-|script|#bluesageconfig|-1,
+{
OnInit:
set $@Q_BlueSageMinimumLevel, 60;
@@ -93,17 +94,20 @@ OnInit:
set $@BlueSageSlime6_Amount, 1;
}
-function|script|updateBlueSageBookPages|{
+function|script|updateBlueSageBookPages|,
+{
set QUEST_BlueSage, (QUEST_BlueSage & ~($@Q_BlueSageBookPages_MASK) | (@bookpages << $@Q_BlueSageBookPages_SHIFT));
return;
}
-function|script|updateBlueSageInvestigate|{
+function|script|updateBlueSageInvestigate|,
+{
set QUEST_BlueSage, (QUEST_BlueSage & ~($@Q_BlueSageInvestigate_MASK) | (@investigate << $@Q_BlueSageInvestigate_SHIFT));
return;
}
-function|script|blueSageNumberOfClearedNests|{
+function|script|blueSageNumberOfClearedNests|,
+{
set @slimenests, 0;
if (QUEST_BlueSage & $@Q_BlueSageSlime0)
set @slimenests, @slimenests+1;
diff --git a/world/map/npc/048-2/helperAccused.txt b/world/map/npc/048-2/helperAccused.txt
index dd5a454e..995aa998 100644
--- a/world/map/npc/048-2/helperAccused.txt
+++ b/world/map/npc/048-2/helperAccused.txt
@@ -4,8 +4,8 @@
// Peetu is the person who caused the accident
// involved investigation subquest
-048-2.gat,25,135,0|script|Peetu|366,{
-
+048-2.gat,25,135,0|script|Peetu|366,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
if (@investigate >= 12) goto L_Thank;
diff --git a/world/map/npc/048-2/helperBookpages1.txt b/world/map/npc/048-2/helperBookpages1.txt
index 5dbdd017..1890be61 100644
--- a/world/map/npc/048-2/helperBookpages1.txt
+++ b/world/map/npc/048-2/helperBookpages1.txt
@@ -4,8 +4,8 @@
// Ensio is one of the helpers working on sorting the bookpages, can take bookpages
// can give second hint about the visitor in investigation subquest
-048-2.gat,104,86,0|script|Ensio|365,{
-
+048-2.gat,104,86,0|script|Ensio|365,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @bookpages, ((QUEST_BlueSage & $@Q_BlueSageBookPages_MASK) >> $@Q_BlueSageBookPages_SHIFT);
diff --git a/world/map/npc/048-2/helperBookpages2.txt b/world/map/npc/048-2/helperBookpages2.txt
index 172227a8..4eb44feb 100644
--- a/world/map/npc/048-2/helperBookpages2.txt
+++ b/world/map/npc/048-2/helperBookpages2.txt
@@ -4,8 +4,8 @@
// Henriikka is one of the helpers working on sorting the bookpages, sends the player to Ensio
// can be questioned as part of the investigation subquest, but doesn't give hints
-048-2.gat,94,86,0|script|Henriikka|363,{
-
+048-2.gat,94,86,0|script|Henriikka|363,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @bookpages, ((QUEST_BlueSage & $@Q_BlueSageBookPages_MASK) >> $@Q_BlueSageBookPages_SHIFT);
diff --git a/world/map/npc/048-2/helperBookpages3.txt b/world/map/npc/048-2/helperBookpages3.txt
index e0c356fc..b3591abb 100644
--- a/world/map/npc/048-2/helperBookpages3.txt
+++ b/world/map/npc/048-2/helperBookpages3.txt
@@ -4,8 +4,8 @@
// Teuvo is one of the helpers working on sorting the bookpages
// can give second hint about Peetu in investigation subquest
-048-2.gat,99,87,0|script|Teuvo|366,{
-
+048-2.gat,99,87,0|script|Teuvo|366,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @bookpages, ((QUEST_BlueSage & $@Q_BlueSageBookPages_MASK) >> $@Q_BlueSageBookPages_SHIFT);
diff --git a/world/map/npc/048-2/helperChief.txt b/world/map/npc/048-2/helperChief.txt
index 727d3d21..1f8de65f 100644
--- a/world/map/npc/048-2/helperChief.txt
+++ b/world/map/npc/048-2/helperChief.txt
@@ -4,8 +4,8 @@
// Chief of the Blue Sage helpers
// involved in investigation subquest
-048-2.gat,146,26,0|script|Oskari|365,{
-
+048-2.gat,146,26,0|script|Oskari|365,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
if (@investigate >= 11) goto L_GoodJob;
diff --git a/world/map/npc/048-2/helperCleaning1.txt b/world/map/npc/048-2/helperCleaning1.txt
index d7c989a6..2257cf49 100644
--- a/world/map/npc/048-2/helperCleaning1.txt
+++ b/world/map/npc/048-2/helperCleaning1.txt
@@ -4,8 +4,8 @@
// Pyry works on cleaning the library, can start the slime subquest
// can give second hint about helper in investigation subquest
-048-2.gat,117,106,0|script|Pyry|365,{
-
+048-2.gat,117,106,0|script|Pyry|365,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
diff --git a/world/map/npc/048-2/helperCleaning2.txt b/world/map/npc/048-2/helperCleaning2.txt
index 15fede97..7dc99811 100644
--- a/world/map/npc/048-2/helperCleaning2.txt
+++ b/world/map/npc/048-2/helperCleaning2.txt
@@ -4,8 +4,8 @@
// Nea works on cleaning the library
// can give second hint about helper in investigation subquest
-048-2.gat,123,87,0|script|Nea|363,{
-
+048-2.gat,123,87,0|script|Nea|363,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
diff --git a/world/map/npc/048-2/helperCleaning3.txt b/world/map/npc/048-2/helperCleaning3.txt
index 37f6aaf1..752a9db8 100644
--- a/world/map/npc/048-2/helperCleaning3.txt
+++ b/world/map/npc/048-2/helperCleaning3.txt
@@ -4,8 +4,8 @@
// Arvo works on cleaning the library
// can give second hint about the visitor in investigation subquest
-048-2.gat,139,99,0|script|Arvo|366,{
-
+048-2.gat,139,99,0|script|Arvo|366,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
diff --git a/world/map/npc/048-2/helperCleaning4.txt b/world/map/npc/048-2/helperCleaning4.txt
index 407ac5d2..3a4d1662 100644
--- a/world/map/npc/048-2/helperCleaning4.txt
+++ b/world/map/npc/048-2/helperCleaning4.txt
@@ -4,8 +4,8 @@
// Kristian works on cleaning the library
// can give second hint about the visitor in investigation subquest
-048-2.gat,131,119,0|script|Kristian|366,{
-
+048-2.gat,131,119,0|script|Kristian|366,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
diff --git a/world/map/npc/048-2/helperCleaning5.txt b/world/map/npc/048-2/helperCleaning5.txt
index fcea13fe..6114f1d0 100644
--- a/world/map/npc/048-2/helperCleaning5.txt
+++ b/world/map/npc/048-2/helperCleaning5.txt
@@ -4,8 +4,8 @@
// Mirjami is searching for some cleaning supplies
// can give second hint about visitor in investigation subquest
-048-2.gat,100,125,0|script|Mirjami|363,{
-
+048-2.gat,100,125,0|script|Mirjami|363,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
diff --git a/world/map/npc/048-2/helperJanitor.txt b/world/map/npc/048-2/helperJanitor.txt
index fb678af4..42141f86 100644
--- a/world/map/npc/048-2/helperJanitor.txt
+++ b/world/map/npc/048-2/helperJanitor.txt
@@ -4,8 +4,8 @@
// Elias is the janitor of the mansion
// part of investigation subquest, gives initial hint on the visitor with the mask
-048-2.gat,40,41,0|script|Elias|365,{
-
+048-2.gat,40,41,0|script|Elias|365,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
if (@investigate == 11) goto L_Thank;
diff --git a/world/map/npc/048-2/helperMInk.txt b/world/map/npc/048-2/helperMInk.txt
index 75a1a5cc..6ab6b391 100644
--- a/world/map/npc/048-2/helperMInk.txt
+++ b/world/map/npc/048-2/helperMInk.txt
@@ -4,8 +4,8 @@
// Eevert asks for material to create inks for the illustrations in the new books
// can give second hint about Peetu in investigation subquest
-048-2.gat,95,103,0|script|Eevert|365,{
-
+048-2.gat,95,103,0|script|Eevert|365,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @water_amount, 5;
set @spectre_amount, 3;
diff --git a/world/map/npc/048-2/helperMReed.txt b/world/map/npc/048-2/helperMReed.txt
index 12d6ea20..724bd463 100644
--- a/world/map/npc/048-2/helperMReed.txt
+++ b/world/map/npc/048-2/helperMReed.txt
@@ -4,8 +4,8 @@
// Kullervo asks for Reed Bundles to create paper for repairing the books
// can give second hint about both Peetu and visitor in investigation subquest
-048-2.gat,104,78,0|script|Kullervo|366,{
-
+048-2.gat,104,78,0|script|Kullervo|366,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @reed_amount, 20;
set @reed_exp, 10000;
diff --git a/world/map/npc/048-2/helperMSilk.txt b/world/map/npc/048-2/helperMSilk.txt
index 8ab0bb42..67df87cb 100644
--- a/world/map/npc/048-2/helperMSilk.txt
+++ b/world/map/npc/048-2/helperMSilk.txt
@@ -4,8 +4,8 @@
// Janika asks for Silk Cocoons for repairing the books
// can give second hint about visitor in investigation subquest
-048-2.gat,104,103,0|script|Janika|363,{
-
+048-2.gat,104,103,0|script|Janika|363,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @silk_amount, 80;
set @silk_exp, 10000;
diff --git a/world/map/npc/048-2/helperMYetiClaw.txt b/world/map/npc/048-2/helperMYetiClaw.txt
index 4881661e..59a86436 100644
--- a/world/map/npc/048-2/helperMYetiClaw.txt
+++ b/world/map/npc/048-2/helperMYetiClaw.txt
@@ -4,8 +4,8 @@
// Santeri asks for Yeti Claws to make glue for repairing the books
// can give second hint about Peetu in investigation subquest
-048-2.gat,97,78,0|script|Santeri|366,{
-
+048-2.gat,97,78,0|script|Santeri|366,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @claw_amount, 8;
set @claw_exp, 10000;
diff --git a/world/map/npc/048-2/helperResting1.txt b/world/map/npc/048-2/helperResting1.txt
index 864285e0..5ffd6f0f 100644
--- a/world/map/npc/048-2/helperResting1.txt
+++ b/world/map/npc/048-2/helperResting1.txt
@@ -4,8 +4,8 @@
// Lenita is one of the helpers working on sorting the bookpages, but is currently having a break
// can give second hint about the visitor in investigation subquest
-048-2.gat,36,26,0|script|Lenita|363,{
-
+048-2.gat,36,26,0|script|Lenita|363,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @bookpages, ((QUEST_BlueSage & $@Q_BlueSageBookPages_MASK) >> $@Q_BlueSageBookPages_SHIFT);
diff --git a/world/map/npc/048-2/helperResting2.txt b/world/map/npc/048-2/helperResting2.txt
index d5265d64..a6b4873c 100644
--- a/world/map/npc/048-2/helperResting2.txt
+++ b/world/map/npc/048-2/helperResting2.txt
@@ -4,8 +4,8 @@
// Miro is one of the helpers cleaning up the library, but it currently having a break
// can give second hint about the Peetu in investigation subquest
-048-2.gat,35,27,0|script|Miro|366,{
-
+048-2.gat,35,27,0|script|Miro|366,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
diff --git a/world/map/npc/048-2/sageNikolai.txt b/world/map/npc/048-2/sageNikolai.txt
index 9c2356cc..ed167bc1 100644
--- a/world/map/npc/048-2/sageNikolai.txt
+++ b/world/map/npc/048-2/sageNikolai.txt
@@ -3,8 +3,8 @@
// see bluesageConfig for detailed quest description
// Sage Nikolai gives hints about the different subquests and rewards
-048-2.gat,98,106,0|script|Nikolai|362,{
-
+048-2.gat,98,106,0|script|Nikolai|362,
+{
set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
set @bookpages, ((QUEST_BlueSage & $@Q_BlueSageBookPages_MASK) >> $@Q_BlueSageBookPages_SHIFT);
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
@@ -274,7 +274,8 @@ L_Close:
close;
}
-//048-2.gat,100,106,0|script|Debug|160,{
+//048-2.gat,100,106,0|script|Debug|160,
+//{
// set @investigate, ((QUEST_BlueSage & $@Q_BlueSageInvestigate_MASK) >> $@Q_BlueSageInvestigate_SHIFT);
// set @bookpages, ((QUEST_BlueSage & $@Q_BlueSageBookPages_MASK) >> $@Q_BlueSageBookPages_SHIFT);
// set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
diff --git a/world/map/npc/048-2/slimes.txt b/world/map/npc/048-2/slimes.txt
index ce0b6df0..2318d1f0 100644
--- a/world/map/npc/048-2/slimes.txt
+++ b/world/map/npc/048-2/slimes.txt
@@ -13,7 +13,8 @@
// @spawnSlimeX: Number of slimes killed by the character that triggered the spawn
// white slimes
-048-2.gat,181,95,0|script|#Slime0Trigger|32767,2,2,{
+048-2.gat,181,95,0|script|#Slime0Trigger|32767,2,2,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
if (mobcount("048-2.gat", "#Slime0::OnSlimeDeath") < 0) // returns -1 if no monsters
@@ -45,7 +46,8 @@ L_End:
end;
}
-048-2.gat,181,95,0|script|#Slime0|32767,{
+048-2.gat,181,95,0|script|#Slime0|32767,
+{
end;
OnSpawn:
@@ -100,7 +102,8 @@ L_ClearedPoint:
// white slimes
-048-2.gat,164,123,0|script|#Slime1Trigger|32767,2,2,{
+048-2.gat,164,123,0|script|#Slime1Trigger|32767,2,2,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
if (mobcount("048-2.gat", "#Slime1::OnSlimeDeath") < 0) // returns -1 if no monsters
@@ -132,7 +135,8 @@ L_End:
end;
}
-048-2.gat,164,123,0|script|#Slime1|32767,{
+048-2.gat,164,123,0|script|#Slime1|32767,
+{
end;
OnSpawn:
@@ -187,7 +191,8 @@ L_ClearedPoint:
// white slimes
-048-2.gat,198,115,0|script|#Slime2Trigger|32767,2,2,{
+048-2.gat,198,115,0|script|#Slime2Trigger|32767,2,2,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
if (mobcount("048-2.gat", "#Slime2::OnSlimeDeath") < 0) // returns -1 if no monsters
@@ -219,7 +224,8 @@ L_End:
end;
}
-048-2.gat,198,115,0|script|#Slime2|32767,{
+048-2.gat,198,115,0|script|#Slime2|32767,
+{
end;
OnSpawn:
@@ -274,7 +280,8 @@ L_ClearedPoint:
// white slimes
-048-2.gat,167,79,0|script|#Slime3Trigger|32767,2,2,{
+048-2.gat,167,79,0|script|#Slime3Trigger|32767,2,2,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
if (mobcount("048-2.gat", "#Slime3::OnSlimeDeath") < 0) // returns -1 if no monsters
@@ -306,7 +313,8 @@ L_End:
end;
}
-048-2.gat,167,79,0|script|#Slime3|32767,{
+048-2.gat,167,79,0|script|#Slime3|32767,
+{
end;
OnSpawn:
@@ -361,7 +369,8 @@ L_ClearedPoint:
// blue slimes
-048-2.gat,192,86,0|script|#Slime4Trigger|32767,2,2,{
+048-2.gat,192,86,0|script|#Slime4Trigger|32767,2,2,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
if (mobcount("048-2.gat", "#Slime4::OnSlimeDeath") < 0) // returns -1 if no monsters
@@ -393,7 +402,8 @@ L_End:
end;
}
-048-2.gat,192,86,0|script|#Slime4|32767,{
+048-2.gat,192,86,0|script|#Slime4|32767,
+{
end;
OnSpawn:
@@ -448,7 +458,8 @@ L_ClearedPoint:
// blue slimes
-048-2.gat,183,110,0|script|#Slime5Trigger|32767,2,2,{
+048-2.gat,183,110,0|script|#Slime5Trigger|32767,2,2,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
if (mobcount("048-2.gat", "#Slime5::OnSlimeDeath") < 0) // returns -1 if no monsters
@@ -480,7 +491,8 @@ L_End:
end;
}
-048-2.gat,183,110,0|script|#Slime5|32767,{
+048-2.gat,183,110,0|script|#Slime5|32767,
+{
end;
OnSpawn:
@@ -535,7 +547,8 @@ L_ClearedPoint:
// blue slimes
-048-2.gat,164,102,0|script|#Slime6Trigger|32767,2,2,{
+048-2.gat,164,102,0|script|#Slime6Trigger|32767,2,2,
+{
set @slimes, ((QUEST_BlueSage & $@Q_BlueSageSlimes_MASK) >> $@Q_BlueSageSlimes_SHIFT);
if (mobcount("048-2.gat", "#Slime6::OnSlimeDeath") < 0) // returns -1 if no monsters
@@ -567,7 +580,8 @@ L_End:
end;
}
-048-2.gat,164,102,0|script|#Slime6|32767,{
+048-2.gat,164,102,0|script|#Slime6|32767,
+{
end;
OnSpawn:
diff --git a/world/map/npc/048-2/visitors.txt b/world/map/npc/048-2/visitors.txt
index 4ab9bbe0..1f0721c9 100644
--- a/world/map/npc/048-2/visitors.txt
+++ b/world/map/npc/048-2/visitors.txt
@@ -2,7 +2,8 @@
// author: Jenalya
// visitors that came to see the library and are now disappointed
-048-2.gat,46,44,0|script|Connor|150,{
+048-2.gat,46,44,0|script|Connor|150,
+{
mes "[Connor]";
mes "\"Oh, hello. There was a big accident in the library! Most of the books were damaged or destroyed!\"";
next;
@@ -16,7 +17,8 @@ L_Close:
close;
}
-048-2.gat,28,30,0|script|Parcival|153,{
+048-2.gat,28,30,0|script|Parcival|153,
+{
mes "[Parcival]";
mes "\"Hello young one. Did you also come here to see the library?\"";
menu
diff --git a/world/map/npc/051-1/_mobs.txt b/world/map/npc/051-1/_mobs.txt
index 32dc8bbb..a1caa5be 100644
--- a/world/map/npc/051-1/_mobs.txt
+++ b/world/map/npc/051-1/_mobs.txt
@@ -5,7 +5,8 @@
051-1.gat,42,35,41,22|monster|SpikyMushroom|1019,10,100000,30000,Mob051-1::On1019
-051-1.gat,0,0,0|script|Mob051-1|-1,{
+051-1.gat,0,0,0|script|Mob051-1|-1,
+{
On1019:
set @mobID, 1019;
callfunc "MobPoints";
diff --git a/world/map/npc/051-1/desert.txt b/world/map/npc/051-1/desert.txt
index c6d041af..b51cd187 100644
--- a/world/map/npc/051-1/desert.txt
+++ b/world/map/npc/051-1/desert.txt
@@ -8,7 +8,8 @@
// 2: Players collected enough souls and gave the souls to the waterfall
//-----------------------------------------------------------------------------
-051-1.gat,142,39,0|script|Bones|367,{
+051-1.gat,142,39,0|script|Bones|367,
+{
mes "You find a ruined paper next to these bones.";
mes "It says...";
next;
@@ -21,7 +22,8 @@
}
-051-1.gat,170,24,0|script|Cursed Waterfall|400,{
+051-1.gat,170,24,0|script|Cursed Waterfall|400,
+{
set $@illia_num_sealed_souls, 7;
set @step, 3;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
diff --git a/world/map/npc/051-1/desertmonsters.txt b/world/map/npc/051-1/desertmonsters.txt
index af33fefd..f46edd6f 100644
--- a/world/map/npc/051-1/desertmonsters.txt
+++ b/world/map/npc/051-1/desertmonsters.txt
@@ -1,8 +1,8 @@
051-1.gat,134,36,67,49|monster|Soul Snake|1096,12,100000,30000,IlliaDMobs051-1::On1096
// The soul snakes release a Sealed Soul at random, once the soul collecting is started
-051-1.gat,0,0,0|script|IlliaDMobs051-1|-1,{
-
+051-1.gat,0,0,0|script|IlliaDMobs051-1|-1,
+{
On1096:
if (rand(4) == 0 && $@illia_progress == 3 && $@illia_level_3_progress == 1)
getitem "SealedSoul", 1;
@@ -15,7 +15,8 @@ On1096:
// Soul eater spawns. They will eat a Sealed Soul when killed, and when the soul collecting is started.
// Spawn in the island
-051-1.gat,142,38,0|script|#SoulEaters0Trigger|32767,3,3,{
+051-1.gat,142,38,0|script|#SoulEaters0Trigger|32767,3,3,
+{
if ($@illia_progress != 3 || $@illia_level_3_progress != 1)
end;
if ($@SoulEaters0_count > 0)
@@ -24,7 +25,8 @@ On1096:
end;
}
-051-1.gat,142,38,0|script|#SoulEaters0|32767,{
+051-1.gat,142,38,0|script|#SoulEaters0|32767,
+{
OnSpawn:
set $@SoulEaters0_count, 5;
areamonster "051-1.gat", 139, 34, 145, 41, "", 1097, $@SoulEaters0_count, "#SoulEaters0::OnSoulEaterDeath";
@@ -42,7 +44,8 @@ OnSoulEaterDeath:
}
// Spawn inside the north building
-051-1.gat,134,16,0|script|#SoulEaters1Trigger|32767,9,2,{
+051-1.gat,134,16,0|script|#SoulEaters1Trigger|32767,9,2,
+{
if ($@illia_progress != 3 || $@illia_level_3_progress != 1)
end;
if ($@SoulEaters1_count > 0)
@@ -51,7 +54,8 @@ OnSoulEaterDeath:
end;
}
-051-1.gat,134,16,0|script|#SoulEaters1|32767,{
+051-1.gat,134,16,0|script|#SoulEaters1|32767,
+{
OnSpawn:
set $@SoulEaters1_count, 7;
areamonster "051-1.gat", 125, 14, 143, 18, "", 1097, $@SoulEaters1_count, "#SoulEaters1::OnSoulEaterDeath";
@@ -69,7 +73,8 @@ OnSoulEaterDeath:
}
// Spawn in the south grass area
-051-1.gat,137,55,0|script|#SoulEaters2Trigger|32767,5,4,{
+051-1.gat,137,55,0|script|#SoulEaters2Trigger|32767,5,4,
+{
if ($@illia_progress != 3 || $@illia_level_3_progress != 1)
end;
if ($@SoulEaters2_count > 0)
@@ -78,7 +83,8 @@ OnSoulEaterDeath:
end;
}
-051-1.gat,137,55,0|script|#SoulEaters2|32767,{
+051-1.gat,137,55,0|script|#SoulEaters2|32767,
+{
OnSpawn:
set $@SoulEaters2_count, 4;
areamonster "051-1.gat", 134, 54, 139, 58, "", 1097, $@SoulEaters2_count, "#SoulEaters2::OnSoulEaterDeath";
@@ -96,7 +102,8 @@ OnSoulEaterDeath:
}
// Spawn near the eastern cliff
-051-1.gat,155,35,0|script|#SoulEaters3Trigger|32767,4,7,{
+051-1.gat,155,35,0|script|#SoulEaters3Trigger|32767,4,7,
+{
if ($@illia_progress != 3 || $@illia_level_3_progress != 1)
end;
if ($@SoulEaters3_count > 0)
@@ -105,7 +112,8 @@ OnSoulEaterDeath:
end;
}
-051-1.gat,155,35,0|script|#SoulEaters3|32767,{
+051-1.gat,155,35,0|script|#SoulEaters3|32767,
+{
OnSpawn:
set $@SoulEaters3_count, 4;
areamonster "051-1.gat", 151, 29, 160, 45, "", 1097, $@SoulEaters3_count, "#SoulEaters3::OnSoulEaterDeath";
@@ -123,7 +131,8 @@ OnSoulEaterDeath:
}
// Spawn near the western cliff
-051-1.gat,120,38,0|script|#SoulEaters4Trigger|32767,6,9,{
+051-1.gat,120,38,0|script|#SoulEaters4Trigger|32767,6,9,
+{
if ($@illia_progress != 3 || $@illia_level_3_progress != 1)
end;
if ($@SoulEaters4_count > 0)
@@ -132,7 +141,8 @@ OnSoulEaterDeath:
end;
}
-051-1.gat,120,38,0|script|#SoulEaters4|32767,{
+051-1.gat,120,38,0|script|#SoulEaters4|32767,
+{
OnSpawn:
set $@SoulEaters4_count, 4;
areamonster "051-1.gat", 116, 29, 127, 50, "", 1097, $@SoulEaters4_count, "#SoulEaters4::OnSoulEaterDeath";
diff --git a/world/map/npc/051-1/forest.txt b/world/map/npc/051-1/forest.txt
index e0f392ae..e773fb03 100644
--- a/world/map/npc/051-1/forest.txt
+++ b/world/map/npc/051-1/forest.txt
@@ -9,7 +9,8 @@
// 3: Players unlocked the door
//-----------------------------------------------------------------------------
-051-1.gat,64,46,0|script|Strange Stone|400,{
+051-1.gat,64,46,0|script|Strange Stone|400,
+{
set @step, 1;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if (isin("051-1.gat", 65,45, 67,48) == 0) end;
@@ -59,7 +60,8 @@ L_TaskComplete:
}
// Warp from the forest, to the cave
-051-1.gat,66,44,0|script|#ToCave|32767,1,1,{
+051-1.gat,66,44,0|script|#ToCave|32767,1,1,
+{
set @step, 1;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_1_progress < 2) goto L_Blocked;
diff --git a/world/map/npc/051-1/forestmonsters.txt b/world/map/npc/051-1/forestmonsters.txt
index 28d1ac50..2ede6574 100644
--- a/world/map/npc/051-1/forestmonsters.txt
+++ b/world/map/npc/051-1/forestmonsters.txt
@@ -1,7 +1,7 @@
051-1.gat,52,32,10,8|monster|Green Slime|1005,20,100000,30000,IlliaFMobs051-1::On1005
-051-1.gat,0,0,0|script|IlliaFMobs051-1|-1,{
-
+051-1.gat,0,0,0|script|IlliaFMobs051-1|-1,
+{
On1005:
if ($@illia_level_1_progress == 1)
goto L_RockFinding;
diff --git a/world/map/npc/051-1/janitor.txt b/world/map/npc/051-1/janitor.txt
index 333bb791..b2be30da 100644
--- a/world/map/npc/051-1/janitor.txt
+++ b/world/map/npc/051-1/janitor.txt
@@ -1,5 +1,6 @@
// Forest janitor
-051-1.gat,1,1,0|script|#IlliaJanitor1|127,{
+051-1.gat,1,1,0|script|#IlliaJanitor1|127,
+{
end;
OnCommandClean:
@@ -9,7 +10,8 @@ OnCommandClean:
}
// Desert janitor
-051-1.gat,1,1,0|script|#IlliaJanitor3|127,{
+051-1.gat,1,1,0|script|#IlliaJanitor3|127,
+{
end;
OnCommandClean:
diff --git a/world/map/npc/051-3/_mobs.txt b/world/map/npc/051-3/_mobs.txt
index 867b98f4..bf214d2f 100644
--- a/world/map/npc/051-3/_mobs.txt
+++ b/world/map/npc/051-3/_mobs.txt
@@ -19,7 +19,8 @@
051-3.gat,60,94,18,5|monster|CopperSlime|1098,7,100000,60000,Mob051-3::On1098
-051-3.gat,0,0,0|script|Mob051-3|-1,{
+051-3.gat,0,0,0|script|Mob051-3|-1,
+{
On1008:
set @mobID, 1008;
callfunc "MobPoints";
diff --git a/world/map/npc/051-3/ambush.txt b/world/map/npc/051-3/ambush.txt
index 74e1ced7..109d55b2 100644
--- a/world/map/npc/051-3/ambush.txt
+++ b/world/map/npc/051-3/ambush.txt
@@ -10,12 +10,14 @@
// 4: Key of the door found, to leave the cave
//-----------------------------------------------------------------------------
-051-3.gat,40,52,0|script|#WayBlockedTrigger|32767,2,2,{
+051-3.gat,40,52,0|script|#WayBlockedTrigger|32767,2,2,
+{
message strcharinfo(0), "There is no way I can pass here. Let's find another way.";
end;
}
-051-3.gat,31,70,0|script|#AmbushReadyTrigger|32767,2,2,{
+051-3.gat,31,70,0|script|#AmbushReadyTrigger|32767,2,2,
+{
set @step, 2;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if (strcharinfo(0) == $@ILLIA_HERO$ && $@illia_level_2_progress == 0) goto L_PrepareAmbush;
@@ -32,7 +34,8 @@ L_ShouldNotBeHere:
}
-051-3.gat,31,93,0|script|#BanditAmbushTrigger|32767,3,3,{
+051-3.gat,31,93,0|script|#BanditAmbushTrigger|32767,3,3,
+{
set @step, 2;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_2_progress == 0 && strcharinfo(0) == $@ILLIA_HERO$) goto L_MakeAmbush;
@@ -49,7 +52,8 @@ L_ShouldNotBeHere:
end;
}
-051-3.gat,1,1,0|script|#BndtTl|127,{
+051-3.gat,1,1,0|script|#BndtTl|127,
+{
end;
OnCommandAmbush:
@@ -68,17 +72,17 @@ OnTimer9000:
end;
OnTimer11000:
- areatimer "051-3.gat", 22, 12, 102, 97, 500, "#BndtTl::onOuch";
- areatimer "051-3.gat", 22, 12, 102, 97, 3000, "#BndtTl::onA";
+ areatimer "051-3.gat", 22, 12, 102, 97, 500, "#BndtTl::OnOuch";
+ areatimer "051-3.gat", 22, 12, 102, 97, 3000, "#BndtTl::OnA";
stopnpctimer;
setnpctimer 0;
end;
-onOuch:
+OnOuch:
message strcharinfo(0), "Ouch my head...";
end;
-onA:
+OnA:
if (strcharinfo(0) == $@ILLIA_HERO$)
goto L_CaptureHero;
if (strcharinfo(0) == $@ILLIA_HELPER1$)
@@ -137,7 +141,8 @@ L_CaptureHelper3:
}
-051-3.gat,29,94,0|script|Sneaky Bandit|127,{
+051-3.gat,29,94,0|script|Sneaky Bandit|127,
+{
end;
OnCommandTalk:
@@ -156,7 +161,8 @@ OnTimer3600:
}
-051-3.gat,33,95,0|script|Another Sneaky Bandit|127,{
+051-3.gat,33,95,0|script|Another Sneaky Bandit|127,
+{
end;
OnCommandTalk:
diff --git a/world/map/npc/051-3/jailslimes.txt b/world/map/npc/051-3/jailslimes.txt
index a008a8fd..453704ad 100644
--- a/world/map/npc/051-3/jailslimes.txt
+++ b/world/map/npc/051-3/jailslimes.txt
@@ -4,8 +4,8 @@
051-3.gat,63,104,1,1|monster|Copper Slime|1098,1,60000,30000,IlliaCMobs051-3::On1098
051-3.gat,70,111,1,1|monster|Copper Slime|1098,1,60000,30000,IlliaCMobs051-3::On1098
-051-3.gat,0,0,0|script|IlliaCMobs051-3|-1,{
-
+051-3.gat,0,0,0|script|IlliaCMobs051-3|-1,
+{
On1098:
if (rand(100) < 80 && $@illia_progress == 2 && ($@illia_level_2_progress == 1 || $@illia_level_2_progress == 2))
goto L_LockPicks;
diff --git a/world/map/npc/051-3/janitor.txt b/world/map/npc/051-3/janitor.txt
index 5dfb1c30..527ca24c 100644
--- a/world/map/npc/051-3/janitor.txt
+++ b/world/map/npc/051-3/janitor.txt
@@ -1,10 +1,11 @@
// Bandit cave janitor
-051-3.gat,1,1,0|script|#IlliaJanitor2|127,{
+051-3.gat,1,1,0|script|#IlliaJanitor2|127,
+{
end;
OnCommandClean:
// Kill all remaining bandits spawned during the "reinforcements" event
- killmonster "051-1.gat", "Door::onB";
+ killmonster "051-1.gat", "Door::OnB";
end;
}
diff --git a/world/map/npc/051-3/locks.txt b/world/map/npc/051-3/locks.txt
index 1d89bbf8..e04740af 100644
--- a/world/map/npc/051-3/locks.txt
+++ b/world/map/npc/051-3/locks.txt
@@ -1,5 +1,5 @@
-051-3.gat,69,107,0|script|Jail Lock 1|400,{
-
+051-3.gat,69,107,0|script|Jail Lock 1|400,
+{
if (isin("051-3.gat", 69, 108, 73, 111)) goto L_Do_Lock_Picking;
end;
@@ -17,8 +17,8 @@ L_OpenDoor:
close;
}
-051-3.gat,64,100,0|script|Jail Lock 2|400,{
-
+051-3.gat,64,100,0|script|Jail Lock 2|400,
+{
if (isin("051-3.gat", 64, 101, 66, 104)) goto L_Do_Lock_Picking;
end;
@@ -34,8 +34,8 @@ L_OpenDoor:
close;
}
-051-3.gat,62,100,0|script|Jail Lock 3|400,{
-
+051-3.gat,62,100,0|script|Jail Lock 3|400,
+{
if (isin("051-3.gat", 61, 101, 62, 104)) goto L_Do_Lock_Picking;
end;
@@ -51,8 +51,8 @@ L_OpenDoor:
close;
}
-051-3.gat,58,100,0|script|Jail Lock 4|400,{
-
+051-3.gat,58,100,0|script|Jail Lock 4|400,
+{
if (isin("051-3.gat", 57, 101, 58, 104)) goto L_Do_Lock_Picking;
end;
diff --git a/world/map/npc/051-3/reinforcements.txt b/world/map/npc/051-3/reinforcements.txt
index b29a072d..90699b8b 100644
--- a/world/map/npc/051-3/reinforcements.txt
+++ b/world/map/npc/051-3/reinforcements.txt
@@ -1,5 +1,5 @@
-051-3.gat,47,30,0|script|#BndtRnfrcmtsTrigger|32767,2,3,{
-
+051-3.gat,47,30,0|script|#BndtRnfrcmtsTrigger|32767,2,3,
+{
set @step, 2;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_2_progress == 2) goto L_CallReinforcements;
@@ -14,8 +14,8 @@ L_ShouldNotBeHere:
end;
}
-051-3.gat,37,24,0|script|Door|400,{
-
+051-3.gat,37,24,0|script|Door|400,
+{
set @step, 2;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
mes "Try open the door?";
@@ -46,18 +46,18 @@ L_Warp:
OnRnfrcmts:
set $@illia_level_2_progress, 3;
// Spawn 20 bandits
- areamonster "051-3.gat", 29, 25, 48, 39, "", 1064, 18, "Door::onB";
+ areamonster "051-3.gat", 29, 25, 48, 39, "", 1064, 18, "Door::OnB";
// Spawn 4 bandit lords
- areamonster "051-3.gat", 29, 25, 48, 39, "", 1065, 3, "Door::onB";
+ areamonster "051-3.gat", 29, 25, 48, 39, "", 1065, 3, "Door::OnB";
initnpctimer;
mapannounce "051-3.gat", "Bandit Lords: Do not let them escape!!" , 0;
- areatimer "051-3.gat", 25, 20, 80, 85, 10, "Door::onDRnfrcmts";
+ areatimer "051-3.gat", 25, 20, 80, 85, 10, "Door::OnDRnfrcmts";
end;
-onB:
+OnB:
end;
-onDRnfrcmts:
+OnDRnfrcmts:
message strcharinfo(0), "Oh no, reinforcements! We must kill them all!";
end;
@@ -65,7 +65,7 @@ OnTimer2000:
setnpctimer 0;
if ($@illia_level_2_progress != 3 || $@illia_progress != 2)
end;
- if (mobcount("051-3.gat", "Door::onB") < 0)
+ if (mobcount("051-3.gat", "Door::OnB") < 0)
goto L_OpenDoor;
end;
@@ -74,12 +74,12 @@ L_OpenDoor:
set $@illia_progress, 3;
callfunc "UpdateIlliaProgress";
set $@illia_max_time, $@illia_max_time + 900;
- areatimer "051-3.gat", 25, 20, 80, 85, 10, "Door::onKeyFound";
+ areatimer "051-3.gat", 25, 20, 80, 85, 10, "Door::OnKeyFound";
stopnpctimer;
setnpctimer 0;
end;
-onKeyFound:
+OnKeyFound:
message strcharinfo(0), "One of the defeated bandit lords had a door key attached to his belt.";
end;
diff --git a/world/map/npc/052-1/_mobs.txt b/world/map/npc/052-1/_mobs.txt
index c955142f..a63c28de 100644
--- a/world/map/npc/052-1/_mobs.txt
+++ b/world/map/npc/052-1/_mobs.txt
@@ -4,7 +4,8 @@
052-1.gat,55,29,43,39|monster|AzulSlime|1100,18,100000,20000,Mob052-1::On1100
-052-1.gat,0,0,0|script|Mob052-1|-1,{
+052-1.gat,0,0,0|script|Mob052-1|-1,
+{
On1100:
set @mobID, 1100;
callfunc "MobPoints";
diff --git a/world/map/npc/052-1/channelling.txt b/world/map/npc/052-1/channelling.txt
index 3ea28fc9..eda49450 100644
--- a/world/map/npc/052-1/channelling.txt
+++ b/world/map/npc/052-1/channelling.txt
@@ -8,7 +8,8 @@
// 2: Channelling completed
//-----------------------------------------------------------------------------
-052-1.gat,25,44,0|script|#EnchantDoorTrigger|32767,3,4,{
+052-1.gat,25,44,0|script|#EnchantDoorTrigger|32767,3,4,
+{
set @step, 4;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if (strcharinfo(0) == $@ILLIA_HERO$ &&
@@ -25,7 +26,8 @@ L_ShouldNotBeHere:
}
-052-1.gat,57,29,0|script|#Enchanted Door|369,1,1{
+052-1.gat,57,29,0|script|#Enchanted Door|369,1,1
+{
if ($@illia_level_4_progress != 2) goto L_PushBack;
end;
@@ -38,16 +40,17 @@ L_PushBack:
close;
OnCommandDS:
- areamonster "052-1.gat", 56, 30, 60, 31, "", 1101, 2 + rand(3), "#Enchanted Door::onSpawn";
+ areamonster "052-1.gat", 56, 30, 60, 31, "", 1101, 2 + rand(3), "#Enchanted Door::OnSpawn";
misceffect FX_EVIL_SUMMON;
end;
-onSpawn:
+OnSpawn:
end;
}
-052-1.gat,57,29,0|script|#Enchanted Door2|400,1,1{
+052-1.gat,57,29,0|script|#Enchanted Door2|400,1,1
+{
if ($@illia_level_4_progress == 2) goto L_Warp;
end;
@@ -61,7 +64,8 @@ OnCommandDestroy:
}
-052-1.gat,51,38,0|script|Engravings|400,{
+052-1.gat,51,38,0|script|Engravings|400,
+{
mes "You can read some words engraved inside this rock, but some are erased by wind and time:";
next;
mes "\".. can use this .. power..´. . .´. . . amplify a spell ..´.";
@@ -88,7 +92,8 @@ L_SuggestChannelling:
}
-function|script|StartChannelling|{
+function|script|StartChannelling|,
+{
if (isat("052-1.gat",53,38) == 0)
end;
if ($@illia_level_4_progress > 0)
@@ -125,7 +130,8 @@ function|script|StartChannelling|{
}
-052-1.gat,53,38,0|script|#Power Circle|368,{
+052-1.gat,53,38,0|script|#Power Circle|368,
+{
set @step, 4;
if ($@illia_progress < @step)
goto L_ShouldNotBeHere;
@@ -250,11 +256,11 @@ S_CheckChannelling:
set $@illia_channelling_status_msg$, $@illia_char_channelling$ + ": Damn! It faded a little.";
if ($@illia_channelling_status_msg$ != "")
- areatimer "052-1.gat", 1, 1, 100, 80, 0, "#Power Circle::onMPSC";
+ areatimer "052-1.gat", 1, 1, 100, 80, 0, "#Power Circle::OnMPSC";
return;
-onMPSC:
+OnMPSC:
message strcharinfo(0), $@illia_channelling_status_msg$;
set $@illia_channelling_status_msg$, "";
end;
diff --git a/world/map/npc/052-1/janitor.txt b/world/map/npc/052-1/janitor.txt
index e2ca8c4f..0a3a5356 100644
--- a/world/map/npc/052-1/janitor.txt
+++ b/world/map/npc/052-1/janitor.txt
@@ -1,6 +1,7 @@
// Illia Island janitor
-052-1.gat,1,1,0|script|#IlliaJanitor4|127,{
+052-1.gat,1,1,0|script|#IlliaJanitor4|127,
+{
end;
OnCommandClean:
diff --git a/world/map/npc/052-2/_mobs.txt b/world/map/npc/052-2/_mobs.txt
index 8ce33c63..f105c44e 100644
--- a/world/map/npc/052-2/_mobs.txt
+++ b/world/map/npc/052-2/_mobs.txt
@@ -3,6 +3,7 @@
-052-2.gat,0,0,0|script|Mob052-2|-1,{
+052-2.gat,0,0,0|script|Mob052-2|-1,
+{
end;
}
diff --git a/world/map/npc/052-2/chest.txt b/world/map/npc/052-2/chest.txt
index d42cea48..f1c9872e 100644
--- a/world/map/npc/052-2/chest.txt
+++ b/world/map/npc/052-2/chest.txt
@@ -12,8 +12,8 @@
// 3: player choosed to leave the room
//-----------------------------------------------------------------------------
-052-2.gat,136,73,0|script|Chest|111,{
-
+052-2.gat,136,73,0|script|Chest|111,
+{
set @step, 8;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if (@illia_got_rewards > 2) end;
@@ -29,7 +29,7 @@ L_ShouldNotBeHere:
percentheal -100, 0;
end;
-onInit:
+OnInit:
setarray $@illia_item_common_rewards, 601, 636, 637, 638, 639, 625, 626, 658, 571, 579, 876, 782, 545, 758, 4028, 602, 536, 720, 532, 570, 642;
setarray $@illia_item_unique_rewards, 877, 878, 879, 880;
end;
@@ -139,30 +139,30 @@ L_PrepareLeaving:
L_Leave:
set @illia_got_rewards, 3;
set @illia_current_num_rewards, 0;
- addtimer 1000, "Chest::onMsg1";
- addtimer 4000, "Chest::onMsg2";
- addtimer 7000, "Chest::onMsg3";
- addtimer 9000, "Chest::onFx";
- addtimer 10000, "Chest::onRing";
+ addtimer 1000, "Chest::OnMsg1";
+ addtimer 4000, "Chest::OnMsg2";
+ addtimer 7000, "Chest::OnMsg3";
+ addtimer 9000, "Chest::OnFx";
+ addtimer 10000, "Chest::OnRing";
close;
-onMsg1:
+OnMsg1:
message strcharinfo(0), "At the moment you are wearing the ring, you start to feel dizzy...";
end;
-onMsg2:
+OnMsg2:
message strcharinfo(0), "Who is Luvia? Something isn't right... It looks like your memory is rewritten.";
end;
-onMsg3:
+OnMsg3:
message strcharinfo(0), "Damn, this ring! That Valia! Someone...";
end;
-onFx:
+OnFx:
misceffect FX_MAGIC_BLUE_TELEPORT, strcharinfo(0);
end;
-onRing:
+OnRing:
warp "007-1.gat", 85 + rand(0,2), 75 + rand(0,2);
if (strcharinfo(0) == $@ILLIA_HERO$)
goto L_ScheduleEnd;
diff --git a/world/map/npc/052-2/janitor.txt b/world/map/npc/052-2/janitor.txt
index 9c78d638..7ee68955 100644
--- a/world/map/npc/052-2/janitor.txt
+++ b/world/map/npc/052-2/janitor.txt
@@ -1,5 +1,6 @@
// Lobby janitor
-052-2.gat,1,1,0|script|#IlliaJanitor5|127,{
+052-2.gat,1,1,0|script|#IlliaJanitor5|127,
+{
end;
OnCommandClean:
@@ -11,23 +12,25 @@ OnCommandClean:
}
// Storage janitor
-052-2.gat,1,1,0|script|#IlliaJanitor6|127,{
+052-2.gat,1,1,0|script|#IlliaJanitor6|127,
+{
end;
OnCommandClean:
- killmonster "052-2.gat", "#ItemsInvoker::onDeath";
+ killmonster "052-2.gat", "#ItemsInvoker::OnDeath";
npcwarp 1, 1, "#ItemsInvoker";
end;
}
// Final boss janitor
-052-2.gat,1,1,0|script|#IlliaJanitor7|127,{
+052-2.gat,1,1,0|script|#IlliaJanitor7|127,
+{
end;
OnCommandClean:
- killmonster "052-2.gat", "#LuviaDaemon::onDeath";
- killmonster "052-2.gat", "#LuviaDaemon::onWGD";
+ killmonster "052-2.gat", "#LuviaDaemon::OnDeath";
+ killmonster "052-2.gat", "#LuviaDaemon::OnWGD";
npcwarp 83, 28, "#LuviaDaemon";
npcwarp 88, 15, "Luvia";
end;
diff --git a/world/map/npc/052-2/lobby.txt b/world/map/npc/052-2/lobby.txt
index b50a0273..744a0a2a 100644
--- a/world/map/npc/052-2/lobby.txt
+++ b/world/map/npc/052-2/lobby.txt
@@ -14,7 +14,8 @@
// 8: Witch guards defeated. Door is open.
//-----------------------------------------------------------------------------
-052-2.gat,40,19,0|script|#InnDoorTrigger|32767,2,2,{
+052-2.gat,40,19,0|script|#InnDoorTrigger|32767,2,2,
+{
set @step, 5;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_5_progress == 8) goto L_Warp;
@@ -32,7 +33,8 @@ L_ShouldNotBeHere:
}
-052-2.gat,33,40,0|script|#EntranceTrigger|32767,4,2,{
+052-2.gat,33,40,0|script|#EntranceTrigger|32767,4,2,
+{
set @step, 5;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_5_progress == 0 && strcharinfo(0) == $@ILLIA_HERO$) goto L_StartVoices;
@@ -48,7 +50,8 @@ L_ShouldNotBeHere:
end;
}
-052-2.gat,1,1,0|script|#LuviaShadow|127,{
+052-2.gat,1,1,0|script|#LuviaShadow|127,
+{
end;
// Escape sequence
@@ -100,10 +103,11 @@ OnNN:
}
-052-2.gat,1,1,0|script|#MysteriousVoice|127,{
+052-2.gat,1,1,0|script|#MysteriousVoice|127,
+{
end;
-onInit:
+OnInit:
setarray $@illia_lobby_voices$, "Finally.", "I was...", "Waiting...", "For you!";
end;
@@ -145,7 +149,8 @@ L_Continue:
// Dummy npc to display the mysterious voice,
// as a workaround to fakenpcname causing problems
-052-2.gat,1,1,0|script|?|127,{
+052-2.gat,1,1,0|script|?|127,
+{
end;
OnCommandTalk:
@@ -154,7 +159,8 @@ OnCommandTalk:
}
-052-2.gat,1,1,0|script|Luvia?|371,2,2{
+052-2.gat,1,1,0|script|Luvia?|371,2,2
+{
if ($@illia_level_5_progress != 3) end;
if (isin("052-2.gat", 37,36, 41,39)) goto L_HandleTalk;
// Notify too far
@@ -230,7 +236,7 @@ OnTimer24500:
npctalk "Demonotis!";
misceffect FX_EVIL_SUMMON;
callsub S_GetHeroRect;
- areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1101, 20 + 16 - 480/(30+$Illia_Luvia_Harvest), "Luvia?::onDSDeath";
+ areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1101, 20 + 16 - 480/(30+$Illia_Luvia_Harvest), "Luvia?::OnDSDeath";
callsub S_ClearHeroRect;
end;
@@ -240,7 +246,7 @@ OnTimer44000:
npctalk "Demonotis!";
misceffect FX_EVIL_SUMMON;
callsub S_GetHeroRect;
- areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1101, 28 + 16 - 480/(30+$Illia_Luvia_Harvest), "Luvia?::onDSDeath";
+ areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1101, 28 + 16 - 480/(30+$Illia_Luvia_Harvest), "Luvia?::OnDSDeath";
callsub S_ClearHeroRect;
end;
@@ -250,7 +256,7 @@ OnTimer77000:
npctalk "Demonotis!";
misceffect FX_EVIL_SUMMON;
callsub S_GetHeroRect;
- areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1101, 42 + 16 - 480/(30+$Illia_Luvia_Harvest), "Luvia?::onDSDeath";
+ areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1101, 42 + 16 - 480/(30+$Illia_Luvia_Harvest), "Luvia?::OnDSDeath";
callsub S_ClearHeroRect;
// That was the last spawn: reset the timer to start the CheckInvoke loop.
set $@illia_level_5_progress, 5;
@@ -283,7 +289,7 @@ OnTimer18500:
misceffect FX_EVIL_SUMMON;
misceffect FX_MAGIC_DARK_EXPLOSION;
callsub S_GetHeroRect;
- areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1103, 8 + (16 - 480/(30+$Illia_Luvia_Harvest))/3, "Luvia?::onWGDeath";
+ areamonster "052-2.gat", $@illia_lobby_x1, $@illia_lobby_y1, $@illia_lobby_x2, $@illia_lobby_y2, "", 1103, 8 + (16 - 480/(30+$Illia_Luvia_Harvest))/3, "Luvia?::OnWGDeath";
callsub S_ClearHeroRect;
end;
@@ -303,19 +309,19 @@ OnTimer2000:
end;
setnpctimer 0;
// Mock players randomly (more or less once every 40 secs) and if still enough mobs running after them
- if ($@illia_level_5_progress == 5 && rand(20) == 0 && (mobcount("052-2.gat", "Luvia?::onDSDeath") > 20))
+ if ($@illia_level_5_progress == 5 && rand(20) == 0 && (mobcount("052-2.gat", "Luvia?::OnDSDeath") > 20))
npctalk "Ahaha! Run... Run!";
- if ($@illia_level_5_progress == 5 && (mobcount("052-2.gat", "Luvia?::onDSDeath") < 0))
+ if ($@illia_level_5_progress == 5 && (mobcount("052-2.gat", "Luvia?::OnDSDeath") < 0))
goto L_AllWavesClear;
- if ($@illia_level_5_progress == 7 && (mobcount("052-2.gat", "Luvia?::onWGDeath") < 0))
+ if ($@illia_level_5_progress == 7 && (mobcount("052-2.gat", "Luvia?::OnWGDeath") < 0))
goto L_AllWavesClear;
end;
L_Clear:
stopnpctimer;
setnpctimer 0;
- killmonster "052-2.gat", "Luvia?::onDSDeath";
- killmonster "052-2.gat", "Luvia?::onWGDeath";
+ killmonster "052-2.gat", "Luvia?::OnDSDeath";
+ killmonster "052-2.gat", "Luvia?::OnWGDeath";
end;
L_AllWavesClear:
@@ -366,10 +372,10 @@ S_ClearHeroRect:
set $@illia_lobby_y2, 0;
return;
-onDSDeath:
+OnDSDeath:
end;
-onWGDeath:
+OnWGDeath:
end;
}
diff --git a/world/map/npc/052-2/partyroom.txt b/world/map/npc/052-2/partyroom.txt
index acba1fdc..edbade40 100644
--- a/world/map/npc/052-2/partyroom.txt
+++ b/world/map/npc/052-2/partyroom.txt
@@ -9,7 +9,8 @@
// 3: Luvia is defeated
//-----------------------------------------------------------------------------
-052-2.gat,88,19,0|script|#TriggerDialog|32767,3,2,{
+052-2.gat,88,19,0|script|#TriggerDialog|32767,3,2,
+{
set @step, 7;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_7_progress == 0 && strcharinfo(0) == $@ILLIA_HERO$) goto L_SpawnLuvia;
@@ -28,7 +29,8 @@ L_ShouldNotBeHere:
// A trigger whose only purpose is to place Luvia npcs back in place.
// (even though the Janitor 7 will have done this job)
-052-2.gat,77,48,0|script|#TriggerPlaceLuvia|32767,1,1,{
+052-2.gat,77,48,0|script|#TriggerPlaceLuvia|32767,1,1,
+{
if (strcharinfo(0) != $@ILLIA_HERO$) end;
if ($@illia_progress == 7 && $@illia_level_7_progress == 0) goto L_PlaceLuvia;
end;
@@ -40,7 +42,8 @@ L_PlaceLuvia:
}
-052-2.gat,88,15,0|script|Luvia|371,{
+052-2.gat,88,15,0|script|Luvia|371,
+{
set @step, 7;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_7_progress == 0 && strcharinfo(0) == $@ILLIA_HERO$) goto L_Start;
@@ -80,7 +83,8 @@ OnTimer15000:
}
-052-2.gat,88,15,0|script|#LuviaDaemon|127,{
+052-2.gat,88,15,0|script|#LuviaDaemon|127,
+{
end;
OnCommandInvoke:
@@ -138,7 +142,7 @@ OnTimer5500:
enablenpc "#LuviaDaemon";
misceffect FX_EVIL_SUMMON;
misceffect FX_CHANNELLING_CAST;
- monster "052-2.gat", $@illia_luvia_x, $@illia_luvia_y, "", 1102, 1, "#LuviaDaemon::onDeath";
+ monster "052-2.gat", $@illia_luvia_x, $@illia_luvia_y, "", 1102, 1, "#LuviaDaemon::OnDeath";
set $@illia_luvia_x, 0;
set $@illia_luvia_y, 0;
end;
@@ -178,9 +182,9 @@ S_SpawnWitchGuard:
npcwarp getx(), gety(), "#LuviaDaemon";
misceffect FX_EVIL_SUMMON;
misceffect FX_GROUND_SPAWN;
- monster "052-2.gat", getx(), gety(), "", 1103, 1, "#LuviaDaemon::onWGD";
+ monster "052-2.gat", getx(), gety(), "", 1103, 1, "#LuviaDaemon::OnWGD";
detachrid;
- areatimer "052-2.gat", 73, 11, 115, 49, 0, "#LuviaDaemon::onWGS";
+ areatimer "052-2.gat", 73, 11, 115, 49, 0, "#LuviaDaemon::OnWGS";
return;
OnTimer30000:
@@ -196,7 +200,7 @@ OnTimer30000:
L_TriggerTrance:
set $@illia_level_7_progress, 3;
set $@illia_luvia_trance_delay, 0;
- areatimer "052-2.gat", 73, 11, 115, 49, 0, "#LuviaDaemon::onTT";
+ areatimer "052-2.gat", 73, 11, 115, 49, 0, "#LuviaDaemon::OnTT";
setnpctimer 0;
end;
@@ -205,19 +209,19 @@ L_Clear:
setnpctimer 0;
end;
-onDeath:
+OnDeath:
stopnpctimer;
setnpctimer 0;
if ($@illia_progress != 7)
end;
set $@illia_level_7_progress, 4;
- killmonster "052-2.gat", "#LuviaDaemon::onWGD";
+ killmonster "052-2.gat", "#LuviaDaemon::OnWGD";
mapannounce "052-2.gat", "Luvia: How? By mere humans! But we will see again! Enjoy your victory while it lasts, " + $@ILLIA_HERO$ + "!!", 0;
set @illia_bp, $Illia_Luvia_Harvest * 16 / 10 + 120;
set BOSS_POINTS, BOSS_POINTS + @illia_bp;
message strcharinfo(0), "You gain " + @illia_bp + " Boss Points giving you a total of " + BOSS_POINTS + ".";
set @illia_bp, 0;
- areatimer "052-2.gat", 73, 11, 115, 49, 2000, "#LuviaDaemon::onW00t";
+ areatimer "052-2.gat", 73, 11, 115, 49, 2000, "#LuviaDaemon::OnW00t";
set $@illia_progress, 8;
callfunc "UpdateIlliaProgress";
@@ -245,27 +249,28 @@ onDeath:
end;
-onWGD:
+OnWGD:
end;
-onWGS:
+OnWGS:
if ($@illia_level_7_progress == 2)
message strcharinfo(0), "One of Luvia's guard spawned from the depths to assist her!";
end;
-onTT:
+OnTT:
if ($@illia_level_7_progress == 3)
message strcharinfo(0), "Luvia seems to become in trance!";
end;
-onW00t:
+OnW00t:
message strcharinfo(0), "You defeated this evil sorceress... But what about her sister now?";
end;
}
// Warp from the party room, to the chest room
-052-2.gat,88,12,0|script|#ToLuviaRoomDoor|32767,1,2,{
+052-2.gat,88,12,0|script|#ToLuviaRoomDoor|32767,1,2,
+{
set @step, 7;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_7_progress < 4) end;
diff --git a/world/map/npc/052-2/storage.txt b/world/map/npc/052-2/storage.txt
index b52dc759..464eee9b 100644
--- a/world/map/npc/052-2/storage.txt
+++ b/world/map/npc/052-2/storage.txt
@@ -8,7 +8,8 @@
// 2: All spawns are done and the players killed all mobs
//-----------------------------------------------------------------------------
-052-2.gat,23,69,0|script|#TriggerItemsInvoker|32767,1,0,{
+052-2.gat,23,69,0|script|#TriggerItemsInvoker|32767,1,0,
+{
set @step, 6;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if (strcharinfo(0) != $@ILLIA_HERO$) end;
@@ -26,10 +27,11 @@ L_StartItemInvoker:
}
-052-2.gat,1,1,0|script|#ItemsInvoker|127,{
+052-2.gat,1,1,0|script|#ItemsInvoker|127,
+{
end;
-onInit:
+OnInit:
setarray $@illia_storage_items, 541, 567, 568, 562;
setarray $@illia_storage_special_items, 687, 827, 1229;
// Map coords : x1,y1, x2,y2, ...
@@ -40,10 +42,10 @@ OnCommandStart:
set $@illia_storage_max_items, 20;
set $@illia_storage_deviation, (8 + ($Illia_Luvia_Harvest*70)/100)*3;
initnpctimer;
- areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::onStart";
+ areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::OnStart";
end;
-onStart:
+OnStart:
message strcharinfo(0), "You feel a strange atmosphere in this room... You sense a strong magic rising from the depth!";
end;
@@ -62,7 +64,7 @@ OnTimer1000:
OnTimer1500:
// See the note above.
enablenpc "#ItemsInvoker";
- areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::onItem";
+ areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::OnItem";
misceffect FX_GROUND_SPAWN;
end;
@@ -73,7 +75,7 @@ OnTimer3750:
set $@item_invoke_index, 0;
end;
-onItem:
+OnItem:
if (strcharinfo(0) == $@ILLIA_HERO$)
goto L_ItemSpawn;
end;
@@ -106,20 +108,20 @@ L_ItemSpawn:
end;
L_MakeSpecialMonster:
- monster "052-2.gat", $@item_invoke_x, $@item_invoke_y, "", 1103, 1, "#ItemsInvoker::onDeath";
- areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::onWtf";
+ monster "052-2.gat", $@item_invoke_x, $@item_invoke_y, "", 1103, 1, "#ItemsInvoker::OnDeath";
+ areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::OnWtf";
set $@illia_storage_max_items, $@illia_storage_max_items - 1;
end;
L_MakeMonster:
- monster "052-2.gat", $@item_invoke_x, $@item_invoke_y, "", 1101, rand(1, 3), "#ItemsInvoker::onDeath";
+ monster "052-2.gat", $@item_invoke_x, $@item_invoke_y, "", 1101, rand(1, 3), "#ItemsInvoker::OnDeath";
set $@illia_storage_max_items, $@illia_storage_max_items - 1;
set @r, 0;
end;
L_MakeSpecialItem:
makeitem $@illia_storage_special_items[rand(getarraysize($@illia_storage_special_items))], rand(2, 4), "052-2.gat", $@item_invoke_x, $@item_invoke_y;
- areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::onWow";
+ areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::OnWow";
set $@illia_storage_max_items, $@illia_storage_max_items - 1;
set @r, 0;
end;
@@ -127,7 +129,7 @@ L_MakeSpecialItem:
L_CheckMobs:
if ($@illia_progress != 6)
goto L_Clear;
- if (mobcount("052-2.gat", "#ItemsInvoker::onDeath") < 0)
+ if (mobcount("052-2.gat", "#ItemsInvoker::OnDeath") < 0)
goto L_Stop;
setnpctimer 0;
end;
@@ -137,7 +139,7 @@ L_Clear:
setnpctimer 0;
set $@illia_storage_deviation, 0;
set $@illia_storage_max_items, 0;
- killmonster "052-2.gat", "#ItemsInvoker::onDeath";
+ killmonster "052-2.gat", "#ItemsInvoker::OnDeath";
end;
L_Stop:
@@ -150,27 +152,28 @@ L_Stop:
set $@illia_progress, 7;
callfunc "UpdateIlliaProgress";
set $@illia_max_time, $@illia_max_time + 1200;
- areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::onStop";
+ areatimer "052-2.gat", 19, 60, 35, 78, 10, "#ItemsInvoker::OnStop";
end;
-onDeath:
+OnDeath:
end;
-onStop:
+OnStop:
message strcharinfo(0), "The magic seems to quickly dissipate.";
end;
-onWtf:
+OnWtf:
message strcharinfo(0), "Look out!";
end;
-onWow:
+OnWow:
message strcharinfo(0), "Wow, see what appeared!";
end;
}
-052-2.gat,35,68,0|script|#ToPartyRoom|32767,1,1,{
+052-2.gat,35,68,0|script|#ToPartyRoom|32767,1,1,
+{
set @step, 6;
if ($@illia_progress < @step) goto L_ShouldNotBeHere;
if ($@illia_level_6_progress == 2) goto L_Warp;
diff --git a/world/map/npc/055-1/_mobs.txt b/world/map/npc/055-1/_mobs.txt
index 0c1623be..7b3e9102 100644
--- a/world/map/npc/055-1/_mobs.txt
+++ b/world/map/npc/055-1/_mobs.txt
@@ -20,7 +20,8 @@
055-1.gat,0,0,0,0|monster|SpikyMushroom|1019,7,10000,60000,Mob055-1::On1019
-055-1.gat,0,0,0|script|Mob055-1|-1,{
+055-1.gat,0,0,0|script|Mob055-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/055-1/_warps.txt b/world/map/npc/055-1/_warps.txt
index e9d4d2af..be1df9d0 100644
--- a/world/map/npc/055-1/_warps.txt
+++ b/world/map/npc/055-1/_warps.txt
@@ -1,8 +1,8 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Woodland Hills warps
-055-1.gat,100,82|warp|To Cave|-1,-1,055-3.gat,30,27
-055-1.gat,100,89|warp|To Cave|-1,-1,055-3.gat,50,41
+055-1.gat,100,83|warp|To Cave|-1,-1,055-3.gat,30,27
+055-1.gat,100,89|warp|To Cave|-1,-1,055-3.gat,50,42
055-1.gat,22,52|warp|To Woodland Hills|-1,2,013-1.gat,135,51
055-1.gat,137,96|warp|To Cave|-1,-1,055-3.gat,76,39
055-1.gat,60,93|warp|To Cave|-1,-1,055-3.gat,96,70
diff --git a/world/map/npc/055-1/pumpkins.txt b/world/map/npc/055-1/pumpkins.txt
index c2008c1e..53783ebf 100644
--- a/world/map/npc/055-1/pumpkins.txt
+++ b/world/map/npc/055-1/pumpkins.txt
@@ -4,7 +4,8 @@
055-1.gat,132,24,6,4|monster|Spawn Pumpkin|1063,4,10000,5000,PumpkinMob055-1::On1063
-055-1.gat,0,0,0|script|PumpkinMob055-1|-1,{
+055-1.gat,0,0,0|script|PumpkinMob055-1|-1,
+{
On1063:
if (Quest_Halloween != 1 || !(gettime(6) == 11 && (gettime(5) >= 4 && gettime(5) <= 30)))
goto L_HeavyPoison;
diff --git a/world/map/npc/055-3/_mobs.txt b/world/map/npc/055-3/_mobs.txt
index d7be296c..0710492f 100644
--- a/world/map/npc/055-3/_mobs.txt
+++ b/world/map/npc/055-3/_mobs.txt
@@ -9,7 +9,8 @@
055-3.gat,0,0,1,1|monster|Snake|1010,3,10000,20000,Mob055-3::On1010
-055-3.gat,0,0,0|script|Mob055-3|-1,{
+055-3.gat,0,0,0|script|Mob055-3|-1,
+{
On1007:
set @mobID, 1007;
callfunc "MobPoints";
diff --git a/world/map/npc/055-3/_warps.txt b/world/map/npc/055-3/_warps.txt
index cc320f4e..2440e161 100644
--- a/world/map/npc/055-3/_warps.txt
+++ b/world/map/npc/055-3/_warps.txt
@@ -2,8 +2,8 @@
// Cave warps
055-3.gat,77,40|warp|To Woodland Hills|0,-1,055-1.gat,137,97
-055-3.gat,30,26|warp|To Woodland Hills|-1,-1,055-1.gat,100,81
-055-3.gat,50,42|warp|To Outside|-1,-1,055-1.gat,100,90
+055-3.gat,30,26|warp|To Woodland Hills|-1,-1,055-1.gat,100,82
+055-3.gat,50,43|warp|To Outside|-1,-1,055-1.gat,100,90
055-3.gat,96,71|warp|To Woodland Hills|0,-1,055-1.gat,60,94
055-3.gat,58,96|warp|To Cave|0,-1,055-3.gat,98,115
-055-3.gat,98,114|warp|To Cave|-1,-1,055-3.gat,57,94
+055-3.gat,98,114|warp|To Cave|-1,-1,055-3.gat,57,95
diff --git a/world/map/npc/056-1/_mobs.txt b/world/map/npc/056-1/_mobs.txt
index f6ca686f..39362817 100644
--- a/world/map/npc/056-1/_mobs.txt
+++ b/world/map/npc/056-1/_mobs.txt
@@ -6,7 +6,8 @@
056-1.gat,0,0,0,0|monster|MauvePlant|1029,2,10000,85000,Mob056-1::On1029
-056-1.gat,0,0,0|script|Mob056-1|-1,{
+056-1.gat,0,0,0|script|Mob056-1|-1,
+{
On1013:
set @mobID, 1013;
callfunc "MobPoints";
diff --git a/world/map/npc/056-2/_mobs.txt b/world/map/npc/056-2/_mobs.txt
index 75c4d9f3..c893945e 100644
--- a/world/map/npc/056-2/_mobs.txt
+++ b/world/map/npc/056-2/_mobs.txt
@@ -3,6 +3,7 @@
-056-2.gat,0,0,0|script|Mob056-2|-1,{
+056-2.gat,0,0,0|script|Mob056-2|-1,
+{
end;
}
diff --git a/world/map/npc/056-2/barrier.txt b/world/map/npc/056-2/barrier.txt
index dc26dbfb..a9f12a5d 100644
--- a/world/map/npc/056-2/barrier.txt
+++ b/world/map/npc/056-2/barrier.txt
@@ -1,4 +1,5 @@
-056-2.gat,23,33,0|script|#Barrier|45,0,0,{
+056-2.gat,23,33,0|script|#Barrier|45,0,0,
+{
if (Mirak_Bantime > gettimetick(2))
goto L_Block;
if (BaseLevel < 25)
diff --git a/world/map/npc/056-2/mirak.txt b/world/map/npc/056-2/mirak.txt
index d4b8195a..65b46e39 100644
--- a/world/map/npc/056-2/mirak.txt
+++ b/world/map/npc/056-2/mirak.txt
@@ -1,4 +1,5 @@
-056-2.gat,67,24,0|script|Mirak|372,{
+056-2.gat,67,24,0|script|Mirak|372,
+{
// Variables to set:
// @dq_cost - The number of points this quest uses
// @dq_money - The money reward for doing the quest
diff --git a/world/map/npc/056-2/notes.txt b/world/map/npc/056-2/notes.txt
index acc9ef87..fb29cd68 100644
--- a/world/map/npc/056-2/notes.txt
+++ b/world/map/npc/056-2/notes.txt
@@ -1,11 +1,13 @@
-056-2.gat,77,34,0|script|Warning|400,{
+056-2.gat,77,34,0|script|Warning|400,
+{
mes "Turn around. Do not come any closer!";
mes "Go back upstairs and leave! I don't want to see anybody!";
mes "This is the last warning!";
mes "- Mirak";
close;
}
-056-2.gat,29,30,0|script|Note|400,{
+056-2.gat,29,30,0|script|Note|400,
+{
mes "DO NOT GO ANY FURTHER!";
mes "Put the supplies on the table and do not come downstairs. I don't want to be bothered.";
mes "- Mirak";
diff --git a/world/map/npc/057-1/_mobs.txt b/world/map/npc/057-1/_mobs.txt
index a51bf07a..66dedc41 100644
--- a/world/map/npc/057-1/_mobs.txt
+++ b/world/map/npc/057-1/_mobs.txt
@@ -21,7 +21,8 @@
057-1.gat,27,46,14,52|monster|Squirrel|1038,6,10000,50000,Mob057-1::On1038
-057-1.gat,0,0,0|script|Mob057-1|-1,{
+057-1.gat,0,0,0|script|Mob057-1|-1,
+{
On1014:
set @mobID, 1014;
callfunc "MobPoints";
diff --git a/world/map/npc/_import.txt b/world/map/npc/_import.txt
index 05d7791e..9620fa64 100644
--- a/world/map/npc/_import.txt
+++ b/world/map/npc/_import.txt
@@ -4,8 +4,10 @@ import: npc/001-1/_import.txt
import: npc/001-2/_import.txt
import: npc/001-3/_import.txt
import: npc/002-1/_import.txt
+import: npc/002-2/_import.txt
import: npc/002-3/_import.txt
import: npc/002-4/_import.txt
+import: npc/002-5/_import.txt
import: npc/003-1/_import.txt
import: npc/003-2/_import.txt
import: npc/004-1/_import.txt
@@ -56,6 +58,7 @@ 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/021-3/_import.txt
import: npc/022-1/_import.txt
import: npc/024-1/_import.txt
import: npc/024-2/_import.txt
@@ -87,6 +90,8 @@ import: npc/034-2/_import.txt
import: npc/041-1/_import.txt
import: npc/042-1/_import.txt
import: npc/042-2/_import.txt
+import: npc/043-1/_import.txt
+import: npc/043-3/_import.txt
import: npc/044-1/_import.txt
import: npc/044-3/_import.txt
import: npc/045-1/_import.txt
diff --git a/world/map/npc/botcheck/_import.txt b/world/map/npc/botcheck/_import.txt
index 26445239..3702ba87 100644
--- a/world/map/npc/botcheck/_import.txt
+++ b/world/map/npc/botcheck/_import.txt
@@ -3,3 +3,4 @@
map: botcheck.gat
npc: npc/botcheck/_mobs.txt
npc: npc/botcheck/_warps.txt
+npc: npc/botcheck/announcements.txt
diff --git a/world/map/npc/botcheck/_mobs.txt b/world/map/npc/botcheck/_mobs.txt
index c227a333..208ec7b1 100644
--- a/world/map/npc/botcheck/_mobs.txt
+++ b/world/map/npc/botcheck/_mobs.txt
@@ -3,6 +3,7 @@
-botcheck.gat,0,0,0|script|Mobbotcheck|-1,{
+botcheck.gat,0,0,0|script|Mobbotcheck|-1,
+{
end;
}
diff --git a/world/map/npc/botcheck/announcements.txt b/world/map/npc/botcheck/announcements.txt
new file mode 100644
index 00000000..b7580596
--- /dev/null
+++ b/world/map/npc/botcheck/announcements.txt
@@ -0,0 +1,173 @@
+//############################################################################
+//# #
+//# GM scheduled broadcasts #
+//# #
+//############################################################################
+
+// $@GMSA_STATUS values:
+// 0: Broadcasts not running
+// 1: Broadcasts running
+// $@GMSA_NAME$: the GM/Admin who created the broadcast, if any
+// $@GMSA_MSG$: the message to be broadcasted
+// $@GMSA_MAX: the number of times the broadcast will be performed, if > 0
+// $@GMSA_TICK: broadcast the message every $@GMSA_TICK hours
+// $@GMSA_CURRENT_TICK: internal counter incremented every hour
+
+botcheck.gat,49,29,0|script|Stone Board|348,
+{
+if (getgmlevel() < 60)
+ goto L_Close;
+
+if ($@GMSA_STATUS == 0)
+ goto L_PrepareBroadcast;
+if ($@GMSA_STATUS == 1)
+ goto L_InfoBroadcast;
+
+L_InfoBroadcast:
+ set @next_broadcast_ts, (3600000*($@GMSA_TICK - $@GMSA_CURRENT_TICK) - getnpctimer(0))/1000;
+ set @next_broadcast_h, @next_broadcast_ts/3600;
+ set @next_broadcast_m, (@next_broadcast_ts - @next_broadcast_h*3600)/60;
+
+ mes "[GM Scheduled Broadcasts Board]";
+ mes $@GMSA_NAME$ + " scheduled the current message, every " + $@GMSA_TICK + " hour(s):";
+ mes $@GMSA_MSG$;
+ next;
+ if (@next_broadcast_h > 0)
+ mes "The next broadcast will happen in " + @next_broadcast_h + " hour(s) and " + @next_broadcast_m + " minute(s).";
+ if (@next_broadcast_h == 0)
+ mes "The next broadcast will happen in " + @next_broadcast_m + " minute(s).";
+ next;
+
+ set @next_broadcast_ts, 0;
+ set @next_broadcast_h, 0;
+ set @next_broadcast_m, 0;
+
+ mes "What do you want to do?";
+ menu
+ "Nothing.", L_Close,
+ "Nothing but... what is this?", L_Help,
+ "Stop broadcasting.", L_StopBroadcast,
+ "Trigger manually the current broadcast.", L_ManualBroadcast;
+
+L_PrepareBroadcast:
+ callsub S_Help;
+ next;
+ mes "There is no broadcast scheduled.";
+ mes "Do you want to create one?";
+ menu
+ "No.", L_Close,
+ "Yes.", L_CreateBroadcast;
+
+L_CreateBroadcast:
+ mes "[GM Scheduled Broadcasts Board]";
+ mes "Enter the message to broadcast:";
+ input $@GMSA_MSG$;
+ if ($@GMSA_MSG$ == "")
+ goto L_InvalidBroadcastMessage;
+
+ next;
+ mes "[GM Scheduled Broadcasts Board]";
+ mes "The message will be broadcasted every X hour(s). Enter X:";
+ input $@GMSA_TICK;
+ if ($@GMSA_TICK < 1)
+ goto L_InvalidBroadcastTick;
+
+ next;
+ mes "[GM Scheduled Broadcasts Board]";
+ mes "If you want the message to be broadcasted a limited number of times, enter its value. Keep 0 otherwise:";
+ input $@GMSA_MAX;
+
+ next;
+ mes "[GM Scheduled Broadcasts Board]";
+ if ($@GMSA_MAX == 0)
+ mes "The current message will be broadcasted every " + $@GMSA_TICK + " hour(s):";
+ if ($@GMSA_MAX > 0)
+ mes "The current message will be broadcasted every " + $@GMSA_TICK + " hour(s), up to " + $@GMSA_MAX + " times:";
+ mes $@GMSA_MSG$;
+ next;
+ mes "Is this correct?";
+ menu
+ "No. I'll retry.", L_CreateBroadcast,
+ "No", L_Close,
+ "Yes. Broadcast this. (the first broadcast will happen in " + $@GMSA_TICK + " hour(s).)", L_StartBroadcast,
+ "Yes. Broadcast this, and make an extra broadcast right now.", L_StartBroadcast2;
+
+L_InvalidBroadcastMessage:
+ mes "[GM Scheduled Broadcasts Board]";
+ mes "The message can't be empty. Please retry.";
+ goto L_CreateBroadcast;
+
+L_InvalidBroadcastTick:
+ mes "[GM Scheduled Broadcasts Board]";
+ mes "You obviously can't repeat a message every 0 hours. Please retry.";
+ goto L_CreateBroadcast;
+
+L_Help:
+ callsub S_Help;
+ goto L_Close;
+
+S_Help:
+ mes "[GM Scheduled Broadcasts Board]";
+ mes "This board allows a GM to schedule a message to be broadcast every X hours.";
+ mes "Only one broadcast can be scheduled at a time.";
+ return;
+
+S_PerformBroadcast:
+ announce $@GMSA_MSG$, 0;
+ return;
+
+L_ManualBroadcast:
+ callsub S_PerformBroadcast;
+ mes "Done.";
+ goto L_Close;
+
+L_StopBroadcast:
+ callsub S_StopBroadcast;
+ mes "Done.";
+ goto L_Close;
+
+S_StopBroadcast:
+ stopnpctimer;
+ setnpctimer 0;
+ set $@GMSA_STATUS, 0;
+ set $@GMSA_NAME$, "";
+ set $@GMSA_MSG$, "";
+ set $@GMSA_TICK, 0;
+ set $@GMSA_MAX, 0;
+ set $@GMSA_CURRENT_TICK, 0;
+ return;
+
+L_StartBroadcast2:
+ if ($@GMSA_STATUS == 1)
+ goto L_Abort;
+ callsub S_PerformBroadcast;
+L_StartBroadcast:
+ if ($@GMSA_STATUS == 1)
+ goto L_Abort;
+ set $@GMSA_STATUS, 1;
+ set $@GMSA_NAME$, strcharinfo(0);
+ set $@GMSA_CURRENT_TICK, 0;
+ initnpctimer;
+ mes "Done.";
+ goto L_Close;
+
+L_Abort:
+ mes "[GM Scheduled Broadcasts Board]";
+ mes $@GMSA_NAME$ + " has created a scheduled broadcast just before you, hence yours will abort.";
+ goto L_Close;
+
+L_Close:
+ close;
+
+OnTimer3600000:
+ set $@GMSA_CURRENT_TICK, $@GMSA_CURRENT_TICK + 1;
+ setnpctimer 0;
+ if ($@GMSA_CURRENT_TICK != $@GMSA_TICK)
+ end;
+ callsub S_PerformBroadcast;
+ set $@GMSA_CURRENT_TICK, 0;
+ set $@GMSA_MAX, $@GMSA_MAX - 1;
+ if ($@GMSA_MAX != 0)
+ end;
+ callsub S_StopBroadcast;
+}
diff --git a/world/map/npc/easter/2010/eggs.txt b/world/map/npc/easter/2010/eggs.txt
index 0b1af508..cf4b81f4 100644
--- a/world/map/npc/easter/2010/eggs.txt
+++ b/world/map/npc/easter/2010/eggs.txt
@@ -85,6 +85,7 @@ L_Needle:
end;
OnInit:
+ if (debug >= 2) end;
initnpctimer;
OnTimer300000:
diff --git a/world/map/npc/functions/banker.txt b/world/map/npc/functions/banker.txt
index 863f3ce1..8ecb85fb 100644
--- a/world/map/npc/functions/banker.txt
+++ b/world/map/npc/functions/banker.txt
@@ -1,8 +1,10 @@
//
-function|script|Banker|{
-
- if (BankAccount > 0) callsub S_MoveAccount;
+function|script|Banker|,
+{
+ if (BankAccount == 0)
+ goto L_Start;
+ callsub S_MoveAccount;
L_Start:
mes "[" + @npcname$ + "]";
diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt
index 477b4a7b..dc7f0329 100644
--- a/world/map/npc/functions/barber.txt
+++ b/world/map/npc/functions/barber.txt
@@ -9,7 +9,8 @@
// or using GM commands, but scripts (such as this one) can set
// any value 0-255
-function|script|Barber|{
+function|script|Barber|,
+{
set @style, getlook(LOOK_HAIR_STYLE);
set @color, getlook(LOOK_HAIR_COLOR);
@@ -113,7 +114,8 @@ L_Done:
// Since this is a function, not an NPC, OnInit doesn't work
// So call this from a real NPC's OnInit (001-1/barber.txt)
-function|script|OnInitBarber|{
+function|script|OnInitBarber|,
+{
setarray $@HairStyles$,
"Bald", "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk",
"Pompadour", "Center parting/Short and slick", "Long and slick",
diff --git a/world/map/npc/functions/clear_vars.txt b/world/map/npc/functions/clear_vars.txt
index 6cc311fe..1aa84d2b 100644
--- a/world/map/npc/functions/clear_vars.txt
+++ b/world/map/npc/functions/clear_vars.txt
@@ -1,6 +1,7 @@
// Clears old variables
-function|script|ClearVariables|{
+function|script|ClearVariables|,
+{
set EasterQuest, 0;
// Halloween 2006
@@ -184,8 +185,8 @@ L_Fix_Full:
// The variable TMW_Quest was used to save the progress in several subquests linearly.
// The subquests are moved to different nibbles of other variables
// to make it possible to do some of the quests in parallel.
-function|script|ClearVarTMW_Quest|{
-
+function|script|ClearVarTMW_Quest|,
+{
if (TMW_Quest == 0) goto L_Done;
if (TMW_Quest <= 6) goto L_Bernard_Mikhail;
if (TMW_Quest <= 8) goto L_Sarah;
@@ -231,7 +232,8 @@ L_Done:
return;
}
--|script|#ClearGlobalVars|-1,{
+-|script|#ClearGlobalVars|-1,
+{
OnInit:
// Clear some entries of the arrays which save the Fluffy Hunting highscore list
diff --git a/world/map/npc/functions/dailyquest.txt b/world/map/npc/functions/dailyquest.txt
index 69270c79..9b9d626e 100644
--- a/world/map/npc/functions/dailyquest.txt
+++ b/world/map/npc/functions/dailyquest.txt
@@ -27,7 +27,8 @@
// (DailyQuestBonus makes a good reward from non-daily quests)
-function|script|DailyQuestPoints|{
+function|script|DailyQuestPoints|,
+{
set @dq_earliest, gettimetick(2) - 86400;
if (DailyQuestTime < @dq_earliest)
set DailyQuestTime, @dq_earliest;
@@ -54,8 +55,8 @@ L_Bonus:
return;
}
-function|script|DailyQuest|{
-
+function|script|DailyQuest|,
+{
callfunc "DailyQuestPoints";
if (BaseLevel < @dq_level)
diff --git a/world/map/npc/functions/debug.txt b/world/map/npc/functions/debug.txt
index 83a41060..5bf82356 100755
--- a/world/map/npc/functions/debug.txt
+++ b/world/map/npc/functions/debug.txt
@@ -1,7 +1,7 @@
// Authors: alastrim, Jenalya, Ali-G
-function|script|Debug|{
-
+function|script|Debug|,
+{
L_Begin:
set @debug_mask, 65535;
set @debug_shift, 0;
@@ -861,7 +861,8 @@ L_ResetAll:
}
-042-2.gat,30,26,0|script|Debug0|154,{
+042-2.gat,30,26,0|script|Debug0|154,
+{
callfunc "Debug";
end;
OnInit:
@@ -869,7 +870,8 @@ OnInit:
disablenpc "Debug0";
}
-001-1.gat,41,29,0|script|Debug1|154,{
+001-1.gat,41,29,0|script|Debug1|154,
+{
callfunc "Debug";
end;
OnInit:
@@ -877,7 +879,8 @@ OnInit:
disablenpc "Debug1";
}
-009-1.gat,52,33,0|script|Debug2|154,{
+009-1.gat,52,33,0|script|Debug2|154,
+{
callfunc "Debug";
end;
OnInit:
@@ -885,7 +888,8 @@ OnInit:
disablenpc "Debug2";
}
-020-1.gat,75,85,0|script|Debug3|154,{
+020-1.gat,75,85,0|script|Debug3|154,
+{
callfunc "Debug";
end;
OnInit:
@@ -893,7 +897,8 @@ OnInit:
disablenpc "Debug3";
}
-botcheck.gat,50,28,0|script|Debug4|154,{
+botcheck.gat,50,28,0|script|Debug4|154,
+{
callfunc "Debug";
end;
OnInit:
diff --git a/world/map/npc/functions/evil_obelisk.txt b/world/map/npc/functions/evil_obelisk.txt
index f1447375..0875abb5 100644
--- a/world/map/npc/functions/evil_obelisk.txt
+++ b/world/map/npc/functions/evil_obelisk.txt
@@ -1,4 +1,5 @@
-function|script|EvilObelisk|{
+function|script|EvilObelisk|,
+{
mes "[Evil Obelisk]";
mes "(A mystical aura surrounds this stone. It seems to crave money.)";
next;
diff --git a/world/map/npc/functions/ferry.txt b/world/map/npc/functions/ferry.txt
index dd3e83d8..0b66f68e 100644
--- a/world/map/npc/functions/ferry.txt
+++ b/world/map/npc/functions/ferry.txt
@@ -1,10 +1,12 @@
// The ferry system
-function|script|Ferry|{
+function|script|Ferry|,
+{
if (BaseLevel < 20)
goto L_LowerCost;
set @cost_tulimshar, 500;
set @cost_hurnscald, 500;
+ set @cost_nivalis, 500;
L_Start:
set @cost_candor, 1500;
@@ -19,6 +21,7 @@ L_PlainMenu:
menu
"Tulimshar (" + @cost_tulimshar + "GP)", L_Tulimshar,
"Hurnscald (" + @cost_hurnscald + "GP)", L_Hurnscald,
+ "Nivalis (" + @cost_nivalis + "GP)", L_Nivalis,
"Nevermind", -;
goto L_Close;
@@ -26,6 +29,7 @@ L_MenuWithCandor:
menu
"Tulimshar (" + @cost_tulimshar + "GP)", L_Tulimshar,
"Hurnscald (" + @cost_hurnscald + "GP)", L_Hurnscald,
+ "Nivalis (" + @cost_nivalis + "GP)", L_Nivalis,
"Candor (" + @cost_candor + "GP)", L_Candor,
"Nevermind", -;
goto L_Close;
@@ -50,6 +54,16 @@ L_Hurnscald:
warp "008-1.gat", 137, 64;
goto L_Close;
+L_Nivalis:
+ if (@loc == DOCK_nivalis)
+ goto L_AlreadyThere;
+ if (Zeny < @cost_nivalis)
+ goto L_NotEnoughGP;
+
+ set Zeny, Zeny - @cost_nivalis;
+ warp "031-1.gat", 95, 109;
+ goto L_Close;
+
L_Candor:
if (@loc == DOCK_candor)
goto L_AlreadyThere;
@@ -71,12 +85,14 @@ L_NotEnoughGP:
L_LowerCost:
set @cost_tulimshar, 250;
set @cost_hurnscald, 250;
+ set @cost_nivalis, 250;
goto L_Start;
L_Close:
set @cost_tulimshar, 0;
set @cost_hurnscald, 0;
set @cost_candor, 0;
+ set @cost_nivalis, 0;
set @loc, 0;
close;
}
diff --git a/world/map/npc/functions/game_rules.txt b/world/map/npc/functions/game_rules.txt
index 7cc2bd63..caf13cb1 100644
--- a/world/map/npc/functions/game_rules.txt
+++ b/world/map/npc/functions/game_rules.txt
@@ -1,6 +1,7 @@
//
-function|script|GameRules|{
+function|script|GameRules|,
+{
set @read, 0;
menu
"English", L_English,
diff --git a/world/map/npc/functions/inn.txt b/world/map/npc/functions/inn.txt
index 85df4122..271a4652 100644
--- a/world/map/npc/functions/inn.txt
+++ b/world/map/npc/functions/inn.txt
@@ -1,6 +1,7 @@
// INN
-function|script|Inn|{
+function|script|Inn|,
+{
mes "[" + @npcname$ + "]";
mes "\"Would you like to rest? It's only " + @cost + " gp.\"";
next;
diff --git a/world/map/npc/functions/lockpicking.txt b/world/map/npc/functions/lockpicking.txt
index 1605431d..dc05fc53 100644
--- a/world/map/npc/functions/lockpicking.txt
+++ b/world/map/npc/functions/lockpicking.txt
@@ -4,8 +4,8 @@
// The player has to find the good number of times to hit a pin
//-----------------------------------------------------------------------------
-function|script|LockPicking|{
-
+function|script|LockPicking|,
+{
set @lock_picking_success, 0;
setarray @pins, rand(1,3), rand(1,3), rand(1,3);
goto L_StartLockPicking;
diff --git a/world/map/npc/functions/magic.txt b/world/map/npc/functions/magic.txt
index bbd242c8..a1faea94 100644
--- a/world/map/npc/functions/magic.txt
+++ b/world/map/npc/functions/magic.txt
@@ -10,8 +10,8 @@
// ------------------------------------------------------------
// Gain initial magic skill
// ------------------------------------------------------------
-function|script|MagicGainBasic|{
-
+function|script|MagicGainBasic|,
+{
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DRANK_POTION;
close;
@@ -20,7 +20,8 @@ function|script|MagicGainBasic|{
// ------------------------------------------------------------
// Initialise Menu for selecting a choice of things to ask about
// ------------------------------------------------------------
-function|script|MagicTalkOptionsSetup|{
+function|script|MagicTalkOptionsSetup|,
+{
set @QQ_ELANORE, 1;
set @QQ_MANASEED, 2;
set @QQ_MANAPOTION, 4;
@@ -40,7 +41,8 @@ function|script|MagicTalkOptionsSetup|{
// ------------------------------------------------------------
-function|script|MagicTalkMenu|{
+function|script|MagicTalkMenu|,
+{
setarray @choice$, "", "", "", "", "", "", "", "", "", "";
set @choices_nr, 0;
setarray @choice_idx, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
@@ -159,7 +161,8 @@ L_Q_post_astralsoul:
// @SUP_name$ name of the skill to level up
// @SUP_xp # of experience points to award if the level up succeeds
// ------------------------------------------------------------
-function|script|SkillUp|{
+function|script|SkillUp|,
+{
if (getskilllv(@SUP_id) >= @SUP_lvl)
goto L_shortcut;
diff --git a/world/map/npc/functions/mob_points.txt b/world/map/npc/functions/mob_points.txt
index 99a71061..e4deec13 100644
--- a/world/map/npc/functions/mob_points.txt
+++ b/world/map/npc/functions/mob_points.txt
@@ -1,6 +1,7 @@
// Mob points
-function|script|MobPoints|{
+function|script|MobPoints|,
+{
if (@mobID < 1002) return;
setarray @points,
diff --git a/world/map/npc/functions/process_equip.txt b/world/map/npc/functions/process_equip.txt
index b8da56e8..1e93320a 100644
--- a/world/map/npc/functions/process_equip.txt
+++ b/world/map/npc/functions/process_equip.txt
@@ -1,6 +1,7 @@
//
-function|script|ProcessEquip|{
+function|script|ProcessEquip|,
+{
set @head, getequipid(equip_head);
set @torso, getequipid(equip_torso);
set @legs, getequipid(equip_legs);
diff --git a/world/map/npc/functions/slot_machine.txt b/world/map/npc/functions/slot_machine.txt
index a8ab7224..5d7e1ee6 100644
--- a/world/map/npc/functions/slot_machine.txt
+++ b/world/map/npc/functions/slot_machine.txt
@@ -1,6 +1,7 @@
//
-function|script|SlotMachine|{
+function|script|SlotMachine|,
+{
mes "Pull the lever...";
next;
menu
diff --git a/world/map/npc/functions/soul_menhir.txt b/world/map/npc/functions/soul_menhir.txt
index a8d3f909..02907210 100644
--- a/world/map/npc/functions/soul_menhir.txt
+++ b/world/map/npc/functions/soul_menhir.txt
@@ -1,4 +1,5 @@
-function|script|SoulMenhir|{
+function|script|SoulMenhir|,
+{
mes "[Soul Menhir]";
mes "(A mystical aura surrounds this stone. You feel mysteriously attracted to it. Something tells you to touch it. What do you do?)";
next;
diff --git a/world/map/npc/functions/strangerquiz.txt b/world/map/npc/functions/strangerquiz.txt
index 4901ca81..211e7e4b 100644
--- a/world/map/npc/functions/strangerquiz.txt
+++ b/world/map/npc/functions/strangerquiz.txt
@@ -1,5 +1,6 @@
-function|script|StrangerQuiz|{
+function|script|StrangerQuiz|,
+{
// param @quizparam$$
// return in @quizanswer$
set @quizanswer$, getspellinvocation(@quizparam$);
diff --git a/world/map/npc/functions/time.txt b/world/map/npc/functions/time.txt
index 2527b853..5f728639 100644
--- a/world/map/npc/functions/time.txt
+++ b/world/map/npc/functions/time.txt
@@ -6,7 +6,8 @@
// output @ts_date$ "yyyy-mm-dd"
// output @ts_time$ "hh:mm:ss"
-function|script|time_stamp|{
+function|script|time_stamp|,
+{
// local variables
// if there is reasonable demand, these might be exported
// (that is what the builtin is likely to do)
diff --git a/world/map/npc/functions/water_bottle.txt b/world/map/npc/functions/water_bottle.txt
index e88c5965..f24f2bc5 100644
--- a/world/map/npc/functions/water_bottle.txt
+++ b/world/map/npc/functions/water_bottle.txt
@@ -1,6 +1,7 @@
// Fills empty bottles with water
-function|script|WaterBottle|{
+function|script|WaterBottle|,
+{
set @COST_PER_BOTTLE, 150;
mes "How many empty bottles do you want to fill with water? It costs " + @COST_PER_BOTTLE + "gp per bottle.";
diff --git a/world/map/npc/halloween/2008/prize_master.txt b/world/map/npc/halloween/2008/prize_master.txt
index d2accb34..34d4236b 100644
--- a/world/map/npc/halloween/2008/prize_master.txt
+++ b/world/map/npc/halloween/2008/prize_master.txt
@@ -3,7 +3,10 @@
010-2.gat,43,32,0 script Prize Master 150,{
if (Halloween08 == 65535) goto L_Finished;
- if (Halloween08 == 0) callsub S_Explain;
+ if (Halloween08 != 0) goto L_DidExplain;
+ callsub S_Explain;
+
+L_DidExplain:
// Get detailed info about equipment
callfunc "ProcessEquip";
@@ -59,7 +62,7 @@ L_Pumpkin_Done:
mes "[Prize Master]";
mes "\"I think I've seen this Jack O before.\"";
close;
-
+
@@ -76,7 +79,7 @@ L_Axe_Done:
mes "[Prize Master]";
mes "\"You've pulled the axe on me already.\"";
close;
-
+
@@ -197,7 +200,7 @@ L_GradCap_Done:
mes "[Prize Master]";
mes "\"Sorry, professor, but I've already seen you.\"";
close;
-
+
@@ -222,7 +225,7 @@ L_NohMask_Done:
mes "\"I've caught you trying to get another prize for the same mask.\"";
close;
-
+
@@ -366,9 +369,9 @@ L_BCowboy_BadTorso:
mes "[Prize Master]";
mes "\"Fashion doesn't seem to be your forte. Try to match that hat better.\"";
close;
-
-
+
+
L_Antler:
diff --git a/world/map/npc/halloween/2011/trick_or_treat.txt b/world/map/npc/halloween/2011/trick_or_treat.txt
index b5fc7ba3..1b502d65 100644
--- a/world/map/npc/halloween/2011/trick_or_treat.txt
+++ b/world/map/npc/halloween/2011/trick_or_treat.txt
@@ -7,6 +7,7 @@
//+ set @hw2011_npc_id, $@hw2011_npc_vincent;
//+ if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
//+ callfunc "TrickOrTreat2011";
+// Later note: it turns out that callfunc in an "if" is actually illegal.
// Variables:
// $@hw2011_maskmemory = Sliced Array containing the record of the last masks used to trick or treat each NPC.
diff --git a/world/map/npc/items/magic_gm_top_hat.txt b/world/map/npc/items/magic_gm_top_hat.txt
index cd9a0302..bd35846e 100644
--- a/world/map/npc/items/magic_gm_top_hat.txt
+++ b/world/map/npc/items/magic_gm_top_hat.txt
@@ -1,4 +1,5 @@
-function|script|ActivateMagicGMTophat|{
+function|script|ActivateMagicGMTophat|,
+{
if (getgmlevel() < 60) return;
getinventorylist;
if ((checkweight("MurdererCrown", 1) == 0) || (@inventorylist_count == 100))
diff --git a/world/map/npc/items/purification_potion.txt b/world/map/npc/items/purification_potion.txt
index 59c55eb1..2a8c47d3 100644
--- a/world/map/npc/items/purification_potion.txt
+++ b/world/map/npc/items/purification_potion.txt
@@ -1,6 +1,7 @@
// This is the function to use the PurificationPotion
-function|script|usePurificationPotion|{
+function|script|usePurificationPotion|,
+{
if (isat("011-1.gat", 88,67))
goto L_Wyara_Pond;
diff --git a/world/map/npc/items/require_stat.txt b/world/map/npc/items/require_stat.txt
index 87fd9d72..e16e6b24 100644
--- a/world/map/npc/items/require_stat.txt
+++ b/world/map/npc/items/require_stat.txt
@@ -5,7 +5,8 @@
// @minbStatVal The minimum stat value to accept this item.
// ------------------------------------------------------------
-function|script|RequireStat|{
+function|script|RequireStat|,
+{
if (@bStat$ == "" || @minbStatVal < 0) return;
set @bStatVal, 0;
if (@bStat$ == "Str")
diff --git a/world/map/npc/items/restricted_item.txt b/world/map/npc/items/restricted_item.txt
index eddce38d..423b2c63 100644
--- a/world/map/npc/items/restricted_item.txt
+++ b/world/map/npc/items/restricted_item.txt
@@ -6,7 +6,8 @@
// @minLvl The minimum required GM level to equip this item. When not set or set to 0, it is set to 60 as a default.
// ------------------------------------------------------------
-function|script|RestrictedItem|{
+function|script|RestrictedItem|,
+{
if (!@minLvl) set @minLvl, 60;
if (debug || getgmlevel() >= @minLvl) return; // If the active character is staff, do nothing.
message strcharinfo(0), "This item repells you with extreme force. It does not seem to be meant for you.";
diff --git a/world/map/npc/items/scissors.txt b/world/map/npc/items/scissors.txt
index 7b64ce61..71e1f52c 100644
--- a/world/map/npc/items/scissors.txt
+++ b/world/map/npc/items/scissors.txt
@@ -1,4 +1,5 @@
-function|script|useScissors|{
+function|script|useScissors|,
+{
if (rand(3))
goto L_Change;
message strcharinfo(0), "Whoops!";
diff --git a/world/map/npc/items/shock_sweet.txt b/world/map/npc/items/shock_sweet.txt
index a9226c39..9bcfc875 100644
--- a/world/map/npc/items/shock_sweet.txt
+++ b/world/map/npc/items/shock_sweet.txt
@@ -1,4 +1,5 @@
-function|script|useShockSweet|{
+function|script|useShockSweet|,
+{
if (rand(5))
goto L_Change;
message strcharinfo(0), "Yuck, this tastes like earwax!";
diff --git a/world/map/npc/items/unreleased_item.txt b/world/map/npc/items/unreleased_item.txt
index 64072484..708cc1e0 100644
--- a/world/map/npc/items/unreleased_item.txt
+++ b/world/map/npc/items/unreleased_item.txt
@@ -3,7 +3,8 @@
// @slotId The slot in which the item would have been equipped in. This is passed automagically when called in an equip script.
// ------------------------------------------------------------
-function|script|UnreleasedItem|{
+function|script|UnreleasedItem|,
+{
if (debug || getgmlevel()) end; // If the server allows equipping unreleased items or if the active character is staff, do nothing.
message strcharinfo(0), "You have difficulties equipping this item, as if it is not yet fully in this world.";
unequipbyid @slotId;
diff --git a/world/map/npc/items/warpTowels.txt b/world/map/npc/items/warpTowels.txt
index 30d29136..75209523 100644
--- a/world/map/npc/items/warpTowels.txt
+++ b/world/map/npc/items/warpTowels.txt
@@ -1,218 +1,358 @@
-function|script|useWhiteWarpTowel|{
+function|script|useWhiteWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "020-1.gat",66,91; // Nivalis
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "WhiteHitchhikersTowel", 1;
end;
}
-function|script|useRedWarpTowel|{
+function|script|useRedWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "009-1.gat",51,40; // Hurnscald
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "RedHitchhikersTowel", 1;
end;
}
-function|script|useGreenWarpTowel|{
+function|script|useGreenWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "003-1.gat",35,25;
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "GreenHitchhikersTowel", 1;
end;
}
-function|script|useBlueWarpTowel|{
+function|script|useBlueWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "003-1.gat",35,25;
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "BlueHitchhikersTowel", 1;
end;
}
-function|script|useYellowWarpTowel|{
+function|script|useYellowWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "001-1.gat",40,71; // Tulimshar
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "YellowHitchhikersTowel", 1;
end;
}
-function|script|usePurpleWarpTowel|{
+function|script|usePurpleWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "003-1.gat",35,25;
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "PurpleHitchhikersTowel", 1;
end;
}
-function|script|useOrangeWarpTowel|{
+function|script|useOrangeWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "027-1.gat",70,100; // Graveyard
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "OrangeHitchhikersTowel", 1;
end;
}
-function|script|usePinkWarpTowel|{
+function|script|usePinkWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "012-3.gat",448,66; // Terranite Cave
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "PinkHitchhikersTowel", 1;
end;
}
-function|script|useTealWarpTowel|{
+function|script|useTealWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "003-1.gat",35,25;
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "TealHitchhikersTowel", 1;
end;
}
-function|script|useLimeWarpTowel|{
+function|script|useLimeWarpTowel|,
+{
if (isin("botcheck.gat",25,27,51,47))
goto L_Botcheck;
if (isin("052-1.gat",1,1,100,80) || isin("052-2.gat",1,1,150,100))
goto L_Illia;
+ if (isin("029-3.gat",1,1,99,99))
+ goto L_Candor;
+ if (isin("031-4.gat",1,1,90,90))
+ goto L_Cindy;
warp "003-1.gat",35,25;
if (rand(15))
goto L_Keep;
getitem "HitchhikersTowel", 1;
end;
+L_Candor:
+ message strcharinfo(0), "This area is protected by a force that doesn't tolerate the forgein powers of the towel.";
+ goto L_Keep;
+
+L_Cindy:
+ message strcharinfo(0), "Something is preventing your towel from working here.";
+ goto L_Keep;
+
L_Illia:
message strcharinfo(0), "The strong barrier of this island prevents you to teleport!";
goto L_Keep;
L_Botcheck:
message strcharinfo(0), "You must be warped by a GM to leave the bot check area.";
+ goto L_Keep;
L_Keep:
getitem "LimeHitchhikersTowel", 1;