|
名称:castersystem
版本:13.1
作者:vexorian(http://wc3campaigns.net/vexorian)
[ 本帖最后由 晨星一闪 于 2006-3-29 17:15 编辑 ]
---------------------------------------YD的分割线--------------------------------------
对不起 castersystem没找到 因此发个差不多的Dummy System上来
这个系统是Lars写的,说明如下
Dummy System实际上就是一个方便的取用隐藏施法者的系统,避免不停的创建新施法者导致系统负担过重,不叫Caster System一个是因为Jass中Caster一般被当作当前施法者,名字上容易混淆,另一个原因是已经有人叫Caster System了。
Caster System功能很多,但是我在自己的地图中不喜欢用,主要是太庞大太复杂了,一个Caster System就比我本来的地图大了,而且控制起来也有诸多不顺手的地方,于是我从Original 3C到现在正在做的Teneras Stand都用得是自己的Dummy System,现在这个版本是在Teneras Stand中改进过的。
主要功能,就三个函数:
GetDummy(player,x,y,duration) :为玩家在制定地点提供一个dummy,可以指定持续时间duration,则Dummy System会在持续时间过后自动释放这个Dummy,时间能够非常精确,如果这个写0,那么表示利用RealeaseDummy函数手动释放。
DummyAddAbility( unit, abid, ablv): 为这个Dummy添加一个技能,大家注意,添加技能后不用再去删除,释放Dummy的时候会自动释放。
ReleaseDummy(unit ,delay): 在delay一段时间后释放这个Dummy,如果填0则立即释放。
优点:
1. 作为一个Dummy Pool完全简单够用
2. GetDummy和ReleaseDummy函数都不会阻塞当前线程,这是一个很大的优点,具体下面会说。
2. 使用起来非常方便,比Caster System方便多了,比如我需要一个Dummy,1秒钟后释放,
那么GetDummy(玩家1,x坐标,y坐标,1秒钟),这样就行了,不需要其它任何语句,如果需要
添加一个技能,也是DummyAddAbility(Dummy1,风暴之槌,等级3),就行了,不用管删除了。
这个系统总共才100行代码,只需要一个变量:整数数组 DummyData。
附带了一个利用本系统的Frost Nova的演示,见附件,注意这个Frost Nova可以同时释放多个的。 |
|