Player object listed in room description (and in the pane) en Español #1283
-
<asl version="550" template="Español">
<include ref="Espanol.aslx"/>
<include ref="Core.aslx"/>
<game name="I Can See Myself in Spanish">
<gameid>7dd4e4d8-80f6-4371-bbf5-d35f56b6c09c</gameid>
<version>1.0</version>
<firstpublished>2024</firstpublished>
</game>
<object name="lugar">
<inherit name="editor_room" />
<isroom />
<object name="jugador">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
</object>
</asl> Note This is a fresh game created in 5.8 in Spanish, with no changes to the code before playing. The ASL version was not changed to 580 in Espanol.aslx during the update to Quest 5.8 (it was overlooked along with a few others), but changing it during testing now does not effect this issue. (ALSO NOTE: The ASL version is changed to 580 automatically whenever the editor saves.) I notice the result = NewObjectList()
foreach (obj, GetAllChildObjects(room)) {
if (ContainsReachable(room, obj) and obj <> game.pov and not Contains(game.pov, obj)) { 🤔 Oh... That's not me. If I create another room to go to, I leave my Spanish counterpart behind. Okay... In So, when we make games in a language other than English, we have to set Should we just always use I can't find anything in the docs explaining that Is this an issue, or am I overlooking something? (Or does it say it in the editor, and I just can't read the language? (I barely understand Spanish.)) Adding this to my start script: game.pov = jugador Oh... Quest is cheeky today! Note the lack of a Click here to view code.<!--Saved by Quest 5.8.6836.13983-->
<asl version="580">
<include ref="Espanol.aslx" />
<include ref="Core.aslx" />
<game name="I Can See Myself in Spanish">
<gameid>7dd4e4d8-80f6-4371-bbf5-d35f56b6c09c</gameid>
<version>1.0</version>
<firstpublished>2024</firstpublished>
<start type="script">
game.pov = jugador
</start>
</game>
<object name="lugar">
<inherit name="editor_room" />
<isroom />
<description type="script">
msg ("")
msg ("ScopeReachableNotHeldForRoom(lugar):")
msg (ScopeReachableNotHeldForRoom(lugar))
msg ("")
msg ("game.pov:")
msg (game.pov)
</description>
<object name="jugador">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
<exit alias="norte" to="room2">
<inherit name="northdirection" />
</exit>
</object>
<object name="room2">
<inherit name="editor_room" />
<exit alias="sur" to="lugar">
<inherit name="southdirection" />
</exit>
</object>
</asl> That's because that bit of code in So, I must put this in ...but what if a non-English game can switch POV during play??? This would reset to this first POV object when resuming a saved game! I can only think of two ways to fix this:
It seems like making everyone keep the object named I ended up doing this: <inituserinterface type="script">
if (not HasAttribute(game, "pov")) {
game.pov = jugador
}
</inituserinterface> Am I completely missing something? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
I think that the issue is in We have the lines (line 252 onwards):
Really, I suspect that this default name should be checked against some name taken from a template specified in the language file, trying "player" as a backup only if that one fails. Also, it would probably make sense if |
Beta Was this translation helpful? Give feedback.
-
Fixed in #1238 |
Beta Was this translation helpful? Give feedback.
I think that the issue is in
Core.aslx
.We have the lines (line 252 onwards):
Really, I suspect that this default name should be checked against some name taken from a template specified in the language file, trying "player" as a backup only if that one fails.
Also, it would probably make sense if
WorldModel/WorldModel/Core/Templates/Espanol.template
included a default value for thepov
attribute.