22

» WarCraft 3 / Скорость постройки в зависимости от.....

чтобы было четко и нормально делаем 60 сек ровно строителя, при надобности уменшить 30 сек делаем 0.5 фактор можно сделать математическую от 60 и получить результат нужный времени.
22

» WarCraft 3 / Увеличение запаса здоровья героя

есть же баг вручаем абилку с 4 уровней
1 ур - 0 хп
2 ур - 1 хп
3 ур - 2 хп
4 ур - 4 хп
как мы вручаем и меняем уровень если 4 хп и удаляем а хп не теряет...
а расчет вроде
внутри код
library StateMax initializer init requires CoreState, optional AbilityPreload, optional xepreload
    globals
        private integer array powersOf2
        private integer powersOf2Count = 1
    endglobals

    struct StateMax extends TypeState
        private unitstate us = null
        private integer id = 0
        private integer count = 0
        
        public static method create takes integer id, unitstate us, integer count returns thistype
            local thistype this = thistype.allocate(0, 0)
            local integer i
            
            set this.id = id
            set this.us = us
            set this.count = count
        
            // Grow powers of 2
            if powersOf2Count < count then
                set i = powersOf2Count
                loop
                    exitwhen i == count * 2 * 2 * 3 + 1
                    
                    set powersOf2[i] = 2 * powersOf2[i - 1]

                    set i = i + 1
                endloop
                set powersOf2Count = count
            endif
            
            static if xe_PRELOAD_ABILITIES then
                call AbilityRangePreload(id, id + count * 2 - 1)
            endif
            
            return this
        endmethod
        
        method operator[]= takes unit u, real amount returns nothing
            local integer rawcode = this.id
            local integer abilityId
            local integer abilityLevel
            local integer currentAbility
            
            set amount = R2I(amount) - R2I(this[u])
            
            if amount < 0 then
                set amount = -amount
                set rawcode = rawcode + this.count
            endif
            
            set abilityId = this.count - 1
            set abilityLevel = 4
            set currentAbility = rawcode + abilityId
            loop
                exitwhen amount == 0
                
                if amount >= powersOf2[abilityId * 3 + (abilityLevel - 2)] then
                    call UnitAddAbility(u, currentAbility)
                    call SetUnitAbilityLevel(u, currentAbility, abilityLevel)
                    call UnitRemoveAbility(u, currentAbility)
                    
                    set amount = amount - powersOf2[abilityId * 3 + (abilityLevel - 2)]
                else
                    set abilityLevel = abilityLevel - 1
                    if abilityLevel <= 1 then
                        set abilityId = abilityId - 1
                        set abilityLevel = 4
                        set currentAbility = rawcode + abilityId
                    endif
                endif
            endloop
        endmethod
        
        method operator[] takes unit u returns real
            return GetUnitState(u, this.us)
        endmethod
    endstruct
    
    //! textmacro StateMaxStart takes CREATE_ABILITIES
        function StateMaxSetup takes nothing returns nothing
        /*
        //! externalblock extension=lua ObjectMerger $FILENAME$
        //! i if $CREATE_ABILITIES$ == "true" then
        //! i function CreateAbility(baseAbility, rawcodePrefix, field, abilityCount, name, icon)
        //! i     k = 0
        //! i     for sign = -1, 1, 2 do
        //! i         signStr = "+"
        //! i         if sign < 0 then
        //! i             signStr = "-"
        //! i         end
        //! i         j = 0
        //! i         for i = 0, (abilityCount - 1) * 3, 3 do
        //! i             j = j + 1
        //! i             createobject(baseAbility, rawcodePrefix .. string.sub(chars, k + 1, k + 1))
        //! i             makechange(current, "anam", "StateMax - " .. name)
        //! i             makechange(current, "ansf", "(" .. signStr .. tostring(j) .. ")")
        //! i             makechange(current, "aart", "ReplaceableTextures\\CommandButtons\\" .. icon)
        //! i             makechange(current, "aite", 0)
        //! i             makechange(current, "alev", 4)
        //! i             makechange(current, field, 1, 0)
        //! i             makechange(current, field, 2, 2^(i + 0) * sign)
        //! i             makechange(current, field, 3, 2^(i + 1) * sign)
        //! i             makechange(current, field, 4, 2^(i + 2) * sign)
        //! i             k = k + 1
        //! i         end
        //! i     end
        //! i end
        //! i setobjecttype("abilities")
        //! i chars = "abcdefghijklmnopqrstuvwxyz"
        */
    //! endtextmacro
    
    //! textmacro StateMaxCreate takes NAME, COUNT, PREFIX, SOURCE_ABILITY, FIELD, ICON
        //! i CreateAbility("$ABILITY$", "$PREFIX$", "$FIELD$", $COUNT$, "$NAME$", "$ICON$")
        globals
            TypeState STATE_$NAME$
        endglobals
        set STATE_$NAME$ = StateMax.create('$PREFIX$a', UNIT_STATE_$NAME$, $COUNT$)
    //! endtextmacro
    
    //! textmacro StateMaxEnd
        /*
        //! i end
        //! endexternalblock
        */
        endfunction
    //! endtextmacro
    
    //! runtextmacro StateMaxStart("false")
    //! runtextmacro StateMaxCreate("MAX_LIFE", "3", "ZxL", "AIlf", "Ilif", "BTNHealthStone.blp")
    //! runtextmacro StateMaxCreate("MAX_MANA", "3", "ZxM", "AImz", "Iman", "BTNManaStone.blp")
    //! runtextmacro StateMaxEnd()
        
    private function init takes nothing returns nothing
        set powersOf2[0] = 1
        
        call StateMaxSetup()
    endfunction
