package net.sf.l2j.gameserver.model.actor.instance; import java.util.logging.Logger; import javolution.util.FastList; import net.sf.l2j.Config; import net.sf.l2j.gameserver.datatables.BuffTemplateTable; import net.sf.l2j.gameserver.model.L2Character; import net.sf.l2j.gameserver.model.L2Effect; import net.sf.l2j.gameserver.model.L2Object; import net.sf.l2j.gameserver.model.L2Skill.SkillTargetType; import net.sf.l2j.gameserver.model.L2Skill.SkillType; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.serverpackets.SystemMessage; import net.sf.l2j.gameserver.templates.L2BuffTemplate; public class L2BufferInstance { static L2PcInstance selfBuffer; static L2NpcInstance npcBuffer; public static void makeBuffs(L2PcInstance player, int _templateId, L2Object efector) { if (player == null) return; getbufferType(efector).setTarget(player); FastList _templateBuffs = new FastList(); _templateBuffs = BuffTemplateTable.getInstance().getBuffTemplate(_templateId); if (_templateBuffs == null || _templateBuffs.size() == 0) return; for (L2BuffTemplate _buff:_templateBuffs) { getbufferType(efector).setTarget(player); if ( _buff.checkPlayer(player)) { player.setCurrentHpMp(player.getMaxHp()+5000, player.getMaxMp()+5000); SystemMessage sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT); sm.addSkillName(_buff.getSkill().getId()); player.sendPacket(sm); sm = null; if (_buff.getSkill().getTargetType() == SkillTargetType.TARGET_SELF) { MagicSkillUse msu = new MagicSkillUse(player, player, _buff.getSkill().getId(), _buff.getSkill().getLevel(), 100, 0); player.broadcastPacket(msu); for (L2Effect effect : _buff.getSkill().getEffectsSelf(player)) { player.addEffect(effect); } if (_buff.getSkill().getSkillType() == SkillType.SUMMON) { player.doCast(_buff.getSkill()); } } else { MagicSkillUse msu = new MagicSkillUse(getbufferType(efector), player, _buff.getSkill().getId(), _buff.getSkill().getLevel(), 5, 0); player.broadcastPacket(msu); } for (L2Effect effect : _buff.getSkill().getEffects(getbufferType(efector), player)) { player.addEffect(effect); } try{ Thread.sleep(50); }catch (Exception e) {} } } } private static L2Character getbufferType(L2Object efector) { if (efector instanceof L2PcInstance) { selfBuffer = ((L2PcInstance)efector); efector = selfBuffer; } if (efector instanceof L2NpcInstance) { npcBuffer = ((L2NpcInstance)efector); efector = npcBuffer; } return (L2Character) efector; } static Logger _log = Logger.getLogger(Config.class.getName()); }