「戦闘イベントの作成」の編集履歴(バックアップ)一覧に戻る

戦闘イベントの作成 - (2023/05/12 (金) 00:30:05) のソース

**&color(green){MapMakerによる戦場マップの部隊配置について}
「部隊チップ」と同名の構造体ユニットが配置されます。
すでに存在する人材ユニットならそれを配置し、そうでないなら新規作成されて配置されます。
新規作成されたユニットは戦闘イベント終了後に全削除されます。
「部隊チップ」には文字変数も指定できます。&color(blue){@}を先頭につけると文字変数とみなされます。
:部隊チップの文字列|
|@|防衛部隊の位置。ダンジョンならプレイヤーの開始位置|
|@@|侵攻部隊の位置|
|@~|@が接頭辞の文字列は文字変数と見なされます。代入スクリプトで防衛施設を変化できます|
|その他文字列|同名のunit/class構造体ユニットが配置されます|

**&color(green){戦闘イベントへの入り方}
:event(イベント名)|
:event(イベント名, &color(blue){赤陣営の勢力}, &color(blue){青陣営の勢力})|
任意のイベントに入ります。省略時はどちらも中立勢力になります。
勢力指定はCOM思考と旗表示に影響しますが未指定でも問題ありません。

**&color(green){event構造体の関数記述}
>event test
>{
>  フェードイン前の事前処理(省略可)
>  next() (必須)
>  戦闘前イベント(省略可。moveTroopなどで部隊を動かせます)
>  battle
>  {
>    ifブロック、rifブロックの列挙
>    if (条件) {
>      win()
>    }
>  }
>  戦闘後イベント(省略可)
>}
まずフェードイン前の事前処理を記述します。locateで開始画面位置を決めたりします。
その後は必ず&color(blue){next()}関数を記述してください。
battleブロックの中に入ると戦闘中となります。&color(blue){win()}関数で戦闘から抜けます。

**&color(green){event構造体の設定}
:map = (文字列)|
mapファイルを指定します。
:handle = (red/blue)|
操作ユニットがいる場合は「赤」「青」のどちらをプレイヤー陣営(操作ユニットが属す)にするか決めます。
:disperse = (on/off)|
戦闘時のCOM思考に影響します。
onにすると通常より散開して部隊を移動させるようになります。
:castle_battle = (on/off)|
onで攻城戦モードになります。「青」が防衛側になります。
:castle = (数値)|
城壁値(城壁のHP)になります。
:title = (文字列)|
戦闘イベントの名前です。
:limit = (数値)|
制限時間です。ただし戦闘イベントではゼロになっても自動終了しません。
&color(blue){getLimit}関数でチェックして任意の結果を発生させてください。
:bgm = (文字列)|
BGMです。
:volume = (数値)|
音量です。(1~100)の範囲で決めます。
:blind = (on/off)|
:blind = (0~255)|
onにすると視界制限になります。
数値を1以上にすると視界制限になります。数値は視界外の暗闇の透明度です。255で真っ暗です。

**&color(green){unit構造体の部隊属性設定}
:red = (on/off)|
onで赤陣営に、offで青陣営に追加されます。
未指定だと部隊の全ユニットが青陣営の自動ユニット(召喚精霊)となり部隊移動をしません。
同時に後述の&color(blue){active}による制約を受けなくなってしまいます。
:handle = (on/off)|
onにすると操作ユニットとなります。プレイヤー陣営でないと無効になります。
なおダンジョンのプレイヤーは赤陣営になってます。
なおevent()呼び出しでプレイヤー勢力を指定するとその陣営のユニットはhandleに関係なく全て操作可能となります。
:keep_form = (on/off)|
onにすると部隊がよりまとまって動くようにないます。
リーダーユニットに記しください。
:breast_width = (数値)|
省略時は&color(blue){context構造体のbtl_breast_width}の数値になります(デフォは15)
横列隊形時の横幅数です。リーダーユニットに記しください。

**&color(green){unit構造体の部隊行動設定}
&color(blue){active}と&color(blue){activenum}で部隊の行動を設定できます。
&color(blue){active}に文字列を指定すると、その部隊は開始時スリープ状態となります。
スリープでは部隊移動をしません。ユニットの接近/回避行動はします(後述の2の接尾辞関数ではそれもしない)
&color(blue){activenum}に文字列ないし数値を指定すると稼働条件を設定できます。
:active = never|
:activenum = 指定無し|
アクティブになりません。これは&color(blue){activeTroop}関数で稼働させます。
:active = rect|
:activenum = (left, top, right, bottom)|
4つの座標で示される四角形領域に敵ユニットが入ったらアクティブになります。
MapMakerの座標を指定してください。内部でクォータービュー座標に変換されます。
:active = range|
:activenum = (数値)|
リーダーの数値ドット半径内に敵ユニットが入ったらアクティブになります。
:active = time|
:activenum = (数値)|
戦闘カウントが数値以上経過したらアクティブになります。
制限時間が1減ると戦闘カウントは10増えてます。
:active = troop|
:activenum = (ユニット)|
指定ユニットがアクティブになったら同じくアクティブになります。

:active = never2|
:active = rect2|
:active = range2|
:active = time2|
:active = troop2|
2の接尾辞をつけるとスリープ中は一切動かなくなります。
.
#comment(size=60,vsize=2)