Fiz rapidinho aqui, qualquer erro, só postar:
XML (OBS: Não se esqueça de configurá-lo corretamente [no caso, looktype, head, body, name, etc])
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Nome do npc" script="tradenpc.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="1485" head="10" body="15" legs="20" feet="25"/>
<parameters>
<parameter key="message_greet" value="Ola, eu posso {trocar} alguns items por 30 Major Tokens."/>
</parameters>
</npc>
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
local t = {items = {xxx, yyy, zzz}, give_items = {xxx, yyy, zzz}}
local cfg = {
token_id = xxx, --ID do Major Token.
token_qnt = 30, --Quantidade de Major Tokens que o player terá que dar pro NPC.
}
if msgcontains(msg, 'trocar') or msgcontains(msg, 'troca') then
selfSay("Então, você gostaria de trocar "..token_qnt.." Major Tokens por x quantidade de x items?", cid)
talkState[talkUser] = 1
return true
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
if getPlayerItemCount(cid, cfg.token_id) >= cfg.token_qnt then
item = t.items
qnt = t.give_items
for a, b in pairs(t) do
for i = 1, #item do
selfSay("Certo, aqui estão os items!", cid)
doPlayerRemoveItem(cid, cfg.token_id, cfg.token_qnt)
doPlayerAddItem(cid, item[i], qnt[i])
talkState[talkUser] = 0
return true
end
end
else
selfSay("Você não tem os items necessários...", cid)
talkState[talkUser] = 0
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())Sobre a tabela t, mude em items os items que irá ganhar, e a quantidade em give_items. Por exemplo, você quer que o player receba os items de ID 2156 (4 unidades) e 2157(7 unidades). Então, a configuração ficaria assim: local t = {items = {2156, 2157}, give_items = {4, 7}} Se o ID do item fica na primeira posição da tabela items, então sua quantidade deve ficar na primeira posição da tabela give_items.




info
Grupo: Cavaleiro
Registrado: 27/09/12
Posts: 160
Reputação: +13
Char no Tibia: Não tenho mais
Galera preciso de ajuda com um npc exemplo do npc
o npc pede 30 major token por 1 item que no caso do meu servidor baiak 10.1 e edita vai ser warzone earth rod e eu queria uma script configuravel que adicionasse mais items que nao e so um
REP +