Page 1 of 1

Skill 1335 Balance Life (RebalanceHP.java) - Cardinal 76 lvl

Posted: Fri Sep 19, 2014 12:15 pm
by nolek
L2J Revision Number: 6622 (STABLE)
L2JDP Revision Number: 10421 (STABLE)

this skill dont take a pet in the party..
RebalanceHP.java

Code: Select all

/* * Copyright (C) 2004-2013 L2J DataPack *  * This file is part of L2J DataPack. *  * L2J DataPack is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. *  * L2J DataPack is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */package handlers.effecthandlers; import com.l2jserver.gameserver.model.L2Party;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;import com.l2jserver.gameserver.model.effects.EffectTemplate;import com.l2jserver.gameserver.model.effects.L2Effect;import com.l2jserver.gameserver.model.effects.L2EffectType;import com.l2jserver.gameserver.model.stats.Env;import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;import com.l2jserver.gameserver.util.Util; /** * Rebalance HP effect. * @author Adry_85, earendil */public class RebalanceHP extends L2Effect{    public RebalanceHP(Env env, EffectTemplate template)    {        super(env, template);    }        @Override    public boolean onActionTime()    {        return false;    }        @Override    public L2EffectType getEffectType()    {        return L2EffectType.REBALANCE_HP;    }        @Override    public boolean onStart()    {        if (!getEffector().isPlayer() || !getEffector().isInParty())        {            return false;        }                double fullHP = 0;        double currentHPs = 0;        final L2Party party = getEffector().getParty();        for (L2PcInstance member : party.getMembers())        {            if (member.isDead() || !Util.checkIfInRange(getSkill().getAffectRange(), getEffector(), member, true))            {                continue;            }                        fullHP += member.getMaxHp();            currentHPs += member.getCurrentHp();        }                double percentHP = currentHPs / fullHP;        for (L2PcInstance member : party.getMembers())        {            if (member.isDead() || !Util.checkIfInRange(getSkill().getAffectRange(), getEffector(), member, true))            {                continue;            }                        double newHP = member.getMaxHp() * percentHP;            if (newHP > member.getCurrentHp()) // The target gets healed            {                // The heal will be blocked if the current hp passes the limit                if (member.getCurrentHp() > member.getMaxRecoverableHp())                {                    newHP = member.getCurrentHp();                }                else if (newHP > member.getMaxRecoverableHp())                {                    newHP = member.getMaxRecoverableHp();                }            }                        member.setCurrentHp(newHP);            StatusUpdate su = new StatusUpdate(member);            su.addAttribute(StatusUpdate.CUR_HP, (int) member.getCurrentHp());            member.sendPacket(su);        }        return true;    }}
problem fixed for beta by UnAfraid
Gist by: UnAfraid
some body fix it for stable?? replace file from BETA donot clear the problem.

Re: Skill 1335 Balance Life (RebalanceHP.java) - Cardinal 76

Posted: Fri Sep 19, 2014 2:32 pm
by Driad
I do not advise to use Stable - all abnormal effects work properly, the beta is much more stable.

Re: Skill 1335 Balance Life (RebalanceHP.java) - Cardinal 76

Posted: Sun Sep 21, 2014 4:08 pm
by nolek
some working script RebalanceHP.java "L2J_DataPack\game\data\scripts\handlers\effecthandlers"

Code: Select all

/* * Copyright (C) 2004-2013 L2J DataPack *  * This file is part of L2J DataPack. *  * L2J DataPack is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. *  * L2J DataPack is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */package handlers.effecthandlers; import com.l2jserver.gameserver.model.L2Party;import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;import com.l2jserver.gameserver.model.effects.EffectTemplate;import com.l2jserver.gameserver.model.effects.L2Effect;import com.l2jserver.gameserver.model.effects.L2EffectType;import com.l2jserver.gameserver.model.stats.Env;import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;import com.l2jserver.gameserver.util.Util;import com.l2jserver.gameserver.model.actor.L2Summon; /** * Rebalance HP effect. * @author Adry_85, earendil */public class RebalanceHP extends L2Effect{    public RebalanceHP(Env env, EffectTemplate template)    {        super(env, template);    }        @Override    public boolean onActionTime()    {        return false;    }        @Override    public L2EffectType getEffectType()    {        return L2EffectType.REBALANCE_HP;    }     @Override    public boolean onStart()    {        if (!getEffector().isPlayer() || !getEffector().isInParty())        {            return false;        }                double fullHP = 0;        double currentHPs = 0;        final L2Party party = getEffector().getParty();        for (L2PcInstance member : party.getMembers())        {            if (!member.isDead() || !Util.checkIfInRange(getSkill().getAffectRange(), getEffector(), member, true))            {                fullHP += member.getMaxHp();                currentHPs += member.getCurrentHp();            }                        final L2Summon summon = member.getSummon();            if (!summon.isDead() || !Util.checkIfInRange(getSkill().getAffectRange(), getEffector(), summon, true))            {                           fullHP += summon.getMaxHp();                currentHPs += summon.getCurrentHp();            }        }                double percentHP = currentHPs / fullHP;        for (L2PcInstance member : party.getMembers())        {            if (!member.isDead() || !Util.checkIfInRange(getSkill().getAffectRange(), getEffector(), member, true))            {                double newHP = member.getMaxHp() * percentHP;                if (newHP > member.getCurrentHp()) // The target gets healed                {                    // The heal will be blocked if the current hp passes the limit                    if (member.getCurrentHp() > member.getMaxRecoverableHp())                    {                        newHP = member.getCurrentHp();                    }                    else if (newHP > member.getMaxRecoverableHp())                    {                        newHP = member.getMaxRecoverableHp();                    }                }                member.setCurrentHp(newHP);                StatusUpdate su = new StatusUpdate(member);                su.addAttribute(StatusUpdate.CUR_HP, (int) member.getCurrentHp());                member.sendPacket(su);            }                            final L2Summon summon = member.getSummon();            if (!summon.isDead() || !Util.checkIfInRange(getSkill().getAffectRange(), getEffector(), summon, true))            {                double newHP = summon.getMaxHp() * percentHP;                if (newHP > summon.getCurrentHp()) // The target gets healed                {                    // The heal will be blocked if the current hp passes the limit                    if (summon.getCurrentHp() > member.getMaxRecoverableHp())                    {                        newHP = summon.getCurrentHp();                    }                    else if (newHP > summon.getMaxRecoverableHp())                    {                        newHP = summon.getMaxRecoverableHp();                    }                                   }                summon.setCurrentHp(newHP);                StatusUpdate su = new StatusUpdate(summon);                su.addAttribute(StatusUpdate.CUR_HP, (int) summon.getCurrentHp());                summon.sendPacket(su);            }        }        return true;    }}
if all have a pet - working, without pet - do not work