Selbst gehosteter Wrath of the Lichking Server mit Bots

Jossy82

Lieutenant
Registriert
Aug. 2009
Beiträge
554
Serveringame.jpg


Ich bin zufällig über die Videos vom Youtuber nirv gestolpert welcher mich als WoW-Nostalgiker
sehr interessiert hat.
Da ich momentan einen ungenutzten alten i7 7700K zur Hand hatte bin ich seinem Textguide
gefolgt und habe während ich die Maschine installiert und gefixt haber diesen ins Deutsche
übersetzt und hier und da noch etwas erweitert.

Der Text ist hier gleich hinter dem Spoiler, in Zukunft wird es nochmal eine Version als Text-Datei geben.
(Es kann sein dass ich häufiger mal eine neue Revision hier reinpacke, auch wegen Tippfehlern, Umformatierungen und wenn noch neue Infos hinzukommen.)

Zurück zum Thema:

Hintergrund war es nicht das nächste große Privatserverprojekt zu starten sondern:

Dem alten Rechner eine neue Aufgabe zu geben.

Einen selfhosting Service zu Übungszwecken einzurichten mit Zugriff über eine DDNS von aussen auf
den Gameserver.

Und zuletzt um einen Funserver zum Rumgimpen zu haben und vielleicht auch um in Zukunft eigene
Quests zu generieren oder als Playground für RPG-Sessions mit Freunden zu nutzen.



Ich gehe davon aus dass es in Ordnung ist dies hier zu Posten weil:

Der Client ist älter als 15 Jahre und wird nicht mehr offiziell genutzt.

Es wurde und wird nichts raubkopiert, denn AzerothCore ist gemeinsam mit der Datenbank komplette
Handarbeit der Fans und Entwickler, also eine Art von Backport.

Und natürlich weil es einfach eine coole Sache ist.



PS: AzerothCore und die db werden stetig geupdatet und gefixt, was leider natürlich auch bedeutet
dass hier und da immernoch ingame Bugs auftauchen können.

Und obendrein ist nur der englische Part wirklich komplett. Andere Sprachpakete bleiben immer
irgendwann im Bearbeitungsstatus hängen...

Aber da es ein Opensource Projekt auf Github ist kann ja jeder der helfen will da mit einsteigen,
auch beim Übersetzen der Datenbankeinträge!

PS: Danke nochmal an @nospherato dafür dass er mir beigestanden hatte als
ich mir die Zähne an der DDNS-Einrichtung bzw. meiner fehlerhaften Portweiterleitung verzweifelte.


Hier nun der Guide:
(WICHTIG:

1.: Code mit Mehrfachzeilen immer am Stück kopieren damit der Zeilenumbruch korrekt übernommen
wird und nicht mittendrin den Befehl absägt!
2.: Auch wenn vieles von AzerothCore in deDE übersetzt wurde kann und wird man immer noch auf englische Versatzstücke treffen!
3. Es gibt immer noch hier und da Bugs, das Projekt ist aber sehr aktiv und die Anzahl der Bugs in der allgemeinen Datenbank sollte relativ gering sein!)
4. Wenn nicht anders angesagt Zeile für Zeile einzeln kopieren und ausführen!
Ausnahme sind die mysql-Einträge, die immer im kompletten Block kopieren und einfügen!


///////////////////////////////////////////////////////////////////////////
WIE MAN SEINEN EIGENEN WOTLK SERVER MIT PLAYERBOTS
LOKAL UNTER LINUX UND AZEROTHCORE BETREIBT (2024)
///////////////////////////////////////////////////////////////////////////


Original: 2024-07-13 von Nirv - Übersetzt und angepasst von GenericJohnDoe (Jossy82)

Revision vom 10.08.2024

///////////////////////////////////////////////////////////////////////////
INHALT
///////////////////////////////////////////////////////////////////////////

1. VORWORT
2. ANFORDERUNGEN
3. VORBEREITUNG
4. INSTALLATION UND INBETRIEBNAHME DES GAMESERVERS
5. ANPASSUNG DER KONFIGURATIONSDATEIEN
6. RESTLICHES UND BEDIENUNG DES SERVERS
7. MODULE
8. GEDANKEN UND ABSCHLIESSENDE WORTE DES AUTORS
9. LINKS
10. ABWEICHUNGEN DES ÜBERSETZERS


///////////////////////////////////////////////////////////////////////////
1. VORWORT
///////////////////////////////////////////////////////////////////////////

Heute werde ich zeigen, wie man seinen eigenen World of Warcraft-Server betreiben kann:
Wrath of the Lich King Server von Anfang bis Ende mit Virtualbox und Debian Linux
(Anm. d. Übers.: Oder über einen separaten Rechner).

Mein Video wird nicht fancy sein, aber ich versichere, dass ich den besten Weg den Server
aufzusetzen zeigen werde.

Es gibt andere Anleitungen auf Websites und Youtube, die empfehlen unter Windows mit
sogenannten „Repacks“ zu arbeiten, aber ich als Gamer seit 1984 und jemand, der seine eigenen
dedizierten Spieleserver seit der Counterstrike-Beta betrieben hat, bin mit dieser
Vorgehensweise nicht einverstanden.

Glaubt nicht nur mir - der Entwickler des Servers Azerothcore, den wir hier verwenden
(kostenlos und quelloffen auf github) - stimmt mir in seiner FAQ zu:
https://www.azerothcore.org/wiki/faq


Frage:
Werden Repacks, die auf AzerothCore basieren, unterstützt?

Antwort:
Nein. Repacks werden NICHT unterstützt und wir empfehlen dringend, sie aus verschiedenen
Gründen nicht zu verwenden.

In diesem Tutorial findet man eine einfache Möglichkeit, AzerothCore zu installieren, ohne
ein Repack zu verwenden.

Es gibt viele Anleitungen, aber bisher habe ich noch keine gesehen die einem zeigt wie man
diese Version mit Bots installiert und den Server dadurch zum Leben erweckt,
geschweige denn wie man den Server aufrechterhält, die Bots kontrolliert und zusätzliche
coole Dinge wie das KI-Stimmen-Addon einbindet, welches die Questtext auf englisch einspricht!


///////////////////////////////////////////////////////////////////////////
VORTEILE SEINEN EIGENEN WOW-SERVER LOKAL ZU BETREIBEN
///////////////////////////////////////////////////////////////////////////
Retail World of Warcraft ist bekanntlich ein Non-Stop-Zug - er fährt immer weiter und hält nie an.
Private Server hingegen werden von Fans auf der ganzen Welt gehostet, aber sie scheinen alle
irgendwann aus dem einen oder anderen Grund offline zu gehen. Außerdem betteln sie meist um
Geld durch Spenden, oder sind gleich pay-to-win, sprich in der Regel gewinnorientiert.

Azerothcore ist völlig anders.

Letztendlich beschloss eine Gruppe von Leuten zusammenzuarbeiten und jedem die Möglichkeit zu
geben Änderungen und Verbesserungen einzureichen, mit ihrem freien und offenen Quellcode-Modell!
Obwohl man genau diesen Quellcode verwenden könnte um einen eigenen Server zu betreiben, werden
wir hier eine leicht modifizierte Version verwenden, die eine Bot-Integration ermöglicht.

Die offizielle Azerothcore-Website ist:
https://www.azerothcore.org/

Alle anderen Links findet man weiter unten. Ich bin kein Programmierer und habe keine Verbindung zu
den Erstellern der Tools, die wir heute benutzen werden - ich bin nur ein Gamer, ein Fan von
World of Warcraft und ein starker Befürworter von Freiheit und Open-Source-Software.

Ich werde versuchen, in diesem Tutorial nicht zu technisch zu werden. Man sollte in der Lage sein,
es so schnell wie möglich zum Laufen zu bringen. Ich könnte jede Kleinigkeit erklären, aber dieses
Video-Tutorial würde mehrere dann mehrere Stunden andauern.
Wir können jetzt loslegen und später lernen! Ich bin eher ein Gamer als ein Knöpfchendreher!
World of Warcraft selbst zu hosten gibt einem gottgleiche Kräfte in Bezug auf die Anpassung der
gehosteten Welt.

Hier sind nur einige der Möglichkeiten, die man im Spiel hat:

- Eigener Realm-Name, Ernennung von GMs (Game Master), Erstellung von Spieleraccounts
(und für welche Erweiterung diese Accounts freigeschaltet sind, von Vanilla bis WotLK), und mehr!

- Installation eines der Dutzenden von Fan-Modulen für Azerothcore, wie z.B. Transmog-NPC,
DK-Startzone überspringen, accountweite Reittiere und vieles mehr!

- Erlaubt fraktionsübergreifende Gruppierungen, Gilden, Kommunikation und Schlachtzüge.
Man könnte sogar entscheiden, alle Klassen für jedes Volk zuzulassen, wie zum Beispiel
einen menschlichen Druiden!

- Freie Anpassung des Bot-Verhaltens sowie von Item-Drop-Raten, Golddrops, Boss-Gesundheit,
Mob-Gesundheit, Mob-Spawn-Raten und an welchen Orten die Spawns erscheinen sollen.

- Änderung und/oder Deaktivierung der Abklingzeiten von Fähigkeiten, Schwächungszaubern,
Stärkungszaubern und allem anderen.

- Deaktivierung des Benommenheitseffektes (wenn man von hinten getroffen wird),
die Abklingzeit des Ruhesteins, Zufriedenheit der Hunter Pets, den Debuff für Deserteure
und alles andere! Es gibt fast keine Grenzen!

- Man kann auf zukünftige Versionen von Playerbots und Azerothcore updaten oder sich
entscheiden, nie zu aktualisieren und den Server statisch und unverändert zu lassen!
Ein friedliches, entspannendes Azeroth, das immer verfügbar ist.

- Öffnung des Servers für Remotezugriffe und für Freunden überall auf der Welt um sich mit
dem Server zu verbinden! Oder als reiner Solo- oder LAN-Server, so dass nur man selbst
und vielleicht noch diejenigen die sich in selben Heimnetzwerk befinden verbinden und
spielen können.

- Das gute Gefühl, dass einem der Server dauerhaft gehört und einem nicht weggenommen
werden kann. Niemand wird Gebühren einfordern und Blizzard kann ihn nicht abschalten.
Er gehört einem dauerhaft ganz allein.

Warum sollte man mit Bots spielen wollen?

- Bots machen den Server lebendig, grade wenn man der einzige Mensch auf dem Realm ist!

- Bots helfen bei Quests, Dungeons und Schlachtzügen. Sie heilen, beleben wieder, buffen und
grüßen sogar einen!

- Man kann entscheiden, ob man keine, 1 Bot oder 1600 Bots auf dem Realm haben möchte.
Es liegt ganz bei einem selbst.

- "Playerbots“ sind einzigartig, da sie echte und gültige Accounts nutzen die auf eurem Server
generiert werden. Sie haben eigenes Inventar, Ausrüstung, Skillungen und Gold.
Im Gegensatz zu „NPCBots“ kann man Playerbots umfangreich inspizieren, mit Ihnen handeln
und befehligen. Man kann zum Beispiel einen Zwergenpriester spawnen, um den Stärkungszauber
„Fear Ward“ zu bekommen!

-Man kann die Ausrüstung der Bots in der eigenen Gruppe jederzeit sofort ändern.
Man kann sie sogar zu sich rufen - egal wo man ist - sogar in einem Dungeon,
ohne einen Hexenmeister! Ich habe es nicht ausprobiert, aber ich bin mir ziemlich sicher,
dass man einen echten Hexenmeister zu sich rufen kann, der dann ein echtes Portal castet,
genau wie ein von Spielern gelenkter Hexenmeister.


///////////////////////////////////////////////////////////////////////////
WARUM SOLLTE MAN DIESEN GUIDE NUTZEN?
///////////////////////////////////////////////////////////////////////////
Ich habe World of Warcraft von Januar 2005 bis irgendwann im Jahr 2021 gespielt, meistens als
„Painbow-Mal'Ganis“, einem Ork-Jäger.
Ich möchte das Spiel so originalgetreu wie möglich spielen, ohne cheats, aber ich möchte auch die
Möglichkeit haben, interessante Dinge auszuprobieren, wenn mir danach ist, z. B. nach Hyjal zu
fliegen (ein Ort, an den man in 3.3.5a nicht gelangen konnte), oder mir selbst Komfortfunktionen
wie das sofortige Ausloggen geben.
Wer hat schon gerne 20 Sekunden gewartet, um sich auszuloggen?

///////////////////////////////////////////////////////////////////////////
2. ANFORDERUNGEN
///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
HARDWAREANFORDERUNGEN FÜR DEN VIRTUALISIERTEN SERVER
///////////////////////////////////////////////////////////////////////////
50GB Speicherplatz
Zumindest eine CPU mit 4 Kernen.
4 GB Ram für die virtualisierte Maschine.


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
HARDWAREANFORDERUNGEN FÜR DEN DEDIZIERTEN (SEPERATER COMPUTER) SERVER
(ANM. D. ÜBERS.)

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Genutzt wurde von mir ein ehemaliger Spielerechner mit einem I7 7700k welcher auf 4.6 ghz
locked läuft und leicht undervolted wurde. Arbeitsspeicher sind 16 GB DDR4 3200 cl 16-16-16-36
auf einem AsRock Z170 Gaming K4 Fatal1ty und mit einer 256 GB PCIe3 M2-SSD von Samsung.
Verbunden wird dass ganze über eine WLAN-Karte von TP-Link (Archer T6E bzw. AC1300) welche
über Verlängerungskabel an einer seperaten Antenne hängt.
Da es ein dedizierter Server ist wurde auch keine GPU verbaut sondern es wurde bisher nur die
iGPU genutzt, die hauptsächliche Administration erfolgt über via Fernzugriff über SSH und ggf. RDP.
(Es wird grade eine Radeon Rx 580 8GB nachgerüstet, damit der Rechner auch als Gästerechner mit
einem der verfügbaren Desktops und Lutris sowie Firefox für andere Sachen genutzt werden kann.)

Natürlich ist der Rechner für so ein Projekt vermutlich overkill, ich habe gehört dass es
Privatserverprojekte mit mehreren 100 Spielern gibt die von den Betreibern auf einem Raspie
laufen gelassen werden... (Natürlich wird dann der Server und die Datenbank woanders vorkompiliert.)

Aber so kann man zumindest serverseitig die Darstellungsdistanz schön hochdrehen, viele Bots aktiv
halten und die Kompilierungszeiten sind nicht arg so schlimm. Zudem ist der Server ist innerhalb
von 10 Sekunden vom "Strom aus" zu Live und aktiv nutzbar.


///////////////////////////////////////////////////////////////////////////
SOFTWARE ANFORDERUNGEN
///////////////////////////////////////////////////////////////////////////
Windows 7, 10, 11
VirtualBox:
https://www.virtualbox.org/wiki/Downloads

Debian Bookworm ISO:
http://mirror.cogentco.com/debian-cd/current/amd64/iso-cd/

PuTTY (Für Fernzugriff) (64-bit x86 version):
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

PuTTY (Für Fernzugriff) mirror falls der obige Link nicht geht:
https://abs.freemyip.com:84/share/kd-NUJeO

HeidiSQL (Client um die Datenbank einfach zu bearbeiten):
https://www.heidisql.com/download.php?download=installer

WoTLK 3.3.5a client (Englischer Client um zu spielen) 17GB:
https://www.chromiecraft.com/en/downloads/

Unbot addon (Um Ingame die Bots zu kontrolliern):
https://github.com/noisiver/unbot-addon/tree/english

Unbot mirror link:
https://abs.freemyip.com:84/share/FD_vJrpt

TipTac tooltip addon:
https://felbite.com/addon/4716-tiptac/

TipTac mirror link:
https://abs.freemyip.com:84/api/public/dl/29mVUeau


Optional (aber empfohlen, beides englisch):

VoiceOver addon for World of Warcraft WotLK 3.3.5a:
https://github.com/mrthinger/wow-vo...load/v1.4.3/AI_VoiceOver-WoW_3.3.5-v1.4.3.zip

VoiceOver vanilla sounds:
https://github.com/mrthinger/wow-vo...ad/v1.3.1/AI_VoiceOverData_Vanilla-v1.0.0.zip

///////////////////////////////////////////////////////////////////////////
SOFTWAREVORSCHLÄGE DES ÜBERSETZERS
///////////////////////////////////////////////////////////////////////////
Software:

Tabby:
https://github.com/Eugeny/tabby/releases
(Besser als PuTTY, Empfehlung des Übersetzers)

WinSCP:
https://winscp.net/eng/downloads.php
(FTP/SFTP Programm um auf die Dateien auf dem Linux-Server von Windows aus zuzugreifen.)

Deutscher Client:
https://www.rising-gods.de/32-startseite/212-downloads.html
(Torrent auf RisingGods, es reicht wenn man sich nur den Data-Unterordner deDE
über den Client runterlädet wenn man bereits den eigentlichen Client hat.)

4GB-Patch:
https://www.moddb.com/downloads/4gb-patch2
(Damit die WoW-Exe mehr als nur 4GB RAM adressieren kann und nicht abschmiert wenn es etwas voller
im Speicher wird.)

Addons:

AzerothAdmin:
https://github.com/superstyro/AzerothAdmin
(Erleichteter Zugriff auf die GM-Kommandos über ein Ingame-Gui)

Tweak WoW:
https://addons.rising-gods.de/addons/tweakwow
(Addon um über Ultra hinaus noch mehr graphische Einstellungen freizuschalten.)

///////////////////////////////////////////////////////////////////////////
3. VORBEREITUNG
///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
ERSTGE SCHRITTE. BITTE DAS VIDEO ANSEHEN UM MEHR ÜBER DIE
INSTALLATION VON VIRTUALBOX, DEBIAN UND PuTTY ZU ERFAHREN.

///////////////////////////////////////////////////////////////////////////
Man kann dieser Anleitung folgen auch wenn man keine Ahnung vom Programmieren, Coden, Linux,
Betriebssystemen oder Ähnlichem hat. Man muss nur in der Lage sein, meine Anweisungen genau zu
befolgen. Ich bin der Meinung, dass jeder - unabhängig von seinen Fähigkeiten - es verdient,
seinen eigenen Server zu betreiben.

- Installation der Virtualbox mit allen Standardeinstellungen.

- Installation von Debian Linux in der Virtualbox.
(Anm. d. Übers.: Oder ohne VirtualBox direkt auf einem zusätzlichen Linux-Rechner.
Zusätzlich sollte XFCE als Desktop genommen werden um sich später einfach über eine
Remotedesktopverbindung via XRDP auf den Linux-Desktop verbinden zu können.)

- Installation von PuTTY mit den Standardeinstellungen. Seht in der Videoanleitung nach für alle
meine Einstellungen und weitere Verbesserungen. (Anm. d. Übers.: Tabby muss
einfach nur installiert werden und ist fertig einsetzbar.)

Nach der Installation von Virtualbox, Debian und PuTTY werden wir nun PuTTY verwenden, um uns
mit dem neu erstellten Debian-Linux-PC zu verbinden. Wir benötigen dazu die IP-Adresse oder
localhost, sowie mit dem Benutzernamen, den wir bei der Debian-Installation eingegeben haben.
Sagen wir, wir haben den Nutzernamen „nirv“, dann sieht es nach dem Einloggen BEISPIELSWEISE
so aus:

======================================================================

nirv@azeroth:~$

======================================================================

# Ab diesem Punkt erstellen wir ein Passwort für das root-Konto.
# Root ist das „Administrator“-Konto. Dieses Passwort kann dasselbe oder ein anderes sein als das des
# bereits angelegten Benutzers, es wird aber empfohlen ein anderes zu nehmen.

======================================================================

sudo passwd

# Dass Passwort zunächst nicht zu kompliziert machen, es muss während des Setups häufiger
# eingegeben werden.

======================================================================

# Nun loggt man sich auf den "Root-Account" ein:

su -

======================================================================

# Wenn man sich mit dem Root-Konto anmelden, wird die Eingabeaufforderung etwas anders aussehen
# als oben, nämlich so:

root@azeroth:~#

======================================================================

# Abweichung des Übersetzers: Ich habe mal die ganzen zu installierenden Programme, Tools usw. hier
# in einen langen String gepackt damit gleich alles von Anfang an da ist und man sich nur noch den Server
# und das Zubehör dafür per git holen muss.
# (Alles in einer langen Zeile ohne Umbruch einfügen!)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
apt-get update && apt-get upgrade -y && apt-get install ssh git curl unzip sudo net-tools git cmake make gcc g++ clang default-libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev mariadb-server libboost-all-dev tmux ufw -y
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

======================================================================

# SSH-Anmeldung direkt als root zulassen (wenn man dies nicht ändert, kann man sich nur in
# Benutzerkonten und nicht dem Root einwählen):

nano /etc/ssh/sshd_config

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Permitrootlogin yes
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sudo /etc/init.d/ssh restart

======================================================================

# Schnellerer Systemstart:

nano /etc/default/grub

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GRUB_DEFAULT=1
GRUB_TIMEOUT=0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

update-grub


///////////////////////////////////////////////////////////////////////////
NETZWERKKONFIGURATION
///////////////////////////////////////////////////////////////////////////
# Feststellen der momentan genutzten IPv4 mit:

ip a

# Nehmen wir an mit "ip a" kam heraus dass es "192.168.1.250" ist. Wir werden Debian nun so einstellen
# dass diese IP bestehen bleibt.

======================================================================

# Es muss nun das Gateway gefunden werden, meist ist es 192.168.1.1, wir nutzen aus den net-tools den
# "route"-Befehl:

route -n

======================================================================

# Wir müssen nun den aktiven Netzwerkadapter bzw. die Netzwerkschnittstelle finden. Es ist diejenige,
# auf der „UP“ steht.
# Nehmen wir an, das es hier enp0s3 sein könnte, da dies eine sehr häufig vorkommenden Bezeichnung
# für LAN-Schnittstellen ist.
# Um dies festzustellen geben wir ein:

ip -br -c link show

======================================================================

# Wenn wir die korrekte IP, das Gateway, und das Netzwerkinterface wissen können wir die
# Konfigurationsdatei anpassen.

nano /etc/network/interfaces

# Wir müssen sicherstellen, dass die beiden Einstellungen unter „the primary network interface“
# „allow-hotplug“ und „iface“ auskommentiert oder gelöscht sind. Wir fügen unsere Änderungen
# hinzu damit wir aus der normalen eine statische Verbindung herstellen.
# Wenn man Verbindungsprobleme hat, muss sichergestellt werden dass sowohl „gateway“ als auch
# „dns-nameservers“ unten auf das korrekte Gateway gesetzt sind, welches sich von meinem hier im
# Beispiel genutzten 192.168.1.1 unterscheiden kann! Bitte prüft dafür in eurem Router nach!

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# The primary network interface
#allow-hotplug enp0s3
#iface enp0s3 inet dhcp
auto enp0s3
iface enp0s3 inet static
address 192.168.1.250
netmask 255.255.255.0
gateway 192.168.1.1
dns-domain azeroth.core

dns-nameservers 192.168.1.1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


# CTRL+O zum Speichern oder CTRL+X zum speichern und schließen von nano eingeben.
# Wir müssen den nächsten Befehl in das Virtualbox-Fenster eingeben

systemctl restart networking.service

///////////////////////////////////////////////////////////////////////////
4. INSTALLATION UND INBETRIEBNAHME DES GAMESERVERS
///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////
SOFTWAREINSTALLATION
///////////////////////////////////////////////////////////////////////////
# Ab hier installieren wir nun die für den WoW-Server notwendige Software und konfigurieren diese,
# wir laden die Kerndaten vom AzerothCore-Branch mit Playerbots herunter:

git clone https://github.com/liyunfan1223/azerothcore-wotlk.git --branch=Playerbot
cd ~/azerothcore-wotlk/modules
git clone https://github.com/liyunfan1223/mod-playerbots.git --branch=master

======================================================================

# Wir starten nun die Kompilierung, dafür müssen wir immer wieder in ~/azerothcore-wotlk/ und nicht im
# Unterordner /modules sein, der Vorgang selbst kann einige Minuten dauern:

cd ~/azerothcore-wotlk
./acore.sh install-deps
./acore.sh compiler all

# Wir wollen Remote-Verbindungen auf mariadb erlauben (Dies betrifft nur das lokale Netzwerk
# - nicht das Internet -; ich empfehle dies damit man über HeidiSQL welches auf Windows läuft zugreifen
# kann, dies macht das Bearbeiten der Datenbanken wesentlich angenehmer als durch das Linux terminal!):

nano /etc/mysql/mariadb.conf.d/50-server.cnf

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bind-address = 0.0.0.0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mariadb.service

