30

» WarCraft 3 / структура и перебирание данных в ней

Пример использования
struct SpawnLink {
    public int length;

    private Spawn attach;
    private thistype prev, next;

    public float operator x()      { return this.attach.x; }
    public float operator y()      { return this.attach.y; }
    public float operator charge() { return this.attach.charge; }

    private static thistype create(float x, float y, player owner, int level, int length, thistype prev) {
        thistype this = thistype.allocate();
        this.prev = prev;
        this.next = 0;
        this.attach = Spawn.create(x, y, owner, level);
        this.length = length;
        this.changeLength(1);
        return this;
    }

    private void destroy() {
        if (this.prev != 0) && (this.next != 0) {
            this.prev.next = this.next;
            this.next.prev = this.prev;
        } else {
            this.prev.next = 0;
            this.next.prev = 0;
        }
        this.attach.destroy();
        this.deallocate();
    }

    public thistype add(float x, float y, player owner, int level) {
        if (this == 0) {
            return thistype.create(x, y, owner, level, 0, 0);
        }
        this.next = thistype.create(x, y, owner, level, this.length, this);
        return this.next;
    }

    public thistype remove(thistype toRemove) {
        thistype temp = this;
        if (this == toRemove) {
            temp = this.prev;
        }
        this.changeLength(-1);
        toRemove.destroy();
        return temp;
    }

    public void removeFirst() {
        thistype iterated = this;
        while (iterated.prev != 0) {
            iterated = iterated.prev;
        }
        this.changeLength(-1);
        iterated.destroy();
    }

    public void removeAll() {
        thistype temp, iterated = this;
        while (iterated != 0) {
            temp = iterated.prev;
            iterated.destroy();
            iterated = temp;
        }
    }

    public thistype getNearest(float x, float y) {
        thistype nearest = this, iterated = this.prev;
        float tempDistSqr, nearestDistSqr = this.attach.distToSqr(x, y);
        while (iterated != 0) {
            tempDistSqr = iterated.attach.distToSqr(x, y);
            if (nearestDistSqr > tempDistSqr) {
                nearestDistSqr = tempDistSqr;
                nearest = iterated;
            }
            iterated = iterated.prev;
        }
        return nearest;
    }

    public unit getUnit() {
        return this.attach.getUnit();
    }

    private void changeLength(int howMuch) {
        thistype iterated = this;
        while (iterated != 0) {
            iterated.length += howMuch;
            iterated = iterated.prev;
        }
    }

    public void setLevel(int level) {
        thistype iterated = this;
        while (iterated != 0) {
            iterated.attach.setLevel(level);
            iterated = iterated.prev;
        }
    }
}
30

» WarCraft 3 / Jass Highlighter for Notepad++

Советую использовать Sublime Text 3 и соответствующий модуль подсветки синтаксиса с сайта
30

» WarCraft 3 / constant function

DracoL1ch:
а ты пробовал? логика говорит, что constant функция всегда возвращает константу и не может работать с параметрами :)
30

» WarCraft 3 / constant function

constant function is a function whose (output) value is the same for every input value

Кажется, это не та функциональность, которая требуется.

Ещё можно предварительно пробовать, а не задавать превентивные вопросы.
30

» WarCraft 3 / баг компиляции

иногда понаделаешь заготовок под ф-ции и пойдешь спать
Так заготавливайте с return
30

» Огонёк Феникса / Work in Progress

Геометрия с куба
Не уверен в целесообразности такого решения, да и выглядит скоре как с шара, по крайней мере сверху
30

» WarCraft 3 / Где можно найти помощь по созданию своей мапы?

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

» WarCraft 3 / Результаты конкурса карт от 2kxaoc

ZlaYa1000, если серьёзно, то даже близко не помню подобного прецедента с конкурсами, хотя и не могу с уверенностью сказать, что его не было. Единственный близкий кейс - марс, но и в нём в упор не вижу ничего, чего стоило бы стыдиться.

А ещё при загрузке страницы одновременно загружаются все видеоролики подо всеми катами, что крайне замедляет работу браузера как минимум на моей машине.
30

» WarCraft 3 / Результаты конкурса карт от 2kxaoc

У меня есть странное ощущение, что на подобные посты стоит реагировать или со своей альтернативной оценкой представленных работ, или с поздравлениями в адрес победителей, или просто принять к сведению и продолжить заниматься своими делами.
Честно скажу, что мне лень даже смотреть видео по картам, не то, что проверять их в игре, и поэтому у меня нет своей альтернативной оценки.
Тем не менее, я хочу от всего сердца поздравить всех победителей и пожелать больших успехов всем участникам, которые призов не получили. В следующий раз у вас обязательно выйдет намного лучше, всё приходит с опытом!

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

раскрыть
ZlaYa1000, что за грязные намёки?! :D
30

» WarCraft 3 / Триггерная мина

Либо заносим жуков в группу, и каждые 0.25 сек ищем врагов в округ каждого жука...
На порядки менее производительное решение.
30

» Edemium / Edemium – Trailer

На unity или том же unreal это делается в считанные мгновения.
Пруф или энеми.

Ради лайков?
Ради удовольствия от чистого творческого процесса, свободного от необходимости закрывать насущные потребности, например.
30

» WarCraft 3 / Разница в объявлении real

Лучше писать с точкой, и самому потом проще сходу определять тип, и скрипт при работе будет чуть-чуть, но быстрее.
30

» WarCraft 3 / Система атрибутов

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

» Огонёк Феникса / очередной амбициозный гей-дизайнер

готов выслушать идеи и предложить способы монетизации эного.
Идея: опубликуй своё портфолио.
30

» WarCraft 3 / Last Midnight v4.8

было бы неплохо для начала составить список
Это всегда полезное начинание =)
30

» WarCraft 3 / Jass как первый ЯП?

KingMaximax, не могу говорить за всех, конечно, но лично я крайне рад, что меня не пытались научить АСМ в качестве первого языка.