Ir para conteúdo

Featured Replies

Postado

[NPC] Troca de Itens

Olá a Todos!

Introdução

Estou criando esse tópico, porque vejo que muitos tem dúvida e nada melhor para entender que um próprio exemplo, não achas?

Utilidade

Será um NPC, que trocará itens com o player, ou seja, pedirá Item1 e dará o Item2, que poderá ser configurado no script.

Código

Toddy.lua


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



-- Config --


local configs = {


	FirstItemId = 2455,

	FirstItemCount = 5,

	SecondItemId = 2321,

	SecondItemCount = 1,


	isQuest = "false",	

	questStorage = 17890,


	msgMeet = 'Você deseja trocar '..FirstItemCount .. ' '.. getItemName(FirstItemId) ..' por '.. SecondItemCount ..' '.. getItemName(SecondItemId) ..'?',

	msgQuestCompleted = "Você já fez essa quest.",

	msgQuestNotItem = "Voce não tem o item necessario.",


	}



function npcTroca(cid, message, keywords, parameters, node)


	if(not npcHandler:isFocused(cid)) then

		return false

	end


	if (configs.isQuest == "true") then

	if (getPlayerStorageValue(configs.questStorage) <= 0) then

		if (getItemCount(cid, configs.FirstItemId) == configs.FirstItemCount) then

			doRemoveItem(configs.FirstItemId, config.FirstItemCount)

			doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount)

		else

			return	 doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem)

		end

	else

		return doPlayerSendTextMessage(cid, 27, configs.msgQuestCompleted)

	end

   else

	if (getItemCount(cid, configs.FirstItemId) == configs.FirstItemCount) then

		doRemoveItem(configs.FirstItemId, config.FirstItemCount)

		doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount)

	else

		return	 doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem)

	end	

   end

end


itemTrade = keywordHandler:addKeyword({'offer'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = configs.msgMeet})

itemTrade:addChildKeyword({'yes'}, npcTroca, {})

itemTrade:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true})


npcHandler:addModule(FocusModule:new())

O código acima possui a acessibilidade de troca de IDs e Quantidades, para isso vá no CONFIGS e altere.

Quest?

Para colocar como uma quest so é necessário mudar de ["false"] para ["true"].

Espero que tenham entendido, qualquer dúvida posta no tópico!

Atenciosamente,

Aluccard.

Editado por Aluccard (veja o histórico de edições)

The life is hard: No projects for a while.

 

adfly.350x19.1.png

  • Respostas 8
  • Visualizações 5.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Pô, gostei bastante. A ideia é bem legal. Seria legal uma segunda versão onde o NPC pede múltiplos itens e dá um só, por exemplo

  • Bem diferente o NPC, com uma otima função, parabéns. A ideia do Lpz também e muito boa, tipo ele poderia pedir uma "receita" de items para trocar por um diferente com tal elemento.

  • ae no meu ot mapa heroserv 8.60 na hora de coloca on ocorre o seguinte erro: [Error - Npc interface] data/npc/scripts/vip coins trade.lua Description: (luaGetThing) Thing not found [Error

Postado

Bem diferente o NPC, com uma otima função, parabéns.

A ideia do Lpz também e muito boa, tipo ele poderia pedir uma "receita" de items para trocar por um diferente com tal elemento.

E-mail para contato: [email protected]

Quer ter um fórum mais organizado? Cumpra as regras!

EU VOLTEI GAROTAS!

31/12/2011

Atenciosamente,

Guilherme Salviati.

  • 2 weeks later...
Postado

ae no meu ot mapa heroserv 8.60 na hora de coloca on ocorre o seguinte erro:

[Error - Npc interface]

data/npc/scripts/vip coins trade.lua

Description:

(luaGetThing) Thing not found

[Error - Npc interface]

data/npc/scripts/vip coins trade.lua

Description:

data/lib/050-function.lua:234: attempt to index a boolean value

[Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/vip coins

trade.lua

Ajuda gente!

Só mais uma coisa, o script do meu Info Vip tá assim:

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

npcHandler:addModule(FocusModule:new())

Obs.: lá no bloco de notas tudo isso tá em uma linha só, e não separado.

Editado por Ot Creator (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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo