Visible but unreachable #1618
Replies: 13 comments 5 replies
-
|
So this unreachable item should only be shown in the room description but you can't interact with it? or you can only look at it? |
Beta Was this translation helpful? Give feedback.
-
|
Yes, you can only look at it. Other attempts to meddle with it should result in "You cannot reach it". |
Beta Was this translation helpful? Give feedback.
-
|
First thought was just creating a command in this room like this: |
Beta Was this translation helpful? Give feedback.
-
|
Building off of Pertex's idea, you could:
Important The "EXAMINE" command must be added before the "catch-all" command, else EXAMINE will not work. <!--Saved by Quest 5.9.9166.36226-->
<asl version="580">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="Out of Reach">
<gameid>3d6f4308-cded-4130-97bf-654288deafda</gameid>
<version>1.0</version>
<firstpublished>2025</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" />
<description type="string"></description>
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
<object name="frob">
<inherit name="editor_object" />
</object>
<command name="x_frob_cmd">
<pattern>look at frob; look frob; x frob; examine frob; exam frob; ex frob</pattern>
<script>
msg ("It looks just like every other frob you've ever seen.")
obj_list = NewObjectList()
list add (obj_list, frob)
game.lastobjects = obj_list
</script>
</command>
<command name="fake_frob_cmd_catcher">
<pattern>#text# frob</pattern>
<script>
msg ("You cannot reach it.")
obj_list = NewObjectList()
list add (obj_list, frob)
game.lastobjects = obj_list
</script>
</command>
</object>
</asl>AlternativelyIf you are using the Quest app for Windows, this might help: https://archive.textadventures.co.uk/forum/samples/topic/3997.html That is an old Quest Forum post where The Pixie provides an example game to use a transparent container to make objects unreachable.
|
Beta Was this translation helpful? Give feedback.
-
|
Many thanks for explaining this, much appreciated! It works well but a detail: I also need to set he scope of the new commands to the current room, or it will also try to match with frobs in other rooms. And for "qwerty frob" it says it cannot reach it instead of complaining that it does not understand "qwerty" but I guess I can live with that. Or is there a function for testing if a word is a recognizable verb? |
Beta Was this translation helpful? Give feedback.
-
|
My first thought would have been putting it in a transparent container, as that's what the "reachable" property in the game normally represents. Second thought would have been messing around with custom backdrop scope functions for the room… if the text the player entered matches the name of the unreachable object, substitute out the current command pattern for a stub command which can display an appropriate message if the unreachable object is chosen; or refer to the original command if it's a false positive (like if the "frob" is unreachable, but the player types "get f" and chooses something else from the disambiguation menu). Don't know how that compares to Pertex's solution, but if you want to try it poke me and I'll see if I can help. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks. Adding a container pushes the problem to the container, and I get messages that it isn't open instead of unreachable. The backdrop scope idea might work but sounds complicated and potentially dangerous, also I don't know how to do that on the online version. I confess I forgot about the disambiguation and abbreviations. I guess I have to extend the pattern to include "f", "fr", "fro" and ensure I have no other object there. This should not be an uncommon problem, I am surprised there is no standard attribute "reachable". |
Beta Was this translation helpful? Give feedback.
-
|
OK… for the background scope solution, I'm imagining something like this off the top of my head. I'll write it in a form that you could put in the unreachable object's initialisation script, so it's possible to do in the web editor. If you're doing this for multiple objects, it might be easier to put the scope script on the Then we have a new command, which will be run instead of the command the player typed if they attempt to do something to an unreachable object. We'll call it It's code would look something like this: The initialisation script on each object sets the command on the room that contains it, as well as giving the object This is weird stuff off the top of my head… so don't know if it will work. But it's the first idea that came to me. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks! I'm just beginning to learn the system and am not quite at the level yet where I could debug something like this. It does look reasonable though! |
Beta Was this translation helpful? Give feedback.
-
|
Another idea (which I really should have thought of first) is putting the player and all reachable objects in a transparent room; then put that room and the unreachable object in an outer room. Inside a transparent room, the player can see but not reach objects in the outer room. I can't remember off the top of my head, but I think it still displays the description for the inner room; so the player doesn't need to be aware that the outer room even exists. This will, unfortunately, give the same ObjectNotOpen message as for putting the object in a transparent container; but this way I think the container itself won't show up in the object list. But… you can change that message. in your start script. I'm not sure why the post suggesting a transparent container involved changing the template (desktop editor only) rather than giving the container a custom blocking message; maybe that's a newer feature since the forum post was written. |
Beta Was this translation helpful? Give feedback.
-
|
I revive this discussion since there is a problem.
I guess I could have a turn script to generate in-room descriptions for all objects in the room. Is there an easier way? |
Beta Was this translation helpful? Give feedback.
-
|
Oh, thanks! I am no stranger to programming but a newbie on this platform and need some time to digest this. I guess a simpler workaround is to have a room description script simply print out the objects. I ran some tests. If pov is inside an invisible (or scenery) transparent container, then objects inside the container are not mentioned by "look" but can still be examined and picked. It does not matter if the container is open or closed, and the same holds for surfaces. If the container is not transparent all works as expected (pov cannot see out of it and sees all in it). If the transparent container is visible then "look" returns the same text as if pov is outside the container, i.e., "I can see a #container/room# in which there is a #frob#, which is weird since the pov is inside the container. Basically, for a transparent container "look" gives the same text whether pov is inside or not. If the room/container is on top level, i.e. there is no parent room, then this anomaly will not occur (though why would one want that?) I cannot imagine this is a feature. Should I report it as an issue or did I misunderstand something |
Beta Was this translation helpful? Give feedback.
-
|
I applaud your drive to find a general solution. The case is even more complicated if there are nested invisible containers/rooms with pov in the innermost. The only objects listed in the description are the ones in the first non-transparent container, though in all intermediate rooms objects can be "looked at". I guess the scripts need to recur over enclosing rooms. I also tried non-transparent open containers, but apparently it is not possible to look out of an open non-transparent container. I do think this is an issue, in the sense that the makers probably did not anticipate this. Would you report it? You can probably formulate the problem better than me. |
Beta Was this translation helpful? Give feedback.





Uh oh!
There was an error while loading. Please reload this page.
-
What is the easiest way to have an object that is visible but cannot be reached? For example an item high up on the wall, where to reach it I would need to climb something first. I can set a script for "take" that prints a message about not being able to reach, but must I then also find all other scripts that try to use it (unlock, open,...) and amend them as well? I am looking for a "reachable" attribute but cannot find any.
I guess I can have the object mentioned in the room description but not actually in the room. But then I cannot even "look" at it.
Beta Was this translation helpful? Give feedback.
All reactions