diff options
-rw-r--r-- | npc/029-0/elora.txt | 6 | ||||
-rw-r--r-- | npc/functions/news.txt | 77 |
2 files changed, 72 insertions, 11 deletions
diff --git a/npc/029-0/elora.txt b/npc/029-0/elora.txt index 3ca707244..c8caa21a9 100644 --- a/npc/029-0/elora.txt +++ b/npc/029-0/elora.txt @@ -41,10 +41,14 @@ case 8: mesn; mesq l("Sakar can now bring you directly to Asphodel Moors. Scouts found a second town as well, from where the raiders seems to be coming from!"); + mesc l("Andrei Sakar is at the north exit of the town."); break; case 9: mesn; - mesq l("Contact a GM at Migglemire - the small town at center of swamps - to trigger the final showdown."); + mesq l("I'm worried. Will everything be alright? Please, lend your help to sir Sakar - no, to the whole world!"); + mes ""; + mesc l("Contact a GM at Migglemire - the small town at center of swamps - to trigger the final showdown."); + mesc l("Alternatively, %s, the World Hero, should also be able to do it.", $MOST_HEROIC$); break; } close; diff --git a/npc/functions/news.txt b/npc/functions/news.txt index 877dc323c..1c342bcb9 100644 --- a/npc/functions/news.txt +++ b/npc/functions/news.txt @@ -19,7 +19,13 @@ function script GameNews { 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!"); + mesc b(l("The Monster King Army has occupied several towns!")); + mesc l("The Monster King has managed to take hold of Nivalis and Hurnscald; Travel to Frostia and Halinarzo has also been made difficult."); + next; + mesc l("With Tulimshar being the last major human settlement standing (besides distant locations like Candor), the situation looks more dire than ever."); + mesc l("Brave players need to group and retake them!"); + mesc l("Stay tuned for announcements regarding raid times to retake the towns."); + mesc l("This event is unique, and cannot be repeated."), 1; next; break; ////////////////////////////////////////////////////////////////// @@ -27,7 +33,11 @@ function script GameNews { mes ""; mes ".:: "+ l("The Second Act") + " ::."; next; - mesc l("The Monster King Army left the cities! What will happen next? Anxiety grows!"); + mesc b(l("The Monster King Army left the cities! What will happen next? Anxiety grows!")); + mesc l("After being successful is recovering Hurnscald and Nivalis from the Monster Army, they seem to have withdrawn."); + next; + mesc l("This certainly is just to reorganize their armies. We must take this chance to improve ourselves, or else, we'll be overrun soon enough."); + mesc l("Brave adventurers, be ready for the worst!"); next; break; ////////////////////////////////////////////////////////////////// @@ -35,9 +45,12 @@ function script GameNews { 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!"); + mesc b(l("The Monster King Army is making siege at towns randomly!")); + mesc l("The Monster King is sending their armies to attack towns with a seemingly random pattern."); + mesc l("However, the Army seems to walk away after some time."); + next; + mesc l("The reason why they are not occupying the towns like before is still unknown."); + mesc l("However, we must defeat the commanders to avoid major damage to them!"); next; break; ////////////////////////////////////////////////////////////////// @@ -45,10 +58,33 @@ function script GameNews { mes ""; mes ".:: "+ l("The Fourth Act") + " ::."; next; - mesc l("The Monster Army is in complete disarray, sieges are much less frequent."); + mesc b(l("The Strike Back Is Upon Us!")); + mesc l("The Monster Army appears to be in complete disarray, sieges are much less frequent."); + next; 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!!"); + next; mesc l("Will adventurers reach it? Will the random attacks at towns cease??"); + mesc l("The world hero %s and the High Council Officers will announce the times to raid the Fortress.", $MOST_HEROIC$); + mesc l("Pay attention to #world chat, as this event is managed by players. The Monster Army is also trying to regroup, neglecting it is not advised."), 1; + next; + break; + ////////////////////////////////////////////////////////////////// + case 1031: + mes ""; + mes ".:: "+ l("Interlude") + " ::."; + next; + mesc b(l("Andrei Sakar Calls for Heroes!")); + mesc l("Andrei Sakar, world renowned hero, is assembling a group of adventurers for an important mission!"); + next; + mesc l("For a long time, towns on the distant continent of Kolev have been supporting humans here."); + mesc l("They had a critical role in ensuring the human's race survival to The Great Fire."); + next; + mesc l("However, for a few months already, nothing else has been heard from that town, and all contact was lost."); + mesc l("Andrei Sakar is decided to investigate, and has made arrangements with %s.", b(l("Nard"))); + next; + mesc l("If you are a brave hero or adventurer, Andrei, his lieutenant Elora and the Alliance will be waiting for you on %s!", b(l("Artis"))); + mesc l("You need to reach a certain point in Player Story in order to partake on this event. Non-repeatable."), 1; next; break; ////////////////////////////////////////////////////////////////// @@ -56,6 +92,9 @@ function script GameNews { mes ""; mes ".:: "+ l("The Fifth Act") + " ::."; next; + mesc l("With the brave sacrifice of Andrei Sakar to save our world, our future seems as bleak than ever."); + mesc l("There is no other solution; A desperate struggle is needed..."); + next; mesc l("We must defeat the Monster King on his evil lair!"); mesc l("Only then we may have peace!!"); next; @@ -65,6 +104,8 @@ function script GameNews { mes ""; mes ".:: "+ l("The Final Act") + " ::."; next; + // The Final Act has not been finished + // So this part is a bit weaker than others mesc l("The Moubootaur is the final opponent."); mesc l("How many lives will be claimed until he is put to rest?"); next; @@ -257,28 +298,33 @@ function script EventHelp { function script Journalman { + /* Random Fun Fact */ 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("Effects from The Great Fire are still felt by the people."), 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("The Alliance says that @@ monsters have been slain since Hurnscald Siege!", 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 + + /* Permanent/Weekly Events */ 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)."); + mesc l("Try talking to Soul Menhir or with any NPC on Tulimshar Center (near Soul Menhir)."); } + /* Short-Timed Events */ 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!"); + /* Seasonal Events */ switch (season()) { case SPRING: mesc l("It's spring! Two lovely NPCs at woodlands can be found..."); @@ -295,6 +341,8 @@ function script Journalman { default: Exception(l("Invalid season: @@", season()), RB_DEFAULT|RB_SPEECH); break; } + + /* Main Storyline */ mes ""; switch ($GAME_STORYLINE) { case 0: @@ -320,7 +368,6 @@ function script Journalman { 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; @@ -334,6 +381,15 @@ function script Journalman { default: Exception(l("I do now know what this means: GS-@@-ICXN-@@", $GAME_STORYLINE, $MK_TEMPVAR), RB_DEFAULT|RB_SPEECH); break; } + + /* Fires of Steam */ + if ($FIRESOFSTEAM) { + mes ""; + if ($$FIRESOFSTEAM >= 10) + mesc l("We'll never forget Andrei Sakar, the most courageous hero this world has ever had."); + else + mesc l("Andrei Sakar calls for all the brave in the town of Artis - Kolev!"); + } next; do { @@ -343,6 +399,7 @@ function script Journalman { l("Event News"), 0, rif($GAME_STORYLINE >= 5, l("The Final Act")), 105, rif($GAME_STORYLINE >= 4, l("The Fifth Act")), 104, + rif($FIRESOFSTEAM, l("Interlude - Fourth Act")), 1031, 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, |