• 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 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

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

    2heart Re: [Tutorial] Dodge System Version Sevu 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

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes
    http://methemia.sytes.net

    3heart Para que sirve ? 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

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

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

    Ketzzie

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

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

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

    Invitado

    Anonymous
    Invitado
    Mira este si te sirve me dices: [Tienes que estar registrado y conectado para ver este vínculo]

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

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

    jesus135

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

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

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

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    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
    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

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

    JeisonG-vnzla

    JeisonG-vnzla
    Miembro
    Miembro
    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!

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

    9heart Re: [Tutorial] Dodge System Version Sevu 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 =/

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

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

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    vine96 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
    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes
    http://www.tibiaface.com

    11heart Re: [Tutorial] Dodge System Version Sevu Lun Mar 09, 2020 6:44 pm

    Mezzony

    Mezzony
    Miembro
    Miembro
    Men y como puedo hacer para que se usen en items y no a las personas?

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

    12heart Re: [Tutorial] Dodge System Version Sevu Lun Mar 09, 2020 9:00 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Mezzony escribió:Men y como puedo hacer para que se usen en items y no a las personas?


    ???????????????????????



    [Tutorial] Dodge System Version Sevu YNU5B25
    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes
    http://www.tibiaface.com

    13heart Re: [Tutorial] Dodge System Version Sevu Miér Abr 28, 2021 8:53 pm

    516974

    516974
    Nuevo Miembro
    Nuevo Miembro
    Agregará una opción para verificar cuántos Dodge ya tiene?

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes

    14heart Re: [Tutorial] Dodge System Version Sevu Jue Abr 29, 2021 8:35 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    aqui tienes en reverscripts

    te vas a data/scripts/talkactions/player

    creas un archivo llamado dodge.lua y pegas esto dentro

    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 dodgex = TalkAction("!dodge")

    function dodgex.onSay(player, words, param)   
    local dodge_current = player:getStorageValue(configuracion.dodge_storage)


        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Has mejorado el Dodge Skill [ ' .. dodge_current .. ' / ' .. configuracion.dodge_limite .. ' ]')   
       
        return false
    end

    dodgex:register()

    para ejecutar solo haces este comando

    !dodge

    y listo





    516974 escribió:Agregará una opción para verificar cuántos Dodge ya tiene?

    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 participantes
    http://www.tibiaface.com

    Contenido patrocinado


    +5
    JeisonG-vnzla
    [Adm] SevuOT
    jesus135
    Ketzzie
    Methemia
    9 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).