Przejdź do głównej zawartości

Aktualizacja istniejącego serwera

Ta strona jest dla serwera, który już działa. Świeża instalacja korzysta z Instalacji albo przepisu txAdmin. Ogólne informacje o kopiach zapasowych i migracjach są w Aktualizacja i baza danych.

  1. Zatrzymaj serwer.
  2. Zrób kopię całego folderu serwera i bazy danych. Zachowaj nietkniętą kopię zainstalowanego wydania.
  3. Rozpakuj nowe wydanie do osobnego folderu. Nigdy nie rozpakowuj go na swój serwer.

Potrzebujesz Pythona 3.10 lub nowszego i Gita. Wydanie zawiera update/bs_update.py.

python update/bs_update.py prepare --base OLD_RELEASE --local YOUR_SERVER --new NEW_RELEASE --review REVIEW_FOLDER
  • REVIEW_FOLDER/plan.json wymienia dokładnie, które pliki się zmieniły. Proponowane wersje są w proposed/.
  • Pliki, których nie edytowałeś, są aktualizowane czysto. Te, które edytowałeś, dostają scalanie trójstronne, a te z konfliktami wymagają ręcznego przejrzenia. Pliki, które ma tylko twój serwer, zostają nietknięte.
  • Pliki config przechodzą ten sam przegląd, więc nie nadpisuj na ślepo swoich haseł ani własnych ustawień.

Wpisz do REVIEW_FOLDER/accept.txt tylko ścieżki, które zatwierdzasz, po jednej w wierszu. Najpierw usuń wszystkie znaczniki scalania. Zatwierdzone usunięcie kasuje dokładnie ten plik. Potem:

python update/bs_update.py apply --review REVIEW_FOLDER

Żeby cofnąć zatwierdzone zmiany plików, zanim zaczniesz coś dalej edytować: python update/bs_update.py rollback --review REVIEW_FOLDER. Kopię bazy danych w razie potrzeby przywróć osobno.

Narzędzie nigdy nie dotyka bazy danych. bs_core stosuje nowe migracje przy pierwszym starcie i zapisuje je w bs_migrations, po kolei i tylko raz. Nowe to 044_operations.sql, 045_darkzone.sql, 046_building_v2.sql i 047_faction_emblems.sql, oprócz wcześniejszych wymienionych w Migracje bazy danych. Nigdy nie importuj bazy ze świeżej instalacji na swoją działającą.

Porównaj swój server.cfg z nowym i dodaj, czego brakuje. Oto zasoby, których potrzebują nowsze systemy, w kolejności, w jakiej uruchamia je działający serwer:

ensure bs_config
ensure bs_ui
ensure bs_building
ensure bs_zombies
stop pma-voice
setr voice_useNativeAudio true
setr voice_useSendingRangeOnly true
ensure bs_voice
ensure bs_radio
ensure bs_missions
ensure bs_traders
ensure bs_jobs
ensure bs_events
ensure bs_operations
ensure bs_darkzone # pozostaje wyłączona, dopóki nie włączysz jej w F1 > Dark Zone
ensure bs_guard
ensure bs_pushgates
ensure bs_pause
ensure bs_tutorial
ensure bs_pass
ensure bs_survivor

bs_voice zastępuje pma-voice. Zatrzymaj pma-voice, zanim go włączysz, i przenieś każdy własny skrypt, który go wywołuje.

Uruchom prywatnie i sprawdź: wybór postaci, ekwipunek, zapisy do bazy danych i wszystko, co się zmieniło. Zachowaj kopie zapasowe, dopóki nie zaakceptujesz wyniku.

  • F1 ma nowe strony: Operations, Dark Zone, Hunting, Tutorial & Pause Menu, Themes & UI, Voice & radio i Building materials. Zobacz Dark Zone, Operacje, Building v2 i Głos, radio i motywy.
  • Dark Zone jest wyłączona. Rajdy i rozpad baz są wyłączone. Dla graczy nic się nie zmienia, dopóki ich nie włączysz.
  • Twoje profile F1 są w bazie danych i przetrwają aktualizację. Klucz, którego już nie ma, jest ignorowany.
  • Usuń cache/, jeśli po aktualizacji coś wygląda dziwnie. Nigdy nie kopiuj go między maszynami.

server.private.cfg przechowuje to, co należy tylko do tej maszyny. server.cfg ładuje go blisko początku:

exec server.private.cfg

Wpisz tam:

  • sv_licenseKey i mysql_connection_string
  • steam_webApiKey, jeśli go używasz, i bs_vip_tebex_secret, jeśli sprzedajesz VIP
  • Swoje linie adminów, add_principal identifier.license:... group.superadmin
sv_licenseKey "twój klucz"
set mysql_connection_string "mysql://uzytkownik:[email protected]/beyondsurvival?charset=utf8mb4"
add_principal identifier.license:TWOJA_LICENCJA group.superadmin

Zasady:

  • Nie ma go w gicie, a narzędzie aktualizacji nigdy go nie nadpisuje, więc aktualizacja nie dotyka twojego klucza, hasła ani listy adminów.
  • Nigdy go nie udostępniaj, nie pakuj w archiwum dla innych, nie commituj.
  • Convary są czytane po kolei i wygrywa ostatni set. Jeśli server.cfg ustawi ten sam convar jeszcze raz po linii exec, nadpisze plik prywatny. Trzymaj wartości maszyny w jednym miejscu i usuń duplikat z server.cfg.
  • Do sekretów używaj set, nie setr, bo setr wysyła wartość wszystkim graczom.