FullBright (WallHack) |
Что это такое:
Полезный хак, который убирает тени (отключает падение света на поверхности), от чего вся карта становится равномерно и ярко освещена, что позволяет лучше видеть игроков и детали - такие как валяющееся оружие например).
Есть несколько вариантов исполнения данного хака.
Вариант 1 :
1) Нужен хук на glbegin. Там исполняем этот код:
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.
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 нужно внести три новых строки
// Пропускаем 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 хука.