2008年04月05日
座ると笑い続けるスクリプト
アバターが座ると笑い続けるスクリプトが欲しいのですが、このスクリプトだと最初の数秒しか笑顔になりません。
どこをいじればよいでしょうか。よろしくお願いします。
key siton = NULL_KEY;
vector sit_pos = <0.0, 0.0, 0.1>;
vector sit_rot = <0.0, 0.0, .01>;
default {
state_entry(){
llSitTarget(sit_pos, llEuler2Rot(sit_rot * DEG_TO_RAD));
}
changed(integer change){
if (change & CHANGED_LINK) {
key av = llAvatarOnSitTarget();
if (siton != NULL_KEY) {
if (av == NULL_KEY) {
llStopAnimation("express_smile");
siton = NULL_KEY;
}
} else {
if (av != NULL_KEY) {
siton = av;
llRequestPermissions(siton, PERMISSION_TRIGGER_ANIMATION);
}
}
}
}
run_time_permissions(integer perm) {
key perm_key = llGetPermissionsKey();
if (perm_key == siton) {
if (perm & PERMISSION_TRIGGER_ANIMATION){
list anms = llGetAnimationList(siton);
integer i;
for (i = 0; i < llGetListLength(anms); i++){
llStopAnimation(llList2Key(anms, i));
}
llStartAnimation("express_smile");
}
}
}
}
どこをいじればよいでしょうか。よろしくお願いします。
key siton = NULL_KEY;
vector sit_pos = <0.0, 0.0, 0.1>;
vector sit_rot = <0.0, 0.0, .01>;
default {
state_entry(){
llSitTarget(sit_pos, llEuler2Rot(sit_rot * DEG_TO_RAD));
}
changed(integer change){
if (change & CHANGED_LINK) {
key av = llAvatarOnSitTarget();
if (siton != NULL_KEY) {
if (av == NULL_KEY) {
llStopAnimation("express_smile");
siton = NULL_KEY;
}
} else {
if (av != NULL_KEY) {
siton = av;
llRequestPermissions(siton, PERMISSION_TRIGGER_ANIMATION);
}
}
}
}
run_time_permissions(integer perm) {
key perm_key = llGetPermissionsKey();
if (perm_key == siton) {
if (perm & PERMISSION_TRIGGER_ANIMATION){
list anms = llGetAnimationList(siton);
integer i;
for (i = 0; i < llGetListLength(anms); i++){
llStopAnimation(llList2Key(anms, i));
}
llStartAnimation("express_smile");
}
}
}
}
テクスチェンジのHUDについて
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
ただ、強引な手法ではありますが1秒間隔くらいのタイマーを使って何度もllStartAnimationを実行してやれば、笑顔を続ける事もできるはずです。
その場合は「立った時にタイマー停止」する処理も忘れずに^^;