summaryrefslogblamecommitdiff
path: root/npc/functions/news.txt
blob: 7f7152d412717d5e1e1750e801eed3423abe2d6f (plain) (tree)
1
2
3
4
5
6
7
8
9






                                         

                         




















































                                                                                                                           










                                                                                                                           



              
                                                                       
           

                                                                                                               
         


           

                                         
 
                               
                                                                                 

                                                    
                                                                         




                                                                                        
























                                                                                           
                                      










                                                                                 
                                     










                                                                                                                               






















                                                                                  
                                                             

                                                                                     


                                                                      
                                                        








                                                                                 


                                                       
                                                                    
                                                     

                                                               
                                                       
                                                                                 


                                                  


                                                                                                                  
               

                                                                                                                                                



                                                                                 


                                                              

                                                                                                                  
               


                                                                                                     



                                                                                 












                                                                                  



                                                                           
                                                              
               
                                                                                 

                                                                                 

                                                            
                                                                                 











           

                                         
                                                                                           
                                                                                                                                            
                                                                                
                                                                                                                           
                                                                                                                         
                                                                                                                              


                                                                                                  

                               
                        

                                                                                                     

     



                                                            
 















                                                                                                               








                                                                                                                     












                                                                                                                                          
                  

                                                                                               
                                                                                                                               
                                                                                                          
                                                                                          



                                                                        
                  


                                                     
                
                                                                                                                                    
     
         
 
        
               

                                          
                               
                                                               






                                                                
               

                               

                          
                            





                        
// TMW-2 script.
// Authors:
//    Jesusalva
// Description:
//    Server news.

function	script	GameNews	{
    .@entry=getarg(0, 0);
    switch(.@entry) {
    case 99:
        mes "";
        mes ".:: "+ l("Prologue") + " ::.";
        next;
        mesc l("[@@https://wiki.moubootaurlegends.org/Storyline|Read the History@@]");
        next;
        break;
    //////////////////////////////////////////////////////////////////
    case 100:
        mes "";
        mes ".:: "+ l("The First Act") + " ::.";
        next;
        mesc l("The Monster King Army is occupying several towns! Brave players need to group and retake them!");
        next;
        break;
    //////////////////////////////////////////////////////////////////
    case 101:
        mes "";
        mes ".:: "+ l("The Second Act") + " ::.";
        next;
        mesc l("The Monster King Army left the cities! What will happen next? Anxiety grows!");
        next;
        break;
    //////////////////////////////////////////////////////////////////
    case 102:
        mes "";
        mes ".:: "+ l("The Third Act") + " ::.";
        next;
        mesc l("The Monster King Army is making siege at towns randomly!");
        mesc l("The Army seems to walk away after some time.");
        mesc l("We must defeat the commanders to avoid major damage to them!");
        next;
        break;
    //////////////////////////////////////////////////////////////////
    case 103:
        mes "";
        mes ".:: "+ l("The Fourth Act") + " ::.";
        next;
        mesc l("The Monster Army is in complete disarray, sieges are much less frequent.");
        mesc l("The mist over the Impregnable Fortress Peak finally lowered down, and it seems... The peaks are no more!");
        mesc l("The Monster King Lair is not in a impregnable mountain, but in a small island now!!");
        mesc l("Will adventurers reach it? Will the random attacks at towns cease??");
        next;
        break;
    //////////////////////////////////////////////////////////////////
    case 104:
        mes "";
        mes ".:: "+ l("The Fifth Act") + " ::.";
        next;
        mesc l("We must defeat the Monster King on his evil lair!");
        mesc l("Only then we may have peace!!");
        next;
        break;
    //////////////////////////////////////////////////////////////////
    case 105:
        mes "";
        mes ".:: "+ l("The Final Act") + " ::.";
        next;
        mesc l("The Moubootaur is the final opponent.");
        mesc l("How many lives will be claimed until he is put to rest?");
        next;
        mesc l("According to the prophecy, he'll not stop, until life itself as we know today is removed from existence.");
        next;
        break;
    default:
        break;
    }

    mesc l("We want to thank everyone who did this release possible.");
    mes "";
    mesc l("Shall you have any inquiry, do not hesit to [@@mailto:admin@tmw2.org|send us an email@@]##b.");
    mesc l("You can also read the [@@news|server news@@], or even [@@https://tmw2.org/news|older entries@@].");
    next;
    return;
}

