查看: 1808|回复: 2

[已经过期] 关于一个方法的编写

[复制链接]
梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
回帖
668
发表于 2015-5-17 14:16:23 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 负零 于 2015-5-17 14:38 编辑

[pre lang="ruby"]if user.skills.include?($data_skills[450])
if rand(100)<100 && user.mp>=40
t_value=value
value += (user.atk+user.agi)*1.5  
p"├√长驱1触发(-1),累积伤害#{@t_value};附加伤害#{value-t_value}!"
self.mp-=1
else
p"├×长驱1#{bcf}"
value
end
end[/pre]
以上是具体实现的代码,以下是编写的方法
[pre lang="ruby"]   
  def skilleffect(target,skills_id,skills_rand,)
if target.skills.include?($data_skills[skills_id])
if rand(100)<skills_rand && self.mp>=40
t_value=value
value += (user.atk+user.agi)*1.5  
p"├√长驱1触发(-1),累积伤害#{@t_value};附加伤害#{value-t_value}!"
self.mp-=1
else
p"├×长驱1#{bcf}"
value
end
end
end[/pre]
从第二行的self.mp开始,写的时候觉得好像要传的参数过多了,因为条件判断不止有mp,还有HP,tp甚至物理攻击物理防御等等,目标还可能有user,这段实在是写不下去了,特来求解,希望能用科学的方法来处理。另外还有个问题,怎么定义可用可不用的参数?即多重判断,如self.mp==XX&&self.hp==XX如此这类。

点评

缩进在编辑器里是正常的,请见谅。  发表于 2015-5-17 14:17

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-5-17 14:23:43 | 显示全部楼层
本帖最后由 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’)

点评

之前少了方法名,刚已编辑,请再看看。另外,水平有限,能不能再直观点。感谢  发表于 2015-5-17 14:40

评分

参与人数 1星屑 +1 收起 理由
喵呜喵5 + 1 这都要黑窝

查看全部评分

回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-5-17 14:46:22 | 显示全部楼层
本帖最后由 taroxd 于 2015-5-17 14:47 编辑
特来求解,希望能用科学的方法来处理

送你四个字:面向对象

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

点评

“有个对象”造成了成吨的伤害……  发表于 2015-5-18 07:35

评分

参与人数 3星屑 +3 收起 理由
VIPArcher + 1 首先,你要有个对象~(
喵呜喵5 + 1 首先,你要有个对象~(
cinderelmini + 1 首先,你要有个对象~(

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部