Автообновление карт мастерской на серверах сообщества CS:GO

полезна ли оказалась статья?

  • Да!

    Голосов: 4 50.0%
  • Я это и так знал!

    Голосов: 4 50.0%
  • Я не использую коллекцию карт мастерской для своего проекта!

    Голосов: 0 0.0%

  • Всего проголосовало
    8

unity

Участник
Сообщения
211
Реакции
65
Многие знают, как создать свою коллекцию карт и настроить на своих серверах, но мало кто знает, что этого не достаточно. Случается так, что авторы обновляют свои карты, но сервер их автоматически не обновляет. Многие могут подумать, что это недочёт разработчиков Valve и владельцы своих серверов с клиента в папку сервера в ручную закидывают новую версию карты. На самом деле надо ещё настроить автоматическое обновление карт на своих серверах.

В папке с сервером в корне папки csgo создать:
subscribed_collection_ids.txt
subscribed_file_ids.txt
webapi_authkey.txt
(Обязательное условие хранить веб-API Steam в файле, а не вписан в параметрах запуска. В противном случае ничего не получится.)

Эти файлы автоматически загружаются при смене карты, и каждый раз, когда вызывается ds_get_newest_subscribed_files, который перезагружает webapi_authkey.txt, subscribed_collection_ids.txt и subscribed_file_ids.txt и получает последнюю версию этих файлов мастерской.

В файле subscribed_collection_ids.txt впишите id своей коллекции карт.
485684628
В subscribed_collection_ids.txt можно использовать несколько коллекций карт. (Спасибо spazm )
На пример:
1571127473
1981799833
1983160702
1985279069
1988239954
1988294621
1988301244
1988308845
1988315655
1988321940
Нужно использовать больше коллекций карт, если в одной коллекции 100 карт

В файле subscribed_file_ids.txt впишите id каждой карты с новой строки, которые входят в вашу коллекцию.
894841795
538178104
1828362917
125621707
1833193082
404340147
1363750475
122521875
540889065
1823228073
в файле webapi_authkey.txt впишите свой веб-API Steam, который можно узнать или создать веб-API Steam

При изменении уровней на карте мастерской ваш сервер сначала проверит, доступна ли более новая версия, и при необходимости загрузит ее. Клиенты будут уведомлены в чате о загрузке и ее ходе. Вы можете контролировать эти сообщения и их частоту с помощью этих переменных, которые надо вписать в server.cfg или в конфиг режима:
sv_broadcast_ugc_downloads <0|1>
sv_broadcast_ugc_download_progress_interval <время в секундах>


При подключении клиентов будет загружена последняя версия карты размещенной мастерской как часть процесса подключения.

Чтобы включить подробный вывод - впишите переменные в server.cfg или в конфиг режима:
sv_debug_ugc_downloads 1
developer 1


С этим набором ваш сервер будет извергать результаты, полученные от Steam. При работе вы увидите такой вывод:
Fetched 1076 bytes via HTTP:
response {
result int( 1 = 0x1 )
resultcount int( 1 = 0x1 )
publishedfiledetails {
0 {
publishedfileid int( 123868347 = 0x76214BB )
result int( 1 = 0x1 )
creator 76561197975050072
creator_app_id int( 745 = 0x2E9 )
consumer_app_id int( 730 = 0x2DA )
filename mymaps/de_aztec_proper.bsp
file_size int( 26420720 = 0x19325F0 )
file_url http://cloud-2.steampowered.com/ugc/XXX/XXXXXXX/
hcontent_file 884098750744150125
preview_url http://cloud-2.steampowered.com/ugc/XXX/XXXXXX/
hcontent_preview 884098750744170633
title De_Aztec_Proper
description Aztec with adjusted visibility. A rebalanced underpass area,two new routes and many other changes remove the map's CT bias.
time_created int( 1359545920 = 0x51090640 )
time_updated int( 1359545920 = 0x51090640 )
visibility int( 0 = 0x0 )
banned int( 0 = 0x0 )
ban_reason
subscriptions int( 3 = 0x3 )
favorited int( 1 = 0x1 )
lifetime_subscriptions int( 3 = 0x3 )
lifetime_favorited int( 1 = 0x1 )
views int( 13 = 0xD )
tags {
0 {
tag Classic
}
}
}
}
}
При возникновении ошибки вы можете увидеть что-то вроде следующего:
host_workshop_map 122439431
Fetched 140 bytes via HTTP:
response {
result int( 1 = 0x1 )
resultcount int( 0 = 0x0 )
publishedfiledetails {
0 {
publishedfileid int( 122439431 = 0x74C4707 )
result int( 9 = 0x9 )
}
}
}
Failed to parse file details KV for id 122439431. Result enum: 9
File id 122439431 not found. Probably removed from workshop

