• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Critical Skill System DODGE

    Compartir:

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

    1default [Sistema] Critical Skill System DODGE el Jue Ene 04, 2018 12:46 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola usuarios de tibiaface


    bueno aqui le dejo un sistema de critical, el sistema es simple un objeto te entrega critical % puedes usar solo 100 objetos. el cual te daran un % de critical de 30%

    instalacion:

    data/creaturescripts/creaturescripts.xml

    Código:
    <event type="statschange" name="critical" event="script" value="critical.lua"/>

    creaturescripts\scripts\login.lua

    pegar esto dentro del archivo login.lua

    Código:
    registerCreatureEvent(cid, "critical")
    if getPlayerStorageValue(cid, 48913) == -1 then
            setPlayerStorageValue(cid, 48913, 0)
        end

    Ahora nos vamos a :

    creaturescritps\scripts

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

    Código:
    --[[Critical System
    -------------------------  By Night Wolf]]


    local lvlcrit = 48913
    local multiplier = 1.5


    function onStatsChange(cid, attacker, type, combat, value)
    if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS)  then
    if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then
    dano = math.ceil(value*(multiplier))
    doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255)
    doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144)
    return false
    end
    end
    return true
    end

    ahora nos vamos a:

    Data/actions/actions.xml

    Código:
    <action itemid="1294" script="criticalrock.lua"/>

    ahora nos vamos a:

    data/actions\scripts

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

    Código:
    --- CRITICAL System by Night Wolf
     
      local config = {
      effectonuse = 14, -- efeito que sai
      levelscrit = 100,  --- leveis que terão
      storagecrit = 48913 -- storage que será verificado
      }
     
    function onUse(cid, item, frompos, item2, topos)
        if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then
      doRemoveItem(item.uid, 1)
    doSendMagicEffect(topos,config.effectonuse)
    doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/"..config.levelscrit.."].")
    setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1)
    elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then
    doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!")
        return 0
        end
    return 1
    end

    Recordando que cada piedra utilizada dará 0,3% más posibilidades .. 10 piedras dar 3% de probabilidad de atacar y cada piedras críticos 100 (nivel máximo STANDARD) dará una probabilidad del 30% para atacar en absoluto crítico.

    como el sistema solo funciona para persona contra persona y si quieren para moustros solo basta añadir esta tag al moustro:

    Código:
    <script>
    <event name="critical"/>
    </script>

    y listo



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

    2default Re: [Sistema] Critical Skill System DODGE el Vie Mayo 04, 2018 2:59 pm

    Deget92

    avatar
    Miembro
    Miembro
    ¿Y harías eso cuando recibo un diagnóstico crítico, entonces esos números que muestran la cantidad de lesiones fueron más grandes de lo normal?

    20:54 You've Leveled your Critical Skill to [100/100].
    y no hay diferencia cuando golpeo durante media hora ...

    Ver perfil de usuario

    3default Re: [Sistema] Critical Skill System DODGE el Vie Mayo 04, 2018 7:47 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:¿Y harías eso cuando recibo un diagnóstico crítico, entonces esos números que muestran la cantidad de lesiones fueron más grandes de lo normal?

    20:54 You've Leveled your Critical Skill to [100/100].
    y no hay diferencia cuando golpeo durante media hora ...

    esposible el que este muy alto el random

    Código:
    math.random (0,1000)

    esta 1000 y no este llegando a dar el critical

    puede a ver reducirlo a 100 e ir probando



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

    4default Re: [Sistema] Critical Skill System DODGE el Vie Mayo 04, 2018 8:17 pm

    El Script esta bueno pero... le falta una bandera de control.

    Código:
    --[[Critical System
    -------------------------  By Night Wolf]]


    local lvlcrit = 48913
    local multiplier = 1.5
    local bandera = {}

    function onStatsChange(cid, attacker, type, combat, value)
    if bandera[cid] then
    bandera[cid] = nil
    return true
    end
    if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS)  then
    if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then
    dano = math.ceil(value*(multiplier))
    bandera[cid] = true
    doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255)
    doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144)
    return false
    end
    end
    return true
    end



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    5default Re: [Sistema] Critical Skill System DODGE el Vie Mayo 04, 2018 9:45 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    The_Pain escribió:El Script esta bueno pero... le falta una bandera de control.

    Código:
    --[[Critical System
    -------------------------  By Night Wolf]]


    local lvlcrit = 48913
    local multiplier = 1.5
    local bandera = {}

    function onStatsChange(cid, attacker, type, combat, value)
    if bandera[cid] then
    bandera[cid] = nil
    return true
    end
    if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS)  then
    if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then
    dano = math.ceil(value*(multiplier))
    bandera[cid] = true
    doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255)
    doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144)
    return false
    end
    end
    return true
    end



    Código:
    if bandera[cid] then   
    bandera[cid] = nil
    return true
    end

    en anterior pretegia el attack pero aqui lo estas protegiendo el cid este me imagino es el player el que esta pegando ?



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

    6default Re: [Sistema] Critical Skill System DODGE el Sáb Mayo 05, 2018 1:03 pm

    Deget92

    avatar
    Miembro
    Miembro
    cómo voy a agregar a la criatura "
    <script>
    <event name="critical"/>
    </script>"

    pero no funciona en otros jugadores:/

    Ver perfil de usuario

    7default Re: [Sistema] Critical Skill System DODGE el Sáb Mayo 05, 2018 1:10 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:cómo voy a agregar a la criatura "
    <script>
    <event name="critical"/>
    </script>"

    pero no funciona en otros jugadores:/

    añadelo arriba de la flag del moustro que quieras



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

    8default Re: [Sistema] Critical Skill System DODGE el Sáb Mayo 05, 2018 1:12 pm

    Deget92

    avatar
    Miembro
    Miembro
    pero no funciona en otros jugadores,

    en criaturas funciona

    Ver perfil de usuario

    9default Re: [Sistema] Critical Skill System DODGE el Dom Mayo 06, 2018 10:51 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:pero no funciona en otros jugadores,

    en criaturas funciona

    a ver pruebe con este

    Código:
    local lvldodge = 48913
    local percent = 0.5
    local bandera = {}


    function onStatsChange(cid, attacker, type, combat, value)
    if bandera[cid] then
    bandera[cid] = nil
    return true
    end
    if type == STATSCHANGE_HEALTHLOSS and isCreature(attacker) then
    if (getPlayerStorageValue(cid, lvldodge)*3) >= math.random (0,1000) then
    value = math.ceil(value*(percent))
    bandera[cid] = true
    doTargetCombatHealth(attacker, cid, combat, -value, -value, 255)
    doSendAnimatedText(getCreaturePos(cid), "DODGE", 6)
    return false
    end
    end
    return true
    end



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

    10default Re: [Sistema] Critical Skill System DODGE el Lun Mayo 07, 2018 1:40 pm

    Deget92

    avatar
    Miembro
    Miembro
    todavía no funciona en las personas .. No tengo errores en la consola

    Ver perfil de usuario

    11default Re: [Sistema] Critical Skill System DODGE el Lun Mayo 07, 2018 6:23 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:todavía no funciona en las personas .. No tengo errores en la consola

    prueba

    Código:
    local storagedodge = 48913 -- storage do dodge
    local cor = 35 -- cor do texto
    local effect = 30 -- id do magic effect
    local msg = "DODGE" -- msg
     
    local dodge = {
        {min = 1, max = 2, chance = 10}, -- se o dodge tiver entre 1 e 2 tem 10% de chance de da dodge.
        {min = 3, max = 4, chance = 15}, -- podem ser configurada portanto que não passe do limite
        {min = 5, max = 6, chance = 20}, -- vocês pode adicionar mas se quiserem
        {min = 7, max = 8, chance = 25},
        {min = 9, max = 10, chance = 30},
        {min = 11, max = math.huge, chance = 35}
    }
     
    function onStatsChange(cid, attacker, type, combat, value)
        if not isCreature(cid) then
            return false
        end
        for _, tudo in pairs(dodge) do
            if getPlayerStorageValue(cid, storagedodge) >= tudo.min and getPlayerStorageValue(cid, storagedodge) <= tudo.max then
                local chancex = math.random(1, 100)
                if chancex <= tudo.chance then
                    if combat ~= COMBAT_HEALING then
                        doSendMagicEffect(getCreaturePosition(cid), effect)
                        doSendAnimatedText(getCreaturePosition(cid), msg, cor)
                        return false
                    end
                end
            end
        end
        return true
    end



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

    12default Re: [Sistema] Critical Skill System DODGE el Lun Mayo 07, 2018 10:22 pm

    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    The_Pain escribió:El Script esta bueno pero... le falta una bandera de control.

    Código:
    --[[Critical System
    -------------------------  By Night Wolf]]


    local lvlcrit = 48913
    local multiplier = 1.5
    local bandera = {}

    function onStatsChange(cid, attacker, type, combat, value)
    if bandera[cid] then
    bandera[cid] = nil
    return true
    end
    if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS)  then
    if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then
    dano = math.ceil(value*(multiplier))
    bandera[cid] = true
    doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255)
    doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144)
    return false
    end
    end
    return true
    end



    Código:
    if bandera[cid] then   
    bandera[cid] = nil
    return true
    end

    en anterior pretegia el attack pero aqui lo estas protegiendo el cid este me imagino es el player el que esta pegando ?

    En realidad no se necesita una tabla, solo una variable booleana para ello, solo es tabla por lujo. funciona 100% igual sea con attacker o cid, o cualquier numero constante



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    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.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).