Jump to content
  • 0

PvP zone H5


maxicroma

Question

Hi im using L2Mythras files h5,i want to make a custom instant flag zone (you will be flagged all the time inside that zone).

Its possible to made it ?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
3 minutes ago, maxicroma said:

Hi im using L2Mythras files h5,i want to make a custom instant flag zone (you will be flagged all the time inside that zone).

Its possible to made it ?

In L2PcInstance there is a PvPFlag Runnable. Search it and modify it in case of inside that zone never stopPvPFlag();

Link to comment
Share on other sites

  • 0

i found some crap inside the sources this thing called pvpzone.java 

package zones;

import java.util.concurrent.ScheduledFuture;

import l2f.commons.threading.RunnableImpl;
import l2f.gameserver.ThreadPoolManager;
import l2f.gameserver.listener.zone.OnZoneEnterLeaveListener;
import l2f.gameserver.model.Creature;
import l2f.gameserver.model.Player;
import l2f.gameserver.model.Zone;
import l2f.gameserver.scripts.ScriptFile;
import l2f.gameserver.utils.ReflectionUtils;

/**
 * @author L2Mythras
 */

public class PvPZone implements ScriptFile
{
	private static ZoneListener _zoneListener;

	@Override
	public void onLoad()
	{
		_zoneListener = new ZoneListener();
		Zone zone = ReflectionUtils.getZone("[pvp_zone_toi]");
		zone.addListener(_zoneListener);
	}

	@Override
	public void onReload()
	{
		 on reload
	}

	@Override
	public void onShutdown()
	{
		 on shutdown
	}

	public class ZoneListener implements OnZoneEnterLeaveListener
	{
		@Override
		public void onZoneEnter(Zone zone, Creature cha)
		{
			ScheduledFuture<?> _checkTask = null;
			if (zone.getParams() == null || !cha.isPlayable()) 
				return;
			
			if (!cha.isPlayer()) 
				return;

			cha.getPlayer().sendMessage("You have entered in a PvP Zone!");
			cha.startPvPFlag(null);
			cha.getPlayer().sendMessage("You are now flagged!");

			_checkTask = ThreadPoolManager.getInstance().scheduleAtFixedRate(new checkZone((Player)cha, zone, _checkTask), 60000, 60000);
		}

		
		public class checkZone extends RunnableImpl
		{
			Player _cha;
			Zone _zone;
			ScheduledFuture<?> _checkTask;
			
			public checkZone(Player cha, Zone zone, ScheduledFuture<?> checkTask)
			{
				_cha = cha;
				_zone = zone;
				_checkTask = checkTask;
			}

			@Override
			public void runImpl() throws Exception
			{
				if(_cha.isInZone(_zone))
				{
					_cha.startPvPFlag(null);
				}
				else
				{
					_checkTask.cancel(true);
					_checkTask = null;
				}
			}
			
		}
		
		@Override
		public void onZoneLeave(Zone zone, Creature cha)
		{
			if (cha == null) 
				return;
			cha.getPlayer().sendMessage("You have left the PvP Zone !");
			cha.getPlayer().stopPvPFlag();
		}

	}
}

 

Link to comment
Share on other sites

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.



×
×
  • Create New...