Na moim servie silnik 'cryingdamson6pl1-gui' potrzebny jest skrypt do kazdego questu :/
a sprobuj TYLKO w unique wpisac id itema, bez ustawiania go w czarnej ramce.
<action itemid="1740" script="quests/quests.lua" />
<action itemid="1747" script="quests/quests.lua" />
<action itemid="1748" script="quests/quests.lua" />
<action itemid="1749" script="quests/quests.lua" />
<action itemid="1770" script="quests/quests.lua" />
local annihilatorReward = {1990, 2400, 2431, 2494}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.uid > 1000 and item.uid < 10000 then
local itemWeight = getItemWeightById(item.uid, 1)
local playerCap = getPlayerFreeCap(cid)
if isInArray(annihilatorReward, item.uid) == TRUE then
if getPlayerStorageValue(cid, 30015) == -1 then
if playerCap >= itemWeight then
if item.uid == 1990 then
local container = doPlayerAddItem(cid, 1990, 1)
doAddContainerItem(container[1], 2326, 1)
else
doPlayerAddItem(cid, item.uid, 1)
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Zdobyles ' .. getItemNameById(item.uid) .. '.')
setPlayerStorageValue(cid, 30015, 1)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ' Zdobyles ' .. getItemNameById(item.uid) .. ' weighing ' .. itemWeight .. ' oz it\'s too heavy.')
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Pusto")
end
elseif getPlayerStorageValue(cid, item.uid) == -1 then
if playerCap >= itemWeight then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ' Zdobyles ' .. getItemNameById(item.uid) .. '.')
doPlayerAddItem(cid, item.uid ,1)
setPlayerStorageValue(cid, item.uid, 1)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have found a ' .. getItemNameById(item.uid) .. ' weighing ' .. itemWeight .. ' oz it\'s too heavy.')
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Pusto")
end
else
return FALSE
end
return TRUE
end
Wiec co mam zrobic? :<
Mam w chuj questów. W każdej skrzynce mam id itemu w unique, a mimo to chesty otwieraja się jak pudła.
function copyItem(item)
if (isContainer(item.uid) == TRUE) then
uid = copyContainer(item.uid, item.itemid)
if item.actionid > 0 then
doSetItemActionId(uid, item.actionid)
end
return uid
else
return doCreateItemEx(item.itemid, item.type)
end
end
function copyContainer(uid, itemid)
local container = doCreateItemEx(itemid, 1)
local iterator = getContainerSize(uid)
while iterator > 0 do
iterator = iterator - 1
doAddContainerItemEx(container, copyItem(getContainerItem(uid, iterator)))
end
return container
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerStorageValue(cid, item.uid) ~= 1 then
local items = {}
local item_in = {}
local item_slot = 0
local item_to_give = 0
local item_desc = ''
while(true) do
item_in = getContainerItem(item.uid, item_slot)
if item_in.itemid > 0 then
table.insert(items, item_in)
else
break
end
item_slot = item_slot+1
end
if #items == 0 then
item_to_give = doCreateItemEx(item.uid)
item_desc = getItemNameById(item.uid)
elseif #items == 1 then
item_to_give = doCreateItemEx(items[1].itemid, items[1].type)
if items[1].actionid > 0 then
doSetItemActionId(item_to_give, items[1].actionid)
end
item_desc = getItemNameById(items[1].itemid)
else
if #items <= 8 then
item_to_give = doCreateItemEx(1987, 1)
else
item_to_give = doCreateItemEx(1988, 1)
end
local n = 0
local uid = 0
for i=1, #items do
n = #items - i + 1
uid = doAddContainerItemEx(item_to_give, copyItem(items[n]))
if items[n].actionid > 0 then
doSetItemActionId(uid, items[n].actionid)
end
item_desc = getItemNameById(items[n].itemid) .. item_desc
if i ~= #items then
item_desc = ", " .. item_desc
end
end
end
if doPlayerAddItemEx(cid, item_to_give, 0) == RETURNVALUE_NOERROR then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have found a ' .. item_desc .. '.')
setPlayerStorageValue(cid, item.uid, 1)
if item.uid < 2000 then
setPlayerStorageValue(cid, 1000, getPlayerStorageValue(cid,1000)+1)
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You don\'t have enought capacity or free place in backpack for a ' .. item_desc .. '.')
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")
end
return TRUE
end
<!-- Quests -->
<action itemid="1740" event="script" value="quests/system.lua"/>
<action itemid="1747" event="script" value="quests/system.lua"/>
<action itemid="1748" event="script" value="quests/system.lua"/>
<action itemid="1749" event="script" value="quests/system.lua"/>
elseif item.uid == 60102 then
if getPlayerStorageValue(cid,60102) == -1 then
doPlayerSendTextMessage(cid,25,"Znalazles Impaler - Gratulacje. ")
doPlayerAddItem(cid,7435,1)
setPlayerStorageValue(cid,60102,1)
else
doPlayerSendTextMessage(cid,25,"empty.")
end
