From 98fbcb6770e7f1e196ce871b9cb3074f0cc8a97c Mon Sep 17 00:00:00 2001 From: NetSysFire <59517351+NetSysFire@users.noreply.github.com> Date: Sat, 17 Sep 2022 17:44:14 +0200 Subject: attempt to work around stuff with bitmasks, take one --- npc/003-10/kreist.txt | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/npc/003-10/kreist.txt b/npc/003-10/kreist.txt index 59d5d8a27..5f5a26ffb 100644 --- a/npc/003-10/kreist.txt +++ b/npc/003-10/kreist.txt @@ -73,7 +73,7 @@ L_QuestMaster: } // Maybe you finished the quest? - if (.@q3 >= .@killamount) { + if (!.q3 == 0 && 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!", .@killamount, getmonsterlink(.@q2)); next; @@ -84,7 +84,7 @@ L_QuestMaster: } mesn l("Kreist, Taskmaster"); mesq l("It's not much of a reward, but doesn't it feel great to help others in need?! HAHAHA!"); - .@overkill=.@q3-.@killamount; + .@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,15 +99,18 @@ L_QuestMaster: } mesn l("Kreist, Taskmaster"); - .@killamount=15; + // amount to kill + set_byte(.@q3, 0, 15); + // amount already killed // Explanation why the city needs that // FIXME: plural if (.@q2 == Maggot ) { mesq l("%s have infested the store houses, spilling onto the streets. Stop them from destroying even more food.", getmonsterlink(.@q2)); .@killamount=30; + 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)); - .@killamount=10; + 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) { @@ -116,18 +119,18 @@ L_QuestMaster: 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)); - .@killamount=20; + 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)); - .@killamount=20; + 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)); - .@killamount=20; + 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)); - .@killamount=10; + 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) { @@ -135,7 +138,7 @@ L_QuestMaster: } 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)); } - mesq l("So, please kill %d/%d %ss for us and make the city a better place!", .@q3, .@killamount, getmonsterlink(.@q2)); + 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: @@ -167,10 +170,11 @@ function script Guardhouse_RandQuestCheck { // Easy Task if (getq(General_MobHunting1) == .@d && getq2(General_MobHunting1) == .@mobId) { - .@q3=getq3(General_MobHunting1)+1; - setq3 General_MobHunting1, .@q3; - if (!(.@q3 % 10)) - dispbottom l("@@/@@ @@ killed", .@q3, .@killamount, getmonsterlink(.@mobId)); + .@q3=getq3(General_MobHunting1); + .@killamount=get_byte(.@q3, 1) + setq3 General_MobHunting1, set_byte(.@q3, 1, .@killamount+1); + if (!(.@killamount % 5)) + dispbottom l("%d/%d %s killed", .@killamount, get_byte(.@q3, 0), getmonsterlink(.@mobId)); } // Medium Task -- cgit v1.2.3-60-g2f50