Люкан:скилл Howl скрипт

FlutterButter

Новичок
30 Июл 2017
6
0
Здравствуйте,помогите пожалуйста написать скрипт скилла люкана howl(смотрел в SpellLibrary,там слишком старый скрипт,мне не подходит(нет увеличения здоровья героя и юнитов)) :-X Можно также скинуть сайт с примером скилла howl(Лично я не нашел,может плохо искал) P.s. Если для скрипта нужен будет луа,буду признателен и за него.
 
Здравствуйте,помогите пожалуйста написать скрипт скилла люкана howl(смотрел в SpellLibrary,там слишком старый скрипт,мне не подходит(нет увеличения здоровья героя и юнитов)) :-X Можно также скинуть сайт с примером скилла howl(Лично я не нашел,может плохо искал) P.s. Если для скрипта нужен будет луа,буду признателен и за него.
Я могу написать его, но как тебе нужно, как новый или как старый хауль, ну в плане последней обновы, когда он уже не хилит
 
Последнее редактирование модератором:
FlutterButter, лол, это очень легкий спелл, напиши его сам себе. Пишется на луа за пару десятков минут. Просто ищешь на всей карте юнитов и добавляешь им хп через модификатор.
 
Я могу написать его, но как тебе нужно, как новый или как старый хауль, ну в плане последней обновы, когда он уже не хилит
Мне нужен именно новый,который на данный момент в доте используется
 
Последнее редактирование модератором:
Мне нужен именно новый,который на данный момент в доте используется
Короче, я хз что вальвы намутили, но в пол части кода читает время суток в пол части напрочь не хочет, а если делать по другому, то урон не увеличивается ночью
Код:
script_lycan_howl = class({})
LinkLuaModifier( "modifier_script_lycan_howl", "abilities/script_lycan_howl", LUA_MODIFIER_MOTION_NONE )

function script_lycan_howl:OnSpellStart()
	local allies = FindUnitsInRadius( self:GetCaster():GetTeamNumber(), self:GetCaster():GetOrigin(), self:GetCaster(), FIND_UNITS_EVERYWHERE, DOTA_UNIT_TARGET_TEAM_FRIENDLY, DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, DOTA_UNIT_TARGET_FLAG_PLAYER_CONTROLLED, 0, false )
	if #allies > 0 then
		for _,ally in pairs(allies) do
			ally:AddNewModifier( self:GetCaster(), self, "modifier_script_lycan_howl", { duration = self:GetSpecialValueFor( "howl_duration" ) } )
		end
	end
	EmitSoundOnLocationForAllies( self:GetCaster():GetOrigin(), "Hero_Lycan.Howl.Team", self:GetCaster() )
	EmitSoundOn( "Hero_Lycan.Howl", self:GetCaster() )
	local fx = ParticleManager:CreateParticle( "particles/units/heroes/hero_lycan/lycan_howl_cast.vpcf", PATTACH_ABSORIGIN, self:GetCaster() )
	ParticleManager:SetParticleControl( fx, 0 , self:GetCaster():GetAbsOrigin() )
	ParticleManager:SetParticleControl( fx, 1 , self:GetCaster():GetAbsOrigin() )
	ParticleManager:SetParticleControl( fx, 2 , self:GetCaster():GetAbsOrigin() )
end

modifier_script_lycan_howl = class({})

function modifier_script_lycan_howl:IsHidden()
	return false
end

function modifier_script_lycan_howl:IsPurgable()
	return true
end

function modifier_script_lycan_howl:GetEffectName()
	return "particles/units/heroes/hero_lycan/lycan_howl_buff.vpcf"
end

function modifier_script_lycan_howl:GetEffectAttachType()
	return PATTACH_ABSORIGIN_FOLLOW
end

