Project1

标题: 精英敌人增加状态 [打印本页]

作者: 邪月长啸    时间: 2016-3-13 18:53
标题: 精英敌人增加状态
帮忙把下面脚本改进下
当敌人变成精英怪时附加20号状态
RUBY 代码复制
  1. # [精英敌人]  原作 tan12345(va)  移植 hyrious(xp)
  2.  
  3. class Game_Enemy < Game_Battler
  4.   # 精英怪出现几率,30代表30%
  5.   BY = 30
  6.   # 精英怪属性加成比例(同时也是经验,金钱,掉落率加成比例),1.3代表属性是普通怪的1.3倍
  7.   BYP = 1.5
  8.   # 不会成为精英的敌人
  9.   NO_BY = [7,8] #表示2号和3号敌人不会变成精英,适合设定BOSS
  10.   attr_reader   :is_by  # 是否精英
  11.   #--------------------------------------------------------------------------
  12.   # ● 是否精英
  13.   #--------------------------------------------------------------------------
  14.   def is_by?
  15.     return true if @is_by
  16.     return false
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 初始化对象(包括精英初始化)
  20.   #--------------------------------------------------------------------------
  21.   alias tan_initialize initialize
  22.   def initialize(troop_id, member_index)
  23.     tan_initialize(troop_id, member_index)
  24.     @is_by = (rand(100) <= BY && !NO_BY.include?(@enemy_id))
  25.     @hp = (@hp * BYP).to_i if @is_by
  26.     @sp = (@sp * BYP).to_i if @is_by
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 精英改名
  30.   #--------------------------------------------------------------------------
  31.   alias hy_name name
  32.   def name
  33.     is_by? ? hy_name + "(精英)" : hy_name
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 获取经验值
  37.   #--------------------------------------------------------------------------
  38.   alias tan_exp exp
  39.   def exp
  40.     return (tan_exp * BYP).to_i if @is_by
  41.     tan_exp
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 获取金钱
  45.   #--------------------------------------------------------------------------
  46.   alias tan_gold gold
  47.   def gold
  48.     return (tan_gold * BYP).to_i if @is_by
  49.     tan_gold
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 获取物品掉率的倍率
  53.   #--------------------------------------------------------------------------
  54.   alias tan_treasure_prob treasure_prob
  55.   def treasure_prob
  56.     return (tan_treasure_prob * BYP).to_i if @is_by
  57.     tan_treasure_prob
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 属性值增强(很多)
  61.   #   嫌不够可以自行调整算式, 更多base_请参考Game_Enemy
  62.   #--------------------------------------------------------------------------
  63.   alias hy_base_maxhp base_maxhp
  64.   def base_maxhp
  65.     return (hy_base_maxhp * BYP).to_i if @is_by
  66.     hy_base_maxhp
  67.   end
  68.   alias hy_base_maxsp base_maxsp
  69.   def base_maxsp
  70.     return (hy_base_maxsp * BYP).to_i if @is_by
  71.     hy_base_maxsp
  72.   end
  73.   alias hy_base_atk base_atk
  74.   def base_atk
  75.     return (hy_base_atk * BYP).to_i if @is_by
  76.     hy_base_atk
  77.   end
  78.   alias hy_base_pdef base_pdef
  79.   def base_pdef
  80.     return (hy_base_pdef * BYP).to_i if @is_by
  81.     hy_base_pdef
  82.   end
  83.   alias hy_base_mdef base_mdef
  84.   def base_mdef
  85.     return (hy_base_mdef * BYP).to_i if @is_by
  86.     hy_base_mdef
  87.   end
  88.   alias hy_base_eva base_eva
  89.   def base_eva
  90.     return (hy_base_eva * BYP).to_i if @is_by
  91.     hy_base_eva
  92.   end
  93. end

作者: RyanBern    时间: 2016-3-13 18:53
本帖最后由 RyanBern 于 2016-3-14 16:21 编辑

敌人初始化那里,27行,加上这句试试
RUBY 代码复制
  1. add_state(20) if @is_by





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