30

» WarCraft 3 / Ищу синематик-мейкеров для WC3 за деньги

Принятый ответ
Полагаю, что подобную тему стоит создать в блоге, а не в разделе вопросов и ответов.
30

» WarCraft 3 / Событие - получает урон

Принятый ответ
TeX13, на гуи полноценную систему отлова урона реализовать нельзя.

Советую ознакомиться, в том числе и со ссылками из того сообщения.
30

» WarCraft 3 / Глобальный таймер

ledoed, моё мнение таково, что если использование структур vJass не необходимо, то стоит писать не структурами. ООП в Jass нет, существует только кривая эмуляция.
Кроме того, такое написание явным образом демонстрирует логику работы алгоритма, что в качестве ответа несколько актуальнее. Всё-таки почитай про отступы и стандарты оформления кода и комментариев в нём
30

» WarCraft 3 / Глобальный таймер

создавайте новый и удаляйте старый
Зачем, если в этом нет необходимости?
30

» WarCraft 3 / Глобальный таймер

Принятый ответ
Кастомная система оглушения без использования способностей на глобальном таймере, с комментариями, говорящими названиями переменных и с адекватным форматированием. Без структур, так как они здесь излишни.
По такому же принципу можно реализовать всё, что угодно, лепится на единый таймер. Примерно по такому принципу работают все существующие игры (серверные/клиентские тики), только хранение данных по-другому реализовано (здесь параллельные массивы).
Код
library StunUnit // initializer Init
{
    private timer   periodicTimer = CreateTimer()    // Can be replaced with main map timer

    private unit    unitsStack[]
    private effect  effectsStack[]  // Stun effect storage
    private float   timeRemaining[] // Time of stun left
    private int     stackCounter = 0

    #define private TICK_PERIOD  = 0.05
    #define private STACK_LIMIT  = 8190
    #define private STUN_EFFECT  = "Abilities\\Spells\\Human\\Thunderclap\\ThunderclapTarget.mdl"
    #define private ORDERID_STOP = 0xD0004


    // Looking for id of specified unit in stack
    private int StackSearch(unit givenUnit) {
        int i = -1;
        while(i++ < stackCounter) {
            if (givenUnit == unitsStack[i]) {
                return i;
            }
        }
        return -1;
    }

    // Add unit to stack with overflow check
    private void StackPush(unit givenUnit, float duration) {
        if(stackCounter < STACK_LIMIT) {
            unitsStack   [stackCounter] = givenUnit;
            effectsStack [stackCounter] = AddSpecialEffectTarget(STUN_EFFECT, givenUnit, "overhead");
            timeRemaining[stackCounter] = duration;
            stackCounter++;
        } else {
            BJDebugMsg("Stunned units stack overflow!");
        }
    }

    // Remove unit from stack
    private void StackPop(int id) {

        DestroyEffect(effectsStack[id]);

        stackCounter--;
        unitsStack   [id] = unitsStack   [stackCounter];
        effectsStack [id] = effectsStack [stackCounter];
        timeRemaining[id] = timeRemaining[stackCounter];

        unitsStack   [stackCounter] = null;
        effectsStack [stackCounter] = null;
        timeRemaining[stackCounter] = 0.0;
    }

    void StunUnit(unit givenUnit, float duration) {

        int stackedUnitId = StackSearch(givenUnit);

        if (stackedUnitId == -1) {
            StackPush(givenUnit, duration);
        } elseif (timeRemaining[stackedUnitId] < duration) {
            timeRemaining[stackedUnitId] = duration;
        }
    }

    private void TimerCallback() {

        int i = -1;

        while(i++ < stackCounter) {

            timeRemaining[i] -= TICK_PERIOD;
            IssueImmediateOrderById(unitsStack[i], ORDERID_STOP);

            if (timeRemaining[i] <= 0.0) {
                StackPop(i);
            }
        }
    }

    private void Init() {
        TimerStart(periodicTimer, TICK_PERIOD, true, function TimerCallback);
    }
}

