アクセス
since 2009
Twitter
pixiv

Author:月紳士

→pixivについて

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スクリプト制作日記:選択肢機能拡張(1)

選択肢機能拡張の大幅なリニューアルをしました。

内部はかなり作り変えましたが、
設定方法や使い勝手はいじらないようにしました。
旧バージョンから継続して使える はず、です。

とはいえ、アップデートは慎重に願います。
(必ずバックアップ!)

新規動作はサンプルプロジェクトを見ていただくのが早いです。
サンプルプロジェクトもシンプルに作り直しました。

ヒーラー、酒場に続いて、転職所を作りました。

転職所に関しては、以前に作り方を教えて欲しい、
というリクエストがありました。

過去バージョンでも可能だったのですが
正直、過去のものでは製作が難しい面も多々あり。


選択肢拡張自体、自分としては古いスクリプトで、
見直すと作りが未熟でした。

注釈から選択肢情報を一気に読み取り、
即座に表示、という非オブジェクト構造で
可読も困難、自分にとってもブラックボックスでしたが
思い切って構造見直しに踏み切りました。

更新のペースがだいぶ落ちていましたが、
実はずっと選択肢拡張をいじっていたことが要因です。

そのお陰でスクリプト整理が完了。
選択肢情報をクラスとして管理できました。これにより
情報を一時保存した後に追加で情報を付け足すようなことが可能となり
構造が複雑になりがちな転職所イベントがとても作りやすくなりました。

加えて別枠での表示や、アイコン・値段の付与など可能になり、
隊列変更イベントにつかっていたリストアップも
選択肢ピックアップとして生まれ変わり凡庸性も多少増しました。


注意点として、ダミーアクターに関する機能が別スクリプトとなった事。
スクリプト内にも説明書きましたので
過去バージョンから継続使用される方は参照願います。


あとマニュアルがちょっと欠けているところあるので
今後加筆予定です。

スクリプト、サンプルプロジェクト共に
ちゃんとしていないところありそうですので
何か気づいたら教えてください。

まだ現状、調節段階かと思いますので
今後の要望的なことは控えめにしていただけると助かります。

サンプルは簡単なものですが、
色んな選択肢表示をする、それだけで
「ゲーム!」って感じになった気がします。

選択肢の選択はゲームとプレイヤーのやりとりの中で
そこそこ重要な位置だと思います。

このスクリプトの提供するカスタマイズ性が
製作者様独自の雰囲気作りに役立てば幸いですね。

テーマ : RPGツクール
ジャンル : ゲーム

コメントの投稿

管理者にだけ表示を許可する

Re: No title

> 月紳士様こんにちは。
> グループ操作オプションにて、注釈を利用してグループを作成した後、
> そのグループにステートの付加や解除は可能でしょうか?

> グループはスクリプトで操作可能とあったので
> $game_party.group[1].add_state(3)
> の様に試してみたのですが、
> NoMethodError
> undefined method'add_state'for[1]:Array
> となってしまいます。

グループはスクリプトで操作可能、というのは
そのようにマニュアルで書いた直後に例を上げて書いている通り、
$game_party.group[1] = [1, 2, 3]
と中身を直接書き換えることが出来ます、という意味です。
$game_party.group[1]の中身はただのID数字の羅列、
$game_party.group[1]そのものも“配列”です。
どちらもアクターではありません。
add_state のメソッドは、
それが定義されている Game_Battlerクラスを継承した
Game_Actorクラス等に対してしか使用出来ません。
$game_party.group[1]は配列、つまりArrayクラスです。
マニュアルにある push はArrayクラスに定義されたメソッドです。
まずここまでの“意味”をご独学されてください。

当てずっぽうでスクリプトを組むのは好ましくありません。
ご自分でトライアンドエラーするのは大変結構ですが
学ぶべきことを無理解のままとった手段について
「エラーが出る」と他者にふるのは順番が違うというか… 

エラーが出るのは当然です。
貴方が解らないことをそのままにしているからです。
まず目の前にある
「解らないこと」をネット検索などで調べてみてはどうでしょうか。

可能ですか?という問いへの回答は「可能です」
方法を教えてください という問いへの回答は

$game_party.group[1].each{|i|$game_actors[i].add_state(3)}

になろうかと思いますが…
これは当スクリプトの問題ではなく、
Rubyの知識ですよね。
なぜ「上級者向け」と私がマニュアルに添えたか、
考えてみてくれますか。

この返信は、答え、ではなく独学の為のヒントと思ってください。
何かにつまる度に私が貴方に正解を教える事は出来ませんので。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。