summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-06-19 01:03:33 -0300
committerJesusaves <cpntb1@ymail.com>2018-06-19 01:03:33 -0300
commit644aaca859564f7769378c13a668be43e648aa8b (patch)
treed259b3079f322dc7e39173bf8d1c24b9e2d31408
parentcd28a64e873036e773cbaad459debc76099be48d (diff)
downloadserverdata-644aaca859564f7769378c13a668be43e648aa8b.tar.gz
serverdata-644aaca859564f7769378c13a668be43e648aa8b.tar.bz2
serverdata-644aaca859564f7769378c13a668be43e648aa8b.tar.xz
serverdata-644aaca859564f7769378c13a668be43e648aa8b.zip
Tier 2 Advancement Quest Sketch
-rw-r--r--db/re/item_db.conf2
-rw-r--r--npc/009-1/barzil.txt12
-rw-r--r--npc/functions/class.txt164
3 files changed, 175 insertions, 3 deletions
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 6bb5a22ca..7f3f8975e 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -3556,7 +3556,7 @@ item_db: (
Type: "IT_ETC"
Buy: 10000
Sell: 1000
- Weight: 10
+ Weight: 300
Refine: false
ViewSprite: 821
BuyingStore: true
diff --git a/npc/009-1/barzil.txt b/npc/009-1/barzil.txt
index c1019714e..0802556d4 100644
--- a/npc/009-1/barzil.txt
+++ b/npc/009-1/barzil.txt
@@ -5,9 +5,21 @@
// PS. move to indoors
009-1,44,48,0 script Barzil NPC_LLOYD,{
+ if (ST_TIER == 2 && gettimetick(2) < QUEST_ELEVARTEMPO) goto L_Tier2;
Banker(.name$, "Halinarzo", 13000);
close;
+L_Tier2:
+ mesn strcharinfo(0);
+ mesq l("I need my master's @@, fast!", getitemlink(SunnyCrystal));
+ next;
+ mesn;
+ mesq l("Of course! Quick, take it!!");
+ inventoryplace SunnyCrystal, 1;
+ ST_TIER=3;
+ getitem SunnyCrystal, 1;
+ close;
+
OnInit:
.sex = G_MALE;
.distance = 4;
diff --git a/npc/functions/class.txt b/npc/functions/class.txt
index 3f8b7dd59..7158c6c5e 100644
--- a/npc/functions/class.txt
+++ b/npc/functions/class.txt
@@ -21,7 +21,7 @@ function script ClassMaster {
if (getskilllv(.@CLASS) == 0) goto L_SignUp;
if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 0) goto L_Tier2;
- if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 1) mes col("...Where is the recipe for the potion? Ah, I lost it...", 9);
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER > 1) goto L_T2_S0;
// Sanity check
if (getskilllv(.@SK_T1) >= 1) mesq l("Are you using my skill?");
@@ -148,9 +148,169 @@ L_Tier2Ok:
mesq l("Come talk to me when you're ready, and we can begin.");
close;
+L_T2_Fail:
+ if (ST_TIER == 3) {
+ if (countitem(SunnyCrystal) > 0) {
+ delitem SunnyCrystal, 1;
+ } else {
+ mesn;
+ mes col("WARNING. YOU ARE CHEATING THE SUNNY CRYSTAL QUEST.", 1);
+ next;
+ mesn;
+ mes col("YOU WILL BE PENALIZED WITH 60% OF HEALTH.", 1);
+ mes col("IF YOU DIE, YOU'LL SUFFER THE PENALTY.", 1);
+ percentheal -60, -100;
+ close;
+ }
+ }
+ mes col(".:: Mission Failed ::.", 1);
+ mes col("You ran out of time.", 1);
+ mes "";
+ mes l("You should have gotten here @@.", FuzzyTime(QUEST_ELEVARTIER,0,2));
+ ST_TIER=1;
+ close;
+
+L_T2_S0:
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 1) goto L_T2_S1;
+ if (gettimetick(2) > QUEST_ELEVARTEMPO) goto L_T2_Fail;
+
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 2) goto L_T2_S2;
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 3) goto L_T2_S3;
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 4) goto L_T2_S4;
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 5) goto L_T2_S5;
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER < 8) goto L_T2_S6;
+ if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 8) goto L_T2_S7;
+ close;
+
L_T2_S1:
- addtoskill(.@CLASS,1,0);
+ .@CLASS=getarg(0);
+ .@CNAME$=getarg(1);
+ .@OTHER=getarg(2);
+ mes "";
+ mesn;
+ mesq l("So, young disciple! I wish I could just chant some gibberish words and that automatically granted you more skills, but allas, that won't work.");
+ next;
+ mesn;
+ mesq l("I can, however, prepare you a potion. But beware, that potion will only last 30 minutes once baked.");
+ next;
+ mesn; // PiberriesInfusion
+ mesq l("If it expires, you'll need to do another. To bake it I need 1 @@, 10 @@ and a @@. Have Mauve, lots of it.", getitemlink(EverburnPowder), getitemlink(MaggotSlime), getitemlink(EmptyBottle));
+ next;
+ select
+ rif(countitem(MaggotSlime) >= 10 && countitem(EverburnPowder) && countitem(EmptyBottle), l("I have everything.")),
+ l("I'm not ready.");
+
+ mes "";
+ if (@menu == 2) {
+ mesn;
+ mesq l("Yes, as you see, the costs are high. Prepare yourself.");
+ close;
+ }
+
+ delitem EmptyBottle, 1;
+ delitem EverburnPowder, 1;
+ delitem MaggotSlime, 10;
+ getexp 500, 0;
+ mesn;
+ mes col("The class master mix the powder with the slime inside the bottle, and makes some weird mixture.", 9);
+ next;
+ mesn;
+ mes col("He pours something on it, you're not sure what. He then utters some magic words.", 9);
+ next;
+ ST_TIER=2;
+ set QUEST_ELEVARTEMPO, gettimetick(2) + (60 * 35);
+ mesn;
+ mesq l("The potion is baked, you have thirty five minutes! Read as fast as you can, don't miss details!");
+ next;
+ mesn;
+ mesq l("First thing is to get a @@. One from black market won't do, go to Halinarzo!", getitemlink(SunnyCrystal));
+ next;
+ mesn;
+ mesq l("Speak with ##BBarzil##b. Tell him I need it, he'll give you one from my inventory. HURRY UP!");
+ close;
+
+L_T2_S2:
+ mesn;
+ mesq l("Hurry up! Bring my @@ from Barzil in Halinarzo!! You only have @@ left!", getitemlink(SunnyCrystal), FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ close;
+
+L_T2_S3:
+ if (countitem(SunnyCrystal) == 0) {
+ mesn;
+ mesq l("Where's the Sunny Crystal? Hurry up, you only have @@ left!", FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ }
+ delitem SunnyCrystal, 1;
+ ST_TIER=4;
+ getexp 250, 0;
+ mesn;
+ mesq l("Good, you did it!");
+ next;
+ mesn;
+ mes col("*chants more words, while the crystal hovers the potion*", 9);
+ next;
+
+L_T2_S4:
+ mesn;
+ mesq l("I will need many Mauve Herbs! Do you have them with you? If you don't have enough, we'll lose everything! You need at most @@!", BaseLevel+40);
+ select
+ rif(countitem(MauveHerb), l("Yes, I have herbs. I assume the risks.")),
+ l("No I don't have herbs. I'll be back.");
+
+ if (@menu == 2)
+ close;
+
+ if (gettimetick(2) > QUEST_ELEVARTEMPO) goto L_T2_Fail;
+ .@req=rand(BaseLevel-20, BaseLevel+40);
+ // Minimum is 40, max is unknown, defaults to 100
+
+ mesn;
+ mesq l("I need @@ Herbs!", .@req);
+ next;
+
+ if (countitem(MauveHerb) < .@req) goto L_T2_Fail;
+ delitem MauveHerb, .@r;
+ ST_TIER=5;
+ getexp .@r*3, 0;
+
+ mesq col("You quickly give him the herbs, and he skillfully mix them on a potion.", 9);
+ next;
+ // You'll get a random amount of time, based on spent herbs
+ // Usually, 10~73 sec, being 73 sec = 1m13s
+ QUEST_ELEVARTEMPO=QUEST_ELEVARTEMPO+rand(10,.@r-27);
+
+L_T2_S5:
+ mesn;
+ mesq l("Good! Last step! West of Hurnscald, there is a magic fountain.");
+ next;
+ mesn;
+ mesq l("Talk to the Fountain. Obey every command. I advise you to put all your points on int if possible.");
+ next;
+ mesn;
+ mesq l("Hurry up, you'll run out of time in @@!", FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ close;
+
+L_T2_S6:
+ mesn;
+ mesq l("You did it! You're now on the last stage of this BORING and LONG quest!");
+ next;
+ mesn;
+ mesq l("Jesusaves wrote a grimorie, with ancient secrets of our world.");
+ next;
+ mesn;
+ mesq l("Captain Nard have it. Fetch it with him! Quick, you only have @@ left!", FuzzyTime(QUEST_ELEVARTEMPO,2,2));
+ close;
+
+L_T2_S7:
+ addtoskill(.@CLASS,2,0);
getexp 40000, 0; // Yes, 40k experience points. Waw.
+ mes col(".:: Congratulations! ::.", 2);
+ mes col("You advanced your tier!", 2);
+ next;
+ mesn;
+ mesq l("Keep the Grimorie with you. It's the proof you are now Tier 2. The book shall guide your advances!");
+ next;
+ mesn;
+ mesq lg("Yes, courageous and worthy adventurer. You did well. I won't babysit you anymore. Embrace the new world opening before you!");
close;
}