La función hide espera un nodo, y lo que tule pasa es una cadena. Que la cadena sea un literal de un nodo no quiere decir que se convierta automáticamente.
Tal y como tienes el código tendrías que hacer algo como:
Código:
hide (execute valuehide)
O bien:
Código:
valuehide = execute ($ + b, text)
(La conversión as string no es necesaria).
Pero la función execute es una de lenta. Es mejor hacer algo así:
Código:
a = box size:15.
B = text size:20 pos:[0,20,0] text:box01.
Vaya = emptymodifier ().
add modifier b m.
valuehide = b, text.
Def = attributes test.
(Trollout rtest test t(t button b01 hide on b01 pressed do (t hide (getnodebyname valuehide) ) t)).
Custattributes, add Def.
Siempre y cuando quieras mantener el control por nombres, lo cual es un poco peligroso. Que ocurre si hay dos objetos con el mismo nombre en la escena? Que tanto execute como getnodebyname te devolverán el primero que encuentren (sospecho que por node id) independientemente de que sea el que tú pretendes.