баг скилла
когда использую этот скилл то к секундам игрового времени добавляется сколько я создал этих даммиков и таймеров, потом после смерти даммиков и таймера отнимается и секунды становятся на свои места где косяк?
вот собственно код
» смотреть сюда
function stopcrowhousenka takes nothing returns nothing
local trigger trg = GetTriggeringTrigger()
local unit u = GetSpellAbilityUnit()
local code cot = null
if GetSpellAbilityId() == 'A04X' then
if IsUnitInGroup(u,udg_CrowHousenkaGroup) == true then
call GroupRemoveUnit(udg_CrowHousenkaGroup,u)
endif
set cot = function CountUnitsInGroupEnum22
set udg_bj_groupCountUnits22 = 0
call ForGroup(udg_CrowHousenkaGroup,cot)
if udg_bj_groupCountUnits22 == 0 then
call GroupClear(udg_CrowHousenkaGroup)
call DestroyGroup(udg_CrowHousenkaGroup)
set udg_CrowHousenkaGroup = null
set udg_CrowHousenkaGroup = CreateGroup()
endif
set cot = null
endif
set u = null
call DisableTrigger(trg)
call DestroyTrigger(trg)
set trg = null
endfunction
function crowfly takes nothing returns nothing
local timer t = GetExpiredTimer()
local real face = LoadReal(udg_Hash,GetHandleId(t),4)
local real real7 = LoadReal(udg_Hash,GetHandleId(t),5)
local real x = 0
local real y = 0
local unit u = null
local unit dummy = null
local effect e = null
local group g = null
local code cot = null
local boolexpr b = null
local player p = null
local unit n = null
local attacktype attack = null
local damagetype damage = null
local weapontype weapon = null
if real7 > 0 then
set dummy = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
set x = GetUnitX(dummy)
set y = GetUnitY(dummy)
set x = PolarProjectionX(x,20.00,face)
set y = PolarProjectionY(y,20.00,face)
call SetUnitX(dummy,x)
call SetUnitY(dummy,y)
set cot = function filterall
set b = Condition(cot)
set g = CreateGroup()
call GroupEnumUnitsInRange(g,x,y,100.00,b)
set n = FirstOfGroup(g)
set u = LoadUnitHandle(udg_Hash,GetHandleId(t),1)
set p = GetOwningPlayer(u)
if IsUnitEnemy(n,p) == true and n != null then
set attack = ATTACK_TYPE_NORMAL
set damage = DAMAGE_TYPE_DEATH
set weapon = WEAPON_TYPE_CLAW_HEAVY_SLICE
call UnitDamageTarget(u,n,GetUnitAbilityLevel(u,'A04X')*25,true,true,attack,damage,weapon)
set attack = null
set damage = null
set weapon = null
call KillUnit1(dummy,1.00)
set e = LoadEffectHandle(udg_Hash,GetHandleId(t),3)
call DestroyEffect(e)
set e = null
set dummy = null
set u = null
set p = null
set n = null
set cot = null
call DestroyBoolExpr(b)
set b = null
call GroupClear(g)
call DestroyGroup(g)
set g = null
call PauseTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t = null
endif
set u = null
set p = null
call GroupRemoveUnit(g,n)
set n = null
set cot = null
call DestroyBoolExpr(b)
set b = null
call GroupClear(g)
call DestroyGroup(g)
set g = null
set real7 = real7 - 20.00
call SaveReal(udg_Hash,GetHandleId(t),5,real7)
else
set e = LoadEffectHandle(udg_Hash,GetHandleId(t),3)
call DestroyEffect(e)
set e = null
set dummy = LoadUnitHandle(udg_Hash,GetHandleId(t),2)
call KillUnit1(dummy,1.00)
set dummy = null
call PauseTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t = null
endif
endfunction
function crowhousenkaspawn takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit u = LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real face = LoadReal(udg_Hash,GetHandleId(t),2)
local real x = LoadReal(udg_Hash,GetHandleId(t),3)
local real y = LoadReal(udg_Hash,GetHandleId(t),4)
local integer number = LoadInteger(udg_Hash,GetHandleId(t),5)
local integer i = LoadInteger(udg_Hash,GetHandleId(t),6)
local effect e = null
local timer t1 = null
local code cot = null
local player p = GetOwningPlayer(u)
local unit dummy = null
if IsUnitInGroup(u,udg_CrowHousenkaGroup) == true then
if i < number then
set e = AddSpecialEffect("Abilities\\Spells\\Undead\\CarrionSwarm\\CarrionSwarmDamage.mdl",x,y)
call DestroyEffect(e)
set e = null
set dummy = CreateUnit(p,'e00A',x,y,face)
set e = AddSpecialEffectTarget("Abilities\\Weapons\\AvengerMissile\\AvengerMissile.mdl",dummy,&quo​t;head")
set t1 = CreateTimer()
set cot = function crowfly
call TimerStart(t1,0.03,true,cot)
call SaveUnitHandle(udg_Hash,GetHandleId(t1),1,u)
call SaveUnitHandle(udg_Hash,GetHandleId(t1),2,dummy)
call SaveEffectHandle(udg_Hash,GetHandleId(t1),3,e)
set face = face - GetRandomReal(-20,20)
call SaveReal(udg_Hash,GetHandleId(t1),4,face)
call SaveReal(udg_Hash,GetHandleId(t1),5,830)
set dummy = null
set e = null
set cot = null
set t1 = null
else
call IssueImmediateOrder(u,"stop")
endif
else
set u = null
set p = null
call PauseTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t = null
endif
set u = null
set p = null
set t = null
endfunction
function Effecrowhousenka takes nothing returns nothing
local unit u = GetSpellAbilityUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local real x1 = GetSpellTargetX()
local real y1 = GetSpellTargetY()
local real face = AngleBetweenPointsXY(x,y,x1,y1)
local real x2 = PolarProjectionX(x,130.00,face)
local real y2 = PolarProjectionY(y,130.00,face)
local integer number = GetUnitAbilityLevel(u,'A04X')*5
local trigger trg = CreateTrigger()
local code cot = function stopcrowhousenka
local unitevent evenk = EVENT_UNIT_SPELL_ENDCAST 
local timer t = CreateTimer()
local code cot1 = function crowhousenkaspawn
local sound gg_snd_itgen = CreateSound( "war3mapImported\\itgen.mp3", false, false, false, 10, 10, "" )
    call SetSoundDuration( gg_snd_itgen, 2429 )
    call SetSoundChannel( gg_snd_itgen, 0 )
    call SetSoundVolume( gg_snd_itgen, 127 )
    call SetSoundPitch( gg_snd_itgen, 1.0 )
call StartSound(gg_snd_itgen)
call KillSoundWhenDone(gg_snd_itgen)
set gg_snd_itgen = null
call GroupAddUnit(udg_CrowHousenkaGroup,u)
call TriggerRegisterUnitEvent(trg,u,evenk)
call TriggerAddAction(trg,cot)
call TimerStart(t,0.25,true,cot1)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),2,face)
call SaveReal(udg_Hash,GetHandleId(t),3,x2)
call SaveReal(udg_Hash,GetHandleId(t),4,y2)
call SaveInteger(udg_Hash,GetHandleId(t),5,number)
call SaveInteger(udg_Hash,GetHandleId(t),6,0)
set cot = null
set evenk = null
set trg = null
set cot1 = null
set u = null
set t = null
endfunction
function Trig_SpellEffect_Conditions takes nothing returns boolean
local unit u = GetSpellAbilityUnit()
local unit u1 = GetSpellTargetUnit()
local player p = GetOwningPlayer(u)
local string s = GetObjectName(GetSpellAbilityId())
local item i = null
local unitstate life = null
local timer t = null
local code cot = null
local unitstate mana = null
if GetInventoryIndexOfItemType(u, 'fgfh') > 0 and GetRandomReal(0,100) <= 30 then
set t = CreateTimer()
set cot = function plashenergii
set mana = UNIT_STATE_MANA
call TimerStart(t,0.01,true,cot)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),2,GetUnitState(u,mana))
set mana = null
set cot = null
set t = null
endif
if IsUnitEnemy(u1,p) == true and GetUnitTypeId(u1) == 'Ogrh' and GetUnitAbilityLevel(u1,'B00V') > 0 then 
call ItachiDota2mangeku()
set life = UNIT_STATE_LIFE
if IsUnitPaused(u1) == false and GetUnitAbilityLevel(u1,'BNdo') == 0 and GetUnitAbilityLevel(u1,'Amlf') == 0 and GetUnitAbilityLevel(u1,'BNsi') == 0 then
set i = CreateItem('rsps',GetUnitX(u1),GetUnitY(u1))
call UnitAddItem(u1,i)
set i = null
endif
set life = null
else
if s == "udara642" or s == "udara641" and u == u1 then
call udara1281()
elseif s == "udara642" or s == "udara641" and IsUnitEnemy(u1,p) == true then
call udara642()
endif
if s == "udarahasangeki" or s == "juhososhyu" then
call udarahasangeki()
endif
if s == "udarakyushou" or s == "udarakyushou1" then
call udarakyushou()
endif
if s == "udarabyakugan" or s == "udarabyakugan1" then
call udarabyakugan()
endif
endif
if SubString(s, 0, 4) == "Effe" then
if IsUnitEnemy(u1,p) == true and GetUnitTypeId(u1) == 'Ogrh' and GetUnitAbilityLevel(u1,'B00V') > 0 then 
else
call ExecuteFunc(s)
endif
endif
if GetSpellAbilityId()=='A02C' or GetSpellAbilityId() == 'A05W' then
      call BlinkAction()
