// TMW-2 Script.
// Author:
// Saulc
// Jesusalva
// Notes:
// Buys Tonori Delight
009-2,29,57,0 script Ryan NPC_PLAYER,{
if (BaseLevel < 17) goto L_Weak;
if (!getq(HalinarzoQuest_LifeDelight)) goto L_Prologue;
.@q=getq2(HalinarzoQuest_LifeDelight);
if (.@q < 25)
.@a=(.@q**2)+18;
else if (.@q < 40)
.@a=625+18*(.@q-24);
else if (.@q < 50)
.@a=895+10*(.@q-39);
else
.@a=1000+(.@q*(.@q < 75 ? 1 : 2));
if (.@q > 100) goto L_Complete;
mesn;
mesq l("Ah, I just wanted @@... Yummy, lovely @@...", getitemlink(TonoriDelight), getitemlink(TonoriDelight));
next;
mesn;
mesq l("If you bring me @@ @@, I'll give you a reward!", .@a, getitemlink(TonoriDelight));
next;
select
rif(countitem(TonoriDelight) >= .@a, l("I have everything!")),
l("Ah, not now...");
mes "";
if (@menu == 2)
close;
inventoryplace ChefHat, 1;
inventoryplace PlatinumIngot, 1, IridiumIngot, 2;
// Generic rewards: XP Boost (.@l) and GP boost (.p)
.@l=BaseLevel+JobLevel;
// Main reward
delitem TonoriDelight, .@a;
getexp rand(.@a, .@a*2)+.@q*rand(10,30), .@l;
Zeny=Zeny+.@a*.p;
setq2 HalinarzoQuest_LifeDelight, .@q+1;
mesn;
mesq l("Hmmm... Yummy!");
// Landmark rewards
// Chef hat last stage: 120 Delights - 583 in total
.@r=getq(HalinarzoQuest_LifeDelight);
.@q=getq2(HalinarzoQuest_LifeDelight);
if (.@r < 2 && .@q >= 11) {
setq1 HalinarzoQuest_LifeDelight, 2;
getitem ChefHat, 1;
getexp 13500, 10;
next;
mesn;
mesq l("Ah, you really deserve this @@. Good job!", getitemlink(ChefHat));
}
// Bonus stage
if (.@q == 20)
getitem Coffee, 1;
if (.@q >= 21) {
Zeny+=rand2(1,.@a)*.p;
getexp rand2(1,.@q)*.@l, rand2(1, .@q);
Mobpt+=.@q; // From now on, Monster Points will be generated
}
// Bonus stage
if (.@q == 30)
getitem Manapple, 1;
// Bonus stage
if (.@q == 40)
getitem LoFWarpCrystal, 1;
// Elixir Of Life last stage: ~995 Delights - 26,385 in total
if (.@r < 3 && .@q >= 51) {
setq1 HalinarzoQuest_LifeDelight, 3;
getitem ElixirOfLife, 1;
getitem MylarinDust, 1;
getexp 30000, 5000;
next;
mesn;
mesq l("Hey, take this @@. It heals fully but who cares, I have Tonori Delight!", getitemlink(ElixirOfLife));
}
if (.@q >= 51) {
Zeny+=rand2(.@q,.@a)*.p;
getexp rand2(1,.@a)*.@l, rand2(1, .@q);
}
// Bonus stage
if (.@q == 60)
getitem SacredLifePotion, 1;
// Bonus stage
if (.@q == 70)
getitem MercBoxDD, 1;
// Bonus stage
if (.@q == 80)
getitem DivineApple, 1;
// Bonus stage
if (.@q == 90)
getitem MysteriousFruit, 1;
if (.@q >= 91) {
Zeny+=rand2(.@a, .@a+.@q)*.p;
getexp rand2(.@q,.@a)*.@l, rand2(1, .@q);
}
// Platinum + Iridium last stage: ~1290 Delights - 86,885 in total
if (.@r < 4 && .@q == 100) {
setq1 HalinarzoQuest_LifeDelight, 4;
getitem SunnyCrystal, 1;
getitem PlatinumIngot, 1;
getitem IridiumIngot, 2;
getitem EquipmentBlueprintE, 2;
getitem AlchemyBlueprintE, 2;
Mobpt+=1000000; // 1 Million Monster Points
getexp 500000, 50000; // Reference: Lv 74 / Lv 38
next;
mesn;
mesq l("Ah, I have enough @@ for a life! Take this EXTREMELY RARE @@. Good job!", getitemlink(TonoriDelight), getitemlink(SunnyCrystal));
mesc l("Got Master Blueprints!");
mesc l("Got 1,000,000 Monster Points!");
}
close;
L_Complete:
mesn;
mesq l("Thanks for the help! Yummy!");
close;
L_Weak:
mesn;
mesq l("How did you even got here? There are dangerous swamps north, and dangerous deserts south...");
close;
L_Prologue:
setq HalinarzoQuest_LifeDelight, 1, 0;
mesn;
mesq l("Ah, I just wanted @@... Yummy, lovely @@...", getitemlink(TonoriDelight), getitemlink(TonoriDelight));
next;
mesn;
mesq l("There's a big prize in the end... Could you bring me some later?");
close;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, ChefHat);
setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe);
setunitdata(.@npcId, UDT_HEADBOTTOM, CottonTrousers);
setunitdata(.@npcId, UDT_WEAPON, Boots);
setunitdata(.@npcId, UDT_HAIRSTYLE, 26);
setunitdata(.@npcId, UDT_HAIRCOLOR, 2);
.sex = G_MALE;
.distance = 4;
.p=97; // Price in GP of each Tonori Delight.
// real price is 556 in ingredients (this gets a x2 sell price)
// + 120 GP of taxes
// Total: 676 GP per batch (5~9 units). We consider the average batch (7).
// NO EXTRA PROFIT IS REQUIRED/ALLOWED.
end;
}