summaryrefslogblamecommitdiff
path: root/npc/029-0/event.txt
blob: e2e671100f6e9d469917c3e3704a2ad77c6ed838 (plain) (tree)
1
2
3
4
5
6
7
8
9






                                                                                  

                                                                         


                          










































                                                                                                                                                      
     
                                                                         
                              

                                  

                   
                                     

        
       
                                                               



                                   
                                               


                













                                                         

                                                      
                                                                 


                                                      




                                                      
                                                              




                                                        
                                                                
 


                                                                   


                                                        
                                                        
 












                                                                
 
                               
                          
 
                                       
                                                











                                                           
          
                                                                      

                           


            

            
            

            
            

            
            
            

                           
            

                                   

                                               
 
                                                           
                                                              


                                                           



































                                                               












                                                                 


           
                                
                                   


        


                                                                      


                                                                          
                                                                                  











                                                                                                
                                       














                                                                                         


                    
 
                   
                                                









                                            
                  
                                       
                     
                         
                                   
                              
     
                     



                                   

                                      



                     
                      



























                                                                                                                                                             

                             

                                                                                           
                      



                
      

                               
      


        
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Exclusive for Fires of Steam 2021 - When our OVH server datacenter got fire.

029-0,111,37,0	script	Alliance Hero#FoS	NPC_HALBERDBARBARIAN,{
    // No one is supposed to be able to reach NPC if event did not happen
    if (!$FIRESOFSTEAM) {
        disablenpc .name$;
        die(); end;
    }
    mesn;
    mesq l("Sooo, the police station of Moubootaur Legends went ablaze. Constable Perry is too busy to monitor illegal operation on this continent.");
    next;
    mesn;
    mesq l("Therefore... Are you perhaps interested in some... illicit goods? %%p");
    next;
    select
        l("Show me what you got, noob."),
        l("Actually - Do you exchange goods even more illegal goods than this?"),
        l("Actually - Do you exchange illegal... research results?");
    mes "";
    if (@menu == 1) {
        closeclientdialog;
        openshop .name$;
        close;
    }
    else if (@menu == 2) {
        mesn;
        mesq l("Yes I do... I sell %s %s for the small amount of %s GP. Interested? %%%%p", fnum(.mobp), l("Monster Points"), fnum(.mobg));
        if (Zeny < .mobg) close;
        next;
        if (askyesno() == ASK_NO) close;
        if (Zeny < .mobg) { die(); close; }
        Zeny-=.mobg;
        Mobpt+=.mobp;
        mes "";
        mesn;
        mesq l("Hehehe... A pleasure doing business with you!");
    } else if (@menu == 3) {
        mesn;
        mesq l("Yes I do... I sell %s %s for the small amount of %s GP. Interested? %%%%p", fnum(.robp), l("Research Points"), fnum(.robg));
        if (Zeny < .robg) close;
        next;
        if (askyesno() == ASK_NO) close;
        if (Zeny < .robg) { die(); close; }
        Zeny-=.robg;
        Mobpt+=.robp;
        mes "";
        mesn;
        mesq l("Hehehe... A pleasure doing business with you!");
    }
    close;

OnRw:
    logmes(sprintf("%s - Reward Granted by System Admin", getcharid(3)));
    getitem StrangeCoin, 2000;
    getitembound FireScroll, 1, 1;
    getexp 1000000, 500000;
    Mobpt+=1000000;
    Zeny+=1000000;
    dispbottom l("Jesusalva : \\o/");
    end;

