CustomGames.ru - Dota 2 пользовательские игры

Не наносится урон, помогите пожалуйста)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Спойлер
Код
"pudge_reapers_scythe_datadriven"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "ability_datadriven"
"AbilityType" "DOTA_ABILITY_TYPE_ULTIMATE"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_UNIT_TARGET"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO"
"AbilityUnitTargetFlags" "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
"SpellImmunityType" "SPELL_IMMUNITY_ENEMIES_YES"
"AbilityUnitDamageType" "DAMAGE_TYPE_PURE"
"FightRecapLevel" "2"
"AbilityTextureName" "rsyche"

// Precache
//-------------------------------------------------------------------------------------------------------------
"precache"
{
"soundfile" "soundevents/game_sounds_heroes/game_sounds_necrolyte.vsndevts"
"particle" "particles/units/heroes/hero_necrolyte/necrolyte_scythe.vpcf"
"particle" "particles/units/heroes/hero_necrolyte/necrolyte_scythe_model.vpcf"
"particle" "particles/units/heroes/hero_necrolyte/necrolyte_scythe_orig.vpcf"
"particle" "particles/generic_gameplay/generic_stunned.vpcf"
}

// Casting
//-------------------------------------------------------------------------------------------------------------
"AbilityCastPoint" "0.5 0.5 0.5"

// Time
//-------------------------------------------------------------------------------------------------------------
"AbilityCooldown" "95 75 60"

// Cost
//-------------------------------------------------------------------------------------------------------------
"AbilityManaCost" "375 840 1300"

// Cast Range
//-------------------------------------------------------------------------------------------------------------
"AbilityCastRange" "600"

// Stats
//-------------------------------------------------------------------------------------------------------------
"AbilityModifierSupportValue" "0.1" // Primarily about the damage

// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"damage" "20 35 40"
}
"02"
{
"var_type" "FIELD_FLOAT"
"stun_duration" "1.5 1.5 1.5"
}
"03"
{
"var_type" "FIELD_INTEGER"
"mana_cost_scepter" "150 340 500"
}
"04"
{
"var_type" "FIELD_FLOAT"
"cooldown_scepter" "70"
}
"05"
{
"var_type" "FIELD_FLOAT"
"damage_per_health_scepter" "0.6 0.9 1.2"
}
"06"
{
"var_type" "FIELD_FLOAT"
"respawn" "0.0"
}
"07"
{
"var_type" "FIELD_INTEGER"
"respawn_constant" "30"
}
}

"OnSpellStart"
{
"ApplyModifier"
{
"ModifierName" "modifier_reapers_scythe_datadriven"
"Target"
{
"Center"  "TARGET"
"Teams" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"Types" "DOTA_UNIT_TARGET_HERO"
"Flags"     "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
}
}
"ApplyModifier"
{
"ModifierName" "modifier_item_ghost_datadriven_active2"
"Target"
{
"Center"  "TARGET"
"Teams" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"Types" "DOTA_UNIT_TARGET_HERO"
"Flags"     "DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES"
}
}
       "FireEffect"
{
"EffectName" "particles/units/heroes/hero_lion/lion_spell_finger_of_death.vpcf"
"EffectAttachType" "start_at_customorigin"


"ControlPointEntities"
{
"CASTER" "attach_attack1"
"TARGET" "attach_hitloc"
}
}
"FireSound"
{
"EffectName" "Hero_Winter_Wyvern.WintersCurse.Cast"
"Target" "CASTER"
}

"FireSound"
{
"EffectName" "Hero_Winter_Wyvern.WintersCurse.Target"
"Target" "TARGET"
}
"FireSound"
{
"EffectName" "Hero_Nevermore.RequiemOfSouls.Damage"
"Target" "TARGET"
}

"DelayedAction"
{
"Delay" "%stun_duration"

"Action"
{
"FireEffect"
{
"EffectName" "particles/units/heroes/hero_necrolyte/necrolyte_scythe_orig.vpcf"
"EffectAttachType" "start_at_customorigin"

"ControlPointEntities"
{
"TARGET" "follow_origin"
"TARGET" "follow_origin"
}
}

"Damage"
                {
                    "Type"          "DAMAGE_TYPE_PURE"
                    "MaxHealthPercentBasedDamage"        "%damage"
                    "Target"          "TARGET"
                   
                }
}
}
}

