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

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

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

■17535 / inTopicNo.1)  またまた battle.txt について
  
□投稿者/ ナオ -(2005/10/09(Sun) 17:47:18) [ID:OWnuX2b4]
    初めまして、ナオと言います。
    実は今回も battle.txt についてなのですが、
    10月8日の三笠様の投稿されたファイルを見て、MX風に直そうとしていたのですが
    またまた不具合がおきてしまいました。内容は
    
    ・攻撃が選択できない
    ・命中率が0%になってしまう
    
    という2つです。三笠様のコンフィグデータでは、きちんと計算されていたので
    自分が弄ってしまった所に影響があるようです。
    そこで、皆さんに再びご意見を伺いたいと思いました。
    
    「前ので納得しとけよ」と言う方も居るかもしれませんが、前のは攻撃力がやや
    不安定だったので、なるべくMXに近づけたいと思いました。
    
    ######以下がMXの計算式です  [攻]は攻撃側、[防]は防御側を表しています
    
    [攻]命中値=パイロット命中値 + 武器命中修正 + 180
    [防]回避値=パイロット回避値 + ユニット運動性
    
    最終命中率={<[攻]命中率 - [防]回避率> * [防]サイズ補正 * [攻]ユニット地形適応 * [防]ユニット地形適応 - [防]地形効果修正}
    
    [攻]基本攻撃力=([攻]パイロット格闘 or 射撃値 + [攻]気力)/ 200 * [攻]武器攻撃力 * [攻]武器地形適応修正
    
    [防]基本防御力=([防]パイロット防御値 + [防]気力)/ 200 * 装甲値 * 地形効果修正
    
    最終ダメージ=([攻]基本攻撃力 - [防]基本防御力)
    
    ########以下   battle.txt
    
    ##命中関係
    
    命中補正
    INT((Info(パイロット, PilotID(攻撃側ユニットID), 命中) + Info(ユニット, 攻撃側ユニットID, 武器, 武器番号, 命中率)) + 180)
    
    
    回避補正
    INT(Info(パイロット, PilotID(防御側ユニットID),回避) + Info(ユニット, 攻撃側ユニットID, 運動性))
    
    命中率
    (((攻撃側補正 - 防御側補正) * Call(ユニットサイズ補正, Info(ユニット, 防御側ユニットID, サイズ)) * (Call(攻撃側地形修正, 攻撃側ユニットID, 防御側ユニットID, Info(ユニット, 攻撃側ユニットID, 武器, 武器番号)) * Call(防御側地形修正, 防御側ユニットID))) - Call(地形回避補正, 防御側ユニット))
    
    
    ###ダメージ関係
    
    攻撃補正
    (INT(((Call(アタック補正値, PilotID(攻撃側ユニットID), 攻撃側ユニットID, Info(ユニット, 攻撃側ユニットID, 武器, 武器番号)) + Morale(PilotID(攻撃側ユニットID))) / 200) * Info(ユニット, 攻撃側ユニットID, 武器, 武器番号, 攻撃力)) * Call(武器地形適応補正, 攻撃側ユニットID, Info(ユニット, 攻撃側ユニットID,武器 , 武器番号)))
    
    防御補正
    ((INT((Info(パイロット, PilotID(攻撃側ユニットID, 反応)) + Morale(PilotID(攻撃側ユニットID))) / 200) * Info(ユニット, 防御側ユニットID, 装甲)) * Call(地形ダメージ補正, 防御側ユニットID))
    
    攻撃地形補正
    攻撃値
    
    ダメージ
    INT(攻撃側補正 - 防御側補正)
    
    ############
    
    ######ここからが サブルーチン
    
    
    
    #########命中関係################################
    
    
    
    ###サイズによる補正
    
    ユニットサイズ補正:
    
    local SH
    
    Switch Args(1)
    
       Case XL
            Set SH 1.6
       Case LL
    		Set SH 1.4
       Case L
    		Set SH 1.2
       Case M
    		Set SH 1
       Case S
    		Set SH 0.8
       Case SS
    		Set SH 0.1
    EndSw
    
    Return SH
    
    
    ###攻撃側の地形適応
    
    攻撃側地形修正:
    
    local AT
    local BR
    local WM
    
    Set AT Args(1)
    Set BR Args(2)
    Set WM Args(3)
    
    If Info(ユニット, AT, 武器, WM, 属性所有, 格) = 1 Then
        Set KT Area(AT)
     Else
    	Set KT Area(BR)
    EndIf
    
    Switch KT
    
     Case 空中
    	Set TC Mid(Info(ユニット, AT, 地形適応), 1, 1)
     Case 地上 水上
        set TC Mid(Info(ユニット, AT, 地形適応), 2, 1)
     Case 水中
        Set TC Mid(Info(ユニット, AT, 地形適応), 3, 1)
     Case 宇宙
    	Set TC Mid(Info(ユニット, AT, 地形適応), 4, 1)
    EndSw
       
    
    Switch TC
    	Case S
    		Set KM 1.2
    	Case A
    		Set KM 1
    	Case B
    		Set KM 0.8
    	Case C
    		Set KM 0.6
    EndSw
    
    Return KM
    
    
    #####防御側の地形適応
    
    防御側地形修正:
    
    local BR
    local BT
    local TC
    local BM
    
    Set BR Args(1)
    
    Set BT Area(防御者)
    
    
    Switch BT
    
     Case 空中
    	Set TC Mid(Info(ユニット, BR, 地形適応), 1, 1)
     Case 地上 水上
        set TC Mid(Info(ユニット, BR, 地形適応), 2, 1)
     Case 水中
        Set TC Mid(Info(ユニット, BR, 地形適応), 3, 1)
     Case 宇宙
    	Set TC Mid(Info(ユニット, BR, 地形適応), 4, 1)
    EndSw
       
    
    Switch TC
    	Case S
    		Set BM 0.75
    	Case A
    		Set BM 1
    	Case B
    		Set BM 1.25
    	Case C
    		Set BM 1.5
    EndSw
    
    Return BM
    
    
    #####地形効果による補正
    
    地形回避補正:
    
    local BR
    local TH
    
    
    Set BR Args(1)
    
    If (Area(BR) = 空中) or (Area(BR) = 水上) Then
    	Set TH 0
    Else
    	Set TH Info(マップ, X(BR), Y(BR), 回避修正)
    EndIf
    
    
    Return TH
    
    
    
    ################################################
    
    
    ####ダメージ関係
    
    
    ######格闘値か射撃値を格納
    アタック補正値:
    
    local KP
    local KU
    local WM
    local AH
    
    Set KP Args(1)
    Set KU Args(2)
    Set WM Args(3)
    
    
    
    If Info(ユニット, KU, 武器, WM, 属性所有, 格) = 1 Then
      Set AH Info(パイロット, KP, 格闘)
    Else
      Set AH Info(パイロット, KP, 射撃)
    EndIf
    
    Return AH
    
    ## 
    
    武器地形適応補正:
    
    local AT
    local WM
    local KT
    local TC
    local TS
    
    Set AT Args(1)
    Set WM Args(2)
    Set KT Area(AT)
    
    
    Switch KT
    	Case 空中
    		Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 1)
    	Case 地上 水上
    		Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 2)
    	Case 水中
    		Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 3)
    	Case 宇宙
    		Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 4)
    EndSw
    
    Switch TC
    	Case S
    		Set TS 1.2
    	Case A
    		Set TS 1
    	Case B
    		Set TS 0.8
    	Case C
    		Set TS 0.6
    EndSw
    
    Return TS
    
    ##
    
    地形ダメージ補正:
    
    local BR
    local HH
    local TDH
    
    Set BR Args(1)
    
    If (Area(BR) = 空中) or (Area(BR) = 水上) Then
      Set HH 0
    Else
      Set HH Info(マップ, X(BR), Y(BR), ダメージ修正)
    EndIf
    
    Set TDH ((HH / 100) + 1)
    
    Return TDH
    
    ###########ここまで
    
    
    見ての通り、三笠様のコンフィグデータを弄っています。
    要するにパクリな訳ですが、勝手に使ったらマズイのなら今回は諦めようと思います。
    
    同じような質問を、2回もするのは良い事じゃないかも知れませんが
    どうか、ご意見をお願いします。
    

