• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Change something in reset system

Bruce Leal

New Member
Joined
Nov 9, 2017
Messages
77
Reaction score
3
Hail -

It is understood that this system works as follows:
The player reaches the level to reset (minlevel = 150), and pays 10,000 more, for reset ... (priceByReset = 10000).

However ... I wish it was that way:

When reset, the player needs 3 items: 2 small stone, 2 ruby, and 2 carlin sword (are examples), and with each reset, increases the amount of these items ... The following example:

1 Reset (First reset): 2 small stone, 2 ruby, and 2 carlin sword
2 Reset: 3 small stone, 3 ruby, and 3 carlin sword
3 Reset: 4 small stone, 4 ruby, and 4 carlin sword



Code:
local config = {
   minlevel = 150, --- level inical para resetar
   price = 10000, --- preço inicial para resetar
   newlevel = 20, --- level após reset
   priceByReset = 10000, --- preço acrescentado por reset
   percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
   maxresets = 50,
   levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
--- end config

function getResets(uid)
   resets = getPlayerStorageValue(uid, 378378)
   if resets < 0 then
       resets = 0
   end
   return resets
end

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                  npcHandler:onThink()                  end

function creatureSayCallback(cid, type, msg)
   if not npcHandler:isFocused(cid) then
       return false
   end
   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

   function addReset(cid)
       if(npcHandler:isFocused(cid)) then
           npcHandler:releaseFocus(cid)
       end
      
       talkState[talkUser] = 0
       resets = getResets(cid)
       setPlayerStorageValue(cid, 378378, resets+1)
       doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
       local hp = getCreatureMaxHealth(cid)
       local resethp = hp*(config.percent/100)
       setCreatureMaxHealth(cid, resethp)
       local differencehp = (hp - resethp)
       doCreatureAddHealth(cid, -differencehp)
       local mana = getCreatureMaxMana(cid)
       local resetmana = mana*(config.percent/100)
       setCreatureMaxMana(cid, resetmana)
       local differencemana = (mana - resetmana)
       doCreatureAddMana(cid, -differencemana)
       doRemoveCreature(cid)      
       local description = resets+1
       db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
       db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
       return true
   end
  
   local newPrice = config.price + (getResets(cid) * config.priceByReset)
   local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset)

   if msgcontains(msg, 'reset') then
       if getResets(cid) < config.maxresets then
           selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid)
           talkState[talkUser] = 1
       else
           selfSay('You already reached the maximum reset level!', cid)
       end
      
   elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
       if getPlayerMoney(cid) < newPrice then
           selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
       elseif getPlayerLevel(cid) < newminlevel then
           selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
       else
           doPlayerRemoveMoney(cid,newPrice)
           playerid = getPlayerGUID(cid)
           addEvent(function()
               if isPlayer(cid) then
                   addReset(cid)
               end
           end, 3000)
           local number = getResets(cid)+1
           local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 3 seconds."
           doPlayerPopupFYI(cid, msg)
           talkState[talkUser] = 0
           npcHandler:releaseFocus(cid)
       end
       talkState[talkUser] = 0
   elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
       talkState[talkUser] = 0
       npcHandler:releaseFocus(cid)
       selfSay('Ok.', cid)
   elseif msgcontains(msg, 'quantity') then
       selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
       talkState[talkUser] = 0
   end
   return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Last edited:
Lua:
local config = {
   minlevel = 150, --- level inical para resetar
   price = 10000, --- preço inicial para resetar
   newlevel = 20, --- level após reset
   priceByReset = 10000, --- preço acrescentado por reset
   percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
   maxresets = 50,
   levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
-- You can set up different items at different resets or keep the same. incBy = how many more they will need of each item for each reset.
local resets = {
    [{0, 10}] = {items = {1111, 1111, 1111}, incBy = 1}, -- Reset 1-10 requires these 3 items and each reset they need 1x more of each
    [{11, 20}] = {items = {1111, 1111, 1111}, incBy = 2}, -- Reset 2-20 requires these 3 items and need 2x more of each per reset.
    [{21, 30}] = {items = {1111, 1111, 1111}, incBy = 3} -- and so on...
}
--- end config
function getResets(uid)
   resets = getPlayerStorageValue(uid, 378378)
   if resets < 0 then
       resets = 0
   end
   return resets
end
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                  npcHandler:onThink()                  end
function addReset(cid)
       if(npcHandler:isFocused(cid)) then
           npcHandler:releaseFocus(cid)
       end
       
       talkState[talkUser] = 0
       resets = getResets(cid)
       setPlayerStorageValue(cid, 378378, resets+1)
       doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
       local hp = getCreatureMaxHealth(cid)
       local resethp = hp*(config.percent/100)
       setCreatureMaxHealth(cid, resethp)
       local differencehp = (hp - resethp)
       doCreatureAddHealth(cid, -differencehp)
       local mana = getCreatureMaxMana(cid)
       local resetmana = mana*(config.percent/100)
       setCreatureMaxMana(cid, resetmana)
       local differencemana = (mana - resetmana)
       doCreatureAddMana(cid, -differencemana)
       doRemoveCreature(cid)     
       local description = resets+1
       db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
       db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
       return true
end
function creatureSayCallback(cid, type, msg)
   if not npcHandler:isFocused(cid) then
       return false
   end
   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
   
   local newPrice = config.price + (getResets(cid) * config.priceByReset)
   local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset)
   
    for i, v in pairs(resets) do
        if getResets(cid) >= i[1] and getResets(cid) <= i[2] then
            RESET = resets[i]
        end
    end
   
    if RESET then
        local itemAmount = RESET.incBy * getResets(cid)
    end
   
    if itemAmount ~= nil and itemAmount == 0 then
        itemAmount = 1
    end
   
    if msgcontains(msg, 'reset') then
        if getResets(cid) > config.maxresets or not RESET then
            selfSay('You already reached the maximum reset level!', cid)
        return true
        end
       
        if itemAmount == nil then
            selfSay("An error has occured please talk to the gamemaster.", cid)
        return true
        end
       
        local text = "You want to reset your character? It will cost "..newPrice.." gp's, and "..itemAmount.." "
            for i = 1, #RESET.items do
                text = text..""..getItemNameById(RESET.items[i])..", "
            end
        selfSay(text, cid)
       
   elseif(msgcontains(msg, 'yes')) then
    local hasItems = true
        if getResets(cid) > config.maxresets or not RESET then
            selfSay('You already reached the maximum reset level!', cid)
            return true
        elseif getPlayerMoney(cid) < newPrice then
           selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
           return true
        elseif getPlayerLevel(cid) < newminlevel then
           selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
           return true
        end
           
           for i = 1, #RESET.items do
                if getPlayerItemCount(cid, RESET.items[i]) < itemAmount then
                    hasItems = false
                    break
                end
            end
           
            if not hasItems then
                selfSay("You do not have the required items to reset.", cid)
            return true
            end
            for i = 1, #RESET.items do
                doPlayerRemoveItem(cid, RESET.items[i], itemAmount)
            end
            doPlayerRemoveMoney(cid,newPrice)
            playerid = getPlayerGUID(cid)
            addEvent(function()
                addReset(cid)
            end, 3000)
            local number = getResets(cid)+1
            local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 3 seconds."
            doPlayerPopupFYI(cid, msg)
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
           
   elseif (msgcontains(msg, 'no')) then
       selfSay('Ok.', cid)
       npcHandler:releaseFocus(cid)
   elseif (msgcontains(msg, 'quantity')) then
       selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
   end
   return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Nice !!! It was different, but better! Scripter besides smart are good hehehe engineers.
I believe that it is working 100%, I am in the service I will test the night.
 
-Bump.
Man, this script work inside of a dungeon, a dungeon with various difficult.
Function of Npc: Npc reset the player if player have necessary level.
But... Example: When "Jhon" reset... Jhon will reset in the same dungeon, because the first dungeon is easy, sure ?
Can you make something to Npc Reseter send "Jhon" to next dungeon (dungeon 1 to 2... 2 to 3...), when "Jhon" got storage 378378 in the first dungeon?

Next dungeons , they get 1 more storage as: first: 378378 - second: 378379
 
Last edited:
I believe this is what you mean.

