Jump to content
  • 0

Celestial/Barrier Problem.


sotid

Question

L2jfrozen/1004 interlude.

If you have celestial on and you cast sonic barrier or another celestial type , after the first celestial worn out the second one doesn't continue  giving you invulnerability.

I guess is core sided so tell me what else I need to post.

EffectInvincible.java
 

/*
 * 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 2, 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, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */
package com.l2jfrozen.gameserver.skills.effects;

import com.l2jfrozen.gameserver.model.L2Effect;
import com.l2jfrozen.gameserver.skills.Env;

public class EffectInvincible extends L2Effect
{
	public EffectInvincible(Env env, EffectTemplate template)
	{
		super(env, template);
	}

	@Override
	public EffectType getEffectType()
	{
		return L2Effect.EffectType.INVINCIBLE;
	}

	@Override
	public void onStart()
	{
		getEffected().setIsInvul(true);
	}

	@Override
	public boolean onActionTime()
	{
		//Commented. But I'm not really sure about this, could cause some bugs.
		//getEffected().setIsInvul(false);
		return false;
	}

	@Override
	public void onExit()
	{
		getEffected().setIsInvul(false);
	}
}



 

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Not sure but shouldn't one buff override another? That would solve it.

Problem is the onExit, setting char false for invul. Not taking into consideration the second celestial.

Link to comment
Share on other sites

  • 0

The structure is bad, but you can check the method onExit if the same skill type exists and if yes, simply don't remove the invul

Link to comment
Share on other sites

  • 0
21 hours ago, SweeTs said:

Not sure but shouldn't one buff override another? That would solve it.

Problem is the onExit, setting char false for invul. Not taking into consideration the second celestial.

even when I add stacktypes and one overrides the other the problem still exists.

 

 

20 hours ago, melron said:

The structure is bad, but you can check the method onExit if the same skill type exists and if yes, simply don't remove the invul

How can I fix this??

I changed

public void onExit()
	{
		getEffected().setIsInvul(false);

to

public void onExit()
	{
		getEffected().setIsInvul(true);

and it does work even if another celestial is active but you stay invul even if the skill effect stop which is why is false I guess.

Link to comment
Share on other sites

  • 0

Same stackType won't fix that if you think about. What's happening is 

 

Active skill, set invul true > cast new skill, set invul true > in the same time, old skill launches onExit which sets invul false.

 

I suppose.

 

Devilish code ]:->

 

So yeah, looping your active buffs, checking for still type is the way, easiest way so far.

Link to comment
Share on other sites

  • 0
2 hours ago, SweeTs said:

Same stackType won't fix that if you think about. What's happening is 

 

Active skill, set invul true > cast new skill, set invul true > in the same time, old skill launches onExit which sets invul false.

 

I suppose.

 

Devilish code ]:->

 

So yeah, looping your active buffs, checking for still type is the way, easiest way so far.

And how do I do that?

Link to comment
Share on other sites

  • 0
5 hours ago, SweeTs said:

Loop your active buffs, check for specific skill type

You can find several examples over sources. If you find skill, do nothing else set invul false.

 

Hint

for (L2Effect

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...