投稿記事

2020年 02月の記事 (2)

まるちゃん 2020/02/10 21:10

選択肢拡張のスクリプト

たまにスクリプトを作っていてこれ頭いいんじゃない?
って思うときが自分にはあります
eval というコマンドを発見して能力値を自由に設定できるスクリプトを
作ったときも自分は天才だって思っちゃいました ^^;
binding コマンドを発見したときは ruby ってすげーってなりました

また、そう思ってもしばらくすると大したことなかったなってときもあります
今回がそれでした。スクリプトとしては不完全ですね
動作確認をしっかりとしないですげーのできたと思ったら
そうじゃなかったっていう話でした
メッセージウィンドウが閉じてしまうのはいただけない

選択肢拡張のスクリプトは数多いと思いますが使うのが難しくありませんか?
別に批判してるわけじゃなくて、自分3行以上の文章が読めないっていうか
3行以上読む忍耐力がなくてわからんからいいやってなります
今回はまだアップグレードのシーンが納得行かなくて
また作っています
そのときにメッセージウィンドウを使って作ろうってことになって
スクリプトを使い文章を入力したりしてました
しかし、マルチバイト文字?とか言うののせいで
幅をきっちり合わせることができなくて断念しようかどうかとういところです


左側がスクリプトを使ってシーンを作りました
右側がメッセージウィンドウを使ったものです
そのときに選択肢もスクリプトで入力したんですけど
sprintf 構文で %12d でやってるのに右揃えにならないんですね
だからシーンを作るしかないのかなぁって

そのときにスクリプトを使って文章の表示をしたのです
$game_message.add(text) を使うことで表示できるのですが
その後にイベントコマンドで選択肢の表示をすると
メッセージウィンドウを一度閉じてから出ないと選択肢が表示されません
なので選択肢の表示もスクリプトを使い操作する必要がありました
ツクールではどのように選択肢を表示しているのかというと詳しくはここです

