Project1

标题: 如何让两件装备穿上后.分别增加MAXSP和MAXHP? [打印本页]

作者: jiahui5592986    时间: 2014-10-3 22:28
标题: 如何让两件装备穿上后.分别增加MAXSP和MAXHP?
armor1_id  增加防御.气血上限
armor2_id  增加防御.魔法上限

额.就这个意思。
作者: Thylakoid    时间: 2014-10-3 22:59
数据库>状态>新建状态内容编辑maxhp或maxsp的百分比。(比如要增加10%的maxsp,就写成110%)
数据库>防具>自动状态(上面新建的状态)
作者: 573932914    时间: 2014-10-3 23:18
设置附加状态
作者: jiahui5592986    时间: 2014-10-3 23:21
Thylakoid 发表于 2014-10-3 22:59
数据库>状态>新建状态内容编辑maxhp或maxsp的百分比。(比如要增加10%的maxsp,就写成110%)
数据库>防具>自 ...

一些防具有固定的增加值呢?
作者: jiahui5592986    时间: 2014-10-3 23:44
@kuerlulu @dengwei @myownroc @灵魂の补给 @紫千修 @紫英晓狼1130 @芯☆淡茹水
作者: RyanBern    时间: 2014-10-4 09:38
https://rpg.blue/forum.php?mod=viewthread&tid=368720
记得恐惧剑刃大大写过一个类似的,拿去用吧。MAXSP同理。
作者: Thylakoid    时间: 2014-10-4 20:06
jiahui5592986 发表于 2014-10-3 23:21
一些防具有固定的增加值呢?

论坛搜索一下关键词maxhp,就有参考。https://rpg.blue/forum.php?mod=v ... amp;highlight=maxhp
作者: chd114    时间: 2014-10-4 20:56
请你像我这样做(请回复我:“我就像你这样做”)


首先,按下F11打开我们的脚本编辑器,在
  1. Game_Actor
复制代码
里找到
  1. def base_str
复制代码
(默认199行)

参考
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取基本力量
  3.   #--------------------------------------------------------------------------
  4.   def base_str
  5.     n = $data_actors[@actor_id].parameters[2, @level]
  6.     weapon = $data_weapons[@weapon_id]
  7.     armor1 = $data_armors[@armor1_id]
  8.     armor2 = $data_armors[@armor2_id]
  9.     armor3 = $data_armors[@armor3_id]
  10.     armor4 = $data_armors[@armor4_id]
  11.     n += weapon != nil ? weapon.str_plus : 0
  12.     n += armor1 != nil ? armor1.str_plus : 0
  13.     n += armor2 != nil ? armor2.str_plus : 0
  14.     n += armor3 != nil ? armor3.str_plus : 0
  15.     n += armor4 != nil ? armor4.str_plus : 0
  16.     return [[n, 1].max, 999].min
  17.   end
复制代码
我们可以在
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取基本 MaxHP
  3.   #--------------------------------------------------------------------------
  4.   def base_maxhp
  5.     return $data_actors[@actor_id].parameters[0, @level]
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● 获取基本 MaxSP
  9.   #--------------------------------------------------------------------------
  10.   def base_maxsp
  11.     return $data_actors[@actor_id].parameters[1, @level]
  12.   end
复制代码
里面加上类似的东西···具体的嘛,自己设置
作者: chd114    时间: 2014-10-4 20:57
或者直接使用这样的脚本(不推荐,因为可能与其他脚本产生冲突或者不兼容什么的···)
  1. # 使用方法:装备名字中增加 <hp(n)> 或者 <mp(n)> 。允许一起使用。

  2. class RPG::BaseItem  

  3. alias __name__ name
  4.   
  5. def name
  6.    
  7. name = @name.dup
  8.    
  9. name.gsub(/<.p\([0-9]*\)>/, '')
  10.   
  11. end

  12. end

  13. module RPG
  14.   
  15. def self.get_result(regexp, strings)
  16.    
  17. re = strings.map {|str| str[regexp] ? Integer($1) : 0 }
  18.   
  19. end

  20. end

  21. class Game_Actor
  22.   
  23. alias __maxhp__ maxhp
  24.   
  25. alias __maxmp__ maxmp
  26.   
  27. def get_all_equips
  28.    
  29. ary = [$data_weapons[@weapon_id],
  30.    
  31. $data_armors[@armor1_id],
  32. $data_armors[@armor2_id],
  33.    
  34. $data_armors[@armor3_id],
  35. $data_armors[@armor4_id]]
  36.    
  37. strings = ary.map {|equip| equip.__name__ rescue '' }
  38.   
  39. end
  40.   
  41. def maxhp
  42.    
  43. re = RPG.get_result(/<hp\(([0-9]*)\)>/, get_all_equips)
  44.    
  45. __maxhp__ + re.inject(0) {|result, item| result + item }
  46.   
  47. end
  48.   
  49. def maxmp
  50.    
  51. re = RPG.get_result(/<mp\(([0-9]*)\)>/, get_all_equips)
  52.    
  53. __maxmp__ + re.inject(0) {|result, item| result + item }
  54.   
  55. end   

  56. end
复制代码





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