トップページ > 同人ゲーム > 2009年02月26日 > UuY8Zc6x

書き込み順位&時間帯一覧

98 位/1558 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000001100125



使用した名前一覧書き込んだスレッド一覧
名無しさん@お腹いっぱい。
SRCスレッド65

書き込みレス一覧

SRCスレッド65
178 :名無しさん@お腹いっぱい。[sage]:2009/02/26(木) 18:10:37 ID:UuY8Zc6x
>>177
えええ、そこまで賢いか?ヘルプに載ってるCPUの行動パターンにもそんな記載はないぞ。
たまたまそういう風に見えただけじゃないのか?
技量値の影響についてもバリアや属性の考慮の有無であって、行動パターンを直接的に変えるものではないと思うんだが。
SRCスレッド65
181 :名無しさん@お腹いっぱい。[sage]:2009/02/26(木) 19:17:27 ID:UuY8Zc6x
>(移動後に敵ユニットの5マス以内まで接近する場合は、最短距離を取らず
>援護系の能力を持っているユニットに隣接したり、地形効果の高い場所に移動する)

たぶんこれのせいだと思う。
SRCスレッド65
185 :名無しさん@お腹いっぱい。[sage]:2009/02/26(木) 22:25:51 ID:UuY8Zc6x
>>184
射程内というのがミソかと。
敵ターン開始時にForeachで各ユニットに対しInfo関数で使用可能な武装を判定、
使用武器を適当に決定したら射程から攻撃範囲内にいる味方の位置を割り出して、
RandomにChangemodeすればよい。攻撃範囲内にターゲットがいなければSkipするなりして。
SRCスレッド65
188 :名無しさん@お腹いっぱい。[sage]:2009/02/26(木) 23:21:41 ID:UuY8Zc6x
>>186
書いてみようかと思ったけどかなり長くなりそうだな。
使用武器の決定を端折るとして、武器の射程内にいる味方の中からランダムに一体を選択する方法を。

※「敵使用武器」には使用する武器の名称が入るとする。
※最少射程が2以上の武器については考慮外
※「Foreach 敵」コマンド中の処理とする
For i = (0 - Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程)) To Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程)
 For j = (Abs(i) - Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程)) To (Info(ユニット, 対象ユニットID, 武器, 敵使用武器, 最大射程) - Abs(j))
  If Party(Info(マップ, (X(対象ユニットID) + i), (Y(対象ユニットID) + j), ユニットID)) = "味方" Then
   Set 攻撃範囲内味方座標[(Count(攻撃範囲内味方座標) + 1)] List((X(対象ユニットID) + i), (Y(対象ユニットID) + j))
  Endif
 Next
Next
If Count(攻撃範囲内味方座標) = 0 Then
 Skip
Endif
Set 攻撃対象 Random(Count(攻撃範囲内味方座標))
ChangeMode 対象ユニットID Pilot(Info(マップ, Lindex(攻撃対象, 1), Lindex(攻撃対象, 2), ユニットID))

てな感じかな。動作は試してない。
対象となる味方にザコパイロットが含まれる場合はこのやり方じゃダメだと思う。
Changemodeの対象が座標だった場合、対象座標にいるユニットを優先的に攻撃する仕様ならば
最後の部分は対象を座標にすればいいんだが、ヘルプによると通常モード扱いになるらしいな。
SRCスレッド65
189 :名無しさん@お腹いっぱい。[sage]:2009/02/26(木) 23:28:22 ID:UuY8Zc6x
やっぱり見づらいな…

>>187
書いた後で気づいたが、CPUが選択する武器の射程範囲内で処理しないとダメだな。
強引なやり方で制御できなくもないだろうけど。



※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。