※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

経験値を手動で算出するサブルーチン


ここに書くと見難くなるのでファイルをアップしました。
経験値算出サブルーチン GetExp

SP名称がわからないと、SPがかかっているのか判定できないので、
SP効果の取得は強引に行っています。

ついでにレベル差の経験値修正が短く纏められたので纏めておきました。



※未完成品。そのうち修正します。

以下はSRC内部での処理をそのままトレースしたものです。
以下のサブルーチンに「素質」や「遅成長」やSPなどの効果を絡める処理を加えれば完成です。

// 引数:PlayerUnitID EnemyUnitID
経験値算出:
Local _Exp _LevelDiff
// 素経験値を取得
_Exp = Info(Pilot(Args(2)), "経験値") + Info(Args(2), "経験 値")

_LevelDiff = Level(Pilot(Args(2))) - Level(Pilot(Args(1)))
Switch LevelDiff
Case 7
	_Exp = _Exp * 4.5
Case 6
	_Exp = _Exp * 4
Case 5
	_Exp = _Exp * 3.5
Case 4
	_Exp = _Exp * 3
Case 3
	_Exp = _Exp * 2.5
Case 2
	_Exp = _Exp * 2
Case 1
	_Exp = _Exp * 1.5
Case 0
	_Exp = _Exp * 1
Case -1
	_Exp = _Exp \ 2
Case -2
	_Exp = _Exp \ 4
Case -3
	_Exp = _Exp \ 6
Case -4
	_Exp = _Exp \ 8
Case -5
	_Exp = _Exp \ 10
Case Else
	If LevelDiff > 7 Then]
		_Exp = _Exp * 5
	ElseIf LevelDiff < -5 Then
		_Exp = _Exp \ 12
	Endif
EndSw

Return
  
添付ファイル