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

TFS 0.X Monster does not summon on elemental fields

potinho

Advanced OT User
Joined
Oct 11, 2009
Messages
1,403
Solutions
17
Reaction score
151
Location
Brazil
Hello everyone, everything good? I have a behavior in my engine (OTX 2), which I don't know if it is standard, but I would like to change it. Currently, if a boss is tricked and thrown a field on the ground (and the boss's summons are not immune to this element) they are not summoned. Just outside the field, making boss rooms and quests easier. Could you help me change it?

GIF 05-11-2023 18-54-55.gif
 
Summons/monsters have immunity against elemental effects. You need to change 1 to 0 so that summons and monsters can be affected by elemental effects.

example of the demon.
XML:
<immunities>
    <immunity physical="0"/>
    <immunity energy="1"/>
    <immunity fire="1"/>
    <immunity poison="1"/>
    <immunity lifedrain="0"/>
    <immunity paralyze="1"/>
    <immunity outfit="1"/>
    <immunity drunk="1"/>
    <immunity invisible="1"/>
  </immunities>
 
Summons/monsters have immunity against elemental effects. You need to change 1 to 0 so that summons and monsters can be affected by elemental effects.

example of the demon.
XML:
<immunities>
    <immunity physical="0"/>
    <immunity energy="1"/>
    <immunity fire="1"/>
    <immunity poison="1"/>
    <immunity lifedrain="0"/>
    <immunity paralyze="1"/>
    <immunity outfit="1"/>
    <immunity drunk="1"/>
    <immunity invisible="1"/>
  </immunities>
I know that, but i want to force summons to be created, even if they cant walk on elemental field on the ground. There's a way to do this? I want to prevent players block boss summons to make quests easier.
 
Last edited:
I have changed here:
C++:
                if((it->chance >= (uint32_t)random_range(1, 100)))
                {
                    if(Monster* summon = Monster::createMonster(it->name, true))
                    {
                        addSummon(summon);
                        if(g_game.placeCreature(summon, getPosition()))
                        {
                            g_game.addMagicEffect(getPosition(), MAGIC_EFFECT_WRAPS_BLUE);
                            g_game.addMagicEffect(summon->getPosition(), MAGIC_EFFECT_TELEPORT);
                        }
                        else
                            removeSummon(summon);

to:
C++:
                if((it->chance >= (uint32_t)random_range(1, 100)))
                {
                    if(Monster* summon = Monster::createMonster(it->name, true))
                    {
                        addSummon(summon);
                        if(g_game.placeCreature(summon, getPosition(), false, true))
                        {
                            g_game.addMagicEffect(getPosition(), MAGIC_EFFECT_WRAPS_BLUE);
                            g_game.addMagicEffect(summon->getPosition(), MAGIC_EFFECT_TELEPORT);
                        }
                        else
                            removeSummon(summon);

Works partially, monster is summoning in a stack with him, there's a way to improve this?
 
Back
Top