Lua:
local config = {
   minlevel = 150, --- level inical para resetar
   price = 10000, --- preço inicial para resetar
   newlevel = 20, --- level após reset
   priceByReset = 10000, --- preço acrescentado por reset
   percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
   maxresets = 50,
   levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
-- You can set up different items at different resets or keep the same. incBy = how many more they will need of each item for each reset.
local resets = {
    [{0, 10}] = {items = {1111, 1111, 1111}, incBy = 1}, -- Reset 1-10 requires these 3 items and each reset they need 1x more of each
    [{11, 20}] = {items = {1111, 1111, 1111}, incBy = 2}, -- Reset 2-20 requires these 3 items and need 2x more of each per reset.
    [{21, 30}] = {items = {1111, 1111, 1111}, incBy = 3} -- and so on...
}
local storage = 50000 --Storage to check.--
local dungeons_storage = {
-- 1 = the storage they need to teleport here
-- So if storage 378378 == 1 for player "john" he will teleport to this x, y, z
    [1] = {x = 1000, y = 1000, z = 7}
}
--- end config
function getResets(uid)
   resets = getPlayerStorageValue(uid, 378378)
   if resets < 0 then
       resets = 0
   end
   return resets
end
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                  npcHandler:onThink()                  end
function addReset(cid)
       if(npcHandler:isFocused(cid)) then
           npcHandler:releaseFocus(cid)
       end
       
       talkState[talkUser] = 0
       resets = getResets(cid)
       setPlayerStorageValue(cid, 378378, resets+1)
       doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
       local hp = getCreatureMaxHealth(cid)
       local resethp = hp*(config.percent/100)
       setCreatureMaxHealth(cid, resethp)
       local differencehp = (hp - resethp)
       doCreatureAddHealth(cid, -differencehp)
       local mana = getCreatureMaxMana(cid)
       local resetmana = mana*(config.percent/100)
       setCreatureMaxMana(cid, resetmana)
       local differencemana = (mana - resetmana)
       doCreatureAddMana(cid, -differencemana)
       local DUNGEON = dungeons_storage[getPlayerStorageValue(storage)]
       doRemoveCreature(cid) 
        if DUNGEON then
            db.executeQuery("UPDATE `players` SET (`x`, `y`, `z`) VALUES ("..DUNGEON.x..", "..DUNGEON.y..", "..DUNGEON.z..") WHERE `players`.`id`= ".. playerid .."")
        end
       local description = resets+1
       db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
       db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
       return true
end
function creatureSayCallback(cid, type, msg)
   if not npcHandler:isFocused(cid) then
       return false
   end
   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
   
   local newPrice = config.price + (getResets(cid) * config.priceByReset)
   local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset)
   
    for i, v in pairs(resets) do
        if getResets(cid) >= i[1] and getResets(cid) <= i[2] then
            RESET = resets[i]
        end
    end
   
    if RESET then
        local itemAmount = RESET.incBy * getResets(cid)
    end
   
    if itemAmount ~= nil and itemAmount == 0 then
        itemAmount = 1
    end
   
    if msgcontains(msg, 'reset') then
        if getResets(cid) > config.maxresets or not RESET then
            selfSay('You already reached the maximum reset level!', cid)
        return true
        end
       
        if itemAmount == nil then
            selfSay("An error has occured please talk to the gamemaster.", cid)
        return true
        end
       
        local text = "You want to reset your character? It will cost "..newPrice.." gp's, and "..itemAmount.." "
            for i = 1, #RESET.items do
                text = text..""..getItemNameById(RESET.items[i])..", "
            end
        selfSay(text, cid)
       
   elseif(msgcontains(msg, 'yes')) then
    local hasItems = true
        if getResets(cid) > config.maxresets or not RESET then
            selfSay('You already reached the maximum reset level!', cid)
            return true
        elseif getPlayerMoney(cid) < newPrice then
           selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
           return true
        elseif getPlayerLevel(cid) < newminlevel then
           selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
           return true
        end
           
           for i = 1, #RESET.items do
                if getPlayerItemCount(cid, RESET.items[i]) < itemAmount then
                    hasItems = false
                    break
                end
            end
           
            if not hasItems then
                selfSay("You do not have the required items to reset.", cid)
            return true
            end
            for i = 1, #RESET.items do
                doPlayerRemoveItem(cid, RESET.items[i], itemAmount)
            end
            doPlayerRemoveMoney(cid,newPrice)
            playerid = getPlayerGUID(cid)
            addEvent(function()
                addReset(cid)
            end, 3000)
            local number = getResets(cid)+1
            local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 3 seconds."
            doPlayerPopupFYI(cid, msg)
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
           
   elseif (msgcontains(msg, 'no')) then
       selfSay('Ok.', cid)
       npcHandler:releaseFocus(cid)
   elseif (msgcontains(msg, 'quantity')) then
       selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
   end
   return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
I believe it to be, but I do not understand.
The same NPC will be in the next dungeon, he will recognize that "John" has obtained storage 378378 and will teleport "Jhon" to the next dungeon, but the same npc of Dungeon 2, will recognize that "Jhon" already has storage 378378 and will give a new storage so he can reset it again? (the third time)
Can you understand me? I want to use the same npc in the dungeons, I just do not want "John" to go easy on resetting.
 
Yes, it is for NPC Reseter, the idea is not to let the player always reset the same NPC, since the first dungeon is the easiest, with the original script, the player could always go in the easiest dungeon...

In case, the solution would be to npc check the XXXX storage, if it has it it will be sent to dungeon 2, and so on ... but will it take 2 or more NPCs right?
 
Sure.

Lua:
local config = {
   minlevel = 150, --- level inical para resetar
   price = 10000, --- preço inicial para resetar
   newlevel = 20, --- level após reset
   priceByReset = 10000, --- preço acrescentado por reset
   percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
   maxresets = 50,
   levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
-- You can set up different items at different resets or keep the same. incBy = how many more they will need of each item for each reset.
local resets = {
    [{0, 10}] = {items = {1111, 1111, 1111}, incBy = 1}, -- Reset 1-10 requires these 3 items and each reset they need 1x more of each
    [{11, 20}] = {items = {1111, 1111, 1111}, incBy = 2}, -- Reset 2-20 requires these 3 items and need 2x more of each per reset.
    [{21, 30}] = {items = {1111, 1111, 1111}, incBy = 3} -- and so on...
}
local storage = 50000 --Storage to check.--
local storage_value = 1 --If player storage == 1 he will say
local text = "You need to go to the next dungeon to reset."
--- end config
function getResets(uid)
   resets = getPlayerStorageValue(uid, 378378)
   if resets < 0 then
       resets = 0
   end
   return resets
end
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                  npcHandler:onThink()                  end
function addReset(cid)
       if(npcHandler:isFocused(cid)) then
           npcHandler:releaseFocus(cid)
       end
       
       talkState[talkUser] = 0
       resets = getResets(cid)
       setPlayerStorageValue(cid, 378378, resets+1)
       doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
       local hp = getCreatureMaxHealth(cid)
       local resethp = hp*(config.percent/100)
       setCreatureMaxHealth(cid, resethp)
       local differencehp = (hp - resethp)
       doCreatureAddHealth(cid, -differencehp)
       local mana = getCreatureMaxMana(cid)
       local resetmana = mana*(config.percent/100)
       setCreatureMaxMana(cid, resetmana)
       local differencemana = (mana - resetmana)
       doCreatureAddMana(cid, -differencemana)
       local DUNGEON = dungeons_storage[getPlayerStorageValue(storage)]
       doRemoveCreature(cid)
       local description = resets+1
       db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
       db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
       return true
end
function creatureSayCallback(cid, type, msg)
   if not npcHandler:isFocused(cid) then
       return false
   end
   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
   
    if getPlayerStorageValue(cid, storage) >= storage_value then
        selfSay(text, cid)
    return false
    end
   
   
   local newPrice = config.price + (getResets(cid) * config.priceByReset)
   local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset)
   
    for i, v in pairs(resets) do
        if getResets(cid) >= i[1] and getResets(cid) <= i[2] then
            RESET = resets[i]
        end
    end
   
    if RESET then
        local itemAmount = RESET.incBy * getResets(cid)
    end
   
    if itemAmount ~= nil and itemAmount == 0 then
        itemAmount = 1
    end
   
    if msgcontains(msg, 'reset') then
        if getResets(cid) > config.maxresets or not RESET then
            selfSay('You already reached the maximum reset level!', cid)
        return true
        end
       
        if itemAmount == nil then
            selfSay("An error has occured please talk to the gamemaster.", cid)
        return true
        end
       
        local text = "You want to reset your character? It will cost "..newPrice.." gp's, and "..itemAmount.." "
            for i = 1, #RESET.items do
                text = text..""..getItemNameById(RESET.items[i])..", "
            end
        selfSay(text, cid)
       
   elseif(msgcontains(msg, 'yes')) then
    local hasItems = true
        if getResets(cid) > config.maxresets or not RESET then
            selfSay('You already reached the maximum reset level!', cid)
            return true
        elseif getPlayerMoney(cid) < newPrice then
           selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
           return true
        elseif getPlayerLevel(cid) < newminlevel then
           selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
           return true
        end
           
           for i = 1, #RESET.items do
                if getPlayerItemCount(cid, RESET.items[i]) < itemAmount then
                    hasItems = false
                    break
                end
            end
           
            if not hasItems then
                selfSay("You do not have the required items to reset.", cid)
            return true
            end
            for i = 1, #RESET.items do
                doPlayerRemoveItem(cid, RESET.items[i], itemAmount)
            end
            doPlayerRemoveMoney(cid,newPrice)
            playerid = getPlayerGUID(cid)
            addEvent(function()
                addReset(cid)
            end, 3000)
            local number = getResets(cid)+1
            local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 3 seconds."
            doPlayerPopupFYI(cid, msg)
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
           
   elseif (msgcontains(msg, 'no')) then
       selfSay('Ok.', cid)
       npcHandler:releaseFocus(cid)
   elseif (msgcontains(msg, 'quantity')) then
       selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
   end
   return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Again I am in the service ... I can not test I will see the night, but I believe that has understood, npc will block reset in the same dungeon, and will send the player to the next dungeon more difficult, in the case ... to reset for the second time.
 
Back
Top