rendered paste bodypackage net.sf.l2j.gameserver.handler.itemhandlers;import java.util.Map;import net.sf.l2j.gameserver.ThreadPoolManager;import net.sf.l2j.gameserver.clientpackets.RequestSocialAction;import net.sf.l2j.gameserver.datatables.SkillTable;import net.sf.l2j.gameserver.handler.IItemHandler;import net.sf.l2j.gameserver.model.L2ItemInstance;import net.sf.l2j.gameserver.model.L2Skill;import net.sf.l2j.gameserver.model.L2Summon;import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;import net.sf.l2j.gameserver.network.SystemMessageId;import net.sf.l2j.gameserver.serverpackets.CreatureSay;import net.sf.l2j.gameserver.serverpackets.MagicSkillUse;import net.sf.l2j.gameserver.serverpackets.SocialAction;import net.sf.l2j.gameserver.serverpackets.StopMove;import net.sf.l2j.gameserver.serverpackets.SystemMessage;import net.sf.l2j.util.Rnd;/** * * @author Julien Lamby */public class Food implements IItemHandler{ private static final int[] ITEM_IDS = { 3444, 4385 }; @Override public int[] getItemIds(){ return ITEM_IDS; } @Override public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if(playable instanceof L2Summon) return; L2PcInstance player = (L2PcInstance)playable; if(player.isInCombat() || !player.getAttackByList().isEmpty()) { SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2); sm.addString("Vous ne pouvez pas utiliser cet objet en combat."); player.sendPacket(sm); return; } boolean res = false; if(Rnd.get(100) < 5) { res = perimePotion(player); } else { switch(item.getItemId()) { case 3444: res = usePotion(player, 3283, 1); break; case 3445: res = usePotion(player, 3283, 2); break; case 3446: res = usePotion(player, 3312, 1); break; case 3447: res = usePotion(player, 3312, 2); break; case 4385: res = perimePotion(player); break; default : } } if(res) playable.destroyItem("Consume", item.getObjectId(), 1, null, false); } private boolean usePotion(L2PcInstance activeChar, int skillId, int level) { L2Skill skill = SkillTable.getInstance().getInfo(skillId, level); if (skill != null) { if (activeChar.isSkillDisabled(skill.getId())) { SystemMessage sm = new SystemMessage(SystemMessageId.S1_PREPARED_FOR_REUSE); sm.addSkillName(skill.getId(),skill.getLevel()); activeChar.sendPacket(sm); return false; } activeChar.doCast(skill); SystemMessage sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT); sm.addSkillName(skillId); activeChar.sendPacket(sm); if (!(activeChar.isSitting() && !skill.isPotion())) return true; } return false; } private boolean perimePotion(L2PcInstance player) { int skillLevel = (player.getLevel() > 40) ? 1 : 2; int skillId = (player.isMageClass())? 7077 : 7076; L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLevel); if (player.getFirstEffect(skill) == null) { skill.getEffects(player, player); player.broadcastPacket(new MagicSkillUse(player, player, skill.getId(), skillLevel, skill.getHitTime(), 0)); CreatureSay cs = new CreatureSay(player.getObjectId(), 0, player.getName(), "*est maintenant saoul*"); player.broadcastPacket(cs); player.setActionTask(ThreadPoolManager.getInstance().scheduleEffect(new Action(player), 300000)); player.setIvresseTask(ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(new Ivresse(player), 2500, 30000)); return true; } SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2); sm.addString("Vous etes deja completement saoul n'en rajoutez pas..."); player.sendPacket(sm); return false; } private class Action implements Runnable{ private L2PcInstance player; public Action(L2PcInstance p) { player = p; } public void run() { player.stopActions(); } } private class Ivresse implements Runnable{ private L2PcInstance player; //2 = Hello ; 10 = Laugh ; 12 = Dance ; 13 = Sad private int[] tabActions = {2, 10, 12, 13}; private String[] tabTextes= { "je suis le roi du monde!!!", "je t'aime mon pote", "ouuuu ça tourne", "je crois que je vais vo...", "c'est la grosse *hips* a duduuuuleuuuh j'la pre...*hips*", "c'est a bwar a bwar a bwaaaaar, c'est a bwar qu'il me fauuuut woooWooOOoo" }; public Ivresse(L2PcInstance p){ player = p; } public void run(){ if (player.isDead()){ player.stopActions(); return; } try{ if(Rnd.get(100) > 30) performAction(); else performSpeech(); } catch (Exception e) { } } private void performAction() { int chance = Rnd.get(100); int action = tabActions[0]; if(chance >= 50) action = tabActions[1]; else if(chance >= 35) action = tabActions[2]; else if(chance >= 25) action = tabActions[3]; String txt = "*" + RequestSocialAction.getActionString(action) + "*"; CreatureSay cs = new CreatureSay(player.getObjectId(), 0, player.getName(), txt); player.broadcastPacket(cs); if(player.isMoving()) { StopMove sm = new StopMove(player); player.sendPacket(sm); } player.broadcastPacket(new SocialAction(player.getObjectId(),action)); // SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);// sm.addString("*" + player.getName() + " " + RequestSocialAction.getActionString(action) + "*");// player.broadcastPacket(sm); } private void performSpeech() { Map<Integer, L2PcInstance> knownPlayers = player.getKnownList().getKnownPlayers(); if(knownPlayers == null) return; int i = Rnd.get(tabTextes.length); CreatureSay cs = new CreatureSay(player.getObjectId(), 0, player.getName(), tabTextes[i]); player.sendPacket(cs); if(knownPlayers.size() > 0) { for(L2PcInstance p : knownPlayers.values()) p.sendPacket(cs); } } }}