Jump to content

No Heal and Buffs at Monsters and Raids


xdem

Recommended Posts

This simple code will stop players from healing or buffing monsters and raids

Go at network/clientpackets/RequestMagicSkillUse

	// Check the validity of the skill
	if (skill != null)
	{
		+if (activeChar.getTarget() instanceof L2MonsterInstance)
		+{
		+	switch (skill.getSkillType())
		+	{
		+		case HEAL:
		+		case HEAL_PERCENT:
		+		case BUFF:
		+		{
		+			if (skill.getTargetType()==L2TargetType.TARGET_ONE)
		+			{
		+				return;
		+			}
		+		}
		+	}
		+}
		if ((activeChar.isTransformed() || activeChar.isInStance()) && !activeChar.containsAllowedTransformSkill(skill.getId()))

 

Credits me, thanks for your reports guys, all fixed!

for those with the previus version I recomend change asap

Link to comment
Share on other sites

small note.

 

You don't do this:

		+		case HEAL:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case HEAL_PERCENT:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case CHAIN_HEAL:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case BUFF:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;

 

You do

		+		case HEAL:
		+		case HEAL_PERCENT:
		+		case CHAIN_HEAL:
		+		case BUFF:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;

Cases collapse and run till u tell them to break;

Also it would of been best/safer, if you did it in the Heal skill handler.

Link to comment
Share on other sites

small note.

 

You don't do this:

		+		case HEAL:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case HEAL_PERCENT:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case CHAIN_HEAL:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case BUFF:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;

 

You do

		+		case HEAL:
		+		case HEAL_PERCENT:
		+		case CHAIN_HEAL:
		+		case BUFF:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;

Cases collapse and run till u tell them to break;

Also it would of been best/safer, if you did it in the Heal skill handler.

thanks for the info, updated

Link to comment
Share on other sites

small note.

 

You don't do this:

		+		case HEAL:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case HEAL_PERCENT:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case CHAIN_HEAL:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;
		+		case BUFF:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;

 

You do

		+		case HEAL:
		+		case HEAL_PERCENT:
		+		case CHAIN_HEAL:
		+		case BUFF:
		+			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		+			return;

Cases collapse and run till u tell them to break;

Also it would of been best/safer, if you did it in the Heal skill handler.

as you had told me to add these exceptions in skillhandlers didn't work...so it's pointless to add that to skillhandlers :)
Link to comment
Share on other sites

also

from this:

if (activeChar.getTarget() instanceof L2RaidBossInstance || activeChar.getTarget() instanceof L2GrandBossInstance || activeChar.getTarget() instanceof L2MonsterInstance)

you can do this:

if (activeChar.getTarget() instanceof L2MonsterInstance)

because as far as i know, L2RaidBossInstance and L2GrandBossInstance are extending L2MonsterInstance

Link to comment
Share on other sites

also

from this:

if (activeChar.getTarget() instanceof L2RaidBossInstance || activeChar.getTarget() instanceof L2GrandBossInstance || activeChar.getTarget() instanceof L2MonsterInstance)

you can do this:

if (activeChar.getTarget() instanceof L2MonsterInstance)

because as far as i know, L2RaidBossInstance and L2GrandBossInstance are extending L2MonsterInstance

 

I thougth it too, but never tested it, because L2MonsterInstance Extends L2Npc I think, its a little complicated, I will test

Link to comment
Share on other sites

I thougth it too, but never tested it, because L2MonsterInstance Extends L2Npc I think, its a little complicated, I will test

After alot of tests today(becouse i like your idea)

When u get target raidboss/grandraid/monster:

u cant use group heal/chain heal/prayer/servitor heal/AI and alot of buffs which are self...

if you drop chain heal/Buff and MonsterInstance this system will be perfect for raids/epics,big deal that someone will buff him with might or shield,and only group heal and few other skills on target will not work normal.(this is my opinion ofc)

Link to comment
Share on other sites

After alot of tests today(becouse i like your idea)

When u get target raidboss/grandraid/monster:

u cant use group heal/chain heal/prayer/servitor heal/AI and alot of buffs which are self...

if you drop chain heal/Buff and MonsterInstance this system will be perfect for raids/epics,big deal that someone will buff him with might or shield,and only group heal and few other skills on target will not work normal.(this is my opinion ofc)

 

Your report is usefull for me and now I will go fix it, im pretty sure I will solve this bug too, the servitor heal yes its a bug on witch im gonna work on now, but the healer(who is there to use heal and mass heals) is not the one who is supposed to target the monster, but still yes this makes the code faulty and buggy so Im gonna spend more time on this

 

PS I will only fix: SelfBuffs, SelfHeals and any other skill that casts without target

Link to comment
Share on other sites

After alot of tests today(becouse i like your idea)

When u get target raidboss/grandraid/monster:

u cant use group heal/chain heal/prayer/servitor heal/AI and alot of buffs which are self...

