Welcome to Сообщество игровых серверов NETZONA.ORG

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию другим участникам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

Помогите найти аддон

Статус
В этой теме нельзя размещать новые ответы.

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Ранее видел аддон на проигрывание mp3 на весь сервер (для всех игроков) , когда игрок берёт определённую профессию.
Например я взял Мэра и начинается проигрывание mp3 для всех игроков на сервере.
Взял Капитана полиции - начинается проигрывание другого mp3 так же для всех игроков.

Заранее спасибо.
 

RaCc0oN

Пользователь
Проверенный
Регистрация
10 Мар 2022
Сообщения
87
Реакции
0
Баллы
16
Пол
Мужской
Семейное положение
Не выбрано
Род занятий
Java dev
Не знаю про такой аддон, но можно и самому сделать через sound.Play тот же и добавить хук на смену опеределенных проф, как сменили на нее, так и звук заиграл
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Не знаю про такой аддон, но можно и самому сделать через sound.Play тот же и добавить хук на смену опеределенных проф, как сменили на нее, так и звук заиграл
Я знаю surface.PlaySound это точно на всю карту звук играет. И я попробовал что-то в этом роде сделать:

Lua:
local teamsSCP = {
    ["TEAM_999"] = true
}

function IsSCP(ply)
    return teamsSCP[ply:Team()]
end

hook.Add("PlayerSpawn", "SpawnSCP", function(ply)
    if player:IsSCP() then
        surface.PlaySound("addoncontent/intercom/intercomstart.mp3")
    end
end)

Но как бы хрен там плавал. Не воркает.....
 

RaCc0oN

Пользователь
Проверенный
Регистрация
10 Мар 2022
Сообщения
87
Реакции
0
Баллы
16
Пол
Мужской
Семейное положение
Не выбрано
Род занятий
Java dev
Не воркает хук или функция?
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер

RaCc0oN

Пользователь
Проверенный
Регистрация
10 Мар 2022
Сообщения
87
Реакции
0
Баллы
16
Пол
Мужской
Семейное положение
Не выбрано
Род занятий
Java dev
https://wiki.facepunch.com/gmod/Global.IsFirstTimePredicted
попробуй через IsFirstTimePredicted проверку сделать
Сообщение автоматически объединено:

Можно сделать аналог локдауна, вырезав почти все

Lua:
function DarkRP.lockdown(ply)
    if lstat then
        if ply:EntIndex() == 0 then
            print(DarkRP.getPhrase("unable", "/lockdown", DarkRP.getPhrase("stop_lockdown")))
            return
        else
            DarkRP.notify(ply, 1, 4, DarkRP.getPhrase("unable", "/lockdown", DarkRP.getPhrase("stop_lockdown")))
            return ""
        end
    end
    if ply:EntIndex() == 0 or (RPExtraTeams[ply:Team()] and RPExtraTeams[ply:Team()].mayor) then
        for k,v in pairs(player.GetAll()) do
            v:ConCommand("play npc/overwatch/cityvoice/f_confirmcivilstatus_1_spkr.wav\n")
        end
        lstat = true
        DarkRP.printMessageAll(HUD_PRINTTALK, DarkRP.getPhrase("lockdown_started"))
        SetGlobalBool("DarkRP_LockDown", true)
        DarkRP.notifyAll(0, 3, DarkRP.getPhrase("lockdown_started"))
    else
        if ply:EntIndex() == 0 then
            print(DarkRP.getPhrase("incorrect_job", "/lockdown", ""))
        else
            DarkRP.notify(ply, 1, 4, DarkRP.getPhrase("incorrect_job", "/lockdown", ""))
        end
    end
    return ""
end
concommand.Add("rp_lockdown", function(ply) DarkRP.lockdown(ply) end)
DarkRP.defineChatCommand("lockdown", function(ply) DarkRP.lockdown(ply) end)
Сообщение автоматически объединено:

Во, нашел похожий запрос, там в комментариях человек хорошо объясняет
 
Последнее редактирование:

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Такс. Глупость 1 - я это всё вставлял в cl часть. Потому и не работало:poop:

Проверил Sound.Play 1648823685252.png
Это в Jobs, но это работает только с векторами , то есть в указанном месте будет воспроизводится звук. Без вектора - нельзя (ошибки будут). А если поставить 0,0,0 - то без понятия где вообще звук воспроизводится.


Теперь в sv луа я попробовал следующее:
Lua:
hook.Add("PlayerSpawn", "Penis", function(ply)
    if ply:Team() == TEAM_999 then
        surface.PlaySound("addoncontent/intercom/intercomstart.mp3")
    end
end)

Ошибок нет, но звук - не играет.Если поменять на ply armor ... то работает всё.


Если попробовать самый первый код запустить в sv - ошибки. Ply консоль не распознаёт (nil value)


Во, нашел похожий запрос, там в комментариях человек хорошо объясняет
Я это тоже видел, он предложил что и ты - Sound.Play
 

RaCc0oN

Пользователь
Проверенный
Регистрация
10 Мар 2022
Сообщения
87
Реакции
0
Баллы
16
Пол
Мужской
Семейное положение
Не выбрано
Род занятий
Java dev
У меня было предположение, что косяк связан с св и кл частью, но подумал, что вряд-ли.

так, а попробуй, что бы он воспроизвел стандартный звук из гмода. Может он не видит твой звук. Есть вариант подгрузить звук и после воспроизводить.
Сообщение автоматически объединено:

