D2R52 Posted March 16, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted March 16, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted March 16, 2016 Share Posted March 16, 2016 (edited) Вот бы еще код на замену эвентов в sound_notifications.xml (я полагаю он давно существует, только мне не известен :)) ps. может я чего недопонимаю, но с этим кодом слышу только звуки из подгруженного банка, все остальное отключилось :(( поможете? Edited March 16, 2016 by Kapany3uk @ Quote Link to comment Short link Share on other sites More sharing options...
D2R52 Posted March 16, 2016 Author Share 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 Link to comment Short link Share on other sites More sharing options...
SkepticalFox Posted March 16, 2016 Share Posted March 16, 2016 (edited) ps. может я чего недопонимаю, но с этим кодом слышу только звуки из подгруженного банка, все остальное отключилось :(( поможете? Исправил. Edited March 16, 2016 by ShadowHunterRUS @ Quote Link to comment Short link Share on other sites More sharing options...
D2R52 Posted March 16, 2016 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted March 17, 2016 Share Posted March 17, 2016 фигня @ Quote Link to comment Short link Share on other sites More sharing options...
D2R52 Posted March 17, 2016 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted March 17, 2016 Share Posted March 17, 2016 Сначала нужно оригинал вызывать, потом свою, но это тоже фигня У меня сделано в такой же функции, но работает сейчас по другому, не так как я тогда показал 1 @ Quote Link to comment Short link Share on other sites More sharing options...
D2R52 Posted March 17, 2016 Author Share Posted March 17, 2016 Сначала нужно оригинал вызывать, потом свою, но это тоже фигня У меня сделано в такой же функции, но работает сейчас по другому, не так как я тогда показал Если сначала вызвать оригинал, а потом свою, то банки подгруженные оригиналом насколько я понял отключаются? При этом пропадает музыка в ангаре и на тех картах, в которых она погружается через arena_defs. Поэтому я взял стандартную функцию из soundgroups и добавил туда свои банки. Т.о. они грузятся одновременно и музыка не пропадает. Можно узнать, почему это тоже фигня? @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted March 17, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
D2R52 Posted March 17, 2016 Author Share Posted March 17, 2016 и что оно дает? return 'Play_sonar' Что это, а то не понял Оно дает замену события wwise lightbulb на мое событие Play_sonar, и таким образом проигрывается нужный звук. @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted March 17, 2016 Share Posted March 17, 2016 Оно дает замену события wwise lightbulb на мое событие Play_sonar, и таким образом проигрывается нужный звук.тоесть на твой звук? @ Quote Link to comment Short link Share on other sites More sharing options...
Naval_Bearded_Man Posted March 21, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.