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

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

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

■17466 / inTopicNo.1)  battle.txtを使って属性によって装甲を変える
  
□投稿者/ 皇翼 -(2005/10/03(Mon) 03:43:41) [ID:nX9Jawwh]

    ナオ様の質問記事でbattle.txtの高度なプログラムが展開されている中、
    battle.txtにCallコマンドが使えるということがわかりました。
    gaine様の働きによりバトルコンフィグデータの機能が拡張されたので、
    さらに下記のような

    ####battle.txtの中身####

    装甲
    装甲 + Call(物理魔法防御,攻撃側ユニットID,防御側ユニットID)


    ####Callコマンド####

    物理魔法防御:



    #物理魔法防御には

    #相手の攻撃が魔属性攻撃以外の時にパイロット命中率×10の値
    #相手の攻撃が魔属性攻撃の時にパイロット回避率×10の値
    #が入る

    というような戦闘プログラムを組めるのではないかと思い
    書き込ませてもらいました。
    しかし、このCallコマンドをどう書けばいいのかがわかりません。
    わかる方がいましたらどうか教えてください。

    よろしくお願いします。

引用返信/返信 削除キー/
■17472 / inTopicNo.2)  Re[1]: battle.txtを使って属性によって装甲を変える
□投稿者/ Unnamed -(2005/10/03(Mon) 18:45:09) [ID:fANBv9Vx]
     攻撃武器の属性によって結果を変えるわけですから、武器の属性を調べて分岐すると良
    いでしょう。
    
    
    防御補正
    (装甲 + Call(物理魔法防御, 攻撃側ユニットID, 防御側ユニットID, 武器番号)) * 気力 / 100 * 地形適応
    
    ----
    
    物理魔法防御:
        local atid = Args(1)
        local dfid = Args(2)
        local wnum = Args(3)
        if Info("ユニット", atid, "武器", wnum, "属性所有", "魔") then
            return (Info("パイロット", Pilot(dfid), "回避支援修正値") * 10)
        endif
    return (Info("パイロット", Pilot(dfid), "命中支援修正値") * 10)
    
    # "命中率"はパイロット命中値のことかと思いましたが、それだと修正が高すぎるので
    # 違いましたら適当に変更してください
    

引用返信/返信 削除キー/
■17474 / inTopicNo.3)  Re[2]: battle.txtを使って属性によって装甲を変える
□投稿者/ 皇翼 -(2005/10/03(Mon) 21:09:51) [ID:nX9Jawwh]
    Unnamed様、どうもご丁寧にありがとうございます。
    命中率はパイロット命中率のことでした。言葉足らずですみませんでした。
    装甲の修正率はパイロット命中回避の貢献がかなり高くなる予定です。
    本題ですが、

    ###battle.txtの記述###

    防御補正
    (装甲 + Call(物理魔法防御, 攻撃側ユニットID, 防御側ユニットID, 武器番号)) * 気力 / 100 * 地形適応


    ###Date\Include.eveの記述###

    物理魔法防御:
    local atid = Args(1)
    local dfid = Args(2)
    local wnum = Args(3)
    if Info("ユニット", atid, "武器", wnum, "属性所有", "魔") then
    return (Info("パイロット", Pilot(dfid), "回避") * 10)
    endif
    return (Info("パイロット", Pilot(dfid), "命中") * 10)



    教えていただいた通りに試してみましたところ、魔属性以外の武器で攻撃するとパイロット命中×10の値を装甲に加算して計算してくれるのですが、
    「魔」属性を持つ武器で攻撃をしても回避ではなく命中の値が適用されるようです。
    つまり

    Info("ユニット", atid, "武器", wnum, "属性所有", "魔")

    が魔属性所有であっても0の値を返しているようなのですが、私の書式がなにか間違っているのでしょうか?それともSRCのIfコマンドのバグなのでしょうか??
引用返信/返信 削除キー/
■17477 / inTopicNo.4)  Re[3]: battle.txtを使って属性によって装甲を変える
□投稿者/ Unnamed -(2005/10/03(Mon) 22:42:49) [ID:fANBv9Vx]
     少々調べてみましたが、どうもバトルコンフィグ変数「武器番号」が定義されていない
    ようです。防御補正と攻撃補正でしか試していませんが、引数に"武器番号"という文字列
    だけが渡されていました。多分バトルコンフィグ機能のバグであると思われます。

     それとは別に、一箇所訂正を…

    >防御補正
    >(装甲 + Call(物理魔法防御, 攻撃側ユニットID, 防御側ユニットID, 武器番号)) * 気力 / 100 * 地形適応

     "装甲"は、正しくは"装甲値"です。