引用返信/返信 削除キー/
■17542 / inTopicNo.2)  Re[1]: またまた battle.txt について
□投稿者/ 三笠 -(2005/10/10(Mon) 00:19:20) [ID:b7jZiurE]
    どうも、三笠です。
    私のルーチンを使われたようなので、
    改造についても含めてお答えできる範囲でご協力します。


    > ########以下 battle.txt
    >
    > ##命中関係
    >
    > 命中補正
    > INT(Info(パイロット, PilotID(防御側ユニットID),回避) + Info(ユニット, 攻撃側ユニットID, 運動性))
    INT((命中 + 攻撃値) + 180)
    >
    >
    > 回避補正
    > INT(Info(パイロット, PilotID(防御側ユニットID),回避) + Info(ユニット, 攻撃側ユニットID, 運動性))
    INT(回避 + 運動性)
    >
    > 命中率
    > (((攻撃側補正 - 防御側補正) * Call(ユニットサイズ補正, Info(ユニット, 防御側ユニットID, サイズ)) * (Call(攻撃側地形修正, 攻撃側ユニットID, 防御側ユニットID, Info(ユニット, 攻撃側ユニットID, 武器, 武器番号)) * Call(防御側地形修正, 防御側ユニットID))) - Call(地形回避補正, 防御側ユニット))

    (攻撃側補正 - 防御側補正) * Call(ユニットサイズ補正, Info(ユニット, 防御側ユニットID, サイズ)) * Call(攻撃側地形修正, 攻撃側ユニットID, 防御側ユニットID, 武器番号) * Call(防御側地形修正, 防御側ユニットID) - Call(地形回避補正, 防御側ユニット)
    >
    >
    > ###ダメージ関係
    >
    > 攻撃補正
    > (INT(((Call(アタック補正値, PilotID(攻撃側ユニットID), 攻撃側ユニットID, Info(ユニット, 攻撃側ユニットID, 武器, 武器番号)) + Morale(PilotID(攻撃側ユニットID))) / 200) * Info(ユニット, 攻撃側ユニットID, 武器, 武器番号, 攻撃力)) * Call(武器地形適応補正, 攻撃側ユニットID, Info(ユニット, 攻撃側ユニットID,武器 , 武器番号)))
    INT(((Call(アタック補正値, PilotID(攻撃側ユニットID), 攻撃側ユニットID, 武器番号) + 気力) / 200) * 武器威力 * Call(武器地形適応補正, 攻撃側ユニットID, 武器番号)
    >
    > 防御補正
    > ((INT((Info(パイロット, PilotID(攻撃側ユニットID, 反応)) + Morale(PilotID(攻撃側ユニットID))) / 200) * Info(ユニット, 防御側ユニットID, 装甲)) * Call(地形ダメージ補正, 防御側ユニットID))
    INT(((反応 + 気力) / 200) * 装甲値 * Call(地形ダメージ補正, 防御側ユニットID))
    >
    > 攻撃地形補正
    > 攻撃値
    >
    > ダメージ
    > INT(攻撃側補正 - 防御側補正)
    >
    > ############
    >
    > ######ここからが サブルーチン
    >
    >
    >
    > #########命中関係################################

    中略
    > 攻撃側地形修正:
    中略
    > Switch KT
    >
    >  Case 空中
    > Set TC Mid(Info(ユニット, AT, 地形適応), 1, 1)
    >  Case 地上 水上
    >     set TC Mid(Info(ユニット, AT, 地形適応), 2, 1)
    >  Case 水中
    >     Set TC Mid(Info(ユニット, AT, 地形適応), 3, 1)
    >  Case 宇宙
    > Set TC Mid(Info(ユニット, AT, 地形適応), 4, 1)
    > EndSw
    Switch KT
     Case 空中
    Set TC Mid(Info(ユニット, AT, "地形適応"), 1, 1)
     Case 地上 水上
        set TC Mid(Info(ユニット, AT, "地形適応"), 2, 1)
     Case 水中
        Set TC Mid(Info(ユニット, AT, "地形適応"), 3, 1)
     Case 宇宙
    Set TC Mid(Info(ユニット, AT, "地形適応"), 4, 1)
    EndSw

    中略
    > 防御側地形修正:
    中略
    > Switch BT
    >
    >  Case 空中
    > Set TC Mid(Info(ユニット, BR, 地形適応), 1, 1)
    >  Case 地上 水上
    >     set TC Mid(Info(ユニット, BR, 地形適応), 2, 1)
    >  Case 水中
    >     Set TC Mid(Info(ユニット, BR, 地形適応), 3, 1)
    >  Case 宇宙
    > Set TC Mid(Info(ユニット, BR, 地形適応), 4, 1)
    > EndSw
    Switch BT
     Case 空中
    Set TC Mid(Info(ユニット, BR, "地形適応"), 1, 1)
     Case 地上 水上
        set TC Mid(Info(ユニット, BR, "地形適応"), 2, 1)
     Case 水中
        Set TC Mid(Info(ユニット, BR, "地形適応"), 3, 1)
     Case 宇宙
    Set TC Mid(Info(ユニット, BR, "地形適応"), 4, 1)
    EndSw

    中略
    > アタック補正値:
    中略
    > If Info(ユニット, KU, 武器, WM, 属性所有, 格) = 1 Then
    >   Set AH Info(パイロット, KP, 格闘)
    > Else
    >   Set AH Info(パイロット, KP, 射撃)
    > EndIf
    If Info(ユニット, KU, 武器, WM, 属性所有, 格) = 1 Then
      Set AH Info(パイロット, KP, "格闘")
    Else
      Set AH Info(パイロット, KP, "射撃")
    EndIf
    中略
    > 武器地形適応補正:
    中略
    > Switch KT
    > Case 空中
    > Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 1)
    > Case 地上 水上
    > Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 2)
    > Case 水中
    > Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 3)
    > Case 宇宙
    > Set TC Left(Info(ユニット, AT, 武器, WM, 地形適応), 4)
    > EndSw
    Switch KT
    Case 空中
    Set TC Left(Info(ユニット, AT, 武器, WM, "地形適応"), 1)
    Case 地上 水上
    Set TC Left(Info(ユニット, AT, 武器, WM, "地形適応"), 2)
    Case 水中
    Set TC Left(Info(ユニット, AT, 武器, WM, "地形適応"), 3)
    Case 宇宙
    Set TC Left(Info(ユニット, AT, 武器, WM, "地形適応"), 4)
    EndSw
    中略

    とりあえず引用した部分をそれぞれその下に書いてあるように直せば
    恐らく動作するんじゃないかと思います。テストはしていませんのでご了承を。


    注意点としては2つあります。

    まず1つ目は、私が試作したものはあくまで今回更新前の本体における
    バトルコンフィグ変数をサブルーチンへ引数として渡せないバグに
    当座対応するために作ったものなので、変数が使えるところは使った方が処理が簡略化できること。

    2つ目に、バトルコンフィグ変数として設定されている文字列(「地形適応」や「射撃」)などは、
    サブルーチン内でInfo関数などで使う際は、変数と誤認されないよう「"」で囲んで
    文字列として認識させるようにしておかないと正常に動作しないということです。

    動かなかった場合のため、一応最新版の第三次α仕様のバトルコンフィグを置いておきます。
    パイロット・ユニットの特殊能力補正がα仕様になっていない部分以外は動きます。
    http://mikasa.jpn.org/notes/System.zip


    最後に
    > 見ての通り、三笠様のコンフィグデータを弄っています。
    > 要するにパクリな訳ですが、勝手に使ったらマズイのなら今回は諦めようと思います。
    についてですが、私自身このバトルコンフィグを近いうち
    素材として適当に配布するつもりだったので、何か一言書いて
    私のHPのアドレスでも書いていただければ問題はありません。


    それでは失礼します。
