2007年12月30日

サブルーチン・ループ実装に関して


こんばんは、蛛賢です。
いやはや、更新されましたね、戦国史。
このサブルーチン・ループ実装に関しては、本当に浅香さんに感謝するばかりです。
(実は、きっての願いを叶えて頂いた形でもあります^^;)

何と言うか、非ループでイベントを作成するのは中々な障害であったわけで、
(同じようなイベントでも各大名家・城等ごとに用意する必要があった)
この実装があれば劇的にイベント記述が進化し、シナリオ表現力は飛躍する
…と確信していたということもあります。

例を挙げ、各城を各大名家の家紋に変化させるイベントを考えて見ましょう。

◇従来
・各城ごとにどの大名家領有なのかを調べなければならなかった。

・従って必要なイベント数は、単純に(城数)×(大名家数)という感じ。

総条件イベント数上限は1000ですから、100城、10大名家くらいで一杯でしょうか。
もちろん他のイベントを設定することは出来ません。

◇今回
・城、大名家共にサブルーチン処理で出来ますが、城画像だけ変数指定できません。

・従って必要なイベント数は、1※+(大名家数÷50)+(城画像数)
 (※城番号取得ループ)

…ですかね。要は城領有大名家と城画像を一致させることですからね。
÷50は条件イベントの発生イベント上限が50だからです。
サブルーチンを呼び出す命令最大50回。要はサブルーチンのサブルーチンという感じ。

仮に大名家が50家だとすると、城数に関係なく、52個でイベント完成です。
大名家100家でも、城数関係なく、103個です。
(但し城画像上限は50なので51家以上は工夫(※)が必要)

※何故なら1城に2城を重ね、1つを拠点用(石高等も設定されている)、
 1つを表示用(全てゼロでも構わない、大名も特に無所属)とする。
 重ねられた拠点はIDが若いほど下に隠れ表示されないのを利用する。
 そして、表示用は大名関係ないので外交色の6色を利用できるため増える。
 従って、拠点用の透明の城画像ID1つ、残り49×6色を表示用に利用できる。
 (但し、移動時には灰色設定の画像が表示されるので「×」等の画像にする)

…といった感じでしょうか?サンプルを作ってみても良いですね。
とにかく便利になったのです。分かりやすくなったのですよ。

上記で分からない部分があったら、お気兼ねなくお尋ね下さい。
自分でも良く分かってないかも知れませんが、出来る限りお答えします^^;
 



at 02:02│雑談:戦国史 | 戦国史コラム:イベント技術集Edit

Comment



blog comments powered by Disqus