Site icon Vintage Story Polska

Aktualizacja: v1.18.2-rc.3/rc.4 – Archiwa rezonansu i poprawki wydajności serwera ctd.

  1. Wersja 1.18.2-rc.3 & rc.4, niestabilne wydanie, jest teraz dostępna do pobrania za pośrednictwem menedżera konta (sekcja „Inne Dodatki”).
  2. [Uaktualnienie:] Wydano również wersję rc.4, aby naprawić problem z awarią w trybie wieloosobowym i dodać brakujące lokalizacje.
  3. To uaktualnienie koncentruje się na wydajności serwera i powinno naprawić jeden lub dwa istotne problemy wprowadzone w rc.1 / 2.

Poprawki:

  1. Dodano możliwość czarnolistowania modyfikacji po stronie klienta przez właścicieli serwera. Możesz dodać identyfikatory modów do „ModIdBlackList” w konfiguracji serwera.
  2. Dodano dalsze ulepszenia wydajności w obszarach z dużą ilością jednostek i upuszczonych przedmiotów.
  3. Te zmiany znacząco zmniejszają łączny czas spędzany na taktowaniu jednostek:

API Ulepszenie:


API Techniczne informacje dla programistów (1):

Server.LoadedEntities teraz jest CachingConcurrentDictionary, a nie ConcurrentDictionary, i jest oznaczone jako internal, nie jest przeznaczone do bezpośredniego dostępu przez modyfikacje. Jeśli twój kod bezpośrednio korzysta z server.LoadedEntities (mało prawdopodobne), to możesz potrzebować ponownej kompilacji kodu dla wersji 1.18.2-rc3. W każdym razie zalecamy nie korzystanie z pól server w sposób bezpośredni, a zamiast tego korzystanie z API, konkretnie IServerWorldAccessor.LoadedEntities. Nie ma zmian w API. Mody, które już korzystają z API zgodnie z przeznaczeniem, nie będą miały wpływu na te zmiany i nie będą musiały ponownie kompilować kodu. Więcej informacji znajdziesz w zaktualizowanej dokumentacji XML dla IServerWorldAccessor.LoadedEntities. Oto przykład zamierzonego użycia API przez mody do dostępu do załadowanych jednostek, ten kod przykładu będzie nadal działać i nie jest objęty zmianami omawianymi tutaj:

ICollection entities;
if (api.Side == EnumAppSide.Server) entities = (api as ICoreServerAPI).World.LoadedEntities.Values;
else entities = (api as ICoreClientAPI).World.LoadedEntities.Values;

API Techniczne notatki dla programistów (2):

Server.LoadedEntities teraz jest CachingConcurrentDictionary, a nie ConcurrentDictionary, i jest oznaczone jako internal, nie jest przeznaczone do bezpośredniego dostępu przez modyfikacje. Jeśli twój kod bezpośrednio korzysta z server.LoadedEntities (mało prawdopodobne), to możesz potrzebować ponownej kompilacji kodu dla wersji 1.18.2-rc3. W każdym razie zalecamy nie korzystanie z pól server w sposób bezpośredni, a zamiast tego korzystanie z API, konkretnie IServerWorldAccessor.LoadedEntities. Nie ma zmian w API. Mody, które już korzystają z API zgodnie z przeznaczeniem, nie będą miały wpływu na te zmiany i nie będą musiały ponownie kompilować kodu. Więcej informacji znajdziesz w zaktualizowanej dokumentacji XML dla IServerWorldAccessor.LoadedEntities. Oto przykład zamierzonego użycia API przez mody do dostępu do załadowanych jednostek, ten kod przykładu będzie nadal działać i nie jest objęty zmianami omawianymi tutaj:

public override double GetWalkSpeedMultiplier(double groundDragFactor = 0.3) 

{ 

double mul = base.GetWalkSpeedMultiplier(groundDragFactor); mul *= Stats.GetBlended("walkspeed");

mul *= Stats.GetBlended("walkspeed"); 

return mul; 

}

Exit mobile version