Ir para conteúdo

Featured Replies

Postado

@kinomoto não tem como fazer tal check direto da xml, então você teria que fazer um script que faça a mesma coisa, e nele você adicionaria os mesmo itens, isso por script, não tem como fazer por xml tal check. 

 

Irei fazer o npc por script.

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

  • Respostas 9
  • Visualizações 912
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @kinomoto sorry, esqueci completamente. Muitas notificações, e também andei um tiquin ocupado. Huahsuahs! Tava procurando uma notificação de alguns dias atrás, e então vir a sua. Kkkkk  

Postado
  • Autor
7 horas atrás, KotZletY disse:

@kinomoto não tem como fazer tal check direto da xml, então você teria que fazer um script que faça a mesma coisa, e nele você adicionaria os mesmo itens, isso por script, não tem como fazer por xml tal check. 

 

Irei fazer o npc por script.

poww mt obrigado msm :DD

Postado
  • Solução

@kinomoto sorry, esqueci completamente. Muitas notificações, e também andei um tiquin ocupado. Huahsuahs!

Tava procurando uma notificação de alguns dias atrás, e então vir a sua. Kkkkk

 

Bom, achei esse npc aqui mesmo no tk, porém tinha coisa desnecessária, linhas que não precisava, então eu o comprimir e deixei mais simples.

 

Spoiler

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


local storage = 1500 -- storage da quest
local Trade = {
{id=10522, buy=200, sell=0, name='crown backpack'},
{id=10518, buy=200, sell=0, name='demon backpack'},
}

local function setNewTradeTable(table)
local items = {}
  for _, v in ipairs(table) do
  items[v.id] = {itemId = v.id, buyPrice = v.buy, sellPrice = v.sell, subType = 0, realName = v.name}
  end
return items
end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
 return false
end

if(msgcontains(msg, 'Trade') or msgcontains(msg, 'trade')) and getPlayerStorageValue(cid, storage) == 1 then
selfSay('Essas são minhas ofertas!', cid)

local items = setNewTradeTable(Trade)
local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks)
 if items[item].buyPrice then
  doPlayerAddItem(cid, items[item].itemId, amount)
  doPlayerRemoveMoney(cid, items[item].buyPrice * amount)
  return true
 end
return true
end

openShopWindow(cid, Trade, onBuy, false)
else
selfSay('Desculpe, mas você não tem o que é necessário para negociar comigo.', cid)
end
return TRUE
end


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

 

 

Copia qualquer xml e modificar para usar esse script.

 

Hi, trade, 

 

se o player tiver a storage da quest, a storage que ganha nela, ele pode fazer, se não tiver, então o npc nem abre a janela de trade.

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Postado
  • Autor
11 horas atrás, KotZletY disse:

@kinomoto sorry, esqueci completamente. Muitas notificações, e também andei um tiquin ocupado. Huahsuahs!

Tava procurando uma notificação de alguns dias atrás, e então vir a sua. Kkkkk

 

Bom, achei esse npc aqui mesmo no tk, porém tinha coisa desnecessária, linhas que não precisava, então eu o comprimir e deixei mais simples.

 

  Ocultar conteúdo


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


local storage = 1500 -- storage da quest
local Trade = {
{id=10522, buy=200, sell=0, name='crown backpack'},
{id=10518, buy=200, sell=0, name='demon backpack'},
}

local function setNewTradeTable(table)
local items = {}
  for _, v in ipairs(table) do
  items[v.id] = {itemId = v.id, buyPrice = v.buy, sellPrice = v.sell, subType = 0, realName = v.name}
  end
return items
end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
 return false
end

if(msgcontains(msg, 'Trade') or msgcontains(msg, 'trade')) and getPlayerStorageValue(cid, storage) == 1 then
selfSay('Essas são minhas ofertas!', cid)

local items = setNewTradeTable(Trade)
local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks)
 if items[item].buyPrice then
  doPlayerAddItem(cid, items[item].itemId, amount)
  doPlayerRemoveMoney(cid, items[item].buyPrice * amount)
  return true
 end
return true
end

openShopWindow(cid, Trade, onBuy, false)
else
selfSay('Desculpe, mas você não tem o que é necessário para negociar comigo.', cid)
end
return TRUE
end


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

 

 

Copia qualquer xml e modificar para usar esse script.

 

Hi, trade, 

 

se o player tiver a storage da quest, a storage que ganha nela, ele pode fazer, se não tiver, então o npc nem abre a janela de trade.

Ficou mt bom!!! mt obrigado!! + REP

  • 2 months later...
Postado

Desculpe, desde já, reviver o tópico mas tentei fazer esse npc que além de vender items, compre... não consegui :(

 

local items = setNewTradeTable(Trade)
local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks)
	if items[item].buyPrice then
		doPlayerAddItem(cid, items[item].itemId, amount)
		doPlayerRemoveMoney(cid, items[item].buyPrice * amount)
		return true
    end
return true
end


openShopWindow(cid, Trade, onBuy, false)

local function onSell(cid, item, subType, amount, ignoreCap, inBackpacks)
if items[item].sellPrice then
		doPlayerRemoveItem(cid, items[item].itemId, amount)
		doPlayerAddMoney(cid, items[item].sellPrice * amount)
		return true
	end
return true
end
openShopWindow(cid, Trade, onSell, false)

Tentei fazer além de uma nova função, usar o elseif
Se puder dar uma força! 

obrigado! :)

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.7k

Informação Importante

Confirmação de Termo