コメント

このコメントは、【トピック】フラグの使い方へのコメントです。

コメントの内容

Icon mini cdv30200(投稿日:2015/04/08 09:04/08/15)
「できません」とありますが、どういうエラーが出て
どういう現象が起きたのか書いた方が良いです。
あと、関係するスクリプトはなるべく全部載せることです(^^)

フラグを設定する時にsetFlag関数、
フラグを設定したか確認する時にgetFlag関数を使います。

例えばこんな感じになります。

依頼人
#プレゼントの所持の有無をmで判定
m = getItemIndexWithId(19405)

if getFlag("渡す")
#プレゼントを渡したとき
speak("やってくれたのか!\nありがとう!\nハートを2つやる!")
giveItem(19399)
giveItem(19399) 
elsif m == -1
#プレゼントを持っていない
  speak("きみ!\n俺のファンにプレゼントをくれてやってくれないか")
    case speakWithSelect(2,"はい","いいえ",
"引き受けますか?")
    when 0
    speak("よろしくね!")
    speak("プレゼントをもらった")
    giveItem(19405)
    setFlag("引き受ける", true)
    when 1
    speak("やっぱダメか…")
    end
else
#すでにプレゼントを持っている
speak("頼んだぞ。")
end

受取人
m = getItemIndexWithId(19405)

if getFlag("渡す")
#プレゼントを渡した
speak("どうもありがとう!")
elsif getFlag("引き受ける") && m != -1
#依頼を受けてプレゼントを持っている
speak("わー、プレゼントだ!\nどうもありがとう!")
speak("プレゼントを渡した")
removeItemWithIndex(m)
setFlag("渡す", true)
elsif getFlag("引き受ける") && m == -1
#依頼を受けたが、プレゼントを捨てるなどしたため持っていない
speak("プレゼント?\n何も持ってないじゃん")
elsif !getFlag("引き受ける") && m != -1
#依頼を受けていないがプレゼントは持っている
speak("わー、いいなあ\nほしいなあ")
else
#依頼を受けていないしプレゼントを持っていない
speak("こんにちは")
end

もしプレゼントを渡す前に捨ててしまっても
依頼人にもう一度話せば最初からやり直せます。

スクリプトを載せる場合はRmake記法の「pre 表記(整形済みテキスト)」を参考にして下さい。

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

Icon mini cdv30200(投稿日:2015/04/08 09:04/08/15)
「できません」とありますが、どういうエラーが出て
どういう現象が起きたのか書いた方が良いです。
あと、関係するスクリプトはなるべく全部載せることです(^^)

フラグを設定する時にsetFlag関数、
フラグを設定したか確認する時にgetFlag関数を使います。

例えばこんな感じになります。

依頼人
#プレゼントの所持の有無をmで判定
m = getItemIndexWithId(19405)

if getFlag("渡す")
#プレゼントを渡したとき
speak("やってくれたのか!\nありがとう!\nハートを2つやる!")
giveItem(19399)
giveItem(19399) 
elsif m == -1
#プレゼントを持っていない
  speak("きみ!\n俺のファンにプレゼントをくれてやってくれないか")
    case speakWithSelect(2,"はい","いいえ",
"引き受けますか?")
    when 0
    speak("よろしくね!")
    speak("プレゼントをもらった")
    giveItem(19405)
    setFlag("引き受ける", true)
    when 1
    speak("やっぱダメか…")
    end
else
#すでにプレゼントを持っている
speak("頼んだぞ。")
end

受取人
m = getItemIndexWithId(19405)

if getFlag("渡す")
#プレゼントを渡した
speak("どうもありがとう!")
elsif getFlag("引き受ける") && m != -1
#依頼を受けてプレゼントを持っている
speak("わー、プレゼントだ!\nどうもありがとう!")
speak("プレゼントを渡した")
getItemIndexWithId(19405)
setFlag("渡す", true)
elsif getFlag("引き受ける") && m == -1
#依頼を受けたが、プレゼントを捨てるなどしたため持っていない
speak("プレゼント?\n何も持ってないじゃん")
elsif !getFlag("引き受ける") && m != -1
#依頼を受けていないがプレゼントは持っている
speak("わー、いいなあ\nほしいなあ")
else
#依頼を受けていないしプレゼントを持っていない
speak("こんにちは")
end

もしプレゼントを渡す前に捨ててしまっても
依頼人にもう一度話せば最初からやり直せます。

スクリプトを載せる場合はRmake記法の「pre 表記(整形済みテキスト)」を参考にして下さい。