Quote:
Originally Posted by Infernal_Ryan
I'm wondering how it handles (if at all) the old-style (1.5/6) server messages that were sent to the clients (ie- messages that affected the user's interface, like screenfade/health/armor/ammo updates/etc).
|
This isn't a task for SourceHook unfortunately because of how Valve separated the various systems. SourceHook hooks virtual functions. The network message passing system isn't virtual, and therefore, you cannot hook it. You can find what message was sent, but not the number of parameters or how they're packed.
HL1 Method: Engine packed messages for you
HL2 Method: GameDLL packs message, sends byte stream to engine
The stream packing class is not virtual, meaning it falls outside of SourceMM's scope. It would need a detour (SourceDetours?) which I haven't written yet (but plan to in the far future).
The other thing you mentioned is called gameevents. They're internal within the gamedll/engine rather than engine->client.
Quote:
Originally Posted by Infernal_Ryan
Also I've read a couple of threads that mention spawning entities. Back in AMX, when I got more comfortable using vexd utilities, I was spawning entities with DispatchSpawn, rather than the simple create_entity function(s) available to the engine.
|
No, entities are almost completely mod-based now. There is no interface to abstract between an edict and a CBaseEntity. Furthermore, entvars_s is removed, so an edict is basically just a wrapper for very basic network states. Welcome to the hell that is Source modability for plugins
you must basically hack apart the mod internals to get anywhere. See the SourceMod
devlog earlier articles for more information on this.
Quote:
Originally Posted by Infernal_Ryan
And lastly, keeping with the entity example above, is how one would go about creating temporary entities like tracers and other effects, such as lightning/beams/cylinders/etc.
|
There is a temporary entity system. I have not used it, but the interface itself does not have to be exported by the GameDLL (I think).
These are valid questions coming from an AMX Mod X coder
__________________