Ir para conteúdo
  • Cadastre-se

Gostaria de um npc que trocasse a vocation em troca de item


Posts Recomendados

Seria apenas uma possibilidade de troca de vocation? Ou seja, não importa a pessoa que chegue, o npc sempre irá mudar a vocation do player apara a vocation 11 (por exemplo)?

 

Pf, explique um pouco melhor como seria esse npc.

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Seria apenas uma possibilidade de troca de vocation? Ou seja, não importa a pessoa que chegue, o npc sempre irá mudar a vocation do player apara a vocation 11 (por exemplo)?

 

Pf, explique um pouco melhor como seria esse npc.

 

 

sim qualquer player de qualquer vocation poderia chegar e trocar de vocation se tiver determinado item em mãos

5nJc23M.png

Link para o post
Compartilhar em outros sites

Certo, isso eu entendi. Mas explique as possibilidades de vocations novas, sacas?

 

Tipo, um vocation 1 se transforma em 5, etc.

 

Explique o funcionamento e todas as possibilidades do npc.

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Certo, isso eu entendi. Mas explique as possibilidades de vocations novas, sacas?

 

Tipo, um vocation 1 se transforma em 5, etc.

 

Explique o funcionamento e todas as possibilidades do npc.

 

 

Certo. o npc vai da apenas 1 vocation pra qualquer vocation que for falar com ele

 

Exemplo: O npc vai trocar a vocation Vegetto por uma maçã, qualquer vocation vai poder fazer a troca.

5nJc23M.png

Link para o post
Compartilhar em outros sites

Tenta assim:

local item=2160 --ID do item necessario
local newVoc=5 --ID da vocation nova
local outfit=13 --LookType do outfit

local stor = 437369

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 msgcontains(msg, 'yes') then
	if(doPlayerRemoveItem(cid, item, 1) == true) then
		if getPlayerStorageValue(cid, stor) < 1 then
		doPlayerSetVocation(cid, newVoc)
		setPlayerStorageValue(cid, stor, 1)
		doCreatureChangeOutfit(cid, {lookType=outfit})
		else
		selfSay("Voce ja trocou sua vocation.", cid)
		end
	else
	selfSay("Voce nao tem o item necessario.", cid)
	end
end
return true
end

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

Precisa de ajuda pra instalar? Já tem o xml do npc?

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Tenta assim:

local item=2160 --ID do item necessario
local newVoc=5 --ID da vocation nova
local outfit=13 --LookType do outfit

local stor = 437369

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 msgcontains(msg, 'yes') then
	if(doPlayerRemoveItem(cid, item, 1) == true) then
		if getPlayerStorageValue(cid, stor) < 1 then
		doPlayerSetVocation(cid, newVoc)
		setPlayerStorageValue(cid, stor, 1)
		doCreatureChangeOutfit(cid, {lookType=outfit})
		else
		selfSay("Voce ja trocou sua vocation.", cid)
		end
	else
	selfSay("Voce nao tem o item necessario.", cid)
	end
end
return true
end

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

Precisa de ajuda pra instalar? Já tem o xml do npc?

 

 

Já tenho a xml aqui sei como instalar. Vou testar aqui amanha te dou a resposta se funcionou ou não. Obrigado

5nJc23M.png

Link para o post
Compartilhar em outros sites

Tenta assim:

local item=2160 --ID do item necessario
local newVoc=5 --ID da vocation nova
local outfit=13 --LookType do outfit

local stor = 437369

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 msgcontains(msg, 'yes') then
	if(doPlayerRemoveItem(cid, item, 1) == true) then
		if getPlayerStorageValue(cid, stor) < 1 then
		doPlayerSetVocation(cid, newVoc)
		setPlayerStorageValue(cid, stor, 1)
		doCreatureChangeOutfit(cid, {lookType=outfit})
		else
		selfSay("Voce ja trocou sua vocation.", cid)
		end
	else
	selfSay("Voce nao tem o item necessario.", cid)
	end
end
return true
end

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

Precisa de ajuda pra instalar? Já tem o xml do npc?

 

 

o server nao reconheceu o script ! 

5nJc23M.png

Link para o post
Compartilhar em outros sites

Qual erro deu?

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Eh server de que? Qual a distro?

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Não sei como funcionam os npc's em wodbo, não sei se é da mesma forma do tibia normal, então esse pode ser o problema. :/

 

 

Distro é o executável do seu server.

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Não sei como funcionam os npc's em wodbo, não sei se é da mesma forma do tibia normal, então esse pode ser o problema. :/

 

 

Distro é o executável do seu server.

 

e como vejo qual ? voce quer a versao é isso?

5nJc23M.png

Link para o post
Compartilhar em outros sites

Nas primeiras linhas do console aparecem essas informações.

 

Manda um script de algum npc aí pra eu ver como é a estrutura usada em wodbo.

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Nas primeiras linhas do console aparecem essas informações.

 

Manda um script de algum npc aí pra eu ver como é a estrutura usada em wodbo.

 

 

ainda nao achei as informações

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
 if focus == cid then
        selfSay('Good bye then.')
        focus = 0
        talk_start = 0
 end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
 return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
 msg = string.lower(msg)

 


  if msgcontains(msg, 'hi') then

selfSay('Hey, I need potara, do you have that?')
  focus = cid
  talk_start = os.clock()

 elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
  selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')

elseif focus == cid then
talk_start = os.clock()



                      if msgcontains(msg, 'yes') then
if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or (getPlayerVocation(cid) >= 15 and getPlayerVocation(cid) <= 26) or getPlayerVocation(cid) == 37 or getPlayerVocation(cid) == 363) then
if (getPlayerStorageValue(cid,8000) >= 49) then
                     if doPlayerRemoveItem(cid,2353,1) == 0 then
                     selfSay('Sorry you dont have potara.') 
else
doPlayerSetVocation(cid,388)
doSetOutfit(cid,422) 
selfSay('Congratulations.')

end

else
  selfSay('Sorry you cant do this quest now.') 
end
else
  selfSay('Sorry your vocation cant do this quest.') 
end


elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
 selfSay('Good bye, ' .. getCreatureName(cid) .. '!')
 focus = 0
 talk_start = 0
end
end
end

function onThink()
doNpcSetCreatureFocus(focus)
 if (os.clock() - talk_start) > 45 then
  if focus > 0 then
   selfSay('Next Please...')
  end
   focus = 0
 end
if focus ~= 0 then
 if getDistanceToCreature(focus) > 5 then
  selfSay('Good bye then.')
  focus = 0
 end
end
end 

5nJc23M.png

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