Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Object Rezzing and Control

Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-02-2007 11:48
I have a problem understanding the cause of a script failure to restart.

An object rezzing script in a prim upon command rezzes a separate prim object.

This "ObjRez" script then sets itself to wait using
llSetScriptState(llGetScriptName(),FALSE).
In this same object rezzing prim is a second script "RezRcv" which waits on an object_rez event from the object rezzed. When the event occurs it llSleeps(0.4) and then issues a
llSetScriptState("ObjRez",TRUE).

Now the problem is that on occasions the object rezzing prim never gets set to run again. This obviously causes the whole system to fail.

Are there any pitfalls in the method I have adopted?
Could it be better scripted some other way?

ObjRez
CODE

. . .
llRezObject(ColPiece,(Pos + vtemp),ZERO_VECTOR,ZERO_ROTATION,itemp);
llSetScriptState(llGetScriptName(),FALSE);
. . .


RezRcv
CODE

default
{
state_entry()
{
}

object_rez(key id)
{
llSleep(0.4);
llSetScriptState("ObjRez",TRUE);
}
}


any help appreciated.
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
11-02-2007 13:21
llSetScriptState does not reset the script, only stops it running where it's at.... when set to true it'll restart the named script right where it left off.

rather than have 2 scripts in your object rezzor, why not just flip to a waiting state with a listen, the either resets the script when it hears the callback from the rezzed object, or calls state default?

even simpler would be to just leave it run, and have the script listen for an additional command from the new object like
llListen( some-channel, "object name", "" , "continue" );
and then run whatever additional code you have from there (example,
give inventory etc)
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -
Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-02-2007 16:29
From: Void Singer
llSetScriptState does not reset the script, only stops it running where it's at.... when set to true it'll restart the named script right where it left off.
There is no intention to Reset the script just stop it will there is the known rez delay. Not waiting results in equally disastrous script timing confusion.

From: Void Singer
rather than have 2 scripts in your object rezzor, why not just flip to a waiting state with a listen, the either resets the script when it hears the callback from the rezzed object, or calls state default?
This is worth following up, I will try that, Thanks.

From: Void Singer
even simpler would be to just leave it run, and have the script listen for an additional command from the new object like
llListen( some-channel, "object name", "" , "continue" );
and then run whatever additional code you have from there (example,
give inventory etc)
Leaving it running has the disastrous results mentioned above so I am unsure what you mean by "leaving it running". It needs to do other things such notifying a different script in a third prim that it can start processing commands from the users. These commands would be errors if allowed to precede the completion of the rezzing of the prim. Perhaps you could explain what you meant?
Ravanne Sullivan
Pole Dancer Extraordinair
Join date: 10 Dec 2005
Posts: 674
11-02-2007 17:12
Why are you stopping the running of the script at all? Leave it running and use an object_rez event in it to control proceeding to issue whatever commands are required. When you stop a script running it stops in whatever stae it was in at that time and starts in that same state. Do not assume that it will continue processing from the point you stopped it since the state may not be what you want it to be.
_____________________
Ravanne's Dance Poles and Animations

Available at my Superstore and Showroom on Insula de Somni
http://slurl.com/secondlife/Insula de Somni/94/194/27/
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
11-02-2007 17:14
From: Gregory McLeod
Leaving it running has the disastrous results mentioned above so I am unsure what you mean by "leaving it running". It needs to do other things such notifying a different script in a third prim that it can start processing commands from the users. These commands would be errors if allowed to precede the completion of the rezzing of the prim. Perhaps you could explain what you meant?


if you move the post rez functions (like notifying your 3rd script) to the listen event (triggered by the newly rezed object) you don't have to worry about it still running

example
objectA rezzes objectB
objectB, on rez, notifies objectA that it's available
objectA processes msg from B, and sends msg to objectC

