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

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

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

■19928 / inTopicNo.1)  ダメージ(battle.txt)について
  
□投稿者/ ゼム -(2007/05/18(Fri) 16:21:32) [ID:1BaOKt7F]
    初めて投稿します、よろしくお願いします。
    2つほど質問します。どちらもバトルコンフィングに関する質問なのですが

    1、
    ダメージ
    攻撃側補正 - 防御側補正

    攻撃補正
    武器威力 + 格闘

    防御補正
    装甲

    という簡単なダメージ計算を作ったのですが
    格闘6で武器威力2000のキャラが
    装甲0の相手に攻撃した時に、予定では2006のはずが
    2407という数字が表示され、どうもダメージから更に1,2倍されているようでした。
    自分で調べてみた所、自動的に武器地形補正のAが適用されているようでした。
    そこで攻撃地形補正の項目に

    攻撃地形補正
    武器威力 / 地形適応



    攻撃地形補正
    攻撃側補正 / 1.2

    などを指定してみましたが、いずれもうまくいきませんでした。
    現状、最終ダメージに最終値 / 1.2という式を当てはめて使っているのですが
    これだとA以外の地形適応が使えなくなってしまうので困っています。
    どうにかして地形適応を切り捨てるというか、適応されないようには
    できないでしょうか?

    長くなってしまいましたが2つめ。

    最終ダメージに1の位というか端数を出さないようにしたいのですが
    どうすればいいでしょうか?

    よろしくお願いします。

引用返信/返信 削除キー/
■19929 / inTopicNo.2)  Re[1]: ダメージ(battle.txt)について
□投稿者/ 某たわし -(2007/05/18(Fri) 17:52:45) [ID:fkn8edvg]
    こんばんは、某たわしと申します。


    武器威力はヘルプを見ると、
    >武器の攻撃力(各種計算を経た後のもの)が入ります。
    このように書かれているため、おそらくは既に地形適応も計算されてしまっているのではないでしょうか。

    あまり複雑な式ではないようでしたら、他の項目は適当な数値を入れてしまってダメージの項目でサブルーチンを読み込ませてそこで計算してしまうというのも一つの手だと思います。

    2つ目の回答ですが、「((最終値 \ 10) * 10)」というわりと無茶な方法を使えば
    実現できると思います。
    整数除算で1/10にして1桁目を削除してしまってからもとの値に戻すといった感じです。

    ご参考になれば幸いです。
引用返信/返信 削除キー/
■19930 / inTopicNo.3)  Re[2]: ダメージ(battle.txt)について
□投稿者/ ゼム -(2007/05/18(Fri) 22:27:58) [ID:1BaOKt7F]
    >あまり複雑な式ではないようでしたら、他の項目は適当な数値を入れてしまって>ダメージの項目でサブルーチンを読み込ませてそこで計算してしまうというのも>一つの手だと思います。

    なるほど、やってみたいと思います。

    >2つ目の回答ですが、「((最終値 \ 10) * 10)」というわりと無茶な方法を使えば
    >実現できると思います。
    >整数除算で1/10にして1桁目を削除してしまってからもとの値に戻すといった感じです。

    さっそく試したところ理想的な結果を得ることができました。
    ありがとうございました。

    最近作り始めたばかりでわからない事が多く四苦八苦していた所でした
    質問が稚拙すぎると思い書き込むのに躊躇していましたが書き込んでみてよかったです(><;
    大変助かりました、ありがとうございました。
解決済み!
引用返信/返信 削除キー/
■19931 / inTopicNo.4)  攻撃地形補正の設定次第です
□投稿者/ 中箱 -(2007/05/18(Fri) 22:47:06) [ID:8NrUE61r]
    2007/05/18(Fri) 23:17:09 編集(投稿者)
    2007/05/18(Fri) 23:11:13 編集(投稿者)

    #一部読み違いがあったのでタイトルなど一部修正しました

    解決済みになっているところ失礼します。中箱と申します。


    「攻撃地形補正」項目を設定しない場合、つまりデフォルトでは

    攻撃地形補正
    攻撃値 * 地形適応

    のように設定した場合と同様の計算になります。武器の地形適応による修正はココでかかっています。


    ですから、地形適応によるダメージ修正を行いたくないのであれば

    攻撃地形補正
    攻撃値

    のように設定すれば、武器の地形適応はダメージに関係しなくなります。

    ヘルプにもありますが、「攻撃側補正」や「武器威力」は、コンフィグ項目「攻撃地形補正」では使えません。
    (改めて確認していませんが、これらを攻撃地形補正で使っても「0」扱いだった覚えが)


    攻撃補正と攻撃地形補正、ダメージの関係は
    ヘルプの (1)コンフィグ対象 を参照してください。
    実際にbattle.txtに記述する場合はバトルコンフィグ変数を用いるので、注意が必要ですが。



    なお、
    >武器の攻撃力(各種計算を経た後のもの)
    というのはユニット用特殊能力「武器強化」や、同調率+シ属性などを含むということで、
    実際は「武器威力」に地形適応は関係していませんのでご注意ください。


    失礼しました。
    では
