Сейчас 21:29:04 Понедельник, 25 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Вопрос по Jass спеллу
BUUNIДата: Вторник, 18 Января 2011, 23:07:35 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 347
Награды: 1
Репутация: 53
Блокировки:
Прощу помощи! Так как я новечек в Jass, прощу помощи по одному легкому спеллу. Я его так, для самообучения хочу сделать.)

Дело в том, что он не заносит в локалку D , полученный урон. В чем может быть ошибка ?

Код:

Code
function Trig_Spell_Conditions takes nothing returns boolean
     if ( not ( GetSpellAbilityId() == 'Awfb' ) ) then
         return false
     endif
     return true
endfunction

function Trig_Spell_Func007Func001C takes nothing returns boolean
     if ( not ( d <= 0.00 ) ) then
         return false
     endif
     return true
endfunction

function Trig_Spell_Actions takes nothing returns nothing
     local unit u = GetSpellAbilityUnit()
     local unit y = GetSpellTargetUnit()
     local real d
     local taxttag  
     call TriggerSleepAction( ( DistanceBetweenPoints(GetUnitLoc( u ), GetUnitLoc( y )) / 1000.00 ) )
     call TriggerSleepAction( 1.00 )
     set d = GetEventDamage()
     call DisplayTextToForce( GetPlayersAll(), R2S( d ) )
     set bj_forLoopAIndex = 1
     set bj_forLoopAIndexEnd = 7
     loop
         exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
         if ( Trig_Spell_Func007Func001C() ) then
             call CreateTextTagLocBJ( "Miss", GetUnitLoc( y ), 30.00, 7.00, 50.00, 100, 100, 30.00 )
             set t = GetLastCreatedTextTag()
             call SetTextTagPermanentBJ( t, true )
             call SetTextTagFadepointBJ( t, 1.00 )
             call TriggerSleepAction( 0.01 )
         else
             call CreateTextTagLocBJ( ( R2S( d ) + " hp" ), GetUnitLoc( y ), 30.00, 10.00, 50.00, 100, 100, 30.00 )
             set t = GetLastCreatedTextTag()
             call SetTextTagPermanentBJ( t, true )
             call SetTextTagFadepointBJ( t, 1.00 )
             call TriggerSleepAction( 0.01 )
         endif
         set bj_forLoopAIndex = bj_forLoopAIndex + 1
     endloop
     call DestroyTextTagBJ( t )
endfunction

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
     set gg_trg_Spell = CreateTrigger(  )
     call TriggerRegisterAnyUnitEventBJ( gg_trg_Spell, EVENT_PLAYER_UNIT_SPELL_CAST )
     call TriggerAddCondition( gg_trg_Spell, Condition( function Trig_Spell_Conditions ) )
     call TriggerAddAction( gg_trg_Spell, function Trig_Spell_Actions )
endfunction


 

DreiiДата: Вторник, 18 Января 2011, 23:09:31 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
BUUNI, не конверть в жасс

Добавлено (18-01-2011, 23:09)
---------------------------------------------
BUUNI, нужно добавить другим триггером в этот триггер событие,получает повреждения

Добавлено (18-01-2011, 23:09)
---------------------------------------------
преведи к читабельному виду код плиз


 

BUUNIДата: Вторник, 18 Января 2011, 23:16:11 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 347
Награды: 1
Репутация: 53
Блокировки:
Quote (Dreii)
BUUNI, не конверть в жасс

Я просто еще многих действий не знаю, вот и конвертю :D
Quote (Dreii)
BUUNI, нужно добавить другим триггером в этот триггер событие,получает повреждения

Спасибо, сейчас попробую.


 

Vova5009Дата: Среда, 19 Января 2011, 08:35:53 | Сообщение # 4
8 уровень
Группа: Проверенные
Сообщений: 577
Награды: 0
Репутация: 125
Блокировки:
Dreii, Смысл?
У него триг срабатывает при применении способности.
Мне кажется ему надо создавать локальный триггер....
 

DreiiДата: Среда, 19 Января 2011, 12:39:26 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Vova5009, можно и локальный и этому триггеру при касте добавить получает повреждения

Добавлено (19-01-2011, 11:55)
---------------------------------------------
ах да local texttag а не local tаxttag

Добавлено (19-01-2011, 12:25)
---------------------------------------------

Code
loop  
     exitwhen i>7
          if udg_Damage<=0. then  
set txt=CreateTextTag()  
              call SetTextTagText(txt,"|c00C80000" +"Miss",.023)  
              call SetTextTagPosUnit(txt,y,0.)  
              call SetTextTagColor(txt,255,0,0,255)  
              call SetTextTagVelocity(txt,.001,.03)  
              call SetTextTagFadepoint(txt,.75)  
              call SetTextTagLifespan(txt,1.5)  
              call SetTextTagPermanent(txt,false)  
              set txt=null
             else  
             set txt=CreateTextTag()  
              call SetTextTagText(txt,"|c00C80000"+I2S(R2I(d))+" hp",.023)  
              call SetTextTagPosUnit(txt,y,0.)  
              call SetTextTagColor(txt,255,0,0,255)  
              call SetTextTagVelocity(txt,.001,.03)  
              call SetTextTagFadepoint(txt,.75)  
              call SetTextTagLifespan(txt,1.5)  
              call SetTextTagPermanent(txt,false)  
              set txt=null
         endif  
          set i=i+1  
      endloop

и используй такой цикл,и текстаг
офк переменные поставь

Добавлено (19-01-2011, 12:25)
---------------------------------------------
А еще лучше на хеше сделай))Я сделал но т.к ниразу не работал с этими повреждениями то хз))

Добавлено (19-01-2011, 12:39)
---------------------------------------------
Выложи более хороший код)Если узнаешь как занестив d дмг то спелл будет супер^^


З.Ы помидорами не кидать


 

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

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