MapMakerによる戦場マップの部隊配置について

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

戦闘イベントへの入り方

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

event構造体の関数記述

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

event構造体の設定

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

unit構造体の部隊属性設定

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

unit構造体の部隊行動設定

activeactivenumで部隊の行動を設定できます。
activeに文字列を指定すると、その部隊は開始時スリープ状態となります。
スリープでは部隊移動をしません。ユニットの接近/回避行動はします(後述の2の接尾辞関数ではそれもしない)
activenumに文字列ないし数値を指定すると稼働条件を設定できます。
active = never
activenum = 指定無し
アクティブになりません。これは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の接尾辞をつけるとスリープ中は一切動かなくなります。
.
名前:
コメント:

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2023年05月12日 00:30