赞 | 13 |
VIP | 27 |
好人卡 | 24 |
积分 | 6 |
经验 | 58769 |
最后登录 | 2017-11-28 |
在线时间 | 795 小时 |
Lv2.观梦者 无节操
- 梦石
- 0
- 星屑
- 607
- 在线时间
- 795 小时
- 注册时间
- 2009-2-6
- 帖子
- 3939
|
路过旧时光 发表于 2014-6-5 00:34
但是。。。我还是不知道我应该搜索什么、。。。。我是小白
[mw_shl_code=ruby,true]
def start_phase5
……
if actor.level > last_level
@status_window.level_up(i)
end
……
end
[/mw_shl_code]
所以这段是在start_phase5里面的,start_phase5就是一个方法名。全局搜索他,看看有没有被alias或是重新def
alias是创建别名,通常追加脚本时会这样使用
[mw_shl_code=ruby,true]alias old_start_phase5 start_phase5[/mw_shl_code]
这样就为原来的方法设置了一个别名,可以在之后进行调用。而因为原方法名在这里会使用到,因此搜索start_phase5能够搜索到这里
然后就可以对原方法进行def的重新定义
[mw_shl_code=ruby,true]
def start_phase5
old_start_phase5
……
end
[/mw_shl_code]
这样就完成了在原方法内容不变的情况下追加一部分内容的操作。以这种方式进行改写时,搜索level_up之类的方法内的关键词的时候可能无法搜索到,因此要搜索方法名。
也有不alias直接def的方式,这样会直接重写原方法,通常是在方法内部增加不影响原本功能的语句时使用的。这时不管是方法名还是内部的一些关键词都可以直接搜索到。
不过如果使用的脚本整个重新整理了XP的战斗回合流程导致方法名完全不一样了,你可能只有直接搜索level_up之类的关键词了。
|
评分
-
查看全部评分
|