diff options
author | Jesusaves <cpntb1@ymail.com> | 2024-05-25 15:52:03 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2024-05-25 15:52:03 -0300 |
commit | 08d5f5a35c6af4e84e98f27e3cb05802b1ec58d4 (patch) | |
tree | 9c96bf19f30b360fbfc8b3bb259069b61d62a4cb | |
parent | 35c16e998c81c75e78ae1b19ccf45b6d64e9995e (diff) | |
download | serverdata-08d5f5a35c6af4e84e98f27e3cb05802b1ec58d4.tar.gz serverdata-08d5f5a35c6af4e84e98f27e3cb05802b1ec58d4.tar.bz2 serverdata-08d5f5a35c6af4e84e98f27e3cb05802b1ec58d4.tar.xz serverdata-08d5f5a35c6af4e84e98f27e3cb05802b1ec58d4.zip |
Misc. Bugfixes to the recent additions
-rw-r--r-- | npc/017-1/inspector.txt | 101 | ||||
-rw-r--r-- | npc/018-8/ctrl.c | 60 | ||||
-rw-r--r-- | npc/031-2/tyrca.txt | 2 | ||||
-rw-r--r-- | npc/functions/util.txt | 4 |
4 files changed, 127 insertions, 40 deletions
diff --git a/npc/017-1/inspector.txt b/npc/017-1/inspector.txt index e51c4f5d0..de3e52fee 100644 --- a/npc/017-1/inspector.txt +++ b/npc/017-1/inspector.txt @@ -2,7 +2,7 @@ // Author: // Jesusalva // Description: -// Part of Katze quest (Lv 49 Quest) +// Part of Katze quest (Lv 48 Quest) // See also // npc/config/inspector.txt @@ -13,7 +13,7 @@ mesn; mesq l("Hello. My name is Anselmo and I'm investigating a recent string of robberies."); next; - if (BaseLevel < 49) goto L_Close; + if (BaseLevel < 48) goto L_Close; if (.@q == 0) goto L_Start; if (.@q == 1) goto L_Arc1; if (.@q == 2) goto L_Arc2; @@ -21,6 +21,9 @@ if (.@q == 4) goto L_Interlude; if (.@q == 5) goto L_Interlude; if (.@q == 6) goto L_Arc4; + if (.@q == 7) goto L_Hurry; + if (.@q == 8) goto L_Finish; + if (.@q == 9) goto L_Done; goto L_Close; L_Start: @@ -69,7 +72,9 @@ L_Arc1: next; mesn; mesq l("My authority won't do you any good, but we have good relations with Hurnscald so you should have no problem. Good luck, %s!", strcharinfo(0)); + mesc l("Anselmo gives you %s GP, likely some advance payment of some kind.", fnum(1000)); getexp 40000, 200; + Zeny += 1000; setq LoFQuest_Inspector, 2, 0; } else { .@p = bitmask_count(.@q2); @@ -116,7 +121,9 @@ L_Arc2: next; mesn; mesq l("But be careful, they won't like an inspector snooping there. In fact, better to limit yourself to asking only to the guards, they're mostly volunteers but they'll help. Ask all of them, don't cut corners!"); + mesc l("Anselmo gives you %s GP, likely some advance payment of some kind.", fnum(600)); getexp 30000, 250; + Zeny += 600; setq LoFQuest_Inspector, 3, 0; } else { .@LA_MARINE = 1; // Asked around La Marine @@ -159,8 +166,10 @@ L_Arc3: next; mesn; mesq l("Here, this %s contains some wood so she may scratch her pawns, some toys, a flask of milk, some steak but not made of Mouboos, as cats are allergic to Mouboo meat... And other gifts from us. Give this to her.", getitemlink(LeatherSuitcase)); + mesc l("Anselmo gives you %s GP, likely some advance payment of some kind.", fnum(1400)); getitembound LeatherSuitcase, 1, 4; getexp 30000, 300; + Zeny += 1400; setq LoFQuest_Inspector, 4, 0; } else { mesn; @@ -180,14 +189,92 @@ L_Arc4: mesc l("The inspector looks at you with a pale face."); mesq l("It's terrible... How could this happen?"); next; - // You can come back to Inspector to begin the second part. - // Use Fairy Hat instead of Inspector Hat? - mes ""; - mesc l("@@ You need to wait further releases to continue this quest!", b(l("WARNING:"))), 1; + // FIXME TESTER BLOCK + if (!$@GM_OVERRIDE && !is_staff()) { + // You can come back to Inspector to begin the second part. + // Use Fairy Hat instead of Inspector Hat? + mes ""; + mesc l("@@ You need to wait further releases to continue this quest!", b(l("WARNING:"))), 1; + next; + goto L_Close; + } + // FIXME TESTER BLOCK + select + l("What happened?"), + l("Uh, I better leave before I'm involved again."); + if (@menu == 2) goto L_Close; + mesn; + mesq l("Ignore the cheese theft for now, we had a major incident. Rossy was kidnapped by slimes."); + next; + mesn; + mesq l("I am... unsure about the details. As you definitely know, her sister started working on Nard's Ship crew a few years ago, but Rossy stayed here. She was planning to visit some friends in Nivalis when the abduction happened."); + next; + mesn; + mesq l("Land of Fire never had a problem with slimes before... And Jak1, the infamous slime researcher, was banned centuries ago with his sister to the Oranye Isles."); + next; + mesn; + mesq l("Our guards tracked down to an... well, it's an old ritual cave located in the watery area of Jack's House basement. I'll allow you to enter there from now on."); + next; + inventoryplace PileOfAsh, 5; + mesn; + mesq l("Please find Clauquer, our senior dispatched police officer. He likes pretending to be a smartass and is too reckless with his own life, but he can instruct you."); + next; + mesn; + mesq l("But we don't know if they'll try to sacrifice Rossy or not, so you're on a timer. Prepare yourself well before heading to the cave. Good luck!"); + mesc l("Anselmo gives you some %s, but you'll likely need more for this.", getitemlink(PileOfAsh)); + tutmes l("* Timer begins once you enter the ritual cave; if you don't rescue Rossy in time or die trying, the cave state will reset and you'll need to start over the rescue."); + setq LoFQuest_Inspector, 7, 0; + getitem PileOfAsh, 5; next; goto L_Close; + +L_Hurry: mesn; - mesq l("Ignore the cheese theft for now, there has been a major issue. Rossy was kidnapped by slimes."); + mesq l("What are you waiting for? Go rescue Rossy in the Ritual Cave, in Jack's house basement! It's northeast of here."); + tutmes l("* Timer begins once you enter the ritual cave; if you don't rescue Rossy in time or die trying, the cave state will reset and you'll need to start over the rescue."); + next; + goto L_Close; + +L_Finish: + mesn; + mesq l("I'm grateful for your help. Who knows what would have happened to Rossy without your intervention. So, did you find out who was behind the cheese theft?"); + next; + mesc l("You tell the truth to Inspector Anselmo."); + next; + mesn; + mesq l("So Katze didn't knew how to sell Golden Apples or where to buy Cheese? I don't blame her at all, these things change all the time."); + next; + mesn; + mesq l("Thanks for your excellent services. I hereby name you a junior (intern) officer of the Land of Fire police. Although I doubt there'll be anything else to do for quite a while, Land of Fire is quite pacific."); + next; + inventoryplace NPCEyes, 6; // FIXME + mesn; + mesq l("Here, you can have this uniform. The payment for your work is also here. Regards on a job well done, junior!"); + //Zeny += 2000; // total 5kGP + //getexp 90000, 900; + //getitem (NavyBlueShirt**, NavyBlueCottonTrousers, NavyBlueCottonGloves, NavyBlueCottonBoots, InspectorHat*, Kanabo) + // *: SacredForestHat? BowlerHat? TopHat? + // **: CottonChirt? VneckSweater? VneckJumper? ArtisTankTop <- no + // TODO: Reward + // TODO: Add a way to acquire Murderer Crown lease, maybe rent it to #1 PvP + // TODO: Send Medals (Gold, Silver, Bronze) on Olympics too, and give them stat + // 3 gold, 3 silver and 4 bronze, for the whole top 10 + next; + goto L_Close; + +L_Done: + mesn; + if (getq(General_Narrator) <= 17) { + mesq l("However, the officer in command is Benjamin, who was dispatched to handle it. You'll need to ask him if you want to participate on this investigation, or get someone with overriding authority to appoint you to it."); + tutmes l("* Advance Player Quest (the one marked with a star on quest log) first."); + } else { + mesn; + mesq l("Although since Katze and Barbara's incidents, not much is happening, besides some vaults being looted every now and then. Nothing of worry, which is a good thing, I guess."); + if (THIEF_RANK) + mesc l("Anselmo seems to like he doubt your intentions, but he doesn't says anything else."); + else + mesc l("Anselmo sighs and weaves, clearly not interested in getting help."); + } next; goto L_Close; diff --git a/npc/018-8/ctrl.c b/npc/018-8/ctrl.c index 709336097..c2a78f30f 100644 --- a/npc/018-8/ctrl.c +++ b/npc/018-8/ctrl.c @@ -103,7 +103,7 @@ function clauquerPrologue { if (!(.@q2 & ROSSY_PROLOGUE)) { next; mesn; - mesq l("Don't answer— I know you are looking for someone... A little girl, is that right?"); + mesq l("Don't answer— I know you are looking for someone... A girl, is that right?"); next; select l("I must admit you're right, but how come you..."), @@ -112,46 +112,45 @@ function clauquerPrologue { if (@menu == 2) return; mesn; - mesq l("How do I know you're looking for her? Well, because I am a very good observer. I know you were helping her family. Besides, I saw the little girl. I also heard her. She screamed, and probably still screams like hell. Moreover, I don't think you would enter these caves just for fun!"); + mesq l("How do I know you're looking for her? Well, because I am a very good observer. I know you were helping the police. Besides, I saw the girl. I also heard her. She screamed, and probably still screams like hell. Moreover, I don't think you would enter these caves just for fun!"); next; select l("Of course not."); mes ""; mesn; - mesq l("I can see that you really want to save the little girl. She is trapped in a place inside one of these caves, protected by a magic barrier created by a fey spirit. To save her, you have to annulate the energy sources of this barrier. They are located in 10 different spots, each one in a different cave."); + mesq l("I can see that you really want to save the girl. She is trapped in a place inside one of these caves, protected by a magic barrier created by a fey spirit. To save her, you have to annulate the energy sources of this barrier. They are located in 10 different spots, each one in a different cave."); next; select l("But how can I annulate this barrier?"); mes ""; } // Common mesn; - mesq l("It is simple, you just have to place a %s on the exact center of the energy source. Once you do this, its entire power will transmute into some terrible earth monsters. If you defeat them, this source of energy will be close to nothing and the barrier will be weaker.", getitemlink(PileOfAsh)); + mesq l("It is simple, you just have to place a %s on the exact center of the energy source. Once you do this, its entire power will transmute into some terrible monsters. If you defeat them, this source of energy will be close to nothing and the barrier will be weaker.", getitemlink(PileOfAsh)); next; mesn; mesq l("If my observations are correct, the girl is trapped in a cave protected by a barrier fed by 9 different power sources. And inside this cave there is another barrier, fed by a single, but very strong, power source. The girl is inside that cave, protected by that strong barrier."); next; mesn; mesq l("Be prepared before you enter one of these caves, because once you put the root in the power source, you won't be able to get out. Also, remember that you can't stay in these caves for a long time, because of the foul air."); - mesc l("If you take more than %d minutes between a boss fight and other, you'll faint and the quest will reset!!", 20), 1; + mesc l("If you take more than %d minutes between a boss fight and other, you'll faint and the quest will reset!!", (ROSSY_INSTIME / 60)), 1; next; // Prologue (FIXME) if (!(.@q2 & ROSSY_PROLOGUE)) { mesn; - mesq l("Now I should tell you more about how that little girl got into that cave and warn you about what you are going to face there..."); + mesq l("Now I should tell you more about how that girl got into that cave and warn you about what you are going to face there..."); next; select l("Please go on."); mes ""; mesn; - mesq l("I advise you to be mentally prepared for this rescue operation. You'll be fighting a selection of monsters in these caves with mixed elements."); + mesq l("I advise you to be mentally prepared for this rescue operation. You'll be fighting a selection of monsters in these caves with mixed elements. Mostly slimes, but with exceptions."); next; mesn; - mesq l("Also, the old tales of Hurnscald say that a Golem inhabits these caves and smashes anyone who enters here ill prepared; but it can be tamed and made into subservience by a sacrifice. And I saw the girl heading to said room..."); - next; - mesn; - mesq l("However, hope is not yet lost. If you were to, say, defeat the Golem before it is fully awakened, the girl would be saved... Time, however, is not on your favor and is of essence. And I am no fighter, so I cannot help you."); + mesq l("Given the girl headed to the ritual room, she'll likely be sacrificed. However, hope is not yet lost. If you were to, say, defeat the great slime there, before it is fully awakened, the girl would be saved... Time, however, is not on your favor and is of essence. And I am no fighter, so I cannot help you."); next; } mesn; - mesq l("Oh, and if you really plan to rescue the girl, I advise you to use potions for every single battle. I'm thinking of Concentration and Iron Potions. You might want to take some food with you too. I would personally take some water, I'm always thirsty. Don't be afraid to bring too much with you, these battles take time to end."); + mesq l("Oh, and if you really plan to rescue the girl, I advise you to use potions for every single battle. You might want to take some food with you too. Don't be afraid to bring too much with you, these battles take time to end."); + if (REBIRTH || BaseLevel >= 90) + mesc l("Clauquer clearly is not aware that you were reborn. These fights will likely be a breeze to someone so overpowered as you, but caution is never too much."); next; mesn; mesq l("I think you're now ready to explore these caves and fight. Good luck rescuing the girl!"); @@ -414,7 +413,7 @@ function script RossyCave { .@x3=109;.@y3=33; .@x4=109; .@y4=36; break; case ROSSY_CAVE2: - .@boss=Troll; + .@boss=RedSlimeMother; .@mobc=rand2(3,5); .@x1=191;.@y1=103;.@x2=205;.@y2=122; .@x3=201;.@y3=123; .@x4=201; .@y4=123; @@ -462,7 +461,7 @@ function script RossyCave { .@x3=186;.@y3=82; .@x4=186; .@y4=85; break; case ROSSY_BOSSCAVE: - .@boss=RedSlimeMother; + .@boss=GreatMoubooSlime; .@mobc=rand2(3,5); .@x1=84;.@y1=85;.@x2=101;.@y2=101; .@x3=92;.@y3=102; .@x4=93; .@y4=102; @@ -491,14 +490,18 @@ function script RossyCave { @rossylock = true; // Spawn underlings + .@mobc += any(1,2); // Moubootaur Legends difficulty FIX for (.@i=0; .@i < .@mobc; .@i++) { - // FIXME: Penguin? Mister Prickel? Ice Goblin? Wolvern? - // I think all those four could be removed. - .@mobId=any(GreenSlime, BlueSlime, YellowSlime, LavaSlime, SeaSlime, RedMushroom, AngryYellowSlime, Snake, BlackSlime); // Mobs lv 26~40 + // Summon some slimes, mostly, but some other nasties as well + .@mobId=any(BlueSlime, Bluepar, YellowSlime, LavaSlime, SeaSlime, RedMushroom, AngryYellowSlime, Snake, RobinBandit, BlackSlime); // Mobs lv 30~40 .@mob=areamonster(.@m$, .@x1, .@y1, .@x2, .@y2, strmobinfo(1, .@mobId), .@mobId, 1, .@n$); // Make it aggresive .@bmod=getunitdata(.@mob, UDT_MODE); setunitdata(.@mob, UDT_MODE, .@bmod|4); // 4 = MD_AGGRESSIVE + // Make it healthy + .@bhp= getunitdata(.@mob, UDT_MAXHP); + setunitdata(.@mob, UDT_MAXHP, .@bhp*11/10); + setunitdata(.@mob, UDT_HP, .@bhp*11/10); } // Spawn boss @@ -513,8 +516,8 @@ function script RossyCave { .@bmod=.@bmod|4; // 4 = MD_AGGRESSIVE // ...And Tweak Battle Status - setunitdata(.@mob, UDT_MAXHP, .@bhp*15/10); - setunitdata(.@mob, UDT_HP, .@bhp*15/10); + setunitdata(.@mob, UDT_MAXHP, .@bhp*14/10); + setunitdata(.@mob, UDT_HP, .@bhp*14/10); setunitdata(.@mob, UDT_ATKMIN, .@bat1*7/10); setunitdata(.@mob, UDT_ATKMAX, .@bat2*7/10); setunitdata(.@mob, UDT_HIT, .@bhit*2); @@ -681,27 +684,23 @@ OnInstanceInit: } // Prepare rewards - .@rune=Emerald; - .@gems=Ruby; - inventoryplace .@rune, 1, .@gems, 1; + inventoryplace GoldenBossGift, 1; // Run epilogue mesn; mesq l("I heard some battle noises a few minutes ago. Are you here to save me?"); next; select - l("Of course I'm here to save you, Rossy sent me here!"); + l("Of course I'm here to save you! I work for the police!"); mes ""; mesn; - mesc l("Rossy starts scavenging the fallen Golem."); - mesq l("Mommy teached me about precious gemstones. This Golem has quite a few of them."); + mesc l("Rossy starts scavenging the fallen slime."); + mesq l("Whenever you defeat a boss monster, sometimes they drop gifts. The more powerful the boss, the better the gift."); next; mesn; mesq l("Here you go!"); - getitem .@gems, 1; - getitem .@rune, 1; - getexp 1, 1; - setq LoFQuest_Inspector, 17, 0, .@inst; + getitem SilverBossGift, 1; + setq LoFQuest_Inspector, 8, 0, .@inst; next; mesn; mesq l("Thanks for helping me... I'll be on my way now."); @@ -709,11 +708,12 @@ OnInstanceInit: select l("Go safely!"), l("Do you need an escort?"), - l("What was following you, anyway?"); + l("Who kidnapped you and why, anyway?"); mes ""; if (@menu == 2) { mesn; mesq l("I'll be fine, but thanks for the concern."); + mesc l("Apparently, her feet was not as hurt as it originally seemed."); } else if (@menu == 3) { // This opens path for additional questline mesn; diff --git a/npc/031-2/tyrca.txt b/npc/031-2/tyrca.txt index ab829a24f..227d964b5 100644 --- a/npc/031-2/tyrca.txt +++ b/npc/031-2/tyrca.txt @@ -49,7 +49,7 @@ mesq l("Please doing business with you."); } } - if (.@q >= 1 && $GAME_STORYLINE >= 5 && REBIRTH >= 4) { + if (.@q >= 1 && $GAME_STORYLINE >= 5 && REBIRTH >= 4 && getq(General_Narrator) >= 23) { next; mesn; mesq l("If you want to manage your personal storage at the Fortress Town, I can help. Accessing a remote bank is just a small magic when you have the right gemstones like me."); diff --git a/npc/functions/util.txt b/npc/functions/util.txt index 3a875f560..5ebb3793d 100644 --- a/npc/functions/util.txt +++ b/npc/functions/util.txt @@ -396,8 +396,8 @@ function script reputation { if (getq(LoFQuest_Pets) >= 1) .@nr=.@nr+1; - // Inspector Quest (TODO) - if (getq(LoFQuest_Inspector) >= 6) + // Inspector Quest (+1 rep) + if (getq(LoFQuest_Inspector) >= 9) .@nr=.@nr+1; // LAND OF FIRE Magical Forumula |