Project1

标题: 装备增加HP/MP的问题 [打印本页]

作者: pkboy9999    时间: 2011-8-25 01:07
标题: 装备增加HP/MP的问题
本帖最后由 pkboy9999 于 2011-8-26 13:25 编辑

刚刚看到忧雪大大的武器增加HP脚本
  1. module RPG
  2.   class Weapon
  3.     def description
  4.       description = @description.split(/hp/)[0]
  5.       return description != nil ? description : ''
  6.     end
  7.     def hp
  8.       hp = @description.split(/hp/)[1]
  9.       return hp != nil ?  hp.to_i : 0
  10.     end
  11.   end
  12. end

  13. class Game_Actor
  14.   
  15.   alias :old_maxhp :maxhp unless method_defined? :old_maxhp
  16.   def maxhp
  17.     weapon = $data_weapons[@weapon_id] != nil ? $data_weapons[@weapon_id].hp : 0
  18.     return Integer(old_maxhp + weapon)
  19.   end
  20. end

  21. end
复制代码
插入了这个脚本后,我重新复制插入一个新脚本,把里面所有的HP换成MP,然后在武器的描述最后加上hp50mp50,实际上武器也的确加了50HP和50MP,但是描述里面hp50没有隐藏起来,mp50却隐藏了,看起来有点别扭,有完善的方法吗?
我的想法是把在描述后面添加改成在备注里添加,应该就能解决了,但是我又不懂脚本,只好求助大神帮忙修改了- -

还有一个问题是,这个脚本只能对武器起作用,不能对防具起作用,如果同时能对防具也起作用,那就更好了。

有点贪心,不要见怪>.<

the universe.rar (1.07 MB, 下载次数: 60) dsu_plus_rewardpost_czw
作者: 忧雪の伤    时间: 2011-8-25 02:01
本帖最后由 忧雪の伤 于 2011-8-25 03:33 编辑
  1. # 使用方法:装备名字中增加 <hp(n)> 或者 <mp(n)> 。允许一起使用。
  2. class RPG::BaseItem  
  3.   alias __name__ name
  4.   def name
  5.     name = @name.dup
  6.     name.gsub(/<.p\([0-9]*\)>/, '')
  7.   end
  8. end
  9. module RPG
  10.   def self.get_result(regexp, strings)
  11.     re = strings.map {|str| str[regexp] ? Integer($1) : 0 }
  12.   end
  13. end
  14. class Game_Actor
  15.   alias __maxhp__ maxhp
  16.   alias __maxmp__ maxmp
  17.   def get_all_equips
  18.     ary = [$data_weapons[@weapon_id],
  19.     $data_armors[@armor1_id], $data_armors[@armor2_id],
  20.     $data_armors[@armor3_id], $data_armors[@armor4_id]]
  21.     strings = ary.map {|equip| equip.__name__ rescue '' }
  22.   end
  23.   def maxhp
  24.     re = RPG.get_result(/<hp\(([0-9]*)\)>/, get_all_equips)
  25.     __maxhp__ + re.inject(0) {|result, item| result + item }
  26.   end
  27.   def maxmp
  28.     re = RPG.get_result(/<mp\(([0-9]*)\)>/, get_all_equips)
  29.     __maxmp__ + re.inject(0) {|result, item| result + item }
  30.   end   
  31. end
复制代码

作者: evermilk    时间: 2011-8-25 02:54
忧雪の伤 发表于 2011-8-25 02:01

真糟糕啊,上个图这么难

无标题.png (21.54 KB, 下载次数: 14)

无标题.png





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