Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Getprimitiveparams script buggy

Thili Playfair
Registered User
Join date: 18 Aug 2004
Posts: 2,417
06-03-2006 14:51
Ok messing around trying to find a prim parameter using this script

http://secondlife.com/badgeo/wakka.php?wakka=llGetPrimitiveParams


CODE

list GetPrimitiveParams(list input)
{
list output;
integer c = -llGetListLength(input);
integer flag;
integer side;
while(c<0)
{
flag = llList2Integer(input, c++); //pop the stack
if(llListFindList([PRIM_BUMP_SHINY, PRIM_COLOR, PRIM_TEXTURE, PRIM_FULLBRIGHT], [flag]) + 1)
{
side = llList2Integer(input, c++); //pop the stack
if(side == ALL_SIDES)
{
side = llGetNumberOfSides();
while(side--) //we return the sides in reverse order, easier to code; runs faster.
output += [flag, side] + llGetPrimitiveParams([flag, side ]);
}
else
output += [flag, side] + llGetPrimitiveParams([flag, side ]);
}
else
output += [flag] + llGetPrimitiveParams([flag]);
}
return output;
}
//Contributed by Strife Onizuka


Prob been awhile since it was added but it errors on the
while(c<0)

any tips?, :o trying destructive script skills of mine eep, and erk now it errored on something else..heee wops (tries again)
Osgeld Barmy
Registered User
Join date: 22 Mar 2005
Posts: 3,336
06-03-2006 23:45
i tested it, seems to work fine, here is what i used :)

CODE

list GetPrimitiveParams(list input)
{
list output;
integer c = -llGetListLength(input);
integer flag;
integer side;
while(c<0)
{
flag = llList2Integer(input, c++); //pop the stack
if(llListFindList([PRIM_BUMP_SHINY, PRIM_COLOR, PRIM_TEXTURE, PRIM_FULLBRIGHT], [flag]) + 1)
{
side = llList2Integer(input, c++); //pop the stack
if(side == ALL_SIDES)
{
side = llGetNumberOfSides();
while(side--) //we return the sides in reverse order, easier to code; runs faster.
output += [flag, side] + llGetPrimitiveParams([flag, side ]);
}
else
output += [flag, side] + llGetPrimitiveParams([flag, side ]);
}
else
output += [flag] + llGetPrimitiveParams([flag]);
}
llOwnerSay(llDumpList2String(output,","));
return output;
}
//Contributed by Strife Onizuka

default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}

touch_start(integer total_number)
{
GetPrimitiveParams([PRIM_POSITION]);
}
}