SRC質問掲示板Mk2

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 検索 過去ログ

ログ内検索
・キーワードを複数指定する場合は 半角スペース で区切ってください。
・検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
・[返信]をクリックすると返信ページへ移動します。 (*過去ログは表示されません)
・過去ログから探す場合は検索範囲から過去ログを選択。

キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.2622 の関連記事表示

<< 0 >>
■2622  Re[1]: 小隊の部下が得た経験地を隊長に加える方法について教えてください
□投稿者/ 幻魔の公子 -(2002/03/19(Tue) 18:36:05)
     幻魔の公子です。

     最初から具体的な式を書くのは、質問した人が成長しないから好ましくないとかちょっと思ったりも時々するのですが、まぁ役に立つかどうか判らない返答ではありますので、とりあえず適当に組んでみました。
     テストしてないので、うまく動かなかったら申し訳ありません。基本的なところは間違ってないと思うので、頑張って修正してみて下さい。

     ちなみに、経験値入手の式は、検索で探したFの経験値入手の計算式が元です。
     攻撃力の式がFと同じらしいんで、経験値もそうじゃないかなーと。動かしてみて違ったら、適当に修正して下さい。
     つーか、経験値を求める関数があれば一番楽なのですが。

     とりあえず、隊員のユニットIDを適当な配列変数に格納します。

    Global 隊員
    Set 隊員[n] UnitID(隊員名称)

     こんな感じですか。

    攻撃後 全 全:
    For i = 1 To Count(隊員)
    If 対象ユニット = 隊員[i] Then
    Set GetExp (Info(Pilot(相手ユニット),経験値) + Info(Unit(相手ユニット),経験値) * 0.1 * Call(経験値倍率,対象ユニット,相手ユニット))
    If GetExp < 10 Then
    Set GetExp 10
    Endif
    ExpUp 対象ユニット (-1 * GetExp)
    ExpUp 隊長 GetExp
    Break
    Elseif 相手ユニット = 隊員[i] Then
    Set GetExp (Info(Pilot(対象ユニット),経験値) + Info(Unit(対象ユニット),経験値) * 0.1 * Call(経験値倍率,相手ユニット,対象ユニット))
    If GetExp < 10 Then
    Set GetExp 10
    Endif
    ExpUp 相手ユニット (-1 * GetExp)
    ExpUp 隊長 GetExp
    Break
    Endif
    Next
    Exit

    破壊 全 全:
    For i = 1 To Count(隊員)
    If 相手ユニット = 隊員[i] Then
    Set GetExp (Info(Pilot(対象ユニット),経験値) + Info(Unit(対象ユニット),経験値) * Call(経験値倍率,相手ユニット,対象ユニット))
    If GetExp < 10 Then
    Set GetExp 10
    Endif
    ExpUp 相手ユニット (-1 * GetExp)
    ExpUp 隊長 GetExp
    Break
    Endif
    Next
    Exit

    経験値倍率:
    Set レベル差 (Level(相手ユニット) - Level(対象ユニット))

    Switch レベル差
    Case -7
    Set 倍率 3.1
    Case -6
    Set 倍率 2.8
    Case -5
    Set 倍率 2.5
    Case -4
    Set 倍率 2.2
    Case -3
    Set 倍率 1.9
    Case -2
    Set 倍率 1.6
    Case -1
    Set 倍率 1.3
    Case 1
    Set 倍率 0.5
    Case 2
    Set 倍率 0.25
    Case 3
    Set 倍率 0.125
    Case 4
    Set 倍率 (1 / 15)
    Case 5
    Set 倍率 (1 / 30)
    Case Else
    If レベル差 > 0 Then
    Set 倍率 (1 / 60)
    Elseif レベル差 < 0 Then
    Set 倍率 3.4
    Else
    Set 倍率 1
    Endif
    EndSw

    Return 倍率

     もう片方ですが、破壊、攻撃後イベントでLevel関数でそのパイロットのレベルを調べ、LevelUpコマンドを使って同じになるよう(一応判りやすく説明すると、レベル差を求めてその差分だけ上昇させるわけです)に調整してやればよろしいかと。

     それでは。
記事No.2620 のレス /過去ログ15より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 検索 過去ログ

- Child Tree -