helló
nagyjából megcsináltam de nem megy....
valamikor működött csak az volt a baja hogy csak pirosan villant, valamikor kidobott fatal errorral

,valamikor meg lekapcsolódott és valamikor meg nem csinált semmit, de minden esetben átkonvertálta

szóval valaki kijavítaná?

Még most akarom megtanulni normálisan a plugin írást, szóval ha valami nagyon nagy hiba van benne akkor sem kellene leszólni, pl hogy egyszerűen sz@r

Kód:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <cstrike>
new enabled_cvar, radius_cvar, gmsgScreenFade, cvNoBlind, cvRefresh, maxPlayers, g_nMsgScreenFade;
public plugin_init()
{
register_plugin("Flashbang Dynamic Light","0.21","The.BeasT.");
register_forward(FM_EmitSound,"fw_emitsound");
gmsgScreenFade = get_user_msgid("ScreenFade");
register_event("ScreenFade","event_flash","be","4=255","5=255","6=255","7>199");
register_cvar("fbl_mode", "1")
register_cvar("fbl_r", "255")
register_cvar("fbl_g", "25")
register_cvar("fbl_b", "25")
enabled_cvar = register_cvar("fbl_enabled","1");
radius_cvar = register_cvar("fbl_radius","60");
cvNoBlind = register_cvar("fbl_noblind","0");
cvRefresh = register_cvar("fbl_refresh","0.0");
maxPlayers = get_maxplayers();
set_task(10.0,"refresh_nades");
}
public event_flash( id )
{
if(!get_pcvar_num(enabled_cvar) || !get_pcvar_num(cvNoBlind))
return;
// overwrite it
message_begin(MSG_ONE,gmsgScreenFade,_,id);
write_short(0);
write_short(0);
write_short(1<<2);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(0);
message_end();
}
public refresh_nades( id )
{
new Float:time = get_pcvar_float(cvRefresh);
if(time <= 0.0 || !get_pcvar_num(enabled_cvar))
{
set_task(30.0,"refresh_nades");
return;
}
set_task(time,"refresh_nades");
new i;
for(i=1;i<=maxPlayers;i++)
{
if(is_user_alive(i) && !cs_get_user_bpammo(i,CSW_FLASHBANG))
fm_give_item(i,"weapon_flashbang");
}
}
public fw_emitsound(entity,channel,const sample[],Float:volume,Float:attenuation,fFlags,pitch)
{
// plugin disabled
if(!get_pcvar_num(enabled_cvar))
return FMRES_IGNORED;
// not a flashbang exploding
if(!equali(sample,"weapons/flashbang-1.wav") && !equali(sample,"weapons/flashbang-2.wav"))
return FMRES_IGNORED;
// light effect
flashbang_explode(entity);
return FMRES_IGNORED;
}
public flashbang_explode(greindex)
{
if(!pev_valid(greindex)) return PLUGIN_CONTINUE
new Float:origin[3];
pev(greindex,pev_origin,origin);
new iMode = get_cvar_num("fbl_mode")
if ( !iMode ) return PLUGIN_CONTINUE
new iRed,iGreen,iBlue
switch( iMode )
{
case 1:
{
iRed = get_cvar_num("fbl_r")
iGreen = get_cvar_num("fbl_g")
iBlue = get_cvar_num("fbl_b")
}
case 2:
{
iRed = random_num(0,255)
iGreen = random_num(0,255)
iBlue = random_num(0,255)
}
}
if ( !( iRed ) || !( iGreen ) || !( iBlue ) )
{
iRed = 100
iGreen = 100
iBlue = 100
}
// send the light flash
message_begin(MSG_ONE,g_nMsgScreenFade,{0,0,0});
write_byte(27); // TE_DLIGHT
write_coord(floatround(origin[0])); // x
write_coord(floatround(origin[1])); // y
write_coord(floatround(origin[2])); // z
write_byte(get_pcvar_num(radius_cvar)); // radius
write_byte ( iRed ) // Red
write_byte ( iGreen ) // Green
write_byte ( iBlue ) // Blue
write_byte ( read_data( 7 ) ) // Alpha
write_byte(8); // life
write_byte(60); // decay rate
message_end();
return PLUGIN_HANDLED
}