| 動作チェックしてみたところ、ミスが見つかったので一応報告します。 まず、ご質問のところ
> If Party(対象ユニット) = 味方 Then > If 鋭敏[対象ユニット] > 0 Then > If Mind(対象ユニット,ひらめき) Then ←ここ > If 鋭敏[対象ユニット] = 1 Then >対象にひらめきがかかっていたら下にいく訳ですよね? >多分、違いますよね? >ひらめきがかかっていなかったら >再びひらめきがかかると言う風にするんですよね?
はおっしゃるとおりで、ひらめきがかかっていないときに下に行くようにせねばなりませんから、
If Mind(対象ユニット,ひらめき) = 0 Then
とするのが正解です。ちなみに、
If Mind(対象ユニット,ひらめき) Then
とは
If Mind(対象ユニット,ひらめき) = 1 Then
と同義ですので、私の明らかなケアレスミスです。
そして、重大なことが発覚しました。本体のバグなのかどうかはわかりませんが、「*使用 味方 鋭敏:」ラベルを用いると、二回目以降の鋭敏の選択を受け付けなくなることがテストの結果判明しました。他の精神コマンド名(例えば、俊足)を使うと上手く動作するようです。精神コマンド名を「俊足」に変えて、使用ラベルを「*使用 味方 俊足:」へ変更してみてください。SRC Ver1.6.50では正常に動作しました。
念のため、テスト用のソースを書いておきます。ヘルプに載っていない特殊能力や精神コマンドがありますが、それは見なかったことにして下さい。動作上問題ありません。あと、パイロットは好きなユニットに乗せてあげてください。
### pilot.txt ################################
シーフェ=ドレイベ シーフェ, 男性, バイアムスト, AAAA, 180 特殊能力 切り払いLv4, 1 カウンターLv4, 1 サポートアタックLv2, 1 サポートガードLv1, 1 耐久Lv2.5, 1 120, 144, 149, 143, 177, 160, 普通 精神, 60, 突撃, 1, 応援, 1, 偵察, 1, 祝福, 1, 俊足, 1, 魅惑, 1 AMST_ThiefeDrabe.bmp, siny025.mid
### テストプログラム #################################
プロローグ: Unit ユニット名 0 Pilot シーフェ=ドレイベ 20 Ride シーフェ Exit
スタート: ChangeMap Map\EnsemblePlanet01.map Launch シーフェ 1 1 For j = 1 To 4 Create 敵 ザコユニット名 0 適当なザコパイロット 30 5 5 Next Exit
*使用 味方 俊足: Talk システム そんなものか End Ask "精神コマンド「俊足」を使用します。消費精神ポイントは40です。" 使う 使わない End If 選択 = 2 Exit If SP() < 40 Then Talk システム SPが足りません。 End Exit EndIf If Mind(対象ユニット,ひらめき) = 1 Then Talk システム 現在は使用できません。 End Exit EndIf #MindAnime ひらめき 対象ユニットID #MindAnime ひらめき 対象ユニットID #MindAnime ひらめき 対象ユニットID SP() = SP() - 40 Mind 対象ユニット ひらめき Set 鋭敏[対象ユニット] 1 Exit
*攻撃後 全 全: # 先に仕掛けた方が味方→ひらめきの効果は対象ユニットへ If Party(対象ユニット) = 味方 Then Talk システム 鋭敏の効果は$(鋭敏[対象ユニット]) End If 鋭敏[対象ユニット] > 0 Then If Mind(対象ユニット,ひらめき) = 0 Then Talk システム 対象ユニット側に回りました。 End If 鋭敏[対象ユニット] = 1 Then Mind 対象ユニット ひらめき Incr 鋭敏[対象ユニット] 1 ElseIf 鋭敏[対象ユニット] = 2 Then Mind 対象ユニット ひらめき UnSet 鋭敏[対象ユニット] EndIf EndIf EndIf # 先に仕掛けたのが味方以外→ひらめきの効果は相手ユニットへ Else Talk システム 鋭敏の効果は$(鋭敏[相手ユニット]) End If 鋭敏[相手ユニット] > 0 Then If Mind(相手ユニット,ひらめき) = 0 Then Talk システム 相手ユニット側に回りました。 End If 鋭敏[相手ユニット] = 1 Then Talk システム 1側に回りました End Mind 相手ユニット ひらめき Incr 鋭敏[相手ユニット] ElseIf 鋭敏[相手ユニット] = 2 Then Mind 相手ユニット ひらめき UnSet 鋭敏[相手ユニット] EndIf EndIf EndIf EndIf Exit
|