ADRIFT Forum


The place to discuss the ADRIFT Interactive Fiction toolkit

Updated StandardLibrary

This forum is the place to learn about and discuss ADRIFT 5. Feel free to mention any bugs you find here, but please also add these to the Bugs & Enhancements list.

Please also refer to the ADRIFT 5 Wiki for more information.

Re: Updated StandardLibrary

Postby saabie » Mon Mar 09, 2020 9:07 am

Lazzah wrote:I have tested all my games on ADRIFT v.36 with saabie's updated Standard Library loaded. Of my 8 released games and one WIP, all but three load and run OK, a couple with some modifications to a few tasks as in previous messages. The three that do not load and run are THE AXE OF KOLT, DIE FEUERFAUST and THE FORTRESS OF FEAR. When I attempt to load any of these three game files I get a "Error loading Adventure: Object reference not set to an instance of an object."
I tested DIE FEUERFAUST with my new library and it looks like the update fails partway through updating the tasks. The problem seems to be that the standard library of the game has had several tasks deleted which my library expects to be there. It also looks like something has gone wrong previously that caused there to be five copies of the PlayerMovement and PutObjectsOnOthers tasks, four of which were then deleted.

Once I have finished the library and my runner I should be able to fix these files to make them compatible with the new library.
saabie
 
Posts: 1024
Joined: Fri Aug 12, 2011 2:07 am
Location: Adelaide, South Australia
Points: 50

Re: Updated StandardLibrary

Postby Denk » Mon Mar 09, 2020 10:57 am

I can only speak for myself but I will not update my old games to run with the new Standard Library. Then I would feel that I would need a whole new round of beta-testing since I tend to modify the Standard Library a lot in my games. You can easily avoid updating the Standard Library in your game by unticking all libraries before loading the adventure you want to work on. And ADRIFT does not update the library when running a blorb so to me, it isn't important to update the library in old games.
Having said that, I will definitely use the new standard library in all my new games, since it is a great improvement! :bravo:
----------------------------------------------------------------------
The Bash Saga:
1. The Dragon Diamond 2. The Way Home 3. Stone of Wisdom
----------------------------------------------------------------------
User avatar
Denk
 
Posts: 541
Joined: Mon Feb 22, 2016 6:21 pm
Location: Hjørring, Denmark
Points: 251

Re: Updated StandardLibrary

Postby Lazzah » Mon Mar 09, 2020 11:00 am

saabie wrote:
Lazzah wrote:I have tested all my games on ADRIFT v.36 with saabie's updated Standard Library loaded. Of my 8 released games and one WIP, all but three load and run OK, a couple with some modifications to a few tasks as in previous messages. The three that do not load and run are THE AXE OF KOLT, DIE FEUERFAUST and THE FORTRESS OF FEAR. When I attempt to load any of these three game files I get a "Error loading Adventure: Object reference not set to an instance of an object."
I tested DIE FEUERFAUST with my new library and it looks like the update fails partway through updating the tasks. The problem seems to be that the standard library of the game has had several tasks deleted which my library expects to be there. It also looks like something has gone wrong previously that caused there to be five copies of the PlayerMovement and PutObjectsOnOthers tasks, four of which were then deleted.

Once I have finished the library and my runner I should be able to fix these files to make them compatible with the new library.

Thanks saabie! :claps: :yeah: :D
The Axe of Kolt, The Spectre of Castle Coris, The Fortress of Fear, Die Feuerfaust, The Lost Children, Run, Bronwynn, Run, The Call of the Shaman, The Lost Labyrinth of Lazaitch, Magnetic Moon, Starship Quest, Revenge of the Space Pirates
User avatar
Lazzah
Moderator
 
Posts: 2393
Joined: Thu Mar 31, 2011 4:54 am
Location: Clacton-on-Sea, Essex
Points: 65

Re: Updated StandardLibrary

Postby Denk » Sat Mar 14, 2020 9:16 pm

saabie, a limitation in the standard library is that if an object and a character have exactly the same names, the character cannot be examined. The same problem is the case with "get objects" vs "get character" in your updated library. One solution is given here: http://forum.adrift.co/viewtopic.php?f=14&t=12667

