Ir para conteúdo
  • 0

Script ( Reset ) - Com NPC - AJUDA


Neo Sonny

Pergunta

Precisio Que meu Ajuden fixar ele Script -  quero NPC depois fazer Reset Level de recompensa
Exemplo : 30 Gold Coin / Preciso com proba Pfv  

( Tibia Client 8,54 ) ------- Obg ------- REP + 



Lua : 

Spoiler


-- config
minlevel = 25 -- level para resetar
price = 0
newlevel = 150 -- level após reset
newexp = 36830000 -- nova experiencia após reset
-- end config

function addReset(cid)
resets = getResets(cid)
setPlayerStorageValue(cid,36874,resets+1)
return true
end

function getResets(cid)
resets = getPlayerStorageValue(cid,36874)
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

if msgcontains(msg, 'reset') then
selfSay('Do you want to reset your character level? Your character will be logged off if you confirm. You must pay '..price..' gold coins to reset.', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) < price then
selfSay('You must pay '..price..' gold coins to reset.', cid)
elseif getPlayerLevel(cid) < minlevel then
selfSay('You must be at least level '.. minlevel ..' to reset.', cid)
else
doPlayerRemoveMoney(cid,price)
doPlayerAddItem(cid, 5902, 30)
addReset(cid)
playerid = getPlayerGUID(cid)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level`="..newlevel..",`experience`="..newexp.." WHERE `players`.`id`= ".. playerid .."")
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok.', cid)
elseif msgcontains(msg, 'info') then
selfSay('You have '..getResets(cid)..' reset(s).', cid)
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())



NPC : 
 

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Reseter" script="res.lua" walkinterval="2000" floorchange="0">
<health now="150" max="150"/>
<look type="115" head="115" body="0" legs="114" feet="0" addons="3" corpse="2212"/>
<parameters>
<parameter key="module_shop" value="1"/>
<parameter key="message_greet" value="Eae |PLAYERNAME| Tudu Blz?. Fala reset para resetar seu lvl e diga Info para ver quantos reset voce Tem! Cuidado ao resetar seu level voltara ao 30 e sua velocidade tambem!"/>
</parameters>
</npc>
 



 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

×
×
  • Criar Novo...