[HowTo] Eigene C++-Erweiterungen mit TrinityCore kompilieren

10/28/2010 22:24 Unbekannt<3#1
Eigene C++-Erweiterungen mit TrinityCore kompilieren

UPDATE: Tutorial für CMake angepasst.


In diesem Tutorial erfahrt ihr, wie ihr eigene C++-Erweiterungen (z.B. für Bosse, NPCs, Items etc.) mit TrinityCore kompiliert.
Dazu braucht ihr natürlich den Sourcecode von TrinityCore, VC++ zum Kompilieren und den Sourcecode eurer C++-Erweiterung. Wie ihr an den Trinity-Sourcecode kommt, möchte ich hier nicht extra erklären, dazu gibt es genügend Anleitungen.

Ich gehe davon aus, dass ihr eine Datei mit dem Namen "My_Script.cpp" im Ordner "src\server\scripts\Custom" habt. In dieser Datei (meistens ganz unten) findet ihr eine Funktion, die in etwa so aussieht:
Code:
void AddSC_test()
{
    Script *newscript;
    newscript = new Script;
    newscript->Name="test";
    newscript->GetAI = &GetAI_test;
    newscript->pGossipHello          = &GossipHello_npc_test;
    newscript->pGossipSelect         = &GossipSelect_npc_test;
    newscript->RegisterSelf();
}
Natürlich wird die Funktion in eurer Datei anders aussehen, aber hier kommt es nur auf die ungefähre Form an. Der grün markierte Teil ist besonders wichtig; Am Besten, ihr kopiert ihn in die Zwischenablage. Danach öffnet ihr die Datei "src\server\game\Scripting\ScriptLoader.cpp" und sucht dort nach "//custom". Dann solltet ihr folgende Stelle in der Datei finden:
Code:
#ifdef DO_SCRIPTS
//custom
Unterhalb von "//custom" fügt ihr dann den kopierten Teil aus eurer Datei ein (in diesem Fall also "void AddSC_test()", gefolgt von einem Semikolon. Diese Stelle der Datei sollte dann so aussehen:
Code:
#ifdef DO_SCRIPTS
//custom
void AddSC_test();
Sucht in der selben Datei weiter nach "//custom"; Folgende Stelle muss ebenfalls bearbeitet werden:
Code:
void AddScripts()
{
#ifdef DO_SCRIPTS

    //custom
Unterhalb von "//custom" fügt ihr wieder den kopierten Teil aus eurerDatei ein (gefolgt von einem Semikolon), dieses Mal allerdings ohne "void". Die Stelle sollte dann so aussehen:
Code:
void AddScripts()
{
#ifdef DO_SCRIPTS

    //custom
    AddSC_test();
Dank CMake läuft auch der nächste Schritt unter Windows und Linux gleich ab.
Ihr müsst die Datei "src\server\scripts\CMakeLists.txt" bearbeiten:
Und weiter unten:
Dadurch werden automatisch alle Dateien im Ordner "Custom" mit eingebunden. Die nicht benötigten Beispieldateien im Ordner "Custom" solltet ihr dann verschieben bzw. löschen, da sie nicht benötigt werden, veraltet sein können und dadurch Probleme verursachen.

Falls es mit dem Tutorial Probleme geben sollte oder falls irgendwas unklar ist, sagt mir einfach Bescheid.

Viel Spaß,
.S4ncheZz:rolleyes:
10/29/2010 11:51 Arras#2
Gutest TuT jedoch habe ich nicht alle verstanden^^

Ich bin jetzt and nem Punkt angelant wo CMakeLists.txt bearbeiten doch habe keine ahnung was ich da bearbeiten soll.^^

muss ich danach die Core neu kompilieren?
10/29/2010 12:34 #Minecraft#3
Damn nice!!!1
Es funktioniert <3
10/29/2010 14:45 Unbekannt<3#4
Das muss du verstehen nix neu kompilieren einfach das da Bearbeiten ;)
10/30/2010 16:49 Arras#5
"das da bearbeiten" ist gut..^^

Es gibts dort nichts zu bearbeiten was annähernd mit boss scripts zu tun hat.

(habe die Core von Oregon [2.4.3])