22

» WarCraft 3 / Как вызвать юнита на время в конкретную точку карты?

если простой указатель способнть то лучше без тригера
как раз являет приоритетный ответ орда герой ловчий (В доте называет раста) змея. заменяем юнит на свой и выбираем его как вызываемый и работаете!
22

» JackCraft / WarFortress (Mini-Game Contest-2018-WIP)

Как генерируеш сохраняй его в строку чтобы можно выбрать разные виды из списка и играем =)
ведь у блока 64х64 как тайлов если да то это выполнимо
22

» WarCraft 3 / каннибализм

Принятый ответ
каждый тик наносить юнит если являет 100% снимаем ему 0.4 хп вы так не увидите его изменение хп и будет работать скил. хотя это мое воображение =) Не тестил!
22

» WarCraft 3 / Юнит не сохраняется в структе

quq_CCCP, хендлы останет если на него сылает даже удаленый юнит как бы! А когда почишаеш то хендл уменшает даже если мусор удалил юнитов! Или я ошибься =) Суть ответ выше уже написали заменить триггер на каст юнит
22

» WarCraft 3 / Юнит не сохраняется в структе

PT153, но сути
method onDestroy takes noting returns nothing
if this.u != null then
	set this.u = null
endif
if this.l != null then
	set this.l = null
endif
endmethod
data.destroy() и все чтобы не хранили его ссылку на юнитов =) а если необходимо внешне то удаляем внешнее =)
22

» WarCraft 3 / Юнит не сохраняется в структе

зачем внешние очишаеш структуру? когда есть спец destroy через метод onDestroy и там подчишай что станет легче и так у тя не все показано а лишь линейный код
22

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

Андреич, у мя плитки двигают вниз и герой со стрелками меняют и набирабт очки вот и суть реализация и сложная физика но что поделать опаздал я =)
22

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

а я хотел скроллер сделать но срок не получиться учитивая каждый день 1 час в карте.
22

» Огонёк Феникса / Теория по созданию уровней Warcraft 3

я делаю сначало качество и удобство для игрока чтобы он в него вникал а потом уже расширять возможностей... но смотря как у каждые свои вкусы!
22

» JackCraft / WarFortress (Mini-Game Contest-2018-WIP)

Судя вы хотите делать игру как червяк? где верху время дни и ночи заменить на таймер что даст каждый игрок 30 сек выбрать оружие из арсенала и целить направление воздуха с помошью мультиборда направление лево и право. надеюсь помог вам =)
22

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

UrsaBoss, +
Могу за тебя сделать хД (Шутка)
UrsaBoss, и такой реализация давно сделали как бы в старой форуме поиши =)
Правило не запрешает ли мемхак?
22

» WarCraft 3 / Спец символы war3

Принятый ответ
|r не убирает а просто означает конец строки которвый вызвалии ранее цвета что вы можете делать цветные название
|c[00][00][00][00]Привет|r
1 - это прозрачность
2,3,4 это цвет hex из 2 символов
И под конец цвет завершаем окраску со словом r
22

» WarCraft 3 / Частота смены показателей здоровья и маны

Naadir, неправильно делаеш даже ты итог получиш таймер 0.001 если у него реген 1000 делить на 1 сек бредово
22

» WarCraft 3 / Частота смены показателей здоровья и маны

Naadir, куда ты дел таймер =) если таймер 0.035 то умножаем его и делим регена =) если разные таймеры то разные регены
INTERVAL_TIME = 0.035
REGEN_HP = 100
(INTERVAL_TIME *REGEN_HP /1)
(0.035*100/1)=3.5 hp
а может не то формула не помню уже
22

» WarCraft 3 / Частота смены показателей здоровья и маны

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

» WarCraft 3 / Нужна модель? - Вам сюда!

OVOgenez, западние деревни и зигурат поиши там много полезные модели и почти схож с иконкой... и не забудь указать автора его так как он его делал.
22

» WarCraft 3 / Слишком агрессивные крипы

В константах есть параметр нападать если рядом что-нибудь строится, чтобы уменьшить дальность агра, измени его значение на 0.
22

» WarCraft 3 / Как вы реализовываете счетчик разных типов юнитов в арене?

Принятый ответ
8gabriel8, у меня без приказа а тупо чисто радиус приказа так как у меня чисто арена.
Hate, не я решил делать подобие как удаление с данные и уменшить счетчик помогает без повтора
примерно так лучше
static method spawnUnit takes nothing returns unit
            local integer r
            local unit u = null
            
            if .count > 0 then
                set r = GetRandomInt(1, .count) - 1 // 0...1...2 
                set u = CreateUnit(Player(0), .typeUnits[r], 0, 0, bj_UNIT_FACING)
                
                set .countUnits[r] = .countUnits[r] - 1
                
                if .countUnits[r] == 0 then
                    set .typeUnits[r] = typeUnits[.count - 1]
                    set .countUnits[r] = .countUnits[.count - 1]
                    set .count = .count - 1
                endif
            endif
            
            return u
endmethod
Вот структура если кому надо берите я не тестил его так как писал на планшете... после сна проверю..
struct xWave
        static constant integer MAX_UNIT_ON_MAP = 5
        
        private static integer countSpawn = 0
        private static integer countDead = 0
        private static integer countAll = 0
        private static integer countMap = 0
        private static integer array typeUnits
        private static integer array countUnits
        private static integer array countMaps
        private static timer t = CreateTimer()
        
        static method spawnUnit takes nothing returns unit
            local integer r
            local unit u = null
            
            if .countSpawn > 0 and .countMap < MAX_UNIT_ON_MAP then
                set r = GetRandomInt(1, .countSpawn) - 1 // 0...1...2 
                set u = CreateUnit(Player(0), .typeUnits[r], 0, 0, bj_UNIT_FACING)
                
                set .countUnits[r] = .countUnits[r] - 1
                set .countMap = .countMap + 1
                
                if .countUnits[r] == 0 then
                    set .typeUnits[r] = typeUnits[.countSpawn - 1]
                    set .countUnits[r] = .countUnits[.countSpawn - 1]
                    set .countSpawn = .countSpawn - 1
                endif
                
                if .countSpawn == 0 then
                    call end()
                endif
            endif
            
            return u
        endmethod
        
        static method createUnit takes integer t, integer c returns nothing
            set .typeUnits[.countSpawn] = t
            set .countUnits[.countSpawn] = c
            set .countAll = .countAll + c
            set .countSpawn = .countSpawn + 1
        endmethod
        
        static method update takes nothing returns nothing
            local unit u = spawnUnit()
            if not(u == null) then
                call SetUnitPosition(u, 0, 0)
                call SetUnitOwner(u, Player(PLAYER_NEUTRAL_AGGRESSIVE), true)
            endif
            set u = null
        endmethod
        
        static method start takes nothing returns nothing
            if .countSpawn == 0 or .countAll == 0 then
                debug call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "[ОШИБКА] Нельзя стартовать волны без войска")
                return
            endif
            call update()
            call TimerStart(t, 100/(.countAll*2), true, function thistype.update)
        endmethod
        
        static method end takes nothing returns nothing
            set .countSpawn = 0
            set .countDead = 0
            set .countAll = 0
            set .countMap = 0
            call PauseTimer(t)
        endmethod
    endstruct