your current method
objectA rezzes B, turns off, ....
objectB msgs script 2 in A,
script 2 turns script 1 back on
script 1 .... notifies objectC
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
11-02-2007 18:05
From: Ravanne Sullivan
Why are you stopping the running of the script at all? Leave it running and use an object_rez event in it to control proceeding to issue whatever commands are required. When you stop a script running it stops in whatever stae it was in at that time and starts in that same state. Do not assume that it will continue processing from the point you stopped it since the state may not be what you want it to be.

object_rez fires when the llRez* command fires, so it may go off before the object is actually fully rezzed or scripts in it are running... and even if the rez fails.. so it's not very reliable for things that communicate back and forth...or well, reliable at all in the case of rez failures
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -
Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-03-2007 02:06
From: Void Singer
if you move the post rez functions (like notifying your 3rd script) to the listen event (triggered by the newly rezed object) you don't have to worry about it still running

example
objectA rezzes objectB
objectB, on rez, notifies objectA that it's available
objectA processes msg from B, and sends msg to objectC

your current method
objectA rezzes B, turns off, ....
objectB msgs script 2 in A,
script 2 turns script 1 back on
script 1 .... notifies objectC
I understand what you mean now. It is amazing how embedded an idea can become when coding. Another case for me to investigate. Thanks
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
11-03-2007 08:30
From: Gregory McLeod
I understand what you mean now. It is amazing how embedded an idea can become when coding. Another case for me to investigate. Thanks

lol I did the exact same thing the other day, running list comparisons when all I needed was a quickie string comparision
_____________________
|
| . "Cat-Like Typing Detected"
| . This post may contain errors in logic, spelling, and
| . grammar known to the SL populace to cause confusion
|
| - Please Use PHP tags when posting scripts/code, Thanks.
| - Can't See PHP or URL Tags Correctly? Check Out This Link...
| -
Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-03-2007 08:37
lol
Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-04-2007 02:21
From: Void Singer
if you move the post rez functions (like notifying your 3rd script) to the listen event (triggered by the newly rezed object) you don't have to worry about it still running

example
objectA rezzes objectB
objectB, on rez, notifies objectA that it's available
objectA processes msg from B, and sends msg to objectC

your current method
objectA rezzes B, turns off, ....
objectB msgs script 2 in A,
script 2 turns script 1 back on
script 1 .... notifies objectC
Following up on my previous post concerning this solution I have found it impossible to achieve.

objectA rezzes objectB
objectB, on rez, notifies objectA that it's available
then the problem
to receive the notification ObjRez must run the event handler code section which loses the position of the original rez command.
Unless you know of a way to store the position in the code that a continuation can begin at I can't see a way to implement your useful contribution.

The original script ObjRez generates up to 15 rezzes while executing for one input from the user/player which may be why it can't get it to work.

Changing state has the same problem I need to keep the 'state' (status) of the script after the llRezObject while switching from the 'default' state to the 'wait' state and then restore it on return from the 'wait' state.

I still need help.
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
11-04-2007 07:29
Try looking in this thread. It shows an example of rezzing using listens and another using object_rex:

/54/80/220084/1.html

If that doesn't help then post your code here and we can more clearly help straighten it out.
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime.
From: someone
I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-04-2007 08:12
From: Jesse Barnett
Try looking in this thread. It shows an example of rezzing using listens and another using object_rex:

/54/80/220084/1.html

If that doesn't help then post your code here and we can more clearly help straighten it out.
I nearly replied that I couldn't understand it until I realised it stretched onto a second page. Thanks for that but it doesn't work in my situation.

Standby for scripts
Oh I wish those Lindens would fix whatever it is that stops them allowing BBCodes.

Consider a multi prim object one of whom has the following two scripts in it.
ObjRez
CODE

