Сейчас 20:17:32 Четверг, 28 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Не запускает созданый триггер.
tRu^SДата: Вторник, 18 Сентября 2012, 15:29:58 | Сообщение # 1
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
Code
scope Beorn initializer Init
{

define
{
     private AbId = 'A02R'
}

private struct Data
{
     unit caster
     int str
  }  

private bool B_COND()
{
return GetSpellAbilityId() == AbId
}

private void B_DMG()
{
trigger trig = GetTriggeringTrigger()
Data d = LoadInteger(Hash,GetHandleId(trig),0)
SetHeroStr(d.caster,GetHeroStr(d.caster,false)+R2I(GetEventDamage())/GetHeroStr(d.caster,true),true)
BJDebugMsg(R2S(GetEventDamage())+" получил "+GetUnitName(d.caster))
}

private void B_TIME()
{
timer t = GetExpiredTimer()
int time = LoadInteger(Hash,GetHandleId(t),1)
trigger trig = GetTriggeringTrigger()
Data d = LoadInteger(Hash,GetHandleId(t),0)
BJDebugMsg(GetUnitName(d.caster))
BJDebugMsg(I2S(time))
if time >= 2+1*GetUnitAbilityLevel(d.caster,AbId)
{
TriggerClearActions(trig)
DestroyTrigger(trig)
}
if time >= 4+1*GetUnitAbilityLevel(d.caster,AbId)
{
SetHeroStr(d.caster,d.str,false)
PauseTimer(t)
DestroyTimer(t)
}
time++
SaveInteger(Hash,GetHandleId(t),1,time)
}

private void B_ACT()
{
Data d=Data.create()
d.caster = GetTriggerUnit()
d.str = GetHeroStr(d.caster,false)
timer t = CreateTimer()
trigger trig = CreateTrigger()
TriggerRegisterUnitEvent(trig,GetTriggerUnit(), EVENT_UNIT_DAMAGED)
TriggerAddAction(trig,function B_DMG)
SaveInteger(Hash,GetHandleId(t),0,d)
SaveInteger(Hash,GetHandleId(t),1,0)
TimerStart(t,1.,true,function B_TIME)
}

private void Init()
{
      gg_trg_Beorn4=CreateTrigger()
      TriggerRegisterAnyUnitEventBJ(gg_trg_Beorn4,EVENT_PLAYER_UNIT_SPELL_EFFECT)
      TriggerAddCondition(gg_trg_Beorn4,Condition(function B_COND))
      TriggerAddAction(gg_trg_Beorn4,function B_ACT)
}
}


Почему-то не запускает B_DMG? Может из-за события, просто 1-ый раз пробую запускать триггер в триггере, скажите, что не так?


 

SirNikolasДата: Вторник, 18 Сентября 2012, 16:02:28 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Лучше используй эту систему.

 

tRu^SДата: Среда, 19 Сентября 2012, 18:50:45 | Сообщение # 3
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
SirNikolas, слишком сложно, а также мне нужно именно для кастера.

Добавлено (19 Сентября 2012, 18:50:45)
---------------------------------------------
so close, сделал через triggeraction




Сообщение отредактировал tRu^S - Среда, 19 Сентября 2012, 18:58:10
 

NaturekidДата: Среда, 19 Сентября 2012, 19:18:27 | Сообщение # 4
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
tRu^S, чего сложного-то? там всё готово для использования...

 

SirNikolasДата: Четверг, 20 Сентября 2012, 14:11:23 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Просто вешаешь структуру не на триггер, а на юнита. Правда, тут надо быть внимательным, чтобы не переписать какие-нибудь другие данные, висящие на юните.

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz