| 2006/09/11(Mon) 18:24:37 編集(投稿者)
ハクです。
ハードポイントで自作した部分に装備したアイテム = そのユニットが現在持っている中で装備箇所が自作したハードポイントのアイテム
と考えれば
装備アイテム名: Local i 装備アイテム名 For i = 1 To Info(ユニット, 対象ユニットID, アイテム数) If Info(アイテム, Info(ユニット, 対象ユニットID, アイテム, i), 装備個所) = Args(1) Then Set 装備アイテム名 Info(ユニット, 対象ユニットID, アイテム, i) Break EndIf Next Return 装備アイテム名
というようなサブルーチンをシナリオまたはインクルードファイルに書いておき、 メッセージデータあるいはデイアログデータで
攻撃, 必殺の$(Call(装備アイテム名, "ここに自作ハードポイント名"))だ
というように指定すれば喋ってくれますが 何も装備していない場合セリフが不自然になります。
その場合に対応しておくならサブルーチンを
HP対応台詞: Local i 装備アイテム名 For i = 1 To Info(ユニット, 対象ユニットID, アイテム数) If Info(アイテム, Info(ユニット, 対象ユニットID, アイテム, i), 装備個所) = Args(1) Then Set 装備アイテム名 Info(ユニット, 対象ユニットID, アイテム, i) Break EndIf Next If 装備アイテム名 = "" Then Return Args(4) EndIf Return (Args(2) & 装備アイテム名 & Args(3))
として、メッセージデータで
攻撃, $(Call(HP対応台詞, "自作ハードポイント名", "前にくっつける言葉" "後にくっつける言葉", "予備の台詞"))
とした方が良いかと思います。
(例)
攻撃, $(Call(HP対応台詞, 右手, 安物の, をくらえ, これを受けろ))
"右手"にアイテム"剣"を装備 →「安物の剣をくらえ」 "右手"にアイテムがない →「これを受けろ」
ちょっとわかりにくいかと思いますが実際動かしてみて動作を確認してください。 それでは。
|