// Global Constants
integer CHANNEL4321 = 4321; // Prefix receiving channel
// Global Variables
integer Prefix; // Prefix for llwhisper commands
integer CHANNEL1001; // INPUT Rezzing channel
integer CHANNEL2206; // OUTPUT Setup restart channel
integer CHANNEL2209; // OUTPUT Play continue channel
string ColPiece; // Color of piece to be rezzed
vector Pos; // Position of rezzing object
list PC2_61; // Position of pieces 2 - 61
list PC62_122; // Position of pieces 62 - 122
// Functions
Init2_61()
{
PC2_61 =
[< 1.11000, 0.00000,0.390>,< 0.97125,-0.08057,0.390>,< 0.97125, 0.08057,0.390>, // 002-004
< 0.83250,-0.16114,0.390>,< 0.83250, 0.00000,0.390>,< 0.83250, 0.16114,0.390>, // 005-007
< 0.69375,-0.24171,0.390>,< 0.69375,-0.08057,0.390>,< 0.69375, 0.08057,0.390>, // 008-010
< 0.69375, 0.24171,0.390>,< 0.55500,-0.96686,0.390>,< 0.41625,-0.88629,0.390>, // 009-013
< 0.55500,-0.80571,0.390>,< 0.27750,-0.80571,0.390>,< 0.41625,-0.72514,0.390>, // 014-016
< 0.55500,-0.64457,0.390>,< 0.13875,-0.72514,0.390>,< 0.27750,-0.64457,0.390>, // 017-019
< 0.41625,-0.56400,0.390>,< 0.55500,-0.48343,0.390>,<-0.55500,-0.96686,0.390>, // 020-022
<-0.55500,-0.80571,0.390>,<-0.41625,-0.88629,0.390>,<-0.55500,-0.64457,0.390>, // 023-025
<-0.41625,-0.72514,0.390>,<-0.27750,-0.80571,0.390>,<-0.55500,-0.48343,0.390>, // 026-028
<-0.41625,-0.56400,0.390>,<-0.27750,-0.64457,0.390>,<-0.13875,-0.72514,0.390>, // 029-031
<-1.11000, 0.00000,0.390>,<-0.97125, 0.08057,0.390>,<-0.97125,-0.08057,0.390>, // 032-034
<-0.83250, 0.16114,0.390>,<-0.83250, 0.00000,0.390>,<-0.83250,-0.16114,0.390>, // 035-037
<-0.69375, 0.24171,0.390>,<-0.69375, 0.08057,0.390>,<-0.69375,-0.08057,0.390>, // 038-040
<-0.69375,-0.24171,0.390>,<-0.55500, 0.96686,0.390>,<-0.41625, 0.88629,0.390>, // 041-043
<-0.55500, 0.80571,0.390>,<-0.27750, 0.80571,0.390>,<-0.41625, 0.72514,0.390>, // 044-046
<-0.55500, 0.64457,0.390>,<-0.13875, 0.72514,0.390>,<-0.27750, 0.64457,0.390>, // 047-049
<-0.41625, 0.56400,0.390>,<-0.55500, 0.48343,0.390>,< 0.55500, 0.96686,0.390>, // 050-052
< 0.55500, 0.80571,0.390>,< 0.41625, 0.88629,0.390>,< 0.55500, 0.64457,0.390>, // 053-055
< 0.41625, 0.72514,0.390>,< 0.27750, 0.80571,0.390>,< 0.55500, 0.48343,0.390>, // 056-058
< 0.41625, 0.56400,0.390>,< 0.27750, 0.64457,0.390>,< 0.13875, 0.72514,0.390> // 059-061
];
} // end of Init2_61 block

