Jump to content

[Share] Lock players, disable them from exchanging items (all ways included).


Recommended Posts

Posted

Hello guys, this is another small share of mine, some of you might find it pretty handy. Well the truth is i coded this one long ago and i don't need it any longer. So while i was removing that from my source, i thought why not to share it with you?

 

What is this actually doing? You can lock a character and he won't be able to trade his items, all the ways are blocked, he can't even get pk and even if he does he won't drop any item. To sum up, he can't drop / request - answer a trade / get karma / set a private store / deposit items at wh (including freight). The character is being saved at the db as locked, so at each login or server restart you won't have to do it again.

 

You can set a player as locked by targeting the player and typing //lock and unlock him by typing //unlock (so obvious xd)

 

CORE PART:

Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/TradeRequest.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/TradeRequest.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/TradeRequest.java	(working copy)
@@ -53,9 +53,9 @@
		if (player == null)
			return;

-		if (!player.getAccessLevel().allowTransaction())
+		if (!player.getAccessLevel().allowTransaction() || player.isLocked())
		{
-			player.sendMessage("Transactions are disable for your Access Level");
+			player.sendMessage("Your character is locked. Transactions are disabled.");
			sendPacket(ActionFailed.STATIC_PACKET);
			return;
		}
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AddTradeItem.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AddTradeItem.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AddTradeItem.java	(working copy)
@@ -82,9 +82,9 @@
			return;
		}

-		if (!player.getAccessLevel().allowTransaction())
+		if (!player.getAccessLevel().allowTransaction() || player.isLocked())
		{
-			player.sendMessage("Transactions are disable for your Access Level");
+			player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
			player.cancelActiveTrade();
			return;
		}
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListBuy.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListBuy.java	(working copy)
@@ -89,9 +89,9 @@
			return;
		}

-		if (!player.getAccessLevel().allowTransaction())
+		if (!player.getAccessLevel().allowTransaction() || player.isLocked())
		{
-			player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
+			player.sendMessage("Your character is locked. Transactions are disabled.");
			return;
		}

Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestPrivateStoreSell.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestPrivateStoreSell.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestPrivateStoreSell.java	(working copy)
@@ -110,9 +110,9 @@
		if (storeList == null)
			return;

-		if (!player.getAccessLevel().allowTransaction())
+		if (!player.getAccessLevel().allowTransaction() || player.isLocked())
		{
-			player.sendMessage("Transactions are disable for your Access Level");
+			player.sendMessage("Your character is locked. Transactions are disabled.");
			sendPacket(ActionFailed.STATIC_PACKET);
			return;
		}
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestDropItem.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestDropItem.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestDropItem.java	(working copy)
@@ -112,9 +112,9 @@
			return;			
		}

-		if (!activeChar.getAccessLevel().allowTransaction())
+		if (!activeChar.getAccessLevel().allowTransaction() || activeChar.isLocked())
		{
-			activeChar.sendMessage("Transactions are disable for your Access Level");
+            activeChar.sendMessage("Your character is locked. Transactions are disabled.");
			activeChar.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED));
			return;
		}
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestGiveItemToPet.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestGiveItemToPet.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestGiveItemToPet.java	(working copy)
@@ -58,6 +58,12 @@
			player.sendMessage("You give items to pet too fast.");
			return;
		}
+		
+		if (player.isLocked())
+		{
+			player.sendMessage("Your character is locked. Transactions are disabled.");
+			return;
+		}

		if (player.getActiveEnchantItem() != null)
        	return;
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/TradeDone.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/TradeDone.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/TradeDone.java	(working copy)
@@ -77,10 +77,10 @@
			if (trade.getOwner().getActiveEnchantItem() != null || trade.getPartner().getActiveEnchantItem() != null)
				return;

-			if (!player.getAccessLevel().allowTransaction())
+			if (!player.getAccessLevel().allowTransaction() || player.isLocked())
			{
				player.cancelActiveTrade();
-				player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
+				player.sendMessage("Your character is locked. Transactions are disabled.");
				return;
			}

Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SendWareHouseDepositList.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SendWareHouseDepositList.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SendWareHouseDepositList.java	(working copy)
@@ -100,9 +100,9 @@
				|| !manager.canInteract(player)) && !player.isGM())
			return;

