Вторник, 21.05.2024, 00:47           Главная | Регистрация | Вход | RSS | Форум     [Обои | Файлы | Статьи | Кнопки и баннеры]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум сайта о WarCraft III » Картостроение » JASS » Вопросник
Вопросник
[DUOS]Дата: Вторник, 25.08.2009, 14:46 | Сообщение # 26
Happy new... maps! :)
Придворный
Группа: Проверенные
Сообщений: 352
Репутация: 5
Награды
KLOP,
Пофикси код плиз.



Привет, меня зовут Рой. Я тут немножко подсел на магию... (© Чародей Крови)
За Кель-Таллас!

Oasis and Desert
Ландшафт - 100%
Триггеры и кодинг - 5%
Герои - 4%
Итого - 36%

 
MakcДата: Четверг, 11.03.2010, 16:42 | Сообщение # 27
Крепостной
Группа: Пользователи
Сообщений: 36
Репутация: 0
Награды
Сделал триггер по статье, но почему-то не работает... я перепробовал всё что можно) но всё равно) я даже переменными глобальными проверял условие ложно или истинно, но он пишет что переменная не изменилась. Вот код
Code

function Auto_Attack_Detect takes nothing returns boolean  
      if GetTriggerEventId()==EVENT_PLAYER_UNIT_ATTACKED and GetUnitAbilityLevel(GetAttacker(),'A005')>0 then  
         return true  
      set udg_IntegerTest = 2  
      elseif GetTriggerEventId()==EVENT_UNIT_SPELL_EFFECT and GetSpellAbilityId()=='A005' then  
         return true  
      set udg_IntegerTest = 2  
      endif  
      return false  
      set udg_IntegerTest = 1  
endfunction  

function Auto_Attack_Effects takes nothing returns nothing  
      local real dam = GetEventDamage()  
      local unit targ = GetTriggerUnit()  
      local unit cast = GetEventDamageSource()  
      local texttag t  
      if UnitHasBuffBJ(targ, 'B000') == true and GetUnitAbilityLevel(cast,'A005')>0 then  
          call DisableTrigger(GetTriggeringTrigger())  
          set dam = GetUnitAbilityLevel(cast,'A005')*.25*dam  
          set t = CreateTextTag()  
          call SetTextTagText(t,"+"+I2S(R2I(dam)),.023)  
          call SetTextTagPosUnit(t,targ,15)  
          call SetTextTagColor(t,0,0,255,50)  
          call SetTextTagVelocity(t,0.355 * Cos(90 * bj_DEGTORAD),.0355 * Sin(90 * bj_DEGTORAD))  
          call SetTextTagLifespan(t,1.)  
          call UnitDamageTarget(cast,targ,dam,false,false, ATTACK_TYPE_PIERCE, DAMAGE_TYPE_NORMAL,null)  
          call PolledWait(1.)  
          call DestroyTextTag(t)  
          set t = null  
      endif  
      set targ = null  
      set cast = null  
endfunction  

function Auto_Attack_Detect_Actions takes nothing returns nothing  
      local trigger trig = CreateTrigger()  
      local triggeraction ta  
      local unit u  
      if GetTriggerEventId()==EVENT_UNIT_SPELL_EFFECT then  
          set u = GetSpellTargetUnit()  
      else  
          set u = GetTriggerUnit()  
      endif  
      call TriggerRegisterUnitEvent(trig,u, EVENT_UNIT_DAMAGED)  
      set ta = TriggerAddAction(trig, function Auto_Attack_Effects)  
      call PolledWait(2)  
      call DisableTrigger(trig)  
      call TriggerRemoveAction(trig,ta)  
      call DestroyTrigger(trig)  
      set ta = null  
      set u = null  
      set trig = null  
endfunction  

function InitTrig_Auto_Attack takes nothing returns nothing  
local unit u  
set gg_trg_Auto_Attack = CreateTrigger()  
call TriggerRegisterAnyUnitEventBJ(gg_trg_Auto_Attack, EVENT_PLAYER_UNIT_ATTACKED)  
call TriggerRegisterUnitEvent(gg_trg_Auto_Attack,u, EVENT_UNIT_SPELL_EFFECT)  
call TriggerAddCondition(gg_trg_Auto_Attack, Condition(function Auto_Attack_Detect))  
call TriggerAddAction(gg_trg_Auto_Attack, function Auto_Attack_Detect_Actions)  
endfunction

Где ошибка? Подскажите плз)




 
Форум сайта о WarCraft III » Картостроение » JASS » Вопросник
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: