Mình đâu có thấy đoạn code bạn dùng GetHeroStr,Agi,Int ???
m` dùng nhưng k đc nên xóa rùi, sau đó mới lên đây hỏi cách dùng
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Mình đâu có thấy đoạn code bạn dùng GetHeroStr,Agi,Int ???
m` dùng nhưng k đc nên xóa rùi, sau đó mới lên đây hỏi cách dùng
lỗi này ngộ quá @@ ai help với @@
theo trình tiếng anh tồi tàn của mình thì là lỗi của... StartLocation
View attachment 171518
để bt thì gây damage, thêm cái đoạn đó vào thì k gây damageMã:private function GetSpellDamage takes integer level returns real return I2R(level)*6.5*I2R(GetHeroInt([COLOR="#FF0000"]GetTriggerUnit()[/COLOR],true)) endfunction


để bt thì gây damage, thêm cái đoạn đó vào thì k gây damageMã:private function GetSpellDamage takes integer level returns real return I2R(level)*6.5*[COLOR="#FF0000"]I2R(GetHeroInt(GetTriggerUnit(),true))[/COLOR] endfunction
private function GetSpellDamage takes unit [COLOR="#FF0000"]caster[/COLOR] returns real
return I2R(GetUnitAbilityLevel([COLOR="#FF0000"]caster[/COLOR],SpellId)*6.5*I2R(GetHeroInt([COLOR="#FF0000"]caster[/COLOR],true))
endfunction
Hàm đó là một hàm khác mà bạn gọi ra để lấy giá trị real mà hàm đó trả lại,nếu hàm đó không nhận unit (cụ thể như ý của bạn là GetTriggerUnit() của một trigger khác) thì nó sẽ không biết TriggerUnit đó là ai để mà tính giá trị HeroInt cả. Giờ bạn phải edit hàm đó thành:
Mã:private function GetSpellDamage takes unit [COLOR="#FF0000"]caster[/COLOR] returns real return I2R(GetUnitAbilityLevel([COLOR="#FF0000"]caster[/COLOR],SpellId)*6.5*I2R(GetHeroInt([COLOR="#FF0000"]caster[/COLOR],true)) endfunction
Và ở hàm mà bạn gọi hàm đó bạn phải đặt unit caster đó vào,ví dụ cụ thể khi gọi thì call GetSpellDamage(caster)
private function GetSpellDamage takes unit caster returns real
return I2R(GetUnitAbilityLevel(caster, SpellId))*6.5 + I2R(GetHeroInt(caster, true))
endfunction

k đc lun bạn
Mã:private function GetSpellDamage takes unit caster returns real return I2R(GetUnitAbilityLevel(caster, SpellId))*6.5 + I2R(GetHeroInt(caster, true)) endfunction
m` để GetSpellDamage(caster) thì báo lỗi: Undeclared variable caster
___________________(.caster) thì báo lỗi: caster is not a member of spell
khai báo thêm: unit caster thì cả hai trường hợp đều save thành công k báo lỗi nhưng vào test thì k gây damage![]()
method Damage takes nothing returns nothing
local group g=NewGroup()
local unit u
set TempPlayer=GetOwningPlayer(.u)
call GroupEnumUnitsInArea(g,.x,.y,SpellAoe,Condition(function thistype.Check))
loop
set u=FirstOfGroup(g)
exitwhen u==null
call UnitDamageTarget(.u,u,GetSpellDamage([COLOR="#FF0000"].u[/COLOR]),true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_MAGIC,null)
call GroupRemoveUnit(g,u)
set u=null
endloop
call ReleaseGroup(g)
set TempPlayer=null
set g=null
set u=null
endmethod
đã hiểu, tks bác. bác hướng dẫn e cách làm effect hình rẽ quạt với đc kTrong Struct đó làm gì có biến .caster mà chỉ có biến .u,một unit nhận qua các hàm có thể có tên gọi khác nhau nhưng cùng là 1 unit nhé
Mã:method Damage takes nothing returns nothing local group g=NewGroup() local unit u set TempPlayer=GetOwningPlayer(.u) call GroupEnumUnitsInArea(g,.x,.y,SpellAoe,Condition(function thistype.Check)) loop set u=FirstOfGroup(g) exitwhen u==null call UnitDamageTarget(.u,u,GetSpellDamage([COLOR="#FF0000"].u[/COLOR]),true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_MAGIC,null) call GroupRemoveUnit(g,u) set u=null endloop call ReleaseGroup(g) set TempPlayer=null set g=null set u=null endmethod
thế I2R(level) cậu lấy đâu ra?
sao không takes nothing luôn để nó tự biết lấy luôn level, thế có tiện hơn ko
![]()
v
xem phần chữ đỏ trong quote![]()




Xong tạo 1 camera obj ngay height đó
Xem time con unit bay lên là bay nhiu rùi add time đó cho camera theo lun
Đó là cách lằng nhằng nhất mà mình biết 

Tình hình là em có tạo 1 spell xài dummy. Em có add action Add a 5.00 second Generic expiration timer cho dummy. Dummy thì có chết nhưng còn effect còn nguyên. Giờ tính sao đây mấy bác![]()