2009年9月29日火曜日

Couple Poses script

カップルボールには、アニメーションと一緒に
2つのスクリプトを入れる
1.SitOnAnimate v1
2.hide/show(public or private)

SitOnAnimate v1----
key owner;
key sitter;
 
string curanim;
 
default
{
on_rez(integer params){llResetScript();}
state_entry()
{
owner=llGetOwner();
vector eul = <0,0,0>; //45 degrees around the z-axis, in Euler form
eul *= DEG_TO_RAD; //convert to radians
rotation quat = llEuler2Rot(eul); //convert to quaternion
llSitTarget(<0,0,.75>,ZERO_ROTATION);
llSetText("",<0,0,0>,0);
}
 
touch_start(integer total_number){
 
}
 
changed(integer change) { // something changed
curanim=llGetInventoryName(INVENTORY_ANIMATION,0);
if (change & CHANGED_LINK) { // and it was a link change
llSleep(0.5); // llUnSit works better with this delay
if (llAvatarOnSitTarget() != NULL_KEY) { // somebody is sitting on me
sitter=llAvatarOnSitTarget();
llSleep(0.5);
llRequestPermissions(sitter, PERMISSION_TRIGGER_ANIMATION);
llStopAnimation("sit");
llStartAnimation(curanim);
llSetAlpha(0,ALL_SIDES);
}else{llStopAnimation(curanim);sitter=NULL_KEY;llSetAlpha(1,ALL_SIDES);}
}
}
}

hide/show(public or private)-----
key owner;
 
integer h_listen;
 
default
{
on_rez(integer params){llResetScript();}
 
state_entry()
{
llOwnerSay("say /1hide to hide me or /1show to show me");
llOwnerSay("To make the pose balls public hide/show say /1public");
llOwnerSay("To make the pose balls private hide/show say /1private");
owner = llGetOwner();
h_listen = llListen(1,"",owner,"");
}
 
listen(integer channel,string name, key id, string msg)
{
if(channel==1 && llToLower(msg)=="hide")
{
llSetAlpha(0,ALL_SIDES);
}
 
if(channel==1 && llToLower(msg)=="show")
{
llSetAlpha(1,ALL_SIDES);
}
 
if(channel==1 && llToLower(msg)=="public")
{
llListenRemove(h_listen);
h_listen = llListen(1,"",NULL_KEY,"");
 
}
 
if(channel==1 && llToLower(msg)=="private")
{
llListenRemove(h_listen);
h_listen = llListen(1,"",owner,"");
 
}
}
}
 

1 件のコメント: