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

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

Ответ
 
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
Не работает код.
Вот уже довольно долго сижу над кодом, дебажу, а проблему найти никак не могу. Вторая часть скила вообще не запускается , даже дамми не создает.
» Вот код:
scope CoupdeVent initializer CoupdeVentInit {

    boolean CoupdeVentCond() {
    return GetSpellAbilityId() == 'A09Q'
    }

    function CoupdeVentCast2 takes void returns void
        timer t = GetExpiredTimer()
        integer id = GetHandleId(t)
        integer level = LoadInteger(h, id, 0)
        group g = LoadGroupHandle(h, id, 1)
        real x = LoadReal(h, id, 2)
        real y = LoadReal(h, id, 3)
        real dur = LoadReal(h, id, 4) + 0.05
        real speed = LoadReal(h, id, 5)
        real dist = LoadReal(h, id, 6) + speed
        real tx
        real ty
        real a
        G = CopyGroup(g)
        if dur < 2 {
            loop
                E = FirstOfGroup(G)
                exitwhen E == null
                tx = GetUnitX(E)
                ty = GetUnitY(E)
                a = Atan2(ty - y, tx - x)
                if GetUnitState(E, UNIT_STATE_LIFE) > 0.405 and not IsTerrainPathable(tx + speed * Cos(a), ty + speed * Sin(a), PATHING_TYPE_FLYABILITY) {
                    SetUnitX(E, tx + speed * Cos(a))
                    SetUnitY(E, ty + speed * Sin(a))
                    DestroyEffect(AddSpecialEffect("Objects\\Spawnmodels\\Undead\\ImpaleTargetDust\\ImpaleTargetDus​t.mdl", tx, ty))
                else
                    GroupRemoveUnit(g, E)
                }
                GroupRemoveUnit(G, E)
            endloop
            SaveReal(h, id, 4, dur)
            SaveReal(h, id, 5, speed - 0.5)
            SaveReal(h, id, 6, dist)
        else
            GroupClear(g)
            DestroyGroup(g)
            PauseTimer(t)
            DestroyTimer(t)
            FlushChildHashtable(h, id)
            }

            t = null
            g = null
        endfunction

        function CoupdeVentCast takes void returns void
            unit u = GetTriggerUnit()
            real x = GetUnitX(u)
            real y = GetUnitY(u)
            real x1
            real y1
            boolexpr b = Condition(function Tornado_Filter)
            group g = CreateGroup()
            timer t = CreateTimer()
            integer id = GetHandleId(t)
            player p = GetOwningPlayer(u)
            real dmg = (GetUnitAbilityLevel(u, 'A09Q') + 3) * GetHeroStr(u, true)
            real i = 1
            real a = Atan2(GetSpellTargetY() - y, GetSpellTargetX() - x)
            UnitApplyTimedLife(CreateUnit(p, 'e04S', x, y, a * bj_RADTODEG), 1, 0.6)
            loop
                exitwhen i > 13
                x1 = x + 100 * i * Cos(a)
                y1 = y + 100 * i * Sin(a)
                GroupEnumUnitsInRange(G, x1, y1, 300, b)
                UnitApplyTimedLife(CreateUnit(p, 'e04R', x1, y1, a * bj_RADTODEG), 1, 1)
                UnitApplyTimedLife(CreateUnit(p, 'e04M', x1, y1, a * bj_RADTODEG), 1, 1)
                UnitApplyTimedLife(CreateUnit(p, 'e04T', x1, y1, a * bj_RADTODEG), 1, 1)
                i++
            endloop
            g = CopyGroup(G)
            loop
                E = FirstOfGroup(G)
                exitwhen E == null
                UnitDamageTarget(u, E, dmg, false, false, null, null, null)
                GroupRemoveUnit(G, E)
                n = CreateUnit(p, 'h019', x, y, 0)
                UnitAddAbility(n, 'A09B')
                SetUnitAbilityLevel(n, 'A09B', 4)
                UnitApplyTimedLife(n, 'BTLF', 1)
                IssueTargetOrder(n, "thunderbolt", E)
            endloop
            SaveInteger(h, id, 0, level)
            SaveGroupHandle(h, id, 1, g)
            SaveReal(h, id, 2, x)
            SaveReal(h, id, 3, y)
            SaveReal(h, id, 5, 50.)
            TimerStart(t, 0.05, true, function CoupdeVentCast2)
            u = null
            DestroyBoolExpr(b)
            b = null
            g = null
            t = null
        endfunction

//===========================================================================
        void CoupdeVentInit() {
        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 CoupdeVentCast)
        TriggerAddCondition(t, Condition(function CoupdeVentCond))
        t = null
        }

        }


//Code indented using The_Witcher's Script language Aligner
//Download the newest version and report bugs at www.hiveworkshop.com

Отредактировано Vadik29, 30.11.2012 в 21:42.
Старый 30.11.2012, 21:18
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
без отладки

Отредактировано NIGHTWOLF, 01.12.2012 в 12:51.
Старый 30.11.2012, 21:26
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
Сюда выложил чистый без дебагов, а так на первом цикле прерывается Т_Т
Старый 30.11.2012, 21:29
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
Vadik29,
ну и
ты зная место где ошибка не можешь её исправить?
дебаж каждую строку проверяй, нам чтобы исправить надо идти в карте создавать триггер делать объекты и т.д
Старый 30.11.2012, 21:32
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,845
Активность:
16GB, Я создал на случай, что мб кто-то взглянув на код заметит фэил.
Vadik29 добавил:
Вот теперь вроде как починил немного, но почему-то отталкивает только если коснуться концом.
Старый 30.11.2012, 21:50
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Vadik29, не бейся ты с циклами, юзай ForGroup и глобалки...
Старый 01.12.2012, 08:01
DioD

offline
Опыт: 45,134
Активность:
нет отладки давай довсвиданья
Старый 01.12.2012, 09:59
Ответ

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

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

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

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



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