30

» WarCraft 3 / Battle for Souls 3.2b

феникс, который тратит собственные хп на касты, как это оригинально...
и не было нигде же...
30

» StarCraft 2 / Смягчение ограничений пользовательских карт

если я залью 20 карт - каждая будет не больше 5 мб.
что то как то не так, вон, тот же контакт, за его использование не платят, а сливать файлы можно без ограничений суммарного размера
не думаю, что близы карты юзверей на флешках хранят, чтобы память так экономить
30

» WarCraft 3 / Библиотека функций

ibrary DoodadsRevive initializer Init
{
    private integer count = 0
    private real timeout = 30
    private real range = 250

    private nothing counter()
    {
        if(IsHeroUnitId(GetUnitTypeId(GetEnumUnit())))
        {
            count++
        }
    }

    private nothing revive()
    {
        local group g = CreateGroup()
        local location loc = Location(GetDestructableX(GetEnumDestructable()),GetDestructableY(GetEnumDestructable()))
        local integer i = 0
        local integer c = 0
        loop
        {
            if(IsLocationVisibleToPlayer(loc,Player(i)))
            {
                c++
            }
            exitwhen i == 11
            i++
        }
        count = 0
        GroupEnumUnitsInRange(g,GetDestructableX(GetEnumDestructable()),GetDestructableY(GetEnumDestructable()),range,null)
        ForGroup(g,function counter)
        if(count==0&&GetDestructableLife(GetEnumDestructable())<=0&&c==0)
        {
            DestructableRestoreLife(GetEnumDestructable(),GetDestructableMaxLife(GetEnumDestructable()),true)
        }
        DestroyGroup(g)
        RemoveLocation(loc)
        loc = null
        g = null
    }

    private nothing MainRes()
    {
        EnumDestructablesInRect(bj_mapInitialPlayableArea,null,function revive)
    }

    public nothing Init()
    {
        trigger Trig = CreateTrigger()
        TriggerRegisterTimerEvent(Trig,timeout,true)
        TriggerAddAction(Trig,function MainRes)
    }
}
найдёшь тут знак вопроса - получишь пряник
30

» WarCraft 3 / Библиотека функций

AdamanTX, страшная тайна:
Фильтры могут кушать до 4х секунд реального времени больше, чем проверка при общем пике. Так то.
Srezik, мне кажется, что надо копировать код 1-в-1, как это делал я для проверки на куче разных карт.
30

» WarCraft 3 / Библиотека функций

Elf_Stratigo:
алгоритм будет работать быстрее, если добавить локалку:
destructable dest=GetEnumDestructable()
тут согласен
а ещё надо числа timeout и range писать с точкой на конце, это экономит 2 такта процессора
Clamp добавил:
это я к тому, что в нересурсоёмких системах погоня за байтами полезна, но тратит на написание несопоставимо много реального времени, практически не давая выигрыша в нём в карте.
30

» WarCraft 3 / Библиотека функций

Elf_Stratigo:
я лишь предложил улучшения в вашем алгоритме
на самом деле реально полезно было только про создание точки
Clamp добавил:
просто Вы слишком агрессивно преподносите критику, поэтому я так же агрессивно отвечаю =)
30

» WarCraft 3 / Библиотека функций

Сначала я очень хотел, чтобы Вы пронаблюдали это, но заметил, что по Вашей ссылке кроется моё мнение:
Garret:
пафос и несуществующие ошибки детектед, такое впечатление, что человеку нечем было заняться и он решил найти какие только можно ошибки. пропитано неким средним между "злостью" и "фу, нуб!"
J:
Garret, +1 )
30

» WarCraft 3 / Библиотека функций

Elf_Stratigo:
тут триггер не нужен, таймер справится
кэп, но
мне так захотелось
Elf_Stratigo:
советую перечитать статьи об оптимизации
лол, всё отлично, утечек памяти нет, значит => лесом
Elf_Stratigo:
уныло
ложь и провокация, энум тут необходим
Clamp добавил:
Вот про точку ты прав, сразу не углядел функцию
30

» WarCraft 3 / Библиотека функций

Очередное псевдополезное произведение от меня любимого =)
Как обычно - сначала код, потом комментарий.
либра с дудадами
library DoodadsRevive initializer Init
{
    private integer count = 0
    private real timeout = 30
    private real range = 250

    private nothing counter()
    {
        if(IsHeroUnitId(GetUnitTypeId(GetEnumUnit())))
        {
            count++
        }
    }

    private nothing revive()
    {
        local group g = CreateGroup()
        local location loc = Location(GetDestructableX(GetEnumDestructable()),GetDestructableY(GetEnumDestructable()))
        local integer i = 0
        local integer c = 0
        loop
        {
            if(IsLocationVisibleToPlayer(loc,Player(i)))
            {
                c++
            }
            exitwhen i == 11
            i++
        }
        count = 0
        GroupEnumUnitsInRange(g,GetDestructableX(GetEnumDestructable()),GetDestructableY(GetEnumDestructable()),range,null)
        ForGroup(g,function counter)
        if(count==0&&GetDestructableLife(GetEnumDestructable())<=0&&c==0)
        {
            DestructableRestoreLife(GetEnumDestructable(),GetDestructableMaxLife(GetEnumDestructable()),true)
        }
        DestroyGroup(g)
        RemoveLocation(loc)
        loc = null
        g = null
    }

    private nothing MainRes()
    {
        EnumDestructablesInRect(bj_mapInitialPlayableArea,null,function revive)
    }

    public nothing Init()
    {
        trigger Trig = CreateTrigger()
        TriggerRegisterTimerEvent(Trig,timeout,true)
        TriggerAddAction(Trig,function MainRes)
    }
}
Каждые timeout секунд возрождает все деревья на карте, которые удовлетворяют двум условиям:
  1. Конкретное дерево никто не видит
  2. На расстоянии range от дерева нет героев.

Для работы требует cJass, для установки достаточно скопировать в нестандартный код карты.
30

» WarCraft 3 / Заставка на MainScreen в стиле Fallout 2

Модель внутри, дерзайте, дпделывайте
доделывайте*
Плохое качество ТОЛЬКО у горы
30

» WarCraft 3 / Заставка на MainScreen в стиле Fallout 2

так сколько лет ей. но это фол и поэтому совсем параллельно
и текстуры из фола родные кстати
30

» WarCraft 3 / Заставка на MainScreen в стиле Fallout 2

На скрине слева не эта надпись, а родная эмблема варика, ищу вписывающуюся иконку фола
30

» WarCraft 3 / Библиотека функций

Elf_Stratigo:
private trigger array mTriggers
дальше не читал.
Ну ладно, читал.
Elf_Stratigo:
это должно убрать проблему ложных вызовов
мне не проблема написать в начале "if(GetEnteringUnit()==null){" и в конце "}"