Ir para conteúdo
  • Cadastre-se

(Resolvido)Mudando vocação


Ir para solução Resolvido por KotZletY,

Posts Recomendados

Gostaria de um NPC que mude a vocação de ID 1 para vocação de ID X,  para mudar você deve pagar 100 itens com o ID 6527

 

Alguem?

Link para o post
Compartilhar em outros sites
  • Solução

@Duality vá em data/npc/script crie um arquivo com o nome desejado com a extensão lua e adicione esse script dentro:

Spoiler

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

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 e = {
voc = 1, -- id da vocação que irá ganhar
itemid = 2160, -- id do item que precisa para comprar a vocação
icount = 100, -- quantidade do item acima, que precisa para comprar a vocação
}

if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then
 if getPlayerItemCount(cid, e.itemid) >= e.icount then
  doPlayerRemoveItem(cid, e.itemid, e.icount)
  doPlayerSetVocation(cid, e.voc)
  selfSay("Você acabou de comprar a nova vocação.", cid)
  npcHandler:releaseFocus(cid) 
 else
  selfSay("Você não tem os "..e.icount.." "..getItemNameById(e.itemid).." para comprar a vocação.", cid)
  npcHandler:releaseFocus(cid) 
 end
end 
end

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

 

 

em data/npc crie um arquivo com o nome desejado, com a extensão xml e cole esse code dentro:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Nome do NPC" script="NomeDoArquivo.lua" walkinterval="999000" floorchange="0">
<health now="150" max="150"/>
<look type="795" head="20" body="100" legs="50" feet="99" corpse="2212"/>
<parameters>
<parameter key="message_greet" value="Estou vendendo tal vocação. Gostaria de comprar ?"/>
        </parameters>
</npc>

 

não esqueça de configurar o item desejado, a quantidade que precisa, a vocação, e as falas.

Não esqueça também de bota o nome do npc, e o nome do arquivo lua na xml do npc.

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

@Duality

Spoiler

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

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 e = {
voc = 1, -- id da vocação que irá ganhar
itemid = 2160, -- id do item que precisa para comprar a vocação
icount = 100, -- quantidade do item acima, que precisa para comprar a vocação
vocNeed = 1 -- id da vocação que precisa para mudar para a próxima vocação
}

if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then
 if getPlayerItemCount(cid, e.itemid) >= e.icount then
  if getPlayerVocation(cid) == e.vocNeed then
  doPlayerRemoveItem(cid, e.itemid, e.icount)
  doPlayerSetVocation(cid, e.voc)
  selfSay("Você acabou de comprar a nova vocação.", cid)
  npcHandler:releaseFocus(cid) 
  else 
   selfSay("Você não pode mudar de vocação. Apenas a vocação tal, pode mudar.", cid)
   npcHandler:releaseFocus(cid) 
  end
 else
  selfSay("Você não tem os "..e.icount.." "..getItemNameById(e.itemid).." para comprar a vocação.", cid)
  npcHandler:releaseFocus(cid) 
 end
end 
end

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

 

 

Em vocNeed você altera para a vocação que pode mudar, caso a vocação for diferente da que está ali, o npc não irá mudar. 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

@KotZletY Agradecido com tamanho suporte, vou testar, VLW =D

@KotZletY o script funcionou perfeitamente, mas preciso deslogar e logar para mudar tudo certo, poderia acrescentar no script para que ao terminar de comprar o player tomasse kick?

Link para o post
Compartilhar em outros sites

@Duality

Spoiler

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

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 e = {
voc = 1, -- id da vocação que irá ganhar
itemid = 2160, -- id do item que precisa para comprar a vocação
icount = 100, -- quantidade do item acima, que precisa para comprar a vocação
vocNeed = 1 -- id da vocação que precisa para mudar para a próxima vocação
}

if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then
 if getPlayerItemCount(cid, e.itemid) >= e.icount then
  if getPlayerVocation(cid) == e.vocNeed then
  doPlayerRemoveItem(cid, e.itemid, e.icount)
  doPlayerSetVocation(cid, e.voc)
  selfSay("Você acabou de comprar a nova vocação.", cid)
  npcHandler:releaseFocus(cid) 
  addEvent(doRemoveCreature, 1000, cid)
  else 
   selfSay("Você não pode mudar de vocação. Apenas a vocação tal, pode mudar.", cid)
   npcHandler:releaseFocus(cid) 
  end
 else
  selfSay("Você não tem os "..e.icount.." "..getItemNameById(e.itemid).." para comprar a vocação.", cid)
  npcHandler:releaseFocus(cid) 
 end
end 
end

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

 

 

addEvent(doRemoveCreature, 1000, cid)

 

1000 = 1 segundo.

 

1 segundo após ele comprar, ele é removido! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Esse comando de NPC serve pra dar uma super vocação? Tipo eu tenho um Goku reborn lvl 2k e quero fazer ele virar um Ultra god Goku ( Tem essa vocação no meu servidor) isso funcionaria? Gostaria de fazer um NPC pra cada vocação, tem como?

Link para o post
Compartilhar em outros sites

@Felipew11 tem sim, basta configurar da maneira que deseja. Esse npc como o membro pediu, ele altera a vocação por uma quantidade de um certo item, item e a quantidade de item, são de fácil configuração, então somente tal vocação pode mudar a vocação, também de fácil configuração. 

 

Basta você fazer um NPC diferente para cada vocação, e então irá mudar a vocação somente do personagem que deseja.

Caso não entendeu.

 

em vocNeed você coloca por exemplo, o id da vocação goku, então somente goku poderá usar o npc para mudar de vocação, então você irá configurar um NPC para cada vocação.

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

@kotZletY tipo, no meu as ultra gods não tem o id do obj, se eu por na parte que é a vocação que ganha o id dela do vocations e do obj funciona? Tipo:

local e = { voc = 647, 650, -- id da vocação que irá ganhar

Ou tem outra configuração?

Eu tenho um NPC que dá as intra gods, mais tarde eu posso por aqui dps e vc me fala se dá pra fazer um NPC pra cada, pode ser?

Link para o post
Compartilhar em outros sites

@Felipew11 cara, não to entendendo o que você quer, agora você embolorou tudo, ahsuahsuas.

 

Bom, já vi que essa conversa irá durá, então crie um tópico na área em que seu pedido se encaixa, e então me marque, pensei que seria algo simples, mas já vi que irá rola uma conversa antes, então para não poluirmos o tópico do membro, melhor irmos para outro tópico, então crie um e faça seu pedido, duvida, e me marque.

 

Assunto encerrado nesse tópico!! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo