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

