Postado Maio 18, 2015 10 anos Olá, gostaria de pedir um NPC que troca item por item, exemplo, ele da a lista de itens que poderá trocar e o player escolhe o item, ele fala o preço e se sim, ele troca as "Pedras" pelo determinado item. (Moeda de troca - id:8300) UP
Postado Maio 18, 2015 10 anos Administrador Isso? local id1 = 9533 --id do item a ser trocado local id2 = 9533 --id do item a ser recebido local stor = 34444 -- storage que o npc vai adr pelo item local quantidade = 150 -- quantos itens player deve ter para trocar por storage local palavra = "trocar" --palavra chave pra falar com o npc pra trocar a storage local mensagem = "BLABLABLALBALBALBLALBALBLA." -- a mensagem que deve ser dita se ele não tiver o item 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 playerHaveItems(cid, itemid) local items = type(itemid) == "table" and itemid or {itemid} for i = 1, #items do if getPlayerItemCount(cid, items[i]) <= 0 then return false end end return true end function doPlayerRemoveItems(cid, itemid, count) local items = type(itemid) == "table" and itemid or {itemid} for i = 1, #items do doPlayerRemoveItem(cid, items[i], count ~= nil and count or 1) end return nil end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, palavra) then if playerHaveItems(cid, {id1}) then doPlayerRemoveItems(cid, {id1}, quantidade) doPlayerAddItems(cid, {id2}, quantidade) setPlayerStorageValue(cid, stor, 1) else selfSay(mensagem) end end return true endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Maio 18, 2015 10 anos Autor Isso? local id1 = 9533 --id do item a ser trocado local id2 = 9533 --id do item a ser recebido local stor = 34444 -- storage que o npc vai adr pelo item local quantidade = 150 -- quantos itens player deve ter para trocar por storage local palavra = "trocar" --palavra chave pra falar com o npc pra trocar a storage local mensagem = "BLABLABLALBALBALBLALBALBLA." -- a mensagem que deve ser dita se ele não tiver o item 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 playerHaveItems(cid, itemid) local items = type(itemid) == "table" and itemid or {itemid} for i = 1, #items do if getPlayerItemCount(cid, items[i]) <= 0 then return false end end return true end function doPlayerRemoveItems(cid, itemid, count) local items = type(itemid) == "table" and itemid or {itemid} for i = 1, #items do doPlayerRemoveItem(cid, items[i], count ~= nil and count or 1) end return nil end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, palavra) then if playerHaveItems(cid, {id1}) then doPlayerRemoveItems(cid, {id1}, quantidade) doPlayerAddItems(cid, {id2}, quantidade) setPlayerStorageValue(cid, stor, 1) else selfSay(mensagem) end end return true endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Já ajudou... porém, seria a lista normal de preços do NPC mas com essa moeda diferente...
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.