撃破数を超えると加入
マスターの場合
if(Flag[21]==false && KuniFlag[1])
{
Set a,BaseArea[1]
Set b,Flag[505]
Set c,Flag[506]
if(b<0)
{
Plus b,256
}
Start
if(c>0)
{
Plus b,256
Plus c,-1
GoTo
}
if(AreaButaiKz[a]<20 && b>19)
{
CharSet a,%人材A
Set Flag[21],true
if(KuniPlayer[1])
{
Window 0
FaceOut 1
WindowOn 10
Window 1
Conversation %人材A
Print あなた様の武勇に憧れました。
Print どうか軍に加えて頂けないでしょうか?
WindowOn 4000
Window 0
Conversation 1
Print ああ、いいだろう。
WindowOn 4000
Window 1
Conversation %人材A
Print ありがとうございます!
WindowOn 4000
WindowOff
}
Window 1
FaceOut %人材A
WindowOn 10
Window 0
Size 356,96
Print 1番国軍に人材Aが加わった!
WindowOn 4000
WindowOff
}
}
人材の場合
if(Flag[23]==false && HeroKuni[%人材A]==1)
{
Set a,HeroFlag[%人材A]
if(AreaButaiKz[a]<20 && WinKz[%人材A]>19)
{
CharSet a,%人材B
Set Flag[23],true
if(KuniPlayer[1])
{
Window 1
Conversation %人材B
Print よう、活躍してるみたいだな。
WindowOn 4000
Window 0
Conversation %人材A
Print まあな。
WindowOn 4000
Window 1
Conversation %人材B
Print 俺も負けてられない。
Print 一緒に戦わせてもらうぞ。
WindowOn 4000
Window 0
Conversation %人材A
Print お前なら[[マスター]]も
Print 歓迎してくれるだろう。
WindowOn 4000
WindowOff
}
Window 1
FaceOut %人材B
WindowOn 10
Window 0
Size 356,96
Print 1番国軍に人材Bが加わった!
WindowOn 4000
WindowOff
}
}
【解説】
マスターの場合
- フラグ番号21が偽で
- 本拠地のユニット数が20体未満の時
マスターの撃破数管理は少々複雑で、人材の撃破数の様に「
WinKz[%キャラID]」を使うことはできません。
マスターの撃破数は「
Flag[501+4*マスターの番号]とその一つ下のフラグ番号」で管理されています。
例えば1番のマスターの場合は上記の様に「
Flag[505]とFlag[506]」によって管理されています。
10番のマスターの場合は「
Flag[541]とFlag[542]」になります。
256進法で管理されている模様。ややこしいので上の
テンプレートのやり方を覚えておけばとりあえず問題ないです。
変数aに代入した
マスターの
本拠地にCharSetで人材を配置、フラグ21を真にし1番の国でプレイしている場合に会話が発生、
プレイしている国に関わらず人材加入を知らせる、という流れになっています。
人材の配置とフラグの成立は会話等の前に記しましたが、後ろでも問題ないです。自分が管理しやすい方に置きましょう。
人材の場合
- フラグ番号23が偽で
- 1番の国に人材Aが加入しており
- 人材Aの所在地のユニット数が20体未満の時
「HeroKuni[%人材A]==1」は「人材Aが1番の国に所属している」事を示す条件式なので、これ一つでマスターと人材の両方の生存を判定できます。
なので「KuniFlag[1]!=0」は省いていますが、バグ等は特に起こらないので万全にしたい時は入れてもいいでしょう。
人材の撃破数は「WinKz[%キャラID]」が使えるので難しいことはありません。
あとは
マスターの場合と同様、人材Aの所在地に人材Bを配置、フラグ23を真にし1番の国でプレイしている時の会話と全体へ加入の告知という流れです。
最終更新:2021年12月26日 12:48