function	script	EventHelp	{
    if ($EVENT$ == "") return;

    if ($EVENT$ == "Kamelot") {
        /////////////////////////////////////////////////////////////////////////
        mesc ".:: " + l("Kamelot Raid") + " ::.", 2;
        mes "";
        mes l("Group together your guild and challenge the evil power,");
        mes l("which creeps over Kamelot! During this event, the ancient");
        mes l("evil will return every day to curse King Arthur the Micksha.");
        mes "";
        mes l("Is your guild strong enough to give Arthur at least good nights sleep?");
        mesc l("Location: Kamelot Castle, west of Hurnscald."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Valentine") {
        mesc ".:: " + l("Valentine Day") + " ::.", 2;
        mes "";
        mes l("It is time to send %s to your beloved ones!", getitemlink(BoxOfChocolates));
        mes l("Touch Soul Menhir and visit the Valentine's Island.");
        mes l("Collect chocolate and love letters from the fluffies");
        mes l("and have Demure to send them to those you admire!");
        mes l("Don't forget to collect and eat any chocolate sent to you, too!");
        mes "";
        mes l("Witness, the power of love!");
        mesc l("Location: Valentine Island, access by Soul Menhir."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Easter") {
        mesc ".:: " + l("Easter") + " ::.", 2;
        mes "";
        mes l("The Enchanted Forest is now open to visitors!");
        mes l("Collect easter eggs, and exchange them with Lilica!");
        mes "";
        mes l("Compete for the first place, and remember to exchange silver");
        mes l("easter eggs for more useful things!");
        mes "";
        mes l("Who will collect the most?!");
        mesc l("Location: Enchanted Forest, access by Soul Menhir."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Patrick") {
        mesc ".:: " + l("St. Patrick Day") + " ::.", 2;
        mes "";
        mes l("A golden pot in woodlands shall reward those who wear green.");
        mes l("Find it, spin it, and be bestowed in golden rewards!");
        mes "";
        mes l("Meanwhile, at 00h, 06h, 12h, 15h, 18h and 21h UTC,");
        mes l("legendary clovers will spawn almost everywhere.");
        mes "";
        mes l("Feeling lucky?");
        mesc l("Location: North Woodlands, south of Nivalis."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Worker") {
        mesc ".:: " + l("Worker Day") + " ::.", 2;
        mes "";
        mes l("The International Worker Day is a traditional celebration,");
        mes l("focused on lower level players, and to cherish those whom work hard everyday.");
        mes "";
        mes l("Visit the special event map, kill low level bosses, collect %s,", getitemlink(Pearl));
        mes l("exchange them, and have fun!");
        mes "";
        mes l("Happy %s!", "@@https://en.wikipedia.org/wiki/International_Workers%27_Day|"+l("international worker day")+"@@");
        mesc l("Location: Worker's Cave, access by Soul Menhir."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Thanksgiving") {
        mesc ".:: " + l("Thanksgiving") + " ::.", 2;
        mes "";
        mes l("It has been a great year, and the TMW2 Team would like to");
        mes l("give everyone gifts for spending so much time with us %%l");
        mes "";
        mes l("Every day you login, you'll be able to spin a card.");
        mes l("the card will determine your gift - the more cards you spin,");
        mes l("the better your chances to get the best cards.");
        mes "";
        mes l("So long, and thanks for all the fish!");
        mesc l("Location: Daily Login."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Christmas") {
        mesc ".:: " + l("Christmas") + " ::.", 2;
        mes "";
        mes l("By far, the most important holiday on Moubootaur Legends.");
        mes l("Visit the Christmas Workshop, and talk to the chief in charge.");
        mes "";
        mes l("Seems like they're having difficulty handling the demand, and");
        mes l("need help to send gifts to everyone! Compete for scoreboards,");
        mes l("but remember: Rewards will also be based on everyone's progress!");
        mes "";
        mes l("Merry Christmas, and a happy new year! \\o/");
        mesc l("Location: Christmas Workshop, Romantic Field, south of Nivalis."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Anniversary") {
        mesc ".:: " + l("Moubootaur Legends Anniversary") + " ::.", 2;
        mes "";
        mes l("Moubootaur Legends just got older! %%N");
        mes l("Base Experience Rate is now %d%%.", $BCONFB_EXPR);
        mes "";
        mes l("Also known as TMW2 Day, it celebrates the server founding,");
        mes l("in March 2nd 2018.");
        mes l("New chars, and reborn chars, will also begin at level 10.");
        mes "";
        mes l("Invite your friends, and become a Moubootaur Legend!");
        mesc l("Location: N/A"), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Regnum") {
        mesc ".:: " + l("Regnum Blessing") + " ::.", 2;
        mes "";
        mes l("The Regnum Blessing causes all monsters in an area");
        mes l("to give %s experience!", l("triple"));
        mes "";
        mes l("Farm there and get the best experience value!");
        mesc l("Location: %s", $REGNUM_BLESSMAP_H$), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Expo") {
        mesc ".:: " + l("World Expo") + " ::.", 2;
        mes "";
        mes l("A few times during the year, an independent team organizes a world exposition of special relics.");
        mes l("However, %s stole the treasures which were being showcased!", $WORLDEXPO_ENEMY$);
        mes l("Collect the treasured crystals from treasure chests!");
        mes "";
        mes l("While %s's reasons to do so remain unclear, a request was made.", $WORLDEXPO_ENEMY$);
        mes l("Aurora will collect the crystals; And adventurers from the whole world shall look for them in the chests and return to Aurora!");
        mes "";
        mes l("This exposition has to be a success!");
        mesc l("Location: Treasure Chests, hidden inside dungeons."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Fishing") {
        mesc ".:: " + l("Catch the Golden Fish!") + " ::.", 2;
        mes "";
        mes l("A few times during the year, the \"golden wave\" migrates from the north pole to the south pole.");
        mes l("As a result, while fishing you may randomly get a golden fish.");
        mes "";
        mes l("These gold fishes multiply horribly and have no natural predator.");
        mes l("If left unchecked for long, they will eventually become the only specie on the sea.");
        mes l("Help controlling their population, and return those you fish to Aurora!");
        mes "";
        mes l("Catch the golden fish swarm!");
        mesc l("Location: Fishing spots in the water."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Mining") {
        mesc ".:: " + l("Miners Union Research Request!") + " ::.", 2;
        mes "";
        mes l("While mining bifs, a strange powder appeared.");
        mes l("The effects and uses - if any - are still unknown.");
        mes "";
        mes l("The Miners Union is trying to research this powder.");
        mes l("A reward is promised to those whom cooperate.");
        mes l("Collaborate by giving this powder to Aurora, before it vanishes!");
        mes "";
        mes l("Mysterious Powder expires after some time!");
        mesc l("Location: All bifs in the world."), 3;
        /////////////////////////////////////////////////////////////////////////
    } else if ($EVENT$ == "Candor") {
        mesc ".:: " + l("Candor Battle Season") + " ::.", 2;
        mes "";
        mes l("During this season, challenges to Crazyfefe will be free.");
        mes l("Special battle modes will also be available.");
        mes "";
        mes l("Will you accept his challenge?! Raise to the highest top score!");
        mesc l("Location: Candor B1F"), 3;
        /////////////////////////////////////////////////////////////////////////
    } else {
        mesc l("There's no help available for this event.");
        /////////////////////////////////////////////////////////////////////////
    }
    next;
    return;
}








function	script	Journalman	{
    npctalk3 any(
        l("Halinarzo Church makes a party every Sunday! Only true believers are invited!"),
        l("Beware the Terranite! Only @@ would be brave enough to challenge them!", ($MOST_HEROIC$ == "" ? "Andrei Sakar" : $MOST_HEROIC$)),
        l("Terrible manaquake hits the whole world, causing dramatic changes!"),
        l("Green Wars project says that @@ trees were planted by adventurers on the world!", format_number($TREE_PLANTED)),
        l("The Team For A Better PvP says that @@ players were killed in fair matches!", format_number($PLAYERS_KILLED)),
        l("The Alliance says that @@ monsters have been slain by players since 2019-05-24!", format_number($MONSTERS_KILLED)),
        l("All hail @@ and Andrei Sakar, heroes of the world!", $MOST_HEROIC$));
    mesn getarg(0);
    mesq l("Bonjour! I am @@, and I am from the Press! Read the latest news with me!", getarg(0));
    mes "";
    // Report any ongoing event
    if ($EVENT$ != "") {
        mesc l("It's @@ (day)!", $EVENT$);
        mesc l("Try talking to Soul Menhir or with any NPC on Tulimshar Centre (near Soul Menhir).");
    }

    if ($@GM_EVENT)
        mesc l("An event is happening at Aeros! Hurry up!");
    else if ($@MK_SCENE)
        mesc l("The Monster King is on the move!");

    switch (season()) {
        case SPRING:
            mesc l("It's spring! Two lovely NPCs at woodlands can be found...");
            break;
        case WINTER:
            mesc l("It's winter! An NPC in Nivalis Town is freezing...");
            break;
        case SUMMER:
            mesc l("It's summer! Ched is having his usual contest, but Luffyx in Hurnscald is up to no good!");
            break;
        case AUTUMN:
            mesc l("It's autumn! There is no special event during autumn, only special drops.");
            break;
        default:
            Exception(l("Invalid season: @@", season()), RB_DEFAULT|RB_SPEECH); break;
    }
    mes "";
    switch ($GAME_STORYLINE) {
        case 0:
            mesc l("The Monster King Army is occupying several towns! Brave players need to group and retake them!");
            break;
        case 1:
            mesc l("The Monster King Army left the cities! What will happen next? Anxiety grows!");
            break;
        case 2:
            .@def=100-(($MK_TEMPVAR+rand2(-1,1))/5);
            if ($@MK_AGGRO >= 300)
                .@st$=col(b(l("very mad")), 1);
            else if ($@MK_AGGRO >= 200)
                .@st$=col(b(l("very angry")), 6);
            else if ($@MK_AGGRO >= 100)
                .@st$=col(b(l("furious")), 7);
            if ($@MK_AGGRO >= 50)
                .@st$=col(b(l("angry")), 4);
            else
                .@st$=col(b(l("discontent")), 9);
            mesc l("The Monster King Army is attacking towns at random, but players already reduced their organization to @@ %%!", .@def);
            mesc l("With recent player activity, the Monster king is @@!", .@st$);
            break;
        case 3:
            mesc l("The Monster Army is in complete disarray, sieges are much less frequent.");
            mesc l("The mist over the Impregnable Fortress Peak finally lowered down, and it seems... The peaks are no more!");
            mesc l("The Monster King Lair is not in a impregnable mountain, but in a small island now!!");
            mesc l("Will adventurers reach it? Will the random attacks at towns cease??");
            break;
        case 4:
            mesc l("We must defeat the Monster King on his evil lair!");
            mesc l("Only then we may have peace!!");
            break;
        case 5:
            mesc l("Moubootaur, please spare me...");
            break;
        default:
            Exception(l("I do now know what this means: GS-@@-ICXN-@@", $GAME_STORYLINE, $MK_TEMPVAR), RB_DEFAULT|RB_SPEECH); break;
    }
    next;

    do {
        mes "";
        menuint
            l("Thanks for your help!"), 1,
            l("Event News"), 0,
            rif($GAME_STORYLINE >= 5, l("The Final Act")), 105,
            rif($GAME_STORYLINE >= 4, l("The Fifth Act")), 104,
            rif($GAME_STORYLINE >= 3, l("The Fourth Act")), 103,
            rif($GAME_STORYLINE >= 2, l("The Third Act")), 102,
            rif($GAME_STORYLINE >= 1, l("The Second Act")), 101,
            rif($GAME_STORYLINE >= 0, l("The First Act")), 100,
            l("Prologue"), 99,
            l("Eh, I have to go."), 1;
        mes "";
        if (@menuret > 1)
            GameNews(@menuret);
        if (@menuret == 0)
            EventHelp();
    } while (@menuret != 1);

    mesn getarg(0);
    mesq l("Good bye!");
    close;
    return;
}