menu

27 de setembro de 2024

[ TUTORIAL ] Colocando Efeito Nas Granadas [P]erfec[T] [S]cr[@]s[H]

Tutorial:
Quando você baixar zombie_plague40.sma. Abra o AMX Studio ou o Bloco de Notas
em seguida, procure por:
-----------------------------------------------------------------------------------------------------------------------------

new g_trailSpr, g_exploSpr, g_flameSpr, g_smokeSpr, g_glassSpr

-----------------------------------------------------------------------------------------------------------------------------

E abaixo coloque:

new g_fire_explode, g_frost_explode, g_fire_gib, g_frost_gib, g_fire_trail, g_frost_trail, g_flare_trail

-----------------------------------------------------------------------------------------------------------------------------

E em seguida vai la no plugin_precache e coloque:

g_fire_explode = precache_model ("sprites/zp_n_sprites/fire_explode.spr")
g_frost_explode = precache_model ("sprites/zp_n_sprites/frost_explode.spr")
g_fire_gib = precache_model ("sprites/zp_n_sprites/fire_gib.spr")
g_frost_gib = precache_model ("sprites/zp_n_sprites/frost_gib.spr ")
g_fire_trail = precache_model ("sprites/zp_n_sprites/fire_trail.spr")
g_frost_trail = precache_model ("sprites/zp_n_sprites/frost_trail.spr")
g_flare_trail = precache_model ("sprites/zp_n_sprites/flare_trail.spr")

-----------------------------------------------------------------------------------------------------------------------------

Depois procure por:

else if (model[9] == 'h' && model[10] == 'e' && get_pcvar_num(cvar_firegrenades)) // Napalm Grenade
 {
 // Give it a glow
 fm_set_rendering(entity, kRenderFxGlowShell, 200, 0, 0, kRenderNormal, 16);
 
// And a colored trail
 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
 write_byte(TE_BEAMFOLLOW) // TE id
 write_short(entity) // entity
 write_short(g_trailSpr) // sprite
 write_byte(10) // life
 write_byte(10) // width
 write_byte(200) // r
 write_byte(0) // g
 write_byte(0) // b
 write_byte(200) // brightness
 message_end()
 
// Set grenade type on the thrown grenade entity
 set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_NAPALM)
 }

-----------------------------------------------------------------------------------------------------------------------------

E Substitua por:

  else if (model[9] == 'h' && model[10] == 'e' && get_pcvar_num(cvar_firegrenades)) // Napalm Grenade
   {
      // Give it a glow
      fm_set_rendering(entity, kRenderFxGlowShell, 200, 0, 0, kRenderNormal, 16);
      
      // And a colored trail
      message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
      write_byte(TE_BEAMFOLLOW) // TE id
      write_short(entity) // entity
      write_short(g_fire_trail) // sprite
      write_byte(10) // life
      write_byte(10) // width
      write_byte(200) // r
      write_byte(0) // g
      write_byte(0) // b
      write_byte(200) // brightness
      message_end()
      
      // Set grenade type on the thrown grenade entity
      set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_NAPALM)
   }
-----------------------------------------------------------------------------------------------------------------------------

Feito isso Agora procure por:

else if (model[9] == 'f' && model[10] == 'l' && get_pcvar_num(cvar_frostgrenades)) // Frost Grenade
 {
 // Give it a glow
 fm_set_rendering(entity, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 16);
 
// And a colored trail
 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
 write_byte(TE_BEAMFOLLOW) // TE id
 write_short(entity) // entity
 write_short(g_trailSpr) // sprite
 write_byte(10) // life
 write_byte(10) // width
 write_byte(0) // r
 write_byte(100) // g
 write_byte(200) // b
 write_byte(200) // brightness
 message_end()
 
// Set grenade type on the thrown grenade entity
 set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FROST)
 }

-----------------------------------------------------------------------------------------------------------------------------

E Substitua por:

  else if (model[9] == 'f' && model[10] == 'l' && get_pcvar_num(cvar_frostgrenades)) // Frost Grenade
   {
      // Give it a glow
      fm_set_rendering(entity, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 16);
      
      // And a colored trail
      message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
      write_byte(TE_BEAMFOLLOW) // TE id
      write_short(entity) // entity
      write_short(g_frost_trail) // sprite
      write_byte(10) // life
      write_byte(10) // width
      write_byte(0) // r
      write_byte(100) // g
      write_byte(200) // b
      write_byte(200) // brightness
      message_end()
      
      // Set grenade type on the thrown grenade entity
      set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FROST)
   }

-----------------------------------------------------------------------------------------------------------------------------

Depois disso agora procure por:

 // Give it a glow
 fm_set_rendering(entity, kRenderFxGlowShell, rgb[0], rgb[1], rgb[2], kRenderNormal, 16);
 
// And a colored trail
 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
 write_byte(TE_BEAMFOLLOW) // TE id
 write_short(entity) // entity
 write_short(g_trailSpr) // sprite
 write_byte(10) // life
 write_byte(10) // width
 write_byte(rgb[0]) // r
 write_byte(rgb[1]) // g
 write_byte(rgb[2]) // b
 write_byte(200) // brightness
 message_end()
 
// Set grenade type on the thrown grenade entity
 set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FLARE)
 
// Set flare color on the thrown grenade entity
 set_pev(entity, PEV_FLARE_COLOR, rgb)

-----------------------------------------------------------------------------------------------------------------------------

E substitua por:

 // Give it a glow
 fm_set_rendering(entity, kRenderFxGlowShell, rgb[0], rgb[1], rgb[2], kRenderNormal, 16);
 
// And a colored trail
 message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
 write_byte(TE_BEAMFOLLOW) // TE id
 write_short(entity) // entity
 write_short(g_flare_trail) // sprite
 write_byte(10) // life
 write_byte(10) // width
 write_byte(rgb[0]) // r
 write_byte(rgb[1]) // g
 write_byte(rgb[2]) // b
 write_byte(200) // brightness
 message_end()
 
// Set grenade type on the thrown grenade entity
 set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FLARE)
 
// Set flare color on the thrown grenade entity
 set_pev(entity, PEV_FLARE_COLOR, rgb)

-----------------------------------------------------------------------------------------------------------------------------

Feito isso agora vamo pro finalzinho e a parte mais importante...
Agora procure por:

// Fire Grenade: Fire Blast
create_blast2(const Float:originF[3])
{
 // Smallest ring
 engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
 write_byte(TE_BEAMCYLINDER) // TE id
 engfunc(EngFunc_WriteCoord, originF[0]) // x
 engfunc(EngFunc_WriteCoord, originF[1]) // y
 engfunc(EngFunc_WriteCoord, originF[2]) // z
 engfunc(EngFunc_WriteCoord, originF[0]) // x axis
 engfunc(EngFunc_WriteCoord, originF[1]) // y axis
 engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis
 write_short(g_exploSpr) // sprite
 write_byte(0) // startframe
 write_byte(0) // framerate
 write_byte(4) // life
 write_byte(60) // width
 write_byte(0) // noise
 write_byte(200) // red
 write_byte(100) // green
 write_byte(0) // blue
 write_byte(200) // brightness
 write_byte(0) // speed
 message_end()
 
// Medium ring
 engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
 write_byte(TE_BEAMCYLINDER) // TE id
 engfunc(EngFunc_WriteCoord, originF[0]) // x
 engfunc(EngFunc_WriteCoord, originF[1]) // y
 engfunc(EngFunc_WriteCoord, originF[2]) // z
 engfunc(EngFunc_WriteCoord, originF[0]) // x axis
 engfunc(EngFunc_WriteCoord, originF[1]) // y axis
 engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis
 write_short(g_exploSpr) // sprite
 write_byte(0) // startframe
 write_byte(0) // framerate
 write_byte(4) // life
 write_byte(60) // width
 write_byte(0) // noise
 write_byte(200) // red
 write_byte(50) // green
 write_byte(0) // blue
 write_byte(200) // brightness
 write_byte(0) // speed
 message_end()
 
// Largest ring
 engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
 write_byte(TE_BEAMCYLINDER) // TE id
 engfunc(EngFunc_WriteCoord, originF[0]) // x
 engfunc(EngFunc_WriteCoord, originF[1]) // y
 engfunc(EngFunc_WriteCoord, originF[2]) // z
 engfunc(EngFunc_WriteCoord, originF[0]) // x axis
 engfunc(EngFunc_WriteCoord, originF[1]) // y axis
 engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis
 write_short(g_exploSpr) // sprite
 write_byte(0) // startframe
 write_byte(0) // framerate
 write_byte(4) // life
 write_byte(60) // width
 write_byte(0) // noise
 write_byte(200) // red
 write_byte(0) // green
 write_byte(0) // blue
 write_byte(200) // brightness
 write_byte(0) // speed
 message_end()
}

