Você precisa fazer uma action pra isso e não colocar o item dentro do bau. Uma Action pra quando clicar, adicionar o item no player e não no container.
- Fórum
- OTServ
- Suporte
- Resolvidos
- [Resolvido] Quest Bugada
4
1.6k
info
Grupo: Administrador
Registrado: 23/07/06
Posts: 121
Reputação: +99
Gênero: Masculino
Char no Tibia: Politico

21 de maio de 2018 às 20:12
1 mês depois...
info
Grupo: Visconde
Registrado: 19/08/10
Posts: 379
Reputação: +161
Gênero: Masculino
Char no Tibia: Hexagrama

13 de junho de 2018 às 12:22
data/actions/actions.xml adicione
<action actionid="5000" script="quests.lua"/>
data/actions/scripts crie quests.lua e adicione
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local storage = specialQuests[item.uid]
if not storage then
storage = item.uid
if storage > 65535 then
return false
end
end
if player:getStorageValue(storage) > 0 then
player:sendTextMessage(MESSAGE_INFO_DESCR, "The " .. ItemType(item.itemid):getName() .. " is empty.")
return true
end
local targetItem = Item(item.uid)
local items = {}
local reward = nil
local size = targetItem:isContainer() and Container(item.uid):getSize() or 0
if size == 0 then
if questItems[item.uid] == nil then
reward = targetItem:clone()
else
for _,v in pairs(questItems[item.uid]) do
local newItem = Item(doCreateItemEx(v.id, v.count or v.subtype or 1))
if v.aid ~= nil then
newItem:setActionId(v.aid)
end
table.insert(items, newItem)
end
end
else
local container = Container(item.uid)
for i = 0, container:getSize() - 1 do
table.insert(items, container:getItem(i):clone())
end
end
local result = ""
local addon = addonQuests[item.uid]
if addon ~= nil then
player:addOutfitAddon(addon.outfit.male, addon.addon)
player:addOutfitAddon(addon.outfit.female, addon.addon)
result = addon.msg
else
size = #items
if size == 1 then
reward = items[1]:clone()
end
local weight = 0
if reward then
local ret = ItemType(reward:getId())
if ret:isRune() then
result = ret:getArticle() .. " " .. ret:getName() .. " (" .. reward:getSubType() .. " charges)"
elseif ret:isStackable() and reward:getCount() > 1 then
result = reward:getCount() .. " " .. ret:getPluralName()
else
result = ret:getArticle() .. " " .. ret:getName()
end
weight = weight + ret:getWeight(reward:getCount())
else
if size > 20 then
reward = Container(doCreateItemEx(item.itemid))
elseif size > 8 then
reward = Container(doCreateItemEx(1988))
else
reward = Container(doCreateItemEx(1987))
end
result = reward:getArticle() .. " " .. reward:getName()
for i = 1, size do
local tmp = items[i]
if reward:addItemEx(tmp) ~= RETURNVALUE_NOERROR then
print("[Warning] QuestSystem:", "Could not add quest reward to container")
end
end
weight = weight + ItemType(reward:getId()):getWeight()
end
if player:addItemEx(reward) ~= RETURNVALUE_NOERROR then
if player:getFreeCapacity() < weight then
player:sendCancelMessage("You have found " .. result .. " weighing " .. string.format("%.2f", weight) .. " oz. You have no capacity.")
else
player:sendCancelMessage("You have found " .. result .. ", but you have no room to take it.")
end
return true
end
end
if questsExperience[storage] ~= nil then
player:addExperience(questsExperience[storage], true)
end
player:sendTextMessage(MESSAGE_INFO_DESCR, "You have found " .. result .. ".")
player:setStorageValue(storage, 1)
return true
end
No mapa, coloque actionid 5000 no seu baú e o item que receberá.
8 meses depois...
20 de fevereiro de 2019 às 16:19
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.



info
Grupo: Campones
Registrado: 08/03/18
Posts: 98
Reputação: 0
Gênero: Masculino
alguem me explixa pq eu nao consigo fazer uma quest em meu dbo, eu faço tudo certinho mais quando eu clico no bau, eu abro ele como se fosse uma backpack e eu posso pegar o item de dentro, dae quando outra pessoa vai la, o item nao esta mais la dentro..... em Actiond Id eu boto 2000 ou 2002 nao lembro qual e em Unique Id boto 5999 e nao da certo....