With all of these you will need to substitute the IDs of the items and messages you create with the actual ID in your game. If the formatting gets messed up when this posts remember that there is one command per line in Conditions and Instructions of Events.
Finding object in another object that is present...
Create an Item for the cane with keyword CANE. (Cane Item ID = 1)
Create an item for the umbrella stand with keyword STAND and SPECIAL PICKUP checked and set the start location to where you want it to be. (Stand Item ID = 2, Start Location ID = 3)
Create Message "There is a silver cane in the stand" (Message Id = 4)
Create Message "The stand is empty and unremarkable" (Message ID = 5)
Create Message "The stand is unmovable. You cant get it" (Message ID = 6)
Create Event:
W1: Exam
W2: Stand
Conditions:
AT 3
ZERO 1
Instructions:
MSG 4
CREATE 1
SET 1
Create Event:
W1: Exam
W2: Stand
Conditions:
AT 3
NZ 1
Instructions:
MSG 5
Find the Event for GET STAND that was created for you when you created the Stand Item. The Conditions and Instructions should be blank at this point. Double click it to edit it and just add MSG 6 to the Instructions section.
You can add an appropriate message to Drop Stand if you want to.
The Zero, NZ and Set are acting on the user flags. Now, it seems a nasty little bug crept in that means the user flags are not cleared when starting a new test. To get around this for now use Location 2 as a dummy start point with one exit to your real start location.
Add a Status entry Priority 1 Section 1 with Condition AT 2 and then Instructions CLEAR 1 CLEAR 2 etc.
When you start the test issue a LOOK or L command so that the Status table get processed and it will clear the flags then move to your real start location. Don't go back to Location 2 unless you want to clear the flags again.
I will now be rearranging my priorities to get this bug squashed and release a patch.
I hope all that helps. I'll come back to this after the program patch is out to show another way to get this done.