查看: 2357|回复: 8

[已经解决] 请问如何在alias之后调用内部临时变量

[复制链接]
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2018-7-7 10:48:51 | 显示全部楼层 |阅读模式

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

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

×
一些在方法内建立的临时变量在方法被改名之后无法被改名后的方法调用,例如make_damage_value里的value这个变量,我将make_damage_value改名了之后无法在改名之后获得它,返回未创建报错,请问有无解决办法?

class Game_Battler < Game_BattlerBase
  alias make_damage_value2 make_damage_value
  def make_damage_value(user, item)
     make_damage_value2(user, item)
     p value
  end
end
梦石
0
星屑
775
在线时间
92 小时
注册时间
2018-2-5
回帖
66
发表于 2018-7-7 12:21:26 | 显示全部楼层
本帖最后由 suixinsua 于 2018-7-7 12:30 编辑

看错了!嘿嘿!!
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2018-7-7 13:13:40 | 显示全部楼层
本帖最后由 cinderelmini 于 2018-7-7 13:18 编辑

呃……之前记错内容了,如果看到了之前的回复请无视
这个方法在最后是将value赋值进result里了,于是alias的话,操作value也不会改变result。
这种情况更建议自己重定义make_damage_value这个方法,
保留原内容的情况下自己在最后“result.make_damage”之前对应的地方操作value。

点评

而有其他更进一步的处理伤害的需求的话,就只能在这个方法的对应位置里插入对应代码处理了。  发表于 2018-7-7 17:08
因为默认这个方法基本上已经封装好了,只留了各种技能或者物品的伤害公式可以自定义,一般的需求只能在伤害公式里自己处理。  发表于 2018-7-7 17:07
难怪看别人的脚本涉及伤害的都少有去改make_damage_value,原来是一改就的重命名啊……  发表于 2018-7-7 13:38
啊…测试了下,确实有问题  发表于 2018-7-7 13:36
话说你之前的回复不是可以正常用吗?哪里有问题?  发表于 2018-7-7 13:29

评分

参与人数 1赞 +1 收起 理由
jianyulei + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
775
在线时间
92 小时
注册时间
2018-2-5
回帖
66
发表于 2018-7-7 13:15:24 | 显示全部楼层
刚刚去看了一下alias
是不是,先执行的别名,而别名里执行内容只是p value
就像在原来的
def make_damage_value(user, item)

p value  这里先执行的
然后才获取的value的变量
end
脚本也不太懂!!众在参与!我也不知道理解的对不对!!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部