D2R52 49 Posted March 16, 2016 (edited) Привет, подскажите что делаю не так Хочу подгрузить свои звуки, вызываю bank = 'CustomSounds.bnk' WWISE.WG_loadBanks(bank, False) Ничего не происходит, в логе сообщения об ошибке нет, но звуков новых тоже нет. Вариант на котором остановился # -*- coding: utf-8 -*- import WWISE import ResMgr from SoundGroups import SoundGroups from debug_utils import * def new_preloadSoundGroups(self, arenaName): settings = ResMgr.openSection('scripts/arena_defs/' + arenaName + '.xml/preloadSoundBanks') banks = '' if settings is not None: banks = settings.asString mybanks = '' mysettings = ResMgr.openSection('scripts/mod_SoundBankLoader.xml/preloadSoundBanks') if mysettings is not None: mybanks = mysettings.asString #TODO load from configuration banks=mybanks + banks; from Account import PlayerAccount isHangar = isinstance(BigWorld.player(), PlayerAccount) if isHangar: WWISE.WG_loadBanks(self.defaultGroupList + ';' + banks, True) LOG_NOTE('[SOUND]: Load banks['+self.defaultGroupList+';'+banks+']') else: WWISE.WG_loadBanks(banks, False) LOG_NOTE('[SOUND]: Load banks['+banks+']') import MusicController MusicController.g_musicController.init(arenaName) return mybanks = '' mysettings = ResMgr.openSection('scripts/mod_SoundBankLoader.xml/preloadSoundBanks') if mysettings is not None: mybanks = mysettings.asString.strip() if mybanks: SoundGroups.preloadSoundGroups = new_preloadSoundGroups BigWorld.logInfo('SoundBankLoader', 'SoundBankLoader mod by D2R52 loaded', None) else: BigWorld.logInfo('SoundBankLoader', 'SoundBankLoader mod by D2R52 not loaded - missing configuration', None) Edited March 17, 2016 by D2R52 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #318877 Posted March 16, 2016 (edited) http://www.koreanrandom.com/forum/topic/18955-/?p=317523 import WWISE def new_WG_loadBanks(xmlPath, banks, isHangar): banks += ';CustomSounds.bnk' return orig_WG_loadBanks(xmlPath, banks, isHangar) orig_WG_loadBanks = WWISE.WG_loadBanks WWISE.WG_loadBanks = new_WG_loadBanks Edited May 26, 2016 by ShadowHunterRUS 1 Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #318881 Posted March 16, 2016 (edited) Вот бы еще код на замену эвентов в sound_notifications.xml (я полагаю он давно существует, только мне не известен :)) ps. может я чего недопонимаю, но с этим кодом слышу только звуки из подгруженного банка, все остальное отключилось :(( поможете? Edited March 16, 2016 by Kapany3uk Quote Share this post Link to post Short link Share on other sites
D2R52 49 #318886 Posted March 16, 2016 Вот бы еще код на замену эвентов в sound_notifications.xml (я полагаю он давно существует, только мне не известен :)) Я пытаюсь делать так (для примера замена звука лампы) import SoundGroups def newcheckAndReplace(self, event): if event == 'lightbulb': return 'Play_sonar' else: return oldcheckAndReplace(self,event) oldcheckAndReplace = SoundGroups.SoundGroups.checkAndReplace SoundGroups.SoundGroups.checkAndReplace = newcheckAndReplace #test SoundGroups.g_instance.playSound2D('lightbulb') Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #318887 Posted March 16, 2016 (edited) ps. может я чего недопонимаю, но с этим кодом слышу только звуки из подгруженного банка, все остальное отключилось :(( поможете? Исправил. Edited March 16, 2016 by ShadowHunterRUS Quote Share this post Link to post Short link Share on other sites
D2R52 49 #318888 Posted March 16, 2016 ps. может я чего недопонимаю, но с этим кодом слышу только звуки из подгруженного банка, все остальное отключилось :(( поможете? import WWISE from SoundGroups import SoundGroups from gui.app_loader.loader import g_appLoader def new_preloadSoundGroups(self, arenaName): lobby = g_appLoader.getDefLobbyApp() if lobby is not None: WWISE.WG_loadBanks('CustomSounds.bnk', True) else: WWISE.WG_loadBanks('CustomSounds.bnk', False) old_preloadSoundGroups(self, arenaName) old_preloadSoundGroups = SoundGroups.preloadSoundGroups SoundGroups.preloadSoundGroups = new_preloadSoundGroups Т.е. сначала загрузить свой банк, а потом вызвать сохраненную функцию. При этом музыка не отключается. Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #318903 Posted March 17, 2016 фигня Quote Share this post Link to post Short link Share on other sites
D2R52 49 #318922 Posted March 17, 2016 фигня Согласен, не работает... похоже вызов WWISE.WG_loadBanks() перекрывает предыдущие. В таком случае бесполезно пытаться вызвать предыдущую версию функции. Почему бы не сделать так: import WWISE from SoundGroups import SoundGroups def new_preloadSoundGroups(self, arenaName): settings = ResMgr.openSection('scripts/arena_defs/' + arenaName + '.xml/preloadSoundBanks') banks = '' if settings is not None: banks = settings.asString #TODO load from configuration banks='mysounds01.bnk;mysounds02.bnk;mysounds03.bnk;' + banks; from Account import PlayerAccount isHangar = isinstance(BigWorld.player(), PlayerAccount) if isHangar: WWISE.WG_loadBanks(self.defaultGroupList + ';' + banks, True) else: WWISE.WG_loadBanks(banks, False) import MusicController MusicController.g_musicController.init(arenaName) return SoundGroups.preloadSoundGroups = new_preloadSoundGroups Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #318928 Posted March 17, 2016 Сначала нужно оригинал вызывать, потом свою, но это тоже фигня У меня сделано в такой же функции, но работает сейчас по другому, не так как я тогда показал 1 Quote Share this post Link to post Short link Share on other sites
D2R52 49 #318930 Posted March 17, 2016 Сначала нужно оригинал вызывать, потом свою, но это тоже фигня У меня сделано в такой же функции, но работает сейчас по другому, не так как я тогда показал Если сначала вызвать оригинал, а потом свою, то банки подгруженные оригиналом насколько я понял отключаются? При этом пропадает музыка в ангаре и на тех картах, в которых она погружается через arena_defs. Поэтому я взял стандартную функцию из soundgroups и добавил туда свои банки. Т.о. они грузятся одновременно и музыка не пропадает. Можно узнать, почему это тоже фигня? Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #318932 Posted March 17, 2016 Разве, у меня все ок грузит, это потому что послденяя загрузка банки перекрывает загрузку пред банок Я сегодня свои моды обновлю вот и посмотришь Я пытаюсь делать так (для примера замена звука лампы) import SoundGroups def newcheckAndReplace(self, event): if event == 'lightbulb': return 'Play_sonar' else: return oldcheckAndReplace(self,event) oldcheckAndReplace = SoundGroups.SoundGroups.checkAndReplace SoundGroups.SoundGroups.checkAndReplace = newcheckAndReplace #test SoundGroups.g_instance.playSound2D('lightbulb') и что оно дает?return 'Play_sonar' Что это, а то не понял http://www.koreanrandom.com/forum/topic/18955-/?p=317523 import WWISE import BigWorld #from gui.app_loader.loader import g_appLoader from SoundGroups import SoundGroups def _SoundGroups_preloadSoundGroups(self, arenaName): result = orig_preloadSoundGroups(self, arenaName) #lobby = g_appLoader.getDefLobbyApp() #if lobby is not None: from Account import PlayerAccount isHangar = isinstance(BigWorld.player(), PlayerAccount) if isHangar: WWISE.WG_loadBanks('CustomSounds.bnk', True) else: WWISE.WG_loadBanks('CustomSounds.bnk', False) return result orig_preloadSoundGroups = SoundGroups.preloadSoundGroups SoundGroups.preloadSoundGroups = _SoundGroups_preloadSoundGroups в чем отличие?Просто есть прикол, если загрузка банки прописана в двух модах то будет грузить только из того мода который грузится последним Quote Share this post Link to post Short link Share on other sites
D2R52 49 #319077 Posted March 17, 2016 и что оно дает? return 'Play_sonar' Что это, а то не понял Оно дает замену события wwise lightbulb на мое событие Play_sonar, и таким образом проигрывается нужный звук. Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #319078 Posted March 17, 2016 Оно дает замену события wwise lightbulb на мое событие Play_sonar, и таким образом проигрывается нужный звук.тоесть на твой звук? Quote Share this post Link to post Short link Share on other sites
Naval_Bearded_Man 4 #320062 Posted March 21, 2016 (edited) http://www.koreanrandom.com/forum/topic/18955-/?p=317523 import WWISE def new_WG_loadBanks(self, banks, isHangar): banks += ';CustomSounds.bnk' return orig_WG_loadBanks(self, banks, isHangar) orig_WG_loadBanks = WWISE.WG_loadBanks WWISE.WG_loadBanks = new_WG_loadBanks Дает ошибку количества аргументов в WWISE.WG_loadBanks... UPD: да, вижу изменение кода. Попробую. UPD:UPD: Спасибо, всё получилось! Edited March 21, 2016 by Naval_Bearded_Man Quote Share this post Link to post Short link Share on other sites