Ir para conteúdo

[Npc] Npc Que Troca Sua Vocation


Exceed

Posts Recomendados

Tipo do script: Não sei

:/ (NPC Que muda vocation)

 

Protocolo (versão do Tibia): 8.4

 

Servidor utilizado: Darkness OT

 

Nível de experiência: '-'

 

Adicionais/Informações: No meu OT editado, o player começa sem voc e fala com um NPC pra conseguir uma. (Presiso desse NPC) ele tem que mudar pra

Knight por 10 Platinum Coins (¿2152?). Thx desde já ^^

Editado por Exceed
Link para o comentário
Compartilhar em outros sites

AJUDEI??REP+ por favor

 

tenta fazer isso vai no npc/scripts e cria um arquivo.lua e coloca esse código

 

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

npcHandler:setMessage(MESSAGE_GREET, "Olá, eu sou a {Ministra dos Carimbos}, como vai?")

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, 'knight')) then
selfSay('Para virar knight você precisa ter 10 platinum coins, e falar trocar',cid)
talkState[talkUser] = 1


elseif(msgcontains(msg, 'trocar') and talkState[talkUser] == 1  and  getPlayerItemCount(cid,2152)>=10) then
doPlayerRemoveItem(cid,2152,10) 
selfSay('Muito bem sua vocation foi trocada.', cid)
doPlayerSetVocation(cid,voc)
talkState[talkUser] = 0
end
return TRUE
end

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

 

Basta trocar essa parte :

doPlayerSetVocation(cid,voc)

voc = id da vocation

 

e depois vai no npc:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Testee" script="data/npc/scripts/script.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="132" head="20" body="39" legs="45" feet="7" addons="3"/>
<parameters>
<parameter key="message_greet" value="Hello, |PLAYERNAME|. I can 'heal', 'haste', 'mana shield', invisible', upgrade your 'melee', 'magic', 'distance' and 'shield' skills."/>
</parameters>
</npc> 

 

script.lua é o nome desse script ai é so trocar nome aparencia vida e tals

Editado por galaverna
Link para o comentário
Compartilhar em outros sites

Vou tentar aqui ^^ vlw por ajudar tá +Zado ^^ se n funfar eu edito aqui te avisando



 

@Edit²

 

Man, consegui fazer seu script funfar, tipo, acho q na hra que fui mudar eu deletei alguma coisa errada, mais enfim, esta funfando, so gostaria de saber se tem um jeito de fazer com que o NPC mande uma menssagem para o player se ele n tiver 10 Platinum Coins. Se tiver me ajuda? vlw ^^

Editado por Exceed
Link para o comentário
Compartilhar em outros sites

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

npcHandler:setMessage(MESSAGE_GREET, "Olá, eu sou o Guild Master da ZK (Zombie Killers) , você gostaria de participar dessa guild?)")

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, 'yes')) then
selfSay('Para entrar para a ZK você tera que me pagar 10 Gold Coins Ok?',cid)
talkState[talkUser] = 2


elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2  and  getPlayerItemCount(cid,2152)>=10) then
doPlayerRemoveItem(cid,2152,10) 
selfSay('Bem vindo a Zombie Killers !', cid)
doPlayerSetVocation(cid,4)
talkState[talkUser] = 0
end
return TRUE
end

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

 

Tenta assim nem testei aki :D

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...