Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Nevit System

Iniciado por Swarlog, Ago 03, 2025, 12:27 AM

Tema anterior - Siguiente tema

Swarlog

### Eclipse Workspace Patch 1.0
#P L2J_Server_BETA
Index: java/com/l2jserver/gameserver/network/serverpackets/ExNevitAdventTimeChange.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/ExNevitAdventTimeChange.java	(revision 6625)
+++ java/com/l2jserver/gameserver/network/serverpackets/ExNevitAdventTimeChange.java	(working copy)
@@ -26,10 +26,10 @@
 	private final boolean _paused;
 	private final int _time;
 	
-	public ExNevitAdventTimeChange(int time)
+	public ExNevitAdventTimeChange(int time, boolean paused)
 	{
-		_time = time > 240000 ? 240000 : time;
-		_paused = _time < 1;
+		_time = (time > 14400) ? 14400 : time;
+		_paused = paused;
 	}
 	
 	@Override
Index: java/com/l2jserver/gameserver/network/SystemMessageId.java
===================================================================
--- java/com/l2jserver/gameserver/network/SystemMessageId.java	(revision 6625)
+++ java/com/l2jserver/gameserver/network/SystemMessageId.java	(working copy)
@@ -15189,6 +15189,30 @@
 	public static final SystemMessageId YOU_HAVE_S1_MATCHES_REMAINING_THAT_YOU_CAN_PARTECIPATE_IN_THIS_WEEK_S2_CLASSED_S3_NON_CLASSED_S4_TEAM;
 	
 	/**
+	 * The angel Nevit has blessed you from above. You are imbued with full Vitality as well as a Vitality Replenishing effect. And should you die, you will not lose Exp! Nevit's Advent Blessing is Upon You!
+	 */
+	public static final SystemMessageId THE_ANGEL_NEVIT_HAS_BLESSED_YOU_FROM_ABOVE;
+	/**
+	 * You are starting to feel the effects of Nevit's Advent Blessing.
+	 */
+	public static final SystemMessageId YOU_ARE_STARTING_TO_FEEL_THE_EFFECTS_OF_NEVITS_ADVENT_BLESSING;
+	
+	/**
+	 * You are further infused with the blessings of Nevit! Continue to battle evil wherever it may lurk.
+	 */
+	public static final SystemMessageId YOU_ARE_FURTHER_INFUSED_WITH_THE_BLESSINGS_OF_NEVIT;
+	
+	/**
+	 * Nevit's Advent Blessing shines strongly from above. You can almost see his divine aura.
+	 */
+	public static final SystemMessageId NEVITS_ADVENT_BLESSING_SHINES_STRONGLY_FROM_ABOVE;
+	
+	/**
+	 * Nevit's Advent Blessing has ended. Continue your journey and you will surely meet his favor again sometime soon.
+	 */
+	public static final SystemMessageId NEVITS_ADVENT_BLESSING_HAS_ENDED;
+	
+	/**
 	 * ID: 6004<br>
 	 * Message: Enchant failed. The enchant level for the corresponding item will be exactly retained.
 	 */
@@ -17738,6 +17762,11 @@
 		MP_BECAME_0_ARCANE_SHIELD_DISAPPEARING = new SystemMessageId(3256);
 		CANNOT_USE_SKILL_WITHOUT_SERVITOR = new SystemMessageId(3260);
 		YOU_HAVE_S1_MATCHES_REMAINING_THAT_YOU_CAN_PARTECIPATE_IN_THIS_WEEK_S2_CLASSED_S3_NON_CLASSED_S4_TEAM = new SystemMessageId(3261);
+		THE_ANGEL_NEVIT_HAS_BLESSED_YOU_FROM_ABOVE = new SystemMessageId(3266);
+		YOU_ARE_STARTING_TO_FEEL_THE_EFFECTS_OF_NEVITS_ADVENT_BLESSING = new SystemMessageId(3267);
+		YOU_ARE_FURTHER_INFUSED_WITH_THE_BLESSINGS_OF_NEVIT = new SystemMessageId(3268);
+		NEVITS_ADVENT_BLESSING_SHINES_STRONGLY_FROM_ABOVE = new SystemMessageId(3269);
+		NEVITS_ADVENT_BLESSING_HAS_ENDED = new SystemMessageId(3275);
 		SAFE_ENCHANT_FAILED = new SystemMessageId(6004);
 		YOU_CANNOT_BOOKMARK_THIS_LOCATION_BECAUSE_YOU_DO_NOT_HAVE_A_MY_TELEPORT_FLAG = new SystemMessageId(6501);
 		THOMAS_D_TURKEY_APPEARED = new SystemMessageId(6503);
