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

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

Ответ
 
zero index
Фантома же!
offline
Опыт: 886
Активность:
Ошибка в коде
Dimok:
Название:Вендета
Способ исполнения: всё равно
Цель: герой,юниты
Для героя: да
Описание: Герой имеет шанс(%) отразит 100 % демаги обратно врагу.
1)3% и 100% возрат(Физический и магический,то есть любой скилл)
2)6% и 100% возрат(Физический и магический,то есть любой скилл)
3)9% и 100% возрат(Физический и магический,то есть любой скилл)
4)12% и 100% возрат(Физический и магический,то есть любой скилл)
5)15% и 100% возрат(Физический и магический,то есть любой скилл)
6)18% и 100% возрат(Физический и магический,то есть любой скилл)
для этого пишу код:
function Trig_Vendetta_Conditions takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('AHad', GetAttackedUnitBJ()) != 0 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Vendetta_Actions takes nothing returns nothing
    local real d = GetEventDamage()
    local integer r = GetRandomInt(1, 100)
    if ( r <= ( 3 * GetUnitAbilityLevelSwapped('AHad', GetAttackedUnitBJ()) )  ) then
        call SetUnitLifeBJ( GetAttacker(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetAttacker()) - d ) )
        call AddSpecialEffectTargetUnitBJ( "chest", GetAttacker(), "Abilities\\Spells\\Orc\\FeralSpirit\\feralspiritdone.mdl" )
        call PolledWait( 2 )
        call DestroyEffectBJ( GetLastCreatedEffectBJ() )
    else
    endif
endfunction

//===========================================================================
function InitTrig_Vendetta takes nothing returns nothing
    set gg_trg_Vendetta = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Vendetta, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddCondition( gg_trg_Vendetta, Condition( function Trig_Vendetta_Conditions ) )
    call TriggerAddAction( gg_trg_Vendetta, function Trig_Vendetta_Actions )
endfunction
syntax check доставляет:
set gg_trg_Vendetta = CreateTrigger( ) => Undeclared variable gg_trg_Vendetta
  1. что с этим делать?
  2. правильно ли я написал код?
  3. заклинание вообще не работает :( (даже когда UnitDamageTarget вместо SetUnitLife) проявляется только спецэфект, а урона юнит не получал.

Отредактировано ShadoW DaemoN, 17.03.2010 в 07:24.
Старый 15.03.2010, 07:06
Doc

offline
Опыт: 63,163
Активность:
Лол. Ужасный и неправильный код. С чего ты взял что при событий Юнит атакован будет отлавливаться урон? Это событие замаха. Также в коде зачем то куча ненужных бж.
Старый 15.03.2010, 07:12
zero index
Фантома же!
offline
Опыт: 886
Активность:
ну эт мой самый первый скилл на джассе, что поделать то...
С чего ты взял что при событий Юнит атакован будет отлавливаться урон?
не с чего, поэтому и спрашиваю...
Старый 15.03.2010, 07:20
Mr_ILYAS
Kicked by XimikS
offline
Опыт: 492
Активность:
Почитай ка этот мой код
Напомню, что, чтобы разобраться в коде, нужно читать его с низу вверх по функциям.
Он частично является тем, что тебе нужно, просто добавь туда отлавливание урона и возвращай его тому кто наносит, и лечи того кто получил урон.

Отредактировано Mr_ILYAS, 15.03.2010 в 08:12.
Старый 15.03.2010, 08:06
Doc

offline
Опыт: 63,163
Активность:
Тоже утечки. Запомни что после return функция обрывается и действия перестают выполняться. Зачем лишняя точка тоже не понял. Так же не очень рациональное создание тригера при каждом использовании. Все можно было сделать без хт. Также твое событие реагирует на ЛЮБОЙ урон. То есть от заклинаний тоже.
Старый 15.03.2010, 09:32
Mr_ILYAS
Kicked by XimikS
offline
Опыт: 492
Активность:
ну а он что просил? ему и нужно отражать и магический и физический . . .
по поводу return, Этого я тогда еще не знал, кстати спасибо, что напомнил
Старый 15.03.2010, 09:54
Doc

offline
Опыт: 63,163
Активность:
Ну так действие только при атаке происходит:)
Старый 15.03.2010, 10:09
XOR

offline
Опыт: 38,284
Активность:
xgm.ru/page/414 , xgm.ru/forum/showthread.php?t=18742 доктор ты тоне выпендривайся ^_^
XimikS добавил:
И писать советую сразу на жассе а не переводить из гуи и чего то править.
Старый 15.03.2010, 10:23
zero index
Фантома же!
offline
Опыт: 886
Активность:
Mr_ILYAS, спасибо, приблизительно понял.. но про точку чо то не очень) в частности зачем она вообще нужна
XimikS, вижу у себя 2 утечки, знаю это дело)
и лечи того кто получил урон.
тут я хотел просто ударить атакующего.
zero index добавил:
кстати
Также в коде зачем то куча ненужных бж.
все удалять?
Старый 15.03.2010, 13:18
Daemonik

offline
Опыт: 5,084
Активность:
zero_index, по максимуму, использование бж трата времени на дополнительный вызов ф-ий находящихся в теле бж ф-ии
К тому же часто бж вызывают утечки. Не удаленные точки, группы, форсы и так далее
Старый 15.03.2010, 13:47
Doc

offline
Опыт: 63,163
Активность:
Заменяй на native
Старый 15.03.2010, 14:05
zero index
Фантома же!
offline
Опыт: 886
Активность:
агам, приблизительно понял.. Daemonik, DoctorGester, спасибо)
а чо с кодом делать? подскажите плиз
Старый 15.03.2010, 16:44
DioD

offline
Опыт: 45,184
Активность:
опендоту кури это абилка спектры.
Старый 16.03.2010, 00:56
Ответ

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

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

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

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



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