-		if (!isPrivate && !player.getAccessLevel().allowTransaction())
+		if (!isPrivate && !player.getAccessLevel().allowTransaction() || player.isLocked())
		{
-			player.sendMessage("Transactions are disable for your Access Level");
+			player.sendMessage("Your character is locked. Transactions are disabled.");
			return;
		}

Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AnswerTradeRequest.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AnswerTradeRequest.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AnswerTradeRequest.java	(working copy)
@@ -46,7 +46,7 @@
		if (player == null)
			return;

-		if (!player.getAccessLevel().allowTransaction())
+		if (!player.getAccessLevel().allowTransaction() || player.isLocked())
		{
			player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
			sendPacket(ActionFailed.STATIC_PACKET);
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListSell.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListSell.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreListSell.java	(working copy)
@@ -84,9 +84,9 @@
			return;
		}

-		if (!player.getAccessLevel().allowTransaction())
+		if (!player.getAccessLevel().allowTransaction() || player.isLocked())
		{
-			player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
+			player.sendMessage("Your character is locked. Transactions are disabled.");
			return;
		}

Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AttackRequest.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AttackRequest.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AttackRequest.java	(working copy)
@@ -17,6 +17,7 @@
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2SummonInstance;
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;

/**
@@ -63,6 +64,25 @@
		if (target == null)
			return;

+		if (target instanceof L2PcInstance)
+		{
+			if (((L2PcInstance)target).getPvpFlag() == 0 && activeChar.isLocked())
+			{
+				activeChar.sendMessage("Your character is locked, you cannot attack a non flagged player.");
+				sendPacket(ActionFailed.STATIC_PACKET);
+				return;
+			}
+		}
+		else if (target instanceof L2SummonInstance)
+		{
+			if (((L2SummonInstance)target).getPvpFlag() == 0 && activeChar.isLocked())
+			{
+				activeChar.sendMessage("Your character is locked, you cannot attack a non flagged summon.");
+				sendPacket(ActionFailed.STATIC_PACKET);
+				return;
+			}
+		}
+		
		// Players can't attack objects in the other instances
		// except from multiverse
		if (target.getInstanceId() != activeChar.getInstanceId()
Index: I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 4250)
+++ I:/workspace/L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -274,8 +274,8 @@

	// Character Character SQL String Definitions:
    private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,last_recom_date,createTime) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
-	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=? WHERE charId=?";
-    private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language FROM characters WHERE charId=?";
+	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=?,locked=? WHERE charId=?";
+    private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language,locked FROM characters WHERE charId=?";

    // Character Teleport Bookmark:
    private static final String INSERT_TP_BOOKMARK = "INSERT INTO character_tpbookmark (charId,Id,x,y,z,icon,tag,name) values (?,?,?,?,?,?,?,?)";
@@ -391,6 +391,8 @@
	protected int _activeClass;
	protected int _classIndex = 0;

+	private int _locked;
+	
	/** data for mounted pets */
	private int _controlItemId;
	private L2PetData _data;
@@ -5629,7 +5631,7 @@
			int dropLimit           = 0;
			int dropPercent         = 0;

-			if (getKarma() > 0 && getPkKills() >= pkLimit)
+			if (getKarma() > 0 && getPkKills() >= pkLimit && !isLocked())
			{
				isKarmaDrop = true;
				dropPercent = Config.KARMA_RATE_DROP;
@@ -7352,6 +7354,9 @@

				// Language
				player.setLang(rset.getString("language"));
+				
+				// Lock
+				player.setLock(rset.getInt("locked"));

				// Retrieve the name and ID of the other characters assigned to this account.
				PreparedStatement stmt = con.prepareStatement("SELECT charId, char_name FROM characters WHERE account_name=? AND charId<>?");
@@ -7703,7 +7708,8 @@
			statement.setInt(53, getBookMarkSlot());
			statement.setInt(54, getVitalityPoints());
			statement.setString(55, getLang());
-            statement.setInt(56, getObjectId());
+			statement.setInt(56, getLock());
+            statement.setInt(57, getObjectId());

			statement.execute();
			statement.close();
@@ -10783,7 +10789,7 @@
		}
	}

-    public boolean isLocked()
+    public boolean isSubclassLocked()
    {
    	return _subclassLock.isLocked();
    }
@@ -14356,7 +14362,7 @@

	public boolean isAllowedToEnchantSkills()
	{
-		if (isLocked())
+		if (isSubclassLocked())
			return false;
		if (isTransformed())
			return false;
@@ -14703,4 +14709,19 @@

		return result;
	}
+	
+	public int getLock() 
+	{
+		return _locked;
+	}
+	
+	public void setLock(int locked) 
+	{
+		_locked = locked;
+	}
+	
+	public boolean isLocked()
+	{
+		return getLock() == 1;
+	}
}

 

DP PART:

Index: I:/workspace/datapack_development/data/scripts/handlers/MasterHandler.java
===================================================================
--- I:/workspace/datapack_development/data/scripts/handlers/MasterHandler.java	(revision 7453)
+++ I:/workspace/datapack_development/data/scripts/handlers/MasterHandler.java	(working copy)
@@ -105,6 +105,7 @@
		AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminKick());
		AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminKill());
		AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminLevel());
+		AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminLock());
		AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminLogin());
		AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminMammon());
		AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminManor());
Index: I:/workspace/datapack_development/data/scripts/handlers/admincommandhandlers/AdminLock.java
===================================================================
--- I:/workspace/datapack_development/data/scripts/handlers/admincommandhandlers/AdminLock.java	(revision 7453)
+++ I:/workspace/datapack_development/data/scripts/handlers/admincommandhandlers/AdminLock.java	(working copy)
@@ -0,0 +1,70 @@
+/*
+ * 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 2, 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * [url]http://www.gnu.org/copyleft/gpl.html[/url]
+ */
+package handlers.admincommandhandlers;
+
+import com.l2jserver.gameserver.handler.IAdminCommandHandler;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ * @author Fakoykas
+ */
+public class AdminLock implements IAdminCommandHandler
+{
+	private static final String[] ADMIN_COMMANDS = {"admin_lock", "admin_unlock"};
+	
+	public boolean useAdminCommand(String command, L2PcInstance activeChar)
+	{
+		if (!(activeChar.getTarget() instanceof L2PcInstance) || activeChar.getTarget() == null)
+			return false;
+		
+		L2PcInstance target = (L2PcInstance)activeChar.getTarget();
+		
+		if (command.startsWith("admin_lock"))
+		{
+			if (target.isLocked())
+			{
+				activeChar.sendMessage(target+" is already locked!");
+				return false;
+			}
+			
+			target.setLock(1);
+			target.sendMessage("Your character has been locked. Transactions are disabled.");
+			activeChar.sendMessage(target.getName()+" is now locked. Transactions are disabled.");
+		}
+		else if (command.startsWith("admin_unlock"))
+		{
+			if (!target.isLocked())
+			{
+				activeChar.sendMessage(target+" is not locked!");
+				return false;
+			}
+			
+			target.setLock(0);
+			target.sendMessage("Your character has been unlocked. All the fuctions are enabled.");
+			activeChar.sendMessage(target.getName()+" is now unlocked. All the fuctions are enabled.");
+		}
+		
+		return true;
+	}
+	
+	public String[] getAdminCommandList()
+	{
+		return ADMIN_COMMANDS;
+	}
+}
+

 

SQL:

INSERT INTO `admin_command_access_rights` VALUES ('admin_lock', '1');
INSERT INTO `admin_command_access_rights` VALUES ('admin_unlock', '1');

also at characters table create that field

`locked` int(2) NOT NULL DEFAULT '0'

 

Adapted to IL By KraShGr

http://www.maxcheaters.com/forum/index.php?topic=151096.msg1094035#msg1094035

 

I hope you like it.

Best Regards.

Posted

It coded for epilogue , but it can be used for all client with some changes.

ah ok , thank you.

i will find the way to use it

thanks again.

 

Posted

ah ok , thank you.

i will find the way to use it

thanks again.

 

For which client you need it , i'll adapt it for you tommorow.
Posted

Interlude if you can =)

It's really simple, change some imports and some other little details.

Posted

It's really simple, change some imports and some other little details.

i am really really really newbie java user.

really.

better to wait to krash ~ 1 week

:)

Posted

This is more a guide ;D

 

Anyway it is a simple think and usefull for newbies ;)

thing*

 

I do not understand the idea, why I should to block a player ?

 

 

Posted

@Krash, you dawg how is your mother dude ? :)

@Versus, nice work m8, i never seen an epilogue share from you :P you was interlude addicted what happened ? :D

keep it up !

Posted

@Web say hello to your mum^^

Interlude Patch

### Eclipse Workspace Patch 1.0
#P L2_GameServer_It
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -215,8 +215,8 @@
	private static final String RESTORE_SKILL_SAVE = "SELECT skill_id,skill_level,effect_count,effect_cur_time, reuse_delay FROM character_skills_save WHERE char_obj_id=? AND class_index=? AND restore_type=? ORDER BY buff_index ASC";
	private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?";

-    private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=? WHERE obj_id=?";
-    private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level FROM characters WHERE obj_id=?";
+    private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,locked=? WHERE obj_id=?";
+    private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,locked FROM characters WHERE obj_id=?";
     private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC";
     private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)";
     private static final String UPDATE_CHAR_SUBCLASS = "UPDATE character_subclasses SET exp=?,sp=?,level=?,class_id=? WHERE char_obj_id=? AND class_index =?";
@@ -331,6 +331,8 @@
	protected int _baseClass;
	protected int _activeClass;
	protected int _classIndex = 0;
+	
+	private int _locked;

	/** The list of sub-classes this character has. */
     private Map<Integer, SubClass> _subClasses;
@@ -4281,7 +4283,7 @@
			int dropLimit           = 0;
			int dropPercent         = 0;

-			if (getKarma() > 0 && getPkKills() >= pkLimit)
+			if (getKarma() > 0 && getPkKills() >= pkLimit && !isLocked())
			{
				isKarmaDrop = true;
				dropPercent = Config.KARMA_RATE_DROP;
@@ -5523,7 +5525,8 @@
			statement.setInt(54, isNewbie() ? 1 : 0);
			statement.setInt(55, isNoble() ? 1 :0);
			statement.setLong(56, 0);
-			statement.setLong(57,System.currentTimeMillis());
+			statement.setInt(57, getLock());
+			statement.setLong(58,System.currentTimeMillis());
			statement.executeUpdate();
			statement.close();
		}
@@ -5597,6 +5600,9 @@
				player.setOnlineTime(rset.getLong("onlinetime"));
				player.setNewbie(rset.getInt("newbie")==1);
				player.setNoble(rset.getInt("nobless")==1);
+				
+				// Lock
+				player.setLock(rset.getInt("locked"));

				player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
				if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
@@ -10215,4 +10221,19 @@
	{
		_forceBuff = fb;
	}
+	
+	public int getLock() 
+	{
+		return _locked;
+	}
+		
+	public void setLock(int locked) 
+	{
+		_locked = locked;
+	}
+		
+	public boolean isLocked()
+	{
+		return getLock() == 1;
+	}
}
Index: java/net/sf/l2j/gameserver/clientpackets/SetPrivateStoreListSell.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/SetPrivateStoreListSell.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/SetPrivateStoreListSell.java	(working copy)
@@ -76,9 +76,9 @@
		L2PcInstance player = getClient().getActiveChar();
		if (player == null) return;

-        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
         {
-            player.sendMessage("Transactions are disable for your Access Level");
+        	player.sendMessage("Your character is locked. Transactions are disabled.");
             return;
         }

Index: java/net/sf/l2j/gameserver/clientpackets/TradeDone.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/TradeDone.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/TradeDone.java	(working copy)
@@ -71,10 +71,10 @@
	        }

	        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN
-	            && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+	            && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
	        {
	            player.cancelActiveTrade();
-	            player.sendMessage("Transactions are disable for your Access Level");
+	            player.sendMessage("Your character is locked. Transactions are disabled.");
	            return;
	        }
	        trade.confirm();
Index: java/net/sf/l2j/gameserver/clientpackets/TradeRequest.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/TradeRequest.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/TradeRequest.java	(working copy)
@@ -54,9 +54,9 @@
		L2PcInstance player = getClient().getActiveChar();
         if (player == null) return;

-        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
         {
-        	player.sendMessage("Transactions are disable for your Access Level");
+        	player.sendMessage("Your character is locked. Transactions are disabled.");
             sendPacket(new ActionFailed());
             return;
         }
Index: java/net/sf/l2j/gameserver/clientpackets/RequestPrivateStoreSell.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestPrivateStoreSell.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestPrivateStoreSell.java	(working copy)
@@ -101,9 +101,9 @@
		TradeList storeList = storePlayer.getBuyList();
		if (storeList == null) return;

