変数-変数(質問掲示板)
投稿: ikosami
投稿:2010/01/14 00:30:14(最新:2010/01/15 18:05:15)
変数と変数で計算する事は可能ですか?
↓のように 書いたら、
一回しか攻撃していないのになぜか倒したと出てきました。
setVariable("THP", 10)
setVariable("PA", 5)
speak("敵が現れた!")
case speakWithSelect(2,"攻撃","逃げる",
"ボックスのHP:", getVariable("敵"))
when 0
setVariable("THP", getVariable("THP") - getVariable("PA"))
when 1
changeChapter("平野")
end
if getVariable("THP") < 0
changeChapter("平野戦闘")
end
speak("敵を倒した!\n0Gと\n0の経験地を手に入れた!")
changeChapter("平野")
ツイート
↓のように 書いたら、
一回しか攻撃していないのになぜか倒したと出てきました。
setVariable("THP", 10)
setVariable("PA", 5)
speak("敵が現れた!")
case speakWithSelect(2,"攻撃","逃げる",
"ボックスのHP:", getVariable("敵"))
when 0
setVariable("THP", getVariable("THP") - getVariable("PA"))
when 1
changeChapter("平野")
end
if getVariable("THP") < 0
changeChapter("平野戦闘")
end
speak("敵を倒した!\n0Gと\n0の経験地を手に入れた!")
changeChapter("平野")
コメントする
コメントするには、ログインする必要があります。
コメント一覧
"戦闘中"はフラグとして扱っているようですが、
戦闘に入ったときに実行したい処理のところで
getVariable("戦闘中")としてしまっています。
setFlagとsetVariableは名前が同じ場合でも
別々の場所に保存されます。
そのため動作が思い通りに動いていないのではないかと思います。
setFlag("チャプター変更", true)についてですが
changeSceneはその場で処理を中断して
別のシーンに移るのに対して
changeChapterは、条件によってはそのあとの処理を
おこなってしまいます。
そのため、changeSceneを呼んだ後は
処理をおこなわないようにsetFlag("チャプター変更", true)
を設定しています。
ただ、この動作は問題だと思いますので、
changeChapterもその場で処理を中断して
チャプターを変更させようと考えています。
setFlag("チャプター変更", true)は
一時的なものになる予定です。
修正をおこなうなどしましたら、またここに書き込もうかと思います。
よろしくお願いします。
戦闘に入ったときに実行したい処理のところで
getVariable("戦闘中")としてしまっています。
setFlagとsetVariableは名前が同じ場合でも
別々の場所に保存されます。
そのため動作が思い通りに動いていないのではないかと思います。
setFlag("チャプター変更", true)についてですが
changeSceneはその場で処理を中断して
別のシーンに移るのに対して
changeChapterは、条件によってはそのあとの処理を
おこなってしまいます。
そのため、changeSceneを呼んだ後は
処理をおこなわないようにsetFlag("チャプター変更", true)
を設定しています。
ただ、この動作は問題だと思いますので、
changeChapterもその場で処理を中断して
チャプターを変更させようと考えています。
setFlag("チャプター変更", true)は
一時的なものになる予定です。
修正をおこなうなどしましたら、またここに書き込もうかと思います。
よろしくお願いします。
たびたびすみません・・・
いろいろ試して、下のようにしたのですが、
チャプターが変更されると、フラグなどは元に戻ってしまいますか?
一度HPなどを読み込んだら、次のターンなどになった時に
またHPを最大の状態に戻さないようにしたいのですが・・・
ほかのチャプターで設定したほうがいいでしょうか?
あとsetFlag("チャプター変更", true)は
どのような意味があるのですか?
setFlag("チャプター変更", false)
if !getVariable("戦闘中")
setVariable("THP", 10)
setVariable("PA", 5)
speak("ボックスが現れた!")
showImagePosition(200, 200, 6118)
end
setFlag("戦闘中", true)
case speakWithSelect(2,"攻撃","逃げる",
"ボックスのHP:", getVariable("THP"))
when 0
setVariable("THP", getVariable("THP") - getVariable("PA"))
speak("ボックスに5のダメージを与えた!")
speak("ボックスのHP", getVariable("THP"))
when 1
setFlag("戦闘中", false)
changeChapter("平野")
setFlag("チャプター変更", true)
end
if getVariable("THP") > 0
if !getFlag("チャプター変更")
changeChapter("平野戦闘")
setFlag("チャプター変更", true)
end
end
if !getFlag("チャプター変更")
hideImagePosition(6118)
speak("敵を倒した!\n0Gと\n0の経験地を手に入れた!")
setFlag("戦闘中", false)
changeChapter("平野")
setFlag("チャプター変更", true)
end
いろいろ試して、下のようにしたのですが、
チャプターが変更されると、フラグなどは元に戻ってしまいますか?
一度HPなどを読み込んだら、次のターンなどになった時に
またHPを最大の状態に戻さないようにしたいのですが・・・
ほかのチャプターで設定したほうがいいでしょうか?
あとsetFlag("チャプター変更", true)は
どのような意味があるのですか?
setFlag("チャプター変更", false)
if !getVariable("戦闘中")
setVariable("THP", 10)
setVariable("PA", 5)
speak("ボックスが現れた!")
showImagePosition(200, 200, 6118)
end
setFlag("戦闘中", true)
case speakWithSelect(2,"攻撃","逃げる",
"ボックスのHP:", getVariable("THP"))
when 0
setVariable("THP", getVariable("THP") - getVariable("PA"))
speak("ボックスに5のダメージを与えた!")
speak("ボックスのHP", getVariable("THP"))
when 1
setFlag("戦闘中", false)
changeChapter("平野")
setFlag("チャプター変更", true)
end
if getVariable("THP") > 0
if !getFlag("チャプター変更")
changeChapter("平野戦闘")
setFlag("チャプター変更", true)
end
end
if !getFlag("チャプター変更")
hideImagePosition(6118)
speak("敵を倒した!\n0Gと\n0の経験地を手に入れた!")
setFlag("戦闘中", false)
changeChapter("平野")
setFlag("チャプター変更", true)
end
Rmakeのご利用ありがとうございます。
変数同士の計算は問題なくおこなえることは動作確認しました。
以下の条件式を見ると
THPが0より小さくなったときに平野戦闘へチャプターの変更をするように見えます。
これは意図している条件と逆なのではないかと思います。
あと、現在のchangeChapterの動作では、
チャプターの終わりまで来るかある一定の処理がおこなわれたら
チャプターの変更をおこなうという形になっているため、
changeChapterを呼んだ後は
何もしないようにする必要があります。
たとえば
ただ、この動作は問題があるかと考えていますので
修正をおこなう方向で考えています。
よろしくお願いします。
変数同士の計算は問題なくおこなえることは動作確認しました。
以下の条件式を見ると
if getVariable("THP") < 0 changeChapter("平野戦闘") end
THPが0より小さくなったときに平野戦闘へチャプターの変更をするように見えます。
これは意図している条件と逆なのではないかと思います。
あと、現在のchangeChapterの動作では、
チャプターの終わりまで来るかある一定の処理がおこなわれたら
チャプターの変更をおこなうという形になっているため、
changeChapterを呼んだ後は
何もしないようにする必要があります。
たとえば
setFlag("チャプター変更", false) setVariable("THP", 10) setVariable("PA", 5) speak("敵が現れた!") case speakWithSelect(2,"攻撃","逃げる", "ボックスのHP:", getVariable("敵")) when 0 setVariable("THP", getVariable("THP") - getVariable("PA")) when 1 if !getFlag("チャプター変更") changeChapter("平野") setFlag("チャプター変更", true) end end if getVariable("THP") < 0 if !getFlag("チャプター変更") changeChapter("平野戦闘") setFlag("チャプター変更", true) end end if !getFlag("チャプター変更") speak("敵を倒した!\n0Gと\n0の経験地を手に入れた!") changeChapter("平野") setFlag("チャプター変更", true) end
ただ、この動作は問題があるかと考えていますので
修正をおこなう方向で考えています。
よろしくお願いします。
変更先のチャプターの先頭から
処理をするように変更しました。
よろしくお願いします。