OnInit:
    bindatcmd "steambk", "Alliance Hero#FoS::OnRw", 100, 99, 1;
	tradertype(NST_MARKET);
    .mobp=rand2(1000, 2500);
    .mobg=.mobp*rand2(100, 150)/10;
    .robp=rand2(900, 1200);
    .robg=.robp*rand2(40, 60);//rand2(80, 110);
    .distance=5;
    .sex=G_MALE;

    sellitem Coal,          -1, 50+($FIRESOFSTEAM*3-3);
    sellitem LeatherPatch,  800, 45+($FIRESOFSTEAM*3-3);
    sellitem RawLog,        -1, 40+($FIRESOFSTEAM*3-3);
    sellitem WoodenLog,     -1, 40+($FIRESOFSTEAM*3-3);
    sellitem IronOre,       -1, 30+($FIRESOFSTEAM*3-3);
    sellitem CopperOre,     1000, 20+($FIRESOFSTEAM*2-2);
    sellitem SilverOre,     2000, 14+($FIRESOFSTEAM*2-2);
    sellitem GoldOre,       3000, 14+($FIRESOFSTEAM*2-2);
    sellitem TinOre,        3600, 15+($FIRESOFSTEAM*2-2);
    sellitem LeadOre,       4000, 15+($FIRESOFSTEAM*2-2);
    sellitem TitaniumOre,   6000, 9+($FIRESOFSTEAM*2-2);
    sellitem IridiumOre,    16000, 6+($FIRESOFSTEAM*2-2);
    sellitem PlatinumOre,   24000, 3+($FIRESOFSTEAM*2-2);
    sellitem EarthPowder,   -1, 3+$FIRESOFSTEAM-1;
    sellitem EverburnPowder, 15000, 2+$FIRESOFSTEAM-1;

    sellitem AncientBlueprint,  12500, max(1, 4+$FIRESOFSTEAM/2);
    sellitem RustyKnife,        -1, 5+$FIRESOFSTEAM-1;
    sellitem TrainingWand,      -1, 5+$FIRESOFSTEAM-1;
    sellitem TrainingBow,       -1, 5+$FIRESOFSTEAM-1;

    sellitem AlchemyBlueprintA, -1, 5+$FIRESOFSTEAM-1;
    sellitem AlchemyBlueprintB, -1, 4+$FIRESOFSTEAM-1;
    sellitem AlchemyBlueprintC, -1, 3+$FIRESOFSTEAM-1;
    sellitem AlchemyBlueprintD, -1, 2+$FIRESOFSTEAM-1;
    sellitem AlchemyBlueprintE, -1, max(1, 1+$FIRESOFSTEAM/2);

    sellitem EquipmentBlueprintA, -1, 5+$FIRESOFSTEAM-1;
    sellitem EquipmentBlueprintB, -1, 4+$FIRESOFSTEAM-1;
    sellitem EquipmentBlueprintC, -1, 3+$FIRESOFSTEAM-1;
    sellitem EquipmentBlueprintD, -1, 2+$FIRESOFSTEAM-1;
    sellitem EquipmentBlueprintE, -1, max(1, 1+$FIRESOFSTEAM/2);

    sellitem ArcmageBoxset,     10000, 4+$FIRESOFSTEAM-1;
    sellitem ScholarshipBadge,  -1, 3+$FIRESOFSTEAM-1;
    sellitem Bullet,            4, 90000+($FIRESOFSTEAM*1000-1000);
    sellitem Lifestone,         -1, 500+$FIRESOFSTEAM-1;
    sellitem Bread,             -1, 450+$FIRESOFSTEAM-1;
    sellitem Cheese,            -1, 300+$FIRESOFSTEAM-1;
    sellitem Aquada,            -1, 200+$FIRESOFSTEAM-1;

    sellitem WhiteFur,          -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem Piberries,         -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem CherryCake,        -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem LettuceLeaf,       -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem BugLeg,            -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem RoastedMaggot,     -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem Moss,              -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem AnimalBones,       -1, 1+rand2(40)+$FIRESOFSTEAM;
    sellitem Milk,              -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem Mashmallow,        -1, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem Dragonfruit,       1200, 1+rand2(50)+$FIRESOFSTEAM;
    sellitem Root,              -1, 40+$FIRESOFSTEAM-1;
    sellitem ManaPiouFeathers,  -1, 1+rand2(300)+$FIRESOFSTEAM;

    if (!$BETASERVER && !debug)
        disablenpc .name$;

    if ($BETASERVER &&!$@FOS_MOBDROP) {
        /* This code is overriden by seasons.txt
        addmonsterdrop(Scar, DarkCrystal, 500);
        addmonsterdrop(Crafty, DarkCrystal, 500);
        addmonsterdrop(GiantMutatedBat, DarkCrystal, 550);
        addmonsterdrop(Forain, DarkCrystal, 500);
        addmonsterdrop(GreenDragon, DarkCrystal, 500);
        addmonsterdrop(EliteDuck, DarkCrystal, 550);
        addmonsterdrop(Terranite, DarkCrystal, 500);
        addmonsterdrop(JackO, DarkCrystal, 550);
        addmonsterdrop(RedSkullSlime, DarkCrystal, 500);
        addmonsterdrop(Michel, DarkCrystal, 500);
        addmonsterdrop(CopperSkullSlime, DarkCrystal, 500);
        addmonsterdrop(MonsterGeneral, DarkCrystal, 10000);
        */
        setiteminfo(DarkCrystal, ITEMINFO_SELLPRICE, rand2(150, 250));
        $@FOS_MOBDROP=true;
    }
    end;

