well my original theory was that when it called die the object wasnt being deleted from the asset server correctly or from the sim .... but after thinking it over i wasnt so sure .... anyway here's the code i was using as requested:
(sorry used my first version of the code when i posted instead of the one i ended up crashing sims with)
my main script:
vector Pos;
float Timeout = 60;
integer Ready = FALSE;
integer Sitting = FALSE;
default
{
timer()
{
if(Sitting == FALSE && Ready == FALSE)
llDie();
}
state_entry()
{
llSetTimerEvent(Timeout);
llSetSitText("Teleport");
llListen(88, "", "", "");
llSitTarget(<0,0,-0.3>, <0,0,0,1>);
llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_EMISSIVE_MASK|PSYS_PART_INTERP_COLOR_MASK,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE,
PSYS_PART_MAX_AGE, 2.25,
PSYS_PART_START_COLOR, <0,0.5,1>,
PSYS_PART_END_COLOR, <0,0.5,1>,
PSYS_PART_START_ALPHA, 1.0,
PSYS_PART_END_ALPHA, 0.0,
PSYS_PART_START_SCALE, <0.2, 0.2, 0>,
PSYS_SRC_BURST_RADIUS, 1.25,
PSYS_SRC_ANGLE_BEGIN, PI - PI/6,
PSYS_SRC_ANGLE_END, PI - PI/6,
PSYS_SRC_BURST_PART_COUNT, 2,
PSYS_SRC_BURST_SPEED_MIN, 0.0,
PSYS_SRC_BURST_SPEED_MAX, 0.0,
PSYS_SRC_OMEGA, <0,0,1>,
PSYS_SRC_BURST_RATE, 0.01,
PSYS_SRC_ACCEL, <0,0,1>]);
}
on_rez(integer P)
{
llResetScript();
}
listen(integer channel, string name, key id, string str)
{
if(llToLower(str)=="die")
{
llDie();
}
Pos = (vector)str;
if(Sitting==TRUE)
{
llSetTimerEvent(0.0);
llParticleSystem([]);
llMessageLinked(LINK_SET, 10, (string)Pos, "");
} else {
Ready = TRUE;
llSay(0, "Sit on the beam to teleport");
}
}
changed(integer p)
{
if(p & CHANGED_LINK) //someone sat on it.
{
if(llAvatarOnSitTarget()!=NULL_KEY)
{
if(llGetPermissions()&PERMISSION_TRIGGER_ANIMATION && llGetPermissionsKey()==llAvatarOnSitTarget()) {
llStopAnimation("sit");
llStartAnimation("stand");
} else {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
}
} else {
Sitting = FALSE;
if(llGetPermissionsKey()!=NULL_KEY)
{
llStopAnimation("stand");
}
}
if(Ready==TRUE)
{
llSetTimerEvent(0.0);
llParticleSystem([]);
llMessageLinked(LINK_SET, 10, (string)Pos, "");
} else
Sitting = TRUE;
}
}
run_time_permissions(integer P)
{
if(P & PERMISSION_TRIGGER_ANIMATION)
{
llStopAnimation("sit");
llStartAnimation("stand");
}
}
link_message(integer sender, integer num, string str, key id)
{
if(num==0 && str=="Die")
llDie();
}
}
simply adding in "llUnSit(llAvatarOnSitTarget());" above llDie() solved the crash problem here so i know it has something to do with an avitar being on the object on it's death.
i also had two mover scripts, one with and one without the llMessageLinked:
default
{
link_message(integer sender, integer num, string str, key id)
{
if(num==10)
{
vector P = (vector)str;
while(llGetPos()!=P)
llSetPos(P);
llSleep(0.2);
llMessageLinked(LINK_SET, 0, "Die", "");
}
}
}
And the Second:
default
{
link_message(integer sender, integer num, string str, key id)
{
if(num==10)
{
llSleep(0.1);
vector P = (vector)str;
while(llGetPos()!=P)
llSetPos(P);
}
}
}
Almost forgot to add aslo that in order for it to crash i had to teleport between 5 and 8 times. just say /88 then a vector to set it to teleport heh like "/88 <200,200,30>"