Jump to content

Question

Posted (edited)

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();
	}
}

 

Edited by MegaCheat

1 answer to this question

Recommended Posts

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Bought the interface source for the 557 protocol from him. Everything works as described, no issues so far. Smooth deal, would recommend.
    • Add try version of protocol 563 https://drive.google.com/file/d/1l1QnyFGXxX_c98FNUgXHFmDsIzZCrVc6/view?usp=drive_link
    • WTS Adena Stock 2.6kkk Titan 78 Sub Sagitarius 76 nobless Hirophant 78 Sub Cardinal 78 nobless   discord : nhr0711
    • We are not another "open-close" project. LOE is a long-term Essence server that has been live for over a year — NewAge x2 is our brand-new world, and it will never be wiped. 🗺 STAGED WORLD PROGRESSION Here is what kills most servers: no-lifers hit the cap in three days, everyone else logs in to a finished race. On LOE the world unlocks stage by stage, every ~2 weeks — new locations, new bosses, new gear ceiling. The server grows as one. Start on day one or day ten — you are still in the race. ✨ WHAT MAKES US DIFFERENT Subclass system on Essence — a full dedicated questline, unique for this platform. Your build, your rules. Talent system — three branches: tank, damage, farm. Two players, same class, different characters. Hero skills and deep character customization. Fair progression — power comes from playing, not from a credit card. x2 rates — the classic Essence pace without the grind wall. 📚 WE DOCUMENTED EVERYTHING 25,000+ items, every class with full skill tables, monsters, drop rates, quests, locations. Check the server before you even download it: loe.promo/wiki — no other project gives you this. 📋 SERVER INFO Platform: Lineage 2 Essence · Rates: x2 Open Beta: July 24 — test the stages and the subclass questline before launch Grand Opening: July 31, 20:00 GMT+3 Site & wiki in English — international players welcome 🔒 YOUR NICKNAME IS BEING TAKEN RIGHT NOW Reservation is already open. On the 31st the crowd arrives — the name you have carried through every server for years may simply be gone. Lock it in 30 seconds: Equal start for everyone. See you in Elcardia — July 31, 20:00 GMT+3. Questions? Drop them below — the team reads this thread daily.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..