• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • If you're using Gesior 2012 or MyAAC, please review this thread for information about a serious security vulnerability and a fix.

TFS 0.X Autoloot - Error

potinho

Well-Known Member
Joined
Oct 11, 2009
Messages
1,203
Solutions
17
Reaction score
98
Location
Brazil
Im using autoloot for some months, since 2 days appearing one error in console (sometimes) and i made no changes in MOD. Can u guys help me to identify and fix error?

Follow script and prints
1634496850794.jpeg
1634496861002.jpeg

XML:
<?xml version="1.0" encoding="ISO-8859-1"?>

<mod name="Perfect Auto Loot" version="2.0" author="Vodkart" contact="none.com" enabled="yes">

<config name="Loot_func"><![CDATA[



info = {

    directory = "data/logs/autoloot",

    Warn_Bp_Slots = 5, -- quando tiver 5 ou menos slots na BP vai avisar o jogador

    Talkaction_delay = 1, -- em segundos // delay para remover e adicionar item

    BlockMonsters = {},

    BlockItemsList = {2515, 2148, 2152},

    Money_ids = {2160}, -- id das moedas do ot

    Max_Slots = {free = 20, premium = 20},

    Storages = {988801, 988802, 988803, 988804, 988805, 988806, 988807}

}



Color_Loot = {

           [0] = {MESSAGE_EVENT_ORANGE, "Orange"},

           [1] = {MESSAGE_STATUS_CONSOLE_BLUE, "Blue"},

           [2] = {MESSAGE_INFO_DESCR, "Green"},

           [3] = {MESSAGE_STATUS_CONSOLE_RED, "Red"},

           [4] = {MESSAGE_STATUS_SMALL, "White"}

}

function getPlayerColorLootMessage(cid)

    return getPlayerStorageValue(cid, info.Storages[5]) <= 0 and 0 or getPlayerStorageValue(cid, info.Storages[5])

end

function isInTable(cid, item)

    for _,i in pairs(getItensFromAutoloot(cid)) do

        if tonumber(i) == tonumber(item) then

            return true

        end

    end

    return false

end

function doremoveItemFromAutoloot(cid, itemid)

    local file, fileContent = io.open(info.directory.."/"..getCreatureName(cid)..".txt", 'r'),{}

    for line in file:lines() do

     if line ~= "" and tonumber(line) ~= tonumber(itemid) then

             fileContent[#fileContent + 1] = line

        end

    end

    io.close(file)

    file = io.open(info.directory.."/"..getCreatureName(cid)..".txt", 'w')

    for index, value in ipairs(fileContent) do

    file:write(value..'\n')

    end

    io.close(file)

end

function doAddItemFromAutoloot(cid, itemid)

         if not existsAutoloot(cid) then

            doCreateLootUserName(cid, itemid) return true

         end

         local file = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "a+")                       

         file:write('\n'..itemid)

         file:close()

end

function existsAutoloot(cid)

  local f = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "rb")

  if f then f:close() end

  return f ~= nil

end

function doCreateLootUserName(cid, itemid)

    newFile = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "w+" )

    newFile:write(itemid)

    newFile:close()

end

function getItensFromAutoloot(cid)

  if not existsAutoloot(cid) then return {} end

  lines = {}

  for line in io.lines(info.directory.."/"..getCreatureName(cid)..".txt") do

      if line ~= "" then

              lines[#lines + 1] = tonumber(line)

      end

  end

  return lines

end

function doCleanAutoloot(cid)

return os.remove(info.directory.."/"..getCreatureName(cid)..".txt")

end

function ShowItemsTabble(cid)

    local auto_list = getItensFromAutoloot(cid)

    local n,str = 0,"[+] Auto Loot Commands [+]\n\n!autoloot item name --> To add ou Remove item from list.\n!autoloot money --> To collect gold automatically (only for crystal coin).\n!autoloot clear --> To clear the list.\n!autoloot on/off --> To enable or disable the collecting of items in the system.\n!autoloot message --> To enable or disable message from Collect items.\n!autoloot color --> To change Color message in Auto Loot Collect.\n!autoloot warn --> To enable or disable message warning of "..info.Warn_Bp_Slots.." or less slots in the backpack.\n!autoloot deposit --> To enable or disable automatic money deposit at the bank.\n\n[+] Auto Loot Info [+]\n\nSystem: "..(getPlayerStorageValue(cid, info.Storages[1]) <= 0 and "Activated" or "Disabled")..".\nGold Collecting: "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "Disabled")..".\nMessage: "..(getPlayerStorageValue(cid, info.Storages[6]) <= 0 and "Activated" or "Disabled")..".\nColor Message: "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".\nWarn Backpack: "..(getPlayerStorageValue(cid, info.Storages[3]) <= 0 and "Activated" or "Disabled")..".\nAutomatic Gold Deposit: "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "Disabled")..".\nTotal Bank Balance: ["..getPlayerBalance(cid).."]\nMaximum Slots: ["..#auto_list.."/"..(isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free).."]\n\n[+] Auto Loot Slots [+]\n\n"

    if #auto_list > 0 then

        for i = 1, #auto_list do

            n = n + 1

            str = str.."Slot "..n.." - "..getItemNameById(auto_list[i]).."\n"

        end

    end

        doShowTextDialog(cid, 1961, str)

end

function getContainerItems(container, array, haveCap)

    array = array or {}

    haveCap = haveCap or false

    if not isContainer(container.uid) or getContainerSize(container.uid) == 0 then

        array[#array +1] = container

    else

        local size = getContainerSize(container.uid)

        haveCap = (getContainerCap(container.uid) -size) > 0

        for slot = 0, (size -1) do

            local item = getContainerItem(container.uid, slot)

            if item.itemid > 1 then

                getContainerItems(item, array, haveCap)

            end

        end

    end

    return #array >= 1 and array, haveCap

end

function getContainerItemsById(container, itemid)

    local founds = {}

    local items = not container.uid and container or getContainerItems(container)

    for index, item in pairs(items) do

        if item.itemid == itemid then

            founds[#founds +1] = item

        end

    end

    return #founds >= 1 and founds

end

function AutomaticDeposit(cid, item, n)

    if isInArray(info.Money_ids, item) and getPlayerStorageValue(cid, info.Storages[4]) > 0 then

        local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n)

        doPlayerDepositMoney(cid, deposit)

    end

    return true

end

function getAllContainerFree(cid) -- by vodka

    local containers,soma = {},0

    for i = CONST_SLOT_FIRST, CONST_SLOT_LAST do

        local sitem = getPlayerSlotItem(cid, i)

        if sitem.uid > 0 then

            if isContainer(sitem.uid) then

                table.insert(containers, sitem.uid)

        soma = soma + getContainerSlotsFree(sitem.uid)

            end

        end

    end

    while #containers > 0 do

        for k = (getContainerSize(containers[1]) - 1), 0, -1 do

            local tmp = getContainerItem(containers[1], k)

            if isContainer(tmp.uid) then

                table.insert(containers, tmp.uid)

                soma = soma + getContainerSlotsFree(tmp.uid)

            end

        end

        table.remove(containers, 1)

    end

    return soma

end

function getContainerSlotsFree(container) -- by vodka

         return getContainerCap(container)-getContainerSize(container)

end

function doPlayerAddItemStackable(cid, itemid, count)

    local container = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)

    if container.itemid > 1 then

        local items = getContainerItemsById(container, itemid)

        if not items then

            return doPlayerAddItem(cid, itemid, count)

        else

            local piles = #items

            for index, item in pairs(items) do

                if item.type < 100 then

                    local sum = item.type + count

                    local result = doTransformItem(item.uid, itemid, sum)

                    if sum <= 100 then

                        return result

                    else

                        return doPlayerAddItem(cid, itemid, sum - 100)

                    end

                else

                    piles = piles - 1

                    if piles == 0 then

                        return doPlayerAddItem(cid, itemid, count)

                    end

                end

            end

        end

    end

    return false

end

