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

Round Sound 0.1.4 - 0.1.5

alexey_gamov

Участник
Сообщения
22
Реакции
6
  • Автор ресурса
  • #1
Round Sound

Описание:

Плагин для проигрывания музыки в конце раунда (ещё один велосипед)

Возможности:

  • Останавливает оригинальные звуки конца раунда
  • Воспроизведение звуков в случайном или последовательном режиме
  • Задержка конца раунда на нужное количество секунд
Настройки:

sm_roundsound_time — задержка окончания раунда (min. 2 сек, max. 20 сек) [по умолчанию: 7]

sm_roundsound_shuffle — режим воспроизведения (1 - случайный, 0 - по списку) [по умолчанию: 0]

Для настройки списка необходимо отредактировать файл:

addons/sourcemod/configs/roundsound.cfg

Исправления:
  • Оптимизация кода (thx. R1KO)
  • ! протестировано только на v34
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
PHP:
	do
	{
		KvGetSectionName(kv, temp, sizeof(temp));
		if (temp[0]) PushArrayString(soundlist, temp);

		KvGetString(kv, NULL_STRING, temp, sizeof(temp));
		if (temp[0]) PushArrayString(soundlist, temp);
	}
	while (KvGotoNextKey(kv, false));

	CloseHandle(kv);

	for (new i = 0; i < GetArraySize(soundlist); i++)
	{
		GetArrayString(soundlist, i, item, sizeof(item));
		Format(temp, sizeof(temp), "sound/%s", item);
		AddFileToDownloadsTable(temp);
	}
Может лучше было бы пихнуть всё это в старт карты, AddFileToDownloadsTable и PrecacheSound делать сразу при записи в массив.


PHP:
for (new i = 0; i < GetArraySize(soundlist); i++)
Размер будет получаться каждый раз при выполении тела цикла.
Сделай лучше так:
PHP:
for (new i = 0, iSize = GetArraySize(soundlist); i < iSize; i++)

PHP:
GetConVarString(roundend, temp, sizeof(temp));
	CS_TerminateRound(StringToFloat(temp), reason, true);

Не проще ли так:
PHP:
CS_TerminateRound(GetConVarFloat(roundend), reason, true);


И зачем это
PHP:
new String:temp[256], String:item[256]
глобально?


Да, и кфг был бы проще так:
server-name/1.mp3
server-name/2.mp3
server-name/3.mp3
server-name/4.mp3
server-name/5.mp3
server-name/6.mp3
server-name/7.mp3
server-name/8.mp3
server-name/9.mp3
server-name/10.mp3
 

alexey_gamov

Участник
Сообщения
22
Реакции
6
  • Автор ресурса
  • #3
Может лучше было бы пихнуть всё это в старт карты, AddFileToDownloadsTable и PrecacheSound делать сразу при записи в массив.
точняк, совсем из головы вылетело что хотел на старт карты перекинуть)
Сделай лучше так:
PHP:
for (new i = 0, iSize = GetArraySize(soundlist); i < iSize; i++)
а вот об этом никогда не задумывался даже.. надо посмотреть
Не проще ли так:
PHP:
CS_TerminateRound(GetConVarFloat(roundend), reason, true);
проще. сделаем..
И зачем это глобально?
PHP:
new String:temp[256], String:item[256]
а везде используется - дабы не создавать каждый раз, профит конечно сомнителен
Да, и кфг был бы проще так
а вот это не сделать проще. KeyValue всё же. по другому только городить функцию для посимвольной работы..
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
а вот об этом никогда не задумывался даже.. надо посмотреть
Проверь так: (подсказал Reiko1231)
PHP:
for (new i = 0; i < GetSize(); i++)
// цикл

// ф-я
GetSize()
{
	LogMessage("GetSize");
	return GetArraySize(soundlist);
}

а везде используется - дабы не создавать каждый раз, профит конечно сомнителен
Используется только при загрузку звуков и проигрывании. Всё остальное время нет смысла занимать память, decl решит этот вопрос.

а вот это не сделать проще. KeyValue всё же. по другому только городить функцию для посимвольной работы..
Чего??
Обычный парсинг файла, проверка существования файла (чего у тебя нет) и всё. Для полной безопасности можешь еще проверить расширение файла на .mp3 или .wav
 
Сверху Снизу