ledoed, за такое форматирование просто руки отрывать надо и пожизненно лишать доступа к любым IDE.
30

» WarCraft 3 / Событие - получает урон

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

» Он вам не клоун! / Брейншторм по контентной стратегии XGM

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

» WarCraft 3 / Важная информация об обновлении 1.28

Забираю свои слова о близах обратно.
Жаль только, что теперь не получится на bnet зайти =(
30

» Spaceship Looter / Spaceship Looter

Luxorix, я бы предложил просто всегда держать на них обводку, которая сейчас появляется только при приближении. Даже несколько обескураживало, что она исчезает, если отойти.

Если смотреть на игру в целом, то я бы не торопился запихивать игрока в самое пекло, а знакомил бы с механиками по очереди: сначала просто сбор лута, потом пара лёгких сражений в пустых комнатах, потом разрушаемые объекты...
Такой подход позволил бы весьма легко выстроить Learning Curve, и при этом практически не затронуть техническую часть игры.
30

» Он вам не клоун! / По технической реализации xgm

Даже в такой помойке как код в8, это делается достаточно просто. Не сам фикс, а нахождение бага. Баг локализовать просто, сложно пофиксить в некоторых случаях из-за отвратной не структурированной архитектуры.
Все сложно поддерживать если нету четкой и структурированной архитектуры. Можно заделать кучу микросервисов, но толку, если они будут не правильно структурированы. Проблема в текущем решении ХГМ - это использование его как песочницы. Потому что большинство фич которые прикручивались - это лишь способ попробовать что-то новое из технологий или в программировании. Отсюда и появляется функционал которым пользуется 1 или 2 пользователя, который ничего не дает, в нем куча багов, структура кривая и непонятное, потому что автор просто хотел поиграться с новой технологией.
Слышу крик души
30

» WarCraft 3 / Космическая платформа

дефолтный тайтл бездны
вторую арку слили!!
У этого тайла косяк в том, что он плавно сочетается со склоном
30

» Spaceship Looter / Spaceship Looter

Увы, пока только текстовый и довольно скромный, но зато в любой момент можно поставить игру на паузу и тут же увидеть все управление.
Очень печально. Лут визуально не отделён от разрушаемого окружения, та же форма, та же гамма, никакой подсветки. Вообще во время игры в демку всё ощущалось дикой кашей, и стрелял по сути "на шару куда-то в сторону центра и откуда пули летят", никакого удовольствия не ощущалось. Почти уверен, что нужно реализовать разграничение различных типов объектов чем-нибудь, например, цветовым кодированием или базовыми формами.
30

» Spaceship Looter / Spaceship Looter

Экспериментировал по-разному, но это пока лучший вариант.
Сыграю в демку - отпишу какие-нибудь соображения на этот счёт, если не против

Ммм, а в полной версии не-текстовый туториал будет?
30

» Spaceship Looter / Spaceship Looter


Сначала написал "выглядит сочно", потом увидел "сочный арт" в описании :D
Значит, и правда сочный
30

» Spaceship Looter / Spaceship Looter

Почему-то я всегда вспоминаю Meritous, когда вижу подобный bullet-hell.
Выглядит довольно сочно, надо сказать. По видео видно, что комнаты закрыты и из них не выйти. Это всегда так?
30

» WarCraft 3 / Как сделать урон заклинаний на 60% слабее?

треть на обычных спеллах
Тогда не выйдет без костылей

Если всё через код, то просто перегружаешь функцию нанесения урона и смотришь в ней источник урона
30

» Dota 2 / Конкурс героев для Dota 2

Bornikkeny, если реворк героя изменяет все его механики, то технически это новый герой, и ты можешь просто заявить его таковым.
30

» WarCraft 3 / Как сделать урон заклинаний на 60% слабее?

Frozen_Cat, стандартные способности есть в наличии, или все скилы реализованы через код?