Aric Boettcher
Aric Boettcher

Reputation: 11

With or without the Keira3 editor, is there a way to tie a ".levelup" command or a level-up reward to a quest?

I'm a novice and am working on learning the basics. I have no experience in coding.

I'm trying to make a world for myself and my friends that features quest rewards being the sole way to gain levels, and in full increments - exactly like milestone leveling in Dungeons and Dragons.

Is there a way to level up a character, or have an automated ".levelup" command be used on a character, triggering when that player completes a (custom) quest? Additionally, is this something that can be done in Keira3? Or will I need to use other tools?

I've tried granting quest reward consumables that use the spells 47292 and 24312 (https://wotlkdb.com/?spell=47292 and https://wotlkdb.com/?spell=24312) but those appear to just be the visual level-up effects.

Upvotes: 1

Views: 459

Answers (1)

Honey55
Honey55

Reputation: 425

There are multiple ways to achieve this. The most convenient way that I can think of, is to compile the core with the eluna module: https://github.com/azerothcore/mod-eluna It allows for scripting with the easily accessible Lua language. For example, you can use the following code:

local questId = 12345
local questNpc = 23456
local maxLevel = 80
local CREATURE_EVENT_ON_QUEST_REWARD = 34 --(event, player, creature, quest, opt) - Can return true

local function MyQuestCompleted(event, player, creature, quest, opt)
    if player then                                                -- check if the player exists
        if player:GetLevel() < maxLevel and quest = questId then  -- check if the player has completed the right quest and isn't max level
            player:SetLevel( player:GetLevel() + 1 )
        end
    end
end

RegisterCreatureEvent( questNpc , CREATURE_EVENT_ON_QUEST_REWARD , MyQuestCompleted)

See https://www.azerothcore.org/pages/eluna/index.html for the documentation.

Upvotes: 2

Related Questions