summaryrefslogtreecommitdiff
path: root/npc/config/events.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/config/events.txt')
-rw-r--r--npc/config/events.txt105
1 files changed, 99 insertions, 6 deletions
diff --git a/npc/config/events.txt b/npc/config/events.txt
index 3dd4311..89e7f37 100644
--- a/npc/config/events.txt
+++ b/npc/config/events.txt
@@ -4,7 +4,11 @@
// Description:
// Some of the event scripts
+001-3 mapflag zone MMO
001-13-2 mapflag zone MMO
+
+/////////////////////////////////////////////////////////////////////////////////
+// Area 06: Moubootaur Showdown
001-13-2,47,26,0 script #FoSCore NPC_NO_SPRITE,{
if (!is_admin() && !is_master()) end;
if ($@FIRESOFSTEAM_BOSS) end;
@@ -22,7 +26,7 @@
l("Portable Apocalypse");
mes "";
$@FIRESOFSTEAM_DIFF=70+(@menu*30);
- $@EVENT_01 = PORTHOS_BUSY;
+ $@EVENT_06 = PORTHOS_BUSY;
switch (@menu) {
case 1: .@d$="##2Easy"; break;
case 2: .@d$="##3Crazy"; break;
@@ -35,7 +39,7 @@
changemusic("001-13-2", "mythica.ogg");
closeclientdialog;
// Dispose of the GM
- warp "033-1", 72, 185;
+ warp "033-1", 49, 193;
sleep(200);
// PC no longer attached
// Start the event
@@ -152,7 +156,7 @@ OnEventEnd:
mapannounce("001-13-2", "Moubootaur : ##1##BI'll come back... Stronger than ever!", 0);
sleep(3000);
maptimer2("001-13-2", 10, "#FoSCore::OnMFSurvive");
- $@EVENT_01 = PORTHOS_UNUSED;
+ $@EVENT_06 = PORTHOS_UNUSED;
end;
@@ -171,7 +175,7 @@ OnMFShake:
end;
OnMFDispose:
- if (ispcdead()) warp("033-1", 72, 191);
+ if (ispcdead()) warp("033-1", 154, 240);
end;
OnMFSurvive:
@@ -180,7 +184,7 @@ OnMFSurvive:
##01_CRQUEST = ##01_CRQUEST | MLP_CR_DEBUT;
specialeffect(FX_FANFARE, AREA, getcharid(3));
sleep2(15000);
- warp("033-1", 72, 191);
+ warp("033-1", 154, 240);
end;
////////////// Heartbeat //////////////
@@ -308,7 +312,7 @@ L_Defeat:
.Support5=0;
killmonsterall("001-13-2");
kamibroadcast("The players were defeated at Fires of Steam Showdown.", "Fires of Steam");
- $@EVENT_01 = PORTHOS_UNUSED;
+ $@EVENT_06 = PORTHOS_UNUSED;
stopnpctimer;
end;
@@ -320,3 +324,92 @@ OnInit:
end;
}
+
+/////////////////////////////////////////////////////////////////////////////////
+// Area 08: Blanc's Showdown
+001-3,147,153,0 script #E08_CF NPC_HIDDEN,2,0,{
+ end;
+OnTouch:
+ if (!(get_byte(EVENT_08, 0) & EV08_KEY)) {
+ dispbottom l("Darn, it is locked. A few keys will be necessary to open this.");
+ end;
+ }
+ warp "026-2", 32, 96;
+ end;
+OnBossDie:
+ .@p=get_nibble(EVENT_08, 2)+1;
+ set_nibble(EVENT_08, 2, .@p);
+ if (.@p >= 3) {
+ set_byte(EVENT_08, 0, get_byte(EVENT_08, 0) | EV08_KEY);
+ dispbottom l("I got all the keys! Time to get out of here!");
+ sleep2(500);
+ warp "001-3", 164, 33;
+ end;
+ }
+ dispbottom l("Keys: %d/%d", .@p, 3);
+ end;
+OnInit:
+ .sex = G_OTHER;
+ end;
+}
+
+001-3,35,32,0 script #E08WP_150 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ if ($@EVENT_08 != PORTHOS_ACTIVE) end;
+ //if (get_byte(EVENT_08, 0) & EV08_P150) end;
+ if (get_byte(EVENT_08, 0) & EV08_KEY) end;
+ setpcblock(PCBLOCK_HARD, true);
+ mesc l("STORY MODE ENABLED. Monsters won't attack you, so you can read without worries."), 1;
+ next;
+ mesc l("Seems like our prey was through. This portal connects to a Level %d Maze.", .lvl);
+ if (BaseLevel > .lvl*2) {
+ mesc l("Meaning I cannot use this one. Dang!");
+ next;
+ goto L_Close;
+ }
+ mesc l("If I can find Elmo or Marley inside, they should be holding the keys for the castle, where we presume Blanc ran off to.");
+ mesc l("I need to defeat at least three of them."), 1;
+ next;
+ mesc l("Will I explore this Maze? Or will I look another?"), 1;
+ next;
+ if (askyesno() == ASK_YES) {
+ set_nibble(EVENT_08, 2, 0);
+ CreateMaze(IOT_CHAR, MAZE_SIZE_G | MAZE_SIZE_X);
+ if (BaseLevel > .lvl)
+ .density=12;
+ else
+ .density=15;
+ MazeMobs(.lvl, false, .density);
+
+ // Spawn & Configure the boss monster
+ .@mx=getmapinfo(MAPINFO_SIZE_X, MAZE_MAP$)-20;
+ .@my=getmapinfo(MAPINFO_SIZE_Y, MAZE_MAP$)-20;
+ .@mob=areamonster(MAZE_MAP$, 20, 20, .@mx, .@my, "Elmo", Marley, 5, "#E08_CF::OnBossDie");
+ InitMaze(7200);
+ dispbottom col(l("Reminder : Defeat 3/5 %s to win. Time limit: %d minutes or death.", b("Elmo"), 120), 2);
+ }
+
+L_Close:
+ closeclientdialog;
+ setpcblock(PCBLOCK_HARD, false);
+ end;
+OnInit:
+ .sex = G_OTHER;
+ .@n$ = strnpcinfo(0, "_0");
+ explode(.@ni$, .@n$, "_");
+ .lvl = atoi(.@ni$[1]);
+ end;
+}
+
+001-3,113,148,0 duplicate(#E08WP_150) #E08WP_100 NPC_HIDDEN,0,0
+001-3,258,39,0 duplicate(#E08WP_150) #E08WP_75 NPC_HIDDEN,0,0
+001-3,38,257,0 duplicate(#E08WP_150) #E08WP_50 NPC_HIDDEN,0,0
+001-3,229,188,0 duplicate(#E08WP_150) #E08WP_25 NPC_HIDDEN,0,0
+
+// 35,32 NW (150) OK
+// 113,148 Central circle (100)
+// 258,39 NE (75)
+// 38,257 SW (50)
+// 229,188 SE (25)
+