Since I have all you wonderful people as resources, I thought this would be a good question to ask you all.
I'm wondering the best way to handle the entrance to the Crypt of Wondermen. Here's some reference text:
Few have seen the crypt of the Wondermen and lived to tell the tale, though many come to the Nightshade seeking the way to it. The staff claim to honestly not know the way, some swearing that the sliding panel that leads to the right secret passage moves around from time to time by itself.
One of my first thoughts is that I want multiple hidden entrances, and I want the "acitve" one to be random (random is easy, and I may even make it active based on hour of night and day of week combination, or something like that).
The difficult part for me, here, is figuring out how to create an entrance that cannot be visible by the Z key, or easily seen.
Kamal did a cool thing with hidden passages in Crimmor, but I am not sure that is something that can be turned on/off. Also, I was reading DannJ's Isle of Shrines documentation and see he has hidden things that don't show up with the Z key, but Spot can find them. I don't know if this is applicable.
What do you guys think? What is a good way to implement this?
Question for Modders: How might you do this?
Débuté par
ColorsFade
, déc. 19 2013 05:30
#1
Posté 19 décembre 2013 - 05:30
#2
Posté 19 décembre 2013 - 06:28
Can it be maybe speak triggers that will fire under conditions, and instead of a door transition is an action script jumping you to the crypt? Maybe these triggers are placed under arks or in some alleys etc.
#3
Posté 19 décembre 2013 - 06:52
Z only highlights objects that are selectable, so you just have to make the hidden doorway unselectable. One way would be to have a wall with three gaps in it, baked into the walkmesh. To this you add non-selectable, dynamic collision placeables that block each gap/doorway. Then you have a script that picks one blocking placeable at random and destroys it. Your actual area transition/door can be well behind the wall, or created dynamically from a trigger as the player walks through the wall.
#4
Posté 19 décembre 2013 - 08:09
Some good info and ideas there Lugaid. I like that. I didn't know that about selectable toggle.
I'm going to take a look at Kamal's hidden wall trick from Crimmor and see if I can integrate that with what you just said.
I don't want the player to be able to see the doorway at all. Or accidentally walk through it. Not until they are the appropriate level and at the appropriate day/time. There's going to be a quest involved with this, of course, and the result of the quest will be a riddle that will point the player toward the proper wall/time of night. Then, if I can make it work like the Crimmor hidden walls, all the player will have to do is walk through the wall and bingo - enter the crypt.
I'm going to take a look at Kamal's hidden wall trick from Crimmor and see if I can integrate that with what you just said.
I don't want the player to be able to see the doorway at all. Or accidentally walk through it. Not until they are the appropriate level and at the appropriate day/time. There's going to be a quest involved with this, of course, and the result of the quest will be a riddle that will point the player toward the proper wall/time of night. Then, if I can make it work like the Crimmor hidden walls, all the player will have to do is walk through the wall and bingo - enter the crypt.
#5
Posté 19 décembre 2013 - 09:11
I would use the Kamal walkmesh baking trick and placeable collision boxes that block the entrances set to spawn/despawn on whatever schedule or criteria you desire. Triggers can check for level or whatever you want and then trigger the spawning or despawning of the blockers.
#6
Posté 19 décembre 2013 - 09:54
Ok, since I'm geting multiple callouts here.
You can block the walkmesh with invisible things by resizing and hiding the "tile block" in the xy coordinates. (under the terrain for example). Set the tile block to dynamic walkmesh and make sure it's not selectable, and a placeable. Since the game engine doesn't really do 3d, hiding it under the terrain will still block the terrain over it.
In Crimmor I used this near the end of the module where I blocked a path the player wouldn't think to walk, and shouldn't be able to walk until plot points pass. Without the hidden block the player would be able to accidentally walk there and it would not make logical sense for them to be able to do that until the plot gets to the point where they can.
I only needed to destroy my object to enable passage, but since the tile block is an object and can be created/destroyed, you could create/destroy a tile block set up with the right properties as needed in this hidden spot to enable/block passage as needed
Walkmesh helpers get priority over everything, even tile walls. There is also the trick of grafting the walkmesh from one area onto another area. That allows you to do anything short of real 3d movement, even walk through placeables that would normally block the walkmesh.
You can block the walkmesh with invisible things by resizing and hiding the "tile block" in the xy coordinates. (under the terrain for example). Set the tile block to dynamic walkmesh and make sure it's not selectable, and a placeable. Since the game engine doesn't really do 3d, hiding it under the terrain will still block the terrain over it.
In Crimmor I used this near the end of the module where I blocked a path the player wouldn't think to walk, and shouldn't be able to walk until plot points pass. Without the hidden block the player would be able to accidentally walk there and it would not make logical sense for them to be able to do that until the plot gets to the point where they can.
I only needed to destroy my object to enable passage, but since the tile block is an object and can be created/destroyed, you could create/destroy a tile block set up with the right properties as needed in this hidden spot to enable/block passage as needed
Walkmesh helpers get priority over everything, even tile walls. There is also the trick of grafting the walkmesh from one area onto another area. That allows you to do anything short of real 3d movement, even walk through placeables that would normally block the walkmesh.
#7
Posté 19 décembre 2013 - 10:15
My thoughts are:
How large is the area that the gate could appear in? and what is the function of that area? You could simply have several areas and the randomness could be on the transition to the area. that would work if the area were small but if it is inhabited it could get complicated quickly.
Otherwise I think you might be going in the wrong way with the trasition though a placeable route.
The problem I see is that the crypt itself can only be in one place. You can mess with the location of the door if it leads to a transition that takes you to the crypt area but if it leads directly to the crypt then the door can only be in one place or the door has to enter to different places in the crypt and therefore the player will start in different places in the crypt depending on which door they use. If you want to start the crypt in one place and that place is always the same which ever location door you use then the doors will have to lead to a transition of some sort. You are not going to be able to simply walk into the crypt by walking though the door.
Another problem I see here (sorry to sound negative) is how do you hide the crypt? If the door you use transisiton to the crypt then the tiles on the far side of your secrect door could end up being visible if the block you use does not hide LOS.
Soooo, rather than move doors around as you say you could spawn a portal or door in random locations. It could have a transition associated with it and you therefore would not need to concern yourself with walkmesh tom foolery. That said, that is a moving door and not a moving secret door as you perhaps would like.
Lastly but not leastly, who says a door has to look like a door. It could be a mousehole that the player has to shink themselves to enter. it could be a portal that can only be seen if the player is ethereal, it could be a book, a window or a mirror or even a string of hanging meat (the whitcher has a nice one of those).
PJ
How large is the area that the gate could appear in? and what is the function of that area? You could simply have several areas and the randomness could be on the transition to the area. that would work if the area were small but if it is inhabited it could get complicated quickly.
Otherwise I think you might be going in the wrong way with the trasition though a placeable route.
The problem I see is that the crypt itself can only be in one place. You can mess with the location of the door if it leads to a transition that takes you to the crypt area but if it leads directly to the crypt then the door can only be in one place or the door has to enter to different places in the crypt and therefore the player will start in different places in the crypt depending on which door they use. If you want to start the crypt in one place and that place is always the same which ever location door you use then the doors will have to lead to a transition of some sort. You are not going to be able to simply walk into the crypt by walking though the door.
Another problem I see here (sorry to sound negative) is how do you hide the crypt? If the door you use transisiton to the crypt then the tiles on the far side of your secrect door could end up being visible if the block you use does not hide LOS.
Soooo, rather than move doors around as you say you could spawn a portal or door in random locations. It could have a transition associated with it and you therefore would not need to concern yourself with walkmesh tom foolery. That said, that is a moving door and not a moving secret door as you perhaps would like.
Lastly but not leastly, who says a door has to look like a door. It could be a mousehole that the player has to shink themselves to enter. it could be a portal that can only be seen if the player is ethereal, it could be a book, a window or a mirror or even a string of hanging meat (the whitcher has a nice one of those).
PJ
Modifié par PJ156, 19 décembre 2013 - 10:21 .
#8
Posté 19 décembre 2013 - 11:39
Sometimes a door can even be a jar...
#9
Posté 19 décembre 2013 - 11:54
@PJ => Crypt is a completely separate area. There will be an area transition to get to it.
I don't want to spawn a door in random locations because the door is an obvious giveaway. You'd be standing in a room, and all of a sudden a door would appear. Well, you'd know which door it was, wouldn't you? Not much mystery there.
I don't actually want it to look much like a door. It's suppose to be a "sliding panel", but the most obvious choice, to me, when I read that, is what Kamel does at the beginning of Crimmor, when you are going through your house in the tutorial. There's a room off to the side, but it's not accessible until you actually place your mouse on the area beyond the wall and walk to it. Then it becomes visible and you realize it's a hidden passage.
Setting up several of those hidden passage rooms in the Nightshade was my original idea. You wouldn't see them, and wouldn't see them on the overhead map. But unlike your hidden room in Crimmor, these wouldn't be walkable until a very specific moment in time.
What I am curious about now is.... is it possible to spawn a door and have it be invisible, but still clickable? Because that would be *ideal*. Then I could spawn the doors on any walls I choose. I'd setup a dozen doors if I can do it that way...
I'm going to have to test that out.
I don't want to spawn a door in random locations because the door is an obvious giveaway. You'd be standing in a room, and all of a sudden a door would appear. Well, you'd know which door it was, wouldn't you? Not much mystery there.
I don't actually want it to look much like a door. It's suppose to be a "sliding panel", but the most obvious choice, to me, when I read that, is what Kamel does at the beginning of Crimmor, when you are going through your house in the tutorial. There's a room off to the side, but it's not accessible until you actually place your mouse on the area beyond the wall and walk to it. Then it becomes visible and you realize it's a hidden passage.
Setting up several of those hidden passage rooms in the Nightshade was my original idea. You wouldn't see them, and wouldn't see them on the overhead map. But unlike your hidden room in Crimmor, these wouldn't be walkable until a very specific moment in time.
What I am curious about now is.... is it possible to spawn a door and have it be invisible, but still clickable? Because that would be *ideal*. Then I could spawn the doors on any walls I choose. I'd setup a dozen doors if I can do it that way...
I'm going to have to test that out.
#10
Posté 20 décembre 2013 - 12:18
I don't know if the door can be invisible, but you can have the colision box usable, as they do for shadow portals etc in MotB. These work for sure.
#11
Posté 20 décembre 2013 - 12:22
haha, yes! I just figured that out Andy.
The collision box does exactly what I want it to do! All I need to do is SetUsableFlag() at the appropriate time, and you can mouseover the wall and get the "usable" icon, which I think is going to work fine.
With that, I can put the "door" in any wall, even a wall with a room already on the other side.
This is pretty cool. I'm going to do this kind of like the author for Harp & Chrysanthemum does. Clcking the door will spawn a conversation, and it will say something like, "You detect a sliding panel against the wall. Do you wish to enter?"
This is gonna be a blast. Now I just have to design the Nightshade and come up with a tricky riddle to tell you when and where the secret door appears.
The collision box does exactly what I want it to do! All I need to do is SetUsableFlag() at the appropriate time, and you can mouseover the wall and get the "usable" icon, which I think is going to work fine.
With that, I can put the "door" in any wall, even a wall with a room already on the other side.
This is pretty cool. I'm going to do this kind of like the author for Harp & Chrysanthemum does. Clcking the door will spawn a conversation, and it will say something like, "You detect a sliding panel against the wall. Do you wish to enter?"
This is gonna be a blast. Now I just have to design the Nightshade and come up with a tricky riddle to tell you when and where the secret door appears.
#12
Posté 20 décembre 2013 - 01:28
One thing I like to do with usable collision boxes / balls is to give them an OnSpellCastAt script that immediately removes the effects of the spell cast at it. Otherwise you can cast spells like Stone Skin, Barkskin or Spider Skin on them and they become visible.
I've often wondered if that could be the solution to navigating an invisible maze - cast some of the 'skin' spells on all the invisible blocks to show you the paths in between them.
I've often wondered if that could be the solution to navigating an invisible maze - cast some of the 'skin' spells on all the invisible blocks to show you the paths in between them.
#13
Posté 20 décembre 2013 - 01:35
Good to know DannJ. I had no idea that could be done.
You don't happen to have a sample script available?
You don't happen to have a sample script available?
#14
Posté 20 décembre 2013 - 02:51
Something simple like this:
#include "NW_I0_SPELLS"
void main()
{
object oCaster = GetLastSpellCaster();
int nSpellID = GetLastSpell();
RemoveSpellEffects(nSpellID, oCaster, OBJECT_SELF);
}
#include "NW_I0_SPELLS"
void main()
{
object oCaster = GetLastSpellCaster();
int nSpellID = GetLastSpell();
RemoveSpellEffects(nSpellID, oCaster, OBJECT_SELF);
}
Modifié par DannJ, 20 décembre 2013 - 02:55 .





Retour en haut