OnClock0001:
OnClock0201:
OnClock0401:
OnClock0601:
OnClock0801:
OnClock1001:
OnClock1201:
OnClock1401:
OnClock1601:
OnClock1801:
OnClock2001:
    if ($EVENT$ != "Steam")
        end;
OnClock2201:
    .mobp=rand2(1000, 2500);
    .mobg=.mobp*rand2(100, 150)/10;
    .robp=rand2(900, 1200);
    .robg=.robp*rand2(40, 60);//rand2(80, 110);

    restoreshopitem Coal,           50+($FIRESOFSTEAM*3-3);
    restoreshopitem LeatherPatch, 800, 45+($FIRESOFSTEAM*3-3);
    restoreshopitem RawLog,         40+($FIRESOFSTEAM*3-3);
    restoreshopitem WoodenLog,      40+($FIRESOFSTEAM*3-3);
    restoreshopitem IronOre,        30+($FIRESOFSTEAM*3-3);
    restoreshopitem CopperOre,   1000, 20+($FIRESOFSTEAM*2-2);
    restoreshopitem SilverOre,   2000, 14+($FIRESOFSTEAM*2-2);
    restoreshopitem GoldOre,     3000, 14+($FIRESOFSTEAM*2-2);
    restoreshopitem TinOre,      3600, 15+($FIRESOFSTEAM*2-2);
    restoreshopitem LeadOre,     4000, 15+($FIRESOFSTEAM*2-2);
    restoreshopitem TitaniumOre, 6000, 9+($FIRESOFSTEAM*2-2);
    restoreshopitem IridiumOre,  16000, 6+($FIRESOFSTEAM*2-2);
    restoreshopitem PlatinumOre, 24000, 3+($FIRESOFSTEAM*2-2);
    restoreshopitem EarthPowder, 3+$FIRESOFSTEAM-1;
    restoreshopitem EverburnPowder, 15000, 2+$FIRESOFSTEAM-1;

    restoreshopitem AncientBlueprint, 10000, 4+$FIRESOFSTEAM-1;
    restoreshopitem RustyKnife, 5+$FIRESOFSTEAM-1;
    restoreshopitem TrainingWand, 5+$FIRESOFSTEAM-1;
    restoreshopitem TrainingBow, 5+$FIRESOFSTEAM-1;

    restoreshopitem AlchemyBlueprintA, 5+$FIRESOFSTEAM-1;
    restoreshopitem AlchemyBlueprintB, 4+$FIRESOFSTEAM-1;
    restoreshopitem AlchemyBlueprintC, 3+$FIRESOFSTEAM-1;
    restoreshopitem AlchemyBlueprintD, 2+$FIRESOFSTEAM-1;
    restoreshopitem AlchemyBlueprintE, 1+$FIRESOFSTEAM-1;

    restoreshopitem EquipmentBlueprintA, 5+$FIRESOFSTEAM-1;
    restoreshopitem EquipmentBlueprintB, 4+$FIRESOFSTEAM-1;
    restoreshopitem EquipmentBlueprintC, 3+$FIRESOFSTEAM-1;
    restoreshopitem EquipmentBlueprintD, 2+$FIRESOFSTEAM-1;
    restoreshopitem EquipmentBlueprintE, 1+$FIRESOFSTEAM-1;

    restoreshopitem ArcmageBoxset, 10000, 4+$FIRESOFSTEAM-1;
    restoreshopitem ScholarshipBadge, 3+$FIRESOFSTEAM-1;
    restoreshopitem Lifestone, 800+$FIRESOFSTEAM-1;
    restoreshopitem Bullet, 4, 90000+$FIRESOFSTEAM-1;
    restoreshopitem Bread,  750+$FIRESOFSTEAM-1;
    restoreshopitem Cheese, 400+$FIRESOFSTEAM-1;
    restoreshopitem Aquada, 200+$FIRESOFSTEAM-1;

    restoreshopitem WhiteFur, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem Piberries, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem CherryCake, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem LettuceLeaf, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem BugLeg, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem RoastedMaggot, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem Moss, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem AnimalBones, 1+rand2(40)+$FIRESOFSTEAM;
    restoreshopitem Milk, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem Mashmallow, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem Dragonfruit, 1200, 1+rand2(50)+$FIRESOFSTEAM;
    restoreshopitem Root, 40+$FIRESOFSTEAM;
    restoreshopitem ManaPiouFeathers, 1+rand2(300)+$FIRESOFSTEAM;
    end;

