• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Pedido] [Pedido] SCRIPS

    Compartir:

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

    1Cảnh báo [Pedido] [Pedido] SCRIPS el Sáb Abr 06, 2019 12:00 am

    ivansho92

    ivansho92
    Nuevo Miembro
    Nuevo Miembro
    Descripcion escribió:Tengo el global 12 corriendo, pero quiero saber como pudiera crear un comando para cambiar el tipo de ataque de la rod o wand, es decir,ejemplo:
    !elemento fire, !elemento, frigo, !elemento mort y así sucesivamente, ya había intentado algo que encontré pero no me funcionó, al parecer era para versiones anteriores.
    Imagen Explicativa escribió:Imagen Explicativa: [Pedido] [Pedido] SCRIPS C:\Users\ivan\Desktop
    Version del Scripts: TFs 1.x

    Ver perfil de usuario

    2Cảnh báo Re: [Pedido] [Pedido] SCRIPS el Sáb Abr 06, 2019 12:12 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    te vas a

    /data/actions/actions.xml

    agregas

    Código:
    <action itemid="ITEMID" script="weapon_damage.lua"/>

    itemid="ITEMID" ----> id de la wand


    /data/actions/scripts crear un archivo llamado "weapon_damage.lua"

    Código:

    -- Config

    -- Set wand how the wand deals damage
    DamageTypeWand = {
       values = true, -- If this is set to true then it will use the min and max values. If set to false the wand will use the formula
       
       -- Damage Values min/max
       wandMinDam = 20,
       wandMaxDam = 50,
       
       -- Damage Formula
       formula = {
          wandMinDam = function(level, maglevel) return -((level / 5) + (maglevel * 1.4) + 8) end,
          wandMaxDam = function(level, maglevel) return -((level / 5) + (maglevel * 2.2) + 14) end,
       }
    }

    -- Modal window config and storage id
    local config = {
       storage = "10009",
       titleMsg = "Change Weapon Damage Type",
       mainMsg = "Choose a damage type from the list",
    -- End Config

       -- Damage Table
       [1] = {element = "Holy"},
       [2] = {element = "Fire"},
       [3] = {element = "Death"},
       [4] = {element = "Poison"},
       [5] = {element = "Energy"},
       [6] = {element = "Earth"},
       [7] = {element = "Ice"},
    }

    function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey)
        player:sendDamageWindow(config)
        return true
    end


    en global.lua

    Código:
    dofile('data/lib/weapon_damage.lua')


    /data/lib/ crear un archivo "weapon_damage.lua"

    Código:
    function Player:sendDamageWindow(config)
       local function buttonCallback(button, choice)
       -- Modal window functionallity
          if button.text == "Confirm" then
             self:setStorageValue(10009, choice.id)
          end
       end
       
    -- Modal window design
       local window = ModalWindow {
          title = config.titleMsg, -- Title of the modal window
          message = config.mainMsg, -- The message to be displayed on the modal window
       }

       -- Add buttons to the window (Note: if you change the names of these you must change the functions in the modal window functionallity!)
       window:addButton("Confirm", buttonCallback)
       window:addButton("Cancel")

       -- Set what button is pressed when the player presses enter or escape
       window:setDefaultEnterButton("Confirm")
       window:setDefaultEscapeButton("Cancel")

       -- Add choices from the action script
       for i = 1, #config do
       local o = config[i].element
          window:addChoice(o)
        end

       -- Send the window to player
       window:sendToPlayer(self)
    end

    en /data/weapons/weapons.xml

    Código:
    <wand id="25249" level="300" mana="20" script="weapon_damage.lua">
                <vocation name="Sorcerer" />
    </wand>

    25249 cambia por la id e su wand

    ahora en /data/weapons/scripts crear un archivo "weapon_damage.lua"


    Código:

    local DamageTypes = {
        [1] = {DamageType = COMBAT_HOLYDAMAGE, DamageEffect = CONST_ANI_HOLY},
        [2] = {DamageType = COMBAT_FIREDAMAGE, DamageEffect = CONST_ANI_FIRE},
        [3] = {DamageType = COMBAT_DEATHDAMAGE, DamageEffect = CONST_ANI_DEATH},
        [4] = {DamageType = COMBAT_POISONDAMAGE, DamageEffect = CONST_ANI_POISON},
        [5] = {DamageType = COMBAT_ENERGYDAMAGE, DamageEffect = CONST_ANI_ENERGY},
        [6] = {DamageType = COMBAT_EARTHDAMAGE, DamageEffect = CONST_ANI_EARTH},
        [7] = {DamageType = COMBAT_ICEDAMAGE, DamageEffect = CONST_ANI_ICE}
    }

    function onGetFormulaValues(player, level, maglevel)
       if DamageTypeWand.values == true then
          min = -(DamageTypeWand.wandMinDam)
          max = -(DamageTypeWand.wandMaxDam)
       else
          min = DamageTypeWand.formula.wandMinDam(level, maglevel)
          max = DamageTypeWand.formula.wandMaxDam(level, maglevel)
       end
        return min, max
    end
     
    local combat = {}
    for k, dam_Table in pairs(DamageTypes) do
       combat[k] = Combat()
       combat[k]:setParameter(COMBAT_PARAM_BLOCKARMOR, 1)
       combat[k]:setParameter(COMBAT_PARAM_BLOCKSHIELD, 1)
       combat[k]:setParameter(COMBAT_PARAM_TYPE, dam_Table.DamageType)
       combat[k]:setParameter(COMBAT_PARAM_DISTANCEEFFECT, dam_Table.DamageEffect)   
       
       -- _G Is used to manually define 'onGetFormulaValues' in this loop in doesnt seem to be able to find the function.
       _G['onGetFormulaValues' .. k] = onGetFormulaValues
       combat[k]:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues" .. k)
    end
     
    function onUseWeapon(player, var)
        local value = player:getStorageValue(10009)
        local combatUse = combat[value]
        if not combatUse then
            return true
        end
        return combatUse:execute(player, var)
    end




    [Pedido] [Pedido] SCRIPS YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    3Cảnh báo Re: [Pedido] [Pedido] SCRIPS el Sáb Abr 06, 2019 12:44 am

    ivansho92

    ivansho92
    Nuevo Miembro
    Nuevo Miembro
    bro no veo que le haya anexado nada al talkactions, suponiendo que el damage del arma sea random, tendría que cambiarle al items?

    <attribute key="weaponType" value="wand" />
    <attribute key="range" value="6" />
    <attribute key="shootType" value="ice" />
    <attribute key="magiclevelpoints" value="3" />
    <attribute key="absorbPercentEnergy" value="8" />
    <attribute key="weight" value="3700" />



    hasta ahí no funcionan, se marca el cuadro rojo de target pero no lanza ningun ataque mi wand. :s

    Ver perfil de usuario

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