///////////////////////////////////////////////////////////////////////////
DATENBANKEINRICHTUNG
///////////////////////////////////////////////////////////////////////////
# Konfiguration der SQL Database
# Wir erstellen den mysql user "acore":

mysql -u root

# Die Datenbankeinträge notfalls Linie für Linie einzeln eingeben und bestätigen!

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DROP USER IF EXISTS 'acore'@'localhost';
DROP USER IF EXISTS 'acore'@'127.0.0.1';
CREATE USER 'acore'@'localhost' IDENTIFIED BY 'acore';
CREATE USER 'acore'@'127.0.0.1' IDENTIFIED BY 'acore';
GRANT ALL PRIVILEGES ON *.* TO 'acore'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'acore'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
<Enter drücken>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

///////////////////////////////////////////////////////////////////////////
ERSTSTART UND ERSTEINRICHTUNG DES SERVERS
///////////////////////////////////////////////////////////////////////////
# Wir stellen sicher noch im richtigen Verzeichnis zu sein und laden die client-data herunter,
# gefolgt von der Umbenennung der jeweiligen server.conf Dateien in das richtige Format:

cd ~/azerothcore-wotlk
./acore.sh client-data
cp env/dist/etc/authserver.conf.dist env/dist/etc/authserver.conf
cp env/dist/etc/worldserver.conf.dist env/dist/etc/worldserver.conf

======================================================================

# Wir starten nun dass erste mal den Server um die Datenbanken zu generieren.

cd ~/azerothcore-wotlk
./acore.sh run-authserver

# Wir geben grundsätzlich "yes" ein und achten auf Fehlermeldungen, falls diese auftreten hat man
# in der Vergangenheit einen Fehler gemacht und kann ab hier quasi den Server komplett neu
# aufsetzen wenn man Ihn nicht findet.
# Ansonsten warten wir bis die Meldung

"Added realm "AzerothCore" at 127.0.0.1:8085."

# auftaucht und beenden den Server wieder mit ctrl+z und einem "reboot" oder dem Spammen von
# ctrl+c um den server wieder abzuwürgen (Er startet bis zu 7 mal neu wegen dem automatischen
# Restarter der im Problemfall den Server wieder hochfahren lässt, hier wollen wir dass natürlich nicht.)

======================================================================

# Wir drücken in PuTTY Alt+Space und dann D um ein zweites PuTTY Fenster zu öffnen. In Tabby müssen
# wir nur oben auf "+" für den nächsten Tab anklicken.
# (Anm. d. Übers.: Oder man klickt in Tabby einfach oben auf "+" für einen weiteren Tab.)
# In dem neuen Fenster loggen wir uns wieder als root auf dem Server ein und wenden die nächsten
# Kommandos ans:

cd ~/azerothcore-wotlk
./acore.sh run-worldserver

# Dieser Durchlauf dauert länger weil vieles nun neu angelegt wird in den Datenbanken.
# Wir beantworten wieder alle Fragen mit "yes" und würgen den Server wieder ab wenn die
# Bot-Generierung durchgelaufen ist und

"WORLD: World Initialized In x Minutes x Seconds"

# als Meldung durchgelaufen ist. Es kann sein dass nur ctrl+z und ein reboot wirklich helfen. Danach
# muss der auth-server im ersten Fenster nochmal kurz erneut gestartet werden um sich zu verlinken
# und dann ein letztes Mal geschlossen zu werden.

///////////////////////////////////////////////////////////////////////////
Optionale SQL DATABASE Verbindung über HeidiSQL (Windows)
///////////////////////////////////////////////////////////////////////////
# Wir loggen uns wieder in die SQL-Datenbank ein:

mysql -u root

# Wir ersetzen zweimal "nirv" und dass Passwort "banana" weiter unten mit der login/Passwort-Kombi
# die wir haben wollen.
# Dies nutzen wir auch in der HeidiSQL Software in Windows um uns zu verbinden. Die Datenbanken
# so zu bearbeiten ist normalerweise angenehmer für die meisten Anwender,
# eben weil unter HeideSQL mehr Komfortfunktionen als nur die Befehlszeile von Linux/SQL
# möglich sind.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CREATE USER IF NOT EXISTS 'nirv'@'%' IDENTIFIED BY 'banana';
GRANT ALL PRIVILEGES ON *.* TO 'nirv'@'%' WITH GRANT OPTION;
exit;

<Enter drücken>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Spätestens ab diesem Punkt ist es eine gute Idee die Linux-Maschine einmal wirklich komplett
# herunterzufahren um diverse Prozesse final zu stoppen und wieder ein sauberes System zu haben:

shutdown now

# Danach kann man die debian vm in VirtualBox per Doppelklick neustarten bzw. man schaltet einfach
# den Linux-Rechner wieder ein.

///////////////////////////////////////////////////////////////////////////
NUR LOKAL / LAN / NUR DAS EIGENE NETZWERK /
KEIN INTERNET / SINGLE PLAYER MIT BOTS

///////////////////////////////////////////////////////////////////////////
# Bitte sicherstellen dass hier anstatt der 192.168.2.46 die tatsächliche IPv4 des Servers hinterlegt wird!
# Um die IP auszulesen einfach in der Kommandozeile "ip a" eingeben.

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_auth
UPDATE realmlist SET address = '192.168.2.46' WHERE id = 1;
exit;

<Enter drücken>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

======================================================================

///////////////////////////////////////////////////////////////////////////
INTERNET / TCP/IP / MULTIPLAYER / OFFEN FÜR ANDERE
SPIELER ÜBER DAS NETZ / WAN / OFFEN ZUM INTERNET

///////////////////////////////////////////////////////////////////////////
# Man muss seine externe IPv4 hinterlegen.
# ABSOLUT NOTWENDIG ODER NIEMAND KANN SICH VERBINDEN
# Um die eigene momentan genutzte IPv4, welche vom Provider kommt, zu erfahren
# wenden wir folgenden Befehl an:

curl ipv4.icanhazip.com

# ODER

curl ifconfig.me

# Diese IPv4 nimmt man dann. DIE IP HIER IST NUR EIN BEISPIEL, BITTE DIE EIGENE EINGEBEN!

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_auth
UPDATE realmlist SET address = '66.24.137.208' WHERE id = 1;
exit;

<Enter drücken>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# ODER FALLS MAN DDNS HAT:

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_auth
UPDATE realmlist SET address = 'dns.bobsaget.com' WHERE id = 1;
exit;

<Enter drücken>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

======================================================================

# Wenn man möchte dass sich Freunde von außen einloggen können muss man noch folgende
# Portweiterleitung in seinem Router hinterlegen:

Port: 3724
Protokoll: TCP
Name: AUTH


#und

Port: 8085
Protokoll: TCP
Name: WORLD

///////////////////////////////////////////////////////////////////////////
ÄNDERUNG DES REALMNAMENS
///////////////////////////////////////////////////////////////////////////
======================================================================

# Hier tragen wir noch den gewünschten Namen der Welt ein welcher so auch im Spieleclient als
# Realmname oder Servername auftaucht:

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_auth
UPDATE realmlist SET name = 'World of Gangstalking' WHERE id = 1;
exit;

<Enter drücken>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

///////////////////////////////////////////////////////////////////////////
SKRIPTE FÜR DEN EINFACHEN BETRIEB
///////////////////////////////////////////////////////////////////////////
# Wir bauen uns nun ein start.sh Script um dass Starten und Stoppen des Servers einfacher zu machen:

nano /root/start.sh

# Wir übernehmen alle folgenden Zeilen, kopieren diese hinüber und speichern das Script:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
authserver="~/azerothcore-wotlk/acore.sh run-authserver"
worldserver="~/azerothcore-wotlk/acore.sh run-worldserver"

authserver_session="auth-session"
worldserver_session="world-session"

if tmux new-session -d -s $authserver_session; then
echo "Created authserver session: $authserver_session"
else
echo "Error when trying to create authserver session: $authserver_session"
fi

if tmux new-session -d -s $worldserver_session; then
echo "Created worldserver session: $worldserver_session"
else
echo "Error when trying to create worldserver session: $worldserver_session"
fi

if tmux send-keys -t $authserver_session "$authserver" C-m; then
echo "Executed \"$authserver\" inside $authserver_session"
echo "You can attach to $authserver_session and check the result using \"tmux attach -t $authserver_session\""
else
echo "Error when executing \"$authserver\" inside $authserver_session"
fi

if tmux send-keys -t $worldserver_session "$worldserver" C-m; then
echo "Executed \"$worldserver\" inside $worldserver_session"
echo "You can attach to $worldserver_session and check the result using \"tmux attach -t $worldserver_session\""
else
echo "Error when executing \"$worldserver\" inside $worldserver_session"

fi
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

///////////////////////////////////////////////////////////////////////////
ALIASE ALS ABKÜRZUNGEN
///////////////////////////////////////////////////////////////////////////
# Nun erstellen wir uns für die Linux Kommandozeile "Aliase" welche und mit einfachen Verknüpfungen
# die Möglichkeit geben die Befehle des Scripts auszuführen:

nano ~/.bashrc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
alias wow='cd ~/azerothcore-wotlk;tmux attach -t world-session'
alias auth='cd ~/azerothcore-wotlk;tmux attach -t auth-session'
alias start='bash /root/start.sh'
alias stop='tmux kill-server'
alias compile='cd ~/azerothcore-wotlk;./acore.sh compiler all'
alias build='cd ~/azerothcore-wotlk;./acore.sh compiler build'
alias update='cd ~/azerothcore-wotlk;git pull;cd ~/azerothcore-wotlk/modules/mod-playerbots;git pull'
alias pb='nano ~/azerothcore-wotlk/env/dist/etc/modules/playerbots.conf'

alias world='nano ~/azerothcore-wotlk/env/dist/etc/worldserver.conf'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

source ~/.bashrc

# Jetzt können wir unseren Server mit "start" und "stop" unabhängig von unserer Position im Dateisystem
# von Linux Starten und Stoppen:

start

# und

stop

# Man kann nun auch überprüfen ob der World-Server bereits läuft und auch direkt Befehle über die
# Kommandozeile geben:

wow

# Genau dass gleiche mit dem Authentifizierungs-Server:

auth


# Anmerkung: Wenn man den "world session" screen verlassen will (Die grüne Zeile am Boden des
# Fensters), muss man CTRL+B und dann D drücken um sich von der tmux session zu lösen, dies nennt
# man auch "detatch". Wenn einem dass zu kompliziert oder zu mühsam ist reicht es auch das
# PuTTY-Fenster oder das Tabby-Tab zu schließen und ein neues aufzumachen,
# der Server läuft dabei weiter!

///////////////////////////////////////////////////////////////////////////
ACCOUNT ERSTELLUNG UND UMWANDLUNG AUF EINEN
GM-ACCOUNT FÜR DIE ADMINISTRATION

///////////////////////////////////////////////////////////////////////////
# Wir geben dafür - falls noch nicht aktiv - :

start

# und

wow

# ein und können nun im world session tmux terminal den Account anlegen <username> und <passwort>
# mit einem Namen und einen Passwort ersetzen, ohne die <>:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
account create <username> <password>
account set gmlevel <username> 3 -1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Jetzt wäre ein guter Zeitpunkt den WotLK 3.3.5a client herunterzuladen, falls noch nicht geschehen.
# Ich empfehle den Client auf eine SSD oder NVME zu entpacken. (Anm. d. Übers.:
# NICHT auf das gleich Laufwerk wie die VM mit dem Server! Ansonsten wiederspreche ich Nirv,
# eine halbwegs solide und moderne Sata-HDD sollte auch dicke reichen, es ist ja schließlich nur
# WoW Wrath of the Lichking, SSDs mit viel Platz waren zu der Zeit eher Geschäftskundenhardware.
# Eine SSD ist aber damm nützlich wenn man einfach den Geschwindigkeitsvorteil mitnehmen will,
# dies ist grade mit der Datenbank sehr hilfreich!)
# Hier nochmal der Downloadlink:
# https://www.chromiecraft.com/en/downloads/
# (Anm. d. Übers.: Deutscher Client per Torrent:
# https://www.rising-gods.de/32-startseite/212-downloads.html )

///////////////////////////////////////////////////////////////////////////
ANPASSUNG DER REALM.WTF DES 3.3.5a CLIENTS AUF DIE RICHTIGE ADRESSE ZUM SPIELEN
///////////////////////////////////////////////////////////////////////////
# Damit der Client auf den richtigen Server zugreift muss die realm.wtf im Unterverzeichnis \Data\enUS\
# des ChromieCraft_3.3.5a Ordners geändert werden.
# Zum Beispiel: C:\ChromieCraft_3.3.5a\Data\enUS\realmlist.wtf (Natürlich kann man vorher dem Ordner
# ChromieCraft_3.3.5a einen anderen Namen geben. Und falls man sich die deDE heruntergeladen hat
# löscht man den enUS Ordner und kopiert stattdessen den deDE Ordner nach DATA,
# hier dann die realmlist.wtf bearbeiten. Zudem muss noch in dem Unterordner WTF die Config.wtf
# für die deutscht Lokalisierung angepasst werden:
# SET locale "enUS" durch SET locale "deDE" ersetzen).
# Man ändert den einzigen Eintrag set realmlist logon.chromiecraft.com auf die gewünschte IPv4 oder
# domain um. (Die unter der die Linux-Maschine erreichbar ist! Entweder die lokale IPv4 oder für die
# Freunde, die von aussen sich verbinden wollen die Externe bzw die DDNS oder die Domänenadresse.)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
set realmlist logon.chromiecraft.com
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# wird zu

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
set realmlist 192.168.2.46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# oder zu

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
set realmlist 66.24.137.208
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# oder

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
set realmlist dns.bobsaget.com
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Startet dann die wow.exe und meldet euch mit den Logindaten des Accounts an den Ihr vorhin
# erstellt habe. Man sollte sich nun einen Char erstellen und mit den Bots und Freunden spielen können!

///////////////////////////////////////////////////////////////////////////
SCRIPT ZUM FIXEN DASS DIE BOTS EINLADUNGEN
DER SPIELER ABLEHNEN SOWIE
UM BOTS ZU LÖSCHEN UND DIE DATEN ZU RESETEN.
BETRIFFT NUR BOTS UND NICHT DIE SPIELER!

///////////////////////////////////////////////////////////////////////////
# Wenn man einen Bot einlädt und man statt einem Gruppenmitglied nur noch im Channel "Hello!" und
# "Goodbye!" sieht, kann das folgende Script helfen:

# Als erstes muss natürlich der Server mit "stop" angehalten sein und dann folgt:

cd ~/
wget https://abs.freemyip.com:84/api/public/dl/tMI5q0Kq?inline=true -O cleanbots-rc03.sql
mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
source ~/cleanbots-rc03.sql
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Danach muss der Server wieder gestartet werden damit repopuliert wird:

start

# Die Bots sollten sich jetzt wieder wie gewünscht verhalten.
# Video des Fehlers und wie es gefixt wurde:
# https://www.youtube.com/watch?v=x6ojQdEDDpM

///////////////////////////////////////////////////////////////////////////
5. ANPASSUNG DER KONFIGURATIONSDATEIEN
///////////////////////////////////////////////////////////////////////////

# Jetzt bearbeiten wir die config Dateien. Eine ist für den World Server und die andere ist für die Bots

======================================================================
WORLD SERVER:
======================================================================
nano ~/azerothcore-wotlk/env/dist/etc/worldserver.conf

# Der Server muss während der Bearbeitung runtergefahren sein!

stop

# Anm. d. Übers.: Ladet euch einfach WinSCP herunter und greift direkt auf die Dateien zu,
# so könnt Ihr sie auf euren Windowsrechner ziehen
# und dort gemütlich bearbeiten und auch vorher ein Backup machen.


# Hier sind meine empfohlenen Einstellungen für den World server:
# (Anm. d. Übers.: Diese Einstellungen sind nicht der Reihe nach hier aufgelistet worden, bitte
# eine Suchfunktion nutzen und jeweils direkt dorthin springen, zudem habe ich weiter unten noch weitere
# Einstellungen welche teils abweichen hinterlegt.)


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GameType = 1
Quests.IgnoreRaid = 1
MonsterSight = 20.000000
ListenRange.Say = 80
Instance.GMSummonPlayer = 1
AccountInstancesPerHour = 20
MailDeliveryDelay = 0
LeaveGroupOnLogout.Enabled = 1
StrictNames.Reserved = 0
StrictNames.Profanity = 0
MaxGroupXPDistance = 1000
InstantLogout = 0
Visibility.Distance.Continents = 120
Visibility.Distance.Instances = 200
MapUpdate.Threads = 2
Quests.EnableQuestTracker = 1
MaxPrimaryTradeSkill = 11
PlayerLimit = 0
MaxWhoListReturns = 49
PacketSpoof.Policy = 0
Warden.Enabled = 0
MaxRecruitAFriendBonusDistance = 1000
ChatFakeMessagePreventing = 1
ChatFlood.MessageCount = 0
AllowTwoSide.Accounts = 1
AllowTwoSide.Interaction.Chat = 0

PreventAFKLogout = 2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Abweichende Einstellungen des Übersetzers:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BirthdayTime = 1722267436
#Bitte eigene Unix-Zeit hinterlegen
PlayerLimit = 2000
RealmZone = 9
#für den deutschen Keyboard-Zeichensatz
DBC.Locale = 255
PacketSpoof.Policy = 1
#ist auf autodetect, kann auch auf 0 für english oder 3 für german
#(noch nicht getestet) eingestellt werden.
Warden.Enabled = 1
#Warden ausschalten falls es Probleme geben sollte.
Visibility.Distance.Continents = 333
Visibility.Distance.BGArenas = 200
vmap.BlizzlikePvPLOS = 0
vmap.enableIndoorCheck = 0
ChangeWeatherInterval = 300000
GM.AllowInvite = 1
GM.AllowFriend = 1
HeroicCharactersPerRealm = 10
CharacterCreating.MinLevelForHeroicCharacter = 0
StartPlayerMoney = 100000
StartHeroicPlayerMoney = 1000000
MinDualSpecLevel = 10
NoResetTalentsCost = 1
ToggleXP.Cost = 0
MaxPrimaryTradeSkill = 6

SkillChance.Yellow = 80
SkillChance.Green = 40
MonsterSight = 20.000000
ListenRange.Say = 40
AllowTwoSide.Interaction.Calendar = 1
AllowTwoSide.Interaction.Chat = 1
AllowTwoSide.Interaction.Emote = 1
AllowTwoSide.Interaction.Channel = 1
AllowTwoSide.Interaction.Group = 1
AllowTwoSide.Interaction.Guild = 1
AllowTwoSide.Interaction.Arena = 1
AllowTwoSide.Interaction.Auction = 1
AllowTwoSide.Interaction.Mail = 1
AllowTwoSide.WhoList = 1
AllowTwoSide.AddFriend = 1
AllowTwoSide.Trade = 1

TalentsInspecting = 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

======================================================================
PLAYERBOT CONFIG:
======================================================================
# Zuerst machen wir die conf.dist Datei in eine echte config file. Das muss nur dieses mal erledigt werden!

cp ~/azerothcore-wotlk/env/dist/etc/modules/playerbots.conf.dist ~/azerothcore-wotlk/env/dist/etc/modules/playerbots.conf

# Ab hier werden wir unten stehenden Befehl nutzen um die playerbots Konfigurationsdatei zu
# modifizieren!
# Oder wenn man die oben angegebenen Aliase einsetzt muss man nur "pb" eingeben um auf diese
# Datei Zugriff zu bekommen!
# (Anm. d. Übers.: Ich empfehle auch hier WinSCP um die Datei abzugreifen, zu sichern und
# zu bearbeiten.)

nano ~/azerothcore-wotlk/env/dist/etc/modules/playerbots.conf

# Hier sind meine Empfehlungen für die playerbots.conf:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AiPlayerbot.RandomBotAutologin = 1
AiPlayerbot.RandomBotLoginAtStartup = 0
AiPlayerbot.MinRandomBots = 400
AiPlayerbot.MaxRandomBots = 500
AiPlayerbot.RandomBotMinLevel = 1
AiPlayerbot.RandomBotMaxLevel = 80
AiPlayerbot.EnableRotation = 0
AiPlayerbot.RandomBotAccountCount = 200
#Die nächste Zeile resettet die Bot Datenbank wenn auf "1" gesetzt und die Datei gespeichert wird.
#Einfach den Server danach starten und wieder herunterfahren, dass wars. Einfach auf "0" lassen wenn
#nichts resettet werden soll.
#(Anm. d. Übers.: Nach einem Durchlauf muss wieder auf "0" gestellt werden!)
AiPlayerbot.DeleteRandomBotAccounts = 1
AiPlayerbot.RandomBotMaxLevelChance = 0
AiPlayerbot.EnableGreet = 0
AiPlayerbot.SummonWhenGroup = 0
AiPlayerbot.RandomBotShowHelmet = 0
AiPlayerbot.RandomBotShowCloak = 1
AiPlayerbot.DisableRandomLevels = 1
AiPlayerbot.RandombotStartingLevel = 1
AiPlayerbot.KillXPRate = 1
AiPlayerbot.BotActiveAlone = 100
AiPlayerbot.RandomBotGroupNearby = 1
AiPlayerbot.RandomBotSayWithoutMaster = 0
AiPlayerbot.EquipmentPersistence = 0
AiPlayerbot.EquipmentPersistenceLevel = 80
AiPlayerbot.AutoPickReward = yes
AiPlayerbot.AutoTeleportForLevel = 1
AiPlayerbot.AutoDoQuests = 1
PlayerbotsDatabase.WorkerThreads = 4
PlayerbotsDatabase.SynchThreads = 4
AiPlayerbot.MinRandomBotTeleportInterval = 93600
AiPlayerbot.MaxRandomBotTeleportInterval = 108000
AiPlayerbot.RandomBotAutoJoinBG = 1
AiPlayerbot.ProbTeleToBankers = 0.25
AiPlayerbot.AddClassCommand = 1
AiPlayerbot.BotAutologin = 0
AiPlayerbot.GroupInvitationPermission = 2
#Die folgende Einstellung ist momentan verbuggt. Wenn weniger als 1.1 hinterlegt wird werden die
#Bots ohne Inventar und Rüstung generiert. ICH HOFFE ES WIRD BALD GEFIXT.
#(Anm. d. Übers.: Noch nicht gegengetestet, daher regelmässig nach einem Update
#gegenprüfen. Aber fürs normale Spiel ist 1.1 schon in Ordnung.)
AiPlayerbot.AutoInitEquipLevelLimitRatio = 1.1
AiPlayerbot.AutoInitOnly = 0
#Zur Kontrollierbarkeit der Bots gedachte Einstellungen:
AiPlayerbot.SelfBotLevel = 2
AiPlayerbot.SyncLevelWithPlayers = 0
AiPlayerbot.ReviveBotWhenSummoned = 2
AiPlayerbot.FreeMethodLoot = 0
AiPlayerbot.FreeFood = 1
AiPlayerbot.AutoEquipUpgradeLoot = 1
AiPlayerbot.MaintenanceCommand = 1
AiPlayerbot.AutoAvoidAoe = 1
AiPlayerbot.TellWhenAvoidAoe = 1

AiPlayerbot.SummonAtInnkeepersEnabled = 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Abweichungen des Übersetzers:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AiPlayerbot.MinRandomBots = 750
AiPlayerbot.MaxRandomBots = 1000
AiPlayerbot.SummonWhenGroup = 1
AiPlayerbot.RandomBotShowHelmet = 1
AiPlayerbot.RandomBotSayWithoutMaster = 1
AiPlayerbot.RandomBotTalk = 1
AiPlayerbot.RandomBotEmote = 1
AiPlayerbot.ReviveBotWhenSummoned = 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

///////////////////////////////////////////////////////////////////////////
6. RESTLICHES UND BEDIENUNG DES SERVERS
///////////////////////////////////////////////////////////////////////////

# Eine letzte Sache um die Debian-VM von nun an im Hintergrund laufen zu lassen.
# - Öffnet den Windows Explorer
# - Navigiert zu C:\Programmdateien\Oracle\VirtualBox
# - Gebt in der Adressleiste des Datei-Explorers cmd ein und drücke die Eingabetaste.
# Angenommen, Ihr habt Eure Debian-Maschine in der VirtualBox "Azeroth" genannt, dann fügt
# hier den folgenden Befehl ein. Passt den unten angegegebenen Namen an den Namen Eurer VM an.
# Wenn Ihr nun den Debian-PC startet, wird er immer im Hintergrund laufen, also headless.
# Ihr könntet Das Programmfenster von Virtualbox sogar schließen!
# Hinweis - Debian muss heruntergefahren sein, bevor Ihr diesen Befehl ausführt. Und zwar mit:

shutdown now

# und dann in der Windows-CMD:

