スクリプト/コツ/敵を倒すとお金が手に入る
最終投稿者: akasata
更新:2010/01/21 21:34:50
このページでは、2DRPGで、敵を倒すとお金が手に入る仕組みを
どうやって作るのか解説します。
アクションRPGでは実現できないのでご注意ください。
また、このページを理解するには、スクリプト/変数を理解している
必要があります。
敵を倒すとお金が手に入るゲーム
概要
戦闘でお金を与えるには、以下のような流れで処理を行います。
開始スクリプトでお金の変数を定義する
まずは開始スクリプトで開始時の所持金を設定しましょう。
NPCで戦闘を起こす
2DRPGで戦闘を起こすには、マップ上に敵モンスターを配置します。
しかし、この方法ではお金を渡すことはできません。
ノンプレイヤーキャラクタ(イベント)から戦闘を起こす必要があります。
イベントから戦闘を開始するには、startTurnBattle関数を使います。
勝利したらお金に対応する変数の値を上昇させる
戦闘に勝利したら、お金を渡します。お金は「gold」という変数に
格納することにしましょう。
NPCの敵モンスターを消去する
フラグを使って敵モンスターを消去しましょう。
NPCの敵モンスターの開始条件に以下を入れてください。
フラグは敵モンスター毎に変える必要があることに注意してください。
マップを移動したら倒した敵を復活させる
マップを移動したら、倒した敵モンスターを復活させる場合は、以下の
ように書いてください。
まとめ
現在のRmakeでは、敵モンスターを倒すとお金が手に入る仕組みは、
手間はかかりますが、実現可能です。応用すればもっと面白いことが
できると思います。(敵モンスターを一定数倒したらイベント発生とか。)
ぜひ、工夫してみてください!
ツイート
どうやって作るのか解説します。
アクションRPGでは実現できないのでご注意ください。
また、このページを理解するには、スクリプト/変数を理解している
必要があります。
敵を倒すとお金が手に入るゲーム
概要
戦闘でお金を与えるには、以下のような流れで処理を行います。
- 開始スクリプトでお金の変数を定義する
- NPCで戦闘を起こす
- 勝利したらお金に対応する変数の値を上昇させる
- NPCの敵モンスターを消去する
- マップを移動したら倒した敵を復活させる
開始スクリプトでお金の変数を定義する
まずは開始スクリプトで開始時の所持金を設定しましょう。
# 開始時の所持金は50Gold setVariable("Gold", 50)
NPCで戦闘を起こす
2DRPGで戦闘を起こすには、マップ上に敵モンスターを配置します。
しかし、この方法ではお金を渡すことはできません。
ノンプレイヤーキャラクタ(イベント)から戦闘を起こす必要があります。
イベントから戦闘を開始するには、startTurnBattle関数を使います。
勝利したらお金に対応する変数の値を上昇させる
戦闘に勝利したら、お金を渡します。お金は「gold」という変数に
格納することにしましょう。
# 100Gold渡す setVariable("Gold", getVariable("Gold") + 100)
NPCの敵モンスターを消去する
フラグを使って敵モンスターを消去しましょう。
setFlag("敵Aを倒した", true)
NPCの敵モンスターの開始条件に以下を入れてください。
!getFlag("敵Aを倒した")
フラグは敵モンスター毎に変える必要があることに注意してください。
マップを移動したら倒した敵を復活させる
マップを移動したら、倒した敵モンスターを復活させる場合は、以下の
ように書いてください。
setFlag("敵Aを倒した", false)
まとめ
現在のRmakeでは、敵モンスターを倒すとお金が手に入る仕組みは、
手間はかかりますが、実現可能です。応用すればもっと面白いことが
できると思います。(敵モンスターを一定数倒したらイベント発生とか。)
ぜひ、工夫してみてください!
コメントする
コメントするには、ログインする必要があります。
コメント一覧
rmk100111(投稿日:2010/01/21 21:34,
履歴)
開始スクリプトでユーザー関数の定義が出来るみたいなので、それにまとめれば手間掛からないんじゃないかな?
shirosaboten(投稿日:2009/12/22 19:48,
履歴)
画面テキストで表示する場合は基本的に変数が変わるたびに表示しなおす必要があるのだと思います。
となるとテキスト表示が必要なのはこういうときのようですね
・敵を倒し、お金が手に入ったとき
・お店でお金を消費したとき
・画面を切り替えたとき
setText(textID,"所持金", getVariable("Gold"),"Gold")
をコピペしていけばいいのでそんなに大変ではないですが、敵が多い場合は見落としがないように気をつけてください^^
となるとテキスト表示が必要なのはこういうときのようですね
・敵を倒し、お金が手に入ったとき
・お店でお金を消費したとき
・画面を切り替えたとき
setText(textID,"所持金", getVariable("Gold"),"Gold")
をコピペしていけばいいのでそんなに大変ではないですが、敵が多い場合は見落としがないように気をつけてください^^
shirosaboten(投稿日:2009/12/21 21:32,
履歴)
あと画面が切り替わると表示が消えるとのことですが、「自動的に実行」をつかってもう一度同じテキストを表示させるんじゃないでしょうか?
1.自動実行のイベントの開始条件を「!getFlag("金表示イベント")」にし、実行内容でテキストを表示させる。("金表示イベント")をtrueにする。
2.画面切り替えを行うイベントでワープ関数の設定とともに、("金表示イベント")をfalseにする。
これを各マップで行えば、とりあえずはいいのかな?と思います。セーブロードに対応してるかはわかりませんが^^;
1.自動実行のイベントの開始条件を「!getFlag("金表示イベント")」にし、実行内容でテキストを表示させる。("金表示イベント")をtrueにする。
2.画面切り替えを行うイベントでワープ関数の設定とともに、("金表示イベント")をfalseにする。
これを各マップで行えば、とりあえずはいいのかな?と思います。セーブロードに対応してるかはわかりませんが^^;
shirosaboten(投稿日:2009/12/21 21:21,
履歴)
199492さん>コメントを見たところ、setとgetで("")内の文字が違います。
setVariable("Gold")
getVariable("gold")
となっています。呼び出す変数が違うからnullになっちゃうんじゃないでしょうか?
setVariable("Gold")
getVariable("gold")
となっています。呼び出す変数が違うからnullになっちゃうんじゃないでしょうか?
shirosaboten(投稿日:2009/12/14 00:53,
履歴)
setText(textID,"所持金", getVariable("gold"),"Gold")
という書き方が出来たと思います。
二個作らなくてもたぶん大丈夫です。(幅は必要)
という書き方が出来たと思います。
二個作らなくてもたぶん大丈夫です。(幅は必要)
>rxozihkkさん
それでOKです。
RmakeのスクリプトはgetVariableとsetVariableが
キモですね。
>sakataginさん
幽霊屋敷のようなことをしたいのであれば、createText関数と
setText関数を使ってみてください。
createText関数
http://rmake.jp/document/function_reference#createText%E9%96%A2%E6%95%B0
setText関数
http://rmake.jp/document/function_reference#setText%E9%96%A2%E6%95%B0
それでOKです。
RmakeのスクリプトはgetVariableとsetVariableが
キモですね。
>sakataginさん
幽霊屋敷のようなことをしたいのであれば、createText関数と
setText関数を使ってみてください。
createText関数
http://rmake.jp/document/function_reference#createText%E9%96%A2%E6%95%B0
setText関数
http://rmake.jp/document/function_reference#setText%E9%96%A2%E6%95%B0
退会したユーザー(投稿日:2009/12/11 19:29,
履歴)
お金を減らす場合、これでいいんですよね?
# 100Gold減らす
setVariable("Gold", getVariable("Gold") - 100)
# 100Gold減らす
setVariable("Gold", getVariable("Gold") - 100)