Trying to use the hasnotmoved attribute

In the games room there is an in-room description for the toy bear "A toy bear is in the corner". If I pick up the bear and drop it in the current room or another room then I don't want the same in-room description.

I tried this:
{if not (Toy Bear.hasbeenmoved:A Big Toy Bear is in the corner}

After the bear has been picked up and dropped I still get the same in-room description that the bear is in the corner
and I get "you can see a toy bear" after I have dropped a bear (with the Scenery box ticked for the bear). This could be due to no in-room description replacement text if the hasbeenmoved condition passes.
I could write script to be activated when the bear is picked up but I don't know if/how you change the in-room description in the script.


{if not (Toy Bear.hasbeenmoved:A Big Toy Bear is in the corner}

I think you've got an extra bracket there. If there isn't an object named (Toy Bear, then {if treats all of its attributes as false.

and I get "you can see a toy bear" after I have dropped a bear (with the Scenery box ticked for the bear)

The "take" command removes the scenery flag from objects that are taken.

You probably want to give it a "when dropped" script, something like:

this.parent = destination
this.scenery = true

or add this.scenery = true to its changedparent script attribute.


Hi arangel.

I get this error:
Error running script: Error compiling expression 'destination': Unknown object or variable 'destination'
when adding:
this.parent = destination
this.scenery = true

However if I just use "this.scenery = true" I have no problems
So I'm wondering "if this.parent = destination" is needed


Ah, my mistake.

In the drop script, setting the destination is necessary. In the ondrop script (which I'd forgotten about), it is done for you.

Note that if the player puts the bear in a container, the "drop" script is run but not the "ondrop"; so it will still be scenery (this might be the behaviour you want; if not, you'd probably have to use either the "drop" or "changedparent" scripts - and maybe use those scripts to change the in-room description as well)


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums