2016/12/27(Tue) 17:31:25 編集(投稿者)
現状のSRCの仕様だと「必要技能」の「ユニット隣接」は性別指定に対応していません。
それとInfo関数の使用とは「必要技能」でInfo関数を使用すると言った事でしょうか?
そうだとするなら、そもそも「必要技能」に関数を使用できる機能は備わっていなかったと思います。
代案としてはイベントを作成して擬似的に再現する方法が現実的だと思います。
とりあえず参考までに処理のサンプルを作成してみました。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
煩悩パワー
ダミー特殊能力=煩悩パワー
格闘強化Lv2=非表示 (煩悩レベルLv1)
射撃強化Lv2=非表示 (煩悩レベルLv1)
命中強化Lv2=非表示 (煩悩レベルLv1)
回避強化Lv2=非表示 (煩悩レベルLv1)
反応強化Lv2=非表示 (煩悩レベルLv1)
技量強化Lv2=非表示 (煩悩レベルLv1)
格闘強化Lv2=非表示 (煩悩レベルLv2)
射撃強化Lv2=非表示 (煩悩レベルLv2)
命中強化Lv2=非表示 (煩悩レベルLv2)
回避強化Lv2=非表示 (煩悩レベルLv2)
反応強化Lv2=非表示 (煩悩レベルLv2)
技量強化Lv2=非表示 (煩悩レベルLv2)
格闘強化Lv2=非表示 (煩悩レベルLv3)
射撃強化Lv2=非表示 (煩悩レベルLv3)
命中強化Lv2=非表示 (煩悩レベルLv3)
回避強化Lv2=非表示 (煩悩レベルLv3)
反応強化Lv2=非表示 (煩悩レベルLv3)
技量強化Lv2=非表示 (煩悩レベルLv3)
格闘強化Lv2=非表示 (煩悩レベルLv4)
射撃強化Lv2=非表示 (煩悩レベルLv4)
命中強化Lv2=非表示 (煩悩レベルLv4)
回避強化Lv2=非表示 (煩悩レベルLv4)
反応強化Lv2=非表示 (煩悩レベルLv4)
技量強化Lv2=非表示 (煩悩レベルLv4)
煩悩パワー=解説 味方の女性が隣接してると全ての能力値が+10。効果は重複される。
*進入 全 X() Y():
Call 煩悩パワー処理 対象ユニットID
Exit
*攻撃 全 全:
Call 煩悩パワー処理 対象ユニットID 相手ユニットID
Exit
*攻撃後 全 全:
*破壊 全:
Call 煩悩パワー処理 対象ユニットID 相手ユニットID
Exit
# ↓戦闘で終了しなかった場合の処理
*エピローグ:
ForEach 全 全て
If Info(パイロット,対象パイロット,特殊能力所有,煩悩レベル) = 1 Then
ClearSkill 対象パイロット 煩悩レベル
EndIf
Next
Exit
煩悩パワー処理:
Local i j k l
Local xx yy
Local cnt pid
Local rng = 1 // 範囲を変えたい場合はここの値を変更して下さい。
Local uid1 uid2
For i = 1 To ArgNum
Set uid1 Args(i)
Set pid PilotID(uid1)
If Info(ユニット,uid1,特殊能力所有,煩悩パワー) = 1 Then
If Status(uid1) = 出撃 Then
Set xx X(uid1)
Set yy Y(uid1)
Set cnt 0
For j = (0 - rng) To rng
Set k (rng - Abs(j))
For l = (0 - k) To k
Set uid2 Info(マップ,(xx + j),(yy + l),ユニットID)
If (uid2 <> "") And (uid2 <> uid1) Then
If Party(uid1) = Party(uid2) Then
If Info(パイロット,PilotID(uid2),性別) = 女性 Then
Incr cnt 1
EndIf
EndIf
EndIf
Next
Next
If cnt > 0 Then
SetSkill pid 煩悩レベル cnt 非表示
ElseIf Info(パイロット,pid,特殊能力所有,煩悩レベル) = 1 Then
ClearSkill pid 煩悩レベル
EndIf
ElseIf Info(パイロット,pid,特殊能力所有,煩悩レベル) = 1 Then
ClearSkill pid 煩悩レベル
EndIf
EndIf
Next
Return