Решено Проблемы со звуком

  • Автор темы Автор темы Novichek
  • Дата начала Дата начала

Novichek

Активный
18 Фев 2020
123
14
Проект
Evo Land
По гайду решил добавить кастомный звук (правда почему то перезагрузить не могу. Только рекомпильнуть) 1693982482854.pngкоторый будет проигрываться во время каста абилки
абилка

"green_slark"
{
"BaseClass" "ability_datadriven"
"AbilityTextureName" "slark"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_POINT"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
"AbilityUnitTargetFlags" ""
"MaxLevel" "1"
"RequiredLevel" "1"
"AbilityCastRange" "500"
"AbilityCastPoint" "0.65"
"AbilityCooldown" "20"
"AbilityManaCost" "0"
"precache"
{
"soundfile" "soundevents/sounds_custom1.vsndevts"
}
"OnSpellStart"
{
"FireSound"
{
"EffectName" "sounds/echo_slam_arcana1.vsnd"
"Target" "CASTER"
}
"RunScript"
{
"ScriptFile" "scripts/vscripts/abilities/slark_ability.lua"
"Function" "AddHeroPickAbilities"
}
}
}
код

function AddHeroPickAbilities(keys)
local caster = keys.caster
local heroName = "npc_dota_hero_slark"
if caster:GetUnitName() ~= heroName then

local hero = PlayerResource:ReplaceHeroWith(caster:GetPlayerID(), heroName, 0, 0)
Timers:CreateTimer(0.1, function()

hero:RemoveAbility("green_slark")

local particle = ParticleManager:CreateParticle("particles/econ/items/earthshaker/earthshaker_arcana/earthshaker_arcana_echoslam_start.vpcf", PATTACH_CUSTOMORIGIN, hero)
ParticleManager:SetParticleControl(particle, 0, hero:GetAbsOrigin()) -- Устанавливаем позицию партикла
ParticleManager:SetParticleControl(particle, 3, hero:GetAbsOrigin()) -- Устанавливаем позицию партикла
ParticleManager:ReleaseParticleIndex(particle) -- Освобождаем ресурсы партикла

EmitSoundOn("sounds/echo_slam_arcana1.vsnd_c", hero)
end)
else

caster:SetLevel(1)
local xp_to_remove = caster:GetCurrentXP()
caster:AddExperience(-1 * xp_to_remove, DOTA_ModifyXP_Unspecified, false, false)
end
end
вообщем разное перебробовал но звука так и нет
список всех звуков в soundevents так же есть
 
1) Ты звук проверял вообще работает в доте после добавления его в игру?
2) Форматы - не нужно указывать в файле если это не партикл или модель
3) hero - у тебя это не кастер и не таргет, кому ты звук воспроизодишь?
 
