Project1

标题: 给 Game_Enemy 添加属性的赋值方法 [打印本页]

作者: taroxd    时间: 2015-3-14 20:24
标题: 给 Game_Enemy 添加属性的赋值方法
本帖最后由 taroxd 于 2015-3-18 12:28 编辑

RUBY 代码复制
  1. # 用法示例:$game_troop.members.first.atk = 500
  2. # 一旦赋值即覆盖原属性,慎用!
  3.  
  4. class Game_Enemy
  5.   # 属性列表
  6.   doc = <<-EOF
  7.     def mhp;  param(0);   end    # 最大HP          Maximum Hit Point
  8.     def mmp;  param(1);   end    # 最大MP          Maximum Magic Point
  9.     def atk;  param(2);   end    # 物理攻击        ATtacK power
  10.     def def;  param(3);   end    # 物理防御        DEFense power
  11.     def mat;  param(4);   end    # 魔法攻击        Magic ATtack power
  12.     def mdf;  param(5);   end    # 魔法防御        Magic DeFense power
  13.     def agi;  param(6);   end    # 敏 捷 值        AGIlity
  14.     def luk;  param(7);   end    # 幸 运 值        LUcK
  15.     def hit;  xparam(0);  end    # 成功几率        HIT rate
  16.     def eva;  xparam(1);  end    # 闪避几率        EVAsion rate
  17.     def cri;  xparam(2);  end    # 必杀几率        CRItical rate
  18.     def cev;  xparam(3);  end    # 闪避必杀几率    Critical EVasion rate
  19.     def mev;  xparam(4);  end    # 闪避魔法几率    Magic EVasion rate
  20.     def mrf;  xparam(5);  end    # 反射魔法几率    Magic ReFlection rate
  21.     def cnt;  xparam(6);  end    # 反击几率        CouNTer attack rate
  22.     def hrg;  xparam(7);  end    # HP再生速度      Hp ReGeneration rate
  23.     def mrg;  xparam(8);  end    # MP再生速度      Mp ReGeneration rate
  24.     def trg;  xparam(9);  end    # TP再生速度      Tp ReGeneration rate
  25.     def tgr;  sparam(0);  end    # 受到攻击的几率        TarGet Rate
  26.     def grd;  sparam(1);  end    # 防御效果比率    GuaRD effect rate
  27.     def rec;  sparam(2);  end    # 恢复效果比率    RECovery effect rate
  28.     def pha;  sparam(3);  end    # 药理知识        PHArmacology
  29.     def mcr;  sparam(4);  end    # MP消费率        Mp Cost Rate
  30.     def tcr;  sparam(5);  end    # TP消耗率        Tp Charge Rate
  31.     def pdr;  sparam(6);  end    # 物理伤害加成    Physical Damage Rate
  32.     def mdr;  sparam(7);  end    # 魔法伤害加成    Magical Damage Rate
  33.     def fdr;  sparam(8);  end    # 地形伤害加成    Floor Damage Rate
  34.     def exr;  sparam(9);  end    # 经验获得加成    EXperience Rate'
  35.   EOF
  36.  
  37.   doc.scan(/def (\w+)/) do |(name)|
  38.     attr_writer name
  39.     old = instance_method name
  40.     ivar = :"@#{name}"
  41.     define_method name do
  42.       if instance_variable_defined? ivar
  43.         instance_variable_get ivar
  44.       else
  45.         old.bind(self).call
  46.       end
  47.     end
  48.   end
  49. end

作者: 黑白界    时间: 2015-3-14 21:22
本帖最后由 黑白界 于 2015-3-14 21:25 编辑

doc = <<-EOF
doc.scan(/def (\w+)/) do |(name)|
看不懂。。
………………
好像稍微看懂是做什么的了
作者: yunxin0111    时间: 2015-3-14 22:12
更改敌群某敌人属性的脚本吗?
作者: chd114    时间: 2015-3-14 23:06
我还是不明白敌人的药理知识有什么用···




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