endif
    return false
set u = null
set u1 = null
set p = null
endfunction
//===========================================================================
function InitTrig_SpellEffect takes nothing returns nothing
    local trigger t = CreateTrigger(  )
local integer index = 0
local player p = null
local playerunitevent evenk = null
local code cot = function Trig_SpellEffect_Conditions
local boolexpr b = Condition( cot )
call TriggerAddCondition( t, b )
loop
set p = Player(index)
set evenk = EVENT_PLAYER_UNIT_SPELL_EFFECT
call TriggerRegisterPlayerUnitEvent(t,p,evenk,null)
set p = null
set evenk = null
set index = index + 1
exitwhen index == bj_MAX_PLAYER_SLOTS
endloop
set cot = null
set b = null
set t = null
endfunction

Лучший ответ:
щяс сниму видео на бандикам чтобы понятно было

смотрите на минуты и секунды где должно быть дерево и пища

ой сорян я думал что это таймеры секунды и минуты стакаются с таймерами скилла ибо там много таймеров , а дело вот в чем когда создается даммик добавляется пища это нужно убрать в редакторе обьектов))


Views: 106

XGM Bot #1 - 3 months ago 0
Голосов: +0 / -0
Похожие вопросы:

» ответ
Ну, если дать неуязвимому даммику, то у них тоже приказ сбивается?
» ответ
Способности на основе предметов некоректно отображаются
» ответ
PyCCKuu_4eJl, а причем тут аура торнадо? Если стан это стан, особый флаг + приказ смотреть на источник стана.
Не пойму почему не молоток бурь а аура торнадо?
» ответ
Krabs:
Mate:
С одинаковой способности базировали, одинаковый ID приказа и следовательно когда у героя две способности с одинаковым ID приказа, то срабатывать будет только одна. Переделывайте через канал и триггеры или используйте разные способности призыва существ, список всех способностей призыва существ можно поискать, я думаю наверняка кто-то сделал такой.
А где менять ID приказа?Я немного не разбираюсь в этом,через что собственно в тригерах менять или что такое канал?
ID приказа можно изменить только у способностей "Книга заклинания" (Spellbook) и "Канал" (Channel). У остальных он хардкод в самой игре и ничего нельзя сделать не залезая в саму игру (делая карту несовместимой для мультиплеера).
Заклинания призыва очень легко можно делать через канал и триггеры. Просто ставите на канале цель - нет цели, свою перезарядку и создаете триггер, который создает ваши войска при использовании способности и даете созданиям таймер жизни. Это самый простой вариант.
» ответ
dondonchakka, в требованиях указать даммика.

dondonchakka #2 - 3 months ago 0
Голосов: +1 / -1

щяс сниму видео на бандикам чтобы понятно было

смотрите на минуты и секунды где должно быть дерево и пища

ой сорян я думал что это таймеры секунды и минуты стакаются с таймерами скилла ибо там много таймеров , а дело вот в чем когда создается даммик добавляется пища это нужно убрать в редакторе обьектов))
Прикрепленные файлы