Убрать пробивание бкб

Илья

Друзья CG
25 Сен 2015
2,348
41
Но я не накладывал его в виде эффекта от пассивки, я просто запускал его на цель при касте способности.
 

xxNpCxx

Активный
16 Окт 2015
85
0
Т.е без модифаеров, или как?

Knockback это и есть модификатор. Твоя задача просто наложить модификатор на всех юнитов, которых задела способность. У него есть такие поля:

Target, Center, Duration, Distance, Height, IsFixedDistance, ShouldStun

А то что Илья говорит тебе это сценарий поведения модификатора. Он указывается после названия модификатора в кавычках. Сценариев есть несколько :

Attributes

MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE
MODIFIER_ATTRIBUTE_MULTIPLE
MODIFIER_ATTRIBUTE_NONE
MODIFIER_ATTRIBUTE_PERMANENT

Duration
FloatValue
EffectAttachType
follow_origin, follow_overhead, start_at_customorigin, world_origin
EffectName
StringValue
IsBuff
BooleanValue
IsDebuff
BooleanValue
IsHidden
BooleanValue
IsPurgable
BooleanValue
OverrideAnimation
ACT_DOTA_ATTACK
ACT_DOTA_CAST_ABILITY_1 (2, 3, 4, 5, 6)
ACT_DOTA_DISABLED
ACT_DOTA_RUN
ACT_DOTA_SPAWN
ACT_DOTA_TELEPORT
ACT_DOTA_VICTORY

Ниже уже дополнительные метаданные из "Название"-"Значение":

Passive
BooleanValue
TextureName
StringValue
ThinkInterval
FloatValue
 
Последнее редактирование модератором:

Ares

Пользователь
22 Окт 2015
25
0
как я понял, вот это
Код:
  "OnSpellStart"
 {
  "ApplyModifier"
  {
   "ModifierName" "modifier_knockback"
   "Duration"  "0.4"
  }
 }

было ненужным?

Тем не менее, все равно не могу понять что тут не так



Код:
 "Modifiers"
 {
   "modifier_knockback"
   {
    "Passive"   "0"
    "IsHidden"   "0"
    "IsDebuff"   "0"
    "OnSpellStart"
     {
      "Knockback"
      {
       "Target"
         {
      "Center"  "CASTER"
      "Radius"  "%blade_fury_radius"
      "Teams"  "DOTA_UNIT_TARGET_TEAM_ENEMY"
      "Types"  "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"
         }
       "Distance"     "300"
       "Duration"     "0.2"
       "Height"     "0"
      }
     }
   }
 }
 
Последнее редактирование модератором:

Ares

Пользователь
22 Окт 2015
25
0
нет кнокбека

модифаеры же можно добавлять, изначально взяв этот же скилл за родительский класс?
 

xxNpCxx

