Project1

标题: 让角色读取 状态备注栏 这样写 出错了 [打印本页]

作者: z2z4    时间: 2014-10-6 08:46
标题: 让角色读取 状态备注栏 这样写 出错了
本帖最后由 z2z4 于 2014-10-6 09:50 编辑

这个是想 把 状态栏里的备注 读到角色里  这样可以显示在 状态栏里 不知道为什么 会出错


class RPG::State < RPG::BaseItem
  #--------------------------------------------------------------------------
  # ● 状态 吸血
  #--------------------------------------------------------------------------
  def vampire
    @vampire ||= @note.match(/<吸血:\s*(\d+)%>/i) {$1.to_i}
    @vampire
  end
end

class Game_Actor < Game_Battler
  attr_accessor :xixue   # 吸血

  def setup(actor_id)
     @xixue = state.vampire
  end
end


class Window_k_ExStatus_Draw < Window_Base

     xixue = "吸血" + @actor.xixue.to_s
    draw_text(160 , 262  ,100, 50,xixue)
end

效果图 已经出来了


  
作者: 正太君    时间: 2014-10-6 08:55
局部变量不放在一个方法里面真的可以吗...
作者: taroxd    时间: 2014-10-6 09:03
本帖最后由 taroxd 于 2014-10-6 09:05 编辑

actor 没有 state 方法吧,只有 states,返回当前状态的数组

setup 有没有调用原来的方法?为什么只在初始化的时候判断吸血的值,而不是随用随判断?
作者: taroxd    时间: 2014-10-6 09:08
本帖最后由 taroxd 于 2014-10-6 09:10 编辑

我给个参考吧。我也没有测试过

@vampire

RUBY 代码复制
  1. class RPG::State < RPG::BaseItem
  2.   def vampire
  3.     @vampire ||= @note =~ /<吸血:\s*(\d+)%>/i ? $1.to_i : 0
  4.   end
  5. end
  6.  
  7. class Game_Actor
  8.   # 对所有状态求和。但是事实上我建议对 feature_objects 求和
  9.   def vampire
  10.     states.inject(0) {|a, e| a + e.vampire }
  11.   end
  12. end





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