So in short, as long as everybody does not touch the cBaseEntity and
cBasePlayer but make an own class to derive from it, the plugins will be
safe...

The irony! :)

===============================================
Stefan Hendriks
FunDynamic & RealBot
http://www.fundynamic.nl
http://realbot.bots-united.com
http://www.bots-united.com

===============================================

-----Oorspronkelijk bericht-----
Van: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Namens Jeffrey "botman"
Broome
Verzonden: maandag 10 januari 2005 0:13
Aan: [email protected]
Onderwerp: Re: [hlcoders] This should not be possible, yet it works!?


S. Hendriks wrote:
> This question is for Valve guys actually;

...but others can answer it also.

> My concern is, how does Valve think about this, and , will this cause
> trouble later on the road? I can see problems arise when a mod update
> has some updates in the cBaseEntity and cBasePlayer classes, and we
> are basicly messed up?

This only works because you have a definition of the CBaseEntity and
CBasePlayer class.  As long as MOD teams don't change these, things will
probably work fine.  As soon as someone adds or removes member variables
and/or functions to these classes, your plugin's version of these
classes will differ from the MOD's version of these classes.

If it was a perfect world, there would be some way to "freeze" these
classes in the SDK so that MOD authors would not touch them.  Since you
can't do that, you can't guarantee that things won't crash when you
start accessing variables or functions within a class that you don't
have a proper class definition for.

There has been some speculation that MOD's COULDN'T change CBaseEntity
even if they wanted to because the engine depended on this class (i.e.
was also compiled with this class definition).  If a MOD team changed
CBaseEntity, the engine's definition would differ from the MOD's
definition and the game would crash.  No proof of this theory was
presented and I have not been able to find any engine interface that
relied on the CBaseEntity class definition as it exists in the SDK
source code (but I haven't spent a lot of time looking so perhaps the
engine does have a dependency on CBaseEntity).

> Also, with the VAC going to hit the scene again, this might get caught

> as 'a cheating program'? Obviously this is not the intention!

No.  VAC checks for modified code on the clients.  VAC doesn't check for
hacks on the server (there really isn't a good way to do this).  Server
operators are completely free to install their own plugins that give
them "special abilities" that aren't available to other clients.  For
example, I could create a plugin that constantly refreshes my health
when it gets low.  This plugin would allow me to cheat, but would only
allow me to cheat on my own server.  Anybody that had installed
Admin-MOD for Half-Life knows what types of things are possible through
plugins, but these aren't caught by VAC.

--
Jeffrey "botman" Broome

_______________________________________________
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