diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/030-01/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-02/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-03/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-04/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-05/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-06/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-07/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-08/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-09/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-10/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-11/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-12/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-13/_import.txt | 2 | ||||
-rw-r--r-- | npc/030-14/_import.txt | 2 | ||||
-rw-r--r-- | npc/_import.txt | 14 | ||||
-rw-r--r-- | npc/functions/maze.txt | 97 | ||||
-rw-r--r-- | npc/scripts.conf | 1 |
17 files changed, 140 insertions, 0 deletions
diff --git a/npc/030-01/_import.txt b/npc/030-01/_import.txt new file mode 100644 index 000000000..a4fa24bda --- /dev/null +++ b/npc/030-01/_import.txt @@ -0,0 +1,2 @@ +// Map 030-01: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-02/_import.txt b/npc/030-02/_import.txt new file mode 100644 index 000000000..542f3cc8f --- /dev/null +++ b/npc/030-02/_import.txt @@ -0,0 +1,2 @@ +// Map 030-02: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-03/_import.txt b/npc/030-03/_import.txt new file mode 100644 index 000000000..55cb23041 --- /dev/null +++ b/npc/030-03/_import.txt @@ -0,0 +1,2 @@ +// Map 030-03: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-04/_import.txt b/npc/030-04/_import.txt new file mode 100644 index 000000000..af92695d0 --- /dev/null +++ b/npc/030-04/_import.txt @@ -0,0 +1,2 @@ +// Map 030-04: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-05/_import.txt b/npc/030-05/_import.txt new file mode 100644 index 000000000..194df71e5 --- /dev/null +++ b/npc/030-05/_import.txt @@ -0,0 +1,2 @@ +// Map 030-05: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-06/_import.txt b/npc/030-06/_import.txt new file mode 100644 index 000000000..c7a9873c5 --- /dev/null +++ b/npc/030-06/_import.txt @@ -0,0 +1,2 @@ +// Map 030-06: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-07/_import.txt b/npc/030-07/_import.txt new file mode 100644 index 000000000..3187970af --- /dev/null +++ b/npc/030-07/_import.txt @@ -0,0 +1,2 @@ +// Map 030-07: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-08/_import.txt b/npc/030-08/_import.txt new file mode 100644 index 000000000..a8e16c8e0 --- /dev/null +++ b/npc/030-08/_import.txt @@ -0,0 +1,2 @@ +// Map 030-08: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-09/_import.txt b/npc/030-09/_import.txt new file mode 100644 index 000000000..f35f31398 --- /dev/null +++ b/npc/030-09/_import.txt @@ -0,0 +1,2 @@ +// Map 030-09: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-10/_import.txt b/npc/030-10/_import.txt new file mode 100644 index 000000000..1fbf111f6 --- /dev/null +++ b/npc/030-10/_import.txt @@ -0,0 +1,2 @@ +// Map 030-10: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-11/_import.txt b/npc/030-11/_import.txt new file mode 100644 index 000000000..126df6cae --- /dev/null +++ b/npc/030-11/_import.txt @@ -0,0 +1,2 @@ +// Map 030-11: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-12/_import.txt b/npc/030-12/_import.txt new file mode 100644 index 000000000..262596248 --- /dev/null +++ b/npc/030-12/_import.txt @@ -0,0 +1,2 @@ +// Map 030-12: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-13/_import.txt b/npc/030-13/_import.txt new file mode 100644 index 000000000..eea031700 --- /dev/null +++ b/npc/030-13/_import.txt @@ -0,0 +1,2 @@ +// Map 030-13: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/030-14/_import.txt b/npc/030-14/_import.txt new file mode 100644 index 000000000..c0ace412b --- /dev/null +++ b/npc/030-14/_import.txt @@ -0,0 +1,2 @@ +// Map 030-14: Mazes and Dragons +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/_import.txt b/npc/_import.txt index 1bbae746d..f7af0c8a9 100644 --- a/npc/_import.txt +++ b/npc/_import.txt @@ -222,6 +222,20 @@ @include "npc/029-7/_import.txt" @include "npc/029-8/_import.txt" @include "npc/029-9/_import.txt" +@include "npc/030-01/_import.txt" +@include "npc/030-02/_import.txt" +@include "npc/030-03/_import.txt" +@include "npc/030-04/_import.txt" +@include "npc/030-05/_import.txt" +@include "npc/030-06/_import.txt" +@include "npc/030-07/_import.txt" +@include "npc/030-08/_import.txt" +@include "npc/030-09/_import.txt" +@include "npc/030-10/_import.txt" +@include "npc/030-11/_import.txt" +@include "npc/030-12/_import.txt" +@include "npc/030-13/_import.txt" +@include "npc/030-14/_import.txt" @include "npc/042-0/_import.txt" @include "npc/042-1/_import.txt" @include "npc/042-10/_import.txt" diff --git a/npc/functions/maze.txt b/npc/functions/maze.txt new file mode 100644 index 000000000..8fd9c438e --- /dev/null +++ b/npc/functions/maze.txt @@ -0,0 +1,97 @@ +// TMW2 Scripts +// Author: +// Jesusalva +// Description: +// Controls map domain 030 and provide helpers. See constants; +// Player Variables: +// MAZE_ID → ID of the maze being used +// MAZE_MAP$ → Map being used for the maze +// MAZE_INST → Instance ID of the Maze + +///////////////////////////////////////////////////////////////////////////////// +// CreateMaze(scope=IOT_CHAR) +// Creates the maze instances so they can be configured +// But does not initializes anything +function script CreateMaze { + .@scope = getarg(0, IOT_CHAR); + // Pseudo-random maze ID + // (It is not random at all; But two mazes won't repeat) + MAZE_ID += 1; + if (MAZE_ID > MAZE_MAX) + MAZE_ID = MAZE_MIN; + if (MAZE_ID < MAZE_MIN) + MAZE_ID = MAZE_MIN; + + .@MAZEMP$=sprintf("030-%02d", MAZE_ID); + MAZE_MAP$=sprintf("mz%02d@"+getcharid(0), MAZE_ID); + + // Maze is not yet started + if (.@scope == IOT_CHAR) { + MAZE_INST = instance_create("Maze "+MAZE_ID+" "+getcharid(0), getcharid(3), IOT_CHAR); + // Failed + if (MAZE_INST < 0) { + consolebug("Instance \"%s\" already exists! (Error %d)", "Maze "+MAZE_ID+" "+getcharid(0), MAZE_INST); + return 0; + } + // Attach map + instance_attachmap(.@MAZEMP$, .@inst, false, MAZE_MAP$); + } else { + consolebug("Scope %d not yet supported by maze system", .@scope); + return 0; + } + return MAZE_ID; +} + +///////////////////////////////////////////////////////////////////////////////// +// InitMaze(duration=2 hours) +// Puts maze to work and send player there. +// Exit must have been configured prior to the maze. +function script InitMaze { + .@t = getarg(0, 7200); + instance_set_timeout(.@t, .@t, MAZE_INST); + instance_init(MAZE_INST); + + // Find random, warpable coordinates + .@e=0; .@x=0; .@y=0; + .@mx=getmapinfo(MAPINFO_SIZE_X, MAZE_MAP$)-20; + .@my=getmapinfo(MAPINFO_SIZE_Y, MAZE_MAP$)-20; + do { + .@x = rand2(20, .@mx); + .@y = rand2(20, .@my); + .@e += 1; + if (.@e > 30) { + consolebug("Too many failures at Maze \"%s\"! Trying anyway!", MAZE_MAP$); + break; + } + } while (!checknpccell(MAZE_MAP$, .@x, .@y, cell_chkpass)); + + warp MAZE_MAP$, .@x, .@y; + return true; +} + +///////////////////////////////////////////////////////////////////////////////// +// RenewMaze(duration=2 hours) +// Renews the map expiration time +function script RenewMaze { + .@t = getarg(0, 7200); + instance_set_timeout(.@t, .@t, MAZE_INST); + return true; +} + +///////////////////////////////////////////////////////////////////////////////// +// Configure maze maps as MMO zones +030-01 mapflag zone MMO +030-02 mapflag zone MMO +030-03 mapflag zone MMO +030-04 mapflag zone MMO +030-05 mapflag zone MMO +030-06 mapflag zone MMO +030-07 mapflag zone MMO +030-08 mapflag zone MMO +030-09 mapflag zone MMO +030-10 mapflag zone MMO +030-11 mapflag zone MMO +030-12 mapflag zone MMO +030-13 mapflag zone MMO +030-14 mapflag zone MMO + diff --git a/npc/scripts.conf b/npc/scripts.conf index e10a2ac27..df4ca26d2 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -145,6 +145,7 @@ "npc/functions/instances.txt", "npc/functions/captcha.txt", "npc/functions/dungeon.txt", +"npc/functions/maze.txt", "npc/config/easteregg_blackbox.txt", // Maps specific scripts |