Project1
标题:
免alias完美重写默认脚本的update
[打印本页]
作者:
晴兰
时间:
2013-1-20 20:12
提示:
作者被禁止或删除 内容自动屏蔽
作者:
1733450036
时间:
2013-1-21 11:46
先沙发,表示看不懂啊
作者:
pigsss
时间:
2013-1-21 12:09
好东西0.0
其实我觉得alias的时候起名不应该太简单
作者:
怪蜀黍
时间:
2013-1-21 12:25
所以我写脚本都是重新写定义而不用alias
作者:
devilg
时间:
2013-1-21 12:42
本帖最后由 devilg 于 2013-1-21 12:44 编辑
alias nf_pf_game_character_initialize initialize 名称都是很复杂……
你不说我还不知道F12是从新call main,程序果断崩溃。
作者:
satgo1546
时间:
2013-1-21 14:04
简洁的方法
我每次写脚本(在自己的游戏工程/C=πd任务中)都是从Window_Base里面啃C啃V的……
【我F12 guard根本没用过= =
作者:
忧雪の伤
时间:
2013-1-22 19:42
UI> 這種方法有局限性。必須原方法用到了 super 。(實際上以前就知道
作者:
yangff
时间:
2013-1-22 20:33
unless (MyWindow_Message)
MyWindow_Message = Window_Message
class Window_Message < MyWindow_Message
#...
end
end
这是合法的吗?
作者:
zhangbanxian
时间:
2013-1-23 13:20
本帖最后由 zhangbanxian 于 2013-1-23 23:15 编辑
alias old_update update unless defined? old_update
复制代码
- -b其实,这个不是防f12的,只是防止脚本重名,或者哪个2b把这脚本插了两遍的措施...好吧,rgss预定义类确实不会被重定义,以前完全没注意到这玩意来着,不过一般脚本还是没啥影响的,况且va之后也好歹算是解决了- -b
话说,这个alias法还是eb官方推荐的写法来着,也算是脚本规范吧,个人觉得没啥太大问题(重名的几率还是蛮小的吧)...
作者:
896409879
时间:
2013-1-25 07:51
我不知道是否讲的是我想得,所以理解错误请兰触多多包含
——————————————————————————————————————————
据Yanfly大神所说,貌似VX打开Debug的时候会读取所有编辑器里面的脚本。但是神马Bitmap之类的不会读取。之后XXXXXX啊什么的就有可能出现堆栈过深的错误。
所以alias的时候需要
alias new_name old_name unless $@
复制代码
不知道是不是跟兰触所述的效果一样呢。。。。
但是据Yanfly大神交代,VA Debug时已经不会出现这种错误了。。。因为已经全部读取了一遍了。。。。
作者:
ky52879
时间:
2014-1-16 13:48
貌似module这种方法只能用于父类中存在super的方法,如果子类中没有这个方法的话,那么module无效。。。
作者:
ky52879
时间:
2014-1-16 15:39
ky52879 发表于 2014-1-16 13:48
貌似module这种方法只能用于父类中存在super的方法,如果子类中没有这个方法的话,那么module无效。。。 ...
举个简单的例子:
module A
def abc
p "A.abc"
super
end
end
class ABC
include A
def abc
p "ABC.abc"
end
end
ABC.new.abc
那么显示的只有 "ABC.abc",这个问题。。。
作者:
晴兰
时间:
2014-1-16 15:42
提示:
作者被禁止或删除 内容自动屏蔽
作者:
DeathKing
时间:
2014-1-16 22:51
但是我们很多时候都会遇到这样的尴尬:由于old_method完成了某些变量的初始化(或者其它类似的、重要的内容),我们不得不在old_method之后添加我们的内容。这个时候,include一个模块进来似乎无法解决这种尴尬。
我觉得alias最大的问题不在于名字,而在于这种Hooking的机制(或者说Patching)应该由语言本身提供,而非我们手动的去曲线救国。
作者:
晴兰
时间:
2014-1-16 23:38
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1