package ai;
import net.sf.l2j.gameserver.datatables.ItemTable;
import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser;
/**
 * 
 * @author CalypsoToolz
 *
 */
public class ExtendedNoblesse extends QuestJython
{
	/** выдавать нублес (true), либо же выдавать определенные предметы **/
	private final static boolean giveNoblesse = true;
	/** награда для всей пати? **/
	private final static boolean forParty = true;
	/** доступно только для саб-класса? **/
	private final static boolean onlySubClass = true;
	/** минимальный уровень игрока для получения награды **/
	private final static int minLvl = 75;
	/** макс дистанция от добившего игрока до мембера пати, для выдачи награды **/
	private final static int applyRange = 1800;
	/** ид мобов, при убийстве которых будем выдавать нубл/итемы **/
	private final static int[] nobbleseMonsters = {
			18342,
			20001
	};
	/** список итемов, которые будут выдаваться игроку при giveNoblesse = false
	 * {{ид, кол-во}, {ид, кол-во}, {ид, кол-во}}
	 **/
	private final static int[][] altItemList = {
			{ 4037, 10 },
			{ 57, 10000 }
	};
	/** список итемов, которые будут выдаваться игроку в любом случае (если прошел проверки по лвлу и т.п)
	 * {{ид, кол-во}, {ид, кол-во}, {ид, кол-во}}
	 **/
	private final static int[][] itemList = {
	};
	public ExtendedNoblesse(int questId, String name, String descr)
	{
		super(questId, name, descr);
		for(int i : nobbleseMonsters)
			addKillId(i);
	}
	@Override
	public String onKill(L2NpcInstance npc, L2PcInstance player, boolean isPet)
	{
		if(forParty && player.isInParty())
		{
			for(L2PcInstance member : player.getParty().getPartyMembers())
				if(member.isInsideRadius(player, applyRange, false, false))
				{
					if(member.getLevel() < minLvl)
						continue;
					if(onlySubClass && !member.isSubClassActive())
						continue;
					giveReward(member);
				}
		}
		else
		{
			if(player.getLevel() < minLvl)
				return super.onKill(npc, player, isPet);
			if(onlySubClass && !player.isSubClassActive())
				return super.onKill(npc, player, isPet);
			giveReward(player);
		}
		return super.onKill(npc, player, isPet);
	}
	private void giveReward(L2PcInstance player)
	{
		if(giveNoblesse)
		{
			if(!player.isNoble())
			{
				player.setNoble(true);
				player.broadcastPacket(new MagicSkillUser(player, player, 5103, 1, 1000, 0));
				player.sendMessage("Поздравляем, Вы получили статус Дворянина!");
			}
		}
		else if (altItemList.length > 0)
		{
			for (int [] i : altItemList)
            {
            	player.giveItem(i[0], i[1]);
            	player.sendMessage("Вы получили " + i[1] + " " + ItemTable.getInstance().getItemName(i[0]));
            }
		}
		if(itemList.length > 0)
		{
			for (int [] i : itemList)
            {
            	player.giveItem(i[0], i[1]);
            	player.sendMessage("Вы получили " + i[1] + " " + ItemTable.getInstance().getItemName(i[0]));
            }
		}
	}
	public static void main(String... arguments) {
		new ExtendedNoblesse(-1, "ExtendedNoblesse", "ExtendedNoblesse by Calypso");
		_log.info("Loaded \"ExtendedNoblesse\" by Calypso...");
	}
}
	вот код.  его надо как то переделать на сборку l2CODE