SRC質問掲示板Mk2

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

■22913 / 親記事)  味方の中からランダムでダメージを与えるイベントについて
  
□投稿者/ Shun -(2016/10/23(Sun) 17:53:41) [ID:nE4DXYig]
    敵フェイズに入るたびに、味方側から指定した人数にダメージを与えるイベントを作っていて、以下のように作成しました。

    ターン 全 敵:
    Call 砲撃イベント
    Exit

    砲撃イベント:
    Local i a b c

    a = Random(味方数)
    b = Random(味方数)
    c = Random(味方数)

    ForEach 味方

    Incr i

    If i = a Then
    Center X(対象ユニットID) Y(対象ユニットID)
    ExPlode M X(対象ユニットID) Y(対象ユニットID)
    HP(対象パイロット) = HP(対象パイロット) - 2000
    Talk システム
        $(対象パイロット)に2000のダメージ。
    End
    EndIf

    If i = b Then
    Center X(対象ユニットID) Y(対象ユニットID)
    ExPlode M X(対象ユニットID) Y(対象ユニットID)
    HP(対象パイロット) = HP(対象パイロット) - 2000
    Talk システム
        $(対象パイロット)に2000のダメージ。
    End
    EndIf

    If i = c Then
    Center X(対象ユニットID) Y(対象ユニットID)
    ExPlode M X(対象ユニットID) Y(対象ユニットID)
    HP(対象パイロット) = HP(対象パイロット) - 2000
    Talk システム
        $(対象パイロット)に2000のダメージ。
    End
    EndIf

    Next
    Return

    以上の状態だと、味方からランダムで3人を選ぶことは選ぶのですが、
    3回のランダム選択において一度選択した相手を再び選んでしまい被弾ダメージが重なる時がありまして、
    攻撃イベント内において一度対象に選ばれた相手が、そのイベント内に限り
    再び攻撃対象に選ばれないようにする方法が分からず質問させていただきました。

引用返信/返信 削除キー/
■22916 / ResNo.1)  Re[1]: 味方の中からランダムでダメージを与えるイベントについて
□投稿者/ dip -(2016/10/27(Thu) 03:10:41) [ID:PoPPycVM]
    2016/10/28(Fri) 04:09:20 編集(投稿者)
    とりあえず適当に修正してみました。
    簡単に説明すれば味方のリストを取得して、実行した対象はリストから削除するといった処理です。
    
    
    
    それにしても、久しぶりに掲示板を覗いたらすごい事に…
    
    
    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    
    砲撃イベント:
    Local i j k
    Local cnt lst num uid
    
    Set cnt 0
    ForEach 味方
    	Incr cnt 1
    	Set lst[cnt] 対象ユニットID
    Next
    
    # 攻撃回数を変更したい場合は↓を変更して下さい。
    Set num Min(cnt,3)
    For i = 1 To num
    	Set j Random(cnt)
    	Set uid lst[j]
    	For k = j To (cnt - 1)
    		Set lst[k] lst[(k + 1)]
    	Next
    	Incr cnt -1
    
    	Center X(uid) Y(uid)
    	ExPlode M X(uid) Y(uid)
    	HP(uid) = HP(uid) - 2000
    
    	# 修正前の「 $(対象パイロット) 」と変わらないように「 $(PilotID(uid)) 」としてますけど、
    	# これだと汎用パイロットだとID部分も表示され、()付きのパイロットだと()の部分も表示されしまうので、
    	# 必要なら下記の様に愛称で表示させるのも良いかも知れません。
    	#
    	# $(PilotID(uid)) → $(Nickname(PilotID(uid)))
    
    	Talk システム
        $(PilotID(uid))に2000のダメージ。
    	End
    Next
    Return

引用返信/返信 削除キー/
■22917 / ResNo.2)  Re[2]: 味方の中からランダムでダメージを与えるイベントについて
□投稿者/ Shun -(2016/10/27(Thu) 08:11:33) [ID:nE4DXYig]
    ありがとうございます。名前表示に関する関数についても参考になりました!
解決済み!
引用返信/返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -