Ir para conteúdo
  • 0

[Resolvido] Npc Troca itens por outro


jeriposcleide

Pergunta

 

Bom dia galera, é o seguinte....

 

 

Eu gostaria de um npc que ao dizer "Hi" a ele, eu pudesse editar sua fala para contar uma historia "x", e, no meio desse texto, caso o player diga "Jester Rod", o npc diga o seguinte:

 

 

 

 

 

"Eu sou o grande escolhido para poder criar este grande item... mas para isso sao necessarios 10 jester essence (8303), 1 holy falcon (2141) e 1 medal of honour (5785). Deseja Forjar este item?"

 

 

 

 

 

Quando o player digitar "Forjar" ele troque os 3 itens:

 

 

10 jester essence (8303)

 

 

1 holy falcon (2141) 

 

 

1 medal of honour (5785)

 

 

 

 

 

Pela:

 

 

Jester Rod (7958)

 

 

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 1

Fiz aqui rapidinho e está funcionando, testa ai: 

 
local focus = 0local talk_start = 0local conv = 0local target = 0local following = falselocal attacking = falselocal talkState = {}local finalname = ""function msgcontains(txt, str)return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))endfunction onCreatureSay(cid, type, msge)local msg = string.lower(msge)local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid------ CONFIGURE AQUI TUDO DO NPC --------------local config = {historiaInicial = "XXXXXX", -- Mensagem quando o player dizer hi.wordsToNextHistory = 'xx', -- qual palavra o player tem que falar para ele continuar a históriasegundaHistoria = "Eu sou o grande escolhido para poder criar este grande item... mas para isso sao necessarios 10 jester essence (8303), 1 holy falcon (2141) e 1 medal of honour (5785). Deseja Forjar este item?", -- História que o npc vai contar após o player dizer as palavras acimawordsToForge = 'xx', -- palavra que o player tem que dizer para forjar os itemsitem1 = {8303, 10}, -- id do item 1 que vai precisar, quantidadeitem2 = {2141, 1}, -- id do item 2 que vai precisar, quantidadeitem3 = {5785, 1}, -- id do item 3 que vai precisar, quantidadeitemFinal = {7958, 1}, -- id do item que vai ganhar, se o player tiver os itens acimafinalHistory = "XXXXX", -- Oque o npc vai falar depois que trocarnotHave = "Você não tem", -- Oque o npc vai falar se o player não tiver os itens necessáriostalkType = TALKTYPE_ORANGE_1, -- tipo de fala do npc}--------------------------------------------------------------if (msgcontains(msg, 'hi')) thendoCreatureSay(getNpcId(), config.historialInicial, config.talkType)endif (msgcontains(msg, config.wordsToNextHistory )) thendoCreatureSay(getNpcId(), config.segundaHistoria, config.talkType)endif (msgcontains(msg, 'config.wordsToForge')) thenif doPlayerRemoveItem(cid, config.item1[1], config.item1[2]) and doPlayerRemoveItem(cid, config.item2[1], config.item2[2]) and doPlayerRemoveItem(cid, config.item3[1], config.item3[2]) thendoCreatureSay(getNpcId(), config.finalHistory, config.talkType)doPlayerAddItem(cid, config.itemFinal[1], config.itemFinal[2])elsedoCreatureSay(getNpcId(), config.notHave, config.talkType)return trueendreturn trueendreturn trueend

 

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

  • 0
3 horas atrás, jeriposcleide disse:

Bom dia galera, é o seguinte....

Eu gostaria de um npc que ao dizer "Hi" a ele, eu pudesse editar sua fala para contar uma historia "x", e, no meio desse texto, caso o player diga "Jester Rod", o npc diga o seguinte:

 

"Eu sou o grande escolhido para poder criar este grande item... mas para isso sao necessarios 10 jester essence (8303), 1 holy falcon (2141) e 1 medal of honour (5785). Deseja Forjar este item?"

 

Quando o player digitar "Forjar" ele troque os 3 itens:

10 jester essence (8303)

1 holy falcon (2141) 

1 medal of honour (5785)

 

Pela:

Jester Rod (7958)

Ver Se Esse Server 

Spoiler

STORAGE = 100012 -- Não Mecha

ITEM = 7958 -- Item a ser adicionado para completar a quest

QUANT = 1 -- Quantidade de items a ser adicionado

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

 

if (getPlayerStorageValue(cid, STORAGE) < 1) then

doPlayerRemoveItem(cid,8303,1)

doPlayerRemoveItem(cid,2141,1)

doPlayerRemoveItem(cid,5785,1)

doPlayerAddItem(cid, ITEM, QUANT)

setPlayerStorageValue(cid, STORAGE, 1)

npcHandler:say('Obrigado e Boa Sorte na sua jornada', cid)

else

npcHandler:say('Eu ja te dei sua missao.', cid)

end

end

npcHandler:resetNpc()

return true

end

npcHandler:setMessage(MESSAGE_GREET, "Olá |PLAYERNAME|. Eu Tenho uma {mission} para voce.")

local noNode = KeywordNode:new({'no'}, santaNPC, {present = false})

local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true})

local node = keywordHandler:addKeyword({'mission'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Menssagem de Missao Entregue'})

node:addChildKeywordNode(yesNode)

node:addChildKeywordNode(noNode)

npcHandler:addModule(FocusModule:new())

 

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, Marshmello disse:

Ver Se Esse Server 

  Mostrar conteúdo oculto

STORAGE = 100012 -- Não Mecha

ITEM = 7958 -- Item a ser adicionado para completar a quest

QUANT = 1 -- Quantidade de items a ser adicionado

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

 

if (getPlayerStorageValue(cid, STORAGE) < 1) then

doPlayerRemoveItem(cid,8303,1)

doPlayerRemoveItem(cid,2141,1)

doPlayerRemoveItem(cid,5785,1)

doPlayerAddItem(cid, ITEM, QUANT)

setPlayerStorageValue(cid, STORAGE, 1)

npcHandler:say('Obrigado e Boa Sorte na sua jornada', cid)

else

npcHandler:say('Eu ja te dei sua missao.', cid)

end

end

npcHandler:resetNpc()

return true

end

npcHandler:setMessage(MESSAGE_GREET, "Olá |PLAYERNAME|. Eu Tenho uma {mission} para voce.")

local noNode = KeywordNode:new({'no'}, santaNPC, {present = false})

local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true})

local node = keywordHandler:addKeyword({'mission'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Menssagem de Missao Entregue'})

node:addChildKeywordNode(yesNode)

node:addChildKeywordNode(noNode)

npcHandler:addModule(FocusModule:new())

 

Cara nao deu certo, tipo ele me entregou a rod mesmo sem eu ter os itens na bp...

E outra nao quero quantidade limite de trocas... sempre q o player tiver os itens ele pode ir la e trocar dnv... mas obg

Link para o comentário
Compartilhar em outros sites

  • 0
15 minutos atrás, Pokemonultimatetwo disse:

Fiz aqui rapidinho e está funcionando, testa ai: 

  Ocultar conteúdo
local focus = 0local talk_start = 0local conv = 0local target = 0local following = falselocal attacking = falselocal talkState = {}local finalname = ""function msgcontains(txt, str)return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))endfunction onCreatureSay(cid, type, msge)local msg = string.lower(msge)local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid------ CONFIGURE AQUI TUDO DO NPC --------------local config = {historiaInicial = "XXXXXX", -- Mensagem quando o player dizer hi.wordsToNextHistory = 'xx', -- qual palavra o player tem que falar para ele continuar a históriasegundaHistoria = "Eu sou o grande escolhido para poder criar este grande item... mas para isso sao necessarios 10 jester essence (8303), 1 holy falcon (2141) e 1 medal of honour (5785). Deseja Forjar este item?", -- História que o npc vai contar após o player dizer as palavras acimawordsToForge = 'xx', -- palavra que o player tem que dizer para forjar os itemsitem1 = {8303, 10}, -- id do item 1 que vai precisar, quantidadeitem2 = {2141, 1}, -- id do item 2 que vai precisar, quantidadeitem3 = {5785, 1}, -- id do item 3 que vai precisar, quantidadeitemFinal = {7958, 1}, -- id do item que vai ganhar, se o player tiver os itens acimafinalHistory = "XXXXX", -- Oque o npc vai falar depois que trocarnotHave = "Você não tem", -- Oque o npc vai falar se o player não tiver os itens necessáriostalkType = TALKTYPE_ORANGE_1, -- tipo de fala do npc}--------------------------------------------------------------if (msgcontains(msg, 'hi')) thendoCreatureSay(getNpcId(), config.historialInicial, config.talkType)endif (msgcontains(msg, config.wordsToNextHistory )) thendoCreatureSay(getNpcId(), config.segundaHistoria, config.talkType)endif (msgcontains(msg, 'config.wordsToForge')) thenif doPlayerRemoveItem(cid, config.item1[1], config.item1[2]) and doPlayerRemoveItem(cid, config.item2[1], config.item2[2]) and doPlayerRemoveItem(cid, config.item3[1], config.item3[2]) thendoCreatureSay(getNpcId(), config.finalHistory, config.talkType)doPlayerAddItem(cid, config.itemFinal[1], config.itemFinal[2])elsedoCreatureSay(getNpcId(), config.notHave, config.talkType)return trueendreturn trueendreturn trueend

 

cara voce fez o script exatamente do jeito que eu queria! porem, ele nao responde o hi :/

 

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, jeriposcleide disse:

Cara nao deu certo, tipo ele me entregou a rod mesmo sem eu ter os itens na bp...

E outra nao quero quantidade limite de trocas... sempre q o player tiver os itens ele pode ir la e trocar dnv... mas obg

D boa Man :D

Link para o comentário
Compartilhar em outros sites

  • 0
6 horas atrás, jeriposcleide disse:

cara voce fez o script exatamente do jeito que eu queria! porem, ele nao responde o hi :/

 

Tenta deixar o XML do Npc assim:

 

 

<?xml version="1.0" encoding="UTF-8"?><npc name="Name" script="Name.lua" walkinterval="0" floorchange="0" speed="0" lookdir="0"><health now="150" max="150"/><look type="2398" head="95" body="69" legs="114" feet="20"/>    <parameters>    </parameters></npc>

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...