• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [CreatureEvents] Sistema Critical Version Sevu

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

    Invitado


    Invitado
    Hola a todos, aqui el sistema de critical sevu :p espero les guste hemm aqui vamos pues: Solo sera compatible para TFS 1.0 quizas menor. ( solo si tu server no tiene critical system por defecto usen este )

    Paso 1: Crear un archivo.lua en data/creaturescripts/scripts/ le ponen critical system.lua como nombre, luego pegan este codigo dentro:


    Código:
    -- Configuracion de chance y damage
     local criticalDamageDefault = 100 -- porcentage de ganancia del critical 100 = x2
     local criticalChanceDefault = 10 -- porcentage de probabilidad de que pegues critical 10% por defecto.
     local criticalChanceAttaker = 0 -- storage local no tocar
     local storageCriticalChance = 25200 -- storage donde se guarda el critical chance del player
     local storageCriticalDamage = 25201 -- storage donde se guarda el critical damage del player
     local function statOnHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
     local function runCriticalChance(self)
     local criticalChance = criticalChanceDefault
     criticalChanceAttaker = self:getStorageValue(storageCriticalChance)
     if criticalChanceAttaker < 0 then criticalChanceAttaker = 0 end
     criticalChance = criticalChance + criticalChanceAttaker
     return criticalChance
     end
     local function runCriticalDamage(self)
     local criticalDamage = criticalDamageDefault
     criticalDamageAttaker = self:getStorageValue(storageCriticalDamage)
     if criticalDamageAttaker < 0 then criticalDamageAttaker = 0 end
     criticalDamage = (criticalDamage + criticalDamageAttaker) / 100
     return criticalDamage
     end
     if attacker and creature then
     if attacker:isPlayer() then
     criticalChanceDefault = runCriticalChance(attacker)
     criticalDamageDefault = runCriticalDamage(attacker)
     local random = math.floor(math.random(1, 100))
     if random < criticalChanceDefault then
     primaryDamage = primaryDamage * criticalDamageDefault
     end end
     return primaryDamage, primaryType, secondaryDamage, secondaryType
     end
     local function statOnManaChange(creature, attacker, manaChange, origin)
     local function runCriticalChance(self)
     local criticalChance = criticalChanceDefault
     criticalChanceAttaker = self:getStorageValue(storageCriticalChance)
     if criticalChanceAttaker < 0 then criticalChanceAttaker = 0 end
     criticalChance = criticalChance + criticalChanceAttaker
     return criticalChance
     end
     local function runCriticalDamage(self)
     local criticalDamage = criticalDamageDefault
     criticalDamageAttaker = self:getStorageValue(storageCriticalDamage)
     if criticalDamageAttaker < 0 then criticalDamageAttaker = 0 end
     criticalDamage = (criticalDamage + criticalDamageAttaker) / 100
     return criticalDamage
     end
     if attacker and creature then
     if attacker:isPlayer() then
     criticalChanceDefault = runCriticalChance(attacker)
     criticalDamageDefault = runCriticalDamage(attacker)
     local random = math.floor(math.random(1, 100))
     if random < criticalChanceDefault then
     manaChange = manaChange * criticalDamageDefault
     end end
     return manaChange
     end
     -- Control Real
     function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
        return statOnHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
     end

     function onManaChange(creature, attacker, manaChange, origin)
     return statOnManaChange(creature, attacker, manaChange, origin)
     end


    Luego abren el archivo data/creaturescripts/creaturescripts.xml y pegan esto allí:


    Código:
    <event type="healthchange" name="CriticalSystem" script="critical system.lua"/>
        <event type="manachange" name="CriticalSystem" script="critical system.lua"/>


    Ahora se van a data/events/events.xml y se aseguran de que este codigo se encuentre:


    Código:
    <event class="Creature" method="onTargetCombat" enabled="1" />


    A continuacion vamos a data/events/scripts/creature.lua y abren ese archivo lua, buscan esto:


    Código:
    function Creature:onTargetCombat(target)

     if not self then
     return true
     end


    abajo de esto pegaran esto:


    Código:
    target:registerEvent("CriticalSystem")
    target:registerEvent("CriticalSystem")


    Eso seria todo chicos, si notan algo extraño en el funcionamiento del critical system me lo hacen saber en la caja de comentarios, Saludos.

    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.