[Resolvido] Npc Troca itens por outro

jeriposcleide
em Resolvidos

jeriposcleide

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/01/08Posts: 12Gênero: MasculinoChar no Tibia: Nao tenho

 

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)

 

 

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
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())

 

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

jeriposcleide

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/01/08Posts: 12Gênero: MasculinoChar no Tibia: Nao tenho
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

Drk Shadow

https://www.facebook.com/PokeXCrazy/
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 07/01/12Posts: 495Gênero: MasculinoChar no Tibia: Nem Tenho

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

 

Dá uma conferida no meu projeto =)

https://www.facebook.com/PokeXCrazy/

signa.png

jeriposcleide

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/01/08Posts: 12Gênero: MasculinoChar no Tibia: Nao tenho
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 :/

 

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
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

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

Drk Shadow

https://www.facebook.com/PokeXCrazy/
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 07/01/12Posts: 495Gênero: MasculinoChar no Tibia: Nem Tenho
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>

 

Dá uma conferida no meu projeto =)

https://www.facebook.com/PokeXCrazy/

signa.png

jeriposcleide

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/01/08Posts: 12Gênero: MasculinoChar no Tibia: Nao tenho

cara consegui arrumar aqui, mas obrigado haha

REP +

 

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
3 horas atrás, jeriposcleide disse:

cara consegui arrumar aqui, mas obrigado haha

REP +

 

Marque como Melhor resposta, JA PODE SER FECHADO ESSE TOPICO

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

Mudrock

Eternal Liers
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 24/12/09Posts: 1002Gênero: MasculinoChar no Tibia: Necromanser

O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para Pedidos - Resolvidos. Se você tiver outros pedidos, crie um novo tópico.

Antenciosamente, Mudrock

Mensagens privadas somente sobre outros assuntos!

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 
 

tumblr_ntxzlfQp3v1uyo57xo8_500.gif (500×225)

 

MudrockAprova#

- EkzGuard