御世話になっております。
バグなのかいまひとつわからない状況でございますが、いままでは支障なく行えていた事が出来ない状態になりましたので、ご報告を兼ねまして記載させていただいております。
SITすると起動するポーズボールに入れておいたスクリプトが、働かなくなりました。
衣装合わせ用に使っていたもので、そのボールへ座ると(SIT)基本姿勢で立ち姿勢のまま固定となるものでした。
以前は問題なく作用していたのですが、本日は何度やっても作用せず、普通に着席するポーズとなってしまっております。
オブジェクトの中のスクリプトと同封しておりますポーズのアニメーションにつきましては、そのアニメーション単独ではIW内で問題なく機能しており再生できております。
オブジェクトに収めたスクリプトは以下のとおりです。
------(ここから)-------
string HOVER_TEXT = "ぽーずぼーる"; ///// floating text
string SIT_TEXT = ""; ///// sit text
vector TEXT_COLOR = <1.0, 1.0, 1.0>;
string ANIMATION_NAME; ///// animation file
key USER = NULL_KEY;
vector USER_POSITION = <0.0, 0.0, -0.2>; ///// positon
vector USER_ROTATE = <0.0, 0.0, 0.0>; ///// rotate (not need to change)
hide() {
llSetText("", TEXT_COLOR, 1);
llSetAlpha(0, ALL_SIDES);
}
show() {
llSetText(HOVER_TEXT, TEXT_COLOR, 1);
llSetAlpha(1.0, ALL_SIDES);
}
check_amimation() {
integer TOTAL_ANIMATION = llGetInventoryNumber(INVENTORY_ANIMATION);
if (TOTAL_ANIMATION == 0) { llOwnerSay("Could not find the animation file."); }
else if (TOTAL_ANIMATION > 1) { llOwnerSay("This script can have only one animation in contents. You currently have " + (string)TOTAL_ANIMATION + ". Please delete the excess animations."); }
else { ANIMATION_NAME = llGetInventoryName(INVENTORY_ANIMATION, 0); }
}
default {
on_rez (integer params) { llResetScript(); }
state_entry() {
llSitTarget(USER_POSITION, llEuler2Rot(USER_ROTATE * DEG_TO_RAD));
llSetText(HOVER_TEXT, TEXT_COLOR, 1);
llSetSitText(SIT_TEXT);
check_amimation();
}
changed(integer change) {
if(change == CHANGED_INVENTORY) {
llSleep(2.0);
llResetScript();
}
if (change & CHANGED_LINK) {
key AV = llAvatarOnSitTarget();
if (USER != NULL_KEY) {
if (AV == NULL_KEY) {
llStopAnimation(ANIMATION_NAME);
show();
USER = NULL_KEY;
}
}
else {
if (AV != NULL_KEY) {
USER = AV;
llRequestPermissions(USER, PERMISSION_TRIGGER_ANIMATION);
}
}
}
}
run_time_permissions(integer perm) {
key PERM_KEY = llGetPermissionsKey();
if (PERM_KEY == USER) {
if (perm & PERMISSION_TRIGGER_ANIMATION) {
list AMIMATIONS = llGetAnimationList(USER);
integer i;
for (i = 0; i < llGetListLength(AMIMATIONS); i++) {
llStopAnimation(llList2Key(AMIMATIONS, i));
show();
}
llStartAnimation(ANIMATION_NAME);
hide();
}
}
}
}
---------(↑ここまで)--------
作用していたスクリプトがなぜか無視されて普通の着席姿勢になってしまいます。
どこをどのようにすればこの症状を解消できるのか、お教えただけましたら幸いでございます。
お手数をお掛けいたしますが宜しくお願いいたします。