summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-04-02 11:06:32 -0700
committerBen Longbons <b.r.longbons@gmail.com>2014-04-02 22:21:29 -0700
commitc0ba38cd4b68491e28e467889804ebc09c9c002e (patch)
treeaf2890e6fe20990d2a9b7c94b991be58f25a5d52
parent514a2f05cb335c1e9210fea58bc9a9a58478283f (diff)
downloadserverdata-c0ba38cd4b68491e28e467889804ebc09c9c002e.tar.gz
serverdata-c0ba38cd4b68491e28e467889804ebc09c9c002e.tar.bz2
serverdata-c0ba38cd4b68491e28e467889804ebc09c9c002e.tar.xz
serverdata-c0ba38cd4b68491e28e467889804ebc09c9c002e.zip
Clean up main scripts
-rw-r--r--world/map/conf/magic-base.sex6
-rw-r--r--world/map/npc/001-1/barber.txt4
-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.txt32
-rw-r--r--world/map/npc/001-1/children.txt8
-rw-r--r--world/map/npc/001-1/elanore.txt24
-rw-r--r--world/map/npc/001-1/entertainer.txt8
-rw-r--r--world/map/npc/001-1/guards.txt2
-rw-r--r--world/map/npc/001-1/guide.txt3
-rw-r--r--world/map/npc/001-1/luca.txt80
-rw-r--r--world/map/npc/001-1/mikhail.txt3
-rw-r--r--world/map/npc/001-1/monster_guide.txt1
-rw-r--r--world/map/npc/001-1/rewards_master.txt31
-rw-r--r--world/map/npc/001-1/sandra.txt4
-rw-r--r--world/map/npc/001-1/sarah.txt2
-rw-r--r--world/map/npc/001-1/trader.txt24
-rw-r--r--world/map/npc/001-1/vincent.txt5
-rw-r--r--world/map/npc/001-2/casino.txt29
-rw-r--r--world/map/npc/001-2/omar.txt28
-rw-r--r--world/map/npc/001-2/phaet.txt3
-rw-r--r--world/map/npc/001-3/guards.txt4
-rw-r--r--world/map/npc/002-2/rogue.txt4
-rw-r--r--world/map/npc/003-1/stranger.txt17
-rw-r--r--world/map/npc/005-1/spirit.txt34
-rw-r--r--world/map/npc/005-1/tree.txt15
-rw-r--r--world/map/npc/005-4/_import.txt1
-rw-r--r--world/map/npc/005-4/bossfight.txt209
-rw-r--r--world/map/npc/006-1/pachua.txt33
-rw-r--r--world/map/npc/007-1/voltain.txt61
-rw-r--r--world/map/npc/007-1/witch.txt38
-rw-r--r--world/map/npc/008-1/andra.txt28
-rw-r--r--world/map/npc/008-1/annualeaster.txt8
-rw-r--r--world/map/npc/008-1/diryn.txt1
-rw-r--r--world/map/npc/008-1/dock.txt1
-rw-r--r--world/map/npc/008-1/george.txt16
-rw-r--r--world/map/npc/008-1/hinnak.txt20
-rw-r--r--world/map/npc/009-1/jack.txt48
-rw-r--r--world/map/npc/009-1/milly.txt4
-rw-r--r--world/map/npc/009-1/old_woman.txt5
-rw-r--r--world/map/npc/009-1/water_pump.txt1
-rw-r--r--world/map/npc/009-2/airlia.txt61
-rw-r--r--world/map/npc/009-2/alan.txt42
-rw-r--r--world/map/npc/009-2/doctor.txt11
-rw-r--r--world/map/npc/009-2/kfahr.txt28
-rw-r--r--world/map/npc/009-2/nicholas.txt29
-rw-r--r--world/map/npc/009-2/nurse.txt29
-rw-r--r--world/map/npc/009-2/olana.txt28
-rw-r--r--world/map/npc/009-2/peter.txt6
-rw-r--r--world/map/npc/009-2/selim.txt47
-rw-r--r--world/map/npc/009-2/shops.txt1
-rw-r--r--world/map/npc/009-2/waitress.txt5
-rw-r--r--world/map/npc/009-2/wyara.txt47
-rw-r--r--world/map/npc/009-3/sword.txt30
-rw-r--r--world/map/npc/009-3/warp.txt6
-rw-r--r--world/map/npc/009-4/orum.txt78
-rw-r--r--world/map/npc/009-4/torches.txt7
-rw-r--r--world/map/npc/009-4/waric.txt8
-rw-r--r--world/map/npc/009-6/brodomir.txt12
-rw-r--r--world/map/npc/010-2/chef.txt58
-rw-r--r--world/map/npc/010-2/dimonds.txt38
-rw-r--r--world/map/npc/010-2/loratay.txt232
-rw-r--r--world/map/npc/011-1/alchemist.txt126
-rw-r--r--world/map/npc/011-1/auldsbel.txt123
-rw-r--r--world/map/npc/011-1/oscar.txt31
-rw-r--r--world/map/npc/011-3/hermit.txt14
-rw-r--r--world/map/npc/011-6/bryant.txt2
-rw-r--r--world/map/npc/012-1/flowerpentagram2.txt3
-rw-r--r--world/map/npc/012-1/injured-mouboo.txt41
-rw-r--r--world/map/npc/012-1/shops.txt28
-rw-r--r--world/map/npc/012-3/mana-seed.txt3
-rw-r--r--world/map/npc/013-1/sagatha.txt15
-rw-r--r--world/map/npc/013-2/apprentice.txt2
-rw-r--r--world/map/npc/013-2/wizard.txt9
-rw-r--r--world/map/npc/013-3/sword_chest.txt6
-rw-r--r--world/map/npc/014-1/wedding-officiator.txt38
-rw-r--r--world/map/npc/015-1/alice.txt20
-rw-r--r--world/map/npc/015-1/sword.txt29
-rw-r--r--world/map/npc/015-3/katze.txt26
-rw-r--r--world/map/npc/015-3/pot.txt13
-rw-r--r--world/map/npc/016-1/gwendolyn.txt40
-rw-r--r--world/map/npc/017-1/flowerpentagram1.txt3
-rw-r--r--world/map/npc/017-4/guardingspirit.txt7
-rw-r--r--world/map/npc/017-4/orum.txt121
-rw-r--r--world/map/npc/017-4/waric.txt38
-rw-r--r--world/map/npc/018-1/flowerpentagram3.txt3
-rw-r--r--world/map/npc/018-1/miners.txt2
-rw-r--r--world/map/npc/018-2/caul.txt79
-rw-r--r--world/map/npc/018-2/miners.txt23
-rw-r--r--world/map/npc/018-2/receptionist.txt5
-rw-r--r--world/map/npc/019-1/santa_helper.txt1
-rw-r--r--world/map/npc/019-1/snowman.txt5
-rw-r--r--world/map/npc/020-1/well.txt30
-rw-r--r--world/map/npc/020-2/baktar.txt50
-rw-r--r--world/map/npc/020-2/furquest.txt86
-rw-r--r--world/map/npc/021-1/bakery.txt1
-rw-r--r--world/map/npc/021-1/banu.txt7
-rw-r--r--world/map/npc/021-1/eurni.txt6
-rw-r--r--world/map/npc/021-1/hetchel.txt25
-rw-r--r--world/map/npc/021-1/hideandseek.txt32
-rw-r--r--world/map/npc/021-1/imec.txt14
-rw-r--r--world/map/npc/021-1/north_shops.txt1
-rw-r--r--world/map/npc/021-1/pauline.txt29
-rw-r--r--world/map/npc/021-2/bakery.txt31
-rw-r--r--world/map/npc/021-2/government_building.txt45
-rw-r--r--world/map/npc/021-2/heathin.txt4
-rw-r--r--world/map/npc/021-2/inya.txt3
-rw-r--r--world/map/npc/021-2/kylian.txt41
-rw-r--r--world/map/npc/021-2/yanis.txt4
-rw-r--r--world/map/npc/022-1/adrian.txt2
-rw-r--r--world/map/npc/022-1/anwar.txt28
-rw-r--r--world/map/npc/022-1/dock.txt1
-rw-r--r--world/map/npc/022-1/ferry_master.txt6
-rw-r--r--world/map/npc/022-1/npcs.txt1
-rw-r--r--world/map/npc/024-1/ched.txt6
-rw-r--r--world/map/npc/024-1/david.txt5
-rw-r--r--world/map/npc/024-1/eomie.txt33
-rw-r--r--world/map/npc/024-1/tinris.txt28
-rw-r--r--world/map/npc/024-1/tondar.txt12
-rw-r--r--world/map/npc/024-2/tyer_trigger.txt6
-rw-r--r--world/map/npc/025-1/barrier.txt1
-rw-r--r--world/map/npc/025-1/rossy.txt36
-rw-r--r--world/map/npc/025-3/barriers.txt9
-rw-r--r--world/map/npc/025-4/battlecaves.txt59
-rw-r--r--world/map/npc/025-4/clauquer.txt20
-rw-r--r--world/map/npc/025-4/julia.txt5
-rw-r--r--world/map/npc/026-1/munro.txt7
-rw-r--r--world/map/npc/027-1/golbenez.txt4
-rw-r--r--world/map/npc/027-1/monsters.txt3
-rw-r--r--world/map/npc/027-2/caretaker.txt26
-rw-r--r--world/map/npc/027-2/cerhan.txt8
-rw-r--r--world/map/npc/027-2/crying_child.txt61
-rw-r--r--world/map/npc/027-2/golbenez.txt66
-rw-r--r--world/map/npc/027-2/gy_inn_shops.txt1
-rw-r--r--world/map/npc/027-2/husband.txt33
-rw-r--r--world/map/npc/027-2/innkeeper.txt53
-rw-r--r--world/map/npc/027-2/lover.txt37
-rw-r--r--world/map/npc/027-2/werewolf.txt7
-rw-r--r--world/map/npc/027-3/_import.txt3
-rw-r--r--world/map/npc/027-3/caskets.txt8
-rw-r--r--world/map/npc/027-3/entrance.txt45
-rw-r--r--world/map/npc/027-3/mapflags.txt1
-rw-r--r--world/map/npc/027-4/_import.txt2
-rw-r--r--world/map/npc/027-4/mapflags.txt1
-rw-r--r--world/map/npc/027-4/reaper_script.txt17
-rw-r--r--world/map/npc/028-1/Portal.txt6
-rw-r--r--world/map/npc/029-1/barrier.txt1
-rw-r--r--world/map/npc/029-1/dock.txt1
-rw-r--r--world/map/npc/029-3/barrier.txt1
-rw-r--r--world/map/npc/029-3/parua.txt28
-rw-r--r--world/map/npc/030-2/avalia.txt4
-rw-r--r--world/map/npc/030-2/basic_npcs.txt4
-rw-r--r--world/map/npc/030-2/chief_helper.txt12
-rw-r--r--world/map/npc/030-2/eljas.txt7
-rw-r--r--world/map/npc/030-2/present_helper.txt4
-rw-r--r--world/map/npc/030-2/roasted_acrons_helper.txt3
-rw-r--r--world/map/npc/030-2/shipping_helper.txt4
-rw-r--r--world/map/npc/030-2/storage_helper.txt4
-rw-r--r--world/map/npc/030-2/wrapping_paper_helper.txt2
-rw-r--r--world/map/npc/030-3/orum_homunculus.txt15
-rw-r--r--world/map/npc/030-4/mana_battery.txt16
-rw-r--r--world/map/npc/031-1/angelaOutside.txt2
-rw-r--r--world/map/npc/031-1/dock.txt1
-rw-r--r--world/map/npc/031-1/frozenbeard.txt18
-rw-r--r--world/map/npc/031-2/angelaHouse.txt3
-rw-r--r--world/map/npc/031-4/cindyCave.txt9
-rw-r--r--world/map/npc/032-1/miriam.txt49
-rw-r--r--world/map/npc/033-1/barbarianinit.txt3
-rw-r--r--world/map/npc/033-1/birrod.txt8
-rw-r--r--world/map/npc/033-1/kimarr.txt23
-rw-r--r--world/map/npc/033-1/yerrnk.txt16
-rw-r--r--world/map/npc/034-1/ambushs.txt60
-rw-r--r--world/map/npc/034-1/yetiSpawn.txt1
-rw-r--r--world/map/npc/042-1/hasan.txt15
-rw-r--r--world/map/npc/042-1/kaan.txt18
-rw-r--r--world/map/npc/042-2/sorfina.txt6
-rw-r--r--world/map/npc/042-2/tanisha.txt23
-rw-r--r--world/map/npc/048-2/bluesageConfig.txt3
-rw-r--r--world/map/npc/048-2/helperAccused.txt30
-rw-r--r--world/map/npc/048-2/helperBookpages1.txt7
-rw-r--r--world/map/npc/048-2/helperBookpages2.txt8
-rw-r--r--world/map/npc/048-2/helperChief.txt12
-rw-r--r--world/map/npc/048-2/helperCleaning1.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.txt7
-rw-r--r--world/map/npc/048-2/helperMReed.txt7
-rw-r--r--world/map/npc/048-2/helperMSilk.txt4
-rw-r--r--world/map/npc/048-2/helperMYetiClaw.txt10
-rw-r--r--world/map/npc/048-2/sageNikolai.txt32
-rw-r--r--world/map/npc/048-2/visitors.txt4
-rw-r--r--world/map/npc/051-1/desert.txt18
-rw-r--r--world/map/npc/051-1/desertmonsters.txt12
-rw-r--r--world/map/npc/051-1/forest.txt3
-rw-r--r--world/map/npc/051-1/forestmonsters.txt2
-rw-r--r--world/map/npc/051-3/jailslimes.txt2
-rw-r--r--world/map/npc/051-3/reinforcements.txt7
-rw-r--r--world/map/npc/052-1/channelling.txt2
-rw-r--r--world/map/npc/052-2/chest.txt14
-rw-r--r--world/map/npc/052-2/lobby.txt5
-rw-r--r--world/map/npc/055-1/flowerpentagram4.txt3
-rw-r--r--world/map/npc/055-1/pumpkins.txt2
-rw-r--r--world/map/npc/056-1/flowerpentagram5.txt3
-rw-r--r--world/map/npc/056-2/mirak.txt6
-rw-r--r--world/map/npc/annuals/fathertime.txt2
-rw-r--r--world/map/npc/annuals/xmas/barriers.txt2
-rw-r--r--world/map/npc/annuals/xmas/config.txt3
-rw-r--r--world/map/npc/annuals/xmas/core.txt1
-rw-r--r--world/map/npc/annuals/xmas/debug.txt30
-rw-r--r--world/map/npc/annuals/xmas/helpers.txt1
-rw-r--r--world/map/npc/annuals/xmas/list.txt2
-rw-r--r--world/map/npc/annuals/xmas/mobmanager.txt9
-rw-r--r--world/map/npc/annuals/xmas/reagents.txt4
-rw-r--r--world/map/npc/botcheck/announcements.txt5
-rw-r--r--world/map/npc/functions/banker.txt19
-rw-r--r--world/map/npc/functions/barber.txt78
-rw-r--r--world/map/npc/functions/clear_vars.txt17
-rw-r--r--world/map/npc/functions/dailyquest.txt7
-rwxr-xr-xworld/map/npc/functions/debug.txt99
-rw-r--r--world/map/npc/functions/evil_obelisk.txt3
-rw-r--r--world/map/npc/functions/ferry.txt7
-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.txt8
-rw-r--r--world/map/npc/functions/magic.txt34
-rw-r--r--world/map/npc/functions/mob_points.txt1
-rw-r--r--world/map/npc/functions/slot_machine.txt6
-rw-r--r--world/map/npc/functions/soul_menhir.txt5
-rw-r--r--world/map/npc/items/launcher_ammo.txt1
-rw-r--r--world/map/npc/items/purification_potion.txt1
-rw-r--r--world/map/npc/items/require_stat.txt1
-rw-r--r--world/map/npc/items/restricted_item.txt1
-rw-r--r--world/map/npc/items/unequipcb.txt2
-rw-r--r--world/map/npc/items/unreleased_item.txt1
234 files changed, 2708 insertions, 1793 deletions
diff --git a/world/map/conf/magic-base.sex b/world/map/conf/magic-base.sex
index 841b4d98..64b69a58 100644
--- a/world/map/conf/magic-base.sex
+++ b/world/map/conf/magic-base.sex
@@ -3069,12 +3069,14 @@
mes \"Do you accept?\";
next;
menu \"Yes, I do!\", L_yes,
- \"No.\", -;
- close;
+ \"No.\", L_Close;
L_yes:
if marriage(@caster_name$)
announce @caster_name$ + \" and \" + strcharinfo(0) + \" are now married!\", 0;
+ goto L_Close;
+
+ L_Close:
close;
}")
(IF (not
diff --git a/world/map/npc/001-1/barber.txt b/world/map/npc/001-1/barber.txt
index e58ee880..94525bd5 100644
--- a/world/map/npc/001-1/barber.txt
+++ b/world/map/npc/001-1/barber.txt
@@ -9,8 +9,4 @@
mes "[Nicolas the Barber]";
mes "\"Come again!\"";
close;
-
-// OnInit doesn't work for functions, they need our help
-OnInit:
- callfunc "OnInitBarber";
}
diff --git a/world/map/npc/001-1/bard.txt b/world/map/npc/001-1/bard.txt
index 2de20249..99287a77 100644
--- a/world/map/npc/001-1/bard.txt
+++ b/world/map/npc/001-1/bard.txt
@@ -1,6 +1,5 @@
//
-//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.\"",
@@ -13,14 +12,14 @@
if (!Sex)
mes "\"Greetings, fair lady! Well met, on such a lovely day! Might I entertain you with a tale or two?\"";
next;
+ goto L_Main;
L_Main:
menu
"Sing me a song, lute man!", L_Song,
"Have you heard any news?", L_News,
"What do you know about...", L_Question,
- "Farewell!", -;
- goto L_Close;
+ "Farewell!", L_Close;
L_News:
// mes "[" + @name$ + "]";
diff --git a/world/map/npc/001-1/bernard.txt b/world/map/npc/001-1/bernard.txt
index 25364698..c152f673 100644
--- a/world/map/npc/001-1/bernard.txt
+++ b/world/map/npc/001-1/bernard.txt
@@ -13,8 +13,8 @@
if(@state == 1) goto L_Progress;
set @TEMP, rand(2);
- if(@TEMP == 0) goto L_Opening0;
if(@TEMP == 1) goto L_Opening1;
+ goto L_Opening0;
L_Opening0:
mes "[Bernard]";
@@ -35,8 +35,8 @@ L_Ask:
L_Yes:
set @TEMP, rand(2);
- if(@TEMP == 0) goto L_Req0;
if(@TEMP == 1) goto L_Req1;
+ goto L_Req0;
L_Req0:
mes "[Bernard]";
diff --git a/world/map/npc/001-1/bleacher.txt b/world/map/npc/001-1/bleacher.txt
index e681f8c0..b43f0505 100644
--- a/world/map/npc/001-1/bleacher.txt
+++ b/world/map/npc/001-1/bleacher.txt
@@ -12,7 +12,7 @@
if (Zeny < 5000) goto L_no_money;
menu
- "I'd like to bleach something.", -,
+ "I'd like to bleach something.", L_bleach_menu,
"No thanks.", L_Close;
L_bleach_menu:
@@ -42,8 +42,7 @@ L_bleach_menu:
"Bowler hat (brown).", L_bowler_hat_brown,
"Fine dress.", L_fine_dress,
"Cotton cloth.", L_cotton_cloth,
- "Nevermind.", -;
- goto L_Close;
+ "Nevermind.", L_Close;
L_cottonshirt:
set @normal, 1202;
@@ -146,8 +145,7 @@ L_sorcerer_robe:
"A purple lined one.", L_purple_lined_sorcerer_robe,
"A dark green lined one.", L_dark_green_lined_sorcerer_robe,
"A white lined one.", L_white_lined_sorcerer_robe,
- "Nevermind.", -;
- goto L_Close;
+ "Nevermind.", L_Close;
L_red_lined_sorcerer_robe:
set @normal, 798;
@@ -225,17 +223,18 @@ L_choose_color:
next;
menu
- "Red.", -,
- "Green.", -,
- "Dark Blue.", -,
- "Yellow.", -,
- "Light Blue.", -,
- "Pink.", -,
- "Black.", -,
- "Orange.", -,
- "Purple.", -,
- "Dark Green.", -;
-
+ "Red.", L_MenuItems,
+ "Green.", L_MenuItems,
+ "Dark Blue.", L_MenuItems,
+ "Yellow.", L_MenuItems,
+ "Light Blue.", L_MenuItems,
+ "Pink.", L_MenuItems,
+ "Black.", L_MenuItems,
+ "Orange.", L_MenuItems,
+ "Purple.", L_MenuItems,
+ "Dark Green.", L_MenuItems;
+
+L_MenuItems:
set @del, @dyeBase + @menu - 1;
if (countitem(@del) == 0) goto L_no_item;
@@ -248,6 +247,7 @@ L_choose_color:
getitem @normal, 1;
delitem "PileOfAsh", 3;
set Zeny, Zeny - 5000;
+ goto L_again;
L_again:
mes "[Candide]";
diff --git a/world/map/npc/001-1/children.txt b/world/map/npc/001-1/children.txt
index 16c2d10a..60477015 100644
--- a/world/map/npc/001-1/children.txt
+++ b/world/map/npc/001-1/children.txt
@@ -3,7 +3,6 @@
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;
if(@TEMP == 2) goto L_2;
if(@TEMP == 3) goto L_3;
@@ -12,6 +11,7 @@
if(@TEMP == 6) goto L_6;
if(@TEMP == 7) goto L_7;
if(@TEMP == 8) goto L_8;
+ goto L_1;
L_1:
mes "[Aisha]";
@@ -110,8 +110,7 @@ L_9:
next;
menu
"A bad word?", L_tell,
- "Oh, you better keep it for yourself then.", -;
- goto L_Close;
+ "Oh, you better keep it for yourself then.", L_Close;
L_tell:
mes "[Nina]";
@@ -120,8 +119,7 @@ L_tell:
menu
"If I promise to never tell anyone, can you tell me the word?", L_keepword,
"I understand, you do not need to tell me...", L_giveword,
- "Goodbye!", -;
- goto L_Close;
+ "Goodbye!", L_Close;
L_keepword:
mes "[Nina]";
diff --git a/world/map/npc/001-1/elanore.txt b/world/map/npc/001-1/elanore.txt
index 34b30766..2a5a0095 100644
--- a/world/map/npc/001-1/elanore.txt
+++ b/world/map/npc/001-1/elanore.txt
@@ -48,10 +48,10 @@ function|script|ElanoreFix|,
if (sc_check(sc_poison)) goto L_CurePoison;
if (BaseLevel > 10) goto L_NoHeal;
set @TEMP,rand(4);
- if(@TEMP == 0) goto Heal1;
if(@TEMP == 1) goto Heal2;
if(@TEMP == 2) goto Heal3;
if(@TEMP == 3) goto Heal4;
+ goto Heal1;
Heal1:
@@ -82,12 +82,11 @@ Heal4:
goto Heal_L;
Heal_L:
- set @TEMP,rand(3);
-
- if(@TEMP == 0) goto Heal_1;
+ set @TEMP,rand(4);
if(@TEMP == 1) goto Heal_2;
if(@TEMP == 2) goto Heal_3;
if(@TEMP == 3) goto Heal_4;
+ goto Heal_1;
Heal_1:
@@ -120,6 +119,7 @@ Heal_4:
L_NoHeal:
if (MAGIC_FLAGS)
goto L_Chat;
+ goto L_NoHealMessage;
L_NoHealMessage:
mes "[Elanore the Healer]";
@@ -132,6 +132,7 @@ L_Chat:
mes "[Elanore the Healer]";
mes "\"Hello! Can I help you?\"";
next;
+ goto L_Main;
L_Main:
if (@has_magic && (@Q_status == @STATUS_INITIAL))
@@ -164,6 +165,7 @@ OnPCKillEvent:
L_OnPcKillWipe:
set @Q_heal_exp, 0;
+ goto L_OnPcKillFinish;
L_OnPcKillFinish:
set MAGIC_EXPERIENCE, (MAGIC_EXPERIENCE & ~(255 << 24)) | (@Q_heal_exp << 24);
@@ -174,11 +176,10 @@ L_Lifestones:
mes "\"I always need components for my own healing spells. If you bring me ten gamboge leaves, ten alizarin leaves, ten mauve leaves and ten cobalt leaves, I can make ten lifestones; I will give you half of them.\"";
next;
menu
- "OK, I will get them.", -,
- "No way!", -,
+ "OK, I will get them.", L_Close,
+ "No way!", L_Close,
"Here you are!", L_Lifestones_Trade,
"Can I make them myself?", L_Lifestones_MakeSelf;
- goto L_Close;
L_Lifestones_Trade:
if (countitem("MauveHerb") < 10) goto L_Lifestones_Trade_Missing;
@@ -224,6 +225,7 @@ L_Lifestones_Trade_Missing:
L_Lifestones_MakeSelf:
mes "[Elanore the Healer]";
if (@has_magic < 2) goto L_Lifestones_MakeSelf_no;
+ goto L_Lifestones_MakeSelf_yes;
L_Lifestones_MakeSelf_yes:
mes "\"Oh, but of course! You are powerful enough to make your own lifestones, using the enchantment '" + getspellinvocation("enchant-lifestone") + "'. This will consume a bug leg or a maggot slime or one of each of the four healing herbs, though.\"";
@@ -300,6 +302,7 @@ L_Teach_AdvanceTo2_warn:
mes "[Elanore the Healer]";
mes "\"But be warned: you won't be able to use advanced healing magic until you are more capable in your regular magic usage.\"";
next;
+ goto L_Teach_AdvanceTo2_skip;
L_Teach_AdvanceTo2_skip:
mes "[Elanore the Healer]";
@@ -376,16 +379,15 @@ L_Teach_Explain3:
mes "[Elanore the Healer]";
mes "\"But his daugher has contracted Mopox, so she needs help. He doesn't trust me, but perhaps he will trust you; you have been helping quite a few people, after all.\"";
next;
+ goto L_3_menu;
L_3_menu:
menu
"What should I do?", L_3_what_to_do,
"Where can I find the sick girl?", L_3_where,
"How did you mess up?", L_3_messup,
- "I will get started right away.", -,
- "Maybe later.", -;
-
- goto L_Main;
+ "I will get started right away.", L_Main,
+ "Maybe later.", L_Main;
L_3_what_to_do:
mes "[Elanore the Healer]";
diff --git a/world/map/npc/001-1/entertainer.txt b/world/map/npc/001-1/entertainer.txt
index ea8e0870..f98b7d31 100644
--- a/world/map/npc/001-1/entertainer.txt
+++ b/world/map/npc/001-1/entertainer.txt
@@ -8,8 +8,7 @@
mes "\"Yes how can I help you?\"";
menu
"How are you showing emotions above your head?", L_Learn,
- "Never mind", -;
- goto L_Close;
+ "Never mind", L_Close;
L_Learn:
mes "[Entertainer]";
@@ -17,8 +16,7 @@ L_Learn:
mes "I can teach you if you'd like?\"";
menu
"Yes please.", L_Learn2,
- "I don't see the point right now.", -;
- goto L_Close;
+ "I don't see the point right now.", L_Close;
L_Learn2:
setskill SKILL_EMOTE, 1;
@@ -39,8 +37,10 @@ L_Close:
OnTimer3000:
emotion rand(EMOTE_DISGUST, EMOTE_TEARS);
setnpctimer 0;
+ end;
OnInit:
if (debug >= 2) end;
initnpctimer;
+ end;
}
diff --git a/world/map/npc/001-1/guards.txt b/world/map/npc/001-1/guards.txt
index cce350c7..1c783f67 100644
--- a/world/map/npc/001-1/guards.txt
+++ b/world/map/npc/001-1/guards.txt
@@ -11,13 +11,13 @@
L_Tip:
set @TEMP,rand(7);
- if(@TEMP == 0) goto L_0;
if(@TEMP == 1) goto L_1;
if(@TEMP == 2) goto L_2;
if(@TEMP == 3) goto L_3;
if(@TEMP == 4) goto L_4;
if(@TEMP == 5) goto L_5;
if(@TEMP == 6) goto L_6;
+ goto L_0;
L_1:
mes "[Ekinu the Town Guard]";
diff --git a/world/map/npc/001-1/guide.txt b/world/map/npc/001-1/guide.txt
index f50e3eda..5c738539 100644
--- a/world/map/npc/001-1/guide.txt
+++ b/world/map/npc/001-1/guide.txt
@@ -10,11 +10,13 @@
if ((TUT_var != 0) && !(FLAGS & FLAG_GOT_GRADUATIONCAP) && BaseLevel >= 10)
goto L_Grad;
+ goto L_DoneGrad;
L_DoneGrad:
mes "[Ian the Guide]";
mes "\"Would you like to know about something?\"";
next;
+ goto L_Menu_A;
L_Menu_A:
menu
@@ -30,7 +32,6 @@ L_Menu_A:
"Quick Keys", L_Key,
"Laws", L_Laws,
"I know everything!", L_Know;
- close;
L_Fight:
mes "[Ian the Guide]";
diff --git a/world/map/npc/001-1/luca.txt b/world/map/npc/001-1/luca.txt
index 55502e35..4312e822 100644
--- a/world/map/npc/001-1/luca.txt
+++ b/world/map/npc/001-1/luca.txt
@@ -47,8 +47,10 @@ L_teach:
mes "\"If you want, I can help with that!\"";
next;
menu
- "Sure, that sounds fun!", -,
+ "Sure, that sounds fun!", L_Next,
"I'm not interested.", L_Nev;
+
+L_Next:
mes "[Luca the Hunter]";
mes "\"All right! It's not all that easy, though. First you have to learn how to focus. That's because you can learn many skills, but you can't focus on all of them all the time.\"";
next;
@@ -58,9 +60,10 @@ L_teach:
menu
"Yeah!", L_teach0_follow,
"Certainly!", L_teach0_follow,
- "Wait... what do you mean?", -,
- "Please explain some more.", -,
+ "Wait... what do you mean?", L_CallExplain,
+ "Please explain some more.", L_CallExplain,
"No.", L_Nev;
+L_CallExplain:
callsub S_explain;
L_teach0_follow:
@@ -138,13 +141,15 @@ S_explain:
mes "[Luca the Hunter]";
mes "\"Alright, what do you want to know?\"";
next;
+ goto L_Explain_loop;
-S_explain_loop:
+L_Explain_loop:
menu
"What's skill focus?", L_explain_focus,
"What skills are there?", L_explain_skills,
"How do skills work?", L_explain_work,
- "Thanks, I think I got it!", -;
+ "Thanks, I think I got it!", L_Return;
+L_Return:
return;
L_explain_focus:
@@ -170,7 +175,7 @@ L_explain_focus:
next;
mes "\"For unfocusing you need to bring a potion; a special potion. That potion is not the easiest to get, but I am sure you are able to.\"";
next;
- goto S_explain_loop;
+ goto L_Explain_loop;
L_explain_skills:
mes "[Luca the Hunter]";
@@ -185,7 +190,7 @@ L_explain_skills:
mes "[Luca the Hunter]";
mes "\"Other than that, just ask around! There have to be some people who can teach you something...\"";
next;
- goto S_explain_loop;
+ goto L_Explain_loop;
L_explain_work:
mes "[Luca the Hunter]";
@@ -205,12 +210,13 @@ L_explain_work:
mes "\"She always would have one cactus potion too many... but she was an amazing teacher.\"";
mes "He nods emphatically.";
next;
- goto S_explain_loop;
+ goto L_Explain_loop;
L_teachmore:
mes "[Luca the Hunter]";
mes "\"Good to see you again!\"";
next;
+ goto L_teachmore2;
L_teachmore2:
setarray @choices, 0,0,0,0,0;
@@ -232,6 +238,7 @@ L_teachmore2:
set @choices[@choice_nr], @C_focus;
set @choice$[@choice_nr], "I would like to focus.";
set @choice_nr, @choice_nr + 1;
+ goto L_teachmore2_nof;
L_teachmore2_nof:
getactivatedpoolskilllist;
@@ -239,6 +246,7 @@ L_teachmore2_nof:
set @choices[@choice_nr], @C_unfocus;
set @choice$[@choice_nr], "I would like to unfocus.";
set @choice_nr, @choice_nr + 1;
+ goto L_teachmore2_nounf;
L_teachmore2_nounf:
if (!(getskilllv(SKILL_BRAWLING)))
@@ -256,6 +264,7 @@ L_teachmore2_nounf:
set @choices[@choice_nr], @C_focusoverview;
set @choice$[@choice_nr], "Can you tell me what skills I'm currently focused on?";
set @choice_nr, @choice_nr + 1;
+ goto L_teachmore2_noovv;
L_teachmore2_noovv:
set @choices[@choice_nr], @C_nvm;
@@ -263,12 +272,13 @@ L_teachmore2_noovv:
set @choice_nr, @choice_nr + 1;
menu
- @choice$[0],-,
- @choice$[1],-,
- @choice$[2],-,
- @choice$[3],-,
- @choice$[4],-;
+ @choice$[0],L_MenuItems,
+ @choice$[1],L_MenuItems,
+ @choice$[2],L_MenuItems,
+ @choice$[3],L_MenuItems,
+ @choice$[4],L_MenuItems;
+L_MenuItems:
set @menu, @menu - 1;
if (@choices[@menu] == 0) goto L_Close;
if (@choices[@menu] == @C_focus) goto L_focus;
@@ -290,15 +300,16 @@ L_focus:
set @skilllist_name$[@skilllist_count], "Nevermind";
set @skilllist_name$[@skilllist_count + 1], "";
menu
- @skilllist_name$[0], -,
- @skilllist_name$[1], -,
- @skilllist_name$[2], -,
- @skilllist_name$[3], -,
- @skilllist_name$[4], -,
- @skilllist_name$[5], -,
- @skilllist_name$[6], -,
- @skilllist_name$[7], -;
-
+ @skilllist_name$[0], L_MenuItems1,
+ @skilllist_name$[1], L_MenuItems1,
+ @skilllist_name$[2], L_MenuItems1,
+ @skilllist_name$[3], L_MenuItems1,
+ @skilllist_name$[4], L_MenuItems1,
+ @skilllist_name$[5], L_MenuItems1,
+ @skilllist_name$[6], L_MenuItems1,
+ @skilllist_name$[7], L_MenuItems1;
+
+L_MenuItems1:
set @menu, @menu - 1;
if (@skilllist_id[@menu] == 0) goto L_teachmore2;
@@ -322,9 +333,8 @@ L_unfocus:
mes "\"The potion is called Grimace of Dementia. So the alchemist will know for sure.\"";
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_UNFOCUS_RECIPE;
menu
- "Ok, I will get a Grimace of Dementia potion", -,
- "Alright, be right back!", -;
- goto L_Close;
+ "Ok, I will get a Grimace of Dementia potion", L_Close,
+ "Alright, be right back!", L_Close;
L_nopotion:
mes "[Luca the Hunter]";
@@ -346,15 +356,16 @@ L_unfocus_menu:
set @skilllist_name$[@skilllist_count], "Nevermind";
set @skilllist_name$[@skilllist_count + 1], "";
menu
- @skilllist_name$[0], -,
- @skilllist_name$[1], -,
- @skilllist_name$[2], -,
- @skilllist_name$[3], -,
- @skilllist_name$[4], -,
- @skilllist_name$[5], -,
- @skilllist_name$[6], -,
- @skilllist_name$[7], -;
-
+ @skilllist_name$[0], L_MenuItems2,
+ @skilllist_name$[1], L_MenuItems2,
+ @skilllist_name$[2], L_MenuItems2,
+ @skilllist_name$[3], L_MenuItems2,
+ @skilllist_name$[4], L_MenuItems2,
+ @skilllist_name$[5], L_MenuItems2,
+ @skilllist_name$[6], L_MenuItems2,
+ @skilllist_name$[7], L_MenuItems2;
+
+L_MenuItems2:
set @menu, @menu - 1;
if (@skilllist_id[@menu] == 0) goto L_teachmore2;
@@ -376,6 +387,7 @@ L_focus_overview:
L_focus_overview1:
mes "[Luca the Hunter]";
set @message$, "\"At the moment you are focused on ";
+ goto L_focus_overview2;
L_focus_overview2:
set @skilllist_count, @skilllist_count-1;
diff --git a/world/map/npc/001-1/mikhail.txt b/world/map/npc/001-1/mikhail.txt
index c82dd89f..d0ec2f3d 100644
--- a/world/map/npc/001-1/mikhail.txt
+++ b/world/map/npc/001-1/mikhail.txt
@@ -10,7 +10,8 @@
if (@state >= 6) goto L_Done;
if (@state == 5) goto L_Progress;
if (@state == 4) goto L_Start;
- if (@state < 4) goto L_Convince_Mikhail_First;
+ //else
+ goto L_Convince_Mikhail_First;
L_Convince_Mikhail_First:
mes "[Mikhail]";
diff --git a/world/map/npc/001-1/monster_guide.txt b/world/map/npc/001-1/monster_guide.txt
index 0aca7e41..7df38189 100644
--- a/world/map/npc/001-1/monster_guide.txt
+++ b/world/map/npc/001-1/monster_guide.txt
@@ -11,6 +11,7 @@ Register:
mes "[Aidan the Monster Guide]";
mes "Oh my, you don't seem to be registered as a Quest Participant. Would you like to register?";
next;
+ goto Choice;
Choice:
menu
diff --git a/world/map/npc/001-1/rewards_master.txt b/world/map/npc/001-1/rewards_master.txt
index 7ebc12f5..e581b907 100644
--- a/world/map/npc/001-1/rewards_master.txt
+++ b/world/map/npc/001-1/rewards_master.txt
@@ -17,19 +17,20 @@
callsub SUB_prep_menu;
menu
- @Menu$[0], -,
- @Menu$[1], -,
- @Menu$[2], -,
- @Menu$[3], -,
- @Menu$[4], -,
- @Menu$[5], -,
- @Menu$[6], -,
- @Menu$[7], -,
- @Menu$[8], -,
- @Menu$[9], -,
- @Menu$[10], -,
- @Menu$[11], -;
-
+ @Menu$[0], L_MenuItems,
+ @Menu$[1], L_MenuItems,
+ @Menu$[2], L_MenuItems,
+ @Menu$[3], L_MenuItems,
+ @Menu$[4], L_MenuItems,
+ @Menu$[5], L_MenuItems,
+ @Menu$[6], L_MenuItems,
+ @Menu$[7], L_MenuItems,
+ @Menu$[8], L_MenuItems,
+ @Menu$[9], L_MenuItems,
+ @Menu$[10], L_MenuItems,
+ @Menu$[11], L_MenuItems;
+
+L_MenuItems:
// this is for the last entry "No thanks":
if (@menu > @i) goto L_Close;
// this is for the "Give all" entry:
@@ -37,6 +38,7 @@
set @req, @menu;
set @rec, 0;
+ goto L_Item_Loop;
L_Item_Loop:
if (@rec == @req || Mobpt < tvis) goto L_Item_Done;
@@ -66,6 +68,7 @@ L_Give_all:
// since the server complains about more than 250 (70 according to Jaxad0127)
// gotos without interrupting next statement.
set @gotocounter, 50;
+ goto L_Give_all_loop;
L_Give_all_loop:
set @gotocounter, @gotocounter - 1;
@@ -100,6 +103,7 @@ L_Close:
SUB_prep_menu:
set @pts, Mobpt;
set @dif, tvis;
+ goto L_Menu_Loop;
L_Menu_Loop:
if (@pts < @dif || @i == 10) goto L_Menu_Check;
@@ -117,6 +121,7 @@ L_Menu_Check:
if (@i != 10) goto L_Menu_Done;
set @Menu$[@i], "Please give me as many as I deserve!";
set @i, @i + 1;
+ goto L_Menu_Done;
L_Menu_Done:
set @Menu$[@i], "No thanks";
diff --git a/world/map/npc/001-1/sandra.txt b/world/map/npc/001-1/sandra.txt
index 50e302db..14d71621 100644
--- a/world/map/npc/001-1/sandra.txt
+++ b/world/map/npc/001-1/sandra.txt
@@ -15,10 +15,10 @@
next;
set @TEMP, rand(4);
- if(@TEMP == 0) goto L_Opening0;
if(@TEMP == 1) goto L_Opening1;
if(@TEMP == 2) goto L_Opening2;
if(@TEMP == 3) goto L_Opening3;
+ goto L_Opening0;
L_Opening0:
mes "\"In the outskirts of Tulimshar, there are some scorpions... I need help! Will you help?\"";
@@ -47,9 +47,9 @@ L_Ask:
L_Yes:
set @TEMP, rand(3);
- if(@TEMP == 0) goto L_Req0;
if(@TEMP == 1) goto L_Req1;
if(@TEMP == 2) goto L_Req2;
+ goto L_Req0;
L_Req0:
mes "[Sandra]";
diff --git a/world/map/npc/001-1/sarah.txt b/world/map/npc/001-1/sarah.txt
index 9f61fc19..5ed5289c 100644
--- a/world/map/npc/001-1/sarah.txt
+++ b/world/map/npc/001-1/sarah.txt
@@ -15,8 +15,8 @@
next;
set @TEMP, rand(2);
- if(@TEMP == 0) goto L_Opening0;
if(@TEMP == 1) goto L_Opening1;
+ goto L_Opening0;
L_Opening0:
mes "\"Cherry Cake is the best!\"";
diff --git a/world/map/npc/001-1/trader.txt b/world/map/npc/001-1/trader.txt
index cf2854ef..eaf95ffd 100644
--- a/world/map/npc/001-1/trader.txt
+++ b/world/map/npc/001-1/trader.txt
@@ -15,9 +15,8 @@
mes "\"Hello. I came here to trade wares with the people of Tulimshar. Unfortunately for you, I've traded everything I had.\"";
next;
menu
- "Oh. I'll go then.", -,
+ "Oh. I'll go then.", L_Close,
"You don't have anything?", L_More;
- goto L_Close;
L_More:
mes "[Trader]";
@@ -25,8 +24,7 @@ L_More:
next;
menu
"Yes?", L_Except,
- "Ok then.", -;
- goto L_Close;
+ "Ok then.", L_Close;
L_Except:
mes "[Trader]";
@@ -34,8 +32,7 @@ L_Except:
next;
menu
"Sure.", L_Teach,
- "No thank you.", -;
- goto L_Close;
+ "No thank you.", L_Close;
L_Teach:
if (Zeny < 5) goto L_NotEnoughMoney;
@@ -67,32 +64,28 @@ L_Trademenu:
"Do you have Iron Powder?", L_Iron,
"How about Sulphur Powder?", L_Sulphur,
"I need Medium Healing Potions.", L_Healpots,
- "I think I have everything I need, thanks.", -;
- goto L_Close;
+ "I think I have everything I need, thanks.", L_Close;
L_Iron:
mes "[Trader]";
mes "\"I do have a few of those. I will give you 4 Iron Powders for 1 Iron Ore and " + @Ironprice + "gp.\"";
menu
"Sure.", L_Ipowder,
- "What a ripoff! No way!", -;
- goto L_Close;
+ "What a ripoff! No way!", L_Close;
L_Sulphur:
mes "[Trader]";
mes "\"I can trade you 5 Sulphur Powders for 1 Pile of Ash and " + @Sulphurprice + "gp.\"";
menu
"Here you go.", L_Spowder,
- "Are you nuts?! Forget it!", -;
- goto L_Close;
+ "Are you nuts?! Forget it!", L_Close;
L_Healpots:
mes "[Trader]";
mes "\"Healing potions are always useful, but I rarely need anything larger than the small ones. I will happily trade you 1 Medium Healing Potion for 3 Small Healing Potions and " + @Potionprice + "gp.\"";
menu
"Alright.", L_Pots,
- "Whoa, that's way too much.", -;
- goto L_Close;
+ "Whoa, that's way too much.", L_Close;
L_Ipowder:
if (countitem("IronOre") < 1) goto L_Missing;
@@ -107,7 +100,6 @@ L_Ipowder:
menu
"Yes.", L_Trademenu,
"No.", L_No;
- goto L_Close;
L_Spowder:
if (countitem("PileOfAsh") < 1) goto L_Missing;
@@ -122,7 +114,6 @@ L_Spowder:
menu
"Yes.", L_Trademenu,
"No.", L_No;
- goto L_Close;
L_Pots:
if (countitem("SmallHealingPotion") < 3) goto L_Missing;
@@ -137,7 +128,6 @@ L_Pots:
menu
"Yes.", L_Trademenu,
"No.", L_No;
- goto L_Close;
L_Full:
mes "[Trader]";
diff --git a/world/map/npc/001-1/vincent.txt b/world/map/npc/001-1/vincent.txt
index 1a64b055..74ee26cc 100644
--- a/world/map/npc/001-1/vincent.txt
+++ b/world/map/npc/001-1/vincent.txt
@@ -9,6 +9,7 @@
if (@state >= 2) goto L_Done;
if (@state == 1) goto L_Progress;
+ goto L_Convince_Vincent_First;
L_Convince_Vincent_First:
mes "[Vincent]";
@@ -16,10 +17,10 @@ L_Convince_Vincent_First:
next;
set @TEMP, rand(4);
- if(@TEMP == 0) goto L_Opening1;
if(@TEMP == 1) goto L_Opening2;
if(@TEMP == 2) goto L_Opening3;
if(@TEMP == 3) goto L_Opening4;
+ goto L_Opening1;
L_Opening1:
mes "\"I just need 10 more Bug Legs to finish my action figure!\"";
@@ -52,10 +53,10 @@ L_Sure:
set @state, 1;
callsub S_Update_Var;
set @TEMP, rand(4);
- if(@TEMP == 0) goto L_Req1;
if(@TEMP == 1) goto L_Req2;
if(@TEMP == 2) goto L_Req3;
if(@TEMP == 3) goto L_Req4;
+ goto L_Req1;
L_Req1:
mes "[Vincent]";
diff --git a/world/map/npc/001-2/casino.txt b/world/map/npc/001-2/casino.txt
index d5090135..e14decd6 100644
--- a/world/map/npc/001-2/casino.txt
+++ b/world/map/npc/001-2/casino.txt
@@ -50,9 +50,7 @@ L_End:
next;
menu
"Yes", L_Begin,
- "No", -;
- mes "\"As you wish.\"";
- goto L_Close;
+ "No", L_Close;
L_Begin:
if(countitem("CasinoCoins") < 15) goto L_NoCoin;
@@ -112,6 +110,7 @@ L_Ace:
"No", L_End;
L_Close:
+ mes "\"As you wish.\"";
set @croupier, 0;
set @player, 0;
set @tempace, 0;
@@ -129,9 +128,7 @@ L_Close:
"10 coins", L_b10,
"50 coins", L_b50,
"100 coins", L_b100,
- "Maybe I'll play later", -;
- mes "Come again.";
- goto L_Close;
+ "Maybe I'll play later", L_Close;
L_b1:
set @bet, 1;
@@ -157,11 +154,15 @@ L_Check:
if(countitem("CasinoCoins") < @bet) goto L_NoCoin;
delitem "CasinoCoins", @bet;
menu
- "Choose a color", -,
+ "Choose a color", L_PickColor,
"Choose a number", L_Number;
+
+L_PickColor:
menu
- "Black", -,
- "Red", -;
+ "Black", L_Color,
+ "Red", L_Color;
+
+L_Color:
set @color,rand(2);
if(@color == 1) goto L_Lost;
mes "You won!";
@@ -170,11 +171,12 @@ L_Check:
L_Number:
menu
- "0", -, "00", -, "1", -, "2", -, "3", -, "4", -, "5", -, "6", -, "7", -, "8", -,
- "9", -, "10", -, "11", -, "12", -, "13", -, "14", -, "15", -, "16", -, "17", -, "18", -,
- "19", -, "20", -, "21", -, "22", -, "23", -, "24", -, "25", -, "26", -, "27", -, "28", -,
- "29", -, "30", -, "31", -, "32", -, "33", -, "34", -, "35", -, "36", -;
+ "0", L_Menuitems, "00", L_Menuitems, "1", L_Menuitems, "2", L_Menuitems, "3", L_Menuitems, "4", L_Menuitems, "5", L_Menuitems, "6", L_Menuitems, "7", L_Menuitems, "8", L_Menuitems,
+ "9", L_Menuitems, "10", L_Menuitems, "11", L_Menuitems, "12", L_Menuitems, "13", L_Menuitems, "14", L_Menuitems, "15", L_Menuitems, "16", L_Menuitems, "17", L_Menuitems, "18", L_Menuitems,
+ "19", L_Menuitems, "20", L_Menuitems, "21", L_Menuitems, "22", L_Menuitems, "23", L_Menuitems, "24", L_Menuitems, "25", L_Menuitems, "26", L_Menuitems, "27", L_Menuitems, "28", L_Menuitems,
+ "29", L_Menuitems, "30", L_Menuitems, "31", L_Menuitems, "32", L_Menuitems, "33", L_Menuitems, "34", L_Menuitems, "35", L_Menuitems, "36", L_Menuitems;
+L_Menuitems:
if (@menu == 1) set @number, 0;
if (@menu == 2) set @number, 37;
if (@menu >= 3) set @number, @menu - 2;
@@ -196,6 +198,7 @@ L_Lost:
goto L_Close;
L_Close:
+ mes "Come again.";
set @number, 0;
set @roulette, 0;
set @color, 0;
diff --git a/world/map/npc/001-2/omar.txt b/world/map/npc/001-2/omar.txt
index 105b6f88..1adfa796 100644
--- a/world/map/npc/001-2/omar.txt
+++ b/world/map/npc/001-2/omar.txt
@@ -40,8 +40,7 @@ function|script|KadiyaSubquestConsts|,
menu
"Well met! May I ask who you are?", L_omar,
"What's wrong with your daughter?", L_kadiya_sick,
- "Thank you!", -;
- goto L_Close;
+ "Thank you!", L_Close;
L_omar:
mes "[Omar]";
@@ -58,8 +57,9 @@ L_kadiya_sick:
"Have you asked Elanore the healer?", L_sick_elanore,
"How about the Hurnscald hospital?", L_sick_hospital,
"Can I help?", L_sick_self,
- "I'm sorry to hear that.", -;
+ "I'm sorry to hear that.", L_Next;
+L_Next:
mes "[Omar]";
mes "\"Well, she is a strong girl. I am sure that she will get over it eventually.\"";
mes "He smiles, but you see doubt in his eyes.";
@@ -121,7 +121,9 @@ L_cured_choice:
menu
"Oh, it was nothing.", L_cured_nothing,
"I didn't do it alone; Elanore helped.", L_cured_elanore,
- "That will be 5000 GP.", -;
+ "That will be 5000 GP.", L_Next1;
+
+L_Next1:
mes "[Omar]";
mes "\"Ah, certainly.\"";
mes "He hands you a small bag of money.";
@@ -209,6 +211,7 @@ S_update_var:
set @choice_idx[@choices_nr], @M_POTION;
set @choice$[@choices_nr], "This potion will cure your illness!";
set @choices_nr, @choices_nr + 1;
+ goto L_M_no_cure;
L_M_no_cure:
if ((countitem("LacedChocolateCake") == 0) || (@Q_status != @Q_STATUS_WANTS_CHOCOCAKE))
@@ -216,6 +219,7 @@ L_M_no_cure:
set @choice_idx[@choices_nr], @M_CHOCOCAKE;
set @choice$[@choices_nr], "Would you like special chocolate cake?";
set @choices_nr, @choices_nr + 1;
+ goto L_M_no_chococake;
L_M_no_chococake:
if ((countitem("LacedOrangeCupcake") == 0) || (@Q_status != @Q_STATUS_WANTS_ORANGECUPCAKE))
@@ -223,6 +227,7 @@ L_M_no_chococake:
set @choice_idx[@choices_nr], @M_CUPCAKE;
set @choice$[@choices_nr], "Would you like special orange cupcake?";
set @choices_nr, @choices_nr + 1;
+ goto L_M_no_cupcake;
L_M_no_cupcake:
set @choice_idx[@choices_nr], 0;
@@ -230,13 +235,14 @@ L_M_no_cupcake:
set @choices_nr, @choices_nr + 1;
menu
- @choice$[0], -,
- @choice$[1], -,
- @choice$[2], -,
- @choice$[3], -,
- @choice$[4], -,
- @choice$[5], -;
-
+ @choice$[0], L_MenuItems,
+ @choice$[1], L_MenuItems,
+ @choice$[2], L_MenuItems,
+ @choice$[3], L_MenuItems,
+ @choice$[4], L_MenuItems,
+ @choice$[5], L_MenuItems;
+
+L_MenuItems:
set @choice, @choice_idx[@menu - 1];
if (@choice == @M_NAME) goto L_name;
diff --git a/world/map/npc/001-2/phaet.txt b/world/map/npc/001-2/phaet.txt
index 36410c48..ebeaa4a0 100644
--- a/world/map/npc/001-2/phaet.txt
+++ b/world/map/npc/001-2/phaet.txt
@@ -7,8 +7,9 @@
next;
menu
"Yes", L_Sure,
- "No", -;
+ "No", L_Next;
+L_Next:
mes "[Phaet the Royal Guard]";
mes "\"Ha ha, coward.\"";
close;
diff --git a/world/map/npc/001-3/guards.txt b/world/map/npc/001-3/guards.txt
index 38acaf85..699d46ba 100644
--- a/world/map/npc/001-3/guards.txt
+++ b/world/map/npc/001-3/guards.txt
@@ -7,7 +7,9 @@
next;
menu
"Yes", L_Sure,
- "No", -;
+ "No", L_Next;
+
+L_Next:
mes "Have fun.";
close;
diff --git a/world/map/npc/002-2/rogue.txt b/world/map/npc/002-2/rogue.txt
index 39a4d8ce..d7b8c5af 100644
--- a/world/map/npc/002-2/rogue.txt
+++ b/world/map/npc/002-2/rogue.txt
@@ -17,10 +17,12 @@
mes "For you it will cost only "+@cost+" gp.\"";
next;
menu
- "Reset my stats",-,
+ "Reset my stats",L_Next,
"Forget about it",L_Pass;
+L_Next:
if (Zeny<@cost) goto L_NoMoney;
+ goto L_Reset;
// set $ResetA_uses, $ResetA_uses + 1;
// set ResetA_charstate, 1;
diff --git a/world/map/npc/003-1/stranger.txt b/world/map/npc/003-1/stranger.txt
index 97428470..ead5a6a0 100644
--- a/world/map/npc/003-1/stranger.txt
+++ b/world/map/npc/003-1/stranger.txt
@@ -26,7 +26,6 @@
menu
"Yeah, sure.",L_Items,
"No.",L_Close;
- goto L_Close;
L_Items:
if (countitem("IronIngot") < @IRONINGOT) goto L_No_Item;
@@ -41,6 +40,7 @@ L_Items:
next;
mes "\"I have a lot of work to do now. But before you leave...\"";
next;
+ goto L_Towel;
L_Towel:
getinventorylist;
@@ -84,6 +84,7 @@ L_Towel:
callfunc "StrangerQuiz";
if (("###" + @answer$ == @quizanswer$))
goto L_Right_Answer_Easy;
+ goto L_Easy_Skip4;
L_Easy_Skip4:
if (@easy_answers_amount[@random] < 3)
@@ -92,6 +93,7 @@ L_Easy_Skip4:
callfunc "StrangerQuiz";
if (("###" + @answer$ == @quizanswer$))
goto L_Right_Answer_Easy;
+ goto L_Easy_Skip3;
L_Easy_Skip3:
set @quizparam$, "towelanswer0" + @random + "b";
@@ -138,6 +140,7 @@ L_Right_Answer_Easy:
callfunc "StrangerQuiz";
if (("###" + @answer$ == @quizanswer$))
goto L_Right_Answer_Medium;
+ goto L_Medium_Skip4;
L_Medium_Skip4:
if (@medium_answers_amount[@random] < 3)
@@ -146,6 +149,7 @@ L_Medium_Skip4:
callfunc "StrangerQuiz";
if (("###" + @answer$ == @quizanswer$))
goto L_Right_Answer_Medium;
+ goto L_Medium_Skip3;
L_Medium_Skip3:
set @quizparam$, "towelanswer1" + @random + "b";
@@ -188,6 +192,7 @@ L_Right_Answer_Medium:
callfunc "StrangerQuiz";
if (("###" + @answer$ == @quizanswer$))
goto L_Right_Answer_Hard;
+ goto L_Hard_Skip4;
L_Hard_Skip4:
if (@hard_answers_amount[@random] < 3)
@@ -196,6 +201,7 @@ L_Hard_Skip4:
callfunc "StrangerQuiz";
if (("###" + @answer$ == @quizanswer$))
goto L_Right_Answer_Hard;
+ goto L_Hard_Skip3;
L_Hard_Skip3:
set @quizparam$, "towelanswer2" + @random + "b";
@@ -228,6 +234,7 @@ L_Right_Answer_Hard:
getitem "HitchhikersTowel", 1;
set FLAGS, FLAGS | FLAG_TOWEL_COMPLETED;
next;
+ goto L_Explain;
L_Explain:
mes "[Stranger]";
@@ -249,7 +256,7 @@ L_No_Event:
mes "\"You can read more about that in my favourite book, 'The Hitchhiker's Guide to the Galaxy'.\"";
if (countitem("HitchhikersTowel") > 0)
menu
- "Thanks for the advice.",-,
+ "Thanks for the advice.",L_Close,
"I have my towel with me too.",L_Dye;
goto L_Close;
@@ -264,8 +271,7 @@ L_Dye:
menu
"Oh? Can you explain about it?",L_Explain,
"I know. Could you dye it for me?",L_Dye_Towel,
- "It's great, isn't it? I have to go now.",-;
- goto L_Close;
+ "It's great, isn't it? I have to go now.",L_Close;
L_No_Item:
mes "[Stranger]";
@@ -283,7 +289,7 @@ L_Event_Done:
next;
mes "\"Shall I dye your towel?\"";
menu
- "That would be great!",-,
+ "That would be great!",L_Dye_Towel,
"No, thanks.", L_Close;
L_Dye_Towel:
@@ -302,7 +308,6 @@ L_Dye_Towel:
// "Lime",L_Lime,
// "Teal",L_Teal,
"I changed my mind.", L_Close;
- goto L_Close;
L_Red:
mes "[Stranger]";
diff --git a/world/map/npc/005-1/spirit.txt b/world/map/npc/005-1/spirit.txt
index fa4e61a8..02e4e3b1 100644
--- a/world/map/npc/005-1/spirit.txt
+++ b/world/map/npc/005-1/spirit.txt
@@ -35,16 +35,20 @@ L_message:
mes "That strange voice seems to be coming from inside your head!";
next;
menu
- "Who, me?", -,
+ "Who, me?", L_Next,
"Leave me alone!", L_Close,
"Aaah! I'm hearing voices!", L_silly_close;
+
+L_Next:
mes "[Well]";
mes "\"I'm in here, in the well, talking to you! If I'm not very mistaken, you are a powerful wizard-to-be, except that nobody has showed you how to properly do magic yet!\"";
next;
menu
- "Who are you?", -,
+ "Who are you?", L_Next1,
"Aaaah! The voices are after me!", L_silly_close,
"Whatever it is, I'm not interested.", L_Close;
+
+L_Next1:
mes "[Earth Spirit]";
mes "\"I'm an earth spirit; my name isn't important... all that matters is that I like you, and that I will help you become a powerful wizard if you help me. Just a fair deal, no more than that...\"";
next;
@@ -57,14 +61,14 @@ L_wb:
mes "[Earth Spirit]";
mes "\"It's excellent to see you again!\"";
next;
+ goto L_main;
L_main:
menu
"How did you get trapped?", L_Q_trapped,
"Can you teach me magic and spells?", L_Q_magic,
"What do you know about...", L_Q,
- "Goodbye!", -;
- goto L_Close;
+ "Goodbye!", L_Close;
L_Q_trapped:
mes "[Earth Spirit]";
@@ -93,14 +97,18 @@ L_Q_magic:
menu
"No way.", L_silly_close,
"Sure.", L_Q_tree_ok,
- "Why that particular tree?", -;
+ "Why that particular tree?", L_Next2;
+
+L_Next2:
mes "[Earth Spirit]";
mes "\"Oh, you and your questions! Well, that tree was a druid once, so the branches contain a bit of its lifeforce. And that's useful.\"";
next;
menu
"Yuck.", L_silly_close,
"Sure, whatever.", L_Q_tree_ok,
- "Isn't that like cutting off someone's arm?", -;
+ "Isn't that like cutting off someone's arm?", L_Next3;
+
+L_Next3:
mes "[Earth Spirit]";
mes "\"Oooh... now come on! Don't be so sentimental. He turned himself into a tree, he can hardly expect everyone to leave him alone.\"";
next;
@@ -125,12 +133,13 @@ L_Q_magic_1:
mes "\"Yes, yes, if you bring me the branch and the money, then I will!\"";
next;
menu
- "Here are the branch and the money.", -,
+ "Here are the branch and the money.", L_Next4,
"How much money did you want again?", L_Q_tree_howmuch,
"How can I cut it?", L_Q_tree_how,
"Where was the tree again?", L_Q_tree_where,
"What is that tree?", L_Q_tree_what;
+L_Next4:
if (countitem("DruidTreeBranch") < 1) goto L_Q_tree_none;
if (!(MAGIC_FLAGS & MFLAG_DID_CUTTREE)) goto L_Q_tree_dry;
if (Zeny < 100000) goto L_Q_tree_nomoney;
@@ -163,9 +172,10 @@ L_Q_magic_2:
mes "\"Yes, of course! For just 20,000 GP I will teach you your first spell!\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next5,
"No.", L_main;
+L_Next5:
if (Zeny < 20000) goto L_no20k;
set Zeny, Zeny - 20000;
@@ -181,9 +191,10 @@ L_Q_magic_3:
mes "\"But yes, yes! Only 20,000 GP, once again, and I will teach you a far more useful spell!\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next6,
"No.", L_main;
+L_Next6:
if (Zeny < 20000) goto L_no20k;
set Zeny, Zeny - 20000;
mes "[Earth Spirit]";
@@ -252,7 +263,8 @@ L_silly_close:
mes "[Earth Spirit]";
if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP))
mes "[Well]";
- mes "\"Silly " + @s$ + ".\"";
+ mes "\"Silly " + @s$ + ".\"";
+ goto L_Close;
L_Close:
set @Q_MASK, 0;
@@ -279,9 +291,11 @@ S_update_var:
005-1.gat,118,70,0|script|#EarthImp0#_M|400,
{
callfunc "EarthImpTouch";
+ end;
}
005-1.gat,119,70,0|script|#EarthImp1#_M|400,
{
callfunc "EarthImpTouch";
+ end;
}
diff --git a/world/map/npc/005-1/tree.txt b/world/map/npc/005-1/tree.txt
index 2b63f8cb..626164b9 100644
--- a/world/map/npc/005-1/tree.txt
+++ b/world/map/npc/005-1/tree.txt
@@ -10,6 +10,7 @@ function|script|QuestTreeTrigger|,
if (@Q_status & @flag) goto L_Close; // already did that
if (@flag == 2) goto L_hug;
+ goto L_cont;
L_cont:
set @Q_status, @Q_status | @flag;
@@ -73,8 +74,7 @@ L_cut:
next;
menu
"Cut off a branch", L_do_cut,
- "Leave it alone", -;
- goto L_Close;
+ "Leave it alone", L_Close;
L_water:
mes "[Dying Tree]";
@@ -83,8 +83,7 @@ L_water:
menu
"Water the tree", L_givewater,
"Kiss tree", L_kiss,
- "Leave it alone", -;
- goto L_Close;
+ "Leave it alone", L_Close;
L_both:
mes "[Dying Tree]";
@@ -94,8 +93,7 @@ L_both:
"Water the tree", L_givewater,
"Kiss tree", L_kiss,
"Cut off a branch", L_do_cut,
- "Leave it alone", -;
- goto L_Close;
+ "Leave it alone", L_Close;
L_givewater:
if (countitem("BottleOfWater") < 1) goto L_no_water;
@@ -128,9 +126,8 @@ L_do_cut:
mes "Do you want to continue cutting?";
next;
menu
- "Nah... better not.", -,
+ "Nah... better not.", L_Close,
"Yes, let's cut!", L_really_cut;
- goto L_Close;
L_really_cut:
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DID_CUTTREE;
@@ -161,9 +158,11 @@ L_Close:
005-1.gat,79,41,0|script|#DruidTree0#_M|400,
{
callfunc "QuestTreeTouch";
+ end;
}
005-1.gat,80,41,0|script|#DruidTree1#_M|400,
{
callfunc "QuestTreeTouch";
+ end;
}
diff --git a/world/map/npc/005-4/_import.txt b/world/map/npc/005-4/_import.txt
index 946e3c1d..d48c6a1c 100644
--- a/world/map/npc/005-4/_import.txt
+++ b/world/map/npc/005-4/_import.txt
@@ -3,4 +3,3 @@
map: 005-4.gat
npc: npc/005-4/_mobs.txt
npc: npc/005-4/_warps.txt
-npc: npc/005-4/bossfight.txt
diff --git a/world/map/npc/005-4/bossfight.txt b/world/map/npc/005-4/bossfight.txt
deleted file mode 100644
index 8f8ab384..00000000
--- a/world/map/npc/005-4/bossfight.txt
+++ /dev/null
@@ -1,209 +0,0 @@
-//Author: Kage
-
-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*";
- menu "No, I am NOT flipping the switch... thats final.", L_Exit,
- "Ha! What's the worst that could happen?", -;
-
- mes "*As you flip the switch, the cave starts to rumble*";
-
- if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; // Prevent from starting level 1 from two different players
-
- set $@ELE_CAVE_STATUS, 1;
- set $@ELE_CAVE_PLAYER_COUNT, getmapusers("005-4.gat");
-
- startnpctimer;
-
-L_Start_Level_1:
- set $@ELE_CAVE_LEVEL, 1;
-
- mapannounce "005-4.gat", "Level 1 starting", 0;
-
- // Random colors for everyone!
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::OnChaos";
-
- // Two red, two blue.
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 2, "Switch#elecave::OnBlueDeath";
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 2, "Switch#elecave::OnRedDeath";
- goto L_Exit; // This one is triggered on talking to the switch.
-
-L_Enjoy:
- mes "*As you get ready to touch the switch, a spark of the opposite color flys to you. But oddly it doesn't hurt at all.*";
-
- if (@ELE_CAVE_COLOR == 1) goto L_Set_Blue;
- if (@ELE_CAVE_COLOR == 2) goto L_Set_Red;
-
-L_Set_Red:
- set @ELE_CAVE_COLOR, 1;
- goto L_Exit;
-L_Set_Blue:
- set @ELE_CAVE_COLOR, 2;
- goto L_Exit;
-
-
-L_Exit:
- close;
- end;
-
-//-----------------------No player talking below this line-------------------------------
-
-// Fight logic
-OnTimer3000:
- setnpctimer 0;
-
- // We stop if no live players are around
- if ($@ELE_CAVE_PLAYER_COUNT == 0) goto L_CleanUp;
- set $@ELE_CAVE_PLAYER_COUNT, 0; // The onTick refills this with a live count
-
- // We punish them for having a different count (Aka need kill them at the same time)
- set $@ELE_CAVE_RED_COUNT, mobcount("005-4.gat","Switch#elecave::OnRedDeath") + 1;
- set $@ELE_CAVE_BLUE_COUNT, mobcount("005-4.gat","Switch#elecave::OnBlueDeath") + 1;
-
- set $@ELE_CAVE_DIFF, 0;
- if ($@ELE_CAVE_RED_COUNT > $@ELE_CAVE_BLUE_COUNT) goto L_More_Red;
- if ($@ELE_CAVE_RED_COUNT < $@ELE_CAVE_BLUE_COUNT) goto L_More_Blue;
-
- if ($@ELE_CAVE_LAST_MESSAGE != 0) mapannounce "005-4.gat", "The ions are once again balanced. Try to kill a red and blue at the same time.", 0;
- set $@ELE_CAVE_LAST_MESSAGE, 0;
-
- goto L_Next_Step;
-
-L_More_Red:
- set $@ELE_CAVE_DIFF, $@ELE_CAVE_RED_COUNT - $@ELE_CAVE_BLUE_COUNT;
- if ($@ELE_CAVE_LAST_MESSAGE != 1) mapannounce "005-4.gat", "There are too many red ions in the air! Kill more red sparks!", 0;
- set $@ELE_CAVE_LAST_MESSAGE, 1;
- goto L_Next_Step;
-
-L_More_Blue:
- set $@ELE_CAVE_DIFF, $@ELE_CAVE_BLUE_COUNT - $@ELE_CAVE_RED_COUNT;
- if ($@ELE_CAVE_LAST_MESSAGE != 2) mapannounce "005-4.gat", "There are too many blue ions in the air! Kill more blue sparks!", 0;
- set $@ELE_CAVE_LAST_MESSAGE, 2;
- goto L_Next_Step;
-
-L_Next_Step:
- // Basic per player logic
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::OnTick";
-
- if ($@ELE_CAVE_RED_COUNT == 0 && $@ELE_CAVE_BLUE_COUNT == 0) goto L_Next_Level;
-
- end;
-
-L_Next_Level:
- if ($@ELE_CAVE_LEVEL == 1) goto L_Start_Level_2;
- if ($@ELE_CAVE_LEVEL == 2) goto L_Start_Level_3;
- if ($@ELE_CAVE_LEVEL == 3) goto L_CleanUp;
- end;
-
-L_Start_Level_2:
- set $@ELE_CAVE_LEVEL, 2;
-
- mapannounce "005-4.gat", "Level 2 starting", 0;
-
- // Random colors for everyone!
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::OnChaos";
-
- // four red, four blue.
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 4, "Switch#elecave::OnBlueDeath";
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 4, "Switch#elecave::OnRedDeath";
- end;
-
-L_Start_Level_3:
- set $@ELE_CAVE_LEVEL, 3;
-
- mapannounce "005-4.gat", "Level 3 starting", 0;
-
- // Random colors for everyone!
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::OnChaos";
-
- // eight red, eight blue.
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 8, "Switch#elecave::OnBlueDeath";
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 8, "Switch#elecave::OnRedDeath";
- end;
-
-// Being ticks
-
-OnChaos:
- if (isdead()) 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:
- if (isdead()) end;
-
- // Count this player as alive
- set $@ELE_CAVE_PLAYER_COUNT, $@ELE_CAVE_PLAYER_COUNT + 1;
-
- set @drainamount, MaxHp / -20;
-
- if ($@ELE_CAVE_DIFF != 0) heal @drainamount * $@ELE_CAVE_DIFF, 0;
-
- // Make sure they have a color
- if (@ELE_CAVE_COLOR == 0) goto L_Set_Color;
-
- if (@ELE_CAVE_COLOR == 1) goto L_Do_Red;
- if (@ELE_CAVE_COLOR == 2) goto L_Do_Blue;
-
- end;
-
-L_Do_Red:
- specialeffect2 114; // Red effects
-
- if (isin("005-4.gat", 42, 19, 54, 32)) goto L_Heal;
- if (isin("005-4.gat", 32, 19, 54, 37)) end;
- message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you.";
- heal MaxHp / -6, 0;
-
- end;
-
-L_Do_Blue:
- specialeffect2 115; // Blue effects
-
- if (isin("005-4.gat", 19, 19, 31, 32)) goto L_Heal;
- if (isin("005-4.gat", 19, 19, 41, 37)) end;
- message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you";
- heal MaxHp / -6, 0;
-
- end;
-
-L_Heal:
- heal MaxHp / 20, 0;
- end;
-
-// Death triggers
-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:
- // 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:
- if (debug >= 2) end;
- initnpctimer;
- stopnpctimer;
-L_CleanUp:
- set $@ELE_CAVE_LAST_MESSAGE, 0;
- set $@ELE_CAVE_STATUS, 0;
- set $@ELE_CAVE_PLAYER_COUNT, 0;
- set $@ELE_CAVE_LEVEL, 0;
- set $@ELE_CAVE_ROUND_TIMER, 0;
-
- killmonster "005-4.gat", "Switch#elecave::OnBlueDeath";
- killmonster "005-4.gat", "Switch#elecave::OnRedDeath";
-
- stopnpctimer;
- setnpctimer 0;
- end;
-}
diff --git a/world/map/npc/006-1/pachua.txt b/world/map/npc/006-1/pachua.txt
index 585a17f3..48131542 100644
--- a/world/map/npc/006-1/pachua.txt
+++ b/world/map/npc/006-1/pachua.txt
@@ -12,6 +12,7 @@
if (QUEST_MIRIAM_cheat != 0) goto L_warp_cheat;
if (QUEST_MIRIAM_start != 0) goto L_smoke;
+ goto L_Begin;
L_Begin:
mes "[Chief Pachua]";
@@ -26,6 +27,7 @@ L_Begin:
mes "";
mes "\"For generations my tribe has been crafting special clothes out of different items.\"";
next;
+ goto L_Check_Shops;
L_Check_Shops:
if((countitem("JeansShorts") > 0 && countitem("SnakeSkin") > 9) && (countitem("FancyHat") > 0 && countitem("SnakeSkin") > 1)) goto L_Super_store;
@@ -39,7 +41,7 @@ L_Check_Shops:
if (@wants_leather_patch)
menu
"Wait, can you make a leather patch for me?", L_leather_patch,
- "OK, bye.", -;
+ "OK, bye.", L_Close;
goto L_Close;
S_CheckStuff:
@@ -64,7 +66,7 @@ L_Super_store:
"Snake Skin Chaps sound good.", L_BuyChaps,
"Can you make a leather patch?", L_leather_patch,
"Not now, maybe later.", L_NoDeal;
- if (!@wants_leather_patch)
+ //else
menu
"Cowboy hat, please.", L_BuyCowboy,
"Snake Skin Chaps sound good.", L_BuyChaps,
@@ -86,7 +88,7 @@ L_Cowboy_store:
"Yes, that's fine.", L_BuyCowboy,
"Can you make a leather patch?", L_leather_patch,
"On second thought, maybe later.", L_NoDeal;
- if (!@wants_leather_patch)
+ //else
menu
"Yes, that's fine.", L_BuyCowboy,
"On second thought, maybe later.", L_NoDeal;
@@ -106,7 +108,7 @@ L_Chaps_store:
menu
"Yes, that's fine.", L_BuyChaps,
"On second thought, maybe later.", L_NoDeal;
- if (@wants_leather_patch)
+ //else
menu
"Yes, that's fine.", L_BuyChaps,
"Can you make a leather patch?", L_leather_patch,
@@ -147,10 +149,11 @@ L_leather_patch:
mes "\"If you just want a piece of leather, then yes, I can make that. Bring me a snake skin and " + @LEATHER_PATCH_PRICE + " GP.\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next,
"OK, I'll be back later.", L_Close,
"That's too expensive!.", L_NoDeal;
+L_Next:
if (countitem("SnakeSkin") < 1) goto L_NoSkins;
if (Zeny < @LEATHER_PATCH_PRICE) goto L_NoMoney;
getinventorylist;
@@ -247,16 +250,23 @@ L_Basket:
mes "\"Maybe if you bring me the right materials I can make something for you.\"";
next;
menu
- "Do you work only with clothes? Because I was looking for a basket.", -;
+ "Do you work only with clothes? Because I was looking for a basket.", L_Next1;
+
+L_Next1:
mes "\"A basket? In our tribe, we craft baskets of all kinds using only reeds. This basket, you need it to carry your items?\"";
menu
- "No. It is for the Easter Bunny. I offered to get him one.", -;
+ "No. It is for the Easter Bunny. I offered to get him one.", L_Next2;
+
+L_Next2:
mes "\"I appreciate your attitude. Maybe I can help you with that.\"";
menu
- "I would be really grateful if you could do that!", -,
+ "I would be really grateful if you could do that!", L_Next3,
"Nah, I decided not to do that stupid quest.", L_Close,
"I would prefer to talk to you about other stuff.", L_Begin; //should go to pachuas's regular chat
+
+L_Next3:
set QUEST_Easter11, 2;
+ goto L_MakeBasket;
L_MakeBasket:
mes "[Chief Pachua]";
@@ -265,14 +275,15 @@ L_MakeBasket:
mes "\"5 bundles should do it.\"";
mes "\"You should be able to get those from mouboos as they graze.\"";
menu
- "I have the Reeds!", -,
+ "I have the Reeds!", L_Next4,
"Ok, I will be back soon", L_Close,
"I changed my mind, forget about it", L_Close,
"Can I talk to you about another stuff?", L_Begin; //should go to pachuas's regular chat
+L_Next4:
if(countitem("ReedBundle") < 5) goto L_EasterNotEnough;
- if(countitem("ReedBundle") >= 5) goto L_EasterEnough;
- goto L_Close;
+ //else
+ goto L_EasterEnough;
L_EasterNotEnough:
mes "[Chief Pachua]";
diff --git a/world/map/npc/007-1/voltain.txt b/world/map/npc/007-1/voltain.txt
index 659e9d7c..c05be549 100644
--- a/world/map/npc/007-1/voltain.txt
+++ b/world/map/npc/007-1/voltain.txt
@@ -81,21 +81,25 @@
if ($@VOLTAIN_state == 12) goto state12;
if ($@VOLTAIN_state == 13) goto state13;
// default: trap through to state0!
+ goto state0;
state0:
mes "[Voltain]";
mes "\"What are you doing bothering me? Can't you see I'm busy! Oh, I'm sorry, I thought you were my assistant. Never mind that... would you care to help me?\"";
next;
menu
- "Sure I do!", -,
+ "Sure I do!", L_Next,
"No, you creep me out.", L_NOHELP;
+
+L_Next:
mes "[Voltain]";
mes "\"I'm working on a very special potion. I need some empty bottles to keep the ingredients in. Care to go find me " + @BOTTLE_NEEDED + " empty bottles?!\"";
next;
menu
- "I've got the bottles.", -,
+ "I've got the bottles.", L_Next1,
"I don't feel like helping you get garbage...", L_Close;
+L_Next1:
if (countitem("EmptyBottle") < @BOTTLE_NEEDED)
goto L_NOT_ENOUGH;
delitem "EmptyBottle", @BOTTLE_NEEDED;
@@ -111,8 +115,10 @@ mes "\"I'm making a potion that requires lots of venom. I'm in need of " + @BLAC
next;
menu
- "I've got the stingers!", -,
+ "I've got the stingers!", L_Next2,
"I'll go search for them.", L_Close;
+
+L_Next2:
mes "[Voltain]";
if (countitem("BlackScorpionStinger") < @BLACK_SC_ST_NEEDED)
goto L_NOT_ENOUGH;
@@ -123,14 +129,15 @@ menu
mes "\"Well, since you went to the trouble of getting me these here's a little something for your time...\"";
goto L_Close;
-
state2:
mes "[Voltain]";
mes "\"Care to to help me with my potion? I need " + @BUGLEG_NEEDED + " bug legs so that I can thicken the potion.\"";
next;
menu
- "I've got the bug legs.", -,
+ "I've got the bug legs.", L_Next3,
"I'd rather not carry around dead bugs for you.", L_NOHELP ;
+
+L_Next3:
mes "[Voltain]";
if (countitem("BugLeg") < @BUGLEG_NEEDED)
goto L_NOT_ENOUGH;
@@ -146,8 +153,10 @@ state3:
mes "\"I find myself in need of a black scorpion stinger... Damn mouboo are hard to kill...forget you heard that.\"";
next;
menu
- "Here's the stinger.", -,
+ "Here's the stinger.", L_Next4,
"I DID HEAR THAT! I will not help you KILL mouboo!", L_Close;
+
+L_Next4:
mes "[Voltain]";
if (countitem("BlackScorpionStinger") < 1)
goto L_NOT_ENOUGH;
@@ -162,8 +171,10 @@ state4:
mes "\"I need to thicken a veno.. Oh, a potion actually. I want to try mauve herbs for that, so can you bring me " + @HERBS_NEEDED + ", please?\"";
next;
menu
- "Here are the herbs.", -,
+ "Here are the herbs.", L_Next5,
"So you want to do a venom? I will not help you!", L_Close;
+
+L_Next5:
mes "[Voltain]";
if (countitem("MauveHerb") < @HERBS_NEEDED)
goto L_NOT_ENOUGH;
@@ -179,8 +190,10 @@ state5:
mes "\"Hello I am looking for " + @RAWLOG_NEEDED + " raw logs, maybe you could help me getting some? I want to try to build a mouboo trap.. Uhm actually no! I want to build a device to destroy these traps. So can you help me?\"";
next;
menu
- "Here are the raw logs.", -,
+ "Here are the raw logs.", L_Next6,
"So you want build traps for mouboos? NO WAY!", L_Close;
+
+L_Next6:
mes "[Voltain]";
if (countitem("RawLog") < @RAWLOG_NEEDED)
goto L_NOT_ENOUGH;
@@ -196,8 +209,10 @@ state6:
mes "\"Hello I am looking for " + @REDAPPLE_NEEDED + " red apples, maybe I can inject some venoms.. DOH not this again! Of course I meant a strength potion. Did you hear about the new potions from Caul? He is a pretty good alchimist. He can do strength potions, can't he?\"";
next;
menu
- "Here are the red apples.", -,
+ "Here are the red apples.", L_Next7,
"I am not sure...", L_Close;
+
+L_Next7:
mes "[Voltain]";
if (countitem("RedApple") < @REDAPPLE_NEEDED)
goto L_NOT_ENOUGH;
@@ -213,8 +228,10 @@ state7:
mes "\"I need to thicken a veno.. Oh, a potion actually. Cobalt herbs might be good for that, so can you bring me " + @HERBS_NEEDED + ", please?\"";
next;
menu
- "Here are the herbs.", -,
+ "Here are the herbs.", L_Next8,
"So you want to do a venom? I will not help you!", L_Close;
+
+L_Next8:
mes "[Voltain]";
if (countitem("CobaltHerb") < @HERBS_NEEDED)
goto L_NOT_ENOUGH;
@@ -230,8 +247,10 @@ state8:
mes "\"I am in need of snake tongues. They can help me getting very strong venom extracts. So I would like you to bring me " + @SNAKETONGUE_NEEDED + " snake tongues.\"";
next;
menu
- "Sure, here you go!", -,
+ "Sure, here you go!", L_Next9,
"Maybe you will find someone else, I got stuff to do on my own!", L_Close;
+
+L_Next9:
mes "[Voltain]";
if (countitem("SnakeTongue") < @SNAKETONGUE_NEEDED)
goto L_NOT_ENOUGH;
@@ -247,8 +266,10 @@ state9:
mes "\"I need to thicken a veno.. Oh, a potion actually. I want to try alizarin herbs for that, so can you bring me " + @HERBS_NEEDED + ", please?\"";
next;
menu
- "Here are the herbs.", -,
+ "Here are the herbs.", L_Next10,
"So you want to do a venom? I will not help you!", L_Close;
+
+L_Next10:
mes "[Voltain]";
if (countitem("AlizarinHerb") < @HERBS_NEEDED)
goto L_NOT_ENOUGH;
@@ -266,8 +287,10 @@ state10:
mes "\"Oh, I just wonder if I can inject some ven... Forget about that! Bring me " + @STEAK_NEEDED + " steaks!\"";
next;
menu
- "Here you go.", -,
+ "Here you go.", L_Next11,
"Help yourself! In the Hurnscald Inn you can get some meals for sure!", L_Close;
+
+L_Next11:
mes "[Voltain]";
if (countitem("Steak") < @STEAK_NEEDED)
goto L_NOT_ENOUGH;
@@ -284,8 +307,10 @@ state11:
next;
mes "\"Acually I wonder if I can use these arrows for building a mouboo trap.... Oh wait! I need some " + @ARROW_NEEDED + " arrows for my self defence right? So do not talk about it!\"";
menu
- "Here you go.", -,
+ "Here you go.", L_Next12,
"Sorry I don't have arrows here!", L_Close;
+
+L_Next12:
mes "[Voltain]";
if (countitem("Arrow") < @ARROW_NEEDED)
goto L_NOT_ENOUGH;
@@ -301,8 +326,10 @@ state12:
mes "\"I need to thicken a veno.. Oh, a potion actually. I want to try gamboge herbs for that, so can you bring me " + @HERBS_NEEDED + ", please?\"";
next;
menu
- "Here are the herbs.", -,
+ "Here are the herbs.", L_Next13,
"So you want to do a venom? I will not help you!", L_Close;
+
+L_Next13:
mes "[Voltain]";
if (countitem("GambogeHerb") < @HERBS_NEEDED)
goto L_NOT_ENOUGH;
@@ -318,8 +345,10 @@ state13:
mes "\"Doing so many ev- good things makes me hungry. I feel in the mood for a Chocolate Cake. Can you bring me " + @CHOCOLATECAKE_NEEDED + ", please? \"";
next;
menu
- "Here it is.", -,
+ "Here it is.", L_Next14,
"I don't feel in the mood to bring you a cake.", L_Close;
+
+L_Next14:
mes "[Voltain]";
if (countitem("ChocolateCake") < @CHOCOLATECAKE_NEEDED)
goto L_NOT_ENOUGH;
diff --git a/world/map/npc/007-1/witch.txt b/world/map/npc/007-1/witch.txt
index 70147a8b..f65bafb1 100644
--- a/world/map/npc/007-1/witch.txt
+++ b/world/map/npc/007-1/witch.txt
@@ -66,16 +66,18 @@ L_Introduce:
mes "\"And you, you seem to be quite an adventurer.\"";
menu
"Well... No.", L_Disappointed,
- "No doubt!", -;
+ "No doubt!", L_Next;
+L_Next:
mes "[Valia]";
mes "\"Maybe you can help then.";
mes "You see, I have a sister. Yes, a witch too. Very talented.";
mes "But unfortunately not enough to avoid being captured.\"";
menu
"That's unfortunate...", L_Exit,
- "What informations do you have about all this?", -;
+ "What informations do you have about all this?", L_Next1;
+L_Next1:
set @illia_know_witch, 1;
mes "[Valia]";
mes "\"Ismuth, some dark mage we both hate. He is the one holding her jailed for sure.";
@@ -86,7 +88,9 @@ L_Introduce:
mes "And I am unable to go help her.\"";
menu
- "Why not? You seem to be quite talented as well.", -;
+ "Why not? You seem to be quite talented as well.", L_Next2;
+
+L_Next2:
mes "[Valia]";
mes "\"Sure. But I know the enemy. My chances are thin. And if I fail, no one will ever find us.";
mes "And my magic skills aren't suited for this...\"";
@@ -111,8 +115,9 @@ L_AskHelp:
mes "\"Will you help me?\"";
menu
"That sounds quite dangerous... I don't feel it.", L_Disappointed,
- "Ok, I can do that for you.", -;
+ "Ok, I can do that for you.", L_Next3;
+L_Next3:
mes "[Valia]";
mes "\"Good. Now listen carefully. Ismuth owns an island where he makes his researchs.";
mes "An island where no boat goes, and where no magic could teleport you to...";
@@ -129,8 +134,9 @@ L_AskHelp:
mes "\"Do you know such people?\"";
menu
"I'm afraid not. I should better look around.", L_Exit,
- "Yes I know such people!", -;
+ "Yes I know such people!", L_Next4;
+L_Next4:
mes "[Valia]";
mes "\"Good.";
mes "I can teleport all of you close to that waterfall, but for that, I will need " + @illia_sapphire_powder + " bags of Sapphire Powder, " + @illia_amethyst_powder + " of Amethyst Powder, " + @illia_iron_powder + " Iron Powders," + @illia_yeti_tear + " Frozen Yeti Tear and " + @illia_iced_water + " bottles of Iced Water.\"";
@@ -399,8 +405,10 @@ L_AskToTeleport:
mes "[Valia]";
mes "\"Everyone seems to be here. Make sure to stay close to me.\"";
menu
- "I'm ready.", -,
+ "I'm ready.", L_Next5,
"Wait a minute.", L_Exit;
+
+L_Next5:
// Stop the 5mins timer and start it again.
set $@ILLIA_STATUS, 3;
initnpctimer;
@@ -416,8 +424,10 @@ L_TalkHelper:
mes "[Valia]";
mes "\"" + strcharinfo(0) + ", do your best to assist " + $@ILLIA_HERO$ + ".\"";
menu
- "What is " + $@ILLIA_HERO$ + " going to do?", -,
+ "What is " + $@ILLIA_HERO$ + " going to do?", L_Next6,
"I will, no problem.", L_Exit;
+
+L_Next6:
mes "[Valia]";
mes "\"You weren't told about it? This is about saving my captive sister.\"";
next;
@@ -904,18 +914,32 @@ function|script|UpdateIlliaProgress|,
L_Torch8:
enablenpc "#IlliaTorch8";
+ goto L_Torch7;
+
L_Torch7:
enablenpc "#IlliaTorch7";
+ goto L_Torch6;
+
L_Torch6:
enablenpc "#IlliaTorch6";
+ goto L_Torch5;
+
L_Torch5:
enablenpc "#IlliaTorch5";
+ goto L_Torch4;
+
L_Torch4:
enablenpc "#IlliaTorch4";
+ goto L_Torch3;
+
L_Torch3:
enablenpc "#IlliaTorch3";
+ goto L_Torch2;
+
L_Torch2:
enablenpc "#IlliaTorch2";
+ goto L_Torch1;
+
L_Torch1:
enablenpc "#IlliaTorch1";
diff --git a/world/map/npc/008-1/andra.txt b/world/map/npc/008-1/andra.txt
index d86a32a1..25a7684a 100644
--- a/world/map/npc/008-1/andra.txt
+++ b/world/map/npc/008-1/andra.txt
@@ -11,13 +11,17 @@
mes "\"Hello, my name is Andra. You see those nice trees? I planted every single one of them! I'm very proud of my work!\"";
next;
menu
- "Nice! I imagine you planted them a long time ago, right?", -,
+ "Nice! I imagine you planted them a long time ago, right?", L_Next,
"Sorry, but I'm not interested in plants and trees.", L_DislikePlants;
+
+L_Next:
mes "[Andra]";
mes "\"That is the fun part... It took only some months... and look how healthy and beautiful they are!\"";
next;
menu
- "How is that possible?", -;
+ "How is that possible?", L_Next1;
+
+L_Next1:
mes "[Andra]";
mes "\"A few years ago, a nice woman from Tulimshar did something amazing to the land around here... I guess her name was Eomie. I have no idea what she did, but since she worked on this land, everything you plant here will grow really fast!\"";
next;
@@ -26,18 +30,24 @@
mes "And she also told me that this soil is so fertile because it has a lot of nutrients not only on this side, but everywhere. So it is certain that all soil in this place will become weaker if we let a lot of unfertilized spots...\"";
next;
menu
- "That sounds bad! But you just need to keep planting, right?", -;
+ "That sounds bad! But you just need to keep planting, right?", L_Next2;
+
+L_Next2:
mes "[Andra]";
mes "\"Exactly! But it is a big place. And I don't have too much money to buy seeds. If only I could find someone who could help me... ah... I know you are probably busy, but since you are here, would you like to help me in this noble task?\"";
menu
- "Of course! What can I do to help you?", -,
+ "Of course! What can I do to help you?", L_Next3,
"Not right now, I'm really busy.", L_Busy;
+
+L_Next3:
mes "[Andra]";
mes "\"Yay! I knew you would help me! I just need seeds and water... I think " + @seeds_amount + " Grass Seeds and " + @water_amount + " Bottle(s) of Water should be enough to grow some plants on the place. If you give the items, you can let the rest with me.\"";
next;
menu
"I don't have it right now, but I will come back later.", L_Close,
- "Here are the seeds and the water.", -;
+ "Here are the seeds and the water.", L_Next4;
+
+L_Next4:
if (countitem("BottleOfWater") < @water_amount || countitem("GrassSeed") < @seeds_amount) goto L_NotEnough;
if ($@spawned_plants >= $@MAX_GLOBAL_PLANTS) goto L_Gather;
mes "[Andra]";
@@ -48,6 +58,7 @@
set FLAGS, FLAGS | FLAG_ANDRA_HELPED;
mes "Andra pours some water in a lot of different places and then throws some seeds to the sky. The wind carries some of them really far from her.";
close2;
+ goto L_PreSummon;
L_PreSummon:
set $@andra_status, 1;
@@ -61,6 +72,7 @@ OnTimer1000:
if (attachrid(getcharid(3,$@farmer$)) == 0)
goto L_Spawn1000;
message strcharinfo(0), "Andra: I think some plants will grow almost instantly! Just Watch...";
+ goto L_Spawn1000;
L_Spawn1000:
set $@spawned_plants, $@spawned_plants + $@PLANTS_PER_SEED;
@@ -84,6 +96,7 @@ OnTimer7000:
if (attachrid(getcharid(3,$@farmer$)) == 0)
goto L_Spawn7000;
message strcharinfo(0), "Andra: Good... Just take a walk and you will be able to see how your seeds turned into some nice looking plants.";
+ goto L_Spawn7000;
L_Spawn7000:
set $@spawned_plants, $@spawned_plants + $@PLANTS_PER_SEED;
@@ -98,8 +111,10 @@ L_Return:
mes "\"Hi " + strcharinfo(0) + ", good to see you! You came back to help me again?\"";
next;
menu
- "Yes, and I already have the seeds and the water.", -,
+ "Yes, and I already have the seeds and the water.", L_Next5,
"No, I just wanted to say hello.", L_Bye;
+
+L_Next5:
if ($@spawned_plants >= $@MAX_GLOBAL_PLANTS) goto L_Gather;
if (countitem("BottleOfWater") < @water_amount || countitem("GrassSeed") < @seeds_amount) goto L_NotEnough;
delitem "BottleOfWater", @water_amount;
@@ -153,4 +168,5 @@ L_TooYoung:
OnInit:
set $@PLANTS_PER_SEED, 3;
set $@MAX_GLOBAL_PLANTS, 100; // You can plant only if the amount of plants currently in the map is < than this value.
+ end;
}
diff --git a/world/map/npc/008-1/annualeaster.txt b/world/map/npc/008-1/annualeaster.txt
index a06099a1..0f8e55c0 100644
--- a/world/map/npc/008-1/annualeaster.txt
+++ b/world/map/npc/008-1/annualeaster.txt
@@ -43,6 +43,7 @@ function|script|AnnualEasterEvent|,
set @random, rand(getarraysize($@MediumAnnualEasterRewards$));
getitem $@MediumAnnualEasterRewards$[@random], 1;
misceffect FX_GETITEM, strcharinfo(0);
+ goto NoEasterEgg;
NoEasterEgg:
@@ -101,6 +102,8 @@ L_End2:
set @eastertimepenalty, @eastertimepenalty + 5;
if (@eastertimepenalty > gettimetick(2))
set @eastertimepenalty, gettimetick(2);
+ goto L_End1;
+
L_End1:
set @rewardindex, 0;
set @easter_year, 0;
@@ -114,18 +117,21 @@ L_End1:
{
set @EasterEggID, 0;
callfunc("AnnualEasterEvent");
+ end;
}
008-1.gat,65,40,0|script|#TestEgg1|375,
{
set @EasterEggID, 1;
callfunc("AnnualEasterEvent");
+ end;
}
008-1.gat,65,40,0|script|#TestEgg2|375,
{
set @EasterEggID, 2;
callfunc("AnnualEasterEvent");
+ end;
}
@@ -198,6 +204,7 @@ L_done_update:
set $@EggID, 2;
callsub S_relocateEasterEgg;
// intentional fallthrough to L_End
+ goto L_End;
L_End:
set $@AEASTER_mapcount, 0;
@@ -225,6 +232,7 @@ S_relocateEasterEgg:
set $@eastereggPos, rand(getarraysize($@easteregg_posx));
npcwarp $@easteregg_posx[$@eastereggPos], $@easteregg_posy[$@eastereggPos], "#TestEgg" + $@EggID;
+ goto L_Return;
L_Return:
return;
diff --git a/world/map/npc/008-1/diryn.txt b/world/map/npc/008-1/diryn.txt
index 71f9398f..5ed6ca02 100644
--- a/world/map/npc/008-1/diryn.txt
+++ b/world/map/npc/008-1/diryn.txt
@@ -13,6 +13,7 @@
set @cost_terranitecave, 1500;
set @cost_tulimshar, 1000;
set @cost_nivalis, 1500;
+ goto L_Start;
L_Start:
mes "[Diryn]";
diff --git a/world/map/npc/008-1/dock.txt b/world/map/npc/008-1/dock.txt
index 2d6be3fe..fc6bbfeb 100644
--- a/world/map/npc/008-1/dock.txt
+++ b/world/map/npc/008-1/dock.txt
@@ -4,4 +4,5 @@
{
set @loc, DOCK_hurnscald;
callfunc "Ferry";
+ end;
}
diff --git a/world/map/npc/008-1/george.txt b/world/map/npc/008-1/george.txt
index 5e0344ff..b7c3ce5b 100644
--- a/world/map/npc/008-1/george.txt
+++ b/world/map/npc/008-1/george.txt
@@ -29,12 +29,16 @@ L_George_Easter2012:
mes "\"Aaarrrrh mate! That scarab armlet was a present from my grandfather, I swear! That is all I have to say...\"";
next;
menu
- "What? What are you talking about?", -;
+ "What? What are you talking about?", L_Next;
+
+L_Next:
mes "[George the Pirate]";
mes "\"Uh? Ahh, hehe... Arrrh, what crime are ye talking about?\"";
next;
menu
- "The Easter Bunny was kidnapped. I heard you know the person behind this crime.", -;
+ "The Easter Bunny was kidnapped. I heard you know the person behind this crime.", L_Next1;
+
+L_Next1:
mes "[George the Pirate]";
mes "\"Arrrrh, I know, I know... But it's such a sad thing. My old mate Pink Boots Hank. He was a great treasure hunter, but now he is just a criminal.\"";
next;
@@ -43,12 +47,16 @@ L_George_Easter2012:
mes "\What I know is from that day, he just started doing crazy things, like stealing money, present boxes, even chocolate cake!\"";
next;
menu
- "But what about the Easter Bunny?", -;
+ "But what about the Easter Bunny?", L_Next2;
+
+L_Next2:
mes "[George the Pirate]";
mes "\"Yes, yes... Hank is not a very smart guy. I remember he had a secret place, a big house in the desert. When he could find a treasure he would always run to this house and hide his things in the basement. I am sure he must be using this same place to hide the Easter Bunny.\"";
next;
menu
- "Thank you George, I will check this information right now!", -;
+ "Thank you George, I will check this information right now!", L_Next3;
+
+L_Next3:
set QUEST_Easter12, 4;
close;
}
diff --git a/world/map/npc/008-1/hinnak.txt b/world/map/npc/008-1/hinnak.txt
index 8deb8263..3d92de07 100644
--- a/world/map/npc/008-1/hinnak.txt
+++ b/world/map/npc/008-1/hinnak.txt
@@ -12,6 +12,7 @@
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
if (@inspector == 10) goto L_NohMask;
+ goto L_No_NohMask;
L_No_NohMask:
set @state, ((QUEST_Hurnscald & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
@@ -71,6 +72,7 @@ L_Exchange:
goto L_Exchange_Start;
mes "The farmer glares at your hat.";
next;
+ goto L_Exchange_Start;
L_Exchange_Start:
mes "[Farmer Hinnak]";
@@ -116,22 +118,29 @@ L_ThanksHat:
mes "[Farmer Hinnak]";
mes "\"That better be a trophy on your head.\"";
menu
- "It is.", -;
+ "It is.", L_Next;
+
+L_Next:
mes "[Farmer Hinnak]";
mes "\"Good then. Thanks for your help with the pinkies.\"";
+ goto L_ThanksMenu;
L_ThanksMenu:
menu
- "Sure, any time!", -,
- "Anything else you want me to do?", -,
+ "Sure, any time!", L_Next1,
+ "Anything else you want me to do?", L_Next1,
"You're welcome. Bye!", L_Bye;
+
+L_Next1:
mes "[Farmer Hinnak]";
mes "\"Actually, it's been a long day. If it's no trouble, could you get me a beer?\"";
next;
menu
"Here you are.", L_GiveBeer,
"Sure, I'll go get one. Bye!", L_Bye,
- "You shouldn't drink while working!", -;
+ "You shouldn't drink while working!", L_Next2;
+
+L_Next2:
mes "[Farmer Hinnak]";
mes "\"Well, I'm done for the day, and I'm quite old enough to decide when I can have a beer, thank you!\"";
next;
@@ -195,8 +204,7 @@ L_GiveBeer:
"Hahaha!", L_Sagatha_hahaha,
"Whoah, scary...", L_Sagatha_scary,
"What was that gobbledygook word?", L_Sagatha_word,
- "I better go now.", -;
- goto L_Bye;
+ "I better go now.", L_Bye;
L_Sagatha_hahaha:
mes "[Farmer Hinnak]";
diff --git a/world/map/npc/009-1/jack.txt b/world/map/npc/009-1/jack.txt
index d822c1d7..48c9a26b 100644
--- a/world/map/npc/009-1/jack.txt
+++ b/world/map/npc/009-1/jack.txt
@@ -49,48 +49,66 @@ L_NotInspector:
if (@Q_Forestbow < 1)
goto L_Close;
menu
- "I heard you aren't delivering any more living wood. Why not?", -;
+ "I heard you aren't delivering any more living wood. Why not?", L_Next;
+
+L_Next:
mes "[Jack Lumber]";
mes "\"Why not?! I value my life, that's why!.\"";
next;
menu
- "What do you mean?", -;
+ "What do you mean?", L_Next1;
+
+L_Next1:
mes "[Jack Lumber]";
mes "\"A week ago I was going to chop down one of those twigleaf trees in the forest to the southwest. These twigleafs are the trees that give me the living wood you speak of. I was just chopping away with my axe and what happened? One of its branches hit me! I thought it fell down or the wind blew it. It hurt! I shook it off and struck it again with my axe and another branch hit me! I got angry and started to chop off all the branches near the ground so this couldn't happen anymore. But I still can't believe what happened next.\"";
next;
menu
- "What happened? ", -;
+ "What happened? ", L_Next2;
+
+L_Next2:
mes "[Jack Lumber]";
mes "\"You'll think I am insane when I tell you.\"";
next;
menu
- "I won't. I promise.", -;
+ "I won't. I promise.", L_Next3;
+
+L_Next3:
mes "[Jack Lumber]";
mes "\"OK. After I chopped off a few branches the whole tree started to move. Its roots tore out of the earth, all the branches started to wave around and a face appeared on the trunk. The whole tree CAME TO LIFE! It was mad!\"";
next;
menu
- "Did you run away?", -,
- "Did you fight it?", -;
+ "Did you run away?", L_Next4,
+ "Did you fight it?", L_Next4;
+
+L_Next4:
mes "[Jack Lumber]";
mes "\"I fought, of course! I took my axe and attacked the beast! It hit me here *points at a bruise at his shoulder*, here *lifts his trouser leg to show another bruise* and here *lifts his shirt and reveals some even worse bruises*. But I didn't give up. I chopped away at it, branch after branch, and in the end I chopped off its roots and it fell to the ground motionless.\"";
next;
menu
- "So you beat the monster? Then why are you so scared?", -;
+ "So you beat the monster? Then why are you so scared?", L_Next5;
+
+L_Next5:
mes "[Jack Lumber]";
mes "\"Well, I was exhausted and had to rest. A few minutes passed and suddenly I was surrounded by a dozen or more of these living trees!\"";
next;
menu
- "Did you fight them, too? ", -;
+ "Did you fight them, too? ", L_Next6;
+
+L_Next6:
mes "[Jack Lumber]";
mes "\"Are you crazy? I barely destroyed one of those beasts. I was in no shape to fight again. I ran away as fast as I could. Lucky for me the monsters aren't that fast on their tiny root legs. Ha!\"";
next;
menu
- "So you aren't chopping down trees anymore?", -;
+ "So you aren't chopping down trees anymore?", L_Next7;
+
+L_Next7:
mes "[Jack Lumber]";
mes "\"I still do. It's my job. But I no longer chop those twigleafs, I'll tell you that. I know the bowyer master wants some wood from them, but I don't care. I won't risk my life for a few gold pieces. If you want to, just go to the southwest. But I won't go there ever again.\"";
next;
menu
- "Southwest you say? OK, thank you.", -;
+ "Southwest you say? OK, thank you.", L_Next8;
+
+L_Next8:
set @Q_Forestbow, 2;
callsub S_Update_Mask;
goto L_Close;
@@ -112,9 +130,10 @@ L_Bow_state_4:
menu
"I couldn't afford the bow, though...", L_Shield_state_0,
"No, I'm still looking.", L_Bow_state_4_reaffirm,
- "Yes, I've got the Forest bow now.", -,
+ "Yes, I've got the Forest bow now.", L_Next9,
"I'm a melee warrior, I don't need bows.", L_Shield_state_0;
+L_Next9:
// Check if the player tells the truth (continue on in any case)
if (@Q_Forestbow > 4) goto L_Shield_state_0;
@@ -167,8 +186,10 @@ L_Shield_state_2:
mes "[Jack Lumber]";
mes "\"Do you have the " + @RAWLOGS_AMOUNT + " raw logs and " + @SHIELD_COST + " GP for the shield?\"";
menu
- "Here it is.", -,
+ "Here it is.", L_Next10,
"I'll come back later.", L_Close;
+
+L_Next10:
if (countitem("RawLog") < @RAWLOGS_AMOUNT)
goto L_Not_enough_logs;
if (Zeny < @SHIELD_COST)
@@ -231,7 +252,7 @@ L_Shield_state_3:
S_NohMask_Ask:
next;
menu
- "I'll keep that in mind.", -,
+ "I'll keep that in mind.", L_Close,
"Have you seen anything that might be connected to the recent robberies in town?", L_NohMask_Answer;
return;
@@ -247,6 +268,7 @@ L_Made_Shield:
mes "\"It has put me behind on all these new Nivalis orders, now that the ship is running there.\"";
next;
mes "\"Care to help out? I'll pay you for your time.\"";
+ goto L_Daily;
L_Daily:
set @dq_level, 30;
diff --git a/world/map/npc/009-1/milly.txt b/world/map/npc/009-1/milly.txt
index c195d9eb..4dc99cce 100644
--- a/world/map/npc/009-1/milly.txt
+++ b/world/map/npc/009-1/milly.txt
@@ -332,9 +332,10 @@ L_FinishedBad:
callsub S_InspectorMaybe;
mes "\"Won't you continue your travels soon?\"";
menu
- "That's what I'm going to do.", -,
+ "That's what I'm going to do.", L_Next,
"I'm really sorry. Of course I want your hat!", L_Apologize;
+L_Next:
mes "Milly looks away sadly.";
goto L_Close;
@@ -458,4 +459,5 @@ L_Close:
OnInit:
if (!debug)
disablenpc "MillyDebugHelper";
+ end;
}
diff --git a/world/map/npc/009-1/old_woman.txt b/world/map/npc/009-1/old_woman.txt
index 7e33e034..2d70cc6d 100644
--- a/world/map/npc/009-1/old_woman.txt
+++ b/world/map/npc/009-1/old_woman.txt
@@ -17,6 +17,7 @@ L_Lower:
mes "[Old Woman]";
mes "\"Watch out for these flowers. They don't like to be messed with.\"";
next;
+ goto L_Continue;
L_Continue:
if ((@inspector >= 1 && @inspector <= 7) || @inspector == 9)
@@ -47,7 +48,9 @@ L_NohMask_FirstAsk:
L_NohMask_Alibi:
menu
- "Was your husband with you at home all night the last night that the troupe was in town?", -;
+ "Was your husband with you at home all night the last night that the troupe was in town?", L_Next;
+
+L_Next:
mes "[Old Woman]";
mes "\"Yes, we were both at home all night.\"";
set @inspector, 8;
diff --git a/world/map/npc/009-1/water_pump.txt b/world/map/npc/009-1/water_pump.txt
index b582b312..8d7d5c8d 100644
--- a/world/map/npc/009-1/water_pump.txt
+++ b/world/map/npc/009-1/water_pump.txt
@@ -3,4 +3,5 @@
009-1.gat,76,33,0|script|Water Pump|203,
{
callfunc "WaterBottle";
+ end;
}
diff --git a/world/map/npc/009-2/airlia.txt b/world/map/npc/009-2/airlia.txt
index 33d38d38..7c29ef75 100644
--- a/world/map/npc/009-2/airlia.txt
+++ b/world/map/npc/009-2/airlia.txt
@@ -43,6 +43,7 @@
if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED) goto L_Rewarded;
if (QUEST_Airlia == @Q_STATUS_HELP_AIRLIA) goto L_Fetch;
if (QUEST_Graveyard_Caretaker > @Q_STATUS_RECIEVED_FIRST_LETTER) goto L_Airlia_intro;
+ goto L_Caretaker;
L_Caretaker:
mes "[Airlia]";
@@ -50,13 +51,16 @@ L_Caretaker:
next;
if (QUEST_Graveyard_Caretaker < @Q_STATUS_RECIEVED_FIRST_LETTER)
menu
- "Sorry, no.", -,
+ "Sorry, no.", L_Next,
"My what?", L_Caretaker_mount;
- if (QUEST_Graveyard_Caretaker == @Q_STATUS_RECIEVED_FIRST_LETTER)
+ //else ==
menu
- "Sorry, no.", -,
+ "Sorry, no.", L_Next,
"I have a letter from your father.", L_Caretaker_first_reward,
"My what?", L_Caretaker_mount;
+ goto L_Next;
+
+L_Next:
mes "[Airlia]";
mes "\"Nobody ever does...\"";
close;
@@ -107,8 +111,11 @@ L_Airlia_intro:
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
- "...", -,
+ "...", L_Next3,
"Oh, I have a letter from him.", L_Caretaker_later_rewards;
+ goto L_Next3;
+
+L_Next3:
mes "[Airlia]";
mes "\"You know, there are many who believe that each time the undead rise after being killed, they lose mana.";
mes "Eventually, there will not be enough mana for them to rise again and they can be at rest. Do you believe this is true?\"";
@@ -116,7 +123,9 @@ L_Airlia_intro:
menu
"I believe so, yes.", L_Airlia_intro_mana_loss,
"Maybe...", L_Airlia_intro_mana_loss,
- "No, that is not proven.", -;
+ "No, that is not proven.", L_Next1;
+
+L_Next1:
mes "[Airlia]";
mes "\"Oh...\"";
close;
@@ -129,8 +138,7 @@ L_Airlia_intro_mana_loss:
menu
"...", L_Airlia_intro_fou,
"I have heard of them.", L_Airlia_intro_fou,
- "Keep up the good work. I have to go now, bye.", -;
- close;
+ "Keep up the good work. I have to go now, bye.", L_Close;
L_Airlia_intro_fou:
mes "[Airlia]";
@@ -139,18 +147,19 @@ L_Airlia_intro_fou:
menu
"Of course I will.", L_Airlia_intro_fight,
"Sure, I guess.", L_Airlia_intro_fight,
- "Thanks, but no thanks. I have other business to attend to.", -;
- close;
+ "Thanks, but no thanks. I have other business to attend to.", L_Close;
L_Airlia_intro_fight:
mes "[Airlia]";
mes "\"Great, just kill any of the undead creatures you can and bring me proof of your work, and I will put in a word for you with the guild.\"";
next;
menu
- "I'm on it.", -,
+ "I'm on it.", L_Next2,
"What sort of proof?", L_Airlia_intro_proof;
+
+L_Next2:
set QUEST_Airlia, @Q_STATUS_HELP_AIRLIA;
- close;
+ goto L_Close;
L_Airlia_intro_proof:
mes "[Airlia]";
@@ -170,31 +179,14 @@ L_Fetch:
if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", -,
+ "You are welcome.", L_Close,
"I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", -,
+ "You are welcome.", L_Close,
"I have another letter from your father.", L_Caretaker_later_rewards,
"I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
-
- // The following checks are REDUNDANT
- // The only way to get to this lable is after a check for QUEST_Airlia == @Q_STATUS_HELP_AIRLIA
- // Incase you weren't paying attention: @Q_STATUS_HELP_AIRLIA = 1 < @Q_STATUS_INITIAL_FETCH_REWARDED
- // Note: proper handling of the first case is done above.
- // The second case never gets executed anyway and not handled.
- //
- //if (QUEST_Airlia < @Q_STATUS_INITIAL_FETCH_REWARDED)
- // menu
- // "You are welcome.", -,
- // "I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
- //
- //if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED)
- // menu
- // "You are welcome.", -,
- // "I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
-
- close;
+ goto L_Close;
L_Fetch_initial_reward:
if (countitem(@FETCH_LABEL_INITIAL$) < @FETCH_AMOUNT_INITIAL) goto L_Fetch_not_enough;
@@ -240,12 +232,15 @@ L_Rewarded:
next;
if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", -,
+ "You are welcome.", L_Close,
"I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", -,
+ "You are welcome.", L_Close,
"I have another letter from your father.", L_Caretaker_later_rewards,
"I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
+ goto L_Close;
+
+L_Close:
close;
}
diff --git a/world/map/npc/009-2/alan.txt b/world/map/npc/009-2/alan.txt
index 22f2fbc1..ba9e1f30 100644
--- a/world/map/npc/009-2/alan.txt
+++ b/world/map/npc/009-2/alan.txt
@@ -32,21 +32,22 @@
next;
if (@inspector == 1)
menu
- "OK, thanks.", -,
+ "OK, thanks.", L_Close,
"Can you make me a really good bow?", L_State_0_1,
"Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (@inspector != 1)
+ //else
menu
- "OK, thanks.", -,
+ "OK, thanks.", L_Close,
"Can you make me a really good bow?", L_State_0_1;
- goto L_Close;
L_State_0_1:
mes "[Alan]";
mes "\"You mean like one of my legendary forest bows?\"";
next;
menu
- "Yes, that would be nice.", -;
+ "Yes, that would be nice.", L_Next;
+
+L_Next:
mes "[Alan]";
mes "\"Sorry, I am not making these anymore.\"";
next;
@@ -72,7 +73,7 @@ L_State_0_3:
next;
menu
"OK, I'll ask him.", L_Close,
- "I am sure he got his reasons.", -;
+ "I am sure he got his reasons.", L_State_1;
L_State_1:
mes "[Alan]";
@@ -80,14 +81,13 @@ L_State_1:
next;
if (@inspector == 1)
menu
- "No, I haven't had the time yet.", -,
+ "No, I haven't had the time yet.", L_Close,
"No, I didn't find him yet.", L_State_1_1,
"Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (@inspector != 1)
+ //else
menu
- "No, I haven't had the time yet.", -,
+ "No, I haven't had the time yet.", L_Close,
"No, I didn't find him yet.", L_State_1_1;
- goto L_Close;
L_State_1_1:
mes "[Alan]";
@@ -100,11 +100,12 @@ L_State_2:
next;
if (@inspector == 1)
menu
- "Yes, I did. He said that the trees turned into dangerous monsters.", -,
+ "Yes, I did. He said that the trees turned into dangerous monsters.", L_Foo,
"Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (@inspector != 1)
+ //else
menu
- "Yes, I did. He said that the trees turned into dangerous monsters.", -;
+ "Yes, I did. He said that the trees turned into dangerous monsters.", L_Foo;
+L_Foo:
mes "[Alan]";
mes "\"Oh, that's really bad news. Maybe you can do his job?";
mes "When you kill some of these tree monsters and bring me their wood I can take a look at them.";
@@ -122,13 +123,12 @@ L_State_3:
if (@inspector == 1)
menu
"Here, take a look!", L_State_3_try,
- "Yes, but I need it for something else.", -,
+ "Yes, but I need it for something else.", L_Close,
"Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (@inspector != 1)
+ //else
menu
"Here, take a look!", L_State_3_try,
- "Yes, but I need it for something else.", -;
- goto L_Close;
+ "Yes, but I need it for something else.", L_Close;
L_State_3_try:
if (countitem("RawLog") < 1)
@@ -160,6 +160,7 @@ L_State_3_success:
next;
set @Q_status, 4;
callsub S_Update_Var;
+ goto L_State_4;
L_State_4:
mes "[Alan]";
@@ -167,14 +168,13 @@ L_State_4:
next;
if (@inspector == 1)
menu
- "10,000??? What a ripoff!", -,
+ "10,000??? What a ripoff!", L_Close,
"Sure, here you go!", L_State_4_pay,
"Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (@inspector != 1)
+ //else
menu
- "10,000??? What a ripoff!", -,
+ "10,000??? What a ripoff!", L_Close,
"Sure, here you go!", L_State_4_pay;
- goto L_Close;
L_State_4_pay:
if (Zeny < 10000)
diff --git a/world/map/npc/009-2/doctor.txt b/world/map/npc/009-2/doctor.txt
index a2e16ff9..e9905c77 100644
--- a/world/map/npc/009-2/doctor.txt
+++ b/world/map/npc/009-2/doctor.txt
@@ -16,13 +16,14 @@
if (@inspector == 1)
menu
"I think I am sick!", L_Cure,
- "No, I feel fine.", -,
+ "No, I feel fine.", L_Next,
"Have you seen anything strange in town? Anything that might have to do with the robberies?", L_NohMask;
- if (@inspector != 1)
+ //else
menu
"I think I am sick!", L_Cure,
- "No, I feel fine.", -;
+ "No, I feel fine.", L_Next;
+L_Next:
mes "[Doctor]";
mes "\"Then please stop wasting my precious time.\"";
goto L_Close;
@@ -63,7 +64,9 @@ L_Eyepatch:
next;
menu
"Yes, please.", L_Eyepatch_GlassEye,
- "No thank you", -;
+ "No thank you", L_Next1;
+
+L_Next1:
mes "[Doctor]";
mes "\"If you change your mind, please come back and see me.\"";
goto L_Close;
diff --git a/world/map/npc/009-2/kfahr.txt b/world/map/npc/009-2/kfahr.txt
index 6a34e959..a237a381 100644
--- a/world/map/npc/009-2/kfahr.txt
+++ b/world/map/npc/009-2/kfahr.txt
@@ -76,17 +76,21 @@ L_main_menu:
if (@Q_status >= @QS_KNOWS_KFAHR)
goto L_real_main_menu;
menu
- "Who are you?", -,
+ "Who are you?", L_Next,
"Goodbye.", L_end;
+
+L_Next:
mes "[Kfahr the Warrior]";
mes "Kfahr laughs again.";
mes "\"Surely you jest! You must have heard of Kfahr, Slayer of Toby Rick the Desert Worm, Raider of the Lost Temple, Hero of Tulimshar?\"";
next;
menu
- "Uhm...", -,
- "Well...", -,
- "To be quite honest...", -,
+ "Uhm...", L_Next1,
+ "Well...", L_Next1,
+ "To be quite honest...", L_Next1,
"Excuse me, someone is, er, whispering me...", L_end;
+
+L_Next1:
mes "[Kfahr the Warrior]";
mes "\"Ah, I knew it! So you have come to hear some tales about the dangers of the desert? You've come to the right man!\"";
next;
@@ -134,7 +138,6 @@ L_real_main_menu:
"I want to become as powerful as you!", L_gain_power,
"Here, have a beer!", L_give_beer,
"Goodbye!", L_end;
- close;
L_long_main_menu:
menu
@@ -146,7 +149,6 @@ L_long_main_menu:
"Have you fought any Golden Scorpions?", L_golden_scorpion,
"Here, have a beer!", L_give_beer,
"Goodbye!", L_end;
- close;
L_tale_desert_worm:
set @current_story, 1;
@@ -422,11 +424,10 @@ L_tale_desert_temple:
mes "\"That was my first real adventure, I think. Ah, those were exciting days.\"";
next;
menu
- "Wow.", -,
+ "Wow.", L_main_menu,
"What happened to the tablet?", L_tale_tablet,
"Did you go there again?", L_tale_temple_again,
"Zzzzzzz.....", L_end;
- goto L_main_menu;
L_tale_tablet:
mes "[Kfahr the Warrior]";
@@ -608,6 +609,7 @@ L_boneknife_quest:
set @Q_status, @QS_KNIFE_QUEST;
callsub L_Update_Var;
next;
+ goto L_boneknife_quest_ip;
L_boneknife_quest_ip:
mes "[Kfahr the Warrior]";
@@ -642,7 +644,6 @@ L_knife_quest_check:
"Er, what were those things again?", L_boneknife_quest_ip,
"No, sorry, I didn't have the time.", L_main_menu,
"I forgot! Let me get them right now.", L_end;
- close;
L_knife_quest_completecheck:
if (countitem("BlackScorpionStinger") < @BLACK_STINGERS_NR)
@@ -737,7 +738,6 @@ L_stinger_quest_check:
"Yes, here they are!", L_snakeskins_completecheck,
"No, sorry, I didn't have the time.", L_main_menu,
"I forgot! Let me get them right now.", L_end;
- close;
L_snakeskins_completecheck:
if (countitem("SnakeSkin") < @SNAKE_SKINS_NR)
@@ -840,7 +840,9 @@ L_golden_scorpion:
next;
menu
"Never mind, I was just curious.", L_main_menu,
- "I need a golden scorpion stinger.", -;
+ "I need a golden scorpion stinger.", L_Next2;
+
+L_Next2:
mes "[Kfahr the Warrior]";
mes "\"A golden scorpion stinger? Those are rare and valuable, I hope that you know that!\"";
if (BaseLevel < 60)
@@ -856,13 +858,13 @@ L_golden_scorpion:
mes "A mischievous sparkle lightens up in his eyes.";
mes "\"...if you arm-wrestle me for it!\"";
next;
+ goto L_golden_scorpion_wrestle_intro;
L_golden_scorpion_wrestle_intro:
menu
"Never!", L_main_menu,
"Wait... what?", L_wrestle_explain,
"Bring it on!", L_golden_scorpion_wrestle;
- close;
L_golden_requires_knife_quest_done:
mes "He hesitates.";
@@ -929,6 +931,7 @@ L_golden_scorpion_wrestle:
set @position, 2;
set @first_round, 1;
+ goto L_wrestle_loop;
L_wrestle_loop:
mes "[Arm-wrestling with Kfahr]";
@@ -943,7 +946,6 @@ L_wrestle_loop:
"Hold!", L_wrestle_hold,
"Slam!", L_wrestle_slam,
"Consider your options", L_wrestle_info;
- close;
L_wrestle_info:
mes "[Arm-wrestling with Kfahr]";
diff --git a/world/map/npc/009-2/nicholas.txt b/world/map/npc/009-2/nicholas.txt
index d43b7df0..8c105b02 100644
--- a/world/map/npc/009-2/nicholas.txt
+++ b/world/map/npc/009-2/nicholas.txt
@@ -108,6 +108,7 @@ L_main_menu:
set @choice$[@choices_nr], "Can you make my Short Sword better?";
set @choice_idx[@choices_nr], @CHOICE_SETZER;
set @choices_nr, 1 + @choices_nr;
+ goto L_main_menu_post_setzer;
L_main_menu_post_setzer:
@@ -132,19 +133,21 @@ L_main_menu_post_setzer:
set @choice$[@choices_nr], "Warlord Helmet (9 Iron Ingots & 18 Coal).";
set @choice_idx[@choices_nr], @CHOICE_WARLORD;
set @choices_nr, 1 + @choices_nr;
+ goto L_no_more_helmets;
L_no_more_helmets:
set @choice$[@choices_nr], "No thanks.";
set @choice_idx[@choices_nr], @CHOICE_CANCEL;
set @choices_nr, 1 + @choices_nr;
menu
- @choice$[0], -,
- @choice$[1], -,
- @choice$[2], -,
- @choice$[3], -,
- @choice$[4], -,
- @choice$[5], -;
-
+ @choice$[0], L_MenuItems,
+ @choice$[1], L_MenuItems,
+ @choice$[2], L_MenuItems,
+ @choice$[3], L_MenuItems,
+ @choice$[4], L_MenuItems,
+ @choice$[5], L_MenuItems;
+
+L_MenuItems:
set @menu, @menu - 1;
if (@menu >= @choices_nr)
close;
@@ -225,8 +228,10 @@ L_YesShield:
mes "\"No, this iron is too brittle; for something as large as a shield I need to mix in softer iron. Can I see if you have anything suitable?\"";
next;
menu
- "Sure, have a look!", -,
+ "Sure, have a look!", L_Next,
"No.", L_Pass;
+
+L_Next:
if (countitem("InfantryHelmet") == 1)
goto L_MoreInfantry;
if (countitem("InfantryHelmet") == 0)
@@ -240,9 +245,11 @@ L_YesShield:
callsub L_Update_Var;
next;
menu
- "Here you are!", -,
+ "Here you are!", L_Next1,
"Where can I get a Leather Patch?", L_WhereLeather,
"No way.", L_Pass;
+
+L_Next1:
if (Zeny < 20000)
goto L_ShieldNoZeny;
if (countitem("InfantryHelmet") < 2)
@@ -329,9 +336,11 @@ L_SetzerQuest:
callsub L_Update_Var;
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next2,
"Monster oil? What's that?", L_ExplainMonsterOil,
"HOW much? Nevermind then!", L_Pass;
+
+L_Next2:
if (Zeny < 50000)
goto L_SetzerNoZeny;
if ( (countitem("IronIngot") < 3) || (countitem("Coal") < 6) )
diff --git a/world/map/npc/009-2/nurse.txt b/world/map/npc/009-2/nurse.txt
index 838d0ee2..3fbbc536 100644
--- a/world/map/npc/009-2/nurse.txt
+++ b/world/map/npc/009-2/nurse.txt
@@ -53,6 +53,7 @@
if (@Q_poison == 2) goto state2;
if (@Q_poison == 1) goto state1;
if (getskilllv(SKILL_POOL)) goto state0;
+ goto L_Usual;
L_Usual:
mes "[Nurse]";
@@ -64,12 +65,14 @@ L_Usual:
"Oooh, these wounds! They hurt so much!", L_Heal,
"I don't feel so well, I might be sick.", L_Doctor,
"Have you seen anything out of the ordinary?", L_NohMask,
- "No, I'm fine.", -;
- if (@inspector != 1)
+ "No, I'm fine.", L_Next;
+ //else
menu
"Oooh, these wounds! They hurt so much!", L_Heal,
"I don't feel so well, I might be sick.", L_Doctor,
- "No, I'm fine.", -;
+ "No, I'm fine.", L_Next;
+
+L_Next:
mes "[Nurse]";
mes "\"Then I would ask you to leave. There are people who really need our help.\"";
goto L_Close;
@@ -111,7 +114,9 @@ state0:
next;
menu
"I will do what I can. What do you need?", L_firstquest,
- "I'm really sorry, but I don't think I can help you.", -;
+ "I'm really sorry, but I don't think I can help you.", L_Next1;
+
+L_Next1:
mes "\"That is disagreeable to hear. Maybe I can find another person to take this task.\"";
next;
goto L_Usual;
@@ -121,6 +126,7 @@ L_firstquest:
callsub S_Update_Var;
mes "\"That's great! First, I need some parts of the poisonous creatures.\"";
next;
+ goto L_ExplainAgain1;
L_ExplainAgain1:
mes "\"Please bring me five tongues of snakes and ten stingers of black scorpions.\"";
@@ -133,8 +139,10 @@ state1:
menu
"Actually, I have another question.", L_Usual,
"Sorry, I forgot. What shall I bring you?", L_ExplainAgain1,
- "I have what you asked for.", -,
+ "I have what you asked for.", L_Next2,
"I'm still working on that.", L_Close;
+
+L_Next2:
if (countitem("SnakeTongue") < @SNAKET_AMOUNT || countitem("BlackScorpionStinger") < @BSCORPIONST_AMOUNT)
goto L_NotEnough;
delitem "SnakeTongue", @SNAKET_AMOUNT;
@@ -147,6 +155,7 @@ state1:
next;
mes "\"But there are some other things we will need in any case. It would be courteous if you could get them meanwhile.\"";
next;
+ goto L_ExplainAgain2;
L_ExplainAgain2:
mes "\"Please bring me ten acorns, five red apples, five green apples and also five oranges. And we need some small healing potions. They will be useful to hold off the baneful effects. Three of them will be enough, I guess.\"";
@@ -160,8 +169,10 @@ state2:
menu
"Actually, I have another question.", L_Usual,
"I have a bad memory. Can you tell me again what we need?", L_ExplainAgain2,
- "I managed to get everything we need.", -,
+ "I managed to get everything we need.", L_Next3,
"I will go and get it.", L_Close;
+
+L_Next3:
if (countitem("Acorn") < @ACORNS_AMOUNT
|| countitem("GreenApple") < @GREENAPPLE_AMOUNT
|| countitem("RedApple") < @REDAPPLE_AMOUNT
@@ -176,6 +187,7 @@ state2:
getexp @QUEST2_EXP, 0;
set @Q_poison, 3;
callsub S_Update_Var;
+ goto L_Chemistry;
L_Chemistry:
callsub L_Shuffle_Need;
@@ -207,7 +219,7 @@ state3:
next;
menu
"Actually, I have another question.", L_Usual,
- "Yes, let us begin.",-;
+ "Yes, let us begin.",L_Exp_Game;
L_Exp_Game:
mes "[Nurse]";
@@ -225,7 +237,7 @@ L_Exp_Game:
next;
menu
"Please explain it again.", L_Exp_Game,
- "Alright.", -;
+ "Alright.", L_Game;
L_Game:
set @Q_poison, @Q_poison + 1;
@@ -271,6 +283,7 @@ L_Game:
mes "\"I see that the healing potions are needed at least " + @hlNeed/@stNeed + " times as much as the stabilizer.\"";
if ((@hlNeed/@stNeed > 1 ) || (@stNeed/@hlNeed > 1 ))
next;
+ goto L_choosePut;
L_choosePut:
set @max, @count+@offset-1;
diff --git a/world/map/npc/009-2/olana.txt b/world/map/npc/009-2/olana.txt
index 3e7be881..cf200391 100644
--- a/world/map/npc/009-2/olana.txt
+++ b/world/map/npc/009-2/olana.txt
@@ -43,8 +43,10 @@
next;
mes "\"I'm starting to get a bad feeling about this. If you go to the forest near the swamps, could you see if you can find my daughters? I need to know if they are safe!\"";
menu
- "Sure, I can do that.", -,
+ "Sure, I can do that.", L_Next,
"I am sorry, I don't usually go to that area.", L_No;
+
+L_Next:
set Rossy_Quest, 1;
close;
@@ -68,7 +70,9 @@ L_Help:
mes "\"Oh you did? That's good. I'm relieved. But what about Julia?\"";
next;
menu
- "I haven't found Julia yet, sorry.", -;
+ "I haven't found Julia yet, sorry.", L_Next1;
+
+L_Next1:
mes "\"Ok. They must be playing hide and seek. Thanks again... I can't express how grateful I am.\"";
set Rossy_Quest, 3;
close;
@@ -86,7 +90,9 @@ L_See:
goto L_Worried;
delitem "Cherry", @Cherry_Amount;
menu
- "Hi, Rossy asked me to give you this. She says it is a gift from both her and Julia.", -;
+ "Hi, Rossy asked me to give you this. She says it is a gift from both her and Julia.", L_Next2;
+
+L_Next2:
mes "[Olana]";
mes "\"Ohhh... How sweet... Sometimes Rossy impresses me with her kindness. Here... You are spending so much time helping us, and we give nothing back. Take this as a small reward.\"";
getexp @Cherry_EXP, 0;
@@ -127,12 +133,16 @@ L_BL:
L_Rose:
menu
- "Hi, Rossy did great in the exam. David told me her potion was flawless.", -;
+ "Hi, Rossy did great in the exam. David told me her potion was flawless.", L_Next3;
+
+L_Next3:
mes "[Olana]";
mes "\"Wow! Really? That is great! I would like to congratulate my little Rossy. Would you mind helping me a little more?\"";
menu
- "Just tell me what to do.", -,
+ "Just tell me what to do.", L_Next4,
"No, I'm busy, maybe later.", L_No;
+
+L_Next4:
mes "[Olana]";
mes "\"Can you bring me " + @RedRose_Amount + " Red Roses? I would like to give them to Rossy. I am sure she will love them!\"";
menu
@@ -164,7 +174,9 @@ L_Allergic:
mes "\"Did she like my present?\"";
menu
"Sure she did...", L_No,
- "Well, you should have known that your daughter is allergic to roses.", -;
+ "Well, you should have known that your daughter is allergic to roses.", L_Next5;
+
+L_Next5:
set Rossy_Quest, 12;
mes "[Olana]";
mes "\"Oh, how stupid I am! Here, take some of my money and buy Red Tulips instead, the same amount. Keep the flowers.\"";
@@ -172,7 +184,9 @@ L_Allergic:
next;
mes "\"Please, tell Rossy I am really sorry. My mind was on Julia when I asked you to bring the red roses, they are her favorite.\"";
menu
- "I will give her the tulips when I see her.", -;
+ "I will give her the tulips when I see her.", L_Next6;
+
+L_Next6:
mes "[Olana]";
mes "\"Thank you. And don't forget to tell her that I'm really sorry.\"";
close;
diff --git a/world/map/npc/009-2/peter.txt b/world/map/npc/009-2/peter.txt
index 8c8f648d..9d6a6078 100644
--- a/world/map/npc/009-2/peter.txt
+++ b/world/map/npc/009-2/peter.txt
@@ -30,8 +30,7 @@
"Light Plate ("+@peter_light_plate_coal+" coal, "+@peter_light_plate_ingot+" ingots and "+@peter_light_plate_money+" GP).", L_Peter_Light_Plate,
"Warlord Plate ("+@peter_warlord_plate_coal+" coal, "+@peter_warlord_plate_ingot+" ingots and "+@peter_warlord_plate_money+" GP).", L_Peter_Warlord_Plate,
"Do you know anything else than armor crafting?", L_Peter_New_Skills,
- "Nevermind.", -;
- goto L_Close;
+ "Nevermind.", L_Close;
L_Peter_Chain_Mail:
set @peter_crafting_coal, @peter_chain_mail_coal;
@@ -63,8 +62,7 @@ L_Peter_New_Skills:
mes "My very first creation are new kind of steel boots. Interested ? That would be "+@peter_warlord_boots_coal+" Coals, "+@peter_warlord_boots_ingot+" Iron Ingots and "+@peter_warlord_boots_money+" GP.\"";
menu
"Sure!", L_Peter_Warlord_Boots,
- "No thanks, that sounds too heavy for me.", -;
- goto L_Close;
+ "No thanks, that sounds too heavy for me.", L_Close;
L_Peter_Warlord_Boots:
set @peter_crafting_coal, @peter_warlord_boots_coal;
diff --git a/world/map/npc/009-2/selim.txt b/world/map/npc/009-2/selim.txt
index dee87a8e..92c7aa2e 100644
--- a/world/map/npc/009-2/selim.txt
+++ b/world/map/npc/009-2/selim.txt
@@ -12,6 +12,7 @@
mes "[Selim]";
mes "\"What can I dye for you today?\"";
next;
+ goto L_clothes_choice;
L_clothes_choice:
set @pronoun$, "it";
@@ -38,8 +39,7 @@ L_clothes_choice:
"Bowler hat (brown).", L_bowlerhatbrown,
"Fine dress.", L_finedress,
"About these sorcerer robes...", L_asksorcererrobe,
- "I'm fine for now, thanks.", -;
- close;
+ "I'm fine for now, thanks.", L_Close;
L_cottonshirt:
set @del, 1202;
@@ -165,8 +165,7 @@ L_sorcererrobe:
"A purple lined one.", L_purplelinedsorcererrobe,
"A dark green lined one.", L_darkgreenlinedsorcererrobe,
"A white lined one.", L_whitelinedsorcererrobe,
- "I'm fine for now, thanks.", -;
- close;
+ "I'm fine for now, thanks.", L_Close;
L_redlinedsorcererrobe:
set @del, 798;
@@ -257,39 +256,45 @@ L_asksorcererrobe:
mes "\"Yes?\"";
next;
menu
- "Do you think you can dye that line to a different color?", -;
+ "Do you think you can dye that line to a different color?", L_Next1;
+
+L_Next1:
mes "[Selim]";
mes "\"Hum, I fear I can't do that. The area is too small and I can operate only on large ones.";
mes "But with the appropriate materials, maybe a talented tailor can make the change.\"";
next;
menu
- "Oh, I see!", -;
+ "Oh, I see!", L_Next;
+
+L_Next:
mes "[Selim]";
mes "\"Of course I can help you by dyeing the materials your tailor will want.";
mes "All I need is a piece of Cotton Cloth.\"";
menu
"Sure. Here is one.", L_cottoncloth,
- "I have to go pick that.", -;
- close;
+ "I have to go pick that.", L_Close;
L_picked_item:
if (countitem(@del) == 0) goto L_havenone;
+ goto L_colour;
L_colour:
mes "[Selim]";
mes "\"Excellent. Now, what color do you want?\"";
next;
menu
- "Red.", -,
- "Green.", -,
- "Dark Blue.", -,
- "Yellow.", -,
- "Light Blue.", -,
- "Pink.", -,
- "Black.", -,
- "Orange.", -,
- "Purple.", -,
- "Dark Green.", -;
+ "Red.", L_MenuItems,
+ "Green.", L_MenuItems,
+ "Dark Blue.", L_MenuItems,
+ "Yellow.", L_MenuItems,
+ "Light Blue.", L_MenuItems,
+ "Pink.", L_MenuItems,
+ "Black.", L_MenuItems,
+ "Orange.", L_MenuItems,
+ "Purple.", L_MenuItems,
+ "Dark Green.", L_MenuItems;
+
+L_MenuItems:
set @colour, @menu - 1;
set @vial, 690 + @colour;
if (countitem(@vial) == 0) goto L_no_dye;
@@ -305,8 +310,7 @@ L_no_dye:
"I wanted to dye a different item anyway.", L_clothes_choice,
"What do you mean, `bring you dye'?", L_explain_dye,
"Where would I get dye?", L_explain_dye,
- "Never mind.", -;
- close;
+ "Never mind.", L_Close;
L_explain_dye:
if (QUEST_clothdyer_knowsdye < 1)
@@ -332,4 +336,7 @@ L_havenone:
mes "Would you like to dye something else?\"";
next;
goto L_clothes_choice;
+
+L_Close:
+ close;
}
diff --git a/world/map/npc/009-2/shops.txt b/world/map/npc/009-2/shops.txt
index 7837b816..bcf512b5 100644
--- a/world/map/npc/009-2/shops.txt
+++ b/world/map/npc/009-2/shops.txt
@@ -15,6 +15,7 @@
set @npcname$, "Receptionist";
set @cost, 100;
callfunc "Inn";
+ end;
}
// Archer Shop
diff --git a/world/map/npc/009-2/waitress.txt b/world/map/npc/009-2/waitress.txt
index 473b34e0..553e20f6 100644
--- a/world/map/npc/009-2/waitress.txt
+++ b/world/map/npc/009-2/waitress.txt
@@ -11,7 +11,6 @@
"Sure! [tip 5 GP]", L_5Tip,
"Sure! [tip 10 GP]", L_10Tip,
"Nah, maybe later.", L_No;
- close;
L_NoTip:
if (Zeny < 170)
@@ -49,8 +48,10 @@ L_10Tip:
mes "\"Thank you, sweetie! Want to hear a secret?\"";
next;
menu
- "What is it, darling?", -,
+ "What is it, darling?", L_Next,
"Nah, I don't feel like chatting.", L_No;
+
+L_Next:
mes "[Melinda]";
mes "\"The master bowyer in this village used to construct exceptional bows. When you want one you should go and ask him.\"";
close;
diff --git a/world/map/npc/009-2/wyara.txt b/world/map/npc/009-2/wyara.txt
index 27050f1d..adcc7f6e 100644
--- a/world/map/npc/009-2/wyara.txt
+++ b/world/map/npc/009-2/wyara.txt
@@ -37,6 +37,7 @@
mes "\"Hello! What brings you here?\"";
next;
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_WYARA;
+ goto L_Main;
L_Main:
if (!@has_magic && (MAGIC_FLAGS & MFLAG_TOUCHED_MANASEED))
@@ -45,14 +46,13 @@ L_Main:
"Can you help me use the mana seed?", L_Q_manaseed_unabsorbed,
"Can you help me learn magic?", L_Magic,
"I would like to buy potions.", L_Shop,
- "Bye!", -;
- if (!(!@has_magic && (MAGIC_FLAGS & MFLAG_TOUCHED_MANASEED)))
+ "Bye!", L_Close;
+ //else
menu
"What do you know about...", L_Question,
"Can you help me learn magic?", L_Magic,
"I would like to buy potions.", L_Shop,
- "Bye!", -;
- close;
+ "Bye!", L_Close;
L_Shop:
mes "[Wyara the Witch]";
@@ -129,7 +129,6 @@ L_Q_manapotion:
menu
"Sure!", L_make_manapotion,
"No.", L_Main;
- goto L_Main;
L_manapotion_toomany:
mes "[Wyara the Witch]";
@@ -205,14 +204,14 @@ L_Magic:
mes "[Wyara the Witch]";
mes "\"Perhaps I can help you a little, but I am not a master of any school of magic.\"";
next;
+ goto L_Magic_main;
L_Magic_main:
menu
"Can you explain magic to me?", L_Magic_explain,
"Can you teach me a spell?", L_Magic_spell,
"Can you train me?", L_Magic_train,
- "Never mind.", -;
- goto L_Main;
+ "Never mind.", L_Main;
L_Magic_explain:
mes "[Wyara the Witch]";
@@ -242,6 +241,7 @@ L_Magic_spell3:
if (getskilllv(SKILL_MAGIC) < 2)
mes "\"You are not powerful enough to use it yet, though; you will first have to absorb more magic from the mana seed.\"";
next;
+ goto L_Magic_spell2;
L_Magic_spell2:
mes "[Wyara the Witch]";
@@ -284,6 +284,7 @@ L_Magic_train_wb:
goto L_Magic_train_evil;
mes "\"Ah, yes, your training...\"";
next;
+ goto L_Magic_train_dispatch;
L_Magic_train_dispatch:
if (@Q_status == @STATUS_PURIFY_TWICE)
@@ -304,6 +305,7 @@ L_Magic_train_dispatch:
next;
set @Q_status, @STATUS_PURIFY_EXPLAINED;
callsub S_update_var;
+ goto L_Magic_purify_explained;
L_Magic_purify_explained:
if (countitem("PurificationPotion"))
@@ -315,7 +317,9 @@ L_Magic_purify_explained:
menu
"I shall get them later.", L_Magic_main,
"Booring.", L_Magic_main,
- "Here they are.", -;
+ "Here they are.", L_Next;
+
+L_Next:
getinventorylist;
if ((@inventorylist_count == 100) && (countitem("MauveHerb") > 20) && (countitem("MaggotSlime") > 20))
goto L_Magic_purify_nospace;
@@ -329,6 +333,7 @@ L_Magic_purify_explained:
mes "[Wyara the Witch]";
mes "Wyara grinds the leaves and mixes them with the slime, boils them, then speaks a brief incantation over them and hands you the result.";
next;
+ goto L_Magic_purify_doit;
L_Magic_purify_doit:
mes "[Wyara the Witch]";
@@ -360,7 +365,9 @@ L_Magic_purify_once:
menu
"I'll do that later.", L_Main,
"No way.", L_Main,
- "Here you are.", -;
+ "Here you are.", L_Next1;
+
+L_Next1:
getinventorylist;
if ((@inventorylist_count == 100) && (countitem("MauveHerb") > 20) && (countitem("MaggotSlime") > 20))
goto L_Magic_purify_nospace;
@@ -374,6 +381,7 @@ L_Magic_purify_once:
mes "[Wyara the Witch]";
mes "Wyara brews another purification potion.";
next;
+ goto L_Magic_purify_doit2;
L_Magic_purify_doit2:
mes "[Wyara the Witch]";
@@ -389,8 +397,10 @@ L_Magic_purify_done:
mes "\"Please sit down and touch the ground.\"";
next;
menu
- "Very well.", -,
+ "Very well.", L_Next2,
"No way!", L_Magic_purify_abort;
+
+L_Next2:
mes "[Wyara the Witch]";
mes "You sit down and touch the ground, and so does Wyara.";
next;
@@ -421,12 +431,14 @@ L_Magic_train_no:
mes "[Wyara the Witch]";
mes "\"I can't teach you anything at this time. Perhaps Sagatha can help you, but I'm not sure if she will accept you as a student.\"";
next;
+ goto L_Magic_train_sagatha;
L_Magic_train_sagatha:
menu
"OK.", L_Magic_main,
- "How can I convince her to accept me?", -;
+ "How can I convince her to accept me?", L_Next3;
+L_Next3:
callfunc "SagathaStatus";
mes "[Wyara the Witch]";
if (@evil)
@@ -452,8 +464,10 @@ L_Magic_train_sagatha:
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_DRUIDTREE;
menu
"What is that tree?", L_Magic_train_tree_backgd,
- "How should I tend to it?", -,
+ "How should I tend to it?", L_Next4,
"Nah.", L_Magic_main;
+
+L_Next4:
mes "[Wyara the Witch]";
mes "\"The tree has been there alone and unattended for a long time; what he needs most is water and affection. Give him both.\"";
next;
@@ -494,14 +508,14 @@ L_Magic_train_tree_backgd:
mes "[Wyara the Witch]";
mes "\"Please give him water, for he is always in need of it, and thank him for his sacrifice. It is all we can do for him now.\"";
next;
+ goto L_Magic_tree_menu;
L_Magic_tree_menu:
menu
"How should I give him water?", L_Magic_tree_water,
"How should I thank him?", L_Magic_tree_remind,
- "I will.", -,
- "No.", -;
- goto L_Magic_main;
+ "I will.", L_Magic_main,
+ "No.", L_Magic_main;
L_Magic_tree_water:
mes "[Wyara the Witch]";
@@ -529,6 +543,9 @@ L_Magic_train_sagatha_lvl1:
next;
goto L_Magic_main;
+L_Close:
+ close;
+
S_update_var:
set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT));
return;
diff --git a/world/map/npc/009-3/sword.txt b/world/map/npc/009-3/sword.txt
index 1be13790..cdf69ea9 100644
--- a/world/map/npc/009-3/sword.txt
+++ b/world/map/npc/009-3/sword.txt
@@ -51,11 +51,13 @@ L_Initial:
next;
menu
"Leave", L_Close,
- "Sorry.", -,
- "Who or what are you?", -,
- "What sorrow?", -,
- "Can I help?", -,
- "Can you teach me magic?", -;
+ "Sorry.", L_Next,
+ "Who or what are you?", L_Next,
+ "What sorrow?", L_Next,
+ "Can I help?", L_Next,
+ "Can you teach me magic?", L_Next;
+
+L_Next:
mes "[Magic Sword]";
mes "There is no answer.";
close;
@@ -69,8 +71,7 @@ L_PostFlareDart:
"Hi! How are you?", L_PostFlareDart_hi,
"Can you teach me magic?", L_PostFlareDart_teach,
"Your sister sent me.", L_PostFlareDart_sister,
- "Bye!", -;
- close;
+ "Bye!", L_Close;
L_PostFlareDart_hi:
mes "[Magic Sword]";
@@ -83,7 +84,7 @@ L_PostFlareDart_sister:
mes "\"Wherefore did she send thee?\"";
next;
menu
- "She asked me to ask you to teach me a spell.", -;
+ "She asked me to ask you to teach me a spell.", L_PostFlareDart_teach;
L_PostFlareDart_teach:
mes "[Magic Sword]";
@@ -94,8 +95,10 @@ L_PostFlareDart_teach:
mes "\"Once a spell has been learned, it cannot be taken back, no more than a death can be undone. So be careful, mortal... dost thou truly wish to know the secrets of thus destructive power?\"";
next;
menu
- "Yes.", -,
+ "Yes.", L_Next1,
"No.", L_Close;
+
+L_Next1:
mes "[Magic Sword]";
mes "\"So thou art bound to the path of War, as am I, as is my sister...\"";
next;
@@ -113,6 +116,7 @@ L_PostFlareDart_teach2:
mes "[Magic Sword]";
mes "\"Seek out my sister, and leave me alone in my sorrows.\"";
next;
+ goto L_Close;
L_Close:
close;
@@ -123,13 +127,17 @@ L_L2_W11:
next;
menu
"No, I just wanted to say `hi'.", L_sayhi,
- "Yes, teach me more!", -;
+ "Yes, teach me more!", L_Next2;
+
+L_Next2:
mes "[Magic Sword]";
mes "\"If that is thou wishest, I shall not stop thee. But do not expect to find merriment down this road.\"";
mes "\"I must ask that thou sacrificest five thousand monster points for this, however.\"";
menu
"No, I don't want that.", L_farewell,
- "Very well.", -;
+ "Very well.", L_Next3;
+
+L_Next3:
if (Mobpt < 5000)
goto L_lacking_mobpoints;
mes "[Magic Sword]";
diff --git a/world/map/npc/009-3/warp.txt b/world/map/npc/009-3/warp.txt
index d02c365a..8bb52a30 100644
--- a/world/map/npc/009-3/warp.txt
+++ b/world/map/npc/009-3/warp.txt
@@ -3,10 +3,12 @@
mes "Do you want to enter the PVP cave? It costs 150GP.";
menu
"No.", L_Exit,
- "Yes.", -;
+ "Yes.", L_Next;
+
+L_Next:
if (Zeny < 150)
goto L_NotEnoughMoney;
- if (Zeny >= 150)
+ //else
goto L_Pay;
L_Exit:
diff --git a/world/map/npc/009-4/orum.txt b/world/map/npc/009-4/orum.txt
index c6cbd403..2b222255 100644
--- a/world/map/npc/009-4/orum.txt
+++ b/world/map/npc/009-4/orum.txt
@@ -43,7 +43,9 @@
menu
"What exactly is 'this place'?", L_Explain,
"Umm... what kind of help?", L_Explain,
- "You're right, I'll be on my way.", -;
+ "You're right, I'll be on my way.", L_Next;
+
+L_Next:
mes "[Orum]";
mes "\"Very smart thinking!\"";
goto L_Close;
@@ -57,7 +59,9 @@ L_Explain:
mes "\"I traveled in the direction she left until I came accross this cave, but it appears to be protected by some type of magical barrier and I haven't been able to get further than this room.\"";
menu
"So where would I come in?", L_Explain_Barriers,
- "I'd like to help but I have to go...", -;
+ "I'd like to help but I have to go...", L_Next1;
+
+L_Next1:
mes "[Orum]";
mes "\"Thats too bad... well, if you ever have some free time, I probably won't figure this out any time soon.\"";
goto L_Close;
@@ -69,7 +73,9 @@ L_Explain_Barriers:
mes "\"I've never come across anything like this barrier before. It must be drawing it's power from the torches. I tried putting them out with conventional means but I had no luck.\"";
menu
"Have any other ideas on how we get past it?", L_Explain_Note,
- "I think its meant to keep us out... Bye.", -;
+ "I think its meant to keep us out... Bye.", L_Next2;
+
+L_Next2:
mes "[Orum]";
mes "\"You may be right... but she kidnapped Waric. I know it! So I must do something! If you ever change your mind I could surely use the help.\"";
goto L_Close;
@@ -84,7 +90,9 @@ L_Explain_Note:
mes "\"Ah! Here it is! If I'm reading this right we may have found a way past it after all. I guess she would need a way to come and go unaffected while everyone else is kept from entering.\"";
menu
"What does it say?", L_Explain_Aura,
- "Looks like you can do this without me.", -;
+ "Looks like you can do this without me.", L_Next3;
+
+L_Next3:
mes "[Orum]";
mes "\"Eh... well I guess I can't force you to stay.\"";
goto L_Close;
@@ -98,15 +106,16 @@ L_Explain_Aura:
mes "\"Luckily I happen to be skilled in this field of magic! I'm pretty sure if I can get my hands on the materials listed on here I'll be able to cast this aura on us, and hopefully then we can get past this barrier!\"";
menu
"Let me guess... that is my job?", L_Offer_Quest,
- "I think someone is calling me... Bye!", -;
- goto L_Close;
+ "I think someone is calling me... Bye!", L_Close;
L_Offer_Quest:
mes "[Orum]";
mes "\"Well you would probably do better than me since I don't know this area very well. It's not too much stuff so I'm sure you won't have any trouble at all.\"";
menu
"Alright alright, just give me a list.", L_Start_Quest,
- "I'm not your servant! Bye.", -;
+ "I'm not your servant! Bye.", L_Leave1;
+
+L_Leave1:
mes "[Orum]";
mes "\"Everyone answers to someone... that's just how the world is. If you ever change your mind I'll probably be here forever gathering these materials on my own.\"";
goto L_Close;
@@ -120,7 +129,9 @@ L_Start_Quest:
mes "" + @B0_HARDSPIKES + " Hard Spikes";
menu
"Alright, I'll go get these.", L_Start_Gathering,
- "You can forget it! I quit!", -;
+ "You can forget it! I quit!", L_Next4;
+
+L_Next4:
mes "[Orum]";
mes "\"I know you'll be back... they always come back!\"";
goto L_Close;
@@ -149,7 +160,9 @@ L_Gathering:
menu
"Yep, I have every last one of them!", L_Check_Materials,
"Can I get another list?", L_List_Materials,
- "I still need a few things...", -;
+ "I still need a few things...", L_Next5;
+
+L_Next5:
mes "Orum shakes his head in frustration.";
next;
mes "[Orum]";
@@ -198,7 +211,6 @@ L_Check_Materials:
mes "[Orum]";
mes "\"Well we are both still in one piece so that is a good sign! Now we'll have to see if I did it right... mind going first?\"";
goto L_Setup_Lair;
- goto L_Close;
L_Missing_Materials:
mes "Orum carefully looks over all of the items then squints his eyes at you.";
@@ -257,7 +269,9 @@ L_Explore:
menu
"Yep. A whole mess of torches!", L_Explain_Objective,
"I'm not sure what to look for...", L_Explain_Objective,
- "Going to explore more, bye.", -;
+ "Going to explore more, bye.", L_Leave2;
+
+L_Leave2:
mes "[Orum]";
mes "\"Be sure to let me know if you find anything. I've almost gained my energy back.\"";
goto L_Close;
@@ -276,7 +290,9 @@ L_Found_Barriers:
"Yep. A whole mess of torches!", L_Explain_Objective,
"I'm not sure what to look for...", L_Explain_Objective,
"I found more barriers, but...", L_Explain_Barriers_More,
- "Going to explore more, bye.", -;
+ "Going to explore more, bye.", L_Leave3;
+
+L_Leave3:
mes "[Orum]";
mes "\"Be sure to let me know if you find anything. I'm still gaining my energy back.\"";
goto L_Close;
@@ -286,7 +302,9 @@ L_Explain_Barriers_More:
mes "\"Hm let me guess... the aura is ineffective on the rest of the barriers here?\"";
menu
"How did you know?", L_Explain_Note_More,
- "I'm not sure, I'll go try again.", -;
+ "I'm not sure, I'll go try again.", L_Next6;
+
+L_Next6:
mes "[Orum]";
mes "\"Always a good idea to double check things!\"";
goto L_Close;
@@ -312,7 +330,9 @@ L_Found_Torches:
"I'm not sure what to look for...", L_Explain_Objective,
"I found more barriers, but...", L_Explain_Barriers_More,
"I found a strange torch by itself.", L_Explain_Torches,
- "Going to explore more, bye.", -;
+ "Going to explore more, bye.", L_Leave4;
+
+L_Leave4:
mes "[Orum]";
mes "\"Be sure to let me know if you find anything new.\"";
goto L_Close;
@@ -330,7 +350,9 @@ L_Explain_Torches:
mes "\"We will probably need to transmute this powder before we can get any further past these barriers. Would you mind gathering a few more materials?\"";
menu
"It better be the last time.", L_Gather_More,
- "I'm done doing stuff for you!", -;
+ "I'm done doing stuff for you!", L_Next61;
+
+L_Next61:
mes "[Orum]";
mes "\"I'm surprised you give up after we've gotten so far. Shame.\"";
goto L_Close;
@@ -345,7 +367,9 @@ L_Gather_More:
mes @BT_HERBS + " Cobalt Herbs";
menu
"Yikes! I'll try...", L_Gathering_More,
- "No way! Too much stuff!", -;
+ "No way! Too much stuff!", L_Next7;
+
+L_Next7:
mes "[Orum]";
mes "\"The note says to get these and I'm not going to attempt this spell until I have what the note says.\"";
goto L_Close;
@@ -362,7 +386,9 @@ L_Still_Gathering:
menu
"I believe I have!", L_Finished_Gathering_More,
"I lost my list... again.", L_List_Materials_More,
- "I've almost got them all.", -;
+ "I've almost got them all.", L_Next8;
+
+L_Next8:
mes "[Orum]";
mes "\"Don't make me remind you again! Warics life is on the line here! Hurry up!\"";
goto L_Close;
@@ -429,7 +455,9 @@ L_Finish_Up:
menu
"No, I'm still not sure how.", L_Explain_Torches_More,
"I need more of that powder.", L_More_Powder,
- "I'm still trying...", -;
+ "I'm still trying...", L_Next9;
+
+L_Next9:
mes "[Orum]";
mes "\"Excellent! Let me know when you've made any progress.\"";
goto L_Close;
@@ -449,7 +477,9 @@ L_More_Powder:
menu
"I have them right here!", L_More_Powder_Make,
"Hmmm... what are they again?", L_List_Materials_More,
- "I'll go get those for you.", -;
+ "I'll go get those for you.", L_Next10;
+
+L_Next10:
mes "[Orum]";
mes "\"You better not waste any time gathering those materials!\"";
goto L_Close;
@@ -490,7 +520,9 @@ L_Finished_Up:
menu
"Actually... I have!", L_Enter_Cavern,
"I need more of that powder.", L_More_Powder,
- "Cut me some slack! I'm working on it!", -;
+ "Cut me some slack! I'm working on it!", L_Next11;
+
+L_Next11:
mes "[Orum]";
mes "\"Just hurry it up! Warics life is on the line here!\"";
goto L_Close;
@@ -524,8 +556,10 @@ L_Ready_Cavern:
next;
mes "\"You've done enough here to help. I will go the rest of the way alone so that your life is not endangered. You must promise me not to go any further!\"";
menu
- "Sure, I promise!", -,
- "I thought this would never be over!", -;
+ "Sure, I promise!", L_Next12,
+ "I thought this would never be over!", L_Next12;
+
+L_Next12:
mes "[Orum]";
mes "\"Well I guess this is farewell!\"";
goto L_Close;
diff --git a/world/map/npc/009-4/torches.txt b/world/map/npc/009-4/torches.txt
index eaf8c837..eec66815 100644
--- a/world/map/npc/009-4/torches.txt
+++ b/world/map/npc/009-4/torches.txt
@@ -141,7 +141,9 @@ L_Color_Loop:
"Add Red Powder", L_Use_Red,
"Add Yellow Powder", L_Use_Yellow,
"Add Blue Powder", L_Use_Blue,
- "Leave it alone.", -;
+ "Leave it alone.", L_Leave;
+
+L_Leave:
mes "The flame flickers as if it's laughing at you.";
close;
@@ -288,6 +290,7 @@ L_Failed:
set @Torch, 0;
callfunc "TorchLoop";
// unreachable
+ end;
}
// Second Torch
@@ -299,6 +302,7 @@ L_Failed:
set @Torch, 1;
callfunc "TorchLoop";
// unreachable
+ end;
}
// Third Torch
@@ -310,4 +314,5 @@ L_Failed:
set @Torch, 2;
callfunc "TorchLoop";
// unreachable
+ end;
}
diff --git a/world/map/npc/009-4/waric.txt b/world/map/npc/009-4/waric.txt
index 13187203..778c5111 100644
--- a/world/map/npc/009-4/waric.txt
+++ b/world/map/npc/009-4/waric.txt
@@ -40,7 +40,9 @@
menu
"My pleasure! Mind letting me out of here?", L_Explain,
"This doesn't look like a thank you!", L_Explain,
- "Let me out of here at once!", -;
+ "Let me out of here at once!", L_Next;
+
+L_Next:
mes "Waric turns toward Orum.";
next;
mes "[Waric]";
@@ -57,7 +59,9 @@ L_Behave:
mes "\"So... are you ready to behave yourself now?\"";
menu
"Yes mister...", L_Explain,
- "Let me out here!", -;
+ "Let me out here!", L_Next1;
+
+L_Next1:
mes "[Waric]";
mes "\"Having fun I take it?\"";
next;
diff --git a/world/map/npc/009-6/brodomir.txt b/world/map/npc/009-6/brodomir.txt
index ec05d50f..eadd7170 100644
--- a/world/map/npc/009-6/brodomir.txt
+++ b/world/map/npc/009-6/brodomir.txt
@@ -81,9 +81,11 @@ L_Item:
mes "\"So the prize should be " + @brodomir_item_amount + " " + @brodomir_item$ + "?\"";
mes "\"In case there aren't enough people to start the fight, I'll try to give it back to you. If you're not here then... well, then I'll keep it for myself.\"";
menu
- "Ok.", -,
+ "Ok.", L_Next,
"No, you missunderstood me.", L_Item,
"I changed my mind, forget it.", L_Close;
+
+L_Next:
if ($@BRODOMIR_PVP_STATUS == 1)
goto L_Wait;
if (countitem(@brodomir_item$) < @brodomir_item_amount)
@@ -91,6 +93,8 @@ L_Item:
// we need this loop because for items that can't be stacked, delitem can only delete a single one
set @loopcounter, @brodomir_item_amount;
+ goto L_Delitem;
+
L_Delitem:
delitem @brodomir_item$, 1;
set @loopcounter, @loopcounter - 1;
@@ -177,11 +181,14 @@ L_Warpfail:
goto L_SkipItemback;
// we need this loop because for items that can't be stacked, getitem will stack them nevertheless
+ goto L_GetitemLoop;
+
L_GetitemLoop:
getitem $@BRODOMIR_ITEM$, 1;
set $@BRODOMIR_ITEM_AMOUNT, $@BRODOMIR_ITEM_AMOUNT - 1;
if ($@BRODOMIR_ITEM_AMOUNT > 0)
goto L_GetitemLoop;
+ goto L_SkipItemback;
L_SkipItemback:
set $@BRODOMIR_ITEM_AMOUNT, 0;
@@ -204,11 +211,14 @@ OnReward:
goto L_SkipItem;
// we need this loop because for items that can't be stacked, getitem will stack them nevertheless
+ goto L_Getitem;
+
L_Getitem:
getitem $@BRODOMIR_ITEM$, 1;
set $@BRODOMIR_ITEM_AMOUNT, $@BRODOMIR_ITEM_AMOUNT - 1;
if ($@BRODOMIR_ITEM_AMOUNT > 0)
goto L_Getitem;
+ goto L_SkipItem;
L_SkipItem:
set $@BRODOMIR_ITEM$, "";
diff --git a/world/map/npc/010-2/chef.txt b/world/map/npc/010-2/chef.txt
index 0a295d65..20ef0dcf 100644
--- a/world/map/npc/010-2/chef.txt
+++ b/world/map/npc/010-2/chef.txt
@@ -15,6 +15,7 @@
// if (QUEST_Easter12 == 7) goto L_Easter2012_Wait;
// if (QUEST_Easter12 == 8) goto L_Easter2012Foolplayers;
// if (QUEST_Easter12 == 9) goto OnEaster2012Out;
+ goto L_Begin;
L_Begin:
mes "[Chef]";
@@ -32,7 +33,9 @@ L_lace_chococake:
next;
menu
"Sorry.", L_end,
- "I need your help with a sick young girl!", -;
+ "I need your help with a sick young girl!", L_Next;
+
+L_Next:
mes "[Chef]";
mes "";
mes "You explain Kadiya's situation to him.";
@@ -43,7 +46,9 @@ L_lace_cupcake:
next;
menu
"Sorry.", L_end,
- "I need your help with a sick young girl!", -;
+ "I need your help with a sick young girl!", L_Next1;
+
+L_Next1:
mes "[Chef]";
mes "";
mes "You explain Kadiya's situation to him.";
@@ -51,7 +56,9 @@ L_lace_cupcake:
next;
menu
"No, sorry.", L_bringit,
- "Yes, here you are.", -;
+ "Yes, here you are.", L_Next2;
+
+L_Next2:
if (countitem ("MopoxCurePotion") < 1)
goto L_bringit;
mes "[Chef]";
@@ -66,9 +73,10 @@ L_lace_cupcake:
next;
menu
"I'll go and get it.", L_end,
- "Here you are!", -,
+ "Here you are!", L_Next3,
"Not now.", L_end;
+L_Next3:
if (countitem ("GingerBreadMan") < 3)
goto L_no_gingerbread;
if (countitem ("Orange") < 1)
@@ -130,6 +138,7 @@ L_bringit:
mes "";
mes "\"Bring it here when you do.\"";
next;
+ goto L_End;
L_End:
close;
@@ -143,9 +152,12 @@ L_JellyBean:
next;
mes "\"Even though I am really busy this time of year, I will help you make some Jelly Beans to put in the basket if you wish. Just to keep the tradition alive...\"";
menu
- "I would really appreciate that!", -,
+ "I would really appreciate that!", L_Next4,
"Nah, I decided not to do that stupid quest.", L_End;
+
+L_Next4:
set QUEST_Easter11, 8;
+ goto L_MakeJellyBean;
L_MakeJellyBean:
mes "[Chef]";
@@ -155,10 +167,11 @@ L_MakeJellyBean:
mes "\"Sea slimes seem to have those, so try them.\"";
mes "\"And because it's the holidays, I'll add in the other ingredient for free.\"";
menu
- "I have some candies!", -,
+ "I have some candies!", L_Next5,
"Ok, I will be back soon.", L_End,
"I changed my mind, forget about it.", L_End;
+L_Next5:
if(countitem("Candy") < 15)
goto L_EasterNotEnough;
if(countitem("Candy") >= 15)
@@ -201,7 +214,6 @@ L_SeeBunny:
mes "\"Oh yeah, you need to return to the Easter Bunny now.\"";
next;
goto L_Begin;
- close;
// Lines below here belong to Easter 2012:
@@ -209,8 +221,9 @@ L_Easter2012_Begin:
mes "[Chef]";
mes "\"Ahh, " + strcharinfo(0) + "! I really need to talk to you. Did the Easter Bunny give you a very thick and heavy pan?\"";
menu
- "Yes, he did. Why?", -;
+ "Yes, he did. Why?", L_Next12;
+L_Next12:
mes "[Chef]";
mes "\"Good to know! I am asking because now you are my only hope. I have invented the ultimate culinary wonder, a recipe for the most incredibly tasty food you can imagine!\"";
next;
@@ -221,8 +234,9 @@ L_Easter2012_Begin:
mes "\"Oh, and I will need to keep it with me for a while, as the ingredients need to rest in the acid solution for a long time, but you can always come here to see how it is going.\"";
menu
"Ok, but I want my pan back when it is done!", L_Accept_Cooking,
- "No way, I won't let you fill my hat with corrosive yeti saliva!", -;
+ "No way, I won't let you fill my hat with corrosive yeti saliva!", L_Next6;
+L_Next6:
mes "[Chef]";
mes "\"Ahh, don't say that! Please, think about it and come back if you change your mind.\"";
close;
@@ -231,8 +245,10 @@ L_Accept_Cooking:
mes "[Chef]";
mes "\"Great! But I can't promise anything regarding your hat. What I can promise is: IF it works, you will eat the most spectacular food of all time! I won't say what it is, but it is going to be great! What do you say, are you sure?\"";
menu
- "Ahh, just take the pan and do your thing.", -,
+ "Ahh, just take the pan and do your thing.", L_Next7,
"No way!", L_Close;
+
+L_Next7:
if (countitem("PanHat") < 1)
goto L_No_PanHat;
delitem "PanHat", 1;
@@ -255,11 +271,14 @@ L_Easter2012_Result:
mes "[Chef]";
mes "\"Hey! I have some good news and some bad news... Which one do you want to hear first?\"";
menu
- "The good one.", -,
- "The bad one.", -,
+ "The good one.", L_Next8,
+ "The bad one.", L_Next8,
"Oh no, I don't even want to hear!", L_Close;
+
+L_Next8:
if (@temp < 15) goto L_Easter2012_Lucky;
- if (@temp >= 15) goto L_Easter2012_Unlucky;
+ //else
+ goto L_Easter2012_Unlucky;
close;
L_Easter2012_Lucky:
@@ -277,16 +296,22 @@ L_Easter2012_Unlucky:
mes "\"Ahh, actually, it doesn't matter! The important thing is that the recipe was a success! I just can't believe how something can be so tasty!\"";
next;
menu
- "Nice! Now, what about my hat?", -;
+ "Nice! Now, what about my hat?", L_Next9;
+
+L_Next9:
mes "\"Oh, that... Ehh, unfortunately, the pan is not anymore. It was completely destroyed by the time the pickled beets were ready! But don't worry, I will keep my promise and give you a jar of this culinary masterpiece!\"";
next;
menu
- "Wait, wait... Are you saying I lost my hat?", -;
+ "Wait, wait... Are you saying I lost my hat?", L_Next10;
+
+L_Next10:
mes "[Chef]";
mes "\"Hmm, yes. But I must say I really appreciate your effort to help me! You sacrificed your cool hat in the name of the culinary arts, only a great person would do that!\"";
next;
menu
- "But... I... My hat...", -;
+ "But... I... My hat...", L_Next11;
+
+L_Next11:
mes "[Chef]";
mes "\"Here, take your pickled beets!\"";
getitem "PickledBeets", 1;
@@ -301,7 +326,6 @@ OnEaster2012Out:
menu
"A chef hat for a jar of pickled beets? Of course I want!", L_GetChefhat,
"Ahh, keep you silly hat! The pickled beets are way better!", L_KeepBeets;
- close;
L_GetChefhat:
if (countitem("PickledBeets") < 1)
diff --git a/world/map/npc/010-2/dimonds.txt b/world/map/npc/010-2/dimonds.txt
index 300891c3..d422cf03 100644
--- a/world/map/npc/010-2/dimonds.txt
+++ b/world/map/npc/010-2/dimonds.txt
@@ -210,7 +210,9 @@
next;
mes "\"Well, that was the poem. What do you think of it?\"";
menu
- "It was a bit long and kind of hard to understand, but thanks for reading.", -;
+ "It was a bit long and kind of hard to understand, but thanks for reading.", L_Next;
+
+L_Next:
mes "[Shannon]";
mes "\"Well, thanks for coming to the supper. Also, thanks for helping me make it through the poem. Here, take this hat. When you wear it, wear it with the class you showed me today. Happy Burns' Supper!\"";
getinventorylist;
@@ -380,8 +382,7 @@ event_done:
next;
mes "\"Well, that was the poem. What do you think of it?\"";
menu
- "It was a bit long and kind of hard to understand, but thanks for reading.", -;
- close;
+ "It was a bit long and kind of hard to understand, but thanks for reading.", leave;
L_Full_Inv:
mes "[Shannon]";
@@ -408,6 +409,7 @@ food_menu:
set @choice_idx[@choices_nr], @C_steak;
set @choice$[@choices_nr], "Offer him a steak.";
set @choices_nr, @choices_nr + 1;
+ goto L_nosteaks;
L_nosteaks:
if (countitem("ChickenLeg") == 0)
@@ -415,6 +417,7 @@ L_nosteaks:
set @choice_idx[@choices_nr], @C_chickenleg;
set @choice$[@choices_nr], "Offer him a chicken leg.";
set @choices_nr, @choices_nr + 1;
+ goto L_nochickenleg;
L_nochickenleg:
if (countitem("RedApple") == 0)
@@ -422,6 +425,7 @@ L_nochickenleg:
set @choice_idx[@choices_nr], @C_redapple;
set @choice$[@choices_nr], "Offer him a red apple.";
set @choices_nr, @choices_nr + 1;
+ goto L_noredapple;
L_noredapple:
if (countitem("GreenApple") == 0)
@@ -429,6 +433,7 @@ L_noredapple:
set @choice_idx[@choices_nr], @C_greenapple;
set @choice$[@choices_nr], "Offer him a green apple.";
set @choices_nr, @choices_nr + 1;
+ goto L_nogreenapple;
L_nogreenapple:
if (countitem("Beer") == 0)
@@ -436,24 +441,26 @@ L_nogreenapple:
set @choice_idx[@choices_nr], @C_beer;
set @choice$[@choices_nr], "Offer him a beer.";
set @choices_nr, @choices_nr + 1;
+ goto L_nobeer;
L_nobeer:
set @choice_idx[@choices_nr], @C_nevermind;
set @choice$[@choices_nr], "Leave";
menu
- @choice$[0],-,
- @choice$[1],-,
- @choice$[2],-,
- @choice$[3],-,
- @choice$[4],-,
- @choice$[5],-,
- @choice$[6],-,
- @choice$[7],-,
- @choice$[8],-,
- @choice$[9],-,
- @choice$[10],-;
-
+ @choice$[0],L_MenuItems,
+ @choice$[1],L_MenuItems,
+ @choice$[2],L_MenuItems,
+ @choice$[3],L_MenuItems,
+ @choice$[4],L_MenuItems,
+ @choice$[5],L_MenuItems,
+ @choice$[6],L_MenuItems,
+ @choice$[7],L_MenuItems,
+ @choice$[8],L_MenuItems,
+ @choice$[9],L_MenuItems,
+ @choice$[10],L_MenuItems;
+
+L_MenuItems:
set @choose, @menu - 1;
if (@choice_idx[@choose] == 0)
goto leave;
@@ -572,5 +579,6 @@ leave:
set @npcname$, "Basil the Inn Keeper";
set @cost, 200;
callfunc "Inn";
+ end;
}
diff --git a/world/map/npc/010-2/loratay.txt b/world/map/npc/010-2/loratay.txt
index 906bd874..a6b4c06f 100644
--- a/world/map/npc/010-2/loratay.txt
+++ b/world/map/npc/010-2/loratay.txt
@@ -36,6 +36,7 @@ L_intro_0:
L_intro_1:
mes "You see a middle-aged woman cautiously but surprisingly swiftly cutting out shapes from a huge cotton sheet. The scissors glide along the cloth as if it were butter, never leaving the premarked lines.";
+ goto L_intro_over;
L_intro_over:
next;
@@ -156,14 +157,16 @@ L_agostine_2:
if (countitem("BottleOfWater"))
menu
"(sneak out of the room)", L_end,
- "Are you alright?", -,
+ "Are you alright?", L_Next,
"Here, have a bottle of water...", L_give_water,
- "Can I help you?", -;
- if (countitem("BottleOfWater") == 0)
+ "Can I help you?", L_Next;
+ //else
menu
"(sneak out of the room)", L_end,
- "Are you alright?", -,
- "Can I help you?", -;
+ "Are you alright?", L_Next,
+ "Can I help you?", L_Next;
+
+L_Next:
mes "[Lora Tay the Seamstress]";
mes "She holds out your gloves for you to pick up, then waves you out of the room. Fortunately, her cough seems to be slowly subsiding.";
close;
@@ -231,12 +234,14 @@ L_main_menu:
"Can you make me a shirt?", L_shirt,
"Can you make me a tank top?", L_tanktop,
"Can you make me a cape?", L_cape,
- "Can you make fur boots for me?", -,
- "Can you make winter gloves me?", -,
+ "Can you make fur boots for me?", L_Fur,
+ "Can you make winter gloves me?", L_Fur,
"Can you sew a robe for me?", L_robe,
"Can you make a desert hat for me?", L_desert_hat,
"Can you enhance a sorcerer robe with another line color?", L_sorcerer_robe_linecolor,
"Goodbye for now.", L_end;
+
+L_Fur:
mes "[Lora Tay the Seamstress]";
mes "\"From what? Fluffy fur? I won't work with such lowly materials.\"";
next;
@@ -249,12 +254,14 @@ L_main_menu2:
"Can you make me a shirt?", L_shirt,
"Can you make me a tank top?", L_tanktop,
"Can you make me a cape?", L_cape,
- "Can you make fur boots for me?", -,
- "Can you make winter gloves me?", -,
+ "Can you make fur boots for me?", L_Fur1,
+ "Can you make winter gloves me?", L_Fur1,
"Can you sew a robe for me?", L_robe,
"Can you make a desert hat for me?", L_desert_hat,
"Actually...I have a proposal for you...", L_agostine_proposal,
"Goodbye for now.", L_end;
+
+L_Fur1:
mes "[Lora Tay the Seamstress]";
mes "\"From what? Fluffy fur? I won't work with such lowly materials.\"";
next;
@@ -266,18 +273,20 @@ L_agostine_proposal:
next;
menu
- "I have talked to Agostine and he needs your help.", -,
+ "I have talked to Agostine and he needs your help.", L_Next1,
"I forgot...", L_main_menu2;
+L_Next1:
mes "[Lora Tay the Seamstress]";
mes "\"That cheat! What could he possibly want from me?";
mes "We don't even have the same style in seaming. Is this a joke?\"";
next;
menu
- "It's no joke. He needs your help in creating a new fashion!", -,
+ "It's no joke. He needs your help in creating a new fashion!", L_Next2,
"Yeah you're right, he was probably joking.", L_end;
+L_Next2:
mes "[Lora Tay the Seamstress]";
mes "\"Well it depends what he wants from me.";
mes "Go see Agostine, ask him what he's planning and I will think about it.\"";
@@ -291,16 +300,16 @@ L_proposal_intro:
menu
"Sorry to disturb you, but...", L_main_menu,
"I better go talk to Agostine.", L_end;
- close;
L_proposal_show_materials:
mes "[Lora Tay the Seamstress]";
mes "\"Did you talk to Agostine about his idea?\"";
next;
menu
- "Yes, he explained he saw a dress in a dream and gave me these materials.", -,
+ "Yes, he explained he saw a dress in a dream and gave me these materials.", L_Next3,
"No, that guy is a total wacko.", L_end;
+L_Next3:
mes "[Lora Tay the Seamstress]";
mes "\"Wow these are such fine materials!";
mes "These are certainly not for just any ordinary clothes...";
@@ -308,8 +317,9 @@ L_proposal_show_materials:
next;
menu
- "He said this garment would be his first dress creation and he wanted it to be fabulous!", -;
+ "He said this garment would be his first dress creation and he wanted it to be fabulous!", L_Next4;
+L_Next4:
mes "[Lora Tay the Seamstress]";
mes "\"Fine I will accept his offer...";
mes "But the materials he has given you need some sewing on the edges.\"";
@@ -328,9 +338,11 @@ L_proposal_search_items:
next;
menu
- "I will go get them right away!", -,
+ "I will go get them right away!", L_Next5,
"Here you are.", L_proposal_give_items,
@FINEDRESS_COCOONS+" silk cocoons for a dress? Find somebody else.", L_end;
+
+L_Next5:
set QUEST_WG_state, 15;
close;
@@ -357,17 +369,17 @@ L_proposal_retrieve_design:
mes "\"May you go retrieve the design from Agostine?\"";
next;
menu
- "Certainly I'll be back soon!", -,
+ "Certainly I'll be back soon!", L_Close,
"Actually I want something else...", L_main_menu;
- close;
L_proposal_bringing_design:
mes "[Lora Tay the Seamstress]";
mes "\"Welcome back, did you get the drawings I requested?\"";
next;
menu
- "Here they are!", -;
+ "Here they are!", L_Next6;
+L_Next6:
mes "[Lora Tay the Seamstress]";
mes "\"Wonderful, this dress design is magnificent!";
mes "I am done with the threading but I will now need to sew these materials together into the design.\"";
@@ -394,8 +406,9 @@ L_proposal_dress_finished:
next;
menu
- "Wow it looks great, but what's missing?", -;
+ "Wow it looks great, but what's missing?", L_Next7;
+L_Next7:
mes "[Lora Tay the Seamstress]";
mes "\"Well there are white flare designs on the bottom of the dress.";
mes "I'm not great with fine cloth design so this might be something Agostine must do on his own.";
@@ -406,19 +419,18 @@ L_proposal_dress_finished:
next;
menu
- "Okay, can't wait to see the finished product! Thanks for your help!", -;
+ "Okay, can't wait to see the finished product! Thanks for your help!", L_Next8;
+L_Next8:
set QUEST_WG_state, 20;
-
close;
L_proposal_deliver_dress:
mes "[Lora Tay the Seamstress]";
mes "\"Please take the unfinished dress to him so he may finish the edges with the cloth.\"";
menu
- "I'm on my way.", -,
+ "I'm on my way.", L_Close,
"I have a request...", L_main_menu;
- close;
L_desert_hat:
mes "[Lora Tay the Seamstress]";
@@ -618,6 +630,7 @@ L_tanktop:
mes "\"A tank top? Well, hardly a challenge, but I suppose I could do that. Please get me some cloth-- plain cotton will do-- and, let's see, how does 100,000 GP for my efforts sound?\"";
mes "\"Wait, I keep forgetting, you are just an adventurer... let's make that 1000 GP, then.\"";
next;
+ goto L_tanktop_menu;
L_tanktop_menu:
menu
@@ -688,21 +701,26 @@ L_robe:
next;
if (countitem("SilkCocoon")== 0 && countitem("SilkSheet")== 0)
goto L_robe_nosilk;
+ goto L_robe_menu;
L_robe_menu:
menu
- "Here, I have some silk cocoons!", -,
+ "Here, I have some silk cocoons!", L_Next9,
"Here, I have some silk sheets!", L_robe_sheets,
"Where can I find silk?", L_where_silk,
"How much silk do you need?", L_how_much_silk,
"Oh, never mind.", L_main_menu;
+
+L_Next9:
mes "[Lora Tay the Seamstress]";
mes "The seamstress stares at you as if you had gone out of your mind.";
mes "\"And what precisely do you expect me to do with Silk Cocoons? String them together in some baubly chain? Somehow remove the thread and spin and weave it so that some random person can have their robe?\"";
next;
menu
- "Will you trade cocoons for sheets?", -,
+ "Will you trade cocoons for sheets?", L_Next10,
"Never mind.", L_main_menu;
+
+L_Next10:
mes "[Lora Tay the Seamstress]";
mes "Lora frowns.";
mes "\"It's not all that easy to get properly processed silk around here. Easier for me than for you, I admit...\"";
@@ -716,7 +734,9 @@ L_robe_menu:
next;
menu
"I'm not interested.", L_main_menu,
- "Very well then, here you are.", -;
+ "Very well then, here you are.", L_Next11;
+
+L_Next11:
if (countitem("SilkCocoon") < @ROBE_COCOONS_NR)
goto L_robe_missing_cocoons;
if (Zeny < @ROBE_ZENY)
@@ -738,7 +758,9 @@ L_robe_sheets:
next;
menu
"I'm not interested.", L_main_menu,
- "Very well then, here you are.", -;
+ "Very well then, here you are.", L_Next12;
+
+L_Next12:
if (countitem("SilkSheet") < @ROBE_SHEETS_NR)
goto L_robe_missing_sheets;
if (Zeny < @ROBE_SHEETS_ZENY)
@@ -751,6 +773,7 @@ L_robe_sheets:
mes "[Lora Tay the Seamstress]";
mes "The seamstress puts your GP away, takes your measurements and puts the silk sheets on the table. She asks you to stretch out your arms, then pins the silk sheets in place all over your body.";
next;
+ goto L_get_robe;
L_get_robe:
mes "[Lora Tay the Seamstress]";
@@ -843,6 +866,7 @@ SUB_pick_one_of_many_items:
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "";
+ goto L_SUB_pick_choice_loop;
L_SUB_pick_choice_loop:
if (@i >= @items_nr)
@@ -865,77 +889,73 @@ L_SUB_choice_init_done:
if (@c < 10)
menu
- @choice_n$[0], -,
- @choice_n$[1], -,
- @choice_n$[2], -,
- @choice_n$[3], -,
- @choice_n$[4], -,
- @choice_n$[5], -,
- @choice_n$[6], -,
- @choice_n$[7], -,
- @choice_n$[8], -,
- @choice_n$[9], -;
- if (@c < 10)
- goto L_SUB_choice_join;
+ @choice_n$[0], L_SUB_choice_join,
+ @choice_n$[1], L_SUB_choice_join,
+ @choice_n$[2], L_SUB_choice_join,
+ @choice_n$[3], L_SUB_choice_join,
+ @choice_n$[4], L_SUB_choice_join,
+ @choice_n$[5], L_SUB_choice_join,
+ @choice_n$[6], L_SUB_choice_join,
+ @choice_n$[7], L_SUB_choice_join,
+ @choice_n$[8], L_SUB_choice_join,
+ @choice_n$[9], L_SUB_choice_join;
if (@c < 20)
menu
- @choice_n$[0], -,
- @choice_n$[1], -,
- @choice_n$[2], -,
- @choice_n$[3], -,
- @choice_n$[4], -,
- @choice_n$[5], -,
- @choice_n$[6], -,
- @choice_n$[7], -,
- @choice_n$[8], -,
- @choice_n$[9], -,
- @choice_n$[10], -,
- @choice_n$[11], -,
- @choice_n$[12], -,
- @choice_n$[13], -,
- @choice_n$[14], -,
- @choice_n$[15], -,
- @choice_n$[16], -,
- @choice_n$[17], -,
- @choice_n$[18], -,
- @choice_n$[19], -;
- if (@c < 20)
- goto L_SUB_choice_join;
+ @choice_n$[0], L_SUB_choice_join,
+ @choice_n$[1], L_SUB_choice_join,
+ @choice_n$[2], L_SUB_choice_join,
+ @choice_n$[3], L_SUB_choice_join,
+ @choice_n$[4], L_SUB_choice_join,
+ @choice_n$[5], L_SUB_choice_join,
+ @choice_n$[6], L_SUB_choice_join,
+ @choice_n$[7], L_SUB_choice_join,
+ @choice_n$[8], L_SUB_choice_join,
+ @choice_n$[9], L_SUB_choice_join,
+ @choice_n$[10], L_SUB_choice_join,
+ @choice_n$[11], L_SUB_choice_join,
+ @choice_n$[12], L_SUB_choice_join,
+ @choice_n$[13], L_SUB_choice_join,
+ @choice_n$[14], L_SUB_choice_join,
+ @choice_n$[15], L_SUB_choice_join,
+ @choice_n$[16], L_SUB_choice_join,
+ @choice_n$[17], L_SUB_choice_join,
+ @choice_n$[18], L_SUB_choice_join,
+ @choice_n$[19], L_SUB_choice_join;
menu
- @choice_n$[0], -,
- @choice_n$[1], -,
- @choice_n$[2], -,
- @choice_n$[3], -,
- @choice_n$[4], -,
- @choice_n$[5], -,
- @choice_n$[6], -,
- @choice_n$[7], -,
- @choice_n$[8], -,
- @choice_n$[9], -,
- @choice_n$[10], -,
- @choice_n$[11], -,
- @choice_n$[12], -,
- @choice_n$[13], -,
- @choice_n$[14], -,
- @choice_n$[15], -,
- @choice_n$[16], -,
- @choice_n$[17], -,
- @choice_n$[18], -,
- @choice_n$[19], -,
- @choice_n$[20], -,
- @choice_n$[21], -,
- @choice_n$[22], -,
- @choice_n$[23], -,
- @choice_n$[24], -,
- @choice_n$[25], -,
- @choice_n$[26], -,
- @choice_n$[27], -,
- @choice_n$[28], -,
- @choice_n$[29], -,
- @choice_n$[30], -,
- @choice_n$[31], -;
+ @choice_n$[0], L_SUB_choice_join,
+ @choice_n$[1], L_SUB_choice_join,
+ @choice_n$[2], L_SUB_choice_join,
+ @choice_n$[3], L_SUB_choice_join,
+ @choice_n$[4], L_SUB_choice_join,
+ @choice_n$[5], L_SUB_choice_join,
+ @choice_n$[6], L_SUB_choice_join,
+ @choice_n$[7], L_SUB_choice_join,
+ @choice_n$[8], L_SUB_choice_join,
+ @choice_n$[9], L_SUB_choice_join,
+ @choice_n$[10], L_SUB_choice_join,
+ @choice_n$[11], L_SUB_choice_join,
+ @choice_n$[12], L_SUB_choice_join,
+ @choice_n$[13], L_SUB_choice_join,
+ @choice_n$[14], L_SUB_choice_join,
+ @choice_n$[15], L_SUB_choice_join,
+ @choice_n$[16], L_SUB_choice_join,
+ @choice_n$[17], L_SUB_choice_join,
+ @choice_n$[18], L_SUB_choice_join,
+ @choice_n$[19], L_SUB_choice_join,
+ @choice_n$[20], L_SUB_choice_join,
+ @choice_n$[21], L_SUB_choice_join,
+ @choice_n$[22], L_SUB_choice_join,
+ @choice_n$[23], L_SUB_choice_join,
+ @choice_n$[24], L_SUB_choice_join,
+ @choice_n$[25], L_SUB_choice_join,
+ @choice_n$[26], L_SUB_choice_join,
+ @choice_n$[27], L_SUB_choice_join,
+ @choice_n$[28], L_SUB_choice_join,
+ @choice_n$[29], L_SUB_choice_join,
+ @choice_n$[30], L_SUB_choice_join,
+ @choice_n$[31], L_SUB_choice_join;
L_SUB_choice_join:
set @menu, @menu - 1;
@@ -976,8 +996,7 @@ L_ExamineSorcererRobe:
goto L_NotSorcererRobe;
menu
"Yes, that's fine. Take this one.", L_ChooseSorcererLineColor,
- "No, I changed my mind.", -;
- goto L_CleanSorcererRobe;
+ "No, I changed my mind.", L_CleanSorcererRobe;
L_NotSorcererRobe:
mes "\"This isn't a Sorcerer Robe dear. Stop taking me for a fool.\"";
@@ -989,19 +1008,20 @@ L_ChooseSorcererLineColor:
mes "[Lora Tay the Seamstress]";
mes "\"And which Cotton Cloth color will you give me?\"";
menu
- "A " + @item_colors$[0] + " one.", -,
- "A " + @item_colors$[1] + " one.", -,
- "A " + @item_colors$[2] + " one.", -,
- "A " + @item_colors$[3] + " one.", -,
- "A " + @item_colors$[4] + " one.", -,
- "A " + @item_colors$[5] + " one.", -,
- "A " + @item_colors$[6] + " one.", -,
- "A " + @item_colors$[7] + " one.", -,
- "A " + @item_colors$[8] + " one.", -,
- "A " + @item_colors$[9] + " one.", -,
- "A " + @item_colors$[10] + " one.", -,
+ "A " + @item_colors$[0] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[1] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[2] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[3] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[4] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[5] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[6] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[7] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[8] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[9] + " one.", L_ItemMenus2,
+ "A " + @item_colors$[10] + " one.", L_ItemMenus2,
"Hum. I changed my mind. Later maybe.", L_end;
+L_ItemMenus2:
set @chosen_color, @menu - 1;
set @cotton_cloth_id, 2250 + @chosen_color;
// The White Cotton Cloth is in fact the undyed one.
diff --git a/world/map/npc/011-1/alchemist.txt b/world/map/npc/011-1/alchemist.txt
index 6b47eb07..9b0dc795 100644
--- a/world/map/npc/011-1/alchemist.txt
+++ b/world/map/npc/011-1/alchemist.txt
@@ -44,6 +44,7 @@
set @menuitems$[@c], "Mana potion.";
set @menuID[@c], @CHOICE_MANA_POTION;
set @c, @c + 1;
+ goto L_post_mana_potion_c;
L_post_mana_potion_c:
if (QUEST_clothdyer_knowsdye >= @QUEST_CAN_GET_DYE_HERE)
@@ -71,6 +72,7 @@ L_pre_dyeing:
set @menuitems$[@c], "Actually, can you make dye?";
set @menuID[@c], @CHOICE_DYEING_INTRO;
set @c, @c + 1;
+ goto L_certain_condition;
L_certain_condition:
if (!@wants_sulphur)
@@ -78,6 +80,7 @@ L_certain_condition:
set @menuitems$[@c], "Can you make sulphur powder?";
set @menuID[@c], @CHOICE_SULPHUR_POWDER;
set @c, @c + 1;
+ goto L_post_sulphur_option;
L_post_sulphur_option:
if (!@wants_ironpowder)
@@ -85,6 +88,7 @@ L_post_sulphur_option:
set @menuitems$[@c], "Can you make iron powder?";
set @menuID[@c], @CHOICE_IRON_POWDER;
set @c, @c + 1;
+ goto L_post_ironpowder_option;
L_post_ironpowder_option:
if (@Q_status == @SETZER_INITIAL)
@@ -92,24 +96,27 @@ L_post_ironpowder_option:
set @menuitems$[@c], "Can you make monster oil?";
set @menuID[@c], @CHOICE_MONSTER_OIL;
set @c, @c + 1;
+ goto L_post_monster_oil;
L_post_monster_oil:
set @menuitems$[@c], "No thanks.";
set @menuID[@c], @CHOICE_ABORT;
set @c, @c + 1;
+ goto L_main_menu;
L_main_menu:
menu
- @menuitems$[0], -,
- @menuitems$[1], -,
- @menuitems$[2], -,
- @menuitems$[3], -,
- @menuitems$[4], -,
- @menuitems$[5], -,
- @menuitems$[6], -,
- @menuitems$[7], -;
-
+ @menuitems$[0], L_MenuItems,
+ @menuitems$[1], L_MenuItems,
+ @menuitems$[2], L_MenuItems,
+ @menuitems$[3], L_MenuItems,
+ @menuitems$[4], L_MenuItems,
+ @menuitems$[5], L_MenuItems,
+ @menuitems$[6], L_MenuItems,
+ @menuitems$[7], L_MenuItems;
+
+L_MenuItems:
set @menu, @menu - 1;
if (@menu >= @c)
@@ -140,7 +147,9 @@ L_iron_powder:
next;
menu
"Never mind.", L_abort,
- "Here you are!", -;
+ "Here you are!", L_Next;
+
+L_Next:
if (countitem("IronOre") < 1)
goto L_iron_powder_noore;
if (Zeny < 100)
@@ -183,8 +192,9 @@ L_sulphur:
menu
"I will be back.", L_abort,
"No, I won't!", L_abort,
- "Here you are!", -;
+ "Here you are!", L_Next1;
+L_Next1:
if (countitem("PileOfAsh") < 3)
goto L_sulphur_noash;
if (countitem("MauveHerb") < 3)
@@ -234,7 +244,6 @@ L_mana_potion:
menu
"Here you are!", L_get_mana_potion,
"Never mind.", L_main_menu;
- goto L_main_menu;
L_get_mana_potion:
if(countitem("MauveHerb") < 30)
@@ -344,10 +353,12 @@ L_dyeing_intro:
mes "Rauk seems to be lost in his thoughts.";
next;
menu
- "I only want to dye clothes, though...", -,
+ "I only want to dye clothes, though...", L_Next2,
"What's a 'Wumpus egg'?", L_wumpus_egg_intro,
"What's an 'Obsidian Spork'?", L_obsidian_spork_intro,
"Er, never mind...", L_abort;
+
+L_Next2:
mes "[Rauk the Alchemist]";
mes "\"Oh, just for clothes? Well, that is easy. I can make red, yellow, light blue, orange, pink, green, dark blue, black and purple dye, if you can get me the ingredients for it.\"";
next;
@@ -385,7 +396,6 @@ L_pick_colour:
"Purple", L_purple,
"Dark Green", L_dark_green,
"Nothing, really.", L_abort;
- close;
L_description:
mes "[Rauk the Alchemist]";
@@ -395,6 +405,7 @@ L_description:
mes "\"Some of the colors need more ingredients, including some that you can't find here, so I have to charge money for them.";
mes "Oh, and for a proper dark blue and purple I also need a pearl; without pearl dust they would not shimmer properly.\"";
next;
+ goto L_description_quick;
L_description_quick:
menu
@@ -408,7 +419,9 @@ L_description_quick:
"What do you need for black dye?", L_d_black,
"What do you need for purple dye?", L_d_purple,
"What do you need for dark green dye?", L_d_dark_green,
- "Actually...", -;
+ "Actually...", L_NextMenu;
+
+L_NextMenu:
menu
"Can you make some dye for me, please?", L_pick_colour,
"Where can I get the herbs?", L_d_herbs,
@@ -417,7 +430,6 @@ L_description_quick:
"Where can I find a pearl?", L_d_pearl,
"Where can I find maggot slime?", L_d_maggot_slime,
"I see. Thank you, and a good day to you!", L_abort;
- close;
L_d_herbs:
mes "[Rauk the Alchemist]";
@@ -454,7 +466,6 @@ L_intermediate:
"Can you make some dye for me?", L_pick_colour,
"Can you describe the ingredients?", L_description_quick,
"Never mind.", L_abort;
- close;
L_ok:
mes "[Rauk the Alchemist]";
@@ -810,6 +821,7 @@ L_d_dark_green_quest:
next;
if (QUEST_clothdyer_knowsdye == @QUEST_CAN_GET_DYE_HERE)
set QUEST_clothdyer_knowsdye, (rand(1000) + @QUEST_GUESS_BASE);
+ goto L_d_dark_green_q_main;
L_d_dark_green_q_main:
menu
@@ -817,7 +829,6 @@ L_d_dark_green_q_main:
"So nobody else can wear clothes I dye?", L_dark_green_q_wear,
"OK, what should I do?", L_dark_green_q_explain,
"Let's figure it out!", L_dark_green_q_guess_0;
- close;
L_dark_green_q_wear:
mes "[Rauk the Alchemist]";
@@ -841,7 +852,6 @@ L_dark_green_q_explain2:
"Er... can you explain that again?", L_dark_green_q_explain2,
"Let's do it!", L_dark_green_q_guess_0,
"I don't have time for this.", L_intermediate;
- close;
L_dark_green_q_explain:
mes "[Rauk the Alchemist]";
@@ -861,7 +871,7 @@ L_dark_green_q_explain:
menu
"Er... can you explain that again?", L_dark_green_q_explain,
"Errr... what?", L_dark_green_q_explain2,
- "Let's do it!", -,
+ "Let's do it!", L_dark_green_q_guess_0,
"I don't have time for this.", L_intermediate;
L_dark_green_q_guess_0:
@@ -874,17 +884,18 @@ L_dark_green_q_guess_0:
mes "\"Now we need to figure out just how many thousandths you need. First, tell me how many tenths of an ounce you want to put in.\"";
next;
menu
- "none", -,
- "1 tenth", -,
- "2 tenths", -,
- "3 tenths", -,
- "4 tenths", -,
- "5 tenths", -,
- "6 tenths", -,
- "7 tenths", -,
- "8 tenths", -,
- "9 tenths", -;
-
+ "none", L_MenuItems1,
+ "1 tenth", L_MenuItems1,
+ "2 tenths", L_MenuItems1,
+ "3 tenths", L_MenuItems1,
+ "4 tenths", L_MenuItems1,
+ "5 tenths", L_MenuItems1,
+ "6 tenths", L_MenuItems1,
+ "7 tenths", L_MenuItems1,
+ "8 tenths", L_MenuItems1,
+ "9 tenths", L_MenuItems1;
+
+L_MenuItems1:
set @menu, @menu - 1;
set @guess_accumulator, @menu * 100;
@@ -894,17 +905,18 @@ L_dark_green_q_guess_0:
mes "\"We now have " + @guess_accumulator + " thousandths of an ounce. How many hundredths of an ounce should I add?\"";
next;
menu
- "none", -,
- "1 hundredth", -,
- "2 hundredths", -,
- "3 hundredths", -,
- "4 hundredths", -,
- "5 hundredths", -,
- "6 hundredths", -,
- "7 hundredths", -,
- "8 hundredths", -,
- "9 hundredths", -;
-
+ "none", L_MenuItems2,
+ "1 hundredth", L_MenuItems2,
+ "2 hundredths", L_MenuItems2,
+ "3 hundredths", L_MenuItems2,
+ "4 hundredths", L_MenuItems2,
+ "5 hundredths", L_MenuItems2,
+ "6 hundredths", L_MenuItems2,
+ "7 hundredths", L_MenuItems2,
+ "8 hundredths", L_MenuItems2,
+ "9 hundredths", L_MenuItems2;
+
+L_MenuItems2:
set @menu, @menu - 1;
set @guess_accumulator, @guess_accumulator + (@menu * 10);
@@ -914,17 +926,18 @@ L_dark_green_q_guess_0:
mes "\"These are now " + @guess_accumulator + " thousandths of an ounce. How many thousands more?\"";
next;
menu
- "none", -,
- "1 thousandth", -,
- "2 thousandths", -,
- "3 thousandths", -,
- "4 thousandths", -,
- "5 thousandths", -,
- "6 thousandths", -,
- "7 thousandths", -,
- "8 thousandths", -,
- "9 thousandths", -;
-
+ "none", L_MenuItems3,
+ "1 thousandth", L_MenuItems3,
+ "2 thousandths", L_MenuItems3,
+ "3 thousandths", L_MenuItems3,
+ "4 thousandths", L_MenuItems3,
+ "5 thousandths", L_MenuItems3,
+ "6 thousandths", L_MenuItems3,
+ "7 thousandths", L_MenuItems3,
+ "8 thousandths", L_MenuItems3,
+ "9 thousandths", L_MenuItems3;
+
+L_MenuItems3:
set @menu, @menu - 1;
set @guess_accumulator, @guess_accumulator + @menu;
@@ -976,8 +989,7 @@ L_dark_green_q_again:
next;
menu
"Yes!", L_dark_green_q_guess_0,
- "No, I've had enough.", -;
- close;
+ "No, I've had enough.", L_abort;
L_dark_green_q_noslime:
mes "[Rauk the Alchemist]";
@@ -991,8 +1003,10 @@ L_monster_oil:
mes "\"I know how to create it, but you won't get it from me. It's far too dangerous; even the best alchemist may need multiple attempts and will risk blowing up! I can give you a recipe though, if you still are wanton.\"";
next;
menu
- "Yes, tell me!", -,
+ "Yes, tell me!", L_Next3,
"No, that sounds too dangerous.", L_abort;
+
+L_Next3:
mes "[Rauk the Alchemist]";
mes "You will need a pearl, a pair of snake skins, two piles of volcanic ash, three black scorpion stingers-- and a golden scorpion stinger. In addition you must have plenty of herbs to stabilise the concoction; mauve, alizarin, cobalt and gamboge will do just fine.";
next;
diff --git a/world/map/npc/011-1/auldsbel.txt b/world/map/npc/011-1/auldsbel.txt
index 8fb16e2c..5b300e71 100644
--- a/world/map/npc/011-1/auldsbel.txt
+++ b/world/map/npc/011-1/auldsbel.txt
@@ -53,10 +53,7 @@
"What are you talking about?", L_intro_explain,
"I don't have any obsidian salt.", L_intro_nopowder,
"Do I know you?", L_intro_identity,
- "Goodbye.", -;
- close;
-
- set @name_complaint, 0;
+ "Goodbye.", L_Close;
L_intro_explain:
mes "[Robed Man]";
@@ -85,20 +82,19 @@ L_intro_identity:
@xmsg$, L_intro_wrongperson,
"You're not very good with faces, are you?", L_intro_nogood,
"Who are you?", L_intro_who_are_you,
- "Goodbye.", -;
- close;
+ "Goodbye.", L_Close;
L_intro_wrongperson:
mes "[Robed Man]";
mes "He laughs.";
mes "\"Ah, I knew it... you're not the first one today, either. I should apologize, I am horrible with faces. Well, if you don't mind, please hurry along, I should go back to my experiments.\"";
next;
+ goto L_intro_primary_menu;
L_intro_primary_menu:
menu
"Who are you?", L_intro_who_are_you,
- "Goodbye.", -;
- close;
+ "Goodbye.", L_Close;
L_intro_nogood:
mes "[Robed Man]";
@@ -108,8 +104,7 @@ L_intro_nogood:
menu
"Who are you?", L_intro_who_are_you,
"What is obsidian salt, anyway?", L_intro_obsidian_salt,
- "Goodbye.", -;
- close;
+ "Goodbye.", L_Close;
L_intro_obsidian_salt:
mes "[Robed Man]";
@@ -149,8 +144,7 @@ L_main_menu:
"Where are you from?", L_about_auldsbel,
"Do you need help with your experiments?", L_quest,
"What do you know about...", L_question,
- "Goodbye.", -;
- close;
+ "Goodbye.", L_Close;
L_main_menu_magic:
if (@wants_sulphur && @wants_ironpowder)
@@ -162,7 +156,7 @@ L_main_menu_magic:
"What do you know about...", L_question,
"Can you make sulphur powder?", L_sulphur,
"Can you make iron powder?", L_ironpowder,
- "Goodbye.", -;
+ "Goodbye.", L_Close;
if (@wants_sulphur && !@wants_ironpowder)
menu
"How does magic work?", L_about_magic,
@@ -171,16 +165,15 @@ L_main_menu_magic:
"Do you need help with your experiments?", L_quest,
"What do you know about...", L_question,
"Can you make sulphur powder?", L_sulphur,
- "Goodbye.", -;
- if (!@wants_sulphur)
+ "Goodbye.", L_Close;
+ //else
menu
"How does magic work?", L_about_magic,
"Can you teach me a spell?", L_learn_spell,
"Where are you from?", L_about_auldsbel,
"Do you need help with your experiments?", L_quest,
"What do you know about...", L_question,
- "Goodbye.", -;
- close;
+ "Goodbye.", L_Close;
L_ironpowder:
mes "[Auldsbel the Wizard]";
@@ -198,16 +191,15 @@ L_sulphur:
next;
if (@Q_main_status >= @Q_STATUS_STUDENT)
menu
- "No, thank you.", -,
- "I will see what I can find.", -,
+ "No, thank you.", L_Close,
+ "I will see what I can find.", L_Close,
"Can you teach me how to make it myself?", L_sulphur_teach_spell,
"Here you are.", L_sulphur_buy;
- if (@Q_main_status < @Q_STATUS_STUDENT)
+ //else
menu
- "No, thank you.", -,
- "I will see what I can find.", -,
+ "No, thank you.", L_Close,
+ "I will see what I can find.", L_Close,
"Here you are.", L_sulphur_buy;
- close;
L_sulphur_buy:
if (Zeny < @cost)
@@ -266,7 +258,9 @@ L_sulphur_teach_spell_no:
next;
menu
"Very well, I will help you.", L_quest,
- "No.", -;
+ "No.", L_Next;
+
+L_Next:
mes "[Auldsbel the Wizard]";
mes "\"Then I fear that I shall not reveal the spell to you either.\"";
next;
@@ -279,6 +273,7 @@ L_about_magic:
mes "[Auldsbel the Wizard]";
mes "\"Most spells are claimed by one of the five schools of magic. To properly use them, a magic user need not only have sufficient prowess in magic overall, but also in the specifics of that particular school.\"";
next;
+ goto L_about_magic_minimenu;
L_about_magic_minimenu:
menu
@@ -286,13 +281,13 @@ L_about_magic_minimenu:
"How can I advance in magic?", L_about_magic_advance,
"How do spells work?", L_about_magic_spells,
"Where can I learn spells?", L_about_magic_learn,
- "Never mind.", -;
- goto L_main_menu;
+ "Never mind.", L_main_menu;
L_about_magic_schools:
mes "[Auldsbel the Wizard]";
mes "\"With few exceptions, all spells belong to one of the five schools of magic: Transmutation, War, Astral, Life, and Nature.\"";
next;
+ goto L_about_schools_minimenu;
L_about_schools_minimenu:
menu
@@ -302,8 +297,7 @@ L_about_schools_minimenu:
"What's Life magic?", L_about_life,
"What's Nature magic?", L_about_nature,
"Are there other spells?", L_about_other_spells,
- "Thank you.", -;
- goto L_about_magic_minimenu;
+ "Thank you.", L_about_magic_minimenu;
L_about_transmutation:
mes "[Auldsbel the Wizard]";
@@ -397,6 +391,7 @@ L_about_magic_spells:
mes "[Auldsbel the Wizard]";
mes "\"Some spells require catalysts on top of components, others vary in power depending on whom they are cast on or under what conditions. However, all spells are affected by the caster's astral power.\"";
next;
+ goto L_about_spells_minimenu;
L_about_spells_minimenu:
menu
@@ -407,7 +402,6 @@ L_about_spells_minimenu:
"Where can I learn spells?", L_about_magic_learn,
"How often can I cast spells?", L_about_speed,
"Never mind.", L_about_magic_minimenu;
- close;
L_about_astral_power:
mes "[Auldsbel the Wizard]";
@@ -469,8 +463,7 @@ L_about_auldsbel:
next;
menu
"All right, but what about you?.", L_about_auldsbel_2,
- "Never mind.", -;
- goto L_main_menu;
+ "Never mind.", L_main_menu;
L_about_auldsbel_2:
mes "[Auldsbel the Wizard]";
@@ -540,8 +533,7 @@ L_Q_astralsoul_L:
mes "\"It is about... erm, 11300 GP. Do you have so much money?\"";
menu
"Here you are", L_Q_astralsoul_L1,
- "I will get it.", -;
- goto L_main_menu;
+ "I will get it.", L_main_menu;
L_Q_astralsoul_L1:
if (Zeny < 11300)
@@ -645,13 +637,13 @@ L_Q_manaseed_touched:
mes "\"Legend has it that you can substitute for such control by imbibing a Mana Potion. I am not sure whether that legend is true, but for you it might be worth trying it out.\"";
next;
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_MANAPOTION;
+ goto L_Q_manaseed_touched_short;
L_Q_manaseed_touched_short:
menu
"Where can I get a Mana Potion?", L_where_mana_potion,
"Can you make a Mana Potion?", L_make_mana_potion,
- "Thank you.", -;
- goto L_main_menu;
+ "Thank you.", L_main_menu;
L_where_mana_potion:
mes "[Auldsbel the Wizard]";
@@ -664,9 +656,11 @@ L_make_mana_potion:
mes "\"Well, I can transmute some components into a Mana Potion for you. Let's see... I will need one pearl, 10,000 GP, about twenty Mauve leaves, and some Gamboge ones... ten should do, I think. Oh, and a bottle of water, of course.\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next1,
"I will look for those items.", L_main_menu,
"I'm not interested.", L_Q_manaseed_touched_short;
+
+L_Next1:
if (Zeny < 10000)
goto L_make_mana_potion_missing;
if (countitem("GambogeHerb") < 10)
@@ -701,7 +695,9 @@ L_make_mana_potion:
next;
menu
"Thank you!", L_main_menu,
- "What about the pearl and GP?", -;
+ "What about the pearl and GP?", L_Next2;
+
+L_Next2:
mes "[Auldsbel the Wizard]";
mes "Auldsbel raises his eyebrows in surprise.";
mes "\"Those were payment. You don't expect me to work for free, now do you?\"";
@@ -768,8 +764,10 @@ L_component_quest_0:
mes "\"There are plenty of Mauve plants around, so I'm sure that you won't have a hard time finding the leaves.\"";
next;
menu
- "I have them here.", -,
+ "I have them here.", L_Next3,
"Sure, I will look for them.", L_main_menu;
+
+L_Next3:
if (countitem ("MauveHerb") < 20)
goto L_component_quest_missing;
delitem "MauveHerb", 20;
@@ -791,9 +789,11 @@ L_component_quest_1:
mes "\"Please be a good " + @address$ + " and get me an iron potion, a concentration potion, and three small and three medium healing potions.\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next4,
"I'm not your 'good " + @address$ + "'!", L_main_menu,
"I'll see what I can do.", L_main_menu;
+
+L_Next4:
if (countitem ("SmallHealingPotion") < 3)
goto L_component_quest_missing;
if (countitem ("MediumHealingPotion") < 3)
@@ -824,8 +824,10 @@ L_component_quest_2:
mes "\"I would like to run the next batch of experiments on a larger scale, though. Would you be so kind as to fetch me one hundred silk cocoons, please?\"";
next;
menu
- "One hundred cocoons, here you are.", -,
+ "One hundred cocoons, here you are.", L_Next5,
"That's a lot; I'll see what I can do.", L_main_menu;
+
+L_Next5:
if (countitem ("SilkCocoon") < 100)
goto L_component_quest_missing;
delitem "SilkCocoon", 100;
@@ -848,8 +850,10 @@ L_component_quest_3:
mes "\"I'm still not sure how to integrate it into the spell... but leave that to me. Can you get me twenty-five red scorpion stingers and twenty-five lumps of maggot slime? Those should be just what I need.\"";
next;
menu
- "Here are your stingers and slimes.", -,
+ "Here are your stingers and slimes.", L_Next6,
"I will get back to you once I have them.", L_main_menu;
+
+L_Next6:
if (countitem ("RedScorpionStinger") < 25)
goto L_component_quest_missing;
if (countitem ("MaggotSlime") < 25)
@@ -881,8 +885,10 @@ L_component_quest_4:
mes "\"Could you get me twenty regular, cave, and mountain snake tongues, please? So a total of sixty tongues. This is where most of their life force is concentrated, incidentally.\"";
next;
menu
- "Here are your tongues.", -,
+ "Here are your tongues.", L_Next7,
"I will hunt some snakes for you.", L_main_menu;
+
+L_Next7:
if (countitem ("SnakeTongue") < 20)
goto L_component_quest_missing;
if (countitem ("CaveSnakeTongue") < 20)
@@ -920,8 +926,10 @@ L_component_quest_5:
mes "\"I do have another assignment for you, but this one will be tricky. I will need fifty grass snake tongues. I believe that this may be just enough life force to return the silkworm back to its original shape.\"";
next;
menu
- "Here they are.", -,
+ "Here they are.", L_Next8,
"That's quite a challenge.", L_main_menu;
+
+L_Next8:
if (countitem ("GrassSnakeTongue") < 50)
goto L_component_quest_missing;
delitem "GrassSnakeTongue", 50;
@@ -1020,13 +1028,12 @@ LL_initiation:
next;
if (countitem("MoubooFigurine"))
menu
- "Not yet.", -,
+ "Not yet.", L_main_menu,
"How about this mouboo figurine?", LL_initiation_check;
- if (!(countitem("MoubooFigurine")))
+ //else
menu
- "Not yet.", -,
+ "Not yet.", L_main_menu,
"What was the spell again?", LL_repeat_spell;
- goto L_main_menu;
LL_initiation_fail:
mes "[Auldsbel the Wizard]";
@@ -1080,8 +1087,10 @@ LL_student_start:
mes "\"Bring me ten bug legs, and I will reveal its invocation to you.\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next9,
"I'll be back with them.", L_main_menu;
+
+L_Next9:
if (countitem("BugLeg") < 10)
goto L_component_quest_missing;
delitem "BugLeg", 10;
@@ -1118,8 +1127,10 @@ LL_student_0:
mes "\"Bring me twenty mauve leaves, and I will reveal its invocation.\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next10,
"I'll be back with them.", L_main_menu;
+
+L_Next10:
if (countitem("MauveHerb") < 20)
goto L_component_quest_missing;
delitem "MauveHerb", 20;
@@ -1146,8 +1157,10 @@ LL_student_1:
mes "\"For this, I would like ten scorpion stingers.\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next11,
"I'll be back with them.", L_main_menu;
+
+L_Next11:
if (countitem("ScorpionStinger") < 10)
goto L_component_quest_missing;
delitem "ScorpionStinger", 10;
@@ -1174,8 +1187,10 @@ LL_student_2:
mes "\"Bring me twenty wooden logs, and I will teach you.\"";
next;
menu
- "Here you are.", -,
+ "Here you are.", L_Next12,
"I'll be back with them.", L_main_menu;
+
+L_Next12:
if (countitem("RawLog") < 20)
goto L_component_quest_missing;
delitem "RawLog", 20;
@@ -1220,7 +1235,9 @@ LL_student_4:
menu
"What was the invocation again?", LL_student_3_repeat,
"No, still working on it...", L_main_menu,
- "Yes.", -;
+ "Yes.", L_Next13;
+
+L_Next13:
if (countitem("ConcentrationPotion") < 1)
goto LL_student_4_no_potion;
if (!(MAGIC_FLAGS & MFLAG_MADE_CONC_POTION))
@@ -1269,6 +1286,8 @@ LL_magic_skill_insufficient:
next;
goto L_main_menu;
+L_Close:
+ close;
S_update_var:
set @Q_status, @Q_main_status | (@Q_component_quest << 5);
diff --git a/world/map/npc/011-1/oscar.txt b/world/map/npc/011-1/oscar.txt
index c9ee88da..e3901a12 100644
--- a/world/map/npc/011-1/oscar.txt
+++ b/world/map/npc/011-1/oscar.txt
@@ -80,8 +80,10 @@ L_Introduce:
next;
mes "\"I just came back from a long trip... Really tiring, but so interesting.\"";
menu
- "Oh? Where did you go?", -,
+ "Oh? Where did you go?", L_Next,
"Well... I believe.", L_End;
+
+L_Next:
mes "[Oscar]";
mes "\"Well, I travelled to the economic center of this continent.";
mes "It's north-east of here. Quite far I must say.\"";
@@ -96,8 +98,10 @@ L_Introduce:
mes "\"They taste really good you see, but ahah, they weren't really for eating at that moment!";
mes "Anyway, I wondered if I could grow some here. Until now I only grow apples and oranges.\"";
menu
- "That's an interesting idea!", -,
+ "That's an interesting idea!", L_Next1,
"Really, I hate pumpkins.", L_End;
+
+L_Next1:
mes "[Oscar]";
mes "\"However, I couldn't get any seeds, but I heard rumors in that city, saying we could find pumpkins in the forests north-east of here.";
mes "Most likely there are pumpkin seeds laying around them.\"";
@@ -110,8 +114,10 @@ L_Introduce:
mes "\"Do you think you can get some for me?\"";
menu
- "Sure. Leave it to me!", -,
+ "Sure. Leave it to me!", L_Next2,
"Well, I don't have time for that right now.", L_End;
+
+L_Next2:
mes "[Oscar]";
mes "\"Thanks so much " + strcharinfo(0) + "!";
mes "I can't wait to try them!\"";
@@ -164,8 +170,10 @@ L_HelpGrowSeeds:
goto L_ProposeUseKaflosh;
set @nature_magic, 0;
menu
- "Yeah sure!", -,
+ "Yeah sure!", L_Next3,
"That sounds boring to do. No thanks.", L_End;
+
+L_Next3:
getinventorylist;
if (@inventorylist_count == 100 && countitem("EmptyBottle") == 0)
goto L_InventoryFull;
@@ -176,9 +184,11 @@ L_HelpGrowSeeds:
L_ProposeUseKaflosh:
set @nature_magic, 0;
menu
- "Yeah sure!", -,
+ "Yeah sure!", L_Next4,
"Maybe I can help you water them with magic!", L_WaterWithKaflosh,
"That sounds boring to do. No thanks.", L_End;
+
+L_Next4:
getinventorylist;
if (@inventorylist_count == 100 && countitem("EmptyBottle") == 0)
goto L_InventoryFull;
@@ -212,8 +222,10 @@ L_HelpFillWaters:
goto L_WateringBusy;
mes "\"So do you have the " + $@halloween_num_water_bottles + " bottles filled with fresh water?\"";
menu
- "Yes! Fresh and clear water.", -,
+ "Yes! Fresh and clear water.", L_Next5,
"Oh, not yet. I'm on my way.", L_End;
+
+L_Next5:
if (countitem("BottleOfWater") < $@halloween_num_water_bottles)
goto L_NotEnoughWaters;
@@ -306,8 +318,15 @@ OnInit:
end;
OnTimer1000:
+ goto L_TimerFunction;
+
OnTimer2000:
+ goto L_TimerFunction;
+
OnTimer3000:
+ goto L_TimerFunction;
+
+L_TimerFunction:
if ($@HalloweenQuest_PumpkinsState != 1)
end;
callsub S_CheckPlayer;
diff --git a/world/map/npc/011-3/hermit.txt b/world/map/npc/011-3/hermit.txt
index eb698a3a..e8c2d11a 100644
--- a/world/map/npc/011-3/hermit.txt
+++ b/world/map/npc/011-3/hermit.txt
@@ -7,17 +7,14 @@
if (@knowhermitstory == 1) goto L_Short_Menu;
menu
"Yes, please!", L_Sure,
- "Not yet.", -,
+ "Not yet.", L_Close,
"Actually... Why do you live here?", L_Interested;
- close;
-
L_Short_Menu:
menu
"Yes, please!", L_Sure,
- "Not yet.", -,
+ "Not yet.", L_Close,
"What was that deal you were offering?", L_Quest;
- close;
L_Sure:
warp "011-1.gat", 60, 95;
@@ -30,9 +27,8 @@ L_Interested:
mes "[Arkim the Hermit]";
mes "\"I guess mostly I enjoy experimenting with the bats here.\"";
menu
- "I see...", -,
+ "I see...", L_Close,
"What type of experimenting?", L_Experiment;
- close;
L_Experiment:
mes "[Arkim the Hermit]";
@@ -43,8 +39,10 @@ L_Experiment:
mes "[Arkim the Hermit]";
mes "\"I GUESS I REALLY LIKE CUTTING THEM UP TO SEE HOW THEY WORK!! HAHAHA!\"";
menu
- "YOU'RE CRAZY!", -,
+ "YOU'RE CRAZY!", L_Close,
"Right... me too! Can I help?", L_Quest;
+
+L_Close:
close;
L_Quest:
diff --git a/world/map/npc/011-6/bryant.txt b/world/map/npc/011-6/bryant.txt
index 528bf434..3c5ff906 100644
--- a/world/map/npc/011-6/bryant.txt
+++ b/world/map/npc/011-6/bryant.txt
@@ -37,6 +37,8 @@ OnBanditLordDead:
callsub S_Update_Var;
set BOSS_POINTS, BOSS_POINTS + 20;
message strcharinfo(0), "You gain 20 Boss Points giving you a total of " + BOSS_POINTS + ".";
+ goto L_End;
+
L_End:
set @state, 0;
end;
diff --git a/world/map/npc/012-1/flowerpentagram2.txt b/world/map/npc/012-1/flowerpentagram2.txt
index d719ad00..e002ec8a 100644
--- a/world/map/npc/012-1/flowerpentagram2.txt
+++ b/world/map/npc/012-1/flowerpentagram2.txt
@@ -13,9 +13,10 @@
L_SecondFlower:
mes "Orum described this place. You have to place the second magical flower here.";
menu
- "Place the flower.", -,
+ "Place the flower.", L_Next,
"Leave.", L_Close;
+L_Next:
if (isin("012-1.gat", 142, 69, 144, 71))
goto L_Place;
diff --git a/world/map/npc/012-1/injured-mouboo.txt b/world/map/npc/012-1/injured-mouboo.txt
index 5f629cbe..4b10e100 100644
--- a/world/map/npc/012-1/injured-mouboo.txt
+++ b/world/map/npc/012-1/injured-mouboo.txt
@@ -67,14 +67,14 @@ S_update_var:
mes "[Injured Mouboo]";
mes "You notice a mouboo lying on the ground, groaning, as if in pain.";
next;
+ goto L_menu;
L_menu:
menu
"Examine the mouboo", L_examine,
"Give the mouboo something", L_give,
"Kill the mouboo", L_kill,
- "Leave", -;
- close;
+ "Leave", L_Close;
L_examine:
mes "[Injured Mouboo]";
@@ -87,7 +87,6 @@ L_examine:
menu
"Yes.", L_pickup_alive,
"No.", L_menu;
- goto L_menu;
L_pickup_alive:
mes "[Injured Mouboo]";
@@ -107,6 +106,7 @@ L_give:
set @n, 0;
set @ct, 0;
+ goto L_nloop;
L_nloop:
set @k$, @items$[@n];
@@ -118,6 +118,7 @@ L_nloop:
set @menuNames$[@ct], @k$;
set @choice_eat[@ct], @itemeat[@n];
set @ct, @ct + 1;
+ goto L_nloop_skip;
L_nloop_skip:
set @n, @n+1;
@@ -127,20 +128,21 @@ L_nloop_skip:
set @menuItems$[@ct], "Nevermind";
menu
- @menuItems$[0], -,
- @menuItems$[1], -,
- @menuItems$[2], -,
- @menuItems$[3], -,
- @menuItems$[4], -,
- @menuItems$[5], -,
- @menuItems$[6], -,
- @menuItems$[7], -,
- @menuItems$[8], -,
- @menuItems$[9], -,
- @menuItems$[10], -,
- @menuItems$[11], -,
- @menuItems$[12], -;
-
+ @menuItems$[0], L_MenuItems,
+ @menuItems$[1], L_MenuItems,
+ @menuItems$[2], L_MenuItems,
+ @menuItems$[3], L_MenuItems,
+ @menuItems$[4], L_MenuItems,
+ @menuItems$[5], L_MenuItems,
+ @menuItems$[6], L_MenuItems,
+ @menuItems$[7], L_MenuItems,
+ @menuItems$[8], L_MenuItems,
+ @menuItems$[9], L_MenuItems,
+ @menuItems$[10], L_MenuItems,
+ @menuItems$[11], L_MenuItems,
+ @menuItems$[12], L_MenuItems;
+
+L_MenuItems:
set @menu, @menu - 1;
if (@menu == @ct)
goto L_menu;
@@ -166,6 +168,7 @@ L_consume:
L_do_heal:
callfunc "QuestMoubooHeal";
+ goto L_kill;
L_kill:
mes "[Injured Mouboo]";
@@ -184,6 +187,7 @@ L_kill_success:
set @Q_status, @STATE_KILLED_MOUBOO;
callsub S_update_var;
next;
+ goto L_dead;
L_dead:
mes "[Dead Mouboo]";
@@ -211,6 +215,9 @@ L_healed:
mes "The mouboo is sleeping soundly, smiling in its dreams.";
close;
+L_Close:
+ close;
+
S_update_var:
set @Q_wr_status, @Q_status | @Q_status_upper;
set QUEST_MAGIC,
diff --git a/world/map/npc/012-1/shops.txt b/world/map/npc/012-1/shops.txt
index ac627e1f..4a144212 100644
--- a/world/map/npc/012-1/shops.txt
+++ b/world/map/npc/012-1/shops.txt
@@ -19,23 +19,27 @@ L_RoseHat:
mes "[Blossom]";
mes "\"Certainly, which color do you have?\"";
menu
- "A red one.", -,
- "A white one.", -,
- "A pink one.", -,
- "A yellow one.", -,
- "An orange one.", -,
- "A blue one.", -;
+ "A red one.", L_MenuItems,
+ "A white one.", L_MenuItems,
+ "A pink one.", L_MenuItems,
+ "A yellow one.", L_MenuItems,
+ "An orange one.", L_MenuItems,
+ "A blue one.", L_MenuItems;
+
+L_MenuItems:
set @have_id, @base_id + @menu - 1;
mes "[Blossom]";
mes "\"And which color would you like?\"";
menu
- "A red one.", -,
- "A white one.", -,
- "A pink one.", -,
- "A yellow one.", -,
- "An orange one.", -,
- "A blue one.", -;
+ "A red one.", L_MenuItems1,
+ "A white one.", L_MenuItems1,
+ "A pink one.", L_MenuItems1,
+ "A yellow one.", L_MenuItems1,
+ "An orange one.", L_MenuItems1,
+ "A blue one.", L_MenuItems1;
+
+L_MenuItems1:
set @receive_id, @base_id + @menu - 1;
if (@have_id == @receive_id)
diff --git a/world/map/npc/012-3/mana-seed.txt b/world/map/npc/012-3/mana-seed.txt
index b6c806d2..2c2773ba 100644
--- a/world/map/npc/012-3/mana-seed.txt
+++ b/world/map/npc/012-3/mana-seed.txt
@@ -87,7 +87,6 @@ L_nomagic_mainmenu:
"Throw a rock at it", L_nomagic_throwrock,
"Destroy it", L_nomagic_destroy,
"Leave it alone", L_end;
- close;
L_nomagic_examine:
mes "[Mana Seed]";
@@ -143,13 +142,13 @@ L_magic_start:
mes "The Mana Seed is still in the same place as during your last visit, spreading its light throughout the cavern.";
mes "What would you like to do?";
next;
+ goto L_magic_mainmenu;
L_magic_mainmenu:
menu
"Touch it", L_magic_touch,
"Destroy it", L_magic_destroy,
"Leave it alone", L_end;
- close;
L_magic_touch:
mes "[Mana Seed]";
diff --git a/world/map/npc/013-1/sagatha.txt b/world/map/npc/013-1/sagatha.txt
index 8f975af3..44d531b2 100644
--- a/world/map/npc/013-1/sagatha.txt
+++ b/world/map/npc/013-1/sagatha.txt
@@ -12,6 +12,7 @@ function|script|QuestSagathaHappy|,
L_zero:
set @unhappiness, 0;
+ goto L_write;
L_write:
set QUEST_MAGIC, (QUEST_MAGIC & ~NIBBLE_3_MASK) | (@unhappiness << NIBBLE_3_SHIFT);
@@ -30,6 +31,7 @@ function|script|QuestSagathaAnnoy|,
L_max:
set @unhappiness, 15;
+ goto L_write;
L_write:
set QUEST_MAGIC, (QUEST_MAGIC & ~NIBBLE_3_MASK) | (@unhappiness << NIBBLE_3_SHIFT);
@@ -43,6 +45,7 @@ function|script|SagathaStatus|,
goto L_next;
set @value, 15;
callfunc "QuestSagathaAnnoy";
+ goto L_next;
L_next:
set @mexp, MAGIC_EXPERIENCE & 65535;
@@ -109,10 +112,12 @@ L_next:
mes "She looks at you impassively.";
next;
menu
- "Who are you?", -,
+ "Who are you?", L_Next,
"What's your name?", L_intro_name,
"Hello! My name is " + strcharinfo(0) + ".", L_intro_givename,
"Goodbye.", L_close;
+
+L_Next:
mes "[Witch]";
mes "\"I am what you humans call a witch. I am a human who has chosen all living creatures as what you call family.\"";
next;
@@ -120,7 +125,6 @@ L_next:
"No, I mean... what's your name?", L_intro_name,
"Hello! My name is " + strcharinfo(0) + ".", L_intro_givename,
"Uh.... goodbye.", L_close;
- close;
L_hat_attack:
mes "The witch seems to be trembling with disgust as she stares at your headgear.";
@@ -151,8 +155,7 @@ L_intro_givename:
next;
menu
"What's yours?", L_intro_name,
- "Uhm... bye.", -;
- close;
+ "Uhm... bye.", L_close;
L_evil:
mes "The witch's eyes flare up in anger as she notices you, and she turns away from you.";
@@ -173,6 +176,7 @@ L_wb:
if (@good == 0)
mes "Sagatha glances at you, suspicion evident in her eyes.";
next;
+ goto L_main;
L_main:
if (@Q_status)
@@ -181,13 +185,12 @@ L_main:
"Can you teach me more magic?", L_teach,
"What do you know about...", L_Question,
"Goodbye.", L_close;
- if (!@Q_status)
+ //else
menu
"Can you explain magic to me?", L_explain_magic,
"Can you teach me magic?", L_teach_initial,
"What do you know about...", L_Question,
"Goodbye.", L_close;
- close;
L_teach_initial:
if (@good < 2)
diff --git a/world/map/npc/013-2/apprentice.txt b/world/map/npc/013-2/apprentice.txt
index 17fd2368..843c10fb 100644
--- a/world/map/npc/013-2/apprentice.txt
+++ b/world/map/npc/013-2/apprentice.txt
@@ -15,7 +15,7 @@ L_Yes:
menu
"A beer", L_Beer,
"A milk", L_Milk,
- "Nevermind", -;
+ "Nevermind", L_No;
L_No:
mes "[Fabius]";
diff --git a/world/map/npc/013-2/wizard.txt b/world/map/npc/013-2/wizard.txt
index 5f20d752..6f2fd8c7 100644
--- a/world/map/npc/013-2/wizard.txt
+++ b/world/map/npc/013-2/wizard.txt
@@ -10,7 +10,6 @@
"Thanks, that's very kind of you!", L_Thanks,
"Can you teach me magic?", L_TeachRude,
"Oh, shut up!", L_ShutUp;
- goto L_Close;
L_TeachRude:
mes "[Old Wizard]";
@@ -31,7 +30,7 @@ L_Thanks:
"Alright.", L_Agree,
"I am studying magic, can you help?", L_NewStudent,
"Your apprentice? ... No thanks.", L_Decline;
- if (!@has_magic)
+ //else
menu
"Alright.", L_Agree,
"Your apprentice? ... No thanks.", L_Decline;
@@ -51,7 +50,7 @@ L_NewStudent:
menu
"That would be very kind of you!", L_TeachSpell,
"No, but thank you!", L_Decline;
- if (getskilllv(SKILL_POOL))
+ //else
menu
"That would be very kind of you!", L_TeachSpell,
"Actually I am looking for someone teaching me some more magic skills.", L_AstralSoul,
@@ -84,8 +83,10 @@ L_AstralSoul:
next;
mes "\"To do so, I am in need of a pearl and about 100 acorns.\"";
menu
- "Here we go.", -,
+ "Here we go.", L_Next,
"Ok be right back. I'll get them", L_Decline;
+
+L_Next:
if (countitem("Pearl") < 1 || countitem("Acorn") < 100) goto L_NotEnough;
delitem "Pearl", 1;
delitem "Acorn", 100;
diff --git a/world/map/npc/013-3/sword_chest.txt b/world/map/npc/013-3/sword_chest.txt
index 1bd579e8..14aaffec 100644
--- a/world/map/npc/013-3/sword_chest.txt
+++ b/world/map/npc/013-3/sword_chest.txt
@@ -10,8 +10,7 @@
next;
menu
"Yes.", L_Yes,
- "No.", -;
- close;
+ "No.", L_Close;
L_Yes:
if(countitem("TreasureKey") < 10)
@@ -40,4 +39,7 @@ L_TooMany:
mes "[Chest]";
mes "You don't have room for what ever is inside. Maybe you should try again later.";
close;
+
+L_Close:
+ close;
}
diff --git a/world/map/npc/014-1/wedding-officiator.txt b/world/map/npc/014-1/wedding-officiator.txt
index cb8249c0..44ae9dce 100644
--- a/world/map/npc/014-1/wedding-officiator.txt
+++ b/world/map/npc/014-1/wedding-officiator.txt
@@ -6,6 +6,7 @@
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!\"";
next;
+ goto L_main;
L_main:
if (getpartnerid2())
@@ -16,7 +17,6 @@ L_main:
"How do I get married?", L_explain_marriage,
"I would like to get married.", L_get_married,
"Goodbye.", L_end;
- close;
L_explain_self:
mes "[Wedding Officiator]";
@@ -54,17 +54,21 @@ L_get_married:
mes "\"Wow. So you and your sweetheart are ready to take the big step, then?\"";
next;
menu
- "Yes, we are ready.", -,
+ "Yes, we are ready.", L_Next,
"On second thought, perhaps not.", L_end;
+
+L_Next:
mes "[Wedding Officiator]";
mes "She bounces.";
mes "\"That's so sweet! You must really love each other, then...?\"";
next;
menu
- "We certainly do.", -,
- "Yes, of course.", -,
- "Please get on with it.", -,
+ "We certainly do.", L_Next1,
+ "Yes, of course.", L_Next1,
+ "Please get on with it.", L_Next1,
"Hmm. Let me think about this some more.", L_end;
+
+L_Next1:
mes "[Wedding Officiator]";
mes "Wendy blushes.";
mes "\"Sorry if I am asking so many questions, but I have to make sure, you see... rules and all. Where were we...\"";
@@ -78,13 +82,14 @@ L_get_married:
mes "And do both of you feel that you could spend the rest of your time in this mana world together?\"";
next;
menu
- "Yes.", -,
- "YES.", -,
- "Absolutely.", -,
- "Yes. We love each other.", -,
+ "Yes.", L_Next2,
+ "YES.", L_Next2,
+ "Absolutely.", L_Next2,
+ "Yes. We love each other.", L_Next2,
"This is taking too long.", L_end,
"No.", L_end;
+L_Next2:
if (Zeny < WEDDING_FEE)
goto L_too_poor;
if (BaseLevel < WEDDING_MIN_LEVEL)
@@ -135,7 +140,6 @@ L_main_married:
menu
"We are very happy, thanks for asking!", L_farewell,
"Actually, things aren't so good...", L_talk_divorce;
- close;
L_farewell:
mes "[Wedding Officiator]";
@@ -152,7 +156,6 @@ L_talk_divorce:
"My partner loves someone else.", L_partner_otherlove,
"I think I love someone else.", L_self_otherlove,
"We can't agree on who carries the loot.", L_loot;
- close;
L_nolove:
mes "[Wedding Officiator]";
@@ -164,8 +167,7 @@ L_nolove:
next;
menu
"We tried that, it didn't work.", L_makesure_divorce,
- "Perhaps we should give it another try.", -;
- close;
+ "Perhaps we should give it another try.", L_end;
L_partner_otherlove:
mes "[Wedding Officiator]";
@@ -174,8 +176,7 @@ L_partner_otherlove:
next;
menu
"I'm sure. I want a divorce.", L_makesure_divorce,
- "Perhaps we should discuss this some more first.", -;
- close;
+ "Perhaps we should discuss this some more first.", L_end;
L_self_otherlove:
mes "[Wedding Officiator]";
@@ -187,8 +188,7 @@ L_self_otherlove:
next;
menu
"I'm sure. I want a divorce.", L_makesure_divorce,
- "Let me think about this more.", -;
- close;
+ "Let me think about this more.", L_end;
L_loot:
mes "[Wedding Officiator]";
@@ -197,8 +197,7 @@ L_loot:
next;
menu
"No way. I want a divorce.", L_makesure_divorce,
- "Oh... oh! But of course!", -;
- close;
+ "Oh... oh! But of course!", L_end;
L_makesure_divorce:
set @divorce_cost, DIVORCE_FEE_PER_LEVEL * BaseLevel;
@@ -211,7 +210,6 @@ L_makesure_divorce:
"Let me think about this again.", L_end,
"HOW much? Never mind, then.", L_end,
"That's OK. I want the divorce.", L_do_divorce;
- close;
L_divorce_nomoney:
mes "[Wedding Officiator]";
diff --git a/world/map/npc/015-1/alice.txt b/world/map/npc/015-1/alice.txt
index bf37d874..8b7255b1 100644
--- a/world/map/npc/015-1/alice.txt
+++ b/world/map/npc/015-1/alice.txt
@@ -33,7 +33,9 @@ L_findmany:
next;
menu
"Yes, I already got plenty of them.", L_plenty,
- "No, I am out of luck.", -;
+ "No, I am out of luck.", L_Next;
+
+L_Next:
mes "[Alice]";
mes "\"Oooh, how sad. Let me give you a little tip:";
mes "Herbs are often growing in places where they can't be spotted that easily. Don't forget to look behind the trees, too.\"";
@@ -59,14 +61,18 @@ L_cave:
mes "\"Haha, that is no monster! It's just a sweet little cat.\"";
next;
menu
- "But it wanted to kill me!", -,
- "A cat!? I'll go and kill it!", -;
+ "But it wanted to kill me!", L_Next1,
+ "A cat!? I'll go and kill it!", L_Next1;
+
+L_Next1:
mes "[Alice]";
mes "\"No no, I'm sure it was only frightened. It gets upset when you've got clothes or weapons on you.\"";
next;
menu
- "Ok, let's try it without clothes then", -,
- "What a stupid cat!", -;
+ "Ok, let's try it without clothes then", L_Next2,
+ "What a stupid cat!", L_Next2;
+
+L_Next2:
mes "[Alice]";
mes "\"Please don't do her any harm. See you later!\"";
goto L_Close;
@@ -77,7 +83,9 @@ L_cat:
next;
menu
"Thank you so much!", L_Close,
- "Are you crazy? Taming a cat?", -;
+ "Are you crazy? Taming a cat?", L_Next3;
+
+L_Next3:
mes "[Alice]";
mes "\"Well, it's up to you.\"";
goto L_Close;
diff --git a/world/map/npc/015-1/sword.txt b/world/map/npc/015-1/sword.txt
index a20d9ef2..42db0870 100644
--- a/world/map/npc/015-1/sword.txt
+++ b/world/map/npc/015-1/sword.txt
@@ -52,7 +52,6 @@ L_Initial:
"Nothing in particular.", L_Initial_nothing,
"I was just exploring...", L_Initial_nothing,
"I am trying to learn magic!", L_Initial_learn;
- close;
L_noq:
mes "[Mystic Sword]";
@@ -74,8 +73,10 @@ L_Initial_learn:
next;
menu
"I am not interested in that.", L_Farewell,
- "It might be good for me to learn that.", -,
- "I am quite interested.", -;
+ "It might be good for me to learn that.", L_Next,
+ "I am quite interested.", L_Next;
+
+L_Next:
mes "[Mystic Sword]";
mes "\"Why is it that thou seekest this power?\"";
next;
@@ -85,7 +86,6 @@ L_Initial_learn:
"To kill!", L_Initial_selfish,
"I don't know yet...", L_Initial_dontknow,
"To protect the ones I love!", L_Initial_protect;
- close;
L_Initial_selfish:
mes "[Mystic Sword]";
@@ -100,6 +100,7 @@ L_Initial_dontknow:
L_Initial_protect:
mes "[Mystic Sword]";
mes "\"Quite a high and laundable goal thou hast chosen for thyself! I do hope that thou canst live up to it.\"";
+ goto L_Initial_ok;
L_Initial_ok:
mes "\"Hark, then, mortal! For I shall bestow upon thee the secret of the flare dart spell!\"";
@@ -125,7 +126,6 @@ L_FlareStage:
"Uhm... Hello, Sword?", L_FlareStage_hello,
"Can you teach me more magic?", L_FlareStage_impolite,
"Where can I get sulphur powder?", L_FlareStage_impolite;
- close;
L_FlareStage_impolite:
mes "[Mystic Sword]";
@@ -141,7 +141,6 @@ L_FlareStage_hello:
"Can you teach me more magic?", L_FlareStage_moremagic,
"Where can I find sulphur powder?", L_FlareStage_sulphur,
"Farewell!", L_Farewell;
- close;
L_FlareStage_moremagic:
mes "[Mystic Sword]";
@@ -163,9 +162,8 @@ L_MagicBladeStage:
mes "\"Dost thou wish to continue thy pursuits of this school of magic?\"";
next;
menu
- "No.", -,
+ "No.", L_Farewell,
"Yes.", L_Levelup2_yes;
- goto L_Farewell;
L_Levelup2_yes:
mes "[Mystic Sword]";
@@ -181,9 +179,10 @@ L_Levelup2_yes:
mes "\"Thou hast collected " + Mobpt + " Monster Points. For one thousand of them, I shall admit thee to the school of war magic.\"";
next;
menu
- "OK!", -,
+ "OK!", L_Next1,
"No... never mind.", L_Farewell;
+L_Next1:
set Mobpt, Mobpt - 1000;
mes "[Mystic Sword]";
@@ -245,13 +244,17 @@ L_L2_W12:
next;
menu
"No.", L_farewell,
- "Yes.", -;
+ "Yes.", L_Next2;
+
+L_Next2:
mes "[Mystic Sword]";
mes "\"Very well. I shall teach thee another spell, if thou provest thy progress by sacrificing another five thousand monster points.\"";
next;
menu
"No, I don't want that.", L_farewell,
- "So be it.", -;
+ "So be it.", L_Next3;
+
+L_Next3:
if (Mobpt < 5000)
goto L_lacking_mobpoints;
mes "[Mystic Sword]";
@@ -282,8 +285,10 @@ L_L2_W10:
mes "\"For this spell, I ask that thou bringest a lump of iron ore. Thou must also sacrifice ten thousand monster points.\"";
next;
menu
- "OK.", -,
+ "OK.", L_Next4,
"No way.", L_farewell;
+
+L_Next4:
if (countitem("IronOre") < 1)
goto L_no_ore;
if (MPQUEST && (Mobpt < 10000))
diff --git a/world/map/npc/015-3/katze.txt b/world/map/npc/015-3/katze.txt
index d90cd10c..45a6349a 100644
--- a/world/map/npc/015-3/katze.txt
+++ b/world/map/npc/015-3/katze.txt
@@ -21,9 +21,9 @@
set @cat, ((Katze & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if (@cat == 1 && @catNeedsAlone == 0) goto L_NeedsFood;
- if (@cat == 1) goto L_PreNeedsFood;
+ if (@cat == 1) goto L_NeedsFood;
if (@cat == 2 && @catNeedsAlone == 0) goto L_NeedsFur;
- if (@cat == 2) goto L_PreNeedsFur;
+ if (@cat == 2) goto L_NeedsFur;
if (@cat == 3) goto L_NeedsWood;
if (@cat == 4 && @catNeedsAlone == 0) goto L_NeedsStuff;
if (@cat == 4) goto L_PreNeedsStuff;
@@ -31,14 +31,14 @@
if (@cat == 6 && @catNeedsAlone == 0) goto L_GainEars;
if (@cat == 6) goto L_PreGainEars;
if (@cat == 7) goto L_Finished;
+ goto L_NeedsMilk;
L_NeedsMilk:
mes "[Katze]";
mes "\"Meow.\"";
next;
menu "Throw a stone at the cat.", L_ThrowStone,
- "Leave the cat alone.", -;
- goto L_Close;
+ "Leave the cat alone.", L_Close;
L_ThrowStone:
set @cat, 0;
@@ -49,17 +49,13 @@ L_ThrowStone:
mes "Yikes, the cat attacked you! Your whole body is scratched. Maybe throwing a stone wasn't such a great idea...";
goto L_Close;
-L_PreNeedsFood:
L_NeedsFood:
mes "[Katze]";
mes "\"Meow, prrrr...\"";
next;
menu
"Throw a stone at the cat.", L_ThrowStone,
- "Leave the cat alone.", -;
- goto L_Close;
-
-L_PreNeedsFur:
+ "Leave the cat alone.", L_Close;
L_NeedsFur:
mes "[Katze]";
@@ -69,11 +65,11 @@ L_NeedsFur:
menu
"Make funny movements with the fur near the ground.", L_MoveFur,
"Throw a stone at the cat.", L_ThrowStone,
- "Leave the cat alone.", -;
+ "Leave the cat alone.", L_Close;
if (countitem("WhiteFur") == 0)
menu
"Throw a stone at the cat.", L_ThrowStone,
- "Leave the cat alone.", -;
+ "Leave the cat alone.", L_Close;
goto L_Close;
L_MoveFur:
@@ -93,7 +89,7 @@ L_NeedsWood:
if (countitem("RawLog") > 0)
menu
"Want this piece of wood?", L_GiveWood,
- "Ok, see you later.", -;
+ "Ok, see you later.", L_Close;
goto L_Close;
L_GiveWood:
@@ -125,8 +121,7 @@ L_NeedsStuff2:
menu
"Look here.", L_CatChecksStuff,
"What do you need again?", L_WhatsNeeded,
- "No, I haven't got everything yet.", -;
- goto L_Close;
+ "No, I haven't got everything yet.", L_Close;
L_WhatsNeeded:
mes "[Katze]";
@@ -134,8 +129,7 @@ L_WhatsNeeded:
next;
menu
"Please tell me.", L_Please,
- "Never mind.", -;
- goto L_Close;
+ "Never mind.", L_Close;
L_Please:
mes "[Katze]";
diff --git a/world/map/npc/015-3/pot.txt b/world/map/npc/015-3/pot.txt
index cb38b344..786f0b3b 100644
--- a/world/map/npc/015-3/pot.txt
+++ b/world/map/npc/015-3/pot.txt
@@ -24,12 +24,13 @@
goto L_HasWood;
if (@cat >= 4)
goto L_Close;
+ goto L_NeedsMilk;
L_NeedsMilk:
if (countitem("Milk") > 0)
menu
"Pour in some milk.", L_GiveMilk,
- "Leave it alone.", -;
+ "Leave it alone.", L_Close;
goto L_Close;
L_GiveMilk:
@@ -51,15 +52,15 @@ L_NeedsFood:
menu
"Put in a chicken leg.", L_GiveChicken,
"Put in a steak.", L_GiveSteak,
- "Leave it alone.", -;
+ "Leave it alone.", L_Close;
if (countitem("ChickenLeg") > 0 && countitem("Steak") == 0)
menu
"Put in a chicken leg.", L_GiveChicken,
- "Leave it alone.", -;
+ "Leave it alone.", L_Close;
if (countitem("ChickenLeg") == 0 && countitem("Steak") > 0)
menu
"Put in a steak.", L_GiveSteak,
- "Leave it alone.", -;
+ "Leave it alone.", L_Close;
goto L_Close;
L_GiveChicken:
@@ -87,7 +88,7 @@ L_NeedsFur:
if (countitem("WhiteFur") > 0)
menu
"Put a white fur next to the pot.", L_GiveFur,
- "Leave it alone.", -;
+ "Leave it alone.", L_Close;
goto L_Close;
L_GiveFur:
@@ -98,7 +99,7 @@ L_NeedsWood:
if (countitem("RawLog") > 0)
menu
"Put a wooden log next to the pot.", L_GiveWood,
- "Leave it alone.", -;
+ "Leave it alone.", L_Close;
goto L_Close;
L_GiveWood:
diff --git a/world/map/npc/016-1/gwendolyn.txt b/world/map/npc/016-1/gwendolyn.txt
index 30521be5..2879db9a 100644
--- a/world/map/npc/016-1/gwendolyn.txt
+++ b/world/map/npc/016-1/gwendolyn.txt
@@ -64,7 +64,7 @@
mes "\"Are you interested in becoming a student of Archery?\"";
next;
menu
- "I want to become an archer!",-,
+ "I want to become an archer!",L_fee,
"I'm not interested right now.",L_no_student;
L_fee:
@@ -72,9 +72,10 @@ L_fee:
mes "\"Wonderful! The school's fee is " + @SCHOOLFEE + ".\"";
next;
menu
- "That's a lot, but I think it will be worth it.",-,
+ "That's a lot, but I think it will be worth it.",L_Next,
"I'm not sure I want to spend that much.",L_no_student;
+L_Next:
if (Zeny < @SCHOOLFEE)
goto L_no_money;
@@ -89,7 +90,7 @@ L_fee:
goto L_Close;
next;
menu
- "I already have a Forest Bow.",-;
+ "I already have a Forest Bow.",L_state2;
L_state2:
mes "[Gwendolyn Bowmaker]";
@@ -106,6 +107,7 @@ L_state2:
mes "[Gwendolyn Bowmaker]";
mes "\"Very well, this looks fine. It is time for your first lesson. \"";
next;
+ goto L_lesson;
L_lesson:
mes "[Gwendolyn Bowmaker]";
@@ -119,6 +121,7 @@ L_lesson:
next;
mes "\"Also worth mentioning is how to improve your ability to shoot fast. You need to be agile to grab a new arrow from your quiver and aim for the next shot before your enemy has recovered from your last.\"";
next;
+ goto L_state3;
L_state3:
mes "[Gwendolyn Bowmaker]";
@@ -127,8 +130,9 @@ L_state3:
menu
"Can you please repeat your lesson?",L_lesson,
"I will go and hunt some snakes.",L_Close,
- "I have what you want.",-;
+ "I have what you want.",L_Next1;
+L_Next1:
if (countitem("CaveSnakeEgg") < @CAVE_EGGS_AMOUNT
||countitem("SnakeEgg") < @SNAKE_EGGS_AMOUNT
||countitem("MountainSnakeEgg") < @MOUNTAIN_EGGS_AMOUNT
@@ -148,6 +152,7 @@ L_state3:
mes "[Gwendolyn Bowmaker]";
mes "\"Very well. That will make a great meal.\"";
next;
+ goto L_state4;
L_state4:
if (BaseLevel < @BASELEVEL_GAME)
@@ -162,6 +167,7 @@ L_state4:
mes "[Gwendolyn Bowmaker]";
mes "\"Ok. You have made great progress. I think you are ready for further tasks.\"";
next;
+ goto L_game_explain;
L_game_explain:
mes "[Gwendolyn Bowmaker]";
@@ -171,6 +177,7 @@ L_game_explain:
next;
mes "\"Ok, you can see that target over there? I will tell you how strong the wind blows and from which direction. Then you will try to hit the target by moving right or left and decide how powerful you want to shoot.\"";
next;
+ goto L_state5;
L_state5:
// needed for the minigame:
@@ -191,7 +198,7 @@ L_state5:
next;
menu
"Can you please explain the task again?",L_game_explain,
- "I'm ready, let's start!",-,
+ "I'm ready, let's start!",L_game,
"I'm sorry, I will come back later.",L_Close;
L_game:
@@ -347,16 +354,17 @@ L_choose_shotpower:
mes "How powerfully do you want to shoot?";
next;
menu
- "very weak shot",-,
- "rather weak shot",-,
- "weak shot",-,
- "somewhat weak shot",-,
- "medium shot",-,
- "somewhat powerful shot",-,
- "powerful shot",-,
- "rather powerful shot",-,
- "very powerful shot",-;
-
+ "very weak shot",L_MenuItems,
+ "rather weak shot",L_MenuItems,
+ "weak shot",L_MenuItems,
+ "somewhat weak shot",L_MenuItems,
+ "medium shot",L_MenuItems,
+ "somewhat powerful shot",L_MenuItems,
+ "powerful shot",L_MenuItems,
+ "rather powerful shot",L_MenuItems,
+ "very powerful shot",L_MenuItems;
+
+L_MenuItems:
// we have 9 menu entries, so scale @menu, which is in range 1-9, to a scale in -4 to +4
set @sp, @menu - 5;
// calculate where you hit. You range is in [-8, 8] in X and Y as well
@@ -461,7 +469,7 @@ L_state1:
next;
menu
"I want to become an archer!",L_fee,
- "I am not interested.",-;
+ "I am not interested.",L_no_student;
L_no_student:
mes "\"That's a pity. Well, if you change your mind, come back any time.\"";
diff --git a/world/map/npc/017-1/flowerpentagram1.txt b/world/map/npc/017-1/flowerpentagram1.txt
index 817e6909..77af8b45 100644
--- a/world/map/npc/017-1/flowerpentagram1.txt
+++ b/world/map/npc/017-1/flowerpentagram1.txt
@@ -13,9 +13,10 @@
L_FirstFlower:
mes "This looks like the place Orum described.";
menu
- "Place the flower.", -,
+ "Place the flower.", L_Next,
"Leave.", L_Close;
+L_Next:
if (isin("017-1.gat", 94, 41, 96, 43))
goto L_Place;
diff --git a/world/map/npc/017-4/guardingspirit.txt b/world/map/npc/017-4/guardingspirit.txt
index 71fc6b48..6b39bbd5 100644
--- a/world/map/npc/017-4/guardingspirit.txt
+++ b/world/map/npc/017-4/guardingspirit.txt
@@ -2,6 +2,7 @@
017-4.gat,173,47,0|script|#Guarding Spirit#_M|204,0,0
{
+ goto L_Talk;
L_Talk:
if (OrumQuest == 35)
@@ -65,9 +66,11 @@ L_Block:
mes "[Guarding Spirit]";
mes "\"Stop, mortal! I cannot let you pass!\"";
menu
- "What? Who are you?", -,
- "Why?", -,
+ "What? Who are you?", L_Next,
+ "Why?", L_Next,
"Ok...", L_Close;
+
+L_Next:
mes "[Guarding Spirit]";
mes "\"My master summoned me for the sole purpose of preventing anyone else from entering his refuge.";
mes "I'll stand guard and protect it with all my power!\"";
diff --git a/world/map/npc/017-4/orum.txt b/world/map/npc/017-4/orum.txt
index 6335bd9b..5f6ce8a3 100644
--- a/world/map/npc/017-4/orum.txt
+++ b/world/map/npc/017-4/orum.txt
@@ -85,11 +85,12 @@ L_InitialTalk: // 15: Persuaded the Guarding Spirit to let you into the cave
mes "He turns to you.";
mes "\"I told you not to follow us! Are you so eager to die?\"";
menu
- "I'm here to offer my services...", -,
+ "I'm here to offer my services...", L_Next,
"Ha! You thought you could hide from me?", L_Banish,
- "Keep calm, I want to work with you.", -,
+ "Keep calm, I want to work with you.", L_Next,
"D-d-die?!", L_Banish;
+L_Next:
mes "[Orum]";
mes "\"You want to help us?\"";
mes "Waric raises his eyebrows.";
@@ -97,9 +98,10 @@ L_InitialTalk: // 15: Persuaded the Guarding Spirit to let you into the cave
mes "[Orum]";
mes "\"I don't think that's a good idea.\"";
menu
- "You won't know until you try.", -,
+ "You won't know until you try.", L_Next1,
"You have no choice, I've found your hideout!", L_Banish;
+L_Next1:
mes "[Orum]";
mes "\"Well, why not? Here is a simple enough task to prove you're serious.";
mes "Bring me " + @AMOUNT_SMALLMUSHROOM + " Small Mushrooms, " + @AMOUNT_ASH + " Piles of Ash and one Orange Tulip.\"";
@@ -107,8 +109,9 @@ L_InitialTalk: // 15: Persuaded the Guarding Spirit to let you into the cave
set OrumQuest, 16;
menu
"Sure!", L_Close,
- "Why do you need that?", -;
+ "Why do you need that?", L_Next2;
+L_Next2:
mes "[Orum]";
mes "\"Don't ask stupid questions! Do as you're told.\"";
mes "...";
@@ -128,9 +131,10 @@ L_FirstFlower: // 16: Got task to bring materials for first magical flower
mes "[Orum]";
mes "\"So? Where are the " + @AMOUNT_SMALLMUSHROOM + " Small Mushrooms, " + @AMOUNT_ASH + " Piles of Ash and Orange Tulip you should've brought?\"";
menu
- "I have everything you want!", -,
+ "I have everything you want!", L_Next3,
"I don't have it yet.", L_Close;
+L_Next3:
if ((countitem("SmallMushroom") < @AMOUNT_SMALLMUSHROOM)
|| (countitem("PileOfAsh") < @AMOUNT_ASH)
|| (countitem("OrangeTulip") < 1))
@@ -146,6 +150,8 @@ L_FirstFlower: // 16: Got task to bring materials for first magical flower
mes "[Orum]";
mes "\"Phew, done. Now I feel exhausted. You need to place it at its destination.\"";
next;
+ goto L_WayFirstFlower;
+
L_WayFirstFlower:
mes "\"We prepared a place for this in the forest outside the caves. When you leave the cave, go a couple of steps to the east and you'll find a spot of grass with flowers on a small hill. You have to place it there, right in the middle.\"";
goto L_Close;
@@ -156,16 +162,18 @@ L_PlaceFirstFlower: // 17: Got task to place the first magical flower
menu
"Okay, I'll do that.", L_Close,
"Could you explain where to place it, one more time?", L_WayFirstFlower,
- "I... I lost it.", -;
+ "I... I lost it.", L_Next4;
+L_Next4:
mes "[Orum]";
mes "\"What?! I can't believe this! How could you handle a powerful magical artifact in such a careless way?\"";
next;
mes "\"This behaviour shouldn't remain unpunished. Pay a recompensation fee of " + @RECOMPENSATION_1 + " GP, and I'm going to allow you to continue helping us. So?\"";
menu
- "Okay.", -,
+ "Okay.", L_Next5,
"No way, that's too much!", L_NoRecompensation;
+L_Next5:
if (Zeny < @RECOMPENSATION_1)
goto L_NoMoney;
set Zeny, Zeny - @RECOMPENSATION_1;
@@ -179,9 +187,10 @@ L_PlacedFirstFlower: // 18: Placed first magical flower
mes "[Orum]";
mes "\"I felt the eruption of magical power when you placed it! Wonderful! Let's start with the next one right now.\"";
menu
- "Okay, what should I do now?", -,
+ "Okay, what should I do now?", L_Next6,
"Weird monsters appeared when I placed it!", L_AskMonsters;
+L_Next6:
set OrumQuest, 19;
goto L_SecondFlower;
@@ -197,10 +206,11 @@ L_SecondFlower: // 19: Got task to bring materials for second magical flower
mes "[Orum]";
mes "\"Bring me " + @AMOUNT_PINKPETAL + " Pink Petals, " + @AMOUNT_STINGER + " Scorpion Stingers and one Pink Tulip.\"";
menu
- "I have it.", -,
+ "I have it.", L_Next7,
"All right, I'll get it.", L_Close,
"What's the purpose of this?", L_AskPurpose;
+L_Next7:
if ((countitem("PinkPetal") < @AMOUNT_PINKPETAL)
|| (countitem("ScorpionStinger") < @AMOUNT_STINGER)
|| (countitem("PinkTulip") < 1))
@@ -217,6 +227,8 @@ L_SecondFlower: // 19: Got task to bring materials for second magical flower
mes "[Orum]";
mes "\"Ouch, it still hurts. I need some time to recover. In the meantime, go and place the flower.\"";
next;
+ goto L_WaySecondFlower;
+
L_WaySecondFlower:
mes "[Orum]";
mes "\"The next spot is in the Woodland Hills. When you leave our caves, go south until you come out of the forest. Then walk west, past the hut of that old man.";
@@ -234,16 +246,18 @@ L_PlaceSecondFlower: // 20: Got task to place the second magical flower
menu
"I'm on my way.", L_Close,
"Where do I have to put it again?", L_WaySecondFlower,
- "Sorry, I've lost it.", -;
+ "Sorry, I've lost it.", L_Next8;
+L_Next8:
mes "[Orum]";
mes "\"What?! You incompetent dunderhead! I got hurt while creating this powerful magical artifact and you managed to lose it!?\"";
next;
mes "\"This behaviour shouldn't remain unpunished. Pay a recompensation fee of " + @RECOMPENSATION_2 + " GP, and I'm going to allow you to continue helping us. So?\"";
menu
- "Ok.", -,
+ "Ok.", L_Next9,
"No way, that's too much!", L_NoRecompensation;
+L_Next9:
if (Zeny < @RECOMPENSATION_2)
goto L_NoMoney;
set Zeny, Zeny - @RECOMPENSATION_2;
@@ -259,9 +273,10 @@ L_PlacedSecondFlower: // 21: Placed second magical flower
mes "Everything is going very well.\"";
mes "Orum grins contently.";
menu
- "What do you need next?", -,
+ "What do you need next?", L_Next10,
"How can we build a pentagram by randomly planting flowers?", L_AskPentagram;
+L_Next10:
set OrumQuest, 22;
goto L_ThirdFlower;
@@ -276,10 +291,11 @@ L_ThirdFlower: // 22: Got task to bring materials for third magical flower
mes "[Orum]";
mes "\"Now we need " + @AMOUNT_WHITEFUR + " White Furs, " + @AMOUNT_REDSTINGER + " Red Scorpion Stingers and one White Tulip.\"";
menu
- "I got everything you want.", -,
+ "I got everything you want.", L_Next11,
"I'm still trying to gather what you need.", L_Close,
"And what is the pentagram going to do?", L_AskPentaEffect;
+L_Next11:
if ((countitem("WhiteFur") < @AMOUNT_WHITEFUR)
|| (countitem("RedScorpionStinger") < @AMOUNT_REDSTINGER)
|| (countitem("WhiteTulip") < 1))
@@ -295,10 +311,11 @@ L_ThirdFlower: // 22: Got task to bring materials for third magical flower
next;
mes "\"Here is the rheological additive that you have to pour on it when the reaction between the powders is on its peak level. I'm going to slowly add a little more of the powder, which will make it react faster. Got it?\"";
menu
- "Rheo-what?", -,
- "Okay, let's try.", -,
- "I'm not sure I understand...", -;
+ "Rheo-what?", L_Next12,
+ "Okay, let's try.", L_Next12,
+ "I'm not sure I understand...", L_Next12;
+L_Next12:
mes "[Orum]";
mes "\"Well, just pour when it's bubbling really hard.\"";
mes "He starts to mix the powders together in the caldron.";
@@ -306,13 +323,15 @@ L_ThirdFlower: // 22: Got task to bring materials for third magical flower
setarray @bubblingLevels$, "calmly", "slightly", "noticeably", "heavily";
set @bubblingLevel, rand(10);
+ goto L_EasyMinigame;
L_EasyMinigame:
mes "The mixture is bubbling " + @bubblingLevels$[@bubblingLevel/7] + ". What do you want to do?";
menu
- "Wait.", -,
+ "Wait.", L_Next13,
"Pour.", L_EasyCheck;
+L_Next13:
if (@menu == 1)
set @bubblingLevel, @bubblingLevel + rand(1,10);
if (@bubblingLevel > 27)
@@ -358,6 +377,8 @@ L_EasySuccess:
mes "[Orum]";
mes "\"Excellent! Here it is.\"";
next;
+ goto L_WayThirdFlower;
+
L_WayThirdFlower:
mes "[Orum]";
mes "\"This flower needs to be placed on top of the Hurnscald mines. It might be a bit hard to reach, but I'm sure you'll do fine.\"";
@@ -374,17 +395,19 @@ L_PlaceThirdFlower: // 23: Completed easy minigame and got task to place the thi
menu
"Okay.", L_Close,
"I forgot where to put it.", L_WayThirdFlower,
- "Unfortunately... I don't have it anymore.", -;
+ "Unfortunately... I don't have it anymore.", L_Next14;
+L_Next14:
mes "Orum sighs.";
mes "[Orum]";
mes "\"I hope this is a joke. No, you're serious? What impudence! This was a valuable and powerful magical artifact.\"";
next;
mes "\"This behaviour shouldn't remain unpunished. Pay a recompensation fee of " + @RECOMPENSATION_3 + " GP, and I'm going to allow you to continue helping us. So?\"";
menu
- "Here it is.", -,
+ "Here it is.", L_Next15,
"That's too much!", L_NoRecompensation;
+L_Next15:
if (Zeny < @RECOMPENSATION_3)
goto L_NoMoney;
set Zeny, Zeny - @RECOMPENSATION_3;
@@ -399,9 +422,10 @@ L_PlacedThirdFlower: // 24: Placed third magical flower
mes "\"We're making very good progress. Now that you've placed the third magical flower, only two more are left.";
mes "But we shouldn't become careless now, with each flower the procedure gets more difficult.\"";
menu
- "Understood! What's next?", -,
+ "Understood! What's next?", L_Next16,
"What are we going to summon with that pentagram?", L_AskSummon;
+L_Next16:
set OrumQuest, 25;
goto L_FourthFlower;
@@ -417,10 +441,11 @@ L_FourthFlower: // 25: Got task to bring materials for fourth magical flower
mes "[Orum]";
mes "\"Now we need " + @AMOUNT_HARDSPIKE + " Hard Spikes, " + @AMOUNT_ANGRYSTINGER + " Angry Scorpion Stingers and one Yellow Rose.\"";
menu
- "I managed to get everything.", -,
+ "I managed to get everything.", L_Next17,
"I'll go and gather the items.", L_Close,
"Won't it be dangerous to summon so many aggressive monsters?", L_AskDanger;
+L_Next17:
if ((countitem("HardSpike") < @AMOUNT_HARDSPIKE)
|| (countitem("AngryScorpionStinger") < @AMOUNT_ANGRYSTINGER)
|| (countitem("YellowRose") < 1))
@@ -440,9 +465,10 @@ L_FourthFlower: // 25: Got task to bring materials for fourth magical flower
mes "\"You have two powders, one of them will make the mixture turn yellow, the other one will make it turn red.";
mes "You need to make it a clear, strong orange and hold that for a moment. That way I'll have enough time to pour the rheological additive.\"";
menu
- "Let's try it.", -,
- "I'm not sure what to do...", -;
+ "Let's try it.", L_Next18,
+ "I'm not sure what to do...", L_Next18;
+L_Next18:
mes "[Orum]";
mes "\"Just use the red powder when it's too bright, and the yellow powder when it's too dark. And be careful how much powder you use. The mixture will randomly fluctuate a bit, too, so keep that in mind.\"";
mes "He mixes together a few of each ingredients and then hands you two small bowls with the powders.";
@@ -451,15 +477,17 @@ L_FourthFlower: // 25: Got task to bring materials for fourth magical flower
setarray @colorLevels$, "red", "light red", "dark orange", "orange", "light orange", "dark yellow", "yellow";
set @colorLevel, rand(49);
set @goodColor, 0;
+ goto L_HardMinigame;
L_HardMinigame:
mes "The color of the mixture is " + @colorLevels$[@colorLevel/7] + ". What do you want to do?";
menu
- "Add a small portion of Red Powder.", -,
- "Add a large portion of Red Powder.", -,
- "Add a small portion of Yellow Powder.", -,
- "Add a large portion of Yellow Powder.", -;
+ "Add a small portion of Red Powder.", L_MenuItems,
+ "Add a large portion of Red Powder.", L_MenuItems,
+ "Add a small portion of Yellow Powder.", L_MenuItems,
+ "Add a large portion of Yellow Powder.", L_MenuItems;
+L_MenuItems:
if (@menu == 1)
set @colorLevel, @colorLevel - rand(1,3);
if (@menu == 2)
@@ -478,6 +506,7 @@ L_HardMinigame:
if ((@colorLevel > 20) && (@colorLevel < 28))
goto L_Good;
+ goto L_HardRandom;
L_HardRandom:
set @colorLevel, @colorLevel + 3 - rand(6);
@@ -525,6 +554,8 @@ L_HardSuccess:
mes "[Orum]";
mes "\"Excellent! Wonderful. Here's the flower. I need to clean up the cauldron, so in the meantime go place the flower.\"";
next;
+ goto L_WayFourthFlower;
+
L_WayFourthFlower:
mes "[Orum]";
mes "\"To find the place: go south after leaving our cave, and then follow the path to the east. Watch out for that nasty forest witch living there, she doesn't like humans.";
@@ -535,9 +566,10 @@ L_AskDanger:
mes "[Orum]";
mes "\"Dangerous? Well, not really, since Waric and I are going to stay here in the cave.\"";
menu
- "That's... very comforting.", -,
- "And what about everyone outside? Like me!?", -;
+ "That's... very comforting.", L_Next19,
+ "And what about everyone outside? Like me!?", L_Next19;
+L_Next19:
mes "[Orum]";
mes "\"Umm, well. You won't be in the center of it where the monsters will appear, of course.";
mes "And you can handle a few of them, right?\"";
@@ -549,17 +581,19 @@ L_PlaceFourthFlower: // 26: Completed difficult minigame and got task to place t
menu
"All right.", L_Close,
"Please describe where to place it again.", L_WayFourthFlower,
- "The magical flower... I lost it.", -;
+ "The magical flower... I lost it.", L_Next20;
+L_Next20:
mes "Orum shakes his head in disbelief.";
mes "[Orum]";
mes "\"Lost it? Unbelievable! How could you lose it?\"";
next;
mes "\"This behaviour shouldn't remain unpunished. Pay a recompensation fee of " + @RECOMPENSATION_4 + " GP, and I will to allow you to continue helping us. So?\"";
menu
- "Here it is.", -,
+ "Here it is.", L_Next21,
"That's too expensive!", L_NoRecompensation;
+L_Next21:
if (Zeny < @RECOMPENSATION_4)
goto L_NoMoney;
set Zeny, Zeny - @RECOMPENSATION_4;
@@ -574,9 +608,10 @@ L_PlacedFourthFlower: // 27: Placed fourth magical flower
mes "\"Oh, almost! Only the last flower needs to be placed. Don't lose your focus now!";
mes "This last flower is the most complicated one. Pay attention.\"";
menu
- "Tell me what you need!", -,
+ "Tell me what you need!", L_Next22,
"Why do you want to summon so many beings?", L_AskReason;
+L_Next22:
set OrumQuest, 28;
goto L_FifthFlower;
@@ -594,10 +629,11 @@ L_FifthFlower: // 28: Got task to bring materials for fifth magical flower
mes "[Orum]";
mes "\"For the last flower we need " + @AMOUNT_ACORN + " Acorns, " + @AMOUNT_PEARL + " Pearls, " + @AMOUNT_BLACKSTINGER + " Black Scorpion Stingers and 1 Red Rose.\"";
menu
- "Here it is.", -,
+ "Here it is.", L_Next23,
"Understood.", L_Close,
"Sagatha is the target of the spell, right?", L_AskSagatha;
+L_Next23:
if ((countitem("Acorn") < @AMOUNT_ACORN)
|| (countitem("Pearl") < @AMOUNT_PEARL)
|| (countitem("BlackScorpionStinger") < @AMOUNT_BLACKSTINGER)
@@ -622,9 +658,11 @@ L_Additive:
mes "The next dash of powder Orum adds causes the mixture to sputter and splash. Some of the hot liquid lands on the back of your hand!";
heal -5, 0;
menu
- "Ouch!",-,
- "Aah!", -,
- "Urgh!", -;
+ "Ouch!",L_Next24,
+ "Aah!", L_Next24,
+ "Urgh!", L_Next24;
+
+L_Next24:
mes "As you step back from the cauldron you jostle Orum, and the Red Rose falls out of his pocket into the cauldron.";
goto L_FlowerHat;
@@ -665,10 +703,11 @@ L_FailedFifthFlower: // 29: Failed unbeatable minigame and got the flower hat
mes "[Orum]";
mes "\"Did you get a new Red Rose, so we can create the last magical flower?\"";
menu
- "Yes.", -,
+ "Yes.", L_Next25,
"Not yet.", L_Close,
"Will those monsters hurt Sagatha? Or kill her?", L_AskHurtSagatha;
+L_Next25:
if (countitem("RedRose") < 1)
goto L_NoItem;
@@ -683,6 +722,8 @@ L_FailedFifthFlower: // 29: Failed unbeatable minigame and got the flower hat
mes "[Orum]";
mes "\"Here it is. We're almost done. Don't mess it up!\"";
next;
+ goto L_WayFifthFlower;
+
L_WayFifthFlower:
mes "[Orum]";
mes "\"To place the last flower: go east and follow the road. At some point it might be difficult to get through, since the road isn't used anymore, and the forest is growing back.";
@@ -706,17 +747,19 @@ L_PlaceFifthFlower: // 30: Got task to place the fifth flower
menu
"Yes.", L_Close,
"Where do I have to place it?", L_WayFifthFlower,
- "Please keep calm, but I lost the flower.", -;
+ "Please keep calm, but I lost the flower.", L_Next26;
+L_Next26:
mes "[Orum]";
mes "\"Lost it? You incompetent excuse for a servant! What do you think you're doing?\"";
next;
mes "\"This behaviour shouldn't remain unpunished. Pay a recompensation fee of " + @RECOMPENSATION_5 + " GP, and I'm going to allow you to continue helping us. You also have to bring the necessary materials for a new flower.\"";
menu
- "Okay, here it is.", -,
+ "Okay, here it is.", L_Next27,
"What materials do we need?", L_MaterialFifth,
"That's too expensive!", L_NoRecompensation;
+L_Next27:
if (Zeny < @RECOMPENSATION_5)
goto L_NoMoney;
if ((countitem("Acorn") < @AMOUNT_ACORN)
diff --git a/world/map/npc/017-4/waric.txt b/world/map/npc/017-4/waric.txt
index bdabb63e..81401847 100644
--- a/world/map/npc/017-4/waric.txt
+++ b/world/map/npc/017-4/waric.txt
@@ -71,9 +71,10 @@ L_Flower1:
if (!(getskilllv(SKILL_MAGIC)))
goto L_Close;
menu
- "Can you teach me some magic?", -,
+ "Can you teach me some magic?", L_Next,
"Of course!", L_Close;
+L_Next:
if (@sagatha_follower)
goto L_Sagatha;
if (!@killed_mouboo && !@cut_tree)
@@ -108,8 +109,10 @@ L_DarkMagic:
mes "[Waric]";
mes "\"So, you have gotten your reward and finished the task Orum had for you. Very good.\"";
menu
- "Can you teach me some magic?", -,
+ "Can you teach me some magic?", L_Next1,
"I'm great or what!", L_Close;
+
+L_Next1:
if (@sagatha_follower)
goto L_Sagatha;
if (!@killed_mouboo && !@cut_tree)
@@ -163,15 +166,16 @@ L_LastChance:
mes "\"If you are still not sure, I will give you some time to reconsider, but if you start the ritual and run away, you are dead to me!\"";
next;
menu
- "I am ready to take the oath. [last chance!]", -,
+ "I am ready to take the oath. [last chance!]", L_Next2,
"I have to reconsider.", L_ComeBackLater;
+
+L_Next2:
mes "[Waric]";
mes "\"If you stop during the oath again, I will not teach you anything. If you are not sure whether you want to become my apprentice or not, take more time to reconsider. However, this is your last chance to do so.\"";
next;
menu
"I have to reconsider.", L_ComeBackLater,
"I am ready to take the oath. [last chance!]", L_Oath;
- goto L_Close;
L_Oath:
mes "[Waric]";
@@ -200,8 +204,10 @@ L_Oath:
mes "\Say it! Say it now!\"";
next;
menu
- "[Say the oath]", -,
+ "[Say the oath]", L_Next3,
"I can't say this, it's too much for me!", L_NoOath;
+
+L_Next3:
mes "As you speak the words written in flames, you feel all of your positive feelings drain away. You no longer love, you're no longer happy. You feel indifferent to the world. But there is also a newfound feeling of power in you. You feel capable of doing anything.";
set @SUP_id, SKILL_MAGIC_DARK;
set @SUP_name$, "Dark Magic";
@@ -240,7 +246,9 @@ L_ToxicDart:
mes "\"Are you read for another spell?\"";
menu
"No, I still have to practice the first one.", L_Close,
- "Yes. Show me some more!", -;
+ "Yes. Show me some more!", L_Next4;
+
+L_Next4:
mes "[Waric]";
mes "\"Very well. This spell is more complex than the last one. It is called toxic dart. Only your peers are susceptible to the dart's poison. If you hit an animal the dart will injure it, but the poison will not work.\"";
next;
@@ -257,8 +265,10 @@ L_Snakes:
mes "[Waric]";
mes "\"Have you practiced enough?\"";
menu
- "Yes, I'm an outstanding Dark Mage!", -,
+ "Yes, I'm an outstanding Dark Mage!", L_Next5,
"No. I'm too lazy.", L_ComeBackLater;
+
+L_Next5:
mes "[Waric]";
mes "\"Very well. I shall teach you another spell.\"";
mes "\"This one is so complex that I have to show it to you before explaining it further. Bring me a snake egg and a root.\"";
@@ -272,8 +282,10 @@ L_SnakesIngredients:
mes "[Waric]";
mes "\"Did you bring one Dark Crystal and a Snake Egg?\"";
menu
- "Yes, I have what you want.", -,
+ "Yes, I have what you want.", L_Next6,
"No, I need more time.", L_NoItem;
+
+L_Next6:
if ((countitem("DarkCrystal") < 0)
|| (countitem("SnakeEgg") < 0))
goto L_NoItem;
@@ -295,8 +307,10 @@ L_SnakesSpell:
mes "[Waric]";
mes "\"Did you see how this spell is cast?\"";
menu
- "Yes. What did you mumble?", -,
+ "Yes. What did you mumble?", L_Next7,
"No. Could you show me again?", L_SnakesAgain;
+
+L_Next7:
mes "[Waric]";
mes "\"I said " + getspellinvocation("summon-snakes") + ".\"";
mes "\"Have fun with those spells and use them to cause hate, anger and death.\"";
@@ -309,7 +323,6 @@ L_SnakesAgain:
menu
"No.", L_SnakesSpell,
"Yes.", L_SnakesIngredients;
- goto L_Close;
L_ComeBackLater:
mes "[Waric]";
@@ -322,8 +335,10 @@ L_MoreMagic:
mes "\"You must practice more! I will teach you more spells once you have mastered the ones I have already demonstrated.\"";
next;
menu
- "Can you tell me the invocations for the spells you taught me again?", -,
+ "Can you tell me the invocations for the spells you taught me again?", L_Next8,
"Thanks, master. I will come back later", L_Close;
+
+L_Next8:
mes "[Waric]";
mes "\"Yes, of course.\"";
mes "\"To summon the snakes use " + getspellinvocation("summon-snakes") + ".\"";
@@ -400,4 +415,5 @@ L_Close:
OnInit:
if (!debug)
disablenpc "DebugFlowerP";
+ end;
}
diff --git a/world/map/npc/018-1/flowerpentagram3.txt b/world/map/npc/018-1/flowerpentagram3.txt
index 81f994eb..c83e72e2 100644
--- a/world/map/npc/018-1/flowerpentagram3.txt
+++ b/world/map/npc/018-1/flowerpentagram3.txt
@@ -13,9 +13,10 @@
L_ThirdFlower:
mes "You recognize this place as the spot where Orum wants you to place the third of his magical flowers.";
menu
- "Place the flower.", -,
+ "Place the flower.", L_Next,
"Leave.", L_Close;
+L_Next:
if (isin("018-1.gat", 82, 28, 84, 30))
goto L_Place;
diff --git a/world/map/npc/018-1/miners.txt b/world/map/npc/018-1/miners.txt
index f5e99389..c20a7ed6 100644
--- a/world/map/npc/018-1/miners.txt
+++ b/world/map/npc/018-1/miners.txt
@@ -6,6 +6,8 @@
next;
mes "\"Actually maybe you can help an old miner out.\"";
next;
+ goto L_Keys;
+
L_Keys:
mes "[Miner]";
set @dq_level, 40;
diff --git a/world/map/npc/018-2/caul.txt b/world/map/npc/018-2/caul.txt
index a599f5f8..e8143971 100644
--- a/world/map/npc/018-2/caul.txt
+++ b/world/map/npc/018-2/caul.txt
@@ -54,6 +54,7 @@
set @choice_idx[@choices_nr], @C_monster_oil;
set @choice$[@choices_nr], "I would like to brew Monster Oil.";
set @choices_nr, @choices_nr + 1;
+ goto L_M_no_monster_oil;
L_M_no_monster_oil:
if (!@Q_knows_mopox_cure)
@@ -62,6 +63,7 @@ L_M_no_monster_oil:
set @choice_idx[@choices_nr], @C_mopox_cure;
set @choice$[@choices_nr], "I would like to brew a Mopox Cure Potion.";
set @choices_nr, @choices_nr + 1;
+ goto L_M_no_mopox_cure;
L_M_no_mopox_cure:
if (@inspector != 10)
@@ -70,6 +72,7 @@ L_M_no_mopox_cure:
set @choice_idx[@choices_nr], @C_nohmask;
set @choice$[@choices_nr], "Actually...";
set @choices_nr, @choices_nr + 1;
+ goto L_M_no_inspector;
L_M_no_inspector:
if (!(MAGIC_FLAGS & MFLAG_KNOWS_UNFOCUS_RECIPE))
@@ -78,6 +81,7 @@ L_M_no_inspector:
set @choice_idx[@choices_nr], @C_dementiapotion;
set @choice$[@choices_nr], "I would like to brew a Dementia Potion.";
set @choices_nr, @choices_nr + 1;
+ goto L_M_no_dempo;
L_M_no_dempo:
set @choice_idx[@choices_nr], @C_bye;
@@ -85,15 +89,16 @@ L_M_no_dempo:
set @choices_nr, @choices_nr + 1;
menu
- @choice$[0], -,
- @choice$[1], -,
- @choice$[2], -,
- @choice$[3], -,
- @choice$[4], -,
- @choice$[5], -,
- @choice$[6], -,
- @choice$[7], -;
-
+ @choice$[0], L_MenuItems,
+ @choice$[1], L_MenuItems,
+ @choice$[2], L_MenuItems,
+ @choice$[3], L_MenuItems,
+ @choice$[4], L_MenuItems,
+ @choice$[5], L_MenuItems,
+ @choice$[6], L_MenuItems,
+ @choice$[7], L_MenuItems;
+
+L_MenuItems:
set @choice, @choice_idx[@menu - 1];
if (@choice == @C_monster_oil)
@@ -111,6 +116,7 @@ L_M_no_dempo:
set @num, @choice;
if (@num == 0)
goto L_close;
+ goto L_brew;
L_brew:
mes "[Caul]";
@@ -131,6 +137,7 @@ L_brew:
set @result2, 0;
set @result3, 0;
set @result4, 0;
+ goto L_CraftLoop;
L_CraftLoop:
set @throw, rand(readparam(bInt));
@@ -192,6 +199,7 @@ L_monster_oil_knows_recipe:
mes "\"Ah, but of course! Yes, we should be able to brew that here. Except that... hmm. Pearl and three black scorpion stingers? This sounds very dangerous;";
mes "I fear that I will have to ask you to do this yourself.\"";
next;
+ goto L_monster_oil_main_menu;
L_monster_oil_main_menu:
set @main_menu, 1;
@@ -202,7 +210,6 @@ L_monster_oil_main_menu:
"Let's start!", L_monster_oil_start_brew,
"Where can I get a golden scorpion stinger?", L_monster_oil_where_gold,
"I've changed my mind.", L_close;
- close;
L_monster_oil_why_dangerous:
mes "[Caul]";
@@ -321,8 +328,9 @@ L_monster_oil_loop:
"Add cobalt leaf", L_monster_oil_cobalt,
"Add mauve leaf", L_monster_oil_mauve,
"Ask Caul for advice", L_monster_oil_explain,
- "Duck!", -;
+ "Duck!", L_Explodes;
+L_Explodes:
mes "[Brewing monster oil]";
mes "You throw yourself onto the ground. Seconds later, the cauldron shakes, and your entire mixture explodes upwards.";
mes "Caul crawls out from underneath a char.";
@@ -388,6 +396,7 @@ S_monster_oil_random_move:
if (@auto_mode == 1)
goto L_monster_oil_random_1;
+ goto L_monster_oil_random_0;
L_monster_oil_random_0: // mode 0: add colour or lighten up
set @auto_mode, 1;
@@ -506,14 +515,14 @@ L_mopox_cure_start:
mes "\"The mopox cure potion? Certainly, if you have all of the ingredients... oh, and make sure to bring water, roots, sulphur powder and Mauve leaves.\"";
mes "\"This is a very easy one, so I think I should let you do this yourself. It is very good exercise.\"";
next;
+ goto L_mopox_cure_overview_menu;
L_mopox_cure_overview_menu:
menu
"I'm ready!", L_mopox_cure_setup,
"What are the ingredients?", L_mopox_cure_ingredients,
"How does this work?", L_mopox_cure_howto,
- "I'd rather not try.", -;
- close;
+ "I'd rather not try.", L_close;
L_mopox_cure_ingredients:
mes "[Caul]";
@@ -584,6 +593,7 @@ L_mopox_cure_setup:
if (@stickiness == 3 && @colour == 3)
set @colour, 4; // don't allow insta-win; it's easy enough.
set @rounds, 0;
+ goto L_mopox_cure_loop;
L_mopox_cure_loop:
mes "[Brewing Mopox Cure]";
@@ -602,7 +612,7 @@ L_mopox_cure_loop:
"Add sulphur powder", L_mopox_B_sulphur,
"Add mauve", L_mopox_B_mauve,
"...what should I do again?", L_mopox_reexplain,
- "Wait", -;
+ "Wait", L_mopox_cure_next;
L_mopox_cure_next:
set @stickiness, @stickiness + @rounds;
@@ -729,6 +739,7 @@ L_mopox_cure_win:
getexp @MOPOX_CURE_XP, 0;
mes "[" + @MOPOX_CURE_XP + " experience points]";
set QUEST_MAGIC2, (QUEST_MAGIC2 & ~NIBBLE_3_MASK) | (2 << NIBBLE_3_SHIFT); // Make sure we can only get XP for brewing this once
+ goto L_mopox_cure_win_quick;
L_mopox_cure_win_quick:
close;
@@ -741,8 +752,7 @@ L_DemPotion:
menu
"Please explain to me what you know about that potion.", L_explain_dempo,
"Ok, I will start brewing.", L_brew_dempo_init,
- "Nevermind", -;
- close;
+ "Nevermind", L_close;
L_explain_dempo:
mes "[Caul]";
@@ -825,6 +835,7 @@ L_brew_dempo:
set @choice_idx[@choices_nr], @C_root;
set @choice$[@choices_nr], "Add a root";
set @choices_nr, @choices_nr + 1;
+ goto L_noroots;
L_noroots:
if (countitem("MauveHerb") == 0)
@@ -832,6 +843,7 @@ L_noroots:
set @choice_idx[@choices_nr], @C_mauve;
set @choice$[@choices_nr], "Add a mauve herb";
set @choices_nr, @choices_nr + 1;
+ goto L_nomauve;
L_nomauve:
if (countitem("Lifestone") == 0)
@@ -839,6 +851,7 @@ L_nomauve:
set @choice_idx[@choices_nr], @C_lifestone;
set @choice$[@choices_nr], "Add a lifestone";
set @choices_nr, @choices_nr + 1;
+ goto L_nolifestone;
L_nolifestone:
if (countitem("DiseasedHeart") == 0)
@@ -846,6 +859,7 @@ L_nolifestone:
set @choice_idx[@choices_nr], @C_diseasedheart;
set @choice$[@choices_nr], "Add a diseased heart";
set @choices_nr, @choices_nr + 1;
+ goto L_noheart;
L_noheart:
if (countitem("Bone") == 0)
@@ -853,6 +867,7 @@ L_noheart:
set @choice_idx[@choices_nr], @C_bone;
set @choice$[@choices_nr], "Add a bone";
set @choices_nr, @choices_nr + 1;
+ goto L_nobone;
L_nobone:
if (countitem("Skull") == 0)
@@ -860,6 +875,7 @@ L_nobone:
set @choice_idx[@choices_nr], @C_skull;
set @choice$[@choices_nr], "Add a skull";
set @choices_nr, @choices_nr + 1;
+ goto L_noskull;
L_noskull:
if (countitem("UndeadEar") == 0)
@@ -867,6 +883,7 @@ L_noskull:
set @choice_idx[@choices_nr], @C_undeadear;
set @choice$[@choices_nr], "Add an undead ear";
set @choices_nr, @choices_nr + 1;
+ goto L_noear;
L_noear:
if (countitem("Pearl") == 0)
@@ -874,24 +891,26 @@ L_noear:
set @choice_idx[@choices_nr], @C_pearl;
set @choice$[@choices_nr], "Finalize with a pearl.";
set @choices_nr, @choices_nr + 1;
+ goto L_nopearl;
L_nopearl:
set @choice_idx[@choices_nr], @C_nevermind;
set @choice$[@choices_nr], "Nevermind and leave";
menu
- @choice$[0],-,
- @choice$[1],-,
- @choice$[2],-,
- @choice$[3],-,
- @choice$[4],-,
- @choice$[5],-,
- @choice$[6],-,
- @choice$[7],-,
- @choice$[8],-,
- @choice$[9],-,
- @choice$[10],-;
-
+ @choice$[0],L_MenuItems1,
+ @choice$[1],L_MenuItems1,
+ @choice$[2],L_MenuItems1,
+ @choice$[3],L_MenuItems1,
+ @choice$[4],L_MenuItems1,
+ @choice$[5],L_MenuItems1,
+ @choice$[6],L_MenuItems1,
+ @choice$[7],L_MenuItems1,
+ @choice$[8],L_MenuItems1,
+ @choice$[9],L_MenuItems1,
+ @choice$[10],L_MenuItems1;
+
+L_MenuItems1:
set @menu, @menu - 1;
if (@choice_idx[@menu] == 0)
goto L_brew_dempo;
@@ -984,9 +1003,8 @@ L_ask_quit:
mes "[Caul]";
mes "\"The potion is not ready. You can't just leave now!\"";
menu
- "Please throw away that stupid potion, I'm in a hurry!", -,
+ "Please throw away that stupid potion, I'm in a hurry!", L_close,
"Oh you are right, let me finish it.", L_brew_dempo;
- close;
L_check_explosion:
// set to range [-50 50];
@@ -999,6 +1017,7 @@ L_check_explosion:
// square again, so you must be in the middle to get it work there;
// and multiply with 3 so there is definitly no chance to get it directly after starting
set @prob, (@prob * @prob) * 2;
+ goto L_check_exp_nof;
L_check_exp_nof:
// in about 95% of the cases anything is fine, so return.
diff --git a/world/map/npc/018-2/miners.txt b/world/map/npc/018-2/miners.txt
index d4397492..59e97297 100644
--- a/world/map/npc/018-2/miners.txt
+++ b/world/map/npc/018-2/miners.txt
@@ -53,6 +53,7 @@ L_Check_Gems:
next;
setarray @menuitems$, "", "", "", "", "", "", "";
set @c, 0;
+ goto L_Check_Diamond;
L_Check_Diamond:
if (countitem("Diamond") < 1)
@@ -60,6 +61,7 @@ L_Check_Diamond:
set @menuitems$[@c], "A diamond.";
set @menuid[@c], 0;
set @c, @c + 1;
+ goto L_Check_Ruby;
L_Check_Ruby:
if (countitem("Ruby") < 1)
@@ -67,6 +69,7 @@ L_Check_Ruby:
set @menuitems$[@c], "A ruby.";
set @menuid[@c], 1;
set @c, @c + 1;
+ goto L_Check_Emerald;
L_Check_Emerald:
if (countitem("Emerald") < 1)
@@ -74,6 +77,7 @@ L_Check_Emerald:
set @menuitems$[@c], "An emerald.";
set @menuid[@c], 2;
set @c, @c + 1;
+ goto L_Check_Sapphire;
L_Check_Sapphire:
if (countitem("Sapphire") < 1)
@@ -81,6 +85,7 @@ L_Check_Sapphire:
set @menuitems$[@c], "A sapphire.";
set @menuid[@c], 3;
set @c, @c + 1;
+ goto L_Check_Topaz;
L_Check_Topaz:
if (countitem("Topaz") < 1)
@@ -88,6 +93,7 @@ L_Check_Topaz:
set @menuitems$[@c], "A topaz.";
set @menuid[@c], 4;
set @c, @c + 1;
+ goto L_Check_Amethyst;
L_Check_Amethyst:
if (countitem("Amethyst") < 1)
@@ -95,19 +101,22 @@ L_Check_Amethyst:
set @menuitems$[@c], "An amethyst.";
set @menuid[@c], 5;
set @c, @c + 1;
+ goto L_Choose_Gem;
L_Choose_Gem:
set @menuitems$[@c], "None right now, thanks.";
set @menuid[@c], 6;
set @c, @c + 1;
menu
- @menuitems$[0], -,
- @menuitems$[1], -,
- @menuitems$[2], -,
- @menuitems$[3], -,
- @menuitems$[4], -,
- @menuitems$[5], -,
- @menuitems$[6], -;
+ @menuitems$[0], L_MenuItems,
+ @menuitems$[1], L_MenuItems,
+ @menuitems$[2], L_MenuItems,
+ @menuitems$[3], L_MenuItems,
+ @menuitems$[4], L_MenuItems,
+ @menuitems$[5], L_MenuItems,
+ @menuitems$[6], L_MenuItems;
+
+L_MenuItems:
set @menu, @menu - 1;
if (@menu >= @c)
goto L_Close;
diff --git a/world/map/npc/018-2/receptionist.txt b/world/map/npc/018-2/receptionist.txt
index 45635cfd..be7d6bb9 100644
--- a/world/map/npc/018-2/receptionist.txt
+++ b/world/map/npc/018-2/receptionist.txt
@@ -10,6 +10,7 @@
mes "\"Welcome to the mining camp!";
mes "Do you need anything?\"";
next;
+ goto L_Menu;
L_Menu:
if (@inspector == 10)
@@ -42,8 +43,10 @@ L_Building:
mes "\"No, the company bought this building. It's been abandoned for a while. The villagers think it's haunted, but we haven't seen anything, except for the basement. None of us have been able to stay there for very long.\"";
next;
menu
- "Why not?", -,
+ "Why not?", L_Next,
"Not my problem", L_Question_End;
+
+L_Next:
mes "[Receptionist]";
mes "\"I haven't been down there myself, and the ones who have haven't been able to describe why at all.\"";
next;
diff --git a/world/map/npc/019-1/santa_helper.txt b/world/map/npc/019-1/santa_helper.txt
index 76ce9422..4e622fc7 100644
--- a/world/map/npc/019-1/santa_helper.txt
+++ b/world/map/npc/019-1/santa_helper.txt
@@ -28,6 +28,7 @@ L_Quest:
mes "\"Those monsters stole Santa's presents.";
mes "If you help me, I'll give you something very nice\"";
next;
+ goto L_Menu;
L_Menu:
menu
diff --git a/world/map/npc/019-1/snowman.txt b/world/map/npc/019-1/snowman.txt
index 261336f9..2beaff1d 100644
--- a/world/map/npc/019-1/snowman.txt
+++ b/world/map/npc/019-1/snowman.txt
@@ -24,12 +24,15 @@ L_Quest:
mes "\"Hello there young " + @sex$ + ".";
mes "Would you like a Christmas hat?\"";
next;
+ goto L_Menu;
L_Menu:
menu
"Yes", L_Sure,
- "No", -,
+ "No", L_Next,
"What do you need?", L_Need;
+
+L_Next:
mes "[Snowman]";
mes "\"Well, thats too bad, but make sure to have the holiday spirit!\"";
goto L_Close;
diff --git a/world/map/npc/020-1/well.txt b/world/map/npc/020-1/well.txt
index 1bd1fafb..05db5265 100644
--- a/world/map/npc/020-1/well.txt
+++ b/world/map/npc/020-1/well.txt
@@ -27,18 +27,18 @@
mes "...";
menu
"Throw something in the well.", L_trew,
- "Leave it alone.", -;
- close;
+ "Leave it alone.", L_Close;
L_trew:
mes "What do you want to throw?";
menu
- "Maggot slime", -,
- "A raw log", -,
- "Pile of ash", -,
- "Bottle of water", -,
+ "Maggot slime", L_MenuItems,
+ "A raw log", L_MenuItems,
+ "Pile of ash", L_MenuItems,
+ "Bottle of water", L_MenuItems,
"Leave it alone", L_Close;
+L_MenuItems:
set @menu, @menu - 1;
// little IF to do @quote$ & @Item_ID
@@ -62,10 +62,11 @@ L_trew:
mes "\" "+ @quote$ +"\"";
next;
menu
- "Who are you?", -,
- "How did you get there?", -,
- "Do you need help?", -;
+ "Who are you?", L_MenuItems1,
+ "How did you get there?", L_MenuItems1,
+ "Do you need help?", L_MenuItems1;
+L_MenuItems1:
set @menu, @menu - 1;
if (@menu == 0)
set @quote$, "I'll talk about who I am after leaving the well.";
@@ -108,14 +109,16 @@ S_Update_Var:
if(@Q_status == 2) close;
if(@Q_status == 1)
menu
- "Hello.", -,
+ "Hello.", L_Close,
"Hello, Can you help me?", L_HELP;
- close;
+ goto L_Close;
L_HELP:
mes "[Miler]";
mes "\"What's the problem?\"";
- menu "Someone has fallen in the well.", -;
+ menu "Someone has fallen in the well.", L_Next;
+
+L_Next:
mes "[Miler]";
mes "\"Ho! I'll help him!\"";
getexp (BaseLevel * 111), 0;
@@ -123,6 +126,9 @@ L_HELP:
callsub S_Update_Var;
close;
+L_Close:
+ close;
+
S_Update_Var:
set QUEST_Nivalis_state,
(QUEST_Nivalis_state & ~(@Q_MASK)
diff --git a/world/map/npc/020-2/baktar.txt b/world/map/npc/020-2/baktar.txt
index 2ac3cec6..822da870 100644
--- a/world/map/npc/020-2/baktar.txt
+++ b/world/map/npc/020-2/baktar.txt
@@ -91,23 +91,21 @@
mes "\"Hello, " + @type$ + ", did you come from Tulimshar? Because you have a nice tan. \"";
menu
"Yes, I'm from Tulimshar", L_exotic,
- "Well, I just like sunbathing", -,
- "Good bye", -;
- close;
+ "Well, I just like sunbathing", L_Close,
+ "Good bye", L_Close;
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;
L_exotic:
mes @npcname$;
mes "\"I said that because 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 maybe I can give you a nice reward. But I don't need a lot, I just need one of each item.\"";
- menu "I have some items on me maybe you'll like them ", L_startitem,
- "Don't touch my stuff!", -,
- "I'll get them. Bye.", -;
- close;
+ menu
+ "I have some items on me maybe you'll like them ", L_startitem,
+ "Don't touch my stuff!", L_Close,
+ "I'll get them. Bye.", L_Close;
L_startitem:
setarray @exotic_item$, "", "", "", "", "", "", "";
@@ -118,56 +116,64 @@ L_startitem:
set @exotic_item$[@c], "a Desert Hat ?";
set @menuid[@c], 0;
set @c, @c + 1;
+ goto L_DesertShirt;
L_DesertShirt:
if (countitem("DesertShirt") < 1 || @Q_status & (1<<@BIT_DESERTSHIRT) ) goto L_SerfHat;
set @exotic_item$[@c], "a Desert Shirt ?";
set @menuid[@c], 1;
set @c, @c + 1;
+ goto L_SerfHat;
L_SerfHat:
if (countitem("SerfHat") < 1 || @Q_status & (1<<@BIT_SERFHAT) ) goto L_tongue;
set @exotic_item$[@c], "a Serf Hat ?";
set @menuid[@c], 2;
set @c, @c + 1;
+ goto L_tongue;
L_tongue:
if (countitem("MountainSnakeTongue") < 1 || @Q_status & (1<<@BIT_MS_TONGUE)) goto L_egg;
set @exotic_item$[@c], "a Mountain Snake Tongue ?";
set @menuid[@c], 3;
set @c, @c + 1;
+ goto L_egg;
L_egg:
if (countitem("MountainSnakeEgg") < 1 || @Q_status & (1<<@BIT_MS_EGG)) goto L_Skin;
set @exotic_item$[@c], "a Mountain Snake Egg?";
set @menuid[@c], 4;
set @c, @c + 1;
+ goto L_Skin;
L_Skin:
if (countitem("SnakeSkin") < 1 || @Q_status & (1<<@BIT_SNAKESKIN)) goto L_bugleg;
set @exotic_item$[@c], "a Snake Skin?";
set @menuid[@c], 5;
set @c, @c + 1;
+ goto L_bugleg;
L_bugleg:
if (countitem("BugLeg") < 1 || @Q_status & (1<<@BIT_BUGLEG)) goto L_NeverMind;
set @exotic_item$[@c], "a Bug Leg?";
set @menuid[@c], 6;
set @c, @c + 1;
+ goto L_NeverMind;
L_NeverMind:
set @exotic_item$[@c], "Nevermind";
set @menuid[@c], 6;
//menu for the item
menu
- @exotic_item$[0], -,
- @exotic_item$[1], -,
- @exotic_item$[2], -,
- @exotic_item$[3], -,
- @exotic_item$[4], -,
- @exotic_item$[5], -,
- @exotic_item$[6], -;
-
+ @exotic_item$[0], L_MenuItems,
+ @exotic_item$[1], L_MenuItems,
+ @exotic_item$[2], L_MenuItems,
+ @exotic_item$[3], L_MenuItems,
+ @exotic_item$[4], L_MenuItems,
+ @exotic_item$[5], L_MenuItems,
+ @exotic_item$[6], L_MenuItems;
+
+L_MenuItems:
set @menu, @menu -1;
if (@menuid[@menu] == 0) goto L_DesertHat_Item;
@@ -342,9 +348,11 @@ L_2_talk2:
L_2_talk3:
menu "Ok, I am a professional in doing such things", L_2_professional,
"Hey do you really mean it? ", L_2_professional,
- "You calmed down again?", -,
+ "You calmed down again?", L_Close,
"Oh a packrat! By the way, is that trash over there yours?", L_2_name,
- "Nevermind", -;
+ "Nevermind", L_Close;
+
+L_Close:
mes @npcname$;
mes "\"Get out of my way, prank!\"";
close;
@@ -371,8 +379,10 @@ L_2_name:
mes @npcname$;
mes "\"What is your name again?\"";
- menu "I am sorry for the joke... Please forgive me", -,
- "They call me Mistakes. I am a professional killer as well. You heard about that business in the terranite cave?", -;
+ menu "I am sorry for the joke... Please forgive me", L_Next,
+ "They call me Mistakes. I am a professional killer as well. You heard about that business in the terranite cave?", L_Next;
+
+L_Next:
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;
diff --git a/world/map/npc/020-2/furquest.txt b/world/map/npc/020-2/furquest.txt
index 0f0b2957..17cb3283 100644
--- a/world/map/npc/020-2/furquest.txt
+++ b/world/map/npc/020-2/furquest.txt
@@ -41,8 +41,7 @@
next;
menu
"I want something new for my wardrobe!", L_State_0_1,
- "Oh, nothing, thanks!", -;
- close;
+ "Oh, nothing, thanks!", L_Close;
// Quest #0 - Beginning - Needed: Iron Potion
@@ -53,8 +52,7 @@ L_State_0_1:
next;
menu
"Sure, what kind of drink you like?", L_State_0_2,
- "I'm not your waiter!", -;
- close;
+ "I'm not your waiter!", L_Close;
L_State_0_2:
mes "[Agostine, The Legendary Tailor]";
@@ -63,8 +61,7 @@ L_State_0_2:
next;
menu
"I'll bring you different drinks to try!", L_State_Accept,
- "Maybe a bar will open soon, wait for it.", -;
- close;
+ "Maybe a bar will open soon, wait for it.", L_Close;
L_State_Accept:
mes "[Agostine, The Legendary Tailor]";
@@ -83,8 +80,7 @@ L_State_0_3:
"A pint of beer.", L_State_0_7,
"An Iron potion.", L_State_0_9,
"A Concentration Potion.", L_State_0_8,
- "Nothing, at the moment.", -;
- close;
+ "Nothing, at the moment.", L_Close;
L_State_0_4:
mes "[Agostine, The Legendary Tailor]";
@@ -92,7 +88,6 @@ L_State_0_4:
if (countitem("CactusDrink") < 1) goto L_State_neg;
delitem "CactusDrink", 1;
goto L_State_bad;
- close;
L_State_0_5:
mes "[Agostine, The Legendary Tailor]";
@@ -100,7 +95,6 @@ L_State_0_5:
if (countitem("CactusPotion") < 1) goto L_State_neg;
delitem "CactusPotion", 1;
goto L_State_bad;
- close;
L_State_0_6:
mes "[Agostine, The Legendary Tailor]";
@@ -108,7 +102,6 @@ L_State_0_6:
if (countitem("Milk") < 1) goto L_State_neg;
delitem "Milk", 1;
goto L_State_bad;
- close;
L_State_0_7:
mes "[Agostine, The Legendary Tailor]";
@@ -116,7 +109,6 @@ L_State_0_7:
if (countitem("Beer") < 1) goto L_State_neg;
delitem "Beer", 1;
goto L_State_bad;
- close;
L_State_0_8:
mes "[Agostine, The Legendary Tailor]";
@@ -124,7 +116,6 @@ L_State_0_8:
if (countitem("ConcentrationPotion") < 1) goto L_State_neg;
delitem "ConcentrationPotion", 1;
goto L_State_bad;
- close;
L_State_0_9:
mes "[Agostine, The Legendary Tailor]";
@@ -161,9 +152,8 @@ L_State_1:
mes "Would you like a pair of snow-white Winter Gloves?\"";
next;
menu
- "No, thanks. I love dark clothes...", -,
+ "No, thanks. I love dark clothes...", L_Close,
"You really can do this for me?", L_State_2;
- close;
L_State_2:
mes "[Agostine, The Legendary Tailor]";
@@ -173,9 +163,8 @@ L_State_2:
set QUEST_WG_state, 3;
next;
menu
- "You are crazy! I won't kill any animal for this!", -,
+ "You are crazy! I won't kill any animal for this!", L_Close,
"Sure, I will be back soon!", L_State_3;
- close;
L_State_3:
mes "[Agostine, The Legendary Tailor]";
@@ -190,8 +179,7 @@ L_State_4:
next;
menu
"Here, take a look!", L_State_4_try,
- "Yes, but I need it for something else.", -;
- close;
+ "Yes, but I need it for something else.", L_Close;
L_State_4_try:
mes "[Agostine, The Legendary Tailor]";
@@ -211,8 +199,7 @@ L_State_4_try:
next;
menu
"Here I have another one!", L_State_4_try,
- "Sorry, I will be careful...", -;
- close;
+ "Sorry, I will be careful...", L_Close;
L_State_4_success:
mes "Agostine breaks into a smile";
@@ -228,9 +215,8 @@ L_State_5:
mes "\"Ehm, my friend, my work is not free. I need 15,000 GP for the work.\"";
next;
menu
- "You are not a tailor, you are a thief!!", -,
+ "You are not a tailor, you are a thief!!", L_Close,
"I think it's a reasonable price...", L_State_5_pay;
- close;
L_State_5_pay:
if (Zeny < 15000) goto L_State_5_nocash;
@@ -257,8 +243,7 @@ L_State_6:
next;
menu
"It's a great idea!", L_State_10,
- "I'm glamourous enough, thanks", -;
- close;
+ "I'm glamourous enough, thanks", L_Close;
// Start of Second Quest: Furry Boots - Needed: About 30 White Furs, 1 pair of Boots and 15.000 GP
L_State_10:
@@ -276,8 +261,7 @@ L_State_11:
next;
menu
"Sure, I'm a fluffy hunter!", L_State_11_try,
- "Not yet, sorry.", -;
- close;
+ "Not yet, sorry.", L_Close;
L_State_11_try:
mes "[Agostine, The Legendary Tailor]";
@@ -298,8 +282,7 @@ L_State_11_try:
next;
menu
"Well, maybe this is better!", L_State_11_try,
- "I will hunt other fluffies...", -;
- close;
+ "I will hunt other fluffies...", L_Close;
L_State_11_success:
mes "Agostine breaks into a smile";
@@ -316,8 +299,7 @@ L_State_12:
next;
menu
"Sure, here it all is.", L_State_12_pay,
- "I missed something, I will be back soon!", -;
- close;
+ "I missed something, I will be back soon!", L_Close;
L_State_12_pay:
if (Zeny < 15000) goto L_State_12_missing;
@@ -362,8 +344,9 @@ L_State_14:
next;
menu
- "But?", -;
+ "But?", L_Next;
+L_Next:
mes "[Agostine, The Legendary Tailor]";
mes "\"There is a new fashion I've been dying to try out!";
mes "But I don't have all the knowledge in the world about seaming this wonderful fashion.\"";
@@ -371,7 +354,9 @@ L_State_14:
menu
"Ah, that's too bad...", L_Close,
- "I know another tailor who might know!", -;
+ "I know another tailor who might know!", L_Next1;
+
+L_Next1:
mes "[Agostine, The Legendary Tailor]";
mes "\"What tailor may that be?";
mes "I haven't been out of Nivalis for quite some time since I have been busy with clothes for the people of the town.";
@@ -379,8 +364,9 @@ L_State_14:
next;
menu
- "Well... There is a tailor in Dimond's Cove who makes pretty good clothing. Her name is Lora Tay.", -;
+ "Well... There is a tailor in Dimond's Cove who makes pretty good clothing. Her name is Lora Tay.", L_Next2;
+L_Next2:
mes "[Agostine, The Legendary Tailor]";
mes "\"I had almost forgotten about Lora Tay.";
mes "She has tried to put me out of business a few times long ago.";
@@ -389,8 +375,7 @@ L_State_14:
menu
"Sure thing! Be back soon.", L_State_14_Accept,
- "It will never happen. I won't waste my time.", -;
- close;
+ "It will never happen. I won't waste my time.", L_Close;
L_State_14_Accept:
set QUEST_WG_state, 12;
@@ -406,9 +391,10 @@ L_State_15:
mes "\"Hi there fashionable friend, have you talked to Lora Tay about my request?\"";
next;
menu
- "Yes, but she would like to know more information about it and I'm kind of curious myself.", -,
+ "Yes, but she would like to know more information about it and I'm kind of curious myself.", L_Next3,
"I haven't yet, sorry.", L_Close;
+L_Next3:
mes "[Agostine, The Legendary Tailor]";
mes "\"Well I had a dream of a woman in a beautiful dress I would like to recreate from my dream...";
mes "But the thing is I have never sewn a dress this fabulous in my life!";
@@ -416,9 +402,10 @@ L_State_15:
next;
menu
- "You must be thinking of fashion a lot if it's in your dreams! I shall bring this information to Lora Tay.", -,
+ "You must be thinking of fashion a lot if it's in your dreams! I shall bring this information to Lora Tay.", L_Next4,
"You're obsessed, I cant help you.", L_Close;
+L_Next4:
mes "[Agostine, The Legendary Tailor]";
mes "\"Please take these materials with you to show Lora Tay the kind of vision I have!";
mes "These are the finest materials in my whole house and have been saving them for something special such as this.\"";
@@ -447,9 +434,10 @@ L_State_16:
next;
menu
- "Yes, she is also working on threading to sew the materials together.", -,
+ "Yes, she is also working on threading to sew the materials together.", L_Next5,
"Why would I do that for?", L_Close;
+L_Next5:
mes "[Agostine, The Legendary Tailor]";
mes "\"Wow she did not only accept but she is willing to sew these materials for me?";
mes "This is amazing... I was quite worried I would ruin these fine cloths sewing them myself.\"";
@@ -459,17 +447,19 @@ L_State_16:
mes "\"Is there anything I can do in the meanwhile?\"";
next;
menu
- "Actually she wanted the design drawings to know what it should look like.", -;
+ "Actually she wanted the design drawings to know what it should look like.", L_Next6;
+L_Next6:
mes "[Agostine, The Legendary Tailor]";
mes "\"Of course! How could I forget, I drew the designs right after the dream I had.";
mes "Please take these to Lora Tay and ask her to try and make it as close as she can.\"";
next;
menu
- "Sure thing be back soon!", -,
+ "Sure thing be back soon!", L_Next7,
"... I'll take a nap first.", L_Close;
+L_Next7:
set QUEST_WG_state, 17;
message strcharinfo(0), "Agostine gives you a folio containing his designs, that you put in a hidden compartment in your backpack.";
@@ -492,8 +482,9 @@ L_State_17:
next;
menu
- "Lora Tay mentioned the bottom has to be edged with cotton cloths but she cannot do the design you wanted.", -;
+ "Lora Tay mentioned the bottom has to be edged with cotton cloths but she cannot do the design you wanted.", L_Next8;
+L_Next8:
mes "[Agostine, The Legendary Tailor]";
mes "\"That's fine. I will finish it with the cloth but it seems I don't have anymore around...\"";
next;
@@ -506,10 +497,11 @@ L_State_17_AskItems:
next;
menu
- "Sure thing, I will go get them!", -,
+ "Sure thing, I will go get them!", L_Next9,
"Here you are!", L_State_17_GiveItems;
- set QUEST_WG_state, 21;
+L_Next9:
+ set QUEST_WG_state, 21;
close;
L_State_17_NotEnoughItems:
@@ -546,8 +538,9 @@ L_State_17_GiveItems:
next;
menu
- "What is it?", -;
+ "What is it?", L_Next10;
+L_Next10:
mes "[Agostine, The Legendary Tailor]";
mes "\"How about I let you buy the dress off me?";
mes "This will allow you to have a fine dress and allow me to show the world what I'm capable of.";
@@ -566,9 +559,10 @@ L_State_17_ProposeBuyDress:
L_State_17_BuyDress:
menu
- "Wow that sounds great I'll take it!", -,
+ "Wow that sounds great I'll take it!", L_Next11,
"I'll think about it...", L_Close;
+L_Next11:
if (Zeny < @FINEDRESS_GP)
goto L_State_17_NoMoney;
getinventorylist;
diff --git a/world/map/npc/021-1/bakery.txt b/world/map/npc/021-1/bakery.txt
index 12c352bc..2a4fb127 100644
--- a/world/map/npc/021-1/bakery.txt
+++ b/world/map/npc/021-1/bakery.txt
@@ -16,4 +16,5 @@ OnTimer300000:
OnInit:
if (debug >= 2) end;
initnpctimer;
+ end;
}
diff --git a/world/map/npc/021-1/banu.txt b/world/map/npc/021-1/banu.txt
index 2bff70e2..6e5cc51b 100644
--- a/world/map/npc/021-1/banu.txt
+++ b/world/map/npc/021-1/banu.txt
@@ -20,9 +20,10 @@
mes "\"Ah, hello. You've come at just the right moment. The field work is hard and the sun is burning.";
mes "Would you mind refilling an old woman's Empty Bottle with water?\"";
menu
- "Sure!",-,
+ "Sure!",L_Next,
"Sorry, I'm busy.",L_Close;
+L_Next:
getinventorylist;
if (@inventorylist_count == 100)
goto L_FullInv;
@@ -59,8 +60,10 @@ L_Knife:
mes "[Banu]";
mes "\"Hello dear. Did you get the knife for me?\"";
menu
- "Yeah, here is it.",-,
+ "Yeah, here is it.",L_Next1,
"Not yet.",L_Close;
+
+L_Next1:
if (countitem("Knife") < 1)
goto L_NoKnife;
delitem "Knife", 1;
diff --git a/world/map/npc/021-1/eurni.txt b/world/map/npc/021-1/eurni.txt
index 8659c6cd..8983c596 100644
--- a/world/map/npc/021-1/eurni.txt
+++ b/world/map/npc/021-1/eurni.txt
@@ -18,8 +18,7 @@
next;
menu
"Please do, my dear...", L_Change,
- "Leave alone my family treasure!", -;
- close;
+ "Leave alone my family treasure!", L_Close;
L_Change:
if (Zeny < 10000)
@@ -37,4 +36,7 @@ L_NoMoney:
mes "[Eurni the Surgeon]";
mes "\"You don't have enough to pay for my services.\"";
close;
+
+L_Close:
+ close;
}
diff --git a/world/map/npc/021-1/hetchel.txt b/world/map/npc/021-1/hetchel.txt
index f4072c01..5023c06d 100644
--- a/world/map/npc/021-1/hetchel.txt
+++ b/world/map/npc/021-1/hetchel.txt
@@ -29,9 +29,7 @@
mes "\"Hello I am Hetchel, I weave fine textiles, what can I do for you?\"";
menu
"Sorry to bother, I'm just visiting.", L_end,
- "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", -;
- next;
- goto L_main_menu;
+ "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", L_main_menu;
L_WG_quest_not_done:
mes "[Hetchel the weaver]";
@@ -40,17 +38,18 @@ L_WG_quest_not_done:
mes "What can I do for you?\"";
menu
"Sorry to bother, I'm new to this country, just visting.", L_end,
- "What are you selling?", -;
- next;
+ "What are you selling?", L_main_menu;
L_main_menu:
mes "[Hetchel]";
mes "\"I have some silk sheets: double-elbow squares.\"";
menu
"I'm not interested at the moment, maybe later; thanks anyway.", L_end,
- "Can I buy some?", -;
-// "Do you have any silk robe I could buy?", L_robe,
+ "Can I buy some?", L_Next;
+// "Do you have a silk robe I could buy?", L_robe,
// "Goodbye.", L_end;
+
+L_Next:
mes "[Hetchel]";
mes "\"Sure but you need to provide raw materials.";
mes "I'll need " + @SHEET_COCOONS_NR +" silk cocoons per sheet,";
@@ -58,13 +57,15 @@ L_main_menu:
next;
if (countitem("SilkCocoon") == 0)
goto L_sheet_no_cocoon;
+ goto L_sheet_menu;
L_sheet_menu:
menu
- "I have what you asked for.", -,
+ "I have what you asked for.", L_Next1,
"Sorry I didn't pay attention enough, what do you need?", L_how_many_cocoons,
"Oops! Sorry, I'll come back soon with them.", L_end;
- next;
+
+L_Next1:
mes "[Hetchel]";
mes "\"How many would you like?\"";
input @SheetCount;
@@ -109,8 +110,9 @@ L_sheet_no_cocoon:
mes "\"You don't have any cocoon? I'm sorry I can't do anything for you.\"";
menu
"I'll seek for them.", L_end,
- "Where can I get cocoons?", -;
- next;
+ "Where can I get cocoons?", L_Next2;
+
+L_Next2:
mes "[Hetchel]";
mes "\"Silk cocoons come from Silkworms. Silkworms live in the woodland area around Hurnscald.";
mes "Silkworms like especially woods and dark areas. You can go there by ferry.\"";
@@ -135,6 +137,7 @@ L_zero_sheet:
L_TooMany:
mes "[Hetchel]";
mes "\"Your bag hasn't room enough. Store some things and come back.\"";
+ goto L_end;
L_end:
set @SHEET_COCOONS_NR, 0;
diff --git a/world/map/npc/021-1/hideandseek.txt b/world/map/npc/021-1/hideandseek.txt
index 5945c01c..0896f727 100644
--- a/world/map/npc/021-1/hideandseek.txt
+++ b/world/map/npc/021-1/hideandseek.txt
@@ -8,6 +8,8 @@
-|script|#hideandseekNTconfig|-1,
{
+ end;
+
OnInit:
set $@hideandseekNT_MASK, BYTE_0_MASK;
set $@hideandseekNT_SHIFT, BYTE_0_SHIFT;
@@ -40,14 +42,18 @@ OnInit:
mes "\"98... 99... 100!\"";
mes "She takes away her hands and looks up.";
menu
- "Hello, what are you doing?",-,
+ "Hello, what are you doing?",L_Next,
"(Leave)",L_Close;
+
+L_Next:
mes "[Ayasha]";
mes "\"I'm playing hide and seek with my friends!";
mes "Do you want to play with us?\"";
menu
- "Sure, sounds like fun.",-,
+ "Sure, sounds like fun.",L_Next1,
"I'm busy with more important things!",L_Close;
+
+L_Next1:
mes "[Ayasha]";
mes "\"Great! You can take my turn with searching. You need to find all five of my friends.";
mes "They're hiding somewhere in this part of the city, you don't have to pass an archway to find them. But they're allowed to hide on the rooftops.\"";
@@ -67,7 +73,9 @@ L_Reward:
getexp @EXP, 0;
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@hideandseekNT_ended;
menu
- "I think I need to do other things now.",-;
+ "I think I need to do other things now.",L_Next2;
+
+L_Next2:
mes "[Ayasha]";
mes "\"Oh, ok.";
mes "Have you already seen the bazaar? It's a very exciting place! I love the entertainer. She can make so many funny faces.\"";
@@ -99,13 +107,17 @@ L_Close:
mes "You see a kid hiding behind a box.";
menu
- "What are you doing there?",-,
+ "What are you doing there?",L_Next,
"(Leave)",L_Close;
+
+L_Next:
mes "[Latif]";
mes "\"Hiding. We're playing hide and seek. Don't say that is boring. It's fun.\"";
menu
"I agree, it's fun.",L_Agree,
- "Hide and seek? Lame.",-;
+ "Hide and seek? Lame.",L_Next1;
+
+L_Next1:
mes "[Latif]";
mes "\"My friend Vincent thinks so too. He doesn't want to join us playing. Do you know what he does instead?";
mes "He builds action figures out of Bug Legs! That is lame.\"";
@@ -211,8 +223,10 @@ L_Close:
mes "[Faris]";
mes "\"Oh, hi there. What are you doing here on the roof?\"";
menu
- "I'm just having a look around.",-,
- "It's nice place here, isn't it?",-;
+ "I'm just having a look around.",L_Next,
+ "It's nice place here, isn't it?",L_Next;
+
+L_Next:
mes "[Faris]";
mes "\"He, you're cool. I'm hiding here from Ayasha, we're playing hide and seek. This is the best hiding place ever.\"";
goto L_Close;
@@ -301,8 +315,10 @@ L_Close:
mes "You see a girl standing behind the building. She has a look of intense concentration on her face.";
menu
- "Hi, what are you doing there?",-,
+ "Hi, what are you doing there?",L_Next,
"(Leave)",L_Close;
+
+L_Next:
mes "[Ghada]";
mes "\"Oh, hello. I'm hiding. We're playing hide and seek.\"";
goto L_Close;
diff --git a/world/map/npc/021-1/imec.txt b/world/map/npc/021-1/imec.txt
index ee46d688..7a5eb975 100644
--- a/world/map/npc/021-1/imec.txt
+++ b/world/map/npc/021-1/imec.txt
@@ -5,6 +5,8 @@
-|script|#ImecShopConfig|-1,
{
+ end;
+
OnInit:
set $@ImecShopNT_MASK, 0x300;
set $@ImecShopNT_SHIFT, 8;
@@ -30,11 +32,15 @@ OnInit:
mes "[Imec]";
mes "\"You can do an errand for me. I just finished writing a petition to the Council about my shop.";
mes "If you bring it to the government building near the bazaar, I'll give you a small reward.\"";
+ goto L_Offer;
+
L_Offer:
menu
"What is in that government building and where is it?",L_Explain,
- "Ok, sounds good.",-,
+ "Ok, sounds good.",L_Next,
"No!",L_Close;
+
+L_Next:
mes "[Imec]";
mes "\"Very good. Here is the paper.\"";
mes "Imec gives you a sealed letter. You put it away in a pocket separated from your inventory, so it won't get lost.";
@@ -70,7 +76,9 @@ L_Return:
next;
mes "It seems Imec doesn't notice you anymore.";
menu
- "You mentioned a reward.",-;
+ "You mentioned a reward.",L_Next1;
+
+L_Next1:
mes "[Imec]";
mes "\"What? Ah, right. Here, have this.\"";
set Zeny, Zeny + @money;
@@ -79,6 +87,8 @@ L_Return:
next;
mes "\"Actually, you could be of further help to me.\"";
next;
+ goto L_Stingers;
+
L_Stingers:
mes "[Imec]";
set @dq_level, 10;
diff --git a/world/map/npc/021-1/north_shops.txt b/world/map/npc/021-1/north_shops.txt
index b7c2b65a..80e34433 100644
--- a/world/map/npc/021-1/north_shops.txt
+++ b/world/map/npc/021-1/north_shops.txt
@@ -8,6 +8,7 @@
021-1.gat,129,40,0|script|Well|400,
{
callfunc "WaterBottle";
+ end;
}
// An officer (for security)
diff --git a/world/map/npc/021-1/pauline.txt b/world/map/npc/021-1/pauline.txt
index b87e4db9..d28370c4 100644
--- a/world/map/npc/021-1/pauline.txt
+++ b/world/map/npc/021-1/pauline.txt
@@ -44,9 +44,11 @@ L_Magic:
mes "\"Ah. I see you are skilled in the Art of Astral Magic.\"";
mes "\"Who taught you?\"";
menu
- "I learnt it myself!", -,
+ "I learnt it myself!", L_Next,
"Sagatha is my teacher.", L_Sagatha,
"You must be mistaken.", L_Close;
+
+L_Next:
mes "\"You did? Not bad. I guess then there is nothing I can teach you. Or are you interested in sharing knowledge?\"";
menu
"Yes, please.", L_Spells,
@@ -85,7 +87,9 @@ L_Spells:
next;
menu
"Yes. I thought you had something new to tell. [Walk Away]", L_Close,
- "No, tell me more.", -;
+ "No, tell me more.", L_Next1;
+
+L_Next1:
mes "[Pauline]";
mes "\"Well I could only read the invocations. So I don't exactly know what kind of ingredients you are going to need.\"";
mes "\"The first one for the mouboo was " + getspellinvocation("summon-mouboo") + " and the one for the pinkie was " + getspellinvocation("summon-pinkie") +".\"";
@@ -105,15 +109,19 @@ L_Ingredients:
mes "\"Hello, have you found out what ingredients to use yet?\"";
menu
"Yes.", L_KnowIngredientsMouboo,
- "No.", -;
+ "No.", L_Next2;
+
+L_Next2:
mes "\"Okay. Come back as soon as you know.\"";
goto L_Close;
L_KnowIngredientsMouboo:
mes "\"Did you bring them?\"";
menu
- "Yes." , -,
+ "Yes." , L_Next3,
"No.", L_ComeBackLater;
+
+L_Next3:
mes "\"Then tell me the ingredients for the mouboo summoning spell and give them to me. Start with the first ingredient and then tell me the second one separately.\"";
next;
mes "This is case sensitive. Also do not enter whitespaces.";
@@ -132,7 +140,9 @@ L_KnowIngredientsMouboo:
mes "\"Do you want to give me these items?\"";
menu
"No.", L_ComeBackLater,
- "Yes.", -;
+ "Yes.", L_Next4;
+
+L_Next4:
delitem @pauline_ingredient1$, 1;
delitem @pauline_ingredient2$, 1;
mes "\"Okay let me try this.\"";
@@ -188,7 +198,9 @@ L_KnowIngredientsPinkie:
mes "\"Do you want to give me these items?\"";
menu
"No.", L_ComeBackLater,
- "Yes.", -;
+ "Yes.", L_Next5;
+
+L_Next5:
delitem @pauline_ingredient1$, 1;
delitem @pauline_ingredient2$, 1;
mes "\"Okay, let me try this.\"";
@@ -273,8 +285,10 @@ S_Update_Mask:
mes "Reset Quest State";
mes @pauline_state;
menu
- "Yes.", -,
+ "Yes.", L_Next,
"No.", L_Close;
+
+L_Next:
set @pauline_state, 0;
callsub S_Update_Mask;
mes "Done";
@@ -293,4 +307,5 @@ S_Update_Mask:
OnInit:
if (!debug)
disablenpc "PaulineDebug";
+ end;
}
diff --git a/world/map/npc/021-2/bakery.txt b/world/map/npc/021-2/bakery.txt
index 738c90c2..89fbc38d 100644
--- a/world/map/npc/021-2/bakery.txt
+++ b/world/map/npc/021-2/bakery.txt
@@ -11,6 +11,7 @@
// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 10) goto L_ChocMouboo;
// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 11) goto L_MakeChocMouboo;
// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 12) goto L_SeeBunny;
+ goto L_Begin;
L_Begin:
mes "[Riskim]";
@@ -50,8 +51,10 @@ L_lace_chococake:
next;
menu
"Thanks! Let me have a look around...", L_end,
- "Can you put this potion into a Chocolate Cake?", -,
+ "Can you put this potion into a Chocolate Cake?", L_Next,
"Goodbye!", L_end;
+
+L_Next:
mes "[Riskim]";
mes "";
mes "As you show Riskim the potion, he leans back, away from it.";
@@ -66,8 +69,10 @@ L_lace_chococake:
next;
menu
"I will get them for you.", L_end,
- "Here you are!", -,
+ "Here you are!", L_Continue,
"Maybe later.", L_end;
+
+L_Continue:
if (countitem("ChocolateBar") < 10)
goto L_lacking_ingredients;
if (countitem("MopoxCurePotion") < 1)
@@ -107,8 +112,10 @@ L_lace_cupcake:
next;
menu
"Thanks! Let me have a look around...", L_end,
- "Can you put this potion into an Orange Cupcake?", -,
+ "Can you put this potion into an Orange Cupcake?", L_More,
"Goodbye!", L_end;
+
+L_More:
mes "[Riskim]";
mes "";
mes "\"Orange Cupcakes? Oh dear... I'm sorry, but I have a very bad orange allergy.\"";
@@ -117,6 +124,7 @@ L_lace_cupcake:
mes "";
mes "\"Perhaps the Chef at Dimond's Cove can help you? We get all our cupcakes from him.\"";
next;
+ goto L_End;
L_End:
close;
@@ -127,16 +135,23 @@ L_ChocMouboo:
mes "\"Welcome to our bakery! Here you will find the best cakes in Tulimshar. And don't leave before you try one of our delicious Chocolate Pinkies!\"";
next;
menu
- "Excuse me, sir? Did you say Chocolate Pinkies?", -;
+ "Excuse me, sir? Did you say Chocolate Pinkies?", L_Next1;
+
+L_Next1:
mes "\"Yes! But there is no need to be alarmed, it is just plain chocolate molded in the shape of a small pinkie...\"";
next;
menu
- "Do you have one in the shape of a mouboo? The Easter Bunny needs one.", -;
+ "Do you have one in the shape of a mouboo? The Easter Bunny needs one.", L_Next2;
+
+L_Next2:
mes "\"The Easter Bunny? Interesting... I think I can help you make a Chocolate Mouboo.\"";
menu
"Nah, I decided not to do that stupid quest.", L_End,
- "I would really appreciate that!", -;
+ "I would really appreciate that!", L_SetEasterBit;
+
+L_SetEasterBit:
set QUEST_Easter11, 11;
+ goto L_MakeChocMouboo;
L_MakeChocMouboo:
mes "[Riskim]";
@@ -147,13 +162,15 @@ L_MakeChocMouboo:
mes "\"I will also need a Mouboo Figurine to hollow out and use as a mold.\"";
mes "\"Any mage should be able to make you one out of a log, if you ask.\"";
menu
- "I have everything you need.", -,
+ "I have everything you need.", L_HaveEverything,
"Ok, I will be back soon.", L_End,
"I changed my mind, forget about it.", L_End;
+L_HaveEverything:
if(countitem("ChocolateBar") < 5
|| countitem("MoubooFigurine") < 1)
goto L_EasterNotEnough;
+ goto L_EasterEnough;
L_EasterEnough:
getinventorylist;
diff --git a/world/map/npc/021-2/government_building.txt b/world/map/npc/021-2/government_building.txt
index 8dd0c240..7b39a821 100644
--- a/world/map/npc/021-2/government_building.txt
+++ b/world/map/npc/021-2/government_building.txt
@@ -6,6 +6,7 @@
mes "[Estard]";
mes "\"Hello what can I do for you?\"";
next;
+ goto L_main;
L_main:
if (getpartnerid2())
@@ -13,14 +14,12 @@ L_main:
menu
"I'm looking at getting married.", L_marry,
- "Nothing, I guess.", -;
- close;
+ "Nothing, I guess.", L_Close;
L_main_married:
menu
"I'd like a divorce.", L_divorce,
- "Nothing, I guess.", -;
- close;
+ "Nothing, I guess.", L_Close;
L_marry:
if (BaseLevel < WEDDING_MIN_LEVEL)
@@ -32,8 +31,7 @@ L_marry:
mes "\"Are you sure you want to get married? It'll cost " + WEDDING_FEE + " GP.\"";
menu
"Yes", L_marry_do,
- "No", -;
- close;
+ "No", L_Close;
L_marry_do:
callsub S_give_rings;
@@ -49,8 +47,7 @@ L_marry_too_young:
menu
"Can I at least get wedding rings?", L_get_rings,
- "Thanks anyways.", -;
- close;
+ "Thanks anyways.", L_Close;
L_marry_too_poor:
mes "[Estard]";
@@ -63,12 +60,11 @@ L_get_rings:
if (Zeny < WEDDING_FEE)
menu
- "Thanks anyways. I don't have enough with me.", -;
- if (Zeny >= WEDDING_FEE)
+ "Thanks anyways. I don't have enough with me.", L_Close;
+ //else
menu
"I'll buy a pair.", L_get_rings_pay,
- "Thanks anyways.", -;
- close;
+ "Thanks anyways.", L_Close;
L_get_rings_pay:
callsub S_give_rings;
@@ -88,8 +84,7 @@ L_divorce:
next;
menu
"I am sure I want it.", L_do_divorce,
- "I don't want it.", -;
- close;
+ "I don't want it.", L_Close;
L_do_divorce:
if (Zeny < @divorce_cost)
@@ -126,6 +121,9 @@ L_no_room_for_rings:
mes "\"You don't have enough room to carry these rings.\"";
close;
+L_Close:
+ close;
+
S_give_rings:
if (Zeny < WEDDING_FEE)
goto L_not_enough_money;
@@ -154,23 +152,21 @@ S_give_rings:
goto L_Base_Menu;
if (BaseLevel >= 10)
goto L_Can_Party;
+ goto L_Base_Menu;
L_Base_Menu:
menu
- "Nothing, I guess.", -;
- close;
+ "Nothing, I guess.", L_Close;
L_Can_Party:
menu
"I'd like to get a party permit.", L_Get_Party,
- "Nothing, I guess.", -;
- close;
+ "Nothing, I guess.", L_Close;
L_Can_Make_Party:
menu
"I'd like to get a party creator permit.", L_Get_Make_Party,
- "Nothing, I guess.", -;
- close;
+ "Nothing, I guess.", L_Close;
L_Get_Party:
mes "[Tathin]";
@@ -178,8 +174,7 @@ L_Get_Party:
next;
menu
"OK", L_Give_Party,
- "No thank you", -;
- close;
+ "No thank you", L_Close;
L_Give_Party:
if (Zeny < 10)
@@ -199,8 +194,7 @@ L_Get_Make_Party:
next;
menu
"OK", L_Give_Make_Party,
- "No thank you", -;
- close;
+ "No thank you", L_Close;
L_Give_Make_Party:
if (Zeny < 50)
@@ -215,6 +209,9 @@ L_NotEnoughMoney:
mes "[Tathin]";
mes "\"You don't have enough GP\"";
close;
+
+L_Close:
+ close;
}
// Guard
diff --git a/world/map/npc/021-2/heathin.txt b/world/map/npc/021-2/heathin.txt
index c01d2fd4..07ec1c6a 100644
--- a/world/map/npc/021-2/heathin.txt
+++ b/world/map/npc/021-2/heathin.txt
@@ -65,7 +65,6 @@ L_Heathin_Interested:
"Sure, I'll help!", L_Heathin_Help,
"I'd rather keep my gold.", L_Heathin_No,
"Can you repeat that again?", L_Heathin_Interested;
- close;
L_Heathin_Ring_Award:
if ( (Zeny < 100000)
@@ -114,7 +113,6 @@ L_Heathin_Terranite_Hood:
menu
"No, thank you. Maybe later.", L_Heathin_Terranite_No,
"Armor, you say? Definitely!", L_Heathin_Terranite_Yes;
- close;
L_Heathin_Terranite_No:
mes "[Heathin]";
@@ -241,7 +239,6 @@ L_Heathin_Terranite_Arrows:
menu
"No, thank you.", L_Heathin_Terranite_Arrows_No,
"Sure, I could use some arrows.", L_Heathin_Terranite_Arrows_Yes;
- close;
L_Heathin_Terranite_Arrows_No:
mes "[Heathin]";
@@ -290,7 +287,6 @@ L_Heathin_Terranite_Arrows_Trade:
menu
"No.", L_Heathin_Terranite_Arrows_Trade_No,
"Yes.", L_Heathin_Terranite_Arrows_Trade_Yes;
- close;
L_Heathin_Terranite_Arrows_Trade_No:
mes "[Heathin]";
diff --git a/world/map/npc/021-2/inya.txt b/world/map/npc/021-2/inya.txt
index 97424592..c448681d 100644
--- a/world/map/npc/021-2/inya.txt
+++ b/world/map/npc/021-2/inya.txt
@@ -14,7 +14,6 @@
"I'd like to remove a gem (500000 GP).", L_Inya_Remove_RingGem,
"I'd like to add a gem (1000000 GP).", L_Inya_Add_RingGem,
"Not interested.", L_Inya_NotInterested;
- close;
L_Inya_Wedding_Ring:
mes "[Inya]";
@@ -32,7 +31,6 @@ L_Inya_Remove_RingGem:
"Topaz.", L_Inya_Remove_Topaz,
"Amethyst.", L_Inya_Remove_Amethyst,
"I've changed my mind.", L_Inya_NotInterested;
- close;
L_Inya_Add_RingGem:
mes "[Inya]";
@@ -45,7 +43,6 @@ L_Inya_Add_RingGem:
"Topaz.", L_Inya_Add_Topaz,
"Amethyst.", L_Inya_Add_Amethyst,
"I've changed my mind.", L_Inya_NotInterested;
- close;
L_Inya_Remove_Diamond:
if ( (Zeny < 500000)
diff --git a/world/map/npc/021-2/kylian.txt b/world/map/npc/021-2/kylian.txt
index 5406f6c7..4e26b6dd 100644
--- a/world/map/npc/021-2/kylian.txt
+++ b/world/map/npc/021-2/kylian.txt
@@ -34,6 +34,8 @@
-|script|#businessmanNTconfig|-1,
{
+ end;
+
OnInit:
// Nibble 4
set $@knowYanisNT, 0x10000;
@@ -92,7 +94,9 @@ OnInit:
mes "\"Ah, are you the room service? I've some requests.\"";
menu
"Sure, what can I do for you?",L_Luggage,
- "No, I'm not!",-;
+ "No, I'm not!",L_Next;
+
+L_Next:
mes "[Kylian]";
mes "\"Too bad. Would you be interested in earning some quick money with some errands regardless?\"";
menu
@@ -113,8 +117,10 @@ L_Suitcase: // @state >= 1, but below 3
if (@state != 2)
goto L_Close;
menu
- "Here it is.",-,
+ "Here it is.",L_Continue,
"I'm on my way, don't worry.",L_Close;
+
+L_Continue:
if (countitem("LeatherSuitcase") < 1)
goto L_NoItem;
delitem "LeatherSuitcase", 1;
@@ -131,14 +137,18 @@ L_Suitcase: // @state >= 1, but below 3
mes "In case you don't like them, you could also bring them to the Tulimshar bakery. I heard they use them to make some special flour.\"";
getitem "Acorn", @acorn_amount;
next;
+ goto L_ShopLicense;
+
L_ShopLicense: // @state == 3
mes "[Kylian]";
mes "\"I'm a salesman and came to Tulimshar because I'm thinking about establishing a shop here. While I'm going through my papers, could you find out who I have to talk to about opening a shop in this city?\"";
if (!(QUEST_NorthTulimshar & $@knowYanisNT))
goto L_Close;
menu
- "You need to talk to Yanis in the government building.",-,
+ "You need to talk to Yanis in the government building.",L_GovBuild,
"I'll see what I can do.",L_Close;
+
+L_GovBuild:
set Zeny, Zeny + @license_money;
getexp @license_exp, 0;
set @state, 4;
@@ -148,6 +158,8 @@ L_ShopLicense: // @state == 3
mes "\"Ah, excellent. That's very helpful. Could you tell me how to get to that building?\"";
mes "You explain the way to the building.";
next;
+ goto L_LicenseDone;
+
L_LicenseDone: // the player didn't log out yet after telling about Yanis
mes "[Kylian]";
mes "\"I need to prepare my papers now. I might have some more questions later.\"";
@@ -159,8 +171,10 @@ L_SightSeeing: // @state == 4 and logged out sometime between getting to that st
if (!(QUEST_NorthTulimshar & $@knowWeellosNT))
goto L_Close;
menu
- "There is a very old historic building not far from here.",-,
+ "There is a very old historic building not far from here.",L_HistBuild,
"I don't know, but will have a look around.",L_Close;
+
+L_HistBuild:
set Zeny, Zeny + @sightseeing_money;
getexp @sightseeing_exp, 0;
set @state, 5;
@@ -169,19 +183,25 @@ L_SightSeeing: // @state == 4 and logged out sometime between getting to that st
mes "\"This sounds interesting. Please tell me the way.\"";
mes "You tell him how to get to the historic building.";
next;
+ goto L_Food;
+
L_Food: // @state == 5
mes "[Kylian]";
mes "\"While I'm out, I could also get something to eat. Maybe some typical dish for this region. Do you have a good suggestion for that?\"";
if (@bernard < 4) // didn't yet help Bernard to make his soup
goto L_Close;
menu
- "Bernard on the bazaar makes a great soup.",-,
+ "Bernard on the bazaar makes a great soup.",L_SoupBer,
"No idea, I'll try to find out.",L_Close;
+
+L_SoupBer:
set Zeny, Zeny + @food_money;
getexp @food_exp, 0;
set @state, 6;
callsub S_Update_Mask;
set @KylianNTSightSeeing, 1;
+ goto L_SightSeeingDone;
+
L_SightSeeingDone:
mes "[Kylian]";
mes "\"I'm going to see the historic building you told me about and try this local soup on the bazaar. Thank you for the suggestions.\"";
@@ -195,8 +215,10 @@ L_Casino: // @state == 6 and logged out sometime between getting to that state a
if (!(QUEST_NorthTulimshar & $@knowCasinoNT))
goto L_Close;
menu
- "Of course! The casino!",-,
+ "Of course! The casino!",L_CasinoFound,
"Not really.",L_Close;
+
+L_CasineFound:
set Zeny, Zeny + @casino_money;
getexp @casino_exp, 0;
set @state, 7;
@@ -205,14 +227,18 @@ L_Casino: // @state == 6 and logged out sometime between getting to that state a
mes "\"Oh, there's a casino in this city? That's a wonderful thing. Where can I find it?\"";
mes "You explain how to get to the casino.";
next;
+ goto L_Clothes;
+
L_Clothes: // @state == 7
mes "[Kylian]";
mes "\"I should get proper clothing before I go to the casino tonight. Do you know a reputable shop where clothing of high quality is sold?\"";
if (!(QUEST_NorthTulimshar & $@knowLatoyNT))
goto L_Close;
menu
- "At the market near the harbor district...",-,
+ "At the market near the harbor district...",L_HarborDistrict,
"Mh, I don't know.",L_Close;
+
+L_HarborDistrict:
set Zeny, Zeny + @clothes_money;
getexp @clothes_exp, 0;
set @state, 8;
@@ -241,6 +267,7 @@ L_DesertHat: // @state == 8
set @state, 9;
callsub S_Update_Mask;
next;
+ goto L_Done;
L_Done:
mes "[Kylian]";
diff --git a/world/map/npc/021-2/yanis.txt b/world/map/npc/021-2/yanis.txt
index 384c6d92..bde24ec3 100644
--- a/world/map/npc/021-2/yanis.txt
+++ b/world/map/npc/021-2/yanis.txt
@@ -13,8 +13,10 @@
menu
"Nothing right now.",L_BeforeClose;
menu
- "Imec asked me to bring this petition.",-,
+ "Imec asked me to bring this petition.",L_Next,
"Nothing right now.",L_BeforeClose;
+
+L_Next:
mes "[Yanis]";
mes "\"Imec? I see. Give it to me.\"";
mes "Yanis has a disapproving look on his face. He takes the letter and writes something on another paper.";
diff --git a/world/map/npc/022-1/adrian.txt b/world/map/npc/022-1/adrian.txt
index dd70914d..e4e1e2c6 100644
--- a/world/map/npc/022-1/adrian.txt
+++ b/world/map/npc/022-1/adrian.txt
@@ -16,7 +16,7 @@
"Yes, Kylian sent me to get his luggage.",L_Get,
"No.",L_No;
menu
- "No.",-;
+ "No.",L_No;
L_No:
mes "[Adrian]";
mes "\"Too bad. I want to go and drink a beer, but I have to wait here until all the luggage is picked up.\"";
diff --git a/world/map/npc/022-1/anwar.txt b/world/map/npc/022-1/anwar.txt
index b45b5fd2..9ac3091e 100644
--- a/world/map/npc/022-1/anwar.txt
+++ b/world/map/npc/022-1/anwar.txt
@@ -19,6 +19,8 @@
-|script|#magicfieldNTconfig|-1,
{
+ end;
+
OnInit:
set $@magicfieldNT_MASK, NIBBLE_3_MASK;
set $@magicfieldNT_SHIFT, NIBBLE_3_SHIFT;
@@ -48,8 +50,10 @@ OnInit:
mes "\"Hello. You look like one of those young people who come here to go on an adventure.";
mes "Would you be interested in doing some small errand for me?\"";
menu
- "Sure!",-,
+ "Sure!",L_Sure,
"I'm busy, sorry.",L_Close;
+
+L_Sure:
mes "[Anwar]";
mes "\"That's the spirit! Ok, I'm tired of spending most of my time working on this field. I heard the magicians at the magic school are researching ways to enhance the growth of plants with magic.\"";
next;
@@ -66,7 +70,9 @@ L_FirstTry: // @state >= 1 but below 5
if (@state != 4)
goto L_Close;
menu
- "Tinris gave me a magic fertilizer for your field, but he isn't sure if it works.",-;
+ "Tinris gave me a magic fertilizer for your field, but he isn't sure if it works.",L_Next;
+
+L_Next:
mes "[Anwar]";
mes "\"Really? Well, let's try it out!\"";
mes "He takes the fertilizer and starts to bespatter the field.";
@@ -85,7 +91,9 @@ L_SecondTry: // @state >= 5 but below 10
if (@state != 9)
goto L_Close;
menu
- "Here is another one. Eomie cast a spell on it.",-;
+ "Here is another one. Eomie cast a spell on it.",L_Continue;
+
+L_Continue:
mes "[Anwar]";
mes "\"Eomie? I heard she's amazingly skilled with nature magic. I'll try if this works better.\"";
mes "He takes the fertilizer and puts it on only a few plants, then waits a moment to see the result.";
@@ -97,13 +105,17 @@ L_SecondTry: // @state >= 5 but below 10
set @state, 10;
callsub S_Update_Mask;
next;
+ goto L_GiftMaterial;
+
L_GiftMaterial: // @state == 10
mes "[Anwar]";
mes "\"I want to show my gratitude to Tinris and Eomie. Can you help me once again? I would like to make some clothes for them and need " + @cloth_amount + " pieces of Cotton Cloth and " + @silk_amount + " Silk Cocoons.\"";
menu
- "I have it.",-,
+ "I have it.",L_GiveGiftStuff,
"Where can I get that?",L_Hint,
"I'll see what I can do.",L_Close;
+
+L_GiveGiftStuff:
getinventorylist;
if (@inventorylist_count == 100)
goto L_Full_Inv;
@@ -138,7 +150,9 @@ L_GiveTinris: // @state >= 11 but below 13
menu
"Not yet.",L_Close;
menu
- "Yes, he was very happy.",-;
+ "Yes, he was very happy.",L_Happy;
+
+L_Happy:
getinventorylist;
if (@inventorylist_count == 100)
goto L_Full_Inv;
@@ -159,7 +173,9 @@ L_GiveEomie: // @state >= 13 but below 15
menu
"Not yet.",L_Close;
menu
- "Yes. She asked me to thank you.",-;
+ "Yes. She asked me to thank you.",L_ThankYou;
+
+L_ThankYou:
mes "Anwar smiles.";
mes "[Anwar]";
mes "\"I'm so happy. Thank you so much for your help. I made this for you while you went to see Eomie.\"";
diff --git a/world/map/npc/022-1/dock.txt b/world/map/npc/022-1/dock.txt
index ed4c7695..2dfc9764 100644
--- a/world/map/npc/022-1/dock.txt
+++ b/world/map/npc/022-1/dock.txt
@@ -4,4 +4,5 @@
{
set @loc, DOCK_tulimshar;
callfunc "Ferry";
+ end;
}
diff --git a/world/map/npc/022-1/ferry_master.txt b/world/map/npc/022-1/ferry_master.txt
index a4ad69ba..099c75cc 100644
--- a/world/map/npc/022-1/ferry_master.txt
+++ b/world/map/npc/022-1/ferry_master.txt
@@ -7,11 +7,13 @@
next;
menu
"How do I use the ferry?", L_Explain,
- "Nothing I guess", -;
- close;
+ "Nothing I guess", L_Close;
L_Explain:
mes "[Ferry Master]";
mes "\"You'll step up on the dock and select your destination. Each destination has an associated price that you need to pay. You don't have to go anywhere. Choosing the current port will result in nothing.\"";
+ goto L_Close;
+
+L_Close:
close;
}
diff --git a/world/map/npc/022-1/npcs.txt b/world/map/npc/022-1/npcs.txt
index a5b815d8..8ce2eab9 100644
--- a/world/map/npc/022-1/npcs.txt
+++ b/world/map/npc/022-1/npcs.txt
@@ -11,7 +11,6 @@
menu
"Why does it pay well?",L_Marikel_1,
"Pfft! Working on the docks is for the birds.",L_Marikel_2;
- close;
L_Marikel_1:
mes "[" + @npcname$ + "]";
diff --git a/world/map/npc/024-1/ched.txt b/world/map/npc/024-1/ched.txt
index 2628f99a..c414cce5 100644
--- a/world/map/npc/024-1/ched.txt
+++ b/world/map/npc/024-1/ched.txt
@@ -10,13 +10,15 @@
next;
menu
"Well, good luck with that!", L_Done,
- "What spell is that?", -;
+ "What spell is that?", L_Next;
+
+L_Next:
mes "[Ched]";
mes "\"Well, I don't know what it's called... I took it out of `Timbleweed's Advanced Transmutations.' It seems awfully hard to cast, somehow.\"";
next;
mes "[Ched]";
mes "\"Well, the invocation is `" + getspellinvocation("merge-concentration-potions") + "'. You're supposed to just hold up the potions and cast it, and then they're supposed to merge.\"";
- close;
+ next;
mes "[Ched]";
mes "\"Maybe I should go back to `detect magic' until I can cast that one properly.\"";
close;
diff --git a/world/map/npc/024-1/david.txt b/world/map/npc/024-1/david.txt
index 14b8d848..e4f78a38 100644
--- a/world/map/npc/024-1/david.txt
+++ b/world/map/npc/024-1/david.txt
@@ -21,7 +21,9 @@ L_Set:
mes "\"Yes, I do. I am her teacher. Actually, that reminds me about her final exam... she didn't hand in her potion yet. Time is running out.\"";
menu
"A potion? Oh, uhm... Strange kind of exam. Bye.", L_No,
- "Right, I have her potion in my pocket. She asked me to bring it to you. Here it is.", -;
+ "Right, I have her potion in my pocket. She asked me to bring it to you. Here it is.", L_Next;
+
+L_Next:
mes "[David]";
mes "\"Let me see.\"";
set Rossy_Quest, 8;
@@ -48,5 +50,4 @@ L_FinalEnd:
mes "[David]";
mes "Well done! Thanks for finding Julia!";
close;
-
}
diff --git a/world/map/npc/024-1/eomie.txt b/world/map/npc/024-1/eomie.txt
index 47a7783f..1f62cdb1 100644
--- a/world/map/npc/024-1/eomie.txt
+++ b/world/map/npc/024-1/eomie.txt
@@ -46,26 +46,33 @@
if (@state != 7)
goto L_Close;
menu
- "I have this magic fertilizer from Tinris and need a spell cast on it.",-;
+ "I have this magic fertilizer from Tinris and need a spell cast on it.",L_Next;
+
+L_Next:
mes "[Eomie]";
mes "\"Oh? I see, that's a difficult task.";
mes "I'd be glad to help you, but unfortunately I can't interrupt the magic I use to keep this spot of grass alive.\"";
next;
mes "\"It's unusually hot at the moment, even for this desert area. It might have something to do with the aftereffects of the earthquake.\"";
menu
- "Isn't there any possibility?",-;
+ "Isn't there any possibility?",L_Continue;
+
+L_Continue:
mes "She hesitates.";
set @state, 8;
callsub S_Update_Mask;
+ goto L_GetStuff;
+
L_GetStuff: // @state == 8
mes "[Eomie]";
mes "\"I could try to interrupt my spells to be able to cast the spell on the fertilizer, but then I need to prepare the grass for this.";
mes "Bring me " + @grass_amount + " Grass Seeds, " + @water_amount + " Bottles of Water and " + @ice_amount + " Ice Cubes.\"";
menu
- "I have it.",-,
+ "I have it.",L_More,
"Where can I get Grass Seeds?",L_Hurnscald,
"How can I get Ice Cubes? We're in the desert!",L_Mine,
"Ok, I'll go and get it.",L_Close;
+L_More:
if ((countitem("GrassSeed") < @grass_amount) || (countitem("BottleOfWater") < @water_amount) || (countitem("IceCube") < @ice_amount))
goto L_NoItem;
delitem "GrassSeed", @grass_amount;
@@ -107,8 +114,10 @@ L_CastedSpell: // @state >= 9 but below 14
if (@state != 13)
goto L_Close;
menu
- "It was and he created this Silk Headband as a present for you.",-,
+ "It was and he created this Silk Headband as a present for you.",L_Present,
"(Mumble something and leave)",L_Close;
+
+L_Present:
if (countitem("SilkHeadband") < 1)
goto L_NoItem;
delitem "SilkHeadband", 1;
@@ -148,16 +157,23 @@ L_Grass:
mes "\"I maintain this little spot of grass in the desert.\"";
next;
menu
- "It looks beautiful. I wish I could find a Grass Liner like this.", -;
+ "It looks beautiful. I wish I could find a Grass Liner like this.", L_LookGrass;
+
+L_LookGrass:
mes "\"A Grass Liner? Last year I helped the Easter Bunny with a Grass Liner for his basket... It was really easy... Is this liner for yourself?\"";
next;
menu
- "No. Actually, it is for the Easter Bunny again...", -;
+ "No. Actually, it is for the Easter Bunny again...", L_NoBunny;
+
+L_NoBunny:
mes "\"Why didn't you say so before? I can help you make the Grass Liner for the basket if you wish.\"";
menu
- "I would really appreciate that!", -,
+ "I would really appreciate that!", L_WouldNot,
"Nah, I decided not to do that stupid quest.", L_End;
+
+L_WouldNot:
set QUEST_Easter11, 5;
+ goto L_MakeGrass;
L_MakeGrass:
mes "[Eomie]";
@@ -166,10 +182,11 @@ L_MakeGrass:
mes "\"I think 5 seeds should be enough.\"";
mes "\"Squirrels tend to pick those up as they gather food.\"";
menu
- "I have some seeds...", -,
+ "I have some seeds...", L_SomeSeeds,
"Ok, I will be back soon.", L_End,
"I changed my mind, forget about it.", L_End;
+L_SomeSeeds:
if(countitem("GrassSeed") < 5)
goto L_EasterNotEnough;
if(countitem("GrassSeed") >= 5)
diff --git a/world/map/npc/024-1/tinris.txt b/world/map/npc/024-1/tinris.txt
index 1dcb3ccd..857ca64c 100644
--- a/world/map/npc/024-1/tinris.txt
+++ b/world/map/npc/024-1/tinris.txt
@@ -49,7 +49,9 @@
if (@state != 1)
goto L_Close;
menu
- "The farmer Anwar sent me to ask for exactly that! Can you give me something for his field?",-;
+ "The farmer Anwar sent me to ask for exactly that! Can you give me something for his field?",L_Next;
+
+L_Next:
mes "[Tinris]";
mes "\"Well... in principle yes. I can try to prepare something for him. But...\"";
next;
@@ -65,8 +67,10 @@ L_Annual: // @state == 2
mes "[Tinris]";
mes "\"Hello, did you get the Chocolate Cake for my girlfriend? After that I can focus on creating some magic fertilizer for you.\"";
menu
- "Fresh from the bakery!",-,
+ "Fresh from the bakery!",L_FreshFrom,
"I didn't get it yet.",L_Close;
+
+L_FreshFrom:
if (countitem("ChocolateCake") < 1)
goto L_NoItem;
delitem "ChocolateCake", 1;
@@ -77,13 +81,17 @@ L_Annual: // @state == 2
mes "\"Oh, thank you! You saved me!";
mes "All right, now we can start with the magic fertilizer.\"";
next;
+ goto L_FirstTry;
+
L_FirstTry: // @state == 3
mes "[Tinris]";
mes "\"You need to bring me some ingredients.";
mes "The ingredients are " + @slime_amount1 + " Maggot Slimes, " + @bugleg_amount1 + " Bug Legs, " + @stinger_amount1 + " Scorpion Stingers and " + @ash_amount1 + " Piles of Ash.\"";
menu
- "I have it.",-,
+ "I have it.",L_Continue,
"Ok, I'll go and get it.",L_Close;
+
+L_Continue:
if ((countitem("MaggotSlime") < @slime_amount1) || (countitem("BugLeg") < @bugleg_amount1) || (countitem("ScorpionStinger") < @stinger_amount1) || (countitem("PileOfAsh") < @ash_amount1))
goto L_NoItem;
delitem "MaggotSlime", @slime_amount1;
@@ -107,16 +115,22 @@ L_FirstTryDone: // @state >= 4 but below 6
if (@state != 5)
goto L_Close;
menu
- "I did, the plants went brown and shriveled.",-;
+ "I did, the plants went brown and shriveled.",L_More;
+
+L_More:
set @state, 6;
callsub S_Update_Mask;
+ goto L_SecondTry;
+
L_SecondTry: // @state == 6
mes "[Tinris]";
mes "\"Oh no! All right, we need to do another try.";
mes "Bring me " + @slime_amount2 + " Maggot Slimes, " + @bugleg_amount2 + " Bug Legs, " + @stinger_amount2 + " Scorpion Stingers, " + @ash_amount2 + " Piles of Ash and " + @cactusp_amount + " Cactus Potion.\"";
menu
- "Here it is.",-,
+ "Here it is.",L_HereItIs,
"Ok, I'll go and get it.",L_Close;
+
+L_HereItIs:
if ((countitem("MaggotSlime") < @slime_amount2) || (countitem("BugLeg") < @bugleg_amount2) || (countitem("ScorpionStinger") < @stinger_amount2) || (countitem("PileOfAsh") < @ash_amount2) || (countitem("CactusPotion") < @cactusp_amount))
goto L_NoItem;
delitem "MaggotSlime", @slime_amount2;
@@ -153,8 +167,10 @@ L_GiveGift: // @state == 11
mes "[Tinris]";
mes "\"Ah, did Anwar try the new fertilizer?\"";
menu
- "Yes, it works great and he asked me to give you this Green V-Neck Sweater he made.",-,
+ "Yes, it works great and he asked me to give you this Green V-Neck Sweater he made.",L_ItWorksGreat,
"Not yet.",L_Close;
+
+L_ItWorksGreat:
if (countitem("GreenVNeckSweater") < 1)
goto L_NoItem;
delitem "GreenVNeckSweater", 1;
diff --git a/world/map/npc/024-1/tondar.txt b/world/map/npc/024-1/tondar.txt
index 7252b476..21957807 100644
--- a/world/map/npc/024-1/tondar.txt
+++ b/world/map/npc/024-1/tondar.txt
@@ -6,7 +6,7 @@
mes "\"We're not accepting any new students right now.\"";
if (getskilllv(SKILL_MAGIC) > 0)
goto L_may_ask;
- close;
+ goto L_end;
L_may_ask:
next;
@@ -14,9 +14,8 @@ L_may_ask:
"Can you teach me a spell?", L_askspell,
"Do you have a magic library?", L_library,
"Are you sure? I can pay well...", L_nopay,
- "That's unfortunate.", -,
- "Goodbye, then.", -;
- close;
+ "That's unfortunate.", L_end,
+ "Goodbye, then.", L_end;
L_library:
mes "[Tondar]";
@@ -24,7 +23,9 @@ L_library:
next;
menu
"Thank you, and goodbye.", L_end,
- "Nobody else is allowed inside?", -;
+ "Nobody else is allowed inside?", L_Next;
+
+L_Next:
mes "[Tondar]";
mes "\"Well, it is possible to get a special permit from the headmaster. But he is currently on sabbatical.\"";
close;
@@ -48,6 +49,7 @@ L_nopay:
mes "[Tondar]";
mes "The wizard frowns angrily.";
mes "\"Do not tempt me to teach you a different kind of lesson, young one! Begone!\"";
+ goto L_end;
L_end:
close;
diff --git a/world/map/npc/024-2/tyer_trigger.txt b/world/map/npc/024-2/tyer_trigger.txt
index 9a1a8c27..353dea16 100644
--- a/world/map/npc/024-2/tyer_trigger.txt
+++ b/world/map/npc/024-2/tyer_trigger.txt
@@ -10,8 +10,7 @@
menu
"What do you mean I'm too young to go in there?", L_Explain,
- "Ah, right.", -;
- close;
+ "Ah, right.", L_Close;
L_Explain:
mes "[Tyer]";
@@ -20,5 +19,8 @@ L_Explain:
mes "[Tyer]";
mes "\"That barrier was made to keep those that are too young out.\"";
+ goto L_Close;
+
+L_Close:
close;
}
diff --git a/world/map/npc/025-1/barrier.txt b/world/map/npc/025-1/barrier.txt
index 619ce0d7..a4a0565b 100644
--- a/world/map/npc/025-1/barrier.txt
+++ b/world/map/npc/025-1/barrier.txt
@@ -5,6 +5,7 @@
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.";
+ goto L_Warp;
L_Warp:
warp "025-3.gat", 112, 97;
diff --git a/world/map/npc/025-1/rossy.txt b/world/map/npc/025-1/rossy.txt
index af57e5b1..f0332f95 100644
--- a/world/map/npc/025-1/rossy.txt
+++ b/world/map/npc/025-1/rossy.txt
@@ -41,15 +41,19 @@
close;
next;
menu
- "Hey, hey... Why are you crying? Are you hurt?", -,
+ "Hey, hey... Why are you crying? Are you hurt?", L_Next,
"Sorry kid, I don't have time to play with children.", L_No;
+
+L_Next:
mes "[Young Girl]";
mes "\"No. I'm crying because I lost all my fruits. My sister and I were collecting some near Dimond's Cove, but then I stumbled on a giant snail and it attacked us!";
next;
mes "But we were lucky, because the snail is really slow and we ran away from it. Julia ran to the left and I ran to the right. The snail got pretty confused, because we are identical twins. The problem is that I dropped the basket full of fruits on the ground and that evil snail ate them all! And now I can't find Julia to help me collect more fruits.\"";
next;
menu
- "Did you say Julia? I talked to you mother. She is very worried about you.", -;
+ "Did you say Julia? I talked to you mother. She is very worried about you.", L_SheWorried;
+
+L_SheWorried:
mes "[Rossy]";
mes "\"Really? But she let us play in the woods. There is no reason to be worried. Unless...\"";
next;
@@ -59,8 +63,10 @@
mes "\"Could you do me a favor? Please, tell my mother we are alright. There is.. uh... there is no reason to worry about us.\"";
next;
menu
- "Ok, if you say so.", -,
+ "Ok, if you say so.", L_SaySo,
"Sorry, I have no time for this.", L_No;
+
+L_SaySo:
mes "[Rossy]";
mes "\"Thank you very much!\"";
set Rossy_Quest, 2;
@@ -85,8 +91,10 @@ L_Check:
next;
menu
"That is no problem for me. Just wait and I will come back with the cherries.", L_No,
- "Hey, I have some cherries in my backpack!", -,
+ "Hey, I have some cherries in my backpack!", L_HaveSomeCherries,
"You should get them yourself.", L_No;
+
+L_HaveSomeCherries:
if(countitem("Cherry") < @Cherry_Amount)
goto L_Get_Cherry;
mes "[Rossy]";
@@ -118,7 +126,9 @@ L_Let:
L_Let2:
mes "The little girl grabs the piece of paper and reads it quickly. Her face turns pale.";
menu
- "What does it say?", -;
+ "What does it say?", L_PaperSays;
+
+L_PaperSays:
mes "[Rossy]";
mes "\"Oh no, I completely forgot! My magic school exam! I need to make a potion and give it to my teacher today! But I haven't found Julia yet and I don't even have any of the ingredients required. Could you get them for me, please?\"";
next;
@@ -176,7 +186,9 @@ L_Donet:
&& countitem("RedRose") >= @RedRose_Amount)
goto L_RG;
menu
- "David took your potion and he tested it in front of me. It worked perfectly!", -;
+ "David took your potion and he tested it in front of me. It worked perfectly!", L_DavidPotion;
+
+L_DavidPotion:
mes "[Rossy]";
mes "\"Yay! Phew... That was close, I almost forgot about my exam. Please, tell my mother about it. I am sure she will be proud of me.\"";
close;
@@ -186,14 +198,18 @@ L_RG:
goto L_No;
delitem "RedRose", @RedRose_Amount;
menu
- "Your mother was so happy that she asked me to bring you these flowers.", -;
+ "Your mother was so happy that she asked me to bring you these flowers.", L_MotherFlowers;
+
+L_MotherFlowers:
mes "[Rossy]";
mes "\"How nice!\"";
next;
mes "Rossy takes the flowers from your hands and suddenly throws them on the ground. She begins sneezing.";
set Rossy_Quest, 11;
menu
- "I presume you don't like roses, right?", -;
+ "I presume you don't like roses, right?", L_LikeRoses;
+
+L_LikeRoses:
mes "[Rossy]";
mes "\"I am allergic to roses, my mother should already know that!\"";
close;
@@ -226,7 +242,9 @@ L_Best:
mes "\"Thank you "+ strcharinfo(0) +", you helped me so much!\"";
next;
menu
- "Did you find your sister? I am starting to get worried too.", -;
+ "Did you find your sister? I am starting to get worried too.", L_FindMySister;
+
+L_FindMySister:
mes "\"I think I have an idea where she might be. Come back in a few minutes, I will tell you if she is ok.\"";
set Rossy_Quest, 14;
close;
diff --git a/world/map/npc/025-3/barriers.txt b/world/map/npc/025-3/barriers.txt
index 773b3571..7e452316 100644
--- a/world/map/npc/025-3/barriers.txt
+++ b/world/map/npc/025-3/barriers.txt
@@ -12,6 +12,7 @@
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave1, 1;
@@ -138,6 +139,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave2, 1;
@@ -263,6 +265,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave3, 1;
@@ -388,6 +391,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave4, 1;
@@ -513,6 +517,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave5, 1;
@@ -638,6 +643,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave6, 1;
@@ -763,6 +769,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave7, 1;
@@ -888,6 +895,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave8, 1;
@@ -1013,6 +1021,7 @@ L_AlreadyClean:
goto L_AlreadyDone;
if (Rossy_Quest < 15)
goto L_Block;
+ goto L_StartFight;
L_StartFight:
set $@battlecave9, 1;
diff --git a/world/map/npc/025-4/battlecaves.txt b/world/map/npc/025-4/battlecaves.txt
index b3d69f3b..18f32602 100644
--- a/world/map/npc/025-4/battlecaves.txt
+++ b/world/map/npc/025-4/battlecaves.txt
@@ -12,6 +12,7 @@
goto L_Cheat;
if ($@battlecave1 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -20,14 +21,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave1, 2;
+ goto L_Summon;
L_Summon:
set $@cave1_loop, $@cave1_loop + 1;
@@ -100,6 +104,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave2 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -108,14 +113,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave2, 2;
+ goto L_Summon;
L_Summon:
set $@cave2_loop, $@cave2_loop + 1;
@@ -186,6 +194,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave3 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -194,14 +203,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave3, 2;
+ goto L_Summon;
L_Summon:
set $@cave3_loop, $@cave3_loop + 1;
@@ -273,6 +285,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave4 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -281,14 +294,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave4, 2;
+ goto L_Summon;
L_Summon:
set $@cave4_loop, $@cave4_loop + 1;
@@ -363,6 +379,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave5 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -371,14 +388,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave5, 2;
+ goto L_Summon;
L_Summon:
set $@cave5_loop, $@cave5_loop + 1;
@@ -453,6 +473,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave6 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -461,14 +482,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave6, 2;
+ goto L_Summon;
L_Summon:
set $@cave6_loop, $@cave6_loop + 1;
@@ -543,6 +567,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave7 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -551,14 +576,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave7, 2;
+ goto L_Summon;
L_Summon:
set $@cave7_loop, $@cave7_loop + 1;
@@ -635,6 +663,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave8 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -643,14 +672,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave8, 2;
+ goto L_Summon;
L_Summon:
set $@cave8_loop, $@cave8_loop + 1;
@@ -727,6 +759,7 @@ L_Done:
goto L_Cheat;
if ($@battlecave9 == 1)
goto L_Start;
+ goto L_Cheat;
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
@@ -735,14 +768,17 @@ L_Cheat:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave9, 2;
+ goto L_Summon;
L_Summon:
set $@cave9_loop, $@cave9_loop + 1;
@@ -823,14 +859,17 @@ L_Done:
L_Start:
menu
- "Place a root at the center of the energy source.", -,
+ "Place a root at the center of the energy source.", L_PlaceCenter,
"I am not prepared yet!", L_Close;
+
+L_PlaceCenter:
if ((countitem("Root")<1))
goto L_no_root;
close2;
delitem "Root", 1;
message strcharinfo(0), "As you place the root on the energy source, earth monsters seem to emerge from the ground.";
set $@battlecave10, 2;
+ goto L_Summon;
L_Summon:
set $@cave10_loop, $@cave10_loop + 1;
diff --git a/world/map/npc/025-4/clauquer.txt b/world/map/npc/025-4/clauquer.txt
index 71a3dd4f..24861f4e 100644
--- a/world/map/npc/025-4/clauquer.txt
+++ b/world/map/npc/025-4/clauquer.txt
@@ -6,6 +6,7 @@
if (Rossy_Quest == 15) goto L_Hmmm;
if (Rossy_Quest == 14) goto L_Help;
if (Rossy_Quest <= 13) goto L_Huh;
+ goto L_Help;
L_Help:
mes "[Clauquer]";
@@ -14,18 +15,24 @@ L_Help:
mes "\"Don't answer, I know you are looking for someone... A little girl, is that right?\"";
next;
menu
- "I must admit you're right, but how come you...", -,
+ "I must admit you're right, but how come you...", L_LittleGirl,
"I'm not lost and I don't need help, bye.", L_No;
+
+L_LittleGirl:
mes "[Clauquer]";
mes "\"How do I know you're looking for her? Well, because I am a very good observer. I know you were helping her family. Besides, I saw the little girl. I also heard her. She screamed, and probably still screams like hell. Moreover, I don't think you would enter these caves just for fun!\"";
next;
menu
- "Of course not.", -;
+ "Of course not.", L_Next;
+
+L_Next:
mes "[Clauquer]";
mes "\"I can see that you really want to save the little girl. She is trapped in a place inside one of these caves, protected by a magic barrier created by a fey spirit. To save her, you have to annulate the energy sources of this barrier. They are located in 10 different spots, each one in a different cave.\"";
next;
menu
- "But how can I annulate this barrier?", -;
+ "But how can I annulate this barrier?", L_ButBarrier;
+
+L_ButBarrier:
mes "\"It is simple, you just have to place a root on the exact center of the energy source. Once you do this, its entire power will transmute into some terrible earth monsters. If you defeat them, this source of energy will be close to nothing and the barrier will be weaker.\"";
next;
mes "\"If my observations are correct, the girl is trapped in a cave protected by a barrier fed by 9 different power sources. And inside this cave, there is another barrier, fed by a single, but very strong, power source. The girl is inside that cave, protected by that strong barrier.\"";
@@ -35,7 +42,7 @@ L_Help:
mes "\"Now I should tell you more about how that little girl got into that cave and warn you about what you are going to face there...\"";
next;
menu
- "Please go on.", -;
+ "Please go on.", L_Advice;
L_Advice:
mes "[Clauquer]";
@@ -81,10 +88,11 @@ L_Hmmm:
mes "\"You already know everything about these caves. You don't need me anymore to find the little girl.\"";
next;
menu
- "But please, I really need your help!", -,
+ "But please, I really need your help!", L_NeedYourHelp,
"Oh, so many caves! Do you know how many are still left?", L_Feedback,
"You're right, I don't need your help!", L_No;
- next;
+
+L_NeedYourHelp:
mes "\"Ok, if you insist... But I can only repeat what I already said.\"";
goto L_Advice;
diff --git a/world/map/npc/025-4/julia.txt b/world/map/npc/025-4/julia.txt
index 1f8671b1..6a93285b 100644
--- a/world/map/npc/025-4/julia.txt
+++ b/world/map/npc/025-4/julia.txt
@@ -7,13 +7,16 @@
if (Rossy_Quest > 16 || FLAGS & FLAG_ROSSI_COMPLETED) goto L_End;
if (Rossy_Quest == 16) goto L_Done;
if (Rossy_Quest <= 15) goto L_Hmmm;
+ goto L_Done;
L_Done:
mes "[Julia]";
mes "\"I heard some battle noises a few minutes ago. Are you here to save me?\"";
next;
menu
- "Of course I'm here to save you, Rossy sent me here!", -;
+ "Of course I'm here to save you, Rossy sent me here!", L_Next;
+
+L_Next:
mes "\"Rossy? My twin sister? I knew she was going to look for me. Thank you so much, here is a present for you.\"";
getinventorylist;
if (@inventorylist_count == 100)
diff --git a/world/map/npc/026-1/munro.txt b/world/map/npc/026-1/munro.txt
index 38909113..02fdccb6 100644
--- a/world/map/npc/026-1/munro.txt
+++ b/world/map/npc/026-1/munro.txt
@@ -10,7 +10,9 @@
mes "\"Hey dude, what's that on your face? It's creeping me out!\"";
menu
"There is nothing on my face..", L_Nothing,
- "What, This skin?",-;
+ "What, This skin?",L_ThisSkin;
+
+L_ThisSkin:
mes "[Munro]";
mes "\"Skin? Whoh far-out man.. This must be that weirdo place my brother Parua told me about..\"";
next;
@@ -27,7 +29,6 @@
next;
mes "[Munro]";
mes "\"I have a lot of these man.. a LOT. Take all you want man.. Just remember they only work when I'm around to power them. Freaky-deaky skull power you know?\"";
- close;
goto L_Exit;
L_Nothing:
@@ -68,6 +69,7 @@ L_enablemunro:
L_disablemunro:
disablenpc "Munro";
+ goto L_End;
L_End:
setnpctimer 0;
@@ -84,6 +86,7 @@ function|script|CheckMunro|,
goto L_Return;
callfunc "UnequipLater";
+ goto L_Return;
L_Return:
return;
diff --git a/world/map/npc/027-1/golbenez.txt b/world/map/npc/027-1/golbenez.txt
index 7c1956c6..35980b2f 100644
--- a/world/map/npc/027-1/golbenez.txt
+++ b/world/map/npc/027-1/golbenez.txt
@@ -9,8 +9,10 @@
goto L_Weak;
mes "\"I will bring you there for a small fee of " + @fee + "GP.\"";
menu
- "What? You already got so much money!",-,
+ "What? You already got so much money!",L_SoMuchSwag,
"Ok, bring me there.",L_Warp;
+
+L_SoMuchSwag:
mes "[Golbenez]";
mes "\"Come back when you've changed your mind. It's a wonderful place.\"";
close;
diff --git a/world/map/npc/027-1/monsters.txt b/world/map/npc/027-1/monsters.txt
index 4b6fdfba..6681027e 100644
--- a/world/map/npc/027-1/monsters.txt
+++ b/world/map/npc/027-1/monsters.txt
@@ -8,6 +8,8 @@
027-1.gat,0,0,0|script|specialMob027-1|-1,
{
+ end;
+
On1036:
set @mobID, 1036;
callsub _MOBCOUNT_ZOMBIES;
@@ -66,5 +68,4 @@ S_Update_Mask:
(QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
| (@state << @Graveyard_Inn_SHIFT);
return;
- end;
}
diff --git a/world/map/npc/027-2/caretaker.txt b/world/map/npc/027-2/caretaker.txt
index 7ed0a665..2234ffc5 100644
--- a/world/map/npc/027-2/caretaker.txt
+++ b/world/map/npc/027-2/caretaker.txt
@@ -15,8 +15,7 @@
next;
menu
"And what are you?", L_Who,
- "That's right, so move and let me kill that demon behind you.", -;
- close;
+ "That's right, so move and let me kill that demon behind you.", L_Close;
L_Who:
mes "[Caretaker]";
@@ -24,7 +23,9 @@ L_Who:
mes "Now, I care only for my wife. I watch over her... make sure that nobody ever does her harm.\"";
next;
menu
- "You guard her corpse day and night?", -;
+ "You guard her corpse day and night?", L_WatchCorpse;
+
+L_WatchCorpse:
mes "[Caretaker]";
mes "\"I am bound to this wretched place by the very same spell that was cast to keep the undead from leaving. Until the day that this cemetery is free from its curse, I shall remain within these gates.\"";
set QUEST_Graveyard_Caretaker, 1;
@@ -38,8 +39,7 @@ L_Return_Dialog:
menu
"What's the favor?", L_Favor,
"I'm sure I can, for a price.", L_Favor,
- "Sorry, I am busy.", -;
- close;
+ "Sorry, I am busy.", L_Close;
L_Favor:
mes "[Caretaker]";
@@ -50,8 +50,7 @@ L_Favor:
menu
"I will take it to her.", L_Receive,
"I will help you. Where can I find your daughter?", L_Receive,
- "Sorry, but I am too busy.", -;
- close;
+ "Sorry, but I am too busy.", L_Close;
L_Receive:
set QUEST_Graveyard_Caretaker, 2;
@@ -62,6 +61,7 @@ L_Receive:
L_Location:
next;
+ goto L_Location_Real;
L_Location_Real:
mes "[Caretaker]";
@@ -73,17 +73,18 @@ L_Has_Letter:
mes "\"Have you found my daughter?\"";
next;
menu
- "Not yet.", -,
- "I'll get there when I get there.", -,
+ "Not yet.", L_Close,
+ "I'll get there when I get there.", L_Close,
"Where did you say I could find her?", L_Location_Real;
- close;
L_Delivered_Letter:
mes "[Caretaker]";
mes "\"Have you found my daughter?\"";
next;
menu
- "Yes.", -;
+ "Yes.", L_Next;
+
+L_Next:
mes "[Caretaker]";
mes "\"Thank you for delivering my letter.\"";
set QUEST_Graveyard_Caretaker, 4;
@@ -95,8 +96,7 @@ L_Give_New_Letter:
next;
menu
"Sure.", L_Give_New_Letter_Real,
- "I'm too busy right now.", -;
- close;
+ "I'm too busy right now.", L_Close;
L_Give_New_Letter_Real:
set QUEST_Graveyard_Caretaker, 5;
diff --git a/world/map/npc/027-2/cerhan.txt b/world/map/npc/027-2/cerhan.txt
index ec860ca4..fa6c9ebc 100644
--- a/world/map/npc/027-2/cerhan.txt
+++ b/world/map/npc/027-2/cerhan.txt
@@ -7,8 +7,7 @@
next;
menu
"That's true. What are you doing here?",L_Story,
- "Yes, this place is really strange. I'm going to have another look around.",-;
- goto L_Close;
+ "Yes, this place is really strange. I'm going to have another look around.",L_Close;
L_Story:
mes "[Cerhan]";
@@ -19,7 +18,10 @@ L_Story:
if (countitem("MylarinDust") > 0)
menu
"Do you know something about 'Mylarin Dust'?", L_Mylarin,
- "Good luck with that.",-;
+ "Good luck with that.",L_GoodLuckWith;
+ goto L_GoodLuckWith;
+
+L_GoodLuckWith:
mes "[Cerhan]";
mes "\"If you're interested in weapons and armor, you may want to come back later.\"";
goto L_Close;
diff --git a/world/map/npc/027-2/crying_child.txt b/world/map/npc/027-2/crying_child.txt
index a2eedf80..d84432cc 100644
--- a/world/map/npc/027-2/crying_child.txt
+++ b/world/map/npc/027-2/crying_child.txt
@@ -30,6 +30,7 @@
if (@state == 2) goto L_return1;
if (@state == 1) goto L_return;
if (BaseLevel >= @minLevel) goto L_intro;
+ goto L_cry;
L_cry:
mes "[Crying Child]";
@@ -44,21 +45,29 @@ L_intro:
next;
mes "You bend your knees near the child, trying to gain his confidence and ask why he is crying. But looking closely, you are surprised to see that his skin color is an awful, cadaveric grey...";
menu
- "Calm down kid, what happened?",-,
+ "Calm down kid, what happened?",L_WhatHappen,
"Leave the kid alone.",L_Close;
+
+L_WhatHappen:
mes "[Crying Child]";
mes "\"Oh, what? Who are you "+@madamsir$+", what are you doing here?\"";
next;
menu
- "My name is "+strcharinfo(0)+". I heard you cry and decided to check if you needed any help.",-;
+ "My name is "+strcharinfo(0)+". I heard you cry and decided to check if you needed any help.",L_MyNameIs;
+
+L_MyNameIs:
mes "The child looks at you from head to toe and says: \"" +@madamsir$+ ", aren't you scared of me?\"";
next;
menu
- "No... Why would I be scared of you?",-;
+ "No... Why would I be scared of you?",L_NotScaredOf;
+
+L_NotScaredOf:
mes "[Crying Child]";
mes "\"I am, you know... dead. Like Mom and Dad, and a lot of other people in this inn... But most of them don't like to talk about it.\"";
menu
- "You are a brave and smart kid... I have nothing to be afraid of.",-;
+ "You are a brave and smart kid... I have nothing to be afraid of.",L_BraveSmart;
+
+L_BraveSmart:
mes "[Crying Child]";
mes "\"It's nice to talk to you. I don't have any friends and Mom is always sad and Dad is always angry about something I don't know... and... Did you see the man in the room next to me? The one with horns? Oh, I don't like him! \"";
next;
@@ -69,7 +78,9 @@ L_intro:
mes "\"You asked why I was crying. My problem is... I don't know what to do... My dad will be so angry with me... He used to be very nice, but now... if you do something wrong... he... Waaaaa!\"";
next;
menu
- "There, there. Don't cry... What did you do?",-;
+ "There, there. Don't cry... What did you do?",L_DontCryWhat;
+
+L_DontCryWhat:
mes "[Aldred]";
mes "\"Umm... I was looking at my parents' stuff and I found this funny thing! It looked like a normal ring, but with a round empty space... I thought it would be fun to take it with me and maybe look for a stone or a gem to fit into the empty space. But I... I lost it...\"";
next;
@@ -78,8 +89,10 @@ L_intro:
mes "\"I think it was something very bad, because, after all that, I woke up the way I am now and I couldn't find the ring in my pocket. Oh, and my parents are acting like they're not themselves. I don't know what happened, maybe it was my fault... I shouldn't have played with that ring... \"";
next;
menu
- "Don't worry, I will look around. Maybe I can find it for you...",-,
+ "Don't worry, I will look around. Maybe I can find it for you...",L_DontWorryFind,
"Hey, you messed up. Deal with it.",L_Close;
+
+L_DontWorryFind:
mes "[Aldred]";
mes "\"Thank you " +strcharinfo(0)+"! Find it for me, pleeeease! Oh, and don't tell my parents that I lost their ring, okay?\"";
set @state, 1;
@@ -94,17 +107,23 @@ L_return:
L_return1:
menu
- "Hi Aldred. I found the ring!",-;
+ "Hi Aldred. I found the ring!",L_RingFoundHere;
+
+L_RingFoundHere:
mes "[Aldred]";
mes "\"Great! You're the best! Where did you find it?\"";
next;
menu
- "It was easy, I found it on one of the monsters outside.",-;
+ "It was easy, I found it on one of the monsters outside.",L_RingMonstersOut;
+
+L_RingMonstersOut:
mes "[Aldred]";
mes "\"Ohh.. a monster? It must've been a nice monster since it returned it so easily to you!\"";
next;
menu
- "Err... kind of...",-;
+ "Err... kind of...",L_ErrKindOf;
+
+L_ErrKindOf:
mes "[Aldred]";
mes "\"Now, I'll put this thing back in its proper place... Thank you!\"";
set @state, 3;
@@ -116,13 +135,17 @@ L_return2:
mes "\"Hi "+strcharinfo(0)+ "! I was thinking... you were sooo nice helping me find the ring... I think I should give you a gift, but I'm just a dead kid, I have nothing to give you!\"";
next;
menu
- "Don't worry, you don't need to give me anything...",-;
+ "Don't worry, you don't need to give me anything...",L_GiveMeAnything;
+
+L_GiveMeAnything:
mes "[Aldred]";
mes "\"Are you sure? That's why you're so great! But hey, I have an idea. What if you talk to my parents about this thing? If it's not important or valuable, I don't think it would be a problem to let you keep it. And I really want to know if they're acting all weird because I lost it. Would you do this for me?\"";
next;
menu
- "Sounds interesting... But who are your parents?",-,
+ "Sounds interesting... But who are your parents?",L_WhereParents,
"Bad idea, it will only bring more problems...",L_Close;
+
+L_WhereParents:
set @state, 4;
callsub S_Update_Mask;
mes "[Aldred]";
@@ -139,20 +162,28 @@ L_return3:
L_return4:
menu
- "Hi, I talked to your parents.",-;
+ "Hi, I talked to your parents.",L_TalkParents;
+
+L_TalkParents:
mes "[Aldred]";
mes "\"Really? What did my father say about it?\"";
menu
- "He said it's just a cheap ring. And it doesn't belong to him.",-;
+ "He said it's just a cheap ring. And it doesn't belong to him.",L_JustCheapRing;
+
+L_JustCheapRing:
mes "[Aldred]";
mes "\"And what did my mother say?\"";
menu
- "She said it was a gift, but she doesn't want it anymore.",-;
+ "She said it was a gift, but she doesn't want it anymore.",L_GiftNoWant;
+
+L_GiftNoWant:
mes "[Aldred]";
mes "\"Really? A gift? And why doesn't she want it anymore?\"";
next;
menu
- "She said it makes her sad.",-;
+ "She said it makes her sad.",L_MakesHerSad;
+
+L_MakesHerSad:
mes "\"Ohh... really? I don't like it when my mother gets sad... If this ring is making her feel bad, I should keep it away from her. \"";
next;
mes "\"Well, I guess you can keep it, but don't show it to my mother again, she's already very sad. But now I'm really curious. Who else would give a gift to my mother? There are so many strange things happening lately...\"";
diff --git a/world/map/npc/027-2/golbenez.txt b/world/map/npc/027-2/golbenez.txt
index ffc0206f..082b7a7d 100644
--- a/world/map/npc/027-2/golbenez.txt
+++ b/world/map/npc/027-2/golbenez.txt
@@ -50,16 +50,20 @@
mes "[Golbenez]";
mes "\"How do you like my place of leisure, mortal?\"";
menu
- "What is this place? Why is it full of dead people?",-,
+ "What is this place? Why is it full of dead people?",L_WhatPlace,
"You look different here. Nice horns.",L_Horns,
"I'm enjoying myself, thanks for asking.",L_Close;
+
+L_WhatPlace:
mes "[Golbenez]";
mes "\"Mortal, this is beyond your comprehension. Do not worry about it and enjoy your time.\"";
if (@lover < 2)
goto L_Close;
menu
- "I want to know. Try me.",-;
+ "I want to know. Try me.",L_WantKnow;
+
+L_WantKnow:
mes "Golbenez takes a piercing look at you.";
mes "[Golbenez]";
mes "\"Fine.\"";
@@ -71,14 +75,15 @@
mes "[Golbenez]";
mes "\"Unfortunately, it got destroyed. I had no choice but to take the memories from the dead and recreate this place.\"";
menu
- "What do you mean by 'playground?'",-,
- "Recreate? What do you mean by that?",-;
+ "What do you mean by 'playground?'",L_WantGoOn,
+ "Recreate? What do you mean by that?",L_WantGoOn;
+
+L_WantGoOn:
mes "[Golbenez]";
mes "\"As I said, you do not understand. You are starting to bore me. Leave.\"";
set @state, 1;
callsub S_Update_Mask;
-
goto L_Close;
L_Back:
@@ -91,8 +96,10 @@ L_Memory:
mes "[Golbenez]";
mes "\"Mortal, you are back. Are you going to bore me with other stupid questions?\"";
menu
- "I want to know what happened in the inn, before it was destroyed.",-,
+ "I want to know what happened in the inn, before it was destroyed.",L_KnowDestroy,
"Nevermind.",L_Close;
+
+L_KnowDestroy:
if ((@woman >= 7)
&& (@lover >= 3)
&& (@husband >= 4))
@@ -109,9 +116,11 @@ L_Detective:
next;
mes "\"The only thing you would have to do is promise me your soul.\"";
menu
- "No!",-,
- "That's too expensive. Make another offer.",-,
- "My soul?!",-;
+ "No!",L_WantsSoul,
+ "That's too expensive. Make another offer.",L_WantsSoul,
+ "My soul?!",L_WantsSoul;
+
+L_WantsSoul:
mes "Golbenez giggles, a strange and somewhat unnerving sound from such a being.";
mes "[Golbenez]";
mes "\"You should have seen your face. Really, mortals can be so funny.\"";
@@ -129,8 +138,10 @@ L_Reid:
"What do you need them for?",L_Why_Stuff,
"I'm working on that.",L_Close;
menu
- "Here you go.",-,
+ "Here you go.",L_GiveRags,
"I'm working on that.",L_Close;
+
+L_GiveRags:
if (countitem("OrangeCake") < 1)
goto L_No_Cake;
if (countitem("RottenRags") < @ROTTENRAGS_AMOUNT)
@@ -148,9 +159,11 @@ L_Reid:
set @state, 3;
callsub S_Update_Mask;
menu
- "Can I see it again?",-,
- "Wow, that was interesting.",-,
- "Why do you collect such personal memories?",-;
+ "Can I see it again?",L_CollectMem,
+ "Wow, that was interesting.",L_CollectMem,
+ "Why do you collect such personal memories?",L_CollectMem;
+
+L_CollectMem:
mes "Golbenez throws you an amused look.";
next;
mes "[Golbenez]";
@@ -169,8 +182,10 @@ L_Hamond:
"Not yet.",L_Close;
menu
"I want to see Reid's memory again.",L_R_Again,
- "I have what you want.",-,
+ "I have what you want.",L_GiveEar,
"I'm working on that.",L_Close;
+
+L_GiveEar:
if (countitem("ChocolateCake") < 1)
goto L_No_Cake;
if (countitem("UndeadEar") < @UNDEADEAR_AMOUNT)
@@ -205,8 +220,10 @@ L_Savaric:
menu
"I want to see Reid's memory again.",L_R_Again,
"I want to see Hamond's memory again.",L_H_Again,
- "I got what you want.",-,
+ "I got what you want.",L_GiveEye,
"I'm working on that.",L_Close;
+
+L_GiveEye:
if (countitem("AppleCake") < 1)
goto L_No_Cake;
if (countitem("UndeadEye") < @UNDEADEYE_AMOUNT)
@@ -224,8 +241,10 @@ L_Savaric:
mes "[Golbenez]";
mes "\"Humans can be so amusing!\"";
menu
- "YOU CRUEL MONSTER!",-,
- "I agree. What a bunch of idiots.",-;
+ "YOU CRUEL MONSTER!",L_MonsterIdiots,
+ "I agree. What a bunch of idiots.",L_MonsterIdiots;
+
+L_MonsterIdiots:
mes "Golbenez's mouth twists into something resembling a smile.";
mes "[Golbenez]";
mes "\"Oh, thank you.\"";
@@ -241,18 +260,19 @@ L_All:
"I want to see Hamond's memory again.",L_H_Again,
"I want to see Savaric's memory again.",L_S_Again,
"Nevermind.",L_Close;
- goto L_Close;
L_Negotiate:
mes "Golbenez's eyes are glowing greedily.";
mes "[Golbenez]";
mes "\"Did you come back to see the memories again? Or are you going to offer me another deal?\"";
menu
- "I want Savaric's soul back.",-,
+ "I want Savaric's soul back.",L_WantSoulBack,
"I want to see Reid's memory again.",L_R_Again,
"I want to see Hamond's memory again.",L_H_Again,
"I want to see Savaric's memory again.",L_S_Again,
"Nevermind.",L_Close;
+
+L_WantSoulBack:
mes "[Golbenez]";
mes "\"Savaric's soul, yes. It is a pretty nice soul, you know. From a mage... no, even better... from a lovestruck mage. It is valuable.\"";
next;
@@ -260,8 +280,10 @@ L_Negotiate:
next;
menu
"What about another cake?",L_Cake,
- "I'm not sure. What do you want?",-,
+ "I'm not sure. What do you want?",L_GetSoul,
"No.",L_Close;
+
+L_GetSoul:
mes "[Golbenez]";
mes "\"Bring me a soul of at least equal power to the mage's. I do not care about its origin.\"";
set @state, 6;
@@ -271,15 +293,17 @@ L_Negotiate:
L_Soul:
mes "[Golbenez]";
mes "\"So, did you get a soul for me?\"";
+ goto L_Soul_Try;
L_Soul_Try:
if (countitem("JackOSoul") < 1)
menu
"I'll go and get one.",L_Close;
menu
- "What about this Jack O Soul?",-,
+ "What about this Jack O Soul?",L_TryThisSoul,
"I'll go and try to find a soul.",L_Close;
+L_TryThisSoul:
if (countitem("JackOSoul") < 1)
goto L_Betray;
delitem "JackOSoul", 1;
diff --git a/world/map/npc/027-2/gy_inn_shops.txt b/world/map/npc/027-2/gy_inn_shops.txt
index da1c3c57..2a829ec1 100644
--- a/world/map/npc/027-2/gy_inn_shops.txt
+++ b/world/map/npc/027-2/gy_inn_shops.txt
@@ -34,6 +34,7 @@
mes "\"Come on in and have a nice long... long slumber...";
next;
callfunc "Inn";
+ close;
}
// Bank and Storage
diff --git a/world/map/npc/027-2/husband.txt b/world/map/npc/027-2/husband.txt
index 4217d9a4..f78cf48a 100644
--- a/world/map/npc/027-2/husband.txt
+++ b/world/map/npc/027-2/husband.txt
@@ -53,9 +53,11 @@
goto L_Close;
next;
menu
- "I'd like to know why all the people in here are dead.",-,
- "Are you feeling well? You look very pale... In fact, deathly pale.",-,
+ "I'd like to know why all the people in here are dead.",L_Next,
+ "Are you feeling well? You look very pale... In fact, deathly pale.",L_Next,
"Thank you, but I'm fine.", L_Close;
+
+L_Next:
mes "Hamond seems very confused. Then he notices the grey color of his hands and begins to shake his head in panic.";
mes "[Hamond]";
mes "\"WHAT IS THIS?\"";
@@ -73,7 +75,9 @@
mes "\"But nevertheless, I will continue to run this inn and do my best to make all our patrons happy and satisfied - be they alive or dead.\"";
next;
menu
- "Can I help with that?", -;
+ "Can I help with that?", L_Continue;
+
+L_Continue:
mes "[Hamond]";
mes "\"Help me? Normally I would never ask you for this, but actually, I do need something to cool the drinks. Maybe you can find something.\"";
@@ -130,7 +134,9 @@ L_Check_Ice:
mes "\"And I won't let a wannabe mage take her away from me...\"";
next;
menu
- "What do you mean?",-;
+ "What do you mean?",L_More;
+
+L_More:
mes "[Hamond]";
mes "\"Nevermind, nevermind. I'd like to ask you for another favor, if I might.\"";
next;
@@ -154,6 +160,7 @@ L_Check_Bones:
set @state, 3;
callsub S_Update_Mask;
+ goto L_Brought_Bones;
L_Brought_Bones:
mes "[Hamond]";
@@ -173,7 +180,10 @@ L_Brought_Bones:
if (@woman > 5)
menu
"Would you tell me about this mage named Savaric?", L_Savaric,
- "You're welcome.",-;
+ "You're welcome.",L_Welcome;
+ goto L_Welcome;
+
+L_Welcome:
mes "[Hamond]";
mes "\"Please make yourself at home.\"";
goto L_Close;
@@ -192,6 +202,7 @@ L_Savaric:
goto L_Man;
mes "\"Well, I have been thinking about you. You seem to be a very helpful and wise person. Even my son told me good things about you, making a long speech about how great you are and your ability to comprehend and deal with delicate matters. I wonder how he reached that conclusion... But anyway, I'll tell you about Savaric.\"";
next;
+ goto L_Jealousy;
L_Jealousy:
mes "[Hamond]";
@@ -244,7 +255,9 @@ L_News:
"I'm enjoying myself.",L_Close;
menu
"I'm enjoying myself.",L_Close,
- "I found out what happened to you and this place.",-;
+ "I found out what happened to you and this place.",L_FoundOut;
+
+L_FoundOut:
mes "[Hamond]";
mes "\"You did? Amazing! Please tell me.\"";
next;
@@ -259,9 +272,11 @@ L_News:
next;
mes "Hamond seems about to break down.";
menu
- "Maybe it was just fate.",-,
- "You got very upset, don't blame yourself",-,
- "You're right. You were very violent. How could you do that if you love her?",-;
+ "Maybe it was just fate.",L_HamondFate,
+ "You got very upset, don't blame yourself",L_HamondFate,
+ "You're right. You were very violent. How could you do that if you love her?",L_HamondFate;
+
+L_HamondFate:
mes "[Hamond]";
mes "\"I- I need to apologize.\"";
next;
diff --git a/world/map/npc/027-2/innkeeper.txt b/world/map/npc/027-2/innkeeper.txt
index 4204d041..e1387bfd 100644
--- a/world/map/npc/027-2/innkeeper.txt
+++ b/world/map/npc/027-2/innkeeper.txt
@@ -77,29 +77,36 @@ L_After_Welcome:
mes "\"Please enjoy yourself!\"";
if (BaseLevel < @minLevel)
goto L_Close;
+ goto L_Ask_Dead;
L_Ask_Dead:
if (BaseLevel < 85)
goto L_Close;
menu
- "What happened to you?", - ,
+ "What happened to you?", L_Next,
"Thank you, I'll surely enjoy my visit.", L_Close;
+
+L_Next:
mes "[Reid's Ghost]";
mes "\"What happened to me? What do you mean?\"";
menu
- "Ahm, you don't look very well - actually, you look dead.",-,
- "You don't seem to be in the best condition.",-,
- "You are dead!",-;
+ "Ahm, you don't look very well - actually, you look dead.",L_Next1,
+ "You don't seem to be in the best condition.",L_Next1,
+ "You are dead!",L_Next1;
+
+L_Next1:
mes "Reid looks down at her body and turns even more pale, if this is possible.";
next;
mes "[Reid's Ghost]";
mes "\"OH?\"";
next;
menu
- "I'm sorry. I didn't know you weren't aware of that.",-,
- "Yes - do you understand my question now?",-,
+ "I'm sorry. I didn't know you weren't aware of that.",L_Next2,
+ "Yes - do you understand my question now?",L_Next2,
"Shall I help you to find out what happened to you?", L_Offer_Help1;
+
+L_Next2:
mes "[Reid's Ghost]";
mes "\"I'm dead? But why? And why am I still here?\"";
next;
@@ -116,10 +123,11 @@ L_Offer_Help2:
"Shall I help you to find out what happened to you?", L_Offer_Help1,
"Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I don't want to bother you.", L_Close;
+ goto L_Skip1;
L_Skip1:
menu
- "Shall I help you to find out what happened to you?", -,
+ "Shall I help you to find out what happened to you?", L_Offer_Help1,
"I don't want to bother you.", L_Close;
L_Offer_Help1:
@@ -166,6 +174,7 @@ L_Check_Tears:
mes "[Reid's Ghost]";
mes "\"These tears.. how they shimmer in the candle light. Yes, it seems you are serious about your offer. I think maybe you have the sensibility to help me find out the real meaning behind this terrible feeling.\"";
next;
+ goto L_Ask_Life;
L_Ask_Life:
mes "[Reid's Ghost]";
@@ -177,11 +186,14 @@ L_Ask_Life:
"Please tell me about your life. Maybe this will give us a clue about what happened.",L_Skip2,
"Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring,
"I need to think about that.", L_Close;
+ goto L_Skip2;
L_Skip2:
menu
- "Please tell me about your life. Maybe this will give us a clue about what happened.",-,
+ "Please tell me about your life. Maybe this will give us a clue about what happened.",L_Next4,
"I need to think about that.", L_Close;
+
+L_Next4:
mes "[Reid's Ghost]";
mes "\"About my life? Well, ok.\"";
next;
@@ -201,8 +213,10 @@ L_Skip2:
next;
mes "\"That was a very hard time.\"";
menu
- "Yes, yes, but what about your life shortly before you died?",-,
- "I can imagine. I'm very sorry for you",-;
+ "Yes, yes, but what about your life shortly before you died?",L_Next5,
+ "I can imagine. I'm very sorry for you",L_Next5;
+
+L_Next5:
mes "She doesn't seem to pay much attention to what you say.";
next;
mes "\"But Hamond, my friend since I was a child, helped me in those bad times. We built up the inn again and we - we married.\"";
@@ -214,6 +228,7 @@ L_Skip2:
set @state, 5;
callsub S_Update_Mask;
+ goto L_Check_Kid;
L_Check_Kid:
if (@kidstate == 5)
@@ -229,6 +244,7 @@ L_Check_Kid:
mes "\"What I'm going to tell you is very personal, but your acts have shown me that you're a person I can trust. You kindly asked me about that ring you have found... and also, even my son, who is always so reserved with strangers, came to me and spent a long time telling me a lot of nice things about you. So I will tell you about my sad love.\"";
next;
+ goto L_LoveStory;
L_Lovestory:
mes "[Reid's Ghost]";
@@ -269,9 +285,10 @@ L_Savaric:
mes "\"Now you know about my recent past and... and my twisted feelings.\"";
next;
menu
- "Yes, I feel very sorry for you.",-,
+ "Yes, I feel very sorry for you.",L_Next6,
"Savaric seems to be a really hot guy, making you so compliant.",L_Tease;
+L_Next6:
mes "[Reid's Ghost]";
mes "\"Oh, thank you.\"";
if (@golbanez < 5)
@@ -279,8 +296,9 @@ L_Savaric:
"But I still didn't find out what happened. I'll return when I have news.",L_Close;
menu
"But I still didn't find out what happened. I'll return when I have news.",L_Close,
- "I found out what happened to you and this place. I'll tell you.",-;
+ "I found out what happened to you and this place. I'll tell you.",L_Next7;
+L_Next7:
mes "You explain to her about Golbenez, Savaric and the memories you have seen.";
next;
mes "[Reid's Ghost]";
@@ -303,15 +321,15 @@ L_Sorry:
menu
"Savaric asked me to give you something.",L_Diamond,
"Hamond sent me to bring you this.",L_Ruby,
- "Nevermind.",-;
+ "Nevermind.",L_Close;
if (@lover == 4 && (countitem("Diamond") >= @DIAMOND_AMOUNT))
menu
"Savaric asked me to give you something.",L_Diamond,
- "Nevermind.",-;
+ "Nevermind.",L_Close;
if (@husband == 5 && (countitem("Ruby") >= @RUBY_AMOUNT))
menu
"Hamond sent me to bring you this.",L_Ruby,
- "Nevermind.",-;
+ "Nevermind.",L_Close;
goto L_Close;
L_Diamond:
@@ -345,6 +363,7 @@ L_Ruby:
L_Kidding:
mes "[Reid's Ghost]";
mes "\"Are you kidding? You don't have the items you are talking about. This is not funny.\"";
+ goto L_Tease;
L_Tease:
mes "[Reid's Ghost]";
@@ -361,6 +380,7 @@ L_Thanks:
set @state, 11;
callsub S_Update_Mask;
next;
+ goto L_Mylarin;
L_Mylarin:
mes "[Reid's Ghost]";
@@ -376,8 +396,7 @@ L_Happy:
mes "\"Thank you for all you've done.\"";
menu
"Can you tell me again about the powder you gave me?",L_Mylarin,
- "I'm glad I could help.",-;
- goto L_Close;
+ "I'm glad I could help.",L_Close;
L_Not_Enough_Tears:
mes "[Reid's Ghost]";
diff --git a/world/map/npc/027-2/lover.txt b/world/map/npc/027-2/lover.txt
index 354362b1..7105dfab 100644
--- a/world/map/npc/027-2/lover.txt
+++ b/world/map/npc/027-2/lover.txt
@@ -49,7 +49,9 @@
mes "[Hanged Man]";
mes "\"Oh, hello. Nice to see you - I seem to be dead, but I don't know why and why I'm still consciousness. This is very interesting.\"";
menu
- "INTERESTING? Are you crazy?",-;
+ "INTERESTING? Are you crazy?",L_Next;
+
+L_Next:
mes "[Hanged Man]";
mes "\"Well, as you mention it, it is quite annoying and uncomfortable. Would you mind helping me down to the floor?\"";
next;
@@ -87,13 +89,16 @@ L_Crystals:
mes "[Hanged Man]";
mes "\"You have more of them, haven't you? It will work better if you give them to me too.\"";
menu
- "Ok, here you go.",-,
+ "Ok, here you go.",L_Next1,
"I prefer to keep them.",L_Skip;
+
+L_Next1:
set @crystal, countitem("DarkCrystal");
if (@crystal > @CRYSTAL_MAX)
set @crystal, @CRYSTAL_MAX;
delitem "DarkCrystal", @crystal;
getexp @crystal*@CRYSTAL_EXTRA_EXP, 0;
+ goto L_Skip;
L_Skip:
mes "[Hanged Man]";
@@ -117,9 +122,11 @@ L_Skip:
next;
mes "\"This is fascinating!\"";
menu
- "Ok, you are crazy!",-,
- "Yes, it is very fascinating to be blown up!",-,
- "I NEARLY DIED! AND YOU THINK THIS IS FASCINATING?!",-;
+ "Ok, you are crazy!",L_Next2,
+ "Yes, it is very fascinating to be blown up!",L_Next2,
+ "I NEARLY DIED! AND YOU THINK THIS IS FASCINATING?!",L_Next2;
+
+L_Next2:
mes "[Hanged Man]";
mes "\"I sometimes forget the fact that not everybody is fascinated by the riddles of magic. Please forgive me.\"";
next;
@@ -155,6 +162,7 @@ L_News:
"Can you tell me about your relationship to Reid?",L_Reid,
"Yes, let me tell you.",L_Golbenez,
"I don't think so.",L_Close;
+ goto L_Golbenez;
L_Golbenez:
mes "You explain how you came to the inn and what Golbenez said to you.";
@@ -164,9 +172,11 @@ L_Golbenez:
next;
mes "\"Savaric seems to be completely absorbed in his thoughts.\"";
menu
- "Hello? Are you still there?",-,
- "Excuse me, I don't want to interrupt you, but can you explain to me what's going on? I'm confused.",-,
- "Hey! I'm talking with you!",-;
+ "Hello? Are you still there?",L_Next3,
+ "Excuse me, I don't want to interrupt you, but can you explain to me what's going on? I'm confused.",L_Next3,
+ "Hey! I'm talking with you!",L_Next3;
+
+L_Next3:
mes "Savaric winces.";
next;
mes "\"Oh, right - I was just thinking. It makes me feel uncomfortable to hear about Golbenez being involved in this.\"";
@@ -195,9 +205,10 @@ L_Golb:
menu
"I'm still working on doing all the stuff Golbenez wants me to do.",L_Close;
menu
- "Now I know what happened. I'll tell you.",-,
- "I'm sorry to tell you, but this was all your fault.",-;
+ "Now I know what happened. I'll tell you.",L_Next4,
+ "I'm sorry to tell you, but this was all your fault.",L_Next4;
+L_Next4:
mes "You tell Savaric about what Golbenez showed to you.";
next;
mes "[Savaric]";
@@ -237,8 +248,10 @@ L_Want_Soul:
mes "[Savaric]";
mes "\"Welcome back! Are you still working on getting my soul back?\"";
menu
- "I'm doing my best.",-,
- "Yes, but it isn't easy.",-;
+ "I'm doing my best.",L_NextEnd,
+ "Yes, but it isn't easy.",L_NextEnd;
+
+L_NextEnd:
mes "[Savaric]";
mes "\"Thank you so much! I'm counting on you!\"";
goto L_Close;
diff --git a/world/map/npc/027-2/werewolf.txt b/world/map/npc/027-2/werewolf.txt
index c3187e92..1438393a 100644
--- a/world/map/npc/027-2/werewolf.txt
+++ b/world/map/npc/027-2/werewolf.txt
@@ -48,8 +48,7 @@ L_Bones:
"Yes, here they are.",L_Bring,
"Not yet.",L_Close;
menu
- "Not yet.",-;
- goto L_Close;
+ "Not yet.",L_Close;
L_Bring:
if (countitem("AnimalBones") < @ANIMALBONES_AMOUNT)
@@ -86,8 +85,7 @@ L_Happy:
mes "\"You will need " + @money + " GP.\"";
menu
"Sure, why not?",L_Game,
- "No, thanks.",-;
- goto L_Close;
+ "No, thanks.",L_Close;
//The game mechanics is copied from casino.txt
L_Game:
@@ -158,7 +156,6 @@ L_Ace:
menu
"Yes", L_Another,
"No", L_End;
- goto L_Close;
L_Close:
set @Graveyard_Inn_MASK, 0;
diff --git a/world/map/npc/027-3/_import.txt b/world/map/npc/027-3/_import.txt
index 96b4da1a..7b7505f9 100644
--- a/world/map/npc/027-3/_import.txt
+++ b/world/map/npc/027-3/_import.txt
@@ -3,6 +3,3 @@
map: 027-3.gat
npc: npc/027-3/_mobs.txt
npc: npc/027-3/_warps.txt
-npc: npc/027-3/caskets.txt
-npc: npc/027-3/entrance.txt
-npc: npc/027-3/mapflags.txt
diff --git a/world/map/npc/027-3/caskets.txt b/world/map/npc/027-3/caskets.txt
deleted file mode 100644
index b941195d..00000000
--- a/world/map/npc/027-3/caskets.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-// Casket monster traps and key puzzle.
-027-3.gat,40,35,0|script|#casket1|400,1,1
-{
- heal 3,0;
- specialeffect 301;
- specialeffect 302;
- end;
-}
diff --git a/world/map/npc/027-3/entrance.txt b/world/map/npc/027-3/entrance.txt
deleted file mode 100644
index 01ee28ce..00000000
--- a/world/map/npc/027-3/entrance.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-// 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
-{
- mes "Once you pass this point I cannot warp anyone else to help. "
- + "Are you sure you are ready to go?";
- menu
- "Let's go",L_BEGIN,
- "No thank you",-;
- warp "027-3.gat",40,60;
- close;
-
-L_BEGIN:
- disablenpc "#closedgate";
- initnpctimer;
- specialeffect 300;
- // add stop alacrius warp flag to temp globals
- close;
-
-OnTimer2000:
- enablenpc "#opengate";
- disablenpc "#gatecontrol";
- end;
-}
-
-027-3.gat,40,59,0|script|#closedgate|322,
-{
- end;
-}
-
-027-3.gat,40,59,0|script|#opengate|323,
-{
- end;
-}
-
-// Effects for the exit.
-
-027-3.gat,40,78,0|script|#cryptexit2|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"
- + "or die...";
- close;
-}
diff --git a/world/map/npc/027-3/mapflags.txt b/world/map/npc/027-3/mapflags.txt
deleted file mode 100644
index 4fb5481c..00000000
--- a/world/map/npc/027-3/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-027-3.gat|mapflag|nosave|027-2,107,31
diff --git a/world/map/npc/027-4/_import.txt b/world/map/npc/027-4/_import.txt
index d5638404..7c55eb4b 100644
--- a/world/map/npc/027-4/_import.txt
+++ b/world/map/npc/027-4/_import.txt
@@ -3,5 +3,3 @@
map: 027-4.gat
npc: npc/027-4/_mobs.txt
npc: npc/027-4/_warps.txt
-npc: npc/027-4/mapflags.txt
-npc: npc/027-4/reaper_script.txt
diff --git a/world/map/npc/027-4/mapflags.txt b/world/map/npc/027-4/mapflags.txt
deleted file mode 100644
index efe8aad8..00000000
--- a/world/map/npc/027-4/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-027-4.gat|mapflag|nosave|027-2,107,31
diff --git a/world/map/npc/027-4/reaper_script.txt b/world/map/npc/027-4/reaper_script.txt
deleted file mode 100644
index a67e7c75..00000000
--- a/world/map/npc/027-4/reaper_script.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-// The scripts associated with the reaper mob summoned by Alacrius in the 027-2
-
-027-4.gat,0,0,0|script|Reaper|-1,
-{
-OnDead:
- mes "you won!";
- mapwarp "027-4.gat", "027-2.gat",104,41;
- close;
-
-OnPCDieEvent:
- // summon a zombie and give a message and sfx
- end;
-
-OnAvenged:
- // tell players your fallen comrad has been avenged
- end;
-}
diff --git a/world/map/npc/028-1/Portal.txt b/world/map/npc/028-1/Portal.txt
index 68826cde..9a708464 100644
--- a/world/map/npc/028-1/Portal.txt
+++ b/world/map/npc/028-1/Portal.txt
@@ -25,8 +25,7 @@ L_Main:
menu
"Jump through, without looking back.", L_No_Hesitation,
"Take one more look around.", L_Look,
- "Leave it alone.", -;
- close;
+ "Leave it alone.", L_Close;
L_No_Hesitation:
mes "There has been quite enough of this harsh place. You jump through without hesitation...";
@@ -94,8 +93,7 @@ L_Post_Look:
mes "What do you do?";
menu
"Jump through", L_Jump,
- "Leave it alone", -;
- close;
+ "Leave it alone", L_Close;
L_Jump:
mes "[Portal]";
diff --git a/world/map/npc/029-1/barrier.txt b/world/map/npc/029-1/barrier.txt
index 0ed76d2d..35347e59 100644
--- a/world/map/npc/029-1/barrier.txt
+++ b/world/map/npc/029-1/barrier.txt
@@ -6,4 +6,5 @@
L_Block:
message strcharinfo(0), "Some force seems to be blocking you from entering.";
+ end;
}
diff --git a/world/map/npc/029-1/dock.txt b/world/map/npc/029-1/dock.txt
index cf5dd795..a049d68e 100644
--- a/world/map/npc/029-1/dock.txt
+++ b/world/map/npc/029-1/dock.txt
@@ -4,4 +4,5 @@
{
set @loc, DOCK_candor;
callfunc "Ferry";
+ end;
}
diff --git a/world/map/npc/029-3/barrier.txt b/world/map/npc/029-3/barrier.txt
index 1e383ced..c8fa5e7f 100644
--- a/world/map/npc/029-3/barrier.txt
+++ b/world/map/npc/029-3/barrier.txt
@@ -6,4 +6,5 @@
L_Block:
message strcharinfo(0), "Some force seems to be blocking you from exiting.";
+ end;
}
diff --git a/world/map/npc/029-3/parua.txt b/world/map/npc/029-3/parua.txt
index 17cb0791..c3190213 100644
--- a/world/map/npc/029-3/parua.txt
+++ b/world/map/npc/029-3/parua.txt
@@ -9,16 +9,21 @@
mes "[Parua]";
mes "\"Do you dare challenge the power that sleeps here?\"";
menu "No, I'll let it sleep.", L_Exit,
- "Ha! What's the worst it could do?", -,
+ "Ha! What's the worst it could do?", L_Next,
"Actually, I want to leave, but I'm stuck!", L_Stuck;
+
+L_Next:
mes "[Parua]";
mes "\"Very well, for a fee of 20,000 GP, I will awaken that power.\"";
menu "No, what a ripoff!", L_Exit,
- "Fine, here you go.", -;
+ "Fine, here you go.", L_Fine;
+
+L_Fine:
if ($@FIGHT_CAVE_STATUS == 1)
goto L_AlreadyStarted;
if (Zeny >= 20000 + 3000)
goto L_CallPlayers;
+ goto L_Paying;
L_Paying:
if (getmapusers("029-3.gat") < 5)
@@ -29,6 +34,7 @@ L_Paying:
if ($@FIGHT_CAVE_STATUS != 0)
close;
set Zeny, Zeny - 20000;
+ goto L_StartFight;
L_StartFight:
if (getmapusers("029-3.gat") < 5)
@@ -45,7 +51,9 @@ L_CallPlayers:
mes "\"Good... Your money will be very useful. I can awaken this power right now, if you want, or, for an additional fee of 3,000 GP, I can help you gather some of your friends to help you in this battle. What will it be?\"";
menu
"We are OK. Just do it!", L_Paying,
- "I will accept your help.", -;
+ "I will accept your help.", L_AcceptHelp;
+
+L_AcceptHelp:
mes "[Parua]";
mes "\"OK, I can make up to 3 announcements to the people of this world, letting them know that you are about to challenge the powers that sleep in this cave! If you want the fight to start in 5 minutes, I will make one announcement, if it is 10 minutes, I will make 2 announcements, and if it is to start in 15 minutes, it will be 3 announcements.\"";
next;
@@ -53,10 +61,12 @@ L_CallPlayers:
next;
mes "\"So, when should it start?\"";
menu
- "In 5 minutes.", -,
- "In 10 minutes.", -,
- "In 15 minutes.", -,
+ "In 5 minutes.", L_TimeFightStart,
+ "In 10 minutes.", L_TimeFightStart,
+ "In 15 minutes.", L_TimeFightStart,
"I don't want to wait. Let's start it now!", L_Paying;
+
+L_TimeFightStart:
// Do not charge the money if the fight or the announces were already started by someone else
if ($@FIGHT_CAVE_STATUS != 0)
close;
@@ -127,7 +137,6 @@ L_Warp:
L_Exit:
close;
- end;
// Fight logic
OnTimer5000:
@@ -136,6 +145,7 @@ OnTimer5000:
goto L_CaveLogic;
if ($@FIGHT_CAVE_STATUS >= 2)
goto L_GlobalAnnounce;
+ goto L_Return_1;
L_Return_1:
set $@FIGHT_CAVE_PLAYER_COUNT, 0;
@@ -178,6 +188,7 @@ L_NextRound:
set $@MOB_4_SUMMON, 0;
set $@MOB_5_SUMMON, 0;
set $@MOB_6_SUMMON, 0;
+ goto L_Summon;
L_Summon:
if ($@FIGHT_CAVE_POINTS >= 243
@@ -297,6 +308,7 @@ OnInit:
if (debug >= 2) end;
initnpctimer;
stopnpctimer;
+ goto L_CleanUp;
L_CleanUp:
npctalk "Game Over";
@@ -321,7 +333,7 @@ L_CleanUp_Announcement:
end;
OnPCDieEvent:
- // fall through L_CleanUp_Player
+ goto L_CleanUp_Player;
L_CleanUp_Player:
set @candor_oldx, 0;
diff --git a/world/map/npc/030-2/avalia.txt b/world/map/npc/030-2/avalia.txt
index 038b0dd2..970197a0 100644
--- a/world/map/npc/030-2/avalia.txt
+++ b/world/map/npc/030-2/avalia.txt
@@ -32,7 +32,9 @@ L_ListReturn:
mes "[Avalia]";
mes "\"This had better be important, I have got enough to worry about.\"";
menu
- "Sorry for interrupting, but I have been sent up here with the List", -;
+ "Sorry for interrupting, but I have been sent up here with the List", L_Next;
+
+L_Next:
mes "She stares blankly at you for a bit...";
next;
mes "\"YAHOO!!\"";
diff --git a/world/map/npc/030-2/basic_npcs.txt b/world/map/npc/030-2/basic_npcs.txt
index f3a25f6b..b8573912 100644
--- a/world/map/npc/030-2/basic_npcs.txt
+++ b/world/map/npc/030-2/basic_npcs.txt
@@ -42,7 +42,9 @@
menu
"Yes, it's really interesting.", L_Interesting,
"It's ok.", L_Rage,
- "I'm confused, it's much bigger than from the outside.", -;
+ "I'm confused, it's much bigger than from the outside.", L_Next;
+
+L_Next:
mes "[Akseli]";
mes "\"Ah, yes, that's a magic technique almost all of the Sages use. The house is located in a shifted dimension.\"";
goto L_Close;
diff --git a/world/map/npc/030-2/chief_helper.txt b/world/map/npc/030-2/chief_helper.txt
index 3cecfd6a..3c63ac14 100644
--- a/world/map/npc/030-2/chief_helper.txt
+++ b/world/map/npc/030-2/chief_helper.txt
@@ -31,7 +31,9 @@ L_Helping:
next;
mes "\"For this reason I have to ask you to leave and come back some at some more convenient time.\"";
menu
- "Availa Sent me. She said you should have me help out.",-;
+ "Availa Sent me. She said you should have me help out.",L_Next;
+
+L_Next:
mes "Warrick sighs.";
next;
mes "[Chief Warrick]";
@@ -43,13 +45,17 @@ L_Helping:
mes "However, as you can see we have to deal with some serious problems here.";
mes "So I'd appreciate if you could just leave and not interfere.\"";
menu
- "But I can help!",-;
+ "But I can help!",L_Continue;
+
+L_Continue:
mes "He hesitates.";
next;
mes "[Chief Warrick]";
mes "\"I'm not sure...\"";
menu
- "Really, I can do a lot of things.",-;
+ "Really, I can do a lot of things.",L_Insist;
+
+L_Insist:
mes "[Chief Warrick]";
mes "\"Well, alright. I suppose it can't get worse than it already is.";
mes "Go to the helpers all over the house and ask them what is needed.";
diff --git a/world/map/npc/030-2/eljas.txt b/world/map/npc/030-2/eljas.txt
index beaefaad..288dbb4e 100644
--- a/world/map/npc/030-2/eljas.txt
+++ b/world/map/npc/030-2/eljas.txt
@@ -5,6 +5,7 @@
{
callfunc "XmasStates";
callfunc "ThrowOutTheBum";
+ goto L_Start;
L_Start:
if($@xmas_time)
@@ -46,7 +47,6 @@ L_HaveList1:
"Christmas?", L_Christmas,
"I am interested in magical research.", L_Research,
"Nothing, I have to go.", L_Close;
- goto L_Close;
L_HaveList2:
mes "Mmmmh he probably won't notice what lists you will bring him (Did you ever notice that he does not move at all?)";
@@ -62,7 +62,6 @@ L_HaveList2:
"Christmas?", L_Christmas,
"I am interested in magical research.", L_Research,
"Nothing, I have to go.", L_Close;
- goto L_Close;
L_NeedList1:
mes "[Eljas]";
@@ -71,7 +70,9 @@ L_NeedList1:
mes "\"So what brings you here my dear?\"";
menu
"Mmh? Nothing, I have to go.", L_Close,
- "I heard you need help with some Wish lists?", -;
+ "I heard you need help with some Wish lists?", L_Next;
+
+L_Next:
mes "\"True...\"";
next;
mes "\"It appears we are missing some of the wish list from the children from all over the Mana World.\"";
diff --git a/world/map/npc/030-2/present_helper.txt b/world/map/npc/030-2/present_helper.txt
index 9637b778..ca4246e2 100644
--- a/world/map/npc/030-2/present_helper.txt
+++ b/world/map/npc/030-2/present_helper.txt
@@ -29,18 +29,18 @@ L_XmasMain:
L_Helping:
mes "\"Here we take back any presents stolen from us by those nasty creatures.\"";
next;
+ goto L_Main;
L_Main:
mes "\"Did you find any presents you would like to return?\"";
next;
menu
- "No, I just wanted to say hello.",-,
+ "No, I just wanted to say hello.",L_Close,
$@xmas_present_amount + " Purple present boxes.",L_Purple,
$@xmas_present_amount + " Blue present boxes.",L_Blue,
$@xmas_present_amount + " Green present boxes.",L_Green,
$@xmas_present_amount + " Yellow present boxes.",L_Yellow,
$@xmas_present_amount + " White present boxes.",L_White;
- goto L_Close;
L_Purple:
set @karma_bonus, $@xmas_karma_bonus;
diff --git a/world/map/npc/030-2/roasted_acrons_helper.txt b/world/map/npc/030-2/roasted_acrons_helper.txt
index 900d1bd1..8c7c6e41 100644
--- a/world/map/npc/030-2/roasted_acrons_helper.txt
+++ b/world/map/npc/030-2/roasted_acrons_helper.txt
@@ -20,9 +20,10 @@ L_XmasMain:
next;
mes "\"Ah, I remember when I was a child we used to roast acorns at the fireplace. We dunked them into Iron Potion and then put them over the fire for a while. That gave a tasty icing.\"";
menu
- "Let's roast some.", -,
+ "Let's roast some.", L_LetsRoast,
"Children's stuff...", L_Close;
+L_LetsRoast:
mes "[Verneri]";
mes "\"Well, if you get some Acorns and Iron Potions, we can do that.\"";
mes "\"With one Iron Potion we can ice about " + $@xmas_acorn_amount + " Acorns.\"";
diff --git a/world/map/npc/030-2/shipping_helper.txt b/world/map/npc/030-2/shipping_helper.txt
index 573ed2fc..29a0ae26 100644
--- a/world/map/npc/030-2/shipping_helper.txt
+++ b/world/map/npc/030-2/shipping_helper.txt
@@ -48,18 +48,18 @@ L_Helping:
mes "\"I am " + $@npc_name$ + ". We are in charge of getting all the presents together, but we messed up and now all our supplies are ruined. Can you help us out?\"";
mes "\"We need wrapping paper and empty boxes! We can provide the gifts!\"";
next;
+ goto L_Main;
L_Main:
mes "\"Do you have any supplies we can use?\"";
next;
menu
- "What? err... I just wanted to say hello.",-,
+ "What? err... I just wanted to say hello.",L_Close,
"Purple Wrapping Paper and an empty box.",L_Purple,
"Blue Wrapping Paper and an empty box.",L_Blue,
"Green Wrapping Paper and an empty box.",L_Green,
"Yellow Wrapping Paper and an empty box.",L_Yellow,
"White Wrapping Paper and an empty box.",L_White;
- goto L_Close;
L_Purple:
set @wrap$, "PurpleWrap";
diff --git a/world/map/npc/030-2/storage_helper.txt b/world/map/npc/030-2/storage_helper.txt
index 37f7ee2d..ff6fa242 100644
--- a/world/map/npc/030-2/storage_helper.txt
+++ b/world/map/npc/030-2/storage_helper.txt
@@ -27,7 +27,9 @@ L_Helping:
mes "\"Oh, hello. Visitors usually don't come down here in the basement. Here we store several things, materials for the presents, the finished presents, supplies.\"";
menu
"Nice. I have to go.", L_Close,
- "Do you need help with anything?", -;
+ "Do you need help with anything?", L_Next;
+
+L_Next:
mes "[Vellamo]";
mes "\"Oh? You want to help us? Actually, there is one thing you could do. Did you see those weird slimes out there on the snow fields? Argh, I hate those creatures, last year they invaded the entire basement...\"";
next;
diff --git a/world/map/npc/030-2/wrapping_paper_helper.txt b/world/map/npc/030-2/wrapping_paper_helper.txt
index 48e23f45..dcd5a36e 100644
--- a/world/map/npc/030-2/wrapping_paper_helper.txt
+++ b/world/map/npc/030-2/wrapping_paper_helper.txt
@@ -32,6 +32,8 @@ L_Helping:
mes "\"So, eh, I can only give you some of the remaining wrapping paper if you bring me the needed material to make new wrapping paper.";
mes "For making one roll of wrapping paper, I need " + $@xmas_reed_amount + " Reed Bundles, " + $@xmas_water_amount + " Bottle of Water and some dye to make it colored.\"";
next;
+ goto L_Again;
+
L_Again:
mes "\"Let's see... These are the regulations for wrapping paper colors and designs for this year. Tell me which you want.\"";
mes "He shows you an official looking piece of paper.";
diff --git a/world/map/npc/030-3/orum_homunculus.txt b/world/map/npc/030-3/orum_homunculus.txt
index f699737e..0aaaebf0 100644
--- a/world/map/npc/030-3/orum_homunculus.txt
+++ b/world/map/npc/030-3/orum_homunculus.txt
@@ -204,7 +204,9 @@ L_QuestStart1:
mes "\"Greetings traveler, Do you have any time to help me out?\"";
menu
"No. I really have to go.", L_Close,
- "Sure, I'm listening.", -;
+ "Sure, I'm listening.", L_Next;
+
+L_Next:
mes "\"Good. You may have heard that some of the children's wish lists are missing.\"";
mes "\"I sent a courier out to get their lists, but they have yet to return.\"";
next;
@@ -220,7 +222,9 @@ L_QuestStart2:
mes "\"Greetings traveler, Do you have any time to help me out?\"";
menu
"No. I really have to go.", L_Close,
- "Sure, I'm listening.", -;
+ "Sure, I'm listening.", L_KeepGoing;
+
+L_KeepGoing:
mes "\"Good. You may have heard that some of the children's wish lists are missing.\"";
mes "\"I sent a courier out to get their lists, but they have yet to return.\"";
next;
@@ -256,7 +260,8 @@ L_SantasList:
goto L_NotComplete;
mes "\"Take the altered list to Elijas.\"";
menu
- "I don't know, this sounds kind of naughty.",-;
+ "I don't know, this sounds kind of naughty.",L_Foo;
+L_Foo:
mes "\"Do my bidding or I'll have no more words with you.\"";
goto L_Close;
@@ -264,7 +269,9 @@ L_ListReturn:
mes "[Orum's Homunculus]";
mes "\"This had better be important, I've got enough to worry about.\"";
menu
- "Sorry for interrupting, but I've come down here because I delivered the fake list", -;
+ "Sorry for interrupting, but I've come down here because I delivered the fake list", L_FakeList;
+
+L_FakeList:
mes "he stares blankly at you for a bit... ";
next;
mes "\"MUHAHAHAHAHAHAA!!\"";
diff --git a/world/map/npc/030-4/mana_battery.txt b/world/map/npc/030-4/mana_battery.txt
index a86dd527..6f59d10e 100644
--- a/world/map/npc/030-4/mana_battery.txt
+++ b/world/map/npc/030-4/mana_battery.txt
@@ -51,17 +51,21 @@ L_BattleBad:
mes "\"So this is where this whole shallow charade will end...\"";
mes "\"Good. Are you ready to get this over with?\"";
menu
- "Huh? Sure, why not.", -,
+ "Huh? Sure, why not.", L_KeepGoing,
"Wait a sec.", L_Close,
"Well... since you ask... I prefer to leave now, this is way to dangerous. I have responsibities.", L_Coward;
+
+L_KeepGoing:
mes "[Orums Homunculus]";
mes "\"Okay now listen closely, at least for once.\"";
mes "\"Put the mana battery into that vessel in front of you.\"";
next;
menu
- "Ok.", -,
+ "Ok.", L_YeahOk,
"No way, I prefer to leave. Now!", L_Coward,
"Give me a second, I need to consider my options.", L_Close;
+
+L_YeahOk:
mes "You carefully install the Mana Battery as good as you can manage.";
mes "As you bend over, you notice a strong sulphur odour coming from the crate";
next;
@@ -79,14 +83,12 @@ L_BattleGood:
"No WAY! I am not going to put my life in danger", L_Close,
"Ok that does it, I am going to leave! I cannot be responsible for blowing up the entire mana world.", L_Coward,
"I studied magic and this looks all wrong. (Beware! that's dangerous)", L_StartGoodHard;
- goto L_Close;
L_StartGood:
if ($@XmasBattleStatus)
goto L_BattleInProgress;
set @xmas_battle_status, 1;
goto L_Start;
- goto L_Close;
L_StartGoodHard:
if ($@XmasBattleStatus)
@@ -153,8 +155,7 @@ L_Helper:
menu
"No I prefer to leave now, get me out of here.", L_Quit,
"Wait let me check if i can fix this ...(Beware!)", L_Repeat,
- "Why would I do that? Aaaah... Nevermind.", -;
- goto L_Close;
+ "Why would I do that? Aaaah... Nevermind.", L_Close;
L_Repeat:
//Player wants to try again on hard mode again
@@ -173,8 +174,7 @@ L_CoolDown:
mes "The AniManOMat is too hot to handle right now, you should wait a bit to try a new battery.";
menu
"No I prefer to leave now, get me out of here.", L_Quit,
- "Ughhh, but I'm certain this time the battery will work!", -;
- goto L_Close;
+ "Ughhh, but I'm certain this time the battery will work!", L_Close;
L_BattleInProgress:
mes "The mana battery looks like it is about to explode. You better take cover!";
diff --git a/world/map/npc/031-1/angelaOutside.txt b/world/map/npc/031-1/angelaOutside.txt
index 138cdbfb..60e156f0 100644
--- a/world/map/npc/031-1/angelaOutside.txt
+++ b/world/map/npc/031-1/angelaOutside.txt
@@ -28,7 +28,6 @@
menu
"\"Please calm down and tell me what happened.\"", L_Whining,
"Leave", L_Close;
- goto L_Close;
L_Whining:
mes "[Angela]";
@@ -58,7 +57,6 @@ L_Menu_Potion:
"\"Please calm down and tell me what happened.\"", L_Whining,
"Give her a concentration potion.", L_Calm_Down,
"Leave", L_Close;
- goto L_Close;
L_Calm_Down:
if (countitem("ConcentrationPotion") == 0)
diff --git a/world/map/npc/031-1/dock.txt b/world/map/npc/031-1/dock.txt
index d566c600..304d2068 100644
--- a/world/map/npc/031-1/dock.txt
+++ b/world/map/npc/031-1/dock.txt
@@ -4,4 +4,5 @@
{
set @loc, DOCK_nivalis;
callfunc "Ferry";
+ end;
}
diff --git a/world/map/npc/031-1/frozenbeard.txt b/world/map/npc/031-1/frozenbeard.txt
index 19ad560d..0dabaeb0 100644
--- a/world/map/npc/031-1/frozenbeard.txt
+++ b/world/map/npc/031-1/frozenbeard.txt
@@ -7,7 +7,7 @@
// "I need to find a way to go back home, can you help me?", L_Frozenbeard_Default,
// "I heard you know pirates from all around the world, is it true?", L_Frozenbeard_Easter2012;
-L_Frozenbeard_Default:
+//L_Frozenbeard_Default:
mes "[Frozenbeard]";
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;
@@ -19,7 +19,9 @@ L_Frozenbeard_Easter2012:
mes "\"Arrrrh mate! Ye be right! I know every single pirate in this world. But not all of them are to be trusted, I must say.\"";
next;
menu
- "I need information about the Easter Bunny. I heard some pirates kidnapped him.", -;
+ "I need information about the Easter Bunny. I heard some pirates kidnapped him.", L_Next;
+
+L_Next:
mes "[Frozenbeard]";
mes "\"Arrrrh! Ye shouldn't do this to me. Those pirates are dangerous, I can't put myself in such a situation!\"";
next;
@@ -27,18 +29,24 @@ L_Frozenbeard_Easter2012:
mes "You take a black pearl from your backpack and starts to play with it.";
next;
menu
- "Hmm, too bad, because I was willing to pay well for information, you know?", -;
+ "Hmm, too bad, because I was willing to pay well for information, you know?", L_Continue;
+
+L_Continue:
mes "[Frozenbeard]";
mes "\"Arrh eh... Did I say dangerous? These pirates are criminals and a shame to our kind. So, if ye give me this pearl I can tell ye all I know about them. It is not much, but maybe it can help.\"";
menu
- "Ok, keep going.", -;
+ "Ok, keep going.", L_More;
+
+L_More:
mes "[Frozenbeard]";
mes "\"Well I heard they took him to a small house around this area, where they have their base. But then they brought him to another place. It might be hot there, judging the way they dressed up. The bunny seemed to show no resistance at all when they kidnapped him. It looked as if he did not know what was happening.\"";
next;
mes "\"But the most important thing is, the leader of the kidnappers is an old friend of George, the treasure hunter. George is very clever, I am sure he knows how the kidnapper thinks and all, maybe he can give ye a more specific information about this.\"";
next;
menu
- "Well, that was useful, take your pearl.", -;
+ "Well, that was useful, take your pearl.", L_TakePearl;
+
+L_TakePearl:
if (countitem("BlackPearl") < 1)
goto L_Frozenbeard_Nopearl;
delitem "BlackPearl", 1;
diff --git a/world/map/npc/031-2/angelaHouse.txt b/world/map/npc/031-2/angelaHouse.txt
index 9ef5bfb6..1b3ccb0a 100644
--- a/world/map/npc/031-2/angelaHouse.txt
+++ b/world/map/npc/031-2/angelaHouse.txt
@@ -52,10 +52,9 @@ L_Hello_Again:
mes "\"Hello! Good to see you again. Please warm yourself.\"";
next;
menu
- "I just wanted to say hello.",-,
+ "I just wanted to say hello.",L_Close,
"I have some yellow present boxes.",L_Yellow,
"I have some white present boxes.",L_White;
- goto L_Close;
L_Yellow:
set @dq_level, 70;
diff --git a/world/map/npc/031-4/cindyCave.txt b/world/map/npc/031-4/cindyCave.txt
index 0be990c8..d7d16155 100644
--- a/world/map/npc/031-4/cindyCave.txt
+++ b/world/map/npc/031-4/cindyCave.txt
@@ -32,7 +32,9 @@ L_Please_Help:
mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
next;
menu
- "Hello Cindy, I'm here to save you.", - ;
+ "Hello Cindy, I'm here to save you.", L_Next;
+
+L_Next:
mes "Cindy doesn't look so scared anymore.";
next;
mes "[Cindy]";
@@ -44,7 +46,6 @@ L_Please_Help:
menu
"Try to open the cage", L_Try_Cage,
"Leave", L_Close;
- goto L_Close;
L_Try_Cage:
if (BaseLevel < @minlevel)
@@ -98,6 +99,7 @@ L_Wizard_Hat:
getitem @wizardhats[@reward], 1;
set @rescue_Cindy, 3;
callsub S_Update_Mask;
+ goto L_Visit;
L_Visit:
mes "\"Thank you so much; please come to my home. It's the house at the beach.\"";
@@ -139,6 +141,7 @@ OnTimer5000:
setnpctimer 0;
if ($@FIGHT_YETI_STATUS != 0)
goto L_CaveLogic;
+ goto L_Return_1;
L_Return_1:
set $@FIGHT_YETI_PLAYER_COUNT, 0;
@@ -223,6 +226,8 @@ OnReward:
message strcharinfo(0), "Cindy looks relieved and as if she wants to talk with you.";
set BOSS_POINTS, BOSS_POINTS + 70;
message strcharinfo(0), "You gain 70 Boss Points giving you a total of " + BOSS_POINTS + ".";
+ goto L_End;
+
L_End:
set @bonus, 0;
set @Q_Nivalis_state_MASK, 0;
diff --git a/world/map/npc/032-1/miriam.txt b/world/map/npc/032-1/miriam.txt
index f0527388..78cd09a9 100644
--- a/world/map/npc/032-1/miriam.txt
+++ b/world/map/npc/032-1/miriam.txt
@@ -30,31 +30,38 @@
if (QUEST_MIRIAM_run != 0) goto L_checktime;
if (QUEST_MIRIAM_start != 0) goto L_wasting;
if (QUEST_MIRIAM == 5) goto L_testoffer;
+ goto L_intro;
L_intro:
mes "You see a woman sitting in the hot sand with eyes wide open... But she does not seem to be looking at something in particular...";
next;
menu
- "Ehr... Hi, my name is " +strcharinfo(0)+ ". Are you OK?",-;
- next;
+ "Ehr... Hi, my name is " +strcharinfo(0)+ ". Are you OK?",L_Next;
+
+L_Next:
mes "[Miriam]";
mes "\"...";
next;
menu
- "Hello?",-;
- next;
+ "Hello?",L_Continue;
+
+L_Continue:
mes "[Miriam]";
mes "\"Yes, I am. Why? Do you think I am not OK? I am OK. You interrupted my meditation. Now I will need hours to calm down and stay quiet! Yes, yes, I know, I'm a fast talker!\"";
next;
mes "\"In fact, I am fast in everything I do! I can kill a Mountain Snake before it even starts to think about attacking me! Yes my friend, in a battle, speed is power!";
next;
menu
- "Wow! Very impressi...",-;
+ "Wow! Very impressi...",L_More;
+
+L_More:
mes "[Miriam]";
mes "\"Yes, yes, I know. But if there is one thing I am NOT good at, it is meditation! My master said I need to meditate, but... Ohh! So difficult to stay quiet! And when you FINALLY do, someone INTERRUPTS you, asking if you are 'OK'...\"";
next;
menu
- "Oh, I am sorry! I didn't know you were meditating...",-;
+ "Oh, I am sorry! I didn't know you were meditating...",L_WallText;
+
+L_WallText:
mes "[Miriam]";
mes "\"You are really sorry? Ok, but that is not enough... I need you to do something for me. As you can imagine, I will need a lot of time to concentrate and get back to the state I was when you interrupted me.\"";
next;
@@ -63,8 +70,10 @@ L_intro:
mes "\"So, if you really want to prove that you are sorry, bring me 5 Concentration Potions and 10 Snake Tongues.\"";
next;
menu
- "Ok, but those potions will not help with your mental concent...",-,
+ "Ok, but those potions will not help with your mental concent...",L_MoreTalking,
"Sorry, but I can't help you right now.",L_canthelp;
+
+L_MoreTalking:
mes "[Miriam]";
mes "\"ah, ah, ah... I know what I am doing! Now run and get what I asked.\"";
set QUEST_MIRIAM, 2;
@@ -90,8 +99,10 @@ L_ask1:
mes "\"So, you are back... have you changed your mind about my request?\"";
next;
menu
- "Yes, I will get what you want!",-,
+ "Yes, I will get what you want!",L_WillGetItems,
"No, I have no time right now.",L_canthelp2;
+
+L_WillGetItems:
set QUEST_MIRIAM, 2;
mes "\"Good. So, run and get it!\"";
close;
@@ -103,7 +114,9 @@ L_ask2:
menu
"Yes, here it is!",L_getitems,
"What was that again?", L_ask3,
- "No, not yet.",-;
+ "No, not yet.",L_Hurry;
+
+L_Hurry:
mes "\"So please hurry up!\"";
close;
@@ -139,9 +152,10 @@ L_teach:
mes "\"Hmm... do you think you can learn the special Speed skill?\"";
next;
menu
- "Yes, I am prepared...", -,
+ "Yes, I am prepared...", L_Prepared,
"I am already fast.", L_notfast;
+L_Prepared:
set @agi, readparam(bAgi);
set @torso$, getitemname(getequipid(equip_torso));
set @weight, MaxWeight/Weight;
@@ -193,7 +207,9 @@ L_offer:
if (!(getskilllv(SKILL_POOL)))
goto L_noskill;
menu
- "Yes, I look really good in this " +@torso$+ ".",-;
+ "Yes, I look really good in this " +@torso$+ ".",L_TorsoNext;
+
+L_TorsoNext:
mes "[Miriam]";
mes "\"I see. I like the way you distributed your Character Points too... " +@agi+ " points to Agility! You really know how to prepare yourself for a good fight!\"";
next;
@@ -202,7 +218,7 @@ L_offer:
mes "\"So, if you pass a small test I can teach you a skill that will increase your walking speed! You will not be as fast as I am, but I am sure it will be useful.\"";
next;
menu
- "I'm in! What kind of test is it?",-,
+ "I'm in! What kind of test is it?",L_test,
"I don't think I need more speed right now",L_giveup;
L_test:
@@ -212,9 +228,10 @@ L_test:
mes "\"If you make it in a good time, I will teach you the special speeding skill. If not, you can always try again. So, are you ready?\"";
next;
menu
- "Yes, let's do it!",-,
+ "Yes, let's do it!",L_LetsDoThis,
"No, I need to stretch my muscles first!",L_stretch;
+L_LetsDoThis:
close2;
message strcharinfo(0), "Miriam quickly grabs your arm and pull you to the place where she is sitting.";
// Warp the player to the place where the NPC is defined, so he can't cheat.
@@ -252,7 +269,9 @@ L_testoffer:
next;
menu
"Yes!",L_test,
- "Not yet.",-;
+ "Not yet.",L_Close;
+
+L_Close:
close;
L_warning:
@@ -277,7 +296,7 @@ L_checktime:
goto L_warning;
if (QUEST_MIRIAM_run > 210)
goto L_tryagain;
- if (QUEST_MIRIAM_run <= 210)
+ //else
goto L_goodjob;
L_tryagain:
diff --git a/world/map/npc/033-1/barbarianinit.txt b/world/map/npc/033-1/barbarianinit.txt
index 09c7b1f0..f8a1423a 100644
--- a/world/map/npc/033-1/barbarianinit.txt
+++ b/world/map/npc/033-1/barbarianinit.txt
@@ -1,5 +1,7 @@
-|script|#barbarian033_1init|-1,
{
+ end;
+
OnInit:
set $@Q_Barbarians_MASK, NIBBLE_0_MASK;
set $@Q_Barbarians_SHIFT, NIBBLE_0_SHIFT;
@@ -20,4 +22,5 @@ OnInit:
set $@Q_Barbarians_Ambush12_flag, 0x00001000;
set $@Q_Barbarians_Ambush13_flag, 0x00002000;
set $@Q_Barbarians_Ambush14_flag, 0x00004000;
+ end;
}
diff --git a/world/map/npc/033-1/birrod.txt b/world/map/npc/033-1/birrod.txt
index b2af19a0..de0eecdd 100644
--- a/world/map/npc/033-1/birrod.txt
+++ b/world/map/npc/033-1/birrod.txt
@@ -83,9 +83,11 @@ L_Questions:
mes "[Birrod]";
mes "\"" + strcharinfo(0) + ", are you ready to become a full-fledged member of our tribe, the Mangarr?\"";
menu
- "Yes, what do I need to do?",-,
- "That's why I'm here.",-,
+ "Yes, what do I need to do?",L_Next,
+ "That's why I'm here.",L_Next,
"Sorry, I have to go. See you.",L_No_Member;
+
+L_Next:
mes "Birrod nods earnestly.";
mes "[Birrod]";
mes "\"I will ask you some questions.";
@@ -169,6 +171,7 @@ L_Success42:
mes "[Birrod]";
mes "\"An honorable goal.\"";
next;
+ goto L_Success4;
L_Success4:
mes "\"What do you think is a good reason to fight and kill?\"";
menu
@@ -189,6 +192,7 @@ L_Success52:
mes "[Birrod]";
mes "\"Yes, that's the most honorable reason.\"";
next;
+ goto L_Success5;
L_Success5:
getexp @minigame_exp, 0;
setskill SKILL_RAGING, 1;
diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt
index 6614f273..183d3651 100644
--- a/world/map/npc/033-1/kimarr.txt
+++ b/world/map/npc/033-1/kimarr.txt
@@ -50,23 +50,26 @@
next;
mes "\"You are very small and must be careful in these snowy mountains. It is cold, and dangerous monsters are here.\"";
menu
- "Hello, my name is " + strcharinfo(0) + " and I'm not small. I'm a great warrior!",-,
- "I'm " + strcharinfo(0) + ", don't underestimate me. I'm an experienced adventurer!",-,
- "I'm the legendary " + strcharinfo(0) + ", I've fought countless battles.",-;
+ "Hello, my name is " + strcharinfo(0) + " and I'm not small. I'm a great warrior!",L_Next,
+ "I'm " + strcharinfo(0) + ", don't underestimate me. I'm an experienced adventurer!",L_Next,
+ "I'm the legendary " + strcharinfo(0) + ", I've fought countless battles.",L_Next;
+L_Next:
mes "Kimarr seems to be amused.";
mes "[Kimarr]";
mes "\"Really? Do you want to prove it?\"";
menu
- "Sure! What shall I do?",-,
+ "Sure! What shall I do?",L_Continue,
"No, I don't need to prove anything.",L_Close;
+L_Continue:
mes "\"Every young member of our tribe proves his or her worth by hunting monsters.\"";
next;
mes "\"The first monsters to hunt are Fluffies. Fluffies give a good meal for a young person and the fur can be used to make clothes and blankets.\"";
next;
set @state, 1;
callsub S_Update_Mask;
+ goto L_Explain_Game;
L_Explain_Game:
mes "[Kimarr]";
@@ -82,6 +85,7 @@ L_Explain_Game:
next;
mes "\"Drop more food when no Fluffies are left.\"";
next;
+ goto L_Ask;
// dialog starts here if you've asked about it but not done it (@state == 1)
L_Ask:
@@ -91,8 +95,7 @@ L_Ask:
"Yeah, let's start!",L_Game,
"Could you explain again?",L_Explain_Game,
"Can you tell me who were the most successful Fluffy hunters?",L_ShowRecord,
- "Maybe later.",-;
- goto L_Close;
+ "Maybe later.",L_Close;
L_AlreadyGotReward:
npctalk strcharinfo(0) + " killed " + $@Fluffy_Kills + " Fluffies and has once again proven to be a good hunter.";
@@ -256,6 +259,7 @@ L_BeginHunting:
set $@Fluffy_Spawn, 100 - $@Fluffy_Alive;
if ($@Fluffy_Spawn <= 0)
goto L_ContinueTimer;
+ goto L_SpawnFluffies;
L_SpawnFluffies:
areamonster "033-1.gat", 79, 29, 88, 42, "", 1089, $@Fluffy_Spawn, "Kimarr::OnFluffyDeath";
@@ -311,7 +315,6 @@ OnFluffyDeath:
if (attachrid($@Fluffy_FighterID) == 1)
goto L_Killedall;
goto L_GotOut;
- end;
L_Punish:
if (@MobID == 1089)
@@ -354,6 +357,8 @@ L_MaybeRecordScore:
if ($@Fluffy_Kills < $@Fluffy_Min)
goto L_NotGoodEnough;
set @rank, 0;
+ goto L_MaybeInsertNext;
+
L_MaybeInsertNext:
if ($@Fluffy_Kills > $Record_Fluffy_Kills[@rank])
goto L_InsertScore;
@@ -367,6 +372,8 @@ L_MaybeInsertNext:
L_InsertScore:
set @loop, @rank;
+ goto L_FindLastScore;
+
L_FindLastScore:
// comment this out to allow the player to be in the list more than once
// though actually, it might be better just to assume the list is full
@@ -405,6 +412,8 @@ L_NotGoodEnough:
L_ShowRecord:
set @rank, 0;
set @loop, 0;
+ goto L_ShowNextRecord;
+
L_ShowNextRecord:
if ($Record_Fluffy_Kills[@loop] == 0)
goto L_Close;
diff --git a/world/map/npc/033-1/yerrnk.txt b/world/map/npc/033-1/yerrnk.txt
index c2ae904b..e04a8610 100644
--- a/world/map/npc/033-1/yerrnk.txt
+++ b/world/map/npc/033-1/yerrnk.txt
@@ -52,6 +52,7 @@ L_Sorrow:
mes "\"I noticed that you're getting along with Kimarr and Birrod very well. That's good.\"";
mes "He smiles, but then an expression of worry returns to his face.";
next;
+ goto L_Mission;
L_Mission:
mes "[Yerrnk]";
@@ -85,29 +86,26 @@ L_Birrod:
goto L_Not_Ready;
mes "\"Please talk to Birrod to receive the initiation rite to become a warrior of the Mangarr.\"";
menu
- "Alright.",-,
+ "Alright.",L_Close,
"Can you tell me again what you are here for?",L_Mission;
- goto L_Close;
L_Not_Ready:
mes "[Yerrnk]";
mes "\"But you're not yet ready to become a fully accepted warrior of our tribe.";
mes "You should travel the world to gain the ability to focus on your inner strength.\"";
menu
- "Alright.",-,
+ "Alright.",L_Close,
"What are you doing down here?",L_Mission;
- goto L_Close;
L_Warrior:
mes "[Yerrnk]";
mes "\"" + strcharinfo(0) + ", welcome back!";
mes "Do you have any question?\"";
menu
- "Everything's all right, thanks.",-,
+ "Everything's all right, thanks.",L_Close,
"What are you doing down here?",L_Mission,
"Can you explain the Raging ability to me?",L_Skill,
"Do you have a task for me?",L_Task;
- goto L_Close;
L_Skill:
mes "[Yerrnk]";
@@ -148,10 +146,9 @@ L_Hunt_Yeti:
mes "\"That Yeti is still roaming in the forest west of here.";
mes "To find the house it's prowling around, enter the forest and then go first south and then west.\"";
menu
- "I'm on it.",-,
+ "I'm on it.",L_Close,
"What are you doing down here?",L_Mission,
"Can you explain the Raging ability to me?",L_Skill;
- goto L_Close;
L_Yeti_Success:
mes "[Yerrnk]";
@@ -169,8 +166,7 @@ L_Done:
menu
"What's the reason you came here?",L_Mission,
"Can you explain the raging ability to me?",L_Skill,
- "(Leave)",-;
- goto L_Close;
+ "(Leave)",L_Close;
L_Close:
set @state, 0;
diff --git a/world/map/npc/034-1/ambushs.txt b/world/map/npc/034-1/ambushs.txt
index 787e99ad..f309b61b 100644
--- a/world/map/npc/034-1/ambushs.txt
+++ b/world/map/npc/034-1/ambushs.txt
@@ -27,7 +27,7 @@ end;
OnAmbush:
if (attachrid($@Ambush0VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush0_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 115, 56, 121, 62, "", 1090, $@Ambush0_Spawn, "#Ambush0::OnWolvernDeath";
@@ -45,6 +45,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush0_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush0VictimID, 0;
end;
@@ -85,7 +87,7 @@ end;
OnAmbush:
if (attachrid($@Ambush1VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush1_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 91, 88, 97, 94, "", 1090, $@Ambush1_Spawn, "#Ambush1::OnWolvernDeath";
@@ -103,6 +105,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush1_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush1VictimID, 0;
end;
@@ -143,7 +147,7 @@ end;
OnAmbush:
if (attachrid($@Ambush2VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush2_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 119, 32, 125, 38, "", 1090, $@Ambush2_Spawn, "#Ambush2::OnWolvernDeath";
@@ -161,6 +165,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush2_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush2VictimID, 0;
end;
@@ -201,7 +207,7 @@ end;
OnAmbush:
if (attachrid($@Ambush3VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush3_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 80, 41, 86, 47, "", 1090, $@Ambush3_Spawn, "#Ambush3::OnWolvernDeath";
@@ -219,6 +225,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush3_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush3VictimID, 0;
end;
@@ -259,7 +267,7 @@ end;
OnAmbush:
if (attachrid($@Ambush4VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush4_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 71, 25, 77, 31, "", 1090, $@Ambush4_Spawn, "#Ambush4::OnWolvernDeath";
@@ -277,6 +285,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush4_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush4VictimID, 0;
end;
@@ -317,7 +327,7 @@ end;
OnAmbush:
if (attachrid($@Ambush5VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush5_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 23, 41, 29, 47, "", 1090, $@Ambush5_Spawn, "#Ambush5::OnWolvernDeath";
@@ -335,6 +345,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush5_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush5VictimID, 0;
end;
@@ -375,7 +387,7 @@ end;
OnAmbush:
if (attachrid($@Ambush6VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush6_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 47, 44, 53, 50, "", 1090, $@Ambush6_Spawn, "#Ambush6::OnWolvernDeath";
@@ -393,6 +405,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush6_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush6VictimID, 0;
end;
@@ -433,7 +447,7 @@ end;
OnAmbush:
if (attachrid($@Ambush7VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush7_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 33, 59, 39, 65, "", 1090, $@Ambush7_Spawn, "#Ambush7::OnWolvernDeath";
@@ -451,6 +465,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush7_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush7VictimID, 0;
end;
@@ -491,7 +507,7 @@ end;
OnAmbush:
if (attachrid($@Ambush8VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush8_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 23, 92, 29, 98, "", 1090, $@Ambush8_Spawn, "#Ambush8::OnWolvernDeath";
@@ -509,6 +525,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush8_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush8VictimID, 0;
end;
@@ -549,7 +567,7 @@ end;
OnAmbush:
if (attachrid($@Ambush9VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush9_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 53, 88, 59, 94, "", 1090, $@Ambush9_Spawn, "#Ambush9::OnWolvernDeath";
@@ -567,6 +585,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush9_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush9VictimID, 0;
end;
@@ -607,7 +627,7 @@ end;
OnAmbush:
if (attachrid($@Ambush10VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush10_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 62, 63, 68, 69, "", 1090, $@Ambush10_Spawn, "#Ambush10::OnWolvernDeath";
@@ -625,6 +645,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush10_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush10VictimID, 0;
end;
@@ -665,7 +687,7 @@ end;
OnAmbush:
if (attachrid($@Ambush11VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush11_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 83, 65, 89, 71, "", 1090, $@Ambush11_Spawn, "#Ambush11::OnWolvernDeath";
@@ -683,6 +705,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush11_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush11VictimID, 0;
end;
@@ -723,7 +747,7 @@ end;
OnAmbush:
if (attachrid($@Ambush12VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush12_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 98, 76, 104, 82, "", 1090, $@Ambush12_Spawn, "#Ambush12::OnWolvernDeath";
@@ -741,6 +765,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush12_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush12VictimID, 0;
end;
@@ -781,7 +807,7 @@ end;
OnAmbush:
if (attachrid($@Ambush13VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush13_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 121, 85, 127, 91, "", 1090, $@Ambush13_Spawn, "#Ambush13::OnWolvernDeath";
@@ -799,6 +825,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush13_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush13VictimID, 0;
end;
@@ -839,7 +867,7 @@ end;
OnAmbush:
if (attachrid($@Ambush14VictimID) == 0)
- L_Clean;
+ goto L_Clean;
set $@Ambush14_Spawn, 3 + rand(2);
message strcharinfo(0), "An ambush!";
areamonster "034-1.gat", 114, 100, 120, 106, "", 1090, $@Ambush14_Spawn, "#Ambush14::OnWolvernDeath";
@@ -857,6 +885,8 @@ OnWolvernDeath:
goto L_Count;
if ($@Ambush14_Spawn > 0)
end;
+ goto L_Clean;
+
L_Clean:
set $@Ambush14VictimID, 0;
end;
diff --git a/world/map/npc/034-1/yetiSpawn.txt b/world/map/npc/034-1/yetiSpawn.txt
index ebf7b171..3bcbe658 100644
--- a/world/map/npc/034-1/yetiSpawn.txt
+++ b/world/map/npc/034-1/yetiSpawn.txt
@@ -42,6 +42,7 @@ OnYetiDeath:
callsub S_Update_Mask;
set BOSS_POINTS, BOSS_POINTS + 40;
message strcharinfo(0), "You defeated the Yeti and gain 40 Boss Points giving you a total of " + BOSS_POINTS + ".";
+ goto L_End;
L_End:
set $@Yerrnk_Yeti_Active, 0;
diff --git a/world/map/npc/042-1/hasan.txt b/world/map/npc/042-1/hasan.txt
index 581eb83a..fa27b305 100644
--- a/world/map/npc/042-1/hasan.txt
+++ b/world/map/npc/042-1/hasan.txt
@@ -27,11 +27,14 @@
mes "\"Hey! You can't pass here.\"";
next;
menu
- "Why not?",-,
- "Who says that?",-;
+ "Why not?",L_Next,
+ "Who says that?",L_Next;
+
+L_Next:
mes "[Unfriendly Guy]";
mes "\"I, Hasan the Mighty, have decided to put a toll on this path.\"";
next;
+ goto L_Toll;
L_Toll:
mes "[Hasan]";
@@ -87,7 +90,9 @@ L_Trick:
next;
menu
"I don't have that much money!",L_NoPay,
- "No. (Scratch your head.)",-;
+ "No. (Scratch your head.)",L_ScratchHead;
+
+L_ScratchHead:
if ($@ScorpionFighter)
goto L_Wait;
mes "While you're scratching your head, you see Kaan coming nearer to the cliff above you.";
@@ -117,8 +122,10 @@ L_Thank:
mes "\"You want to go to the bazaar, right? Shall I tell you how to get there?\"";
next;
menu
- "Sure, thanks.",-,
+ "Sure, thanks.",L_HasanThanks,
"I'll try to find the way myself.",L_Explore;
+
+L_HasanThanks:
mes "[Hasan]";
mes "\"Ok, when you leave here follow the road past the docks until you reach the old city gates.\"";
next;
diff --git a/world/map/npc/042-1/kaan.txt b/world/map/npc/042-1/kaan.txt
index 027e5895..a5f9f530 100644
--- a/world/map/npc/042-1/kaan.txt
+++ b/world/map/npc/042-1/kaan.txt
@@ -39,8 +39,9 @@ L_Tanisha:
goto L_Close;
next;
menu
- "Yes, I helped her with the maggots.",-,
- "Yeah, and she's done with the maggots.",-;
+ "Yes, I helped her with the maggots.",L_Tanisha3,
+ "Yeah, and she's done with the maggots.",L_Tanisha3;
+
L_Tanisha3:
mes "[Kaan]";
mes "\"Ah, that is good news.";
@@ -56,8 +57,10 @@ L_Tanisha3:
mes "\"I built the fence down south of here to keep them out.\"";
next;
menu
- "Impressive! Just a bit... skewed.",-,
- "Wow, it looks very - ahm, unconventional.",-;
+ "Impressive! Just a bit... skewed.",L_Next,
+ "Wow, it looks very - ahm, unconventional.",L_Next;
+
+L_Next:
mes "[Kaan]";
mes "\"Well, it keeps the scorpions out. That's all that matters.\"";
next;
@@ -74,6 +77,7 @@ L_Tanisha3:
menu
"A guy named Hasan won't let me enter Tulimshar.",L_Hasan,
"Thanks for the advice.",L_Close;
+ goto L_Out;
L_Out:
mes "[Kaan]";
@@ -97,6 +101,7 @@ L_Hasan:
mes "\"We should think about some kind of trick. Ah, if only I knew his weak point.\"";
set kaan, 3;
next;
+ goto L_Trick;
L_Trick:
mes "[Kaan]";
@@ -106,12 +111,15 @@ L_Trick:
goto L_Close;
next;
menu
- "He's afraid of scorpions.",-,
+ "He's afraid of scorpions.",L_Continue,
"No idea.",L_Close;
+
+L_Continue:
mes "[Kaan]";
mes "\"Scorpions?! Right! How could I forget?";
mes "When he was a child, he nearly died because he fell into a scorpion nest.\"";
next;
+ goto L_Explain;
L_Explain:
mes "\"Ok, then here's the plan:";
diff --git a/world/map/npc/042-2/sorfina.txt b/world/map/npc/042-2/sorfina.txt
index 20c04adf..a7fd19ac 100644
--- a/world/map/npc/042-2/sorfina.txt
+++ b/world/map/npc/042-2/sorfina.txt
@@ -10,6 +10,7 @@
if (sorfina == 1) goto L_Carpet;
callfunc "GameRules";
+ goto L_Start;
L_Start:
mes "You open your eyes.";
@@ -46,6 +47,7 @@ L_Tut:
mes "\"You still look rather shaky.";
mes "You're not used to the hot weather, right?\"";
next;
+ goto L_Carpet;
L_Carpet:
mes "[Sorfina]";
@@ -226,7 +228,9 @@ L_SkipTut:
next;
menu
"Thinking about it twice... please tell me.",L_Tut,
- "Yeah, but thanks for the offer. Bye.",-;
+ "Yeah, but thanks for the offer. Bye.",L_Bye;
+
+L_Bye:
mes "[Sorfina]";
mes "\"Alright, if you say so. But take at least this.";
callfunc "TutorialCompleted";
diff --git a/world/map/npc/042-2/tanisha.txt b/world/map/npc/042-2/tanisha.txt
index de93b8d5..c54a504c 100644
--- a/world/map/npc/042-2/tanisha.txt
+++ b/world/map/npc/042-2/tanisha.txt
@@ -20,13 +20,16 @@
mes "\"Are you feeling better?\"";
next;
menu
- "Yes, thank you.",-,
- "Yeah, but all my stuff is gone.",-;
+ "Yes, thank you.",L_Next,
+ "Yeah, but all my stuff is gone.",L_Next;
+
+L_Next:
mes "[Tanisha]";
mes "\"I'm glad you're feeling better. It was really bad luck what happened to you.";
mes "Hey, I have an idea.\"";
next;
set tanisha, 1;
+ goto L_Maggots;
L_Maggots:
mes "[Tanisha]";
@@ -37,8 +40,10 @@ L_Maggots:
mes "What do you say?\"";
next;
menu
- "Sure!",-,
+ "Sure!",L_Continue,
"That's your job.",L_Close;
+
+L_Continue:
mes "[Tanisha]";
mes "\"Wonderful!\"";
// since the check happens here, it is actually possible to have
@@ -46,7 +51,7 @@ L_Maggots:
// but that's not a BIG problem
if (getareausers("042-2.gat", 30, 85, 36, 89) >= $@Maggot_MaxHunters)
goto L_Crowded;
- next;
+ goto L_Fight_Again;
L_Fight_Again:
mes "\"Ok, listen what to do.";
@@ -71,6 +76,7 @@ L_GetFightItems:
getitem "Knife", 1;
getitem "SlingShot", 1;
getitem "SlingBullet", 100;
+ goto L_ContinueFight;
L_ContinueFight:
set tanisha, 2;
@@ -79,6 +85,7 @@ L_ContinueFight:
if (getareausers("042-2.gat", 30, 85, 36, 89) == 0)
initnpctimer;
warp "042-2.gat", 33, 87;
+ goto L_Summon;
L_Summon:
areamonster "042-2.gat", 30, 85, 36, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
@@ -93,6 +100,7 @@ L_Stats:
next;
mes "\"Press F2 or click the Status button in the bar at the upper right to see your status window. There you can distribute your points on six different properties.\"";
next;
+ goto L_StatsRe;
L_StatsRe:
mes "\"Strength makes you hit harder and you can carry more weight.\"";
@@ -118,6 +126,7 @@ L_StatsRe:
if (tanisha != 3)
goto L_Close;
+ goto L_Money;
L_Money:
next;
@@ -126,6 +135,7 @@ L_Money:
mes "You can have my pocket money. Here.\"";
set Zeny, Zeny + 5;
next;
+ goto L_Advice;
L_Advice:
mes "\"When you go to Tulimshar, you should see Bernard. He can make a delicious soup!";
@@ -235,8 +245,10 @@ L_Fail:
mes "Do you want to try it again?\"";
next;
menu
- "Sure!", -,
+ "Sure!", L_TryAgain,
"No, I need a rest.", L_Close;
+
+L_TryAgain:
if (getareausers("042-2.gat", 30, 85, 36, 89) >= $@Maggot_MaxHunters)
goto L_Crowded;
goto L_Fight_Again;
@@ -299,4 +311,5 @@ L_Close:
OnInit:
set $@Maggot_MaxHunters, 4;
areamonster "042-2.gat", 30, 85, 36, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
+ end;
}
diff --git a/world/map/npc/048-2/bluesageConfig.txt b/world/map/npc/048-2/bluesageConfig.txt
index cb237441..58c8e27b 100644
--- a/world/map/npc/048-2/bluesageConfig.txt
+++ b/world/map/npc/048-2/bluesageConfig.txt
@@ -53,6 +53,8 @@
-|script|#bluesageconfig|-1,
{
+ end;
+
OnInit:
set $@Q_BlueSageMinimumLevel, 60;
@@ -92,6 +94,7 @@ OnInit:
set $@BlueSageSlime4_Amount, 3;
set $@BlueSageSlime5_Amount, 2;
set $@BlueSageSlime6_Amount, 1;
+ end;
}
function|script|updateBlueSageBookPages|,
diff --git a/world/map/npc/048-2/helperAccused.txt b/world/map/npc/048-2/helperAccused.txt
index 995aa998..96a6060b 100644
--- a/world/map/npc/048-2/helperAccused.txt
+++ b/world/map/npc/048-2/helperAccused.txt
@@ -25,7 +25,9 @@
menu
"I'm just having a look around.",L_Close,
"Sorry, I didn't mean to bother you.",L_Close,
- "Why aren't you downstairs, helping everyone to clean up?",-;
+ "Why aren't you downstairs, helping everyone to clean up?",L_Next;
+
+L_Next:
mes "[Peetu]";
mes "\"I would! But I'm ... under preliminary suspension.\"";
mes "He looks close to tears.";
@@ -35,16 +37,20 @@
next;
mes "He seems to be having a nervous breakdown, as he latches onto you and starts sobbing on your shoulder.";
menu
- "(Try to console him)",-,
- "(Shake him and tell him to pull himself together)",-,
+ "(Try to console him)",L_More,
+ "(Shake him and tell him to pull himself together)",L_More,
"(Push him away from you and leave.)",L_Close;
+
+L_More:
mes "He calms down a bit.";
mes "[Peetu]";
mes "\"Uh. You're probably right. I'm very sorry. I'm just... You know, I wanted to become a scholar of the sages, studying and... Oh, how could I mess that up? Did you see the library? It caused so much damage! What else should they do other than kick me out?\"";
menu
- "Maybe you should talk to your chief about that?",-,
- "It doesn't make much sense to draw overhasty conclusions.",-,
- "Do you have a clue about what went wrong?",-;
+ "Maybe you should talk to your chief about that?",L_Less,
+ "It doesn't make much sense to draw overhasty conclusions.",L_Less,
+ "Do you have a clue about what went wrong?",L_Less;
+
+L_Less:
mes "[Peetu]";
mes "\"Well... but... I mean... I don't know... ";
mes "I have an idea! Would you... ahm, would you talk to Chief Oskari for me? And ask him what he plans to do about me? I... I just don't feel capable of doing that myself right now. I'll try to pull myself together in the meanwhile.\"";
@@ -62,14 +68,18 @@ L_Query:
mes "[Peetu]";
mes "\"Did you talk to Chief Oskari?\"";
menu
- "Yes, and he doesn't plan to fire you.",-,
+ "Yes, and he doesn't plan to fire you.",L_Continue,
"Not yet.",L_Close;
+
+L_Continue:
mes "You tell Peetu that Chief Oskari has a good opinion of him and explain your task to find out what exactly happened.";
next;
mes "[Peetu]";
mes "\"Alright, I understand. You see, I'm very confused too, because I usually pay a lot of attention to my work. Especially when doing something as delicate as sealing away the slimes for the night.\"";
menu
- "Can you describe to me what exactly you did?",-;
+ "Can you describe to me what exactly you did?",L_TextWall;
+
+L_TextWall:
mes "[Peetu]";
mes "\"Well, ok, sure. So, as you know we're doing some research on the nature of slimes, their connection to minerals and gemstones, their breeding behaviour, and, well, ahm, doing some magical experiments to analyze their reactions to different kinds of magic.";
mes "These experiments caused some ... mutations, and the Blue and White Slimes developed some behaviour different from the slimes of other colors, making them more dangerous.\"";
@@ -109,8 +119,10 @@ L_Investigate:
if (@inventorylist_count == 100)
goto L_TooMany;
menu
- "Yes, I have already talked with Chief Oskari.",-,
+ "Yes, I have already talked with Chief Oskari.",L_ReallyMore,
"Not yet.",L_Close;
+
+L_ReallyMore:
mes "You explain your gained insights to Peetu and what conclusions Chief Oskari drew.";
mes "[Peetu]";
mes "\"Oh, I'm so relieved!";
diff --git a/world/map/npc/048-2/helperBookpages1.txt b/world/map/npc/048-2/helperBookpages1.txt
index 1890be61..5d64ff5d 100644
--- a/world/map/npc/048-2/helperBookpages1.txt
+++ b/world/map/npc/048-2/helperBookpages1.txt
@@ -24,7 +24,9 @@
goto L_Close;
menu
"Good luck with that. See you in ten years or something.",L_Investigate,
- "Can I help somehow?",-;
+ "Can I help somehow?",L_Next;
+
+L_Next:
mes "[Ensio]";
mes "\"Oh, would you? That'd be great! You see, the slimes ate most of the books and it is difficult to retrieve the bookpages.";
mes "If you feel capable of this task, you could go out to hunt the Blue and White Slimes, to get the bookpages back from them.\"";
@@ -57,9 +59,10 @@ L_Almost:
L_Progress:
mes "\"Did you get some bookpages from the slimes?\"";
menu
- "Yes, have a look.",-,
+ "Yes, have a look.",L_Continue,
"No.",L_Investigate;
+L_Continue:
if (countitem("BookPage") < 1)
goto L_NoItem;
delitem "BookPage", 1;
diff --git a/world/map/npc/048-2/helperBookpages2.txt b/world/map/npc/048-2/helperBookpages2.txt
index 4eb44feb..a337dfd7 100644
--- a/world/map/npc/048-2/helperBookpages2.txt
+++ b/world/map/npc/048-2/helperBookpages2.txt
@@ -17,14 +17,18 @@
mes "\"Oh, hey. Welcome to the library, or what's left of it.\"";
mes "She sighs.";
menu
- "What are you doing?",-,
+ "What are you doing?",L_Next,
"You seem to be busy. See you.",L_Close;
+
+L_Next:
mes "[Henriikka]";
mes "\"We're trying to repair the books by collecting the ripped out bookpages and sorting them and copying them for new books. It's a lot to do, and after being eaten by a slime they stink!";
mes "And a lot of pages are missing, since most of the slimes escaped. I suppose we'll have to go out and hunt them once we're done here.\"";
menu
- "Maybe I can help with that?",-,
+ "Maybe I can help with that?",L_Collect,
"Good luck.",L_Close;
+
+L_Collect:
if (BaseLevel < $@Q_BlueSageMinimumLevel)
goto L_Careful;
mes "[Henriikka]";
diff --git a/world/map/npc/048-2/helperChief.txt b/world/map/npc/048-2/helperChief.txt
index 1f8de65f..9705e937 100644
--- a/world/map/npc/048-2/helperChief.txt
+++ b/world/map/npc/048-2/helperChief.txt
@@ -17,9 +17,10 @@
if (@investigate == 0)
goto L_Close;
menu
- "Peetu asked me to talk to you about his mishap.",-,
+ "Peetu asked me to talk to you about his mishap.",L_Next,
"Ok, see you.",L_Close;
+L_Next:
mes "You tell him about your conversation with Peetu, how he's blaming himself and his worries about losing his job.";
next;
mes "Oskari keeps silent for a moment after you finish, pondering. Then he talks to you.";
@@ -64,8 +65,10 @@ L_Investigate:
mes "[Oskari]";
mes "\"I think you revealed some important connections. I need to notify Nikolai and the other Sages.\"";
menu
- "I'm confused now.",-,
- "What are you talking about?",-;
+ "I'm confused now.",L_Continue,
+ "What are you talking about?",L_Continue;
+
+L_Continue:
mes "[Oskari]";
mes "\"I'm sorry. I think you deserve an explanation. You see, the Sages of Kaizei are a circle of wise wizards who work together for the prosperity of this continent.";
mes "Recently there was some conflict among the Sages which caused one of the members to leave the circle. It's all very unfortunate.";
@@ -84,8 +87,9 @@ L_GoodJob:
mes "\"Thanks again for your investigations.\"";
menu
"You're welcome.",L_Close,
- "Can you tell me something about the Sages?",-;
+ "Can you tell me something about the Sages?",L_MoreText;
+L_MoreText:
mes "[Oskari]";
mes "\"Oh, sure. I'm a bit busy right now, but you were a great help, so I think I can take a few minutes for you. What do you want to know?\"";
menu
diff --git a/world/map/npc/048-2/helperCleaning1.txt b/world/map/npc/048-2/helperCleaning1.txt
index 2257cf49..58a2f684 100644
--- a/world/map/npc/048-2/helperCleaning1.txt
+++ b/world/map/npc/048-2/helperCleaning1.txt
@@ -18,8 +18,10 @@
if (BaseLevel < $@Q_BlueSageMinimumLevel)
goto L_Close;
menu
- "I can fight them.",-,
+ "I can fight them.",L_Next,
"Ok, thanks for the warning.",L_Investigate;
+
+L_Next:
mes "Pyry seems surprised.";
mes "[Pyry]";
mes "\"That... I didn't think about this possibility. But it'd be a great help!";
diff --git a/world/map/npc/048-2/helperCleaning5.txt b/world/map/npc/048-2/helperCleaning5.txt
index 6114f1d0..92cc1923 100644
--- a/world/map/npc/048-2/helperCleaning5.txt
+++ b/world/map/npc/048-2/helperCleaning5.txt
@@ -14,7 +14,9 @@
mes "[Mirjami]";
mes "\"Where is it? Everything's upside down. These terrible slimes.\"";
menu
- "What are you doing?",-;
+ "What are you doing?",L_Next;
+
+L_Next:
mes "[Mirjami]";
mes "\"Oh? I'm just searching for some cleaning supplies. They must be somewhere around here, but everything went upside down when the slimes escaped.\"";
goto L_Investigate;
diff --git a/world/map/npc/048-2/helperJanitor.txt b/world/map/npc/048-2/helperJanitor.txt
index 42141f86..68466dbb 100644
--- a/world/map/npc/048-2/helperJanitor.txt
+++ b/world/map/npc/048-2/helperJanitor.txt
@@ -36,7 +36,9 @@ L_ShortHello:
if ((@investigate != 2) && (@investigate != 5) && (@investigate != 8))
goto L_Close;
menu
- "Can you tell me if there were any unusual visitors before the accident?",-;
+ "Can you tell me if there were any unusual visitors before the accident?",L_Next;
+
+L_Next:
mes "[Elias]";
mes "\"Mh, let me think. There were quite a few visitors with different concerns, but that's usual at this time of the year.";
mes "One of them was a bit odd, he was wearing a mask and had a strange way of talking. He said he comes from Thermin, which is a mining town in the west. I figured his face might have gotten deformed in some mining accident, but I didn't ask, that would've been rude.";
diff --git a/world/map/npc/048-2/helperMInk.txt b/world/map/npc/048-2/helperMInk.txt
index 6ab6b391..0b101fb3 100644
--- a/world/map/npc/048-2/helperMInk.txt
+++ b/world/map/npc/048-2/helperMInk.txt
@@ -22,17 +22,20 @@
if (BaseLevel < $@Q_BlueSageMinimumLevel)
goto L_Close;
menu
- "What do you need?",-,
+ "What do you need?",L_Need,
"Not my problem.",L_Investigate;
+
+L_Need:
mes "[Eevert]";
mes "\"I'm doing the covers and illustrations for the new books we create from the pieces of the old ones. But due to all of the chaos from when the slimes escaped, most of the phials of colored ink were broken. How am I supposed to do the illustrations without color?\"";
next;
mes "\"I think I'll need at least " + @water_amount + " Bottles of Water, " + @spectre_amount + " Spectre Powders, " + @poltergeist_amount + " Poltergeist Powders, " + @wisp_amount + " Wisp Powders and " + @ironpowder_amount + " Iron Powders to create new ink.\"";
menu
- "I have those with me!",-,
+ "I have those with me!",L_TurnIn,
"I'll try to get those.",L_Close,
"Too bad.",L_Investigate;
+L_TurnIn:
if ((countitem("BottleOfWater") < @water_amount) || (countitem("SpectrePowder") < @spectre_amount) || (countitem("PoltergeistPowder") < @poltergeist_amount) || (countitem("WispPowder") < @wisp_amount) || (countitem("IronPowder") < @ironpowder_amount))
goto L_NoItem;
delitem "BottleOfWater", @water_amount;
diff --git a/world/map/npc/048-2/helperMReed.txt b/world/map/npc/048-2/helperMReed.txt
index 724bd463..7988d97a 100644
--- a/world/map/npc/048-2/helperMReed.txt
+++ b/world/map/npc/048-2/helperMReed.txt
@@ -15,15 +15,18 @@
mes "[Kullervo]";
mes "\"Oh no! What should we do now?\"";
menu
- "What's wrong?",-;
+ "What's wrong?",L_Foo;
+L_Foo:
mes "[Kullervo]";
mes "\"We're nearly out of paper. The new books require so much material... And it's not easy to get Reed Bundles to create new paper.\"";
if (BaseLevel < $@Q_BlueSageMinimumLevel)
goto L_Close;
menu
- "I have some.",-,
+ "I have some.",L_TurnIn,
"I'll try to get some.",L_Close,
"Too bad.",L_Investigate;
+
+L_TurnIn:
if(countitem("ReedBundle") < @reed_amount)
goto L_NoItem;
delitem "ReedBundle", @reed_amount;
diff --git a/world/map/npc/048-2/helperMSilk.txt b/world/map/npc/048-2/helperMSilk.txt
index 67df87cb..cda5054c 100644
--- a/world/map/npc/048-2/helperMSilk.txt
+++ b/world/map/npc/048-2/helperMSilk.txt
@@ -22,9 +22,11 @@ L_Quest:
mes "\"This is going to be difficult...";
mes "Oh, hello. You don't have " + @silk_amount + " Silk Cocoons with you, do you? I need them for the book covers and binding of some of the more valuable books we're trying to recreate.\"";
menu
- "I have!",-,
+ "I have!",L_TurnIn,
"I haven't, but I can try to get some.",L_Investigate,
"No.",L_Investigate;
+
+L_TurnIn:
if(countitem("SilkCocoon") < @silk_amount)
goto L_NoItem;
delitem "SilkCocoon", @silk_amount;
diff --git a/world/map/npc/048-2/helperMYetiClaw.txt b/world/map/npc/048-2/helperMYetiClaw.txt
index 59a86436..90b583a4 100644
--- a/world/map/npc/048-2/helperMYetiClaw.txt
+++ b/world/map/npc/048-2/helperMYetiClaw.txt
@@ -21,16 +21,20 @@ L_Quest:
mes "[Santeri]";
mes "\"Welcome. Are you an adventurer? I could use some help.\"";
menu
- "I am. What heroic action is needed?",-,
- "How can I help?",-,
+ "I am. What heroic action is needed?",L_HeroicAction,
+ "How can I help?",L_HeroicAction,
"I'm not interested.",L_Close;
+
+L_HeroicAction:
mes "[Santeri]";
mes "\"You see, we're working on repairing all of the damaged books and creating new ones for those that were lost.";
mes "Therefore we need a lot of glue, but our supplies are nearly used up. I need " + @claw_amount + " Yeti Claws as ingredient to make new glue. Do you have that?\"";
menu
- "Yes, here you go.",-,
+ "Yes, here you go.",L_TurnIn,
"I need to look in my storage.",L_Close,
"No, sorry.",L_Investigate;
+
+L_TurnIn:
if(countitem("YetiClaw") < @claw_amount)
goto L_NoItem;
delitem "YetiClaw", @claw_amount;
diff --git a/world/map/npc/048-2/sageNikolai.txt b/world/map/npc/048-2/sageNikolai.txt
index ed167bc1..9ce3e719 100644
--- a/world/map/npc/048-2/sageNikolai.txt
+++ b/world/map/npc/048-2/sageNikolai.txt
@@ -66,6 +66,7 @@ L_Hints:
set @choice_idx[@choices_nr], @C_startBookpages;
set @choice$[@choices_nr], "I heard the slimes ate most of the books...";
set @choices_nr, @choices_nr + 1;
+ goto L_NoStartBookpages;
L_NoStartBookpages:
if ((@bookpages == 0) || (@bookpages == 31))
@@ -73,6 +74,7 @@ L_NoStartBookpages:
set @choice_idx[@choices_nr], @C_bookpages;
set @choice$[@choices_nr], "I'm collecting lost bookpages.";
set @choices_nr, @choices_nr + 1;
+ goto L_NoBookpages;
L_NoBookpages:
if (@material > 0)
@@ -80,6 +82,7 @@ L_NoBookpages:
set @choice_idx[@choices_nr], @C_startMaterials;
set @choice$[@choices_nr], "There were many valuable books in your library, right?";
set @choices_nr, @choices_nr + 1;
+ goto L_NoStartMaterials;
L_NoStartMaterials:
if ((@material == 0) || (@material == 15))
@@ -87,6 +90,7 @@ L_NoStartMaterials:
set @choice_idx[@choices_nr], @C_materials;
set @choice$[@choices_nr], "I brought some material to repair the books.";
set @choices_nr, @choices_nr + 1;
+ goto L_NoMaterials;
L_NoMaterials:
if (@slimes > 0)
@@ -94,6 +98,7 @@ L_NoMaterials:
set @choice_idx[@choices_nr], @C_startSlimes;
set @choice$[@choices_nr], "Those slimes really caused a mess!";
set @choices_nr, @choices_nr + 1;
+ goto L_NoStartSlimes;
L_NoStartSlimes:
if ((@slimes == 0) || (@slimes == 255))
@@ -101,6 +106,7 @@ L_NoStartSlimes:
set @choice_idx[@choices_nr], @C_slimes;
set @choice$[@choices_nr], "I'm hunting the remaining slimes in the library.";
set @choices_nr, @choices_nr + 1;
+ goto L_NoSlimes;
L_NoSlimes:
if (@investigate > 0)
@@ -108,6 +114,7 @@ L_NoSlimes:
set @choice_idx[@choices_nr], @C_startInvestigate;
set @choice$[@choices_nr], "How did this all happen?";
set @choices_nr, @choices_nr + 1;
+ goto L_NoStartInvestigate;
L_NoStartInvestigate:
if ((@investigate < 2) || (@investigate > 11))
@@ -115,6 +122,7 @@ L_NoStartInvestigate:
set @choice_idx[@choices_nr], @C_investigate;
set @choice$[@choices_nr], "I'm trying to find out how that accident could've happened.";
set @choices_nr, @choices_nr + 1;
+ goto L_NoInvestigate;
L_NoInvestigate:
if (@investigate != 11)
@@ -122,23 +130,25 @@ L_NoInvestigate:
set @choice_idx[@choices_nr], @C_investigate2;
set @choice$[@choices_nr], "I told Chief Oskari what I found out about the accident.";
set @choices_nr, @choices_nr + 1;
+ goto L_NoInvestigate2;
L_NoInvestigate2:
set @choice_idx[@choices_nr], @C_nevermind;
set @choice$[@choices_nr], "Nevermind.";
menu
- @choice$[0],-,
- @choice$[1],-,
- @choice$[2],-,
- @choice$[3],-,
- @choice$[4],-,
- @choice$[5],-,
- @choice$[6],-,
- @choice$[7],-,
- @choice$[8],-,
- @choice$[9],-;
-
+ @choice$[0],L_MenuChoice,
+ @choice$[1],L_MenuChoice,
+ @choice$[2],L_MenuChoice,
+ @choice$[3],L_MenuChoice,
+ @choice$[4],L_MenuChoice,
+ @choice$[5],L_MenuChoice,
+ @choice$[6],L_MenuChoice,
+ @choice$[7],L_MenuChoice,
+ @choice$[8],L_MenuChoice,
+ @choice$[9],L_MenuChoice;
+
+L_MenuChoice:
set @menu, @menu - 1;
if (@choice_idx[@menu] == 0)
goto L_Close;
diff --git a/world/map/npc/048-2/visitors.txt b/world/map/npc/048-2/visitors.txt
index 1f0721c9..b4f69e0d 100644
--- a/world/map/npc/048-2/visitors.txt
+++ b/world/map/npc/048-2/visitors.txt
@@ -23,7 +23,9 @@ L_Close:
mes "\"Hello young one. Did you also come here to see the library?\"";
menu
"Nah, I'm just having a look around.",L_Close,
- "Yes!",-;
+ "Yes!", L_More;
+
+L_More:
mes "[Parcival]";
mes "\"That's very commendable. But you'll be disappointed, there is a huge problem and the library is all upside down.";
mes "This is very annoying! I was planning this trip for months and now this!\"";
diff --git a/world/map/npc/051-1/desert.txt b/world/map/npc/051-1/desert.txt
index b79fe0f5..960eb401 100644
--- a/world/map/npc/051-1/desert.txt
+++ b/world/map/npc/051-1/desert.txt
@@ -33,8 +33,7 @@
mes "Jump in the waterfall?";
menu
"Yes", L_Warp,
- "No", -;
- close;
+ "No", L_Close;
OnTimer1000:
npctalk "Youuuuuuu... Bring me souls... " + $@illia_num_sealed_souls + " fresh souls... Nooooow. And you shall paaass.";
@@ -85,7 +84,7 @@ L_GiveTask:
areamonster "051-1.gat", 138, 34, 145, 41, "", 1096, 5, "IlliaDMobs051-1::On1096";
// Start timed messages
initnpctimer;
- close;
+ goto L_Close;
L_GiveSouls:
if (strcharinfo(0) != $@ILLIA_HERO$)
@@ -94,13 +93,12 @@ L_GiveSouls:
mes "\"Give me the souuuuuuls... Noooooooow!!\"";
menu
"Please, have a look at these.", L_CheckSouls,
- "Sorry, I don't have any.", -;
- close;
+ "Sorry, I don't have any.", L_Close;
L_GiveSoulsToHero:
mes "[Cursed Waterfall]";
mes "\"Who are you?.... I want the souuuuuuls from " + $@ILLIA_HERO$ + "!\"";
- close;
+ goto L_Close;
L_CheckSouls:
if (countitem ("SealedSoul") < $@illia_num_sealed_souls)
@@ -127,17 +125,19 @@ L_CheckSouls:
// Display an effect to show the waterfall opens itself / kills remaining monsters
misceffect FX_MEDIUM_BLINDINGLIGHT;
- close;
+ goto L_Close;
L_NotEnough:
mes "[Cursed Waterfall]";
mes "\"Moooooooooore... Give me more...\"";
- close;
+ goto L_Close;
L_Warp:
warp "052-1.gat", 23, 52;
// Count the player who reached the island.
set $@illia_players_in_luvia_territory, $@illia_players_in_luvia_territory + 1;
- close;
+ goto L_Close;
+L_Close:
+ close;
}
diff --git a/world/map/npc/051-1/desertmonsters.txt b/world/map/npc/051-1/desertmonsters.txt
index f46edd6f..9011e1b3 100644
--- a/world/map/npc/051-1/desertmonsters.txt
+++ b/world/map/npc/051-1/desertmonsters.txt
@@ -3,6 +3,8 @@
// 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,
{
+ end;
+
On1096:
if (rand(4) == 0 && $@illia_progress == 3 && $@illia_level_3_progress == 1)
getitem "SealedSoul", 1;
@@ -27,6 +29,8 @@ On1096:
051-1.gat,142,38,0|script|#SoulEaters0|32767,
{
+ end;
+
OnSpawn:
set $@SoulEaters0_count, 5;
areamonster "051-1.gat", 139, 34, 145, 41, "", 1097, $@SoulEaters0_count, "#SoulEaters0::OnSoulEaterDeath";
@@ -56,6 +60,8 @@ OnSoulEaterDeath:
051-1.gat,134,16,0|script|#SoulEaters1|32767,
{
+ end;
+
OnSpawn:
set $@SoulEaters1_count, 7;
areamonster "051-1.gat", 125, 14, 143, 18, "", 1097, $@SoulEaters1_count, "#SoulEaters1::OnSoulEaterDeath";
@@ -85,6 +91,8 @@ OnSoulEaterDeath:
051-1.gat,137,55,0|script|#SoulEaters2|32767,
{
+ end;
+
OnSpawn:
set $@SoulEaters2_count, 4;
areamonster "051-1.gat", 134, 54, 139, 58, "", 1097, $@SoulEaters2_count, "#SoulEaters2::OnSoulEaterDeath";
@@ -114,6 +122,8 @@ OnSoulEaterDeath:
051-1.gat,155,35,0|script|#SoulEaters3|32767,
{
+ end;
+
OnSpawn:
set $@SoulEaters3_count, 4;
areamonster "051-1.gat", 151, 29, 160, 45, "", 1097, $@SoulEaters3_count, "#SoulEaters3::OnSoulEaterDeath";
@@ -143,6 +153,8 @@ OnSoulEaterDeath:
051-1.gat,120,38,0|script|#SoulEaters4|32767,
{
+ end;
+
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 8b2f1ea6..9a1b7223 100644
--- a/world/map/npc/051-1/forest.txt
+++ b/world/map/npc/051-1/forest.txt
@@ -39,7 +39,8 @@ L_GiveTask:
mes "You are smart enough to notice that there seems to be a missing rock that could activate a mechanism.";
next;
menu
- "This rock must not be far... Let's look around.", -;
+ "This rock must not be far... Let's look around.", L_Foo;
+L_Foo:
set $@illia_level_1_progress, 1;
set $@illia_level_1_num_deaths, 0;
close;
diff --git a/world/map/npc/051-1/forestmonsters.txt b/world/map/npc/051-1/forestmonsters.txt
index 2ede6574..3ad5ea4e 100644
--- a/world/map/npc/051-1/forestmonsters.txt
+++ b/world/map/npc/051-1/forestmonsters.txt
@@ -2,6 +2,8 @@
051-1.gat,0,0,0|script|IlliaFMobs051-1|-1,
{
+ end;
+
On1005:
if ($@illia_level_1_progress == 1)
goto L_RockFinding;
diff --git a/world/map/npc/051-3/jailslimes.txt b/world/map/npc/051-3/jailslimes.txt
index 453704ad..e0ad4062 100644
--- a/world/map/npc/051-3/jailslimes.txt
+++ b/world/map/npc/051-3/jailslimes.txt
@@ -6,6 +6,8 @@
051-3.gat,0,0,0|script|IlliaCMobs051-3|-1,
{
+ end;
+
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/reinforcements.txt b/world/map/npc/051-3/reinforcements.txt
index 09ec6cf6..75bc1f19 100644
--- a/world/map/npc/051-3/reinforcements.txt
+++ b/world/map/npc/051-3/reinforcements.txt
@@ -21,8 +21,7 @@ L_ShouldNotBeHere:
mes "Try open the door?";
menu
"Yes", L_TryOpen,
- "Do nothing", -;
- close;
+ "Do nothing", L_Close;
L_ShouldNotBeHere:
percentheal -100, 0;
@@ -32,7 +31,6 @@ L_TryOpen:
if ($@illia_level_2_progress < 4)
goto L_KeyNotFound;
goto L_Warp;
- end;
L_KeyNotFound:
mes "You do not see a way to open this door.";
@@ -82,5 +80,6 @@ L_OpenDoor:
OnKeyFound:
message strcharinfo(0), "One of the defeated bandit lords had a door key attached to his belt.";
end;
-
+L_Close:
+ close;
}
diff --git a/world/map/npc/052-1/channelling.txt b/world/map/npc/052-1/channelling.txt
index 89e281ff..77d96c83 100644
--- a/world/map/npc/052-1/channelling.txt
+++ b/world/map/npc/052-1/channelling.txt
@@ -205,6 +205,8 @@ S_ItemSpawn:
set $@illia_item_spawn_y, 0;
detachrid;
+ goto L_Return;
+
L_Return:
return;
diff --git a/world/map/npc/052-2/chest.txt b/world/map/npc/052-2/chest.txt
index 59fe8ae4..84c5a5cd 100644
--- a/world/map/npc/052-2/chest.txt
+++ b/world/map/npc/052-2/chest.txt
@@ -40,21 +40,19 @@ L_ResumePick:
"... and quickly.", L_GetReward,
"... or maybe not. I am out of time.", L_AskLeaving,
"... but I can't carry more stuff.", L_AskLeaving,
- "... no, wait a minute.", -;
- close;
+ "... no, wait a minute.", L_Close;
L_Pick:
menu
"Let's take what I deserve for all this.", L_GetReward,
- "Wait.", -;
- close;
+ "Wait.", L_Close;
L_GetReward:
if (@illia_got_rewards == 0)
goto L_GetCommonReward;
if (@illia_got_rewards == 1)
goto L_GetUniqueReward;
- close;
+ goto L_Close;
L_GetCommonReward:
if (@illia_current_num_rewards == $@illia_num_common_reward_items)
@@ -133,8 +131,7 @@ L_PrepareLeaving:
mes "Use Valia's ring to teleport now?";
menu
"Yes. Time to make her pay for her trick!", L_Leave,
- "No, I still need to see things here.", -;
- close;
+ "No, I still need to see things here.", L_Close;
L_Leave:
set @illia_got_rewards, 3;
@@ -174,4 +171,7 @@ L_ScheduleEnd:
cmdothernpc "#IlliaDaemon", "Toggle";
end;
+L_Close:
+ close;
+
}
diff --git a/world/map/npc/052-2/lobby.txt b/world/map/npc/052-2/lobby.txt
index d8dd6e44..a32ab830 100644
--- a/world/map/npc/052-2/lobby.txt
+++ b/world/map/npc/052-2/lobby.txt
@@ -173,15 +173,14 @@ L_HandleTalk:
if (strcharinfo(0) == $@ILLIA_HERO$)
goto L_TalkToHero;
goto L_TalkToHelper;
- end;
L_TalkToHelper:
mes "She gives you a quick look then gives her attention to " + $@ILLIA_HERO$ + ".";
close;
L_TalkToHero:
- menu
- "Are you Luvia? Your sister Valia sent me to save you! Where is Ismuth?", -;
+ mes "Are you Luvia? Your sister Valia sent me to save you! Where is Ismuth?";
+ next;
set $@illia_level_5_progress, 4;
initnpctimer;
close;
diff --git a/world/map/npc/055-1/flowerpentagram4.txt b/world/map/npc/055-1/flowerpentagram4.txt
index 10bf0539..59c5195f 100644
--- a/world/map/npc/055-1/flowerpentagram4.txt
+++ b/world/map/npc/055-1/flowerpentagram4.txt
@@ -13,9 +13,10 @@
L_FourthFlower:
mes "This is the spot where you have to place the fourth of Orum's magical flowers.";
menu
- "Place the flower.", -,
+ "Place the flower.", L_PlaceTheFlower,
"Leave.", L_Close;
+L_PlaceTheFlower:
if (isin("055-1.gat", 140, 88, 142, 90))
goto L_Place;
diff --git a/world/map/npc/055-1/pumpkins.txt b/world/map/npc/055-1/pumpkins.txt
index 53783ebf..98d820b9 100644
--- a/world/map/npc/055-1/pumpkins.txt
+++ b/world/map/npc/055-1/pumpkins.txt
@@ -6,6 +6,8 @@
055-1.gat,0,0,0|script|PumpkinMob055-1|-1,
{
+ end;
+
On1063:
if (Quest_Halloween != 1 || !(gettime(6) == 11 && (gettime(5) >= 4 && gettime(5) <= 30)))
goto L_HeavyPoison;
diff --git a/world/map/npc/056-1/flowerpentagram5.txt b/world/map/npc/056-1/flowerpentagram5.txt
index 345ecf2a..9a128ef8 100644
--- a/world/map/npc/056-1/flowerpentagram5.txt
+++ b/world/map/npc/056-1/flowerpentagram5.txt
@@ -13,9 +13,10 @@
L_FifthFlower:
mes "This has to be the spot for the last magical flower. When you place it, the pentagram will be completed.";
menu
- "Place the flower.", -,
+ "Place the flower.", L_PlaceTheFlower,
"Leave.", L_Close;
+L_PlaceTheFlower:
if (isin("056-1.gat", 61, 30, 63, 32))
goto L_Place;
diff --git a/world/map/npc/056-2/mirak.txt b/world/map/npc/056-2/mirak.txt
index 65b46e39..4296a2cc 100644
--- a/world/map/npc/056-2/mirak.txt
+++ b/world/map/npc/056-2/mirak.txt
@@ -33,6 +33,7 @@
goto L_Ban;
if (@talk < 3)
goto L_Talk;
+ goto L_Ban;
L_Ban:
mes "[Mirak]";
@@ -74,8 +75,10 @@ L_Talk2:
mes "[Mirak]";
mes "\"What do you want?!\"";
menu
- "Nothing.", -,
+ "Nothing.", L_Nothing,
"Money!", L_Quest;
+
+L_Nothing:
mes "[Mirak]";
mes "\"Ahhhh! Get lost, or you'll regret it!\"";
set @annoy, @annoy+1;
@@ -91,7 +94,6 @@ L_Quest:
menu
"Okay.", L_Trade,
"Nah, I won't leave you alone.", L_Kill;
- goto L_Exit;
L_TooSoon:
mes "Mirak looks up, sees you, and gets angry.";
diff --git a/world/map/npc/annuals/fathertime.txt b/world/map/npc/annuals/fathertime.txt
index 54541d69..bedf23f6 100644
--- a/world/map/npc/annuals/fathertime.txt
+++ b/world/map/npc/annuals/fathertime.txt
@@ -3,6 +3,8 @@
botcheck.gat,26,28,0|script|#HolidayConfig|-1,
{
+ end;
+
OnInit:
goto L_StartTimer;
diff --git a/world/map/npc/annuals/xmas/barriers.txt b/world/map/npc/annuals/xmas/barriers.txt
index 7db8a472..07bff6f7 100644
--- a/world/map/npc/annuals/xmas/barriers.txt
+++ b/world/map/npc/annuals/xmas/barriers.txt
@@ -82,6 +82,7 @@ L_NotActive:
L_XmasMain:
mes "You notice a small creak in the wall, what do you want to do?";
next;
+ goto L_EnterDialogue;
L_EnterDialogue:
menu
@@ -119,7 +120,6 @@ L_QueryWarp:
menu
"Yes", L_Warp,
"No", L_Close;
- goto L_Close;
L_Warp:
warp "030-2.gat",47,44;
diff --git a/world/map/npc/annuals/xmas/config.txt b/world/map/npc/annuals/xmas/config.txt
index 4eacec58..e63c07e2 100644
--- a/world/map/npc/annuals/xmas/config.txt
+++ b/world/map/npc/annuals/xmas/config.txt
@@ -40,6 +40,8 @@
-|script|#XmasConfig|-1,
{
+ end;
+
OnCommandRestartQuest:
goto L_Main;
@@ -278,6 +280,7 @@ L_Main:
goto L_RewardTime;
if((gettime(6) >= $@xmas_start_month) || (gettime(6) <= $@xmas_end_month && gettime(5) <= $@xmas_reward_start_day))
goto L_EventTime;
+ goto L_NoEventTime;
L_NoEventTime:
if($XMAS_TIME_KEY[5] < gettime(7))
diff --git a/world/map/npc/annuals/xmas/core.txt b/world/map/npc/annuals/xmas/core.txt
index 0f0c53b4..c925b6eb 100644
--- a/world/map/npc/annuals/xmas/core.txt
+++ b/world/map/npc/annuals/xmas/core.txt
@@ -241,6 +241,7 @@ function|script|XmasCheckOld|,
{
if(XMASYEAR == $XMAS_TIME_KEY[5])
goto L_Return;
+ goto L_OldMatch;
L_OldMatch:
set XMASTIME, 0;
diff --git a/world/map/npc/annuals/xmas/debug.txt b/world/map/npc/annuals/xmas/debug.txt
index 6bc0f0c2..05d9a1f1 100644
--- a/world/map/npc/annuals/xmas/debug.txt
+++ b/world/map/npc/annuals/xmas/debug.txt
@@ -174,48 +174,56 @@ L_Close:
030-1.gat,91,48,0|script|XmasDebug#1|105,
{
callfunc "XmasDebug";
- goto L_end;
+ goto L_End;
OnInit:
if(!(debug))
disablenpc "XmasDebug#1";
-L_end:
+ goto L_End;
+
+L_End:
end;
}
030-2.gat,193,62,0|script|XmasDebug#2|105,
{
callfunc "XmasDebug";
- goto L_end;
+ goto L_End;
OnInit:
if(!(debug))
disablenpc "XmasDebug#2";
-L_end:
+ goto L_End;
+
+L_End:
end;
}
030-3.gat,26,26,0|script|XmasDebug#3|105,
{
callfunc "XmasDebug";
- goto L_end;
+ goto L_End;
OnInit:
if(!(debug))
disablenpc "XmasDebug#3";
-L_end:
+ goto L_End;
+
+L_End:
end;
}
030-4.gat,30,30,0|script|XmasDebug#4|111,
{
callfunc "XmasDebug";
- goto L_end;
+ goto L_End;
OnInit:
if(!(debug))
disablenpc "XmasDebug#4";
-L_end:
+ goto L_End;
+
+L_End:
end;
}
@@ -226,6 +234,7 @@ botcheck.gat,26,28,0|script|XmasDebug#5|105,
goto L_End;
callfunc "XmasDebug";
+ goto L_End;
L_End:
end;
@@ -234,8 +243,13 @@ L_End:
020-1.gat,86,76,0|script|XmasDebug#6|105,
{
callfunc "XmasDebug";
+ goto L_End;
OnInit:
if(!(debug))
disablenpc "XmasDebug#6";
+ goto L_End;
+
+L_End:
+ end;
}
diff --git a/world/map/npc/annuals/xmas/helpers.txt b/world/map/npc/annuals/xmas/helpers.txt
index 57e535b5..eeb8c50c 100644
--- a/world/map/npc/annuals/xmas/helpers.txt
+++ b/world/map/npc/annuals/xmas/helpers.txt
@@ -9,6 +9,7 @@ function|script|XmasHelperPoints|,
set @xmas_helper_loop, 0;
if((@xmas_helper_done_state) || !(@xmas_helper_start_state))
goto L_Return;
+ goto L_Loop;
L_Loop:
if(XMASTIME & $@xmas_helper_list[@xmas_helper_loop])
diff --git a/world/map/npc/annuals/xmas/list.txt b/world/map/npc/annuals/xmas/list.txt
index c6adf4b6..94dc4b23 100644
--- a/world/map/npc/annuals/xmas/list.txt
+++ b/world/map/npc/annuals/xmas/list.txt
@@ -9,6 +9,7 @@ function|script|XmasCheckList|,
if((@xmas_list_deliver) || !(@xmas_list_gather))
goto L_Return;
+ goto L_Loop;
L_Loop:
if(XMASTIME & $@xmas_child_list[@xmas_list_loop])
@@ -82,6 +83,7 @@ function|script|XmasListList|,
{
set @xmas_list_loop, 0;
set @xmas_child_loop, 0;
+ goto L_Loop;
L_Loop:
set @xmas_child_loop, ($@xmas_child_list[@xmas_list_loop]);
diff --git a/world/map/npc/annuals/xmas/mobmanager.txt b/world/map/npc/annuals/xmas/mobmanager.txt
index c8156783..71393290 100644
--- a/world/map/npc/annuals/xmas/mobmanager.txt
+++ b/world/map/npc/annuals/xmas/mobmanager.txt
@@ -2,6 +2,7 @@
019-1.gat,0,0,0|script|XmasSpawnManager|400,
{
+ end;
OnCommandSpawnStart:
if ($@xmas_spawn_started)
@@ -55,6 +56,8 @@ L_End:
019-1.gat,0,0,0|script|XmasSpawnCounter#0|400,
{
+ end;
+
OnTally:
cmdothernpc "XmasSpawnManager", "Tally";
end;
@@ -62,6 +65,8 @@ OnTally:
019-3.gat,0,0,0|script|XmasSpawnCounter#1|400,
{
+ end;
+
OnTally:
cmdothernpc "XmasSpawnManager", "Tally";
end;
@@ -69,6 +74,8 @@ OnTally:
030-1.gat,0,0,0|script|XmasSpawnCounter#2|400,
{
+ end;
+
OnTally:
cmdothernpc "XmasSpawnManager", "Tally";
end;
@@ -76,6 +83,8 @@ OnTally:
030-3.gat,0,0,0|script|XmasSpawnCounter#3|400,
{
+ end;
+
OnTally:
cmdothernpc "XmasSpawnManager", "Tally";
end;
diff --git a/world/map/npc/annuals/xmas/reagents.txt b/world/map/npc/annuals/xmas/reagents.txt
index a1dd8d6f..0b4eaa8b 100644
--- a/world/map/npc/annuals/xmas/reagents.txt
+++ b/world/map/npc/annuals/xmas/reagents.txt
@@ -51,6 +51,7 @@ function|script|DeleteReagents|,
L_ZeroLoop:
delitem $@xmas_zero_reagents$[@xmas_reagent_loop], $@xmas_zero_reagents_amounts[@xmas_reagent_loop];
+ goto L_ZeroLoopAgain;
L_ZeroLoopAgain:
if((@xmas_reagent_loop + 1) == getarraysize($@xmas_zero_reagents$))
@@ -60,6 +61,7 @@ L_ZeroLoopAgain:
L_OneLoop:
delitem $@xmas_one_reagents$[@xmas_reagent_loop], $@xmas_one_reagents_amounts[@xmas_reagent_loop];
+ goto L_OneLoopAgain;
L_OneLoopAgain:
if((@xmas_reagent_loop + 1) == getarraysize($@xmas_one_reagents$))
@@ -84,6 +86,7 @@ function|script|ListReagents|,
L_ZeroLoop:
mes "\"" + $@xmas_zero_reagents_amounts[@xmas_reagent_loop] + " " + $@xmas_zero_reagents_names$[@xmas_reagent_loop] + "\"";
next;
+ goto L_ZeroLoopAgain;
L_ZeroLoopAgain:
if((@xmas_reagent_loop + 1) == getarraysize($@xmas_zero_reagents$))
@@ -94,6 +97,7 @@ L_ZeroLoopAgain:
L_OneLoop:
mes "\"" + $@xmas_one_reagents_amounts[@xmas_reagent_loop] + " " + $@xmas_one_reagents_names$[@xmas_reagent_loop] + "\"";
next;
+ goto L_OneLoopAgain;
L_OneLoopAgain:
if((@xmas_reagent_loop + 1) == getarraysize($@xmas_one_reagents$))
diff --git a/world/map/npc/botcheck/announcements.txt b/world/map/npc/botcheck/announcements.txt
index b7580596..c5ec0b6b 100644
--- a/world/map/npc/botcheck/announcements.txt
+++ b/world/map/npc/botcheck/announcements.txt
@@ -20,7 +20,7 @@ if (getgmlevel() < 60)
if ($@GMSA_STATUS == 0)
goto L_PrepareBroadcast;
-if ($@GMSA_STATUS == 1)
+//else
goto L_InfoBroadcast;
L_InfoBroadcast:
@@ -141,6 +141,8 @@ L_StartBroadcast2:
if ($@GMSA_STATUS == 1)
goto L_Abort;
callsub S_PerformBroadcast;
+ goto L_StartBroadcast;
+
L_StartBroadcast:
if ($@GMSA_STATUS == 1)
goto L_Abort;
@@ -170,4 +172,5 @@ OnTimer3600000:
if ($@GMSA_MAX != 0)
end;
callsub S_StopBroadcast;
+ end;
}
diff --git a/world/map/npc/functions/banker.txt b/world/map/npc/functions/banker.txt
index eae01230..df908e62 100644
--- a/world/map/npc/functions/banker.txt
+++ b/world/map/npc/functions/banker.txt
@@ -5,6 +5,7 @@ function|script|Banker|,
if (BankAccount == 0)
goto L_Start;
callsub S_MoveAccount;
+ goto L_Start;
L_Start:
mes "[" + @npcname$ + "]";
@@ -18,7 +19,6 @@ L_Start:
"Check my balance", L_Balance,
"Change Bank Options", L_Change,
"Nevermind", L_Nev;
- close;
// need to close window before opening storage.
L_Storage:
@@ -43,8 +43,7 @@ L_Dep:
"1,000,000 GP", L_Dep_1kk,
"All of my money", L_Dep_All,
"I've changed my mind", L_Start,
- "Quit", -;
- return;
+ "Quit", L_Return;
L_Dep_Input:
input @Amount;
@@ -56,8 +55,7 @@ L_Dep_Input:
"Go back", L_Start,
"Try again", L_Dep_Input,
"Deposit all", L_Dep_All,
- "Nevermind", -;
- goto L_Nev;
+ "Nevermind", L_Nev;
L_Dep_5k:
if (Zeny<5000)
@@ -111,6 +109,7 @@ L_Dep_All:
if (Zeny<1)
goto L_NoMoney;
set @Amount, Zeny;
+ goto L_Dep_Continue;
L_Dep_Continue:
if (Zeny < @Amount)
@@ -134,8 +133,7 @@ L_With:
"1,000,000 GP", L_With_1kk,
"All of my money", L_With_All,
"I've changed my mind", L_Start,
- "Quit", -;
- return;
+ "Quit", L_Return;
L_With_Input:
input @Amount;
@@ -147,8 +145,7 @@ L_With_Input:
"Go back", L_Start,
"Try again", L_With_Input,
"Withdraw all", L_With_All,
- "Nevermind", -;
- goto L_Nev;
+ "Nevermind", L_Nev;
L_With_5k:
if (#BankAccount < 5000)
@@ -202,6 +199,7 @@ L_With_All:
if (#BankAccount < 0)
goto L_NoMoney;
set @Amount, #BankAccount;
+ goto L_With_Continue;
L_With_Continue:
if (#BankAccount < @Amount)
@@ -248,4 +246,7 @@ L_Change_Storage:
L_Change_Bank:
set #BankOptions, (#BankOptions ^ OPT_BANK_CLOSE);
goto L_Start;
+
+L_Return:
+ return;
}
diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt
index dc7f0329..76b06dd7 100644
--- a/world/map/npc/functions/barber.txt
+++ b/world/map/npc/functions/barber.txt
@@ -26,6 +26,7 @@ function|script|Barber|,
mes "Your current style is " + @style$ + " and your current color is " + @color$ + ".";
set @style$, "";
set @color$, "";
+ goto L_Main;
L_Main:
menu
@@ -35,29 +36,30 @@ L_Main:
L_Style:
menu
- "Bald", -,
- "Flat ponytail", -,
- "Bowl cut", -,
- "Combed back", -,
- "Emo", -,
- "Mohawk", -,
- "Pompadour", -,
- "Center parting/Short and slick", -,
- "Long and slick", -,
- "Short and curly", -,
- "Pigtails", -,
- "Long and curly", -,
- "Parted", -,
- "Perky ponytail", -,
- "Wave", -,
- "Mane", -,
- "Bun", -,
- "Shoulder Length Flick", -,
- "Fizzy", -,
- "Long and Clipped", -,
+ "Bald", L_MenuItems,
+ "Flat ponytail", L_MenuItems,
+ "Bowl cut", L_MenuItems,
+ "Combed back", L_MenuItems,
+ "Emo", L_MenuItems,
+ "Mohawk", L_MenuItems,
+ "Pompadour", L_MenuItems,
+ "Center parting/Short and slick", L_MenuItems,
+ "Long and slick", L_MenuItems,
+ "Short and curly", L_MenuItems,
+ "Pigtails", L_MenuItems,
+ "Long and curly", L_MenuItems,
+ "Parted", L_MenuItems,
+ "Perky ponytail", L_MenuItems,
+ "Wave", L_MenuItems,
+ "Mane", L_MenuItems,
+ "Bun", L_MenuItems,
+ "Shoulder Length Flick", L_MenuItems,
+ "Fizzy", L_MenuItems,
+ "Long and Clipped", L_MenuItems,
"Surprise me", L_RandomStyle,
"Nah, I'm fine", L_Done;
+L_MenuItems:
if (@menu - 1 == @style)
goto L_SameStyle;
@@ -74,22 +76,23 @@ L_SameStyle:
L_Color:
menu
- "Brunette", -,
- "Green", -,
- "Dark red", -,
- "Light purple", -,
- "Gray", -,
- "Blonde", -,
- "Teal", -,
- "Light red", -,
- "Blue", -,
- "Dark purple", -,
- "Black", -,
- "Pink", -,
- "Brown", -,
+ "Brunette", L_MenuItems1,
+ "Green", L_MenuItems1,
+ "Dark red", L_MenuItems1,
+ "Light purple", L_MenuItems1,
+ "Gray", L_MenuItems1,
+ "Blonde", L_MenuItems1,
+ "Teal", L_MenuItems1,
+ "Light red", L_MenuItems1,
+ "Blue", L_MenuItems1,
+ "Dark purple", L_MenuItems1,
+ "Black", L_MenuItems1,
+ "Pink", L_MenuItems1,
+ "Brown", L_MenuItems1,
"Surprise me", L_RandomColor,
"Nah, I'm fine", L_Done;
+L_MenuItems1:
if (@menu - 1 == @color)
goto L_SameColor;
@@ -112,10 +115,11 @@ L_Done:
return;
}
-// 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|,
+-|script|#BarberConfig|-1,
{
+ end;
+
+OnInit:
setarray $@HairStyles$,
"Bald", "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk",
"Pompadour", "Center parting/Short and slick", "Long and slick",
@@ -126,5 +130,5 @@ function|script|OnInitBarber|,
"Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde",
"Teal", "Light red", "Blue", "Dark purple", "Black", "Pink",
"Brown";
- return;
+ end;
}
diff --git a/world/map/npc/functions/clear_vars.txt b/world/map/npc/functions/clear_vars.txt
index 1aa84d2b..905528ae 100644
--- a/world/map/npc/functions/clear_vars.txt
+++ b/world/map/npc/functions/clear_vars.txt
@@ -193,6 +193,7 @@ function|script|ClearVarTMW_Quest|,
if (TMW_Quest <= 10) goto L_Vincent;
if (TMW_Quest <= 12) goto L_Sandra;
if (TMW_Quest <= 40) goto L_Desert;
+ goto L_Bandit;
L_Bandit:
// move Bandit subquest into Nibble 0 of QUEST_Hurnscald
@@ -200,44 +201,59 @@ L_Bandit:
set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_0_MASK) | (@bandit << NIBBLE_0_SHIFT));
set TMW_Quest, 40;
set @bandit, 0;
+ goto L_Desert;
+
L_Desert:
// move guard and miner subquest into Byte 2 (Nibble 4 and 5) of QUEST_SouthTulimshar
set @miners, TMW_Quest - 12;
set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@miners << BYTE_2_SHIFT));
set TMW_Quest, 12;
set @miners, 0;
+ goto L_Sandra;
+
L_Sandra:
// move Sandra subquest into Nibble 3 of QUEST_SouthTulimshar
set @sandra, TMW_Quest - 10;
set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_3_MASK) | (@sandra << NIBBLE_3_SHIFT));
set TMW_Quest, 10;
set @sandra, 0;
+ goto L_Vincent;
+
L_Vincent:
// move Vincent subquest into Nibble 2 of QUEST_SouthTulimshar
set @vincent, TMW_Quest - 8;
set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_2_MASK) | (@vincent << NIBBLE_2_SHIFT));
set TMW_Quest, 8;
set @vincent, 0;
+ goto L_Sarah;
+
L_Sarah:
// move Sarah subquest into Nibble 1 of QUEST_SouthTulimshar
set @sarah, TMW_Quest - 6;
set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_1_MASK) | (@sarah << NIBBLE_1_SHIFT));
set TMW_Quest, 6;
set @sarah, 0;
+ goto L_Bernard_Mikhail;
+
L_Bernard_Mikhail:
// move Bernard and Mikhail subquest into Nibble 0 of QUEST_SouthTulimshar
set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_0_MASK) | (TMW_Quest << NIBBLE_0_SHIFT));
set TMW_Quest, 0;
+ goto L_Done;
+
L_Done:
return;
}
-|script|#ClearGlobalVars|-1,
{
+ end;
+
OnInit:
// Clear some entries of the arrays which save the Fluffy Hunting highscore list
set $@loop, 5;
+ goto L_FluffyClear;
L_FluffyClear:
if ($@loop == 12)
@@ -254,6 +270,7 @@ L_FluffyClear:
// Clear the array which saves the teams who beat the Illia quest
L_IlliaClear:
set $@loop, 0;
+ goto L_IlliaLoop;
L_IlliaLoop:
if ($Illia_Win_Records$[$@loop] == "")
diff --git a/world/map/npc/functions/dailyquest.txt b/world/map/npc/functions/dailyquest.txt
index aadafc89..a0360376 100644
--- a/world/map/npc/functions/dailyquest.txt
+++ b/world/map/npc/functions/dailyquest.txt
@@ -47,6 +47,7 @@ function|script|DailyQuestPoints|,
if (DailyQuestPoints > BaseLevel)
set DailyQuestPoints, BaseLevel;
// fallthrough to bonus, which *is* allowed to push DailyQuestPoints above BaseLevel
+ goto L_Bonus;
L_Bonus:
set DailyQuestPoints, DailyQuestPoints + DailyQuestBonus;
@@ -67,9 +68,10 @@ function|script|DailyQuest|,
mes "\"If you bring me " + @dq_count + " " + @dq_friendly_name$ + ", I will give you a reward.\"";
menu
"I have what you want.", L_Trade,
- "Ok, I'll get to work.", -,
- "Nah, I'm not going to help you.", -;
+ "Ok, I'll get to work.", L_Next,
+ "Nah, I'm not going to help you.", L_Next;
+L_Next:
set @dq_return, 1;
goto L_Exit;
@@ -91,6 +93,7 @@ L_Trade:
mes "";
mes "[" + @dq_money + " money]";
mes "[" + @dq_exp + " experience points]";
+ goto L_Exit_Good;
L_Exit_Good:
set @dq_return, 4;
diff --git a/world/map/npc/functions/debug.txt b/world/map/npc/functions/debug.txt
index dad9b804..e1c9e6c8 100755
--- a/world/map/npc/functions/debug.txt
+++ b/world/map/npc/functions/debug.txt
@@ -2,6 +2,8 @@
function|script|Debug|,
{
+ goto L_Begin;
+
L_Begin:
set @debug_mask, 65535;
set @debug_shift, 0;
@@ -15,8 +17,7 @@ L_Begin:
"Change my magic skills.", L_MagicSkills,
"Add everything.", L_AddAll,
"Reset everything.", L_ResetAll,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_Level:
mes "What level do you want to be (min: 1 - max: 99)?";
@@ -55,8 +56,7 @@ L_Status:
"Get maximum points in all stats.", L_ChangeAllStats,
"Reset my status points.", L_ResetStatusPoints,
"Back to the main menu.", L_Begin,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_ChangeAllStats:
statusup2 bStr, 99 - readparam(bStr);
@@ -156,8 +156,7 @@ L_ChangeSingleStat:
"Dexterity.", L_ChangeDexteritySingle,
"Luck.", L_ChangeLuckSingle,
"Back to the main menu.", L_Begin,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_ChangeStrengthSingle:
mes "How much strength do you want to have (min: 1 - max: 99)?";
@@ -246,8 +245,7 @@ L_BasicSkills:
"Add basic skills.", L_AddBasicSkills,
"Reset basic skills.", L_ResetBasicSkills,
"Back to main menu.", L_Begin,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_BasicSkillsOverview:
mes "Your level in the emote skill is " + @emote + ".";
@@ -263,14 +261,15 @@ L_AddBasicSkills:
"Party.", L_ChangePartySkill,
"All basic skills to their maximum level.", L_AllBasicSkills,
"Back to the basic skills menu.", L_BasicSkills,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_ChangeEmoteSkill:
mes "Your level in the emote skill is " + @emote + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next,
"Get level 1.", L_ChangeEmoteSkill1;
+
+L_Next:
if (@menu == 1)
setskill SKILL_EMOTE, 0;
mes "Emote skill changed to level 0.";
@@ -286,8 +285,10 @@ L_ChangeEmoteSkill1:
L_ChangeTradeSkill:
mes "Your level in the trade skill is " + @trade + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next1,
"Get level 1.", L_ChangeTradeSkill1;
+
+L_Next1:
if (@menu == 1)
setskill SKILL_TRADE, 0;
mes "Trade skill changed to level 0.";
@@ -303,9 +304,11 @@ L_ChangeTradeSkill1:
L_ChangePartySkill:
mes "Your level in the party skill is " + @trade + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next2,
"Get level 1.", L_ChangePartySkill1,
"Get level 2.", L_ChangePartySkill2;
+
+L_Next2:
if (@menu == 1)
setskill SKILL_PARTY, 0;
mes "Party skill changed to level 0.";
@@ -354,8 +357,7 @@ L_FocusSkills:
"Add focus skills.", L_ChangeFocusSkills,
"Reset focus skills.", L_ResetFocusSkills,
"Back to the main menu.", L_Begin,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_SeeFocusSkills:
cleararray @skilllist_name$[0], "", 8;
@@ -409,14 +411,16 @@ L_Focus:
set @skilllist_name$[@skilllist_count], "Back to the focus skills menu.";
mes "You are not focused on any focus skill right now. Which one do you want to focus on?";
menu
- @skilllist_name$[0], -,
- @skilllist_name$[1], -,
- @skilllist_name$[2], -,
- @skilllist_name$[3], -,
- @skilllist_name$[4], -,
- @skilllist_name$[5], -,
- @skilllist_name$[6], -,
- @skilllist_name$[7], -;
+ @skilllist_name$[0], L_MenuItems,
+ @skilllist_name$[1], L_MenuItems,
+ @skilllist_name$[2], L_MenuItems,
+ @skilllist_name$[3], L_MenuItems,
+ @skilllist_name$[4], L_MenuItems,
+ @skilllist_name$[5], L_MenuItems,
+ @skilllist_name$[6], L_MenuItems,
+ @skilllist_name$[7], L_MenuItems;
+
+L_MenuItems:
set @menu, @menu - 1;
poolskill @skilllist_id[@menu];
goto L_FocusSkills;
@@ -428,8 +432,10 @@ L_NoFocusSkills:
L_AskUnfocus:
mes "Unfocus " + @skilllist_name$[@skilllist_count-1] + "?";
menu
- "Yes.", -,
+ "Yes.", L_Next3,
"No.", L_FocusSkills;
+
+L_Next3:
unpoolskill @skilllist_id[@skilllist_count-1];
goto L_FocusSkills;
@@ -444,8 +450,7 @@ L_ChangeFocusSkills:
"Raging.", L_ChangeRagingSkill,
"All focus skills to their maximum level.", L_AllFocusSkills,
"Back to the focus skills menu.", L_FocusSkills,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_BadSkillLevel:
mes "Invalid skill level.";
@@ -554,8 +559,7 @@ L_MagicSkills:
"All magic skills to their maximum level and maximum magic experience.", L_GetAllMagic,
"Reset magic skills and experience.", L_ResetMagicSkills,
"Back to the main menu.", L_Begin,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_MagicSkillsOverview:
mes "Your current magic experience skill is " + @mexp + ".";
@@ -610,15 +614,16 @@ L_ChangeMagicSkills:
"Astral Magic.", L_ChangeAstralMagicSkill,
"Dark Magic.", L_ChangeDarkMagicSkill,
"Back to the magic skills menu.", L_MagicSkills,
- "Close.", -;
- close;
+ "Close.", L_Close;
L_ChangeGeneralMagicSkill:
mes "Your level in the general magic skill is " + @general + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next4,
"Get level 1.", L_ChangeGeneralMagicSkill1,
"Get level 2.", L_ChangeGeneralMagicSkill2;
+
+L_Next4:
if (@menu == 1)
setskill SKILL_MAGIC, 0;
mes "General Magic skill changed to level 0.";
@@ -643,9 +648,11 @@ L_ChangeGeneralMagicSkill2:
L_ChangeLifeMagicSkill:
mes "Your level in the life magic skill is " + @life + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next5,
"Get level 1.", L_ChangeLifeMagicSkill1,
"Get level 2.", L_ChangeLifeMagicSkill2;
+
+L_Next5:
if (@menu == 1)
setskill SKILL_MAGIC_LIFE, 0;
mes "Life Magic skill changed to level 0.";
@@ -670,9 +677,11 @@ L_ChangeLifeMagicSkill2:
L_ChangeWarMagicSkill:
mes "Your level in the war magic skill is " + @war + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next6,
"Get level 1.", L_ChangeWarMagicSkill1,
"Get level 2.", L_ChangeWarMagicSkill2;
+
+L_Next6:
if (@menu == 1)
setskill SKILL_MAGIC_WAR, 0;
mes "War Magic skill changed to level 0.";
@@ -697,9 +706,11 @@ L_ChangeWarMagicSkill2:
L_ChangeTransmutationMagicSkill:
mes "Your level in the transmutation magic skill is " + @trans + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next7,
"Get level 1.", L_ChangeTransmutationMagicSkill1,
"Get level 2.", L_ChangeTransmutationMagicSkill2;
+
+L_Next7:
if (@menu == 1)
setskill SKILL_MAGIC_TRANSMUTE, 0;
mes "Transmutation Magic skill changed to level 0.";
@@ -724,9 +735,11 @@ L_ChangeTransmutationMagicSkill2:
L_ChangeNatureMagicSkill:
mes "Your level in the nature magic skill is " + @nature + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next8,
"Get level 1.", L_ChangeNatureMagicSkill1,
"Get level 2.", L_ChangeNatureMagicSkill2;
+
+L_Next8:
if (@menu == 1)
setskill SKILL_MAGIC_NATURE, 0;
mes "Nature Magic skill changed to level 0.";
@@ -751,9 +764,11 @@ L_ChangeNatureMagicSkill2:
L_ChangeAstralMagicSkill:
mes "Your level in the astral magic skill is " + @astral + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next9,
"Get level 1.", L_ChangeAstralMagicSkill1,
"Get level 2.", L_ChangeAstralMagicSkill2;
+
+L_Next9:
if (@menu == 1)
setskill SKILL_MAGIC_ASTAL, 0;
mes "Astral Magic skill changed to level 0.";
@@ -778,9 +793,11 @@ L_ChangeAstralMagicSkill2:
L_ChangeDarkMagicSkill:
mes "Your level in the dark magic skill is " + @dark + ". What do you want to do?";
menu
- "Get level 0.", -,
+ "Get level 0.", L_Next10,
"Get level 1.", L_ChangeDarkMagicSkill1,
"Get level 2.", L_ChangeDarkMagicSkill2;
+
+L_Next10:
if (@menu == 1)
setskill SKILL_MAGIC_DARK, 0;
mes "Dark Magic skill changed to level 0.";
@@ -894,6 +911,9 @@ L_ResetAll:
next;
goto L_Begin;
+L_Close:
+ close;
+
}
042-2.gat,30,26,0|script|Debug0|154,
@@ -903,6 +923,7 @@ L_ResetAll:
OnInit:
if (!debug)
disablenpc "Debug0";
+ end;
}
001-1.gat,41,29,0|script|Debug1|154,
@@ -912,6 +933,7 @@ OnInit:
OnInit:
if (!debug)
disablenpc "Debug1";
+ end;
}
009-1.gat,52,33,0|script|Debug2|154,
@@ -921,6 +943,7 @@ OnInit:
OnInit:
if (!debug)
disablenpc "Debug2";
+ end;
}
020-1.gat,75,85,0|script|Debug3|154,
@@ -930,6 +953,7 @@ OnInit:
OnInit:
if (!debug)
disablenpc "Debug3";
+ end;
}
botcheck.gat,50,28,0|script|Debug4|154,
@@ -939,4 +963,5 @@ botcheck.gat,50,28,0|script|Debug4|154,
OnInit:
if (!debug)
disablenpc "Debug4";
+ end;
}
diff --git a/world/map/npc/functions/evil_obelisk.txt b/world/map/npc/functions/evil_obelisk.txt
index 0875abb5..328e875b 100644
--- a/world/map/npc/functions/evil_obelisk.txt
+++ b/world/map/npc/functions/evil_obelisk.txt
@@ -11,13 +11,12 @@ function|script|EvilObelisk|,
set @cost_snake, 2500;
menu
- "Don't pay it anything.", -,
+ "Don't pay it anything.", L_Close,
"Pay it " + @cost_jacko + " gold.", L_JACKO,
"Pay it " + @cost_gy1 + " gold.", L_GRAVEYARD1,
"Pay it " + @cost_gy2 + " gold.", L_GRAVEYARD2,
"Pay it " + @cost_skull + " gold.", L_SKULL,
"Pay it " + @cost_snake + " gold.", L_SNAKE;
- goto L_Close;
L_JACKO:
if (Zeny < @cost_jacko)
diff --git a/world/map/npc/functions/ferry.txt b/world/map/npc/functions/ferry.txt
index 0b66f68e..03f5777f 100644
--- a/world/map/npc/functions/ferry.txt
+++ b/world/map/npc/functions/ferry.txt
@@ -7,6 +7,7 @@ function|script|Ferry|,
set @cost_tulimshar, 500;
set @cost_hurnscald, 500;
set @cost_nivalis, 500;
+ goto L_Start;
L_Start:
set @cost_candor, 1500;
@@ -22,8 +23,7 @@ L_PlainMenu:
"Tulimshar (" + @cost_tulimshar + "GP)", L_Tulimshar,
"Hurnscald (" + @cost_hurnscald + "GP)", L_Hurnscald,
"Nivalis (" + @cost_nivalis + "GP)", L_Nivalis,
- "Nevermind", -;
- goto L_Close;
+ "Nevermind", L_Close;
L_MenuWithCandor:
menu
@@ -31,8 +31,7 @@ L_MenuWithCandor:
"Hurnscald (" + @cost_hurnscald + "GP)", L_Hurnscald,
"Nivalis (" + @cost_nivalis + "GP)", L_Nivalis,
"Candor (" + @cost_candor + "GP)", L_Candor,
- "Nevermind", -;
- goto L_Close;
+ "Nevermind", L_Close;
L_Tulimshar:
if (@loc == DOCK_tulimshar)
diff --git a/world/map/npc/functions/game_rules.txt b/world/map/npc/functions/game_rules.txt
index 7ede18ea..5ef85bda 100644
--- a/world/map/npc/functions/game_rules.txt
+++ b/world/map/npc/functions/game_rules.txt
@@ -14,8 +14,6 @@ function|script|GameRules|,
"Portugues (Portuguese)", L_Portuguese,
"Polski (Polish)", L_Polish,
"Italiano (Italian)", L_Italian;
- // is this even reachable? TODO look at how the 'cancel' button works.
- if (@canSkip) goto L_Return;
L_English:
mes "Players breaking the following rules may be banned (up to and including a permanent ban) or have their characters reset at the GM's discretion:";
@@ -160,6 +158,7 @@ L_End:
set @read, 1;
if (TUT_var == 0)
set TUT_var, gettimetick(2);
+ goto L_Return;
L_Return:
return;
diff --git a/world/map/npc/functions/inn.txt b/world/map/npc/functions/inn.txt
index 271a4652..45ed4052 100644
--- a/world/map/npc/functions/inn.txt
+++ b/world/map/npc/functions/inn.txt
@@ -6,9 +6,10 @@ function|script|Inn|,
mes "\"Would you like to rest? It's only " + @cost + " gp.\"";
next;
menu
- "Yes", -,
+ "Yes", L_Next,
"No", L_No;
+L_Next:
if (Zeny < @cost)
goto L_NoMoney;
set Zeny, Zeny - @cost;
diff --git a/world/map/npc/functions/lockpicking.txt b/world/map/npc/functions/lockpicking.txt
index dc05fc53..375fd173 100644
--- a/world/map/npc/functions/lockpicking.txt
+++ b/world/map/npc/functions/lockpicking.txt
@@ -12,8 +12,7 @@ function|script|LockPicking|,
L_NeedLockPickSet:
menu
- "Unfortunately, I don't have these tools... Let's look around.", -;
- return;
+ "Unfortunately, I don't have these tools... Let's look around.", L_Return;
L_StartLockPicking:
mes "You inspect the lock and notice it isn't sophisticated.";
@@ -22,8 +21,10 @@ L_StartLockPicking:
if (countitem ("LockPicks") < 1)
goto L_NeedLockPickSet;
menu
- "I can try with these lock picks I just found.", -,
+ "I can try with these lock picks I just found.", L_Next,
"Maybe later.", L_Return;
+
+L_Next:
delitem "LockPicks", 1;
mes "You insert the hook pick inside the lock, and, without applying any tension, you discover there are only 3 pins to set.";
next;
@@ -53,7 +54,6 @@ L_HandlePin:
"Apply a normal pressure.", L_PinNormal,
"Apply a strong pressure.", L_PinHard,
"Give up. I'm in a rush!", L_GiveUp;
- return;
L_GiveUp:
set @lock_picking_success, 0;
diff --git a/world/map/npc/functions/magic.txt b/world/map/npc/functions/magic.txt
index a1faea94..2715cf7e 100644
--- a/world/map/npc/functions/magic.txt
+++ b/world/map/npc/functions/magic.txt
@@ -14,7 +14,6 @@ function|script|MagicGainBasic|,
{
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DRANK_POTION;
close;
-
}
// ------------------------------------------------------------
@@ -40,7 +39,6 @@ function|script|MagicTalkOptionsSetup|,
// Returns the result in @c, or returns 0 if there is no result
// ------------------------------------------------------------
-
function|script|MagicTalkMenu|,
{
setarray @choice$, "", "", "", "", "", "", "", "", "", "";
@@ -52,6 +50,7 @@ function|script|MagicTalkMenu|,
set @choice$[@choices_nr], "...Elanore the Healer?";
set @choice_idx[@choices_nr], @QQ_ELANORE;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_elanore;
L_Q_post_elanore:
if (@ignore == @QQ_MANASEED)
@@ -61,6 +60,7 @@ L_Q_post_elanore:
set @choice$[@choices_nr], "...the Mana Seed?";
set @choice_idx[@choices_nr], @QQ_MANASEED;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_manaseed;
L_Q_post_manaseed:
if (@ignore & @QQ_MANAPOTION)
@@ -70,6 +70,7 @@ L_Q_post_manaseed:
set @choice$[@choices_nr], "...Mana Potions?";
set @choice_idx[@choices_nr], @QQ_MANAPOTION;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_manapotion;
L_Q_post_manapotion:
if (@ignore & @QQ_WYARA)
@@ -79,6 +80,7 @@ L_Q_post_manapotion:
set @choice$[@choices_nr], "...Wyara the Witch?";
set @choice_idx[@choices_nr], @QQ_WYARA;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_wyara;
L_Q_post_wyara:
if (@ignore & @QQ_SAGATHA)
@@ -88,6 +90,7 @@ L_Q_post_wyara:
set @choice$[@choices_nr], "...Sagatha the Witch?";
set @choice_idx[@choices_nr], @QQ_SAGATHA;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_sagatha;
L_Q_post_sagatha:
if (@ignore & @QQ_AULDSBEL)
@@ -97,6 +100,7 @@ L_Q_post_sagatha:
set @choice$[@choices_nr], "...Auldsbel the Wizard?";
set @choice_idx[@choices_nr], @QQ_AULDSBEL;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_auldsbel;
L_Q_post_auldsbel:
if (@ignore & @QQ_OLDWIZ)
@@ -106,6 +110,7 @@ L_Q_post_auldsbel:
set @choice$[@choices_nr], "...the Old Wizard?";
set @choice_idx[@choices_nr], @QQ_OLDWIZ;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_oldwiz;
L_Q_post_oldwiz:
if (@ignore & @QQ_IMP)
@@ -115,6 +120,7 @@ L_Q_post_oldwiz:
set @choice$[@choices_nr], "...the Earth Spirit in the desert well?";
set @choice_idx[@choices_nr], @QQ_IMP;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_imp;
L_Q_post_imp:
if (@ignore & @QQ_ASTRALSOUL)
@@ -126,6 +132,7 @@ L_Q_post_imp:
set @choice$[@choices_nr], "...ways to improve my magic?";
set @choice_idx[@choices_nr], @QQ_ASTRALSOUL;
set @choices_nr, @choices_nr + 1;
+ goto L_Q_post_astralsoul;
L_Q_post_astralsoul:
set @choice$[@choices_nr], "...never mind.";
@@ -133,17 +140,18 @@ L_Q_post_astralsoul:
set @choices_nr, @choices_nr + 1;
menu
- @choice$[0], -,
- @choice$[1], -,
- @choice$[2], -,
- @choice$[3], -,
- @choice$[4], -,
- @choice$[5], -,
- @choice$[6], -,
- @choice$[7], -,
- @choice$[8], -,
- @choice$[9], -;
-
+ @choice$[0], L_MenuItems,
+ @choice$[1], L_MenuItems,
+ @choice$[2], L_MenuItems,
+ @choice$[3], L_MenuItems,
+ @choice$[4], L_MenuItems,
+ @choice$[5], L_MenuItems,
+ @choice$[6], L_MenuItems,
+ @choice$[7], L_MenuItems,
+ @choice$[8], L_MenuItems,
+ @choice$[9], L_MenuItems;
+
+L_MenuItems:
set @menu, @menu - 1;
if (@menu >= @choices_nr)
diff --git a/world/map/npc/functions/mob_points.txt b/world/map/npc/functions/mob_points.txt
index 08864ed0..fd769a3f 100644
--- a/world/map/npc/functions/mob_points.txt
+++ b/world/map/npc/functions/mob_points.txt
@@ -168,6 +168,7 @@ function|script|MobPoints|,
L_good:
set @value, 1;
callfunc "QuestSagathaHappy";
+ goto L_end;
L_end:
set @value, 0;
diff --git a/world/map/npc/functions/slot_machine.txt b/world/map/npc/functions/slot_machine.txt
index 5d7e1ee6..ebf72471 100644
--- a/world/map/npc/functions/slot_machine.txt
+++ b/world/map/npc/functions/slot_machine.txt
@@ -6,8 +6,7 @@ function|script|SlotMachine|,
next;
menu
"Pull", L_Play,
- "Maybe later", -;
- close;
+ "Maybe later", L_Close;
L_Play:
if(countitem("CasinoCoins") < 1)
@@ -37,4 +36,7 @@ L_Lost:
L_NoCoin:
mes "Insert coin";
close;
+
+L_Close:
+ close;
}
diff --git a/world/map/npc/functions/soul_menhir.txt b/world/map/npc/functions/soul_menhir.txt
index 02907210..14c1cf1c 100644
--- a/world/map/npc/functions/soul_menhir.txt
+++ b/world/map/npc/functions/soul_menhir.txt
@@ -5,9 +5,10 @@ function|script|SoulMenhir|,
next;
menu
- "Touch it.", -,
+ "Touch it.", L_Bind,
"Leave it alone.", L_Return;
+L_Bind:
if (Menhir_Activated == 1)
goto L_Shortversion;
@@ -30,10 +31,12 @@ L_Shortversion:
mes "[Soul Menhir]";
mes "(A strange sensation flows through you. It feels like your soul leaves your body and becomes one with the stone. As suddenly as the feeling started it stops.)";
next;
+ goto L_Save;
L_Save:
if (@x == 0 && @y == 0)
goto L_FindPoint;
+ goto L_Do_Save;
L_Do_Save:
savepoint @map$, @x, @y;
diff --git a/world/map/npc/items/launcher_ammo.txt b/world/map/npc/items/launcher_ammo.txt
index 79cf057b..25f4df9b 100644
--- a/world/map/npc/items/launcher_ammo.txt
+++ b/world/map/npc/items/launcher_ammo.txt
@@ -24,6 +24,7 @@ function|script|CheckAmmo|,
goto L_Return;
callfunc "UnequipLater";
+ goto L_Return;
L_Return:
set @LauncherType, 0;
diff --git a/world/map/npc/items/purification_potion.txt b/world/map/npc/items/purification_potion.txt
index 2a8c47d3..9ff5494c 100644
--- a/world/map/npc/items/purification_potion.txt
+++ b/world/map/npc/items/purification_potion.txt
@@ -4,6 +4,7 @@ function|script|usePurificationPotion|,
{
if (isat("011-1.gat", 88,67))
goto L_Wyara_Pond;
+ goto L_NoUse;
L_NoUse:
message strcharinfo(0), "You don't know what to do with this.";
diff --git a/world/map/npc/items/require_stat.txt b/world/map/npc/items/require_stat.txt
index 8629b686..f9734a1c 100644
--- a/world/map/npc/items/require_stat.txt
+++ b/world/map/npc/items/require_stat.txt
@@ -19,6 +19,7 @@ function|script|RequireStat|,
L_Unequip:
callfunc "UnequipLater";
+ goto L_Return;
L_Return:
return;
diff --git a/world/map/npc/items/restricted_item.txt b/world/map/npc/items/restricted_item.txt
index 7e3213c0..5873ce45 100644
--- a/world/map/npc/items/restricted_item.txt
+++ b/world/map/npc/items/restricted_item.txt
@@ -15,6 +15,7 @@ function|script|RestrictedItem|,
if (getgmlevel()) goto L_Return;
gmcommand "@wgm Restricted item '" + @itemId + "' used by character '" + strcharinfo(0) + "'.";
gmcommand "@l Restricted item '" + @itemId + "' used by character '" + strcharinfo(0) + "'.";
+ goto L_Return;
L_Return:
return;
diff --git a/world/map/npc/items/unequipcb.txt b/world/map/npc/items/unequipcb.txt
index 62dc7715..10080990 100644
--- a/world/map/npc/items/unequipcb.txt
+++ b/world/map/npc/items/unequipcb.txt
@@ -4,6 +4,7 @@
// during the intial connection's equip hook
botcheck.gat,0,0,0|script|UnequipCB|-1,-1,-1
{
+ end;
OnUnequip:
unequipbyid (@unequip_slot - 1);
@@ -21,6 +22,7 @@ function|script|UnequipLater|,
set @unequip_slot, (@slotId + 1);
addtimer 0, "UnequipCB::OnUnequip";
+ goto L_Return;
L_Return:
return;
diff --git a/world/map/npc/items/unreleased_item.txt b/world/map/npc/items/unreleased_item.txt
index 457c2bcb..68fbc468 100644
--- a/world/map/npc/items/unreleased_item.txt
+++ b/world/map/npc/items/unreleased_item.txt
@@ -10,6 +10,7 @@ function|script|UnreleasedItem|,
goto L_Return;
message strcharinfo(0), "You have difficulties equipping this item, as if it is not yet fully in this world.";
callfunc "UnequipLater";
+ goto L_Return;
L_Return:
return;