về cơ bản thì ko leak, nhưng Tom từng nghe: khi một unit được tạo ra, nó chiếm một chút bộ nhớ và không thể lấy lại được, nghĩa là cho dù remove unit này thì cũng không thể lấy lại được bộ nhớ kia. (tuy nhiên, ko remove thì leak nhiều hơn)
và phần lớn leak kiểu này là do dummy
nếu map trên mà bỏ (disable) trigger respawn và trigger tạo dummy cast phép thì không thấy bộ nhơ tăng nữa (về sau còn giảm)
----
giải pháp cho vấn đề này là dùng một system nào đó "tái sử dụng" dummy, ví dụ:
xecast
ở dưới Tom đã gửi kèm map trên với xecast (có chút sửa đổi, phần global), dùng xecast sẽ giải quyết được vấn đề leak do create dummy.
còn leak do respawn thì phải chịu thôi...
Mã:
Cuong loi chan dia
Events
Game - GDD_Event becomes Equal to 0.00
Conditions
(GDD_DamagedUnit has buff Poison (Stacking)) Equal to True
Actions
-------- khai báo biến xe là một "xecast" object --------
Custom script: local xecast xe
Unit - Remove Poison (Stacking) buff from GDD_DamagedUnit
Set Temp_Point = (Position of GDD_DamagedUnit)
-------- tạo xecast object --------
[COLOR="Blue"]Custom script: set xe = xecast.createBasicA( 'A001', OID_chainlightning, GetOwningPlayer( udg_GDD_DamageSource) )[/COLOR]
-------- ----- --------
-------- # --------
[COLOR="Red"]Custom script: set xe = xecast.createA()
Custom script: set xe.orderstring = "chainlightning"
Custom script: set xe.abilityid = 'A001'
Custom script: set xe.owningplayer=GetOwningPlayer( udg_GDD_DamageSource)[/COLOR]
-------- # --------
-------- ----- --------
-------- đặt vị trí cho dummy --------
Custom script: call xe.setSourceLoc( udg_Temp_Point, 1000. )
-------- cast vào target --------
Custom script: call xe.castOnTarget( udg_GDD_DamagedUnit )
Set Temp_Int = (Level of Arrow for GDD_DamageSource)
Unit - Cause GDD_DamageSource to damage GDD_DamagedUnit, dealing ((Real(Temp_Int)) x 100.00) damage of attack type Normal and damage type Normal
Custom script: call RemoveLocation(udg_Temp_Point)
dòng xanh là "viết nhanh", nếu dùng
OID (library OID đã có trong map)
nếu không "viết nhanh" thì thay dòng xanh bằng 4 dòng đỏ, trong đó thì:
----
p.s: dummy unit nên có instant cast (Art - Animation - Cast Point = 0.000 )