Grundsätzer Ansatz ist vom Player zum Boden zu tracen.
vec_set(temp, player.x);
temp.z -= 200;
c_trace(player.x, temp, IGNORE_ME | SCAN_TEXTURE);
if (tex_light > irgendwas)
{
//Player steht im hellen
}else
{
//Player steht im dunkeln
}
Ich hab tex_light schon lange nicht mehr benutzt und bin mir grade nich sicher inwieweit du Objekttypen beachten musst - aber ich meine zu erinnern, dass das nur mit statischen Lichtern und auf Blöcken funktioniert.