• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Tutorial] Dodge System Version Sevu

    Compartir:

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

    1heart [Tutorial] Dodge System Version Sevu el Jue Mar 16, 2017 10:31 am

    Invitado

    Anonymous
    Invitado
    Hola usuarios de tibiaface hoy les quiero compartir un sistema dodge muy chulo que se ha puesto de moda ultimamente, este sistema lo he creado yo misma pero funciona perfectamente parecido, y por cierto solo funcionara si tu server es TFS 1.2 quizas 1.0! Bueno empezemos.

    Primero que nada crearemos la dodge stone:

    Agregaremos esto a data/actions/actions.xml
    Código:
    <action itemid="8298" script="dodge stone.lua" />

    Luego crearemos un script vacio en data/actions/scripts/ llamado dodge system.lua

    Donde van a pegar lo siguiente:

    Código:
    local configuracion = {
        dodge_chance = 100, -- default 100% ( recomendado 100% ) probabilidad de que no falle
        dodge_limite = 100, -- default 100% ( recomendado 100% ) 100 = 50
        dodge_storage = 25250 -- default 25250
        }

        local function storageMenor(self)
        local current = 0
        if self:getStorageValue(configuracion.dodge_storage) < 0 then
        self:setStorageValue(configuracion.dodge_storage, 0)
        end
        current = self:getStorageValue(configuracion.dodge_storage)
        return current
        end

        function onUse(player, item, fromPos, target, toPos, isHotkey)

        if not target:isPlayer() then
        player:sendCancelMessage('Este objeto solo puede ser usado por personajes.')
        player:getPosition():sendMagicEffect(CONST_ME_POFF)
        return false
        else
        if (math.random(100) <= configuracion.dodge_chance) then
        local dodge_current = target:getStorageValue(configuracion.dodge_storage)
        if dodge_current < configuracion.dodge_limite then
        dodge_current = (storageMenor(target) + 1)
        target:setStorageValue(configuracion.dodge_storage, dodge_current)
        target:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Has mejorado el Dodge Skill [ ' .. dodge_current .. ' / ' .. configuracion.dodge_limite .. ' ]')
        target:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
        else
        player:sendCancelMessage('Este personaje ya tiene el Dodge Skill al maximo [ ' .. configuracion.dodge_limite .. ' ]')
        target:getPosition():sendMagicEffect(CONST_ME_POFF)
        end else
        player:sendCancelMessage('Ha fallado la mejora del Skill.')
        target:getPosition():sendMagicEffect(CONST_ME_POFF)
        end end


        return true
        end

    Listo guardan los cambios y ahora vamos a data/creaturescripts/creaturescripts.xml y pegamos lo siguiente:

    Código:
    <event type="healthchange" name="DodgeSystem" script="dodge system.lua" />

    Ahora vamos a data/creaturescripts/scripts/ y creamos un script vacio llamado dodge system.lua
    Y pegamos lo siguiente dentro de el:

    Código:
    -- SRH Momentum (Sevu)

     local configuracion = {
     proteccion = 0, -- deafault 0% to 1% ( recomendado 0 )
     dodge_chance = 0, -- default chance 0% to 100% ( recomendado 0 )
     dodge_storage = 25250, -- default storage 25250 ( recomendado cualquiera no repetido )
     dodge_say = 'DODGE!', -- default 'DODGE!' recomendado ( 'DODGE!' )
     dodge_effect = CONST_ME_POFF
     }

     function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)

        if creature:isPlayer() then
        if primaryDamage > 0 then
        local chance = (configuracion.dodge_chance + (creature:getStorageValue(configuracion.dodge_storage) / 2))
     if chance < 0 then chance = 0 end
        if (math.random(100) < chance) then
        primaryDamage = (primaryDamage * configuracion.proteccion)
        creature:say(configuracion.dodge_say, TALKTYPE_MONSTER_SAY)
        creature:getPosition():sendMagicEffect(configuracion.dodge_effect)
     end end end
        
        return primaryDamage, primaryType, secondaryDamage, secondaryType
     end

    Ahora por ultimo pero no menos importante: Vamos a data/creaturescripts/login.lua y pegaremos esto:

    Código:
    player:registerEvent("DodgeSystem")

    Bueno chicos eso seria todo, si notan algo extraño en el script me lo hacen saber en los comentarios o si creen que algo le falta tambien, dejare unas imagenes sobre como se ve funcionando.

    [Tutorial] Dodge System Version Sevu Ighkb4

    2heart Re: [Tutorial] Dodge System Version Sevu el Jue Mar 16, 2017 11:28 pm

    Methemia

    Methemia
    Miembro
    Miembro
    para que sirve? Disculpa mi ignorancia, pero que hace?
    y felicidades, eres la primer mujer scripter que veo en mucho tiempo

    Ver perfil de usuario http://methemia.sytes.net

    3heart Para que sirve ? el Vie Mar 17, 2017 12:01 pm

    Invitado

    Anonymous
    Invitado
    sirve para esquivar ataques dependiendo de cuanto dodge skill tengas mas esquivas y pues como maximo serian 50%, solo esquiva si los ataques son a la vida, si no conoces este sistema puedes visitar varios ot server que tienen ese mismo sistema, solo que para TFS 1.2 no habia visto ninguno y quize aportar algo a esta comunidad de personas que hablan español, entre mas informacion mejor foro sera. Saludos y deja la ignorancia, solo con ver el script sabes lo que hace. :p y Gracias

    4heart Re: [Tutorial] Dodge System Version Sevu el Vie Mar 17, 2017 1:24 pm

    Ketzzie

    Ketzzie
    Miembro
    Miembro
    Muy buen aporte (y) No tienes tambien el sistema Critical?

    Ver perfil de usuario

    5heart Re: [Tutorial] Dodge System Version Sevu el Vie Mar 17, 2017 3:53 pm

    Invitado

    Anonymous
    Invitado
    Mira este si te sirve me dices: https://www.tibiaface.com/t2475-creatureevents-sistema-critical-version-sevu#16154

    6heart Re: [Tutorial] Dodge System Version Sevu el Dom Ago 20, 2017 4:20 pm

    jesus135

    jesus135
    Miembro
    Miembro
    Cuando lo uso no se elimina el item que hago

    Ver perfil de usuario

    7heart Re: [Tutorial] Dodge System Version Sevu el Dom Ago 20, 2017 4:40 pm

    Prueba asi we:
    Código:

    local configuracion = {
        dodge_chance = 100, -- default 100% ( recomendado 100% ) probabilidad de que no falle
        dodge_limite = 100, -- default 100% ( recomendado 100% ) 100 = 50
        dodge_storage = 25250 -- default 25250
        }

        local function storageMenor(self)
        local current = 0
        if self:getStorageValue(configuracion.dodge_storage) < 0 then
        self:setStorageValue(configuracion.dodge_storage, 0)
        end
        current = self:getStorageValue(configuracion.dodge_storage)
        return current
        end

        function onUse(player, item, fromPos, target, toPos, isHotkey)

        if not target:isPlayer() then
        player:sendCancelMessage('Este objeto solo puede ser usado por personajes.')
        player:getPosition():sendMagicEffect(CONST_ME_POFF)
        return false
        else
        if (math.random(100) <= configuracion.dodge_chance) then
        local dodge_current = target:getStorageValue(configuracion.dodge_storage)
        if dodge_current < configuracion.dodge_limite then
        dodge_current = (storageMenor(target) + 1)
        target:setStorageValue(configuracion.dodge_storage, dodge_current)
        target:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Has mejorado el Dodge Skill [ ' .. dodge_current .. ' / ' .. configuracion.dodge_limite .. ' ]')
        target:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
        item:remove(1)
        else
        player:sendCancelMessage('Este personaje ya tiene el Dodge Skill al maximo [ ' .. configuracion.dodge_limite .. ' ]')
        target:getPosition():sendMagicEffect(CONST_ME_POFF)
        end else
        player:sendCancelMessage('Ha fallado la mejora del Skill.')
        target:getPosition():sendMagicEffect(CONST_ME_POFF)
        end end

        return true
        end
    si te ayude, regalame un like xD



    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.


    [Tutorial] Dodge System Version Sevu TRJEB8aSRYK5IulEU6ilJw
    Ver perfil de usuario

    8heart Reviviendo tema el Mar Dic 12, 2017 12:06 am

    Disculpa por revivir el team pero tengo ESTE SCRIPT DE DUDGE SYSTEM EN MI SERVER MAS SOLO ME FALTA ES QUE AL DARTE !DODGE , !CRITICAL ME SALGA CUANTAS LLEVO Y ESO... YA QUE AQEL QE TENGO NO LO TRAJO!

    Ver perfil de usuario

    9heart Re: [Tutorial] Dodge System Version Sevu el Vie Jul 20, 2018 3:29 pm

    vine96

    vine96
    Nuevo Miembro
    Nuevo Miembro
    Como adiciono este script para funcionar tambíen en la mana?

    Este solamente defende en la health:

    Código:
    function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
       if not isPlayer(creature) then return false end
       if (creature:getDodgeLevel() * 3) >= math.random (0, 1000) and isCreature(attacker) then
            if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then
                primaryDamage = primaryDamage - math.ceil(primaryDamage * DODGE.PERCENT)
                creature:say("DODGE!", TALKTYPE_MONSTER_SAY)
             creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT)
            end
        end
        return primaryDamage, primaryType, secondaryDamage, secondaryType
    end
    yo tentei con isso:
    Código:

    function onManaChange(creature, attacker, manaChange, origin)
    if not isPlayer(creature) then return false end
       if (creature:getDodgeLevel() * 3) >= math.random (0, 1000) and isCreature(attacker) then
            if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then
                primaryDamage = primaryDamage - math.ceil(primaryDamage * DODGE.PERCENT)
                creature:say("DODGE!", TALKTYPE_MONSTER_SAY)
             creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT)
            end
        end
        return primaryDamage, primaryType, secondaryDamage, secondaryType
    end
    pero no funciona tambíen =/

    Ver perfil de usuario

    10heart Re: [Tutorial] Dodge System Version Sevu el Vie Jul 20, 2018 3:58 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Como adiciono este script para funcionar tambíen en la mana?

    Este solamente defende en la health:

    Código:
    function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
       if not isPlayer(creature) then return false end
       if (creature:getDodgeLevel() * 3) >= math.random (0, 1000) and isCreature(attacker) then
            if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then
                primaryDamage = primaryDamage - math.ceil(primaryDamage * DODGE.PERCENT)
                creature:say("DODGE!", TALKTYPE_MONSTER_SAY)
             creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT)
            end
        end
        return primaryDamage, primaryType, secondaryDamage, secondaryType
    end
    yo tentei con isso:
    Código:

    function onManaChange(creature, attacker, manaChange, origin)
    if not isPlayer(creature) then return false end
       if (creature:getDodgeLevel() * 3) >= math.random (0, 1000) and isCreature(attacker) then
            if isInArray({ORIGIN_MELEE, ORIGIN_RANGED, ORIGIN_SPELL}, origin) and primaryType ~= COMBAT_HEALING then
                primaryDamage = primaryDamage - math.ceil(primaryDamage * DODGE.PERCENT)
                creature:say("DODGE!", TALKTYPE_MONSTER_SAY)
             creature:getPosition():sendMagicEffect(CONST_ME_BLOCKHIT)
            end
        end
        return primaryDamage, primaryType, secondaryDamage, secondaryType
    end
    pero no funciona tambíen =/


    ya vi el problema aquel para poder añadirlo habria que hacer un modificacion en los osurces y recompilar


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

    ahi tiene la referencia

    para poder añadir

    onManaChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)



    [Tutorial] Dodge System Version Sevu 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).