diff options
-rw-r--r-- | npc/maze0/config.txt | 65 |
1 files changed, 38 insertions, 27 deletions
diff --git a/npc/maze0/config.txt b/npc/maze0/config.txt index 305c95603..8ff918f3f 100644 --- a/npc/maze0/config.txt +++ b/npc/maze0/config.txt @@ -385,11 +385,6 @@ function script MazeFix { ///////////////////////////////////////////////////////////////////////////////// // GenerateMaze(width, height) → Returns instance ID function script GenerateMaze { - // Create the Maze instance or die trying - .@inst = instance_create("Maze "+getcharid(0), getcharid(3), IOT_CHAR); - if (.@inst < 0) end; - MAZE_ID=.@inst; - // Save maze configuration MAZE_MX=getarg(0); MAZE_MY=getarg(1); @@ -562,27 +557,7 @@ function script GenerateMaze { freeloop(false); debugmes "[STATUS] Finished"; - // Attach instance maps - instance_attachmap("maze0", .@inst, false, "mz0@"+getcharid(0)); - instance_attachmap("maze1", .@inst, false, "mz1@"+getcharid(0)); - instance_attachmap("maze2", .@inst, false, "mz2@"+getcharid(0)); - instance_attachmap("maze3", .@inst, false, "mz3@"+getcharid(0)); - instance_attachmap("maze4", .@inst, false, "mz4@"+getcharid(0)); - instance_attachmap("maze5", .@inst, false, "mz5@"+getcharid(0)); - instance_attachmap("maze6", .@inst, false, "mz6@"+getcharid(0)); - instance_attachmap("maze7", .@inst, false, "mz7@"+getcharid(0)); - instance_attachmap("maze8", .@inst, false, "mz8@"+getcharid(0)); - instance_attachmap("maze9", .@inst, false, "mz9@"+getcharid(0)); - instance_attachmap("maze10", .@inst, false, "mz10@"+getcharid(0)); - instance_attachmap("maze11", .@inst, false, "mz11@"+getcharid(0)); - instance_attachmap("maze12", .@inst, false, "mz12@"+getcharid(0)); - instance_attachmap("maze13", .@inst, false, "mz13@"+getcharid(0)); - instance_attachmap("maze14", .@inst, false, "mz14@"+getcharid(0)); - instance_attachmap("maze15", .@inst, false, "mz15@"+getcharid(0)); - // Instance lasts one hour - instance_set_timeout(3600, 3600, .@inst); - instance_init(.@inst); - return .@inst; + return true; } ///////////////////////////////////////////////////////////////////////////////// @@ -630,8 +605,43 @@ function script WarpToMaze { } ///////////////////////////////////////////////////////////////////////////////// -// InitMaze(maze_x, maze_y) +// CreateMaze() +function script CreateMaze { + // Create the Maze instance or die trying + .@inst = instance_create("Maze "+getcharid(0), getcharid(3), IOT_CHAR); + if (.@inst < 0) end; + MAZE_ID=.@inst; + // Attach instance maps + instance_attachmap("maze0", .@inst, false, "mz0@"+getcharid(0)); + instance_attachmap("maze1", .@inst, false, "mz1@"+getcharid(0)); + instance_attachmap("maze2", .@inst, false, "mz2@"+getcharid(0)); + instance_attachmap("maze3", .@inst, false, "mz3@"+getcharid(0)); + instance_attachmap("maze4", .@inst, false, "mz4@"+getcharid(0)); + instance_attachmap("maze5", .@inst, false, "mz5@"+getcharid(0)); + instance_attachmap("maze6", .@inst, false, "mz6@"+getcharid(0)); + instance_attachmap("maze7", .@inst, false, "mz7@"+getcharid(0)); + instance_attachmap("maze8", .@inst, false, "mz8@"+getcharid(0)); + instance_attachmap("maze9", .@inst, false, "mz9@"+getcharid(0)); + instance_attachmap("maze10", .@inst, false, "mz10@"+getcharid(0)); + instance_attachmap("maze11", .@inst, false, "mz11@"+getcharid(0)); + instance_attachmap("maze12", .@inst, false, "mz12@"+getcharid(0)); + instance_attachmap("maze13", .@inst, false, "mz13@"+getcharid(0)); + instance_attachmap("maze14", .@inst, false, "mz14@"+getcharid(0)); + instance_attachmap("maze15", .@inst, false, "mz15@"+getcharid(0)); + // Instance lasts one hour + instance_set_timeout(3600, 3600, .@inst); + instance_init(.@inst); + + debugmes "Maze instance created: %s", MAZE_ID; + return .@inst; +} + +// InitMaze(maze_x, maze_y, {renew=True}) function script InitMaze { + // Should we renew the instance? + if (getarg(2, true)) + instance_set_timeout(3600, 3600, MAZE_ID); + MAZE_X=getarg(0); MAZE_Y=getarg(1); .@id=getd(MazeVar(MAZE_X, MAZE_Y, "_ID")); @@ -716,6 +726,7 @@ maze0,30,30,0 script #MazeMaster NPC_MONA,{ */ //GenerateMaze(7, 7, 0); GenerateMaze(5, 5); + CreateMaze(); InitMaze(0, 0); end; } |