Index: java/com/l2jserver/gameserver/model/entity/NevitSystem.java
===================================================================
--- java/com/l2jserver/gameserver/model/entity/NevitSystem.java	(revision 0)
+++ java/com/l2jserver/gameserver/model/entity/NevitSystem.java	(working copy)
@@ -0,0 +1,301 @@
+/*
+ * Copyright (C) 2004-2014 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server 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.
+ * 
+ * L2J Server 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.l2jserver.gameserver.model.entity;
+
+import java.util.Calendar;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.events.EventType;
+import com.l2jserver.gameserver.model.events.annotations.RegisterEvent;
+import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLogin;
+import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLogout;
+import com.l2jserver.gameserver.model.events.listeners.ConsumerEventListener;
+import com.l2jserver.gameserver.model.interfaces.IUniqueId;
+import com.l2jserver.gameserver.model.skills.AbnormalVisualEffect;
+import com.l2jserver.gameserver.network.SystemMessageId;
+import com.l2jserver.gameserver.network.serverpackets.ExNevitAdventEffect;
+import com.l2jserver.gameserver.network.serverpackets.ExNevitAdventPointInfoPacket;
+import com.l2jserver.gameserver.network.serverpackets.ExNevitAdventTimeChange;
+
+/**
+ * Nevit's Blessing handler.
+ * @author Janiko
+ */
+public class NevitSystem implements IUniqueId
+{
+	// Timers
+	private static final int MAX_POINTS = 7200;
+	private static final int BONUS_EFFECT_TIME = 180;
+	
+	// Nevit Hour
+	private static final int ADVENT_TIME = 14400;
+	public final L2PcInstance _player;
+	
+	private volatile ScheduledFuture<?> _adventTask;
+	private volatile ScheduledFuture<?> _nevitEffectTask;
+	
+	public NevitSystem(L2PcInstance player)
+	{
+		_player = player;
+		
+		player.addListener(new ConsumerEventListener(player, EventType.ON_PLAYER_LOGIN, (OnPlayerLogin event) -> onPlayerLogin(event), this));
+		player.addListener(new ConsumerEventListener(player, EventType.ON_PLAYER_LOGOUT, (OnPlayerLogout event) -> OnPlayerLogout(event), this));
+	}
+	
+	@RegisterEvent(EventType.ON_PLAYER_LOGIN)
+	private void onPlayerLogin(OnPlayerLogin event)
+	{
+		final Calendar cal = Calendar.getInstance();
+		cal.set(Calendar.HOUR_OF_DAY, 6);
+		cal.set(Calendar.MINUTE, 30);
+		cal.set(Calendar.SECOND, 0);
+		cal.set(Calendar.MILLISECOND, 0);
+		
+		// Reset Nevit's Blessing
+		if ((_player.getLastAccess() < (cal.getTimeInMillis() / 1000L)) && (System.currentTimeMillis() > cal.getTimeInMillis()))
+		{
+			_player.getVariables().set("hunting_time", 0);
+		}
+		
+		// Send Packets
+		_player.sendPacket(new ExNevitAdventPointInfoPacket(getAdventPoints()));
+		_player.sendPacket(new ExNevitAdventTimeChange(getAdventTime(), true));
+		
+		startNevitEffect(_player.getVariables().getInt("nevit_b", 0));
+		
+		// Set percent
+		int percent = calcPercent(_player.getVariables().getInt("hunting_points", 0));
+		
+		if ((percent >= 45) && (percent < 50))
+		{
+			_player.sendPacket(SystemMessageId.YOU_ARE_STARTING_TO_FEEL_THE_EFFECTS_OF_NEVITS_ADVENT_BLESSING);
+		}
+		else if ((percent >= 50) && (percent < 75))
+		{
+			_player.sendPacket(SystemMessageId.YOU_ARE_FURTHER_INFUSED_WITH_THE_BLESSINGS_OF_NEVIT);
+		}
+		else if (percent >= 75)
+		{
+			_player.sendPacket(SystemMessageId.NEVITS_ADVENT_BLESSING_SHINES_STRONGLY_FROM_ABOVE);
+		}
+	}
+	
+	@RegisterEvent(EventType.ON_PLAYER_LOGOUT)
+	private void OnPlayerLogout(OnPlayerLogout event)
+	{
+		stopNevitEffectTask(true);
+		stopAdventTask(false);
+	}
+	
+	public void addPoints(int val)
+	{
+		if (getEffectTime() > 0)
+		{
+			setAdventPoints(0);
+		}
+		else
+		{
+			setAdventPoints(getAdventPoints() + val);
+		}
+		
+		if (getAdventPoints() > MAX_POINTS)
+		{
+			setAdventPoints(0);
+			startNevitEffect(BONUS_EFFECT_TIME);
+		}
+		
+		int percent = calcPercent(getAdventPoints());
+		switch (percent)
+		{
+			case 45:
+			{
+				getPlayer().sendPacket(SystemMessageId.YOU_ARE_STARTING_TO_FEEL_THE_EFFECTS_OF_NEVITS_ADVENT_BLESSING);
+				break;
+			}
+			case 50:
+			{
+				getPlayer().sendPacket(SystemMessageId.YOU_ARE_FURTHER_INFUSED_WITH_THE_BLESSINGS_OF_NEVIT);
+				break;
+			}
+			case 75:
+			{
+				getPlayer().sendPacket(SystemMessageId.NEVITS_ADVENT_BLESSING_SHINES_STRONGLY_FROM_ABOVE);
+				break;
+			}
+		}
+		
+		getPlayer().sendPacket(new ExNevitAdventPointInfoPacket(getAdventPoints()));
+	}
+	
+	public void startAdventTask()
+	{
+		if (_adventTask == null)
+		{
+			synchronized (this)
+			{
+				if ((_adventTask == null) && (getAdventTime() < ADVENT_TIME))
+				{
+					_adventTask = ThreadPoolManager.getInstance().scheduleGeneral(new AdventTask(), 30000);
+					getPlayer().sendPacket(new ExNevitAdventTimeChange(getAdventTime(), false));
+				}
+			}
+		}
+	}
+	
+	public class AdventTask implements Runnable
+	{
+		@Override
+		public void run()
+		{
+			setAdventTime(getAdventTime() + 30);
+			if (getAdventTime() >= ADVENT_TIME)
+			{
+				setAdventTime(ADVENT_TIME);
+				stopAdventTask(true);
+			}
+			else
+			{
+				addPoints(72);
+				if ((getAdventTime() % 60) == 0)
+				{
+					getPlayer().sendPacket(new ExNevitAdventTimeChange(getAdventTime(), false));
+				}
+			}
+			stopAdventTask(false);
+		}
+	}
+	
+	public synchronized void stopAdventTask(boolean sendPacket)
+	{
+		if (_adventTask != null)
+		{
+			_adventTask.cancel(true);
+			_adventTask = null;
+		}
+		if (sendPacket)
+		{
+			getPlayer().sendPacket(new ExNevitAdventTimeChange(getAdventTime(), true));
+		}
+	}
+	
+	public synchronized void startNevitEffect(int time)
+	{
+		if (getEffectTime() > 0)
+		{
+			stopNevitEffectTask(false);
+			time += getEffectTime();
+		}
+		if ((getAdventTime() < ADVENT_TIME) && (time > 0))
+		{
+			getPlayer().getVariables().set("nevit_b", time);
+			getPlayer().sendPacket(new ExNevitAdventEffect(time));
+			getPlayer().sendPacket(SystemMessageId.THE_ANGEL_NEVIT_HAS_BLESSED_YOU_FROM_ABOVE);
+			getPlayer().startAbnormalVisualEffect(true, AbnormalVisualEffect.NAVIT_ADVENT);
+			_nevitEffectTask = ThreadPoolManager.getInstance().scheduleGeneral(new NevitEffectEnd(), time * 1000L);
+		}
+	}
+	
+	public class NevitEffectEnd implements Runnable
+	{
+		@Override
+		public void run()
+		{
+			getPlayer().getVariables().remove("nevit_b");
+			getPlayer().sendPacket(new ExNevitAdventEffect(0));
+			getPlayer().sendPacket(new ExNevitAdventPointInfoPacket(getAdventPoints()));
+			getPlayer().sendPacket(SystemMessageId.NEVITS_ADVENT_BLESSING_HAS_ENDED);
+			getPlayer().stopAbnormalVisualEffect(true, AbnormalVisualEffect.NAVIT_ADVENT);
+			stopNevitEffectTask(false);
+		}
+	}
+	
+	public synchronized void stopNevitEffectTask(boolean saveTime)
+	{
+		if (_nevitEffectTask != null)
+		{
+			if (saveTime)
+			{
+				int time = getEffectTime();
+				if (time > 0)
+				{
+					getPlayer().getVariables().set("nevit_b", time);
+				}
+				else
+				{
+					getPlayer().getVariables().remove("nevit_b");
+				}
+			}
+			_nevitEffectTask.cancel(true);
+			_nevitEffectTask = null;
+		}
+	}
+	
+	public L2PcInstance getPlayer()
+	{
+		return _player;
+	}
+	
+	@Override
+	public int getObjectId()
+	{
+		return _player.getObjectId();
+	}
+	
+	private int getEffectTime()
+	{
+		if (_nevitEffectTask == null)
+		{
+			return 0;
+		}
+		return (int) Math.max(0, _nevitEffectTask.getDelay(TimeUnit.SECONDS));
+	}
+	
+	public boolean isAdventBlessingActive()
+	{
+		return ((_nevitEffectTask != null) && (_nevitEffectTask.getDelay(TimeUnit.MILLISECONDS) > 0));
+	}
+	
+	public static int calcPercent(int points)
+	{
+		return (int) ((100.0D / MAX_POINTS) * points);
+	}
+	
+	public void setAdventPoints(int points)
+	{
+		getPlayer().getVariables().set("hunting_points", points);
+	}
+	
+	public void setAdventTime(int time)
+	{
+		getPlayer().getVariables().set("hunting_time", time);
+	}
+	
+	public int getAdventPoints()
+	{
+		return getPlayer().getVariables().getInt("hunting_points", 0);
+	}
+	
+	public int getAdventTime()
+	{
+		return getPlayer().getVariables().getInt("hunting_time", 0);
+	}
+}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 6625)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -198,6 +198,7 @@
 import com.l2jserver.gameserver.model.entity.Hero;
 import com.l2jserver.gameserver.model.entity.Instance;
 import com.l2jserver.gameserver.model.entity.L2Event;
