than you Saul, as always... for your wise answer..... and Ronny..... that's why i'm asking this to you, people with experiencie programming using VALVe's API..... if that plugin is not using hooked functions.... what strategy do you think it is using?..... maybe... we can learn something new in this discussion.
if u had the challenge of detecting when a player dies (client-side)... how could you do it without using hooks and only using the VALVe's API?... (or it's impossible?) thank Ronny, for your time, and thanks again Saul, for helping me again this time PD: i gonna ask for the programmer.... for 4th time (he's not answering nothing).... 2009/12/12 Saul Rennison <[email protected]> > I'm not 100% sure what triggers VAC, but I'm 100% sure that it modifies > memory when you hook something. Aslong as you don't change return values, > passed arguments etc., then I'm sure you'll be fine. > > Thanks, > - Saul. > > > 2009/12/12 Ronny Schedel <[email protected]> > > > > > Learn to read. No one said it uses hooked functions. We don't know how it > > is > > done, because we don't have the source code. Ask the author of this > > program. > > > > > > > that's means that using this plugin: > > > http://www.gotfrag.com/tf2/forums/thread/411952/ > > > > > > can VAC ban you?? > > > > > > if that's the case...... wow, that would be a problem..... it has over > > > 3000 > > > downloads! > > > > > > > > > > > > 2009/12/12 Saul Rennison <[email protected]> > > > > > >> Hooking functions modifies the client's memory space and VAC will go > > >> ballistic, it'll start fretting over what the fuck you're trying to do > > >> and > > >> why you're doing it. First guess: cheating. > > >> > > >> If you wanna take the risk then hook * > > >> IGameEventManager2::FireEventClientSide*. > > >> > > >> Thanks, > > >> - Saul. > > >> > > >> > > >> 2009/12/12 Ronny Schedel <[email protected]> > > >> > > >> > > > >> > Sure, everything is possible with software. The question is: is it > > >> possible > > >> > with the provided API by Valve or is it possible with hooked > > functions. > > >> The > > >> > last option is used by cheats. > > >> > > > >> > > > >> > > actually.... i found a plugin that can capture game events like > > >> > > "player_death"... > > >> > > > > >> > > see this.... http://www.gotfrag.com/tf2/forums/thread/411952/ > > >> > > > > >> > > in that page..... it says, the plugin can "monitor kill steaks", > to > > >> help > > >> > > people recording demos, knows what happens in that demo file.... > > >> > > > > >> > > but you told me that's impossible to capture game events in a > CLIENT > > >> SIDE > > >> > > plugin......, not only that.... also it can be VAC banned! > > >> > > > > >> > > this plugin proves 1 or 2 facts.... > > >> > > > > >> > > 1) is not impossible capture game events in a client side plugin > > like > > >> > > "player_death" > > >> > > 2) using this plugin can VAC ban you? > > >> > > > > >> > > what do you think?, detecting game events from client side plugin > is > > >> not > > >> > > possible?...... how this plugin manage to detect kill steaks? > > >> > > > > >> > > 2009/12/11 Joel R. <[email protected]> > > >> > > > > >> > >> Protection service for cheat server plugins? Sounds like a scam. > > >> > >> > > >> > >> > > >> > >> On Fri, Dec 11, 2009 at 9:25 AM, Ronny Schedel > > >> > >> <[email protected] > > >> > >> >wrote: > > >> > >> > > >> > >> > No one said a server plugin cannot be used for cheating, the > > fact, > > >> it > > >> > >> > is > > >> > >> > used frequently for cheating and this is a problem. Some game > > >> > >> > server > > >> > >> > companies offers you a protection service about cheat server > > >> plugins. > > >> > >> > > > >> > >> > > > >> > >> > > wow...... i really tought that client side events detection > > were > > >> > >> > > factible.... (bad inglish mode ON) > > >> > >> > > > > >> > >> > > if that was true.... about VAC banned...... why a client-side > > >> plugin > > >> > >> can > > >> > >> > > be > > >> > >> > > a cheating plugin, and a server-side plugin not?...... > > >> > >> > > > > >> > >> > > i just wanted to make a client-side plugin to make easier > > record > > >> > >> > > demos..... > > >> > >> > > and when a player dies..... stop it..... and record with > other > > >> name > > >> > >> > > automatically..... so, it's impossible? ): > > >> > >> > > > > >> > >> > > > > >> > >> > > 2009/12/11 Jacob Heidt <[email protected]> > > >> > >> > > > > >> > >> > >> True indeed. The way that those dirty cheaters tend to get > > >> > >> > >> their > > >> > >> > >> hands > > >> > >> > on > > >> > >> > >> the internals, events etc, is through vfunc hooks - take a > > look > > >> at > > >> > >> > >> the > > >> > >> > >> SourceHook library in MetaMod:Source. > > >> > >> > >> However, I would like to advise against client side > mods/hooks > > >> > >> > >> on > > >> > >> > >> mods/games > > >> > >> > >> that are not yours. You may be VAC banned for detection of > > >> > >> > >> client > > >> > >> > >> side > > >> > >> > >> hooks, since 99.9999% of 3rd party client side hooks are > from > > >> dirty > > >> > >> > >> rotten > > >> > >> > >> cheaters. > > >> > >> > >> > > >> > >> > >> .jheidt > > >> > >> > >> > > >> > >> > >> -----Original Message----- > > >> > >> > >> From: [email protected] > > >> > >> > >> [mailto:[email protected]] On Behalf > Of > > >> > Ronny > > >> > >> > >> Schedel > > >> > >> > >> Sent: Friday, December 11, 2009 10:02 AM > > >> > >> > >> To: Discussion of Half-Life Programming > > >> > >> > >> Subject: Re: [hlcoders] client-side game events > > >> > >> > >> > > >> > >> > >> > > >> > >> > >> I don't think it's possible with the provided interface > system > > >> > >> > >> by > > >> > >> Valve, > > >> > >> > >> two > > >> > >> > >> > > >> > >> > >> reasons: > > >> > >> > >> > > >> > >> > >> 1. Valve don't want to have their mods altered again. > > >> > >> > >> 2. No one likes cheats. > > >> > >> > >> > > >> > >> > >> > > >> > >> > >> > too bad!, i liked so much bananas! ): > > >> > >> > >> > > > >> > >> > >> > this is how i defined CEmptyServerPlugin: > > >> > >> > >> > > > >> > >> > >> > > > >> > >> > >> > class CEmptyServerPlugin: public IServerPluginCallbacks, > > >> > >> > >> > public > > >> > >> > >> > IGameEventListener2 > > >> > >> > >> > { > > >> > >> > >> > [...] > > >> > >> > >> > } > > >> > >> > >> > > > >> > >> > >> > but there's not any "IClientPluginCallbacks" maybe i need > an > > >> > >> > >> > include > > >> > >> > >> > that > > >> > >> > >> > is > > >> > >> > >> > not come with the example? > > >> > >> > >> > > > >> > >> > >> > what should i do to capture CLIENT events? > > >> > >> > >> > > > >> > >> > >> > PD: please..... i'm not an experienced programmer..... > dont > > >> > laught > > >> > >> of > > >> > >> > >> > me ): > > >> > >> > >> > > > >> > >> > >> > > > >> > >> > >> > 2009/12/11 Ronny Schedel <[email protected]> > > >> > >> > >> > > > >> > >> > >> >> One million dollar question: what is the > CEmptyServerPlugin > > >> for? > > >> > >> > >> >> > > >> > >> > >> >> 1) servers > > >> > >> > >> >> 2) clients > > >> > >> > >> >> 3) bananas > > >> > >> > >> >> > > >> > >> > >> >> If it is too difficult for you, here is a hint: it's not > > >> number > > >> > >> > >> >> 3. > > >> > >> > >> >> > > >> > >> > >> >> > > >> > >> > >> >> > hello again! > > >> > >> > >> >> > > > >> > >> > >> >> > i'm a bit confused about how events are managed in game > > >> (team > > >> > >> > >> >> > fortress > > >> > >> > >> >> > 2) > > >> > >> > >> >> > > > >> > >> > >> >> > actually, i'm coding a CLIENT SIDE plugin, in wich i > need > > >> > >> > >> >> > to > > >> > >> detect > > >> > >> > >> the > > >> > >> > >> >> > "player_death" event... > > >> > >> > >> >> > > > >> > >> > >> >> > this is what i got... > > >> > >> > >> >> > > > >> > >> > >> >> > void CEmptyServerPlugin::FireGameEvent( IGameEvent * > > >> > >> > >> >> > event ) > > >> > >> > >> >> > { > > >> > >> > >> >> > const char* eventName = event->GetName(); > > >> > >> > >> >> > int _short; > > >> > >> > >> >> > > > >> > >> > >> >> > if( FStrEq( eventName, "player_death")) > > >> > >> > >> >> > { > > >> > >> > >> >> > _short = event->GetInt( "userid"); > > >> > >> > >> >> > > > >> > >> > >> >> > player_info_t pinfo; > > >> > >> > >> >> > > > >> > >> engineclient->GetPlayerInfo(engineclient->GetLocalPlayer(), > > >> > >> > >> >> > &pinfo); > > >> > >> > >> >> > > > >> > >> > >> >> > //verifify that client dies > > >> > >> > >> >> > if( _short == pinfo.userID) > > >> > >> > >> >> > { > > >> > >> > >> >> > //code here > > >> > >> > >> >> > } > > >> > >> > >> >> > } > > >> > >> > >> >> > } > > >> > >> > >> >> > > > >> > >> > >> >> > > > >> > >> > >> >> > this work well, when i create a server in the game..... > > >> > >> > >> >> > but > > >> > >> > >> >> > when > > >> > >> i > > >> > >> > >> play > > >> > >> > >> >> in > > >> > >> > >> >> > public servers..... it doesn't work.... > > >> > >> > >> >> > > > >> > >> > >> >> > and this is what confuse me: > > >> > >> > >> >> > to make this code work in public servers..... first i > > have > > >> to > > >> > >> > create > > >> > >> > >> my > > >> > >> > >> >> > own > > >> > >> > >> >> > server, and then connect to other i want > > >> > >> > >> >> > > > >> > >> > >> >> > why this happen?, what should i do?..... i'm really > > >> > >> > >> >> > confused > > >> > >> > >> >> > here............ > > >> > >> > >> >> > > > >> > >> > >> >> > > > >> > >> > >> >> > my own investigations in google, told me that using > > >> > >> > >> >> > "CEmptyServerPlugin" > > >> > >> > >> >> > is > > >> > >> > >> >> > the problem,..... i don't know.... > > >> > >> > >> >> > > > >> > >> > >> >> > > > >> > >> > >> >> > nice to met you all!, and greetings from Chile! :D > > >> > >> > >> >> > > > >> > >> > >> >> > PD: sorry for my bad english > > >> > >> > >> >> > _______________________________________________ > > >> > >> > >> >> > 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 > > >> > > > > >> > > > >> > > > >> > _______________________________________________ > > >> > 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

