XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
Больше 4х способностей на предмете
В общем, у меня есть предмет, в котором есть две активных способности: 1)На основе виндволка - пустышка, которую я юзаю. 2)Спелбук - который содержит сами свойства предмета, ибо так они не умещаются. При использовании, пустышка может не сработать и у нее не пойдет кд, причем так будет до бесконечности; было когда спел можно использовать только 1 раз. Мне нужно как-то избавиться от этой проблемы.
» Код
scope FallenAngel initializer FallenAngelInit {

    boolean FallenAngelCond() {
    return GetSpellAbilityId() == 'A0LN'
    }

    function FallenAngelCast2 takes void returns void
        timer t = GetExpiredTimer()
        int id = GetHandleId(t)
        unit u = LoadUnitHandle(h, id, 0)
        real time = LoadReal(h, id, 2)
        real x = GetUnitX(u)
        real y = GetUnitY(u)
        real x1 = LoadReal(h, id, 5)
        real y1 = LoadReal(h, id, 6)
        player p = GetOwningPlayer(u)
        int ip = GetPlayerId(p)
        group g = LoadGroupHandle(h, id, 8)
        if time < 5 {
            GroupEnumUnitsInRange(G, x, y, 500, Base)
            loop
                E = FirstOfGroup(G)
                if Condition_Base(p, E) then
                    n = CreateUnit(p, 'h019', x, y, 0)
                    UnitAddAbility(n, 'A0LO')
                    SetUnitAbilityLevel(n, 'A0LO', 1)
                    UnitApplyTimedLife(n, 'BTLF', 1)
                    IssueTargetOrder(n, "thunderbolt", E)
                    if IsUnitInGroup(E, g) == false then
                        SetUnitTimeScale(E, 0)
                    endif
                endif
                GroupRemoveUnit(G, E)
                exitwhen E == null
            endloop
            SaveReal(h, id, 2, time + 0.1)
        else
            loop
                E = FirstOfGroup(g)
                SetUnitTimeScale(E, 1)
                GroupRemoveUnit(g, E)
                exitwhen E == null
            endloop
            PauseTimer(t)
            DestroyGroup(g)
            DestroyTimer(t)
            FlushChildHashtable(h, id)
            }
            p = null
            t = null
            u = null
            g = null
        endfunction

        function FallenAngelCast takes void returns void
            timer t = CreateTimer()
            unit u = GetTriggerUnit()
            int id = GetHandleId(t)
            real x = GetUnitX(u)
            real y = GetUnitY(u)
            player p = GetOwningPlayer(u)
            int ip = GetPlayerId(p)
            SaveGroupHandle(h, id, 8, CreateGroup())
            SaveUnitHandle(h, id, 0, u)
            SaveReal(h, id, 2, 0)
            UnitApplyTimedLife(CreateUnit(p, 'e0HF', x, y, 0), 1, 5)
            UnitApplyTimedLife(CreateUnit(p, 'e0HG', x, y, 0), 1, 5)
            SaveReal(h, id, 5, x)
            SaveReal(h, id, 6, y)
            TimerStart(t, 0.1, true, function FallenAngelCast2)
            t = null
            p = null
            u = null
        endfunction

        void FallenAngelInit (){
        trigger t = CreateTrigger()
        integer i = 0
        loop
            TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
            i++ 
            exitwhen i == bj_MAX_PLAYER_SLOTS
        endloop
        TriggerAddAction(t, function FallenAngelCast)
        TriggerAddCondition(t, Condition(function FallenAngelCond))
        t = null
        }
        }
Миниатюры
Кликните на картинку для увеличения
Название:  Screen.jpg
Просмотров: 42
Размер:  212.2 Кбайт  
[+] замечание от DioD: безсодержательное название темы.

Отредактировано Vadik29, 25.04.2013 в 17:10.
Старый 25.04.2013, 17:01
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
где скрин триггера завязанный на пустышке?
Старый 25.04.2013, 17:04
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
Hate, Добавил код.
Старый 25.04.2013, 17:13
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
попробуйте отключиь код и посмотреть остались ли проблемы
Старый 25.04.2013, 17:17
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
Hate, Пробовал - бесполезно. Зато если убрать спелбук, то все нормально работает.
Старый 25.04.2013, 17:19
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,449
Активность:
Vadik29, виндволк первый в списке скиллов предмета?
Если нет то так и будет баг с кд, когда оно не отображается...
Старый 25.04.2013, 18:00
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
quq_CCCP, Первый.
Старый 25.04.2013, 18:03
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
Vadik29:
Hate, Пробовал - бесполезно. Зато если убрать спелбук, то все нормально работает.
сам ответил, дело в спелл буке, пробуй другую основу абилки 1, или что-то делай со спел буком.
Старый 25.04.2013, 18:33
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,449
Активность:
Vadik29, а спелбук в запрещенном виде не пробовал добавлять юниту когда он берёт предмет, ну и удалять соответственно когда он его выбрасывает...
Старый 25.04.2013, 18:53
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 11:41.