Lambert (ModelHack)

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

Убирает (полностью или частично) тень с модели игроков. Все модели, независимо в тёмном или светлом месте карты они находятся, освещены так, насколько нужно нам, чтобы было проще их заметить. Модели могут быть освещены разным цветом и под разным углом.

Можно исполнить несколькими способами.

 

Вариант 1:

1) Необходим хук glVertex3f. Там исполняем:

Code:
if(glColor3f)
{
(glColor3f)(1.0f,1.0f,1.0f); // Цвет в RGB
}

 

2) Можно сделать цветные модели, для CT например синие, для Т красные.

Вариант 2:

1) Ненужен хук opengl. Нужен Engine Studio хук. В нём нужен хук на EngineStudioLight.

Code:
void MyStudioEntityLight(struct alight_s *plight) // наша функция
{
	cl_entity_s * ent = oEngStudio.GetCurrentEntity(); // текущая энтити

	if(ent)
	{
		if(lambert && ent->player)
		{
/*			if(developer_lambert) // это вектор освещения на модель
			{
				float vec[2];
				vec[0] = developer_lambert_x;
				vec[1] = developer_lambert_y;
				vec[2] = developer_lambert_z;
				plight->plightvec =  vec;
			}		
		
			vec3_t color;
	
			ColorEntry * clr = PlayerColor(ent->index);

			color[0] = clr->r;
			color[1] = clr->g;
			color[2] = clr->b;

			if(vis_lambert_colored) 
			{
				plight->color =	color;
			} 
			plight->shadelight   = 192; // По вкусу */
			plight->ambientlight = 128; // По вкусу
		}
	}
	oEngStudio.StudioEntityLight(plight); // оригинал
}

 

2) Привёл свой полный код lambert, если нужен только lambert, то все закомментированные строчки можно стереть. Данный код работает и в openGl и в d3d.

 

Copyright (c) Troll

Hosted by uCoz