リサイズの所謂"強制執行"が出来ないっチューことで
いまいち不人気の新型リサイズ命令ですが
平面マップも対応してないっちゅーやる気の無さっぷりなわけですよ
まぁそれだけ書くのもアレなので
誰得なソースを適当に置いときます
//どのプリムが縮小出来ない原因なのかを教えてくれるだけのスクリプト
default
{
state_entry()
{
llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_TEXT,"",<1,1,1>,1.0]);
integer nop=llGetNumberOfPrims();
vector scale;
do{
scale=llList2Vector(llGetLinkPrimitiveParams(nop,[PRIM_SIZE]),0);
if(scale.x<0.015||scale.y<0.015||scale.z<0.015){
llOwnerSay((string)nop+","+(string)scale+","+llGetLinkName(nop));
llSetLinkPrimitiveParamsFast(nop,[PRIM_TEXT,"FOUND\n",<1,1,1>,1>]);
// llSetLinkPrimitiveParamsFast(nop,[PRIM_TEXT,"FOUND\n",<1,1,1>,1.0,PRIM_SIZE,<0.015,0.015,0.015>]);
}
--nop;
}while(nop>0);
llRemoveInventory(llGetScriptName());
}
}
//[EOF}
コメントアウトしてる行を入れ替えると
縮小限界をちょい上げる程度にリサイズします
あとは各命令に関する適当な解説
こいつがメインとなるリサイズ命令
記述の仕方が現在のスケールからの相対なので
従来型の基準スケールから〇〇%プラスて感じのを
そのまま入れ替えるとかはちょい無理っすな
こいつの戻り値も現在スケールからの相対値なので
一気に限界までリサイズかけたいって場合を除き
あんまり使い道がありませぬ
llScaleByFactor(llGetMinScaleFactor( ));
ただこれ使ってもサイズ合わないなら
従来型の強制執行が可能なリサイザーになりますな
ってなところかねー
以上
0 件のコメント:
コメントを投稿