Tom_Kazansky
<b><font color="RoyalBlue"><font face="Lucida Cons
- 28/12/06
- 3,454
- 462
Cám ơn Tom..giả dụ trong trường hơpk này anh muốn kết thúc cái vòng lặp sau 1 giây thì làm thế nào, map kia kết' thúc khi DIST =445...
thì anh cho thêm 1 biến "đếm" vào struct thôi.
Mã:
private struct Data
unit caster
integer DIST
real ANG
real locX
real locY
integer tick = 10 // đây nè, 10 tick * 0.1 (s) = 1.0 s
//(0.1 là duration của timer)
static method create takes unit c, integer i, real r, real lx, real ly returns Data
local Data D = Data.allocate()
set D.caster = c
set D.DIST = i
set D.ANG = r
set D.locX = lx
set D.locY = ly
return D
endmethod
endstruct
Và trong func callback, anh kiểm tra biến đếm thay vì khoảng cách:
Mã:
if D.tick <= 0 then //if D.DIST == 425 then
call ReleaseGroup(g)
call D.destroy()
call ReleaseTimer(t)
endif
set D.tick = D.tick - 1 //giảm tick ::)
Về sau muốn tăng hay giảm thời gian thì cứ tăng giảm cái "tick" kia. Thật ra tăng giảm cái DIST cũng đc (tăng giảm 425), nhg em nghĩ cái này rõ hơn

EDIT: chết quên, phải giảm tick mỗi lần func callback chạy nữa



. mình đâu có hỏi làm sao để upgrade. cái đó bít ròy , mình hỏi là 1 upgrade cho fép nâng cấp chỉ khi mình đã kill con unit nào đó