Lỡ 2 hay 20,200 hero có counter helix thì sao,trong lúc 1 hero counter thì trong 0.6s sau đó ko hero nào counter được à?
ủa ani attack là nó attack kiểu nào vậy ?mình đang muốn ani đâm kiếm của blademaseter.dù sao cũng thanks bạn nhìu
Muốn tạo skill Multicast cho bất kì skill nào bạn cần : +1 dummy unit<model _none.mdl> +1 unit ability giống y hệt ability của hero,khác mỗi cái nó là ability của unit thôi. Trong dota thì multicast hình như là base trên chiêu engineer upgrade ,có bao nhiều lv thì phải tạo bấy nhiêu abilities tương ứng<hơi mệt> Ví dụ như trong skill này chẳng hạn,học 1 skill MC thì có 30% khả năng cast 2 lần. a Mã: a Events Unit - A unit Starts the effect of an ability Conditions (Level of MultiCast for (Triggering unit)) Greater than or equal to 1 Actions Set TempLv = (Level of MultiCast for (Triggering unit)) Set TempLoc = (Position of (Triggering unit)) Set TempUnit = (Target unit of ability being cast) If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions TempLv Equal to 1//MC có nhiêu lv thì có bây nhiêu cái iF này và có bây nhiêu skill đi kèm. Then - Actions If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions (Random integer number between 1 and 100) Less than or equal to 30//30% cơ hội multicast. Then - Actions If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions (Ability being cast) Equal to Firebolt (Warlock) Then - Actions For each (Integer A) from 1 to (TempLv + 1), do (Actions) Loop - Actions Unit - Create 1 Dummy Unit for (Owner of (Triggering unit)) at TempLoc facing Default building facing degrees Unit - Add a 5.00 second Generic expiration timer to (Last created unit) Unit - Add Firebolt (Neutral Hostile) to (Last created unit) Unit - Set level of Firebolt (Neutral Hostile) for (Last created unit) to (Level of Firebolt (Warlock) for (Triggering unit)) Unit - Order (Last created unit) to Neutral - Firebolt TempUnit Else - Actions Else - Actions Else - Actions Custom script: call RemoveLocation(udg_TempLoc)
Uhm...vậy bây giờ thế này : Mình có 1 chiêu Nova như sau : lvl1 - 100% cast 1 lần Nova 100 dam lvl2 - 50% cast 1 lần Nova, 50% cast 2 lần Nova lvl3 - 50% cast 2 lần Nova, 50% cast 3 lần Nova lvl4 - 50% cast 3 lần Nova, 50% cast 4 lần Nova (Mỗi lần Nova cách nhau 0.01s, khi xảy ra 50% ở vế sau thì có dòng chữ Super Nova!! màu xanh bay lên) thì làm thế nào? ::)
@A.G cái lệnh sau cùng thì mình ê là bị lỗi cái này If (((Triggering unit) is alive) Equal to True) then do (Animation - Reset (Triggering unit)'s animation) else do (Do nothing) bạn xài từ Triggering unit làm giá trị ví dụ là Triggering_unit[-max number of player = Triggering unit] đặt giá trị trước cho nó chắc hơn chứ ví dụ mình xài Triggering unit đễ lỗi lắm, Triggering unit chỉ xài cho lợi ích không có wait nếu có wait sẽ gây ra lỗi nghiêm trọng
spell này về effect và về bug thì dota hok bằng đc ngại cóp code, vô map demo xem nha View attachment Omnislash.rar
Góp ý, tại sao không cải tiến mấy skill của Counter Helix cho nó thành là chỉ Triggering khi Takes Damage ? Kiểu Is Attacked thấy kiểu gì ý. Btw, hình như add hero skills cho Unit không phải Hero được đúng không ạ ?
Đây là skill Toss của tiny trong dota mà em kiếm được từ map demo: Mã: function Trig_Toss_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A004' endfunction function Toss_Unit_Group takes nothing returns boolean if ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_ANCIENT) == true ) then return false endif if IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) then return false elseif IsUnitType(GetFilterUnit(), UNIT_TYPE_FLYING) then return false elseif GetFilterUnit() == GetSpellAbilityUnit() then return false elseif IsUnitDeadBJ(GetFilterUnit()) then return false endif return true endfunction function Toss_Destroy_Trees takes nothing returns nothing call KillDestructable( GetEnumDestructable() ) endfunction function TossFX takes nothing returns nothing local effect f= bj_lastCreatedEffect call TriggerSleepAction(0.4) call DestroyEffect(f) set f=null endfunction function Toss_Movement takes nothing returns nothing local timer t=GetExpiredTimer() local unit u=GetHandleUnit(t,"t") local real b=GetHandleReal(t,"r") local real n=GetHandleReal(t,"n") local real d=GetHandleReal(t,"d") local location l=GetHandleLocation(t,"l") local real x=-d+(d*(b/50)) local location m=PolarProjectionBJ(l,x,n) local real y=((b-25)*(b-25)) call SetUnitPositionLoc(u,m) call SetUnitFlyHeight( u, ( 775-y ) , 10000.00 ) if GetRandomInt(1,4)==2 then call AddSpecialEffectTargetUnitBJ( "origin", u, "Abilities\\Spells\\Undead\\Cripple\\CrippleTarget.mdl" ) call TriggerExecute(gg_trg_DestroyFX) endif set b=b+1 call SetHandleReal(t,"r",b) set t=null set u=null set b=0 set n=0 set d=0 set l=null set x=0 call RemoveLocation(m) set m=null set y=0 endfunction function Trig_Toss_Actions takes nothing returns nothing local group g=CreateGroup() local unit c=GetTriggerUnit() local unit a=null local location l=GetSpellTargetLoc() local timer t=null local real b=1 local real d=0 local real n=0 call GroupEnumUnitsInRange(g,GetUnitX(c),GetUnitY(c),275,Condition(function Toss_Unit_Group)) set a=GroupPickRandomUnit(g) call GroupClear(g) if a!=null then call SetUnitAnimationByIndex(c,4) call PauseUnitBJ( true, a ) call SetUnitPathing( a, false ) call SetUnitFacingToFaceLocTimed( a, l, 0 ) call UnitAddAbilityBJ( 'A002', a ) call UnitRemoveAbilityBJ( 'A002', a ) set t=CreateTimer() call SetHandleHandle(t,"t",a) call SetHandleReal(t,"r",b) set d = DistanceBetweenPoints(GetUnitLoc(c), l) set n= AngleBetweenPoints(GetUnitLoc(c), l) call SetHandleReal(t,"d",d) call SetHandleReal(t,"n",n) call SetHandleHandle(t,"l",l) call TimerStart(t,0.02,true,function Toss_Movement) call TriggerSleepAction(1.0) call RemoveLocation(l) set l=GetHandleLocation(t,"l") call RemoveLocation(l) call FlushHandleLocals(t) call PauseTimer(t) call DestroyTimer(t) call SetUnitFlyHeightBJ( a, GetUnitDefaultFlyHeight(a), 10000.00 ) call PauseUnitBJ( false, a ) call SetUnitPathing( a, true ) set l=GetUnitLoc(a) call DestroyEffect(AddSpellEffectByIdLoc('A0BZ', EFFECT_TYPE_TARGET, l)) call TerrainDeformationRippleBJ( 0.2, true, l, 1.00, 300.00, 96.00, 1, 64.00 ) call UnitDamageTargetBJ( c, a, 38.00 * I2R(GetUnitAbilityLevelSwapped('A004', c)) , ATTACK_TYPE_NORMAL, DAMAGE_TYPE_DEMOLITION ) set g = GetUnitsInRangeOfLocAll(300.00, l) loop set a = FirstOfGroup(g) exitwhen a == null call GroupRemoveUnit(g,a) call UnitDamageTargetBJ( c, a, 75.00 * I2R(GetUnitAbilityLevelSwapped('A004', c)) , ATTACK_TYPE_NORMAL, DAMAGE_TYPE_DEMOLITION ) endloop call EnumDestructablesInCircleBJ( 300,l , function Toss_Destroy_Trees ) call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl",GetLocationX(l),GetLocationY(l))) endif call DestroyGroup(g) set g=null set c=null set a=null call RemoveLocation(l) set l=null set t=null set b=0 set n=0 set d=0 endfunction //=========================================================================== function InitTrig_Toss takes nothing returns nothing set gg_trg_Toss = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Toss, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Toss, Condition( function Trig_Toss_Conditions ) ) call TriggerAddAction( gg_trg_Toss, function Trig_Toss_Actions ) endfunction Nhưng nó lại sử dụng ngôn ngữ Jass. Em chịu. Vậy liệu có thể dịch nó sang ngôn ngữ trong WE không? Nếu có thể thì dịch giúp em nha. Thank trước.:P
Ngôn ngữ WE là ngôn ngữ ???? Muốn chuyển sang trigger thì có spell Toss của anh Tom làm nè View attachment Toss.rar
pastive = active a` ? cái này hơi không hiểu aura đã là passtive lâu rùi bạn định làm cho nó = active à ? thì xài 1 skils = bonus vào pick untis thôi còn việc pastive = active thì hơi khó 1 chút có thể làm dc.