- Joined
- Jan 18, 2014
- Messages
- 1,550
- Reaction score
- 211
- First Language
- English
- Primarily Uses
To recap: In my game there's this 100 fl module based randomized dungeon.
Now most of the randomized aspects are easy to handle, even though require a lot of work(pulling each map from the database, the enemies on the map, the treasure chests, and even the stairs), what Isn't however, is being able to return to a map you've been to already(if there were only 2 modules each floor or if the starting room only had doors that lead to dead end rooms, it would be easy, but what a crappy random map generator that would be).
There are atleast a few other ways to handle such, all of which are certifiable nightmares, so I've been trying to figure out a much more efficient way to handle such.
Note: Evidently you'll need Hime's custom page condition script to pull this off(Everyone should be using it anyway, but I must admit, I never imagined I would be using it for this feature)
Normally you would handle similar things by using switches(and thus is why it took almost a day for me to figure out a solution), but in this scenario, you really don't want to. Even though all switches get reset when you leave the dungeon or leave the floor, It's a big mess to handle with switches.
Now here's what you want to do is assign a different "variable" to every door on the modular room maps that the random map generator can pull. Then here's the ingenious aspect, you also assign every door where that door may possibly lead to, a value.
That's it in a nutshell, damn I love variables, to pull something as complex as this off with switches, you would easily burn through a few hundred switches, if not much more, and the eventing procedure would be confusing as hell, where this feature will only require a small fraction of that, if you use variables, plus everything will be a lot neater.
Example: Say there's 4 rooms on the floor, you go through the first door(lets call it door 1), it pulls room 4, and for the example, lets say you end up infront of door 6, that will make door 1's variable fixed as Vaiable 1 + 6. Now every door is gonna have additional pages, in this case one of the page's page condition on room 4, door 6's event is Variable 1= +6. that page now becomes the active page(instead of page 1 which handles the random module pulling system), which will transfer the player back to the previous room, infront of door 1.
Basically what you're doing is assigning every door in all your rooms in the database that is a possible outcome with the random map generator, a different variable, the variable its self indicates the door you are first accessing, while the +X(value) indicates the door you are tranfering to. Then on the door you tranfered to event, one page will have the condition that uses the variable indicating the door in the other room, being = to whatever value you set to indicate this door. With that done, you can go ahead and add the transfer player event command to the location of the other room
I'm so glad I was able to find a more efficient method, I knew there had to be some way that wasn't a train wreck of a eventing procedure.
Now most of the randomized aspects are easy to handle, even though require a lot of work(pulling each map from the database, the enemies on the map, the treasure chests, and even the stairs), what Isn't however, is being able to return to a map you've been to already(if there were only 2 modules each floor or if the starting room only had doors that lead to dead end rooms, it would be easy, but what a crappy random map generator that would be).
There are atleast a few other ways to handle such, all of which are certifiable nightmares, so I've been trying to figure out a much more efficient way to handle such.
Note: Evidently you'll need Hime's custom page condition script to pull this off(Everyone should be using it anyway, but I must admit, I never imagined I would be using it for this feature)
Normally you would handle similar things by using switches(and thus is why it took almost a day for me to figure out a solution), but in this scenario, you really don't want to. Even though all switches get reset when you leave the dungeon or leave the floor, It's a big mess to handle with switches.
Now here's what you want to do is assign a different "variable" to every door on the modular room maps that the random map generator can pull. Then here's the ingenious aspect, you also assign every door where that door may possibly lead to, a value.
That's it in a nutshell, damn I love variables, to pull something as complex as this off with switches, you would easily burn through a few hundred switches, if not much more, and the eventing procedure would be confusing as hell, where this feature will only require a small fraction of that, if you use variables, plus everything will be a lot neater.
Example: Say there's 4 rooms on the floor, you go through the first door(lets call it door 1), it pulls room 4, and for the example, lets say you end up infront of door 6, that will make door 1's variable fixed as Vaiable 1 + 6. Now every door is gonna have additional pages, in this case one of the page's page condition on room 4, door 6's event is Variable 1= +6. that page now becomes the active page(instead of page 1 which handles the random module pulling system), which will transfer the player back to the previous room, infront of door 1.
Basically what you're doing is assigning every door in all your rooms in the database that is a possible outcome with the random map generator, a different variable, the variable its self indicates the door you are first accessing, while the +X(value) indicates the door you are tranfering to. Then on the door you tranfered to event, one page will have the condition that uses the variable indicating the door in the other room, being = to whatever value you set to indicate this door. With that done, you can go ahead and add the transfer player event command to the location of the other room
I'm so glad I was able to find a more efficient method, I knew there had to be some way that wasn't a train wreck of a eventing procedure.
Last edited by a moderator:


