Jump to content
  • 0

[help] StopAbnormalEffect(...).


Question

Posted

I have Freya form l2jserver, what i want is that when mob is spoiled to spoil effect add abnormal effect of real target...

i've tried many times, many compiles but nothing happened, then i found effectspoil.java from game root/.../... directory...

so i tried to put there some changes and it works... the problem is that abnormal effect stays when mob spawns again..((

you may look here...

 

/*

* 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 handlers.skillhandlers;

 

 

import com.l2jserver.gameserver.ai.CtrlEvent;

import com.l2jserver.gameserver.handler.ISkillHandler;

import com.l2jserver.gameserver.model.L2Object;

import com.l2jserver.gameserver.model.L2Skill;

import com.l2jserver.gameserver.model.actor.L2Character;

import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;

import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

import com.l2jserver.gameserver.network.SystemMessageId;

import com.l2jserver.gameserver.network.serverpackets.SystemMessage;

import com.l2jserver.gameserver.skills.Formulas;

import com.l2jserver.gameserver.templates.skills.L2SkillType;

import com.l2jserver.gameserver.skills.AbnormalEffect;

 

/**

* @author _drunk_

*

*/

public class Spoil implements ISkillHandler

{

private static final L2SkillType[] SKILL_IDS =

{

L2SkillType.SPOIL

};

 

/**

*

* @see com.l2jserver.gameserver.handler.ISkillHandler#useSkill(com.l2jserver.gameserver.model.actor.L2Character, com.l2jserver.gameserver.model.L2Skill, com.l2jserver.gameserver.model.L2Object[])

*/

public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)

{

if (!(activeChar instanceof L2PcInstance))

return;

 

if (targets == null)

return;

 

for (L2Object tgt: targets)

{

if (!(tgt instanceof L2MonsterInstance))

continue;

 

L2MonsterInstance target = (L2MonsterInstance) tgt;

 

if (target.isSpoil())

{

activeChar.sendPacket(new SystemMessage(SystemMessageId.ALREADY_SPOILED));

continue;

}

 

// SPOIL SYSTEM by Lbaldi

boolean spoil = false;

if (target.isDead() == false)

{

spoil = Formulas.calcMagicSuccess(activeChar, (L2Character) tgt, skill);

 

if (spoil)

{

target.setSpoil(true);

target.setIsSpoiledBy(activeChar.getObjectId());

activeChar.sendPacket(new SystemMessage(SystemMessageId.SPOIL_SUCCESS));

target.startAbnormalEffect(AbnormalEffect.REAL_TARGET);

 

}

else

{

SystemMessage sm = new SystemMessage(SystemMessageId.C1_RESISTED_YOUR_S2);

sm.addCharName(target);

sm.addSkillName(skill);

activeChar.sendPacket(sm);

}

target.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, activeChar);

}

}

}

/**

*

* @see com.l2jserver.gameserver.handler.ISkillHandler#getSkillIds()

*/

 

public L2SkillType[] getSkillIds()

{

return SKILL_IDS;

}

}

 

 

so question is this... where and what to put???

target.stopAbnormalEffect(AbnormalEffect.REAL_TARGET);          ? ? ? ? ? ?

getEffected().stopAbnormalEffect(AbnormalEffect.REAL_TARGET); ? ? ? ? ? ?

 

THIS IS MY GUESSES!!!! i dont know good structure of l2j, that is why i am not propouse my ideas..maybe you know better....

ive tried to do classes,

OnExit()  {//...but here need monster with respective ID, or respective target...

L2MonsterInstance target = (L2MonsterInstance) tgt;

target.stopAbnormalEffect(AbnormalEffect.REAL_TARGET);

}

onAction class the same thing...

 

when i start gameserver... i have error...

no such ... tgt;

i've tried getEffeced();

and still nothing...

what is difference from skillhandler spoil.java and effectspoil.java from l2j eclipse(repository) when not compiled???

 

ive changed effectspoil.java with eclipse, compile it and again nothing happened...

 

i ve tried to delete skillhandler spoil.java ...i wanted effect to go direct to server... where(i guess) if i change effectspoil.java

with eclipse(changes hopefuly will take effect....)

 

anyway is my idea, but i dont know l2j server so good, maybe someone know how to do this in 2 seconds...

 

i guess somehow mob need to clean his abnormal effects on spawn!? - this is bad idea ? if no - how to do this?

or  better abnormal effect need to disappear when mob with respective ID dies....

 

 

thanks in advance, sorry my english!

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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...