Project1

标题: 关于一个方法的编写 [打印本页]

作者: 负零    时间: 2015-5-17 14:16
标题: 关于一个方法的编写
本帖最后由 负零 于 2015-5-17 14:38 编辑

RUBY 代码复制
  1. if user.skills.include?($data_skills[450])
  2. if rand(100)<100 && user.mp>=40
  3. t_value=value
  4. value += (user.atk+user.agi)*1.5  
  5. p"├√长驱1触发(-1),累积伤害#{@t_value};附加伤害#{value-t_value}!"
  6. self.mp-=1
  7. else
  8. p"├×长驱1#{bcf}"
  9. value
  10. end
  11. end

以上是具体实现的代码,以下是编写的方法
RUBY 代码复制
  1. def skilleffect(target,skills_id,skills_rand,)
  2. if target.skills.include?($data_skills[skills_id])
  3. if rand(100)<skills_rand && self.mp>=40
  4. t_value=value
  5. value += (user.atk+user.agi)*1.5  
  6. p"├√长驱1触发(-1),累积伤害#{@t_value};附加伤害#{value-t_value}!"
  7. self.mp-=1
  8. else
  9. p"├×长驱1#{bcf}"
  10. value
  11. end
  12. end
  13. end

从第二行的self.mp开始,写的时候觉得好像要传的参数过多了,因为条件判断不止有mp,还有HP,tp甚至物理攻击物理防御等等,目标还可能有user,这段实在是写不下去了,特来求解,希望能用科学的方法来处理。另外还有个问题,怎么定义可用可不用的参数?即多重判断,如self.mp==XX&&self.hp==XX如此这类。
作者: VIPArcher    时间: 2015-5-17 14:23
本帖最后由 VIPArcher 于 2015-5-17 14:29 编辑

问题看不懂,脚本看不懂。只好回答个简单的小问题吧
另外还有个问题,怎么定义可用可不用的参数?
  1. def miao_eval(default ='$m5script=0')
  2.    eval (default.to_s)
  3. end
复制代码
像这样的就是定义默认参数,调用该方法时可以不传入default参数 ,或者传入参数。
可以直接调用 miao  或者miao(‘$m5script=nil’)
作者: taroxd    时间: 2015-5-17 14:46
本帖最后由 taroxd 于 2015-5-17 14:47 编辑
特来求解,希望能用科学的方法来处理

送你四个字:面向对象

学学默认的战斗系统,尤其是 Game_Action 这块





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