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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Спелл не кдшится
Kr0nusДата: Понедельник, 01 Августа 2011, 15:50:12 | Сообщение # 1
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
После использования способности,она не перезаряжается.Помогите пожалуйста разобраться,в чем проблема.
Code
function Trig_Tsukiyomi_Conditions takes nothing returns boolean
      return GetSpellAbilityId() == 'A000'
endfunction

function Damage takes nothing returns nothing
      local unit a = udg_Itachi
      local unit b = udg_Itachi_target
      local integer i = 0
      local integer d = 0
      set udg_Itachi_integer = udg_Itachi_integer + 1
      if (udg_Itachi_integer > 5 ) then
      set udg_Itachi_integer = 0
      call DestroyTimer(GetExpiredTimer())
      call PauseUnit( b, false )
      call SetUnitInvulnerable( b, false )
      loop
      exitwhen i == 4
      call RemoveUnit(udg_Itachi_dammy[i])
      set i = i + 1
      endloop
      else
      loop
      exitwhen d == 4
      call SetUnitAnimation(udg_Itachi_dammy[d], "attack" )
      set d = d + 1
      endloop
      endif
endfunction

function Trig_Tsukiyomi_Actions takes nothing returns nothing
      local unit a = GetSpellAbilityUnit()
      local unit b = GetSpellTargetUnit()
      local real Xo = GetUnitX(b)
      local real Yo = GetUnitY(b)
      local real X   
      local real Y
      local real n
      local timer t = CreateTimer()
      local integer i = 0
      set udg_Itachi = a
      set udg_Itachi_target = b
      loop
      exitwhen i == 4
      set X = ( Xo + ( 100 * Cos((90*i)*0.0174) ) )
      set Y = ( Yo + ( 100 * Sin((90*i)*0.0174) ) )
      set n = bj_RADTODEG * Atan2( Yo - Y, Xo - X)
      set udg_Itachi_dammy[i] = CreateUnit(GetOwningPlayer(udg_Itachi), 'h000' , X , Y , n )
      call SetUnitVertexColor( udg_Itachi_dammy[i], 255, 255, 255, 70 )
      set i = i + 1
      endloop
      call SetWidgetLife( a, (GetUnitState( a, UNIT_STATE_LIFE) - (GetUnitState( a, UNIT_STATE_MAX_LIFE ) / 100 ) * 25 ) )
      call TimerStart( t, 1.00, true, function Damage )
      call PauseUnit( b, true )
      call SetUnitInvulnerable( b, true )
      set a = null
      set b = null
      set t = null
endfunction

//===========================================================================
function InitTrig_Tsukiyomi takes nothing returns nothing
      local integer index = 0
      local trigger Tsukiyomi = CreateTrigger(  )
      loop
      exitwhen index == 13
      call TriggerRegisterPlayerUnitEvent( Tsukiyomi, Player(index), EVENT_PLAYER_UNIT_SPELL_CAST, null )
      set index = index + 1
      endloop
      call TriggerAddCondition( Tsukiyomi, Condition( function Trig_Tsukiyomi_Conditions ) )
      call TriggerAddAction( Tsukiyomi, function Trig_Tsukiyomi_Actions )
      set Tsukiyomi = null
endfunction




Сообщение отредактировал Kr0nus - Понедельник, 01 Августа 2011, 16:43:42
 

[DS]Дата: Понедельник, 01 Августа 2011, 16:26:15 | Сообщение # 2
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
вынеси из под спойлера

 

Kr0nusДата: Понедельник, 01 Августа 2011, 16:43:59 | Сообщение # 3
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
[DS], Вынес

 

[DS]Дата: Понедельник, 01 Августа 2011, 16:52:50 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
после использования прикажи кастеру "stop"
и паузи таймер потом дестрой
index == 13 их вроде 16
в функций дамадж обнуляй переменные a,b


 

Kr0nusДата: Понедельник, 01 Августа 2011, 16:56:46 | Сообщение # 5
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
Quote (|DS|)
index == 13 их вроде 16

Quote (|DS|)
в функций дамадж обнуляй переменные a,b

Исправил
Quote (|DS|)
и паузи таймер потом дестрой

Как?


 

[DS]Дата: Понедельник, 01 Августа 2011, 16:59:19 | Сообщение # 6
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
PauseTimer(t)
DestroyTimer(t)
set t = null

Добавлено (01-08-2011, 16:59)
---------------------------------------------
(GetExpiredTimer())
и почему он не в переменной...


 

Kr0nusДата: Понедельник, 01 Августа 2011, 17:02:10 | Сообщение # 7
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
[DS], Все сделал,но способность все так же не перезаряжается
Мне надо чтобы способность перезаряжалась




