Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
lexu5 » 28 июл 2017, 15:09
Добрый день всем. На просторах интернета нашёл плагин, который при загрузке на сервер, проигрывает от 1 до 5 мелодий. Подскажите пожалуйста, можно ли как-нибудь оптимизировать данный код?
- Код: Выделить всё
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
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
артист666 » 28 июл 2017, 22:21
В плане цикла - это не совсем оптимизация, а наоборот...
Это просто в плане читабельности, краткости удобней.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
-
артист666
-
- Сообщения: 2706
- Зарегистрирован: 09 апр 2013, 17:46
- Благодарил (а): 284 раз.
- Поблагодарили: 639 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn
RevCrew » 28 июл 2017, 22:22
артист666, он тоже самое написал, лол
-
RevCrew
-
- Сообщения: 1648
- Зарегистрирован: 15 июл 2013, 20:45
- Благодарил (а): 273 раз.
- Поблагодарили: 357 раз.
- Языки программирования: Unkown
артист666 » 28 июл 2017, 22:33
Да, не заметил, сорьте.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
-
артист666
-
- Сообщения: 2706
- Зарегистрирован: 09 апр 2013, 17:46
- Благодарил (а): 284 раз.
- Поблагодарили: 639 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn
lexu5 » 29 июл 2017, 00:44
Всем спасибо за ответы
-
lexu5
-
- Сообщения: 22
- Зарегистрирован: 28 июл 2017, 14:44
- Откуда: Санкт-Петербург
- Благодарил (а): 2 раз.
- Поблагодарили: 1 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8