[Resolvido] NPC CHANGE VOCATION/HP-MANA

Denver
Por Denver
em Resolvidos

Denver

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/03/18Posts: 8Gênero: Masculino

Boa tarde galera

 

 

Tenho um NPC em meu server que muda vocação, só que quando o druid ta level 8k e muda a vocação, a quantidade de ML que ele tem é bem alta,  e a ML pro Knight fica a mesma.

 

Um EK com 100k de mana é foda né kk, consigo alterar pra quando trocar a vocação alterar HP/Mana de acordo com as vocations?

 

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, 'sorcerer') or msgcontains(msg, 'sorc')) then
selfSay('Deseja virar {Sorcerer} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,1)
selfSay('Vocação trocada com sucesso , Agora você é um Sorcerer.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'druid') or msgcontains(msg, 'druida')) then
selfSay('Deseja virar {Druid} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,2)
selfSay('Vocação trocada com sucesso , Agora você é um Druid.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'Knight') or msgcontains(msg, 'kina')) then
selfSay('Deseja virar {knight} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,4)
selfSay('Vocação trocada com sucesso , Agora você é um Knight.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'paladin') or msgcontains(msg, 'pala')) then
selfSay('Deseja virar {Paladin} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 4
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,3)
selfSay('Vocação trocada com sucesso , Agora você é um Paladin.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0
end
return true
end

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

Qwizer

WHATSAPP: (66) 9 8427-4493
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 11/04/15Posts: 351Gênero: Masculino

so adicionar 

setCreatureMaxHealth(cid,valor)
setCreatureMaxMana(cid,valor)
Em 14/03/2018 at 18:47, Denver disse:

 

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
pid = getPlayerGUID(cid)

//data/xml/vocations.xml -- gainhp HP e gainmana MP
local mageMP = Valor
local mageHP = Valor

local kinaMP = Valor
local kinaHP = Valor

local palaMP = Valor
local palaHP = Valor

if(msgcontains(msg, 'sorcerer') or msgcontains(msg, 'sorc')) then
selfSay('Deseja virar {Sorcerer} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,1)
setCreatureMaxHealth(cid, getPlayerLevel(cid)*mageHP)
setCreatureMaxMana(cid, getPlayerLevel(cid)*mageMP)
doRemoveCreature(cid) 
db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 ..", count = ".. 0 .." WHERE `player_id` = ".. pid ..";") 
db.executeQuery("UPDATE `players` SET `maglevel` = ".. 0 ..", `manaspent` = ".. 0 .." WHERE `id` = ".. pid ..";")
selfSay('Vocação trocada com sucesso , Agora você é um Sorcerer.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'druid') or msgcontains(msg, 'druida')) then
selfSay('Deseja virar {Druid} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,2)
setCreatureMaxHealth(cid, getPlayerLevel(cid)*mageHP)
setCreatureMaxMana(cid, getPlayerLevel(cid)*mageMP)
doRemoveCreature(cid) 
db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 ..", count = ".. 0 .." WHERE `player_id` = ".. pid ..";") 
db.executeQuery("UPDATE `players` SET `maglevel` = ".. 0 ..", `manaspent` = ".. 0 .." WHERE `id` = ".. pid ..";")
selfSay('Vocação trocada com sucesso , Agora você é um Druid.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'Knight') or msgcontains(msg, 'kina')) then
selfSay('Deseja virar {knight} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,4)
setCreatureMaxHealth(cid, getPlayerLevel(cid)*kinaHP)
setCreatureMaxMana(cid, getPlayerLevel(cid)*kinaMP)
doRemoveCreature(cid) 
db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 ..", count = ".. 0 .." WHERE `player_id` = ".. pid ..";") 
db.executeQuery("UPDATE `players` SET `maglevel` = ".. 0 ..", `manaspent` = ".. 0 .." WHERE `id` = ".. pid ..";")
selfSay('Vocação trocada com sucesso , Agora você é um Knight.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'paladin') or msgcontains(msg, 'pala')) then
selfSay('Deseja virar {Paladin} por 10 Lethal Orbs?', cid)
talkState[talkUser] = 4
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
if(getPlayerItemCount(cid, 7722) >= 10) then
doPlayerRemoveItem(cid, 7722, 10)
doPlayerSetVocation(cid,3)
setCreatureMaxHealth(cid, getPlayerLevel(cid)*palaHP)
setCreatureMaxMana(cid, getPlayerLevel(cid)*palaMP)
doRemoveCreature(cid)  
db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 ..", count = ".. 0 .." WHERE `player_id` = ".. pid ..";")  
db.executeQuery("UPDATE `players` SET `maglevel` = ".. 0 ..", `manaspent` = ".. 0 .." WHERE `id` = ".. pid ..";") 
selfSay('Vocação trocada com sucesso , Agora você é um Paladin.', cid)
else
selfSay('Você não tem {Lethal Orbs} Suficientes.', cid)
end
talkState[talkUser] = 0
end
return true
end

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

 

Stigal

don't ever stop...
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 28/11/10Posts: 3402Gênero: Masculino
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord Xtibia | Skype: @mrooger

 

OTpanel