diff options
author | Jesusalva Jesusalva <jesusalva@themanaworld.org> | 2022-09-26 05:02:07 +0000 |
---|---|---|
committer | Jesusalva Jesusalva <jesusalva@themanaworld.org> | 2022-09-26 05:02:07 +0000 |
commit | 84232396e451d0f8390600b36798f5ddc56d3f06 (patch) | |
tree | 5cc2d342b408343453216d67afaf836bcea7ce33 /npc | |
parent | 817b2e9d685030ba165bcffe614b7a030d08ec33 (diff) | |
parent | 1794cfe2027f4e71aa1f7d0db3787fe2cfa54205 (diff) | |
download | serverdata-84232396e451d0f8390600b36798f5ddc56d3f06.tar.gz serverdata-84232396e451d0f8390600b36798f5ddc56d3f06.tar.bz2 serverdata-84232396e451d0f8390600b36798f5ddc56d3f06.tar.xz serverdata-84232396e451d0f8390600b36798f5ddc56d3f06.zip |
Merge branch 'kreist-grind' into 'master'
Lessen Kreist's grind a bit
See merge request ml/serverdata!74
Diffstat (limited to 'npc')
-rw-r--r-- | npc/003-10/kreist.txt | 86 |
1 files changed, 65 insertions, 21 deletions
diff --git a/npc/003-10/kreist.txt b/npc/003-10/kreist.txt index 70ca55eb6..c4ca9b312 100644 --- a/npc/003-10/kreist.txt +++ b/npc/003-10/kreist.txt @@ -7,19 +7,19 @@ 003-10,41,63,0 script Kreist NPC_PLAYER,{ .@d=gettimeparam(GETTIME_DAYOFMONTH); mesn l("Kreist, Taskmaster"); - mesq l("Hello, and welcome to Tulimshar guard house."); + mesq l("Hello, and welcome to the Tulimshar guard house."); next; mesn l("Kreist, Taskmaster"); - mesq l("My name is @@ and I am the daily task master. Interested in keeping this world free from monsters, or to report back?", .name$); + mesq l("My name is @@ and I am the daily task master. Interested in keeping this world free from monsters, or are you here to report back?", .name$); next; - mesc l("Protip: All quests expire at 00:00 server time, be sure to finish AND report back before that!"); + tutmes l("All quests expire at 00:00 server time, be sure to finish AND report back before that!"); // Borrowed from Arkim Code mesc l("Time remaining to report completion: ")+FuzzyTime($@ARKIM_TIMER+86400), 1; select - l("I want a EASY task!"), + l("I want an EASY task!"), l("I want a MODERATE task!"), - l("I want a EXPERT task!"), + l("I want an EXPERT task!"), l("It was nice seeing you."); mes ""; switch (@menu) { @@ -56,9 +56,9 @@ L_QuestMaster: if (.@lv == 3) { .@q2=any(Maggot, Scorpion, Croc, FireGoblin, CaveMaggot, Duck); } else if (.@lv == 5) { - .@q2=any(GiantMaggot, CaveSnake, DesertBandit, Sarracenus, DesertLogHead, RedScorpion); + .@q2=any(CaveSnake, DesertBandit, Sarracenus, DesertLogHead, RedScorpion); } else if (.@lv == 12) { - .@q2=any(BlackScorpion, Snake, MountainSnake); + .@q2=any(GiantMaggot, BlackScorpion, Snake, MountainSnake); } else { Exception("Bad setting for GMH.LV: "+.@lv, RB_DEFAULT|RB_SPEECH|RB_ISFATAL); } @@ -73,9 +73,9 @@ L_QuestMaster: } // Maybe you finished the quest? - if (.@q3 >= 50) { + if (.@q3 && get_byte(.@q3, 1) >= get_byte(.@q3, 0)) { mesn l("Kreist, Taskmaster"); - mesq l("Good job, you've killed the @@ @@ and reported back in time!", 50, getmonsterlink(.@q2)); + mesq l("Good job, you've killed the %d %s and reported back in time!", get_byte(.@q3, 0), getmonsterlink(.@q2)); next; inventoryplace MercBoxA, 1; if (MERCENARY_DAILYQUEST == 100) { @@ -83,8 +83,8 @@ L_QuestMaster: getitem BountyHunterHelmet, 1; } mesn l("Kreist, Taskmaster"); - mesq l("It's not much of a reward, but doesn't it feels great to help others in need?! HAHAHA!"); - .@overkill=.@q3-50; + mesq l("It's not much of a reward, but doesn't it feel great to help others in need?! HAHAHA!"); + .@overkill=get_byte(.@q3, 1)-get_byte(.@q3, 0); Zeny+=.@lv*(72+MERCENARY_DAILYQUEST); // Raise LV according to monster level .@lv+=getmonsterinfo(.@q2, MOB_LV)+MERCENARY_DAILYQUEST*11/10; @@ -99,7 +99,45 @@ L_QuestMaster: } mesn l("Kreist, Taskmaster"); - mesq l("So, please kill @@/@@ @@ for us and make the world a safer place!", .@q3, 50, getmonsterlink(.@q2)); + // amount to kill + set_byte(.@q3, 0, 15); + // amount already killed + // Explanation why the city needs that + if (.@q2 == Maggot ) { + mesq l("%ss have infested the store houses, spilling onto the streets. Stop them from destroying even more food.", getmonsterlink(.@q2)); + set_byte(.@q3, 0, 30); + } else if (.@q2 == GiantMaggot) { + mesq l("The %ss are the cause for all the little maggots to appear, so we need you to stop the problem at the source.", getmonsterlink(.@q2)); + set_byte(.@q3, 0, 10); + } else if (.@q2 == Duck) { + mesq l("This request was made by the inn: The %ss are stealing their cherry cakes, causing disruption to their business.", getmonsterlink(.@q2)); + } else if (.@q2 == Croc) { + mesq l("The %ss have been reproducing rapidly and their natural habitat, our Croconut trees, are being damaged by the excessive number of them.", getmonsterlink(.@q2)); + } else if (.@q2 == FireGoblin) { + mesq l("Some %ss have buried themselves in the sand near the path to the mine, causing burns to people stepping on them.", getmonsterlink(.@q2)); + } else if (.@q2 == CaveMaggot) { + mesq l("The %ss have been multiplying, crawling from the cave into the magic school, causing damage.", getmonsterlink(.@q2)); + set_byte(.@q3, 0, 20); + } else if (.@q2 == CaveSnake) { + mesq l("Researchers from the magic school complained about %ss disturbing whatever they are studying in the cave.", getmonsterlink(.@q2)); + } else if (.@q2 == Scorpion) { + mesq l("All the %ss have become a real nuisance to the citizens and people are getting stung more often now.", getmonsterlink(.@q2)); + set_byte(.@q3, 0, 20); + } else if (.@q2 == DesertBandit) { + mesq l("A group of %ss are threatening the city. Go to the Desert Canyon and teach them a lesson.", getmonsterlink(.@q2)); + set_byte(.@q3, 0, 20); + } else if (.@q2 == Sarracenus) { + mesq l("%ss are lead by the %ss. Disposing of them would bring the bandits into disarray.", getmonsterlink(DesertBandit), getmonsterlink(.@q2)); + set_byte(.@q3, 0, 10); + } else if (.@q2 == BlackScorpion) { + mesq l("A large number of %ss have been sighted. Both the sewer and the mines have been infested, they have even been spotted in the city wall!", getmonsterlink(.@q2)); + } else if (.@q2 == RedScorpion) { + mesq l("Some %ss have left the mines and made themselves comfortable in the desert, coming closer than ever to us. When there are none left in the desert, go after their nest in the mines.", getmonsterlink(.@q2)); + } else if (.@q2 == DesertLogHead) { + mesq l("The %ss are growing and disturbing the already rather infertile desert soil, preventing our crops from growing.", getmonsterlink(.@q2)); + } + setq3 .@q, .@q3; + mesq l("So, please kill %d/%d %ss for us and make the city a better place!", get_byte(.@q3, 1), get_byte(.@q3, 0), getmonsterlink(.@q2)); close; OnInit: @@ -131,28 +169,34 @@ function script Guardhouse_RandQuestCheck { // Easy Task if (getq(General_MobHunting1) == .@d && getq2(General_MobHunting1) == .@mobId) { - .@q3=getq3(General_MobHunting1)+1; + .@q3=getq3(General_MobHunting1); + .@killamount=get_byte(.@q3, 1); + set_byte(.@q3, 1, min(255, .@killamount+1)); setq3 General_MobHunting1, .@q3; - if (!(.@q3 % 10)) - dispbottom l("@@/@@ @@ killed", .@q3, 50, getmonsterlink(.@mobId)); + if (!(.@killamount % 5)) + dispbottom l("%d/%d %s killed", .@killamount+1, get_byte(.@q3, 0), getmonsterlink(.@mobId)); } // Medium Task if (getq(General_MobHunting2) == .@d && getq2(General_MobHunting2) == .@mobId) { - .@q3=getq3(General_MobHunting2)+1; + .@q3=getq3(General_MobHunting2); + .@killamount=get_byte(.@q3, 1); + set_byte(.@q3, 1, .@killamount+1); setq3 General_MobHunting2, .@q3; - if (!(.@q3 % 10)) - dispbottom l("@@/@@ @@ killed", .@q3, 50, getmonsterlink(.@mobId)); + if (!(.@killamount % 5)) + dispbottom l("%d/%d %s killed", .@killamount+1, get_byte(.@q3, 0), getmonsterlink(.@mobId)); } // Hard Task if (getq(General_MobHunting3) == .@d && getq2(General_MobHunting3) == .@mobId) { - .@q3=getq3(General_MobHunting3)+1; + .@q3=getq3(General_MobHunting3); + .@killamount=get_byte(.@q3, 1); + set_byte(.@q3, 1, .@killamount+1); setq3 General_MobHunting3, .@q3; - if (!(.@q3 % 10)) - dispbottom l("@@/@@ @@ killed", .@q3, 50, getmonsterlink(.@mobId)); + if (!(.@killamount % 5)) + dispbottom l("%d/%d %s killed", .@killamount+1, get_byte(.@q3, 0), getmonsterlink(.@mobId)); } // Frostia's Task |