# 置く場所 # (シナリオのパス)\Data\機動戦士ガンダムSEED\include.eve ############################## 注意 # ステージ中のイベントで換装の使用イベントを定義する際は # パイロット名で指定するか、常時イベントラベルとして記述してください # (例) # *使用 シン シルエット換装: ############################## # シルエット関連処理 ############################## # インパルスかアウトフレームが戦艦の近くで自ら換装を実行する場合 # 未装備→G(対象) # 未装備のパック類のうち、ステージ中まだ換装してないものをAsk 使用 味方 "シルエット換装": Local itm_id # 換装で付け替えるアイテムIDを返す。キャンセル時は空文字列 itm_id = Call("GSEED_Ask_戦艦戦術換装", 対象ユニットID, "シルエット") If itm_id = "" Then # キャンセルか装備不能な場合 Cancel Else # 装備可能なら換装の実施 Call "GSEED_Equip_Anime" 対象ユニットID itm_id EndIf # キャンセルしても換装しても再行動 Action() = Action() + 1 Exit ############################## # ストライカーパック 戦艦 ############################## # 戦艦(対象)→G(相手) # 未装備のパック類のうち、ステージ中まだ換装してないものを選択肢に 使用 味方 "ストライカーパック換装(S)": Local itm_id # 換装で付け替えるアイテムIDを返す。キャンセル時は空文字列 itm_id = Call("GSEED_Ask_戦艦戦術換装", 相手ユニットID, "ストライカーパック") If itm_id = "" Then # キャンセルか装備不能な場合 Action() = Action() + 1 Cancel Else # 装備可能なので換装の実施 Call "GSEED_Equip_Anime" 相手ユニットID itm_id RecoverEN 相手ユニットID 100 # Supply EndIf Exit ############################## # ストライカーパック グラスパー ############################## # グラスパー(対象)→G(相手) # スカイグラスパーから換装する際の処理 使用 味方 "ストライカーパック換装": Local UID = 対象ユニットID # 装備しているストライカーパックのアイテムID Local itm_id = Call("GSEED_Item(ユニットID,アイテムクラス名)", UID, "ストライカーパック") If itm_id != "" Then If Call("GSEED_簡易必要技能判定", 相手ユニットID, itm_id) = 0 Then ##Gフライトはアウトフレーム、アウトフレームDのみ可 Talk この機体へは換装できません End Cancel Action() = Action() + 1 Else # 装備可能なら換装の実施 Call "GSEED_Equip_Anime" 相手ユニットID itm_id RecoverEN 相手ユニットID 100 EndIf EndIf Exit ############################## # プレイヤーに換装させるアイテムを選択させる # 返り値はアイテムID。キャンセル時と装備不能時は空文字列を返す # 引数1は換装するユニットID # 引数2はアイテムクラス「シルエット」「ストライカーパック」 GSEED_Ask_戦艦戦術換装: Local UID = Args(1) Local itm_class = Args(2) Local itm_id Local i Ask_戦術換装アイテム # Ask_戦術換装アイテム[アイテムID] アイテム名称 Ask_戦術換装アイテム[0] = "キャンセル" # 未装備のパック類のアイテムIDのリスト。0個の場合は空文字列 Local itm_lst = Call("GSEED_未装備アイテムリスト", itm_class) # Ask文を作成 For i = 1 To LLength(itm_lst) itm_id = LIndex(itm_lst, i) # 例)Ask_戦術換装アイテム[1] = フォースシルエット Ask_戦術換装アイテム[itm_id] = Info("アイテム", itm_id, "愛称") Next Ask Ask_戦術換装アイテム "$(Nickname(UID))に装備する$(itm_class)を選択してください" "キャンセル可" Switch 選択 Case 0 "" itm_id = "" Case Else # 換装する場合 itm_id = 選択 ##カオス、ガイア、アビスシルエットはアウトフレーム不可 ##Gフライトはアウトフレームのみ可 #If (Unit() != "インパルスガンダム(ASTRAY対応)") And _ # (LSearch("カオスシルエット アビスシルエット ガイアシルエット", Ask_戦術換装アイテム[itm_id]) > 0) Then If Call("GSEED_簡易必要技能判定", UID, itm_id) = 0 Then Talk この機体へは換装できません End itm_id = "" EndIf EndSw Return itm_id ############################## # 未装備の特定アイテムクラスのアイテムIDをリスト形式で返す。0個の場合は空文字列 # 引数1はアイテムクラス「シルエット」「ストライカーパック」 # ステージ中に使用済みのものを除く GSEED_未装備アイテムリスト: Local itm_class = Args(1) Local itm_id Local itm_lst = "" Local i For i = 1 To CountItem("未装備") itm_id = ItemID("未装備", i) If Info("アイテム", itm_id, "アイテムクラス") = itm_class Then # 未使用なら追加 If Not IsVarDefined(GSEED_使用済みアイテム[itm_id]) Then itm_lst = List(itm_lst, itm_id) EndIf EndIf Next Return itm_lst ############################## # ユニットにパック類を装備させる # 装備前、装備後のパック類を変数に保存して再使用できないようにする # 変形アニメ実行するならここ # 引数1はユニットID # 引数2はアイテムID GSEED_Equip_Anime: Local UID = Args(1) Local itm_id = Args(2) Local itm_class = Info("アイテム", itm_id, "アイテムクラス") Local i # 換装前にパック類を装備していれば使用不能に Call "GSEED_使用済みアイテム処理" UID itm_class # 特定のアイテムクラスを装備から外す # 本来はアウトフレーム専用処理だが、不具合検出の為すべての機体に行う Call "GSEED_RemoveItem(ユニットID,除去するアイテムクラス名のリスト)" UID "ストライカーパック シルエット ウィザード バックジョイント" # パック類を装備。アイテムIDで指定しているので空き優先でなく特定の装備品が移動する Equip UID itm_id # 今換装したパック類も使用不能に Call "GSEED_使用済みアイテム処理" UID itm_class # 変形アニメするならここ PlayEffect "地面衝撃" UID "Jet.wav" # Call "戦闘アニメ_変形" UID END_BMP "Machine.wav" Return ############################## # 現在装備しているパック類を配列に保存し使用不能にする # 引数1はアイテムクラス「シルエット」「ストライカーパック」 # Set GSEED_使用済みアイテム[ItemID(UID, i)] UID GSEED_使用済みアイテム処理: Local UID = Args(1) Local itm_class = Args(2) # 装備しているシルエットかストライカーパックのアイテムID Local itm_id = Call("GSEED_Item(ユニットID,アイテムクラス名)", UID, itm_class) If itm_id != "" Then # GSEED_使用済みアイテム[ItemID] 装備していたUnitID Set GSEED_使用済みアイテム[itm_id] UID EndIf Return ############################## # ユニットが装備している指定アイテムクラスのアイテムIDを返す # 装備していない場合は空文字列を返す # 引数1はユニットID # 引数2はアイテムクラス「シルエット」「ストライカーパック」 GSEED_Item(ユニットID,アイテムクラス名): Local UID = Args(1) Local itm_class = Args(2) Local i For i = 1 To CountItem(UID) If Info("アイテム", Item(UID, i), "アイテムクラス") = itm_class Then Return ItemID(UID, i) EndIf Next Return "" ############################## # そのユニットが装備できるアイテムなら 1 を返す # 引数1はユニットID # 引数2はアイテムID GSEED_簡易必要技能判定: Local UNI = Unit(Args(1)) Local UNI_NAME = Nickname(UNI) Local itm_id = Args(2) Local i data_list # 必要技能を満たすかを名称・愛称から判定 If Info("アイテム", itm_id, "特殊能力所有", "必要技能") Then data_list = Info("アイテム", itm_id, "特殊能力データ", "必要技能") data_list = Replace(data_list, " or ", " ") # 名称・愛称が必要技能に含まれていない場合、装備不可で 0 を返す If LSearch(data_list, UNI) + LSearch(data_list, UNI_NAME) <= 0 Then Return 0 EndIf EndIf # 不必要技能を満たすかを名称・愛称から判定(「MA」では見てない) # ここの処理は実は不要 If Info("アイテム", itm_id, "特殊能力所有", "不必要技能") Then data_list = Info("アイテム", itm_id, "特殊能力データ", "不必要技能") data_list = Replace(data_list, " or ", " ") # 名称・愛称が不必要技能に含まれる場合、装備不可で 0 を返す If LSearch(data_list, UNI) + LSearch(data_list, UNI_NAME) > 0 Then Return 0 EndIf EndIf Return 1 # カオスシルエット 必要技能=インパルスガンダム(ASTRAY対応) # ガイアシルエット 必要技能=インパルスガンダム(ASTRAY対応) # アビスシルエット 必要技能=インパルスガンダム(ASTRAY対応) # Gフライト 必要技能=アストレイアウトフレーム or アストレイアウトフレームD or スカイグラスパー or コスモグラスパー or スカイグラスパー(正式採用機) # ガンバレルストライカー 不必要技能=スカイグラスパー or コスモグラスパー # ドッペルホルン連装無反動砲 不必要技能=MA # マルチストライカー 不必要技能=MA ############################## # アウトフレーム専用処理 ############################## # 引数1のユニットから特定のアイテムクラスのアイテムだけを外す # 引数2はアイテムクラス。複数ある場合はリストで指定 # 書式例 # Call "GSEED_RemoveItem(ユニットID,除去するアイテムクラス名のリスト)" 対象ユニットID "武器" GSEED_RemoveItem(ユニットID,除去するアイテムクラス名のリスト): Local UID = Args(1) Local ITEM_CLASS_LIST = Args(2) Local items_num = CountItem(UID) Local items Local i # 装備品を全て記録してから外す For i = 1 To items_num Set items[i] ItemID(UID, i) Next RemoveItem UID # アイテムを付け直す For i = 1 To items_num If LSearch(ITEM_CLASS_LIST, Info("アイテム", items[i], "アイテムクラス")) >= 1 Then # 引数2で指定されたアイテムクラスのアイテムは外したまま Else # 残りの装備を戻す # つけ外しによるHP変動等はイベント中なので起きない Equip UID items[i] EndIf Next Return # 変更日付 変更者 変更内容 # 2011/7/2 ぶれーかー Itemテキスト、及びインクルードを改定 # 2013/12/1 ぶれーかー 不具合の修正を中心として改定。各種バグ対応、インクル仕様変更、PS装甲仕様微調整等 # 2017/10/9 換装の不具合を修正 ############################## 変更点 (2017/10/9) # ItemIDを使用することで、同名アイテムを複数所有する場合、所有数だけ使用できるようにした # ItemIDを使用することで、「ダミーシルエット」等を使わなくてもいいようにした # グラスパーが1番目にストライカーパックを装備していないと起きる不具合を修正 # 複数の関連作品を読み込むと常時イベントラベル(*使用後)が重複して発生する書式を修正した # 使用済みパックの変数名を変更したため、以前のバージョンとセーブデータ互換はありません # 換装時の変形アニメを仮で追加 ############################## 既知の不具合 # 移動後に「換装をキャンセル」または「装備不可」であった場合、移動前の場所に戻らない不具合はそのまま #  非表示のユニットコマンドで対応可能だが、作品添付インクルでやるレベルの処理でないため見送り # 同様の理由で「換装しても今いる地形に進入可か」を見ない # 以下は確認用メモ 削除してください ############################## 連絡事項 # 全ての換装アビリティからP属性を外してください # 戦艦アビリティの記述を修正してください # 各item.txt から「ダミーシルエット」等を削除しても動作します # スカイグラスパー(正式採用機) # ↑制式が正しいようです ############################## 使用ローカル変数 # GSEED_使用済みアイテム[ItemID] 装備していたUnitID(値は不使用) ############################## 仕様 # パック類の同時装備数は1つまで # このファイルがSEED関連作品すべてに入っていて # 複数読み込まれたとしても動作します # (常時イベントラベルを使用していません) # その代わり、シナリオ側で「使用 味方 ストライカーパック換装」等を定義すると処理が実行されません # 換装後の地形進入可否は確認しない # 敵時に換装アビリティを使用しない(回復しない、再行動しない) # 換装後の回復について # ストライカーパックはENのみ回復 弾数は回復しない 渡した側だけ行動消費 # シルエットはHPもEN回復もしない 再行動する ########### 関連戦艦一覧 # ミネルバ # アークエンジェル # ドミニオン ########### 関連アイテム一覧 # エールストライカー # ランチャーストライカー # ソードストライカー # ノワールストライカー # アナザートライアルランチャーストライカー # アナザートライアルソードストライカー # ケルベロスウィザード # フォースシルエット # ブラストシルエット # ソードシルエット # ブレイズウィザード # スラッシュウィザード # ガナーウィザード # イージーウィザード # ジェットストライカー # ドッペルホルン連装無反動砲 不必要技能=MA # マルチストライカー 不必要技能=MA # バック・ホーム # Gフライト 必要技能=アストレイアウトフレーム or アストレイアウトフレームD or スカイグラスパー or コスモグラスパー or スカイグラスパー(正式採用機) # ディバインストライカー # カオスシルエット 必要技能=インパルスガンダム(ASTRAY対応) # ガイアシルエット 必要技能=インパルスガンダム(ASTRAY対応) # アビスシルエット 必要技能=インパルスガンダム(ASTRAY対応) # ブースターウィザード # ミーティア6号機 # デスティニーシルエット # デスティニーシルエット2号機 # デスティニーシルエット3号機 # ノクティルーカウィザード # ナイトウィザード # スペキュラムストライカー # サムブリットストライカー # キャリバーンストライカー # 統合兵装ストライカー # ガンバレルストライカー 不必要技能=スカイグラスパー or コスモグラスパー # ライトニングストライカー # シールドストライカー # バズーカストライカー # バスターストライカー # マガノイクタチストライカー # ドラグーンストライカー # スカイグラスパー(正式採用機) # 制式 # ドッペルホルン連装無反動砲 不必要技能=MA # マルチストライカー 不必要技能=MA # 不必要技能=スカイグラスパー or コスモグラスパー # ↑ここの表記を統一する利益は特になし # マルチパック # ハードポイントLv1=バックジョイント # ハードポイントLv1=ストライカーパック # ハードポイントLv1=シルエット # ハードポイントLv1=ウィザード # ダミー特殊能力名=マルチパック 8が搭乗しているとき、シルエットやウィザードの換装が可能となる # 弱点=非表示 す # アイテム交換画面では「分類」に装備個所名(ハードポイント名)が表示される