引用返信/返信 削除キー/
■17545 / inTopicNo.3)  一つは解決しましたが…
□投稿者/ ナオ -(2005/10/10(Mon) 11:19:03) [ID:OWnuX2b4]
    2005/10/10(Mon) 11:47:05 編集(投稿者)
    三笠様のアドバイスにより、命中に関しては正常に動作するようになりました。
    しかし、「攻撃が選択できない」という問題が未だ継続しています。
    
    色々と弄った結果、下記まで記入した場合は、攻撃が選択できるのですが
    
    攻撃補正
    INT((Call(アタック補正値, 攻撃側ユニットID, 武器番号) + 気力) / 200 * 武器威力
    
    上記の物に 【* Call(武器地形補正, 攻撃側ユニットID, 防御側ユニットID, 武器番号))】
    を付けた場合攻撃が選択でませんでした。
    
    攻撃補正
    INT((Call(アタック補正値, 攻撃側ユニットID, 武器番号) + 気力) / 200 * 武器威力 * Call(武器地形適応補正, 攻撃側ユニットID, 防御側ユニットID, 武器番号))
    
    サブルーチンの内容は、最初のスレに書いた物と同じです。
    
    テストで使用していたユニットのデータは、以下の通りです。
    
    ザコ機兵
    ザコ機兵, 機兵, 1, 2
    陸, 4, L, 5000, 0
    特殊能力なし
    4200, 210, 1200, 120
    BACA, FS.bmp
    格闘,                       2600, 1,  1,    +55, -,  -,   -, BACB,   +0, 火突|格
    弓矢,             2900, 2,  2,   +60, -, 10,   -, AACB,   +5, 火P|射
    ショックウェーブ,           3000, 1,  4,   +40, -, 20, 110, BSCB,  +10, |格
    
    
    いざとなれば、地形適応の修正は諦めようと思うのですが
    まだまだ改善の余地があると思うので質問しました。
    どうしたら、攻撃が選択できるようになるのでしょう?
    
    あと、三笠様のHPとは『SRC総合支援センター』の事でしょうか?