if you drop chain heal/Buff and MonsterInstance this system will be perfect for raids/epics,big deal that someone will buff him with might or shield,and only group heal and few other skills on target will not work normal.(this is my opinion ofc)

 

Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java	(revision 2)
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java	(working copy)
@@ -17,7 +17,10 @@
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.model.L2Skill;
+import net.sf.l2j.gameserver.model.actor.instance.L2MonsterInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
@@ -69,6 +72,19 @@
			if (skill.isToggle() && activeChar.isMounted())
				return;

+			if (activeChar.getTarget() instanceof L2MonsterInstance)
+			{
+				switch (skill.getSkillType())
+				{
+					case BUFF:
+						return;
+					case HEAL:
+						return;
+					case HEAL_PERCENT:
+						return;
+				}
+			}
+			
			activeChar.useMagic(skill, _ctrlPressed, _shiftPressed);
		}
		else

Link to comment
Share on other sites

Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java	(revision 2)
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java	(working copy)
@@ -17,7 +17,10 @@
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.model.L2Skill;
+import net.sf.l2j.gameserver.model.actor.instance.L2MonsterInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
@@ -69,6 +72,19 @@
			if (skill.isToggle() && activeChar.is-beep-ted())
				return;

+			if (activeChar.getTarget() instanceof L2MonsterInstance)
+			{
+				switch (skill.getSkillType())
+				{
+					case BUFF:
+						return;
+					case HEAL:
+						return;
+					case HEAL_PERCENT:
+						return;
+				}
+			}
+			
			activeChar.useMagic(skill, _ctrlPressed, _shiftPressed);
		}
		else

I cant see any diffrence tho

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.

Guest
Reply to this topic...

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




  • Posts

    • - lost love spells caster in, Amsterdam,Brazil,London,Kuwait .Egypt, Atlanta, Latvia, Lithuania, Sweden۞۩ஜ???? +256704892479  Results are 100% s=ure and guaranteed, spell casting specialist, , black magic death spells that work overnight or by accident. I Cast these strongest black magic revenge death spells that work fast overnight to kill ex-lover, husband, wife girlfriend Enemies overnight Https://nativelovespellscaster.com or she is in a far location, I guarantee you to have your results you are looking for immediately. Just make sure before you contact me you are committed and you want what you are looking for (Victim Death) because my death spell work fast overnight after casting the spells that work, guaranteed black magic love spells, guaranteed voodoo spells, spell to make someone sick and die, revenge spells that work instantly, real witches for hire, revenge spells on an ex- lover, how to put a Black magic death spells on ex-lover, Revenge instant death spells on toxic uncles powerful instant death spells online instant spell that work fast in USA, UK, Kuwait, Germany, Asian, Europe, Philippines, Canada, South Africa, Italy, Peru, India, Iran, Gambia. Sweden, Australia, Nigeria, Spain, Ghana, California, Greece. Death spell on someone, death spells that Death Revenge Spell on wicked friends, Voodoo Death Spells to kill Enemies Black Magic Spells To Harm Someone, Black magic death spells on ex-lover, Revenge instant death spells on toxic uncles powerful instant death spells online instant spell that work fast in USA, UK, Kuwait, Germany, Asian, Europe, Philippines, Canada, revenge spells, most powerful death spell, spell to die in your sleep, successful death spell, most powerful voodoo spell caster, voodoo spell casters in new Orleans, voodoo love spells reviews, proven authentic voodoo spell casters, most powerful voodoo priest in world, black magic tricks to destroy enemy. Results are 100% sure and guaranteed whatapp or cal, Europe, Philippines, Canada, South Africa, Italy, Peru, India, Iran, Gambia. spells, guaranteed voodoo spells, spell to make someone sick and die, revenge spells that work instantly, real witches for hire, revenge spells on an ex- lover, how to put a spell on someone who hurts you, spell to make someone sick, voodoo spells to hurt someone, spells to curse someone, powerful revenge spells, most powerful death spell, spell to die in your sleep, successful death spell, most powerful voodoo spell caster, voodoo spell casters in new Orleans, voodoo love spells reviews, proven authentic voodoo spell casters, most powerful voodoo priest in world, black magic tricks to destroy enemy. Results are 100% sure and guaranteed whatapp or call  ஜ۩۞۩ஜ ??? + 256704892479ஜ۩۞۩ஜ ??Https://nativelovespellscaster.com
    • Hello, my discord is : misanthropic1085           I am selling Frintezza Aq Baium     Reborn origins x1    
    • L2Topzone has a lower traffic ranking than every other website! We spent over 160 Euro for listing server and banner and we've got only 4 download conversions!  Proof: https://prnt.sc/YeJudEKFov1m
    • Any WTS code global chat for this? 
    • Hi, I see what you mean, but I do it differently.   I don't want some features from Hi5 in my project, so I gradually add Ai, zones, items, etc... manually.   And again I want some features from Classic.   So I'm continuing the Classic storyline up to High Five.   My project runs on the client's Prelude of War.   I will release the first public test version soon, which will still be without some "hi5" stuff, because first I need to test for example Fortress Siege, pets and some instances/quests. In the future, I also want to "unlock" new locations from the GoD story.   And what I like most about Classic is that you don't have SA in weapons and it goes back to the roots of Lineage 2. Also you can connect to my discord and talk about with me.
  • Topics

×
×
  • Create New...