summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2008-12-23 17:16:49 +0000
committerJared Adams <jaxad0127@gmail.com>2008-12-23 17:18:37 +0000
commitb1ced66321ffed02cde1a9ccd39fa2c9ba004125 (patch)
tree87b2f8639b8e1b79125ebdd77f71d19305d0084c
parent2ac5f8a1dfa5482dc1fee2bbd41b5e0eb0928abd (diff)
downloadserverdata-b1ced66321ffed02cde1a9ccd39fa2c9ba004125.tar.gz
serverdata-b1ced66321ffed02cde1a9ccd39fa2c9ba004125.tar.bz2
serverdata-b1ced66321ffed02cde1a9ccd39fa2c9ba004125.tar.xz
serverdata-b1ced66321ffed02cde1a9ccd39fa2c9ba004125.zip
Fixeds to check for invy room before giving items
-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/006-1_Desert_mountains/pachua.txt10
-rw-r--r--npc/008-1_Hurnscald_outskirts/hinnak.txt18
-rw-r--r--npc/009-1_Hurnscald/jack.txt11
-rw-r--r--npc/009-2_Hurnscald/alan.txt7
-rw-r--r--npc/009-2_Hurnscald/kfahr.txt40
-rw-r--r--npc/009-2_Hurnscald/nicholas.txt16
-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/019-1_Snow_field/santa_helper.txt40
-rw-r--r--npc/019-1_Snow_field/snowman.txt7
-rw-r--r--npc/020-1_Nivalis/monsters.txt14
-rw-r--r--npc/020-2_Nivalis/furquest.txt6
22 files changed, 413 insertions, 172 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/006-1_Desert_mountains/pachua.txt b/npc/006-1_Desert_mountains/pachua.txt
index 15d1610c..af293ff6 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) 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 b61dca2f..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,6 +225,11 @@ 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!\"";
@@ -234,7 +241,7 @@ L_Shield_state_3:
"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.", -,
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..5d847ea0 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;
@@ -828,6 +835,11 @@ L_knife_quest_completecheck:
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..3962bee0 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;
@@ -401,4 +407,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..fa088345 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) > 20 && countitem(@PEARL) > 2) 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) > 2) 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/019-1_Snow_field/santa_helper.txt b/npc/019-1_Snow_field/santa_helper.txt
index 72b00acf..a8a86af6 100644
--- a/npc/019-1_Snow_field/santa_helper.txt
+++ b/npc/019-1_Snow_field/santa_helper.txt
@@ -1,11 +1,12 @@
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?";
+ mes "\"Hello my young friend.";
+ mes "Would you like to help me?\"";
next;
- mes "Those monsters stole Santa's presents.";
- mes "If you help me, I'll give you something very nice";
+ 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:
@@ -16,12 +17,15 @@ L_M:
L_Y:
mes "[Santa's Helper]";
- mes "Hmm, let me check what you have.";
+ 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;
- mes "Great! Here is something for you";
+ 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;
@@ -31,27 +35,31 @@ L_Y:
L_R:
mes "[Santa's Helper]";
- mes "I need:";
+ mes "\"I need:";
mes "25 purple present boxes";
mes "20 blue present boxes";
- mes "5 green 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!";
+ 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.";
+ 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.";
+ 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_Nivalis/monsters.txt b/npc/020-1_Nivalis/monsters.txt
deleted file mode 100644
index fc33da8c..00000000
--- a/npc/020-1_Nivalis/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-2_Nivalis/furquest.txt b/npc/020-2_Nivalis/furquest.txt
index 4d67f8c4..5c2c00df 100644
--- a/npc/020-2_Nivalis/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;
@@ -326,4 +328,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.";
}