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