Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local tabela = {}
- local function getPlayerList(cid)
- local tab = {}
- if getPlayerStorageValue(cid, 0442002) ~= -1 then
- table.insert(tab, getPlayerStorageValue(cid, 0442002))
- end
- if getPlayerStorageValue(cid, 0442003) ~= -1 then
- table.insert(tab, getPlayerStorageValue(cid, 0442003))
- end
- if getPlayerStorageValue(cid, 0442004) ~= -1 then
- table.insert(tab, getPlayerStorageValue(cid, 0442004))
- end
- if getPlayerStorageValue(cid, 0442005) ~= -1 then
- table.insert(tab, getPlayerStorageValue(cid, 0442005))
- end
- if #tab > 0 then
- return tab
- end
- return false
- end
- local function autoLoot(cid, pos)
- local check = false
- local str = ""
- local position = {}
- for i = 1, 255 do
- pos.stackpos = i
- if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then
- position = pos
- check = true
- break
- end
- end
- if check then
- local corpse = getContainerItemsInfo(getThingFromPos(position).uid)
- if corpse then
- for index, info in pairs(corpse) do
- if index < countTable(corpse) then
- if tonumber(info.uid) and tonumber(info.itemid) then
- if isContainer(info.uid) then
- local bag = getContainerItemsInfo(info.uid)
- for i = 1, countTable(bag) - 1 do
- if isInArray(getPlayerList(cid), bag[i].itemid) then
- if bag[i].quant > 1 then
- doRemoveItem(bag[i].uid, bag[i].quant)
- doPlayerAddItem(cid, bag[i].itemid, bag[i].quant)
- str = str.." "..bag[i].quant.." "..getItemNameById(bag[i].itemid)..","
- else
- doRemoveItem(bag[i].uid)
- doPlayerAddItem(cid, bag[i].itemid, 1)
- str = str.." 1 "..getItemNameById(bag[i].itemid)..","
- end
- end
- end
- end
- end
- end
- if isInArray(getPlayerList(cid), info.itemid) then
- if info.quant > 1 then
- doRemoveItem(info.uid, info.quant)
- doPlayerAddItem(cid, info.itemid, info.quant)
- str = str.." "..info.quant.." "..getItemNameById(info.itemid)..","
- else
- doRemoveItem(info.uid)
- doPlayerAddItem(cid, info.itemid, 1)
- str = str.." 1 "..getItemNameById(info.itemid)..","
- end
- end
- end
- end
- end
- tabela[getCreatureName(cid)] = {item = "[Auto Loot System] Coletados: "..str, gold = 0}
- end
- local function autoGold(cid, pos)
- local check = false
- local total = 0
- local position = {}
- for i = 1, 255 do
- pos.stackpos = i
- if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then
- position = pos
- check = true
- break
- end
- end
- if check then
- local corpse = getContainerItemsInfo(getThingFromPos(position).uid)
- if corpse then
- for index, info in pairs(corpse) do
- if info.uid and info.itemid then
- if index < countTable(corpse) then
- if isContainer(info.uid) then
- local bag = getContainerItemsInfo(info.uid)
- for i = 1, countTable(bag) - 1 do
- if isInArray({2148, 2152, 2160}, bag[i].itemid) then
- local multiplie = 1
- if bag[i].itemid == 2148 then
- multiplie = 1
- elseif bag[i].itemid == 2152 then
- multiplie = 100
- elseif bag[i].itemid == 2160 then
- multiplie = 10000
- end
- doRemoveItem(bag[i].uid, bag[i].quant)
- doPlayerSetBalance(cid, getPlayerBalance(cid) + (tonumber(bag[i].quant) and tonumber(bag[i].quant) * multiplie or 0))
- total = total + (tonumber(bag[i].quant) and tonumber(bag[i].quant) * multiplie or 0)
- doPlayerSetStorageValue(cid, 0442102, getPlayerStorageZero(cid, 0442102) + (tonumber(bag[i].quant) and tonumber(bag[i].quant) * multiplie or 0))
- end
- end
- end
- end
- if isInArray({2148, 2152, 2160}, info.itemid) then
- local multiplie = 1
- if info.itemid == 2148 then
- multiplie = 1
- elseif info.itemid == 2152 then
- multiplie = 100
- elseif info.itemid == 2160 then
- multiplie = 10000
- end
- doRemoveItem(info.uid, info.quant)
- doPlayerSetBalance(cid, getPlayerBalance(cid) + (tonumber(info.quant) and tonumber(info.quant) * tonumber(multiplie) or 0))
- doPlayerSetStorageValue(cid, 0442102, getPlayerStorageZero(cid, 0442102) + (tonumber(info.quant) and tonumber(info.quant) * tonumber(multiplie) or 0))
- total = total + (tonumber(info.quant) and tonumber(info.quant) * multiplie or 0)
- end
- end
- end
- end
- end
- if tabela[getCreatureName(cid)] and tabela[getCreatureName(cid)].gold then
- tabela[getCreatureName(cid)].gold = total
- end
- end
- local function sendMsg(cid)
- if tabela[getCreatureName(cid)] and tabela[getCreatureName(cid)].gold then
- if tabela[getCreatureName(cid)].gold == 0 then
- doPlayerSendTextMessage(cid, 23, tabela[getCreatureName(cid)].item)
- else
- doPlayerSendTextMessage(cid, 23, tabela[getCreatureName(cid)].item.." "..tabela[getCreatureName(cid)].gold.." gold coins.")
- end
- tabela[getCreatureName(cid)] = nil
- end
- end
- function onKill(cid, target, lastHit)
- if isPlayer(cid) and isMonster(target) then
- if getPlayerStorageValue(cid, 0442100) == 1 and getPlayerList(cid) then
- local pos = getCreaturePosition(target)
- addEvent(autoLoot, 500, cid, pos)
- end
- if getPlayerStorageValue(cid, 0442101) == 1 then
- local pos = getCreaturePosition(target)
- addEvent(autoGold, 500, cid, pos)
- end
- if getPlayerStorageValue(cid, 0442100) == 1 or getPlayerStorageValue(cid, 0442101) == 1 then
- addEvent(sendMsg, 540, cid)
- end
- end
- return true
- end
Add Comment
Please, Sign In to add comment