Jump to content
  • 0

Java Help


Question

Posted (edited)

Hello guys i have this code:

### Eclipse Workspace Patch 1.0
#P L2jHellasC
Index: java/com/l2jhellas/gameserver/model/zone/type/L2FlagZone.java
===================================================================
--- java/com/l2jhellas/gameserver/model/zone/type/L2FlagZone.java	(revision 0)
+++ java/com/l2jhellas/gameserver/model/zone/type/L2FlagZone.java	(working copy)
@@ -0,0 +1,186 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jhellas.gameserver.model.zone.type;
+
+import java.util.concurrent.Future;
+
+import com.l2jhellas.gameserver.ThreadPoolManager;
+import com.l2jhellas.gameserver.model.L2Character;
+import com.l2jhellas.gameserver.model.L2Skill;
+import com.l2jhellas.gameserver.model.actor.instance.L2MonsterInstance;
+import com.l2jhellas.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jhellas.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jhellas.gameserver.model.zone.L2ZoneType;
+import com.l2jhellas.gameserver.skills.SkillTable;
+import com.l2jhellas.util.Rnd;
+
+public class L2FlagZone extends L2ZoneType
+{
+	private int _skillId;
+	private int _chance;
+	private int _initialDelay;
+	private int _skillLvl;
+	private int _reuse;
+	private boolean _enabled;
+	private String _target;
+	private Future<?> _task;
+
+	public L2FlagZone(int id)
+	{
+		super(id);
+		_skillId = 1323;
+		_skillLvl = 1;
+		_chance = 100;
+		_initialDelay = 0;
+		_reuse = 30000;
+		_enabled = true;
+		_target = "pc";
+	}
+
+	@Override
+	public void setParameter(String name, String value)
+	{
+		if (name.equals("skillId"))
+		{
+			_skillId = Integer.parseInt(value);
+		}
+		else if (name.equals("skillLvl"))
+		{
+			_skillLvl = Integer.parseInt(value);
+		}
+		else if (name.equals("chance"))
+		{
+			_chance = Integer.parseInt(value);
+		}
+		else if (name.equals("initialDelay"))
+		{
+			_initialDelay = Integer.parseInt(value);
+		}
+		else if (name.equals("default_enabled"))
+		{
+			_enabled = Boolean.parseBoolean(value);
+		}
+		else if (name.equals("target"))
+		{
+			_target = String.valueOf(value);
+		}
+		else if (name.equals("reuse"))
+		{
+			_reuse = Integer.parseInt(value);
+		}
+		else
+		{
+			super.setParameter(name, value);
+		}
+	}
+
+	@Override
+	protected void onEnter(L2Character character)
+	{
+		if (character instanceof L2PcInstance)
+		{
+			L2PcInstance player = (L2PcInstance) character;
+			player.setPvpFlag(1);
+			player.sendMessage("You entered a Pvp Flag zone.");
+			player.broadcastUserInfo();
+			if ((character instanceof L2PlayableInstance && _target.equalsIgnoreCase("pc") || character instanceof L2PcInstance && _target.equalsIgnoreCase("pc_only") || character instanceof L2MonsterInstance && _target.equalsIgnoreCase("npc")) && _task == null)
+			{
+				_task = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new ApplySkill(/* this */), _initialDelay, _reuse);
+			}
+		}
+	}
+
+	@Override
+	protected void onExit(L2Character character)
+	{
+		if (character instanceof L2PcInstance)
+		{
+			L2PcInstance player = (L2PcInstance) character;
+			player.setPvpFlag(0);
+			player.sendMessage("You left the Pvp Flag zone.");
+			player.broadcastUserInfo();
+		}
+		if (_characterList.isEmpty() && _task != null)
+		{
+			_task.cancel(true);
+			_task = null;
+		}
+	}
+
+	public L2Skill getSkill()
+	{
+		return SkillTable.getInstance().getInfo(_skillId, _skillLvl);
+	}
+
+	public String getTargetType()
+	{
+		return _target;
+	}
+
+	public boolean isEnabled()
+	{
+		return _enabled;
+	}
+
+	public int getChance()
+	{
+		return _chance;
+	}
+
+	public void setZoneEnabled(boolean val)
+	{
+		_enabled = val;
+	}
+
+	class ApplySkill implements Runnable
+	{
+		@Override
+		public void run()
+		{
+			if (isEnabled())
+			{
+				for (L2Character temp : _characterList.values())
+				{
+					if (temp != null && !temp.isDead())
+					{
+						if ((temp instanceof L2PlayableInstance && getTargetType().equalsIgnoreCase("pc") || temp instanceof L2PcInstance && getTargetType().equalsIgnoreCase("pc_only") || temp instanceof L2MonsterInstance && getTargetType().equalsIgnoreCase("npc")) && Rnd.get(100) < getChance())
+						{
+							L2Skill skill = null;
+							if ((skill = getSkill()) == null)
+							{
+								System.out.println("ATTENTION: error on zone with id " + getId());
+								System.out.println("Skill " + _skillId + "," + _skillLvl + " not present between skills");
+							}
+							else
+								skill.getEffects(temp, temp);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	@Override
+	public void onDieInside(L2Character character)
+	{
+
+	}
+
+	@Override
+	public void onReviveInside(L2Character character)
+	{
+		onEnter(character);
+	}
+}
\ No newline at end of file
Index: java/com/l2jhellas/gameserver/datatables/xml/ZoneData.java
===================================================================
--- java/com/l2jhellas/gameserver/datatables/xml/ZoneData.java	(revision 200)
+++ java/com/l2jhellas/gameserver/datatables/xml/ZoneData.java	(working copy)
@@ -49,6 +49,7 @@
 import com.l2jhellas.gameserver.model.zone.type.L2DamageZone;
 import com.l2jhellas.gameserver.model.zone.type.L2DerbyTrackZone;
 import com.l2jhellas.gameserver.model.zone.type.L2FishingZone;
+import com.l2jhellas.gameserver.model.zone.type.L2FlagZone;
 import com.l2jhellas.gameserver.model.zone.type.L2JailZone;
 import com.l2jhellas.gameserver.model.zone.type.L2MotherTreeZone;
 import com.l2jhellas.gameserver.model.zone.type.L2NoLandingZone;
@@ -154,6 +155,8 @@
 								temp = new L2JailZone(zoneId);
 							else if (zoneType.equals("DerbyTrackZone"))
 								temp = new L2DerbyTrackZone(zoneId);
+							else if (zoneType.equals("FlagZone"))
+								temp = new L2FlagZone(zoneId);
 
 							// Check for unknown type
 							if (temp == null)

which is FlagZone code.

i use l2jhellas and when  create a new zone type FlagZone.java and import the code inside, i get the following errors:

The import com.l2jhellas.gameserver.model.L2Character; cannot be resolved

The import com.l2jhellas.gameserver.model.actor.instance.L2PlayableInstance; cannot be resolved

The type L2FlagZone must implement the inherited abstract method L2ZoneType.onExit(L2Character)

L2Character cannot be resolved to a type

L2PlayableInstance cannot be resolved to a type

can any1 help me to add it to my pack successfully please?

Edited by Rio

3 answers 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.



×
×
  • Create New...