function corpseRetireItems(cid, pos)

    local check, slots = false, 0

    for i = 0, 255 do

        pos.stackpos = i

        if getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then

            corpse = getThingFromPos(pos)

            check = true

            break

        end

    end

    if check == true then

        local str, id_list = "", getItensFromAutoloot(cid)

        for _, item in pairs(getContainerItems(corpse)) do

            local id = item.itemid

            if #id_list > 0 and isInArray(id_list, id) or getPlayerStorageValue(cid, info.Storages[2]) > 0 and isInArray(info.Money_ids, id) then

                local amount = isItemStackable(id) and item.type or 1

                local total_cap = getItemWeightById(id, amount)

                slots = getAllContainerFree(cid)

                if slots > 0 and getPlayerFreeCap(cid) >= total_cap then

                    str = str.." " .. getItemInfoLoot(id, amount)

                    if isItemStackable(id) then

                        doPlayerAddItemStackable(cid, id, amount)

                        AutomaticDeposit(cid, id, amount)

                    else

                        doPlayerAddItem(cid, id)

                    end

                    doRemoveItem(item.uid)

                end

            end

        end

        if str ~= "" and getPlayerStorageValue(cid, info.Storages[6]) <= 0 then

            doPlayerSendTextMessage(cid, Color_Loot[getPlayerColorLootMessage(cid)][1],"[Auto Loot Collect]:"..string.sub(str, 1, -2)..".")

        end

        if getPlayerStorageValue(cid, info.Storages[3]) <= 0 and slots > 0 and slots <= info.Warn_Bp_Slots then

            doPlayerSendTextMessage(cid,18, "[Auto Loot Warn] You only have "..slots.." slots free in your backpack!")

        end

    end

end

function ExistItemByName(name) -- by vodka

    local items = io.open("data/items/items.xml", "r"):read("*all")

    local get = items:lower():match('name="' .. name:lower() ..'"')

    if get == nil or get == "" then

        return false

    end

return true

end

function getItemInfoLoot(id, amount)

    local info = getItemInfo(id)

    return isItemStackable(id) and amount.." "..(amount > 1 and info.plural or info.name).."," or info.article.." " .. info.name ..","

end

]]></config>

<event type="login" name="LootLogin" event="script"><![CDATA[

domodlib('Loot_func')

function onLogin(cid)

    registerCreatureEvent(cid, "LootEventKIll")

    if isPremium(cid) and getPlayerStorageValue(cid, 853608) <= 0 then

        setPlayerStorageValue(cid, 853608, 1)

    elseif getPlayerStorageValue(cid, 853608) > 0 and not isPremium(cid) then

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Auto Loot] You premium is Over, Start a new list!")

        setPlayerStorageValue(cid, 853608, -1)

        doCleanAutoloot(cid)

    end

    return true

end]]></event>

<event type="kill" name="LootEventKIll" event="script"><![CDATA[

domodlib('Loot_func')

function onKill(cid, target, lastHit)
    if isVIP(cid) == false then
        return true
    end
  
    if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[1]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then

        addEvent(corpseRetireItems, 0, cid ,getThingPos(target))

    end

    return true

end]]></event>

<talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[

domodlib('Loot_func')

if isVIP(cid) == false then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Only VIP players can use auto loot.")
    return true
end

local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free

if not param or param == "" then

    ShowItemsTabble(cid) return true

elseif tonumber(param) then

    doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true

elseif isInArray({"clean","limpar", "clear"}, param) then

    if existsAutoloot(cid) then doCleanAutoloot(cid) end

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true

elseif isInArray({"start","stop","on","off"}, param) then

    setPlayerStorageValue(cid, info.Storages[1], getPlayerStorageValue(cid, info.Storages[1]) <= 0 and 1 or 0)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot "..(getPlayerStorageValue(cid, info.Storages[1]) > 0 and "Stopped" or "Started")..".") return true

elseif isInArray({"warn","aviso"}, param) then

    setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Backpack Warn "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "disabled" or "Activated")..".") return true

elseif isInArray({"mensagem","message","mensagen","msg"}, param) then

    setPlayerStorageValue(cid, info.Storages[6], getPlayerStorageValue(cid, info.Storages[6]) <= 0 and 1 or 0)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message "..(getPlayerStorageValue(cid, info.Storages[6]) > 0 and "disabled" or "Activated")..".") return true

elseif isInArray({"cor","color","type"}, param) then

    setPlayerStorageValue(cid, info.Storages[5], getPlayerColorLootMessage(cid) == #Color_Loot and 0 or getPlayerColorLootMessage(cid)+1)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message Color Changed to "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".") return true

elseif isInArray({"money","gold","gps","dinheiro"}, param) then

    setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Gold Colleting "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true

elseif isInArray({"deposito","bank","gbank","deposit","autodeposit"}, param) then

    setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Gold Bank "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true

end

local item = ExistItemByName(tostring(param))

if not item then

    doPlayerSendCancel(cid, "This item does not exist.") return true

end

local item = getItemIdByName(tostring(param))

local var = isInTable(cid, item)

if isInArray(info.Money_ids, item) then

    doPlayerSendTextMessage(cid, MESSAGE_FIRST, "Enter !autoloot money to add money in your list!") return true

elseif isInArray(info.BlockItemsList, item) then

    doPlayerSendCancel(cid, "You can not add this item in the list!") return true

elseif not var and #getItensFromAutoloot(cid) >= slots then

    doPlayerSendCancel(cid, "max "..slots.." from auto loot") return true

elseif getPlayerStorageValue(cid, info.Storages[7]) - os.time() > 0 then

        doPlayerSendCancel(cid, "wait a second to use this command again") return true

end

if not var then

    doAddItemFromAutoloot(cid, item)

else

    doremoveItemFromAutoloot(cid, item)

end

setPlayerStorageValue(cid, info.Storages[7], os.time()+info.Talkaction_delay)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "you added the item "..param.." in the list" or "you removed the item "..param.." from the list, please wait 5 seconds to save the directory.")

return true]]></talkaction>

</mod>
 
OP
OP
potinho

potinho

