Sarjuuk / aowow
- Build Status
- Introduction
- Wymagania
- Wysoko zalecane
- Instalacja
- 1. Pozyskać wymagane repozytoria
- 2. Przygotuj bazę danych
- 3. Pliki utworzone przez serwer
- 4. Wyodrębnij archiwa klienckie (MPQ)
- 5. Ponownie zakoduj pliki audio
- 6. Uruchom początkową konfigurację z CLI
- Rozwiązywanie problemów
- Podziękowania
- Specjalne Podziękowania
Build Status
Introduction
AoWoW jest narzędziem Database dla World of Warcraft v3.3.5 (build 12340)Jest on oparty na innym słynnym narzędziu bazodanowym dla WoW, wyposażonym w czerwoną uśmiechniętą rakietę.Podczas gdy pierwsze wersje można znaleźć już w 2008 roku, dziś nie można powiedzieć, kto stworzył ten projekt.Jest to kompletne przepisanie kodu php po stronie serwera i aktualizacja javascript po stronie klienta z 2008 roku do czegoś w stylu 2013.
Ja sam nie biorę żadnego kredytu za skrypty po stronie klienta, projekt i układ, który te skrypty php zaspokajają.Również, ten projekt nie jest przeznaczony do użytku komercyjnego jakiegokolwiek rodzaju!
Wymagania
- Webserver z PHP ≥ 7.1 wraz z rozszerzeniami:
- SimpleXML
- GD
- MySQL Improved
- Multibyte String
- File Information
- GNU Multiple Precision (When using TrinityCore as auth source)
- MySQL ≥ 5.5.30
- TDB 335.21021
- Narzędzia wymagają cmake: Proszę odnieść się do poszczególnych repozytoriów po szczegółowe informacje
- MPQExtractor / FFmpeg / (opcjonalnie: BLPConverter)
- Użytkownicy WIN mogą uznać za łatwiejsze użycie tych alternatyw
- MPQEditor / FFmpeg / (opcjonalnie: BLPConverter)
przetwarzanie audio może wymagać lame lub vorbis-tools (które mogą wymagać libvorbis (które mogą wymagać libogg))
Wysoko zalecane
- ustawienie następujących wartości konfiguracyjnych na Twoim serwerze TrinityCore znacznie zwiększy dokładność punktów spawnu
Calculate.Creature.Zone.Area.Data = 1
Calculate.Gameoject.Zone.Area.Data = 1
Instalacja
1. Pozyskać wymagane repozytoria
git clone [email protected]:Sarjuuk/aowow.git aowow
git clone [email protected]:Sarjuuk/MPQExtractor.git MPQExtractor
2. Przygotuj bazę danych
Upewnij się, że konto, którego będziesz używał ma pełny dostęp do bazy danych, którą będzie zajmował AoWoW i najlepiej tylko dostęp do odczytu do światowej bazy danych, do której będziesz się odwoływał.
Import setup/db_structure.sql
do bazy danych AoWoW mysql -p {your-db-here} < setup/db_structure.sql
3. Pliki utworzone przez serwer
Upewnij się, że serwer WWW jest w stanie zapisać następujące katalogi i ich dzieci. Jeśli ich nie ma, konfiguracja utworzy je z odpowiednimi uprawnieniami
cache/
config/
static/download/
static/widgets/
static/js/
static/uploads/
static/images/wow/
datasets/
4. Wyodrębnij archiwa klienckie (MPQ)
Wyodrębnij następujące katalogi z archiwów klienckich do setup/mpqdata/
, zachowując kolejność łat (base mpq -> patch-mpq: 1 -> 9 -> A -> Z). Wymagane ścieżki są rozproszone po archiwach. Nadpisz starsze pliki, jeśli zostaniesz o to poproszony.
… dla każdego locale, którego zamierzasz używać:
<localeCode>/DBFilesClient/
<localeCode>/Interface/WorldMap/
<localeCode>/Interface/FrameXML/GlobalStrings.lua
…. raz wystarczy (nadal jednak stosuj localeCode):
<localeCode>/Interface/TalentFrame/
<localeCode>/Interface/Glues/Credits/
<localeCode>/Interface/Icons/
<localeCode>/Interface/Spellbook/
<localeCode>/Interface/PaperDoll/
<localeCode>/Interface/GLUES/CHARACTERCREATE/
<localeCode>/Interface/Pictures
<localeCode>/Interface/PvPRankBadges
<localeCode>/Interface/FlavorImages
<localeCode>/Interface/Calendar/Holidays/
<localeCode>/Sound/
.. opcjonalnie (nie używane w AoWoW):
<localeCode>/Interface/GLUES/LOADINGSCREENS/
5. Ponownie zakoduj pliki audio
Pliki WAV muszą być ponownie zakodowane jako ogg/vorbis
, a niektóre MP3 mogą identyfikować się jako application/octet-stream
zamiast audio/mpeg
.
- przykład dla WIN
- przykład dla *nix
6. Uruchom początkową konfigurację z CLI
php aowow --setup
.
To powinno Cię przeprowadzić przez minimalny wkład z Twojej strony, ale zajmie trochę czasu, szczególnie kompilacja obrazów stref. Użyj go do zapoznania się z innymi funkcjami, które posiada ta konfiguracja. Tak, jestem śmiertelnie poważny: przeczytaj kod! Pomoże ci to zrozumieć, jak skonfigurować AoWoW i utrzymać go w synchronizacji z twoją światową bazą danych.
Gdy utworzyłeś swoje konto administratora, skończyłeś.
Rozwiązywanie problemów
Q: Strona jest biała, bez żadnych stylów.
A: Zawartość statyczna nie jest wyświetlana. Albo używasz SSL i AoWoW nie jest w stanie go wykryć, albo STATIC_HOST nie jest zdefiniowany poprawnie. Tak czy inaczej można to naprawić poprzez config php aowow --siteconfig
Q: Fatal error: Can’t inherit abstract function <functionName> (previously declared abstract in <className>) in <path>
A: Używasz modułów optymalizacji cache dla php, które są ze sobą sprzeczne. (Zend OPcache, XCache, …) Wyłącz wszystkie oprócz jednego.
Q: Niektóre generowane obrazy wydają się zniekształcone lub mają problemy z kanałem alfa.
A: Kompresja obrazu jest poza moim zrozumieniem, więc nie jestem w stanie naprawić tych problemów w blpReaderze.ALE możesz przekonwertować uszkodzony plik blp na plik png w tym samym katalogu, używając dostarczonego BLPConverter.AoWoW będzie przedkładać pliki png nad pliki blp.
Q: Jak mogę sprawić, by przeglądarka modeli działała?
A: Już nie możesz. Wowhead przeszedł z Flash na WebGL (tak jak powinien) i przeniósł lub usunął stare pliki w procesie.
Q: I’m getting random javascript errors!
A: Niektóre konfiguracje serwera lub zewnętrzne usługi (jak Cloudflare) posiadają moduły, które automatycznie minifikują pliki js i css. Czasami ulegają one uszkodzeniu w trakcie tego procesu. Wyłącz ten moduł w takim przypadku.
Q: Niektóre wyniki wyszukiwania w profilerze zachowują się dość dziwnie. Jak to działa?
A: Za każdym razem, gdy próbujesz wyświetlić nową postać, AoWoW musi ją najpierw pobrać. Ponieważ dane są ustrukturyzowane dla potrzeb TrinityCore, a nie dla łatwego przeglądania, AoWoW musi je zapisać i zrestrukturyzować lokalnie. W tym celu każde żądanie char jest umieszczane w kolejce. Podczas gdy kolejka nie jest pusta, pojedyncza instancja prQueue
jest uruchamiana w tle, aby nie przeciążać bazy znaków żądaniami. Oznacza to również, że niektóre bardziej egzotyczne zapytania nie mogą być uruchomione ponownie w bazie danych postaci i muszą korzystać z niekompletnych/nieaktualnych profili AoWoW.
Podziękowania
@mix: za dostarczenie skryptu php do parsowania plików .blp i .dbc w użyteczne obrazy i tabele
@LordJZ: klasa wrapper dla DBSimple; podstawowy pomysł na klasę użytkownika
@kliver: podstawowa implementacja wysyłania zrzutów ekranu
@Sarjuuk: opiekun projektu
Specjalne Podziękowania
Szanowna strona z czerwoną uśmiechniętą rakietą, za udostępnienie tej pięknej strony!Proszę nie traktować tego projektu jako jawnego zdzierstwa, raczej jako „Naprawdę podobała nam się wasza prezentacja, ale ponieważ czas i treść postępują, niestety nie dostarczacie już danych, których potrzebujemy”.
.