В редакторе же есть 7 тип атаки- неизвестный, как можно его использовать, если в редакторе объектов его нет?

Принятый ответ

В струетуре каждого юнита нам доступен триггерно параметр UnitUserData, являющийся целочисленным. Создав обычную двухмерную базу данных, столбцами которой являются характеристики юнита (в структуре юнита характеристиками являются все строки в редакторе объектов для этого юнита (не ограничиваясь ими офк)). Вбив номер строки в юзер дату юнита мы получим связанную таблицу БД юнита и нашу кастомную. Теперь мы можем создавать дамми-кастеров и присваивать им ту же юзер дату что и у кастера заклинания, рвзделяя при помощи дамми кастов урон от заклинаний и урон с руки. Далее - дело техники. Тип урона с руки можно задать в переменной нашей БД, а тип урона заклинания определять, например, количеством хп юнита (извращвясь с преобразованиями текущего хп в целочичленное). Можно получить еще больший контроль, нанося весь урон триггерно...
0
19
6 лет назад
0
Похожие вопросы:

ответ
Эмм что за ерунда, сократил код, убрав всё лишнее, но утечки все равно остаются, по 1.5 - 2 хэндла за каждое нанесение урона (тип хэндла не знаю как посмотреть). Когда триггер отключаешь, то всё нормально.
Сокращенный код
function SDMSCreateTextTag takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local unit s=GetEventDamageSource()
    local integer i=GetConvertedPlayerId(GetOwningPlayer(u))
    local texttag tt=CreateTextTag()
    local real dmg=GetEventDamage()

    if ( dmg > 1.00 ) and ( dmg < 9999.00 ) then
        if GetPlayerId(GetOwningPlayer(u))==12 then
            call SetTextTagText(tt, "|cff9db9eb-"+I2S(R2I(dmg))+"|r", 0.023)
        else
            call SetTextTagText(tt, "|cffffa500-"+I2S(R2I(dmg))+"|r", 0.023)
        endif
        call SetTextTagPosUnit(tt, u, 0)
        call SetTextTagColor(tt, 255, 255, 255, 255) 
        call SetTextTagVelocity(tt, 0.05325*Cos(90 * bj_DEGTORAD), 0.05325*Sin(90 * bj_DEGTORAD))
        call SetTextTagPermanent(tt, false)
        call SetTextTagLifespan(tt, 1.0)
        call SetTextTagFadepoint(tt, 0.0)
    endif
    call PolledWait(2.0)

    call DestroyTextTag(tt)
    set u=null
    set s=null
    set i=0
    set dmg=0
    set tt=null
endfunction

function SDMSTriggerRegisterUnitDamaged takes nothing returns nothing
    call TriggerRegisterUnitEvent(udg_SDMStrigger,GetEnteringUnit(),EVENT_UNIT_DAMAGED)
endfunction

function theSDMSTriggerActions takes nothing returns nothing
    local trigger UnitEnter=CreateTrigger()

    call TriggerRegisterEnterRectSimple(UnitEnter, gg_rct_Arena)
    call TriggerAddAction(UnitEnter,function SDMSTriggerRegisterUnitDamaged)

    set UnitEnter=null
endfunction

function InitTrig_the_SDMS_Trigger takes nothing returns nothing
    local trigger tr=CreateTrigger()

    set udg_SDMStrigger=CreateTrigger()//Тут также меняется название глобальной переменной типа триггер.
    call TriggerAddAction(udg_SDMStrigger,function SDMSCreateTextTag)
    call TriggerRegisterTimerEventSingle(tr,0.0)
    call TriggerAddAction(tr,function theSDMSTriggerActions)

    set tr=null
endfunction
Wait вызывает утечки ((
Пришлось делать через таймер

0
20
6 лет назад
0
есть и такой же тип защиты, но подозреваю, что использовать их нормально не получится
я получал неизвестный тип брони, когда пытался с помощью улучшений поменять тип брони призванным юнитам несколько раз
в итоге получил неизвестный, когда там указано только кол-во брони
выдает совершенно рандомные и бажные результаты, с обычными юнитами багов не наблюдалось, но герой с атакой примерно 50 выдаст по такой броне около миллиона урона с авто-атаки, при стандартных настройках (6% поглощение за 1 ед. брони)
тип атаки не получал никогда, и думаю, что даже мемхаком его получить невозможно, а при получении или будет совершенно случайный и не контролируемый урон, или фатал, что более вероятно
0
10
6 лет назад
0
ssbbssc,
А как у близзов получилось использовать этот тип атаки, в кампании например?
0
29
6 лет назад
0
Loran124:
ssbbssc,
А как у близзов получилось использовать этот тип атаки, в кампании например?
Триггерно, скорее всего.
0
20
6 лет назад
0
Если Вам не хватает стандартного числа типов атаки, возможно имеет смысл внедрить систему кастомной обработки урона? И лепить столько типов, сколько душе угодно?
0
32
6 лет назад
0
Loran124, false, false, null, null, null - этот тип урона схож с normal, его наносят все негативные баффы при появлении или исчезнавении, проходит по неуязвимым юнитам, хп им не отнимает но ивент урона срабатывает.
0
23
6 лет назад
0
Diaboliko,а можно по подробнее про систему?
3
20
6 лет назад
3
В струетуре каждого юнита нам доступен триггерно параметр UnitUserData, являющийся целочисленным. Создав обычную двухмерную базу данных, столбцами которой являются характеристики юнита (в структуре юнита характеристиками являются все строки в редакторе объектов для этого юнита (не ограничиваясь ими офк)). Вбив номер строки в юзер дату юнита мы получим связанную таблицу БД юнита и нашу кастомную. Теперь мы можем создавать дамми-кастеров и присваивать им ту же юзер дату что и у кастера заклинания, рвзделяя при помощи дамми кастов урон от заклинаний и урон с руки. Далее - дело техники. Тип урона с руки можно задать в переменной нашей БД, а тип урона заклинания определять, например, количеством хп юнита (извращвясь с преобразованиями текущего хп в целочичленное). Можно получить еще больший контроль, нанося весь урон триггерно...
Принятый ответ
0
26
6 лет назад
Отредактирован Hate
0
Diaboliko:
В струетуре каждого юнита нам доступен триггерно параметр UnitUserData, являющийся целочисленным. Создав обычную двухмерную базу данных, столбцами которой являются характеристики юнита (в структуре юнита характеристиками являются все строки в редакторе объектов для этого юнита (не ограничиваясь ими офк)). Вбив номер строки в юзер дату юнита мы получим связанную таблицу БД юнита и нашу кастомную. Теперь мы можем создавать дамми-кастеров и присваивать им ту же юзер дату что и у кастера заклинания, рвзделяя при помощи дамми кастов урон от заклинаний и урон с руки. Далее - дело техники. Тип урона с руки можно задать в переменной нашей БД, а тип урона заклинания определять, например, количеством хп юнита (извращвясь с преобразованиями текущего хп в целочичленное). Можно получить еще больший контроль, нанося весь урон триггерно...
примерно так, да
я примерно так и делал, можно поизучать, кому нужно
Загруженные файлы
0
20
6 лет назад
0
Loran124:
ssbbssc,
А как у близзов получилось использовать этот тип атаки, в кампании например?
да никак, он технический, как Кук описал
если открыть близовскую карту WarChaser, или же Сад Войны, то можно увидеть, что в коде очень много утечек и ошибок
Так что я бы не ровнялся на карты близов как пример, во всяком случае на все 100%
Чтобы оставить комментарий, пожалуйста, войдите на сайт.