武将の概念
武将と一言で言っても3つの概念で構成されます。
ここでは、よく利用するパターンをピックアップして解説します。
使用例①
最も単純な例は、やはり武将全員分をforループで回して順次処理をするというものです。
以下は武将が持つプロパティのほんの一部です。
使用例②
次によくあるのが「特定の武将」を名指して何か処理を施すというものです。
天翔記の武将は、名前が途中で変わってしまう武将もいるため、
最も強力な武将指定手段は、「原則不動にして1300人分の通し番号」と言える「列伝番号」となります。
このような記述が自力で出来ることは重要ですが、
より簡単に逆引きする手段が提供されています。
「列伝」を持たない自作武将の場合には、「姓名」による指定となるでしょう。
但し、姓名を使用した逆引きは慎重を要します。
その通りの姓名でなければ、逆引きが成立しないためです。
又、姓名は被る武将がいる可能性を否定できません。
それでも、新規武将などには列伝が存在しないため、
以下のような姓名に頼る形の逆引きとなりやすいでしょう。
又、Exists関数を利用すれば、「0 <= 番号 && 番号 < ○○.配列.Count」のチェックが楽になります。
使用例③
特定の武将1人ではなく、2人の間柄をどうこう、といった処理をすることも多いものです。
2人の相性なども重要かもしれません。
これら以外にも、数十個の2人の関係性を判定する関数等を提供しています。
使用例④
顔グラを自動で「取込み画像」のものへと差換えたい、といったことも
よくある要望のうちの一つでしょう。
顔グラの取込み自体は、HD版付属の顔グラツールで行えますので、
ここでは大量の顔グラを自動で差し替える場合の記述例となります。
「My_噴出メッセージ直前」のイベントハンドラに記述するのは、
このイベントハンドラが比較的頻繁に呼ばれるイベントハンドラであり、
このイベントハンドラが1度も呼ばれることなく、
武将の顔を見るといった機会はゲーム構成上、まずありえないからです。
全員分を用意しているといったことはまずなく、
特定の人物分のみを用意していることが多いものです。
そういった場合には、下記のように列伝と値を対応させたキーと値の対応表を作るなどして
順次反映させる形となります。
その他
武将について、主な解説は以上となります。
武将関連には他にも非常に多数のプロパティやメソッドがあります。
詳しくはHD.version.SDKソース内の「武将.h」や「武将列挙.h」を参照してみてください。