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

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

Ответ
 
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
Fatal Error, error in code
Добрый день.
Подскажите что я неправильно делаю в этом коде:
» code
scope Burrow
include "cj_types_priv.j"
define {
private SpellId = 'A002'
private Time = 0.80
private Radius = 200.00
private Damage = 200.00
}
globals
private boolexpr b = null
endglobals

private bool DamageGroup() {
    unit u = GetFilterUnit()
    unit c = LoadUnitHandle(H, Id(GetExpiredTimer()), 0)
    if IsUnitEnemy(u, GetOwningPlayer(c)) and GetWidgetLife(u) > 0.405 then
    UnitDamageTarget(c, u, Damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_METAL_HEAVY_SLICE)
    endif
    u=null
    c=null
    return false
    }
    
private void Attack() {
    timer t = GetExpiredTimer()
    unit u = LoadUnitHandle(H, Id(t), 0)
    real x = GetUnitX(u)
    real y = GetUnitY(u)
    group g = CreateGroup()
    GroupEnumUnitsInRange(g, x, y, Radius, b)
    //DestroyGroup(g)
    //RemoveSavedHandle(H, Id(t), 0)
    PauseTimer(t)
    t=null
    u=null
    g=null
    }
    
private void Actions() {
    unit u = GetTriggerUnit()
    //timer t 
    BJDebugMsg("1")
     //   SetUnitAnimation(u, "attack")
     //   b = Condition(function DamageGroup)
     //   t = CreateTimer()
     //   SaveUnitHandle(H, Id(t), 0, u)
     //   TimerStart(t, Time, false, function Attack)
    //t=null
    u=null
    }
private bool Conditions() {
return GetIssuedOrderId() == OrderId("unburrow")
}
//===========================================================================
function InitTrig_Burrow takes nothing returns nothing
    gg_trg_Burrow = CreateTrigger(  )
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(0),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(1),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(2),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(3),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(4),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(5),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(6),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(7),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(8),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerRegisterPlayerUnitEvent(gg_trg_Burrow,Player(9),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
    TriggerAddCondition( gg_trg_Burrow, Condition( function Conditions ) )
    TriggerAddAction( gg_trg_Burrow, function Actions )
endfunction
endscope
выбивает фатал как только использую закопатся
AlexKARASb добавил:
то-есть не запуская ничего, просто ждал пока выпадет 1 при анбарроу
AlexKARASb добавил:
меня инетересует отлов анбарроу, мне нужно после него делать действия
но вар неадекватно фаталит, пробему понять не могу, пробовал и через другое аналогично(спел с логической)
AlexKARASb добавил:
и наверно я ошибся с разделом, за это сори
Старый 23.05.2010, 21:20
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
фатал случается с таким кодом? или когда все закоменченное не закоменченно
важно это
во-первых: не инитиализируется b
все пашет
но вар неадекватно фаталит, пробему понять не могу, пробовал и через другое аналогично(спел с логической)
за основу брал "канал"?
Старый 23.05.2010, 22:51
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
bee, про основу с канал делал
но было именно интересно через анбарроу
аналогично(спел с логической)
а это я имел ввиду через логическую и плеер юнит ивент пытался ловить у спела барроу
просто барроу уменьшает затраты действий с задуманым
Старый 23.05.2010, 23:13
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
если изменять order способности через способность канал, то он возращяет null.
то есть если ты нажимал 'шифт + enter' и вводил свой ордер иначе все норм.
посмотри в примере код и попробуй его вставить у меня все пашет
+ проверь другие триггеры и отключай, проверяя
самая частая причина фатала безконечный цикл
и речь идет не только о loop'e
а и о триггерах, в которых вызывается функция, которая вызывает вызывающюю функцию
бред, но легко понять
короче причина скорее в других триггерах
Старый 23.05.2010, 23:31
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
бред, но легко понять
короче причина скорее в других триггерах
код полностью чист, в прямом смысле этого слова, карта чиста и в ней 1 триг
отгда попробую на новой создать
Старый 23.05.2010, 23:47
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
ты про cs
забыл, возможно
хотя это глупо
Старый 23.05.2010, 23:52
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
меня одолевает смутное сомнение О.о, вообще без кода фаталит барроу, когда юзну любой спел кроме него и после барроу все норм мистика = мои кривые руки натворившие непонятно что
Старый 24.05.2010, 00:39
Ответ

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

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

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

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



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