summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-10-18 19:54:28 -0300
committerJesusaves <cpntb1@ymail.com>2021-10-18 19:54:28 -0300
commite7359a605e9b63aada134f635c5e81d49bd6313a (patch)
tree3571c5e835954fef965998c5da00f8b8735ef84b
parent71c64da6c57087c2bb244966b07024594fc53f03 (diff)
downloadserverdata-e7359a605e9b63aada134f635c5e81d49bd6313a.tar.gz
serverdata-e7359a605e9b63aada134f635c5e81d49bd6313a.tar.bz2
serverdata-e7359a605e9b63aada134f635c5e81d49bd6313a.tar.xz
serverdata-e7359a605e9b63aada134f635c5e81d49bd6313a.zip
Eldrin, the flip side of Kreist.
Getting the [Bounty Hunter Helmet] is now 50% easier! ...Sort of.
-rw-r--r--db/quest_db.conf16
-rw-r--r--npc/001-7/celestia_bossfight.txt1
-rw-r--r--npc/003-10/kreist.txt37
-rw-r--r--npc/010-1-1/boss.txt1
-rw-r--r--npc/015-1/boss.txt1
-rw-r--r--npc/015-6/boss.txt1
-rw-r--r--npc/018-7-1/demure.txt1
-rw-r--r--npc/024-10/eldrin.txt118
-rw-r--r--npc/025-2-3/boss.txt1
-rw-r--r--npc/031-0/boss.txt1
10 files changed, 176 insertions, 2 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 3bc44703b..b3d5a64a1 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -483,6 +483,22 @@ quest_db: (
Id: 203
Name: "General_MobHunting4"
},
+{
+ Id: 204
+ Name: "General_MobHunting5"
+},
+{
+ Id: 205
+ Name: "General_MobHunting6"
+},
+{
+ Id: 206
+ Name: "General_MobHunting7"
+},
+{
+ Id: 207
+ Name: "General_MobHunting8"
+},
// ID 250 to 269: Lilit Quests
{
diff --git a/npc/001-7/celestia_bossfight.txt b/npc/001-7/celestia_bossfight.txt
index 7fd8163e4..5140d0cde 100644
--- a/npc/001-7/celestia_bossfight.txt
+++ b/npc/001-7/celestia_bossfight.txt
@@ -149,6 +149,7 @@ OnVictory:
npctalk l("Good job... You can keep the drops. Touch here to return home.");
areatimer "001-7", 20, 20, 141, 171, 10, "#YetiKing::OnDefeat";
donpcevent "Celestia::OnClock0002";
+ fix_mobkill(YetiKing);
end;
// This allows the challenger to go back home without dying.
diff --git a/npc/003-10/kreist.txt b/npc/003-10/kreist.txt
index 4e1fcd68c..e3bd3ecdb 100644
--- a/npc/003-10/kreist.txt
+++ b/npc/003-10/kreist.txt
@@ -164,6 +164,43 @@ function script Guardhouse_RandQuestCheck {
dispbottom l("@@/@@ @@ killed", .@q3, 50, getmonsterlink(.@mobId));
}
+
+ // Frostia - Medium Task
+ if (getq(General_MobHunting5) == .@d &&
+ getq2(General_MobHunting5) == .@mobId) {
+ .@q3=getq3(General_MobHunting5)+1;
+ setq3 General_MobHunting5, .@q3;
+ if (!(.@q3 % 10))
+ dispbottom l("@@/@@ @@ killed", .@q3, 50, getmonsterlink(.@mobId));
+ }
+
+ // Frostia - Hard Task
+ if (getq(General_MobHunting6) == .@d &&
+ getq2(General_MobHunting6) == .@mobId) {
+ .@q3=getq3(General_MobHunting6)+1;
+ setq3 General_MobHunting6, .@q3;
+ if (!(.@q3 % 10))
+ dispbottom l("@@/@@ @@ killed", .@q3, 50, getmonsterlink(.@mobId));
+ }
+
+ // Frostia - Nightmare Task
+ if (getq(General_MobHunting7) == .@d &&
+ getq2(General_MobHunting7) == .@mobId) {
+ .@q3=getq3(General_MobHunting7)+1;
+ setq3 General_MobHunting7, .@q3;
+ if (!(.@q3 % 10))
+ dispbottom l("@@/@@ @@ killed", .@q3, 50, getmonsterlink(.@mobId));
+ }
+
+ // Frostia - Boss Task
+ if (getq(General_MobHunting8) == .@d &&
+ getq2(General_MobHunting8) == .@mobId) {
+ if (!.@q3)
+ dispbottom l("%s slain!", getmonsterlink(.@mobId));
+ .@q3=getq3(General_MobHunting8)+1;
+ setq3 General_MobHunting8, .@q3;
+ }
+
return;
}
diff --git a/npc/010-1-1/boss.txt b/npc/010-1-1/boss.txt
index 3e9624b1f..3ee49d753 100644
--- a/npc/010-1-1/boss.txt
+++ b/npc/010-1-1/boss.txt
@@ -26,6 +26,7 @@ OnBossDeath:
} else {
mapannounce getmap(), "Boss deafeated by: " + strcharinfo(0), bc_all;
}
+ fix_mobkill(GiantCaveMaggot);
end;
}
diff --git a/npc/015-1/boss.txt b/npc/015-1/boss.txt
index 5d1d77121..1591e05f5 100644
--- a/npc/015-1/boss.txt
+++ b/npc/015-1/boss.txt
@@ -22,6 +22,7 @@ OnBossDeath:
} else {
mapannounce getmap(), "Boss deafeated by: " + strcharinfo(0), bc_all;
}
+ fix_mobkill(SpiderQueen);
end;
}
diff --git a/npc/015-6/boss.txt b/npc/015-6/boss.txt
index 8345351a4..d8434968c 100644
--- a/npc/015-6/boss.txt
+++ b/npc/015-6/boss.txt
@@ -25,6 +25,7 @@ OnBossDeath:
} else {
mapannounce "015-6", "Boss deafeated by: " + strcharinfo(0), bc_all;
}
+ fix_mobkill(TerraniteKing);
end;
}
diff --git a/npc/018-7-1/demure.txt b/npc/018-7-1/demure.txt
index 112c820cf..70eedfd74 100644
--- a/npc/018-7-1/demure.txt
+++ b/npc/018-7-1/demure.txt
@@ -124,6 +124,7 @@ OnBeet:
// Check victory conditions
OnYeti:
+ fix_mobkill(Yetifly);
OnDem2:
if (!playerattached()) {
consolebug "ERROR - PLAYER NOT ATTACHED, INVALID KILL, CANNOT RESOLVE MAP.";
diff --git a/npc/024-10/eldrin.txt b/npc/024-10/eldrin.txt
index f03cea5a7..0298a174e 100644
--- a/npc/024-10/eldrin.txt
+++ b/npc/024-10/eldrin.txt
@@ -11,8 +11,122 @@
mesc l("The elf seems busy. He ignores you.");
close;
}
- mesn;
- mesq l("Sorry, we're not yet open.");
+ .@d=gettimeparam(GETTIME_DAYOFMONTH);
+ mesn l("Eldrin, Taskmaster");
+ mesq l("Hello, and welcome to Frostia bounty hunter guild.");
+ next;
+ mesn l("Eldrin, Taskmaster");
+ mesq l("I have bounties for specific high level monsters as well for extermination. Do note mobs killed in Heroes Hold may not count.");
+ next;
+ mesn l("Eldrin, Taskmaster");
+ mesq l("Be careful that they may be anywhere in the world, and the same rules as Tulimshar Guard House apply! So, are you here to apply or to report back?");
+ mesc l("Protip: All quests expire at 00:00 server time, be sure to finish AND report back before that!");
+ next;
+ // Borrowed from Arkim Code
+ mesc l("Time remaining to report completion: ")+FuzzyTime($@ARKIM_TIMER+86400), 1;
+
+ select
+ l("I want a MODERATE (Lv 50~70) task!"),
+ l("I want a EXPERT (Lv 70~100) task!"),
+ l("I want a MASTER (Lv 100+) task!"),
+ l("I want a BOSS task!"),
+ l("It was nice seeing you.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ .@q1=getq(General_MobHunting5);
+ .@q2=getq2(General_MobHunting5);
+ .@q3=getq3(General_MobHunting5);
+ .@q=General_MobHunting5;
+ .@lv=7;
+ goto L_QuestMaster;
+ case 2:
+ .@q1=getq(General_MobHunting6);
+ .@q2=getq2(General_MobHunting6);
+ .@q3=getq3(General_MobHunting6);
+ .@q=General_MobHunting6;
+ .@lv=14;
+ goto L_QuestMaster;
+ case 3:
+ .@q1=getq(General_MobHunting7);
+ .@q2=getq2(General_MobHunting7);
+ .@q3=getq3(General_MobHunting7);
+ .@q=General_MobHunting7;
+ .@lv=20;
+ goto L_QuestMaster;
+ case 4:
+ .@q1=getq(General_MobHunting8);
+ .@q2=getq2(General_MobHunting8);
+ .@q3=getq3(General_MobHunting8);
+ .@q=General_MobHunting8;
+ .@lv=50;
+ goto L_QuestMaster;
+ }
+ closeclientdialog;
+ goodbye();
+ close;
+
+L_QuestMaster:
+ // It's a new day, so we must generate a new quest!
+ if (.@q1 != .@d) {
+ .@q1=.@d;
+ if (.@lv == 7) {
+ .@q2=any(EarthFairy, FireFairy, WaterFairy, WindFairy, PoisonFairy, BlackScorpion, MountainSnake, ForestMushroom, GoldenScorpion, Yeti, WickedMushroom, Archant, Scar, Crafty);
+ } else if (.@lv == 14) {
+ .@q2=any(Crafty, Forain, GreenDragon, Troll, Moonshroom, Terranite, JackO, BlackMamba, Centaur, GoboBear);
+ } else if (.@lv == 20) {
+ .@q2=any(TerraniteProtector, EliteDuck, Reaper, NightmareDragon, NightmareDragon, PinkieSuseran, PinkieMaximus);
+ } else if (.@lv == 50) {
+ .@q2=any(Tengu, Tipiu, EvilScythe, GiantCaveMaggot, SpiderQueen, TerraniteKing, PinkieEmperor, Yetifly, YetiKing);
+ } else {
+ Exception("Bad setting for GMH.LV: "+.@lv, RB_DEFAULT|RB_SPEECH|RB_ISFATAL);
+ }
+ setq .@q, .@q1, .@q2, 0;
+ }
+
+ // Maybe there is no monster to kill
+ if (!.@q2) {
+ mesn l("Eldrin, Taskmaster");
+ mesq l("You've already completed this quest today. Try again tomorrow.");
+ close;
+ }
+
+ // You only need to slay one boss
+ if (.@q3 && .@lv == 50)
+ .@q3 += 50;
+
+ // Maybe you finished the quest?
+ // Reuses everything from Kreist
+ if (.@q3 >= 50) {
+ mesn l("Eldrin, Taskmaster");
+ mesq l("Good job, you've killed the @@ @@ and reported back in time!", 50, getmonsterlink(.@q2));
+ next;
+ inventoryplace MercBoxA, 1;
+ if (MERCENARY_DAILYQUEST == 100) {
+ inventoryplace BountyHunterHelmet, 1;
+ getitem BountyHunterHelmet, 1;
+ }
+ mesn l("Eldrin, 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;
+ Zeny+=.@lv*(42+MERCENARY_DAILYQUEST);
+ // Raise LV according to monster level
+ .@lv+=getmonsterinfo(.@q2, MOB_LV)+MERCENARY_DAILYQUEST*11/10;
+ getexp BaseLevel*.@lv, .@lv+.@overkill;
+ setq2 .@q, 0;
+ setq3 .@q, 0;
+ MERCENARY_DAILYQUEST+=1;
+ if (MERCENARY_DAILYQUEST % 5 == 0) {
+ getitem MercBoxA, 1;
+ }
+ close;
+ }
+
+ mesn l("Eldrin, Taskmaster");
+ if (.@lv != 50)
+ mesq l("So, please kill @@/@@ @@ for us and make the world a safer place!", .@q3, 50, getmonsterlink(.@q2));
+ else
+ mesq l("So, please kill a %s for us and make the world a safer place!", getmonsterlink(.@q2));
close;
OnInit:
diff --git a/npc/025-2-3/boss.txt b/npc/025-2-3/boss.txt
index fa9ea4b2d..ba1bd89d6 100644
--- a/npc/025-2-3/boss.txt
+++ b/npc/025-2-3/boss.txt
@@ -28,6 +28,7 @@ OnBossDeath:
mapannounce "025-2-3", "Boss deafeated by: " + strcharinfo(0), bc_all;
}
callfunc "02524_Revenge_BlackBox";
+ fix_mobkill(PinkieEmperor);
end;
OnBossReward:
diff --git a/npc/031-0/boss.txt b/npc/031-0/boss.txt
index 0dce5ffd8..efd24256b 100644
--- a/npc/031-0/boss.txt
+++ b/npc/031-0/boss.txt
@@ -24,6 +24,7 @@ OnBossDeath:
mapannounce getmap(), "Boss deafeated by: " + strcharinfo(0), bc_all;
}
getexp 0, 1000+BaseLevel*8+JobLevel;
+ fix_mobkill(Tengu);
end;
}