引用返信/返信 削除キー/
■17546 / inTopicNo.4)  Re[3]: 一つは解決しましたが…
□投稿者/ 三笠 -(2005/10/10(Mon) 13:53:43) [ID:b7jZiurE]
http://mikasa.jpn.org/main.html
    2005/10/10(Mon) 15:24:51 編集(投稿者)

    どうも、三笠です。

    > 攻撃補正
    > INT((Call(アタック補正値, 攻撃側ユニットID, 武器番号) + 気力) / 200 * 武器威力
    >
    > 上記の物に 【* Call(武器地形補正, 攻撃側ユニットID, 防御側ユニットID, 武器番号))】
    > を付けた場合攻撃が選択でませんでした。

    ヘルプにも記載されていますが、攻撃補正の計算式では
    防御側ユニットIDを置換することはできません。

    ですので、ダメージの計算式の攻撃側補正にかける形で
    設定してあげれば作動するはずです。

    > あと、三笠様のHPとは『SRC総合支援センター』の事でしょうか?

    URLに記入している個人ページでお願いします。
    特殊能力などに対応した最新Verをサイトにアップしましたので
    そちらもよろしければ参考にどうぞ。

    それでは失礼します。
引用返信/返信 削除キー/
■17556 / inTopicNo.5)  ありがとう御座いました
□投稿者/ ナオ -(2005/10/10(Mon) 22:20:53) [ID:OWnuX2b4]

    三笠様のアドバイスにより、無事2つの問題を全て解決する事が出来ました。
    本当にありがとう御座いました。

    それにしても、あんなに沢山の特殊能力の分まで組み込むとは……
    自分にはとても出来ません。
    これから三笠様のデータでも見ながら研究でもしようかと思います。
    やはり、素人はインクルに手を出すべきではないのですかね……?

    HPの事は了解しました。きちんとReadMeに書いておきます。

解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -