clientscheme.res ain't working, edit TrackerScheme.res instead. You can find the Half-Life TrackerScheme in
Steam/steamapps/common/Half-Life/platform/resource/
, just copy-paste it to the appropriate folder in your game.Steam/steamapps/common/Half-Life/platform/resource/
, just copy-paste it to the appropriate folder in your game."i wonder what that means.. "custom graphics code" and where that should be "inserted""We're going extremely off-topic from the original thread, but I believe I must show you an example of "custom graphics code" which will get compiled into client.dll: This can be taken to a whole new level, where you can replace the renderer entirely. So instead of using OpenGL 2.0 or whatever, you use OpenGL 3.3 with GLSL shaders.
mextrasurf_s
but rather this:
typedef struct texture_s
{
char name[16];
unsigned int width, height;
int gl_texturenum;
struct msurface_s *texturechain; // for gl_texsort drawing
int anim_total; // total tenths in sequence ( 0 = no)
int anim_min, anim_max; // time for this frame min <=time< max
struct texture_s *anim_next; // in the animation sequence
struct texture_s *alternate_anims; // bmodels in frame 1 use these
unsigned short fb_texturenum; // auto-luma texturenum
unsigned short dt_texturenum; // detail-texture binding
struct mextrasurf_s *lightchain; // used for drawing spotlights
unsigned int unused[2]; // reserved
} texture_t;
Allegedly, this works just fine with vanilla GoldSrc. I found this texture_s
version with gl_texturenum
in it on accident, in a Russian tutorial about mirrors. gl_texturenum = dt_texturenum;
or if that doesn't work, I grab the actual texture handled by gl_texturenum
and replace it with the one from dt_texturenum
using OpenGL commands. It'd be pretty interesting to experiment with these.GL_CLAMP_TO_EDGE
with, of course, a completely black border around the texture itself.trigger_random
class which basically acts like a trigger_relay
but it has a trigger percentage keyvalue.
class CTriggerRandom : public CBaseDelay
{
public:
void Spawn();
void KeyValue( KeyValueData* pkvd ); // this will load your map editor keyvalues/properties
void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); // this is called when the entity gets triggered by another one
int ObjectCaps( void ) { return CBaseDelay::ObjectCaps() & ~FCAP_ACROSS_TRANSITION; }
private:
float triggerChance = 0.5f; // 50% trigger chance by default
}
LINK_ENTITY_TO_CLASS( trigger_random, CTriggerRandom );
void CTriggerRandom::Spawn()
{
// nothing here
}
void CTriggerRandom::KeyValue( KeyValueData* pkvd )
{
if ( FStrEq( pkvd->szKeyName, "chance" ) )
{
triggerChance = atof( pkvd->szValue ); // read the map property and assign it to a variable, it's in range between 0.0 and 1.0
pkvd->fHandled = TRUE;
}
else
{
CBaseDelay::KeyValue( pkvd );
}
}
void CTriggerRandom::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{
if ( RANDOM_FLOAT( 0.0, 1.0 ) <= triggerChance )
return;
SUB_UseTargets( this, USE_TOGGLE, 0 );
}
Now, I gotta say one thing. This entity has to be triggered first. If you want it to try to automatically trigger something every 0.1s, for example, you will have to modify the code a little bit, but for now, I think this will show you the basic idea of how to do it."Search on EBay and for less than 50$ your problems will go away"Or, you know, you can just get Solokiller's updated HL SDK, and Visual Studio Community 2019, and pay 0$.
-cliptype precise
in HLCSG.1000...1500...
"If your map lags - it is usually due to micro leaks your current compilers won't even detect. One more reason to use the compilers I recommended they got a very good detection system to find such micro leaks."I'm sorry, but this is stupid. If any sort of leak happened, HLVIS and HLRAD would likely crash. In fact, HLBSP could probably crash first because some of the coordinates in the .prt file would go to infinity.
"Ever wondered why you haven't seen a CS_superbowl map? I am not saying it can not be done, I am saying that the engine isn't up to it."The engine can be up to it if you do it right.
CLASS_PLAYER_ALLY
for example, into CLASS_HUMAN_MILITARY
, then compile the .dll files.-4096 to +4096
unit range. Regular entities will stop moving if they reach those boundaries.