Иконка ресурса

Sound Manager 1.0.0

Нет прав для скачивания
Сообщения
25
Реакции
10
Brody добавил(а) новый ресурс:

Sound Manager - Плагин для разработчиков, чтобы было легко заниматься звуками.

Плагин необходим в основном для разработчиков. Как минимум он нужен:
1. Избавляет от хардкора в коде, ибо в любой момент вам необходимо сменить путь у файла, а этот звук привязан чуть ли не ко всем плагинам - хардкор
2. Облегчает работу, т.к нет необходимость вечно узнавать звук, создавать для них переменные (хотя придется, но не так как раньше), не надо прекешить их в каждом плагине, все, что нужно, это знать ключ звука.
3. Также полезная вещь, чтобы не упираться в лимиты, лично на моем...
Узнать больше об этом ресурсе...
 

hajimura

Е777КХ05
Сообщения
290
Реакции
228
Помог
6 раз(а)
А можно через строку кода не ставить промежуток? Вырвиглазно смотрится. Я про вкладку с исходным кодом
 
Сообщения
702
Реакции
54
shadow, лучше когда код похож на слипшиеся пельмени?)
Куда лучше, чем везде оставлять промежуток или не оставлять вообще
 
Сообщения
1,290
Реакции
2,287
Помог
57 раз(а)
1)
Избавляет от хардкора
вероятно ты имел ввиду хардкод (hardcode)

2) В хендлерах нативов вроде как надо юзать log_error() а не abort()

3)
Код:
   new id = clamp(get_param(arg_id), 0, 32)
    new iPitch = clamp(get_param(arg_pitch), 0, 255)
Зачем clamp()? Если уж хочется избегать тут ошибок, то тогда проверяй валидность значения и сыпь в эррорлог если чо не так. Иначе получаешь непредвиденное поведение. Буду я по своей косорукости в id 999 отправлять, и будет звук фигачить игроку под индексом 32. А он будет думать "чо происходит вообще". Тут много у тебя этого дела, можно функцию проверки приделать. Передаёшь ей значение, мин, макс, идентификатор (чтоб можно было понять чо за аргумент проверяется). И оно в случае чего вопит в эррорлог.
Код:
any:CheckValue(any:Value, any:Min, any:Max, const szType[], bool:bFloat) {
    if(Value < Min || Value > Max) {
        log_error( AMX_ERR_NATIVE, bFloat ? "Wrong value %f in argument '%s'" : "Wrong value %i in argument '%s'",
            Value, szType );
    }

    return Value
}

    new id = CheckValue(get_param(arg_id), 0, MAX_PLAYERS, "id", false)
    new Float:flAttn = CheckValue(get_param_f(arg_attn), 0.0, 1.25, "attn", true)
4) SD_NAME не используется. SD_KEY используется только как ключ, зачем хранить его ещё и в значении? Другими словами, "структура"
SoundData не нужна. Достаточно TrieSetString(), TrieGetString().

В целом идея имеет право на жизнь. Вполне можно найти применение.
 
Последнее редактирование:

hajimura

Е777КХ05
Сообщения
290
Реакции
228
Помог
6 раз(а)
лучше когда код похож на слипшиеся пельмени?)
Не имею понятия, какие галлюциногены надо принимать, чтобы код напоминал "слипшиеся пельмени". Я, вроде, не в одну строку плагин написать предложил. Ну ладно
 
  • Нравится
Реакции: Ayk
Сообщения
25
Реакции
10
BlackSignature, были планы для личного использования, т.к необходимо будет получать название этого самого звука, поэтому заранее позаботился об этом. Но за предложения спасибо, учту в следующем обновлении
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу