I would just create the rain as particles in the first place and move the 
spawner around together with the player, and create the slashes randomly on 
the ground, simply not tracing at all, but guessing. It's a lot faster, a 
little less reliable, but it should serve you well.

----- Original Message ----- 
From: "Ryan Sheffer" <[email protected]>
To: "Discussion of Half-Life Programming" <[email protected]>
Sent: Wednesday, April 01, 2009 7:41 AM
Subject: Re: [hlcoders] Spawning particle systems at the end 
offunc_precipitation randrops when they collide with props orbrushes - how?


> It's not the greatest way to determine when a particle hits something,
> but valve were trying to keep it simple. With a lot of rain it can get
> pretty expensive. Once you get the hang of the sdk, you should maybe
> use a particle that actually collides with anything solid so you can
> make your splash. Or just clean up the isinair function.
>
> On Mar 31, 2009, at 8:21 PM, James K <[email protected]> wrote:
>
>> When i said basics, i meant bare basics (:P) I don't know enough
>> coding to
>> know how to set my own rules. I know i'm a complete noob at coding,
>> but i'm
>> really trying to learn. Could ya help me out with an example?
>>
>> Also from what i can see this will create a splash when the rain
>> trace is no
>> longer in the air - but regular rain goes right through props. So,
>> splashes
>> wouldn't be created on props, correct? I don't care if they're not,
>> i can
>> always just create brushes for that.
>> Sorry to be such a hassle, i probably shouldn't have started on
>> something so
>> advanced, heh.
>>
>>
>> On Tue, Mar 31, 2009 at 10:47 PM, Ryan Sheffer <[email protected]>
>> wrote:
>>
>>> Hey bud
>>>
>>> I just took a look at the code and valve did some splash code per
>>> particle
>>> for I guess Counter-Strike source. If you look in c_effects under
>>> SimulateRain there is a block:
>>>
>>>   // No longer in the air? punt.
>>>   if ( !IsInAir( pParticle->m_Pos ) )
>>>   {
>>>       // Possibly make a splash if we hit a water surface and it's in
>>> front of the view.
>>>       if ( m_Splashes.Count() < 20 )
>>>       {
>>>           if ( RandomInt( 0, 100 ) <
>>> r_RainSplashPercentage.GetInt() )
>>>           {
>>>               trace_t trace;
>>>               UTIL_TraceLine(vOldPos, pParticle->m_Pos, MASK_WATER,
>>> NULL,
>>> COLLISION_GROUP_NONE, &trace);
>>>               if( trace.fraction < 1 )
>>>               {
>>>                   m_Splashes.AddToTail( trace.endpos );
>>>               }
>>>           }
>>>       }
>>>
>>>       // Tell the framework it's time to remove the particle from
>>> the list
>>>       return false;
>>>   }
>>>
>>> You would just replace anything after if ( !IsInAir( pParticle-
>>> >m_Pos ) )
>>> with your own rules using pParticle->m_Pos as the position to spawn
>>> your
>>> effect.
>>> Then you use
>>>
>>> DispatchParticleEffect( EFFECT_NAME, pParticle->m_Pos, vecAngles );
>>>
>>> Make sure your particle effect is precached and you should be set.
>>>
>>> On Tue, Mar 31, 2009 at 4:06 PM, James K <[email protected]> wrote:
>>>
>>>> I know the basics of C++, not anything major. The particle demo
>>>> was done
>>> by
>>>> a map-defined particle system, and i'm looking to do what
>>>> Left4Dead does
>>>> with the splash particles implemented code-wise.
>>>>
>>>> On Tue, Mar 31, 2009 at 6:58 PM, Ryan Sheffer <[email protected]>
>>> wrote:
>>>>
>>>>> Well I don't know your experience level. Which part would you like
>>>>> help with? When I get home from school I'll take a look. Valve
>>>>> had a
>>>>> particle system spawn where rain hit in the tech demo and L4D so
>>>>> that
>>>>> code is probably still there for you to alter.
>>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>> On Mar 31, 2009, at 12:26 PM, James K <[email protected]> wrote:
>>>>>
>>>>>> The question is, how?
>>>>>>
>>>>>> On Tue, Mar 31, 2009 at 10:31 AM, Ryan Sheffer <[email protected]
>>>>>> >
>>>>>> wrote:
>>>>>>
>>>>>>> I am pretty sure rain just uses a trace, and the end of that
>>>>>>> trace
>>>>>>> would be where you make your effect, after the time it takes to
>>>>>>> get
>>>>>>> to
>>>>>>> the ground of course.
>>>>>>>
>>>>>>> Sent from my iPhone
>>>>>>>
>>>>>>> On Mar 30, 2009, at 9:20 PM, James K <[email protected]> wrote:
>>>>>>>
>>>>>>>> I had a friend who had done this, however i cannot contact him
>>>>>>>> to
>>>>>>>> ask how he
>>>>>>>> did it. I know rain is handled in c_effects.cpp, but i don't
>>>>>>>> know
>>>>>>>> enough
>>>>>>>> about coding to do something like this (I've got to start
>>>>>>>> learning
>>>>>>>> somewhere
>>>>>>>> though, right?) How would i go about doing this?
>>>>>>>> _______________________________________________
>>>>>>>> To unsubscribe, edit your list preferences, or view the list
>>>>>>>> archives, please visit:
>>>>>>>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> To unsubscribe, edit your list preferences, or view the list
>>>>>>> archives,
>>>>>>> please visit:
>>>>>>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> To unsubscribe, edit your list preferences, or view the list
>>>>>> archives, please visit:
>>>>>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> To unsubscribe, edit your list preferences, or view the list
>>>>> archives,
>>>>> please visit:
>>>>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>>>>
>>>>>
>>>> _______________________________________________
>>>> To unsubscribe, edit your list preferences, or view the list
>>>> archives,
>>>> please visit:
>>>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>>>
>>>>
>>>
>>>
>>> --
>>> ~Ryan ( skidz )
>>> _______________________________________________
>>> To unsubscribe, edit your list preferences, or view the list
>>> archives,
>>> please visit:
>>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>>
>>>
>> _______________________________________________
>> To unsubscribe, edit your list preferences, or view the list
>> archives, please visit:
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives, 
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
> 


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to