"Modifiers"
{
"modifier_item_ghost_datadriven_active2"
{
"Duration"              "3"
"Passive" "0"
"IsHidden" "0"
"IsBuff" "1"
"IsDebuff" "0"
"IsPurgable" "1"
"StatusEffectName" "particles/status_fx/status_effect_ghost.vpcf"
"StatusEffectPriority" "15"
"EffectName"            "particles/items_fx/ghost.vpcf"
"EffectAttachType"      "PATTACH_ABSORIGIN"

"States"
{
"MODIFIER_STATE_DISARMED" "MODIFIER_STATE_VALUE_ENABLED"
                "MODIFIER_STATE_NOT_ON_MINIMAP_FOR_ENEMIES"  "MODIFIER_STATE_VALUE_ENABLED"
}
}
"modifier_reapers_scythe_datadriven"
{
"IsDebuff" "1"
"Duration" "%stun_duration"

"OverrideAnimation" "ACT_DOTA_DISABLED"

"EffectName" "particles/generic_gameplay/generic_stunned.vpcf"
        "EffectAttachType" "follow_overhead"



"OnCreated"
{
"DelayedAction"
{
// Scythe animation has a 0.7 sec travel time
"Delay" "%stun_duration - 0.7"

"Action"
{
"FireEffect"
{
"EffectName" "particles\items_fx\ethereal_blade_explosion.vpcf"
"EffectAttachType" "follow_origin"

"ControlPointEntities"
{
"CASTER" "follow_origin"
"TARGET" "follow_origin"
}
}
}
}

"AttachEffect"
{
"EffectName" "particles\units\heroes\hero_winter_wyvern\wyvern_splinter_explosion.vpcf"
"EffectAttachType" "follow_origin"
"Target" "TARGET"
}
}

"States"
{
"MODIFIER_STATE_STUNNED" "MODIFIER_STATE_VALUE_ENABLED"
"MODIFIER_STATE_ATTACK_IMMUNE" "MODIFIER_STATE_VALUE_ENABLED"
}
}
}
}
[свернуть]

Не могу понять в чем проблема) Помогите пожалуйста)
« Последнее редактирование: 29-07-2015, 21:41:53 от -ExotiC- »
By PG.Freeman

Оффлайн CryDeS

  • Друзья CG
  • 1208
  • Мощь: 12
 "01"
      {
         "var_type"               "FIELD_FLOAT"
         "damage"         "20 35 40"
      }
Не уверен, но переменная объявлена с плавающей запятой, а у тебя целое число. В коде такое тоже у тебя встречается. И вообще, эффекты работают? Попробуй без задержки урон нанести, сразу же. Сработает?

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
"01"
      {
         "var_type"               "FIELD_FLOAT"
         "damage"         "20 35 40"
      }
Не уверен, но переменная объявлена с плавающей запятой, а у тебя целое число. В коде такое тоже у тебя встречается. И вообще, эффекты работают? Попробуй без задержки урон нанести, сразу же. Сработает?




работает абсолютно все кроме урона
By PG.Freeman

Оффлайн KEKMAN

  • 168
  • Мощь: 2
  • Dota forever <3
попробуй поставить в "var type" вместо "FIELD_FLOAT" это: "FIELD_INTEGER"

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
попробуй поставить в "var type" вместо "FIELD_FLOAT" это: "FIELD_INTEGER"

пробовал, не помогает, я так понял, что этот тип урона вообще не работает
By PG.Freeman

Оффлайн KEKMAN

  • 168
  • Мощь: 2
  • Dota forever <3
пробовал, не помогает, я так понял, что этот тип урона вообще не работает
Вот мой код прожимаемой контер хеликс, посмотри, может поможет.
    "axe_counter"
{
    // General
    //-------------------------------------------------------------------------------------------------------------
    "BaseClass"                     "ability_datadriven"
    "AbilityBehavior"               "DOTA_ABILITY_BEHAVIOR_NO_TARGET"
    "AbilityUnitDamageType"         "DAMAGE_TYPE_MAGICAL"   
    "SpellImmunityType"             "SPELL_IMMUNITY_ENEMIES_NO"
        "MaxLevel"              "13"   
    "AbilityCastPoint"              "0.1 0.1 0.1 0.1"
    "AbilityTextureName"            "axe_counter_helix"
   
    // Time     
    //-------------------------------------------------------------------------------------------------------------
    "AbilityCooldown"               "2 1.5 1 0.5 0.4 0.3"
       
    // Cost
    //-------------------------------------------------------------------------------------------------------------
    "AbilityManaCost"               "150 175 200 225 300 400 500 600 700 800 900 900 999"

    // Special
    //-------------------------------------------------------------------------------------------------------------
    "AbilitySpecial"
    {
        "01"
        {
            "var_type"                      "FIELD_FLOAT"
            "duration"                      "1 2 3 4 5 6 7 8 9 10 11 12 15"
        }
       
        "02"
        {
            "var_type"                      "FIELD_INTEGER"
            "radius"                        "300 325 350 375 400 425 450 475 500"
        }   
        "03"
        {
            "var_type"                      "FIELD_INTEGER"
            "armor_reduction"               "-5 -10 -15 -20 -25 -30 -35 -40 -45 -50 -60 -100"
        }
        "04"
        {
            "var_type"                      "FIELD_INTEGER"
            "damage"                        "100 150 200 250 300 350 400 450 500 650 700 750 900"
        }
    }
    "OnSpellStart"
    {
        "ActOnTargets"
        {
            "Target"
            {
                "Center" "CASTER"
                "Radius" "%radius"
                "Teams" "DOTA_UNIT_TARGET_TEAM_ENEMY"
                "Types" "DOTA_UNIT_TARGET_BASIC | DOTA_UNIT_TARGET_HERO"
            }

            "Action"
            {
                "Damage"
                        {
                            "Target"    "TARGET"
                            "Type"      "DAMAGE_TYPE_MAGICAL"
                            "Damage"    "%damage"
                        }
                "ApplyModifier"
                {
                    "ModifierName"  "modifier_roots"
                    "Target"        "TARGET"
                    "Duration"      "%duration"
                }
                "Stun"
                {
                    "Target"            "TARGET"
                    "Duration"          "1 2 3 4"
                }                 
            }
        }
    }
}
Может следует добавить это:    "ActOnTargets"

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
попробуй поставить в "var type" вместо "FIELD_FLOAT" это: "FIELD_INTEGER"

Я решил сделать через луа, но не очень в нем шарю, может кто поможет?
"RunScript"
            {
               "ScriptFile"   "scripts/vscripts/heroes/hero_pudge/ds.lua"
               "Function"      "PudgeSyche"
               "Target"      "TARGET"
            }


Цитировать
function PudgeSyche( keys )
   local caster = keys.caster
   local ability = keys.ability
   local target = keys.target
   local target_max_hp = target:GetMaxHealth() / 100
   local aura_damage = ability:GetLevelSpecialValueFor("aura_damage", (ability:GetLevel() - 1))



   local damage_table = {}

   damage_table.attacker = caster
   damage_table.victim = target
   damage_table.damage_type = DAMAGE_TYPE_PURE
   damage_table.ability = ability
   damage_table.damage = target_max_hp * -aura_damage

   ApplyDamage(damage_table)
