TADS HINTS 'N' TIPS From The Grue! This is just a little quickie but it can be rather useful. With Tads you can have an item that the player is told about in the main text description of a location. This item would have to be a fixeditem, otherwise it would appear in the 'You can see' list after the main text description. Now what do you do if you should want the item to be mentioned in the main text description and want the player to be allowed to take it also? This you shouldn't be able to do because if it is only mentioned in the main text it must be a fixeditem! You could always turn off the isListed value of the poster and make the poster an item rather than a fixeditem. What will happen then is that when the player examines his inventory he will NOT see a poster even though he has taken it. The solution is rather quite simple, for this example we will have a poster on a wall that the player can take. First write the room description with and without the poster being mentioned - corridor : room sdesc = "corridor" ldesc = { if (not poster.isgot) { "You are standing at the southern end of a long corridor, you can see a poster on the wall."; } else { "You are standing at the southern end of a long corridor."; } } The isgot will refer to whether the player has got the poster or not, and will display the appropriate room description. Now we will write the poster and its doTake routine... poster : item,readable noun = 'poster' sdesc = "poster" ldesc = "Subscribe to Syntax NOW!" location = corridor isgot = nil isListed = { if(self.isgot) { return(true); } else { return(nil); } } verDoTake(Me) = {} doTake(Me) = { if(not self.isgot) { "You peel the poster off the wall."; self.isgot:=true; poster.moveInto(Me); else { pass doTake; } } Now when the player takes the poster the isgot becomes true and the isListed value for the poster also become true. Now the room description no longer mentions the poster as the player has got it. Also when the player looks at his inventory or drops the poster he will now be able to see it, as once it has been taken it also becomes listed. Once you have done this it also becomes very easy for you to change things back if you allow the player to put the poster back on the wall. ------------------------------------------------------------------ Stop Press! Grue rang me just as I was finishing SynTax to say he'd found a bug in TADS! The message displayed when you use a bed is the same as when you use a chair and if you check adv.t, you'll find that the message about lying on a bed isn't accessed (the 'lie on' message is the same as the 'sit on' message). Now, this info was given over the phone so I hope I've got it dead right - if not, apologies, but you should be able to work out what to do from this. Change the code in adv.t as follows. doSiton( actor ) = { if (self.ischair) { "Okay, %you're% now sitting on "; self.thedesc; ". "; actor.travelTo( self ); } else { "Okay, %you're% now lying on "; self.thedesc; ". "; actor.travelTo( self ); } } Then add ischair = nil or ischair = true, isbed = nil or isbed = true as appropriate to the object code. - o -