SRC質問掲示板Mk2
(現在 過去ログ15 を表示中)

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

[ 最新記事及び返信フォームをトピックトップへ ]

■2620 / inTopicNo.1)  小隊の部下が得た経験地を隊長に加える方法について教えてください
  
□投稿者/ KAPPA -(2002/03/19(Tue) 17:02:40)
    前にも書いたことがあるのですが
    小隊を作ったとき部隊の部下が得た経験値を隊長に加える(部下には経験値が渡らないようにする)にはどうすれば良いでしょう
    具体的な式を教えてください

    また 特定のキャラクターのレベルを他のキャラクターのレベルと常に同じにするにはどうすれば良いでしょうか
引用返信/返信 削除キー/
■2622 / inTopicNo.2)  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コマンドを使って同じになるよう(一応判りやすく説明すると、レベル差を求めてその差分だけ上昇させるわけです)に調整してやればよろしいかと。

     それでは。

引用返信/返信 削除キー/
■2635 / inTopicNo.3)  Re[2]: 小隊の部下が得た経験地を隊長に加える方法について教えてください
□投稿者/ KAPPA -(2002/03/20(Wed) 16:53:09)
    あの 幻魔の公子さん このような式は どこに書けばいいのですか
    一生懸命説明書を調べたのですが分かりません
    あと 今回自分が式を直接聞くことについて、徐々に自分で作れるようになるためのお手本にさせていただくと思っていただければ嬉しいのですが
    マコトにすいません
    もっと勉強したいと思います
引用返信/返信 削除キー/
■2637 / inTopicNo.4)  Re[3]: 小隊の部下が得た経験地を隊長に加える方法について教えてください
□投稿者/ 幻魔の公子 -(2002/03/20(Wed) 17:23:29)
     幻魔の公子です。

     Globalはシナリオの一番最初、Setは隊員キャラの登場時です。(ザコなら、Createの直後に書きましょう)
     残りは……まぁ、イベントファイル中の好きなところに書きゃいいと思います。

     それでは。

引用返信/返信 削除キー/
■2639 / inTopicNo.5)  追記〜
□投稿者/ 幻魔の公子 -(2002/03/20(Wed) 17:41:20)
     他のラベルと競合する場合は常時イベントラベルにする必要がありますので。

     それでは。

引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

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

- Child Tree -
- Antispam Version -