Сообщение отредактировал Kr0nus - Понедельник, 01 Августа 2011, 17:05:29
 

[DS]Дата: Понедельник, 01 Августа 2011, 17:06:00 | Сообщение # 8
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
"stop" после
call PauseUnit( b, true ) ставил, и какой скилл за основу брал?


 

Kr0nusДата: Понедельник, 01 Августа 2011, 17:13:12 | Сообщение # 9
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
Quote (|DS|)
какой скилл за основу брал?

Много перепробовал,на данный момент взял за основу hex
Убрал "stop" кд у способности идет,но только если за основу брать hex а мне он не подойдет(потому что тогда цель способности будет в хексе пока не закончится способность,из-за PauseUnit)




Сообщение отредактировал Kr0nus - Понедельник, 01 Августа 2011, 17:15:16
 

[DS]Дата: Понедельник, 01 Августа 2011, 17:15:52 | Сообщение # 10
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
Возьми Канал за основу

 

Kr0nusДата: Понедельник, 01 Августа 2011, 17:20:11 | Сообщение # 11
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
[DS],
Quote (|DS|)
Возьми Канал за основу

Способность не отображается у героя,мб я что-то не так делаю?


 

[DS]Дата: Понедельник, 01 Августа 2011, 17:29:09 | Сообщение # 12
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
ставил галочку - Изображения?

 

Kr0nusДата: Понедельник, 01 Августа 2011, 18:00:01 | Сообщение # 13
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
[DS],
Quote (|DS|)
ставил галочку - Изображения?

Не нашел,у меня английский WE

Добавлено (01-08-2011, 18:00)
---------------------------------------------
Все,поставил способность,но она все также не перезаряжается


 

lawsonДата: Понедельник, 01 Августа 2011, 20:18:20 | Сообщение # 14
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Kr0nus)
 loop       exitwhen index == 13       call TriggerRegisterPlayerUnitEvent( Tsukiyomi, Player(index), EVENT_PLAYER_UNIT_SPELL_CAST, null )       set index = index + 1       endloop

Ерунда здесь цикл абсолютно не нужен.

Возможно ты еще со способностью намутил? А?

может еще так попробуй
EVENT_PLAYER_UNIT_SPELL_FINISH

Добавлено (01-08-2011, 20:17)
---------------------------------------------
Kr0nus, Действия в триггере не дейтвуют на перезарядку скила если ты его не удаляешь или не заменяещь.

Добавлено (01-08-2011, 20:18)
---------------------------------------------
Quote (|DS|)
Возьми Канал за основу

Пфф не люблю эту способность какой бы нестандартный скил не делал, не люблю за то что его надо настраивать.
Возьми обычные стандартные способности за основу. Я например для пассивок всегда беру способность змеиная ловоксть, для целей другую.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Понедельник, 01 Августа 2011, 20:19:59
 

Kr0nusДата: Понедельник, 01 Августа 2011, 21:52:21 | Сообщение # 15
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
lawson,
Quote (lawson)
Ерунда здесь цикл абсолютно не нужен.

Почему не нужен?
Я раскрыл TriggerRegisterAnyUnitEventBJ :
Code
function TriggerRegisterAnyUnitEventBJ takes trigger trig, playerunitevent whichEvent returns nothing
     local integer index

     set index = 0
     loop
         call TriggerRegisterPlayerUnitEvent(trig, Player(index), whichEvent, null)

         set index = index + 1
         exitwhen index == bj_MAX_PLAYER_SLOTS
     endloop
endfunction

Добавлено (01-08-2011, 21:52)
---------------------------------------------

Quote (lawson)
может еще так попробуй
EVENT_PLAYER_UNIT_SPELL_FINISH

Попробовал,спел начал кдшится,но триггер стал не корректно работать


 

lawsonДата: Понедельник, 01 Августа 2011, 22:59:37 | Сообщение # 16
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Kr0nus)
Я раскрыл TriggerRegisterAnyUnitEventBJ :

Молодец что раскрыл. Дать тебе медальку?
А теперь скажи зачем ты раскрыл оно тебе что мешает? Оно создает утечку?
Это просто бестолковое использование кода у тебя.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Понедельник, 01 Августа 2011, 23:17:30
 

FkoFFДата: Понедельник, 01 Августа 2011, 23:17:07 | Сообщение # 17
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
EVENT_PLAYER_UNIT_SPELL_EFFECT а не то что вы там используете....

 

Kr0nusДата: Вторник, 02 Августа 2011, 07:43:11 | Сообщение # 18
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
FkoFF,
Помого,большое спасибо,тему можно закрывать.


 

HexingДата: Вторник, 02 Августа 2011, 10:29:01 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (lawson)
для целей другую.

подскажи если не секрет?


 

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

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