Для исправления ошибки CS1501, где метод
Remove
не имеет перегрузки с двумя аргументами, вам нужно передавать только один аргумент - ключ, для удаления элемента из словаря. Вот исправленный код:
C#:
private void OnLootEntity(BasePlayer player, StorageContainer container)
{
if (!player.IsPlayer() || !container.IsExists()) return;
RHIB rhib = null;
if (_deathBoats.TryGetValue((uint)container.net.ID, out rhib))
{
_deathBoats.Remove((uint)container.net.ID);
AlertToPlayer(player, GetMessage("KillBoat", player.UserIDString, _config.Prefix, (int)_config.TimeKillLoot));
timer.In(_config.TimeKillLoot, () => rhib.Kill());
}
}
В этом исправлении, мы вызываем метод
Remove
из словаря
_deathBoats
только с одним аргументом - ключом, чтобы удалить элемент из словаря. Теперь код должен успешно скомпилироваться без ошибки CS1501.
Попробуйте использовать этот исправленный код в вашем проекте. Если у вас возникнут дополнительные вопросы или понадобится дальнейшая помощь, не стесняйтесь обращаться!
Исправь ошибку SkinsBox.cs(507,30): error CS0246: The type or namespace name `Workshop' could not be found. Are you missing `ConVar' using directive?
IEnumerator GetRankedWorkshopSkins()
{
getRankedQueries = new List<Workshop.Query>();
countQueriedGetRanked = 0;
if (usedThreadsGetRanked < 1) usedThreadsGetRanked = 1;
var waitCounter = new WaitWhile(() => getRankedQueries.Count > usedThreadsGetRanked );
if (showLoadedSkinCounts) Puts($"Filling up the Cache by '{usedThreadsGetRanked}' workshop threads");
foreach (var pair in ItemNameToName.ToList())
{
Workshop.Query wsQuery = Rust.Global.SteamServer.Workshop.CreateQuery();
wsQuery.Page = 1;
wsQuery.PerPage = maxItemsShown;
wsQuery.ExcludeTags.Add("version2");
wsQuery.RequireTags.Add("version3");
wsQuery.RequireTags.Add("skin");
wsQuery.RequireTags.Add(pair.Value.ToString());
wsQuery.RequireAllTags = true;
wsQuery.Order = Workshop.Order.RankedByTrend;
wsQuery.RankedByTrendDays = usedRankedByTrendDays;
wsQuery.OnResult = new Action<Workshop.Query>(OnRankedWorkshopQuery);
getRankedQueries.Add(wsQuery);
wsQuery.Run();
yield return waitCounter;
}
yield return new WaitUntil(() => getRankedQueries.Count == 0 );
if (showLoadedSkinCounts && countQueriedGetRanked > 0) Puts($"Cache for {ItemNameToName.Count} Skinnables filled with {countQueriedGetRanked} ranked skins");
Interface.CallHook("OnSkinCacheUpdate", new Dictionary<string, LinkedList<ulong>>(skinsCache), true);
skinsLoaded = true;
}
void OnRankedWorkshopQuery(Workshop.Query query)
{
if (query.Items == null) return;
foreach (var item in query.Items.Where(i => i.Title != string.Empty).ToList())
{
foreach (var tag in item.Tags.Where(t => t.ToLower() != "version3" && t.ToLower() != "skin"))
{
if (NameToItemName.ContainsKey(tag))
{
skinWorkshopNames[item.Id] = item.Title;
string shortname = NameToItemName[tag];
if (!skinsCache.ContainsKey(shortname)) continue;
if (!skinsCache[shortname].Contains(item.Id) && skinsCache[shortname].Count < maxItemsShown)
{
skinsCache[shortname].AddLast(item.Id);
countQueriedGetRanked++;
}
}
}
}
getRankedQueries.Remove(query);
query.Dispose();
}