Jeffrey "botman" Broome wrote:
THE STORM wrote:
Hi all,

I know that this question is a bit outdated but I want to ask how is the
best way to get the msec value for the RunPlayerMove() call? I'm talking
about the old HL1 engine.
I tried with gpGlobals->frametime * 1000; Work good first 30 minutes and
after that the bots start to be stucked in to the round spawn.
I will be very happy if someone point me the best way to get that msec
value.

I used something like this (based on code Rich Whitehouse used for the
Jumbot)...

   // adjust the millisecond delay based on the frame rate interval...
   if (msecdel <= gpGlobals->time)
   {
      msecdel = gpGlobals->time + 0.5;
      if (msecnum > 0)
         msecval = 450.0/msecnum;
      msecnum = 0;
   }
   else
      msecnum++;

   if (msecval < 1)    // don't allow msec to be less than 1...
      msecval = 1;

   if (msecval > 100)  // ...or greater than 100
      msecval = 100;

   g_engfuncs.pfnRunPlayerMove( pEdict, pEdict->v.v_angle, 0.0,
                                   0, 0, pEdict->v.button, 0, msecval);

...it does a pretty good job of averaging the msecval over many frames
and clamps it to be within a fairly good range.

Just make 'msecnum' be a local 'int' variable for the bot and make
'msecdel' and 'msecval' be local 'float' variables...

   int msecnum;
   float msecdel;
   float msecval;

--
Jeffrey "botman" Broome


Hi botman,

I used the same algoritm before but its not work well on higher than 100fps.
gpGlobals->frametime * 1000; work good on 255 fps but after some time
the bots start to be stucked in to their spawn points.
Do you know better way ( I wonder what the official CS bot use ).
Thanks a lot anyway, I will back to the way that you posted if there is
no other solution.

The Storm

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

Reply via email to