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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Занесение деревьев в группу для удаления
Занесение деревьев в группу для удаления
Razor_dexДата: Воскресенье, 22 Июля 2012, 22:51:54 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
Нужны способы как то занести в группу именно ту кучу деревьев, при их триггерном создании на GUI
Удаление декораций в радиусе не подходит.
 

NaturekidДата: Понедельник, 23 Июля 2012, 00:29:42 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Ну дык массив переменных "декорация". Чем не вариант.

 

Razor_dexДата: Понедельник, 23 Июля 2012, 01:12:45 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
Quote (Naturekid)
Ну дык массив переменных "декорация". Чем не вариант.

опровергаю этот вариант)
действие происходит таким образом:
 

SirNikolasДата: Понедельник, 23 Июля 2012, 08:15:39 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Naturekid)
массив переменных "декорация"
this. На vJass'е делается просто и понятно. Если хочешь, скинь весь триггер, сделаю.


 

Razor_dexДата: Понедельник, 23 Июля 2012, 12:41:43 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
SirNikolas, желательно хотелось бы решения на GUI, избегаю работы с JNGP :)
Quote (Naturekid)
массив переменных "декорация"

Quote (SirNikolas)
this

странно, но как это может помочь, если я правильно понял, что для это нужно будет присваивать к каждому дереву свою переменную массив huh
вот знаю способ, как на GUI через CS удалять множество спецэффектов, через bj.. может с декорациями есть такой способ? :D
Quote (SirNikolas)
На vJass'е делается просто и понятно. Если хочешь, скинь весь триггер, сделаю.



был бы признателен, если с комментариями ^_^


Сообщение отредактировал Razor_dex - Понедельник, 23 Июля 2012, 12:51:01
 

SirNikolasДата: Понедельник, 23 Июля 2012, 13:21:45 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Какая вариация у декорации?

 

Razor_dexДата: Понедельник, 23 Июля 2012, 13:44:16 | Сообщение # 7
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
Quote (SirNikolas)
Какая вариация у декорации?

вариацию можно любую, но там и по умолчанию 5 стоит
это стандартное "Ашенвальское дерево", только без текстур путей :)
 

SirNikolasДата: Понедельник, 23 Июля 2012, 14:13:04 | Сообщение # 8
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
У тебя стоит случайное число в диапаз/*дальше ничего не видно*/.

Добавлено (23 Июля 2012, 14:13:04)
---------------------------------------------
Вот.

Code
scope Mokuton {
    include "cj_types_priv.j";

    define {
        //Заклинание героя
        private SPELL = WEATHER_ON_MARS;
        //Raw-код дамми
        private DUMMY = WEATHER_ON_MARS;
        //Raw-код дерева
        private DESTRUCTABLE = WEATHER_ON_MARS;
        //Способность дамми
        private ABILITY = WEATHER_ON_MARS;
        //Время существования в зависимости от уровня (может быть 3. + level * 2.)
        private TIME(level) = 5.;
    }

    private struct Spell {
        destructable array d[145];
        unit array u[145];
        timer t;

        void Create(player p, int i, int level, real x, real y, real r, real d) {
            real a = .0;
            loop {
                real x1 = x + Cos(a) * r, y1 = y + Sin(a) * r;
                .u[i] = CreateUnit(p, DUMMY, x1, y1, GetRandomReal(.0, 6.283));
                SetUnitAbilityLevel(.u[i], ABILITY, level);
                UnitApplyTimedLife(.u[i], 'BTLF', TIME);
                SetUnitExploded(.u[i], true);
                .d[i] = CreateDestructable(DESTRUCTABLE, x1, y1, GetRandomReal(.0, 6.283), 1., 5);
                SetDestructableAnimation(.d[i], "birth");
                a += d;
                exitwhen a >= 6.283;
                i++;
            }
        }
    };

    callback onUnitSpellEffect(SPELL) {
        unit u = GetTriggerUnit();
        player p = GetOwningPlayer(u);
        int level = GetUnitAbilityLevel(u, SPELL);
        real x = GetWidgetX(u), y = GetWidgetY(u);
        Spell s = Spell.create();
        s.Create(p, 0,  level, x, y, 150., .419);
        s.Create(p, 15, level, x, y, 300., .209);
        s.Create(p, 45, level, x, y, 450., .157);
        s.Create(p, 85, level, x, y, 600., .105);
        s.t = CreateTimer();
        TimerStart(s.t, TIME(level), false, \
            lambda void() {
                handle h = GetExpiredTimer();
                int s = 1;
                whilenot h == Spell(s).t { s += 145; }
                int i = 0;
                loop {
                    RemoveDestructable(Spell(s).d[i]);
                    exitwhen i == 144;
                    i++;
                }
                DestroyTimer(Spell(s).t);
                Spell.destroy(s);
                flush locals;
            }
        );
        flush locals;
    }

    callback onUnitDeath() {
        handle h = GetTriggerUnit();
        int s = 1;
        whilenot Spell(s).u[0] == null {
            if TimerGetRemaining(Spell(s).t) > .01 {
                int i = 0;
                loop {
                    if h == Spell(s).u[i] {
                        KillDestructable(Spell(s).d[i]);
                        flush locals;
                        return;
                    }
                    exitwhen i == 144;
                    i++;
                }
            }
            s += 145;
        }
        flush locals;
    }
}
WEATHER_ON_MARS в начале замени на raw-коды (Ctrl + D в РО, четыре знака до двоеточия, заключить в одиночные кавычки. Например: 'A000', 'h003' и т. д.).


 

Razor_dexДата: Понедельник, 23 Июля 2012, 14:13:32 | Сообщение # 9
7 уровень
Группа: Проверенные
Сообщений: 487
Награды: 0
Репутация: 751
Блокировки:
SirNikolas, если ты о действии, то там случайное число между 1 и 4
вот полный триггер


Сообщение отредактировал Razor_dex - Понедельник, 23 Июля 2012, 14:14:01
 

NaturekidДата: Понедельник, 23 Июля 2012, 16:02:56 | Сообщение # 10
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Что вы, до сих пор не разобрались?)
Вот это я думаю подойдёт - http://rghost.ru/39369011
Наведи сайленс куда-нить - и в регионе с деревьями создадутся дополнительные, спустя 4 сек пропадут.
Если я по невнимательности не спутал - то наработка MUI. с 2 вариантами....


 

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

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