VBoxManage modifyvm "Azeroth" --defaultfrontend headless

///////////////////////////////////////////////////////////////////////////
KOMMANDOZEILEN SHORTCUTS
///////////////////////////////////////////////////////////////////////////
======================================================================
PuTTY:
ALT+SPACE dann D um neues SSH Fenster auf die Linux Maschine zu öffnen.
Tabby:
Einfach oben auf "+" klicken für einen neuen Tab oder "Rechtsklick - > Split" um das aktive Fenster in
2 oder 3 zu splitten.

======================================================================

# Linux Kommandozeile oder Terminal:
# startet den wow server

start

# stopt den wow server

stop

# Verbindet zur wow-server session (Um Server-Kommandos ausserhalb des Spiels zu geben)

wow

# Verbindet zur auth-server session

auth

# Update von azerothcore und der playerbot module durch github. Updates können täglich, sogar
# manchmal stündlich kommen. Bitte auch regelmässig nachprüfen ob eventuelle die
# config.dist-Dateien angefasst wurden, dann muss nämlich die jeweilige *.conf neu mit cp erstellt
# werden und die gewünschten Änderungen erneut auf die Konfigurationsdateien gelegt werden.
# Denn nur so werden einige Neuerungen auch wirklich aktiv!

update

# Baut/Erzeugt neue server Daten. Nur durchführen nach einem Update oder wenn man den
# Source Code geändert hat oder um Module hinzuzufügen.
# Anmerkung: Man kann kompilieren während der Server noch läuft. Aber für die Übernahme der
# Änderungen muss der Server gestoppt und neu gestartet werden nachdem die Kompilierung
# durchgelaufen ist.

build

# Kompiliere alles von Grund auf (Braucht länger. Ist gründlicher und eigentlich unnötig. Kann aber bei
# Problemen helfen und ist dann und wann mal einfach sauberer.)

compile

# Zugriff und Modifizierung der playerbots Konfiguration
# (Anm. d. Übers.: Besser per WinSCP erledigen)

pb

# Zugriff und Modifizierung der worldserver Konfiguration
# (Anm. d. Übers.: Besser per WinSCP erledigen)

world

///////////////////////////////////////////////////////////////////////////
KEYBOARD SHORTCUTS
///////////////////////////////////////////////////////////////////////////
# Um Prozess zu unterbrechen oder um den Eingabeprompt leer zu machen.

CTRL+C

# Um Prozess zu stoppen.

CTRL+Z

# Um in nano zu speichern.

CTRL+O

# Um in nano zu suchen.

CTRL+W

# Um Datei in nano zu schließen. j oder y um zu speichern oder n um Änderungen nicht zu speichern,
# für den Fall man hat etwas ungewolltes mit der Datei gemacht.

CTRL+X

# Um die Eingabeaufforderung in Linux aufzuräumen.

clear

///////////////////////////////////////////////////////////////////////////
UPDATES, RESETS UND AUFRÄUMEN
(ERGÄNZUNG DES ÜBERSETZERS)

///////////////////////////////////////////////////////////////////////////
======================================================================
Eine kurze Gedächnistsstütze um jeweils die Bots, die Auktionen des AH-Bots und des temporären
Build-Verzeichnisses löschen zu können wenn Probleme auftauchen:

======================================================================

======================================================================
Reset und Löschung der Playerbots
======================================================================

# Server anhalten!

stop

# Konfigdatei bearbeiten

nano ~/azerothcore-wotlk/env/dist/etc/modules/playerbots.conf

# Reset der Bots:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AiPlayerbot.DeleteRandomBotAccounts = 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Speichern und Server kurz hochfahren lassen für so 5 - 10 Sekunden:

start

# Dann wieder den Server anhalten und den Reset-Switch wieder auf aus stellen:

stop

nano ~/azerothcore-wotlk/env/dist/etc/modules/playerbots.conf

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AiPlayerbot.DeleteRandomBotAccounts = 0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Jetzt kann der Server wieder normal gestartet werden damit man sich einloggen kann.

# ACHTUNG! Wenn Playerbots zurückgesetzt und neu generiert werden ist die Accountguid nicht mehr
# gültig und muss entweder neu rausgesucht werden oder man löscht in Folge den AHBot-Account und
# legt Ihn neu an und überträgt die neue GUID und Accountnummer in die AHBot-Konfig!

=====================================================================
Zurücksetzen der AH-Bot-Auktionen
======================================================================

# Wenn man etwas am AH-Bot verstellt hat oder man einfach reinen Tisch machen will

# Server anhalten!

stop

# In die Datenbank einloggen:

mysql -u root

# Folgendes durchlaufen lassen:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
USE acore_characters
DELETE FROM auctionhouse;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Server kann nun wieder gestartet werden.


======================================================================
Sauberes Updaten und löschen der Build-Verzeichnisse
======================================================================

# Um Problemen beim Kompilieren vorzubeugen kann es notwendig sein gelegentlich die temporären
# Build-Verzeichnisse zu löschen:

rm -rf /root/azerothcore-wotlk/var/build

# Danach einen "eindeutigen" Reboot durchführen:

sudo init 6

# und nach dem Neustart mit:

sudo apt-get update && sudo apt-get upgrade

# die Systemsoftware sowie - bis auf AzerothCore - alles weitere updaten um dann mit:

update

# auch AzerothCore und die AzerothCore Bots zu updaten.

# Danach gehen wir paranoid vor und kompilieren einmal komplett mit:

compile

# Denn nur ein "build" allein würde lediglich die letzten Änderungen behandeln,
# daher kann es nicht schaden einfach die 10 - 15 Minuten Kompilierungszeit zu investieren
# um eine gründlich aufgebaute Serversoftware zu haben. Vor allem wenn man eine oft eine
# Menge Veränderungen wie z.B. mehrere Module gleichzeitig eingefügt hat oder wenn
# der git von AzerothCore bzw. die Datenbank häufig neue Updates erhalten haben.

# Wir löschen nun wieder die temporären Builddateien um hinter uns aufzuräumen:

rm -rf /root/azerothcore-wotlk/var/build

# Und ein Reboot vor dem eigentlichen Betrieb tut nun auch nicht weh und macht die
# Katze auch nicht mehr fetter als Sie schon ist:

sudo init 6

///////////////////////////////////////////////////////////////////////////
7. MODULE
///////////////////////////////////////////////////////////////////////////

======================================================================
Installation von einer Auswahl von Modulen wie zum Beispiel Account-weite Mounts
und CD-lose Ruhesteine

======================================================================

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Anm. d. Übers.: ACAR, und das Custom Flugmount bisher noch nicht getestet!
Module können eine nette Ergänzung sein aber Sie können auch Probleme bereiten!
Man muss zudem auch jedes mal nachprüfen ob beim Modul auch ein SQL-Ordner dabei ist,
dieser muss natürlich auch wieder in MySQL eingebunden werden, man kann sich z.B. am
MOD-NPC-ENCHANTER ein Beispiel von den Installationsschritten her nehmen, man muss dann
natürlich nur die korrekten MOD-Pfade angeben und die richtigen Github-Adresse anwählen.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

======================================================================
Liste der Azerothcore Module:
https://www.azerothcore.org/catalogue.html#/
======================================================================

======================================================================
INSTALLATION DES CD-LOSEN RUHESTEINS:
======================================================================
======================================================================
Sorgt dafür dass der Ruhestein keinen CD hat.

Modul: mod-no-hearthstone-cooldown

https://www.azerothcore.org/catalogue.html#/details/413896014
======================================================================

# Drückt "View on Github" auf der rechten Hälfte der Seite.
# Drückt den grünen "Code" Button und kopiert dann die URL in den Zwischenspeicher.
# Loggt in Linux mit PuTTY (oder Tabby) ein.
# Kopiert und fügt das folgende Kommando ein um ins richtige Verzeichnis zu kommen:

cd ~/azerothcore-wotlk/modules/

# Benutzt den gitclone link welchen Ihr kopiert habt nachdem Ihr "git clone" eingegegben habt, also
# wie im Beispiel:

git clone https://github.com/BytesGalore/mod-no-hearthstone-cooldown.git

# Rekompiliert den Server mit Eingabe der folgenden Kommandos:

cd ~/azerothcore-wotlk
./acore.sh compiler build

# Anmerkung: Falls dies nicht funktioniert gebt einfach das Kommando "compile" in Linux ein.
# Wenn Ihr meinem Guide aufmerksam gefolgt sein wurde "compile" als Alias zur Rekompilierung des
# ganzen AzerothCore Servers gesetzt, dass dauert zwar länger, führt aber auch zum Ziel.

# Anpassung der Konfiguration
# Zuerst kopiert die conf.dist in eine neue Datei:

cp ~/azerothcore-wotlk/env/dist/etc/modules/mod_no_hearthstone_cooldown.conf.dist ~/azerothcore-wotlk/env/dist/etc/modules/mod_no_hearthstone_cooldown.conf

# Editiert, falls gewünscht, die Datei mit:

nano ~/azerothcore-wotlk/env/dist/etc/modules/mod_no_hearthstone_cooldown.conf

# Wenn dies fertig ist muss man crtl+o nutzen um zu speichern und ctrl+x um die Datei zu schließen,
# danach muss der Server für die Änderungen neu gestartet werden.

stop
start

======================================================================
ACCOUNTWEITE MOUNTS:
======================================================================
======================================================================
Dieses Modul sorgt dafür dass, wie man es von späteren Versionen von WoW gewohnt ist,
Mounts accountübergreifend nutzbar sind.
Wenn man möchte kann man sogar das ganze fraktionsübergreifend anwenden, es kann allerdings z.B.
beim Tundramammut des Reisenden dazu kommen dass die NPC-Begleiter von der anderen Fraktion
und nutzlos sind.

Modul: mod-account-mounts

https://www.azerothcore.org/catalogue.html#/details/291842397
======================================================================

# Wir gehen wieder ins richtige Verzeichnis und holen uns das Modul bei GitHub ab

cd ~/azerothcore-wotlk/modules/
git clone https://github.com/azerothcore/mod-account-mounts

# Wenn man die Mounts auch fraktionsübergreifend haben will muss die Variable

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
limitrace = false
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# geändert werden.

nano ~/azerothcore-wotlk/modules/mod-account-mounts/src/mod_account_mount.cpp

# (Anm. d. Übers.: Hier folgten keine weiteren Punkte zu, also nachsehen was drin steht,
# was nach belieben geändert werden kann und ansonsten limitrace nach Bedarf einstellen.)

cd ~/azerothcore-wotlk/
./acore.sh compiler build
cp ~/azerothcore-wotlk/env/dist/etc/modules/mod_account_mount.conf.dist ~/azerothcore-wotlk/env/dist/etc/modules/mod_account_mount.conf

# Falls notwendig und gewünscht die Konfigdatei anpassen. (Mit WinSCP)

nano ~/azerothcore-wotlk/env/dist/etc/modules/mod_account_mount.conf

# Server neu starten um die Änderungen wirksam zu machen!

stop
start

======================================================================
INSTALLATION DES ARAC-Moduls - "All Races All Classes".
ERLAUBT JEDE RASSEN-KLASSEN-KOMBI!
(Menschendruide, Untotenjäger, Gnomenschamanen und Taurenpaladine.):

======================================================================
======================================================================
Wie der Name schon sagt: Jede Klasse in Kombination mit Jeder Rasse. Erstellt Euch noch heute einen
Gnomen-Druiden oder Untoten-Schamanen!
Der Autor weis nicht wie man diese Installation rückgängig machen kann, also wenn etwas schiefgeht
muss der komplette Server von Grund auf neu inststalliert und eingerichtet werden.
(Anm. d. Übers.: Er hat aber ein komplettes Video zum Thema gemacht, ich empfehle da
mal rein zu sehen, Links sind am Ende des Dokuments.)

Modul: mod-arac

https://www.azerothcore.org/catalogue.html#/details/236337938
======================================================================

# Sicherstellen dass man im richtigen Verzeichnis ist und dann arac über Github klonen sowie
# notwendige Dateien in das Serververzeichnis kopieren:

