スクリプト/2回目以降のイベント内容変更(履歴ID:229)

最終投稿者:Aa mini #いお 更新:2012/04/22 00:20:46
何回か話しかけるとイベント内容が変わるようにするスクリプトには
様々なやり方がありますが、
最も簡単な形で行くならif文でやるのがお勧めです。
え?そんなの基本中の基本だって?「初心忘れるべからず」ですよ。
特にend忘れとかをするよく人は基礎から復習してもいいと思います。


if getFlag("2回目以降のスクリプトフラグ")
  #ここに2回目以降に表示したいスクリプトを書く
else
  #ここに1回目にやりたいスクリプトを書く
  setFlag("2回目以降のスクリプトフラグ", true)
end

setFlag関数でフラグを設定し、
getFlag関数でフラグの状態を取得します。
フラグの中身は
trueかfalseの2択(正確に言うと何もないnullもあるので3択)なので、
そのままif文に使うことができます。
ただし、変数にもtrueやfalseを入れることはできるので、
実は必ずしも使う必要はありません。
#これは上のスクリプトと同じ動きをします
if getVariable("2回目以降のスクリプトフラグ")
  #ここに2回目以降に表示したいスクリプトを書く
else
  #ここに1回目にやりたいスクリプトを書く
  setVariable("2回目以降のスクリプトフラグ", true)
end

setVariable関数が変数の設定、getVariable関数で取得します。
set~は何かしら設定、get~は何かしら取得すると覚えておくといいでしょう。



さて、どうせなのでちょっと応用しますか。
スクリプトに分かれ道を作る文はif文の他にも、case文やwhile文があります。
(というか、この3つしかないので、ぜひおさえておきましょう。)
今回はcase文を使って、回数に応じて動きを変えてみます。
あ、基本的には変数には最初に何か入れておくことをお勧めします。
setVariable("話した回数", 0)

case getVariable("話した回数")
  when 2
  
  else 
    speak("これ1回目")
    setVariable("話した回数", getVariable("話した回数")  + 1)
end



※書き足しがまだあるそうです