integer comm_channel = -61347732; integer comm_channel2 = 61347732; integer me; integer listen_control; integer times_to_ask = 10; default { state_entry() { llListen(347, "", "", ""); } on_rez(integer param) { if(param != 0) { me = param; llSetObjectName((string)(me - comm_channel)); listen_control = llListen(me, "", "", ""); llShout(comm_channel2, (string)me); llSetTimerEvent(5.0); } } listen(integer chan, string name, key id, string msg) { if(msg == "die") { llDie(); } else if(msg == "clear") { llRemoveInventory(llGetScriptName()); } else if(chan == me) { list data = llParseStringKeepNulls(msg, ["|"], []); vector scale = (vector)llList2String(data, 0); if(scale.x < 0.01) { scale.x = 0.01; } if(scale.y < 0.01) { scale.y = 0.01; } if(scale.z < 0.01) { scale.z = 0.01; } float y_shear = (float)llList2String(data, 1); llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX, 0, <0.0, 1.0, 0.0>, 0.0, <0.0, 0.0, 0.0>, <1.0, 0.0, 0.0>, <0.0, y_shear, 0.0>, PRIM_SIZE, scale]); llSetObjectName("Object"); llRemoveInventory(llGetScriptName()); llListenRemove(listen_control); llSetTimerEvent(0.0); } } timer() { llShout(comm_channel2, (string)me); times_to_ask -= 1; if(times_to_ask <= 0) { llSetTimerEvent(0.0); llSay(DEBUG_CHANNEL, "no reply after 10 tries"); } } }