--
[ Picked text/plain from multipart/alternative ]
Interesting omega, might need to try it in RnL as I think we have this
problem on occasion too.

On 9/18/07, Tony omega Sergi <[EMAIL PROTECTED]> wrote:
>
> --
> [ Picked text/plain from multipart/alternative ]
> Bringing back an old topic, because I am having this issue too.
> However, I seem to have solved it, I don't know WHY this solves it (unless
> it has to do with the prediction after all!)
> I moved all my weapon timers (m_flNextPrimaryAttack / secondary) into the
> PLAYER.
>
> so in CSDKPlayer / C_SDKPlayer i have m_flNextPrimaryFire and
> m_flNextSecondaryFire, it's networked exactly the same as the
> basecombatweapon one, with the same DEFINE_PRED_FIELD_TOL values on the
> client.
>
> i put it in public so i can just do pPlayer->m_flNextPrimaryFire etc. did
> a
> find in replace for all my weapons, tested with fakelag, bug gone.
>
> My guess is because of the way the prediction works, it's predicting the
> player fine, but not other entities attached to the player.
> *shrug*
> at least this works without any 'hacks'.
>
> oh and i send it as localplayer exlusive.
>
>
> On 4/19/07, Yahn Bernier <[EMAIL PROTECTED]> wrote:
> >
> > I'll take a closer look at this since it's in the vanilla SDK.
> >
> > Yahn
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Garry Newman
> > Sent: Thursday, April 19, 2007 7:49 AM
> > To: hlcoders@list.valvesoftware.com
> > Subject: Re: [hlcoders] FW: SDK Needs to be fixed
> >
> > I think I might have seen this in GMod. Does it happen more when you're
> > jumping?
> >
> >
> >
> > On 4/19/07, Mark Chandler <[EMAIL PROTECTED]> wrote:
> > > Here is some videos that I took over the last couple of days to show
> > > you the bug.
> > >
> > > Hidden:
> > > http://lodle.net/mf/ hidden.avi
> > >
> > > Golden Eye Dev:
> > > http://lodle.net/mf/ges.avi
> > >
> > > NimMod:
> > > http://lodle.net/mf/NimMod.avi
> > >
> > > Plan Of Attack:
> > > http://lodle.net/mf/planofattack.avi
> > >
> > > Empires:
> > > http://lodle.net/mf/empires.avi
> > >
> > > Codec is 3ivx.
> > >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
> > > [mailto:[EMAIL PROTECTED] On Behalf Of
> > > [EMAIL PROTECTED]
> > > Sent: Thursday, April 19, 2007 10:10 AM
> > > To: hlcoders@list.valvesoftware.com; hlcoders@list.valvesoftware.com
> > > Subject: Re: [hlcoders] FW: SDK Needs to be fixed
> > >
> > > Why do most mods never see this issue?
> > >
> > > At 2007/04/12 08:43 PM, Justin Krenz wrote:
> > > >Prediction->IsFirstTimePredicted() did not fix the problem as the
> > > >problem is not with simulating a command multiple times.  The problem
> >
> > > >is with the m_flNextPrimaryAttack variable.  Take a look at this:
> > > >
> > > >CMD#    m_flNextPrimaryAttack   gpGlobals->curtime
> > > >CLIENT:
> > > >8255    125.99979               126.22500
> > > >8258    126.26978               126.27000
> > > >8261    126.26978               126.31499
> > > >8264    126.35978               126.36000
> > > >SERVER:
> > > >8255    126.26978               126.31499
> > > >8258    126.35978               126.36000
> > > >CLIENT:
> > > >8268    126.26978               126.42000
> > > >8270    126.44978               126.45000
> > > >8275    126.44978               126.52499
> > > >8276    126.53977               126.54000
> > > >SERVER:
> > > >8270    126.44978               126.45000
> > > >8276    126.53977               126.54000
> > > >
> > > >This is information taken from just before PrimaryAttack() is called.
> > > >As you can see, the extra weapon firings are from commands that are
> > > >not being predicted multiple times.  They're from commands that only
> > > >see the weapon as firing on the client.  What is not included here is
> >
> > > >information from just after PrimaryAttack() is called.  If I included
> >
> > > >that information, you would see that m_flNextPrimaryAttack is being
> > > >updated to a time in the future as it should be during
> > > >PrimaryAttack() and then has been reverted to an earlier time
> > > >sometime inbetween the calls to PrimaryAttack.  That's the source of
> > > >the problem and causes the client to fire the weapon multiple times.
> > > >
> > > >
> > > >
> > > >Yahn Bernier wrote:
> > > >>This might not be the best fix.  Because of the way prediction
> > > >>works, it's expected that variables from the server are set back and
> >
> > > >>re-simulated multiple times if there's latency in the connection.
> > > >>You have to make sure that you only create effects, etc., the first
> > > >>time you predict a weapon firing on the client.  You can determine
> > > >>whether this is the "first time predicted" by asking
> > > >>prediction->IsFirstTimePredicted().
> > > >>
> > > >>The discrepency with ammo sounds like a bug in the mod where the
> > > >>server and the client are not simulating the exact same # of bullets
> >
> > > >>to deduct from the clip.  There are shared random # generators and
> > > >>other means to make sure that the same CUserCmd which causes firing
> > > >>should deduct the same # of bullets on both client and server
> > > >>(SharedRandomInt, etc.)
> > > >>
> > > >>Yahn
> > > >>
> > > >>-----Original Message-----
> > > >>From: [EMAIL PROTECTED]
> > > >>[mailto:[EMAIL PROTECTED] On Behalf Of Mark
> > > >>Chandler
> > > >>Sent: Thursday, April 12, 2007 4:22 PM
> > > >>To: hlcoders@list.valvesoftware.com
> > > >>Subject: RE: [hlcoders] FW: SDK Needs to be fixed
> > > >>
> > > >>Not sure but only half of this worked for ge:S source. But its given
> >
> > > >>me idea how to fix the rest so ill post up when im done.
> > > >>
> > > >>Mark [aka Lodle]
> > > >>
> > > >>-----Original Message-----
> > > >>From: [EMAIL PROTECTED]
> > > >>[mailto:[EMAIL PROTECTED] On Behalf Of Justin
> > > >>Krenz
> > > >>Sent: Friday, April 13, 2007 4:31 AM
> > > >>To: hlcoders@list.valvesoftware.com
> > > >>Subject: Re: [hlcoders] FW: SDK Needs to be fixed
> > > >>
> > > >>I was contacted personally by the Goldeneye Source team about this
> > > >>bug, and I had fixed this already in Empires.  I assume since this
> > > >>is a bug inherent in the HL2DM sdk that everyone will want to fix
> > > >>this bug in their code.  This is the e-mail including the fix I sent
> > to the GE team:
> > > >>
> > > >>
> > > >>
> > > >>The bug is caused by the networked variable m_flNextPrimaryAttack
> > > >>being reset after the client has simulated firing, but the server
> > > >>has not fired the weapon yet.  The client will fire their weapon and
> >
> > > >>increase m_flNextPrimaryAttack to a time in the future.  When the
> > > >>client receives the next server update, this variable is reset to
> > > >>the server's value of m_flNextPrimaryAttack which has not recorded
> > > >>that a shot has been fired yet.  With the value now being less than
> > > >>curtime, it's ok to fire the weapon again which is much sooner than
> > it should be.
> > > >>
> > > >>This bug was also related to another bug we had where our ammo
> > > >>counter would count down with each shot and then jump back up
> > > >>because the client was firing shots and the server was correcting
> > > >>the client on how many bullets had actually been fired.  This was
> > > >>also causing the client to begin reloading their weapon when it did
> > not need reloading.
> > > >>
> > > >>How to fix the first bug:
> > > >>
> > > >>In basecombatweapon_shared.h, add the following (create a variable
> > > >>to store the last time the client fired):
> > > >>
> > > >>#ifdef CLIENT_DLL
> > > >>float m_flPrevPrimaryAttack;
> > > >>#endif
> > > >>
> > > >>In basecombatweapon_shared.cpp,
> > > >>CBaseCombatWeapon::CBaseCombatWeapon(),
> > > >>add the following (start the new variable off as 0):
> > > >>
> > > >>#ifdef CLIENT_DLL
> > > >>m_flPrevPrimaryAttack = 0;
> > > >>#endif
> > > >>
> > > >>
> > > >>In basecombatweapon_shared.cpp, CBaseCombatWeapon::ItemPostFrame(
> > > >>void ), find the lines that read:
> > > >>
> > > >>if ( ( pOwner->m_afButtonPressed & IN_ATTACK ) || (
> > > >>pOwner->m_afButtonReleased & IN_ATTACK2 ) )
> > > >>{
> > > >>  m_flNextPrimaryAttack = gpGlobals->curtime; } PrimaryAttack();
> > > >>
> > > >>
> > > >>Change the "PrimaryAttack();" line to the following:
> > > >>
> > > >>#ifdef CLIENT_DLL
> > > >>if (m_flPrevPrimaryAttack <= gpGlobals->curtime) { #endif
> > > >>  PrimaryAttack();
> > > >>#ifdef CLIENT_DLL
> > > >>  m_flPrevPrimaryAttack = m_flNextPrimaryAttack; } #endif
> > > >>
> > > >>
> > > >>This stores the client's m_flNextPrimaryAttack variable in a
> > > >>separate, non-networked variable that won't get "stomped" with each
> > > >>network update.  We then check the m_flNextPrimaryAttack variable
> > > >>against the client's m_flPrevPrimaryAttack to see if we should
> > > >>really be simulating
> > > >>PrimaryAttack() on the client again.  If your weapons have secondary
> >
> > > >>attacks that are susceptible to the same bug, you'll have to add
> > > >>another variable for the secondary attack time and check against
> > that.
> > > >>
> > > >>For the second bug, check your weapons' PrimaryAttack() functions
> > > >>and make sure any lines that alter the weapon's m_iClip1 or m_iClip2
> >
> > > >>variable are only occurring on the server.  By default, there should
> >
> > > >>be a line that reads:
> > > >>
> > > >>if ( iBulletsToFire > m_iClip1 )
> > > >>  iBulletsToFire = m_iClip1;
> > > >>m_iClip1 -= iBulletsToFire;
> > > >>
> > > >>Surround the line that decrements m_iClip1 with #ifdef/#endif
> > GAME_DLL:
> > > >>#ifdef GAME_DLL
> > > >>m_iClip1 -= iBulletsToFire;
> > > >>#endif
> > > >>
> > > >>Otherwise, the client will reach m_iClip1 == 0 sooner than the
> > > >>server and begin reloading while there may be one bullet left in the
> >
> > > >>gun according to the server.  You also might see that the ammo
> > > >>counter is jumping around as the client decrements bullets, and then
> >
> > > >>the server says that there are more bullets in the gun causing the
> > > >>counter to flash to a higher number.
> > > >>
> > > >>
> > > >>
> > > >>Mark Chandler wrote:
> > > >>>This is a multipart message in MIME format.
> > > >>>--
> > > >>>[ Picked text/plain from multipart/alternative ]
> > > >>>
> > > >>>
> > > >>>SDK Needs to be fixed
> > > >>>
> > > >>>  _____
> > > >>>
> > > >>>Hi,
> > > >>>
> > > >>>My name is mark and im one of the main programmers for a source mod
> >
> > > >>>called Golden Eye source (http://goldeneyesource.com). Now we have
> > > >>>had
> > > >>
> > > >>>a major
> > > >>bug
> > > >>>that has been plaguing the mod for about 8 months to a year now.
> > > >>>The
> > > >>problem
> > > >>>is that when firing a bullet in game some times it multi fires
> > > >>>causing
> > > >>
> > > >>>two bullet decals to appear (or worse up to 50). This problem is
> > > >>>hardly noticeable for pings from around 0-100 but gets worse after
> > > >>that.
> > > >>>The mod team and i have have spent countless of hours on this
> > > >>>problem rewriting code and searching to what is causing this but
> > with no luck.
> > > >>>
> > > >>>To prove that it is not the fault of golden eye modified source
> > > >>>code i
> > > >>
> > > >>>started a new mod based on the advanced sdk. And guess what? Same
> > > >>results.
> > > >>>http://lodle.net/multifire2.avi
> > > >>>
> > > >>>Lag was introduced using net_fakelag (200 and 500) and from the
> > > >>>video you can see the shoot gun going mad and the mp5 producing
> > multi fire.
> > > >>>
> > > >>>I would post this on verc but hardly any valve employees go there
> > > >>>any
> > > >>more.
> > > >>>So im posting it here in the attempt to get a solution to this
> > > >>problem.
> > > >>>Mark [aka lodle].
> > > >>>
> > > >>>
> > > >>>
> > > >>http://forums.steampowered.com/forums/showthread.php?p=6121132&poste
> > > >>d=1#
> > > >>post
> > > >>>6121132
> > > >>>
> > > >>>
> > > >>>
> > > >>>--
> > > >>>
> > > >>>_______________________________________________
> > > >>>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
> > >
> > > _______________________________________________
> > > 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
> >
> >
>
>
> --
> -omega
> --
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
>


--
Programmer for Resistance and Liberation
www.resistanceandliberation.com
Junior Programmer for Red Tribe
www.redtribe.com
--

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

Reply via email to