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 编辑
  1. 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的时候需要
  1. 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