引用返信/返信 削除キー/
■19932 / inTopicNo.5)  追加で質問が(汗
□投稿者/ ゼム -(2007/05/19(Sat) 02:06:04) [ID:1BaOKt7F]
    2007/05/19(Sat) 02:35:47 編集(投稿者)

    >ですから、地形適応によるダメージ修正を行いたくないのであれば
    >攻撃地形補正
    >攻撃値
    >のように設定すれば、武器の地形適応はダメージに関係しなくなります。
    試してみたところ理想の数値を得る事ができました。
    ありがとうございました。

    >ユニット用特殊能力「武器強化」や、同調率+シ属性などを含むということで、
    >実際は「武器威力」に地形適応は関係していませんのでご注意ください。
    なるほど、今後属性等をつけて行く時に気をつけたいと思います。

    ついでのようになってしまい申し訳ないのですが、新たに問題が浮上したので
    追加で質問させてください。

    現在バトルコンフィングを

    最終ダメージ
    ((最終値 \ 10) * 10)

    攻撃地形補正
    攻撃値

    ダメージ
    攻撃側補正 - 防御側補正

    攻撃補正
    武器威力 + Call(ダメ計算式)

    防御補正
    装甲

    と設定しているんですが、問題は攻撃補正の欄で
    サブルーチンの方は、過去ログ等を参照しつつ自分で組んでみたのが

    ダメ計算式:
    If Info(ユニット, 対象ユニット使用武器, 属性所有, 格) = 1 Then
    Return (Info(パイロット, 対象ユニット, 格闘))
    ElseIf Info(ユニット, 対象ユニット使用武器, 属性所有, 射) = 1 Then
    Return (Info(パイロット, 対象ユニット, 射撃))
    ElseIf Info(ユニット, 対象ユニット使用武器, 属性所有, 不) = 1 Then
    Return 0
    Else
    Return 0
    EndIf
    Return

    こうなっています。
    この状態で

    格闘攻撃, 2000, 1, 3, +2, -, -, -, AAAA, +0, P格

    格闘10のユニットがこの武器で攻撃しても、
    2000という数値しか返ってきませんでした。(相手ユニットは装甲0です)
    Else後のReturnの数値を2000にした所ダメージが4000になったので
    どうもIf文に問題がありそうな事まではわかったのですが
    どう直せばいいのかさっぱりです。

    よろしければ問題点の指摘、修正をお願いします。


引用返信/返信 削除キー/
■19933 / inTopicNo.6)  Info関数の引数が違います
□投稿者/ 中箱 -(2007/05/19(Sat) 03:47:35) [ID:8NrUE61r]
    >Info(ユニット, 対象ユニット使用武器, 属性所有, 格)

    その武器が指定した属性を持っているかどうかは、
    >武器, 武器名 or 番号, 属性所有, 属性タイプ
    ですから、
     Info([データ区分,]データ,武器, 番号, 属性所有, 属性タイプ)
    となります。

    データ区分は「ユニット」で良いですが、
    上記の内容では "データ"と「武器」、が抜けているので正しく参照できません。
    If分岐の問題はこれでしょう。

    (こちらで試したところ、攻撃前は変数「対象ユニット使用武器」は使えないようです。
     「対象ユニット使用武器番号」は使えるので、変数はこれを使ってください)



    >Info(パイロット, 対象ユニット, 格闘)

    >データにはデータの名称を指定します。パイロットや非戦闘員の場合には愛称、ユニットの場合にはユニットIDも指定可能です。
    >(中略)
    >また、パイロットのデータを調べる際に同じ名称を持つパイロットが複数存在する場合はシステム変数「対象パイロット」「相手パイロット」やPilotID関数を使って参照したパイロットIDを使って指定する必要があります。

    ですから、"データ" に入れる変数は「対象パイロット」が適切です。
    それから「対象ユニット」ではなくて「対象ユニットID」です。紛らわしいですが。




    ちなみに、不属性武器のみパイロットの格闘・射撃が関係しないのであれば、
    バトルコンフィグ変数「攻撃値」を用いて


    攻撃補正
    武器威力 + 攻撃値 * Call(攻撃値係数)


    攻撃値係数:
    If Info(ユニット, 対象ユニットID,武器,対象ユニット使用武器番号, 属性所有, 不) = 1 Then
     Return 0
    Else
     Return 1
    EndIf
    Return


    でも同様の結果が得られるかと思います。


    頑張ってください
    では
