赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 55044 |
最后登录 | 2022-1-4 |
在线时间 | 49 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 95
- 在线时间
- 49 小时
- 注册时间
- 2006-5-7
- 帖子
- 526
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
RMXP的默认属性修正值计算方法是依次检查所有防具和状态,只要拥有该属性防御那么该属性有效度就减半,这样的计算方法局限性很大,比如本来是正值的属性有效度无论如何也不会变成负值(属性吸收),本来是吸收100%火属性(有效度为-100%)的人再装备上火属性抵抗的装备吸收效果反而会下降,因此,我做了一些改动,自己用的,也发上来给大家看看......
属性修正的计算在Game_Actor107行和Game_Enemy118行处,因此我在这里动了手脚.
Game_Actor里的内容为- #--------------------------------------------------------------------------
- # ● 取得属性修正值
- # element_id : 属性 ID
- #--------------------------------------------------------------------------
- def element_rate(element_id)
- # 获取对应属性有效度的数值
- table = [0,200,150,100,50,0,-100]
- result = table[$data_classes[@class_id].element_ranks[element_id]]
- # 防具能防御本属性的情况下效果减半
- for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
- armor = $data_armors[i]
- if armor != nil and armor.guard_element_set.include?(element_id)
- result /= 2
- end
- end
- # 状态能防御本属性的情况下效果减半
- for i in @states
- if $data_states[i].guard_element_set.include?(element_id)
- result /= 2
- end
- end
- # 过程结束
- return result
- end
复制代码
我把它改成- #--------------------------------------------------------------------------
- # ● 取得属性修正值
- # element_id : 属性 ID
- #--------------------------------------------------------------------------
- def element_rate(element_id)
- # 获取对应属性有效度的数值
- table = [0,200,150,100,50,0,-100]
- result = table[$data_classes[@class_id].element_ranks[element_id]]
- # 防具能防御本属性的情况下
- for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
- beishu=1
- armor = $data_armors[i]
- if armor != nil and armor.guard_element_set.include?(37)
- beishu=2
- elsif armor != nil and armor.guard_element_set.include?(38)
- beishu=3
- elsif armor != nil and armor.guard_element_set.include?(39)
- beishu=4
- end
- if armor != nil and armor.guard_element_set.include?(40)
- beishu *= -1
- end
- armor = $data_armors[i]
- if armor != nil and armor.guard_element_set.include?(element_id)
- result -= 35*beishu
- if result > 200 then result=200
- elsif result <-100 then result =-100
- end
- end
- end
- # 状态能防御本属性的情况下
- for i in @states
- beishu=1
- if $data_states[i].guard_element_set.include?(37)
- beishu= 2
- elsif $data_states[i].guard_element_set.include?(38)
- beishu= 3
- elsif $data_states[i].guard_element_set.include?(39)
- beishu= 4
- end
- if $data_states[i].guard_element_set.include?(40)
- beishu *= -1
- end
- if $data_states[i].guard_element_set.include?(element_id)
- result -= 35*beishu
- if result > 200 then result=200
- elsif result <-100 then result =-100
- end
- end
- end
- # 过程结束
- return result
- end
复制代码
这样修改的效果是,每个拥有属性防御的装备或者状态会使其防御的属性的属性有效度下降35%,另外如果它的属性防御里包括37号属性,那么效果加倍,如果包括38号,效果3倍,如果包括39号,效果4倍,如果包括40号,效果变成属性有效度增加.
另外,某人物的属性有效度上限为200%,下限为-100%,以防出现不可预期的错误......
例如:
抗炎戒指的属性防御中包括001(炎)和037,那么其装备效果为对该人物火属性有效度下降70%(35%×2)
全金属盔甲的属性防御中包括003(雷)和040,那么其装备效果为对该人物雷属性有效度上升35%(-35%)
状态"神之护盾"的属性防御中包括001~008(所有属性)和039,那么其装备效果为对该人物所有属性有效度下降140%(35%×4)
状态"光暗脆弱"的属性防御中包括007(光)、008(暗)、038、040,那么其装备效果为对该人物光和暗属性有效度上升105(-35%×3)
某人物初始所有属性有效度为100%(C),装备全金属盔甲(雷有效+35%)、抗炎戒指(火有效-70%),拥有状态神之护盾(全有效下降140%)、光暗脆弱(光暗有效+105%)。则其最终属性有效度为光、暗65%,雷-5%,火-100%(低于-100%,自动修正),其余属性都是-40%。
[本贴由 雷欧纳德 于 2006-11-20 18:55:35 进行了编辑] |
|