You could try something as below, using llAllowInventoryDrop() to let tenant drops texture into the box. You could put this function to enable drop anywhere in the script, however, it is most likely that it'll trigger TRUE when the tenant has just rented. Then there is a 3 minute time limit for him/her to drop texture(you could set any time of course); when the time is up, using llAllowInventoryDrop(FALSE) to stop anyone to drop anymore.
However, below is only the basic idea, there should be something more to consider, e.g.:
* delete the texture when the tenant rental is up.
* using a llMessageLinked() and the link_message() event to pass the timer, since you might already been using the timer for the rental etc..
Hope that helps

//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
default
{
state_entry()
{
}
money(key tenant,integer amt)
{
llAllowInventoryDrop(TRUE);
llSetTimerEvent(180.0); // 3 minutes
// ... do the rental procedures ...
}
timer()
{
llSetTimerEvent(0.0);
llAllowInventoryDrop(FALSE);
}
changed(integer change)
{
if (change & CHANGED_ALLOWED_DROP)
{
// someone dropped items, it changes the texture on the box
// this texture is the first texture in the box's content
// ALL_SIDES is the face on the box to change, you could use 0,1,2,etc..
llSetTexture(llGetInventoryName(INVENTORY_TEXTURE,0),ALL_SIDES);
}
}
}
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/