does anyone have one Quest, which when he kills 100 monsters Take Reward item..
but without speak any npc.. like this quest but 100 monsters
package l2s.gameserver.scripts.custom;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.concurrent.TimeUnit;
import l2s.commons.db.DatabaseFactory;
import l2s.gameserver.Announcements;
import l2s.gameserver.datatables.SkillTable;
import l2s.gameserver.model.L2Skill;
import l2s.gameserver.model.actor.L2Npc;
import l2s.gameserver.model.actor.instance.L2PcInstance;
import l2s.gameserver.model.quest.Quest;
/**
* @author SoFace
*/
public class SuperMonster extends Quest
{
// Monsters's ID.
private static final int MONSTERS[] =
{
12564
};
private static final boolean REWARD_PARTY = false; // Reward party ?
private final static boolean REWARD_NOBLE = true; // Give Noblesse ?
private final static boolean REWARD_HERO = false; // Give Hero ?
private final static int REWARD_HERO_DAYS = -1; // How many days to give the status of Hero ?
// 0 - Until relogin. -1 - Forever.
private final static boolean REWARD_SKILL = true; // Give Skill ?
private final static int REWARD_SKILL_ID = 0; // Skill's ID.
private final static int REWARD_SKILL_LVL = 0; // Skill's LvL.
private final static boolean REWARD_ITEMS = true; // Give Items ?
private final static int REWARD_ITEM_ID = 4037; // Item's ID.
private final static int REWARD_ITEM_COUNT = 5; // Count.
public SuperMonster()
{
super(-1, "SuperMonster", "custom");
for (int mobs : MONSTERS)
addKillId(mobs);
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
{
L2Skill skill = SkillTable.getInstance().getInfo(REWARD_SKILL_ID, REWARD_SKILL_LVL);
Announcements.announceToAll("SuperMonster was killed.");
if (REWARD_PARTY)
{
if (player.getParty() != null)
{
for (L2PcInstance members : player.getParty().getPartyMembers())
{
members.sendMessage("Congratulations ! You killed The SuperMonster !");
if (REWARD_ITEMS)
members.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, members, true);
if (REWARD_SKILL)
members.addSkill(skill, true);
if (REWARD_HERO)
{
if (!player.isHero())
addHero(player, REWARD_HERO_DAYS);
else
player.sendMessage("You already Hero.");
}
if (REWARD_NOBLE)
{
if (!members.isNoble())
members.setNoble(true, true);
else
members.sendMessage("You already Noblesse.");
}
members.broadcastUserInfo();
}
}
else
{
player.sendMessage("Congratulations ! You killed The SuperMonster !");
if (REWARD_ITEMS)
player.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, player, true);
if (REWARD_SKILL)
player.addSkill(skill, true);
if (REWARD_HERO)
{
if (!player.isHero())
addHero(player, REWARD_HERO_DAYS);
else
player.sendMessage("You already Hero.");
}
if (REWARD_NOBLE)
{
if (!player.isNoble())
player.setNoble(true, true);
else
player.sendMessage("You already Noblesse.");
}
player.broadcastUserInfo();
}
}
else
{
player.sendMessage("Congratulations ! You killed The SuperMonster !");
if (REWARD_ITEMS)
player.addItem("Add", REWARD_ITEM_ID, REWARD_ITEM_COUNT, player, true);
if (REWARD_SKILL)
player.addSkill(skill, true);
if (REWARD_HERO)
{
if (!player.isHero())
addHero(player, REWARD_HERO_DAYS);
else
player.sendMessage("You already Hero.");
}
if (REWARD_NOBLE)
{
if (!player.isNoble())
player.setNoble(true, true);
else
player.sendMessage("You already Noblesse.");
}
player.broadcastUserInfo();
}
return null;
}
private void addHero(L2PcInstance player, int days)
{
long _heroExpire = 0L;
player.setHero(true);
player.broadcastUserInfo();
if (days == 0)
{
_heroExpire = 3L;
return;
}
_heroExpire = (days == -1 ? 1L : System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days));
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement stm = con.prepareStatement("UPDATE `characters` SET `hero`=? WHERE `obj_Id`=?"))
{
stm.setLong(1, _heroExpire);
stm.setInt(2, player.getObjectId());
stm.execute();
}
catch (SQLException e)
{
_log.warn("[SuperMonster] addHero(days) error: ", e);
}
}
public static void main(String args[])
{
new SuperMonster();
}
}