Ir para conteúdo

[Monster] Npc Quest


Ludymila

Posts Recomendados

Bom, O fato é.

 

Um npc que voce fale, ele te fassa uma pergunta. e a partir dessa pergunta ele te leva pra um lugar.

 

Pensei: So pergar um npc de barco, como o capitao coruja e edita-lo.

 

O que eu fiz: Editei o arquivo xml, mudei a msg que ele fala os nomes das cidades e talz, e botei minha pergunta. e onde tinha as cidades, que ficam em negrito( e no arquivo entre parentese) botei as alternativas de resposta.

 

Ate ai tudo bem, quando falo com ele, ele fala exatamente o que eu botei pra falar.

 

O problema: no .lua do npc. onde tinha as cidades, eu mudei para o uma das resposta e mudei o local de ele ir. o x y z.

 

local travelNode = keywordHandler:addKeyword({'Verdade'}, ..... por exemplo, ai onde esta verdade. estava yalahar. e o xyz de yalar depois. eu tirei yalhar. botei uma resposta para minha pergunta. e botei a direçao q eu queria que fosse.

 

A questao: quando falo pro npc. a palavra Verdade, simplesmente ele nao me responde nada :(.....

sera que alguem pode me ajudar ? acho que eh uma coisa bem simples, mas é a primeira vez que estou mechendo com essas coisas.

 

Bom. se alguem poder me ajudar, irei ficar muito feliz :)

 

Obraços.

Link para o comentário
Compartilhar em outros sites

Manda o script inteiro, só assim poderei intender =OO

 

 

Delton~~

 

O xml original é este

<npc name="Izac" script="data/npc/scripts/izac.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1">

<health now="150" max="150"/>

<look type="128" head="114" body="119" legs="114" feet="114" corpse="2212"/>

<parameters>

<parameter key="message_greet" value="Ola |PLAYERNAME|. ! Eu posso te levar voando para {infernium}, {flam}, {saari}, {mirand theraan}, {mistyc} e {dorion}. Para onde deseja voar?" />

<parameter key="message_decline" value="Vai custar |TOTALCOST| gold coins. Vai viajar?"/>

</parameters>

</npc>

 

 

O Lua original é este

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

 

 

 

-- OTServ event handling functions start

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

-- OTServ event handling functions end

 

 

 

-- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!

local travelNode = keywordHandler:addKeyword({'infernium'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer voar para Infernium por 50 gold coins?'})

travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 50, destination = {x=237, y=259, z=8} })

travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})

 

keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Eu posso te levar para {dorion}, {Yalahar}, {Alfon}, {venonh} e {Anknor} por um pequeno custo.'})

 

-- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!

local travelNode = keywordHandler:addKeyword({'dorion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer voar para Dorion por 110 gold coins?'})

travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 110, destination = {x=18, y=80, z=6} })

travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})

 

keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'dorion\' for just a small fee.'})

 

-- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!

local travelNode = keywordHandler:addKeyword({'flam'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer voar para flam por 115 gold coins?'})

travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 115, destination = {x=266, y=32, z=5} })

travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})

 

keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'Alfon\' for just a small fee.'})

 

-- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!

local travelNode = keywordHandler:addKeyword({'saari'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer voar para saari por 100 gold coins?'})

travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 100, destination = {x=251, y=114, z=5} })

travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})

 

keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'venohn\' for just a small fee.'})

 

-- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!

local travelNode = keywordHandler:addKeyword({'mirand theraan'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer voar para mirand theraan por 175 gold coins?'})

travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 175, destination = {x=289, y=192, z=7} })

travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})

 

keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'Anknor\' for just a small fee.'})

 

-- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions!

local travelNode = keywordHandler:addKeyword({'mistyc'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer voar para mystic por 100 gold coins?'})

travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 100, destination = {x=455, y=127, z=7} })

travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})

 

keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'anknor\' for just a small fee.'})

 

 

-- Makes sure the npc reacts when you say hi, bye etc.

npcHandler:addModule(FocusModule:new())

 

 

 

 

 

 

 

 

 

 

O que eu fiz ta dito no começo do topico, se nao entendeu fala q eu tento explicar melhor... mas é simples. peguei por base esse npc, prafazer um "npc quest" onde ele falaria uma pergunta... e daria 3 alternativas por exemplo. e cada uma dessas alternativas, levaria para algum lugar

Link para o comentário
Compartilhar em outros sites

voce adicionou o "verdade" na função errada.

 

local travelNode = keywordHandler:addKeyword({'Verdade'}, ..... por exemplo, ai onde esta verdade. estava yalahar. e o xyz de yalar depois. eu tirei yalhar. botei uma resposta para minha pergunta. e botei a direçao q eu queria que fosse.

 

ele estando nesse local ele iria fazer outra pergunta confirmando a viajam ao "verdade" e no seu exemplo {'Verdade'} a letra "V" esta em maiusculo o que seria melhor por em minusculo.

 

voce deveria ter posto a pergunta nessa função e dado a resposta nessa outra tag

 

travelNode:addChildKeyword({'verdade'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 50, destination = {x=237, y=259, z=8} })

 

ele faria a pergunta se caso fosse respondido verdade mandaria pra tal local.

 

 

edit:

 

seção errada vo reporta pra moverem pra seção correta.

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

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...