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

作者: 梦无笙    时间: 2016-1-6 16:43
找到 class Game_Battler 里的
  1. def def
  2.     ....
  3. end
复制代码
里面的内容替换为:
  1.   def def
  2.     #-----------------------------------------------------------------
  3.     #base_def这个属性是裸防御加所有装备提供的防御,因为敌人没有装备,
  4.     #所以需要一个条件判定,不然战斗时会报错。
  5.     #然后要减去装备提供的防御,获取裸防御
  6.     i = base_def            
  7.     if self.is_a?(Game_Actor)
  8.       for item in self.equips.compact do i -= item.def end
  9.     end                  
  10.     #-----------------------------------------------------------------
  11.    
  12.     #-----------------------------------------------------------------
  13.     #以下@def_plus是使用道具之后提升的防御值,现在i值就是你想要的那个数值了。
  14.     i = ((i + @def_plus)*0.5).round
  15.     #-----------------------------------------------------------------
  16.    
  17.     n = [[base_def + @def_plus, 1].max, 999].min
  18.    
  19.     #-----------------------------------------------------------------
  20.     #这时,只要你设置要防具的ID,就能额外提供50%的防御了,现在是1号防具
  21.     if self.is_a?(Game_Actor) and self.armors.include?($data_armors[1])   
  22.       n += i
  23.     end  
  24.     #------------------------------------------------------------------
  25.    
  26.     for state in states do n *= state.def_rate / 100.0 end
  27.     n = [[Integer(n), 1].max, 999].min
  28.     return n
  29.   end
复制代码
不过这种办法是很蠢的,因为假如日后你有什么防具是提供30%或其他百分比的属性时,都得按照这样的格式一个一个加进去。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1