Init62_122()
{
PC62_122 =
[< 0.55500,-0.32229,0.390>,< 0.55500,-0.16114,0.390>,< 0.55500, 0.00000,0.390>, // 062-064
< 0.55500, 0.16114,0.390>,< 0.55500, 0.32229,0.390>,< 0.41625, 0.40286,0.390>, // 065-067
< 0.27750, 0.48343,0.390>,< 0.13875, 0.56400,0.390>,< 0.00000, 0.64457,0.390>, // 068-070
<-0.13875, 0.56400,0.390>,<-0.27750, 0.48343,0.390>,<-0.41625, 0.40286,0.390>, // 071-073
<-0.55500, 0.32229,0.390>,<-0.55500, 0.16114,0.390>,<-0.55500, 0.00000,0.390>, // 074-076
<-0.55500,-0.16114,0.390>,<-0.55500,-0.32229,0.390>,<-0.41625,-0.40286,0.390>, // 077-079
<-0.27750,-0.48343,0.390>,<-0.13875,-0.56400,0.390>,< 0.00000,-0.64457,0.390>, // 080-082
< 0.13875,-0.56400,0.390>,< 0.27750,-0.48343,0.390>,< 0.41625,-0.40286,0.390>, // 083-085
< 0.41625,-0.24171,0.390>,< 0.41625,-0.08057,0.390>,< 0.41625, 0.08057,0.390>, // 086-088
< 0.41625, 0.24171,0.390>,< 0.27750, 0.32229,0.390>,< 0.13875, 0.40286,0.390>, // 089-091
< 0.00000, 0.48343,0.390>,<-0.13875, 0.40286,0.390>,<-0.27750, 0.32229,0.390>, // 092-094
<-0.41625, 0.24171,0.390>,<-0.41625, 0.08057,0.390>,<-0.41625,-0.08057,0.390>, // 095-097
<-0.41625,-0.24171,0.390>,<-0.27750,-0.32229,0.390>,<-0.13875,-0.40286,0.390>, // 098-100
< 0.00000,-0.48343,0.390>,< 0.13875,-0.40286,0.390>,< 0.27750,-0.32229,0.390>, // 101-103
< 0.27750,-0.16114,0.390>,< 0.27750, 0.00000,0.390>,< 0.27750, 0.16114,0.390>, // 104-106
< 0.13875, 0.24171,0.390>,< 0.00000, 0.32229,0.390>,<-0.13875, 0.24171,0.390>, // 107-109
<-0.27750, 0.16114,0.390>,<-0.27750, 0.00000,0.390>,<-0.27750,-0.16114,0.390>, // 110-112
<-0.13875,-0.24171,0.390>,< 0.00000,-0.32229,0.390>,< 0.13875,-0.24171,0.390>, // 113-115
< 0.13875,-0.08057,0.390>,< 0.13875, 0.08057,0.390>,< 0.00000, 0.16114,0.390>, // 116-118
<-0.13875, 0.08057,0.390>,<-0.13875,-0.08057,0.390>,< 0.00000,-0.16114,0.390>, // 119-121
< 0.00000, 0.00000,0.390> // 122
];
} // end of Init62_122 block

Init()
{
CHANNEL1001 = Prefix + 1001;
CHANNEL2206 = Prefix + 2206;
CHANNEL2209 = Prefix + 2209;
llListen(CHANNEL4321,"",NULL_KEY,"");
llListen(CHANNEL1001,"",NULL_KEY,"");
} // end of Init block

