Postado Agosto 25, 2014 10 anos Olá , Gostaria de uma ajuda para entender melhor como funciona está script e como fazê-la funcionar.O objetivo é o seguinte :Fazer o NPC vender o item X por Y quantidade de diamantes.Eu procurei alguns outros tópicos de scripts que fazem o Npc trocar o item X pelo item Y da quantidade que foi determinada na script , porém , tive problemas.A script que eu utilizei como base foi esta do tópico abaixo :http://www.tibiaking.com/forum/topic/35955-pedido-npc-trocando-items/PS : Não sei se o caso de ter alterado o nome do npc fez que ela não funcionasse. [Alterei tanto no XML como no LUA dos respectivos arquivos.]O problema :O Npc não responde quando eu digo Hi/Oi/OláSegue abaixo as scripts depois de editadas por mim : XML Mostrar conteúdo oculto <?xml version="1.0"?> <npc name="Diamond Trader" script="data/npc/scripts/diamondtrader.lua" access="5" lookdir="2" walkinterval="0"> <health now="200" max="200" /> <look type="139" head="95" body="95" legs="95" feet="95" addons="3" /> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Deseja trocar diamonds por itens ? Diga {items}." /> </parameters> </npc> LUA Mostrar conteúdo oculto local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 -- STRIKE START -- function jestervip(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerItemCount(cid,2145) >= 50 then if doPlayerRemoveItem(cid,2145,50) then npcHandler:say('Aqui esta seu item!', cid) doPlayerAddItem(cid,12153,1) end else npcHandler:say('Voce nao tem diamond suficiente!', cid) end end -- STRIKE END -- keywordHandler:addKeyword({'items'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Eu troco {bag of pollem} por diamonds."}) local node1 = keywordHandler:addKeyword({'bag of pollem'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer trocar 50 diamonds por 1 bag of pollem?? Yes or no??'}) node1:addChildKeyword({'yes'}, jestervip, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, volte quando quiser negociar!', reset = true}) . Editado Agosto 26, 2014 10 anos por Born Retarded (veja o histórico de edições)
Postado Agosto 28, 2014 10 anos Autor UP @PP Caso sejam necessárias ainda mais informações , podem perguntar.
Postado Agosto 28, 2014 10 anos Em 25/08/2014 em 23:22, Born Retarded disse: O problema : O Npc não responde quando eu digo Hi/Oi/Olá XML Mostrar conteúdo oculto Mostrar conteúdo oculto <?xml version="1.0"?> <npc name="Diamond Trader" script="data/npc/scripts/diamondtrader.lua" access="5" lookdir="2" walkinterval="0"> <parameter key="message_greet" value="Ola |PLAYERNAME|. Deseja trocar diamonds por itens ? Diga {items}." /> LUA Mostrar conteúdo oculto Mostrar conteúdo oculto keywordHandler:addKeyword({'items'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Eu troco {bag of pollem} por diamonds."}) local node1 = keywordHandler:addKeyword({'bag of pollem'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer trocar 50 diamonds por 1 bag of pollem?? Yes or no??'}) node1:addChildKeyword({'yes'}, jestervip, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, volte quando quiser negociar!', reset = true}) . no lugar de XML Mostrar conteúdo oculto <?xml version="1.0"?> <npc name="Diamond Trader" script="data/npc/scripts/diamondtrader.lua" access="5" lookdir="2" walkinterval="0"> <parameter key="message_greet" value="Ola |PLAYERNAME|. Deseja trocar diamonds por itens ? Diga {items}." /> tente por XML Mostrar conteúdo oculto <?xml version="1.0"?> <npc name="Diamond Trader" script="data/npc/scripts/diamondtrader.lua" access="1" lookdir="2" walkinterval="0"> <parameter key="message_greet" value="Ola |PLAYERNAME|. Deseja trocar diamonds por itens ? Diga {items}." /> no lugar de LUA Mostrar conteúdo oculto keywordHandler:addKeyword({'items'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Eu troco {bag of pollem} por diamonds."}) local node1 = keywordHandler:addKeyword({'bag of pollem'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer trocar 50 diamonds por 1 bag of pollem?? Yes or no??'}) node1:addChildKeyword({'yes'}, jestervip, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, volte quando quiser negociar!', reset = true}) tente LUA Mostrar conteúdo oculto keywordHandler:addKeyword({'items'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "Eu troco {bag of pollem} por {diamonds."}) local node1 = keywordHandler:addKeyword({'bag of pollem'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer trocar 50 diamonds por 1 bag of pollem?? {Yes} or {no} ??'}) node1:addChildKeyword({'yes'}, jestervip, {npcHandler = npcHandler, onlyFocus = true, reset = true}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, volte quando quiser negociar!', reset = true})
Postado Agosto 28, 2014 10 anos Autor Os seguintes erros apareceram ao utilizar o comando /n dentro do jogo : [28/08/2014 03:00:05] [Warning - Npc::loadFromXml] Cannot load npc file (data/npc/Diamond Trader.xml). [28/08/2014 03:00:05] Info: failed to load external entity "data/npc/Diamond Trader.xml" [28/08/2014 03:00:14] [Warning - Npc::loadFromXml] Cannot load npc file (data/npc/diamondtrader.xml). [28/08/2014 03:00:14] Line: 3, Info: Premature end of data in tag npc line 2 [28/08/2014 03:05:07] [Error - Npc interface] [28/08/2014 03:05:07] data/npc/scripts/default.lua:onThink [28/08/2014 03:05:07] Description: [28/08/2014 03:05:07] Stack size changed! [28/08/2014 03:05:19] [Warning - Npc::loadFromXml] Cannot load npc file (data/npc/diamondtrader.xml). [28/08/2014 03:05:19] Line: 3, Info: Premature end of data in tag npc line 2 Editado Agosto 28, 2014 10 anos por Born Retarded (veja o histórico de edições)
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.