endlibrary
22

» WarCraft 3 / можно ли отследить каст пламени феникса

DracoL1ch, но не передают же кто его владелец =)
DracoL1ch, помню что в 1.26 возврашал пустой юнит атакуюшего а в новой как раз новой события отлично передают с урон 1
22

» WarCraft 3 / как перезарядить способность на половину. а не полностью?

есть Field узнаете оригинальный кд у данный способности, есть нативка получает остаток времени вот и манипулируй.
real = BlzGetUnitAbilityCooldown(...)
if real >= 1.0 then
BlzSetUnitAbilityCooldown(u, GetAbilityID(u, 'ATCK'), real - 1.0)
endif
Выше это пример я так не помню уже абилку ид возврашает или багнутый
и там должен иметь Expired в нативке кд
22

» WarCraft 3 / Отловить направление способности

8gabriel8, если ты не знал, то отмена тоже являет способность с приказ cancel
а также нажатие клавиш на "C". Терь подумай!
22

» WarCraft 3 / Убрать HP бары у юнитов

это есть в 1.31 отключить через фрейм главное узнать его индификато фрейма который рисует у данного юнита и скрыть а как хз.
надеюсь датут бд определеных елементов который привязан.
Например я выбрал юнит и получить его значение фрейма хп если такого есть то выдать фрейм и можно манипулировать с хп а так наугад искать 0 до который мы видим на карте прогресс бар хп
22

» WarCraft 3 / Пособие по публикации ресурсов

PrincePhoenix, без утечки это только профи могут выложить, желательно не более 1к утечки и не выше то допускают если они новички =)
22

» XGM Team / Обновление 2019 - Stage 5

NazarPunk, страно что у тя он показывает а у меня нет хотя выучил!
Загруженные файлы
22

» XGM Team / Обновление 2019 - Stage 5

Терь ясно кто меня минусует...
А это нормально что если все изучить а потом забвение или смена имени требует очков способности. То это значит тратит очков способности =) А 1 месяц и так давно прошло. =) Или не усмотрели так?
Загруженные файлы
22

» WarCraft 3 / Благословение Элуны и Рунные браслеты

они не складывают делай триггерный резист с много уровней
так как они подругому идут формулой!
22

» WarCraft 3 / Отмена способности

Bergi_Bear, зачем изврашаеш? есть подготовка время который не запускает кд. Если нет паузим отменяем и анпаузить а время подготовки 0.01 сек а потом уже в кд запускает...
22

» WarCraft 3 / Помогите, юниты пропадают после перевода

Принятый ответ
видимо автор меняет равкод на русский =)
а то мы не вангуем что у тя там!
22

» WarCraft 3 / Лаг триггера при первом срабатывании

сначало инизиализируй способность а потом в игре вручай абилку а так лаги из за абилку
22

» WarCraft 3 / Как с помощью фрэймов отобразить модель героя?

Вопрос: BlzFrameClearAllPoints()?
Ответ: www.hiveworkshop.com/threads/ui-positionate-frames.315860
Вопрос: Просто отличный совет и как он поможет мне в решении поставленного вопроса?
Ответ: Ошушение что ты ни разу fdf не создавал под свой настройку моделя...
А последный то что невозможное возможно. старайся!
если не сможеш то завтра я тебе скину пример как починят комп!