Сейчас 08:49:16 Вторник, 7 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Stun на Jass.
Stun на Jass.
SreziДата: Понедельник, 23 Июля 2012, 18:24:59 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Кто может сделать оглушение "юнита" на Jassе?

Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

SirNikolasДата: Понедельник, 23 Июля 2012, 18:34:10 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Я могу. И уже делал здесь.

 

SreziДата: Понедельник, 23 Июля 2012, 18:48:04 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Quote (SirNikolas)
Я могу. И уже делал здесь.


а как скачать то =\ ? или хотябы увидеть код

Добавлено (23 Июля 2012, 18:48:04)
---------------------------------------------
Все разобрался и скачал. Хм.... Зачем мне такой спелл пак, можешь мне только "стан" вырезать и скинуть сюда?


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

NaturekidДата: Понедельник, 23 Июля 2012, 18:48:30 | Сообщение # 4
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:




Сообщение отредактировал Naturekid - Понедельник, 23 Июля 2012, 18:49:06
 

SirNikolasДата: Понедельник, 23 Июля 2012, 18:58:10 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
include "cj_types.j"

library_once ctor {
    module ctor {
        private static integer max = 0;
        private static boolean array empty;

        static thistype create() {
            thistype this = 0;
            loop {
                if this >= max {
                    max++;
                    this.ctor_new();
                    break;
                }
                exitwhen empty[this];
                this++;
            }
            empty[this] = false;
            return this;
        }

        nothing destroy() {
            empty[this] = true;
        }
    }
}

struct UnitEffect extends array {
    private static int max = 0;
    private static bool array empty;
    unit u;
    effect e;
    group g;

    static thistype find(handle h) {
        thistype this = 0;
        whilenot this >= max {
            if h == this.u {
                return this;
            }
            this++;
        }
        return -1;
    }

    static thistype create() {
        thistype this = 0;
        loop {
            if this >= max {
                max++;
                break;
            }
            exitwhen empty[this];
            this++;
        }
        empty[this] = false;
        return this;
    }

    void destroy() {
        this.u = null;
        empty[this] = true;
    }
};

struct Shock extends array {
    private static group G;
    private group g;
    private timer t;

    private void ctor_new() {
        .t = CreateTimer();
    }

    implement ctor;

    static void Start(group g, real time) {
        thistype this = create();
        this.g = g;
        G = g;
        ForGroup(g, \
            lambda void() {
                UnitEffect ue = UnitEffect.find(GetEnumUnit());
                if ue == -1 {
                    ue = UnitEffect.create();
                    ue.u = GetEnumUnit();
                    ue.e = AddSpecialEffectTarget(SHOCK_EFFECT, ue.u, "overhead");
                    UnitAddAbility(ue.u, SHOCK_A);
                    PauseUnit(ue.u, true);
                } else {
                    GroupRemoveUnit(ue.g, ue.u);
                    ue.g = G;
                }
            }
        );
        TimerStart(this.t, time, false, \
            lambda void() {
                handle h = GetExpiredTimer();
                thistype this = 0;
                whilenot h == this.t { this++; }
                loop {
                    unit u = FirstOfGroup(this.g);
                    exitwhen u == null;
                    GroupRemoveUnit(this.g, u);
                    UnitEffect ue = UnitEffect.find(u);
                    DestroyEffect(ue.e);
                    UnitRemoveAbility(ue.u, SHOCK_A);
                    ue.destroy();
                    PauseUnit(u, false);
                }
                DestroyGroup(this.g);
                this.destroy();
                flush locals;
            }
        );
    }
};

Добавлено (23 Июля 2012, 18:58:10)
---------------------------------------------
Вроде, ничего не забыл.


 

SreziДата: Понедельник, 23 Июля 2012, 19:05:40 | Сообщение # 6
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Спасибо, это конечно не то, на что я рассчитывал) Но всё равно спасибо.

Добавлено (23 Июля 2012, 19:05:40)
---------------------------------------------
Кстати, у тебя есть скайп? Связаться хочу с тобой


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

IlushaДата: Понедельник, 23 Июля 2012, 19:06:44 | Сообщение # 7
8 уровень
Группа: Проверенные
Сообщений: 550
Награды: 0
Репутация: 295
Блокировки:
жесть, это всего лишь стан на жассе а кода столько...
 

SreziДата: Понедельник, 23 Июля 2012, 19:12:43 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Quote (Ilusha)
жесть, это всего лишь стан на жассе а кода столько...


Он просто усложнил) можно гораздо проще это всё расписать.


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

SirNikolasДата: Вторник, 24 Июля 2012, 09:33:52 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Это просто пауза с навешиванием эффекта, который исчезает при сме... Черт, я забыл вырезать альтернативное удаление эффекта!

Srezi, а какой стан тебе нужен?


 

SreziДата: Вторник, 24 Июля 2012, 12:44:34 | Сообщение # 10
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Quote (SirNikolas)
Это просто пауза с навешиванием эффекта, который исчезает при сме... Черт, я забыл вырезать альтернативное удаление эффекта! Srezi, а какой стан тебе нужен?


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


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Stun на Jass.
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz