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

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

Ответ
 
Diaboliko
Silenced by Diaboliko
offline
Опыт: 16,108
Активность:
Помогите с функцией...
У меня возник баг(далеко не 1...) с функцией прыжка, которую я сделал лишь на половину, а то и меньше... Вот функция(не знаю правильно ли я вообще делаю...):

Код:
function Trig_Jump_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A000' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Jump_Actions takes nothing returns nothing
    local effect e=null
    local effect e2=null
    local trigger t=null
    local unit u=GetSpellAbilityUnit()
    local point p=GetUnitLoc(u)
    local point p2=null
    local real g=GetUnitFacing(u)
    call SetUnitPathing( u, false )
    call AddSpecialEffectLocBJ( GetUnitLoc(u), "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
    call CreateTrigger()
    set t=CreateTrigger()
    call TriggerRegisterTimerEventPeriodic( t, 0.05 )
    call TriggerAddAction (trigger whichTrigger, ???)
    // Там, где стоит ???, должны стоять несколько действий.
    // Как их туда засунуть?(тут лишь 1...)
    set p2 = OffsetLocation(p, ( CosBJ(g)) * ( GetUnitMoveSpeed(u) / 20.00 ) ), ( SinBJ(g) * ( GetUnitMoveSpeed(u) / 20.00 ) ))
    call SetUnitPositionLoc( u, Location(GetLocationX(p2)), GetLocationY(p2)) )
    // Окончание прыжка
    call PolledWait( ( ( ( I2R(GetHeroStatBJ(bj_HEROSTAT_STR, u, true)) * ( 3.00 + ( 2.00 * I2R(GetUnitAbilityLevelSwapped('A000', u)) ) ) ) / GetUnitMoveSpeed(u) ) - 0.27 ) )
    call SetUnitPathing( u, true )
    call UnitRemoveAbility(u, 'B000')
    call UnitRemoveType(u, UNIT_TYPE_???)
    // Тут что должно быть вместо ???
    set u=null
    call DestroyEffect( e )
    call DestroyEffect( e2 )
    call DestroyTrigger( t )
    call DestroyPoint( p )
    set e=null
    set e2=null
    set t=null
    set p=null
    set p2=null
endfunction

//===========================================================================
function InitTrig_Jump takes nothing returns nothing
    set gg_trg_Jump = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Jump, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Jump, Condition( function Trig_Jump_Conditions ) )
    call TriggerAddAction( gg_trg_Jump, function Trig_Jump_Actions )
endfunction

Вот сама карта, прошу помочь доделать правильный вариант функции... Или просто помочь...
P.S. Промазал с темой...
Прикрепленные файлы
Тип файла: w3x Panda Fights 2009.w3x (33.6 Кбайт, 25 просмотров )
[+] 1 пункт от ADOLF: 4.5 (тема не в том разделе)
Старый 27.09.2009, 11:28
Diaboliko
Silenced by Diaboliko
offline
Опыт: 16,108
Активность:
Мне кто- нибудь вообще поможет а???
Старый 28.09.2009, 10:44
Arty3ooo
...
offline
Опыт: 3,125
Активность:
Албанский код Оо
Не буду переписывать весь код... отвечу лишь на твои вопросы.
private function AnotherAction takes nothing returns nothing
//Тут твои действия для триггера TriggerRegisterTimerEventPeriodic(t,.05)
endfunction

//.................
call TriggerRegisterTimerEventPeriodic(t,.05)
call TriggerAddAction(t,function AnotherAction)
//.................
call UnitRemoveType(u, UNIT_TYPE_???) // смотря что ты хотел здесь Оо
Отходи от полед вейтов и бж
Arty3ooo добавил:
з.ы: мб ты имел в виду просто удаление юнита?
Старый 28.09.2009, 11:21
Diaboliko
Silenced by Diaboliko
offline
Опыт: 16,108
Активность:
Че за бж? А с таймерами я не в ладах... Найти бы качественный пример использования... В ремов баф я хотел убрать баф на основе Безумие с кодом B000... Спасибо тебе всей-равно большое))) Тему НЕЛЬЗЯ закрывать пока-что...

Diaboliko добавил:
Теперь может кто-нибуть проверить правильность?)))) А то у мя лажа тут... JNGP выдает ошибку про поинты...
Старый 28.09.2009, 11:37
Arty3ooo
...
offline
Опыт: 3,125
Активность:
Удаление бафа
call UnitRemoveAbility(u,'B000')
Старый 28.09.2009, 11:49
Diaboliko
Silenced by Diaboliko
offline
Опыт: 16,108
Активность:
Спасибо. Кстати а функцией
call UnitRemoveAbility(u, 'B000')
call UnitRemoveType(u, UNIT_TYPE_B000)
Я удаляю бафф и эффект баффа? или 2 кусок еще и абилку удаляет (я это увидел где-то и списал...)

Отредактировано Diaboliko, 28.09.2009 в 12:22.
Старый 28.09.2009, 12:01
JamesBlack
black mind
offline
Опыт: 6,595
Активность:
Вообще советую юзать http://jass.sourceforge.net/ - очень часто помогает.

call UnitRemoveType(u, UNIT_TYPE_B000)... UNIT_TYPE_B000 - это видимо означает, что юнит в принципе может иметь эту абилку. Если его удалить то не может. Честно - не вижу никакой пользы от этой строки, она чисто "для себя". Только если потом делать проверку на IsUnitType(u, UNIT_TYPE_B000) оно может пригодится.
Старый 09.10.2009, 10:27
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
нету типа переменной point есть location
ps и функция удаления
native RemoveLocation takes location whichLocation returns nothing
Старый 09.10.2009, 11:32
Diaboliko
Silenced by Diaboliko
offline
Опыт: 16,108
Активность:
в этом я уже разобрался))) триггер мне исправил один чел...
JamesBlack- я тебя не понял...
Старый 09.10.2009, 12:24
JamesBlack
black mind
offline
Опыт: 6,595
Активность:
Вот такие константы типа unittype существуют (http://jass.sourceforge.net/doc/api/common_j-types-unittype.shtml). Погляди названия, тогда поймешь что это за переменная типа unittype.

common.j: UNIT_TYPE_ANCIENT, UNIT_TYPE_ATTACKS_FLYING, UNIT_TYPE_ATTACKS_GROUND, UNIT_TYPE_DEAD, UNIT_TYPE_ETHEREAL, UNIT_TYPE_FLYING, UNIT_TYPE_GIANT, UNIT_TYPE_GROUND, UNIT_TYPE_HERO, UNIT_TYPE_MAGIC_IMMUNE, UNIT_TYPE_MECHANICAL, UNIT_TYPE_MELEE_ATTACKER, UNIT_TYPE_PEON, UNIT_TYPE_PLAGUED, UNIT_TYPE_POISONED, UNIT_TYPE_POLYMORPHED, UNIT_TYPE_RANGED_ATTACKER, UNIT_TYPE_RESISTANT, UNIT_TYPE_SAPPER, UNIT_TYPE_SLEEPING, UNIT_TYPE_SNARED, UNIT_TYPE_STRUCTURE, UNIT_TYPE_STUNNED, UNIT_TYPE_SUMMONED, UNIT_TYPE_TAUREN, UNIT_TYPE_TOWNHALL, UNIT_TYPE_UNDEAD
Старый 09.10.2009, 13:52
Diaboliko
Silenced by Diaboliko
offline
Опыт: 16,108
Активность:
Эмм... как бы страницы нету...
Старый 10.10.2009, 13:23
BK.Jugg
террорист из КиП
offline
Опыт: 27,066
Активность:
Старый 10.10.2009, 13:26
JamesBlack
black mind
offline
Опыт: 6,595
Активность:
Diaboliko:
Эмм... как бы страницы нету...
Ссылка просто прихватила скобку случайно...
Старый 10.10.2009, 14:40
Diaboliko
Silenced by Diaboliko
offline
Опыт: 16,108
Активность:
кто б объяснил еще...
Старый 14.10.2009, 12:20
Ответ

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

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

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

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



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