Участник
Пользователь
- Сообщения
- 61
- Реакции
- 14
Че по коду? ? Спасибо
Код:
#include <amxmodx>
#include <engine>
#tryinclude <reapi>
//#define RANDOM_COLOR // расскомментируйте, чтобы цвет эффекта был рандомным
#if !defined RANDOM_COLOR
enum CLR { R, G, B };
new g_arrEffectColors[CLR] = // цвет эффекта в формате RGB (настраивается в фигурных скобках)
{
255, // R
255, // G
255 // B
}
#endif
const EffectRadius= 50; // радиус действия эффекта
const EffectLife = 8; // продолжительность "жизни" эффекта
const EffectDecayR= 50; // радиус затухания эффекта. должен быть больше либо равен EffectRadius, иначе будет убого.
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue
#define MAX_PLAYERS 32
#endif
new Float:g_fOldOrigin[3];
new bool:g_bDynLight[33];
public plugin_init()
{
#if defined _reapi_included
register_plugin("FlashBang DynLight", "1.3 [REAPI]", "neugomon");
#else
register_plugin("FlashBang DynLight", "1.3 [ENGINE]", "neugomon");
#endif
register_think("grenade", "ThinkGrenade");
}
public client_putinserver(id)
{
new szDL[3];
if(get_user_info(id, "dl", szDL, charsmax(szDL)))
g_bDynLight[id] = str_to_num(szDL) ? true : false;
else g_bDynLight[id] = false;
}
public ThinkGrenade(const ent)
{
#if defined _reapi_included
if(!is_entity(ent))
#else
if(!is_valid_ent(ent))
#endif
return PLUGIN_CONTINUE;
static model[11];
#if defined _reapi_included
get_entvar(ent, var_model, model, charsmax(model));
new id = get_entvar(ent, var_owner);
#else
entity_get_string(ent, EV_SZ_model, model, charsmax(model));
new id = entity_get_edict(ent, EV_ENT_owner);
#endif
if(is_user_connected(id))
{
if(!g_bDynLight[id])
return PLUGIN_CONTINUE;
}
if(model[7] == 'w' && model[8] == '_' && model[9] == 'f')
{
#if defined _reapi_included
if(Float:get_entvar(ent, var_dmgtime) > get_gametime())
#else
if(entity_get_float(ent, EV_FL_dmgtime) > get_gametime())
#endif
return PLUGIN_CONTINUE;
static Float:origin[3];
#if defined _reapi_included
get_entvar(ent, var_origin, origin);
#else
entity_get_vector(ent, EV_VEC_origin, origin);
#endif
if(
g_fOldOrigin[0] == origin[0] ||
g_fOldOrigin[1] == origin[1] ||
g_fOldOrigin[2] == origin[2]
) return PLUGIN_CONTINUE;
g_fOldOrigin[0] = origin[0];
g_fOldOrigin[1] = origin[1];
g_fOldOrigin[2] = origin[2];
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_DLIGHT);
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(origin[2]));
write_byte(EffectRadius);
#if defined RANDOM_COLOR
write_byte(random(255));
write_byte(random(255));
write_byte(random(255));
#else
write_byte(g_arrEffectColors[R]);
write_byte(g_arrEffectColors[G]);
write_byte(g_arrEffectColors[B]);
#endif
write_byte(EffectLife);
write_byte(EffectDecayR);
message_end();
}
return PLUGIN_CONTINUE;
}