cd ~/azerothcore-wotlk/modules
git clone [URL]https://github.com/heyitsbench/mod-arac.git[/URL]
cp ~/azerothcore-wotlk/modules/mod-arac/patch-contents/DBFilesContent/* ~/azerothcore-wotlk/env/dist/bin/dbc

# Hinzufügen des Moduls in die Datenbank

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_world
source ~/azerothcore-wotlk/modules/mod-arac/data/sql/db-world/arac.sql;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Nun noch kompilieren!

cd ~/azerothcore-wotlk/
./acore.sh compiler build

# Server neu starten um die Änderungen wirksam zu machen!

stop
start

# Jetzt noch diese Patchdatei in das data-Verzeichnis des wow 3.3.5a Ordners unter Windows
# hineinkopieren damit die Änderungen auch Clientseitig beim Spieler funktionieren:

https://github.com/heyitsbench/mod-arac/raw/master/Patch-A.MPQ

======================================================================
INSTALLATION DES AUCTION HOUSE BOT MODULS (AHBOT):
======================================================================
======================================================================
Dieses Modul sorgt dafür dass ein laufendes und gut bestücktes Auktionshaus simuliert wird.

Modul: mod-ah-bot

https://www.azerothcore.org/catalogue.html#/details/138432861
======================================================================

# Ab hier ist es sinnvoll HeidiSQL für Windows zu installieren: https://www.heidisql.com/download.php
# Wenn man HeidiSQL nicht komplett installieren will kann man auch die Portable 64-Bit Version
# herunterladen und nutzen

# Wir loggen uns in unseren Server mit PuTTY (oder Tabby) ein und klonen das ah-bot repository:

cd ~/azerothcore-wotlk/modules
git clone https://github.com/azerothcore/mod-ah-bot.git

# Wir importieren die SQL-Datei des Moduls in unsere Datenbank:

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_world
source ~/azerothcore-wotlk/modules/mod-ah-bot/sql/world/mod_auctionhousebot.sql;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Wir müssen nun ein neuen SQL-User erstellen, damit wir mit HeidiSQL auf unsere Datenbank zugreifen
# können. Dieser wird nur für HeidiSQL-Verbindungen verwendet.

mysql -u root

# Ihr müsst die beiden "nirvs" unten ändern, diese müssen dann auch identisch sein. Ändert auch das unten
# stehende "Password". Dies wird dann in HeidiSQL unter Windows genutzt um sich in die Datenbank des
# Servers einzuloggen.
# Für die meisten Leute ist es einfacher, die Datenbank auf diese Weise zu ändern.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CREATE USER IF NOT EXISTS 'nirv'@'%' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'nirv'@'%' WITH GRANT OPTION;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Jetzt kompilieren wir wieder!

cd ~/azerothcore-wotlk/
./acore.sh compiler build

# Jetzt müsst Ihr einen Account auf euren Gameserver erstellen und dann einen Charakter der die
# Auktionen einstellt.
# Wir starten den Server und wechseln in das world-Fenster (Platzhalter durch eigene Daten ersetzen):

start
wow

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
account create <username> <password>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Loggt euch in dieses Konto im Spiel ein und erstellt den Ahbot-Charakter. Dies wird der Name des
# Verkäufers sein, den man in den Auktionen im Spiel sehen wird.
# Man kann natürlich jeden Namen nehmen den man will, sofern nicht durch Regeln blockiert. Dieser
# Charakter ist ausschließlich für das AH bestimmt - loggt euch danach nicht mehr auf diesen
# Account ein! Die Addons, welche im Spieleclient liegen, spielen übrigens keine Rolle.
# Nach dem das erledigt ist Ausloggen nicht vergessen.

# Wir müssen uns nun mit HeidiSQL in unsere Datenbank einloggen, um das Konto und die GUID des
# neu erstellten Charakters zu identifizieren, damit wir diese in die Konfigurationsdatei von ahbot
# eingeben können.
# Verwendet das Datenbankkonto, das wir vor 3 Schritten erstellt haben, für das Feld login/password
# in HeidiSQL. Wenn Ihr die IP-Adresse Ihres Linux-Servers vergessen haben solltet gebt einfach "ip a"
# in der Linux-Kommandozeile ein um die IP zu erhalten. Dies ist diejenige, die wir auch in HeidiSQL
# eingeben werden.
# Wir klicken, wenn wir unser "Table" auswählen, auch nochmal weiter links auf "Data" um die
# Dateneinträge wie bei Excel auch wirklich sehen zu können!
# acore_auth -> account -> liefert die Konto-ID des neuen Kontos: (Beispiel 202)
# acore_characters -> characters -> liefert die GUID (Beispiel 2002)

# Wir müssen nun die ahbot Konfigurationsdatei kopieren und editieren:

cp ~/azerothcore-wotlk/env/dist/etc/modules/mod_ahbot.conf.dist ~/azerothcore-wotlk/env/dist/etc/modules/mod_ahbot.conf

# Verwendet diese Zeile von nun an um die Einstellungen dieses Moduls anzupassen! Ihr MÜSST diese
# Datei bearbeiten, weil darin alles standardmäßig deaktiviert ist!!!
# (Anm. d. Übers.: Hier kann man wieder WinSCP anwenden um etwas bequemer,
# übersichtlicher und sicherer die Datei zu bearbeiten und um ein Backup anzulegen)

nano ~/azerothcore-wotlk/env/dist/etc/modules/mod_ahbot.conf

# Die Einstellungen, die ich verwende.
# Vergewissert euch, dass die Account-Nummer des AH-Bots und die GUID des Charakters unten
# bei "AuctionHouseBot.Account =" und "AuctionHouseBot.GUID =" hinterlegt sind, in den Variablen
# unten sind nur Beispielszahlen bei den grade genannten hinterlegt!
# (Anm. d. Übers.: Der Rest kann so übernommen werden, ansonsten hat der Autor unten
# auch ein Video zu dem Thema verlinkt.)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

AuctionHouseBot.EnableSeller = 1
AuctionHouseBot.EnableBuyer = 1
AuctionHouseBot.Account = 202
AuctionHouseBot.GUID = 2002
AuctionHouseBot.ItemsPerCycle = 1200

AuctionHouseBot.VendorTradeGoods = 1
AuctionHouseBot.OtherTradeGoods = 1


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Es muss noch die totale Anzahl an aktiven Auktionen angepasst werden. Ich bin momentan bei 25.000!

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
UPDATE acore_world.mod_auctionhousebot SET maxitems = 25000, minitems = 25000 WHERE auctionhouse = 2 OR auctionhouse = 6 OR auctionhouse = 7;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Alle Auktionshäuser fraktionsübergreifend verlinken [Optional, aber bei kleinen Spielerzahlen oder
# Solisten empfohlen]

nano ~/azerothcore-wotlk/env/dist/etc/worldserver.conf

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AllowTwoSide.Interaction.Auction = 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Server neu starten um die Änderungen wirksam zu machen!

stop
start

# Falls man das Auktionshaus zurücksetzen will für einen Refresh oder um das Modul zu deinstallieren:

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
USE acore_characters
DELETE FROM auctionhouse;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# ACHTUNG! Wenn Playerbots zurückgesetzt und neu generiert werden ist die Accountguid nicht mehr
# gültig und muss entweder neu rausgesucht werden oder man löscht in Folge den AHBot-Account und
# legt Ihn neu an und überträgt die neue GUID und Accountnummer in die AHBot-Konfig!

======================================================================
EIN CUSTOM FLUGMOUNT DAS ÜBERALL FLIEGEN KANN:
======================================================================
======================================================================
Wie der Titel schon sagt: Ein eigenes Custommount mit dem auch in der alten Welt geflogen werden kann.
Kein Modul, sondern ein Datenbankeintrag!

======================================================================

# Zuerst muss der Server gestoppt werden falls er aktiv ist

stop

# Wir bearbeiten die Datenbank um uns ein Flugmount zu erstellen

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_world
DELETE FROM item_template WHERE entry=701000;
INSERT INTO item_template (entry, class, subclass, SoundOverrideSubclass, name, displayid, Quality, Flags, FlagsExtra, BuyCount, BuyPrice, SellPrice, InventoryType, AllowableClass, AllowableRace, ItemLevel, RequiredLevel, RequiredSkill, RequiredSkillRank, requiredspell, requiredhonorrank, RequiredCityRank, RequiredReputationFaction, RequiredReputationRank, maxcount, stackable, ContainerSlots, StatsCount, stat_type1, stat_value1, stat_type2, stat_value2, stat_type3, stat_value3, stat_type4, stat_value4, stat_type5, stat_value5, stat_type6, stat_value6, stat_type7, stat_value7, stat_type8, stat_value8, stat_type9, stat_value9, stat_type10, stat_value10, ScalingStatDistribution, ScalingStatValue, dmg_min1, dmg_max1, dmg_type1, dmg_min2, dmg_max2, dmg_type2, armor, holy_res, fire_res, nature_res, frost_res, shadow_res, arcane_res, delay, ammo_type, RangedModRange, spellid_1, spelltrigger_1, spellcharges_1, spellppmRate_1, spellcooldown_1, spellcategory_1, spellcategorycooldown_1, spellid_2, spelltrigger_2, spellcharges_2, spellppmRate_2, spellcooldown_2, spellcategory_2, spellcategorycooldown_2, spellid_3, spelltrigger_3, spellcharges_3, spellppmRate_3, spellcooldown_3, spellcategory_3, spellcategorycooldown_3, spellid_4, spelltrigger_4, spellcharges_4, spellppmRate_4, spellcooldown_4, spellcategory_4, spellcategorycooldown_4, spellid_5, spelltrigger_5, spellcharges_5, spellppmRate_5, spellcooldown_5, spellcategory_5, spellcategorycooldown_5, bonding, description, PageText, LanguageID, PageMaterial, startquest, lockid, Material, sheath, RandomProperty, RandomSuffix, block, itemset, MaxDurability, area, Map, BagFamily, TotemCategory, socketColor_1, socketContent_1, socketColor_2, socketContent_2, socketColor_3, socketContent_3, socketBonus, GemProperties, RequiredDisenchantSkill, ArmorDamageModifier, duration, ItemLimitCategory, HolidayId, ScriptName, DisenchantID, FoodType, minMoneyLoot, maxMoneyLoot, flagsCustom, VerifiedBuild) VALUES (701000, 9, 0, -1, 'Tome of World Flying', 61330, 7, 134217792, 0, 1, 4500000, 4500000, 0, -1, -1, 80, 45, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 0, 483, 0, -1, 0, -1, 0, -1, 31700, 6, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 'Learn to fly everywhere', 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, 1);

exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Wir fahren den Server wieder hoch und gehen ingame

start

# Wir müssen als GM eingelogged sein und uns selbst oder eine andere Zielperson anwählen und mit
# diesem Kommando das Mount übergeben:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.additem 701000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Das Mount muss natürlich erlernt werden und sollte nun im Mountkatalog des Charakters auftauchen
# welcher mit Shift+P aufrufbar ist.

======================================================================
VERZAUBERUNGS-NPC DER SEINE DIENSTE ANBIETET:
======================================================================
======================================================================
Dieses Modul erzeugt einen NPC der einem alles verzaubert was man haben will, dies spart dass man sich
den Beruf selbst leveln muss.

Modul: mod-npc-enchanter

https://www.azerothcore.org/catalogue.html#/details/123951640
======================================================================

# Wir sorgen dafür dass wir im richtigen Verzeichnis sind und klonen und wieder das Modul von Github:

cd ~/azerothcore-wotlk/modules/
git clone https://github.com/azerothcore/mod-npc-enchanter.git

# Die Datenbank muss wieder bearbeitet werden:

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_world
source ~/azerothcore-wotlk/modules/mod-npc-enchanter/data/sql/db-world/npc_enchanter.sql;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Wir rekompilieren den Server mit Eingabe der folgenden Kommandos:

cd ~/azerothcore-wotlk
./acore.sh compiler build

# Die Konfigurationsdatei muss noch wie immer durch kopieren bereit gemacht werden:

cp ~/azerothcore-wotlk/env/dist/etc/modules/npc_enchanter.conf.dist ~/azerothcore-wotlk/env/dist/etc/modules/npc_enchanter.conf

# Editiert, falls gewünscht, die Datei entweder mit WinSCP oder über die Konsole mit:

nano ~/azerothcore-wotlk/env/dist/etc/modules/npc_enchanter.conf

# Wenn dies fertig ist muss man crtl+o nutzen um zu speichern und ctrl+x um die Datei zu schließen,
# danach muss der Server für die Änderungen neu gestartet werden.

stop
start

# Der NPC wird ingame von einem GM beschworen mit:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.npc add 601015
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Der NPC bleibt dann auch an dieser Position in der Spielewelt stehen, selbst nach Serverneustart,
# er kann auch mehrfach beschworen werden. Gelöscht wird er mit folgendem Kommando:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.npc delete 601015
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

======================================================================
LOOT MIT RANDOM VERZAUBERUNGEN:
======================================================================
======================================================================
Dieses Modul sorgt für einen gewissen Funfaktor indem alles Loot dass droppen kann zusätzlich noch
zufällig ausgewürfelte Extra-Werte dazubekommt:

Modul: mod-random-enchants

https://www.azerothcore.org/catalogue.html#/details/76854848
======================================================================

# Wie bisher müssen wir im richtigen Verzeichnis sein und klonen uns das Modul von Github:

cd ~/azerothcore-wotlk/modules/
git clone https://github.com/azerothcore/mod-random-enchants.git

# Die SQL-DB muss wieder mit den Änderungen versehen werden:

mysql -u root

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
use acore_world
source ~/azerothcore-wotlk/modules/mod-random-enchants/data/sql/db-world/item_enchatment_random_tiers.sql;
exit;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

systemctl restart mysql.service

# Und wieder rekompilieren wir den Server nach dem wir ein Verzeichnis tiefer gegangen sind:

cd ~/azerothcore-wotlk
./acore.sh compiler build

# Nicht vergessen das die Konfigurationsdatei durch kopieren bereit gemacht werden muss:

cp ~/azerothcore-wotlk/env/dist/etc/modules/random_enchants.conf.dist ~/azerothcore-wotlk/env/dist/etc/modules/random_enchants.conf

# Hier muss die Datei definitiv vorbereitet werden. Entweder mit WinSCP oder über die Konsole mit:

nano ~/azerothcore-wotlk/env/dist/etc/modules/random_enchants.conf

# Danach crtl+o nutzen um zu speichern und ctrl+x um die Datei zu schließen und Serverneustart damit
# alles übernommen wird.

stop
start

///////////////////////////////////////////////////////////////////////////
8. GEDANKEN UND ABSCHLIESSENDE WORTE DES AUTORS
///////////////////////////////////////////////////////////////////////////

Einige wissenswerte Hinweise. Diese habe ich aus eigener Erfahrung oder aus Gesprächen
mit den Entwicklern auf Discord erfahren:

Playerbots ignorieren PvE-Regeln, also ist es im Moment am einfachsten, sich an einen
PvP-Server zu halten. (Die Bots könnten Euch sonst angreifen, aber Ihr könnt nicht
zurückschlagen. Wechsel also zu
einem PvP-Server (GameType = 1) in der worldserver.conf)

"Du musst dich nicht mit CPU-Threads herumschlagen, außer mit mapupdate" --Revision


Das Bot-Limit scheint aus unbekannten Gründen zu variieren. Manche Leute haben Probleme mit
500 Bots, andere können anscheinend mit 4000 umgehen. Ich persönlich gehe nicht über 1200 Bots
hinaus, sonst bekomme ich Probleme.

Performance-Verbesserungen (der Entwickler) ändern sich ständig (Anm. d. Übers.:
Er will damit sagen dass es durchaus zu Schwankungen kommen kann).

Die Entwickler von Azerothcore haben angekündigt, dass sie irgendwann in der Zukunft die
Unterstützung von Mariadb einstellen werden, daher empfehle ich, die mysql-Installation mit
Azerothcore zu verwenden. (Anm. d. Übers. Werde hier den Übertrag auf MYSQL reindokumentieren.)

======================================================================
PuTTY Einstellungen des Autors
======================================================================
PuTTY settings:
Columns: 120
Rows: 35
Lines of scrollback: 2000
Font: Courier New, 26-point
Behavior: System menu appears on alt-space

///////////////////////////////////////////////////////////////////////////
9. ABWEICHUNGEN DES ÜBERSETZERS
///////////////////////////////////////////////////////////////////////////

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ABWEICHUNGEN DES ÜBERSETZERS VOM ORIGINALTEXT UM UMWEGE UND ANPASSUNGEN
DER EIGENEN LINUXINSTALLATION ZU DOKUMENTIEREN
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Ich habe das Dokument hier, während ich meinen eigenen Server erstellt hatte, nebenher
übersetzt, zum einen um die Schritte besser nachvollziehen zu können aber auch um den Guide
anderen zugänglicher zu machen.

Natürlich habe ich für die größeren Textblöcke und Einlassungen des Originalautors deepl genutzt,
leider hat dass zu einer nicht ganz flüssigen Grammatik und eher durchwachsenen Textqualität geführt
und musste von mir nachbearbeitet werden, also konnte ich nicht ganz die gewünschte Nähe an den Originaltext einhalten wie ich es mir eigentlich gewünscht hatte. Sachlich und technisch ist aber
soweit dennoch alles eigentlich richtig und lauffähig!

Der Originalautor updatet selbst dann und wann den Originalguide, nicht zuletzt um Fehler
aus seinen Videos auszugleichen. Ich empfehle darum auch immer dort ein Auge darauf zu haben
wenn man den eigenen Server dauerhaft nutzen will.

Auch ich werde hier immer mal wieder ein Update machen, sei es um die Formatierung lesbarer zu
machen, sei es um Ergänzungen durchzuführen oder Spezialfälle abzuhandeln.

Ich hoffe hiermit einigen geholfen zu haben!

-- GenericJohnDoe

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
FIREWALL
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
# Abweichend zum Originaltext empfehle ich DRINGEND eine Firewall mit zu installieren, vor allem wenn
# man mit dem Server online geht:
# Wir installieren 'ufw' und aktivieren diese. Es folgen Regeln für den auth-server, den world-server, für SQL
# um mit HeidiSQL zugreifen zu können und natürlich noch SSH plus XRDP für den Fernzugriff über Bash und
# auf den Desktop:

ufw enable
ufw allow 3724/tcp
ufw allow 8085/tcp
ufw allow 3306/tcp
ufw allow 22/tcp
ufw allow 49974/tcp
ufw reload

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GRAFISCHER FERNWARTUNGSZUGRIFF
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
# Auch abweichend zur Originalanleitung wollte ich die Möglichkeit haben eine grafische
# Remotedesktopverbindung von Windows auf den XFCE-Desktop des Servers zu bekommen,
# dies war wichtig für die Eingabe des WLAN-Keys und die Einrichtung einer festen IP auf dem
# Adapter welcher weiter unten installiert wurde:

# Wir installieren zunächst die notwendige Software:

apt install -y xfce4 xfce4-goodies
apt update
apt install xrdp

# Danach starten wir den Dienst und konfigurieren ihn:

systemctl start xrdp
systemctl enable xrdp
nano /etc/xrdp/startwm.sh

# Hier dann folgenden Zeilen mit "#" auskommentieren und einen Startbefehl anhägen (wird eigentlich
# weiter oben mit "systemctl enable xrdp" erledigt, aber doppelt hält besser):

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Wird dann zu:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
startxfce4
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


# Wir machen nun noch eine Anpassung des Ports um etwas besser gegen Brute-Force-Angriffe gefeit zu
# sein, dies ist zwar keine wirklich starke Sicherheit aber besser als nichts:
# Wir suchen unter [Globals] den Port und ändern diesen auf z.B. 49974

nano /etc/xrdp/xrdp.ini

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
port=49974
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Wir starten einmal den Service neu:

systemctl restart xrdp

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ROOTRECHTE AUF EIGENEN USER (OPTIONAL)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
# Falls man will dass der user "user" selbst su-Rechte hat und nicht immer sudo eingeben muss
# ("user" durch den eigenen Usernamen ersetzen):

su -
usermod -aG sudo "user"

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
WLAN STATT LAN, SPEZIALFALL FÜR TP-Link Archer T6E AC1300
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
# Im dedizierten Rechner soll eine WLAN-Karte genutzt werden, allerdings wurde diese nicht erkannt,
# daher musste folgender Guide genutzt werden:
#https://wiki.debian.org/wl und https://askubuntu.com/questions/55868/installing-broadcom-wireless-drivers

======================================================================

# Nach einem check mit

lspci -nn -d 14e4:

# kam heraus dass es sich um einen

"Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)"

# handelt welcher folgenden weiter dokumentierten Weg erforderte.

======================================================================

# Falls man grade nicht root ist wieder hiermit einloggen:

su -

======================================================================

# Änderungen an sources.list durchführen:

nano /etc/apt/sources.list

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
deb http://deb.debian.org/debian bookworm main contrib non-free-firmware non-free
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# Die Liste der verfügbaren Pakete muss aktualisiert werden, dann die relevanten/aktuellen Pakete
# linux-image, linux-headers und broadcom-sta-dkms installiert werden.
# Dadurch wird auch das empfohlene Paket wireless-tools installiert. DKMS wird das wl-Modul für das
# System erstellen:

apt-get update
apt-get install linux-image-$(uname -r|sed 's,[^-][I]-[^-][/I]-,,') linux-headers-$(uname -r|sed 's,[^-][I]-[^-][/I]-,,') broadcom-sta-dkms

======================================================================

# (Optional) Überprüfe alle erstellten DKMS-Kernelmodule. In der Liste sollte „wl.ko“ enthalten sein:

find /lib/modules/$(uname -r)/updates

======================================================================

# Module welche Konflikte verursachen würden wieder herausnehmen:

modprobe -r b44 b43 b43legacy ssb brcmsmac bcma

======================================================================

# WL modul laden (Anmerkung: Denke dies ist der WLAN-Manager):

modprobe wl

======================================================================

# Fix falls WLAN nach Neustart nicht gehen sollte:

nano /etc/rc.local

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/bin/bash
modprobe -r b44 b43 b43leacy ssb brcmsmac bcma
modprobe -rf wl

modprobe -vv wl
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

======================================================================

# NetworkManager einstellen damit /etc/network/interfaces ausgelesen und genutzt wird:

nano /etc/NetworkManager/NetworkManager.conf

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[ifupdown]
managed=true

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

service NetworkManager restart

======================================================================

# Natürlich dann noch wie weiter unten angegeben /etc/network/interfaces anpassen, z.B. wie im
# folgenden Beispiel:
# (Beispiel: Statische WLAN-Verbindung in /etc/network/interfaces mit der IP 192.168.2.46,
# Gateway 192.168.2.1)

nano /etc/network/interfaces

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Das WLAN-Interface
#allow-hotplug wlp5s0
#iface wlp5s0 inet dhcp
auto wlp5s0
iface wlp5s0 inet static
address 192.168.2.46
netmask 255.255.255.0
gateway 192.168.2.1
dns-domain azeroth.core

dns-nameservers 192.168.2.1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

service NetworkManager restart

======================================================================

# Falls dass nicht funktionieren soll, will sagen die Werte werden nicht geschluckt muss man sich via
# XRDP-Session auf den grafischen XFCE-Desktop von Debian einloggen oder einen Monitor an die
# Maschine anschließen um dort über den XFCE-Desktop direkt auf der WLAN-Verbindung die Werte
# fest einzutragen. Die Einrichtung wird weiter unten beschrieben.

///////////////////////////////////////////////////////////////////////////
10. LINKS
///////////////////////////////////////////////////////////////////////////

Links zu den Videos, dieser Guide ist für das erste, die weiteren Videos erklären auf englisch tiefergehend
alles weitere:

How to run your own WotLK AzerothCore with Playerbots server using Linux (2024):
https://www.youtube.com/watch?v=DwJ6OfPophw

Azerothcore WotLK server part 2 Controlling your Playerbots:
https://www.youtube.com/watch?v=ZGn5BxQeZSw

Azerothcore WotLK server part 3 Installing modules like account-wide mounts and no hearth CD!:
https://www.youtube.com/watch?v=DnHGuZlmdsM

Azerothcore WotLK server part 4 Installing ARAC module - All Races All Classes! Undead Hunters!:
https://www.youtube.com/watch?v=JjQ-tnk3C2o

Azerothcore WotLK server part 5 Auction House Bot module!:
https://www.youtube.com/watch?v=ZSbvbFAcqzI

Azerothcore WotLK server part 6 Create your own flying mount that works everywhere!:
https://www.youtube.com/watch?v=OYzeKXjhcmA

Anm. d. Übers.: In diesem Video geht es um weitere Module und es werden auch einige Server
vorgestellt um die Einflussmöglichkeit zu verdeutlichen:

Make your own World of Warcraft Classic+?:
https://www.youtube.com/watch?v=Znv4KTYolcw


Dieser Installationsguide (auf englisch):
https://abs.freemyip.com:84/api/public/dl/ShUDo8u5?inline=true

Der modifizierte fork von Azerothcore den wir nutzen:
https://github.com/liyunfan1223/azerothcore-wotlk

Das Playerbots Modul das wir nutzen:
https://github.com/liyunfan1223/mod-playerbots

WoW addons für den 3.3.5a WotLK client:
https://felbite.com/chromiecraft-addons/

Anm. d. Übers. Alternative Quelle:
https://addons.rising-gods.de/addons


Azerothcore GM Kommandos:
https://www.azerothcore.org/wiki/gm-commands
 
Zuletzt bearbeitet: (Details zusammengefasst, Fehler korrigiert.)
  • Gefällt mir
Reaktionen: Capet, Sauvignon Blanc, Fersy und 2 andere
Jossy82 schrieb:
Es wurde und wird nichts raubkopiert
Betrifft das auch alle Grafiken, Sounds usw. die lizenzgeschützt sind?
 
Hier dürfte gleich zu sein, den letztlich wird unter Umständen halt doch Urheberrecht verletzt.
 
coole sache, läuft sowas auch auf nem raspberry pi4? :D
 
Zum Urheberrecht: Bei Freeshard/Privatservern nutzt man den offiziellen Client des Anbieters und der Star Wars Galaxies Freeshard SWGEMU verlangt sogar, dass man die Spiel-Discs besitzt - bei anderen Spielen wird der Client gratis verteilt, da kann man das also auch schlecht als „Raubkopie“ bezeichnen.
Man verstößt mit der Nutzung des Clients höchstens (dh ziemlich sicher^^) gegen die Lizenzbedingungen des Spiels - aber das kann einem egal sein, das ist strafrechtlich unbedenklich und kann höchstens mit Verbannung von den offiziellen Servern geahndet werden, was hier ja egal ist.
 
Naja, unter anderem gehen die Server offline weil Blizzard dagegen vorgegangen ist. Weiß nicht ob das so legitim ist, aber gerade vor dem launch von WOW classic ist das doch durch die presse gegangen.
Hab auch server files vom lichking server hier, weils auch mit unter die einzigen Versionen sind die noch vernünftig laufen.
Aber lange haben wir das nicht gespielt. Ist halt leider zumindest bei uns so das eben genau der part fehlt der eigentlich spaß gebracht hat, die anderen Spieler.
 
  • Gefällt mir
Reaktionen: Xero261286
Kasjo schrieb:
die anderen Spieler.
Ich habe evht mal versucht WoW zu spielen (als ich noch viel mehr Zeut hatte). Aber so richtig warm wurde ich nie damit. Wahrscheinlich deswegen. Hatte keine Mitspieler.
 
Kasjo schrieb:
unter anderem gehen die Server offline weil Blizzard dagegen vorgegangen ist.
Das passiert, wenn man das kommerzialisiert (Werbung und Spenden sammeln). Dafür brauchst du nämlich eine entsprechende Lizenz von Blizzard.

Wenn du den P-Server aber mit dem offiziellem, kostenlosen und nicht modifiziertem Client zusammen in einem nicht gewerblichen Rahmen verwendest (= tatsächlich privat betreibst), dann darfst du das.
 
Der Server ist KEIN Privatserverprojekt wie Nostralius, Emerald Dream, Whitemane oder Turtle WoW, es ist ein lokales Projekt dass jeder betreiben kann wie, wann oder ob er will, genauso wie man den Zugriff von extern von ein oder zwei Freunden erlauben kann oder eben lokal bleibt und nur mit Bots spielt.

Da jagt Microsoft-Activision nicht hinterher.

Der Client selbst wurde von Blizzard frei verteilt, nur die Serversoftware und Datenbanken, die ja hier nicht genutzt werden sondern von Fans nachgebaut wurden, sind kritisch. Und dass auch nur wenn man Kohle durch Vertrieb oder laufenden Kosten machen will.

Freeshards gibt es schon so lange es MMOs gibt Leute. Das Zeug und andere Projekte gibt es seit Ewigkeiten bei Github.

Die Leute von Blizzard hatten sich sogar auf Nostralius aktiv umgesehen bevor Sie mit WoW Classic losgelegt haben und es gab einen fruchtbaren ANWALTSFREIEN Wissenstransfer danach.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: iSight2TheBlind
Mal eine neue Revision reingehängt:

  • Inhaltsverzeichnis grob reingepackt und die Textblöcke etwas umgestellt.
  • Hier und da noch neue Infos mit reingenommen.
  • Fehler bei der Inbetriebnahme der Module beseitigt.
  • Tippfehler entfernt. (Nicht alle!)
 
@Jossy82
Das ist nur meine Meinung, aber du solltest für die Überschriften die

Überschriftformatierung​

verwenden, die der Editor bereitstellt. Für die Terminaleingaben solltest du die
Inline-Code-Formatierung
verwenden und für Dateiinhalte die allgemeine
Code:
Code-Formatierung.
Weiterhin solltest du die einzelnen Abschnitte in eigene Spoiler-Blöcke packen, die der Leser dann Stück für Stück aufklappt.

Aktuell ist deine Anleitung eine riesige Textwand, die man irgendwie aufbrechen muss. Man findet sich sonst darin nicht zurecht.
 
Naja, ist halt nur die Textdatei die da rein kopiert ist, am liebsten wäre es mir wenn er gar nicht noch zusätzlich mit dem HTML-Format rumhantieren würde.

Zumindest solange bis ich mit allen Testläufen durch bin und das Teil weitesgehend finalisiert ist.

Evtl. setz ich mich morgen nochmal ran und mach den Text im Spoiler lesbarer.
 
So, nun habe ich die letzten 2 Stunden damit verbracht den Text WIEDER umzuformatieren und alles fein in Spoiler zu verpacken.

Winsel
 
  • Gefällt mir
Reaktionen: Krik
Die rechtlichen Probleme mit den private Servern liegen grundsätzlich nicht bei der Nutzung eines unmodifizierten Clients, mit dem man auf einem solchen Server spielt, sondern aus den zusätzlichen Daten, die, neben dem eigentlichen Servercore, für den Betrieb des Servers notwendig sind.

Schaut man sich Installationsanleitungen älterer Servercores an, bspw. MaNGOS (welcher auch komplett open source ist), dann kommt man unweigerlich zu dem Punkt, an dem darauf hingewiesen wird, dass eine Installation des Clients existieren muss. Mittels Tools werden aus den Gamefiles des Clientes bestimmte Inhalte extrahiert und in die Installation des Servers integriert. Und genau dabei schlägt die rechtliche Problematik zu.

Zu den extrahierten Daten gehören bspw. mmaps (movment maps). Diese definieren, wo sich npcs oder monster entlang bewegen dürfen, zum Beispiel um einen Baum herum und nicht einfach immer den direkten Weg nehmen (durch den Baum hindurch). Weiterhin auch vmaps (vortex maps), über die unter anderem "line of sight" implementiert wird, damit vom core gesteuerte Gegner und auch die Spieler nicht einfach durch Wände schießen (was im frühen Entwicklungsstadium der Servercores der Fall war, da die Unterstützung von vmaps schlicht noch nicht in den cores existierte).

Diese Art der Datenextraktion findet beim AzerothCore nicht(!) statt.

Noch etwas zum Client:
Im ersten Absatz ist der Hinweis auf einen unmodifizierten Client. Eine Modifikation des Clients wäre eine Urheberrechtsverletzung. Das ist beispielsweise auch einer der Gründe dafür, weshalb das Team von TurtleWoW angefangen hat, selbst einen eigenen Client komplett neu zu entwickeln (auf UE5-Basis) -> der eingesetzte originale Blizzard-WoW-Client unterliegt, auf Grund seines Alters, vielen Einschränkungen, die sich nicht durch serverseitige Änderungen umgehen lassen, sondern Modifikationen am Blizzard-Client erforderlich gemacht hätten.
 
  • Gefällt mir
Reaktionen: iSight2TheBlind und Jossy82
Capet schrieb:
Mittels Tools werden aus den Gamefiles des Clientes bestimmte Inhalte extrahiert und in die Installation des Servers integriert. Und genau dabei schlägt die rechtliche Problematik zu.
Das ist privat kein Problem. Da kann man Daten kopieren, wie man will.
Wäre das verboten, würde es keine Mods mehr geben, da die meisten auf Game Assets zugreifen (müssen).
 
Beim rechtlichen bin ich raus: Ich weis nur dass der Client öffentlich überall erhältlich ist, ganz einfach weil Blizzard früher den Client auch so u.a. verteilt hat und dass der Server inkl. Datenbank keine Daten von Blizzard abgegriffen hat. Ansonsten gäbe es ja dann auch mehr als nur das englische Sprachpaket.

Und Blizzard war noch nie hinter Kleinstservern her, erst recht nicht wenn da keine breite Werbung plus eigener Seite mit "Spendensystem" dahinter steht sondern wirklich nur ein kleiner privater Kreis.
Das rentiert sich einfach nicht da hinter her zu sein.
Ich gehe eher sogar davon aus dass der eine oder andere Blizzard Dev sich auch mal bei den Projekten umsieht und selbst rumprobiert.

Die mmaps und vmaps, werden die nicht tatsächlich eigenständig von Dritten kompiliert und als opensource zu Verfügung gestellt? Ich meine da gab es auch sehr starke Qualitätsschwankungen, was eben ein abgreifen der "echten" Daten irgendwann in der Vergangenheit ja ausschließt...
 
Azerothcore ist echt eine super Sache. Funktioniert auch wunderbar per docker. Habe damit auch mal eine Weile rumgespielt, allerdings war mir dann wrath of the lichking ein wenig zu alt. Ich freue mich schon, wenn die mal soweit sind das Legion verfügbar ist. Da gibt es schon diese schöne Transmog Sammel UI
 
Jossy82 schrieb:
Die mmaps und vmaps, werden die nicht tatsächlich eigenständig von Dritten kompiliert und als opensource zu Verfügung gestellt? Ich meine da gab es auch sehr starke Qualitätsschwankungen, was eben ein abgreifen der "echten" Daten irgendwann in der Vergangenheit ja ausschließt...
Zumindest, was andere Servercores angeht (ich kenne davon nur MaNGOS), sind diese Daten in dem open source Projekt, eben auf Grund dieses rechtlichen Hintergrunds, nicht enthalten und müssen vom Betreiber selbst aus einer Clientinstallation extrahiert werden. Ob diese "Qualitätsschwankungen" durch Probleme bei der Extraktion entstanden oder die Nutzung dieser Daten durch den Servercore dort noch nicht gut genug implementiert waren, weiß ich nicht.

Schaut man sich eine Installationsanleitung von MaNGOS an, dann ist da immer dieser Schritt ("Extract Gamedata") mit dabei. Einfach mal nach "installing mangos server" in Google suchen. Das ist bei AzerothCore nicht der Fall, weil das Projekt diese "fehlenden" Bestandteile auch selbst entwickelt hat und über deren git-Repository bereitstellt. Aber genug OT.

Vorschlag zur Ergänzung der Anleitung:

Ich weiß nicht, ob es dazu auch schon irgendwo Tutorials gibt, aber interessant wäre auch ganz sicher, wie Updates einer Serverinstallation ausgeführt werden. Vermutlich nicht sehr schwierig, so lange sich nicht die Struktur der Datenbank ändert. Die DB will ich ja erhalten und nicht jedes Mal neu aufbauen und damit einen Reset des Servers ausführen
 
@Capet Was das Update angeht: Es wird ja extra

alias update='cd ~/azerothcore-wotlk;git pull;cd ~/azerothcore-wotlk/modules/mod-playerbots;git pull'

eingebaut, dann noch ein

alias compile='cd ~/azerothcore-wotlk;./acore.sh compiler all'

hinterher und es sollte alles durch sein, von apt update mal abgesehen...

Die Konfigurationsdateien bleiben ja eigentlich erhalten. Wenn nicht legt man die sich mit WinSCP oder einen cp auf ein Backupverzeichnis zur seite...

Das war es doch was Du meinst? Ich bin der Meinung nirv hatte dass in seinem Video auch angesprochen, evtl. ist das Übersetzung untergegangen... Es wird sogar geraten oft und regelmässig zu updaten.

Ich mach dass jetzt mal und sehe mir dass mal an, dauert wohl so 15-20 Minuten mit der Kiste bei mir.

Edit, nach dem Update:
Also update nimmt er und nach einem compile steht auch noch alles.
Was ich nicht weis ob platzierte NPCs wie der enchanter danach noch vorhanden sind, sie sollten es aber eigentlich.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Capet
ah, ok, das hatte ich übersehen
 
Zurück
Oben