+import com.l2jserver.gameserver.model.entity.NevitSystem;
 import com.l2jserver.gameserver.model.entity.Siege;
 import com.l2jserver.gameserver.model.entity.TvTEvent;
 import com.l2jserver.gameserver.model.events.EventDispatcher;
@@ -5380,7 +5381,7 @@
 					if (Config.ALT_GAME_DELEVEL)
 					{
 						// If player is Lucky shouldn't get penalized.
-						if (!isLucky())
+						if (!isLucky() && !getNevitSystem().isAdventBlessingActive())
 						{
 							// Reduce the Experience of the L2PcInstance in function of the calculated Death Penalty
 							// NOTE: deathPenalty +- Exp will update karma
@@ -5820,6 +5821,11 @@
 			}
 		}
 		
+		if (getNevitSystem().isAdventBlessingActive())
+		{
+			lostExp = 0;
+		}
+		
 		// Set the new Experience value of the L2PcInstance
 		getStat().addExp(-lostExp);
 	}
@@ -14485,4 +14491,12 @@
 	{
 		return (_actionMask & act.getMask()) == act.getMask();
 	}
+	
+	// High Five: Nevit's Bonus System
+	private final NevitSystem _nevitSystem = new NevitSystem(this);
+	
+	public NevitSystem getNevitSystem()
+	{
+		return _nevitSystem;
+	}
 }