function modifier_script_lycan_howl:OnCreated( kv )
	if self:GetParent():IsRealHero() then
		self.hp = self:GetAbility():GetSpecialValueFor( "hero_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "hero_bonus_damage" )
	elseif self:GetParent():IsControllableByAnyPlayer() then
		self.hp = self:GetAbility():GetSpecialValueFor( "unit_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "unit_bonus_damage" )
	end
	if IsServer() then
		if GameRules:IsDaytime() == false then
			self.hp = self.hp * 2
			self.dmg = self.dmg * 2
		end
	end
end

function modifier_script_lycan_howl:OnRefresh( kv )
	if self:GetParent():IsRealHero() then
		self.hp = self:GetAbility():GetSpecialValueFor( "hero_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "hero_bonus_damage" )
	elseif self:GetParent():IsControllableByAnyPlayer() then
		self.hp = self:GetAbility():GetSpecialValueFor( "unit_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "unit_bonus_damage" )
	end
	if IsServer() then
		if GameRules:IsDaytime() == false then
			self.hp = self.hp * 2
			self.dmg = self.dmg * 2
		end
	end
end

function modifier_script_lycan_howl:DeclareFunctions()
	local funcs = {
		MODIFIER_PROPERTY_HEALTH_BONUS,
		MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE,
	}
	return funcs
end

function modifier_script_lycan_howl:GetModifierHealthBonus()
	return self.hp
end

function modifier_script_lycan_howl:GetModifierPreAttack_BonusDamage()
	return self.dmg
end
Код:
"script_lycan_howl"
	{
		"BaseClass"						"ability_lua"
		"AbilityTextureName"			"lycan_howl"
		"ScriptFile"					"abilities/script_lycan_howl"
		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_NO_TARGET | DOTA_ABILITY_BEHAVIOR_IGNORE_BACKSWING"
		"LevelsBetweenUpgrades"			"2"
		"RequiredLevel"					"1"
		"MaxLevel"						"4"
		"AbilityCastPoint"				"0.3"
		"AbilityCooldown"				"60 55 50 45"
		"AbilityDuration"				"13"
		"AbilityManaCost"				"40"
		"AbilitySpecial"
		{
			"01"
			{
				"var_type"				"FIELD_FLOAT"
				"howl_duration"			"13.0"		
			}
			"02"
			{
				"var_type"				"FIELD_INTEGER"
				"hero_bonus_damage"		"10 15 20 25"
			}
			"03"
			{
				"var_type"				"FIELD_INTEGER"
				"unit_bonus_damage"		"4 6 8 10"
			}
			"04"
			{
				"var_type"				"FIELD_INTEGER"
				"hero_bonus_hp"			"50 100 150 200"
			}
			"05"
			{
				"var_type"				"FIELD_INTEGER"
				"unit_bonus_hp"			"25 50 75 100"
			}
		}
	}
 
Последнее редактирование модератором:
[quote author=00zveroboi link=topic=1672.msg11366#msg11366 date=1503651141]
Короче, я хз что вальвы намутили, но в пол части кода читает время суток в пол части напрочь не хочет, а если делать по другому, то урон не увеличивается ночью
Код:
script_lycan_howl = class({})
LinkLuaModifier( "modifier_script_lycan_howl", "abilities/script_lycan_howl", LUA_MODIFIER_MOTION_NONE )

function script_lycan_howl:OnSpellStart()
	local allies = FindUnitsInRadius( self:GetCaster():GetTeamNumber(), self:GetCaster():GetOrigin(), self:GetCaster(), FIND_UNITS_EVERYWHERE, DOTA_UNIT_TARGET_TEAM_FRIENDLY, DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, DOTA_UNIT_TARGET_FLAG_PLAYER_CONTROLLED, 0, false )
	if #allies > 0 then
		for _,ally in pairs(allies) do
			ally:AddNewModifier( self:GetCaster(), self, "modifier_script_lycan_howl", { duration = self:GetSpecialValueFor( "howl_duration" ) } )
		end
	end
	EmitSoundOnLocationForAllies( self:GetCaster():GetOrigin(), "Hero_Lycan.Howl.Team", self:GetCaster() )
	EmitSoundOn( "Hero_Lycan.Howl", self:GetCaster() )
	local fx = ParticleManager:CreateParticle( "particles/units/heroes/hero_lycan/lycan_howl_cast.vpcf", PATTACH_ABSORIGIN, self:GetCaster() )
	ParticleManager:SetParticleControl( fx, 0 , self:GetCaster():GetAbsOrigin() )
	ParticleManager:SetParticleControl( fx, 1 , self:GetCaster():GetAbsOrigin() )
	ParticleManager:SetParticleControl( fx, 2 , self:GetCaster():GetAbsOrigin() )
end

modifier_script_lycan_howl = class({})

function modifier_script_lycan_howl:IsHidden()
	return false
end

function modifier_script_lycan_howl:IsPurgable()
	return true
end

function modifier_script_lycan_howl:GetEffectName()
	return "particles/units/heroes/hero_lycan/lycan_howl_buff.vpcf"
end

function modifier_script_lycan_howl:GetEffectAttachType()
	return PATTACH_ABSORIGIN_FOLLOW
end

function modifier_script_lycan_howl:OnCreated( kv )
	if self:GetParent():IsRealHero() then
		self.hp = self:GetAbility():GetSpecialValueFor( "hero_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "hero_bonus_damage" )
	elseif self:GetParent():IsControllableByAnyPlayer() then
		self.hp = self:GetAbility():GetSpecialValueFor( "unit_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "unit_bonus_damage" )
	end
	if IsServer() then
		if GameRules:IsDaytime() == false then
			self.hp = self.hp * 2
			self.dmg = self.dmg * 2
		end
	end
end

function modifier_script_lycan_howl:OnRefresh( kv )
	if self:GetParent():IsRealHero() then
		self.hp = self:GetAbility():GetSpecialValueFor( "hero_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "hero_bonus_damage" )
	elseif self:GetParent():IsControllableByAnyPlayer() then
		self.hp = self:GetAbility():GetSpecialValueFor( "unit_bonus_hp" )
		self.dmg = self:GetAbility():GetSpecialValueFor( "unit_bonus_damage" )
	end
	if IsServer() then
		if GameRules:IsDaytime() == false then
			self.hp = self.hp * 2
			self.dmg = self.dmg * 2
		end
	end
end

function modifier_script_lycan_howl:DeclareFunctions()
	local funcs = {
		MODIFIER_PROPERTY_HEALTH_BONUS,
		MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE,
	}
	return funcs
end

function modifier_script_lycan_howl:GetModifierHealthBonus()
	return self.hp
end

function modifier_script_lycan_howl:GetModifierPreAttack_BonusDamage()
	return self.dmg
end
Код:
"script_lycan_howl"
	{
		"BaseClass"						"ability_lua"
		"AbilityTextureName"			"lycan_howl"
		"ScriptFile"					"abilities/script_lycan_howl"
		"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_NO_TARGET | DOTA_ABILITY_BEHAVIOR_IGNORE_BACKSWING"
		"LevelsBetweenUpgrades"			"2"
		"RequiredLevel"					"1"
		"MaxLevel"						"4"
		"AbilityCastPoint"				"0.3"
		"AbilityCooldown"				"60 55 50 45"
		"AbilityDuration"				"13"
		"AbilityManaCost"				"40"
		"AbilitySpecial"
		{
			"01"
			{
				"var_type"				"FIELD_FLOAT"
				"howl_duration"			"13.0"		
			}
			"02"
			{
				"var_type"				"FIELD_INTEGER"
				"hero_bonus_damage"		"10 15 20 25"
			}
			"03"
			{
				"var_type"				"FIELD_INTEGER"
				"unit_bonus_damage"		"4 6 8 10"
			}
			"04"
			{
				"var_type"				"FIELD_INTEGER"
				"hero_bonus_hp"			"50 100 150 200"
			}
			"05"
			{
				"var_type"				"FIELD_INTEGER"
				"unit_bonus_hp"			"25 50 75 100"
			}
		}
	}
[/quote]
Огромное спасибо,уже так намучился с этим скиллом
 
Последнее редактирование модератором:
Оу :'( В итоге проверил:урон добавляется и юнитам и герою,а вот хп только герою,у юнитов остается прежним
 
Реклама: