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
if(msgcontains(msg, 'rebirth')) then
selfSay('Ready for me to rebirth you?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
-------CONFIGS-------
local level = -- Put here the level to rebirth --
local cost = -- Put here the cost to rebirth in GP (20000 = 20k) --
------/CONFIGS-------
-----LOCALS-----
local id = getPlayerGUID(cid)
local name = getCreatureName(cid)
local vocation = getPlayerVocation(cid)
----/LOCALS-----
if getPlayerLevel(cid) >= level then
if doPlayerRemoveMoney(cid,cost) == TRUE then
if vocation == 1 then
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = 8, `experience` = 4200, `health` = 250, `healthmax` = 250, `mana` = 250, `manamax` = 250, `promotion` = 2 WHERE `id` ='"..id.."';")
db.executeQuery("UPDATE `players` SET `name` = '¥ "..name.."' WHERE `id` ='"..id.."';")
elseif vocation == 2 then
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = 8, `experience` = 4200, `health` = 250, `healthmax` = 250, `mana` = 250, `manamax` = 250, `promotion` = 2 WHERE `id` ='"..id.."';")
db.executeQuery("UPDATE `players` SET `name` = '¥ "..name.."' WHERE `id` ='"..id.."';")
elseif vocation == 3 then
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = 8, `experience` = 4200, `health` = 250, `healthmax` = 250, `mana` = 250, `manamax` = 250, `promotion` = 2 WHERE `id` ='"..id.."';")
db.executeQuery("UPDATE `players` SET `name` = '¥ "..name.."' WHERE `id` ='"..id.."';")
elseif vocation == 4 then
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = 8, `experience` = 4200, `health` = 250, `healthmax` = 250, `mana` = 250, `manamax` = 250, `promotion` = 2 WHERE `id` ='"..id.."';")
db.executeQuery("UPDATE `players` SET `name` = '¥ "..name.."' WHERE `id` ='"..id.."';")
else
selfSay('Not a valid vocation. Contact administrator.', cid)
talkState[talkUser] = 0
end
else
selfSay('You dont have enough money. You need to pay " .. cost .. " to be rebirthed.', cid)
talkState[talkUser] = 0
end
else
selfSay('Only characters of level " .. level .. " or higher can be rebirthed.', cid)
talkState[talkUser] = 0
end
elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then
selfSay('Okey come back when you are ready.', cid)
talkState[talkUser] = 0
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())