Активный
16 Окт 2015
85
0
"modifier_knockback"
{
// Это события , тоесть то , когда появляется модификатор.
"Passive" "0" // нет смысла в этом
"IsHidden" "0" // нет смысла в этом
"IsDebuff" "0" // нет смысла в этом

События

OnChannelFinish
OnChannelInterrupted
OnChannelSucceeded
OnOwnerDied
OnOwnerSpawned
OnProjectileFinish
OnProjectileHitUnit
OnSpellStart
OnToggleOff
OnToggleOn
OnUpgrade

New:

OnAbilityEndChannel
OnAbilityStart
OnAttack
OnAttackAllied
OnAttackFailed
OnCreated
OnEquip
OnHealReceived
OnHealthGained
OnHeroKilled
OnManaGained
OnOrder
OnProjectileDodge
OnRespawn
OnSpentMana
OnStateChanged
OnTeleported
OnTeleporting
OnUnitMoved
 
Последнее редактирование модератором:

Ares

Пользователь
22 Окт 2015
25
0
Код:
    "OnSpellStart"

же вроде написано, а после него действия, которые происходят в этот момент, нет?
 
Последнее редактирование модератором:

xxNpCxx

Активный
16 Окт 2015
85
0
а "Passive" "1" значит : Сценарий поведения модификатора. В данном случае пассивный, то есть работающий сразу без каких либо действий.
 
Последнее редактирование модератором:

xxNpCxx

Активный
16 Окт 2015
85
0
Событие, OnCreated, возникает, когда абилка запускает модификатор . А то когда абилка запускает модификатор тебе надо указать еще.
 

xxNpCxx

Активный
16 Окт 2015
85
0
Напиши мне полностью что должен делать твой скилл. Я попробую сделать его.
 

Ares

Пользователь
22 Окт 2015
25
0
1ый скилл джаггернаута, когда кто-нибудь попадает под его действие(т.е получает демедж от него) - происходит knockback.

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

Код:
 "OnSpellStart"
 {
  "ApplyModifier" "modifier_knockback"
 }
Так же?
Или прописать таргет еще нужно точно так же, как и в самом модификаторе?
 
Последнее редактирование модератором:

xxNpCxx

Активный
16 Окт 2015
85
0
[quote author=Ares link=topic=331.msg1909#msg1909 date=1446013248]
1ый скилл джаггернаута, когда кто-нибудь попадает под его действие(т.е получает демедж от него) - происходит knockback.

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

Код:
 "OnSpellStart"
 {
  "ApplyModifier" "modifier_knockback"
 }
Так же?
Или прописать таргет еще нужно точно так же, как и в самом модификаторе?
[/quote]

Сядь. Возьми листок и карандаш. И напиши на нем алгоритм того как будет работать скил. Ты все правильно говоришь только путаешься. Это тебе поможет разобраться.
 
Последнее редактирование модератором:

Ares

Пользователь
22 Окт 2015
25
0
Точнее как-то так
Код:
 "OnSpellStart"
 {
  "ApplyModifier" 
  {
  "ModifierName" "modifier_knockback"
  "Target"
         {
      "Center"  "CASTER"
      "Radius"  "%blade_fury_radius"
      "Teams"  "DOTA_UNIT_TARGET_TEAM_ENEMY"
      "Types"  "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"
         }
  }

 }
 "Modifiers"
 {
   "modifier_knockback"
   {
    "OnCreated"
     {
      "Knockback"
      {
       "Target"
         {
      "Center"  "CASTER"
      "Radius"  "%blade_fury_radius"
      "Teams"  "DOTA_UNIT_TARGET_TEAM_ENEMY"
      "Types"  "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"
         }
       "Distance"     "300"
       "Duration"     "0.2"
       "Height"     "0"
      }
     }
   }
 }

Просто не получается вызвать модификатор, так как в первый раз это делаю)

А смысла в листком с карандашом не вижу, поскольку в том-то и дело, что я не совсем понимаю как будет работать скилл. Точнее мне кажется, что я понимаю, но видимо, это неправильно.
 
Последнее редактирование модератором:

Ares

Пользователь
22 Окт 2015
25
0
Код:
 "juggernaut_blade_fury_datadriven"
{
 // General
 //-------------------------------------------------------------------------------------------------------------
 "BaseClass"    "juggernaut_blade_fury"
 "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_NO_TARGET | DOTA_ABILITY_BEHAVIOR_IMMEDIATE | DOTA_ABILITY_BEHAVIOR_IGNORE_CHANNEL"
 "AbilityUnitDamageType"   "DAMAGE_TYPE_MAGICAL" 
 "SpellImmunityType"    "SPELL_IMMUNITY_ENEMIES_NO"
 "FightRecapLevel"    "1"
 "AbilityTextureName"   "juggernaut_blade_fury"

 // Casting
 //-------------------------------------------------------------------------------------------------------------
 "AbilityCastRange"    "0"
 "AbilityCastPoint"    "0 0 0 0"

 // Time  
 //-------------------------------------------------------------------------------------------------------------
 "AbilityCooldown"    "9 9 9 8"
 "AbilityDuration"    "0.4"

 // Damage.
 //-------------------------------------------------------------------------------------------------------------
 "AbilityDamage"     "300 350 400 450"

 // Cost
 //-------------------------------------------------------------------------------------------------------------
 "AbilityManaCost"    "30 30 35 35"  

 // Special
 //-------------------------------------------------------------------------------------------------------------
 "AbilitySpecial"
 {
  "01"
  {
   "var_type"     "FIELD_FLOAT"
   "blade_fury_damage_tick" "0.2"
  }
  "02"
  {
   "var_type"     "FIELD_INTEGER"
   "blade_fury_radius"   "250"
  }
 }
 
 "OnSpellStart"
 {
  "ApplyModifier" 
  {
  "ModifierName" "modifier_knockback"
  "Target"
         {
      "Center"  "CASTER"
      "Radius"  "%blade_fury_radius"
      "Teams"  "DOTA_UNIT_TARGET_TEAM_ENEMY"
      "Types"  "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"
         }
  }

 }

 "Modifiers"
 {
   "modifier_knockback"
   {
    "OnCreated"
     {
      "Knockback"
      {
       "Target"
         {
      "Center"  "CASTER"
      "Radius"  "%blade_fury_radius"
      "Teams"  "DOTA_UNIT_TARGET_TEAM_ENEMY"
      "Types"  "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_CREEP"
         }
       "Distance"     "300"
       "Duration"     "0.2"
       "Height"     "0"
      }
     }
   }
 }
}
 
Последнее редактирование модератором:

xxNpCxx

Активный
16 Окт 2015
85
0
"Modifiers"
{
"fx_test_modifier"
{
"Passive" "1"
"OnAttack"
{
"Knockback"
{
"Target" "TARGET"
"Duration" "0.5"
"Distance" "250"
"IsFixedDistance" "0"
"Height" "50"
"ShouldStun" "0"
}
}
}
}
 
Последнее редактирование модератором:

Ares

Пользователь
22 Окт 2015
25
0
Так надо что-бы он работал тогда, когда кто-нибудь попадает в радиус рабочего первого скилла(blade fury), а не при атаке
 
Реклама: