Как добавить эффекты к гранатам для ZP?
Как добавить эффекты к гранатам для ZP?
Для начала открываем исходник главного мода, у меня это \»zombie_plague40.\»
[1]. После того как мы открыли исходник главного мода, ищем такие строчки как:
// CS sounds
new const sound_flashlight[] = \»items/flashlight1.wav\»
new const sound_buyammo[] = \»items/9mmclip1.wav\»
new const sound_armorhit[] = \»player/bhit_helmet-1.wav\»
new const sound_flashlight[] = \»items/flashlight1.wav\»
new const sound_buyammo[] = \»items/9mmclip1.wav\»
new const sound_armorhit[] = \»player/bhit_helmet-1.wav\»
Ниже добавляем следующую строку:
new g_fireexp
Должно получится вот так:
// CS sounds
new const sound_flashlight[] = \»items/flashlight1.wav\»
new const sound_buyammo[] = \»items/9mmclip1.wav\»
new const sound_armorhit[] = \»player/bhit_helmet-1.wav\»
new g_fireexp
new const sound_buyammo[] = \»items/9mmclip1.wav\»
new const sound_armorhit[] = \»player/bhit_helmet-1.wav\»
new g_fireexp
[2]. Далее ищем:
// Custom sprites for grenades
g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)
g_flameSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_fire)
g_smokeSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_smoke)
g_glassSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_glass)
g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)
g_flameSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_fire)
g_smokeSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_smoke)
g_glassSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_glass)
Ниже добавляем:
g_fireexp = precache_model(\»sprites/Ваш спрайт.spr\»)
Должно получится вот так:
// Custom sprites for grenades
g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)
g_flameSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_fire)
g_smokeSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_smoke)
g_glassSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_glass)
g_fireexp = precache_model(\»sprites/Ваш спрайт.spr\»)
g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)
g_flameSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_fire)
g_smokeSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_smoke)
g_glassSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_glass)
g_fireexp = precache_model(\»sprites/Ваш спрайт.spr\»)
[3]. Далее ищем:
// Fire Grenade: Fire Blast
create_blast2(const Float:originF[3])
{
{
Ниже добавляем:
// Fire Sprite
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (TE_SPRITE) // TE ID
engfunc(EngFunc_WriteCoord, originF[0]) // Position X
engfunc(EngFunc_WriteCoord, originF[1]) // Y
engfunc(EngFunc_WriteCoord, originF[2] + 50.0) // Z
write_short(g_fireexp) // Sprite index
write_byte(30) // Size of sprite
write_byte(180) // Framerate
message_end()
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (TE_SPRITE) // TE ID
engfunc(EngFunc_WriteCoord, originF[0]) // Position X
engfunc(EngFunc_WriteCoord, originF[1]) // Y
engfunc(EngFunc_WriteCoord, originF[2] + 50.0) // Z
write_short(g_fireexp) // Sprite index
write_byte(30) // Size of sprite
write_byte(180) // Framerate
message_end()
Все, со спрайтом взрыва закончено.
Теперь делаем осколки.
[1]. Находим:
new g_fireexp
Ниже добавляем:
new g_fire_gibs
[2]. Далее находим:
g_fireexp = precache_model(\»sprites/Ваш спрайт.spr\»)
Ниже добавляем:
g_fire_gibs = precache_model(\»sprites/Ваш спрайт.spr\»)
[3]. Находим:
// Fire Grenade Explosion
fire_explode(ent)
{
{
После строк:
// Make the explosion
create_blast3(originF)
create_blast3(originF)
Добавляем следующие:
message_begin (MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( TE_SPRITETRAIL ) // Throws a shower of sprites or models
engfunc(EngFunc_WriteCoord, originF[ 0 ]) // start pos
engfunc(EngFunc_WriteCoord, originF[ 1 ])
engfunc(EngFunc_WriteCoord, originF[ 2 ] + 200.0)
engfunc(EngFunc_WriteCoord, originF[ 0 ]) // velocity
engfunc(EngFunc_WriteCoord, originF[ 1 ])
engfunc(EngFunc_WriteCoord, originF[ 2 ] + 30.0)
write_short(g_fire_gibs) // spr
write_byte(60) // (count)
write_byte(random_num(27,30)) // (life in 0.1\’s)
write_byte(2) // byte (scale in 0.1\’s)
write_byte(50) // (velocity along vector in 10\’s)
write_byte(10) // (randomness of velocity in 10\’s)
message_end()
write_byte( TE_SPRITETRAIL ) // Throws a shower of sprites or models
engfunc(EngFunc_WriteCoord, originF[ 0 ]) // start pos
engfunc(EngFunc_WriteCoord, originF[ 1 ])
engfunc(EngFunc_WriteCoord, originF[ 2 ] + 200.0)
engfunc(EngFunc_WriteCoord, originF[ 0 ]) // velocity
engfunc(EngFunc_WriteCoord, originF[ 1 ])
engfunc(EngFunc_WriteCoord, originF[ 2 ] + 30.0)
write_short(g_fire_gibs) // spr
write_byte(60) // (count)
write_byte(random_num(27,30)) // (life in 0.1\’s)
write_byte(2) // byte (scale in 0.1\’s)
write_byte(50) // (velocity along vector in 10\’s)
write_byte(10) // (randomness of velocity in 10\’s)
message_end()