\ No newline at end of file
Index: java/com/l2jserver/gameserver/taskmanager/tasks/TaskNevit.java
===================================================================
--- java/com/l2jserver/gameserver/taskmanager/tasks/TaskNevit.java	(revision 0)
+++ java/com/l2jserver/gameserver/taskmanager/tasks/TaskNevit.java	(working copy)
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2004-2014 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server 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.
+ * 
+ * L2J Server 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.l2jserver.gameserver.taskmanager.tasks;
+
+import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.serverpackets.ExNevitAdventTimeChange;
+import com.l2jserver.gameserver.taskmanager.Task;
+import com.l2jserver.gameserver.taskmanager.TaskManager;
+import com.l2jserver.gameserver.taskmanager.TaskManager.ExecutedTask;
+import com.l2jserver.gameserver.taskmanager.TaskTypes;
+
+/**
+ * @author Janiko
+ */
+public class TaskNevit extends Task
+{
+	private static final String NAME = "nevit_system";
+	
+	@Override
+	public String getName()
+	{
+		return NAME;
+	}
+	
+	@Override
+	public void onTimeElapsed(ExecutedTask task)
+	{
+		for (L2PcInstance player : L2World.getInstance().getPlayers())
+		{
+			if ((player == null) || !player.isOnline())
+			{
+				continue;
+			}
+			
+			player.getVariables().set("hunting_time", 0);
+			player.sendPacket(new ExNevitAdventTimeChange(0, true));
+		}
+		_log.info("Nevit system reseted.");
+	}
+	
+	@Override
+	public void initializate()
+	{
+		super.initializate();
+		TaskManager.addUniqueTask(NAME, TaskTypes.TYPE_GLOBAL_TASK, "1", "06:30:00", "");
+	}
+}
Index: java/com/l2jserver/gameserver/model/actor/stat/PcStat.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/stat/PcStat.java	(revision 6625)
+++ java/com/l2jserver/gameserver/model/actor/stat/PcStat.java	(working copy)
@@ -136,6 +136,11 @@
 			bonusSp = getSpBonusMultiplier();
 		}
 		
+		if ((addToExp > 0) && !activeChar.isInsideZone(ZoneId.PEACE))
+		{
+			activeChar.getNevitSystem().startAdventTask();
+		}
+		
 		addToExp *= bonusExp;
 		addToSp *= bonusSp;
 		
@@ -320,6 +325,8 @@
 		getActiveChar().sendPacket(new UserInfo(getActiveChar()));
 		getActiveChar().sendPacket(new ExBrExtraUserInfo(getActiveChar()));
 		getActiveChar().sendPacket(new ExVoteSystemInfo(getActiveChar()));
+		// Nevit Points For Level
+		getActiveChar().getNevitSystem().addPoints(2000);
 		
 		return levelIncreased;
 	}
@@ -742,6 +749,11 @@
 			{
 				int stat = (int) calcStat(Stats.VITALITY_CONSUME_RATE, 1, getActiveChar(), null);
 				
+				if (getActiveChar().getNevitSystem().isAdventBlessingActive())
+				{
+					stat = -10; // increase Vitality During Blessing
+				}
+				
 				if (stat == 0)
 				{
 					return;
@@ -813,6 +825,10 @@
 	 */
 	public byte getVitalityLevel()
 	{
+		if (getActiveChar().getNevitSystem().isAdventBlessingActive())
+		{
+			return 4;
+		}
 		return _vitalityLevel;
 	}
 	
Index: java/com/l2jserver/gameserver/taskmanager/TaskManager.java
===================================================================
--- java/com/l2jserver/gameserver/taskmanager/TaskManager.java	(revision 6625)
+++ java/com/l2jserver/gameserver/taskmanager/TaskManager.java	(working copy)
@@ -46,6 +46,7 @@
 import com.l2jserver.gameserver.taskmanager.tasks.TaskDailySkillReuseClean;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskGlobalVariablesSave;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskJython;
+import com.l2jserver.gameserver.taskmanager.tasks.TaskNevit;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskOlympiadSave;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskRaidPointsReset;
 import com.l2jserver.gameserver.taskmanager.tasks.TaskRecom;
@@ -192,6 +193,7 @@
 		registerTask(new TaskDailySkillReuseClean());
 		registerTask(new TaskGlobalVariablesSave());
 		registerTask(new TaskJython());
+		registerTask(new TaskNevit());
 		registerTask(new TaskOlympiadSave());
 		registerTask(new TaskRaidPointsReset());
 		registerTask(new TaskRecom());
Index: java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java	(revision 6625)
+++ java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java	(working copy)
@@ -68,8 +68,6 @@
 import com.l2jserver.gameserver.network.serverpackets.EtcStatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.ExBasicActionList;
 import com.l2jserver.gameserver.network.serverpackets.ExGetBookMarkInfoPacket;
-import com.l2jserver.gameserver.network.serverpackets.ExNevitAdventPointInfoPacket;
-import com.l2jserver.gameserver.network.serverpackets.ExNevitAdventTimeChange;
 import com.l2jserver.gameserver.network.serverpackets.ExNoticePostArrived;
 import com.l2jserver.gameserver.network.serverpackets.ExNotifyPremiumItem;
 import com.l2jserver.gameserver.network.serverpackets.ExShowContactList;
@@ -488,8 +486,6 @@
 		
 		sendPacket(new SkillCoolTime(activeChar));
 		sendPacket(new ExVoteSystemInfo(activeChar));
-		sendPacket(new ExNevitAdventPointInfoPacket(0));
-		sendPacket(new ExNevitAdventTimeChange(-1)); // only set pause state...
 		sendPacket(new ExShowContactList(activeChar));
 		
 		for (L2ItemInstance i : activeChar.getInventory().getItems())
Index: java/com/l2jserver/gameserver/model/zone/type/L2PeaceZone.java
===================================================================
--- java/com/l2jserver/gameserver/model/zone/type/L2PeaceZone.java	(revision 6625)
+++ java/com/l2jserver/gameserver/model/zone/type/L2PeaceZone.java	(working copy)
@@ -53,6 +53,9 @@
 			{
 				return;
 			}
+			
+			/* Nevit Turn Off on Peace Zone */
+			player.getNevitSystem().stopAdventTask(true);
 		}
 		
 		if (Config.PEACE_ZONE_MODE != 2)