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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • ‼️Today I want to introduce you to a list of business accounts‼️ ✔Ready accounts✔ UK 🇬🇧 👛Tide (With merchant) 👛Tide (Without merchant) 👛Zempler 👛Mypos + Wise (same name) 👛Gosolo (with merchant) 👛Wittix 👛Stripe 👛Paypal USA 🇺🇸 👛Mercury (LLC) 👛Relay (LLC) 👛Bluevine (LLC) Europe 🇪🇺 👛Finom (Fr iban) + Kraken 👛Qonto + Mollie (With merchant) 👛Payset 👛Vivid 👛Blackcatcard 👛Finom + Bitget 👛Airwallex (With merchant) 👛Viva Wallet 👛Sokin 👛Mistertango 👛Revolut 👛Wittix 👛Wise 👛Stripe 👛Wallester ✔Personal and business accounts of real and neobanks, exchanges, e-sim, the ability to rent a drop and much more awaits their owners.
    • none, they ignoring our messages on discord
    • Congratulations,  You know how to use wayback machine. Here you go guys. DISCLAIMER: It's not virus tested so download with your own responsibility. https://www.mediafire.com/file/8jyynutlq5jwtlo/EuroWorld+Patch+(1).rar/file
    • 🎮 Websites & Webapps for Your Server Hey! I’m the guy behind gh0t.studio. I build websites, dashboards, and tools that actually connect with your game. With more than 40 finished projects and 500k+ page views, I know what private servers need to grow and keep their players engaged. I’ve worked on: 🌐 Server sites & landing pages (like L2Jade, Eteral Conquest) 📊 Event dashboards & rankings (like L2Jade Tournaments or TopGameRankings) 📖 Wikis (like Wiki Lineage) 🎨 UI/Graphic design for in-game elements If you want something different — not just a CTRL+C / CTRL+V CMS template — I’ve got the solution for you. 🚀 📩 Contact me at gh0t.studioarg@gmail.com or visit gh0tstudio.com 👉 If you’re running a server and need someone who gets it, let’s talk.
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock