• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] Refinamiento de item

    Compartir:

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

    1default [Actions] Refinamiento de item el Mar Jun 03, 2014 2:56 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola usuarios de tibiaface


    hoy les traigo el sistema de refineria:

    muy sencillo de usar usted devn tener a la mano un iron hammer y su backpack iron ores. bueno ustede le dan use al iron hammer y le dan click a la armor o sword o escudo y con suerte el objeto suvira su defensa o ataque. bueno vamos a la instalacion:





    Nos vamos a:


    Data/actions/scripts


    copiamos cualquier archivo y renombramos por refine.lua y pegamos esto dentro

    Código:
    local vocations = {11, 16, 21}

    local ids_bloqueados = {7424}

    local controle = {
        {level = 0, quantOre = 1, chance = 45},
        {level = 1, quantOre = 2, chance = 33},
        {level = 2, quantOre = 3, chance = 28},
        {level = 3, quantOre = 4, chance = 27},
        {level = 4, quantOre = 5, chance = 24},
        {level = 5, quantOre = 6, chance = 20},
        {level = 6, quantOre = 7, chance = 10},
        {level = 7, quantOre = 8, chance = 8},
        {level = 8, quantOre = 9, chance = 5},
        {level = 9, quantOre = 10, chance = 2}
    }


    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.find(name,'+(%d+)')
        return tonumber(lvl) or 0
    end

    function onUse(cid, item, fromPosition, itemEx, toPosition)
       
        local chan = math.random(1, 100)
       
        if isInArray(ids_bloqueados, itemEx.itemid) or not isMovable(itemEx.uid) then
            return doPlayerSendCancel(cid, "Voce nao pode refinar este item.")
        elseif not isInArray(vocations, getPlayerVocation(cid)) then
            return doPlayerSendCancel(cid, "Apenas miners podem refinar.")
        elseif isCreature(itemEx.uid) then
            return doPlayerSendCancel(cid, "Isto nao e possivel.")
        end

        local level = getWeaponLevel(itemEx.uid)

        if isWeapon(itemEx.uid) then
            for u, cont_ in pairs(controle) do
               
                local atk = getWeaponLevel(itemEx.uid) == 0 and getItemInfo(itemEx.itemid).attack or getItemAttribute(itemEx.uid,'attack')
               
                if level == cont_.level then
                    if getPlayerItemCount(cid, 12403) >= cont_.quantOre then
                        if chan <= cont_.chance then
                            doItemSetAttribute(itemEx.uid, "attack",atk + 1)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você refinou com sucesso!")
                            doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS)
                            doItemSetAttribute(itemEx.uid, 'name', getItemNameById(itemEx.itemid)..' +'..(level+1))
                            doItemSetAttribute(itemEx.uid, "description", "Este item foi refinado por " .. getCreatureName(cid) .. "")
                            doPlayerRemoveItem(cid, 12403, cont_.quantOre)
                        else
                            doTransformItem(itemEx.uid, 2256)
                            doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS)
                            doItemSetAttribute(itemEx.uid, 'name', "metal trash")
                            doItemSetAttribute(itemEx.uid, 'attack', 0)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.")
                            return true
                        end
                    else
                        doPlayerSendCancel(cid, "Voce nao tem battle stones o suficiente. Voce precisa de " .. cont_.quantOre .. " battle stones.")
                    end
                elseif level == 10 then
                    return doPlayerSendCancel(cid, "Este item ja esta no nivel maximo.")
                end
            end
           
        elseif getItemInfo(itemEx.itemid).armor > 0 then
           
            for u, cont_ in pairs(controle) do
               
                local arm = getWeaponLevel(itemEx.uid) == 0 and getItemInfo(itemEx.itemid).armor or getItemAttribute(itemEx.uid,'armor')
               
                if level == cont_.level then
                    if getPlayerItemCount(cid, 12403) >= cont_.quantOre then
                        if chan <= cont_.chance then
                            doItemSetAttribute(itemEx.uid, 'armor',arm + 1)
                            doPlayerRemoveItem(cid, 12403, cont_.quantOre)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce refinou com sucesso!")
                            doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS)
                            doItemSetAttribute(itemEx.uid, 'name', getItemNameById(itemEx.itemid)..' +'..(level+1))
                            doItemSetAttribute(itemEx.uid, "description", "Este item foi refinado por " .. getCreatureName(cid) .. "")
                            else
                            doTransformItem(itemEx.uid, 2256)
                            doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS)
                            doItemSetAttribute(itemEx.uid, 'name', "metal trash")
                            doItemSetAttribute(itemEx.uid, 'armor', 0)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.")
                        end
                    else
                        doPlayerSendCancel(cid, "Voce nao tem battle stones o suficiente. Voce precisa de " .. cont_.quantOre .. " battle stones.")
                    end
                elseif level == 10 then
                    return doPlayerSendCancel(cid, "Este item ja esta no nivel maximo.")
                end
            end
        elseif isShield(itemEx.uid) then
           
            local def = getWeaponLevel(itemEx.uid) == 0 and getItemInfo(itemEx.itemid).defense or getItemAttribute(itemEx.uid,'defense')
           
            for u, cont_ in pairs(controle) do
                if level == cont_.level then
                    if getPlayerItemCount(cid, 12403) >= cont_.quantOre then
                        if chan <= cont_.chance then
                            doItemSetAttribute(itemEx.uid, 'defense',def + 1)
                            doPlayerRemoveItem(cid, 12403, cont_.quantOre)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce refinou com sucesso!")
                            doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS)
                            doItemSetAttribute(itemEx.uid, 'name', getItemNameById(itemEx.itemid)..' +'..(level+1))
                            doItemSetAttribute(itemEx.uid, "description", "Este item foi refinado por " .. getCreatureName(cid) .. "")
                        else
                            doTransformItem(itemEx.uid, 2256)
                            doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.")
                            doItemSetAttribute(itemEx.uid, 'name', "metal trash")
                            doItemSetAttribute(itemEx.uid, 'defense', 0)
                        end
                    else
                        doPlayerSendCancel(cid, "Voce nao tem battle stones o suficiente. Voce precisa de " .. cont_.quantOre .. " battle stones.")
                    end
                elseif level == 10 then
                    return doPlayerSendCancel(cid, "Este item ja esta no nivel maximo.")
                end
            end
        else
            doPlayerSendCancel(cid, "Voce nao pode refinar este item.")
        end
        return true
    end



    Luego nos vamos a:


    Data/actions/ations.xml

    y añadimos esta tag:


    Código:
    <action itemid="2422" event="script" value="refine.lua"/>



    Zona Editables


    "local vocations = {11, 16, 21}" -- vocasiones que pueden usar el item dde refinamiento



    "local ids_bloqueados = {7424}" -- item que no puede ser refinado



    "level = 0, quantOre = 1, chance = 45" -- level= level que mostrara al ser refinado; quantore= cantidad de iron ore para refinar; chance= % de exito



    nota: todos los item al ser refinado reciven +1



    Créditos:
    Killua



    Ver perfil de usuario http://www.tibiaface.com

    2default Re: [Actions] Refinamiento de item el Sáb Ene 03, 2015 1:46 pm

    daiverbmx9

    avatar
    Nuevo Miembro
    Nuevo Miembro
    esta muy chido pero, ojala funcionara en TFS 1.0 y 1.1

    Ver perfil de usuario http://tibialol.no-ip.org

    3default Re: [Actions] Refinamiento de item el Dom Ene 04, 2015 10:41 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:esta muy chido pero, ojala funcionara en TFS 1.0 y 1.1

    es muy posible en el lanzamiento oficial de la otx 3 funcionen todos los script de tfs 0.3.7 para otx 3 1.0 solo hay que esperar



    Ver perfil de usuario http://www.tibiaface.com

    4default Re: [Actions] Refinamiento de item el Vie Ago 07, 2015 7:19 pm

    Vicho17

    avatar
    Miembro
    Miembro
    al darle click en el item me dice que solo los mineros pueden refinar por que pasa eso?

    Ver perfil de usuario

    5default Re: [Actions] Refinamiento de item el Vie Ago 07, 2015 11:22 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:al darle click en el item me dice que solo los mineros pueden refinar por que pasa eso?

    Es por la ocasión si te fijas en local vocasion



    Ver perfil de usuario http://www.tibiaface.com

    6default Re: [Actions] Refinamiento de item el Miér Sep 27, 2017 12:24 pm

    jepicowner

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Disculpa Maya esto tambien Funciona en cualquier ot 8.80 ?

    Ver perfil de usuario

    7default Re: [Actions] Refinamiento de item el Miér Sep 27, 2017 5:36 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Disculpa Maya esto tambien Funciona en cualquier ot 8.80 ?

    es muy posible



    Ver perfil de usuario http://www.tibiaface.com

    8default Re: [Actions] Refinamiento de item el Jue Sep 28, 2017 1:56 am

    hielakorn

    avatar
    Nuevo Miembro
    Nuevo Miembro
    esto es lo que me dice al tratar de refinar un item, Voce nao tem battle stones o suficiente. Voce precisa de 1 battle stones, tengo eliron hammer en la mano y los iron ores en backpack.

    Ver perfil de usuario

    9default Re: [Actions] Refinamiento de item el Jue Sep 28, 2017 11:54 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:esto es lo que me dice al tratar de refinar un item, Voce nao tem battle stones o suficiente. Voce precisa de 1 battle stones, tengo eliron hammer en la mano y los iron ores en backpack.

    en ni un lado veo que pida iron ores el item que pide es 12403



    Ver perfil de usuario http://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).