查看: 1630|回复: 3

[已经解决] 关于脚本的一些基础问题

  [复制链接]
头像被屏蔽
梦石
0
星屑
50
在线时间
39 小时
注册时间
2011-8-4
回帖
48
发表于 2011-8-17 18:57:17 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

宛若

梦石
0
星屑
1888
在线时间
529 小时
注册时间
2007-8-19
回帖
1466

极短24参与开拓者

发表于 2011-8-17 19:21:22 | 显示全部楼层
[url=http://rpg.blue/thread-219730-1-1.html]http://unhero.sinaapp.com/wi.php[/url]
[color=Red]如你所见这是个死坑,没错这就是打我的脸用的[/color]
回复

使用道具 举报

梦石
0
星屑
242
在线时间
830 小时
注册时间
2010-6-22
回帖
109

开拓者

发表于 2011-8-17 19:26:10 | 显示全部楼层
仇恨系統並非只完全抄了一次,
在這之中skill_effect和attack_effect都加上了仇恨值得計算:
caculate_hate(user, skill, self.damage)
在命中的情况下時則增加仇恨值,
在這種必須確定目標的情況,我們將會完全抄一次,
在關鍵的地方寫上我們需要的效果。

而透視技能則是將skill_effect使用alias把名稱替換成sailcat_skill_effect skill_effect而已,
實際的用法,常常是用在增加原本方法裡沒有的計算時用,
像透視技能,不就新增讀取敵人資料是不?
因此不必在重抄一次。

点评

看不懂。我觉得应该把它和新代码插入的位置结合起来。  发表于 2011-8-17 19:30
回复

使用道具 举报

Fuzzy Ginkgo

梦石
0
星屑
61105
在线时间
1933 小时
注册时间
2010-6-26
回帖
1535

烫烫烫开拓者

发表于 2011-8-17 19:29:37 | 显示全部楼层
直接重复定义一个函数会导致他被覆盖掉。
解决方法有两种。
  • 把原来的函数抄过来。如仇恨系统,这样的好处是可以在原函数的任意位置添加新的代码,但是会导致使用第二种方法或自己在原定义修改的失效。
  • 使用 alias,如透视技能。参考 2 楼发的 http://www.diyrpg.net/thread-3144-1-1.html,你可以在透视技能脚本中类似找到 alias old_apple apple 这样的代码,并在后面类似 def apple 中看到 old_apple 这样的调用。使用这种方法的好处是兼容性强,但是新的代码只能插入在原来定义的头部或尾部。


是说,你那两个脚本如果要同时使用,你就得把仇恨系统放在透视技能前面。如果反过来,恐怕你需要按照透视技能对 skill_effect 的修改来修改仇恨系统中的 skill_effect。

点评

太谢谢了~用别的语言的时候重复定义都直接通不过编译,还是RUBY好……  发表于 2011-8-17 20:17
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部