diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/019-2 | |
download | serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2 serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip |
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/019-2')
-rw-r--r-- | npc/019-2/_import.txt | 9 | ||||
-rw-r--r-- | npc/019-2/_mobs.txt | 8 | ||||
-rw-r--r-- | npc/019-2/_warps.txt | 4 | ||||
-rw-r--r-- | npc/019-2/angela.txt | 141 | ||||
-rw-r--r-- | npc/019-2/guards.txt | 165 | ||||
-rw-r--r-- | npc/019-2/harry.txt | 15 | ||||
-rw-r--r-- | npc/019-2/ship.txt | 18 | ||||
-rw-r--r-- | npc/019-2/sign.txt | 23 |
8 files changed, 383 insertions, 0 deletions
diff --git a/npc/019-2/_import.txt b/npc/019-2/_import.txt new file mode 100644 index 0000000..a9e9c04 --- /dev/null +++ b/npc/019-2/_import.txt @@ -0,0 +1,9 @@ +// Map 019-2: Nivalis Port +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/019-2/_mobs.txt", +"npc/019-2/_warps.txt", +"npc/019-2/angela.txt", +"npc/019-2/guards.txt", +"npc/019-2/harry.txt", +"npc/019-2/ship.txt", +"npc/019-2/sign.txt", diff --git a/npc/019-2/_mobs.txt b/npc/019-2/_mobs.txt new file mode 100644 index 0000000..061fe05 --- /dev/null +++ b/npc/019-2/_mobs.txt @@ -0,0 +1,8 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 019-2: Nivalis Port mobs +019-2,60,59,5,2 monster White Slime 1094,2,90000,30000 +019-2,73,53,42,36 monster Fluffy 1022,10,60000,30000 +019-2,97,72,8,37 monster Wind Fairy 1185,1,75000,30000 +019-2,70,104,36,21 monster Iced Fluffy 1041,7,60000,30000 +019-2,72,41,31,26 monster Pollet 1219,4,120000,30000 +019-2,75,35,7,7 monster White Slime 1094,2,90000,30000 diff --git a/npc/019-2/_warps.txt b/npc/019-2/_warps.txt new file mode 100644 index 0000000..85925ec --- /dev/null +++ b/npc/019-2/_warps.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 019-2: Nivalis Port warps +019-2,37,55,0 warp #019-2_37_55 0,0,020-1,106,55 +019-2,76,24,0 warp #019-2_76_24 0,0,021-1,212,299 diff --git a/npc/019-2/angela.txt b/npc/019-2/angela.txt new file mode 100644 index 0000000..0455bda --- /dev/null +++ b/npc/019-2/angela.txt @@ -0,0 +1,141 @@ +// TMW2 scripts. +// Authors: +// The Mana World Team +// Jesusalva +// Description: +// Elf, main quest is rescuing Cindy (she's kidnapped by Yetis every once in a while) +// Once you complete her quest (requires some scheduling which the Yeti King provides), +// you'll gain some needed Reputation Points to be able to cross Frostia Gates. +// Note this is counted with other Frostia quests to reduce the toll of entering Frostia +// (With high Frostia reputations, you get rid of the tax and high honors, but this +// also raise/blocks Orc Village Entrance. Because if you haven't noticed, there's a +// delicate equilibrium between Elves and Orcs.) +// +// Globally Controled Quest. Sometimes, she's here. Other times, this NPC is +// disabled and the one inside the house is active. That's done with a walk +// animation. +// +// Related Quests: Nivalis Well, Celestia Quest, Frostia Quest +// Main Quest: Cindy Quest +// Reward: Something awesome, probably. +// Advised Level: Groups of level 80 players. +// +// Quest Variable: NivalisQuest_Cindy +// 0: Quest Not Started +// 1: Angela assigned the quest +// 2: Yeti instructions were received +// 3: Yeti quest complete, received instructions +// 4: Checkpoint +// 5: Cindy was rescued! +// +// Global Variable: $@CINDY_STATE +// 0: Status is clean (she'll be kidnapped next interation) +// %1: Cindy still wasn't rescued +// %2: A party is fighting currently (the division value is the difficulty level, and affects minimum level) +// >1500000000: Cindy is safely at home (until this date +%s) + +019-2,75,25,0 script Angela#Outside NPC_ELF_F,{ + if ($@CINDY_STATE > gettimetick(2)) + goto L_Safe; + if (BaseLevel < 60) { hello; end; } + if ($@CINDY_STATE % 2 == 1) goto L_Worried; + if (getq(NivalisQuest_Cindy) == 0) goto L_Start; + mesn; + mesq l("Please find my lovely daughter!"); + if (getq(NivalisQuest_Cindy) == 1 && getq(NivalisQuest_Well) < 2 && @yetiagro) { + next; + select + l("I will, don't worry."), + l("She isn't on that cave."); + mes ""; + if (@menu == 2) { + mesn; + mesq l("Do you have mental issues? I mean, of course there is a secret passage there!"); + next; + mesn; + mesq l("I think the switches may open it, but I couldn't flip them."); + next; + mesn; + mesq l("I guess you'll need an Yeti for that, but those on the cave are murderous."); + CINDY_PLAYER_STRUCK=true; + next; + mesn; + mesq l("Besides, I'm not an Yeti expert. I don't understand how these creatures think, nor do I care! I only want Cindy back home safely!!"); + if (TUTORIAL) + mesc l("Don't we know any Yeti specialist? Maybe Celestia?"); + } + } + close; + +L_Safe: + mesn; + mesq l("Ah, what a wonderful day."); + close; + +L_Worried: + mesn; + mesq l("The group of warriors which went into the cave to rescue my precious Cindy still haven't returned... I'm worried with them, too..."); + close; + +L_Start: + mesn; + mesq l("My daughter! My precious Cindy, why it had to be you?!"); + next; + mesn; + mesq l("Please, help my precious! Save her! Oh, my precious Cindy..."); + next; + mesn col(l("Rescuing Cindy Quest"),1); + mesc l("You are about to accept a high-risk quest. You cannot complete it alone."), 1; + mesc l("Help the distressed woman to save her daughter? ALL PLAYERS are penalized with failures."), 1; + select + l("[Decline Quest]"), + l("[Accept Quest]"); + mes ""; + if (@menu == 1) { + mesn strcharinfo(0); + mesq lg("Sorry 'mam, I forgot courage on my other set of pants. This one doesn't have enough defense for it."); + close; + } + mesn; + mesq l("Awful Yetis kidnapped my daughter, and brought her to the cave. Please save her!"); + next; + mesn; + mesq l("Ah, but don't distress them if you can't save her! My precious daughter life is more important than anything!"); + next; + mesn; + mesq l("I'll reward you and your friends in an appropriate way, but if you endanger her... Oh, my poor Cindy..."); + next; + movecam rand(-20,20), rand(-20,20); + sleep2(80); + movecam rand(-20,20), rand(-20,20); + sleep2(80); + movecam rand(-20,20), rand(-20,20); + sleep2(80); + movecam rand(-20,20), rand(-20,20); + sleep2(80); + restorecam; + mes ""; + mesc l("[Quest Accepted]"), 1; + mesc l("Rescue Cindy from the Ice Labyrinth and the evil Yetis. This is a global, multiplayer quest."), 1; + mesc l("Advised party size: From 3 and above"); + channelmes("#world", strcharinfo(0) + " said to be brave enough to help Angela rescuing her daughter!"); + setq NivalisQuest_Cindy, 1; + close; + + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, KnitHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, TneckSweater); + setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); + setunitdata(.@npcId, UDT_WEAPON, CottonSkirt); + setunitdata(.@npcId, UDT_HAIRSTYLE, any(7,8,9,10,11,12,13,19,20)); + setunitdata(.@npcId, UDT_HAIRCOLOR, rand(0,20)); + + .sex = G_FEMALE; + .distance = 5; + end; +} + + + diff --git a/npc/019-2/guards.txt b/npc/019-2/guards.txt new file mode 100644 index 0000000..3f7e350 --- /dev/null +++ b/npc/019-2/guards.txt @@ -0,0 +1,165 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// Protect Nivalis +// Q_NivalisLibday +// Day, Score, Temporary Time; + +019-2,44,54,0 script Guard#019-2.1 NPC_GUARD1,{ + .@q=getq(Q_NivalisLibday); + + if ($NIVALIS_LIBDATE) { + mesn; + mesq l("Nivalis was liberated @@ ago.", FuzzyTime($NIVALIS_LIBDATE)); + close; + } else if ($NLIB_DAY > 0) { + if ($NLIB_DAY >= 7) goto L_MK; + if (.@q == $NLIB_DAY) goto L_Delay; + if (BaseLevel < 30) goto L_Noob; + if (BaseLevel >= 30) goto L_Veteran; + close; + } else if (is_admin()) { // NOTE: This is an override label + mesc "Initiate Nivalis Liberation Day?", 1; + mesc "Event will last 7 days.", 1; + if ($NLIB_SEQDAY) + mesc "The event is currently set to happen in "+($NLIB_SEQDAY-gettimeparam(GETTIME_DAYOFMONTH))+" days."; + else + mesc b("Liberation Day is NOT scheduled to happen."), 1; + select + "Not yet.", + "Yes", + "No"; + if (@menu == 2) { + closeclientdialog; + goto OnNLibStart; + } + close; + } else { + legiontalk; end; + } + end; + +OnNLibStart: + addmapmask "019-3", MASK_MATTACK; + $NLIB_DAY=1; + $NLIB_HIGHTIME=0; + $NLIB_HIGHNAME$=""; + setmapflagnosave("019-3", "000-1", 22, 22); + setmapflagnosave("020-1", "000-1", 22, 22); + setmapflagnosave("023-2", "000-1", 22, 22); + setmapflag("019-3",mf_bexp,25); + setmapflag("020-1",mf_bexp,150); + disablenpc "#019-1_70_21"; + disablenpc "#019-2_37_55"; + disablenpc "#020-1_70_128"; + disablenpc "#020-1_107_55"; + enablenpc "Lightbringer#NLib"; + kamibroadcast("Nivalis Liberation Day has started."); + $NLIB_SEQDAY=false; + end; + +// Event Selectors +L_Noob: + mesn; + mesq l("Hey, you! We need help to get rid from some remaining monsters at Nivalis City."); + mesq l("No need to kill the Fluffies, though."); + next; + mesn; + mesq l("Are you up for the challenge?"); + if (askyesno() == ASK_YES) { + // Begin quest. Logout/Death will cause loss of the current day. + setq1 Q_NivalisLibday, $NLIB_DAY; + @nlib_wave=0; + @nlib_time=300; // This makes sure that wave 1 will start. + addtimer(5000, "#NLib_Siege::OnLoop"); + warp "020-1", rand(69,82), rand(78, 91); + } + close; + +L_Veteran: + mesn; + mesq l("Hey, you! We need help to find the Monster King."); + next; + mesn; + mesq l("Could you head deep in the woods and track him down?"); + if (askyesno() == ASK_YES) { + // Control if you already found the Monster King + @QNL3=0; + // Begin quest. Logout/Death will cause loss of the current day. + setq1 Q_NivalisLibday, $NLIB_DAY; + setq3 Q_NivalisLibday, gettimetick(2); + warp "019-3", any(128, 129, 130, 131, 132), any(24, 25, 26, 27); + doevent("Guard#019-3.1::OnBegin"); + closedialog; + } + close; + +L_MK: + if (gettime(3) != 18 && !$@GM_OVERRIDE) { + mesn; + mesq l("Today at 18:30 UTC we are going to attack the Monster King by surprise. There will be no delays, so be there."); + } else { + mesn; + mesq l("Do you want to go against the Monster King now? The event will start 18:30 UTC sharply."); + if (askyesno() == ASK_YES) { + // Control if you already found the Monster King + @QNL3=0; + // Begin quest. Logout/Death will cause loss of the current day. + setq1 Q_NivalisLibday, $NLIB_DAY; + setq3 Q_NivalisLibday, gettimetick(2); + warp "019-3", any(128, 129, 130, 131, 132), any(24, 25, 26, 27); + doevent("Guard#019-3.1::OnAdvise"); + closedialog; + } + } + close; + +// Misc +L_Delay: + mesn; + mesq l("You already helped us today. Come back tomorrow."); + next; + mesc l("Do you want to cross to the other side? You'll need to find the sea to return here if you do."), 1; + next; + if (askyesno() == ASK_YES) + warp "019-1", 70, 30; + close; + +OnInit: + if ($NLIB_DAY) + addmapmask "019-3", MASK_MATTACK; + + .sex = G_MALE; + .distance = 5; + end; + +OnHour00: + if ($NLIB_DAY) + $NLIB_DAY+=1; + // Begin Nivalis Liberation Day + if ($NLIB_SEQDAY == gettimeparam(GETTIME_DAYOFMONTH)) + goto OnNLibStart; + end; + +OnClock1800: + if ($NLIB_DAY == 7) { + kamibroadcast("All players, Nivalis Liberation Day starting in ##Bhalf hour##b."); + kamibroadcast("Failing this event will change the game world FOREVER and in an IRREVERSIBLE way."); + } + end; + +OnClock1825: + if ($NLIB_DAY == 7) + announce "All players, Nivalis Liberation Day starting in five minutes.", bc_all | bc_npc; + end; + +OnClock1830: + if ($NLIB_DAY != 7) + end; + setmapflag("023-2",mf_bexp,200); + setmapflag("023-2",mf_nopenalty); + donpcevent("The Monster King#NLib::OnBegin"); + end; +} + diff --git a/npc/019-2/harry.txt b/npc/019-2/harry.txt new file mode 100644 index 0000000..bafc00a --- /dev/null +++ b/npc/019-2/harry.txt @@ -0,0 +1,15 @@ +// TMW2 scripts. +// Author: +// Saulc +// Jesusalva +// Description: +// Harry gives the player latest news on the world + +019-2,92,116,0 script Harry NPC_JOURNALMAN,{ + Journalman(.name$); + +OnInit: + .sex = G_MALE; + .distance = 5; + end; +} diff --git a/npc/019-2/ship.txt b/npc/019-2/ship.txt new file mode 100644 index 0000000..b51633c --- /dev/null +++ b/npc/019-2/ship.txt @@ -0,0 +1,18 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// This script controls access to Ships, fixing variables. + +019-2,120,113,0 script NivalShip NPC_HIDDEN,0,0,{ + +OnTouch: + EnterTown("Nival"); + goto L_Warp; + +L_Warp: + warp "016-1@"+LOCATION$, 21, 26; + closedialog; + close; +} + diff --git a/npc/019-2/sign.txt b/npc/019-2/sign.txt new file mode 100644 index 0000000..eb663bf --- /dev/null +++ b/npc/019-2/sign.txt @@ -0,0 +1,23 @@ +// TMW2 Script. +// Author: +// Jesusalva +// Description: +// Random Sign nobody bothers reading. +// I just got lazy. Maybe I'll sell these two houses for 1000000 GP each... :drolls: + +019-2,95,108,0 script Sign#019295108 NPC_NO_SPRITE,{ + if (!$NIVALIS_LIBDATE) { + mesc l("WARNING: Nivalis is currently under siege from the Monster King himself."), 3; + next; + mesc l("The Alliance Advanced Outposts are closed for maintenance. Group in front of the town entrance!"); + } else { + mesc l("Welcome to Nivalis, the frozen town."); + mesc l("The Alliance Advanced Outposts have been abandoned and locked after the Liberation day."); + } + close; + +OnInit: + .sex = G_OTHER; + .distance = 3; + end; +} |