Lbtg
Intermediate OT User
- Joined
- Nov 22, 2008
- Messages
- 2,311
- Reaction score
- 133
Please help with quests system, script so i can put quests in maps, example
Action ID - 2000 for quests containers to add in map editor
UNIQ ID - Storage ID
And inside of choosen container box, chest, died body antyhing, whats put inside player gets as reward and gets storage so its lifetime reward
Code i trying to work with
Now its like 1 first quest i click working, and all other i start click it says ' the chest is empty', tho on map editor UNIQ ids of containers is different.
Thanks in advance
Action ID - 2000 for quests containers to add in map editor
UNIQ ID - Storage ID
And inside of choosen container box, chest, died body antyhing, whats put inside player gets as reward and gets storage so its lifetime reward
Code i trying to work with
Lua:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if not storage then
storage = item.uid
if storage > 65535 then
return false
end
end
if player:getStorageValue(storage) > 0 then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'The ' .. ItemType(item.itemid):getName() .. ' is empty.')
return true
end
local items, reward = {}
local size = item:isContainer() and item:getSize() or 0
if size == 0 then
reward = item:clone()
else
local container = Container(item.uid)
for i = 0, container:getSize() - 1 do
items[#items + 1] = container:getItem(i):clone()
end
end
size = #items
if size == 1 then
reward = items[1]:clone()
end
local result = ''
if reward then
local ret = ItemType(reward.itemid)
if ret:isRune() then
result = ret:getArticle() .. ' ' .. ret:getName() .. ' (' .. reward.type .. ' charges)'
elseif ret:isStackable() and reward:getCount() > 1 then
result = reward:getCount() .. ' ' .. ret:getPluralName()
elseif ret:getArticle() ~= '' then
result = ret:getArticle() .. ' ' .. ret:getName()
else
result = ret:getName()
end
else
if size > 20 then
reward = Game.createItem(item.itemid, 1)
elseif size > 8 then
reward = Game.createItem(1988, 1)
else
reward = Game.createItem(1987, 1)
end
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
local ret = ItemType(reward.itemid)
result = ret:getArticle() .. ' ' .. ret:getName()
end
if player:addItemEx(reward) ~= RETURNVALUE_NOERROR then
local weight = reward:getWeight()
if player:getFreeCapacity() < weight then
player:sendCancelMessage(string.format('You have found %s weighing %.2f oz. You have no capacity.', result, (weight / 100)))
else
player:sendCancelMessage('You have found ' .. result .. ', but you have no room to take it.')
end
return true
end
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have found ' .. result .. '.')
player:setStorageValue(storage, 1)
return true
end
Now its like 1 first quest i click working, and all other i start click it says ' the chest is empty', tho on map editor UNIQ ids of containers is different.
Thanks in advance