Стопэ - surface.PlaySound( String filepath ) - это же клиентская часть
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
У меня было предположение, что косяк связан с св и кл частью, но подумал, что вряд-ли.

так, а попробуй, что бы он воспроизвел стандартный звук из гмода. Может он не видит твой звук. Есть вариант подгрузить звук и после воспроизводить.
Где и какой звук воспроизводить - аддон понимает. Но как бы правильно написать всё........
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
У меня было предположение, что косяк связан с св и кл частью, но подумал, что вряд-ли.

так, а попробуй, что бы он воспроизвел стандартный звук из гмода. Может он не видит твой звук. Есть вариант подгрузить звук и после воспроизводить.
Сообщение автоматически объединено:

Стопэ - surface.PlaySound( String filepath ) - это же клиентская часть
Так. Я пришёл к выводу: хук, который выше (PlayerSpawn) - работает исключительно в SV части. И еще понял что мне же нужно только 1 раз проигрывать звук, когда игрок берёт нужную профессию, по этому нужно использовать PlayerInitialSpawn (тоже SV).
surface.SoundPlay - исключительно в CL части.

Заново напишу что мне нужно:
Есть условно 5 проф. На каждую профу - новый mp3. Как только игрок выбрал себе одну из условных проф - начинает проигрывать mp3 для всех игроков на сервере.


По этому нужно создавать 2 разных файла (кл/св) и их объединять в коде. В теории что делать - я знаю , только как это написать - нет.
 

najmik

Пользователь
Регистрация
22 Мар 2019
Сообщения
356
Реакции
0
Баллы
38
Так. Я пришёл к выводу: хук, который выше (PlayerSpawn) - работает исключительно в SV части. И еще понял что мне же нужно только 1 раз проигрывать звук, когда игрок берёт нужную профессию, по этому нужно использовать PlayerInitialSpawn (тоже SV).
surface.SoundPlay - исключительно в CL части.

Заново напишу что мне нужно:
Есть условно 5 проф. На каждую профу - новый mp3. Как только игрок выбрал себе одну из условных проф - начинает проигрывать mp3 для всех игроков на сервере.


По этому нужно создавать 2 разных файла (кл/св) и их объединять в коде. В теории что делать - я знаю , только как это написать - нет.
попробуй через неты юзнуть эту тему
 

Levanchik

Пользователь
Регистрация
3 Апр 2020
Сообщения
359
Реакции
2
Баллы
38
попробуй через неты юзнуть эту тему
Зачем засирать свой сервер нетами? Все спокойно можно сделать и на CL. Возьми просто всех игроков и пусть при появлении опр SCP они на СВОЕЙ стороне будут воспроизводить звук. Надеюсь помог и правильно указал.
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Короче решение куда проще. Частично леванчик был прав по поводу того что можно всё сделать только в CL. И еще подсказка очень важная от человека с забугора.
Вот решение:
Открываем jobs.lua
У некоторых проф есть PlayerLoadout , он в основном для установки хп/армора и бодигроупов.
Но мы сюда еще дописываем
Lua:
ply:EmitSound("#путь/к/звуку.mp3", 0)
. Итак что получается:

Lua:
TEAM_008 = DarkRP.createJob("008", {
   color = Color(0, 201, 8, 255),
   model = {"models/player/Group02/male_02.mdl"},
   description = [[ текст ]],
   weapons = {"weapon_physcannon"},
   command = "008",
   max = 2,
   salary = 35,
   admin = 0,
   vote = false,
   hasLicense = false,
   candemote = false,
   category = "Подпивасники",
   PlayerLoadout = function(ply)
      ply:SetHealt(300)
      ply:EmitSound("#shitsborka/scp/008.mp3", 0)  -- наш звук
    end,
})
А сами звуки mp3 можно засунуть в аддон, загрузить его в воркшоп и оттуда на сервер прописать по стандарту.

По поводу того что перед путём к звуку стоит #, то человек с забугора сказал следующее:
The '#' causes the sound to be unaffected by DSP (i.e. when being underwater).
И если я верно перевёл то звук mp3 не будет слышан для игроков под водой
 

RaCc0oN

Пользователь
Проверенный
Регистрация
10 Мар 2022
Сообщения
87
Реакции
0
Баллы
16
Пол
Мужской
Семейное положение
Не выбрано
Род занятий
Java dev
Не плохой вариант, как это можно реализовывать
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Оказалось это слышно только в определённом радиусе, те кто неподалёку от спавнящегося игрока (у которого прописан мп3).

Вопрос снова открыт.....
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
И так: я переписал один аддон и он работает (выполняет то, что я просил в теме).
Но теперь вопрос в другом: почему не срабатывает таймер (не повторяется функция при повторном заходе за прописанную профу).
Оставляю ссылку на архив, в надежде что кто-то поможет решить проблемс: https://mega.nz/file/HawyxYYL#4bNx13165DTR58BNt0OU8kQNEjA2XOQ2weQk5Pyv6qk
 

Morgan

Модератор
Команда форума
Проверенный
Регистрация
24 Сен 2019
Сообщения
943
Реакции
12
Баллы
62
Адрес
города крутых Модераторов
Пол
Мужской
Семейное положение
Свободен(а) как ветер
Решено , спасибо RaCc0oN.
Всего-то нужно поменять местами end
Решение, как должно быть в конечном итоге:
1649705731228.png
Исправите и можете спокойно использовать этот аддон для своих сцп проектов(или же чего-то другого, звуки только меняйте).

ЛИБО: https://github.com/xerxes228/SoundWhenSCPspawn/ (тут всё исправлено)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу