2008年09月01日

ジェットパックの炎のオン、オフについてご教授ください

今背中に背負って飛行したら炎が出て、着地したら炎が消えるという
ジェットパックを製作しているのですが、上手くいきません。
以下は私が書いたコードなのですが、これだと炎が全く出ません。
どなたかご教授願いませんでしょうか?

====コード====

default
{
  state_entry()
  {
    integer Status = llGetAgentInfo(llGetOwner());
    if (Status & AGENT_FLYING & AGENT_IN_AIR )
    {
       llParticleSystem
       (
         [ ここに炎の出るパーティクルが入ってます。]
       );
    }
    else
    {
       llParticleSystem([]);
    }
  }
}




同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジの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 G  at 17:15 │Comments(3)スクリプト関連

この記事へのコメント
state_entryっていうのは、普通はスクリプトが保存やリセットされたとき、最初に1回だけ実行されます。(ステート切り替えしないとき)
なので、アバターの状態を調べて判断するんだったら、AOみたいにtimerがいいんじゃないですかね?
Posted by 千尋千尋 at 2008年09月01日 18:17
こんばんわ G さん はじめまして

パーテクルスクリプトの方は間違いなく動き出すのでしょうか?

もし、間違いなく動くようでしたら、条件判断に問題があるかもです。

アバターの状態が飛行とジャンプの両方。

この状態のとき、初めて条件が成立するようになってます。

なので

if ((Status & AGENT_FLYING) || (Status & AGENT_IN_AIR ))

として、ジャンプの時か?飛行中か?で条件を設定してはどうですか?

それと 千尋さんの言われるとおりアバターの状態を常に調べるにはタイマ-を使った方がよいかと思います
Posted by minami price at 2008年09月01日 18:52
>千尋さん、minami priceさん
こんばんわ。ご返答ありがとうございます。

早速タイマーを使用してやってみました。
そしてIF文をminamiさんのアドバイスの通りやってみますと、、、
うまくいきました!

こういうときはタイマーを使うこと、そしてIF条件文を工夫すること、
大変勉強になりました。

スクリプトはほんとに私にとっては難しいものでして、
今回のこういった構成の仕方をよく覚えておこうと思います。
自分だけでは決して解決しなかったと思います。

本当に助かりました。ありがとうございました!
Posted by GG at 2008年09月01日 21:16
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。