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:

   1.
   
http://www.youtube.com/watch?v=OHJ8iTb4T54&feature=context&context=C3e61f17UDOEgsToPDskJNfp_0vvinY3J-zCIyOzex
   2.
   
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:

   1. Create a "CSynaesthesiaEntity" on the server.
   2. 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

Reply via email to