• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface)

    Compartir:

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

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola usuarios de tibiface

    bueno aqui les traigo el upgrade sytem para los equipamentos por ejemplo si tenemos una esoeda que ataka 15 y le damos upgrade con el item subira su atake a +16 ejemplo

    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) Captur15


    no vamos a data/global.lua y agregamos esto al final

    Código:
    -- refinamiento de espadas

    function getItemAttribute(uid, key)
      local i = ItemType(Item(uid):getId())
      local string_attributes = {
        [ITEM_ATTRIBUTE_NAME] = i:getName(),
        [ITEM_ATTRIBUTE_ARTICLE] = i:getArticle(),
        [ITEM_ATTRIBUTE_PLURALNAME] = i:getPluralName(),
        ["name"] = i:getName(),
        ["article"] = i:getArticle(),
        ["pluralname"] = i:getPluralName()
      }

      local numeric_attributes = {
        [ITEM_ATTRIBUTE_WEIGHT] = i:getWeight(),
        [ITEM_ATTRIBUTE_ATTACK] = i:getAttack(),
        [ITEM_ATTRIBUTE_DEFENSE] = i:getDefense(),
        [ITEM_ATTRIBUTE_EXTRADEFENSE] = i:getExtraDefense(),
        [ITEM_ATTRIBUTE_ARMOR] = i:getArmor(),
        [ITEM_ATTRIBUTE_HITCHANCE] = i:getHitChance(),
        [ITEM_ATTRIBUTE_SHOOTRANGE] = i:getShootRange(),
        ["weight"] = i:getWeight(),
        ["attack"] = i:getAttack(),
        ["defense"] = i:getDefense(),
        ["extradefense"] = i:getExtraDefense(),
        ["armor"] = i:getArmor(),
        ["hitchance"] = i:getHitChance(),
        ["shootrange"] = i:getShootRange()
      }
     
      local attr = Item(uid):getAttribute(key)
      if tonumber(attr) then
        if numeric_attributes[key] then
          return attr ~= 0 and attr or numeric_attributes[key]
        end
      else
        if string_attributes[key] then
          if attr == "" then
            return string_attributes[key]
          end
        end
      end
    return attr
    end

    function doItemSetAttribute(uid, key, value)
      return Item(uid):setAttribute(key, value)
    end

    function doItemEraseAttribute(uid, key)
      return Item(uid):removeAttribute(key)
    end

    luego nos vamos a: Data/actions/scripts copiamos cualuqier archivo y renombramos por refine.lua y pegamos esto dentro

    Código:
    local conf = {
      ["level"] = {
      -- [item_level] = {successPercent= CHANCE TO UPGRADE ITEM, downgradeLevel = ITEM GETS THIS LEVEL IF UPGRADE FAILS}
        [1] = {successPercent = 85, downgradeLevel = 0},
        [2] = {successPercent = 80, downgradeLevel = 1},
        [3] = {successPercent = 75, downgradeLevel = 2},
        [4] = {successPercent = 70, downgradeLevel = 3},
        [5] = {successPercent = 65, downgradeLevel = 4},
        [6] = {successPercent = 60, downgradeLevel = 5},
        [7] = {successPercent = 55, downgradeLevel = 0},
        [8] = {successPercent = 50, downgradeLevel = 0},
        [9] = {successPercent = 45, downgradeLevel = 0}
      },

      ["upgrade"] = { -- how many percent attributes are rised?
        attack = 5, -- attack %
        defense = 5, -- defense %
        extraDefense = 10, -- extra defense %
        armor = 5, -- armor %
        hitChance = 5, -- hit chance %
      }
    }



    -- // do not touch // --
    -- Upgrading system by Azi [Ersiu] --
    -- Edited for TFS 1.1 by Zbizu --

    local upgrading = {
      upValue = function (value, level, percent)
      if value < 0 then return 0 end
        if level == 0 then return value end
        local nVal = value
        for i = 1, level do
          nVal = nVal + (math.ceil((nVal/100*percent)))
        end
      return nVal > 0 and nVal or value
      end,

      getLevel = function (item)
      local name = Item(item):getName():split('+')
        if (#name == 1) then
          return 0
        end
     
        return math.abs(name[2])
      end,
    }
    function onUse(cid, item, fromPosition, itemEx, toPosition)
      local it = ItemType(itemEx.itemid)
      if((it:getWeaponType() > 0 or getItemAttribute(itemEx.uid, ITEM_ATTRIBUTE_ARMOR) > 0) and not isItemStackable(itemEx.itemid))then
      local level = upgrading.getLevel(itemEx.uid)
      if(level < #conf["level"])then
      local nLevel = (conf["level"][(level+1)].successPercent >= math.random(1,100)) and (level+1) or conf["level"][level].downgradeLevel
      if(nLevel > level)then
      doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Upgrade to level " .. nLevel .. " successful!")
      else
      doSendMagicEffect(toPosition, CONST_ME_BLOCKHIT)
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Upgrade failed. Your " .. it:getName() .. " is now on level " .. nLevel .. "")
      end
      doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_NAME, it:getName()..((nLevel>0) and " Refinado +"..nLevel or ""))
      doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_ATTACK,  upgrading.upValue(it:getAttack(), nLevel, conf["upgrade"].attack))
      doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_DEFENSE, upgrading.upValue(it:getDefense(), nLevel, conf["upgrade"].defense))
      doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_EXTRADEFENSE, upgrading.upValue(it:getExtraDefense(), nLevel, conf["upgrade"].extraDefense))
      doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_ARMOR, upgrading.upValue(it:getArmor(), nLevel, conf["upgrade"].armor))
      doItemSetAttribute(itemEx.uid, ITEM_ATTRIBUTE_HITCHANCE, upgrading.upValue(it:getHitChance(), nLevel, conf["upgrade"].hitChance))
      doRemoveItem(item.uid, 1)
      else
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your " .. it:getName() .. " is on max level alredy.")
      end
      else
      doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You cannot upgrade this item.")
      end
    end

    luego agregamos esta tag en actions.xml


    Código:
    <action itemid="8306" script="refine.lua"/>


    8306 -------> es el item con que vamos a refinar


    y listo






    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) YNU5B25
    https://www.tibiaface.com

    Invitado

    Anonymous
    Invitado
    Nice <3

    Cheka

    Cheka
    Miembro
    Miembro
    puedes hacer un script para ganar un arma modificada en una quest con nombre propio el arma ?

    [exorz]

    [exorz]
    Nuevo Miembro
    Nuevo Miembro
    como se hace pera que funcione con las armas de paladin xq cuando las uso con las spear me dale esto "02:33 You cannot upgrade this item." y en las wand si las refina pero no le aumenta el atake

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [ITEM_ATTRIBUTE_WEIGHT] = i:getWeight(),

    hmm raro me gustaria que me mostrars una imagen



    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) YNU5B25
    https://www.tibiaface.com

    MauGame

    MauGame
    Nuevo Miembro
    Nuevo Miembro
    Estimados, he probado el script y me funciona pero aveces manda un error, quisiera saber cual podría ser la posible causa:

    Lua Script Error: [Action Interface]
    data/actions/scripts/upgrade.lua:onUse
    data/actions/scripts/upgrade.lua:55: attempt to index field '?' (a nil value)
    stack traceback:
    [C]: in function '__index'
    data/actions/scripts/upgrade.lua:55: in function <data/actions/scripts/upgrade.lua:50>

    Lua Script Error: [Action Interface]
    data/actions/scripts/upgrade.lua:onUse
    data/global.lua:67: attempt to index a nil value
    stack traceback:
    [C]: in function '__index'
    data/global.lua:67: in function 'getItemAttribute'
    data/actions/scripts/upgrade.lua:52: in function <data/actions/scripts/upgrade.lua:50>


    Uso:
    The Forgotten Server - Version 1.3
    Compiled with GNU C++ version 7.2.0
    Compiled on Mar 21 2018 16:01:08 for platform x64
    10.98

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Estimados, he probado el script y me funciona pero aveces manda un error, quisiera saber cual podría ser la posible causa:

    Lua Script Error: [Action Interface]
    data/actions/scripts/upgrade.lua:onUse
    data/actions/scripts/upgrade.lua:55: attempt to index field '?' (a nil value)
    stack traceback:
    [C]: in function '__index'
    data/actions/scripts/upgrade.lua:55: in function <data/actions/scripts/upgrade.lua:50>

    Lua Script Error: [Action Interface]
    data/actions/scripts/upgrade.lua:onUse
    data/global.lua:67: attempt to index a nil value
    stack traceback:
    [C]: in function '__index'
    data/global.lua:67: in function 'getItemAttribute'
    data/actions/scripts/upgrade.lua:52: in function <data/actions/scripts/upgrade.lua:50>


    Uso:
    The Forgotten Server - Version 1.3
    Compiled with GNU C++ version 7.2.0
    Compiled on Mar 21 2018 16:01:08 for platform x64
    10.98

    seguramente no le has agregado a tu global.lua las funciones de refinamiento

    Código:
    getItemAttribute



    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) YNU5B25
    https://www.tibiaface.com

    MauGame

    MauGame
    Nuevo Miembro
    Nuevo Miembro
    de echo si se encuentra coloque tal como indica la guia.


    Esto alfinal del global.lua.

    Código:
    -- refinamiento de espadas

    function getItemAttribute(uid, key)
      local i = ItemType(Item(uid):getId())
      local string_attributes = {
        [ITEM_ATTRIBUTE_NAME] = i:getName(),
        [ITEM_ATTRIBUTE_ARTICLE] = i:getArticle(),
        [ITEM_ATTRIBUTE_PLURALNAME] = i:getPluralName(),
        ["name"] = i:getName(),
        ["article"] = i:getArticle(),
        ["pluralname"] = i:getPluralName()
      }

      local numeric_attributes = {
        [ITEM_ATTRIBUTE_WEIGHT] = i:getWeight(),
        [ITEM_ATTRIBUTE_ATTACK] = i:getAttack(),
        [ITEM_ATTRIBUTE_DEFENSE] = i:getDefense(),
        [ITEM_ATTRIBUTE_EXTRADEFENSE] = i:getExtraDefense(),
        [ITEM_ATTRIBUTE_ARMOR] = i:getArmor(),
        [ITEM_ATTRIBUTE_HITCHANCE] = i:getHitChance(),
        [ITEM_ATTRIBUTE_SHOOTRANGE] = i:getShootRange(),
        ["weight"] = i:getWeight(),
        ["attack"] = i:getAttack(),
        ["defense"] = i:getDefense(),
        ["extradefense"] = i:getExtraDefense(),
        ["armor"] = i:getArmor(),
        ["hitchance"] = i:getHitChance(),
        ["shootrange"] = i:getShootRange()
      }

      local attr = Item(uid):getAttribute(key)
      if tonumber(attr) then
        if numeric_attributes[key] then
          return attr ~= 0 and attr or numeric_attributes[key]
        end
      else
        if string_attributes[key] then
          if attr == "" then
            return string_attributes[key]
          end
        end
      end
    return attr
    end

    function doItemSetAttribute(uid, key, value)
      return Item(uid):setAttribute(key, value)
    end

    function doItemEraseAttribute(uid, key)
      return Item(uid):removeAttribute(key)
    end

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:de echo si se encuentra coloque tal como indica la guia.


    Esto alfinal del global.lua.

    Código:
    -- refinamiento de espadas

    function getItemAttribute(uid, key)
      local i = ItemType(Item(uid):getId())
      local string_attributes = {
        [ITEM_ATTRIBUTE_NAME] = i:getName(),
        [ITEM_ATTRIBUTE_ARTICLE] = i:getArticle(),
        [ITEM_ATTRIBUTE_PLURALNAME] = i:getPluralName(),
        ["name"] = i:getName(),
        ["article"] = i:getArticle(),
        ["pluralname"] = i:getPluralName()
      }

      local numeric_attributes = {
        [ITEM_ATTRIBUTE_WEIGHT] = i:getWeight(),
        [ITEM_ATTRIBUTE_ATTACK] = i:getAttack(),
        [ITEM_ATTRIBUTE_DEFENSE] = i:getDefense(),
        [ITEM_ATTRIBUTE_EXTRADEFENSE] = i:getExtraDefense(),
        [ITEM_ATTRIBUTE_ARMOR] = i:getArmor(),
        [ITEM_ATTRIBUTE_HITCHANCE] = i:getHitChance(),
        [ITEM_ATTRIBUTE_SHOOTRANGE] = i:getShootRange(),
        ["weight"] = i:getWeight(),
        ["attack"] = i:getAttack(),
        ["defense"] = i:getDefense(),
        ["extradefense"] = i:getExtraDefense(),
        ["armor"] = i:getArmor(),
        ["hitchance"] = i:getHitChance(),
        ["shootrange"] = i:getShootRange()
      }

      local attr = Item(uid):getAttribute(key)
      if tonumber(attr) then
        if numeric_attributes[key] then
          return attr ~= 0 and attr or numeric_attributes[key]
        end
      else
        if string_attributes[key] then
          if attr == "" then
            return string_attributes[key]
          end
        end
      end
    return attr
    end

    function doItemSetAttribute(uid, key, value)
      return Item(uid):setAttribute(key, value)
    end

    function doItemEraseAttribute(uid, key)
      return Item(uid):removeAttribute(key)
    end

    estaree al pendiendte sobre tu error alparecer el error se debe a compataabilidad con tu consola veremos que hacemos para hacerla totalmente compatible



    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) YNU5B25
    https://www.tibiaface.com

    ivansho92

    ivansho92
    Miembro
    Miembro
    no funcionó en mi otserver 10.99 Sad

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:no funcionó en mi otserver 10.99 Sad
    para 10.99+++ es este

    [Tienes que estar registrado y conectado para ver este vínculo]



    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) YNU5B25
    https://www.tibiaface.com

    3zequi3l

    3zequi3l
    Miembro
    Miembro
    donde consigo global.lua?

    misaki1124

    misaki1124
    Nuevo Miembro
    Nuevo Miembro
    como se le podria agregar para que le suba el magic level alas wand y demas piezas de set ?

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:como se le podria agregar para que le suba el magic level alas wand y demas piezas de set ?

    para auello se tendria usar el slot system para que se le agregue tal cosa



    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) YNU5B25
    https://www.tibiaface.com

    souszald

    souszald
    Nuevo Miembro
    Nuevo Miembro
    GOD MAYA no hay uno para versiones 8.6? estoy buscando un sistema de refinamiento de armas igual pero para 8.6

    eduardora1

    eduardora1
    Nuevo Miembro
    Nuevo Miembro
    Yo tengo un upgrade system para subir armor, defensa y ataque, pero quiero que solo suba protectionAll, cómo le hago?

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Yo tengo un upgrade system para subir armor, defensa y ataque, pero quiero que solo suba protectionAll, cómo le hago?

    tendrias que buscar el sistema de slots system para aquellos protocolos



    [Sistema] Refinado de armas y armaduras Tfs 1.2 (Compatible con Global Tibiaface) YNU5B25
    https://www.tibiaface.com

    maper1

    maper1
    Miembro
    Miembro
    tengo eso error puede ayudarme ? [Tienes que estar registrado y conectado para ver este vínculo] gracias

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