引用返信/返信 削除キー/
■19934 / inTopicNo.7)  Re[4]: Info関数の引数が違います
□投稿者/ ゼム -(2007/05/19(Sat) 15:35:01) [ID:1BaOKt7F]
    2007/05/19(Sat) 17:07:01 編集(投稿者)

    自分の適当さ加減にびっくりしました・・
    ヘルプにかいてある通りにやるのが一番確実なんですね。
    今後気をつけたいと思います。

    それで、中箱さんに教えていただいた通りに書き直したつもりなのですが

    ダメ計算式:
    If Info(ユニット, 対象ユニットID, 武器, 対象ユニット使用武器番号, 属性所有, 格) = 1 Then
    Return (Info(パイロット, 対象パイロット, 格闘))
    ElseIf Info(ユニット, 対象ユニットID, 武器, 対象ユニット使用武器番号, 属性所有, 射) = 1 Then
    Return (Info(パイロット, 対象パイロット, 射撃))
    ElseIf Info(ユニット, 対象ユニットID, 武器, 対象ユニット使用武器番号, 属性所有, 不) = 1 Then
    Return 0
    Else
    Return 0
    EndIf
    Return

    試してみた結果、If文は機能するようになったのは確認したのですが
    どうもその後のReturnのinfo関数が参照されていないようなんです。
    他の方法等、試してみたのですがどれもうまくいきませんでした。
    何が原因なんでしょうか?

    >でも同様の結果が得られるかと思います。
    ありがとうございます、参考にさせていただきます。

引用返信/返信 削除キー/
■19935 / inTopicNo.8)  Re[5]: Info関数の引数が違います
□投稿者/ 中箱 -(2007/05/19(Sat) 19:21:57) [ID:8NrUE61r]
    あー、バトルコンフィグデータからサブルーチンを呼んでいるために、
     Info(パイロット, 対象パイロット, 格闘)
    の「格闘」が、バトルコンフィグ関数の「格闘」だと認識されてしまうからですね。
    変数ではなくて文字列の「格闘」を使う場合は "" で括る必要があります。

    つまり、
    Info(パイロット, 対象パイロット, "格闘")
    ですね。


    射撃についても同様です。




    なお、

    >ヘルプにかいてある通りにやるのが一番確実なんですね。
    これは違います。
    「ヘルプにかいてある通りにやらなければ、普通は動かない」と思っておくべきです。
    お気をつけください。

    では。
引用返信/返信 削除キー/
■19936 / inTopicNo.9)  Re[6]: Info関数の引数が違います
□投稿者/ ゼム -(2007/05/19(Sat) 19:58:30) [ID:1BaOKt7F]
    2007/05/19(Sat) 20:39:25 編集(投稿者)

    >つまり、
    >Info(パイロット, 対象パイロット, "格闘")
    >ですね。
    試したところ理想の値を得ることができました。
    ありがとうございました。

    >ヘルプにかいてある通りにやらなければ、普通は動かない」と思っておくべきです。
    >お気をつけください。
    今後気をつけたいと思います。

    質問に答えて頂いたお二人方ともありがとうございました。

    また、新しいツリーをたてるのもどうかと思い
    同ツリー内で済ませようと思い、中箱さんのレス中で質問をしてしまった為に
    中箱さんを指名してしまったような形になってしまい申し訳ないです。
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -