I tested this out, it seems like it works fine. Here's the code I used, a very simplified version using the template game:
In the User.sc script:
(method (outfit newOutfit)
(var oldOutfit)
Print("change") //Debug
return(oldOutfit)
)
And in the room:
(instance RoomScript of Script
(properties)
(method (handleEvent pEvent)
(super:handleEvent(pEvent))
/*****************************************
* Handle the possible said phrases here *
*****************************************/
(if(Said('look'))
Print("You are in an empty room")
(send gEgo:outfit(800))
)
)
)
It does go through the outfit method & I get the 'change' debug message to pop up. Maybe there is something wrong with the preceding conditions in the 'if' statement?