Русское сообщество по скриптингу

SoundLoad: оптимизация кода

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

SoundLoad: оптимизация кода

Сообщение lexu5 » 28 июл 2017, 15:09

Добрый день всем. На просторах интернета нашёл плагин, который при загрузке на сервер, проигрывает от 1 до 5 мелодий. Подскажите пожалуйста, можно ли как-нибудь оптимизировать данный код?

Код: Выделить всё
#include amxmodx

public plugin_precache() 
{
    precache_generic("sound/test/loading/1.mp3")
    precache_generic("sound/test/loading/2.mp3")
    precache_generic("sound/test/loading/3.mp3")
    precache_generic("sound/test/loading/4.mp3")
    precache_generic("sound/test/loading/5.mp3")
}

public client_connect(id) consound(100 + id)

public consound( timerid_id )
{
    new id = timerid_id - 100
    new Usertime 
= get_user_time(id, 0)
    
    if 
(Usertime>3) return
    
    new Sounds 
= random_num(1, 5)
    switch(Sounds)
    {
        case 1: client_cmd(id, "mp3 play ^"sound/test/loading/1.mp3^"")
        case 2: client_cmd(id, "mp3 play ^"sound/test/loading/2.mp3^"")
        case 3: client_cmd(id, "mp3 play ^"sound/test/loading/3.mp3^"")
        case 4: client_cmd(id, "mp3 play ^"sound/test/loading/4.mp3^"")
        case 5: client_cmd(id, "mp3 play ^"sound/test/loading/5.mp3^"")
    }
}
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: SoundLoad: оптимизация кода

Сообщение Subb98 » 28 июл 2017, 18:43

Заменить plugin_precache:

Код: Выделить всё
public plugin_precache() {
    for(new i, j, sample[64]; i < 5; i++) {
        formatex(sample, charsmax(sample), "sound/test/loading/%d.mp3", ++j);
        precache_generic(sample);
    }

Удалить switch, вместо него добавить:

Код: Выделить всё
client_cmd(id, "mp3 play ^"sound/test/loading/%d.mp3^"", random_num(1, 5)); 

П.с.: цикл в plugin_precache не даст оптимизации, это рефакторинг, чтобы избежать дублирования строк.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: SoundLoad: оптимизация кода

Сообщение артист666 » 28 июл 2017, 22:21

В плане цикла - это не совсем оптимизация, а наоборот...
Это просто в плане читабельности, краткости удобней.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: SoundLoad: оптимизация кода

Сообщение RevCrew » 28 июл 2017, 22:22

артист666, он тоже самое написал, лол
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: SoundLoad: оптимизация кода

Сообщение артист666 » 28 июл 2017, 22:33

Да, не заметил, сорьте. :-D
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: SoundLoad: оптимизация кода

Сообщение lexu5 » 29 июл 2017, 00:44

Всем спасибо за ответы
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

cron