Well-Known Member
Joined
Oct 11, 2009
Messages
1,203
Solutions
17
Reaction score
98
Location
Brazil
[Error - TalkAction Interface]
2022-02-23 15:44:07 - local cid = 268435462
2022-02-23 15:44:07 - local words = "!autoloot"
2022-02-23 15:44:07 - local param = "spider silk"
2022-02-23 15:44:07 - local channel = 65534
2022-02-23 15:44:07 - domodlib('Loot_func')
2022-02-23 15:44:07 - if isVIP(cid) == false then
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Only VIP players can use auto loot.")
2022-02-23 15:44:07 - return true
2022-02-23 15:44:07 - end
2022-02-23 15:44:07 - local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free
2022-02-23 15:44:07 - if not param or param == "" then
2022-02-23 15:44:07 - ShowItemsTabble(cid) return true
2022-02-23 15:44:07 - elseif tonumber(param) then
2022-02-23 15:44:07 - doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true
2022-02-23 15:44:07 - elseif isInArray({"clean","limpar", "clear"}, param) then
2022-02-23 15:44:07 - if existsAutoloot(cid) then doCleanAutoloot(cid) end
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true
2022-02-23 15:44:07 - elseif isInArray({"start","stop","on","off"}, param) then
2022-02-23 15:44:07 - setPlayerStorageValue(cid, info.Storages[1], getPlayerStorageValue(cid, info.Storages[1]) <= 0 and 1 or 0)
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot "..(getPlayerStorageValue(cid, info.Storages[1]) > 0 and "Stopped" or "Started")..".") return true
2022-02-23 15:44:07 - elseif isInArray({"warn","aviso"}, param) then
2022-02-23 15:44:07 - setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Backpack Warn "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "disabled" or "Activated")..".") return true
2022-02-23 15:44:07 - elseif isInArray({"mensagem","message","mensagen","msg"}, param) then
2022-02-23 15:44:07 - setPlayerStorageValue(cid, info.Storages[6], getPlayerStorageValue(cid, info.Storages[6]) <= 0 and 1 or 0)
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message "..(getPlayerStorageValue(cid, info.Storages[6]) > 0 and "disabled" or "Activated")..".") return true
2022-02-23 15:44:07 - elseif isInArray({"cor","color","type"}, param) then
2022-02-23 15:44:07 - setPlayerStorageValue(cid, info.Storages[5], getPlayerColorLootMessage(cid) == #Color_Loot and 0 or getPlayerColorLootMessage(cid)+1)
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message Color Changed to "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".") return true
2022-02-23 15:44:07 - elseif isInArray({"money","gold","gps","dinheiro"}, param) then
2022-02-23 15:44:07 - setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Colleting only Crystal Coin is "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true
2022-02-23 15:44:07 - elseif isInArray({"deposito","bank","gbank","deposit","autodeposit"}, param) then
2022-02-23 15:44:07 - setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Gold Bank "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true
2022-02-23 15:44:07 - end
2022-02-23 15:44:07 - local item = ExistItemByName(tostring(param))
2022-02-23 15:44:07 - if not item then
2022-02-23 15:44:07 - doPlayerSendCancel(cid, "This item does not exist.") return true
2022-02-23 15:44:07 - end
2022-02-23 15:44:07 - local item = getItemIdByName(tostring(param))
2022-02-23 15:44:07 - local var = isInTable(cid, item)
2022-02-23 15:44:07 - if isInArray(info.Money_ids, item) then
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_FIRST, "Enter !autoloot money to add money in your list!") return true
2022-02-23 15:44:07 - elseif isInArray(info.BlockItemsList, item) then
2022-02-23 15:44:07 - doPlayerSendCancel(cid, "You can not add this item in the list!") return true
2022-02-23 15:44:07 - elseif not var and #getItensFromAutoloot(cid) >= slots then
2022-02-23 15:44:07 - doPlayerSendCancel(cid, "You have reached the maximum number of "..slots.." slots from auto loot.") return true
2022-02-23 15:44:07 - elseif getPlayerStorageValue(cid, info.Storages[7]) - os.time() > 0 then
2022-02-23 15:44:07 - doPlayerSendCancel(cid, "wait a second to use this command again") return true
2022-02-23 15:44:07 - end
2022-02-23 15:44:07 - if not var then
2022-02-23 15:44:07 - doAddItemFromAutoloot(cid, item)
2022-02-23 15:44:07 - else
2022-02-23 15:44:07 - doremoveItemFromAutoloot(cid, item)
2022-02-23 15:44:07 - end
2022-02-23 15:44:07 - setPlayerStorageValue(cid, info.Storages[7], os.time()+info.Talkaction_delay)
2022-02-23 15:44:07 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "You added the item "..param.." in the list" or "You removed the item "..param.." from the list, please wait 5 seconds to save the directory.")
2022-02-23 15:44:07 - return true
2022-02-23 15:44:07 - Description:
2022-02-23 15:44:07 - [string "info = {..."]:60: attempt to index local 'file' (a nil value)
2022-02-23 15:44:12 - Thomas Shelby has logged in.
2022-02-23 15:44:12 -
2022-02-23 15:44:12 - [Error - TalkAction Interface]
2022-02-23 15:44:12 - local cid = 268435462
2022-02-23 15:44:12 - local words = "!autoloot"
2022-02-23 15:44:12 - local param = "spider silk"
2022-02-23 15:44:12 - local channel = 65534
2022-02-23 15:44:12 - domodlib('Loot_func')
2022-02-23 15:44:12 - if isVIP(cid) == false then
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Only VIP players can use auto loot.")
2022-02-23 15:44:12 - return true
2022-02-23 15:44:12 - end
2022-02-23 15:44:12 - local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free
2022-02-23 15:44:12 - if not param or param == "" then
2022-02-23 15:44:12 - ShowItemsTabble(cid) return true
2022-02-23 15:44:12 - elseif tonumber(param) then
2022-02-23 15:44:12 - doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true
2022-02-23 15:44:12 - elseif isInArray({"clean","limpar", "clear"}, param) then
2022-02-23 15:44:12 - if existsAutoloot(cid) then doCleanAutoloot(cid) end
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true
2022-02-23 15:44:12 - elseif isInArray({"start","stop","on","off"}, param) then
2022-02-23 15:44:12 - setPlayerStorageValue(cid, info.Storages[1], getPlayerStorageValue(cid, info.Storages[1]) <= 0 and 1 or 0)
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot "..(getPlayerStorageValue(cid, info.Storages[1]) > 0 and "Stopped" or "Started")..".") return true
2022-02-23 15:44:12 - elseif isInArray({"warn","aviso"}, param) then
2022-02-23 15:44:12 - setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Backpack Warn "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "disabled" or "Activated")..".") return true
2022-02-23 15:44:12 - elseif isInArray({"mensagem","message","mensagen","msg"}, param) then
2022-02-23 15:44:12 - setPlayerStorageValue(cid, info.Storages[6], getPlayerStorageValue(cid, info.Storages[6]) <= 0 and 1 or 0)
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message "..(getPlayerStorageValue(cid, info.Storages[6]) > 0 and "disabled" or "Activated")..".") return true
2022-02-23 15:44:12 - elseif isInArray({"cor","color","type"}, param) then
2022-02-23 15:44:12 - setPlayerStorageValue(cid, info.Storages[5], getPlayerColorLootMessage(cid) == #Color_Loot and 0 or getPlayerColorLootMessage(cid)+1)
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message Color Changed to "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".") return true
2022-02-23 15:44:12 - elseif isInArray({"money","gold","gps","dinheiro"}, param) then
2022-02-23 15:44:12 - setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Colleting only Crystal Coin is "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true
2022-02-23 15:44:12 - elseif isInArray({"deposito","bank","gbank","deposit","autodeposit"}, param) then
2022-02-23 15:44:12 - setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Gold Bank "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true
2022-02-23 15:44:12 - end
2022-02-23 15:44:12 - local item = ExistItemByName(tostring(param))
2022-02-23 15:44:12 - if not item then
2022-02-23 15:44:12 - doPlayerSendCancel(cid, "This item does not exist.") return true
2022-02-23 15:44:12 - end
2022-02-23 15:44:12 - local item = getItemIdByName(tostring(param))
2022-02-23 15:44:12 - local var = isInTable(cid, item)
2022-02-23 15:44:12 - if isInArray(info.Money_ids, item) then
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_FIRST, "Enter !autoloot money to add money in your list!") return true
2022-02-23 15:44:12 - elseif isInArray(info.BlockItemsList, item) then
2022-02-23 15:44:12 - doPlayerSendCancel(cid, "You can not add this item in the list!") return true
2022-02-23 15:44:12 - elseif not var and #getItensFromAutoloot(cid) >= slots then
2022-02-23 15:44:12 - doPlayerSendCancel(cid, "You have reached the maximum number of "..slots.." slots from auto loot.") return true
2022-02-23 15:44:12 - elseif getPlayerStorageValue(cid, info.Storages[7]) - os.time() > 0 then
2022-02-23 15:44:12 - doPlayerSendCancel(cid, "wait a second to use this command again") return true
2022-02-23 15:44:12 - end
2022-02-23 15:44:12 - if not var then
2022-02-23 15:44:12 - doAddItemFromAutoloot(cid, item)
2022-02-23 15:44:12 - else
2022-02-23 15:44:12 - doremoveItemFromAutoloot(cid, item)
2022-02-23 15:44:12 - end
2022-02-23 15:44:12 - setPlayerStorageValue(cid, info.Storages[7], os.time()+info.Talkaction_delay)
2022-02-23 15:44:12 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "You added the item "..param.." in the list" or "You removed the item "..param.." from the list, please wait 5 seconds to save the directory.")
2022-02-23 15:44:12 - return true
2022-02-23 15:44:12 - Description:
2022-02-23 15:44:12 - [string "info = {..."]:60: attempt to index local 'file' (a nil value)
2022-02-23 15:44:19 -
2022-02-23 15:44:19 - [Error - TalkAction Interface]
2022-02-23 15:44:19 - local cid = 268435462
2022-02-23 15:44:19 - local words = "!autoloot"
2022-02-23 15:44:19 - local param = "spider silk"
2022-02-23 15:44:19 - local channel = 65534
2022-02-23 15:44:19 - domodlib('Loot_func')
2022-02-23 15:44:19 - if isVIP(cid) == false then
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Only VIP players can use auto loot.")
2022-02-23 15:44:19 - return true
2022-02-23 15:44:19 - end
2022-02-23 15:44:19 - local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free
2022-02-23 15:44:19 - if not param or param == "" then
2022-02-23 15:44:19 - ShowItemsTabble(cid) return true
2022-02-23 15:44:19 - elseif tonumber(param) then
2022-02-23 15:44:19 - doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true
2022-02-23 15:44:19 - elseif isInArray({"clean","limpar", "clear"}, param) then
2022-02-23 15:44:19 - if existsAutoloot(cid) then doCleanAutoloot(cid) end
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true
2022-02-23 15:44:19 - elseif isInArray({"start","stop","on","off"}, param) then
2022-02-23 15:44:19 - setPlayerStorageValue(cid, info.Storages[1], getPlayerStorageValue(cid, info.Storages[1]) <= 0 and 1 or 0)
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot "..(getPlayerStorageValue(cid, info.Storages[1]) > 0 and "Stopped" or "Started")..".") return true
2022-02-23 15:44:19 - elseif isInArray({"warn","aviso"}, param) then
2022-02-23 15:44:19 - setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Backpack Warn "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "disabled" or "Activated")..".") return true
2022-02-23 15:44:19 - elseif isInArray({"mensagem","message","mensagen","msg"}, param) then
2022-02-23 15:44:19 - setPlayerStorageValue(cid, info.Storages[6], getPlayerStorageValue(cid, info.Storages[6]) <= 0 and 1 or 0)
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message "..(getPlayerStorageValue(cid, info.Storages[6]) > 0 and "disabled" or "Activated")..".") return true
2022-02-23 15:44:19 - elseif isInArray({"cor","color","type"}, param) then
2022-02-23 15:44:19 - setPlayerStorageValue(cid, info.Storages[5], getPlayerColorLootMessage(cid) == #Color_Loot and 0 or getPlayerColorLootMessage(cid)+1)
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message Color Changed to "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".") return true
2022-02-23 15:44:19 - elseif isInArray({"money","gold","gps","dinheiro"}, param) then
2022-02-23 15:44:19 - setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Colleting only Crystal Coin is "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true
2022-02-23 15:44:19 - elseif isInArray({"deposito","bank","gbank","deposit","autodeposit"}, param) then
2022-02-23 15:44:19 - setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Gold Bank "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true
2022-02-23 15:44:19 - end
2022-02-23 15:44:19 - local item = ExistItemByName(tostring(param))
2022-02-23 15:44:19 - if not item then
2022-02-23 15:44:19 - doPlayerSendCancel(cid, "This item does not exist.") return true
2022-02-23 15:44:19 - end
2022-02-23 15:44:19 - local item = getItemIdByName(tostring(param))
2022-02-23 15:44:19 - local var = isInTable(cid, item)
2022-02-23 15:44:19 - if isInArray(info.Money_ids, item) then
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_FIRST, "Enter !autoloot money to add money in your list!") return true
2022-02-23 15:44:19 - elseif isInArray(info.BlockItemsList, item) then
2022-02-23 15:44:19 - doPlayerSendCancel(cid, "You can not add this item in the list!") return true
2022-02-23 15:44:19 - elseif not var and #getItensFromAutoloot(cid) >= slots then
2022-02-23 15:44:19 - doPlayerSendCancel(cid, "You have reached the maximum number of "..slots.." slots from auto loot.") return true
2022-02-23 15:44:19 - elseif getPlayerStorageValue(cid, info.Storages[7]) - os.time() > 0 then
2022-02-23 15:44:19 - doPlayerSendCancel(cid, "wait a second to use this command again") return true
2022-02-23 15:44:19 - end
2022-02-23 15:44:19 - if not var then
2022-02-23 15:44:19 - doAddItemFromAutoloot(cid, item)
2022-02-23 15:44:19 - else
2022-02-23 15:44:19 - doremoveItemFromAutoloot(cid, item)
2022-02-23 15:44:19 - end
2022-02-23 15:44:19 - setPlayerStorageValue(cid, info.Storages[7], os.time()+info.Talkaction_delay)
2022-02-23 15:44:19 - doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "You added the item "..param.." in the list" or "You removed the item "..param.." from the list, please wait 5 seconds to save the directory.")
2022-02-23 15:44:19 - return true
2022-02-23 15:44:19 - Description:
2022-02-23 15:44:19 - [string "info = {..."]:60: attempt to index local 'file' (a nil value)
 
Top