// Frost Grenade: Freeze Blast
create_blast3(const Float:originF[3])
{
 // Smallest ring
 engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
 write_byte(TE_BEAMCYLINDER) // TE id
 engfunc(EngFunc_WriteCoord, originF[0]) // x
 engfunc(EngFunc_WriteCoord, originF[1]) // y
 engfunc(EngFunc_WriteCoord, originF[2]) // z
 engfunc(EngFunc_WriteCoord, originF[0]) // x axis
 engfunc(EngFunc_WriteCoord, originF[1]) // y axis
 engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis
 write_short(g_exploSpr) // sprite
 write_byte(0) // startframe
 write_byte(0) // framerate
 write_byte(4) // life
 write_byte(60) // width
 write_byte(0) // noise
 write_byte(0) // red
 write_byte(100) // green
 write_byte(200) // blue
 write_byte(200) // brightness
 write_byte(0) // speed
 message_end()
 
// Medium ring
 engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
 write_byte(TE_BEAMCYLINDER) // TE id
 engfunc(EngFunc_WriteCoord, originF[0]) // x
 engfunc(EngFunc_WriteCoord, originF[1]) // y
 engfunc(EngFunc_WriteCoord, originF[2]) // z
 engfunc(EngFunc_WriteCoord, originF[0]) // x axis
 engfunc(EngFunc_WriteCoord, originF[1]) // y axis
 engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis
 write_short(g_exploSpr) // sprite
 write_byte(0) // startframe
 write_byte(0) // framerate
 write_byte(4) // life
 write_byte(60) // width
 write_byte(0) // noise
 write_byte(0) // red
 write_byte(100) // green
 write_byte(200) // blue
 write_byte(200) // brightness
 write_byte(0) // speed
 message_end()
 
// Largest ring
 engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
 write_byte(TE_BEAMCYLINDER) // TE id
 engfunc(EngFunc_WriteCoord, originF[0]) // x
 engfunc(EngFunc_WriteCoord, originF[1]) // y
 engfunc(EngFunc_WriteCoord, originF[2]) // z
 engfunc(EngFunc_WriteCoord, originF[0]) // x axis
 engfunc(EngFunc_WriteCoord, originF[1]) // y axis
 engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis
 write_short(g_exploSpr) // sprite
 write_byte(0) // startframe
 write_byte(0) // framerate
 write_byte(4) // life
 write_byte(60) // width
 write_byte(0) // noise
 write_byte(0) // red
 write_byte(100) // green
 write_byte(200) // blue
 write_byte(200) // brightness
 write_byte(0) // speed
 message_end()
}

-----------------------------------------------------------------------------------------------------------------------------

E Substitua por:

// Fire Grenade: Fire Blast
create_blast2(const Float:originF[3])
{
   // Smallest ring
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(200) // red
   write_byte(100) // green
   write_byte(0) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
   
   // Medium ring
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(200) // red
   write_byte(50) // green
   write_byte(0) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
   
   // Largest ring
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(200) // red
   write_byte(0) // green
   write_byte(0) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
   
   // TE_SPRITETRAIL
   engfunc(EngFunc_MessageBegin, MSG_BROADCAST ,SVC_TEMPENTITY, originF, 0)
   write_byte(TE_SPRITETRAIL) // TE ID
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+70) // z axis
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]) // z axis
   write_short(g_fire_gib) // Sprite Index
   write_byte(80) // Count
   write_byte(20) // Life
   write_byte(2) // Scale
   write_byte(50) // Velocity Along Vector
   write_byte(10) // Rendomness of Velocity
   message_end();    

   // TE_EXPLOSION  
   engfunc(EngFunc_MessageBegin, MSG_BROADCAST,SVC_TEMPENTITY, originF, 0)
   write_byte(TE_EXPLOSION)
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+75) // z axis
   write_short(g_fire_explode)
   write_byte(22)
   write_byte(35)
   write_byte(TE_EXPLFLAG_NOSOUND)
   message_end()
}

// Frost Grenade: Freeze Blast
create_blast3(const Float:originF[3])
{
   // Smallest ring
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(0) // red
   write_byte(100) // green
   write_byte(200) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
   
   // Medium ring
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(0) // red
   write_byte(100) // green
   write_byte(200) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
   
   // Largest ring
   engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
   write_byte(TE_BEAMCYLINDER) // TE id
   engfunc(EngFunc_WriteCoord, originF[0]) // x
   engfunc(EngFunc_WriteCoord, originF[1]) // y
   engfunc(EngFunc_WriteCoord, originF[2]) // z
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis
   write_short(g_exploSpr) // sprite
   write_byte(0) // startframe
   write_byte(0) // framerate
   write_byte(4) // life
   write_byte(60) // width
   write_byte(0) // noise
   write_byte(0) // red
   write_byte(100) // green
   write_byte(200) // blue
   write_byte(200) // brightness
   write_byte(0) // speed
   message_end()
   
   // TE_SPRITETRAIL
   engfunc(EngFunc_MessageBegin, MSG_BROADCAST ,SVC_TEMPENTITY, originF, 0)
   write_byte(TE_SPRITETRAIL) // TE ID
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+70) // z axis
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]) // z axis
   write_short(g_frost_gib) // Sprite Index
   write_byte(80) // Count
   write_byte(20) // Life
   write_byte(2) // Scale
   write_byte(50) // Velocity Along Vector
   write_byte(10) // Rendomness of Velocity
   message_end();    

   // TE_EXPLOSION  
   engfunc(EngFunc_MessageBegin, MSG_BROADCAST,SVC_TEMPENTITY, originF, 0)
   write_byte(TE_EXPLOSION)
   engfunc(EngFunc_WriteCoord, originF[0]) // x axis
   engfunc(EngFunc_WriteCoord, originF[1]) // y axis
   engfunc(EngFunc_WriteCoord, originF[2]+75) // z axis
   write_short(g_frost_explode)
   write_byte(22)
   write_byte(35)
   write_byte(TE_EXPLFLAG_NOSOUND)
   message_end()
}

-----------------------------------------------------------------------------------------------------------------------------

Última edição por [P]erfec[T] [S]cr[@]s[H] em 28/4/2014, 6:51 pm, editado 2 vez(es)

Link dos Efeitos abaixo

Nenhum comentário:

Postar um comentário