// States
default
{
state_entry()
{
Pos = llGetPos();
Init2_61();
Init62_122();
Init();
} // end of state_entry block

on_rez(integer start_param)
{
Pos = llGetPos();
Init2_61();
Init62_122();
Init();
} // end of on_rez block

touch_start(integer total_number)
{
// llOwnerSay("Touched!");
} // end of touch_start block

listen(integer channel, string name, key id, string message)
{
if(channel == CHANNEL1001)
{
if(llGetSubString(message,0,2) == "Add")
{
if(llGetSubString(message,6,8) == "Red")
{
ColPiece = "RedPiece";
}else
if(llGetSubString(message,6,8) == "Yel")
{
ColPiece = "YelPiece";
}else
if(llGetSubString(message,6,8) == "Grn")
{
ColPiece = "GrnPiece";
}else
if(llGetSubString(message,6,8) == "Cyn")
{
ColPiece = "CynPiece";
}else
if(llGetSubString(message,6,8) == "Blu")
{
ColPiece = "BluPiece";
}else
if(llGetSubString(message,6,8) == "Mag")
{
ColPiece = "MagPiece";
}else ColPiece = "Piece";
Pos = llGetPos();
integer itemp = (integer)llGetSubString(message,3,5);
if (itemp >= 2 && itemp <= 61)
{
vector vtemp = llList2Vector(PC2_61,itemp - 2);
llRezObject(ColPiece,(Pos + vtemp),ZERO_VECTOR,ZERO_ROTATION,Prefix + 3000 + itemp);
llSetScriptState(llGetScriptName(),FALSE);
llWhisper(CHANNEL2206,"Restart");
llWhisper(CHANNEL2209,"Continue");
}else // end of 2 - 61 block
if (itemp >= 62 && itemp <= 122)
{
vector vtemp = llList2Vector(PC62_122,itemp - 62);
llRezObject(ColPiece,(Pos + vtemp),ZERO_VECTOR,ZERO_ROTATION,Prefix + 3000 + itemp);
llSetScriptState(llGetScriptName(),FALSE);
llWhisper(CHANNEL2206,"Restart");
llWhisper(CHANNEL2209,"Continue");
}else // end of 62 - 122 block
{
llSay(0,"SERIOUS ERROR report this message to Gregory McLeod");
llSay(0,(string)Prefix + "Add number less than 2 or greater than 122");
llSay(0,"Script stopping until corrected!!!!");
llSetScriptState(llGetScriptName(),FALSE);
}
} // end of Add blocks
}else // end of CHANNEL1001 block
if (channel == CHANNEL4321)
{
if (llGetSubString(message,0,5) == "Prefix")
{
llOwnerSay("ObjRez.Prefix: " + (string)Prefix);
}
}
} // end of listen event handler

link_message(integer sender_number,integer number,string message,key ID)
{
if(sender_number == LINK_ROOT && message == "PfxLod")
{
Prefix = number;
Init();
}
}
} // end of default state
[\code]

RezRcv
CODE

// Global constants
// Global variables
// Functions
// States
default
{
state_entry()
{
}

object_rez(key id)
{
llSleep(0.4);
llSetScriptState("ObjRez",TRUE);
}
}
[\code]

The pieces referred to in the ObjRez script are contained within the prim that contains ObjRez and rezRcv and contain the following code.
CODE

// Global Constants
integer CHANNEL6543 = 6543;
// Global Variables
integer Prefix; // default prefix
integer CHANNEL2109; // OUTPUT Notify channel
integer CHANNEL2209; // Notify channel for script state start
integer CHANNEL3XXX; // INPUT channel
integer Loc_start_param; // Local copy of start_param
integer Flashing; // Control for flashing
string Status; // Status: Col, Dim, Fls or Mpt
// Functions
Init()
{
CHANNEL2109 = Prefix + 2109;
CHANNEL2209 = Prefix + 2209;
} // end of Init

string LPADS(string src)
{
return llGetSubString("000" + src, -3, -1);
}