Последнее редактирование:
1) Ты звук проверял вообще работает в доте после добавления его в игру?
2) Форматы - не нужно указывать в файле если это не партикл или модель
3) hero - у тебя это не кастер и не таргет, кому ты звук воспроизодишь?
Звук сам есть и он играет. Так же лист с моими звуками я прикешил. По прежнему не робит(

"green_slark"
{
"BaseClass" "ability_datadriven"
"AbilityTextureName" "slark"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_POINT"
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
"MaxLevel" "1"
"RequiredLevel" "1"
"AbilityCastRange" "500"
"AbilityCastPoint" "0.65"
"AbilityCooldown" "20"
"AbilitySound" "hero_defense.echo_slam_arcana1"
"OnSpellStart"
{
"FireSound"
{
"EffectName" "sounds/echo_slam_arcana1"
"Target" "CASTER"
}
"RunScript"
{
"ScriptFile" "scripts/vscripts/abilities/slark_ability.lua"
"Function" "AddHeroPickAbilities"
}
}
}
function AddHeroPickAbilities(keys)
local caster = keys.caster
local heroName = "npc_dota_hero_slark"
if caster:GetUnitName() ~= heroName then
local hero = PlayerResource:ReplaceHeroWith(caster:GetPlayerID(), heroName, 0, 0)
Timers:CreateTimer(0.1, function()
hero:RemoveAbility("green_slark")
EmitSoundOn("sounds/echo_slam_arcana1", caster)
print("Звук есть!")
local particle = ParticleManager:CreateParticle("particles/econ/items/earthshaker/earthshaker_arcana/earthshaker_arcana_echoslam_start.vpcf", PATTACH_CUSTOMORIGIN, hero)
ParticleManager:SetParticleControl(particle, 0, hero:GetAbsOrigin())
ParticleManager:SetParticleControl(particle, 3, hero:GetAbsOrigin())
ParticleManager:ReleaseParticleIndex(particle)
end)
else
caster:SetLevel(1)
local xp_to_remove = caster:GetCurrentXP()
caster:AddExperience(-1 * xp_to_remove, DOTA_ModifyXP_Unspecified, false, false)
end
end
 
Последнее редактирование:
Так погоди, а зачем ты указываешь папку sounds , если звук есть в пуле добавленный через event
Screenshot_2023-09-08-07-48-45-459_com.rhmsoft.edit.jpg
Вызов делается для всех в радиусе слышимости когда у меня бруда спавнится
Screenshot_2023-09-08-07-48-09-251_com.rhmsoft.edit.jpg
 
Прекеш делается в функции


Lua:
function Precache( context )
PrecacheResource("soundfile", "soundevents/broodmother.vsndevts", context )
PrecacheResource("soundfile", "soundevents/sven.vsndevts", context )
end
 
всеравно не пойму. Мой звук в ассете есть. значит проблем в эвент листе нет
"hero_defense.echo_slam_arcana1"
{
"operator_stacks"
{
"update_stack"
{
"reference_operator"
{
"operator" "sos_reference_stack"
"reference_stack" "src1_2d"
"operator_variables"
{
"vsnd_files"
{
"value"
{
"value0" "sounds/echo_slam_arcana1.vsnd"
}
}
"volume" { "value" "10.00000" }
"pitch_rand_min" { "value" "-0.05000" }
"pitch_rand_max" { "value" "0.050000" }
"pitch" { "value" "1.000000" }
"soundlevel" { "value" "100.00000" }
"distance_min" { "value" "1500.000" }
"distance_max" { "value" "1600.000" }
"event_type" { "value" "1.000000" }
"duration" { "value" "5.000000" }
}
}
}
}
}
прикеш коректен в адон гейм мод
переделал скрипт в надежде решить проблему
function AddHeroPickAbilities(keys)
local caster = keys.caster
local heroName = "npc_dota_hero_slark"
if caster:GetUnitName() ~= heroName then
local hero = PlayerResource:ReplaceHeroWith(caster:GetPlayerID(), heroName, 0, 0)
Timers:CreateTimer(0.1, function()
hero:RemoveAbility("green_slark")
local soundName = "echo_slam_arcana1"
EmitSoundOn(soundName, caster)
print("Звук есть!")
Timers:CreateTimer(5, function()
StopSoundOn(soundName, caster)
print("Звук остановлен!")
end)
local particle = ParticleManager:CreateParticle("particles/econ/items/earthshaker/earthshaker_arcana/earthshaker_arcana_echoslam_start.vpcf", PATTACH_CUSTOMORIGIN, hero)
ParticleManager:SetParticleControl(particle, 0, hero:GetAbsOrigin())
ParticleManager:SetParticleControl(particle, 3, hero:GetAbsOrigin())
ParticleManager:ReleaseParticleIndex(particle)
end)
else
caster:SetLevel(1)
local xp_to_remove = caster:GetCurrentXP()
caster:AddExperience(-1 * xp_to_remove, DOTA_ModifyXP_Unspecified, false, false)
end
и вот те на ошибка:
Звук есть!

CSoundOpGameSystem::StopSoundEvent: Attempting to stop non-existent soundevent: echo_slam_arcana1
Звук остановлен!
тоесть кастомка звук не видит.
ну почему так *****?
 
То что твой звук в ассете, это не значит что ты правильно оформил его по soundevents
названия звуков не совпадают
hero_defense.echo_slam_arcana1 и echo_slam_arcana1
 
То что твой звук в ассете, это не значит что ты правильно оформил его по soundevents
названия звуков не совпадают
hero_defense.echo_slam_arcana1 и echo_slam_arcana1
так в гайде говорил что без ризницы какое название
 
Не ну теперь сработало. Чудно. Спасибо вам всем;)
 
Реклама: