
Originally Posted by
Queex
* Special items that stay in the inventory and open up other menus when selected.
right. I assume you know how to create and fiddle around with your own special menus, so I'll skip that part.
to call that menu from an item when you select it is actually quite easy.
In function DropObject( idx ) in action.gs, insert the following highlighted code (assuming the item is ID 1000):
Code:
func DropObject( idx )
{
if(ObjGet(idx, O_ID)==1000)
{
OpenDialogNewMenu();
return;
}
if(!IsPlayerSafe() || !IsPlayerStable()) // don't drop if not safe
{
OpenDialogMessage("YOU CAN'T DROP\nTHIS NOW!");
return;
}
// try private function
id = ObjGet(idx, O_ID);
fid = gs_fid("DropObject_"+(str)id);
if(fid!=-1)
{
call(fid);
return;
}
DoDropObject(idx);
}
Obviously OpenDialogNewMenu(); would be the name of the fuction for the new menu 
if you still want to drop the item afterwards, lose the 'return;' bit of code.