• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] Perfect items upgrade

    Compartir:

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

    1default [Actions] Perfect items upgrade el Mar Mar 06, 2018 8:52 am

    Cerebro

    Cerebro
    Miembro
    Miembro
    data/actions/actions.xml y agregamos esta linea

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

    Ahora en action/script creamos un archivos llamado upgrade.lua y pegan esto dentro del archivo.

    Código:
    local gain = {
    gainArmor='&p+1',loseArmor='&p-1',
    gainShield='&s+#',loseShield='&s-(#+1)',
    gainAttack='&a+(2*(#))',loseAttack='&a-(2*(#+1))',
    gainDefense='&d+(2*(#))',loseDefense='&d-(2*(#+1))',
    chance='100/((#*(1/(@/2)))*(@/2))',  -- Eu fiz essa equação para variar de +0 a +7 o item
    --- Essa equação deve retornar em % a chance do item se refinar (0-100) 100 = sempre, 0 = nunca
    maxlvl = 7,
    blocked_ids = {2488,8881}
    }
    -- &a = weapon attack
    -- &d = weapon defense
    -- &s = shield defense
    -- &p = armor defense
    -- # = nivel do item
    -- @ = max level
    if not setItemName then
        function setItemName(uid,name)
        return doItemSetAttribute(uid,'name',name)
        end
        function setItemArmor(uid,name)
        return doItemSetAttribute(uid,'armor',name)
        end
        function setItemDefense(uid,name)
        return doItemSetAttribute(uid,'defense',name)
        end
        function setItemAttack(uid,name)
        return doItemSetAttribute(uid,'attack',name)
        end
        function getItemAttack(uid)
          return getItemAttribute(uid,'attack')
        end
        function getItemDefense(uid)
          return getItemAttribute(uid,'defense')
        end
        function getItemArmor(uid)
          if type(uid) == 'number' then
              return getItemAttribute(uid,'armor')
          else
              return getItemInfo(uid.itemid).armor
          end
        end
    end
    function isArmor(uid) -- Function by Mock the bear.
            if (getItemArmor(uid) and getItemArmor(uid) ~= 0 and not getItemInfo(uid.itemid,'attack') and not getItemInfo(uid.itemid,'defense') and getItemWeaponType(uid.uid) == 0) then
                return true
            end
            return false
    end
    function isWeapon(uid) -- Function by Mock the bear.
            uid = uid or 0
            local f = getItemWeaponType(uid)
            if f == 1 or f == 2 or f == 3 then
                return TRUE
            end
            return FALSE
    end
    function isShield(uid) -- Function by Mock the bear.
            uid = uid or 0
            if getItemWeaponType(uid) == 4 then
                return TRUE
            end
            return FALSE
    end
     
    function getWeaponLevel(uid) -- Function by Mock the bear.
      uid = uid or 0
      local name = getItemName(uid)
      local lvl = string.match(name,'+(%d)')
      return tonumber(lvl) or 0
    end
    function doTransform(s,i) -- Function by Mock the bear.
        local c = string.gsub(s,'@',gain.maxlvl)
        local c = string.gsub(c,'&a',getItemAttack(i.uid) or getItemInfo(i.itemid).attack)
        local c = string.gsub(c,'&d',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
        local c = string.gsub(c,'&s',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
        local c = string.gsub(c,'&p',getItemArmor(i.uid) or getItemInfo(i.itemid).armor)
        local c = string.gsub(c,'#',getWeaponLevel(i.uid))
        local q,err = loadstring('return '..c)
        assert(q,err)
        return assert(q())
    end
    function onUse(cid, item, fromPosition, itemEx, toPosition)
            toPosition.stackpos = 255
            if isInArray(gain.blocked_ids, itemEx.itemid) == TRUE
              or getItemWeaponType(itemEx.uid) > 4
              or (getItemWeaponType(itemEx.uid) == 0
                and isArmor(itemEx) == FALSE)
                or itemEx.itemid == 0 then
                    doPlayerSendTextMessage(cid, 24,"You cant refine this item.")
                    return TRUE
            end
            if isCreature(itemEx.uid) == TRUE then
                return FALSE
            end
            local level = getWeaponLevel(itemEx.uid)
            local chance = doTransform(gain.chance,itemEx)
            if chance >= math.random(0,100) or item.actionid >= 1000 or (item.actionid == 500 and math.random(0,100) <= 25) then
              if level+1 > gain.maxlvl then
                  doSendMagicEffect(toPosition, 2)
                  return doPlayerSendTextMessage(cid, 24,"Your item is on max level, you can't upgrade it.")
              else
                  setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1))
                  doPlayerSendTextMessage(cid, 24,"Your item has been upgrated to +"..(level+1)..".")
                  doSendMagicEffect(toPosition, 12)
                  if isArmor(itemEx) == TRUE then
                    local get = doTransform(gain.gainArmor,itemEx)
                    setItemArmor(itemEx.uid,get)
                  elseif isWeapon(itemEx.uid) == TRUE then
                      setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
                      setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx))
                  elseif isShield(itemEx.uid) == TRUE then
                      setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx))
                  end
              end
            else
     
              if level == 0 then
                  doPlayerSendTextMessage(cid, 24,"No effect.")
                  doSendMagicEffect(toPosition, 2)
              elseif level == gain.maxlvl then
                      doSendMagicEffect(toPosition, 2)
                      return doPlayerSendTextMessage(cid, 24,"Your item is on max level, you can't upgrade it.")
              elseif level > 0 then
                  if level == 1 then
                      setItemName(itemEx.uid, getItemNameById(itemEx.itemid))
                      doPlayerSendTextMessage(cid, 24,"Your item back to normal.")
                  else
                      setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level-1))
                      doPlayerSendTextMessage(cid, 24,"Your item back to +"..(level-1)..".")
                  end
                  if isArmor(itemEx) == TRUE then
                    setItemArmor(itemEx.uid,doTransform(gain.loseArmor  ,itemEx))
                  elseif isWeapon(itemEx.uid) == TRUE then
                      setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
                      setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx))
                  elseif isShield(itemEx.uid) == TRUE then
                      setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx))
                  end
              end
              doSendMagicEffect(toPosition, 9)
            end
        doRemoveItem(item.uid,1)
        return TRUE
    end

    Ver perfil de usuario

    2default Re: [Actions] Perfect items upgrade el Mar Mar 06, 2018 1:21 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    gran aporte +1 (y)



    [Actions] Perfect items upgrade YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    3default Re: [Actions] Perfect items upgrade el Vie Mar 09, 2018 10:24 am

    elchuvas

    elchuvas
    Miembro
    Miembro
    Uno asi pero que funcione con wand's?

    Ver perfil de usuario



    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    [Actions] Perfect items upgrade TRJEB8aSRYK5IulEU6ilJw
    Ver perfil de usuario

    5default Re: [Actions] Perfect items upgrade el Mar Ene 08, 2019 6:44 pm

    sensui

    sensui
    Nuevo Miembro
    Nuevo Miembro
    no jala para verciones 11.9

    Ver perfil de usuario

    6default Re: [Actions] Perfect items upgrade el Mar Ene 08, 2019 8:02 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:no jala para verciones 11.9

    hay


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



    [Actions] Perfect items upgrade YNU5B25
    Ver perfil de usuario 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.

    Temas Recomendados×+

       

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