You can use the CEmptyServerPlugin as a base, but, you have to change it to 
match all the server functions with similar client functions. I never tried 
this, so, it's on you to find these client functions in the SDK. If you 
can't find appropriate functions, it will not work with Valves API.

Take a look on the prec.dll from the program, you will see some strings 
which will give you some hints, like:

IEngineSoundClient003
GAMEEVENTSMANAGER001
VEngineClient013
...



> 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
> 


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

Reply via email to