• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Codigo] [Codigo] Skill Fishing o Energy Defence Skill TFS 0.3.6

    Compartir:

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

    Mclovin2

    Mclovin2
    Nuevo Miembro
    Nuevo Miembro
    Descripcion escribió:quiero editar la source o agregarle algo para que el skill de shield o fishing cualquiera de los 2 funciones asi:
    mientras mas skileado este reduzca el daño del spells por ejemplo si tengo 100 de shielding se reduzca en 40% el ataque sitengo 130 un 60% y asi sucesivamente
    Imagen Explicativa escribió:Imagen Explicativa: [Codigo] [Codigo] Skill Fishing o Energy Defence Skill TFS 0.3.6 Tibiaf10
    Version del Scripts: TFs 0.4.0

    Josens

    Josens
    Miembro
    Miembro
    Bien, dime si te funciona:

    en creaturescripts.xml agrega estas lineas:
    Código:

    <event type="login" name="DamageReducer_Login" event="script" value="damageReducer.lua"/>
    <event type="combat" name="DamageReducer_Combat" event="script" value="damageReducer.lua"/>
    <event type="statschange" name="DamageReducer_StatsChange" event="script" value="damageReducer.lua"/>

    crea un script ponle "damageReducer.lua" y adentro pega esto:
    Código:
    local config = {
     skill = SKILL_SHIELDING,
     damagePerSkill = 0.2,
     reductionLimit = 80
    }

    --[[
     Como configurarlo?
     
     skills = {xxx, xxx, xxx, xxx}
     
     ¬  Cual sera el skill que
       mientras mas alto sea, mas daño sera reducido del jugador.
     
     damagePerSkill = 0.2
     
     ¬  Cuanto daño en % se ira perdiendo por el skill descrito en la linea de arriba; ejemplo:
       Si el jugador tiene shielding 10 (ya que 10 es el shielding base) entonces el daño reducido sera
       de 0%, ya que sera = (shielding - 10) * damagePerSkill
     
       si el jugador tiene shielding 20, entonces el daño reducido sera:   (shielding - 10) * damagePerSkill, lo que dara
       un total de (10 * 0.2), lo que nuevamente da 2.0, entonces el jugador al tener shielding 20 tendra un 2% menos de daño.
     
       Con esto en mente, ya eres libre de colocar lo que quieras en la variable "damagePerSkill"
     
     
     reductionLimit = 80
     ¬  Cuanto es el daño maximo que podra ser reducido en %
     
     
    ]]
    function onLogin(cid) if(isPlayer(cid))then registerCreatureEvent(cid, 'DamageReducerSystem_Combat') end end

    function onCombat(cid, target)
     if(not isCreature(cid) or not isCreature(target))then return true end
     
     registerCreatureEvent(target, 'DamageReducerSystem_StatsChange')
     return true
    end

    function onStatsChange(target, cid, type, combat, value)
     if(not isPlayer(cid))then return true end
     if(type == STATSCHANGE_MANAGAIN or type == STATSCHANGE_HEALTHGAIN)then return true end
     
     local skill, reduction, damage
     
     skill = getPlayerSkillLevel(cid, config.skill)
     reduction = math.min(config.damagePerSkill * (skill - 10), config.reductionLimit)
     damage = value - ((value * reduction) / 100.0)
     
     doTargetCombatHealth(cid, target, combat, -damage, -damage, CONST_ME_NONE)
     return false
    end


    PD:

    Lee las primeras lineas del script ya que ahi describo como configurarlo.
    No lo he testeado ya que lo hice en notepad, asi que comentame como te va.

    Suerte!



    Very Happy
    [Codigo] [Codigo] Skill Fishing o Energy Defence Skill TFS 0.3.6 11ln580

    Mclovin2

    Mclovin2
    Nuevo Miembro
    Nuevo Miembro
    no da ningun error pero quiero que reduzca el daño en spell
    COMBAT_POISONDAMAGE todas las spell traen ese tipo de daño

    Josens

    Josens
    Miembro
    Miembro
    bien, prueba con este, agregue 2 nuevas variables, debug y damageType, en el script explico que son:


    Código:
    local config = {
       skill = SKILL_SHIELDING,
       damagePerSkill = 0.2,
       reductionLimit = 80,
       damageType = {COMBAT_POISONDAMAGE},
       
       debug = true, -- Ponlo en true para ver como si el script esta funcionando en la consola, false para desactivar los mensajes de la consola.
    }

    --[[
       Como configurarlo?
       
          skills = {xxx, xxx, xxx, xxx}
          
             ¬  Cual sera el skill que
               mientras mas alto sea, mas daño sera reducido del jugador.
          
          damagePerSkill = 0.2
             
             ¬  Cuanto daño en % se ira perdiendo por el skill descrito en la linea de arriba; ejemplo:
               Si el jugador tiene shielding 10 (ya que 10 es el shielding base) entonces el daño reducido sera
               de 0%, ya que sera = (shielding - 10) * damagePerSkill
             
               si el jugador tiene shielding 20, entonces el daño reducido sera:  (shielding - 10) * damagePerSkill, lo que dara
               un total de (10 * 0.2), lo que nuevamente da 2.0, entonces el jugador al tener shielding 20 tendra un 2% menos de daño.
             
               Con esto en mente, ya eres libre de colocar lo que quieras en la variable "damagePerSkill"
          
          
          reductionLimit = 80
             ¬  Cuanto es el daño maximo que podra ser reducido en %
             
          damageType = {COMBAT_POISONDAMAGE, xxx, xxx, xxx, xxx, xxx}
          
             ¬  Aqui van los tipos de daño que funcionaran con este sistema, si quieres solo para veneno, entonces dentro iria:
               {COMBAT_POISONDAMAGE}    En cambio, si quieres que admita otros tipos de daño,
               puedes colocarlos de esta manera: {COMBAT_POISONDAMAGE, COMBAT_FIREDAMAGE, COMBAT_DEATHDAMAGE, etc, etc}
              
               Si no quieres que este activado el filtro de daño, simplemente pon damageType = false y listo
    ]]
    function onLogin(cid) if(isPlayer(cid))then registerCreatureEvent(cid, 'DamageReducer_Combat') end end

    function onCombat(cid, target)
       if(not isCreature(cid) or not isCreature(target))then return true end
       
       registerCreatureEvent(target, 'DamageReducer_StatsChange')
       return true
    end

    function onStatsChange(target, cid, type, combat, value)
       if(not isPlayer(cid))then return true end
       if(type == STATSCHANGE_MANAGAIN or type == STATSCHANGE_HEALTHGAIN)then return true end
       if(config.damageType ~= false and not isInArray(config.damageType, combat))then return true end
       
       local skill, reduction, damage
       
       skill = getPlayerSkillLevel(cid, config.skill)
       reduction = math.min(config.damagePerSkill * (skill - 10), config.reductionLimit)
       damage = value - ((value * reduction) / 100.0)
       
       doTargetCombatHealth(cid, target, combat, -damage, -damage, CONST_ME_NONE)
       if(debug)then print(getCreatureName(cid) .. " esta haciendo " ..value.. " de damage a " ..getCreatureName(target).. " y este se ha reducido a " ..damage) end
       return false
    end



    Very Happy
    [Codigo] [Codigo] Skill Fishing o Energy Defence Skill TFS 0.3.6 11ln580

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