|
测试了一些对象的Handle数值占位.
"Handle数值占位"这个词是生造词语.意思是该类型的对象在创建后所选择的handle值和前一个对象的Handle值差多少.
比如物品(item)对象占位是2位,在创建一个新的物品时,如果前面有一个闪电(lightning,占位1)的Handle值为200000,那么这个物品的handle值通常就为200002,然后如过紧接着又创建一个单位(unit,占位3),那么该单位的handle值通常就为200005。 这个东西和所谓“内存地址”可完全是2回事情哦,注意。
目前暂时测试了以下几个典型:
闪电效果:1
特效:2
单位:3
可破坏物:3
物品:2
对话框:1
其中闪电效果这个东西最是奇怪,它和其他对象完全不一样,其他对象的handle有一个最小值(1048685以上,),但是这个闪电效果的handle却是从1开始递增的。
比如,如果初始handle为1048685,然后按顺序创建以下几个对象:
闪电效果,特效,单位,可破坏,闪电效果,物品,对话框,闪电效果
那么他们对对应的handle将是
1,1048687,1048690,1048693,2,1048695,1048696,3
由此可见,闪电效果自顾自从1开始递增,而其他对象则合力从 1048685以上的某个数字开始递增.双方完全不相干.
lightning还有二个奇特的特性.
一个是如果lightning的创建地点对于本机玩家是不可见的话,它根本就不会被创建,所以闪电效果完全是非同步的.
另一个特别之处是,闪电效果和其他对象不同. 其他对象被释放后,其handle值是不可再被回收利用的,而闪电效果完全相反.
例如,最后创建的一个对象如果是一个单位,值为1048695,我们删除掉他,然后再创建一个物品,那么该物品仍然会在1048695的基础上再加2,变成1048697.
但是闪电效果却不一样,如果上一个闪电效果是7,我们将他删除,那么再创建一个闪电效果的值就还是7.另外,如果我们一共创建了8个闪电效果,分别值是1-8,然后我们将其中的3号删除,那么之后我们创建的下一个闪电效果的值就是3了,明显的,闪电效果会自动回收用过的handle值
暂时就这么多老,要停电老,明天再试试其他没有试过的对象
[ 本帖最后由 麦德三世B 于 2006-4-1 22:39 编辑 ] |
|