FullBright (WallHack)

Что это такое:

Полезный хак, который убирает тени (отключает падение света на поверхности), от чего вся карта становится равномерно и ярко освещена, что позволяет лучше видеть игроков и детали - такие как валяющееся оружие например).

Есть несколько вариантов исполнения данного хака.

Вариант 1 :

1) Нужен хук на glbegin. Там исполняем этот код:

Code:
if(mode != GL_TRIANGLES && mode != GL_TRIANGLE_STRIP && mode != GL_TRIANGLE_FAN && mode != GL_QUADS )
{
	glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL);
glDisable(GL_TEXTURE_2D);
}

2) Не работает одновременно с некоторыми другими gl хаками (nightmode и whitewalls например).

 

Вариант 2 :

1) Нужен хук на glbegin + Нам нужен EngineStudio хук и HL SDK.

Code:
if(oEngStudio.GetCurrentEntity())
{
cl_entity_s * currEnt = oEngStudio.GetCurrentEntity();
if(!currEnt->player)
currEnt->curstate.rendermode = kRenderGlow;
}

2) Не работает одновременно с некоторыми другими gl хаками (nightmode и whitewalls например).

 

Вариант 3 :

1) Ненужно хукать gl, но хак работает только в opengl. Я немогу дать C+P код (потому что утрачен), только укажу как можно сделать. Нужны незадекларированные в HLSDK функции, в cdll_int.h. В структуру enginefuncs нужно внести три новых строки

Code:
// Пропускаем 7 незадекларированных функций, после последней pfnSetMouseEnable и
// добавляем эти три
void ( *pfnSetGL_TexSort )			( int value );
void ( *pfnSetGL_TexSort_Colour) ( float r,float g, float b ) void ( *pfnSetGL_TexSort_Scale) ( float darkness );

2) Что с ними делать, я думаю вы поймёте. Если не понятно, пишите на е-мейл, отвечу, если смогу. Вообще этот вариант несовсем fullbright, но вполне может быть заменой gl хука.

 

Hosted by uCoz
є