Главная » Статьи » Zombie Plague

Собственные звуки заражения, боли и смерти для зомби
Добавим звуки боли, смерти и заражения для каждого зомби свои..

Откроем класс любой класс зомби в моем случае Banshee

И добавим постоянные:

Quote
// Class Sounds
new const g_class_infect_sound[][] = { "Sound_for_zombie/banshee/infect.wav", "Sound_for_zombie/banshee/infect.wav" } - Это звуки заражения
new const g_class_pain_sound[][] = { "Sound_for_zombie/banshee/pain.wav", "Sound_for_zombie/banshee/pain.wav" } - это звуки боли
new const g_class_die_sound[][] = { "Sound_for_zombie/banshee/die.wav", "Sound_for_zombie/banshee/die.wav" } - это звуки смерти


Далее заставим клиента скачать их себе добавим в public plugin_precache()

Code

for(new i = 0; i < sizeof g_class_infect_sound; i ++) precache_sound(g_class_infect_sound[i])
  for(new i = 0; i < sizeof g_class_pain_sound; i ++) precache_sound(g_class_pain_sound[i])
  for(new i = 0; i < sizeof g_class_die_sound; i ++) precache_sound(g_class_die_sound[i])


Теперь добавим в plague_ini:

Code
register_forward(FM_EmitSound, "fw_EmitSound")


Звук заражения:

В функцию public zp_user_infected_post(id) добавим звук заражения и его воспроизведение:

Code
new iSound, iSpeak[64]
   
  iSound = random_num(0,charsmax(g_class_infect_sound))
   
  copy(iSpeak, charsmax(iSpeak),g_class_infect_sound[iSound])
  client_cmd(0,"speak ^"%s^"", iSpeak)


Звук Боли и смерти:

Просто допишите эту функцию в плагин:

Code
public fw_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
  if(!is_user_connected(id) || zp_get_user_zombie_class(id) != idclass_banchee) return FMRES_IGNORED

  if(zp_get_user_zombie(id))
  {
  if(sample[7] == 'b' && sample[8] == 'h' && sample[9] == 'i' && sample[10] == 't')
  {
  emit_sound(id, channel, g_class_pain_sound[random_num(0, sizeof g_class_pain_sound - 1)] , volume, attn, flags, pitch)
  return FMRES_SUPERCEDE
  }
  if(sample[7] == 'd' && ((sample[8] == 'i' && sample[9] == 'e') || (sample[8] == 'e' && sample[9] == 'a')))
  {
  emit_sound(id, channel, g_class_die_sound[random_num(0, sizeof g_class_die_sound - 1)] , volume, attn, flags, pitch)
  return FMRES_SUPERCEDE
  }
  }
  return FMRES_IGNORED
}


Этот [TUT] не оптимальный, можно сделать и лучше, для новичков пойдет..

Статью подготовил: ZO
Специально для:zombie-online.3dn.ru
Категория: Zombie Plague | Добавил: Administrator(ZO) (30.01.2012)
Просмотров: 2350 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вверх