Добовляем рандомный звук при инфецировании

Roberto Sourcequadnet

Участник
Сообщения
22
Реакции
16
Делаем несколько звуков при заражении

Открываем файл zr/soundeffect/zombiesounds.inc

Добовляем сверху
PHP:
#define SOUND_INF_PATH "sourcequad/zombie/zmsound/infect%d.wav" //путь к звуку где %d это порядковый номер звука из которых будет выбираться рандом. Тоесть звуки должны называться infect1, infect2, infect3 и т.д
#define SOUND_INF_MIN 1
#define SOUND_INF_MAX 5 //это число звуков для рандома


Немного ниже находим и добовляем строку,
PHP:
enum ZombieSounds
{
    Moan, /** Zombie's moan periodically */
    Groan, /** When zombie is hurt */
    Death, /** When a zombie is killed */
    Infect,  // добовляем свою группу звуков для рандома
}


Идём еще ниже, находим
PHP:
 switch(soundtype)
    {
        // Find moan sound.
        case Moan:
        {
            // Copy min and max
            soundmin = SOUND_MOAN_MIN;
            soundmax = SOUND_MOAN_MAX;
            
            // Copy path
            strcopy(soundpath, sizeof(soundpath), SOUND_MOAN_PATH);
        }
        // Find groan sound. (zombie shot)
        case Groan:
        {
            // Copy min and max
            soundmin = SOUND_GROAN_MIN;
            soundmax = SOUND_GROAN_MAX;
            
            // Copy path
            strcopy(soundpath, sizeof(soundpath), SOUND_GROAN_PATH);
        }
        // Find death sound.
        case Death:
        {
            // Copy min and max
            soundmin = SOUND_DEATH_MIN;
            soundmax = SOUND_DEATH_MAX;
            
            // Copy path
            strcopy(soundpath, sizeof(soundpath), SOUND_DEATH_PATH);
        }
        // Invalid case given.
        default:
        {
            // No handled case was given.
            return false;
        }


Добовляем ближе к концу,
PHP:
         case Infect:
        {
            // Copy min and max
            soundmin = SOUND_INF_MIN;
            soundmax = SOUND_INF_MAX;
            
            // Copy path
            strcopy(soundpath, sizeof(soundpath), SOUND_INF_PATH);
        }

И последний шаг, находим
PHP:
ZombieSoundsScream(client)
{
    decl String:sound[PLATFORM_MAX_PATH];
    GetConVarString(g_hCvarsList[CVAR_INFECT_SOUND], sound, sizeof(sound));
    
    // If cvar contains path, then continue.
    if (sound[0])
    {
        // Emit infect sound from infected client.
        SEffectsEmitSoundFromClient(client, sound, SNDLEVEL_SCREAMING);
    }
}


Заменяем всё на,
PHP:
ZombieSoundsScream(client)
{
    // Get random moan sound.
    decl String:sound[SOUND_MAX_PATH];
    ZombieSoundsGetRandomSound(sound, Infect);
    
    // Emit sound from client.
    SEffectsEmitSoundFromClient(client, sound, SNDLEVEL_SCREAMING);
}

Вот и всё, если что пропустил поправлю.
 
Последнее редактирование:

SKORAGON

Участник
Сообщения
138
Реакции
16
На Zombie:Reloaded v3.1 такое сработало, но на Zombie:Reloaded v3.3.2 Franug Edition при компиляции выдаёт ошибку 120: невозможно прочитать файл emitsoundany и кидает аборт. Может кто знает как такое исправить?
 

pracc

Быть, а не казаться.
Сообщения
946
Реакции
541
На Zombie:Reloaded v3.1 такое сработало, но на Zombie:Reloaded v3.3.2 Franug Edition при компиляции выдаёт ошибку 120: невозможно прочитать файл emitsoundany и кидает аборт. Может кто знает как такое исправить?

#include <emitsoundany>, а лучше исходную ошибку скинь, если не скомпилится.
 

Вложения

  • emitsoundany.inc
    6 КБ · Просмотры: 7

SKORAGON

Участник
Сообщения
138
Реакции
16

Вложения

  • bandicam 2019-04-26 14-27-47-920.jpg
    bandicam 2019-04-26 14-27-47-920.jpg
    101.6 КБ · Просмотры: 24
Сверху Снизу