//// FIREBALL By Plutoabc  
//// Thanks G-Hosting.dk for the help!
//// Thanks to Eventscripts for the opportunity to make a fireball.
//// Thanks to G-Hosting.dk for the server to test the addon on.

block load
{
   es_xset fireball_ver 1.0
   es_xmakepublic fireball_ver
   es_xmsg #multi "#green[FIREBALL]#defaultBy:#lightgreenPlutoabc"
   es_setinfo cocktail_oldnoisy server_var(eventscripts_noisy)
   es_setinfo eventscripts_noisy 1
   //Set the Damage they enflict default 700
   es_setinfo cocktail_damage 700
   //Set there Damage radius default 250
   es_setinfo cocktail_radius 250
   es_xset molo 0
   es_xset nadenull 0
   es_xset nademodel 0
   es_xset handle 0
   es_xset index 0
   es_xset nadeindex 0
   es_xset playerhandle 0
   isnull nadenull eventscripts_currentmap
   ifx false(nadenull) do
   {
    es_xdoblock cocktail/precachemodel
    }
  es_xdoblock corelib/noisy_on
}

event es_map_start
{
   es_xdoblock cocktail/precachemodel
}

block precachemodel
{
   es_xprecachemodel nademodel "models/humans/male_gestures.mdl"
}

event weapon_fire
{
   if (event_var(weapon) = "hegrenade") then es_xdelayed 0.1 es_xdoblock cocktail/ignite
  {
      if (event_var(weapon) = "hegrenade") then es_emitsound player event_var(userid) ambient/fire/mtov_flame2.wav 1.0 0.3
      {
         if (grenade in event_var(weapon)) do
	 {
	  es_xdelayed 0.1 es_xdoblock cocktail/dochange
          }
       }
    }
}

block dochange
{
   es_xcreateentitylist molotov hegrenade_projectile
   es_xforeachkey molo in molotov "es_setindexprop server_var(molo) CBaseEntity.m_nModelIndex server_var(nademodel)"
   es_fire event_var(userid) hegrenade_projectile color "255 255 255"
   es_xkeygroupdelete molotov
}

event grenade_bounce
{
   es_xcexec_all play physics/glass/glass_bottle_impact_hard3.wav
}

event hegrenade_detonate
{
   es_xset origin 0
   es_format origin "origin %1 %2 %3" event_var(x) event_var(y) event_var(z)
   es_entcreate event_var(userid) env_fire
   es_xdelayed 0.1 es_xcexec_all play physics/glass/glass_bottle_break2.wav
   es_fire event_var(userid) hegrenade_projectile DispatchEffect WaterSurfaceExplosion 
   es_fire event_var(userid) env_fire addoutput server_var(origin)
   es_fire event_var(userid) env_fire addoutput "firesize 220"
   es_fire event_var(userid) env_fire addoutput "health 4"
   es_fire event_var(userid) env_fire addoutput "firetype Normal"
   es_fire event_var(userid) env_fire addoutput "spawnflags 16 8 128"
   es_fire event_var(userid) env_fire addoutput "damagescale -1"
   es_fire event_var(userid) env_fire StartFire
   es_getplayerhandle playerhandle event_var(userid)
   es_xcreateentitylist grenadelist hegrenade_projectile
   es_xforeachkey index in grenadelist "es_getindexprop handle server_var(index) CBaseEntity.m_hOwnerEntity;if (server_var(handle) equalto server_var(playerhandle)) then es_xcopy nadeindex index"
   es_emitsound entity server_var(nadeindex) ambient/explosions/explode_8.wav 1.0 0.7
   es_xkeygroupdelete grenadelist 
} 

event player_hurt
{
   if (event_var(weapon) = "hegrenade") do
  {
   es_fire event_var(userid) !self ignite
   es_fire event_var(userid) entityflame addoutput "OnUser1 !self,kill,1,6" 
   es_fire event_var(userid) entityflame FireUser1       
   }

}

block ignite
{
   es_fire event_var(userid) hegrenade_projectile ignite
   es_setinfo grenid 0
   es_getentityindex grenid hegrenade_projectile
   if (server_var(grenid) > 0 ) do
  {
   if (server_var(cocktail_damage) notlessthan 0) then es_xsetindexprop server_var(grenid) "CBaseCSGrenadeProjectile.baseclass.m_flDamage" server_var(cocktail_damage)
   if (server_var(cocktail_radius) notlessthan 0) then es_xsetindexprop server_var(grenid) "CBaseCSGrenadeProjectile.baseclass.m_DmgRadius" server_var(cocktail_radius)
  }
}

event player_death
{
   if (event_var(weapon) = "hegrenade") do
  {
   es_setinfo mystring 0    
   es_format mystring "%1 just killed %2 with a [FIREBALL]!" event_var(es_attackername) event_var(es_username) event_var(weapon) 
   es_msg server_var(mystring)
  }
}

block unload
{
   es_setinfo eventscripts_noisy server_var(cocktail_oldnoisy)
   es_xdoblock corelib/noisy_off
}




