作者vinxu (咕噜咕噜魔法阵)
看板WarCraft
标题[WE ]请教一下,我这样写对改善记忆体漏失有帮助吗?
时间Fri Mar 7 14:43:42 2008
之前看许多人的写法,一般都是在点或群组使用之後再删点。
我改成在每次使用点或群组之前删点或群组,这样写对改善记忆体漏失有帮助吗?
自订脚本:call RemoveLocation(udg_Temp_Point)
设定 Temp_Point = (Temp_Unit 之位置)
自订脚本:call DestroyGroup(udg_Temp_group)
设定 Temp_group = (半径 600.00 於Temp_Point 内之部队,比对条件:(比对部队为存
活) 等於 真)
==============================================
另外之前我看到新增event也会增加记忆体负担,只能将整个触发砍了才会删掉事件。
那麽我这样写可以改善吗?
--------//使用触发阵列变数来增加只执行一次的事件。
设定 TempTigger[T_ID] = TempTiggerS
触发 - 於(TempTigger[T_ID])增加事件:(部队 - (最後创造的部队) 死亡)
设定 T_ID = T_ID + 1
-------//并在该触发的开头加上call DestroyTrigger(GetTriggeringTrigger())
触发 TempTiggerS
事件
条件
动作
自订脚本:call DestroyTrigger(GetTriggeringTrigger())
---------------------
这样写的话有用吗? 另外,这样的话,在该触发被执行後,因为
call DestroyTrigger(GetTriggeringTrigger())而被删掉的
触发变数TempTigger[T_ID]那个值是变为空(null)吗?有没有办法判断?
另外一个问题,有没有办法取得触发变数阵列在执行时的索引值?
举例来说,我希望触发TempTigger[5]在执行的时候能抓到它的索引值也就是5,
然後指定给TempTiggerEmpty[5] = true
这样就可以用回圈来跑看那一个索引位置已经被执行过也被移除空了出来以便重新指定
新的触发与事件。
另外,解答这个问题在解决不同的玩家在执行事件-游戏时间经过或事件-计时器归零
时抓取玩家编号也有作用。
例如:玩家3的英雄死亡後,开启记时器3的倒数,
并增加事件-记时器3时间归零 到 触发 玩家复活[3]
这样就可以玩家复活那个触发中根据抓到的阵列索引值来复活相应玩家的英雄了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.127.92.170
1F:→ thisgo:我还以为我走到Programming版了XDD 03/07 14:51
2F:推 blackjack0s:这样就好像没吃饭前先清掉下的饭粒...= = 03/07 15:13
3F:→ vinxu:其实我比较想问的是後面那个触法阵列的问题。 03/07 16:30
4F:推 HypocritePro:计时器我记得设阵列似乎无效耶 用一般的触发编辑的话 03/07 17:06
5F:推 readper:应该有用吧 但是一定要设定正确的大小 因为需要初始化 03/07 17:13
6F:推 blackjack0s:= =? 印象中无论设多少都是一样大小 (数字忘了) 03/07 17:15
7F:推 HypocritePro:请问到底该怎麽让计时器成功的设阵列? 03/07 21:40
8F:→ HypocritePro:能用的话写很多触发可以省不少力气 教我~~ 03/07 21:40
9F:推 readper:我都用jass在写东西的 -.- 帮不上忙 03/07 21:58
Ctrl+B,新建一个变数Timer,并设定为计时器、阵列打勾、大小设定为8(玩家数量)
之後要用的话,就用
开始计时器Timer[PlayerID],单次,N秒。
事件增加-触发XXX,增加事件计时器Timer[PlayerID]归零
,这样应该就可以了。
问题就在於那个触发XXX在事件发生时,怎样才能抓到PlayerID,也就是当时发生事件
计时器归零的阵列索引。这个还是没人解答呀 囧
※ 编辑: vinxu 来自: 59.127.92.170 (03/07 22:13)
10F:推 gonzdevour:抓不到。一定要timer就乖乖写八条。 03/07 23:10
11F:→ gonzdevour:取巧可以用回血-1的单位。 03/07 23:17
12F:推 HypocritePro:感谢g大 vinxu的方法很正统我也是这样写的 但我发现 03/08 07:36
13F:→ HypocritePro:Timer阵列似乎抓不到 如果有抓得到的地图样本请一定 03/08 07:38
14F:→ HypocritePro:要给我看看 03/08 07:39
15F:→ vinxu:找到解决办法了,看#17qldDIc那篇吧。 03/09 05:02