calculation.hsp

Last-modified: 2018-06-08 (金) 22:47:37

物理ダメージ・スキル経験値等の各種計算を行うスクリプト。
キャラ情報再計算もここで行われる。

心眼スキルによるクリティカル上昇が機能していない問題

710 名前:名無しさん@お腹いっぱい。 [sage] 投稿日:2011/02/14(月) 22:31:07 ID:ddkcPGbQ [1/2]
>ハック版作者達

公式版1.22を逆根直後のソース行番号で
118750行目~118755行目
をコピーした上でコメントアウト
コピーした内容を
119017行目と119018行目の間
にコピー

効能
装備品に付与されている心眼スキル上昇効果が心眼スキル値は上昇させるけど
それに伴って上昇するはずのクリティカル率が影響を受けない
つー謎動作の改善

ま、ここしか知らんからここに投下
公式は最低でも1度は報告したはずだけど1.22まで未改善だったし
どっかに消えたrev??の人もrev23時点で未対応だったし
どーでもいい程度のバグ(もしくは正式な仕様)かもしれんけど念のため

 

心眼エンチャントクリティカル率補正バグ修正
 「それは心眼の技術を上昇させる」のエンチャントの付いた武具を装備しても
 心眼スキル上昇によるクリティカル率の上昇が加味されない
 対処
 calculation.hsp 421行目
  クリティカル率の再計算位置がまずいので421行目を無難と思われる494行目付近へ移動
  これだと今度はクリティカルヒットの機会を増やすエンチャントが機能しなくなってしまう。
  421行目付近では変数に0を代入させ、494行目付近で代入ではなく加算をすると良い?

レベル1で生成されたキャラクターの耐性が無効化される問題

323 名前:名無しさん@お腹いっぱい。 [sage] 投稿日:2011/03/29(火) 21:47:30.14 ID:Myv4aFO+ [3/4]
もういっちょ、やっとマクロが何なのか分かってきたんだぜ
init.hsp内のresImmマクロがうまく機能してないため二つ目三つ目の耐性が無効に
二三行目の条件をrsRes%2!0みたいにすれば多分直る。ついでにその上のresWeakも直すといいかも
BF最新版でも一応確認してきたけど神経ブレスで目玉がミンチになったから未修正っぽい
逆コンならとりあえず幾つかのif ( nerve != 0 ) の中を実行するように
なお、既存敵で複数耐性を持つのは目玉のみの模様(幻惑、神経)

 

金ベルの魔法耐性消失は*calcInitialSkill(逆コン*label_1511)だってのが判った
Lv1除外の理由ってプレイヤーの耐性初期化以外ぐらいしか思いつかないんだけど他に何かあるのかな

 

327 名前:名無しさん@お腹いっぱい。 [sage] 投稿日:2011/03/29(火) 23:34:39.15 ID:Myv4aFO+ [4/4]
うん、不具合って事で俺の中で結論が出た。cLevel(r1)=1をr1=pcに変更で特に問題もないっぽい(逆コンならr1==0)
cnpcで半端な耐性が無効化されたりするのも多分不具合、既存敵の耐性がMAXか弱点かしかないからそれを基準にした判定しかしてないため
となると失耐性で下がったペットの耐性が元に戻せないのもやっぱり一種の不具合かな
こっちはスマートな対処法見つかったら書く

転載再upは別に構わないけどバグバグしいのは消した方がいいと思う。あと今はまだ非公式改造版だって書いとくといいかも

技能のスペルパワーが正しく計算されていない問題

78 名前:名無しさん@お腹いっぱい。[sage] 投稿日:11/04/29 11:52:51 ID:d7sYnnGH
calcspellpowerにて

スキルID >= 600(技能)なら
参照主能力が0でなければ参照主能力ID * 6 + 10を返す

ってなってるけどこれ参照主能力の値の間違いじゃないかな?
具体的にはsdataref(0, prm_918),じゃなくてsdata(sdataref(0, prm_918), prm_919)

このせいでルルウィの憑依が速度+171固定になってたりする
変えたら変えたで他のスキルに変な影響出るかもしれないけど

遠隔武器の命中補正が無効になっている問題

111 名前:名無しさん@お腹いっぱい。[sage] 投稿日:11/11/27 00:53:23 ID:S4q+c/ur
calcattackhitのところで
tohi = tohit * rangemap(rangedist) / 100
って計算があるけどtohiはtohitの誤字っぽい

格闘のクリティカル倍率が1になっている問題

calcAttackDmg関数内
dmgMulti*=1.25

dmgMulti=dmgMulti*5/4

未鑑定アイテムがPCレベル依存で高くなる問題

完全未鑑定で自店舗モードでないなら
基本売価 = PCレベル / 5 * ((乱数の種 + アイテムID * 31) \ PCレベル + 4) + 10
これはまずいので
基本売価 = (乱数の種 + アイテムID * 31) \ 10 + 10
適当にこんな感じでレベル依存しないようにしておくといいかも

ショウルームのCNPCのビットがまったく関係ない他のCNPCに付与されてしまうことがある問題

キャラクター情報を更新する処理(*chararefresh)で memcpy cdata(450, r1), userdata(40, cdata(157, r1)), 30 * 4 を行って
CNPCに設定されたビットをコピーするが、これが行われる時点ではまだCNPC番号がセットし直されていないのが原因
マップに入った後のgetunidの直後にでももう一度このルーチンに飛ばして更新し直すと良い

毒・出血等の継続ダメージが重複すると落ちることがある問題

毒、もしくは窒息でHPがマイナスになった場合、出血のダメージ計算でrndの引数が0になることが原因?(未確認)