are your runing the lattest build of ded server, and have you thought of adding a break point?
--- Mattie Casper <[EMAIL PROTECTED]> wrote: > Events are caused within events all the time--- > people use events to do all > sorts of things: kick players, make people swap > teams, teamkill punishment, etc. > Even if server event reentrance is a problem, we > need some Valve documentation > saying this is forbidden or dangerous. > > To clarify three points: > 1. I'm not interested in specifically kicking a > player. I'm interested in doing > X during an event where X is anything the > administrator wants. So if he wants to > kick a player that's his thing. I, personally, am > not trying to kick anyone > during an event. I'm letting people run semi-special > config files during an > event. > 2. The crash doesn't just happen when plugin code > specifically kicks someone. It > can happen when a player is kicked via some > administrative plugin, by the > console, etc. It just needs to happen at the around > the time an event calls > ServerExecute. > 3. The example below is the smallest example I made > to reproduce the problem. > I'm no newbie to coding-- I've considered all sorts > of workarounds. Like > scheduling things independently via GameFrame, > avoiding the ServerExecute, etc. > Unfortunately, these alternatives are > substandard/messy and, really, I just need > someone at Valve to say "this is a bug, we'll fix > it" or "ServerExecute during > an event is unsupported because of X and we'll > document it as such going > forward". If I've missed existing documentation to > this effect, I'm hoping > someone on the list can point me to it. (Educated > guesses stated as if they were > fact won't help me, though.) > > Thanks, > -Mattie > > > cheeseh wrote: > ------------------------------------------------------------------------- > > I am guessing that when you kick a player another > event is triggered > that tells that the player was kicked/left the > server. You cannot have > two events fire inside each other, I am taking this > from the old "net > message" code that was from HL1, you could not have > two messages start > before they end. > > Instead of kicking the player there, try raising a > flag (try storing a > global boolean variable and the player id) and check > it on startframe > (or GameFrame () as it is now in HL2 I think) when > the flag is true, > kick the stored player id, then set the flag to > false. In the event code > replace it with setting the boolean to true and > setting the playerid to > the userid.----- Original Message ----- > From: "Mattie Casper" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Saturday, March 26, 2005 9:25 AM > Subject: FireGameEvent, kickid, ServerExecute, crash > > > > Hello, > > > > I've found what seems, for me, to be a really > annoying bug in CSS (and > > probably mods). The following problem happens > regardless of whether you use > > IGameEventListener or IGameEventListener2. > > > > My Windows server crashes 98% of the time with the > following code in a > > listener/plugin: > > > > > > void CEmptyServerPlugin::FireGameEvent( IGameEvent > * event ) > > { > > const char * name = event->GetName(); > > if (FStrEq(name, "player_changename")) > > { > > if(tester_cvar.GetInt()==1) > > { > > Msg("Kicking ya.\n"); > > int userid = event->GetInt("userid"); > > char szMessage[1024]; > > sprintf(szMessage, "kickid %d Go > away.\n", userid); > > engine->ServerCommand(szMessage); > > if (tester2_cvar.GetInt()==1) > > { > > // Crashes the server > > engine->ServerExecute(); > > } > > } > > } > > } > > > > Basically, this silly code causes a player to get > kicked immediately when he > > tries to change his name. He certainly does get > kicked, but the server crashes > > immediately after. > > > > This is just the sample reproduction code, but the > problem shows itself at a > > much deeper point in my EventScripts plugin when > users are kicked in the > > middle of an event. It can happen at times > regardless of whether the event > > handler is doing the kicking (i.e. another plugin > or user could be kicking the > > player while my event handlers are firing). I > believe it is a timing or > > threading issue because if I place a Windows > Sleep(100) after the above > > ServerExecute call, the crash usually doesn't > happen. > > > > Avoiding ServerExecute() is not really an option > for me because I truly need > > the command (not necessarily kick) executed > immediately (typically an exec of > > a cfg file). Regardless, the documentation places > no caveats on when > > ServerExecute() can be called, so I haven't been > afraid to do so when needed. > > > > Anyone have any recommendations or thoughts here? > > > > Thanks for your help, > > -Mattie > > > > > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view > the list archives, please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > http://ammahls.com __________________________________ Do you Yahoo!? Make Yahoo! your home page http://www.yahoo.com/r/hs _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders

