• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Monster Libra of the Zodiac

Scarlet Ayleid

Advanced OT User
Senator
Joined
Jul 7, 2007
Messages
4,049
Reaction score
238
Hey all!

Today I'm here to release the second monster in my Zodiac Monster Collections(total of 13)
Each monster is expected to be stronger then bosses in Tibia, mainly because unlike Tibia where bosses are simply more powerful versions of their normal selves, these monsters will actually have special abilities to make them better!

Let me introduce, Libra of the Zodiac
50px-Libra.svg.png
Souleater.gif


Attack Description:
Libra prefers to fight from a distance, it uses all elements available, fire/energy/ice/earth as ranged attacks and holy/death as area attacks
Libra is a strong magical creature, so it is able to use its magic quite fast, with their damage being similar to other strong monsters such as Morgaroth and Orshabaal, but its casting speed much faster
If you get close however, expect to receive fairly strong hits, similar to those of a Demon
Libra changes targets every minute, and when it does change targets, it goes invisible for 5 seconds

Special Ability:
Every damage that Libra receives is shared between the person that dealt it, if you deal 500 damage to it, Libra will receive 250 damage while you will receive 250 damage.
The weaker Libra gets, the more it will try to shift the balance in its own favor, because of that, the weaker it gets, less damage you'll deal to it

Defeat Strategy:
Having at least an healers for every 2 attackers in your party is a must to be able to heal the shared damage they'll receive, the tanker should not attack it as to not receive shared damage and keep all its HP to tank its actual attacks
It's advised to trap it as soon as possible as to avoid potential problems with it switching targets and maybe killing one of the healers or attackers

Loot:
Fireborn Giant Armor: 100%
Earthborn Titan Armor: 100%
Windborn Colossus Armor: 100%
Oceanborn Leviathan Armor: 100%
Skullcracker Armor: 100%

Scripts:
Add this to your creaturescript.xml
XML:
    <event type="statschange" name="Libra_Events" event="script" value="Zodiacs/Libra_Events.lua"/>

Create a file named Libra_Events.lua under "creaturescripts/scripts/Zodiacs" with the following script:
Lua:
function onStatsChange(cid, attacker, type, combat, value)
    if(combat == COMBAT_UNDEFINEDDAMAGE) then
        return true
    end
    if(type == STATSCHANGE_HEALTHLOSS) then
        local dmg = math.ceil((value/2) * (getCreatureHealth(cid) / getCreatureMaxHealth(cid)))
        local pos = getCreaturePosition(cid)
        doCreatureAddHealth(cid, -dmg)
        doPlayerSendTextMessage(attacker, MESSAGE_DAMAGE_DEALT, "Libra of the Zodiac loses " .. dmg .. " hitpoints due to your attack.", dmg, COLOR_RED, pos)
        doSendMagicEffect(pos, CONST_ME_DRAWBLOOD)
        doCreateItem(2016, 2, pos)
        pos = getCreaturePosition(attacker)
        dmg = math.ceil(value / 2)
        doCreatureAddHealth(attacker, -dmg)
        doPlayerSendTextMessage(attacker, MESSAGE_DAMAGE_RECEIVED, "You lose " .. dmg .. " hitpoints due to an attack by Libra of the Zodiac.", dmg, COLOR_RED, pos)
        doSendMagicEffect(pos, CONST_ME_DRAWBLOOD)
        doCreateItem(2016, 2, pos)
        --Didn't bothered to add the messages to the spectators because I thought it's unnecessary
        return false
    end
    return false
end

Add this to your monsters.xml
XML:
    <monster name="Libra" file="Zodiacs/Libra.xml"/>

Create a file named Pisces.xml under "monsters/scripts/Zodiacs" with the following script:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<monster name="Libra" nameDescription="Libra of the Zodiac" race="blood" experience="18000" speed="350" manacost="0">
    <health now="8000" max="8000"/>
    <look type="355" corpse="12631"/>
    <targetchange interval="60000" chance="100"/>
    <strategy attack="100" defense="0"/>
    <flags>
        <flag summonable="0"/>
        <flag attackable="1"/>
        <flag hostile="1"/>
        <flag illusionable="1"/>
        <flag convinceable="0"/>
        <flag pushable="0"/>
        <flag canpushitems="1"/>
        <flag canpushcreatures="1"/>
        <flag targetdistance="3"/>
        <flag staticattack="90"/>
        <flag runonhealth="500"/>
    </flags>
    <script>
        <event name="Libra_Events"/>
    </script>
    <attacks>
        <attack name="melee" interval="2000" skill="70" attack="130"/>
        <attack name="ice" interval="2250" chance="45" range="7" radius="3" target="1" min="-200" max="-700">
            <attribute key="shootEffect" value="ice"/>
            <attribute key="areaEffect" value="iceattack"/>
        </attack>
        <attack name="earth" interval="1250" chance="25" range="7" radius="3" target="1" min="-200" max="-700">
            <attribute key="shootEffect" value="earth"/>
            <attribute key="areaEffect" value="smallplants"/>
        </attack>
        <attack name="fire" interval="750" chance="8" range="7" radius="3" target="1" min="-200" max="-700">
            <attribute key="shootEffect" value="fire"/>
            <attribute key="areaEffect" value="fireattack"/>
        </attack>
        <attack name="energy" interval="1750" chance="35" range="7" radius="3" target="1" min="-200" max="-700">
            <attribute key="shootEffect" value="energy"/>
            <attribute key="areaEffect" value="energyarea"/>
        </attack>
        <attack name="holy" interval="5000" chance="50" radius="5" min="-500" max="-1000">
            <attribute key="areaEffect" value="holydamage"/>
        </attack>
        <attack name="death" interval="5000" chance="50" radius="5" min="-500" max="-1000">
            <attribute key="areaEffect" value="mortarea"/>
        </attack>
    </attacks>
    <defenses armor="60" defense="60">
        <defense name="invisible" interval="60000" chance="100" duration="5000">
        </defense>
    </defenses>
    <elements>
    </elements>
    <immunities>
        <immunity paralyze="1"/>
        <immunity invisible="1"/>
    </immunities>
    <voices interval="5000" chance="10">
        <voice sentence="This battle's balance will be shifted"/>
        <voice sentence="The scales of life and death have made their decision on your life"/>
        <voice sentence="I was created by Scarlet Ayleid @ OTLand"/>
    </voices>
    <loot>
        <item id="8881" chance="100000"/><!-- fireborn giant armor -->
        <item id="8882" chance="100000"/><!-- earthborn titan armor -->
        <item id="8883" chance="100000"/><!-- windborn colossus armor -->
        <item id="8884" chance="100000"/><!-- oceanborn leviathan armor -->
        <item id="8889" chance="100000"/><!-- skullcracker armor -->
    </loot>
</monster>

Mod Download Link: Libra of the Zodiac - Mod Package
How to Install:
Just drag all files into the mods folder and replace if it asks

This was tested in TFS 0.4, but it should work on TFS 0.3.7 also
it wont work on TFS 0.2, because it doesn't have onStatsChange, it might be possible to make though, I'll investigate later
Comments? Suggestions?

- - - Updated - - -

Which zodiac you all want me to do next? :p
 
Last edited:
Scarlet Thank you again for new monster. Can you fix this?

When I use summons have this error in console:

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:56] Description:
[3/11/2012 10:53:56] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:56] Description:
[3/11/2012 10:53:56] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:56] Description:
[3/11/2012 10:53:56] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:56] Description:
[3/11/2012 10:53:56] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:56] Description:
[3/11/2012 10:53:56] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:56] Description:
[3/11/2012 10:53:56] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:56] Description:
[3/11/2012 10:53:56] (LuaInterface::luaDoPlayerSendTextMessage) Player not found

[3/11/2012 10:53:56] [Error - CreatureScript Interface]
[3/11/2012 10:53:56] data/creaturescripts/scripts/ZodiacsLibra_Events.lua:eek:nStatsChange
[3/11/2012 10:53:57] Description:
[3/11/2012 10:53:57] (LuaInterface::luaDoPlayerSendTextMessage) Player not found
[3/11/2012 10:53:58] God OTX has logged out.
[3/11/2012 10:53:58] God OTX has logged in.
 
there was an error in the creaturescripts.xml code, a missing / use this one instead:

XML:
 <event type="statschange" name="Libra_Events" event="script" value="Zodiacs/Libra_Events.lua"/>

and don't try to use these monsters as your summons, I don't know how they'll act
 
jeje yes i'll be waiting xD

- - - Updated - - -

if you accept sugestions, one of those can be like inmortal, i explain, the main boss can have lot of hp but when a player hit him the boss will heal inmediatly by the same dealt damage, the boss can summon some minions, there is the only way to kill him, hiting the minions, the same damage you do to minions is the damage you do to the boss, that can be the geminis monster, umm is just an idea :p
 
I already have an idea for the Gemini monster :p

its not a bad idea at all, I'll add it to my ideas list and think about it a bit more
 
I love your monster scripts, just would like to see them work for .2, i might play around with the scripts and see if i can get them to work, never know =p
 
0.2 afaik doesn't support statschange, so it would have to involve some clever use of onThink to trigger their events

when I release all 13 monsters, I'll try to convert them so they also work on 0.2 :)
 

Similar threads

Back
Top