summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/001-1_Tulimshar/guide.txt17
-rw-r--r--npc/001-1_Tulimshar/sandra.txt107
-rw-r--r--npc/001-1_Tulimshar/vincent.txt37
-rw-r--r--npc/001-2_Tulimshar/troupe_leader.txt9
-rw-r--r--npc/002-4_Desert_mines/chest.txt12
-rw-r--r--npc/004-1_Beach/_import.txt1
-rw-r--r--npc/004-1_Beach/_warps.txt2
-rw-r--r--npc/004-1_Beach/monsters.txt26
-rw-r--r--npc/004-2_Beach_House/_import.txt3
-rw-r--r--npc/004-2_Beach_House/_mobs.txt7
-rw-r--r--npc/004-2_Beach_House/_warps.txt10
-rw-r--r--npc/006-1_Desert_mountains/pachua.txt10
-rw-r--r--npc/008-1_Hurnscald_outskirts/hinnak.txt18
-rw-r--r--npc/009-1_Hurnscald/jack.txt14
-rw-r--r--npc/009-1_Hurnscald/old_woman.txt2
-rw-r--r--npc/009-2_Hurnscald/alan.txt7
-rw-r--r--npc/009-2_Hurnscald/kfahr.txt42
-rw-r--r--npc/009-2_Hurnscald/nicholas.txt18
-rw-r--r--npc/009-2_Hurnscald/waitress.txt10
-rw-r--r--npc/010-2_Dimonds_Cove/loratay.txt13
-rw-r--r--npc/011-1_Woodland/alchemist.txt28
-rw-r--r--npc/013-2_Magic_house/apprentice.txt146
-rw-r--r--npc/013-3_Cave/mask_chest.txt24
-rw-r--r--npc/013-3_Cave/sword_chest.txt7
-rw-r--r--npc/014-1_Woodland/wedding-officiator.txt6
-rw-r--r--npc/018-3_Cave/bookcase.txt4
-rw-r--r--npc/019-1_Snow_field/_import.txt2
-rw-r--r--npc/019-1_Snow_field/santa.txt50
-rw-r--r--npc/019-1_Snow_field/santa_helper.txt65
-rw-r--r--npc/019-1_Snow_field/snowman.txt7
-rw-r--r--npc/020-1/_import.txt8
-rw-r--r--npc/020-1/monsters.txt14
-rw-r--r--npc/020-1_Nivalis/_import.txt7
-rw-r--r--npc/020-1_Nivalis/_mobs.txt (renamed from npc/020-1/_mobs.txt)2
-rw-r--r--npc/020-1_Nivalis/_warps.txt (renamed from npc/020-1/_warps.txt)2
-rw-r--r--npc/020-1_Nivalis/amrak.txt (renamed from npc/020-1/amrak.txt)0
-rw-r--r--npc/020-1_Nivalis/sexchanger.txt (renamed from npc/020-1/sexchanger.txt)0
-rw-r--r--npc/020-1_Nivalis/soul-menhir.txt (renamed from npc/020-1/soul-menhir.txt)0
-rw-r--r--npc/020-1_Nivalis/startrek.txt (renamed from npc/020-1/startrek.txt)0
-rw-r--r--npc/020-2/_import.txt5
-rw-r--r--npc/020-2_Nivalis/_import.txt5
-rw-r--r--npc/020-2_Nivalis/_mobs.txt (renamed from npc/020-2/_mobs.txt)2
-rw-r--r--npc/020-2_Nivalis/_warps.txt (renamed from npc/020-2/_warps.txt)2
-rw-r--r--npc/020-2_Nivalis/furquest.txt (renamed from npc/020-2/furquest.txt)7
-rw-r--r--npc/020-2_Nivalis/shops.txt (renamed from npc/020-2/shops.txt)0
-rw-r--r--npc/021-1_Tulimshar/_import.txt2
-rw-r--r--npc/021-2_Tulimshar/_import.txt3
-rw-r--r--npc/021-2_Tulimshar/_mobs.txt7
-rw-r--r--npc/021-2_Tulimshar/_warps.txt2
-rw-r--r--npc/022-1_Beach_Cliffs/_import.txt3
-rw-r--r--npc/022-1_Beach_Cliffs/_mobs.txt7
-rw-r--r--npc/022-1_Beach_Cliffs/_warps.txt4
-rw-r--r--npc/_import.txt8
-rw-r--r--npc/functions/game_rules.txt3
54 files changed, 539 insertions, 258 deletions
diff --git a/npc/001-1_Tulimshar/guide.txt b/npc/001-1_Tulimshar/guide.txt
index 1efc79fe..d4367616 100644
--- a/npc/001-1_Tulimshar/guide.txt
+++ b/npc/001-1_Tulimshar/guide.txt
@@ -140,12 +140,7 @@ L_Key:
L_Laws:
mes "[Ian the Guide]";
- mes "\"Lady Platyna, the Overseer, has decreed the following rules:";
- mes "1. Do not abuse others (insult, swear etc.)";
- mes "2. No bots.";
- mes "3. No spamming/flooding.";
- mes "4. No begging.";
- mes "5. Speak English.";
+ mes "\"The constable can help you with them.\"";
next;
goto L_Menu_A;
@@ -153,12 +148,20 @@ L_Know:
close;
S_Grad:
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
mes "[Ian the Guide]";
mes "\"Hey, you've been doing good, let me give you this.\"";
- next;
getitem 675, 1;
set TUT_var, TUT_var | 2;
+ next;
+
+ return;
+L_TooMany:
+ mes "[Ian the Guide]";
+ mes "\"I wanted to give you something, but you don't have room for it.\"";
+ next;
return;
}
diff --git a/npc/001-1_Tulimshar/sandra.txt b/npc/001-1_Tulimshar/sandra.txt
index eb1ebdf0..048bfa19 100644
--- a/npc/001-1_Tulimshar/sandra.txt
+++ b/npc/001-1_Tulimshar/sandra.txt
@@ -1,83 +1,102 @@
//
001-1.gat,110,71,0 script Sandra 114,{
- if(Scorp == 2) goto done;
- if(Scorp == 1) goto reas;
+ if(Scorp == 2) goto L_Done;
+ if(Scorp == 1) goto L_Progress;
+
set @TEMP,rand(3);
- if(@TEMP == 1) goto L_1;
- if(@TEMP == 2) goto L_2;
- if(@TEMP == 3) goto L_3;
- if(@TEMP == 0) goto L_4;
-L_1:
+ if(@TEMP == 1) goto L_Opening1;
+ if(@TEMP == 2) goto L_Opening2;
+ if(@TEMP == 3) goto L_Opening3;
+ if(@TEMP == 0) goto L_Opening4;
+
+L_Opening1:
mes "[Sandra]";
- mes "\"In the outskirts of Tulimshar, there wanders a red scorpion. I need a favor, please help me.\"";
+ mes "\"In the outskirts of Tulimshar, there wanders a red scorpion. I need a favor, please help me. Will you?\"";
next;
- goto red;
-L_2:
+ goto L_Ask;
+
+L_Opening2:
mes "[Sandra]";
mes "\"When you venture in the outskirts of Tulimshar, you can spot a red scorpion. Will you help me kill one?\"";
next;
- goto red;
-L_3:
+ goto L_Ask;
+
+L_Opening3:
mes "[Sandra]";
- mes "\"The red scorpion stinger carries many properties used in potions.\"";
+ mes "\"The red scorpion stinger carries many properties used in potions. Will you get some for me?\"";
next;
- goto red;
-L_4:
+ goto L_Ask;
+
+L_Opening4:
mes "[Sandra]";
mes "\"You look sturdy enough, will you help me get something?\"";
next;
- goto red;
-red:
- menu "Yes",L_kl,"No",L_N;
-L_kl:
- if(@TEMP == 1) goto K_1;
- if(@TEMP == 2) goto K_2;
- if(@TEMP == 3) goto K_3;
- if(@TEMP == 0) goto K_1;
-K_1:
+ goto L_Ask;
+
+L_Ask:
+ menu
+ "Yes", L_Yes,
+ "No", L_No;
+
+L_Yes:
+ if(@TEMP == 1) goto L_Req1;
+ if(@TEMP == 2) goto L_Req2;
+ if(@TEMP == 3) goto L_Req3;
+ if(@TEMP == 0) goto L_Req1;
+
+L_Req1:
mes "[Sandra]";
mes "\"I need you to slaughter the red scorpion found outside of Tulimshar and bring me 5 [Red Stingers].\"";
next;
- goto set1;
-K_2:
+ goto L_Set;
+
+L_Req2:
mes "[Sandra]";
mes "\"I heard a while ago that the stinger of a red scorpion can be used for medical purposes. I need you to help me get 5 [Red Stingers].\"";
next;
- goto set1;
-K_3:
+ goto L_Set;
+
+L_Req3:
mes "[Sandra]";
mes "\"Bring me 5 [Red Stingers] and i will reward you greatly.\"";
next;
- goto set1;
-set1:
+ goto L_Set;
+
+L_Set:
set Scorp,1;
mes "[Sandra]";
mes "\"Please bring me them!\"";
close;
-reas:
- if(countitem(517) >= 5) goto have;
+
+L_Progress:
+ if (countitem(517) >= 5) goto L_Have;
mes "[Sandra]";
mes "\"Please hurry and bring me 5 [Red Stingers].\"";
close;
-have:
+
+L_Have:
mes "[Sandra]";
mes "\"Excellent!";
mes "You brought me 5 [Red Stingers]!\"";
- delitem 517,5;
- next;
- mes "[Sandra]";
- mes "\"Here you go, your reward!\"";
- mes "+Got Bow";
- mes "+Got Arrows 100";
- getitem 1200,1;
- getitem 1199,100;
- set Scorp,2;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(517) > 5) goto L_TooMany;
+ delitem 517, 5;
+ getitem 1200, 1;
+ getitem 1199, 100;
+ set Scorp, 2;
close;
-done:
+
+L_Done:
mes "[Sandra]";
mes "\"Thank you for all your help!\"";
close;
-L_N:
+
+L_No:
close;
+
+L_TooMany:
+ next;
+ mes "[Sandra]";
+ mes "\"You don't have room for my reward. I'll wait until you do.\"";
}
diff --git a/npc/001-1_Tulimshar/vincent.txt b/npc/001-1_Tulimshar/vincent.txt
index ef17ba18..b0412517 100644
--- a/npc/001-1_Tulimshar/vincent.txt
+++ b/npc/001-1_Tulimshar/vincent.txt
@@ -1,32 +1,33 @@
//
001-1.gat,135,42,0 script Vincent 113,{
- if(Bugleg == 1) goto L_Reas;
if(Bugleg == 2) goto L_Done;
+ if(Bugleg == 1) goto L_Progress;
+
set @TEMP, rand(4);
- if(@TEMP == 0) goto L_1;
- if(@TEMP == 1) goto L_2;
- if(@TEMP == 2) goto L_3;
- if(@TEMP == 3) goto L_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;
-L_1:
+L_Opening1:
mes "[Vincent]";
mes "\"I just need 30 more [Bug Legs] to finish my action figure!\"";
next;
goto L_Ask;
-L_2:
+L_Opening2:
mes "[Vincent]";
mes "\"This maggot action figure is awesome! I just need to attach [30 Part A{Bug Leg}]\"";
next;
goto L_Ask;
-L_3:
+L_Opening3:
mes "[Vincent]";
mes "\"This is a great action figure! A must have! All I need is a few parts...\"";
goto L_Ask;
-L_4:
+L_Opening4:
mes "[Vincent]";
mes "\"Can you get me 30 [Bug Legs]? I need them to replace the action figure parts.\"";
next;
@@ -44,30 +45,30 @@ L_Ask:
L_Sure:
set Bugleg, 1;
set @TEMP,rand(4);
- if(@TEMP == 0) goto J_1;
- if(@TEMP == 1) goto J_2;
- if(@TEMP == 2) goto J_3;
- if(@TEMP == 3) goto J_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;
-J_1:
+L_Req1:
mes "[Vincent]";
mes "\"Thank you!\"";
next;
goto L_Wait;
-J_2:
+L_Req2:
mes "[Vincent]";
mes "\"I don't know how to thank you enough!\"";
next;
goto L_Wait;
-J_3:
+L_Req3:
mes "[Vincent]";
mes "\"I will thank you when I get them!\"";
next;
goto L_Wait;
-J_4:
+L_Req4:
mes "[Vincent]";
mes "\"I'm sure I will give a small reward. :D\"";
next;
@@ -78,7 +79,7 @@ L_Wait:
mes "\"Now please go get me 30 [Bug Legs]\"";
close;
-L_Reas:
+L_Progress:
if(countitem(518) >= 30) goto L_Have;
mes "[Vincent]";
mes "\"Please help me collect 30 [Bug Legs]!\"";
diff --git a/npc/001-2_Tulimshar/troupe_leader.txt b/npc/001-2_Tulimshar/troupe_leader.txt
index 1114de56..d5c8bbfd 100644
--- a/npc/001-2_Tulimshar/troupe_leader.txt
+++ b/npc/001-2_Tulimshar/troupe_leader.txt
@@ -32,12 +32,19 @@ L_NohMask_Accuse:
L_NohMask_Found:
mes "[Troupe Leader]";
mes "\"Thank you for finding the mask. You did such a good job, you should keep it.\"";
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_NohMask_TooMany;
mes "[1500 experience points]";
getexp 1500, 0;
- next;
set Inspector, 14;
getitem 678, 1;
+ next;
mes "[Troupe Leader]";
mes "\"We don't need it anymore. We're doing different shows here.\"";
close;
+
+L_NohMask_TooMany:
+ next;
+ mes "[Troupe Leader]";
+ mes "\"Except, you don't seem to have any room for it. I'll hold onto it for you until you do have room.\"";
}
diff --git a/npc/002-4_Desert_mines/chest.txt b/npc/002-4_Desert_mines/chest.txt
index c3e2c188..e76332fd 100644
--- a/npc/002-4_Desert_mines/chest.txt
+++ b/npc/002-4_Desert_mines/chest.txt
@@ -13,14 +13,17 @@
L_Yes:
if(countitem(537) < 3) goto L_Not_Enough;
- delitem 537, 3;
- getitem 536, 1;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(537) > 3) goto L_TooMany;
mes "[Chest]";
mes "You opened it and found a short sword!";
+ delitem 537, 3;
+ getitem 536, 1;
set ChestQuest, ChestQuest | 1;
close;
L_Not_Enough:
+ mes "[Chest]";
mes "It seems that this is not the right key...";
close;
@@ -28,4 +31,9 @@ L_Finished:
mes "[Chest]";
mes "You already opened this chest.";
close;
+
+L_TooMany:
+ mes "[Chest]";
+ mes "You don't have room for what ever is inside. Maybe you should try again later.";
+ close;
}
diff --git a/npc/004-1_Beach/_import.txt b/npc/004-1_Beach/_import.txt
index 0b1dba07..7bd39a8b 100644
--- a/npc/004-1_Beach/_import.txt
+++ b/npc/004-1_Beach/_import.txt
@@ -1,4 +1,3 @@
map: 004-1.gat
npc: npc/004-1_Beach/_mobs.txt
npc: npc/004-1_Beach/_warps.txt
-npc: npc/004-1_Beach/monsters.txt
diff --git a/npc/004-1_Beach/_warps.txt b/npc/004-1_Beach/_warps.txt
index b6ccc7d0..97af769d 100644
--- a/npc/004-1_Beach/_warps.txt
+++ b/npc/004-1_Beach/_warps.txt
@@ -2,3 +2,5 @@
004-1.gat,84,113 warp ToSandstorm 1,-1,002-1.gat,29,15
004-1.gat,37,111 warp ToBeach 1,-1,003-1.gat,141,21
+004-1.gat,80,31 warp ToHouse -1,-1,004-2.gat,21,28
+004-1.gat,86,27 warp To2ndFloor -1,-1,004-2.gat,57,65
diff --git a/npc/004-1_Beach/monsters.txt b/npc/004-1_Beach/monsters.txt
deleted file mode 100644
index 8056eead..00000000
--- a/npc/004-1_Beach/monsters.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-// Map: 004-1
-// This is the Beach west of Tulimshar.
-//
-
-004-1.gat,0,0,0,0 monster SeaSlime 1033,30,0,0,Mob34::OnSeaSlime
-004-1.gat,0,0,0,0 monster GiantMaggot 1006,10,0,0,Mob34::OnGiantMaggot
-004-1.gat,0,0,0,0 monster RedScorpion 1004,12,0,0,Mob34::OnRedScorpion
-
-004-1.gat,0,0,0 script Mob34 -1,{
-OnSeaSlime:
- set @mobID, 1033;
- callfunc "MobPoints";
- break;
-
-OnGiantMaggot:
- set @mobID, 1006;
- callfunc "MobPoints";
- break;
-
-OnRedScorpion:
- set @mobID, 1004;
- callfunc "MobPoints";
- break;
-
- end;
-}
diff --git a/npc/004-2_Beach_House/_import.txt b/npc/004-2_Beach_House/_import.txt
new file mode 100644
index 00000000..32725dc8
--- /dev/null
+++ b/npc/004-2_Beach_House/_import.txt
@@ -0,0 +1,3 @@
+map: 004-2.gat
+npc: npc/004-2_Beach_House/_mobs.txt
+npc: npc/004-2_Beach_House/_warps.txt
diff --git a/npc/004-2_Beach_House/_mobs.txt b/npc/004-2_Beach_House/_mobs.txt
new file mode 100644
index 00000000..fada1e0d
--- /dev/null
+++ b/npc/004-2_Beach_House/_mobs.txt
@@ -0,0 +1,7 @@
+// 004-2 Beach House mobs
+
+
+
+004-2.gat,0,0,0 script Mob004-2 -1,{
+ end;
+}
diff --git a/npc/004-2_Beach_House/_warps.txt b/npc/004-2_Beach_House/_warps.txt
new file mode 100644
index 00000000..8a1e4047
--- /dev/null
+++ b/npc/004-2_Beach_House/_warps.txt
@@ -0,0 +1,10 @@
+// 004-2 Beach House warps
+
+004-2.gat,39,20 warp ToRoom 0,-1,004-2.gat,75,29
+004-2.gat,75,30 warp ToRoom 0,-1,004-2.gat,38,21
+004-2.gat,21,29 warp ToOutside -1,-1,004-1.gat,80,32
+004-2.gat,62,28 warp ToBasement -1,-1,004-2.gat,21,62
+004-2.gat,20,62 warp To1stFloor -1,-1,004-2.gat,63,28
+004-2.gat,68,66 warp To1stFloor 0,-1,004-2.gat,35,21
+004-2.gat,36,20 warp To2ndFloor 0,-1,004-2.gat,68,65
+004-2.gat,57,66 warp ToOutside -1,-1,004-1.gat,86,28
diff --git a/npc/006-1_Desert_mountains/pachua.txt b/npc/006-1_Desert_mountains/pachua.txt
index 15d1610c..51c2d3b2 100644
--- a/npc/006-1_Desert_mountains/pachua.txt
+++ b/npc/006-1_Desert_mountains/pachua.txt
@@ -134,11 +134,13 @@ L_leather_patch:
next;
menu "Here you are.", -,
- "OK, I'll be back later.", L_end,
+ "OK, I'll be back later.", L_End,
"That's too expensive!.", L_NoDeal;
if (countitem(@SNAKE_SKIN) < 1) goto L_NoSkins;
if (zeny < @LEATHER_PATCH_PRICE) goto L_NoMoney;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@SNAKE_SKIN) > 1) goto L_TooMany;
set zeny, zeny - @LEATHER_PATCH_PRICE;
delitem @SNAKE_SKIN, 1;
@@ -189,6 +191,10 @@ L_WearingChaps:
next;
goto L_Check_Shops;
-L_end:
+L_End:
close;
+
+L_TooMany:
+ mes "[Chief Pachua]";
+ mes "\"You don't have room for a leather patch. Come back later.\"";
}
diff --git a/npc/008-1_Hurnscald_outskirts/hinnak.txt b/npc/008-1_Hurnscald_outskirts/hinnak.txt
index 27dcd677..ce0af655 100644
--- a/npc/008-1_Hurnscald_outskirts/hinnak.txt
+++ b/npc/008-1_Hurnscald_outskirts/hinnak.txt
@@ -53,7 +53,7 @@ L_Reward:
L_Exchange:
mes "[Farmer Hinnak]";
- mes "Have you got the 10 antennae?";
+ mes "\"Have you got the 10 antennae?\"";
next;
if (countitem(614) < 10) goto L_Exchange_Notenough;
@@ -64,6 +64,9 @@ L_Exchange:
close;
L_Exchange_Exchange:
+ if (countitem(614) < 10) goto L_Exchange_Notenough;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Exchange_TooMany;
delitem 614, 10;
getitem 623, 1;
set QUEST_Scythe_state, 2;
@@ -72,13 +75,18 @@ L_Exchange_Exchange:
close;
L_Exchange_Notenough:
- menu
- "Not yet, but I am working on it.", -;
+ mes "[Farmer Hinnak]";
+ mes "\"It doesn't look like you do.\"";
+ close;
+
+L_Exchange_TooMany:
+ mes "[Farmer Hinnak]";
+ mes "\"Looks like you don't have room for this. Come back later to receive your reward. Hold on to the antennea until then.\"";
close;
L_ThanksAgain:
mes "[Farmer Hinnak]";
- mes "Thanks again for helping me with the pinkies.";
+ mes "\"Thanks again for helping me with the pinkies.\"";
close;
L_NohMask:
@@ -97,4 +105,4 @@ L_NohMask_Satchel:
mes "[Farmer Hinnak]";
mes "\"Yes, I saw someone with a large sack on their back go to the minning camp.\"";
close;
-} \ No newline at end of file
+}
diff --git a/npc/009-1_Hurnscald/jack.txt b/npc/009-1_Hurnscald/jack.txt
index ed90135a..84dc15d9 100644
--- a/npc/009-1_Hurnscald/jack.txt
+++ b/npc/009-1_Hurnscald/jack.txt
@@ -110,7 +110,7 @@ L_Bow_state_2:
if (@Q_Forestbow > 3) goto L_Bow_state_4;
mes "\"Good luck hunting those tree monsters - you will need it.\"";
- if (Inspector == 1) goto L_NohMask_Ask;
+ if (Inspector == 1) callsub S_NohMask_Ask;
close;
L_Bow_state_4:
@@ -183,6 +183,8 @@ L_Shield_state_2:
if (countitem(@RAWLOG) < @RAWLOGS_AMOUNT) goto L_Not_enough_logs;
if (zeny < @SHIELD_COST) goto L_Not_enough_money;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
delitem @RAWLOG, @RAWLOGS_AMOUNT;
set zeny, zeny - @SHIELD_COST;
@@ -223,16 +225,24 @@ L_Not_enough_money:
mes "\"You don't have enough gold, I'm afraid. I need " + @SHIELD_COST + " GP to finish your shield.\"";
close;
+L_TooMany:
+ mes "[Jack Lumber]";
+ mes "\"You don't have enough room for the shield. Come back when you do.\"";
+ close;
+
L_Shield_state_3:
mes "[Jack Lumber]";
mes "\"I hope that my shield will serve you well!\"";
+ next;
+
if (Inspector == 1)
menu
"Me too.", -,
"Have you seen anything that might be connected to the recent robberies in town?", L_NohMask_Answer;
close;
-L_NohMask_Ask:
+S_NohMask_Ask:
+ next;
menu
"I'll keep that in mind.", -,
"Have you seen anything that might be connected to the recent robberies in town?", L_NohMask_Answer;
diff --git a/npc/009-1_Hurnscald/old_woman.txt b/npc/009-1_Hurnscald/old_woman.txt
index 5198f8ab..9f3d26ec 100644
--- a/npc/009-1_Hurnscald/old_woman.txt
+++ b/npc/009-1_Hurnscald/old_woman.txt
@@ -36,7 +36,7 @@ L_NohMask_Alibi:
L_NohMask_Fake:
if (Inspector == 9) goto L_NohMask_Fake_Satchel;
- if (Inspector >= 3 && Inspector <= 6) got L_NohMask_Filler;
+ if (Inspector >= 3 && Inspector <= 6) goto L_NohMask_Filler;
mes "[Old Woman]";
mes "\"I saw someone sneaking around town wearing a theater mask. It looked like one of the masks used by the troupe that was in town recently.\"";
diff --git a/npc/009-2_Hurnscald/alan.txt b/npc/009-2_Hurnscald/alan.txt
index 0235ad33..6d8a1770 100644
--- a/npc/009-2_Hurnscald/alan.txt
+++ b/npc/009-2_Hurnscald/alan.txt
@@ -174,6 +174,8 @@ L_State_4:
L_State_4_pay:
if (zeny < 10000) goto L_State_4_nocash;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_State_4_TooMany;
set zeny, zeny - 10000;
getitem 545, 1;
set @Q_status, 5;
@@ -187,6 +189,11 @@ L_State_4_nocash:
mes "\"Seems like you are out of cash.\"";
close;
+L_State_4_TooMany:
+ mes "[Alan]";
+ mes "\"Seems like you don't have room for this bow. Come back later.\"";
+ close;
+
L_State_5:
mes "[Alan]";
mes "\"I hope you are statisfied with your forest bow. It is one of my best works.\"";
diff --git a/npc/009-2_Hurnscald/kfahr.txt b/npc/009-2_Hurnscald/kfahr.txt
index cd5bc3b7..f24d2071 100644
--- a/npc/009-2_Hurnscald/kfahr.txt
+++ b/npc/009-2_Hurnscald/kfahr.txt
@@ -810,12 +810,19 @@ L_knife_quest_completecheck:
mes "I had the nomads make me a few of them, and I hardly use them nowadays, so I think I can part with this one.";
next;
+ if (countitem(@BLACK_STINGER) < @BLACK_STINGERS_NR)
+ goto L_knife_quest_missing_stingers_2;
+
+ if (countitem(@MUSHROOM) < @MUSHROOMS_NR)
+ goto L_knife_quest_missing_mushrooms_2;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Knife_TooMany;
+
mes "[Kfahr the Warrior]";
mes "He hands you the knife.";
mes "\"Oh, and I think I'll keep those in return; I know someone who will trade them for antidote potions.\"";
mes "He pockets the stingers and mushrooms.";
mes "[" + @KNIFE_QUEST_XP + " experience points]";
- next;
set @Q_status, @QS_KNIFE_QUEST_DONE;
callsub L_Update_Var;
@@ -824,10 +831,15 @@ L_knife_quest_completecheck:
delitem @MUSHROOM, @MUSHROOMS_NR;
getexp @KNIFE_QUEST_XP, 0;
getitem @BONE_KNIFE, 1;
-
+ next;
goto L_main_menu;
+L_Knife_TooMany:
+ mes "[Kfahr the Warrior]";
+ mes "\"You don't have room for this. Come back when you do.\"";
+ close;
+
L_knife_quest_missing_stingers:
mes "[Kfahr the Warrior]";
mes "\"No, no... I said " + @BLACK_STINGERS_NR + " black scorpion stingers.";
@@ -838,6 +850,16 @@ L_knife_quest_missing_stingers:
next;
close;
+L_knife_quest_missing_stingers_2:
+ mes "[Kfahr the Warrior]";
+ mes "\"You just had " + @BLACK_STINGERS_NR + " black scorpion stingers. What happened to them?";
+ if (countitem(@BLACK_STINGER))
+ mes "You will need " + (@BLACK_STINGERS_NR - (countitem (@BLACK_STINGER))) + " more of those.\"";
+ if (countitem(@BLACK_STINGER) == 0)
+ mes "You didn't bring even a single one!\"";
+ next;
+ close;
+
L_knife_quest_missing_mushrooms:
mes "[Kfahr the Warrior]";
mes "\"No, no... I said " + @MUSHROOMS_NR + " small mushrooms.";
@@ -848,6 +870,16 @@ L_knife_quest_missing_mushrooms:
next;
close;
+L_knife_quest_missing_mushrooms_2:
+ mes "[Kfahr the Warrior]";
+ mes "\"You just had " + @MUSHROOMS_NR + " small mushrooms. What happened to them?";
+ if (countitem(@MUSHROOM))
+ mes "You will need " + (@MUSHROOMS_NR - (countitem (@MUSHROOM))) + " more of those.\"";
+ if (countitem(@MUSHROOM) == 0)
+ mes "You didn't bring me even a single little mushroom!\"";
+ next;
+ close;
+
L_stinger_quest_check:
mes "[Kfahr the Warrior]";
mes "Kfahr grins at you.";
@@ -863,6 +895,8 @@ L_stinger_quest_check:
L_snakeskins_completecheck:
if (countitem(@SNAKE_SKIN) < @SNAKE_SKINS_NR)
goto L_snakeskins_missing;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_SnakeSkins_TooMany;
delitem @SNAKE_SKIN, @SNAKE_SKINS_NR;
getitem @GOLDEN_STINGER, 1;
@@ -890,6 +924,10 @@ L_snakeskins_missing:
next;
close;
+L_SnakeSkins_TooMany:
+ mes "[Kfahr the Warrior]";
+ mes "\"YOu don't have room for this. Come back when you do.\"";
+ close;
L_give_beer:
if (countitem(@BEER) < 1)
diff --git a/npc/009-2_Hurnscald/nicholas.txt b/npc/009-2_Hurnscald/nicholas.txt
index 30d48594..349593db 100644
--- a/npc/009-2_Hurnscald/nicholas.txt
+++ b/npc/009-2_Hurnscald/nicholas.txt
@@ -189,13 +189,17 @@ L_NoMoney:
L_YesKnight:
if (zeny < 10000) goto L_NoMoney;
- set zeny, zeny-10000;
- delitem @IRON_ORE,5;
- getitem 637,1;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
+ set zeny, zeny - 10000;
+ delitem @IRON_ORE, 5;
+ getitem 637, 1;
goto L_Done;
L_YesCrusade:
if (zeny < 10000) goto L_NoMoney;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
set zeny, zeny-10000;
delitem @IRON_ORE,10;
getitem 639,1;
@@ -203,6 +207,8 @@ L_YesCrusade:
L_YesWarlord:
if (zeny < 10000) goto L_NoMoney;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
set zeny, zeny-10000;
delitem @IRON_ORE,15;
getitem 636,1;
@@ -238,6 +244,7 @@ L_YesShield:
if (countitem(@INFANTRY) < 2) goto L_ShieldNoInfantry;
if (countitem(@IRON_ORE) < 10) goto L_ShieldNoOre;
if (countitem(@LEATHER_PATCH) < 1) goto L_ShieldNoLeatherPatch;
+ // No inventory check needed, as infantry helms are removed, opening two slots
mes "[Nicholas]";
mes "\"Yes, it looks as if you have all that is needed!\"";
@@ -326,6 +333,7 @@ L_SetzerQuest:
if (countitem(@IRON_ORE) < 5) goto L_SetzerNoOre;
if (countitem(@MONSTER_OIL) < 1) goto L_SetzerNoMonsterOil;
if (countitem(@SHORT_SWORD) < 1) goto L_SetzerNoSword;
+ // No inventory check needed, as the short sword is removed, opening a slot
mes "[Nicholas]";
mes "Nicholas takes the items, heats up your sword and pounds it with a heavy hammer. Before your eyes it turns thinner and flatter. Finally he pours the monster oil over it, heats it up again and douses it in water.";
@@ -401,4 +409,8 @@ L_Update_Var:
| (@Q_SHIELD_status << @Q_SHIELD_SHIFT)
| (@Q_SETZER_status << @Q_SETZER_SHIFT));
return;
+
+L_TooMany:
+ mes "[Nicholas]";
+ mes "\"You don't have room for it. Come back later when you do.\"";
}
diff --git a/npc/009-2_Hurnscald/waitress.txt b/npc/009-2_Hurnscald/waitress.txt
index cf2778fd..bcf2f434 100644
--- a/npc/009-2_Hurnscald/waitress.txt
+++ b/npc/009-2_Hurnscald/waitress.txt
@@ -2,6 +2,10 @@
009-2.gat,60,52,0 script Melinda 140,{
if (zeny < 180) goto L_NoMoney;
+ getinventorylist;
+ set @beerCount, countitem(539);
+ if (@inventorylist_count == 100 && beerCount < 0) goto L_TooMany;
+
mes "[Melinda]";
mes "\"Hi sweety! Want a fresh beer for 170gp?\"";
next;
@@ -46,6 +50,12 @@ L_No:
close;
L_NoMoney:
+ mes "[Melinda]";
mes "\"You look broke. Don't think that you can dine and dash here!\"";
close;
+
+L_TooMany:
+ mes "[Melinda]";
+ mes "\"You don't have room for a beer!\"";
+ close;
}
diff --git a/npc/010-2_Dimonds_Cove/loratay.txt b/npc/010-2_Dimonds_Cove/loratay.txt
index 559ba578..77336fb6 100644
--- a/npc/010-2_Dimonds_Cove/loratay.txt
+++ b/npc/010-2_Dimonds_Cove/loratay.txt
@@ -429,6 +429,8 @@ L_tanktop_menu:
L_tanktop_short:
if (countitem (@COTTON) < 5) goto L_tanktop_insufficient_cloth;
if (zeny < 1000) goto L_tanktop_insufficient_zeny;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@COTTON) > 5) goto L_TooMany;
set zeny, zeny - 1000;
delitem @COTTON, 5;
getitem 689, 1;
@@ -443,6 +445,8 @@ L_tanktop_short:
L_tanktop_long:
if (countitem (@COTTON) < 6) goto L_tanktop_insufficient_cloth;
if (zeny < 1000) goto L_tanktop_insufficient_zeny;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@COTTON) > 6) goto L_TooMany;
set zeny, zeny - 1000;
delitem @COTTON, 6;
getitem 688, 1;
@@ -519,6 +523,9 @@ L_robe_menu:
if (zeny < @ROBE_ZENY)
goto L_robe_missing_zeny;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@SILK_COCOON) > @ROBE_COCOONS_NR) goto L_TooMany;
+
set zeny, zeny - @ROBE_ZENY;
delitem @SILK_COCOON, @ROBE_COCOONS_NR;
getitem @SILK_ROBE, 1;
@@ -688,5 +695,9 @@ L_SUB_choice_join:
if (@menu >= @c) set @item, 0;
return;
-}
+L_TooMany:
+ mes "[Lora Tay the Seamstress]";
+ mes "\"You don't have anywhere to put this. Come back when you have more room.\"";
+ close;
+}
diff --git a/npc/011-1_Woodland/alchemist.txt b/npc/011-1_Woodland/alchemist.txt
index 08ba6e41..6329a5d6 100644
--- a/npc/011-1_Woodland/alchemist.txt
+++ b/npc/011-1_Woodland/alchemist.txt
@@ -107,6 +107,8 @@ L_main_menu:
L_iron:
if(countitem(566) < 20) goto L_no_iron;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(566) > 20) goto L_TooMany;
mes "[Rauk the Alchemist]";
mes "\"Great! You brought me exactly what I need!";
mes "Here is your Iron potion.\"";
@@ -116,6 +118,8 @@ L_iron:
L_concentration:
if(countitem(565) < 20) goto L_no_concentration;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(565) > 20) goto L_TooMany;
mes "[Rauk the Alchemist]";
mes "\"Great! You brought me exactly what I need!";
mes "Here is your Concentration potion.\"";
@@ -259,6 +263,8 @@ L_ok:
L_red:
if (countitem(@RED) < 10) goto L_red_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@RED) > 10) goto L_TooMany;
delitem @RED, 10;
getitem 690, 1;
goto L_ok;
@@ -277,6 +283,8 @@ L_d_red:
L_yellow:
if (countitem(@YELLOW) < 10) goto L_yellow_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@YELLOW) > 10) goto L_TooMany;
delitem @YELLOW, 10;
getitem 693, 1;
goto L_ok;
@@ -295,6 +303,8 @@ L_d_yellow:
L_light_blue:
if (countitem(@BLUE) < 10) goto L_light_blue_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@BLUE) > 10) goto L_TooMany;
delitem @BLUE, 10;
getitem 694, 1;
goto L_ok;
@@ -314,6 +324,8 @@ L_d_light_blue:
L_green:
if (countitem(@BLUE) < 20) goto L_green_fail;
if (countitem(@YELLOW) < 20) goto L_green_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@BLUE) > 20 && countitem(@YELLOW) > 20) goto L_TooMany;
if (zeny < 1000) goto L_green_fail;
delitem @BLUE, 20;
delitem @YELLOW, 20;
@@ -342,6 +354,8 @@ L_orange:
if (countitem(@RED) < 10) goto L_orange_fail;
if (countitem(@YELLOW) < 10) goto L_orange_fail;
if (countitem(@ORE) < 2) goto L_orange_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@RED) > 10 && countitem(@YELLOW) > 10 && countitem(@ORE) > 2) goto L_TooMany;
if (zeny < 1000) goto L_orange_fail;
delitem @RED, 10;
delitem @YELLOW, 10;
@@ -367,6 +381,8 @@ L_pink:
if (countitem(@RED) < 10) goto L_pink_fail;
if (countitem(@PETAL) < 6) goto L_pink_fail;
if (zeny < 1000) goto L_pink_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@RED) > 10 && countitem(@PETAL) > 6) goto L_TooMany;
delitem @RED, 10;
delitem @PETAL, 6;
set zeny, zeny - 1000;
@@ -391,6 +407,8 @@ L_dark_blue:
if (countitem(@MAUVE) < 50) goto L_dark_blue_fail;
if (countitem(@PEARL) < 1) goto L_dark_blue_fail;
if (zeny < 10000) goto L_dark_blue_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@BLUE) > 100 && countitem(@MAUVE) > 50 && countitem(@PEARL) > 1) goto L_TooMany;
delitem @BLUE, 100;
delitem @MAUVE, 50;
delitem @PEARL, 1;
@@ -417,6 +435,8 @@ L_purple:
if (countitem(@RED) < 100) goto L_purple_fail;
if (countitem(@MAUVE) < 20) goto L_purple_fail;
if (countitem(@PEARL) < 1) goto L_purple_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@BLUE) > 100 && countitem(@RED) > 100 && countitem(@MAUVE) > 20 && countitem(@PEARL) > 1) goto L_TooMany;
if (zeny < 40000) goto L_purple_fail;
delitem @BLUE, 100;
delitem @RED, 100;
@@ -448,6 +468,8 @@ L_black:
if (countitem(@RED) < 40) goto L_black_fail;
if (countitem(@YELLOW) < 40) goto L_black_fail;
if (countitem(@MAUVE) < 40) goto L_black_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@BLUE) > 40 && countitem(@RED) > 40 && countitem(@YELLOW) > 40 && countitem(@MAUVE) > 40) goto L_TooMany;
if (zeny < 20000) goto L_black_fail;
delitem @BLUE, 40;
delitem @RED, 40;
@@ -481,6 +503,8 @@ L_dark_green:
if (countitem(@MAUVE) < 10) goto L_dark_green_fail;
if (countitem(@MAGGOTSLIME) < 1) goto L_dark_green_fail;
if (zeny < 1000) goto L_dark_green_fail;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(@BLUE) > 10 && countitem(@YELLOW) > 10 && countitem(@MAUVE) > 10 && countitem(@MAGGOTSLIME) > 1) goto L_TooMany;
delitem @BLUE, 10;
delitem @MAUVE, 10;
delitem @YELLOW, 10;
@@ -714,4 +738,8 @@ L_Update_Var:
(QUEST_Forestbow_state & ~(@Q_MASK)
| (@Q_status << @Q_SHIFT));
return;
+
+L_TooMany:
+ mes "[Rauk the Alchemist]";
+ mes "You don't have room for this.";
}
diff --git a/npc/013-2_Magic_house/apprentice.txt b/npc/013-2_Magic_house/apprentice.txt
index ce3db4ad..abb96e6b 100644
--- a/npc/013-2_Magic_house/apprentice.txt
+++ b/npc/013-2_Magic_house/apprentice.txt
@@ -1,58 +1,92 @@
013-2.gat,25,37,0 script Fabius 115,{
- mes "\"Hey! Wanna have a drink or something? High quality, low cost. A poor fella like me needs a bit of extra cash, ye know.\"";
- next;
- menu
- "Yes please!",yes,
- "No thanks.",no,
- "No way, I thought it was for free!",not_free;
-yes:
- mes "\"So what would ya like, then?\"";
- next;
- menu
- "A beer",beer,
- "A milk",milk;
-no:
- mes "\"Suit yourself.\"";
- next;
- goto at_end;
-not_free:
- mes "\"Oh, you stupid git! ... But hey, let me tell ya something...\"";
- next;
- mes "\"There's notes flying around in the room up there. Did ya try reading some?\"";
- close;
-beer:
- mes "\"That'll be 175 GP.\"";
- next;
- menu "Here you are",beer_yes,
- "No thanks",beer_no;
-milk:
- mes "\"That'll be 300 GP.\"";
- next;
- menu "Here you are",milk_yes,
- "No thanks",milk_no;
-beer_yes:
- if (zeny < 175) goto low_money;
- getitem 539, 1;
- set zeny, zeny - 175;
- goto at_end;
-beer_no:
- mes "\"No beer, no civilization!\"";
- next;
- goto at_end;
-milk_yes:
- if (zeny < 300) goto low_money;
- getitem 527, 1;
- set zeny, zeny - 300;
- goto at_end;
-milk_no:
- mes "\"Oh alright. Milk is a deadly poison anyway...\"";
- next;
- goto at_end;
-low_money:
- mes "\"Aw, you don't have enough gold on you!\"";
- next;
-at_end:
- mes "\"By the way, have you seen those flying notes and the mirror in the room next door? They're WAY COOL! Try reading some of the notes!\"";
- close;
-}
+ mes "[Fabius]";
+ mes "\"Hey! Wanna have a drink or something? High quality, low cost. A poor fella like me needs a bit of extra cash, ye know.\"";
+ next;
+ menu
+ "Yes please!", L_Yes,
+ "No thanks.", L_No,
+ "No way, I thought it was for free!", L_Not_Free;
+
+L_Yes:
+ mes "[Fabius]";
+ mes "\"So what would ya like, then?\"";
+ next;
+ menu
+ "A beer", L_Beer,
+ "A milk", L_Milk,
+ "Nevermind", -;
+
+L_No:
+ mes "[Fabius]";
+ mes "\"Suit yourself.\"";
+ next;
+ goto L_Finish;
+
+L_Not_Free:
+ mes "[Fabius]";
+ mes "\"Oh, you stupid git! ... But hey, let me tell ya something...\"";
+ next;
+ mes "[Fabius]";
+ mes "\"There's notes flying around in the room up there. Did ya try reading some?\"";
+ close;
+
+L_Beer:
+ mes "[Fabius]";
+ mes "\"That'll be 175 GP.\"";
+ next;
+ menu
+ "Here you are", L_Beer_yes,
+ "No thanks", L_Beer_no;
+
+L_Beer_yes:
+ if (zeny < 175) goto L_Low_money;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(539) == 0) goto L_TooMany;
+
+ getitem 539, 1;
+ set zeny, zeny - 175;
+ goto L_Finish;
+L_Beer_no:
+ mes "[Fabius]";
+ mes "\"No beer, no civilization!\"";
+ next;
+ goto L_Finish;
+
+L_Milk:
+ mes "[Fabius]";
+ mes "\"That'll be 300 GP.\"";
+ next;
+ menu
+ "Here you are", L_Milk_yes,
+ "No thanks", L_Milk_no;
+
+L_Milk_yes:
+ if (zeny < 300) goto L_Low_money;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(527) == 0) goto L_TooMany;
+ getitem 527, 1;
+ set zeny, zeny - 300;
+ goto L_Finish;
+
+L_Milk_no:
+ mes "[Fabius]";
+ mes "\"Oh alright. Milk is a deadly poison anyway...\"";
+ next;
+ goto L_Finish;
+
+L_Low_money:
+ mes "[Fabius]";
+ mes "\"Aw, you don't have enough gold on you!\"";
+ next;
+ goto L_Finish;
+
+L_Finish:
+ mes "[Fabius]";
+ mes "\"By the way, have you seen those flying notes and the mirror in the room next door? They're WAY COOL! Try reading some of the notes!\"";
+ close;
+
+L_TooMany:
+ mes "[Fabius]";
+ mes "\"You don't have room for it.\"";
+}
diff --git a/npc/013-3_Cave/mask_chest.txt b/npc/013-3_Cave/mask_chest.txt
index dd0bc949..0da8bab9 100644
--- a/npc/013-3_Cave/mask_chest.txt
+++ b/npc/013-3_Cave/mask_chest.txt
@@ -30,30 +30,49 @@
if (countitem(541) == 0) goto L_No_water;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(505) > 1 && countitem(518) > 1 && countitem(718) > 1
+ && countitem(566) > 1 && countitem(565) > 1 && countitem(700) > 1
+ && countitem(613) > 1 && countitem(569) > 1 && countitem(614) > 1
+ && countitem(631) > 1 && countitem(640) > 1 && countitem(507) > 1
+ && countitem(517) > 1 && countitem(709) > 1 && countitem(710) > 1
+ && countitem(711) > 1 && countitem(712) > 1 && countitem(713) > 1
+ && countitem(680) > 1 && countitem(681) > 1 && countitem(682) > 1
+ && countitem(683) > 1 && countitem(537) > 1 && countitem(612) > 1
+ && countitem(701) > 1 && countitem(541) > 1) goto L_TooMany;
+
delitem 505, 1;
delitem 518, 1;
delitem 718, 1;
+
delitem 566, 1;
delitem 565, 1;
delitem 700, 1;
+
delitem 613, 1;
delitem 569, 1;
delitem 614, 1;
+
delitem 631, 1;
delitem 640, 1;
delitem 507, 1;
+
delitem 517, 1;
delitem 709, 1;
delitem 710, 1;
+
delitem 711, 1;
delitem 712, 1;
delitem 713, 1;
+
delitem 680, 1;
delitem 681, 1;
delitem 682, 1;
+
delitem 683, 1;
delitem 537, 1;
delitem 612, 1;
+
delitem 701, 1;
delitem 541, 1;
@@ -148,4 +167,9 @@ L_Finished:
mes "[Chest]";
mes "You already opened this chest.";
close;
+
+L_TooMany:
+ mes "[Chest]";
+ mes "You don't have room for what ever is inside. Maybe you should try again later.";
+ close;
}
diff --git a/npc/013-3_Cave/sword_chest.txt b/npc/013-3_Cave/sword_chest.txt
index 1cac4879..c570bfcd 100644
--- a/npc/013-3_Cave/sword_chest.txt
+++ b/npc/013-3_Cave/sword_chest.txt
@@ -13,6 +13,8 @@
L_Yes:
if(countitem(537) < 10) goto L_Not_Enough;
+ getinventorylist;
+ if (@inventorylist_count == 100 && countitem(537) > 10) goto L_TooMany;
delitem 537, 10;
getitem 536, 1;
mes "[Chest]";
@@ -28,4 +30,9 @@ L_Finished:
mes "[Chest]";
mes "You already opened this chest.";
close;
+
+L_TooMany:
+ mes "[Chest]";
+ mes "You don't have room for what ever is inside. Maybe you should try again later.";
+ close;
}
diff --git a/npc/014-1_Woodland/wedding-officiator.txt b/npc/014-1_Woodland/wedding-officiator.txt
index 7a6e606b..26f2fc56 100644
--- a/npc/014-1_Woodland/wedding-officiator.txt
+++ b/npc/014-1_Woodland/wedding-officiator.txt
@@ -95,6 +95,8 @@ L_get_married:
goto L_too_poor;
if (BaseLevel < @WEDDING_MIN_LEVEL)
goto L_too_young;
+ getinventorylist;
+ if (@inventorylist_count > 98) goto L_No_Room_For_Rings;
set zeny, zeny - @WEDDING_FEE;
getitem 702, 1;
@@ -243,4 +245,8 @@ L_do_divorce:
mes "\"You are divorced now. Thank you for your business.\"";
next;
close;
+
+L_No_Room_For_Rings:
+ mes "[Wedding Officiator]";
+ mes "\"You don't have room to carry the rings.\"";
}
diff --git a/npc/018-3_Cave/bookcase.txt b/npc/018-3_Cave/bookcase.txt
index b2e14e41..d176caa3 100644
--- a/npc/018-3_Cave/bookcase.txt
+++ b/npc/018-3_Cave/bookcase.txt
@@ -12,12 +12,12 @@
close;
L_Search:
- mes "After searching the bookcase, you were able to find a few pasages that you can read.";
+ mes "After searching the bookcase, you were able to find a few passages that you can read.";
next;
mes "One of the describes an ancient barrier that guards a great treasure.";
mes "";
- mes "To get trough it, you need to consume the soul of a great pumpkin ghost.";
+ mes "To get through it, you need to consume the soul of a great pumpkin ghost.";
next;
mes "Another passage describes a ritual needed to open a certain cursed chest.";
diff --git a/npc/019-1_Snow_field/_import.txt b/npc/019-1_Snow_field/_import.txt
index 855671ad..e389a836 100644
--- a/npc/019-1_Snow_field/_import.txt
+++ b/npc/019-1_Snow_field/_import.txt
@@ -2,6 +2,6 @@ map: 019-1.gat
npc: npc/019-1_Snow_field/_mobs.txt
npc: npc/019-1_Snow_field/_warps.txt
npc: npc/019-1_Snow_field/monsters.txt
-npc: npc/019-1_Snow_field/santa.txt
+npc: npc/019-1_Snow_field/santa_helper.txt
npc: npc/019-1_Snow_field/snowman.txt
npc: npc/019-1_Snow_field/taro.txt
diff --git a/npc/019-1_Snow_field/santa.txt b/npc/019-1_Snow_field/santa.txt
deleted file mode 100644
index 01481d67..00000000
--- a/npc/019-1_Snow_field/santa.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-019-1.gat,74,75,0 script Santa 105,{
-if (ChristmasQuest2 == 1) goto done;
-mes "[Santa]";
-mes "Ho ho ho.";
-mes "Hello my young friend.";
-mes "Would you like to help me?";
-next;
-mes "Those monsters stolen my presents.";
-mes "If you help me, I'll give you something very nice";
-next;
-L_M:
-menu "I have some present boxes",L_Y,"Hmm, see you later",L_N,"What you need exactly?",L_R;
- L_Y:
- mes "[Santa]";
- mes "Hmm, let me check what you have.";
- next;
- if(countitem(515)<25) goto NoItem;
- if(countitem(516)<20) goto NoItem;
- if(countitem(538)<5) goto NoItem;
- mes "Great! Here is something for you";
- delitem 515,25;
- delitem 516,20;
- delitem 538,5;
- getitem 563+rand(2),1;
- set ChristmasQuest2,1;
- close;
- L_R:
- mes "[Santa]";
- mes "I need:";
- mes "25 purple present boxes";
- mes "20 blue present boxes";
- mes "5 green present boxes";
- next;
- goto L_M;
- L_N:
- mes "[Santa]";
- mes "Enjoy your holidays and I wish you an happy Christmas!";
- close;
- NoItem:
- mes "[Santa]";
- mes "You dont seem to have enough presents.";
- close;
- done:
- mes "[Santa]";
- mes "All the children got their Christmas presents.";
- mes "Thank you for your help.";
- close;
-
-}
-
diff --git a/npc/019-1_Snow_field/santa_helper.txt b/npc/019-1_Snow_field/santa_helper.txt
new file mode 100644
index 00000000..a8a86af6
--- /dev/null
+++ b/npc/019-1_Snow_field/santa_helper.txt
@@ -0,0 +1,65 @@
+019-1.gat,74,75,0 script Santa's Helper 105,{
+ if (ChristmasQuest2 == 1) goto L_Done;
+ mes "[Santa's Helper]";
+ mes "\"Hello my young friend.";
+ mes "Would you like to help me?\"";
+ next;
+ mes "[Santa's Helper]";
+ mes "\"Those monsters stole Santa's presents.";
+ mes "If you help me, I'll give you something very nice\"";
+ next;
+
+L_M:
+ menu
+ "I have some present boxes", L_Y,
+ "Hmm, see you later", L_N,
+ "What you need exactly?", L_R;
+
+L_Y:
+ mes "[Santa's Helper]";
+ mes "\"Hmm, let me check what you have.\"";
+ next;
+ if (countitem(515) < 25) goto L_NoItem;
+ if (countitem(516) < 20) goto L_NoItem;
+ if (countitem(538) < 5) goto L_NoItem;
+ getinventorylist;
+ if (@inventorylist_count > 99) goto L_TooMany;
+ mes "[Santa's Helper]";
+ mes "\"Great! Here is something for you\"";
+ delitem 515, 25;
+ delitem 516, 20;
+ delitem 538, 5;
+ getitem 564, 1;
+ set ChristmasQuest2,1;
+ close;
+
+L_R:
+ mes "[Santa's Helper]";
+ mes "\"I need:";
+ mes "25 purple present boxes";
+ mes "20 blue present boxes";
+ mes "5 green present boxes\"";
+ next;
+ goto L_M;
+
+L_N:
+ mes "[Santa's Helper]";
+ mes "\"Enjoy your holidays and I wish you an happy Christmas!\"";
+ close;
+
+L_NoItem:
+ mes "[Santa's Helper]";
+ mes "\"You dont seem to have enough presents.\"";
+ close;
+
+L_Done:
+ mes "[Santa's Helper]";
+ mes "\"All the children got their Christmas presents.";
+ mes "Thank you for your help.\"";
+ close;
+
+L_TooMany:
+ mes "[Santa's Helper]";
+ mes "\"It doesn't look like you have room for this. Come back later.\"";
+ close;
+}
diff --git a/npc/019-1_Snow_field/snowman.txt b/npc/019-1_Snow_field/snowman.txt
index 1f56e4f2..ca8c1f09 100644
--- a/npc/019-1_Snow_field/snowman.txt
+++ b/npc/019-1_Snow_field/snowman.txt
@@ -24,6 +24,8 @@ L_Sure:
if(countitem(510) < 15) goto L_NoItem;
if(countitem(509) < 10) goto L_NoItem;
if(countitem(502) < 5) goto L_NoItem;
+ getinventorylist;
+ if (@inventorylist_count > 99) goto L_TooMany;
delitem 510, 15;
delitem 509, 10;
delitem 502, 5;
@@ -51,4 +53,9 @@ L_Done:
mes "[Snowman]";
mes "\"Thank you for help!\"";
close;
+
+L_TooMany:
+ mes "[Snowman]";
+ mes "\"It doesn't look like you have room for this. Come back later.\"";
+ close;
}
diff --git a/npc/020-1/_import.txt b/npc/020-1/_import.txt
deleted file mode 100644
index 2565ac9d..00000000
--- a/npc/020-1/_import.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-map: 020-1.gat
-npc: npc/020-1/_mobs.txt
-npc: npc/020-1/_warps.txt
-npc: npc/020-1/amrak.txt
-npc: npc/020-1/monsters.txt
-npc: npc/020-1/sexchanger.txt
-npc: npc/020-1/soul-menhir.txt
-npc: npc/020-1/startrek.txt
diff --git a/npc/020-1/monsters.txt b/npc/020-1/monsters.txt
deleted file mode 100644
index fc33da8c..00000000
--- a/npc/020-1/monsters.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-// Map: 020-1
-// This is Snow Town.
-//
-
-020-1.gat,56,63,1,1 monster Maggot 1002,2,0,0,Mob11::OnMaggot
-
-020-1.gat,0,0,0 script Mob11 -1,{
-OnMaggot:
- set @mobID, 1002;
- callfunc "MobPoints";
- break;
-
- end;
-}
diff --git a/npc/020-1_Nivalis/_import.txt b/npc/020-1_Nivalis/_import.txt
new file mode 100644
index 00000000..0e18f3ac
--- /dev/null
+++ b/npc/020-1_Nivalis/_import.txt
@@ -0,0 +1,7 @@
+map: 020-1.gat
+npc: npc/020-1_Nivalis/_mobs.txt
+npc: npc/020-1_Nivalis/_warps.txt
+npc: npc/020-1_Nivalis/amrak.txt
+npc: npc/020-1_Nivalis/sexchanger.txt
+npc: npc/020-1_Nivalis/soul-menhir.txt
+npc: npc/020-1_Nivalis/startrek.txt
diff --git a/npc/020-1/_mobs.txt b/npc/020-1_Nivalis/_mobs.txt
index fa94c232..64a7e46c 100644
--- a/npc/020-1/_mobs.txt
+++ b/npc/020-1_Nivalis/_mobs.txt
@@ -1,4 +1,4 @@
-// 020-1 mobs
+// 020-1 Nivalis mobs
diff --git a/npc/020-1/_warps.txt b/npc/020-1_Nivalis/_warps.txt
index 36e0449a..c9578dfc 100644
--- a/npc/020-1/_warps.txt
+++ b/npc/020-1_Nivalis/_warps.txt
@@ -1,4 +1,4 @@
-// 020-1 warps
+// 020-1 Nivalis warps
020-1.gat,76,38 warp ToIceCave 1,-1,020-3.gat,31,28
020-1.gat,47,48 warp ToClothesShop -1,-1,020-2.gat,25,33
diff --git a/npc/020-1/amrak.txt b/npc/020-1_Nivalis/amrak.txt
index 19979ca0..19979ca0 100644
--- a/npc/020-1/amrak.txt
+++ b/npc/020-1_Nivalis/amrak.txt
diff --git a/npc/020-1/sexchanger.txt b/npc/020-1_Nivalis/sexchanger.txt
index 168f47a3..168f47a3 100644
--- a/npc/020-1/sexchanger.txt
+++ b/npc/020-1_Nivalis/sexchanger.txt
diff --git a/npc/020-1/soul-menhir.txt b/npc/020-1_Nivalis/soul-menhir.txt
index 3d0bc82a..3d0bc82a 100644
--- a/npc/020-1/soul-menhir.txt
+++ b/npc/020-1_Nivalis/soul-menhir.txt
diff --git a/npc/020-1/startrek.txt b/npc/020-1_Nivalis/startrek.txt
index 5c8847ad..5c8847ad 100644
--- a/npc/020-1/startrek.txt
+++ b/npc/020-1_Nivalis/startrek.txt
diff --git a/npc/020-2/_import.txt b/npc/020-2/_import.txt
deleted file mode 100644
index f71241f7..00000000
--- a/npc/020-2/_import.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-map: 020-2.gat
-npc: npc/020-2/_mobs.txt
-npc: npc/020-2/_warps.txt
-npc: npc/020-2/furquest.txt
-npc: npc/020-2/shops.txt
diff --git a/npc/020-2_Nivalis/_import.txt b/npc/020-2_Nivalis/_import.txt
new file mode 100644
index 00000000..159d1e61
--- /dev/null
+++ b/npc/020-2_Nivalis/_import.txt
@@ -0,0 +1,5 @@
+map: 020-2.gat
+npc: npc/020-2_Nivalis/_mobs.txt
+npc: npc/020-2_Nivalis/_warps.txt
+npc: npc/020-2_Nivalis/furquest.txt
+npc: npc/020-2_Nivalis/shops.txt
diff --git a/npc/020-2/_mobs.txt b/npc/020-2_Nivalis/_mobs.txt
index 4289bb7e..1b1c6e2b 100644
--- a/npc/020-2/_mobs.txt
+++ b/npc/020-2_Nivalis/_mobs.txt
@@ -1,4 +1,4 @@
-// 020-2 mobs
+// 020-2 Nivalis mobs
diff --git a/npc/020-2/_warps.txt b/npc/020-2_Nivalis/_warps.txt
index 2306316d..47f71d27 100644
--- a/npc/020-2/_warps.txt
+++ b/npc/020-2_Nivalis/_warps.txt
@@ -1,4 +1,4 @@
-// 020-2 warps
+// 020-2 Nivalis warps
020-2.gat,25,35 warp ToOutside -1,-1,020-1.gat,47,50
020-2.gat,64,25 warp ToOutside -1,-1,020-1.gat,55,90
diff --git a/npc/020-2/furquest.txt b/npc/020-2_Nivalis/furquest.txt
index 4d67f8c4..67a6eb10 100644
--- a/npc/020-2/furquest.txt
+++ b/npc/020-2_Nivalis/furquest.txt
@@ -222,6 +222,8 @@ L_State_5:
L_State_5_pay:
if (zeny < 15000) goto L_State_5_nocash;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_TooMany;
set zeny, zeny-15000;
getitem 563, 1;
set QUEST_WG_state, 6;
@@ -307,6 +309,7 @@ L_State_12:
L_State_12_pay:
if (zeny < 15000) goto L_State_12_missing;
if (countitem(528) < 1) goto L_State_12_missing;
+ // No inventory check needed, as boots are removed, opening a slot
set zeny, zeny-15000;
delitem 528, 1;
getitem 655, 1;
@@ -326,4 +329,8 @@ L_State_13:
mes "\"You are so glamourous, my dear friend!";
mes "I have done a very good job on your clothes!\"";
close;
+
+L_TooMany:
+ mes "[Agostine, The Legendary Tailor]";
+ mes "\"You don't have anywhere to put them. Come back when you do.";
}
diff --git a/npc/020-2/shops.txt b/npc/020-2_Nivalis/shops.txt
index f3d9dedc..f3d9dedc 100644
--- a/npc/020-2/shops.txt
+++ b/npc/020-2_Nivalis/shops.txt
diff --git a/npc/021-1_Tulimshar/_import.txt b/npc/021-1_Tulimshar/_import.txt
index 27ebcad7..81e7f2df 100644
--- a/npc/021-1_Tulimshar/_import.txt
+++ b/npc/021-1_Tulimshar/_import.txt
@@ -1,3 +1,3 @@
map: 021-1.gat
-npc: npc/021-1_Tulimshar/_warps.txt
npc: npc/021-1_Tulimshar/_mobs.txt
+npc: npc/021-1_Tulimshar/_warps.txt
diff --git a/npc/021-2_Tulimshar/_import.txt b/npc/021-2_Tulimshar/_import.txt
new file mode 100644
index 00000000..b098b11d
--- /dev/null
+++ b/npc/021-2_Tulimshar/_import.txt
@@ -0,0 +1,3 @@
+map: 021-2.gat
+npc: npc/021-2_Tulimshar/_mobs.txt
+npc: npc/021-2_Tulimshar/_warps.txt
diff --git a/npc/021-2_Tulimshar/_mobs.txt b/npc/021-2_Tulimshar/_mobs.txt
new file mode 100644
index 00000000..140d3395
--- /dev/null
+++ b/npc/021-2_Tulimshar/_mobs.txt
@@ -0,0 +1,7 @@
+// 021-2 Tulimshar mobs
+
+
+
+021-2.gat,0,0,0 script Mob021-2 -1,{
+ end;
+}
diff --git a/npc/021-2_Tulimshar/_warps.txt b/npc/021-2_Tulimshar/_warps.txt
new file mode 100644
index 00000000..982c026b
--- /dev/null
+++ b/npc/021-2_Tulimshar/_warps.txt
@@ -0,0 +1,2 @@
+// 021-2 Tulimshar warps
+
diff --git a/npc/022-1_Beach_Cliffs/_import.txt b/npc/022-1_Beach_Cliffs/_import.txt
new file mode 100644
index 00000000..6dab9d52
--- /dev/null
+++ b/npc/022-1_Beach_Cliffs/_import.txt
@@ -0,0 +1,3 @@
+map: 022-1.gat
+npc: npc/022-1_Beach_Cliffs/_mobs.txt
+npc: npc/022-1_Beach_Cliffs/_warps.txt
diff --git a/npc/022-1_Beach_Cliffs/_mobs.txt b/npc/022-1_Beach_Cliffs/_mobs.txt
new file mode 100644
index 00000000..7dfedcec
--- /dev/null
+++ b/npc/022-1_Beach_Cliffs/_mobs.txt
@@ -0,0 +1,7 @@
+// 022-1 Beach Cliffs mobs
+
+
+
+022-1.gat,0,0,0 script Mob022-1 -1,{
+ end;
+}
diff --git a/npc/022-1_Beach_Cliffs/_warps.txt b/npc/022-1_Beach_Cliffs/_warps.txt
new file mode 100644
index 00000000..c856a583
--- /dev/null
+++ b/npc/022-1_Beach_Cliffs/_warps.txt
@@ -0,0 +1,4 @@
+// 022-1 Beach Cliffs warps
+
+022-1.gat,84,113 warp ToSandstorm 1,-1,002-1.gat,29,15
+022-1.gat,37,111 warp ToBeach 1,-1,003-1.gat,141,21
diff --git a/npc/_import.txt b/npc/_import.txt
index df218035..74464305 100644
--- a/npc/_import.txt
+++ b/npc/_import.txt
@@ -6,6 +6,7 @@ import: npc/002-3_Desert_mines/_import.txt
import: npc/002-4_Desert_mines/_import.txt
import: npc/003-1_Beach/_import.txt
import: npc/004-1_Beach/_import.txt
+import: npc/004-2_Beach_House/_import.txt
import: npc/005-1_Snake_desert/_import.txt
import: npc/005-3_Snake_pit/_import.txt
import: npc/006-1_Desert_mountains/_import.txt
@@ -34,7 +35,10 @@ import: npc/018-1_Woodland_mining_camp/_import.txt
import: npc/018-2_Woodland_minning_camp/_import.txt
import: npc/018-3_Cave/_import.txt
import: npc/019-1_Snow_field/_import.txt
-import: npc/020-1/_import.txt
-import: npc/020-2/_import.txt
+import: npc/020-1_Nivalis/_import.txt
+import: npc/020-2_Nivalis/_import.txt
import: npc/020-3_Ice_cave/_import.txt
import: npc/020-4_Ice_cave/_import.txt
+import: npc/021-1_Tulimshar/_import.txt
+import: npc/021-2_Tulimshar/_import.txt
+import: npc/022-1_Beach_Cliffs/_import.txt
diff --git a/npc/functions/game_rules.txt b/npc/functions/game_rules.txt
index 83e69d73..d486e6f9 100644
--- a/npc/functions/game_rules.txt
+++ b/npc/functions/game_rules.txt
@@ -1,6 +1,8 @@
//
function script GameRules {
+ set @read, 0;
+
menu
"English", L_English,
"Deutsch (German)", L_German,
@@ -132,6 +134,7 @@ L_Polish:
goto L_End;
L_End:
+ set @read, 1;
set TUT_var, TUT_var | 1;
return;
}