Доброго дня. Достался мне в руки плагин, реализующий джетпак в сурс играх, но какой-то кривой. Называется Crazy Jet, брал тут или на AlliedModders. Идея мне понравилась, но со звуков была беда, да и управление мне не понравилось, в общем, сел переделывать. Так как с SourcePawn я не знаком, то появилось несколько вопросов, ответов на которые я не нашёл. Да, я допиливаю плагин под HL2DM.
Вопрос первый. Я заменил использованные в плагине Play/StopSoud на EmitSoundToClient, в целом, это работает, но появилась идея сделать так, чтобы звук включенного джетпака слышали не только клиенты по отдельности, но и находящиеся рядом игроки, при том, чтобы при удалении уровень звука постепенно ослабевал. Нашёл в доках функцию EmitAmbientSound, кажется, она подойдёт. Вопрос вот в чём - как реализовать изменение громкости при изменении расстояния между игроками? Я использую звук с лупом внутри, который запускаю при активации ранца и останавливаю при деактивации. Не имею понятия, как и где измерять расстояние и как заставить уже проигрываемый звук изменить громкость, а также положение (EmitAmbientSound pos). Дайте наводку, как правильно поступить?
Второй вопрос. Джетпак в оригинале использует маяк для индикации работы. Может, в TF2 это и красиво, но не в HL2DM. Я изменил это на TE_SetupEnergySplash, но хотел бы добавить TE_SetupBeamFollow. Проблема вот в чём. Поскольку я передаю в TE_SetupBeamFollow индекс клиента, то трейл рисуется от рук игрока, а хотелось бы, чтобы от ног. Я полагаю, что решение в создании невидимого entity в ногах клиента, а уже от него надо рисовать трейл. Прав ли я и как сделать правильно?
Заранее благодарен за помощь.
Вопрос первый. Я заменил использованные в плагине Play/StopSoud на EmitSoundToClient, в целом, это работает, но появилась идея сделать так, чтобы звук включенного джетпака слышали не только клиенты по отдельности, но и находящиеся рядом игроки, при том, чтобы при удалении уровень звука постепенно ослабевал. Нашёл в доках функцию EmitAmbientSound, кажется, она подойдёт. Вопрос вот в чём - как реализовать изменение громкости при изменении расстояния между игроками? Я использую звук с лупом внутри, который запускаю при активации ранца и останавливаю при деактивации. Не имею понятия, как и где измерять расстояние и как заставить уже проигрываемый звук изменить громкость, а также положение (EmitAmbientSound pos). Дайте наводку, как правильно поступить?
Второй вопрос. Джетпак в оригинале использует маяк для индикации работы. Может, в TF2 это и красиво, но не в HL2DM. Я изменил это на TE_SetupEnergySplash, но хотел бы добавить TE_SetupBeamFollow. Проблема вот в чём. Поскольку я передаю в TE_SetupBeamFollow индекс клиента, то трейл рисуется от рук игрока, а хотелось бы, чтобы от ног. Я полагаю, что решение в создании невидимого entity в ногах клиента, а уже от него надо рисовать трейл. Прав ли я и как сделать правильно?
Заранее благодарен за помощь.