设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1899|回复: 8
打印 上一主题 下一主题

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

跳转到指定楼层
1
发表于 2018-7-7 10:48:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
一些在方法内建立的临时变量在方法被改名之后无法被改名后的方法调用,例如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

Lv2.观梦者

梦石
0
星屑
775
在线时间
92 小时
注册时间
2018-2-5
帖子
70
2
发表于 2018-7-7 12:21:26 | 只看该作者
本帖最后由 suixinsua 于 2018-7-7 12:30 编辑

看错了!嘿嘿!!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

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

3
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

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

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 06:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表