OnMinute02:
    if ($EVENT$ != "Steam") end;
    donpcevent "Neko::OnClock2359";
    end;
}


003-0-2,34,21,0	script	Alliance Officer	NPC_HALBERDBARBARIAN,{
    mesn;
    mesq l("Good %s, %s. The council is not in session right now.",
          (is_night() ? l("evening") : l("morning")),
          (strcharinfo(0) == $MOST_HEROIC$ ? lg("hero") : lg("peasant")));
    if (($BETASERVER || debug) && BaseLevel < 60 && !#BETA_REVIVE) goto L_PowerUp;
    close;

L_PowerUp:
    next;
    mesn strcharinfo(0);
    mesq l("Could you awake my lost and forsaken potential?");
    next;
    mesn;
    mesq l("Yes. I can. But this is irreversible. Are you sure you want this?");
    next;
    mesc l("Awake lost potential? This will mess with your char data irreversibly, beware."), 1;
    if (askyesno() == ASK_NO) close;
    inventoryplace Iten, 1, NPCEyes, 4;

    // Chose a stage (NO TTL)
    mesc l("Please select where you left off on Main Quest.");
    mesc l("The one with a star (*) is advised.");
    mesc l("It is NOT advised for new players to skip parts of the Main Quest.");
    mesc l("Skipping will FORSAKE rewards for the quest and related; So choose wisely!");
    mes "";
    menuint
        "Nard Quest finished", 1,
        "Lua Quest finished", 3,
        "Airlia Quest finished", 6,
        "Librarian Quest finished", 10,
        "Blue Sage Quest finished", 12,
        "(*) King Gelid Quest complete", 17,
        "Lightbringer/Barbara finished", 19;
    mes "";
    // Save stage
    .@mq = @menuret;

    // IP Blacklist
    if (array_find($@IPBLIST$, getcharip()) < 0)
        array_push($@IPBLIST$, getcharip());

    // Level up
    freeloop(true);
    while (BaseLevel < 60)
        getexp NextBaseExp, 100;
    freeloop(false);

    // Skip a few quests
    setq ShipQuests_Arpan, 5;
    if (.@mq > 10)
        setq NivalisQuest_BlueSage, 12;
    if (.@mq >= 17) {
        sk_lvup(AM_REST);
        sk_lvup(AM_RESURRECTHOMUN);
        sk_lvup(AM_CALLHOMUN);
    }
    if (.@mq >= 18) {
        BARBARA_STATE=any(1, 2, 3);
    }

    // Update main quest
    if (getq(General_Narrator) < .@mq)
        setq General_Narrator, .@mq;

    // Monster points
    MPQUEST=true;
    if (!Mobpt)
        Mobpt+=100000;

    // Magic Power
    adddefaultskills();
    if (!MAGIC_LVL) {
        sk_lvup(AL_DP);
        MAGIC_LVL=1;
    }

    // Crafting
    if (!CRAFTQUEST) {
        sk_lvup(TMW2_CRAFT);
        getitembound RecipeBook, 1, 4;
        CRAFTQUEST=true;
    }

    // Free skills
    sk_lvup(TMW2_MANABOMB);
    sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, TMW2_FALKONSTRIKE, TMW2_CHARGEDARROW));

    // Pure awesomeness
    getitembound any(StrengthFruit, AgilityFruit, VitalityFruit, IntelligenceFruit, DexterityFruit, LuckFruit), 1, 4;
    getitembound any(StrengthFruit, AgilityFruit, VitalityFruit, IntelligenceFruit, DexterityFruit, LuckFruit), 1, 4;

    // Full power
    getitembound Wurtzite, 6, 4;
    getitembound Bread, 10, 4;

    // Regeneration and misc
    getitem StrangeCoin, 100;
    Zeny+=50000;
    percentheal 100,100;
    mesc l("You awake a long forgotten potential, and feel ready to take over the world.");
    #BETA_REVIVE=true;
    close;

OnInit:
    .distance=4;
    /*
    if (!$BETASERVER && !debug)
        disablenpc .name$;
    */
    end;
}