l2fire Posted September 11, 2018 Posted September 11, 2018 (edited) Hello how to fix this bug? Players can heal clan doors and u see which range is Photo prnt.sc RequestMagicSkillUse.java if ((skill.getSkillType() == SkillType.HEAL || skill.getSkillType() == SkillType.HEAL_PERCENT || skill.getSkillType() == SkillType.HEAL_STATIC) && activeChar.getTarget() instanceof L2DoorInstance) { return; } EDITED: Forgot to add skill name: Greater Battle Heal id: 1218 Edited September 11, 2018 by l2fire
0 l2fire Posted September 11, 2018 Author Posted September 11, 2018 I fixed this on, but when i try to heal player that's fine but in gs console i get warning: warn no skill found with id 1218 and level 33 !! warn no skill found with id 1218 and level 33 !!
0 tazerman2 Posted September 11, 2018 Posted September 11, 2018 if you have acis you need use check here not in clientpackets private boolean checkUseMagicConditions(L2Skill skill, <---- PcInstance
0 Reborn12 Posted September 11, 2018 Posted September 11, 2018 Like sweets said put a check in heal.java and healpercent.java if this is instanceof l2doorinstance continue;
0 l2fire Posted September 12, 2018 Author Posted September 12, 2018 I using l2jfrozen but i will check
0 l2fire Posted September 12, 2018 Author Posted September 12, 2018 (edited) And GS show warning about skills just after code when i add in RequestMagicSKillUse.java Edited September 12, 2018 by l2fire
0 'Baggos' Posted September 12, 2018 Posted September 12, 2018 (edited) 5 hours ago, l2fire said: And GS show warning about skills just after code when i add in RequestMagicSKillUse.java You should put the check in the proper lines. Heal.java HealPercent.java in the right place. I'm not sure, but I think frozen already have config for this.. Dunno. Search on your configs. Edited September 12, 2018 by 'Baggos'
0 l2fire Posted September 12, 2018 Author Posted September 12, 2018 9 hours ago, 'Baggos' said: You should put the check in the proper lines. Heal.java HealPercent.java in the right place. I'm not sure, but I think frozen already have config for this.. Dunno. Search on your configs. Maybe you can help me ? Its Heal.java /* * L2jFrozen Project - www.l2jfrozen.com * * 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.handler.skillhandlers; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.handler.ISkillHandler; import com.l2jfrozen.gameserver.handler.SkillHandler; import com.l2jfrozen.gameserver.managers.GrandBossManager; import com.l2jfrozen.gameserver.model.L2Character; import com.l2jfrozen.gameserver.model.L2Object; import com.l2jfrozen.gameserver.model.L2Skill; import com.l2jfrozen.gameserver.model.L2Skill.SkillType; import com.l2jfrozen.gameserver.model.actor.instance.L2DoorInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.StatusUpdate; import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; import com.l2jfrozen.gameserver.skills.Stats; /** * This class ... * @version $Revision: 1.1.2.2.2.4 $ $Date: 2005/04/06 16:13:48 $ */ public class Heal implements ISkillHandler { // all the items ids that this handler knowns // private static Logger LOGGER = Logger.getLogger(Heal.class); /* * (non-Javadoc) * @see com.l2jfrozen.gameserver.handler.IItemHandler#useItem(com.l2jfrozen.gameserver.model.L2PcInstance, com.l2jfrozen.gameserver.model.L2ItemInstance) */ private static final SkillType[] SKILL_IDS = { SkillType.HEAL, SkillType.HEAL_PERCENT, SkillType.HEAL_STATIC }; /* * (non-Javadoc) * @see com.l2jfrozen.gameserver.handler.IItemHandler#useItem(com.l2jfrozen.gameserver.model.L2PcInstance, com.l2jfrozen.gameserver.model.L2ItemInstance) */ @Override public void useSkill(final L2Character activeChar, final L2Skill skill, final L2Object[] targets) { L2PcInstance player = null; if (activeChar instanceof L2PcInstance) player = (L2PcInstance) activeChar; final boolean bss = activeChar.checkBss(); final boolean sps = activeChar.checkSps(); // check for other effects try { ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(SkillType.BUFF); if (handler != null) handler.useSkill(activeChar, skill, targets); handler = null; } catch (final Exception e) { if (Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); } L2Character target = null; for (final L2Object target2 : targets) { target = (L2Character) target2; if (target == null || target.isDead() || target.isInvul()) continue; // Avoid players heal inside Baium lair from outside if ((activeChar.isInsideZone(12007) || target.isInsideZone(12007)) && ((GrandBossManager.getInstance().getZone(player) == null && GrandBossManager.getInstance().getZone(target) != null) || (GrandBossManager.getInstance().getZone(target) == null && GrandBossManager.getInstance().getZone(activeChar) != null))) { continue; } // We should not heal walls and door if (target instanceof L2DoorInstance) continue; // We should not heal siege flags if (target instanceof L2NpcInstance && ((L2NpcInstance) target).getNpcId() == 35062) { activeChar.getActingPlayer().sendMessage("You cannot heal siege flags!"); continue; } // Player holding a cursed weapon can't be healed and can't heal if (target != activeChar) { if (target instanceof L2PcInstance && ((L2PcInstance) target).isCursedWeaponEquiped()) continue; else if (player != null && player.isCursedWeaponEquiped()) continue; } double hp = skill.getPower(); if (skill.getSkillType() == SkillType.HEAL_PERCENT) { hp = target.getMaxHp() * hp / 100.0; } else { if (bss) { hp *= 1.5; } else if (sps) { hp *= 1.3; } } if (skill.getSkillType() == SkillType.HEAL_STATIC) hp = skill.getPower(); else if (skill.getSkillType() != SkillType.HEAL_PERCENT) hp *= target.calcStat(Stats.HEAL_EFFECTIVNESS, 100, null, null) / 100; target.setCurrentHp(hp + target.getCurrentHp()); target.setLastHealAmount((int) hp); StatusUpdate su = new StatusUpdate(target.getObjectId()); su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp()); target.sendPacket(su); su = null; if (target instanceof L2PcInstance) { if (skill.getId() == 4051) { SystemMessage sm = new SystemMessage(SystemMessageId.REJUVENATING_HP); target.sendPacket(sm); sm = null; } else { if (activeChar instanceof L2PcInstance && activeChar != target) { SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_RESTORED_BY_S1); sm.addString(activeChar.getName()); sm.addNumber((int) hp); target.sendPacket(sm); sm = null; } else { SystemMessage sm = new SystemMessage(SystemMessageId.S1_HP_RESTORED); sm.addNumber((int) hp); target.sendPacket(sm); sm = null; } } } target = null; } } @Override public SkillType[] getSkillIds() { return SKILL_IDS; } }
0 SweeTs Posted September 12, 2018 Posted September 12, 2018 2 hours ago, l2fire said: // We should not heal walls and door if (target instanceof L2DoorInstance) continue; What help you need.. You have there Door check example, just do the same but use L2RaidBossInstance..
0 'Baggos' Posted September 12, 2018 Posted September 12, 2018 (edited) You can disable it from Heal & HealPercent.java, you will be able to use the heal skill, but without HP result on bosses, door, etc. As I understand, you don't want even the effect from heal on npcs/doors etc. So, L2jfrozen have already config for bosses(raid/grand). Open L2Character.java and search for L2RaidBossInstance. Just put in there target instanceof L2MonsterInstance || target instanceof L2NpcInstance || target instanceof L2DoorInstance So, the players will be not able to use the skill type heal/heal percent. If this won't work.. Then, as Sweets said, on heal and healpercent.java you have the example for L2DoorInstance, do the same for bosses and monsters. Edited September 12, 2018 by 'Baggos'
0 l2fire Posted September 13, 2018 Author Posted September 13, 2018 7 hours ago, SweeTs said: What help you need.. You have there Door check example, just do the same but use L2RaidBossInstance.. I said fixed this. Players cant heal npc , doors any any . But when player try to heal another player ingame or self GS console shows warn no skill found with id 1218 and level 33 !!
0 SweeTs Posted September 13, 2018 Posted September 13, 2018 If you want to completely block the skill usage, put the check in RequestMagicSkillUse. About error if that happened after your edit, simply revert it, you did something wrong. Also, you should post what and where did you add/edit.
0 'Baggos' Posted September 13, 2018 Posted September 13, 2018 (edited) 8 hours ago, l2fire said: I said fixed this. Players cant heal npc , doors any any . But when player try to heal another player ingame or self GS console shows warn no skill found with id 1218 and level 33 !! Read my quote.. You have 3 Options to block the heal: RequestMagicSkillUse | In check for Ctrl button, you can block the skill type. L2Character.java | Search for L2RaidBossInstance and you will understand what you have to do. Heal/HealPercent.java | Easy way to block the skill type, but players can cast the heal on mobs/doors(without any HP result ofc). For me, work on already check in L2Character.java file. Edited September 13, 2018 by 'Baggos'
0 SweeTs Posted September 13, 2018 Posted September 13, 2018 I choose heal java files, let them get flag > kill the fag. 1
Question
l2fire
Hello how to fix this bug? Players can heal clan doors and u see which range is
Photo prnt.sc
RequestMagicSkillUse.java if ((skill.getSkillType() == SkillType.HEAL || skill.getSkillType() == SkillType.HEAL_PERCENT || skill.getSkillType() == SkillType.HEAL_STATIC) && activeChar.getTarget() instanceof L2DoorInstance) { return; }EDITED: Forgot to add skill name: Greater Battle Heal id: 1218
Edited by l2fire16 answers to this question
Recommended Posts