Это распространенная ошибка (результат 9, файл не найден), которая может возникнуть, если файл удален из мастерской, или если права доступа изменены на только для друзей или личные. Эта ошибка также возникнет, если есть проблема с вашим ключом аутентификации.

Другая распространенная ошибка может выглядеть так:
Fetched 1042 bytes via HTTP:
CDedicatedServerWorkshopManager: received file details for id 125499818: 'Collection Title'.
Skipping download for file id 125499818:'Collection Title' - version on disk is latest.
Setting mapgroup to '125613177'
CModelLoader::Map_IsValid: No such map 'maps/workshop/125499818/1360205838_collection_branding.bsp'
changelevel failed: workshop/125499818/1360205838_collection_branding not found

Это вызвано передачей идентификатора коллекции в host_workshop_map вместо host_workshop_collection. Обязательно передавайте только идентификатор карты в host_workshop_map и передавайте только идентификаторы коллекций в host_workshop_collection.

Не смешивайте «списки подписки» и команды host_workshop. При устранении неполадок попробуйте удалить файлы списка подписок.

Если возникли трудности - напишите в комментариях и обязательно в свободное время вам отвечу и подскажу решение проблем.

Оригинал статьи
 
Последнее редактирование:

EZZY

Участник
Сообщения
384
Реакции
71
Я думал что всё само обновляется из мастерской :D. Спасибо за перевод 🙂 норм статейка, уже замутил это всё.
 

Xaka^

Участник
Сообщения
28
Реакции
1
Нужно обязательно создавать коллекцию карт в воркшопе или можно как-то обойтись без неё?
 

Xaka^

Участник
Сообщения
28
Реакции
1
Ещё такой вопрос: Если в коллекции 50+ карт, стоит стандартное голосование за выбор следующей карты (не SM) - карты для голосования выбираются случайным образом из коллекции или это можно как-то настроить, чтобы не все карты из коллекции участвовали?
 

unity

Участник
Сообщения
211
Реакции
65
Ещё такой вопрос: Если в коллекции 50+ карт, стоит стандартное голосование за выбор следующей карты (не SM) - карты для голосования выбираются случайным образом из коллекции или это можно как-то настроить, чтобы не все карты из коллекции участвовали?
Есть переменная: mp_endmatch_votenextmap_keepcurrent 1 // 0 - отключает в голосование текущую карту. 1 - включает в голосование текущую карту.

Так же в самой коллекции можешь отсортировать по алфавиту или по автору - выбирая изменить коллекцию
1597153194875.png
1597153254725.png
Так же можешь перетаскивать последовательность карт по списку, как ты хочешь, - зажав левой кнопкой мышки на карту синей области и нанать кнопку Сохранить и продолжить
1597153446044.png
 
Последнее редактирование:

xek

Морской
Сообщения
1,195
Реакции
362
Укажи тогда еще, что в файл subscribed_collection_ids.txt можно добавлять несколько коллекций. При работе мастерской создается файл ugc_collection_cache.txt, в котором указываются и коллекции, и карты в них.
И от себя добавлю, что файл subscribed_file_ids.txt у себя на сервере не создавал, и не вижу в этом необходимости. Карты обновляются, проблем нету.
 

Xaka^

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

