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

Adam Smith

Друзья CG
4 Окт 2014
473
2
Код:
"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"
			}
		}
	}
}

Не могу понять в чем проблема) Помогите пожалуйста)
 
Последнее редактирование модератором:

CryDeS

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

Adam Smith

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




работает абсолютно все кроме урона
 
Последнее редактирование модератором:

mrlikelot

Продвинутый
24 Июл 2015
168
1
попробуй поставить в "var type" вместо "FIELD_FLOAT" это: "FIELD_INTEGER"
 
Последнее редактирование модератором:

mrlikelot

Продвинутый
24 Июл 2015
168
1
пробовал, не помогает, я так понял, что этот тип урона вообще не работает
Вот мой код прожимаемой контер хеликс, посмотри, может поможет.
"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
4 Окт 2014
473
2
попробуй поставить в "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
 
Последнее редактирование модератором:

Adam Smith

Друзья CG
4 Окт 2014
473
2
Вот мой код прожимаемой контер хеликс, посмотри, может поможет.
"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 цель
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
11
Код:
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
4 Окт 2014
473
2
Может вместо "MaxHealthPercentBasedDamage" поставить просто "Damage"?
Да, это будет работать, но мне надо, что бы он работал как ульта хускара, отнимал от максимального колличества здоровлья 35 процентов
 
Последнее редактирование модератором:

Adam Smith

Друзья CG
4 Окт 2014
473
2
Все сдел, работает, если кому интересно то вот код
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
 
Последнее редактирование модератором:

doter.ua

Продвинутый
17 Авг 2014
280
5
У DOTA_ABILITY_BEHAVIOR_NO_TARGET нет таргета, потому и не работает.
 
Реклама: