2009年2月4日水曜日

お引越しスクリプト-3

コグマです

お引越しスクリプト3番目は販売用BOXのサイズ変更用です。
適当な店舗からコピーしてきた看板のセットを新しいモールのサイズに合わせるとき使用しています。



このスクリプトを放り込まれた看板は設定された高さに移動後
一番薄い辺をMinに、他をLargeにサイズ変更されます。
またrezされたばかりのBOX(3辺が均等)であればX軸方向を薄くします。
その後スクリプトは自分自身を削除します。

*注意
・string move="ON";//←これがONの場合は必ずfloat HIGHの値を適切に変更してください。
移動させたい高さになります。
設定を変え忘れると吹っ飛びます。
・”最も薄い辺”は0.5より短い辺で判断しています。
3編とも0.5より短い場合Xが最薄となります。

//ここから

float Min=0.2;//薄くする辺の長さ
float Large=1.0;//大きくする辺の長さ
float HIGH=52;//看板の設置高さ。変更し忘れると吹っ飛びます。
string move="ON";//高さ移動をするかどうか指定。変更しない時はON以外にしてください。
//string move="0";


vector SetPos;
vector GetSize;
vector SetSize;
list Size;
default
{
state_entry()
{
if(move=="ON"){
SetPos=llGetPos();
SetPos.z=HIGH;
llSetPos(SetPos);
}
Size = llGetPrimitiveParams([ PRIM_SIZE]);
GetSize=llList2Vector(Size, 0);
if (GetSize.x<0.5){
SetSize.x=Min;
SetSize.y=Large;
SetSize.z=Large;
}
else if (GetSize.y<0.5){
SetSize.x=Large;
SetSize.y=Min;
SetSize.z=Large;
}
else if(GetSize.z<0.5){
SetSize.x=Large;
SetSize.y=Large;
SetSize.z=Min;
}
else{
SetSize.x=Min;
SetSize.y=Large;
SetSize.z=Large;
}

llSetPrimitiveParams([PRIM_SIZE, SetSize]);
llRemoveInventory(llGetScriptName());
}


}


0 件のコメント:

コメントを投稿