铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2181|回复: 6

【DIY补丁共存建议】drawname函数与判断函数调用

[复制链接]
发表于 2011-9-30 21:47 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 kutree 于 2011-9-30 21:47 编辑

论坛中很多朋友的DIY作品都已经涉及到了战斗特效的制作,可谓是迈向了一个新的时代。
这个当然要归功于一些具有创新精神的大大们发掘出了drawname这个函数的潜力。
虽然说这种判断时序的方式略显低效,但是在如今的环境背景下还是比较好的解决方案。

这些作品的一个共同之处就是drawname函数的重构,也就是在这个函数中添加判断代码,以此来断定当前行动人物,继而触发特效。
不过问题就在这里,大家都重构了自己的drawname,分开来使用当然OK,但是若要几个DIY补丁共存的话就会有大大的问题了,那就是仅仅有一个补丁会生效,也就是最后一个重构的那个。
虽然说我们可以进行一些修改以期让他们共存,但是工程还是比较大的,尤其是对于一些不太理解源码的朋友来说。而且现在也有一些处在加密阶段的半开放DIY补丁,导致手工的移植也成为不可能。

所以为解决DIY补丁共存这个问题,不妨每一个DIY补丁制作者换一种方式对drawname进行重构。
我们已经知道了drawname的源码,寥寥几行而已。
我们在添加人物特效的时候为何不将判断的步骤转交给另一个函数呢?

比如郭襄补丁:

  1. if WAR.Person[WAR.CurID]["人物编号"] == 92 then
复制代码
这条判断语句之后便是人物特效的具体算法过程了。
那么我的建议就是:放弃在drawname函数中编写具体算法,转而调用某个函数来处理

那修改之后的版本就是:
  1. if WAR.Person[WAR.CurID]["人物编号"] == 92 then
  2.     Person92();
  3. end
复制代码
其中,Person92这个函数就包含了原本drawname中的新增部分。
如果要添加其他人物的特效,比如萧中慧,那么仅仅需要加上一层elseif用以调用Person77()这个函数就好了!

经过如此的修改,我们在处理DIY补丁共存问题时,仅仅需要添加寥寥几行代码就搞定了。补丁的作者也只需要公布一下人物的代号以及需要调用的函数名就可以了。如果涉及加密,那么也是那个判断函数被加密,drawname函数仍旧可以被大家作相应的修改以达到DIY补丁共存的目的!

鉴于现在论坛的各种补丁层出不穷,为满足广大玩家希望充实后宫或基友的迫切愿望,希望这个建议能够得到大家的认同。
各个作者们也可以藉此增加彼此的联系,消除不必要的矛盾,让苍炎的DIY环境更有利于发展。

小小建议,希望各位大大多多考虑。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-9-30 22:51 | 显示全部楼层
本帖最后由 StarShine 于 2011-10-2 14:06 编辑

不错的建议。不过今天制作了很久的剧情感到好累。

接下来有空的时候会先添加测试一下。如果确定没有bug等现象,以后的版本就采用~

点评

这也算是个大家合作才能有效果的建议吧,希望更多人能响应。另外我也很期待Star大的新补丁!  发表于 2011-9-30 22:58
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-1 01:27 | 显示全部楼层
回复 kutree 的帖子

這建議很好也很重要

當S大开放的資源越多, 各补丁的不兼容程度就更大, 到時要把各补丁溶合一起就更難

点评

希望更多的人能看到吧  发表于 2011-10-1 10:03
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-1 17:20 | 显示全部楼层
本帖最后由 brolycjw 于 2011-10-1 17:26 编辑

我也来支持,下个版本的侠客补丁就用这个。建议WAR.Person[WAR.CurID]["人物编号"] 就用pid比较简单。

点评

还真期待大家的补丁可以兼容的时刻。  发表于 2011-10-2 14:37
一向使用pid的路过~~  发表于 2011-10-2 14:01
很高兴这个建议能够被支持,也同时非常期待新的作品!  发表于 2011-10-1 23:18
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-24 12:23 | 显示全部楼层
我最近也是想到这个闭包的办法,原来早就有人想到了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-24 13:47 | 显示全部楼层
很想说同意 但是发现我根本看不懂你在说什么

点评

增加新函数 不是也要重新定义的嘛? 还有这个DRAWNAME 到底是什么玩意?  发表于 2011-12-24 14:14
我之前的代码写成一堆,别人叫我增加功能时,我发现代码全部废了。但是现在斗转2.0想怎么改都行,之前的功能可以随时调用,也可以不用,多方便啊!  发表于 2011-12-24 14:08
呵呵,意思就是说多建立些新函数,方便调用  发表于 2011-12-24 14:06
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-12-24 14:13 | 显示全部楼层
回复 铁血垃圾 的帖子

还是不明白 增加功能不就再多写几行代码不就可以了嘛? 为什么会废掉? 是有什么诀窍嘛?

点评

总之,这种闭包的思想有点像java里的面向对象思想,肯定是有好处的  发表于 2011-12-24 14:34
结构变化起来很困难啊  发表于 2011-12-24 14:32
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-23 19:39

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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