2009年04月23日

BackUPシステム

こんにちは~
またまたお聞きしたいのですが
今BackUPシステムなるものを作成してまして
どうしてもうまく動かない部分があります
どこが悪いのかお教えください~
宜しくお願いします~

integer touch_count=0;
integer use_hour=0;

default {
state_entry(){
llListen(-71,"","llGetOwnerKey()","");
}
on_rez(integer num){
llListen(-71,"","llGetOwnerKey()","");
}
listen(integer channel , string name , key id , string message){
list listMessage = llCSV2List(message);
if (llList2String(listMessage, 0) == (string)llGetOwner()){
llSetText(llList2String(listMessage, 1),<1.0,0.0,0.0>,1.0);
llSay(0, "Lv Data Clearing・・・・");
integer count = (integer)llList2String(listMessage, 1);
integer i;

for(i=0;i llSay(-10,"detadown");
string strMassage ="detadown";
llSay(-10, (string)llGetOwner() + "," + strMassage);//ここで止まってしまいます!!
}
state dead;
return;
}
}
}
state dead {
state_entry(){
llSay(-10,"check01");
string strMassage ="check01";
llSay(-10, (string)llGetOwner() + "," + strMassage);
llSay(0, "Lv Data Loading・・・・");
llListen(-71,"","llGetOwnerKey()","");
}
on_rez(integer num){
llListen(-71,"","llGetOwnerKey()","");
}
listen(integer channel , string name , key id , string message){
list listMessage = llCSV2List(message);
if (llList2String(listMessage, 0) == (string)llGetOwner()){
llSetText(llList2String(listMessage, 1),<1.0,0.0,0.0>,1.0);
integer count = (integer)llList2String(listMessage, 1);
integer i;
for(i=0;i llSay(-10,"detaup");
string strMassage ="detaup";
llSay(-10, (string)llGetOwner() + "," + strMassage);
}
llListenRemove(0);
llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
}
}
run_time_permissions(integer p){
if (p & PERMISSION_ATTACH){
llDetachFromAvatar();
llDie();
}else{llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
}
}
attach(key attached) {
if (attached != NULL_KEY) {
llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
} else {
llDie();
}
}
}


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by Tsubaki  at 12:42 │Comments(6)スクリプト関連

この記事へのコメント
ごめんなさいスクリプトをコピーするときに
ぬけていました〜

for(i=0;i<count;i--){
llSay(-10,"detadown");
string strMassage ="detadown";
llSay(-10, (string)llGetOwner() + "," + strMassage);
}
が正しいです〜
エラーはしないのですが、この処理がすんで
state deadへ処理が進まないんです〜
Posted by Tsubaki at 2009年04月23日 13:32
buck upシステムがどういうのかわかんないんですけど

llListen(-71,"","llGetOwnerKey()","");

"llGetOwnerKey()" っておかしくないですかね・・・

""はいてますしllGetOwnerではないんですよね?
Posted by i at 2009年04月23日 15:51
ですね〜
しかしながらその辺はうまく動いてくれてますね
現状で問題なのが、ループ終了時に次ぎの動作に
行ってくれない部分で悩んでいます〜
state dead;
return;
をfor文の中に入れてみると、最後までは
いくのですが、今度はforのループが一回しか
動きませんでした〜
今回のスクリプトはなかなか手強いですね^^;
Posted by Tsubaki at 2009年04月23日 16:04
ありがとうございます〜
完成しました〜
一応下記が出来たものです

integer touch_count=0;
integer use_hour=1;

default {
state_entry()
{
llListen(-71,"","llGetOwnerKey()","");
}
on_rez(integer num)
{
llListen(-71,"","llGetOwnerKey()","");
}
listen(integer channel , string name , key id , string message){
list listMessage = llCSV2List(message);
if (llList2String(listMessage, 0) == (string)llGetOwner()){
llSetText(llList2String(listMessage, 1),<1.0,0.0,0.0>,1.0);
llSay(0, "Lv Data Clearing・・・・");
integer count = (integer)llList2String(listMessage, 1);
integer i;
llSetTimerEvent(10.0);
for(i=0;i<count;i++){
llSay(-10,"detadown");
string strMassage ="detadown";
llSay(-10, (string)llGetOwner() + "," + strMassage);
}
}
}
timer(){
llSetTimerEvent(0.0);
state dead;
//return;
}
}



state dead {
state_entry(){
llSay(-10,"check01");
string strMassage ="check01";
llSay(-10, (string)llGetOwner() + "," + strMassage);
llSay(0, "Lv Data Loading・・・・");

llListen(-71,"","llGetOwnerKey()","");
}
on_rez(integer num)
{
llListen(-71,"","llGetOwnerKey()","");
}
listen(integer channel , string name , key id , string message){
list listMessage = llCSV2List(message);
if (llList2String(listMessage, 0) == (string)llGetOwner()){
llSetText(llList2String(listMessage, 1),<1.0,0.0,0.0>,1.0);

integer count = (integer)llList2String(listMessage, 1);
integer i;

for(i=0;i<count;i++){
llSay(-10,"detaup");
string strMassage ="detaup";
llSay(-10, (string)llGetOwner() + "," + strMassage);
}
llListenRemove(0);
llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
}
}
run_time_permissions(integer p){
if (p & PERMISSION_ATTACH){

llDetachFromAvatar();
llDie();
}else{
llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
}
}


attach(key attached) {
if (attached != NULL_KEY) {
llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
} else {
llDie();
}
}
}

てな感じです〜
他のオブジェクトのスクリプトと連携しながら動いて
います〜

ありがとうです〜
Posted by Tsubaki at 2009年04月23日 16:08
好奇心がおさえきれないのですが、
本当に、このスクリプト動いています?

すでにみなさんからの指摘済みですが、
llListen(-71,"","llGetOwnerKey()","");
の記述がおかしいセイで、listenが動作しない気がします。
(実験してないですが・・・)

「しかしながらその辺はうまく動いてくれてますね」
とか
「一応下記が出来たものです」
とかあるので、もしかしたら動くの?って気になってます。

それから、
ささぴさんが2回目にコメントされている
「もしかして最後がi++じゃないですか?」
が、質問の意図どおりの回答だと思いますが、
それに対する反応もありませんし・・・
Posted by jinkojinko at 2009年04月24日 13:44
"llGetOwnerKey()"は意図通りに機能しないという意見に一票ですw

すべてのコードを見ていないし、ほかのスクリプトと連動するものなら実験のしようもないのでなんともいえませんが…。
「動いている」と言うなら、もしかしたら、keyが必要なところにkeyではない文字列が入っているために、NULL_KEYや””の場合と同じように動いちゃってるんですかね。
そうすると、別のkeyからのllSayでも受け付けてしまうことに…。

ううん…気持ち悪い事この上ないですねw
Posted by RoyalTurkey Marksetin at 2009年05月15日 04:08
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。