diff options
author | Jesusalva Jesusalva <jesusalva@themanaworld.org> | 2023-07-17 01:48:54 +0000 |
---|---|---|
committer | Jesusalva Jesusalva <jesusalva@themanaworld.org> | 2023-07-17 01:48:54 +0000 |
commit | 5b0a9c8ffdbac30c4ff3981167c7206ca75425c7 (patch) | |
tree | 5a82418c9f0b725fed8d5e5cf0c1fa1a6fe861bc /npc/config | |
parent | cac5c770e7bbb169e9516909dfc0d44afceb1446 (diff) | |
download | serverdata-5b0a9c8ffdbac30c4ff3981167c7206ca75425c7.tar.gz serverdata-5b0a9c8ffdbac30c4ff3981167c7206ca75425c7.tar.bz2 serverdata-5b0a9c8ffdbac30c4ff3981167c7206ca75425c7.tar.xz serverdata-5b0a9c8ffdbac30c4ff3981167c7206ca75425c7.zip |
Jesusalva/00610
Diffstat (limited to 'npc/config')
-rw-r--r-- | npc/config/events.txt | 105 | ||||
-rw-r--r-- | npc/config/traps.txt | 4 |
2 files changed, 102 insertions, 7 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) + diff --git a/npc/config/traps.txt b/npc/config/traps.txt index 1b43e5c..560abcf 100644 --- a/npc/config/traps.txt +++ b/npc/config/traps.txt @@ -65,7 +65,9 @@ function script IronTrap { // Boom - Hurt and Stun (only works on players and mobs) .@stun*=1000; - sc_start SC_STUN, rand2(.@stun,.@stun*3), 0; + // Replaced SC_STUN with something else, which is not SC_Start* controlled + // But basically, SC_STUN causes lag in M+ because the client is dumb + sc_start2 SC_QUAGMIRE, rand2(.@stun,.@stun*3), 20000, 20000; .@gid=(playerattached() ? playerattached() : mobattached()); // Just to be sure |