From b1ced66321ffed02cde1a9ccd39fa2c9ba004125 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Tue, 23 Dec 2008 17:16:49 +0000 Subject: Fixeds to check for invy room before giving items --- npc/001-1_Tulimshar/guide.txt | 17 ++-- npc/001-1_Tulimshar/sandra.txt | 107 +++++++++++++--------- npc/001-1_Tulimshar/vincent.txt | 37 ++++---- npc/001-2_Tulimshar/troupe_leader.txt | 9 +- npc/002-4_Desert_mines/chest.txt | 12 ++- npc/006-1_Desert_mountains/pachua.txt | 10 +- npc/008-1_Hurnscald_outskirts/hinnak.txt | 18 +++- npc/009-1_Hurnscald/jack.txt | 11 ++- npc/009-2_Hurnscald/alan.txt | 7 ++ npc/009-2_Hurnscald/kfahr.txt | 40 +++++++- npc/009-2_Hurnscald/nicholas.txt | 16 +++- npc/009-2_Hurnscald/waitress.txt | 10 ++ npc/010-2_Dimonds_Cove/loratay.txt | 13 ++- npc/011-1_Woodland/alchemist.txt | 28 ++++++ npc/013-2_Magic_house/apprentice.txt | 146 ++++++++++++++++++------------ npc/013-3_Cave/mask_chest.txt | 24 +++++ npc/013-3_Cave/sword_chest.txt | 7 ++ npc/014-1_Woodland/wedding-officiator.txt | 6 ++ npc/019-1_Snow_field/santa_helper.txt | 40 ++++---- npc/019-1_Snow_field/snowman.txt | 7 ++ npc/020-1_Nivalis/monsters.txt | 14 --- npc/020-2_Nivalis/furquest.txt | 6 ++ 22 files changed, 413 insertions(+), 172 deletions(-) delete mode 100644 npc/020-1_Nivalis/monsters.txt 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."; } -- cgit v1.2.3-60-g2f50