[[RGSS3]ツクールVXAceのスクリプトで選択肢の表示を行う方法]
(http://rpgmaker-script-wiki.xyz/sentakusi_vxace.php)
どういう感じか見るのにすごく役に立つページです

Ctrl + Shift + F で選択肢で検索して Game_Interpreter にあるのを見ました
setup_choice(@params) とあります
@params の内容は配列で [["はい", "いいえ"], 2 ] という感じです
第1引数が選択肢に表示する内容で配列を持ちます
第2引数がキャンセルの場合の index を示します
イベントコマンドでは "はい" が1番目の選択肢になります
プログラマーの人は0から数えてしまいがちですが違います

またスクリプトを使うので選択肢が4以上の場合も可能になります
[["1", "2", "3", "4", "5"], 6]と @params の場所にかけばおkです

多分正確にやるにはイベントコマンドのスクリプトにこう書きます
(def command_102 をみてください)
自分は setup_choice のみしかしてないけど動いてます

wait_for_message
setup_choices(@params)
Fiber.yield while $game_message.choice?

紹介した URL でも同様のことをしています
その後にどの選択肢を選んだかを調べるのが case $branch より下です
これは面倒ですのでスクリプトで解決しました

選択肢拡張.txt (1.02kB)

ダウンロード

Window_ChoiceList の call_ok_handler と call_cancel_handler で
どの選択肢を選んだのか変数を代入するスクリプトを作りました
つまり case $branch より下の処理がいらなくなります

もう少しこのスクリプトを使いやすくして
表示位置とか設定できるようになるといいなぁと…
自分が3行以上読めないのに説明するのに何行書いたんだか…

使い方のまとめ

イベントコマンドのスクリプトに以下のように書く
setup_choice(@params)
@params には例として [["1", "2", "3", "4", "5"], 6] とかく
6 というのはキャンセルしたときのインデックスです
選択肢は0からではなく1から数えます
CHOICE_INDEX には選択肢を選んだときの index を保持する
イベントコマンドで使用する変数の番号です


7行…

選択肢拡張|しいたけサイクロン
http://tentako.blog-fps.com/rgss/選択肢拡張
なんかこれのほうがもっとスマートかも…
唯一いいところは新たな関数を作らずにデフォルトのままできたところ

更新

まだちょっと安定した動作っていうのが望めないのかもしれない
Proc.new っていうのがよくわからない
なんか値が残って変な動作するかもしれない

$game_message.choice_proc = Proc.new {|n| @branch[@indent] = n }
これの書き方を変えたほうがいいのかも
Proc.new {|n| $game_variables = n } これでいいのかもしれない?
ぬ?難しいなメッセージウィンドウが閉じてしまう
スクリプトだけで作っているときはそうではなかったのに…
メッセージウィンドウが閉じてしまうのはだめだ!
もう少し作り直すか諦めます
しいたけサイクロンさんの使うといいと思います

Proc というのは通常関数を定義して内容を書きます
def foo
var = 1
end
みたいな
でもこの関数定義をしなくても内容だけ作れるっていうものみたいです
あれ?これすごそうだぞ!?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

まるちゃん 2020/02/07 16:00

久しぶりにゲーム制作

ちょっと私生活が安定しなくてボーッとしてました
気持ちも落ち着いてきたのかゲーム制作をまた再開しました
現在はダンジョンを制作しています
宝箱のドロップをどうしようか悩んでいます


ダンジョンはこれです。もう少しかっこよくする予定ですけど
殆ど変わらない予定です。もうこれでいいです
ランダムダンジョンを探索してとか歩くのが面倒すぎて嫌です
シンボルエンカウントの自動生成マップでダンジョン探索がかったるいのです

100回戦闘します。そのための戦闘速度変更と自動戦闘機能を作りました
一生懸命リザルト画面やゲージを動かすスクリプトを作ったのですが
実際やってみると自分は邪魔だなぁと思いました
このゲージが動く時間すら惜しいっていうか…
ゲーマーがゲームを作るのには向いてないと確信しました

規定レベル以上のとき戦闘をスキップできる機能と
入手経験値を下げるのがあってもいいかなぁと思っています
戦闘シーンにいかないで勝利したものと考えてドロップや金と経験値を計算する機能です
でもその機能があると雑魚ダンジョンに篭ってレベル上げとかされるので
それをさせないようにレベルが既定値だと入手できる
経験値が少なくなる機能をつけたいと思います


ダンジョン内ではいくつかルールを決めました
敵を倒すと敵のレベルが1上昇する
敵の経験値と金はレベルを乗算した数値になる
1ターン以内に敵を倒すと入手経験値が2倍になる
1ターン以内に敵を倒すと敵の出現数が1増える
* 敵表示可能数が限界に達したとき敵を倒すと上がるレベルが2になる(未調整)

敵の最大出現数はA~Zの26体としました
敵1、敵2とかにしてもいいんですけどデフォルトのままでいいかなって
一応考えてステータスも作っているので結構殺されます
ダンジョン1なので通常攻撃のみしか考えていません。でも結構殺されます

このダンジョンは属性攻撃に弱いので最初に魔法使いを雇い
俊敏性が上昇する服装備と武器を強化すれば簡単にかてるようにしました
スピード&パワーって感じです
一応後半の敵はHPを多くしたのですが属性攻撃は2倍なので…
全撃という全体物理攻撃スキルもあるので、これだと少し時間かかるかなぁぐらいです
ダンジョン2では魔法防御力をあげようかなぁと思っています
自分事ですが Quick Save を作ってよかったなぁと
わざわざセーブ画面出さなくていいのですごい楽です

なにかダンジョンごとに攻略方法を与えたいと思います
ダンジョンは合計して9つ作ることにしました
ボスモンスターのキャラチップが9つしか用意できなかったからです

スクリプトをいくつか更新しました
装備アップグレードが参照する変数を間違えていて探すのが大変でした
もう一つはログ表示スクリプトの安定版です
Window_ScrollText というのがあり self.oy を移動させれば簡単に作れました

装備アップグレード.txt (装備アップグレード.txt) ダウンロード | VXace スクリプト 【 作成者:まるちゃん 】 | uploader.jp
https://ux.getuploader.com/Rpg_Maker_VXace_Maruchan_Uploard/download/66

ログ表示.txt (ログ表示.txt) ダウンロード | VXace スクリプト 【 作成者:まるちゃん 】 | uploader.jp
https://ux.getuploader.com/Rpg_Maker_VXace_Maruchan_Uploard/download/65

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索