Postado Abril 7, 2017 8 anos Bom dia! Gostaria de pedir um NPC que teleportasse para um local e que cobrasse 1 ou 2 itens e Crystal Coins.. Testei vários mais nada funciona, espero que alguém possa ajudar! Obrigado.
Postado Abril 7, 2017 8 anos Solução Bom dia amigo, é só pegar um script de um NPC, e executar uma ação retirando os Itens, e o crystal coin, e o teleportando, veja só: Crie um arquivo XML na pasta data/npc/ chamado de TravelerTK, e coloque esse código dentro do arquivo: Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="Trevor" script="travelertk.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="59" body="76" legs="48" feet="48"/> </npc> Depois, vá na pasta data/npc/scripts e crie um arquivo denominado de travelertk.lua, e coloque esse código dentro do arquivo: Spoiler -- Script de Travel feito por Soy Colombia, se for usá-lo, deixe os créditos. -- 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 function santaNPC(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (parameters.present == true) then -- Não mexa em nada, em cima. -- doPlayerRemoveItem(cid, ID DO ITEM 1, QUANTIDADE) doPlayerRemoveItem(cid, ID DO ITEM 2, QUANTIDADE) doPlayerRemoveItem(cid, 2160, QUANTIDADE) -- Crystal Coins npcHandler:say('Voce foi teleportado para o nome do local.', cid) -- Mensagem que vai aparecer no bate papo após o player ser teletransportado. doPlayerSendCancel("A viagem custou um item1, um item2 e x Crystal Coins.") -- Mandar uma mensagem em cima do bate papo falando quanto custou. Renomeie os nomes em laranja elseif getPlayerItemCount(cid,2141) <= 0 then npcHandler:say('Voce nao tem um item1, ou um item2 ou x Crystal Coins. ', cid) -- Mensagem após o player tentar ser teletransportado mas nao tiver um ou outro item solicitado end npcHandler:resetNpc() return true end npcHandler:setMessage(MESSAGE_GREET, "Ola |PLAYERNAME|. Voce desejaria {viajar} para o nome do local?") -- Mensagem que vai aparecer após o player falar "hi" local noNode = KeywordNode:new({'no'}, santaNPC, {present = false}) -- Não mexa. local nooNode = KeywordNode:new({'nao'}, santaNPC, {present = false}) -- Não mexa. local yessNode = KeywordNode:new({'sim'}, santaNPC, {present = true}) -- Não mexa. local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true}) -- Não mexa. local node = keywordHandler:addKeyword({'viajar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'A viagem vai lhe custar um item1, um item2 e x Crystal Coins. Voce esta disposto a pagar por isso?'}) -- Mensagem que vai aparecer após o player falar viajar, para confirmar a viagem. node:addChildKeywordNode(yesNode) -- Não mexa. node:addChildKeywordNode(yessNode) -- Não mexa. node:addChildKeywordNode(noNode) -- Não mexa. node:addChildKeywordNode(nooNode) -- Não mexa. npcHandler:addModule(FocusModule:new()) -- Não mexa. -- Coisas que você precisa saber: -- Se você quiser mudar o que o player precisa falar pra ser teletransportado, você deve substituir ali onde tem "Voce desejaria {viajar} para...", o {viajar} por {palavra}, assim, vai ficar destacado -- Se voce quiser trocar as palavras ditas pra confirmar ou sair fora da viagem, mude as palavras azuis ali em "no, nao, sim e yes", tendo sempre em mente que no e não retornam falso e sim e yes retornam verdadeiro. -- Qualquer dúvida me cite aqui no tópico. It should works. Se eu te ajudei, não esqueça de me reputar, isto ajuda muito.
Postado Abril 7, 2017 8 anos Autor 22 minutos atrás, SoyColombiaa disse: Bom dia amigo, é só pegar um script de um NPC, e executar uma ação retirando os Itens, e o crystal coin, e o teleportando, veja só: Crie um arquivo XML na pasta data/npc/ chamado de TravelerTK, e coloque esse código dentro do arquivo: Mostrar conteúdo oculto <?xml version="1.0" encoding="UTF-8"?> <npc name="Trevor" script="travelertk.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="59" body="76" legs="48" feet="48"/> </npc> Depois, vá na pasta data/npc/scripts e crie um arquivo denominado de travelertk.lua, e coloque esse código dentro do arquivo: Mostrar conteúdo oculto -- Script de Travel feito por Soy Colombia, se for usá-lo, deixe os créditos. -- 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 function santaNPC(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (parameters.present == true) then -- Não mexa em nada, em cima. -- doPlayerRemoveItem(cid, ID DO ITEM 1, QUANTIDADE) doPlayerRemoveItem(cid, ID DO ITEM 2, QUANTIDADE) doPlayerRemoveItem(cid, 2160, QUANTIDADE) -- Crystal Coins npcHandler:say('Voce foi teleportado para o nome do local.', cid) -- Mensagem que vai aparecer no bate papo após o player ser teletransportado. doPlayerSendCancel("A viagem custou um item1, um item2 e x Crystal Coins.") -- Mandar uma mensagem em cima do bate papo falando quanto custou. Renomeie os nomes em laranja elseif getPlayerItemCount(cid,2141) <= 0 then npcHandler:say('Voce nao tem um item1, ou um item2 ou x Crystal Coins. ', cid) -- Mensagem após o player tentar ser teletransportado mas nao tiver um ou outro item solicitado end npcHandler:resetNpc() return true end npcHandler:setMessage(MESSAGE_GREET, "Ola |PLAYERNAME|. Voce desejaria {viajar} para o nome do local?") -- Mensagem que vai aparecer após o player falar "hi" local noNode = KeywordNode:new({'no'}, santaNPC, {present = false}) -- Não mexa. local nooNode = KeywordNode:new({'nao'}, santaNPC, {present = false}) -- Não mexa. local yessNode = KeywordNode:new({'sim'}, santaNPC, {present = true}) -- Não mexa. local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true}) -- Não mexa. local node = keywordHandler:addKeyword({'viajar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'A viagem vai lhe custar um item1, um item2 e x Crystal Coins. Voce esta disposto a pagar por isso?'}) -- Mensagem que vai aparecer após o player falar viajar, para confirmar a viagem. node:addChildKeywordNode(yesNode) -- Não mexa. node:addChildKeywordNode(yessNode) -- Não mexa. node:addChildKeywordNode(noNode) -- Não mexa. node:addChildKeywordNode(nooNode) -- Não mexa. npcHandler:addModule(FocusModule:new()) -- Não mexa. -- Coisas que você precisa saber: -- Se você quiser mudar o que o player precisa falar pra ser teletransportado, você deve substituir ali onde tem "Voce desejaria {viajar} para...", o {viajar} por {palavra}, assim, vai ficar destacado -- Se voce quiser trocar as palavras ditas pra confirmar ou sair fora da viagem, mude as palavras azuis ali em "no, nao, sim e yes", tendo sempre em mente que no e não retornam falso e sim e yes retornam verdadeiro. -- Qualquer dúvida me cite aqui no tópico. It should works. Se eu te ajudei, não esqueça de me reputar, isto ajuda muito. Olá tudo certo amigo? Desculpe a ignorância, mais onde fica para eu por as coordenadas para o teleporte?
Postado Abril 7, 2017 8 anos 42 minutos atrás, tirso disse: Olá tudo certo amigo? Desculpe a ignorância, mais onde fica para eu por as coordenadas para o teleporte? Que nada, eu que esqueci de por POSKAOPEKAPO, faça o seguinte, substitui o código do arquivo por este aqui: Spoiler -- Script de Travel feito por Soy Colombia, se for usá-lo, deixe os créditos. -- 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 function santaNPC(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (parameters.present == true) then -- Não mexa em nada, em cima. -- doPlayerRemoveItem(cid, ID DO ITEM 1, QUANTIDADE) doPlayerRemoveItem(cid, ID DO ITEM 2, QUANTIDADE) doPlayerRemoveItem(cid, 2160, QUANTIDADE) -- Crystal Coins local pos = {x = 1347, y = 1210, z = 7} -- Coloque a coordenada doTeleportThing(cid, pos) npcHandler:say('Voce foi teleportado para o nome do local.', cid) -- Mensagem que vai aparecer no bate papo após o player ser teletransportado. doPlayerSendCancel("A viagem custou um item1, um item2 e x Crystal Coins.") -- Mandar uma mensagem em cima do bate papo falando quanto custou. Renomeie os nomes em laranja elseif getPlayerItemCount(cid,2141) <= 0 then npcHandler:say('Voce nao tem um item1, ou um item2 ou x Crystal Coins. ', cid) -- Mensagem após o player tentar ser teletransportado mas nao tiver um ou outro item solicitado end npcHandler:resetNpc() return true end npcHandler:setMessage(MESSAGE_GREET, "Ola |PLAYERNAME|. Voce desejaria {viajar} para o nome do local?") -- Mensagem que vai aparecer após o player falar "hi" local noNode = KeywordNode:new({'no'}, santaNPC, {present = false}) -- Não mexa. local nooNode = KeywordNode:new({'nao'}, santaNPC, {present = false}) -- Não mexa. local yessNode = KeywordNode:new({'sim'}, santaNPC, {present = true}) -- Não mexa. local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true}) -- Não mexa. local node = keywordHandler:addKeyword({'viajar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'A viagem vai lhe custar um item1, um item2 e x Crystal Coins. Voce esta disposto a pagar por isso?'}) -- Mensagem que vai aparecer após o player falar viajar, para confirmar a viagem. node:addChildKeywordNode(yesNode) -- Não mexa. node:addChildKeywordNode(yessNode) -- Não mexa. node:addChildKeywordNode(noNode) -- Não mexa. node:addChildKeywordNode(nooNode) -- Não mexa. npcHandler:addModule(FocusModule:new()) -- Não mexa. -- Coisas que você precisa saber: -- Se você quiser mudar o que o player precisa falar pra ser teletransportado, você deve substituir ali onde tem "Voce desejaria {viajar} para...", o {viajar} por {palavra}, assim, vai ficar destacado -- Se voce quiser trocar as palavras ditas pra confirmar ou sair fora da viagem, mude as palavras azuis ali em "no, nao, sim e yes", tendo sempre em mente que no e não retornam falso e sim e yes retornam verdadeiro. -- Qualquer dúvida me cite aqui no tópico. It should works.
Postado Abril 7, 2017 8 anos Autor 15 minutos atrás, SoyColombiaa disse: Que nada, eu que esqueci de por POSKAOPEKAPO, faça o seguinte, substitui o código do arquivo por este aqui: Mostrar conteúdo oculto -- Script de Travel feito por Soy Colombia, se for usá-lo, deixe os créditos. -- 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 function santaNPC(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if (parameters.present == true) then -- Não mexa em nada, em cima. -- doPlayerRemoveItem(cid, ID DO ITEM 1, QUANTIDADE) doPlayerRemoveItem(cid, ID DO ITEM 2, QUANTIDADE) doPlayerRemoveItem(cid, 2160, QUANTIDADE) -- Crystal Coins local pos = {x = 1347, y = 1210, z = 7} -- Coloque a coordenada doTeleportThing(cid, pos) npcHandler:say('Voce foi teleportado para o nome do local.', cid) -- Mensagem que vai aparecer no bate papo após o player ser teletransportado. doPlayerSendCancel("A viagem custou um item1, um item2 e x Crystal Coins.") -- Mandar uma mensagem em cima do bate papo falando quanto custou. Renomeie os nomes em laranja elseif getPlayerItemCount(cid,2141) <= 0 then npcHandler:say('Voce nao tem um item1, ou um item2 ou x Crystal Coins. ', cid) -- Mensagem após o player tentar ser teletransportado mas nao tiver um ou outro item solicitado end npcHandler:resetNpc() return true end npcHandler:setMessage(MESSAGE_GREET, "Ola |PLAYERNAME|. Voce desejaria {viajar} para o nome do local?") -- Mensagem que vai aparecer após o player falar "hi" local noNode = KeywordNode:new({'no'}, santaNPC, {present = false}) -- Não mexa. local nooNode = KeywordNode:new({'nao'}, santaNPC, {present = false}) -- Não mexa. local yessNode = KeywordNode:new({'sim'}, santaNPC, {present = true}) -- Não mexa. local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true}) -- Não mexa. local node = keywordHandler:addKeyword({'viajar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'A viagem vai lhe custar um item1, um item2 e x Crystal Coins. Voce esta disposto a pagar por isso?'}) -- Mensagem que vai aparecer após o player falar viajar, para confirmar a viagem. node:addChildKeywordNode(yesNode) -- Não mexa. node:addChildKeywordNode(yessNode) -- Não mexa. node:addChildKeywordNode(noNode) -- Não mexa. node:addChildKeywordNode(nooNode) -- Não mexa. npcHandler:addModule(FocusModule:new()) -- Não mexa. -- Coisas que você precisa saber: -- Se você quiser mudar o que o player precisa falar pra ser teletransportado, você deve substituir ali onde tem "Voce desejaria {viajar} para...", o {viajar} por {palavra}, assim, vai ficar destacado -- Se voce quiser trocar as palavras ditas pra confirmar ou sair fora da viagem, mude as palavras azuis ali em "no, nao, sim e yes", tendo sempre em mente que no e não retornam falso e sim e yes retornam verdadeiro. -- Qualquer dúvida me cite aqui no tópico. It should works. Dei um reload mais ele nao cria nem o npc :s
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.