You could get really creative, and have the tent destroyable. That way, anyone could come along and hack up the tent.
Or go a step farther and do a check for objects in a set distance from the tent.
if(%w1 == "#camp")
{
if(Player::getItemCount(%TrueClientId, Tent))
{
%camp = nameToId("MissionCleanup\\Camp" @ %TrueClientId);
if(%camp == -1)
{
if(fetchData(%TrueClientId, "zone") == "")
{
%a = distance to look for stuff
%set=newObject("set",SimSet);
%num=containerBoxFillSet(%set,$StaticObjectType | $ItemObjectType ,%pos,%a,%a,%a,%a);
if(!%num)
{
Client::sendMessage(%TrueClientId, $MsgBeige, "Setting up camp...");
%pos = GameBase::getPosition(%TrueClientId);
Player::decItemCount(%TrueClientId, Tent);
RefreshAll(%TrueClientId);
%group = newObject("Camp" @ %TrueClientId, SimGroup);
addToSet("MissionCleanup", %group);
schedule("DoCampSetup(" @ %TrueClientId @ ", 1, \"" @ %pos @ "\");", 2, %group);
schedule("DoCampSetup(" @ %TrueClientId @ ", 2, \"" @ %pos @ "\");", 10, %group);
schedule("DoCampSetup(" @ %TrueClientId @ ", 3, \"" @ %pos @ "\");", 17, %group);
schedule("DoCampSetup(" @ %TrueClientId @ ", 4, \"" @ %pos @ "\");", 20, %group);
}
else
Client::sendMessage(%TrueClientId, $MsgRed, "Stop trying to block places.");
deleteObject(%set);
}
else
Client::sendMessage(%TrueClientId, $MsgRed, "You can't set up a camp here.");
}
else
Client::sendMessage(%TrueClientId, $MsgRed, "You already have a camp setup somewhere.");
}
else
Client::sendMessage(%TrueClientId, $MsgRed, "You aren't carrying a tent.");
return;
}
or something like that.