引用返信/返信 削除キー/
■17478 / inTopicNo.5)  バグ報告掲示板へ投稿
□投稿者/ 皇翼 -(2005/10/03(Mon) 23:35:28) [ID:nX9Jawwh]
    >Unnamed様
    わざわざ貴重なお時間を使わせて申し訳ございません。
    バグ、ということなのでバグ報告掲示板に投稿させていただきました。
    このバグが直るとうれしいのですが。。。

    Unnamed様のプログラムには問題ないようなので
    バグが解決しましたら解決済みボタンを押そうと思います。
    どうもありがとうございました。
引用返信/返信 削除キー/
■17479 / inTopicNo.6)  Re[4]: battle.txtを使って属性によって装甲を変える
□投稿者/ もや -(2005/10/03(Mon) 23:49:22) [ID:s10kZUnY]
    横槍となりますが失礼いたします。
    バグか仕様かは分かりかねますが、"装甲値"の「各種計算」には地形適応修正の計算まで入っているようなので
    この計算式の場合は"装甲"のままで良いと思います。

    また、「防御補正」ではなく「装甲補正」でないと"装甲値"は使えないようです。
    (こちらはバグと思われますが、ヘルプの「装甲補正でのみ使用可能」という記述の通りではありますね…)
引用返信/返信 削除キー/
■17480 / inTopicNo.7)  Re[5]: battle.txtを使って属性によって装甲を変える
□投稿者/ Unnamed -(2005/10/04(Tue) 00:01:09) [ID:fANBv9Vx]
    2005/10/04(Tue) 00:10:55 編集(投稿者)

     どうも、確認不徹底を露呈してしまいました。ご指摘ありがとうございます。

     ヘルプでは装甲補正などがなくなっていたのですが、一部残っている部分もあり、使え
    るはずの変数が無かったりとまだバグが多いようですので、実用は新安定版を待ったほう
    が良いかもしれませんね。


    蛇足:
     一度battle.txtからルーチンを呼び出してその中で全ての計算を行うと、リスタートな
    どで変更が有効になるのでデバッグに便利です。またそのルーチン中でもバトルコンフィ
    グ変数は有効であるようです。

    防御補正
    ローカル防御補正()

    ----

    ローカル防御補正:
    local eff
    if Info("ユニット", 攻撃側ユニットID, "武器", 武器番号, "属性所有", "魔") then
    eff = Info("パイロット", Pilot(防御側ユニットID), "回避") * 10
    else
    eff = Info("パイロット", Pilot(防御側ユニットID), "命中") * 10
    endif
    return 装甲値 * 気力 / 100 + eff

引用返信/返信 削除キー/
■17515 / inTopicNo.8)  式の間違いをお願いします。
□投稿者/ 皇翼 -(2005/10/08(Sat) 18:50:12) [ID:nX9Jawwh]
    新開発版にて正常な動作を確認しました。
    もう一つ質問があるのですが。新スレを立てるまでもなさそうなのでここで(汗)
    同じような式です。

    ####battle.txtの中身####

    命中補正
    100 + 反応 + Call(物理魔法命中, 攻撃側ユニットID, 防御側ユニットID, 武器番号)) + 攻撃値


    ####Callコマンド####

    物理魔法命中:
    local btid = Args(1)
    local efid = Args(2)
    local hnum = Args(3)
    if Info("ユニット", btid, "武器", hnum, "属性所有", "魔") then
    return (Info("パイロット", Pilot(efid), "射撃"))
    endif
    return (Info("ユニット", Unit(efid), "運動性"))


    つまり魔法攻撃時の命中率には運動性ではなく攻撃側パイロットの射撃(魔力)の値をそのまま入れたいのですが、うまく行きません。命中率が0%になります。
    どこか間違いか分かりましたらお願いします。

引用返信/返信 削除キー/
■17538 / inTopicNo.9)  解決
□投稿者/ 皇翼 -(2005/10/09(Sun) 19:08:18) [ID:nX9Jawwh]
    申し訳ございません。
    Unnamed様の二つ目の分かりやすい式をいじっていたら
    たまたま上手く行きました。

    自己解決ということで解決です。
    改めてUnnamed様ありがとうございました。
引用返信/返信 削除キー/
■17539 / inTopicNo.10)  解決
□投稿者/ 皇翼 -(2005/10/09(Sun) 19:09:08) [ID:nX9Jawwh]
    忘れてました。すみません・・・
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -