Forgot? Join

Scripting

LSL Guide

Every script function this grid actually runs, read straight from the region software rather than copied from a wiki — including the wolf* functions that exist only here.

Functions · Constants

wolfVisitorObject

Wolf Territories
integer wolfVisitorObject(integer enable)

enable TRUE marks this object (the one the script is in) as a visitor vehicle: while an avatar is seated on it, a region it crosses into judges parcel entry as if that avatar owned it (bans on the avatar, the owner's estate ban, scripts and auto-return still apply; an empty vehicle crosses by the usual rules). Only an object whose owner is the estate owner or an estate manager of the region it is in may be marked. The mark lasts over crossings and restarts, and is lost when the object changes owner or is copied or taken. FALSE takes the mark off. Returns 1, or 0 with wolfGetLastError saying why. Defined on Wolf_Api.wolfVisitorObject / WolfVisitorVehicle.

For rezzers that hand visitors a boat, car or plane. Something your rezzer rezzes belongs to you, not to the visitor who asked for it, so at each border the next region judges it as your object, and stops it wherever your objects may not go (a parcel with Object entry for its own group only, say), even where the visitor could take a boat of their own. Call wolfVisitorObject(TRUE) in the vehicle and, while someone sits on it, every region it crosses into judges parcel entry as if the person sitting on it owned it. Only an object whose owner is the estate owner or an estate manager of the region it is in can be marked, so nobody can use it to push their things onto other people's land: the land still has to accept the rider's own objects. Everything else stays: a rider banned from the estate or the parcel is refused, an estate that banned YOU still refuses your objects, the parcel's run-scripts setting and auto-return still apply, and an empty vehicle crosses by the normal rules. A marked vehicle that came in only as its rider's and is then left empty for a minute on land that does not take your objects is returned to you. The mark lasts across any number of borders and restarts; a copy, a new owner, or the vehicle taken into inventory and rezzed again needs it again (call it in on_rez). FALSE takes the mark off. Returns 1, or 0 with wolfGetLastError saying why. Regions take it up as they restart onto the new release; until then a region not yet updated still refuses the crossing.

Parameters

TypeName What it does
integer enable TRUE to mark the object the script is in as a visitor vehicle, FALSE to take the mark off.

Example

// Visitor boat (or car) for a rezzer - Wolf Territories, wolfVisitorObject.
//
// Put this script in the boat that your rezzer hands out, next to the boat's own engine script.
// A rezzed boat belongs to YOU (the rezzer's owner), not to the visitor who asked for it, so a
// neighbouring region used to judge it as your object and stop it at the border wherever your
// objects may not go. Marked as a visitor vehicle, the boat is judged at each border as if the
// person sitting on it owned it: it goes wherever that visitor could take a boat of their own.
//
// Rules the grid keeps:
//  - only works when you (the boat's owner) are the estate owner or an estate manager of the region
//    where the boat is rezzed;
//  - only while someone is sitting on it - an empty boat crosses by the normal rules, and one left
//    empty on land that does not take your objects goes back to you after about a minute;
//  - visitors banned from a region or parcel are still refused, and so is the boat if YOU are banned there;
//  - parcel auto-return and "run scripts" settings still apply.
// The mark stays on the boat across any number of borders; a copy, or the boat taken into
// inventory and rezzed again, has to call it again (on_rez below does that).

mark()
{
    if (!wolfVisitorObject(TRUE))
        llOwnerSay("This boat cannot be a visitor boat here: " + wolfGetLastError());
}

default
{
    state_entry()
    {
        mark();
    }

    on_rez(integer start_param)
    {
        mark();
    }
}

Take the mark off (an ordinary object again)

wolfVisitorObject(FALSE);
Energy 10

Ours alone. Grid features you will not find on any other OpenSimulator grid.

More in Wolf Territories