• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Problema] Configuración autoloot TFS 1.3

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Problema] Configuración autoloot TFS 1.3 el Lun Mayo 25, 2020 7:16 pm

    zeneel

    zeneel
    Miembro
    Miembro
    Descripcion escribió:Buen día les adjunto el error que me arroja al usar un Player el autoloot.

    Código:

    Lua Script Error: [Action Interface]
    data/actions/scripts/autoloot.lua:onUse
    data/actions/scripts/autoloot.lua:4: attempt to index a nil value
    stack traceback:
            [C]: in function '__index'
            data/actions/scripts/autoloot.lua:4: in function <data/actions/scripts/autoloot.lua:1>
    este es el error
    Captura del Error escribió:Imagen del error: [Problema] Configuración autoloot TFS 1.3 Empty
    La config. radica en: Consola

    2default Re: [Problema] Configuración autoloot TFS 1.3 el Lun Mayo 25, 2020 9:10 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    reemplaze esto

    Código:
    if not Tile(toPosition):getTopVisibleThing() then
            return true
        end

    por esto

    Código:

    if Tile(toPosition) == nil then
            return true
        end



    [Problema] Configuración autoloot TFS 1.3 YNU5B25
    https://www.tibiaface.com

    3default Re: [Problema] Configuración autoloot TFS 1.3 el Jue Mayo 28, 2020 11:53 am

    zeneel

    zeneel
    Miembro
    Miembro
    cometí el error de no adjuntar mi código, el cual es el siguiente maya, la parte que usted me indica no la tengo. Gracias.

    Código:

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
       local issue = {}
       local bodycontainer, slot, msg = {}, 0, ''
       local monster = Tile(toPosition):getTopVisibleThing()
       local corpse = getTileItemById(toPosition, monster:getId()).uid
       local slots = getContainerSize(corpse)

       if not corpse or not slots then
          return false
       end

       local logic, contlogic, bplogica = 1, {}, {}
       if getContainerSize(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid) then
       for i = 0, getContainerSize(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid) do
          contlogic[logic] = getContainerItem(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid, i)

          if isContainer(contlogic[logic].uid) then
          bplogica[logic] = contlogic[logic]
          logic = logic + 1
          end

       end
       end

       for times = 1, slots do
          bodycontainer[times] = getContainerItem(corpse, slot)
          if player:getAutoLootItem(bodycontainer[times].itemid) then

          local slotcorpse = bodycontainer[times].uid
          local itemcorpse = Item(slotcorpse)
          local slotgg
          local localizou
          local resultId = db.storeQuery('SELECT `cont_id` FROM `player_autoloot_persist` WHERE `player_guid` = ' .. getPlayerGUID(player) .. ' AND `item_id` = ' .. itemcorpse:getId() .. '')
             if resultId then
             local bp_id = result.getNumber(resultId, 'cont_id')
             end
          for i = 1, #bplogica do
          local tempitem = Item(bplogica[i].uid)
             if tempitem:getId() == result.getNumber(resultId, 'cont_id') and localizou ~= 1 then
                local bp = bplogica[i].uid
                local freeSlotsInBp = math.max(0, getContainerCap(bp) - getContainerSize(bp))
                if freeSlotsInBp and freeSlotsInBp > 0 then
                slotgg = bplogica[i].uid
                localizou = 1
                end
             end
          end

          local destination = Item(slotgg)

             if destination and destination:getTopParent() == player then
                itemcorpse:moveTo(destination)
                   if bodycontainer[times].type > 1 then
                   msg = ''..msg.. ', '..bodycontainer[times].type..' '..tostring(ItemType(bodycontainer[times].itemid):getPluralName())..''
                   else
                   msg = ''..msg.. ', '..tostring(ItemType(bodycontainer[times].itemid):getName())..''
                   end
             else
                if not table.contains(issue, bodycontainer[times].itemid) then
                table.insert(issue, bodycontainer[times].itemid)
                end
                itemcorpse:moveToSlot(player, 0)
             end

          else
             slot = slot + 1
          end
       end

       if msg ~= '' then
       player:sendTextMessage(MESSAGE_INFO_DESCR,'Looted:'.. string.gsub(" "..msg, "%W%l", string.lower):sub(3) ..' opening corpse')
       end

       if issue then
       if #issue >= 1 then
       for i = 1, #issue do
       player:sendTextMessage(MESSAGE_INFO_DESCR,'All main '..string.gsub(" "..string.lower(ItemType(issue[i]):getName()), "%W%l", string.upper):sub(2)..' full, buy a new or move itens to sub backpacks.')
       end
       end
       end

    end

    4default Re: [Problema] Configuración autoloot TFS 1.3 el Jue Mayo 28, 2020 1:43 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Código:


            function onUse(player, item, fromPosition, target, toPosition, isHotkey)
              local issue = {}
              local bodycontainer, slot, msg = {}, 0, ''
              local monster = Tile(toPosition):getTopVisibleThing()
              local corpse = getTileItemById(toPosition, monster:getId()).uid
              local slots = getContainerSize(corpse)

           
            if Tile(toPosition) == nil or  slots then
                return true
                end

              local logic, contlogic, bplogica = 1, {}, {}
              if getContainerSize(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid) then
              for i = 0, getContainerSize(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid) do
                  contlogic[logic] = getContainerItem(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid, i)

                  if isContainer(contlogic[logic].uid) then
                  bplogica[logic] = contlogic[logic]
                  logic = logic + 1
                  end

              end
              end

              for times = 1, slots do
                  bodycontainer[times] = getContainerItem(corpse, slot)
                  if player:getAutoLootItem(bodycontainer[times].itemid) then

                  local slotcorpse = bodycontainer[times].uid
                  local itemcorpse = Item(slotcorpse)
                  local slotgg
                  local localizou
                  local resultId = db.storeQuery('SELECT `cont_id` FROM `player_autoloot_persist` WHERE `player_guid` = ' .. getPlayerGUID(player) .. ' AND `item_id` = ' .. itemcorpse:getId() .. '')
                    if resultId then
                    local bp_id = result.getNumber(resultId, 'cont_id')
                    end
                  for i = 1, #bplogica do
                  local tempitem = Item(bplogica[i].uid)
                    if tempitem:getId() == result.getNumber(resultId, 'cont_id') and localizou ~= 1 then
                        local bp = bplogica[i].uid
                        local freeSlotsInBp = math.max(0, getContainerCap(bp) - getContainerSize(bp))
                        if freeSlotsInBp and freeSlotsInBp > 0 then
                        slotgg = bplogica[i].uid
                        localizou = 1
                        end
                    end
                  end

                  local destination = Item(slotgg)

                    if destination and destination:getTopParent() == player then
                        itemcorpse:moveTo(destination)
                          if bodycontainer[times].type > 1 then
                          msg = ''..msg.. ', '..bodycontainer[times].type..' '..tostring(ItemType(bodycontainer[times].itemid):getPluralName())..''
                          else
                          msg = ''..msg.. ', '..tostring(ItemType(bodycontainer[times].itemid):getName())..''
                          end
                    else
                        if not table.contains(issue, bodycontainer[times].itemid) then
                        table.insert(issue, bodycontainer[times].itemid)
                        end
                        itemcorpse:moveToSlot(player, 0)
                    end

                  else
                    slot = slot + 1
                  end
              end

              if msg ~= '' then
              player:sendTextMessage(MESSAGE_INFO_DESCR,'Looted:'.. string.gsub(" "..msg, "%W%l", string.lower):sub(3) ..' opening corpse')
              end

              if issue then
              if #issue >= 1 then
              for i = 1, #issue do
              player:sendTextMessage(MESSAGE_INFO_DESCR,'All main '..string.gsub(" "..string.lower(ItemType(issue[i]):getName()), "%W%l", string.upper):sub(2)..' full, buy a new or move itens to sub backpacks.')
              end
              end
              end

            end



    prueba asi



    [Problema] Configuración autoloot TFS 1.3 YNU5B25
    https://www.tibiaface.com

    5default Re: [Problema] Configuración autoloot TFS 1.3 el Mar Jun 02, 2020 12:10 pm

    zeneel

    zeneel
    Miembro
    Miembro
    ahora me envía este error

    Código:

    Lua Script Error: [Action Interface]
    data/actions/scripts/autoloot.lua:onUse
    data/actions/scripts/autoloot.lua:6: attempt to index a nil value
    stack traceback:
            [C]: in function '__index'
            data/actions/scripts/autoloot.lua:6: in function <data/actions/scripts/autoloot.lua:3>

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    aqui tiene

    Código:

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
        local issue = {}
        local bodycontainer, slot, msg = {}, 0, ''
     
        if Tile(toPosition) == nil then
            return true
        end
     
        local monster = Tile(toPosition):getTopVisibleThing()
        local corpse = getTileItemById(toPosition, monster:getId()).uid
        local slots = getContainerSize(corpse)

        if not corpse or not slots then
            return false
        end

        local logic, contlogic, bplogica = 1, {}, {}
        if getContainerSize(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid) then
            for i = 0, getContainerSize(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid) do
                contlogic[logic] = getContainerItem(getPlayerSlotItem(player, CONST_SLOT_BACKPACK).uid, i)

                if isContainer(contlogic[logic].uid) then
                    bplogica[logic] = contlogic[logic]
                    logic = logic + 1
                end

            end
        end

        for times = 1, slots do
            bodycontainer[times] = getContainerItem(corpse, slot)
            if player:getAutoLootItem(bodycontainer[times].itemid) then

                local slotcorpse = bodycontainer[times].uid
                local itemcorpse = Item(slotcorpse)
                local slotgg
                local localizou
                local resultId = db.storeQuery('SELECT `cont_id` FROM `player_autoloot_persist` WHERE `player_guid` = ' .. getPlayerGUID(player) .. ' AND `item_id` = ' .. itemcorpse:getId() .. '')
                if resultId then
                    local bp_id = result.getNumber(resultId, 'cont_id')
                end
                for i = 1, #bplogica do
                    local tempitem = Item(bplogica[i].uid)
                    if tempitem:getId() == result.getNumber(resultId, 'cont_id') and localizou ~= 1 then
                        local bp = bplogica[i].uid
                        local freeSlotsInBp = math.max(0, getContainerCap(bp) - getContainerSize(bp))
                        if freeSlotsInBp and freeSlotsInBp > 0 then
                            slotgg = bplogica[i].uid
                            localizou = 1
                        end
                    end
                end

                local destination = Item(slotgg)

                if destination and destination:getTopParent() == player then
                    local weight = ItemType(itemcorpse):getWeight(itemcorpse.type)
                    if player:getFreeCapacity() >= weight then
                        itemcorpse:moveTo(destination)
                        if bodycontainer[times].type > 1 then
                            msg = ''..msg.. ', '..bodycontainer[times].type..' '..tostring(ItemType(bodycontainer[times].itemid):getPluralName())..''
                        else
                            msg = ''..msg.. ', '..tostring(ItemType(bodycontainer[times].itemid):getName())..''
                        end
                    end
                else
                    if not table.contains(issue, bodycontainer[times].itemid) then
                        table.insert(issue, bodycontainer[times].itemid)
                    end
                    local weight = ItemType(itemcorpse):getWeight(itemcorpse.type)
                    if player:getFreeCapacity() >= weight then
                        itemcorpse:moveToSlot(player, 0)
                    end
                end
            else
                slot = slot + 1
            end
        end

        if msg ~= '' then
            player:sendTextMessage(MESSAGE_INFO_DESCR,'Looted:'.. string.gsub(" "..msg, "%W%l", string.lower):sub(3) ..' opening corpse')
        end

        if issue then
            if #issue >= 1 then
                for i = 1, #issue do
                    player:sendTextMessage(MESSAGE_INFO_DESCR,'All main '..string.gsub(" "..string.lower(ItemType(issue[i]):getName()), "%W%l", string.upper):sub(2)..' full, buy a new or move itens to sub backpacks.')
                end
            end
        end
    end



    [Problema] Configuración autoloot TFS 1.3 YNU5B25
    https://www.tibiaface.com

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).