Ir para conteúdo

[Encerrado] Npc de troca.


Horktan

Posts Recomendados

Seria, simplesmente, um NPC que retira um único item x do player e adiciona 25 de outro item? Ou nesse NPC teria vários outros items, sendo uma espécie de Mark?

Estou indo para o curso de inglês agora, na volta, se ninguém tiver te ajudado ainda, tentarei fazer o NPC para você.

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

o .lua do npc (troque onde está 'itemId1 = ????' e 'itemId2 = ????', as interrogações pelo id dos itens, sendo o 1 o item que precisa de 25, e o 2 o item que irá ganhar.)



local keywordHandler = KeywordHandler:new()
 local npcHandler = NpcHandler:new(keywordHandler)
 NpcSystem.parseParameters(npcHandler)
 local talkState = {}
 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 creatureSayCallback(cid, type, msg)
 if(not npcHandler:isFocused(cid)) then
 return false
 end
 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
 ---------- MSGs ----------
local itemId1 = ????
local itemId2 = ????
if msgcontains(msg, 'trade coin') then
	selfSay("Do you want to trade 25 "..getItemInfo(itemId1).plural.." for only one "..getItemInfo(itemId2).name.."?", cid)
	talkState[talkUser] = 3
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then
	if doPlayerRemoveItem(cid, itemId1, 25) then
		selfSay("Very well! Take this "..getItemInfo(itemId2).name.." then.", cid)
		doPlayerAddItem(cid, itemId2, 1)
	else
		selfSay("You don't have 25 "..getItemInfo(itemId1).plural.."!.", cid)
	end
	talkState[talkUser] = 0
return true
end

return true
end

 npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
 npcHandler:addModule(FocusModule:new())

O xml coloque como quiser, mas basicamente é isso:



<?xml version="1.0" encoding="UTF-8"?>
<npc name="NPC de Troca" script="npcdetroca.lua" walkinterval="350000" floorchange="0" speed="0">
<health now="150" max="150"/>
<look type="510" head="91" body="114" legs="86" feet="0"/>
<parameters>
<parameter key="message_greet" value="Hello dear customer! Do you want to trade some coins?"/>
<parameter key="message_farewell" value="Good bye to you!"/>
<parameter key="message_idletimeout" value="Bye bye!"/>
<parameter key="message_walkaway" value="Oh, good bye then!"/>

</parameters>
</npc>
Editado por Akumah
Link para o comentário
Compartilhar em outros sites

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

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