コメント

このコメントは、【トピック】2かいめのイベントをやらせない方法へのコメントです。

コメントの内容

Material 204926 1 mini 井戸乃博士(投稿日:2015/04/11 22:04/11/15)
質問に答える前にいくつか言っておきたいことが・・・

・質問するときはスクリプトをそのまま書くだけではなく、どのようなイベントを作りたいのかなるべく具体的に書いてください。スクリプトを見ただけでは分からないことのほうが多いですから。例えば、上のスクリプト(レアカードをもらうイベント)と、下のスクリプト(ハートをもらうイベント)は別々に書いているんでしょうか?それともひとつながりのスクリプトですか?

・エラーメッセージが出た場合、メッセージからどこにエラーがあるか分かります。たぶん今回の場合、メッセージが出ていると思いますのでこちらを参考にして確認してみてください。

前置きが長くなりましたが、上のスクリプトと下のスクリプトは別々のものと考えてお答えします。
イベントが1回しか起きないようにするにはフラグを使うのが一番簡単です。
getItemIndexWithIdを条件に使うと、条件になるアイテムがなくなるとイベントが戻ってしまうので面倒です。
ここでは"レアカード"と"ハート"という2つのフラグを使ったスクリプトを例示します。

(レアカードをもらうイベント)
if getFlag("レアカード")
speak("こんどこそは…")
else
speak("まただぶりか!\nやるよ")
speak("レアカードを貰った")
giveItem(19400)
setFlag("レアカード", true)
end


(ハートをもらうイベント)
if getFlag("レアカード")
 if getFlag("ハート")
  speak("ありがとう") #レアカードを渡した後の反応
 else
  speak("それは私のほしいレアカード!")
  fadeOut(0,0,0)
  fadeIn() 
  case speakWithSelect(2,"はい","いいえ", "レアカードをあげますか?")
   when 0
    speak("ありがとう!\nお礼にこれあげる!")
    giveItem(19399)
    removeItemWithIndex(getItemIndexWithId(19400))
    speak("ハートを貰った")
    setFlag("ハート", true)
   when 1
    speak("なんだ…") 
   end
  end
 else
  speak("レアカードほしいなあ・・・") #レアカードをもらっていないときの反応
 end


フラグはスクリプトの基本なので正確に内容を理解しておいたほうがいいですよ。

コメントの内容(一番最初の投稿)

Material 204926 1 mini 井戸乃博士(投稿日:2015/04/11 22:04/11/15)
質問に答える前にいくつか言っておきたいことが・・・

・質問するときはスクリプトをそのまま書くだけではなく、どのようなイベントを作りたいのかなるべく具体的に書いてください。スクリプトを見ただけでは分からないことのほうが多いですから。例えば、上のスクリプト(レアカードをもらうイベント)と、下のスクリプト(ハートをもらうイベント)は別々に書いているんでしょうか?それともひとつながりのスクリプトですか?

・エラーメッセージが出た場合、メッセージからどこにエラーがあるか分かります。たぶん今回の場合、メッセージが出ていると思いますのでこちらを参考にして確認してみてください。

前置きが長くなりましたが、上のスクリプトと下のスクリプトは別々のものと考えてお答えします。
イベントが1回しか起きないようにするにはフラグを使うのが一番簡単です。
getItemIndexWithIdを条件に使うと、条件になるアイテムがなくなるとイベントが戻ってしまうので面倒です。
ここでは"レアカード"と"ハート"という2つのフラグを使ったスクリプトを例示します。

(レアカードをもらうイベント)
if getFlag("レアカード")
speak("こんどこそは…")
else
speak("まただぶりか!\nやるよ")
speak("レアカードを貰った")
giveItem(19400)
setFlag("レアカード", true)
end


(ハートをもらうイベント)
if getFlag("レアカード")
 if getFlag("ハート")
  speak("ありがとう") #レアカードを渡した後の反応
 else
  speak("それは私のほしいレアカード!")
  fadeOut(0,0,0)
  fadeIn() 
  case speakWithSelect(2,"はい","いいえ", "レアカードをあげますか?")
   when 0
    speak("ありがとう!\nお礼にこれあげる!")
    giveItem(19399)
    removeItemWithIndex(getItemIndexWithId(19400))
    speak("ハートを貰った")
    setFlag("ハート", true)
   when 1
    speak("なんだ…") 
   end
  end
 else
  speak("レアカードほしいなあ・・・") #レアカードをもらっていないときの反応
 end


フラグはスクリプトの基本なので正確に内容を理解しておいたほうがいいですよ。