拡張母艦 ver1.7
機能
基本機能
ユニットが拡張母艦能力を持つユニットに隣接したとき、その拡張母艦にユニットを格納できる。拡張母艦から出撃することができる。
拡張母艦にユニットが格納されているとき、HPやENなどが回復する。詳細はオプションの項目を参照。
拡張母艦にユニットが格納されているとき、HPやENなどが回復する。詳細はオプションの項目を参照。
デフォルトで拡張母艦能力、ユニット用特殊能力「母艦」を持つユニットは格納できない。ただし、オプションで格納可能にすることができる。
ユニット用特殊能力「格納不可」を持つユニットは格納できない。
ユニット用特殊能力「格納不可」を持つユニットは格納できない。
母艦から出撃した直後のユニットをクリックすると「出撃キャンセル」コマンドが現れ、選択することで母艦に戻ることができる。
「出撃キャンセル」コマンドは出撃したユニットとは別のユニットをクリックしたり、ターンが経過すると無効となる。
「出撃キャンセル」コマンドは出撃したユニットとは別のユニットをクリックしたり、ターンが経過すると無効となる。
ユニットIDが変わる操作
- 対応コマンド
- Upgrade
- 代わりに「拡張母艦_Upgrade」を使う
- Upgrade
上記以外に、ユニットIDが変わるような操作をした場合、拡張母艦能力は機能しない点に注意。
変形能力との連携
- 変形能力を持つユニットについて
あるユニットAがユニットA'に変形するとき、
- Aが拡張母艦能力Xを持ち、A'もまた拡張母艦能力Xを持つならば
- Xに格納されるユニットはAとA'間で「共有」され、Aの時にXに格納されたユニットはA'からも出撃できる。
- Aが拡張母艦能力Xを持ち、A'は拡張母艦能力Xを持たないならば
- オプション「変形時強制出撃」が指定されていない場合(デフォルト)
- Aの時にXに格納されたユニットはXに格納されたままで、A'に変形した状態では出撃させられない。
- オプション「変形時強制出撃」が指定されている場合
- AがA'に変形した瞬間に、格納されているユニットはすべて出撃させられる。
- オプション「変形時強制出撃」が指定されていない場合(デフォルト)
- 拡張母艦能力Xと拡張母艦能力X'の同一判定
- Info関数の「特殊能力データ」で得られる文字列を比較しているだけなので、オプションの並びも影響する。コピペ推奨。
シナリオへの導入
- Libフォルダの中身(拡張母艦.eve 拡張母艦フォルダ)をシナリオのLibフォルダにコピー
- シナリオ中でインクルード(<Lib\拡張母艦.eve>)
- 拡張母艦能力を持つユニットをCreateコマンドで作成した直後に「拡張母艦登録 対象ユニットID」を記述
※参考までに:テスト用イベントファイルである「拡張母艦テスト.eve」に実際的な記述がされている
更新履歴
- 2010/12/26 : version1.7
- 変形能力を持つ拡張母艦の間で「共有」されているユニットが回復しないなどのバグを修正
- Upgradeに対応
- オプション「SP」「霊力」「気力」「格納時気力」を追加
- ※破壊的変更
- 変数の形式を変更。これにより、セーブデータに互換性がなくなったが、「*プロローグ」イベントラベルが実行されるタイミングで、自動的に修正処理が実行される。また、マップ上で右クリックした際にも自動で修正処理が実行される。マップコマンドを開くたびにチェック処理が実行されるのを嫌うなら「Lib\拡張母艦\include.eve」の19行目(<Lib\拡張母艦\マップコマンド.eve>)をコメントアウトすること。
- 2010/12/15 : version1.6
- 変形能力に対応
- 以前までは、変形を持つユニットに「拡張母艦登録」を実行しても変形先のユニットが拡張母艦能力を持つ場合に登録されなかったが、登録されるようにした。
- 母艦が変形する場合、変形元ユニットと変形先ユニットに同じ拡張母艦能力を指定することで自然な動作をするようにした。
- オプション「変形時強制出撃」を追加
- 変形能力に対応
- 2010/12/5 : version1.5
- 拡張母艦能力の解説を自動生成するようにした
- ユニット用特殊能力「格納不可」(拡張母艦のオプション「格納不可」とは別物)に対応
- 拡張母艦オプションに「母艦HP」「母艦EN」を追加
- ※破壊的変更
- 一部の拡張母艦オプションの引数「倍率」(例:「HP*倍率」の「倍率」)を「数値」と名称を改め、固定値指定と%指定をできるようにした。以前までの記述だと固定値と判定されるので、そのままだと挙動が変わる点に注意
- 2010/12/5 : version1.4
資金が足りない場合は回復しないようにした
「出撃キャンセル」の判定を厳しくした
「出撃キャンセル」の判定を厳しくした
- 2010/12/5 : version1.3
拡張母艦登録のコマンドを「拡張母艦出撃」から「拡張母艦登録」に変更
ユニットを格納したままクリアした場合を失念していたので修正
必要な変数をGlobal指定するのを忘れていたのを修正
ユニットを格納したままクリアした場合を失念していたので修正
必要な変数をGlobal指定するのを忘れていたのを修正
- 2010/12/5 : version1.2
格納先の拡張母艦を選択できるようにした
オプションに「コスト」を追加した
出撃キャンセルをできるようにした
オプションに「コスト」を追加した
出撃キャンセルをできるようにした
- 2010/12/4 : version1.1
行動済みユニットが格納できてしまうのを修正
これに合わせて「行動済格納可」オプションを追加
これに合わせて「行動済格納可」オプションを追加
「拡張母艦」能力について
- 書式
拡張母艦[=別名 [オプション]]
- オプション(順不同)
オプション | 説明 | サンプル | サンプルの効果 |
格納されたユニットに関するオプション | |||
HP*数値 | 毎ターン、ユニットのHPが数値に応じて回復する。デフォルトで50% | HP*1000 | 毎ターンHPが1000回復(固定値) |
HP*30% | 毎ターンHPが最大HPの30%回復 | ||
EN*数値 | 毎ターン、ユニットのENが数値に応じて回復する。デフォルトで50% | EN*30% | 毎ターンENが最大ENの30%回復 |
弾数*数値 | 毎ターン、各武器の弾数が数値に応じて回復する。デフォルトで100% | 弾数*5% | 毎ターン各武器の弾数が最大弾数の5%回復 |
アビリティ*数値 | 毎ターン、各アビリティの使用回数が数値に応じて回復する。デフォルトで100% | アビリティ*5 | 毎ターンアビリティ使用回数が5回復 |
SP*数値 | 毎ターン、ユニットに登場しているすべてのパイロットのSPが数値に応じて回復する。デフォルトで0 | SP*5 | 毎ターン、パイロットのSPが5回復する |
霊力*数値 | 毎ターン、ユニットに登場しているすべてのパイロットの霊力が数値に応じて回復する。デフォルトで0 | 霊力*5% | 毎ターン、パイロットの霊力が最大霊力の5%回復する |
気力*数値 | 毎ターン、ユニットに登場しているすべてのパイロットの気力が数値に応じて上昇する。デフォルトで0 | 気力*5 | 毎ターン、パイロットの気力が5上昇する |
格納時気力*数値 | ユニットが母艦に格納されたとき、ユニットに登場しているすべてのパイロットの気力が数値に応じて上昇する(上昇である点に注意)。デフォルトで-5 | 格納時気力*-10 | 格納時、パイロットの気力が10減少する |
拡張母艦能力所有ユニットに関するオプション:指定した値だけ減少する点に注意 | |||
母艦HP*数値 | 毎ターン、拡張母艦ユニットのHPが格納しているユニットの数と数値に応じて減少する。デフォルトで0% | 母艦HP*1000 | 毎ターンHPが(格納しているユニット数 * 1000)減少(固定値) |
母艦HP*5% | 毎ターンHPが最大HPの(格納しているユニット数 * 5)%減少 | ||
母艦EN*数値 | 毎ターン、拡張母艦ユニットのENが格納しているユニットの数と数値に応じて減少する。デフォルトで0% | 母艦EN*30% | 毎ターンENが最大ENの(格納しているユニット数 * 30)%減少 |
コスト*数値 | 毎ターン、格納しているユニットの数と数値に応じて資金が減る。資金がコストを下回るとき、ユニットのHPやEN、弾数、アビリティは回復しない。デフォルトで0 | コスト*1000 | 毎ターン、(格納しているユニット数 * 1000)だけ資金が減る |
コスト*1% | 毎ターン、所持している資金の(格納しているユニット数 * 1)%だけ資金が減る | ||
格納条件に関するオプション | |||
格納数*格納数 | 格納数だけユニットを格納できる。-1で無制限。デフォルトで-1 | 格納数*10 | 10機だけユニットを格納できる |
ユニットクラス*ユニットクラス | 指定したユニットクラスだけ格納できる。デフォルトで無制限 | ユニットクラス*MS | ユニットクラス「MS」のみ格納可能 |
ユニット*ユニット名称 | 指定したユニット名称のユニットだけ格納できる。デフォルトで無制限 | ユニット*ザク(指揮官用) | ユニット「ザク(指揮官用)」のみ格納可能 |
XL | 格納できるユニットの指定。デフォルトですべてのサイズが格納できる。XL~SSのいずれかのサイズが指定されたら、指定されたものだけ搭載可能 | XL | XLサイズのユニットのみ格納可能 |
LL | XL LL M S | XL、LL、M、Sサイズのユニットのみ格納可能 | |
L | |||
M | |||
S | |||
SS | |||
母艦格納可 | 母艦、拡張母艦のいずれかの能力を持つユニットも格納できるようになる。デフォルトで無効 | 母艦格納可 | |
行動済格納可 | 行動済みのユニットも格納可能になる。デフォルトで無効 | 行動済格納可 | |
格納不可 | ユニットを一切格納できなくなる。デフォルトで無効。シナリオ上から切り替えることを想定 | 格納不可 | |
変形時強制出撃 | 母艦ユニットが変形したとき、すでにユニットを格納している拡張母艦能力と同じ能力が変形先ユニットに無い場合、格納していたユニットを強制的にマップ上に出撃させる。デフォルトで無効。オプションを指定しなかった場合、元々格納されていたユニットは変形先ユニットから出撃できない。 | 変形時強制出撃 |
- 「数値」引数
- 「数値」はすべて半角数字記号で記述すること
- 「数値」には負数、小数も指定可能
- 「数値」に小数を指定すると回復(減少)値が小数になることがあるが、その場合は小数点以下は切り上げされる
拡張コマンド
- ユニットの操作
- 拡張母艦登録 コマンド
- 拡張母艦を持つユニットを登録し、処理を有効にする
- Lib\拡張母艦\拡張母艦.eve
拡張母艦登録 UnitID
UnitIDには、登録したい拡張母艦ユニットのユニットIDを指定する。
- 拡張母艦_Upgrade コマンド
- 拡張母艦ユニットを「Upgrade」する際に代わりに利用する。「UnitID」に指定したユニットが拡張母艦であるとき、そのユニットを「Upgrade先ユニット名称」にUpgradeし、Upgradeに伴うユニットIDの変化に対応する。「UnitID」が拡張母艦でないときは何もしない。
- Lib\拡張母艦\拡張母艦.eve
拡張母艦_Upgrade UnitID Upgrade先ユニット名称
UnitIDには、Upgradeしたい拡張母艦ユニットのユニットIDを指定する。
「Upgrade先ユニット名称」にはUpgrade先のユニット名称を指定する。
「Upgrade先ユニット名称」にはUpgrade先のユニット名称を指定する。
- 拡張母艦格納 コマンド
- 指定したユニットを指定した拡張母艦に格納する
- Lib\拡張母艦\interface.eve
拡張母艦格納 UnitID MotherShipID name
UnitIDには、格納したいユニットのユニットIDを指定する。
MotherShipIDには拡張母艦ユニットのユニットIDを指定する。
nameには拡張母艦能力の別名を指定する。別名を指定していない場合は「拡張母艦」を指定する。
このコマンドが実行されるときには、格納できるかどうかのチェックを行い、格納できないなら何もしない。その場合、返り値として0が返る。
MotherShipIDには拡張母艦ユニットのユニットIDを指定する。
nameには拡張母艦能力の別名を指定する。別名を指定していない場合は「拡張母艦」を指定する。
このコマンドが実行されるときには、格納できるかどうかのチェックを行い、格納できないなら何もしない。その場合、返り値として0が返る。
- 拡張母艦格納2 コマンド
- 指定したユニットを指定した拡張母艦に格納する
- Lib\拡張母艦\interface.eve
拡張母艦格納2 UnitID MotherShipID index
UnitIDには、格納したいユニットのユニットIDを指定する。
MotherShipIDには拡張母艦ユニットのユニットIDを指定する。
indexには拡張母艦ユニットが持つ何番目の拡張母艦能力にユニットを格納するかを指定する。拡張母艦ユニットが1つしか拡張母艦能力を持たない場合、「1」を指定する
このコマンドが実行されるときには、格納できるかどうかのチェックを行い、格納できないなら何もしない。その場合、返り値として0が返る。
MotherShipIDには拡張母艦ユニットのユニットIDを指定する。
indexには拡張母艦ユニットが持つ何番目の拡張母艦能力にユニットを格納するかを指定する。拡張母艦ユニットが1つしか拡張母艦能力を持たない場合、「1」を指定する
このコマンドが実行されるときには、格納できるかどうかのチェックを行い、格納できないなら何もしない。その場合、返り値として0が返る。
- 拡張母艦出撃 コマンド
- 指定したユニットをマップ上に配置する
- Lib\拡張母艦\interface.eve
拡張母艦出撃 UnitID x y [option]
UnitIDには出撃させたいユニットのユニットIDを指定する。
x, yには出撃先の座標を指定する。
optionには「アニメ非表示」「非同期」が指定できる。省略可能。
x, yには出撃先の座標を指定する。
optionには「アニメ非表示」「非同期」が指定できる。省略可能。
- 拡張母艦オプションの操作
- 拡張母艦設定 コマンド
- 指定したオプションの値を操作する
- Lib\拡張母艦\interface.eve
拡張母艦設定 拡張母艦ユニットID 拡張母艦能力名 オプション [値]
「拡張母艦ユニットID」には格納不可状態を操作したいユニットのIDを指定。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。
「オプション」には「HP」や「XL」などのオプション名を指定。
「値」には、「HP」のような値を指定するものなら任意の値を、「XL」のような値を取らないものなら「1」か「0」で有効無効を切り替える。
このコマンドが呼び出されたとき、自動で解説文は再生成される。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。
「オプション」には「HP」や「XL」などのオプション名を指定。
「値」には、「HP」のような値を指定するものなら任意の値を、「XL」のような値を取らないものなら「1」か「0」で有効無効を切り替える。
このコマンドが呼び出されたとき、自動で解説文は再生成される。
- 拡張母艦能力のDisableとEnable
- 拡張母艦格納不可 コマンド
- 指定したユニットの拡張母艦能力の「格納不可」オプションを操作するコマンド
- Lib\拡張母艦\interface.eve
拡張母艦格納不可 拡張母艦ユニットID 拡張母艦能力名 フラグ
「拡張母艦ユニットID」には格納不可状態を操作したいユニットのIDを指定。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。
「フラグ」には、格納不可にするなら「1」を、格納不可を解除するなら「0」を指定。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。
「フラグ」には、格納不可にするなら「1」を、格納不可を解除するなら「0」を指定。
- 拡張母艦_Disable コマンド
- 指定したユニットの拡張母艦能力をDisableする(「格納不可」を設定する)コマンド
- Lib\拡張母艦\interface.eve
拡張母艦_Disable 拡張母艦ユニットID [拡張母艦能力名]
「拡張母艦ユニットID」には格納不可状態を操作したいユニットのIDを指定。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。省略した場合は空文字を指定したとみなす。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。省略した場合は空文字を指定したとみなす。
- 拡張母艦_Enable コマンド
- 指定したユニットの拡張母艦能力をEnableする(「格納不可」を無効にする)コマンド
- Lib\拡張母艦\interface.eve
拡張母艦_Enable 拡張母艦ユニットID [拡張母艦能力名]
「拡張母艦ユニットID」には格納不可状態を操作したいユニットのIDを指定。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。省略した場合は空文字を指定したとみなす。
「拡張母艦能力名」には、別名を指定したときはその別名を、指定しなかったときは「拡張母艦」を指定。空文字("")を指定した場合は、ユニットが持つすべての拡張母艦能力が対象となる。省略した場合は空文字を指定したとみなす。
インクルードの改造について
- 変数
- Lib\拡張母艦\プロローグイベント.eve
このインクルードでは、配列変数「拡張母艦」に主に必要なデータを記憶している。
この変数に対するGlobal指定は「プロローグイベント.eve」のプロローグイベント内で自動で行なっている。
何かしらの理由でこれを行いたくない場合は、「プロローグイベント.eve」を修正すること。
Global指定しないことにより、シナリオ毎に拡張母艦ユニットを変数に登録しなおす(「拡張母艦出撃 対象ユニットID」相当の処理をする)必要がある。
この変数に対するGlobal指定は「プロローグイベント.eve」のプロローグイベント内で自動で行なっている。
何かしらの理由でこれを行いたくない場合は、「プロローグイベント.eve」を修正すること。
Global指定しないことにより、シナリオ毎に拡張母艦ユニットを変数に登録しなおす(「拡張母艦出撃 対象ユニットID」相当の処理をする)必要がある。
- シナリオクリア時の処理
- Lib\拡張母艦\エピローグイベント.eve
シナリオクリア時には自動で「エピローグイベント.eve」で定義されているサブルーチン「拡張母艦_格納ユニット解放」が呼ばれ、拡張母艦に格納されているユニットを配列変数「拡張母艦」から削除する。
手動でこれを行いたい場合は、以下のような記述で呼び出す。ただし、解放されたユニットはMAPから撤退したままである。
手動でこれを行いたい場合は、以下のような記述で呼び出す。ただし、解放されたユニットはMAPから撤退したままである。
Call "拡張母艦_格納ユニット解放"
- 拡張母艦能力解説文の自動生成
- Lib\拡張母艦\解説.eve
サブルーチン「拡張母艦_解説生成」で、変数「拡張母艦[ 拡張母艦ユニットID, 拡張母艦能力別名 ]」という配列変数に、「拡張母艦ユニットID」が指すユニットが持つ「拡張母艦能力別名」という別名の拡張母艦能力の解説文を生成している。
必要に応じて修正。
必要に応じて修正。
- 拡張母艦に格納されているユニットの取得
- Lib\拡張母艦\foreach.eve
「foreach.eve」によって、格納されているユニットIDなどの情報を指定したサブルーチンにコールバックする機能を提供している。
拡張母艦に格納されているユニットを取得したい時に利用する。
手動でユニットを走査したいときは「foreach.eve」を参照のこと。
拡張母艦に格納されているユニットを取得したい時に利用する。
手動でユニットを走査したいときは「foreach.eve」を参照のこと。
コールバックサブルーチン:
# 格納されているユニットのユニットID
Local _UnitID = Args(1)
# ユニットを格納している拡張母艦ユニットのユニットID
Local _MotherShipID = Args(2)
# 拡張母艦ユニットが拡張母艦能力を複数もつ場合、何番目の拡張母艦能力にユニットが格納されているかを指す変数
Local _abl_idx = Args(3)
# 配列変数「拡張母艦」内での_UnitIDの位置を示す変数
Local _unit_idx = Args(4)
# 参考:
# 拡張母艦[_MotherShipID, _abl_idx, "格納", _unit_idx] と _UnitID は等しい
Return
ターン 2 "味方":
# 文字列として渡すことに注意
Call "拡張母艦_foreach" "コールバックサブルーチン"
Exit
- 出撃時の移動範囲
- Lib\拡張母艦\出撃範囲.eve
拡張母艦から出撃するときの移動範囲は、「Lib\拡張母艦\出撃範囲.eve」で定義される、「拡張母艦_出撃範囲獲得」サブルーチンで決定する。
このサブルーチン内で、移動先の座標(X,Y)を「拡張母艦_出撃範囲[X,Y] = 1」とすることで移動可能となる。
「拡張母艦_出撃範囲獲得」サブルーチンを修正することで出撃時の移動範囲を調整できる。
このサブルーチン内で、移動先の座標(X,Y)を「拡張母艦_出撃範囲[X,Y] = 1」とすることで移動可能となる。
「拡張母艦_出撃範囲獲得」サブルーチンを修正することで出撃時の移動範囲を調整できる。
- 出撃時のアニメ設定
- Lib\拡張母艦\ユニット出撃アニメ.eve
このファイル内で、EscapeされていたユニットのMAPへの再配置、出撃先座標までのアニメの表示を定義している。
該当部分を弄ることで変更可能。
該当部分を弄ることで変更可能。
- 出撃後のユニットの状態
- Lib\拡張母艦\ユニット出撃.eve
このファイルの109行目にて、出撃したユニットを行動済みにしている。
該当部分を弄ることで変更可能。
該当部分を弄ることで変更可能。
- 変形時の強制出撃
- Lib\拡張母艦\変形.eve
46行目で出撃処理を行なっている。(単純にLaunch)
挙動を変えたい場合はこの箇所を変更する。
挙動を変えたい場合はこの箇所を変更する。