エンチャントと素材に関する処理を行うスクリプト。
家具の素材変化で価格計算が誤っている問題
15 名前:名無しさん@お腹いっぱい。[sage] 投稿日:11/03/13 12:15:20 ID:tD9Rf2t+
*label_0265のところで素材変化の際に素材別の価格修正を元に戻す処理を行っているが、
家具もそれ以外もまとめて「価格 = 現在価格 * 100/ 素材別の価格」という処理をしているため、家具を素材変化すると価値がおかしくなる
家具の場合は「価格 = 現在価格 - 素材別の価格 * 2」という処理を行うのが正しいはず
16 名前:名無しさん@お腹いっぱい。[sage] 投稿日:11/03/13 12:20:21 ID:EM2awrog
あ、多分それその前に接頭語分も戻さないとだめです
「価格 = 現在価格 * 100 / (80 + 修飾子ID * 20)」の後に
「価格 = 現在価格 - 素材別の価格 * 2」でOKなはず
18 名前:名無しさん@お腹いっぱい。[sage] 投稿日:11/03/13 20:47:47 ID:8KEbhTge
追補足で
>「価格 = 現在価格 * 100 / (80 + 修飾子ID * 20)」
コレするときは(修飾子ID != 0)ってif必要かな、多分
家具価値再計算バグ修正
修飾子の付いている家具を素材変化すると価値がおかしくなる
対処
item_data.hsp 1183行目
originalValue=iValue(ci)*100/mtRef(1,p)で素材価値適用前の価値を
計算している部分を
・家具の場合
・修飾子が付いている場合
を加味して計算するように変更する
以下、例
if ( refType = fltFurniture ) {
// 家具の場合
if ( iSubName(ci) != 0 ) {
// 修飾子がある場合
originalValue = iValue(ci) * 100 / (80 + iSubName(ci) * 20)
} else {
// 修飾子がない場合
originalValue = iValue(ci)
}
originalValue = iValue(ci) - mtRef(1, p) * 2
} else {
// 家具以外の場合
originalValue = iValue(ci) * 100 / mtRef(1, p)
}
時を止めるエンチャントの*個数がおかしい問題
313 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/05/31(日) 22:56:56 ID:HXDlMes0
40:稀に時を止める
の*表記が効果値そのままで表示されてるためよほど運が良く(悪く?)ないと
*****+で表示されてるってのかなり前に出てた気がするけどまだそのままなのな…
修正方法
エンチャント値が4以下でないと*****+表記になっていた
item_data.hsp 445行目
encDisp encStopTime ,4,0,lang("稀に時を止める","occasionally stops time.") ,val(1)
↓
encDisp encStopTime ,4,0,lang("稀に時を止める","occasionally stops time.") ,val(1)/100
こうすれば*の数とターン数が一致する