Tenho este npc que funciona da seguinte maneira, um player atinge a marca de 55 resets, ai ele vai com determinados itens ao npc Ariel, o mesmo divide por 2 a Life e mana Atuais do jogador , zera os resets do player no caso de 55 ele volta a 0 resets e deixa o player lvl e No caso um Master Sorcerer vai ao npc com os requisitos citados acima e conversa com o npc e se torna um Celestial Sorcerer ( second promotion).
O mesmo funcionava quando eu utilizada o servidor na versão 8.60 porém atualizei meu servidor para 10.10 e o npc está apena deixando o player lvl 8, e não da a second promotion ao mesmo e nem zera os resets.
Se alguem me Ajudar libero o REP+
Segue abaixo o script:
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
function doRemoveItemsFromList(cid,items) -- by vodka
local count = 0
if table.maxn(items) > 0 then
for i = 1, table.maxn(items) do
if getPlayerItemCount(cid,items[1]) >= items[2] then
count = count + 1 end end end
if count == table.maxn(items) then
for i = 1, table.maxn(items) do doPlayerRemoveItem(cid,items[1],items[2]) end
else return false end
return true end
local talkUser,msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,string.lower(msg)
function getResets(cid)
local check = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
return check:getDataInt("reset") < 0 and 0 or check:getDataInt("reset")
end
local config = {
MinResets = 55,
Price = {{9971,1000},{2108,1}},
Storages = {7824560,7824570},
newlv = 8,
pid = getPlayerGUID(cid)
}
if isInArray({"resetar","reset","resete","reborn"}, msg) then
if getPlayerStorageValue(cid, config.Storages[1]) >= 1 then
npcHandler:say("Desculpé amigo, mas você já é celestial.", cid)
else
npcHandler:say("Você deseja mesmo zerar seus resets e se tornar um celestial? {yes}", cid)
talkState[talkUser] = 1
end
elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then
if getPlayerVocation(cid) > 0 and getPlayerVocation(cid) < 18 then
if getResets(cid) >= config.MinResets then
if doRemoveItemsFromList(cid,config.Price) then
local voc = isInArray({1,2,3,4}, getPlayerVocation(cid)) and (getPlayerVocation(cid)+4) or isInArray({5,6,7,8}, getPlayerVocation(cid)) and (getPlayerVocation(cid)+8) or isInArray({9,11}, getPlayerVocation(cid)) and (getPlayerVocation(cid)+1) or isInArray({10}, getPlayerVocation(cid)) and 18 or isInArray({12}, getPlayerVocation(cid)) and 17
setPlayerStorageValue(cid,config.Storages[1], 1)
setPlayerStorageValue(cid,config.Storages[2], voc)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = "..config.newlv..", `experience` = "..getExperienceForLevel(config.newlv).." WHERE `id` = "..config.pid)
else
npcHandler:say("Você precisa de 1000 barras de ouro e um corpo divino para se tornar um celestial.", cid)
talkState[talkUser] = 0
end
else
npcHandler:say("Você precisa ter "..config.MinResets.." resets para se tornar um celestial.", cid)
talkState[talkUser] = 0
end
else
npcHandler:say("Você não tem vocação para resetar aqui.", cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("tudo bem então.", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
valeu galera fico no aguardo