It would be nice if this improvement could be included before the release of ADRIFT 5.0.36. Any chance you could implement it (or a better solution if you know one)?
----------------------------------------------------------------------
The Bash Saga:
1. The Dragon Diamond 2. The Way Home 3. Stone of Wisdom
----------------------------------------------------------------------
User avatar
Denk
 
Posts: 541
Joined: Mon Feb 22, 2016 6:21 pm
Location: Hjørring, Denmark
Points: 251

Re: Updated StandardLibrary

Postby saabie » Sat Mar 14, 2020 11:22 pm

OK, I've downloaded your example and added this to my to-do list.
saabie
 
Posts: 1024
Joined: Fri Aug 12, 2011 2:07 am
Location: Adelaide, South Australia
Points: 50

Re: Updated StandardLibrary

Postby Denk » Fri Sep 04, 2020 10:54 am

EDIT: I just saw that saabie has updated his library 4 hours ago on github ( https://github.com/saabie/ADRIFT-5 ) and it mentions changed priorities for ASK and TELL so everything might be fine now(?)

I found some issues with conversation in saabie's library (downloaded March 10, 2020)

It has problems with conversations when the player is in a location with two or more characters.

Example:
adrift Code: Select all
room
A man and a woman are here.  
 
> ask man about flowers
I'm not sure whom you want to ask.  the man and the woman are here.
 
> ask woman about flowers
I'm not sure whom you want to ask.  the man and the woman are here.
 
> ask about flowers
I'm not sure whom you want to ask.  a man and a woman are here.
 
> tell man about flowers
I'm not sure whom you want to tell.  the man and the woman are here.
 
> tell woman about flowers
I'm not sure whom you want to tell.  the man and the woman are here.
 
> tell about flowers
I'm not sure whom you want to tell.  the man and the woman are here.


The problem occurs because saabie has made the word "about" optional ( {about} ) in the TELL and ASK tasks. If the word "about" is made mandatory ( [about] ) everything works fine:
adrift Code: Select all
room
A man and a woman are here.    
 
> ask man about flowers
"The flowers are nice," says John.
 
> ask woman about flowers
Diana says: "I like flowers!"
 
> ask about flowers
Diana says: "I like flowers!"
 
> ask man about flowers
"The flowers are nice," says John.
 
> ask about flowers
"The flowers are nice," says John.
 
> tell man about flowers
"I agree," John says.
 
> tell woman about flowers
"I definitely agree!" Diana exclaims.


The simple solution is, as shown above, to make the word "about" mandatory in the ASK and TELL tasks. The commands also sound strange if the word "about" is ommited, e.g. ASK FLOWERS. It might be possible(?) to fix the conversation tasks while keeping "about" optional if someone should want that, but I would recommend to make "about" mandatory.
----------------------------------------------------------------------
The Bash Saga:
1. The Dragon Diamond 2. The Way Home 3. Stone of Wisdom
----------------------------------------------------------------------
User avatar
Denk
 
Posts: 541
Joined: Mon Feb 22, 2016 6:21 pm
Location: Hjørring, Denmark
Points: 251

Re: Updated StandardLibrary

Postby Denk » Fri Sep 04, 2020 11:07 am

Just an idea:

Especially people new to ADRIFT 5 don't understand why a specific task overriding Take Objects From Location (or Take Objects From Object) sometimes doesn't work. And even if they understand why, they might not know what to do about it, since you cannot override those tasks when the object is static.

Thus, in the Danish library, we have made a task called (translated): "Take STATIC objects". All it does is saying someting like "You cannot take %object%.Name". But the task "Take STATIC objects" can be overridden by specific tasks when the object is static.

Thus authors can easily give different messages and carry out tasks when the player types GET/TAKE "static object" (e.g. GET DOOR)

Perhaps it would be a good idea to have a "Take STATIC objects" task in the english standard library as well?
----------------------------------------------------------------------
The Bash Saga:
1. The Dragon Diamond 2. The Way Home 3. Stone of Wisdom
----------------------------------------------------------------------
User avatar
Denk
 
Posts: 541
Joined: Mon Feb 22, 2016 6:21 pm
Location: Hjørring, Denmark
Points: 251

Previous

Return to ADRIFT 5.0

Who is online

Users browsing this forum: Majestic-12 [Bot] and 4 guests