Page 1 of 1

Question about debuff slot

Posted: Mon Apr 26, 2010 12:42 pm
by macdonald12
If you want to receive support we need this info to help you properly.
» Find Revision
L2J Revision Number: 4117
L2JDP Revision Number: 7319

Does anyone know how the debuffs are put on a new buff line, as shown in this screenshot:

Image

As i can see in CharEffectList.java, updateEffectIcons() handles _buffs and _debuffs separately, but in both cases it ends up calling e.addIcon(mi);.

I've been looking around, but can't seem to find the piece of code responsible for putting it on 'a new line'. Anyone else can help me out?

Re: Question about debuff slot

Posted: Mon Apr 26, 2010 12:57 pm
by janiii
maybe if the skill is defined as isDebuff true?

Re: Question about debuff slot

Posted: Mon Apr 26, 2010 7:52 pm
by macdonald12
Yes, then that effect will be displayed in the debuff-bar. But what i mean is, what makes debuff skills have their own 'buff line'.

As far as i can see all icons for buffs, dances + songs / debuffs are added through AbnormalStatusUpdate(), yet these 3 types are being seperated in the buff-display-bar over 3 or more lines (see above screenshot). Does the client handle this automatically?

My apologies for failing to explain myself better :D

Re: Question about debuff slot

Posted: Mon Apr 26, 2010 8:37 pm
by janiii
check the skill xml and attributes like isDebuff, isDance..

Re: Question about debuff slot

Posted: Fri Apr 30, 2010 10:07 am
by macdonald12
Setting those variables to false or true does not seem to affect their position on the bar as a buff, dance or debuff.

Dances set with isDance = "false" still appear on the 'dance bar' and buffs set as isDebuff = "true" still appear on the normal 'buff bar' and not the separate 'debuff bar'.

Does the client handle this separation or is there some server-code i overlooked?

Re: Question about debuff slot

Posted: Wed Jan 26, 2011 8:49 pm
by Gunslito
I need this but the dances slot, all are in the same slot and that is sicking me!

Re: Question about debuff slot

Posted: Wed Jan 26, 2011 10:06 pm
by Flashy
it must be client handled.
have a look to the serverpacket, where is no packet, which is manipulate the bar.

Code: Select all

 /* * This program 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. *  * This program 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 com.l2jserver.gameserver.network.serverpackets; import java.util.List; import javolution.util.FastList; /** * * MagicEffectIcons * format   h (dhd) * * @version $Revision: 1.3.2.1.2.6 $ $Date: 2005/04/05 19:41:08 $ */public class AbnormalStatusUpdate extends L2GameServerPacket{    private static final String _S__97_ABNORMALSTATUSUPDATE = "[S] 85 AbnormalStatusUpdate";    private List<Effect> _effects;        private static class Effect    {        protected int _skillId;        protected int _level;        protected int _duration;                public Effect(int pSkillId, int pLevel, int pDuration)        {            _skillId = pSkillId;            _level = pLevel;            _duration = pDuration;        }    }        public AbnormalStatusUpdate()    {        _effects = new FastList<Effect>();    }        public void addEffect(int skillId, int level, int duration)    {        if (skillId == 2031 ||skillId == 2032 ||skillId == 2037 || skillId == 26025 || skillId == 26026)            return;        _effects.add(new Effect(skillId, level, duration));    }        @Override    protected final void writeImpl()    {        writeC(0x85);                writeH(_effects.size());                for (Effect temp : _effects)        {            writeD(temp._skillId);            writeH(temp._level);                        if (temp._duration == -1)                writeD(-1);            else                writeD(temp._duration / 1000);        }    }        /* (non-Javadoc)     * @see com.l2jserver.gameserver.serverpackets.ServerBasePacket#getType()     */    @Override    public String getType()    {        return _S__97_ABNORMALSTATUSUPDATE;    }}  

Re: Question about debuff slot

Posted: Wed Jan 26, 2011 11:17 pm
by _DS_
Icons separated by client, server only send them in proper order.