• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Mods] Autoloot para 0.3.6 hasta 0.4, corregido tipicos errores

    Compartir:

    Ir a la página : Precedente  1, 2

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

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Jemrelias5 escribió:Aja y como hago que funcione donde pego eso en que carpeta? Me meto en mods copio cualquier xml lo renombro con el nombre de autoloot.xml y copio eso adentro y ya? Asi o debo hacer otra cosa

    obvio



    [Mods] Autoloot para 0.3.6 hasta 0.4, corregido tipicos errores - Página 2 YNU5B25
    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes
    http://www.tibiaface.com

    ioke

    ioke
    Miembro
    Miembro
    ayuda funciona todo bien pero en la consoa me da todo el rato este fallo

    Código:
    [23:51:31.607] [Error - CreatureScript Interface]
    [23:51:31.607] In a timer event called from:
    [23:51:31.622] domodlib("AutolootRevolutionBT")
    [23:51:31.638] function onDeath(cid, corpse, deathList)
    [23:51:31.638]    local killer = deathList[1]
    [23:51:31.654]    local position = getThingPosition(cid)
    [23:51:31.669]    if corpse.itemid > 1 then
    [23:51:31.669]        addEvent(doCorpseAutoloot, 100, killer, position, corpse.itemid)
    [23:51:31.701]    end
    [23:51:31.701]    return true
    [23:51:31.716] end
    [23:51:31.716] :onDeath
    [23:51:31.716] Description:
    [23:51:31.732] (LuaInterface::luaGetContainerSize) Container not found

    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes
    http://baiakciteron.sytes.net

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    ioke escribió:ayuda funciona todo bien pero en la consoa me da todo el rato este fallo

    Código:
    [23:51:31.607] [Error - CreatureScript Interface]
    [23:51:31.607] In a timer event called from:
    [23:51:31.622] domodlib("AutolootRevolutionBT")
    [23:51:31.638] function onDeath(cid, corpse, deathList)
    [23:51:31.638]    local killer = deathList[1]
    [23:51:31.654]    local position = getThingPosition(cid)
    [23:51:31.669]    if corpse.itemid > 1 then
    [23:51:31.669]        addEvent(doCorpseAutoloot, 100, killer, position, corpse.itemid)
    [23:51:31.701]    end
    [23:51:31.701]    return true
    [23:51:31.716] end
    [23:51:31.716] :onDeath
    [23:51:31.716] Description:
    [23:51:31.732] (LuaInterface::luaGetContainerSize) Container not found


    pruebe y me comenta supuestamente esto esta duplicando objetos si no es asi porfavor tambien nos comenta

    Código:


    <?xml version="1.0" encoding="ISO-8859-1"?>
    <mod name="Loot System" version="1.0" author="Vodkart And Mkalo, Sevu Entertainment" contact="none.com" enabled="yes">
    <config name="Loot_func"><![CDATA[
    info = {
        BlockMonsters = {},
        BlockItemsList = {2123,2515}
    }
    function isContainerByItemId(itemid) -- By SevuEntertainment
        return getItemInfo(itemid).group == 2 and true or false
    end
    function setPlayerStorageTable(cid, storage, tab)
        local tabstr = "&"
        for i,x in pairs(tab) do
                tabstr = tabstr .. i .. "," .. x .. ";"
        end
        setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1))
    end
    function getPlayerStorageTable(cid, storage)
        local tabstr = getPlayerStorageValue(cid, storage)
        local tab = {}
        if type(tabstr) ~= "string" then
                return {}
        end
        if tabstr:sub(1,1) ~= "&" then
                return {}
        end
        local tabstr = tabstr:sub(2, #tabstr)
        local a = string.explode(tabstr, ";")
        for i,x in pairs(a) do
                local b = string.explode(x, ",")
                tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2]
        end
        return tab
    end
    function isInTable(cid, item)
            for _,i in pairs(getPlayerStorageTable(cid, 27000))do
                if tonumber(i) == tonumber(item) then
                    return true
                end
            end
    return false
    end
    function addItemTable(cid, item)
            local x = {}
                  for i = 1,#getPlayerStorageTable(cid, 27000) do
                      table.insert(x,getPlayerStorageTable(cid, 27000)[i])
                  end
                  if x ~= 0 then
                      table.insert(x,tonumber(item))
                      setPlayerStorageTable(cid, 27000, x)
                  else
                      setPlayerStorageTable(cid, 27000, {item})
                  end
    end
    function removeItemTable(cid, item)
            local x = {}
                  for i = 1,#getPlayerStorageTable(cid, 27000) do
                      table.insert(x,getPlayerStorageTable(cid, 27000)[i])
                  end
                  for i,v in ipairs(x) do
                      if tonumber(v) == tonumber(item) then
                      table.remove(x,i)
                  end
                  end
            return setPlayerStorageTable(cid, 27000, x)
    end
    function ShowItemsTabble(cid)
        local str,n = "-- My Loot List --\n\n",0
        for i = 1,#getPlayerStorageTable(cid, 27000) do
            n = n + 1
            str = str..""..n.." - "..getItemNameById(getPlayerStorageTable(cid, 27000)[i]).."\n"
        end
        str = str.."\n\nADD: /autoloot add,ITEM_NAME\nREMOVE: /autoloot remove,ITEM_NAME"
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
        return doShowTextDialog(cid, 2529, str)
    end
    function getContainerItems(containeruid)
        local items = {}
        local containers = {}
        if type(getContainerSize(containeruid)) ~= "number" then
                return false
        end
        for slot = 0, getContainerSize(containeruid)-1 do
                local item = getContainerItem(containeruid, slot)
                if item.itemid == 0 then
                        break
                end
                if isContainer(item.uid) then
                        table.insert(containers, item.uid)
                end
                table.insert(items, item)
        end
        if #containers > 0 then
                for i,x in ipairs(getContainerItems(containers[1])) do
                        table.insert(items, x)
                end
                table.remove(containers, 1)
        end
        return items
    end
    function getItemsInContainerById(container, itemid) -- Function By Kydrai
                local items = {}
                if isContainer(container) and getContainerSize(container) > 0 then
                                for slot=0, (getContainerSize(container)-1) do
                                                local item = getContainerItem(container, slot)
                                                if isContainer(item.uid) then
                                                                local itemsbag = getItemsInContainerById(item.uid, itemid)
                                                                for i=0, #itemsbag do
                                                                                table.insert(items, itemsbag[i])
                                                                end
                                                else
                                                                if itemid == item.itemid then
                                                                                table.insert(items, item.uid)
                                                                end
                                                end
                                end
                end
                return items
    end
    function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo
        local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)
        local piles = 0
        if #item > 0 then
                for i,x in pairs(item) do
                        if getThing(x).type < 100 then
                                local it = getThing(x)
                                doTransformItem(it.uid, itemid, it.type+quant)
                                if it.type+quant > 100 then
                                        doPlayerAddItem(cid, itemid, it.type+quant-100)
                                end
                        else
                              piles = piles+1
                        end
                end
        else
                return doPlayerAddItem(cid, itemid, quant)
        end
        if piles == #item then
                doPlayerAddItem(cid, itemid, quant)
        end
    end
        function corpseRetireItems(cid, pos)
            local check = false
            for i = 0, 255 do
            pos.stackpos = i
            tile = getTileThingByPos(pos)
            if tile.uid > 0 and isCorpse(tile.uid) then
                check = true break
            end
        end
        if check == true then
            local items = getContainerItems(tile.uid)
            if items then
                for i, x in pairs(items) do
                    if isInArray(getPlayerStorageTable(cid, 27000), tonumber(x.itemid)) then
                        if isItemStackable(x.itemid) then
                            doPlayerAddItemStacking(cid, x.itemid, x.type)
                        else
                            doPlayerAddItem(cid, x.itemid)
                        end
                        doRemoveItem(x.uid)
                    end
                end
            end
        end
    end
    ]]></config>
    <event type="login" name="LootLogin" event="script"><![CDATA[
    function onLogin(cid)
    registerCreatureEvent(cid, "MonsterAttack")
    return true
    end]]></event>
    <event type="death" name="LootEventDeath" event="script"><![CDATA[
    domodlib('Loot_func')
        function onDeath(cid, corpse, deathList)
        local killer,pos = deathList[1],getCreaturePosition(cid)
        local lookCorpse = getMonsterInfo(getCreatureName(cid)).lookCorpse
        if isContainerByItemId(lookCorpse) then
            addEvent(corpseRetireItems,1,killer,pos)
        end
    return true
    end]]></event>
    <event type="combat" name="MonsterAttack" event="script"><![CDATA[
    domodlib('Loot_func')
            if isPlayer(cid) and isMonster(target) and not isInArray(info.BlockMonsters,string.lower(getCreatureName(target))) then
                registerCreatureEvent(target, "LootEventDeath")
                            end
    return true]]></event>
    <talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[
    domodlib('Loot_func')
    local t = string.explode(string.lower(param), ",")
    if not t[1] then
    ShowItemsTabble(cid) return true
    elseif tonumber(t[1]) or tonumber(t[2]) then
    doPlayerSendCancel(cid, "enter!autoloot add,name or !autoloot remove,name") return true
    elseif isInArray({"add","remove"}, tostring(t[1])) then
    local func,check = tostring(t[1]) == "add" and addItemTable or removeItemTable, tostring(t[1]) == "add" and true or false
    local item = getItemIdByName(tostring(t[2]), false)
    if not item then
    doPlayerSendCancel(cid, "This item does not exist.") return true
    elseif check == true and isInArray(info.BlockItemsList, item) then
    doPlayerSendCancel(cid, "You can not add this item in the list!") return true
    elseif isInTable(cid, item) == check then
    doPlayerSendCancel(cid, "This Item "..(check == true and "already" or "is not").." in your list.") return true
    end
    func(cid, item)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,check == true and "you added the item "..t[2].." in the list" or "you removed the item "..t[2].." from the list") return true
    end
    return true]]></talkaction>
    </mod>



    [Mods] Autoloot para 0.3.6 hasta 0.4, corregido tipicos errores - Página 2 YNU5B25
    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes
    http://www.tibiaface.com

    ioke

    ioke
    Miembro
    Miembro
    nada sigue dando el error

    Código:
    [23:39:58.793] [Error - CreatureScript Interface]
    [23:39:58.809] In a timer event called from:
    [23:39:58.809] domodlib('Loot_func')
    [23:39:58.824] function onDeath(cid, corpse, deathList)
    [23:39:58.840] local killer,pos = deathList[1],getCreaturePosition(cid)
    [23:39:58.855] addEvent(corpseRetireItems,1,killer,pos)
    [23:39:58.871] return true
    [23:39:58.871] end:onDeath
    [23:39:58.887] Description:
    [23:39:58.887] (LuaInterface::luaGetContainerSize) Container not found

    [23:39:58.902] [Error - CreatureScript Interface]
    [23:39:58.918] In a timer event called from:
    [23:39:58.934] domodlib('Loot_func')
    [23:39:58.949] function onDeath(cid, corpse, deathList)
    [23:39:58.949] local killer,pos = deathList[1],getCreaturePosition(cid)
    [23:39:58.980] addEvent(corpseRetireItems,1,killer,pos)
    [23:39:58.980] return true
    [23:39:58.996] end:onDeath
    [23:39:59.012] Description:
    [23:39:59.012] [string "info = {..."]:153: bad argument #1 to 'pairs' (table expected, got boolean)
    [23:39:59.043] stack traceback:
    [23:39:59.043] [C]: in function 'pairs'
    [23:39:59.059] [string "info = {..."]:153: in function <[string "info = {..."]:142>



    el sistema funciona bien pero me da esos errores en la consola no se es raro

    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes
    http://baiakciteron.sytes.net

    samsung123

    samsung123
    Miembro
    Miembro
    Hola 

    tfs 860. tfs 0.4


    el autoloot funciona bien pero no me funciona para agarrar gold, dolar, cent

    intento con LootSystemOptions.moneyToBank = false o true
    y no funciona ninguna de los 2 metodos,


    no tengo problema con ninguna de la 2 opciones. talvez tengo mala la funcition050

    Código:
    function doPlayerDepositMoney(cid, amount)
       if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
          return false
       end

       if(not doPlayerRemoveMoney(cid, amount)) then
          return false
       end

       doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
       return true
    end

    tambien lo intente con el autoloot de "Vodkart And Mkalo" . mismo problema

    cambie hasta el storage, borre la funcion , el if , cambia la id de los item y nada D;


    los dolares , gold y cent , se quedan en el course del monster muerto, no desaparecen al banco o a la bag del player que lo mato

    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    samsung123 escribió:Hola 

    tfs 860. tfs 0.4


    el autoloot funciona bien pero no me funciona para agarrar gold, dolar, cent

    intento con LootSystemOptions.moneyToBank = false o true
    y no funciona ninguna de los 2 metodos,


    no tengo problema con ninguna de la 2 opciones. talvez tengo mala la funcition050

    Código:
    function doPlayerDepositMoney(cid, amount)
       if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
          return false
       end

       if(not doPlayerRemoveMoney(cid, amount)) then
          return false
       end

       doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
       return true
    end

    tambien lo intente con el autoloot de "Vodkart And Mkalo" . mismo problema

    cambie hasta el storage, borre la funcion , el if , cambia la id de los item y nada D;


    los dolares , gold y cent , se quedan en el course del monster muerto, no desaparecen al banco o a la bag del player que lo mato


    use asi

    Código:

    function doPlayerDepositMoney(cid, amount)
        if not doPlayerRemoveMoney(cid, amount) then
            return false
        end
         
        doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
        return true
    end



    [Mods] Autoloot para 0.3.6 hasta 0.4, corregido tipicos errores - Página 2 YNU5B25
    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes
    http://www.tibiaface.com

    samsung123

    samsung123
    Miembro
    Miembro
    Código:
    LootSystemOptions.moneyToBank = true
    Código:
    function doPlayerDepositMoney(cid, amount)
        if not doPlayerRemoveMoney(cid, amount) then
            return false
        end
          
        doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
        return true
    end

    Y no funciona. los dolares, cent y gold se quedan en el cuerpo muerto del monster.
    no se van ni a a bag ni al balance


    Código:
       <item id="2152" article="a" name="Dollar" plural="Dollars">
          <attribute key="weight" value="10" />
          <attribute key="worth" value="100" />
          
       </item>

    e probado como 3 distintos autoloot mod, ningun error en consola

    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    samsung123 escribió:
    Código:
    LootSystemOptions.moneyToBank = true
    Código:
    function doPlayerDepositMoney(cid, amount)
        if not doPlayerRemoveMoney(cid, amount) then
            return false
        end
          
        doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
        return true
    end

    Y no funciona. los dolares, cent y gold se quedan en el cuerpo muerto del monster.
    no se van ni a a bag ni al balance


    Código:
       <item id="2152" article="a" name="Dollar" plural="Dollars">
          <attribute key="weight" value="10" />
          <attribute key="worth" value="100" />
          
       </item>

    e probado como 3 distintos autoloot mod, ningun error en consola

    hay que ver si con los nombre originales funciona para descartar cualquier otro error



    [Mods] Autoloot para 0.3.6 hasta 0.4, corregido tipicos errores - Página 2 YNU5B25
    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes
    http://www.tibiaface.com

    samsung123

    samsung123
    Miembro
    Miembro
    no funciono , veré si creo 3 item de nuevo en item.otb, y creare el sistema de dinero con esos nuevos item xd. no queda de otra

    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes

    Contenido patrocinado


    +11
    [Adm] SevuOT
    ralke
    Felipe93
    Kamila
    jeank
    zephiro
    Simon Marin
    Master2018
    Psycho
    Roo
    Sotomayor
    15 participantes

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

    Ir a la página : Precedente  1, 2

    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).