Project1
标题:
新手求解,要怎麼做出+50%防禦力的防具?
[打印本页]
作者:
冰冷水藍
时间:
2016-1-6 00:48
标题:
新手求解,要怎麼做出+50%防禦力的防具?
本帖最后由 冰冷水藍 于 2016-1-6 01:07 编辑
RT
原本系統都只能指定數值
那麼若想設計出+50%防禦力的防具,要怎麼做?
懇求賜教!!!
作者:
taroxd
时间:
2016-1-6 09:47
本帖最后由 怪蜀黍 于 2016-1-6 14:51 编辑
敏感内容已被编辑一空
@taroxd
作者:
怪蜀黍
时间:
2016-1-6 15:02
50%防御力是指角色基础防御力的50%还是本装备防御力的50%要说清。
作者:
怪蜀黍
时间:
2016-1-6 15:18
1.PNG
(39.39 KB, 下载次数: 19)
下载附件
保存到相册
2016-1-6 15:18 上传
作者:
梦无笙
时间:
2016-1-6 16:43
找到 class Game_Battler 里的
def def
....
end
复制代码
里面的内容替换为:
def def
#-----------------------------------------------------------------
#base_def这个属性是裸防御加所有装备提供的防御,因为敌人没有装备,
#所以需要一个条件判定,不然战斗时会报错。
#然后要减去装备提供的防御,获取裸防御
i = base_def
if self.is_a?(Game_Actor)
for item in self.equips.compact do i -= item.def end
end
#-----------------------------------------------------------------
#-----------------------------------------------------------------
#以下@def_plus是使用道具之后提升的防御值,现在i值就是你想要的那个数值了。
i = ((i + @def_plus)*0.5).round
#-----------------------------------------------------------------
n = [[base_def + @def_plus, 1].max, 999].min
#-----------------------------------------------------------------
#这时,只要你设置要防具的ID,就能额外提供50%的防御了,现在是1号防具
if self.is_a?(Game_Actor) and self.armors.include?($data_armors[1])
n += i
end
#------------------------------------------------------------------
for state in states do n *= state.def_rate / 100.0 end
n = [[Integer(n), 1].max, 999].min
return n
end
复制代码
不过这种办法是很蠢的,因为假如日后你有什么防具是提供30%或其他百分比的属性时,都得按照这样的格式一个一个加进去。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1