// States
default
{
state_entry()
{
llListen(CHANNEL6543,"",NULL_KEY,"");
} // end of state_entry handler

on_rez(integer start_param)
{
Loc_start_param = start_param % 10000;
Prefix = start_param - Loc_start_param;
Init();
CHANNEL3XXX = start_param;
llListen(CHANNEL3XXX,"",NULL_KEY,"");
} // end of on_rez event handler

touch_start(integer total_number)
{
llWhisper(CHANNEL2109,"Tch" + LPADS((string)(CHANNEL3XXX - Prefix - 3000)) + (string)llDetectedKey(0));
} // end of touch_start event handler

listen(integer channel, string name, key id, string message)
{
if (channel == CHANNEL3XXX && message == "Dim")
{
Status = "Dim";
llSetAlpha(0.5,ALL_SIDES);
llSetTimerEvent(0.0);
llWhisper(CHANNEL2209,"Continue");
}else // end of DIMmed block
if (channel == CHANNEL3XXX && message == "Fls")
{
Status = "Fls";
llSetTimerEvent(0.5);
llWhisper(CHANNEL2209,"Continue");
}else // end of FLaShing block
if (channel == CHANNEL3XXX && message == "Col")
{
llSetAlpha(1.0,ALL_SIDES);
Status = "Col";
llWhisper(CHANNEL2209,"Continue");
llSetTimerEvent(0.0);
}else // end of COLored block
if (channel == CHANNEL3XXX && message == "Mpt")
{
llWhisper(CHANNEL2209,"Continue");
llDie();
}else // end of eMPTy block
if (channel == CHANNEL6543 && message == "Prefix")
{
llOwnerSay((string)CHANNEL3XXX + ".Prefix: " + (string)Prefix);
} // end of CHANNEL6543 block
} // end of Listen event handler

timer()
{
if (Flashing == 0)
{
llSetAlpha(0.0,ALL_SIDES);
Flashing = 1;
}else
{
llSetAlpha(1.0,ALL_SIDES);
Flashing = 0;
}
} // end of timer event handler
} // end of default state
[\code]

The problem re-stated is that on odd occasions the ObjRez script never gets restarted by the RezRcv script. I am not sure what happens. It is very difficult to repeat the user's actions and timing while debugging so it is not yet clear whether the object_rez is getting lost or being received and not acted upon or what.

Any time I use the object my input never causes the failure and I am resorting to trying to capture what input's the users have made to deterine the cause.

Any help appreciated.
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
11-04-2007 16:12
From: Gregory McLeod
I nearly replied that I couldn't understand it until I realised it stretched onto a second page.

Yes I was having more then a couple of blond moments in that thread:)
From: Gregory McLeod
The problem re-stated is that on odd occasions the ObjRez script never gets restarted by the RezRcv script. I am not sure what happens. It is very difficult to repeat the user's actions and timing while debugging so it is not yet clear whether the object_rez is getting lost or being received and not acted upon or what.

Any time I use the object my input never causes the failure and I am resorting to trying to capture what input's the users have made to deterine the cause.

Any help appreciated.


I just ran your scripts in world and was able to pickup on one problem right off the bat.
If someone does a typo while entering the info or even an incomplete entry such as:

/1001 Add

Then your ObjRez script is turned off. While RezRcv will only turn it back on if ObjRcv successfully rezzes an object. I might suggest forgoing turning off the script and going with turning on the listens in a touch event and setting an llSetTimerEvent there that will turn off the listens at some point?
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime.
From: someone
I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-05-2007 01:31
From: Jesse Barnett
Yes I was having more then a couple of blond moments in that thread:)


I just ran your scripts in world and was able to pickup on one problem right off the bat.
If someone does a typo while entering the info or even an incomplete entry such as:

/1001 Add

Then your ObjRez script is turned off. While RezRcv will only turn it back on if ObjRcv successfully rezzes an object. I might suggest forgoing turning off the script and going with turning on the listens in a touch event and setting an llSetTimerEvent there that will turn off the listens at some point?
The user is not expected to enter any commands at all. The command /1001Add122Red is generated by another script and is not subject to human fallibilities. The users are not expected to touch the prim that contains the ObjRez script indeed the prim is hidden beneath the surface of the Root prim. This applies to all but those prims exposed to touching such as the piece prims and the initial color choice buttons which then change state and don't respond to touches.

This is indeed a complicated object, scripts for which have had to be split across 6 prims because of size limitations. Communication between them originally was by linked message but when this failed due to overloading the receiver queue length I changed to llWhisper on channels such as you saw but prefixed with an independent value.

I am not sure if you are able to advise on a method of implementing a way of eliminating the necessity (as I see it) of setting the script state false?

Thanks for taking the trouble to look into it.
Gregory McLeod
Registered User
Join date: 21 Oct 2006
Posts: 278
11-06-2007 13:29
Has anyone else got any views on how to track the missing
llSetScriptState("ObjRez",TRUE)?