Quote:
Originally Posted by NiHiLaNTh
|
TY
Forgot to mention: i also still need the best light effect for my default flashlight fix plugin
Currently using DLIGHT but it causes low FPS, so please recommend me a better one...
Code:
#include <amxmodx>
#include <zombieplaguenightmare>
new g_bitPlayerFlashlight, g_iMaxPlayers
#define MarkPlayerFlashLight(%0) g_bitPlayerFlashlight |= 1<<(%0&31)
#define ClearPlayerFlashLight(%0) g_bitPlayerFlashlight &= ~(1<<(%0&31))
#define HasPlayerFlashLightOn(%0) (g_bitPlayerFlashlight & 1<<(%0&31))
public plugin_init()
{
register_plugin("[ZPNM] Flashlight Fix", "1.0.4", "ConnorMcLeod, schmurgel1983, D i 5 7 i n c T")
register_event("Flashlight", "Event_Flashlight", "b")
register_event("StatusValue", "ShowStatus", "be", "1=2", "2!0")
register_event("StatusValue", "HideStatus", "be", "1=1", "2=0")
g_iMaxPlayers = get_maxplayers()
}
public client_disconnect(id)
{
remove_task(id)
ClearPlayerFlashLight(id)
}
public zpnm_user_spawn_post(id)
{
remove_task(id)
ClearPlayerFlashLight(id)
}
public zpnm_user_killed_post(id)
{
remove_task(id)
ClearPlayerFlashLight(id)
}
public Event_Flashlight(id)
{
if (read_data(1))
{
MarkPlayerFlashLight(id)
new iAim, iDummy;
get_user_aiming(id, iAim, iDummy)
if (iAim < 1 || iAim > g_iMaxPlayers || !is_user_alive(iAim)) // || HasPlayerFlashLightOn(iAim)
return;
LightTarget(id)
}
else
{
remove_task(id)
ClearPlayerFlashLight(id)
}
}
public ShowStatus(id)
{
if (!HasPlayerFlashLightOn(id))
return;
new iAim = read_data(2)
if (iAim < 1 || iAim > g_iMaxPlayers || !is_user_alive(iAim)) // || HasPlayerFlashLightOn(iAim)
return;
LightTarget(id)
}
public HideStatus(id)
remove_task(id)
public LightTarget(id)
{
static szOrigin[3]
get_user_origin(id, szOrigin, 3)
message_begin(MSG_PVS, SVC_TEMPENTITY, szOrigin)
write_byte(TE_DLIGHT) // TE id
write_coord(szOrigin[0]) // x
write_coord(szOrigin[1]) // y
write_coord(szOrigin[2]) // z
write_byte(11) // radius
write_byte(255) // r
write_byte(255) // g
write_byte(255) // b
write_byte(3) // life
write_byte(0) // decay rate
message_end()
set_task(0.1, "LightTarget", id)
}
__________________