Ещё такой вопрос: Можно ли убрать приставку workshop/123456789/имякарты? Видел сервера на которых этого нет, просто написано, например, awp_lego_2 в информации о сервере
 

unity

Участник
Сообщения
211
Реакции
65
Укажи тогда еще, что в файл subscribed_collection_ids.txt можно добавлять несколько коллекций. При работе мастерской создается файл ugc_collection_cache.txt, в котором указываются и коллекции, и карты в них.
И от себя добавлю, что файл subscribed_file_ids.txt у себя на сервере не создавал, и не вижу в этом необходимости. Карты обновляются, проблем нету.
Обновляется в том случае, если сервер пере запустить, а при смене карты этого не происходит. Я это тестировал много раз ugc_collection_cache.txt создаёться и так автоматически. Касательно гото, что ты говоришь, что можно использовать несколько коллекций - там так не написано в оригинальной статьи. да к и к тому же в параметрах запуска можно указать только одну коллекцию карт.
Они всё равно в голосовании появляются в случайном порядке. К слову, в этом есть плюсик - игроки не будут по привычке одни и те же карты выбирать :)
Единственное, что плохо: каждый раз при изменении коллекции попадаешь на модерацию стима. Проверяют они от часа до суток...

Ещё такой вопрос: Можно ли убрать приставку workshop/123456789/имякарты? Видел сервера на которых этого нет, просто написано, например, awp_lego_2 в информации о сервере
может потому, что они используют локальные карты? без мастерской?
 
Последнее редактирование:

xek

Морской
Сообщения
1,195
Реакции
362
Обновляется в том случае, если сервер пере запустить, а при смене карты этого не происходит. Я это тестировал много раз ugc_collection_cache.txt создаёться и так автоматически. Касательно гото, что ты говоришь, что можно использовать несколько коллекций - там так не написано в оригинальной статьи. да к и к тому же в параметрах запуска можно указать только одну коллекцию карт.

может потому, что они используют локальные карты? без мастерской?
Вот я тебе и говорю, что можно использовать несколько коллекций
 

unity

Участник
Сообщения
211
Реакции
65
Вот я тебе и говорю, что можно использовать несколько коллекций
Даже если и можно, но нигде не написано - это момент уже актуальности. Я на пример не могу сложить картину в голове, кому и в каком режиме это надо использовать, если можно использовать одну коллекцию карт, которые ты хочешь. Использование несколько коллекций не вижу в это профит даже.
 
Последнее редактирование:

xek

Морской
Сообщения
1,195
Реакции
362
Даже если и можно, но нигде не написано - это момент уже актуальности. Я на пример не могу сложить картину в голове, кому и в каком режиме это надо использовать, если можно использовать одну коллекцию карт, которые ты хочешь. Использование несколько коллекций не вижу в это профит даже.
Профит в том, что лимит на 1 коллекцию - 100 карт, свыше 100 карт начнет выдавать ошибку, в связи с которой ты не сможешь привязать еще 1 коллекцию. А свыше 200, у тебя просто сервер не запустится.
В официальном гайде не сказано что и можно использовать свыше 1 файла, но там есть простой пример. CSGO Workshop For Server Operators - Valve Developer Community
 

unity

Участник
Сообщения
211
Реакции
65
Профит в том, что лимит на 1 коллекцию - 100 карт, свыше 100 карт начнет выдавать ошибку, в связи с которой ты не сможешь привязать еще 1 коллекцию. А свыше 200, у тебя просто сервер не запустится.
В официальном гайде не сказано что и можно использовать свыше 1 файла, но там есть простой пример. CSGO Workshop For Server Operators - Valve Developer Community
Тогда как в параметрах запуска заставить работать 2 коллекции, если можно только один идентификатор коллекции прописать?
 

xek

Морской
Сообщения
1,195
Реакции
362
Тогда как в параметрах запуска заставить работать 2 коллекции, если можно только один идентификатор коллекции прописать?
Параметры запуска не при чем, я тебе написал, что добавлять id нужно в файл subscribed_collection_ids.txt
 
Сверху