end
By PG.Freeman

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Вот мой код прожимаемой контер хеликс, посмотри, может поможет.
    "axe_counter"
{
    // General
    //-------------------------------------------------------------------------------------------------------------
    "BaseClass"                     "ability_datadriven"
    "AbilityBehavior"               "DOTA_ABILITY_BEHAVIOR_NO_TARGET"
    "AbilityUnitDamageType"         "DAMAGE_TYPE_MAGICAL"   
    "SpellImmunityType"             "SPELL_IMMUNITY_ENEMIES_NO"
        "MaxLevel"              "13"   
    "AbilityCastPoint"              "0.1 0.1 0.1 0.1"
    "AbilityTextureName"            "axe_counter_helix"
   
    // Time     
    //-------------------------------------------------------------------------------------------------------------
    "AbilityCooldown"               "2 1.5 1 0.5 0.4 0.3"
       
    // Cost
    //-------------------------------------------------------------------------------------------------------------
    "AbilityManaCost"               "150 175 200 225 300 400 500 600 700 800 900 900 999"

    // Special
    //-------------------------------------------------------------------------------------------------------------
    "AbilitySpecial"
    {
        "01"
        {
            "var_type"                      "FIELD_FLOAT"
            "duration"                      "1 2 3 4 5 6 7 8 9 10 11 12 15"
        }
       
        "02"
        {
            "var_type"                      "FIELD_INTEGER"
            "radius"                        "300 325 350 375 400 425 450 475 500"
        }   
        "03"
        {
            "var_type"                      "FIELD_INTEGER"
            "armor_reduction"               "-5 -10 -15 -20 -25 -30 -35 -40 -45 -50 -60 -100"
        }
        "04"
        {
            "var_type"                      "FIELD_INTEGER"
            "damage"                        "100 150 200 250 300 350 400 450 500 650 700 750 900"
        }
    }
    "OnSpellStart"
    {
        "ActOnTargets"
        {
            "Target"
            {
                "Center" "CASTER"
                "Radius" "%radius"
                "Teams" "DOTA_UNIT_TARGET_TEAM_ENEMY"
                "Types" "DOTA_UNIT_TARGET_BASIC | DOTA_UNIT_TARGET_HERO"
            }

            "Action"
            {
                "Damage"
                        {
                            "Target"    "TARGET"
                            "Type"      "DAMAGE_TYPE_MAGICAL"
                            "Damage"    "%damage"
                        }
                "ApplyModifier"
                {
                    "ModifierName"  "modifier_roots"
                    "Target"        "TARGET"
                    "Duration"      "%duration"
                }
                "Stun"
                {
                    "Target"            "TARGET"
                    "Duration"          "1 2 3 4"
                }                 
            }
        }
    }
}
Может следует добавить это:    "ActOnTargets"


сомневаюсь, поскольку мой скилл применяется 1 цель
By PG.Freeman

Оффлайн KEKMAN

  • 168
  • Мощь: 2
  • Dota forever <3

сомневаюсь, поскольку мой скилл применяется 1 цель
Может вместо  "MaxHealthPercentBasedDamage"   поставить просто "Damage"?

Оффлайн CryDeS

  • Друзья CG
  • 1208
  • Мощь: 12
Код
function DealDamage( keys )
local caster = keys.caster
local target = keys.target
local ability = keys.ability
        local damage= ability:GetLevelSpecialValueFor("damage", ability:GetLevel() - 1) -- из datadriven параметр damage соответствующему уровню абилки

local damage_table = {
        victim = target, -- кому урон
attacker = caster, -- кто нанес урон
damage = damage, -- какой урон
damage_type = DAMAGE_TYPE_PURE -- тип урона
}
ApplyDamage( damage_table ) -- применяем
end

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Может вместо  "MaxHealthPercentBasedDamage"   поставить просто "Damage"?
Да, это будет работать, но мне надо, что бы он работал как ульта хускара, отнимал от максимального колличества здоровлья 35 процентов
By PG.Freeman

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Все сдел, работает, если кому интересно то вот код
Цитировать
function PudgeSyche( keys )
    caster = keys.caster
    ability = keys.ability
    target = keys.target
    target_max_hp = target:GetMaxHealth() / 100
    aura_damage = ability:GetLevelSpecialValueFor("aura_damage", (ability:GetLevel() - 1))



    damage_table = {}

   damage_table.attacker = caster
   damage_table.victim = target
   damage_table.damage_type = DAMAGE_TYPE_PURE
   damage_table.ability = ability
   damage_table.damage = target_max_hp * -aura_damage

   ApplyDamage(damage_table)
end
By PG.Freeman

Оффлайн doter.ua

  • Друзья CG
  • 272
  • Мощь: 1
У DOTA_ABILITY_BEHAVIOR_NO_TARGET  нет таргета, потому и не работает.
гайды
сурпрайз mthfckr :D

[свернуть]