Give a look on the Filesystem interface, which allows you to mount and read files from GCF: https://developer.valvesoftware.com/wiki/IFileSystem
Júlio César Em 6 de fevereiro de 2012 13:22, Flávio Roberto <feg...@gmail.com> escreveu: > Got some updates on this. > > I was able to solve my problem of not being able to configure the particle > system when dispatched from the server like this: > > Created a temporary entity on Server and Client (CSynaesthesiaEntity and > C_SynaesthesiaEntity). > > On the server, it just transmits some info of the sound to the client > version (some EmitSount_t members). > On the client, it spawns a client-side only entity (C_SynaesthesiaProcessor) > to configure, dispatch and control a particle effect. > > Created a client-side only entity (C_SynaesthesiaProcessor) that creates and > maintains the particle effect based on information from the sound metadata > and audio features extraction. > > > I'm almost sure that that's not the most efficient way to do it, but I > believe the performance loss won't be a problem for a prototype. > > > > Now, the next task is to use an audio feature extraction library to read > some information from the game sounds. I have already integrated the library > (http://marsyas.info) to the source code using the FMOD tutorial on the wiki > as guide. > > However, as I am using the sounds from HL2 (my sounds folder does not exist) > I still haven't figured out how to access the game sound files - that are > inside the GCF. A really simple but ugly approach is to extract the game > sounds from the GCF to the mod's sound folder, but I would like to avoid > that. Can someone shed some light on this matter? > > > Thanks!! > > Flávio Roberto > http://www.dcc.ufmg.br/~flavioro/ > > > > Em 26 de janeiro de 2012 15:08, Flávio Roberto <feg...@gmail.com> escreveu: > >> Okay, here I am again! >> >> I was able to inject some code in SoundEmitterSystem.cpp that spawns a >> particle system whenever/wherever a sound effect is played. This is part of >> the ugly, temporary (and a bit simplified) code: >> >> #if defined( CLIENT_DLL ) >> #include "particles_new.h" >> >> void AttachParticleEffectForSynaesthesia(int entindex, const Vector* origin, bool isVoice = false, float duration = 1, bool ignorez = false) >> { >> if (!sv_synaesthesia_mode.GetBool() || origin == NULL) >> return; >> >> PrecacheParticleSystem("synaesthesia_particles"); >> >> >> CNewParticleEffect* pEffect = new CNewParticleEffect(ClientEntityList().GetBaseEntity(entindex), "synaesthesia_particles"); >> >> >> >> // If sound is a voice, shift it up a bit (because the sounds from voices are emitted not from the mouths, but from chararacters' bellies) >> Vector newOrigin = *origin; >> if (isVoice) { >> newOrigin += Vector(0,0, 45); >> } >> pEffect->SetControlPoint( 0, newOrigin ); >> >> // This sets the color of the particle effect to red. Later, it'll use a >> sound processing library to extract features and set the color accordingly >> >> pEffect->SetControlPoint( 1, Vector(255, 0, 0)); >> >> >> } >> #else >> #include "particle_parse.h" >> >> void AttachParticleEffectForSynaesthesia(int entindex, const Vector* origin, bool isVoice = false, float duration = 1, bool ignorez = false) >> { >> if (!sv_synaesthesia_mode.GetBool() || origin == NULL) >> return; >> >> >> DispatchParticleEffect( sv_synaesthesia_particle_name.GetString(), *origin, QAngle(0,0,1), NULL); >> } >> #endif >> >> >> Results of a previous (almost equal) version of that code and particle >> system: >> >> >> http://www.youtube.com/watch?v=OHJ8iTb4T54&feature=context&context=C3e61f17UDOEgsToPDskJNfp_0vvinY3J-zCIyOzex >> >> http://www.youtube.com/watch?v=OqKrDiiqoCA&feature=plcp&context=C3e61f17UDOEgsToPDskJNfp_0vvinY3J-zCIyOzex >> >> >> >> >> >> Now I got one problem. When the sound is emitted from the client, I am >> able to configure the particle effect. But from the server side, >> DispatchParticleEffect does not give me the opportunity (right?). >> >> So now, I am moving to a more organized implementation. AFAIK, to be able >> to configure the particle effect, I have to create them on the client. But I >> have not yet understood the client/server entities thing yet. >> >> I would like to know if this can be a good way to do it: >> >> Create a "CSynaesthesiaEntity" on the server. >> Create a "C_SynaesthesiaEntity" on the client. >> >> For sounds triggered from the client, I spawn a "C_SynaesthesiaEntity" >> with the intended parameters to configure and spawn the particle effect. >> For sounds triggered from the server, I spawn a "CSynaesthesiaEntity" that >> will only trigger a "C_SynaesthesiaEntity" that will finish the job. >> >> >> Can that work?? >> >> >> >> Thanks very much! >> >> Flávio Roberto >> http://www.dcc.ufmg.br/~flavioro/ >> >> PS: About the previous issue with setting up HL2 maps, I ended up finding >> the configuration files with GCFScape and using them. =) >> >> >> >> >> Em 27 de dezembro de 2011 13:15, Flávio Roberto <feg...@gmail.com> >> escreveu: >> >>> Hey Saul, >>> >>> That was what I chose, but the configuration files were all from EP2. >>> But I have managed to make some progress these days and I got something >>> working (using GCFScape and tuning the configuration files). >>> >>> Now, to the modding =) >>> Thanks everyone and a late merry xmas! >>> >>> >>> >>> Flávio Roberto >>> http://www.dcc.ufmg.br/~flavioro/ >>> >>> >>> >>> On Fri, Dec 23, 2011 at 7:51 PM, Saul Rennison <saul.renni...@gmail.com> >>> wrote: >>>> >>>> Use "Modify HL2 Singleplayer" as your Create a Mod option. It should >>>> work exactly like HL2 as far I recall. >>>> >>>> >>>> Kind regards, >>>> Saul Rennison >>>> >>>> >>>> >>>> On 23 December 2011 16:38, Flávio Roberto <feg...@gmail.com> wrote: >>>>> >>>>> Just to clarify: the problem is that my first step is to "recreate" the >>>>> HL2 environment (map sequence, configurations etc) so I can work on top of >>>>> it. And I'm still struggling with that. >>>>> >>>>> >>>>> Flávio Roberto >>>>> http://www.dcc.ufmg.br/~flavioro/ >>>>> >>>>> >>>>> >>>>> 2011/12/23 Flávio Roberto <feg...@gmail.com> >>>>>> >>>>>> Oh, that's great! Thank you aVoX and Saul! >>>>>> >>>>>> aVoX, I had already found that folder (\sourcesdk_content\hl2\mapsrc), >>>>>> but there are only some of the maps there. In this case, I believe the >>>>>> option left is to use GCFScape on ...\steamapps\half-life 2 content.gcf >>>>>> and >>>>>> decompile, right? >>>>>> >>>>>> One more thing: the configuration files created by the "Create a Mod" >>>>>> Wizard contain information as if it were based on EP2 (chapters, >>>>>> gameinfo...). >>>>>> Is that because I used the 2007 sdk version? Is there a quick way to >>>>>> reuse all (and only) the HL2 configuration files? >>>>>> >>>>>> Thanks! >>>>>> >>>>>> Flávio Roberto >>>>>> http://www.dcc.ufmg.br/~flavioro/ >>>>>> >>>>>> >>>>>> >>>>>> On Fri, Dec 23, 2011 at 5:02 AM, <a...@arcticmail.com> wrote: >>>>>>> >>>>>>> Concerning 1. you should take a look in your >>>>>>> "...\SteamApps\<USER>\sourcesdk_content\hl2\mapsrc" directory. All maps >>>>>>> are >>>>>>> available in a Hammer-readable VMF. >>>>>>> >>>>>>> aVoX. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> To unsubscribe, edit your list preferences, or view the list >>>>>>> archives, please visit: >>>>>>> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> To unsubscribe, edit your list preferences, or view the list archives, >>>>> please visit: >>>>> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders >>>>> >>>>> >>>> >>>> >>>> _______________________________________________ >>>> To unsubscribe, edit your list preferences, or view the list archives, >>>> please visit: >>>> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders >>>> >>>> >>> >> > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders