Ir para conteúdo

Pergunta

Olá galera , tudo bem ?

Queria um NPC que troca a vocation do player pela escolhida.

 

Explicando melhor :

 

Um Player com vocation 1 fala com o NPC e ele da a opção de trocar para as seguintes vocations (20,30,40,50)

 

Aguardo respostas happy.png

Link para o comentário
https://xtibia.com/forum/topic/233692-npc-que-troca-vocation/
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

tente

Aqui, vá em npcs/script e crie um arquivo chamado vocacao.lua e coloque isso dentro

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
 
local choose = {}
local cancel = {}
local available = {}
function creatureSayCallback(cid, type, msg)
 
	if(not npcHandler:isFocused(cid)) then
		return false
	end
	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid
	
if(msgcontains(msg, "info")) then  
		selfSay("Olá "..getCreatureName(cid)..", Você quer trocar de vocação, digite o nome da sua proxima vocação. Temos Sorcerer, Druid, Knight e Paladin.", cid)      
		talkState[talkUser] = 1
	elseif msgcontains(msg, "sorcerer") or msgcontains(msg, "SORCERER") and talk_state == 1 then
	    doPlayerSetVocation(cid, 1)
		selfSay("Parabéns, você virou um Sorcerer", cid)
		broadcastMessage("O jogador "..getCreatureName(cid).." virou um Sorcerer")
	elseif msgcontains(msg, "druid") or msgcontains(msg, "DRUID") and talk_state == 1 then
	    doPlayerSetVocation(cid, 2)
		selfSay("Parabéns, você virou um Druid", cid)
		broadcastMessage("O jogador "..getCreatureName(cid).." virou um Druid")
   	elseif msgcontains(msg, "paladin") or msgcontains(msg, "PALADIN") and talk_state == 1 then
	    doPlayerSetVocation(cid, 3)
		selfSay("Parabéns, você virou um Paladin", cid)
		broadcastMessage("O jogador "..getCreatureName(cid).." virou um Paladin")
	elseif msgcontains(msg, "KNIGHT") or msgcontains(msg, "KNIGHT") and talk_state == 1 then
	    doPlayerSetVocation(cid, 4)
		selfSay("Parabéns, você virou um Knight", cid)
		broadcastMessage("O jogador "..getCreatureName(cid).." virou um Knight")
	elseif(msgcontains(msg, "bye") or msgcontains(msg, "goodbye") or msgcontains(msg, "cya")) then
		selfSay("cya!", cid, TRUE)
		closeShopWindow(cid)
		removeFocus(cid)
	end
end    

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

e depois volte uma pasta, onde fica os xmls dos npc e crie um novo arquivo chamado vocacao.xml e coloque isso dentro

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Vocation Changer" script="data/npc/scripts/vocacao.lua" walkinterval="0" floorchange="0">
	<health now="150" max="150"/>
  <look type="131" head="95" body="95" legs="95" feet="95" corpse="6080"/>
</npc>
Link para o comentário
https://xtibia.com/forum/topic/233692-npc-que-troca-vocation/#findComment-1649989
Compartilhar em outros sites

×
×
  • Criar Novo...