• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Pedido] Hola, Pedido de system upgrade

    Compartir:

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

    1Resuelto [Pedido] Hola, Pedido de system upgrade Miér Jun 29, 2016 1:09 pm

    Invitado

    Anonymous
    Invitado
    HOLA MES DIRIJO A TODOS LOS QUE LEAN, DE CASUALIDAD TENDRAN EL SISTEMA DE UPGRADE ITEMS ?? EJEMPLO
    ARROW `--> ARROW +1 >>> ARROW +2 ETC ETC

    PERO QUE CUANDO SUBAS UN ITEMS QUE DA SKILL TAMBIEN SUBA SU ATRIBUTO DE SKILL EJEMPLO

    SHIELD OF CORRUPTION DEF 45 SWORD+2
    SHIELD OF CORRUPTION +1 DEF 46 SWORD+3

    LES AGRADECERIA MUCHO QUE ME LO FACILITARAN PORFA DE ANTE MANITO GRACIAS CHICOS

    2 participantes

    2Resuelto Re: [Pedido] Hola, Pedido de system upgrade Miér Jun 29, 2016 3:10 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    aqui los tienes

    Código:

    --- Perfect refine system by Mock the bear (MTB).
    --- Email: [email]mock_otnet@hotmail.com[/email]
    -- &a = weapon attack
    -- &d = weapon defense
    -- &s = shield defense
    -- &p = armor defense
    -- # = nivel do item
    -- @ = max level
    local gain = {
    gainArmor='&p+(1)',loseArmor='&p-(1)',
    gainShield='&s+1',loseShield='&s-(1)',
    gainAttack='&a+(1)',loseAttack='&a-(1)',
    gainDefense='&d+(1)',loseDefense='&d-(1)',
    chance='(100/math.sqrt((((@/4)+(#*2))/@)*#))',
    maxlvl = 8,
    blocked_ids = {0}
    }
    local it = {
    --[itemid] = [percent]
    [8306] = 0, -- 0% additional
    [8305] = 100, -- 50%
    }
    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
     
    local function isArmor(uid) -- Function by Mock the bear.
        if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then
                    return true
            end
            return false
    end
    local 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
    local function isShield(uid) -- Function by Mock the bear.
            uid = uid or 0
            if getItemWeaponType(uid) == 5 then
                    return true
            end
            return false
    end
    local function isBow(uid) -- Function by Mock the bear.
            uid = uid or 0
            if getItemWeaponType(uid) == 4 then
                    return true
            end
            return false
    end
    local function getWeaponLevel(uid) -- Function by Mock the bear.
      uid = uid or 0
      local name = getItemName(uid.uid) or getItemInfo(uid.itemid).name or ''
      local lvl = string.match(name,'%s%+(%d+)%s*')
      return tonumber(lvl) or 0
    end
    local 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) ~= 0 and getItemAttack(i.uid) or getItemInfo(i.itemid).attack))
        local c = string.gsub(c,'&d',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense))
        local c = string.gsub(c,'&s',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense))
        local c = string.gsub(c,'&p',(getItemArmor(i.uid) ~= 0 and getItemArmor(i.uid) or getItemInfo(i.itemid).armor))
        local c = string.gsub(c,'#',getWeaponLevel(i))
        local q = assert(loadstring('return '..c))
        return math.floor(assert(q()))
    end
    function onUse(cid, item, fromPosition, itemEx, toPosition)
            if item.uid == 0 or item.itemid == 0 then return false end
                    toPosition.stackpos = 255
            if isInArray(gain.blocked_ids, itemEx.itemid)
              or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
              or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
                or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
                    doPlayerSendTextMessage(cid, 14,"You cant refine this item.")
                    return TRUE
            end
            if isCreature(itemEx.uid) == TRUE then
                return FALSE
            end
            local level = getWeaponLevel(itemEx)
            local chance = doTransform(gain.chance,itemEx)
                    if level == gain.maxlvl then
                            doSendMagicEffect(toPosition, 2)
                return doPlayerSendTextMessage(cid, 14,"El Item Esta en El Maximo level ya no puedes refinarlo mas.")
                    end
                    doPlayerSendTextMessage(cid, 14,"Trying refine with "..(chance+it[item.itemid] > 100 and 100 or chance+it[item.itemid]).."% of sucess!")
            if chance+it[item.itemid] >= math.random(0,100) then
                            local nm = getItemName(itemEx.uid)
                            local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it ^^
                            slot = slot~='' and ' '..slot or slot
                setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' Refinado +'..(level+1)..slot)
                addEvent(doPlayerSendTextMessage,500,cid, 14,"Tu Item Esta Refinado +"..(level+1)..slot..".")
                doSendMagicEffect(toPosition, 12)
                if isArmor(itemEx) then
                                    local get = doTransform(gain.gainArmor,itemEx)
                                    setItemArmor(itemEx.uid,get)
                            elseif isBow(itemEx.uid) then
                                    setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
                            elseif isWeapon(itemEx.uid) then
                                    setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
                                    setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx))
                            elseif isShield(itemEx.uid) then
                                    setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx))
                            end
            else
                            if level == 0 then
                                    addEvent(doPlayerSendTextMessage,500,cid, 14,"No effect.")
                                    doSendMagicEffect(toPosition, 2)
                            elseif level > 0 then
                            local nm = getItemName(itemEx.uid)
                            local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it ^^
                                    slot = slot~='' and ' '..slot or slot
                                    if level == 1 then
                                            setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..slot)
                                            addEvent(doPlayerSendTextMessage,500,cid, 14,"Tu Item Volvio a la Normalidad.")
                                    else
                                            setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' Refinado +'..(level-1)..slot)
                                            addEvent(doPlayerSendTextMessage,500,cid, 14,"Tu Item Bajo a +"..(level-1)..slot..".")
                                    end
                                    if isArmor(itemEx) then
                                            setItemArmor(itemEx.uid,doTransform(gain.loseArmor  ,itemEx))
                                    elseif isWeapon(itemEx.uid) then
                                            setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
                                            setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx))
                                    elseif isBow(itemEx.uid) then
                                            setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
                                    elseif isShield(itemEx.uid) then
                                            setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx))
                                    end
                            end
                            doSendMagicEffect(toPosition, 9)
            end
            doRemoveItem(item.uid,1)
            return true
    end

    y en actions.xml añadees ests lineas

    Código:

    <action itemid="8305" event="script" value="upgrade.lua"/>
    <action itemid="8306" script="upgrade.lua"/>

    8305 50% exito item que al dale user con le otro item upgrade

    8306 100% exito



    [Pedido] Hola, Pedido de system upgrade YNU5B25
    2 participantes
    http://www.tibiaface.com

    Yoikerx

    Yoikerx
    Nuevo Miembro
    Nuevo Miembro
    @UP
    Sólo sube 'atk, def & arm' no sube los atributos que posee el item...
    Ella pide que al subir el item si posee skillDist="1" al usarlo se aumente a "2" con la function onUse

    2 participantes

    Invitado

    Anonymous
    Invitado
    yoiker me entendio!! sera que alguien tiene para que me colabore?

    2 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Adriana Abreu escribió:yoiker me entendio!! sera que alguien tiene para que me colabore?

    no existe scripts para modificar el atributo del arma so aquel que te di ue mejora el atake del arma



    [Pedido] Hola, Pedido de system upgrade YNU5B25
    2 participantes
    http://www.tibiaface.com

    Invitado

    Anonymous
    Invitado
    Existe esto para TFS 1.2? Este no me funciona en TFS 1.2. :C

    2 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    demon088 escribió:Existe esto para TFS 1.2? Este no me funciona en TFS 1.2. :C
    [Tienes que estar registrado y conectado para ver este vínculo]



    [Pedido] Hola, Pedido de system upgrade YNU5B25
    2 participantes
    http://www.tibiaface.com

    Contenido patrocinado


    2 participantes

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