// TMW-2 Script.
// Author:
// Jesusalva
// Notes:
// Phoenix Rebirth
025-1,66,21,0 script Phoenix Rebirth NPC_BRGUARD_SPEAR,{
setpcblock(PCBLOCK_HARD, true);
mesn;
mesq l("Hello there. My name is %s.", .name$);
next;
mesn;
if (REBIRTH)
.@blvl=0-(REBIRTH_OVERLEVEL/REBIRTH);
else
.@blvl=0;
switch (REBIRTH) {
case 0:
.@blvl+=99;
.@rebirth$=l("first");
break;
case 1:
.@blvl+=120;
.@rebirth$=l("second");
break;
case 2:
.@blvl+=135;
.@rebirth$=l("third");
break;
case 3:
.@blvl+=150;
.@rebirth$=l("fourth");
break;
case 4:
.@blvl+=175;
.@rebirth$=l("final");
if ($GAME_STORYLINE >= 5)
break;
default:
setpcblock(PCBLOCK_HARD, false);
mesc l("Unfortunately you cannot rebirth anymore!");
close;
break;
}
.@blvl=max(90, .@blvl); // Do not allow it to go too far below!
mesc l("Once you reach level %d, I'll offer you a life-time opportunity to delete all your levels and experience for your %s rebirth!", .@blvl, .@rebirth$);
next;
mesn;
mesq l("Rebirth is free. Here are the perks you'll get by doing the rebirth:");
mes "";
mes l("* +3 Inventory Slots")+" ##1##BWIP##b##0";
mes l("* +1 in all attributes, permanently");
mes l("* +1 Magic Skill Point");
mes l("* +%d%% EXP Gain and Drop Chance, permanently", 2);
mes l("* 1 %s", getitemlink(SupremeGift));
mes l("* 1 Trait");
if (BaseLevel < .@blvl) {
setpcblock(PCBLOCK_HARD, false);
close;
}
next;
mesn;
mesq l("Are you interested? You'll keep %s your equipment, magic, quest progression, craft recipes, money, whatever else which is not a level. Not even Job level won't be reset!", b(l("ALL")));
mesc l("This cannot be undo later!"), 1;
next;
setpcblock(PCBLOCK_HARD, false);
inventoryplace NPCEyes, 7;
select
l("Do not rebirth"),
l("Rebirth"),
l("Do not rebirth");
mes "";
if (@menu != 2)
close;
mesc l("ARE YOU SURE? THIS CANNOT BE UNDONE LATER!!"), 1;
if (askyesno() != ASK_YES)
close;
setnpcdialogtitle l("Rebirth Trait Selection");
mesc l("Please select a trait.");
mesc l("This choice CANNOT be undone later."), 1;
menuint
l("Cancel"), 0,
rif(!(PCBONUS & PCB_ATKBONUS), l("Atk +25")), PCB_ATKBONUS,
rif(!(PCBONUS & PCB_MATKBONUS), l("Matk +25")), PCB_MATKBONUS,
rif(!(PCBONUS & PCB_DEFBONUS), l("Def +20")), PCB_DEFBONUS,
rif(!(PCBONUS & PCB_MDEFBONUS), l("MDEF +10")), PCB_MDEFBONUS,
rif(!(PCBONUS & PCB_EVDBONUS), l("Evasion +20")), PCB_EVDBONUS,
rif(!(PCBONUS & PCB_HITBONUS), l("Accuracy +25")), PCB_HITBONUS,
rif(!(PCBONUS & PCB_CRITBONUS), l("Crit +5%")), PCB_CRITBONUS,
rif(!(PCBONUS & PCB_DOUBLEATK), l("Double Attack +5%")), PCB_DOUBLEATK,
rif(!(PCBONUS & PCB_ALLSTATS), l("All Stats +1")), PCB_ALLSTATS,
rif(!(PCBONUS & PCB_HPBONUS), l("HP +500")), PCB_HPBONUS,
rif(!(PCBONUS & PCB_MPBONUS), l("MP +200")), PCB_MPBONUS,
rif(!(PCBONUS & PCB_ASPDBONUS), l("Atk. Speed +10")), PCB_ASPDBONUS,
rif(!(PCBONUS & PCB_WSPDBONUS), l("Walk +5%")), PCB_WSPDBONUS,
rif(!(PCBONUS & PCB_WEIGHTBONUS), l("Max Weight +1kg")), PCB_WEIGHTBONUS,
rif(!(PCBONUS & PCB_EXPBONUS), l("EXP Gain +10%")), PCB_EXPBONUS,
rif(!(PCBONUS & PCB_NOKNOCKBACK), l("Knockback Immunity")), PCB_NOKNOCKBACK,
rif(REBIRTH && !(PCBONUS & PCB_SPLASHMASTER), l("AoE (not stackable)")), PCB_SPLASHMASTER,
rif(REBIRTH && !(PCBONUS & PCB_RANGEMASTER), l("Atk Range +1")), PCB_RANGEMASTER,
rif(REBIRTH < 5 && !(PCBONUS & PCB_LEGENDARY), l("No penalty against Legendary mobs")), PCB_LEGENDARY;
if (@menuret == 0) return;
PCBONUS=PCBONUS|@menuret;
// Okay, then a rebirth it is!
expandinventory(3);
REBIRTH+=1;
STATUSUP_STR+=1;
STATUSUP_AGI+=1;
STATUSUP_VIT+=1;
STATUSUP_INT+=1;
STATUSUP_DEX+=1;
STATUSUP_LUK+=1;
REBIRTH_OVERLEVEL=max(0, BaseLevel-.@blvl-(REBIRTH_OVERLEVEL/REBIRTH));
resetlvl(3);
NewcomerEXPDROPUP();
getitembound SupremeGift, 1, 4;
warp "005-1", 40, 117;
LOCATION$="Candor";
kamibroadcast(strcharinfo(0)+" has been reborn.");
// Maybe you were THE FIRST
if ($REBIRTH_WINNER$ == "") {
$REBIRTH_WINNER$=strcharinfo(0);
channelmes("#world", $REBIRTH_WINNER$+" is the first player to REBIRTH!! They are so OP! %%N");
announce "All hail ##B"+$REBIRTH_WINNER$+"##b, first player to REBIRTH and become OP!", bc_all|bc_npc;
getitem SupremeGift, 1;
next;
}
// These operations can be delayed or fail
StatusResetReinvest();
// Open a new dialog
clear;
setnpcdialogtitle l("Rebirth Race Selection");
mesc l("Do you want to change your race?");
mesc l("This can only be reverted at rebirth! Beware!");
next;
if (askyesno() != ASK_YES)
close;
// Rebirth: 0
mes "";
mes ".:: "+l("Human")+" ::.";
mesc l("The most widespread race in the continent, highly versatile, perfect all-rounders.");
mesc l("Strength: NONE"), 2;
mesc l("Weakness: NONE"), 1;
// Rebirth: 1
if (REBIRTH >= 1) {
mes "";
mes ".:: "+l("Elven")+" ::.";
mesc l("They are highly intelligent, and have higher magical affinity, and live longer, but lacks creativity.");
mesc l("Strength: INT+"), 2;
mesc l("Weakness: STR-"), 1;
mes "";
mes ".:: "+l("Tritan")+" ::.";
mesc l("Blue from sea, learned how to hunt. But unfortunately, not how to withstand attacks.");
mesc l("Strength: DEX+"), 2;
mesc l("Weakness: VIT+"), 1;
}
// Rebirth: 2
if (REBIRTH >= 2) {
mes "";
mes ".:: "+l("Raijin")+" ::.";
mesc l("Lives undercover in human society. Luck led them to surviving this far.");
mesc l("Strength: LUK+"), 2;
mesc l("Weakness: DEX-"), 1;
mes "";
mes ".:: "+l("Orc")+" ::.";
mesc l("Highly strong and bulky, faces their foes head-on.");
mesc l("Strength: STR+, Carry Weight +"), 2;
mesc l("Weakness: AGI-"), 1;
}
// Rebirth: 3
if (REBIRTH >= 3) {
mes "";
mes ".:: "+l("Ukar")+" ::.";
mesc l("Superb stealth, and quick on their toes.");
mesc l("Strength: AGI+, Walk Speed +"), 2;
mesc l("Weakness: LUK-"), 1;
mes "";
mes ".:: "+l("Redy")+" ::.";
mesc l("Grown in harsh environments, withstand anything.");
mesc l("Strength: VIT++"), 2;
mesc l("Weakness: INT-"), 1;
}
// Rebirth: 5
if (REBIRTH >= 5) {
mes "";
mes ".:: "+l("Savior")+" ::.";
mesc l("Unparelled, strength without precedents. Ancient beings of pure mana, rumored to be immortal.");
mesc l("Strength: ALL"), 2;
mesc l("Weakness: NONE"), 1;
}
next;
menuint
l("Kaizei Human"), 0,
rif(REBIRTH >= 1, l("Elven")), 3,
rif(REBIRTH >= 1, l("Tritan")), 6,
rif(REBIRTH >= 2, l("Raijin")), 5,
rif(REBIRTH >= 2, l("Orc")), 4,
rif(REBIRTH >= 3, l("Ukar")), 7,
rif(REBIRTH >= 3, l("Redy")), 8,
rif(REBIRTH >= 5, l("Savior")), 9,
l("Argaes Human"), 1,
l("Tonori Human"), 2,
l("Don't change race"), Class;
jobchange max(0, @menuret);
close;
OnInit:
.sex = G_MALE;
.distance = 7;
end;
}