Sarjuuk / aowow

logo

Build Status

fuck it ship it

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”.

używa odznak

.