2018/02/08(Thu) 16:21:00 編集(投稿者)
サンプルを組んでみました。
処理内容、サブルーチン名、変数名は適当なのでお好きに変更して下さい。
# ↓サブルーチン
# 既に出撃済みの味方パイロットの最大、平均レベルを取得
GetPartyLv:
Local num pid
Local cnt = 0
Local mlv = 0
Local plv = 0
ForEach 味方 (出撃 格納)
Set pid PilotID()
Set num Level(pid)
Set mlv Max(mlv,num)
Incr cnt 1
Incr plv num
Next
Set 味方最大レベル mlv
Set 味方平均レベル (plv \ cnt)
Return
# Call SetPartyLv party level
# party = 陣営名もしくはグループID (省略不可)
# level = パイロットのレベル (省略不可)
#
# 既に出撃済みのパイロットを一括でレベル調整
SetPartyLv:
Local pid
Local plv = Args(2)
ForEach Args(1) (出撃 格納)
Set pid PilotID()
LevelUp pid (plv - Level(pid))
Next
Return
# ↓使用例
# GetPartyLv で味方の最大、平均レベルを取得
Call GetPartyLv
# Create でユニットを作成する場合は、
# ローカル変数で保存されている「味方最大レベル」もしくは「味方平均レベル」でレベル調整
Create party unit rank pilot (味方最大レベル - 3) x y
Create party unit rank pilot (味方平均レベル - 3) x y
# 既に出撃済みのパイロットを一括でレベル調整する場合
Call SetPartyLv 敵 (味方最大レベル - 3)
Call SetPartyLv 中立 (味方平均レベル - 3)