-        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
         {
-        	player.sendMessage("Transactions are disable for your Access Level");
+        	player.sendMessage("Your character is locked. Transactions are disabled.");
             sendPacket(new ActionFailed());
             return;
         }
Index: java/net/sf/l2j/gameserver/clientpackets/AddTradeItem.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/AddTradeItem.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/AddTradeItem.java	(working copy)
@@ -81,9 +81,9 @@
         }

         if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN
-            && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+            && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
         {
-            player.sendMessage("Transactions are disable for your Access Level");
+        	player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
             player.cancelActiveTrade();
             return;
         }
Index: java/net/sf/l2j/gameserver/clientpackets/AnswerTradeRequest.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/AnswerTradeRequest.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/AnswerTradeRequest.java	(working copy)
@@ -50,7 +50,7 @@
		L2PcInstance player = getClient().getActiveChar();
         if (player == null) return;

-        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
         {
         	player.sendMessage("Transactions are disable for your Access Level");
             sendPacket(new ActionFailed());
Index: java/net/sf/l2j/gameserver/clientpackets/SendWareHouseDepositList.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/SendWareHouseDepositList.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/SendWareHouseDepositList.java	(working copy)
@@ -86,9 +86,9 @@
		L2FolkInstance manager = player.getLastFolkNPC();
         if ((manager == null || !player.isInsideRadius(manager, L2NpcInstance.INTERACTION_DISTANCE, false, false)) && !player.isGM()) return;

-        if ((warehouse instanceof ClanWarehouse) && Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+        if ((warehouse instanceof ClanWarehouse) && Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
         {
-            player.sendMessage("Transactions are disable for your Access Level");
+        	player.sendMessage("Your character is locked. Transactions are disabled.");
             return;
         }

Index: java/net/sf/l2j/gameserver/clientpackets/RequestGiveItemToPet.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestGiveItemToPet.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestGiveItemToPet.java	(working copy)
@@ -60,6 +60,12 @@
             player.sendMessage("Cannot exchange items while trading");
             return;
         }
+        
+        if (player.isLocked())
+        {
+        	player.sendMessage("Your character is locked. Transactions are disabled.");
+        	return;
+        }

         L2PetInstance pet = (L2PetInstance)player.getPet();
		if (pet.isDead())
Index: java/net/sf/l2j/gameserver/clientpackets/SetPrivateStoreListBuy.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/SetPrivateStoreListBuy.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/SetPrivateStoreListBuy.java	(working copy)
@@ -73,9 +73,9 @@
         L2PcInstance player = getClient().getActiveChar();
     	if (player == null) return;

-        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+        if (Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX || player.isLocked())
         {
-            player.sendMessage("Transactions are disable for your Access Level");
+        	player.sendMessage("Your character is locked. Transactions are disabled.");
             return;
         }

Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminLock.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminLock.java	(revision 0)
+++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminLock.java	(revision 0)
@@ -0,0 +1,70 @@
+/*
+ * 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 2, 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * [url]http://www.gnu.org/copyleft/gpl.html[/url]
+ */
+package net.sf.l2j.gameserver.handler.admincommandhandlers;
+
+import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ * @author Fakoykas
+ */
+public class AdminLock implements IAdminCommandHandler
+{
+	private static final String[] ADMIN_COMMANDS = {"admin_lock", "admin_unlock"};
+	
+	public boolean useAdminCommand(String command, L2PcInstance activeChar)
+	{
+		if (!(activeChar.getTarget() instanceof L2PcInstance) || activeChar.getTarget() == null)
+			return false;
+		
+		L2PcInstance target = (L2PcInstance)activeChar.getTarget();
+		
+		if (command.startsWith("admin_lock"))
+		{
+			if (target.isLocked())
+			{
+				activeChar.sendMessage(target+" is already locked!");
+				return false;
+			}
+			
+			target.setLock(1);
+			target.sendMessage("Your character has been locked. Transactions are disabled.");
+			activeChar.sendMessage(target.getName()+" is now locked. Transactions are disabled.");
+		}
+		else if (command.startsWith("admin_unlock"))
+		{
+			if (!target.isLocked())
+			{
+				activeChar.sendMessage(target+" is not locked!");
+				return false;
+			}
+			
+			target.setLock(0);
+			target.sendMessage("Your character has been unlocked. All the fuctions are enabled.");
+			activeChar.sendMessage(target.getName()+" is now unlocked. All the fuctions are enabled.");
+		}
+		
+		return true;
+	}
+	
+	public String[] getAdminCommandList()
+	{
+		return ADMIN_COMMANDS;
+	}
+}
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- java/net/sf/l2j/gameserver/GameServer.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/GameServer.java	(working copy)
@@ -94,6 +94,7 @@
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminKick;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminKill;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminLevel;
+import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminLock;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminLogin;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminMammon;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminManor;
@@ -568,6 +569,7 @@
         _adminCommandHandler.registerAdminCommandHandler(new AdminGeoEditor());
         _adminCommandHandler.registerAdminCommandHandler(new AdminManor());
         _adminCommandHandler.registerAdminCommandHandler(new AdminTvTEvent());
+        _adminCommandHandler.registerAdminCommandHandler(new AdminLock());
         //_adminCommandHandler.registerAdminCommandHandler(new AdminRadar());
         _log.config("AdminCommandHandler: Loaded " + _adminCommandHandler.size() + " handlers.");

Index: java/config/command-privileges.properties
===================================================================
--- java/config/command-privileges.properties	(revision 4256)
+++ java/config/command-privileges.properties	(working copy)
@@ -372,6 +372,13 @@
admin_reset_petitions = 100
admin_view_petition = 75
admin_view_petitions = 75
+
+#####################
+### Lock Settings ###
+#####################
+
+admin_lock = 100
+admin_unlock = 100
  
###################
### GM SETTINGS ###
Index: java/net/sf/l2j/gameserver/clientpackets/RequestDropItem.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/RequestDropItem.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/RequestDropItem.java	(working copy)
@@ -106,9 +106,9 @@
         }


-        if (Config.GM_DISABLE_TRANSACTION && activeChar.getAccessLevel() >= Config.GM_TRANSACTION_MIN && activeChar.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
+        if (Config.GM_DISABLE_TRANSACTION && activeChar.getAccessLevel() >= Config.GM_TRANSACTION_MIN && activeChar.getAccessLevel() <= Config.GM_TRANSACTION_MAX || activeChar.isLocked())
         {
-            activeChar.sendMessage("Transactions are disable for your Access Level");
+        	activeChar.sendMessage("Your character is locked. Transactions are disabled.");
             activeChar.sendPacket(new SystemMessage(SystemMessageId.NOTHING_HAPPENED));
             return;
         }
Index: java/net/sf/l2j/gameserver/clientpackets/AttackRequest.java
===================================================================
--- java/net/sf/l2j/gameserver/clientpackets/AttackRequest.java	(revision 4256)
+++ java/net/sf/l2j/gameserver/clientpackets/AttackRequest.java	(working copy)
@@ -21,6 +21,7 @@
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2SummonInstance;
import net.sf.l2j.gameserver.serverpackets.ActionFailed;

/**
@@ -65,6 +66,24 @@
		else
			target = L2World.getInstance().findObject(_objectId);
		if (target == null) return;
+		
+		if (target instanceof L2PcInstance)
+		{
+			if (((L2PcInstance)target).getPvpFlag() == 0 && activeChar.isLocked())
+				activeChar.sendMessage("Your character is locked, you cannot attack a non flagged player.");
+			    sendPacket(new ActionFailed());
+			    return;
+		}
+		else if (target instanceof L2SummonInstance)
+		{
+			if (((L2SummonInstance)target).getPvpFlag() == 0 && activeChar.isLocked())
+		{
+				 activeChar.sendMessage("Your character is locked, you cannot attack a non flagged summon.");
+				 sendPacket(new ActionFailed());
+				 return;
+		}
+	}
+		
		if (activeChar.getTarget() != target)
		{
			target.onAction(activeChar);

For dp part just do this part

Open navicat right click on characters click design press "+" and add this settings

`locked` int(2) NOT NULL DEFAULT '0'

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
Reply to this topic...

×   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

    • Do you want stability? Lagless and bugless game? Instant support? Daily PVP? Long-Term playing? You are in the right place, time to start! Lineage2 X70 Interlude NEW Season 2025 February 8th 13:00 UTC+2 Greece/Lithuania: 13:00 UTC+2 Poland/Norway: 12:00 UTC+1 United Kingdom: 11:00 UTC+0 Brazil/Argentina: 8:00 UTC-3 Opening Bonus First 100 players after third class changing will automaticly get Premium Coin award in their inventory. All new players spawn in town of Gludio! All players start from 25 LvL with starter pack (adenas and equipment)! RATES XP: x70 | SP: x70 Party XP/ SP: x1.2 Adenas drop rate: x30 Drop Items: x25 | Spoil: x25 Drop SealStones rate: x1.2 Drop Manor rate: x1 Drop Quest rate: x5 | Reward rates: x2 (NOT FOR ALL) Raid Boss Drop: x10 Raid Boss Adenas Drop: x3 Grand Boss Drop: x1 Grand Boss Adenas Drop: x2 Information NPC Buffer 32 Buffs | 4 Debuffs PET Buffer for all classes [Except Necromancer] Scheme buffer: 3 Profiles. Buffs time: 2 Hours | Summons buffs - 60min. Global Gatekeeper. GM SHOP till weapon / armor / jewel B grade. Caradine letter 3rd part in GM Shop. Offline shop: SELL , PRIVATE CREATION , PACKAGE SALE from 35 LvL ! Mana potions: 500MP/2s. Spawn Protection: 20 Seconds. EVENTS Manager [TVT/DM]. Max Clients for one PC: 5 Rift | 4S Players: 3 Maximum inventory slots: 240 Maximum inventory slots for Dwarf: 250 Custom drop list: - Raid Boss Horus, Ember, Brakki, Nakondas: 1 VIP COIN (25%) | Korim (50%). - Raid Boss Apepi, Shacram, Atraiban, Korim: 1 BEWS (25%). - Raid Boss Glaki, Olkuth: 1-2 BEAS (40%). - Raid Boss Golkonda, Galaxia: 1-3 BEAS (60%). - Raid Boss Shyeed: 1-3 BEWS (30%) | 1-7 BEAS (40%) | 1-5 TOP LS 76 (50%). - Raid Boss Shuriel: 1-7 TOP LS 76 (50%) | 1-4 BEAS (60%). - Raid Boss Ashakiel: 1-2 BEWS (30%) | 1-7 TOP LS 76 (50%) | 1-4 BEAS (75%). - Raid Boss Antharas Priest Cloe: 1-3 BEWS (30%) | 1-7 TOP LS 76 (70%). ------------------------------------------------ - Hestia: Demon Splinters / Forgotten Blande (10%). - Ember: Arcana Mace / Draconic Bow (10%). - Galaxia: Angel Slayer / Heaven's Divider (10%). 1. Baium Lair and TOI 13/14 are PVP zones. 2. Valakas PVP zone near NPC "Klein" and inside Valakas room. 3. Antharas Lair and near "Heart Of Warding" are PVP zones. 4. Frintezza PVP zone is in first Imperial Tomb room. 5. Queen Ant PVP zone after the bridge and near Boss. 6. Zaken ship deck and rooms - PVP area. How to connect STEP BY STEP: 1. Install clear Lineage2 Interlude client 2. Download our patch, delete old system folder and add our 3. Delete, turn off anti virus or add our system folder to anti virus exceptions 4. Run l2.exe from Lineage2/system 5. Enter data on login window and enjoy the game! * You have to remove, turn off or use exceptions of antivirus because of our security protection. It is not a virus. * If you have connection issues with Windows 8 or 10, press right mouse button on l2.exe icon, press Properties, choose compatibility and unmark compatibility mode. Take your friends, clan, alliance, enemys, sharp your swords, clean your armors and meet your destiny at 2025 February 8th 13:00 UTC+2! WWW.L2BLAZE.NET INTERLUDE Empire X70 New Season: 2025 February 8th 13:00 UTC+2! WEBSITE: http://WWW.L2BLAZE.NET
    • Hello all,  i use L2jAcis 409 and i have problem with oly cycle, everyday is a different oly cycle and oly won't finish at the end of the month...almost 50 cycles and no end. I see oly matches in db but no points and after a day pass with /olympiadstat no points... Any help welcome, thank you.
    • Bump NEW USER IN TELEGRAM AND DISCORD IS "mileanum"  NEW USER IN TELEGRAM AND DISCORD IS "mileanum"  NEW USER IN TELEGRAM AND DISCORD IS "mileanum" NEW USER IN TELEGRAM AND DISCORD IS "mileanum" 
  • Topics

×
×
  • Create New...