Post zum Player wenn Level 20

11/01/2015 05:23 Spike1977#1
WoW 4.3.4 Cata Server
Hallo.
Wie schickt man Post zum Player wenn der Player Level 20 geworden ist.
Bei Level 20 bekommt man ja Post vom Reittier Verkäufer.
Dort will ich jetzt noch mehr items ran hängen aber ich finde den Eintrag
in HeidiSQL nicht. Könnte jemand mir vielleicht weiter helfen?
11/01/2015 08:36 °"Crazy"°#2
Achievement_reward

Dort kannst du alles einstellen.
11/01/2015 12:04 Spike1977#3
Ja also wenn ich dort bei "Level 80" eine anderes item eintrage dann ist es in der Post.
Aber wenn ich noch mehr Spalten hinzufüge, also item3 item4 und da drin dann die items IDs eintrage, dann kommt keine Post mehr wenn man Level 80 wird.
Was muss man da genau tun damit es funktioniert?
11/01/2015 13:55 °"Crazy"°#4
Ne Kiste erstellen mit den Items oder ein C++-Script.
11/01/2015 19:29 Spike1977#5
Naja also da bräuchte ich Hilfe bei.
Ich habe zwar mit php html und css zu tun so das mir meine Homepage gefällt aber mit Datenbanken habe ich eigentlich noch nie wirklich was gemacht. Und c++ auch nicht. Wo müsste das c++ Script denn rein?
Könnte es vielleicht eine if abfrage sein. Oder eine funktion. Wenn ja wo und wie?
Moment mal die funktion ist ja schon vorhanden und die könnte man ja benutzen
so wie ingame via GMBefehlt (.send items Name "Hi" "Level 20!" 34822[:12] 38082[:4])
also müsste es eine if Abfrage sein. if player == 20 oder so. Aber wo und wie?
11/02/2015 07:44 Kaev <3#6
Du brauchst ein PlayerScript, bei dem die OnLevelChanged-Funktion getriggert wird.
Ich pack dir dazu gleich mal ein Beispiel in meinen Template-Post: [Only registered and activated users can see links. Click Here To Register...]
11/02/2015 18:28 Spike1977#7
Danke!
Also könnte es so aussehen. Aber wo muss das jetzt hin? In welcher Datei oder wo in HeidiSQL?
Add this to the ScriptLoader? Script Loader Datei habe ich nicht.

Quote:
class onLevelChangedTemplate : public PlayerScript
{
public:
onLevelChangedTemplate() : PlayerScript("onLevelChangedTemplate") { }
void OnLevelChanged(Player* player, uint8 oldLevel) override
{

if (oldLevel + 1 == 2)
{
player->AddItem(38082, 4); // Rucksack 22
// oder
player->send items Player.name? "Hi" "Level 2!" 34822[:2] 38082[:4];
}

if (oldLevel + 1 == 20)
{
player->AddItem(54860, 1); // X-53
}

if (oldLevel + 1 == 40)
{
player->AddItem(44234, 1); // Tundra Mammoth
}

}
};
void AddSC_onLevelChangedTemplate() // Add this to the ScriptLoader
{
new onLevelChangedTemplate();
}
11/03/2015 07:42 Kaev <3#8
Script schaut soweit erstmal richtig aus. Ich habe in meinem Thread ein Tutorial aus dem TrinityCore-Wiki verlinkt, wie du dein Script einfügen kannst.
11/03/2015 07:54 Spike1977#9
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
C:\Trinity\src\server\game\Scripting\ScriptLoader. cpp
Die links funzen nicht mehr :-)
11/03/2015 10:55 Kaev <3#10
Quote:
Originally Posted by Spike1977 View Post
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
C:\Trinity\src\server\game\Scripting\ScriptLoader. cpp
Die links funzen nicht mehr :-)
Hast du dir denn überhaupt schon den Sourcecode der Core runtergeladen?
C++-Programme müssen kompiliert werden, du kannst das Script nicht einfach in eine Datenbank o.ä. einfügen.
Wenn nicht: [Only registered and activated users can see links. Click Here To Register...]
(Ich weiß nicht, ob das Tutorial 1:1 auf 4.x übertragbar ist, da 4.x schon seit längerem nicht mehr unterstützt wird)
Falls du ein Repack benutzen solltest: Dann kannst du das leider nicht mit einem C++-Script lösen.

C:\Trinity\src\server\game\Scripting\ScriptLoader. cpp
^ Das ist natürlich der Pfad auf deinem PC, also:
Pfad-zu-Trinity\src\server\game\Scripting\ScriptLoader.cpp .

Und richtig, das Beispielscript im Repository gibt es nicht mehr.
Aber du hast ja dein Script - Statt "void AddSC_my_script();" und "AddSC_my_script();"
schreibst du "void AddSC_onLevelChangedTemplate()" und "AddSC_onLevelChangedTemplate()".
11/06/2015 19:07 Spike1977#11
Also gut ich habe das jetzt anders gelöst in dem ich einfach einen NPC erstellt habe der alles anbietet. Via Post wäre es mir lieber gewesen aber dazu dann noch VisualStudio rauf zu ziehen mag ich nicht umbeding. Ich bedanke mich für deine Mühe!