Jump to content
×
×
  • Create New...
  • 0

NPC


Go to solution Solved by JulianoZN,

Question

Ola Galerinha Do Xtibia Blz?

Estou Criando Esse Topico Para Pedir a Ajuda De Vocês Com Um Npc Que Possa

Vender Uma Segunda Promote 

Exemplo: Como Nois Criamos Um Char Nois Escolhe a Vocação Certo Druid Certo?

Dai Eu Compro a Primeira Promote Para Virar Elder Druid Mais Eu Preciso De Um Npc Que Venda a Segunda PROMOTE

Que é o Slayer Druid o Meu Servidor é Versão 8.4 Se Alguem Me Ajuda Dou +REP

Obrigado Pela Atenção!

 

Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 1
  • Solution
23 minutos atrás, Thacio Silvah disse:

Ola Galerinha Do Xtibia Blz?

Estou Criando Esse Topico Para Pedir a Ajuda De Vocês Com Um Npc Que Possa

Vender Uma Segunda Promote 

Exemplo: Como Nois Criamos Um Char Nois Escolhe a Vocação Certo Druid Certo?

Dai Eu Compro a Primeira Promote Para Virar Elder Druid Mais Eu Preciso De Um Npc Que Venda a Segunda PROMOTE

Que é o Slayer Druid o Meu Servidor é Versão 8.4 Se Alguem Me Ajuda Dou +REP

Obrigado Pela Atenção!

 

 

xml do npc

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Nome do NPC" script="Nome do Script.lua" walkinterval="350000" floorchange="0" speed="0" skull="0">
<mana now="800" max="800"/>
<health now="200" max="200"/>
<look type="484" head="114" body="119" legs="132" feet="114"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|, Eu posso te promover para Slayer Druid, diga {promover/promote}."/>
</parameters>
</npc>

 

Script

Nome do Script.lua

Spoiler

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, 'promover') or msgcontains(msg, 'promote')) then
selfSay('Quer que eu te promova a Slayer Druid? vai custar xxxx .', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 2152) >= 20) then   --- pode colocar item ou dinheiro depois do >= será a quantidade cobrada
doPlayerRemoveItem(cid, 2152, 20) --- Item/Dinheiro, quantidade que será removida
doPlayerSetVocation(cid, 4) --- ID da vocação <Encontrada no vocations.xml>
--- setPlayerStorageValue(cid, xxx, 1) --- Caso queira liberar alguma outfit com "xxx" Storage  <Encontrada no outfits.xml>
selfSay('Parabéns, Você foi promovido a Slayer Druid!', cid)
else
selfSay('Você não tem o item/dinheiro necessario.', cid)
end
talkState[talkUser] = 0
end
return true
end

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

 

Link to post
Share on other sites
  • 0
15 horas atrás, JulianoZN disse:

 

xml do npc

  Mostrar conteúdo oculto

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Nome do NPC" script="Nome do Script.lua" walkinterval="350000" floorchange="0" speed="0" skull="0">
<mana now="800" max="800"/>
<health now="200" max="200"/>
<look type="484" head="114" body="119" legs="132" feet="114"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|, Eu posso te promover para Slayer Druid, diga {promover/promote}."/>
</parameters>
</npc>

 

Script

Nome do Script.lua

  Mostrar conteúdo oculto

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, 'promover') or msgcontains(msg, 'promote')) then
selfSay('Quer que eu te promova a Slayer Druid? vai custar xxxx .', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 2152) >= 20) then   --- pode colocar item ou dinheiro depois do >= será a quantidade cobrada
doPlayerRemoveItem(cid, 2152, 20) --- Item/Dinheiro, quantidade que será removida
doPlayerSetVocation(cid, 4) --- ID da vocação <Encontrada no vocations.xml>
--- setPlayerStorageValue(cid, xxx, 1) --- Caso queira liberar alguma outfit com "xxx" Storage  <Encontrada no outfits.xml>
selfSay('Parabéns, Você foi promovido a Slayer Druid!', cid)
else
selfSay('Você não tem o item/dinheiro necessario.', cid)
end
talkState[talkUser] = 0
end
return true
end

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

 

Ok Funcionou 100% mais quando o player desloga volta a vocação anterior isso é normal ou é erro do ot ou do script?

des de já agradeço pela ajuda :D

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now