Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

particle systems changed

RaptonX Zorger
Registered User
Join date: 26 Jan 2006
Posts: 79
01-26-2007 15:13
I noticed that particle systems no longer stop if you put a llParticleSystem([]); I now have ot enter the count to zero to make it work.



also, target omega does not stop if you set all vectors to 0, but if you set it to a teeny number like 0.0000000000000000000001 it will stop..............


Was the particle system thing intensional?
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
01-26-2007 15:34
I noticed this as well.

It seems to be unpredictable. Repeating the llParticleSystem([]) sometimes fixes it, which made me think it was packetloss... but setting a "do-nothing" list always works, so it's probably a bug and I'll bug-report it.
Don Magojiro
Registered User
Join date: 28 Oct 2006
Posts: 16
01-26-2007 15:36
I was able to successfully use llParticleSystem([ ]); (note the space between the brackets)

This seems to work reliably for me.
Sean Martin
Yesnomaybe.
Join date: 13 Sep 2005
Posts: 584
01-26-2007 19:50
From: Don Magojiro
I was able to successfully use llParticleSystem([ ]); (note the space between the brackets)

This seems to work reliably for me.


I have this code in two different products. It's pretty simple. Both use the exact same code.
But one works and the other does not.
It's a bit odd how the same code can get different effects.

Have the Lindens even acknowledged this issue?
Or are they still ablivious to the fact because they test it and see a working version.
I haven't seen anything posted in the known issues or anything about a fix yet.

It sure is costing some people a lot of money. :mad:
_____________________
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
01-26-2007 21:27
From: Don Magojiro
I was able to successfully use llParticleSystem([ ]); (note the space between the brackets)


Here's all the code that parses that:

In indra.l:
CODE

"]" { count(); return(']'); }
"[" { count(); return('['); }

So the only tokens are '[' and ']'. There is no '[]' token.

In indra.y:
CODE

list_constant
: '[' list_entries ']'
{
$$ = new LLScriptSAList(gLine, gColumn, $2);
gAllocationManager->addAllocation($$);
}
| '[' ']'
{
$$ = new LLScriptSAList(gLine, gColumn, NULL);
gAllocationManager->addAllocation($$);
}
;

list_entries
: list_entry
{
$$ = $1;
}
| list_entry ',' list_entries
{
$$ = $1;
$1->addAssignable($3);
}
;

list_entry
: simple_assignable_no_list
{
$$ = $1;
}
;

So there's no '[' space ']' sequence.

Consequently, there is no way for the parser to tell "[ ]" from "[]". Period.
Sean Martin
Yesnomaybe.
Join date: 13 Sep 2005
Posts: 584
01-27-2007 19:39
I'm curious as to why this would even be changed? What part of the update has anything to do with particals?
And has anyone found a way around it yet?
_____________________
Sean Martin
Yesnomaybe.
Join date: 13 Sep 2005
Posts: 584
01-27-2007 20:23
Ok I did a little test and this is what I found.

Use a simple touch switch to turn on and off particals. For me it seems to work fine if it's left alone as is.

But now make that prim a child in a link set.
Make the parent send a link message to turn on and off particals and put a listener in the child prim that contains the partical script.
Using this code llParticleSystem([]); will no longer work for either the link messages OR the touch switch.
Why? :rolleyes:
_____________________