Делаю сборку HL2RP и мне нужно чтобы при смерти профессии издавали определённые звуки
local combineDeathSounds = {
"npc/combine_soldier/die1.wav",
"npc/combine_soldier/die2.wav",
"npc/combine_soldier/die3.wav"
}
local dispatcherSounds = {
"npc/overwatch/radiovoice/lostbiosignalforunit.wav",
"npc/overwatch/radiovoice/unitdownat.wav"
}
hook.Add("PlayerDeath", "PlayDeathSoundForCP", function(victim, inflictor, attacker)
if victim:isCP() then
local deathSound = table.Random(combineDeathSounds)
local dispatcherSound = table.Random(dispatcherSounds)
victim:EmitSound(deathSound, 75, 100, 1, CHAN_AUTO)
timer.Simple(0.5, function()
for _, ply in ipairs(ents.FindInSphere(victim:GetPos(), 250)) do
if ply:IsPlayer() then
ply:EmitSound(dispatcherSound, 75, 100, 1, CHAN_AUTO)
end
end
end)
end
end)
Добавляй свои звуки. Закидывай в любую sv-часть.
Не помню откуда достал это, но тем не менее оно есть.
if victim:isCP(), isCP замени на свою мету ГОшников и ОТА
Спасибо ! Сейчас буду проверять
Я чайник по части кодинга, как создать мету ?
в sh части добавляешь, условно sh_meta.lua. Туда пишешь:
hook.Add("PostGamemodeLoaded", "MetaLoad", function()
local player = FindMetaTable("Player")
local tableMPF = {
[TEAM_CP7] = true,
[TEAM_CP6] = true,
[TEAM_CP5] = true,
[TEAM_CP4] = true,
[TEAM_CP3] = true,
[TEAM_CP2] = true,
[TEAM_CP1] = true,
[TEAM_CP0] = true,
}
function player:isMPF()
if not IsValid(self) then return end
return tableMPF[self:Team()]
end
end)
с метой ОТА так же, только просто MPF замени на OTA
Всё, понял спс
Приветствую! Я чайник в кодинге и создании аддонов, можете пожалуйста сказать куда и в какие файлы добавлять эти два кода?
мета - lua/autorun/
файл - lua/autorun/server
попробуй это
Не получилось
Я сделал всё как вы сказали, в скриптах нечего не менял (кроме профессий и звуков с путями к ним), но как я уже и сказал нечего не поменялось, звуки попросту не воспроизводятся после смерти у определённых профессий…
ошибок никаких нет в серверной/клиентской консоли?
Неа, ни в серверной, ни в клиентской. Может нужно было в sh_meta заменить isMPF на isCP, я хз просто
попробуй это и скажи, что выводит
hook.Add("PostGamemodeLoaded", "MetaLoad", function()
print("Хук PostGamemodeLoaded сработал")
local player = FindMetaTable("Player")
print("Метатаблица Player найдена:", player)
local tableMPF = {
[TEAM_CP7] = true,
[TEAM_CP6] = true,
[TEAM_CP5] = true,
[TEAM_CP4] = true,
[TEAM_CP3] = true,
[TEAM_CP2] = true,
[TEAM_CP1] = true,
[TEAM_CP0] = true,
}
print("Загружена таблица MPF:", tableMPF)
function player:isMPF()
if not IsValid(self) then
print("Игрок не валиден.")
return
end
local teamCheck = self:Team()
print("Команда игрока:", teamCheck)
local result = tableMPF[teamCheck]
print("Является ли команда MPF?", result)
return result
end
end)
UPD: Еще это закинь
local combineDeathSounds = {
"npc/combine_soldier/die1.wav",
"npc/combine_soldier/die2.wav",
"npc/combine_soldier/die3.wav"
}
local dispatcherSounds = {
"npc/overwatch/radiovoice/lostbiosignalforunit.wav",
"npc/overwatch/radiovoice/unitdownat.wav"
}
hook.Add("PlayerDeath", "PlayDeathSoundForCP", function(victim, inflictor, attacker)
if victim:isMPF() then
local deathSound = table.Random(combineDeathSounds)
local dispatcherSound = table.Random(dispatcherSounds)
print("Игрок " .. victim:Nick() .. " умер. Играет звук смерти: " .. deathSound)
victim:EmitSound(deathSound, 75, 100, 1, CHAN_AUTO)
timer.Simple(0.5, function()
for _, ply in ipairs(ents.FindInSphere(victim:GetPos(), 250)) do
if ply:IsPlayer() then
print("Игрок " .. ply:Nick() .. " находится в радиусе 250, играет звук диспетчера: " .. dispatcherSound)
ply:EmitSound(dispatcherSound, 75, 100, 1, CHAN_AUTO)
end
end
end)
end
end)
Появилась в консоли ошибка “Failed to load sound “cp\death1.wav”, file probably missing from disk/repository”
Звук смерти death1.wav находиться по пути sound\cp\death1.wav, поэтому я не понимаю, почему он не находит этот звук?
попробуй sound/cp/death1.wav
Ошибка Серверная или Клиенская?
Звук есть на Сервере и Клиенте?
Failed to load sound “sound\cp\death5.wav”, file probably missing from disk/repository
слэши в другую сторону попробуй в коде вписать
Поменял ошибка в консоли пропала, но звуки также не воспроизводятся
что насчёт принтов? что-то выводит в консоли?