summaryrefslogblamecommitdiff
path: root/npc/025-1/phoenix.txt
blob: f3dc8a318a5553b84c4f5dde2e27ba362ed01f07 (plain) (tree)
1
2
3
4
5
6
7
8





                     
                                                           
                                   



                                                  




                                             

                      

                              
              
           
                    


                               
                    


                              
                    

                               
           
                    
                              
                                 
                  
            
                                        



                                                            
                                                                   
                                                                                                                                                                




                                                                                   
                                                 
                                    
                                                              
                                              
                       
                             
                                        






                                                                                                                                                                                                     
                                    











                                                             

























                                                                                                  


                                  





                    
                                                                           
                



                                   
                                                      








                                                                                                              
                          







                                                            
 
                 
           

                                                                                                 

                                
 
 












                                                                                                                        
 
 












                                                                                          
 
 

                       
               


















                                                                                                                
     

           
                             





                                          



                                          
 
                               
          




                  

 
// 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;
    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;
}