Jump to content

Recommended Posts

Posted

Hello devs!

I want to share small code that shows castle door's/wall's hp. Seems l2jfrozen don't have this feature, so I've decided to extend its current code.

Index: head-src/com/l2jfrozen/gameserver/model/actor/knownlist/PcKnownList.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/actor/knownlist/PcKnownList.java	(revision 1113)
+++ head-src/com/l2jfrozen/gameserver/model/actor/knownlist/PcKnownList.java	(working copy)
@@ -126,7 +126,14 @@
 			}
 			else if (object instanceof L2DoorInstance)
 			{
-				active_char.sendPacket(new DoorInfo((L2DoorInstance) object, false));
+                               if (((L2DoorInstance) object).getCastle() != null)
+                               {
+                                   getActiveChar().sendPacket(new DoorInfo((L2DoorInstance) object, true));
+                               }
+                               else
+                               {
+                                   getActiveChar().sendPacket(new DoorInfo((L2DoorInstance) object, false));
+                               }
 				active_char.sendPacket(new DoorStatusUpdate((L2DoorInstance) object));
 			}
 			else if (object instanceof L2BoatInstance)
Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRecordInfo.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRecordInfo.java	(revision 1113)
+++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRecordInfo.java	(working copy)
@@ -90,7 +90,14 @@
 				}
 				else if (object instanceof L2DoorInstance)
 				{
-					_activeChar.sendPacket(new DoorInfo((L2DoorInstance) object, false));
+				    if (((L2DoorInstance) object).getCastle() != null)
+				    {
+				        _activeChar.sendPacket(new DoorInfo((L2DoorInstance) object, true));
+				    }
+				    else
+				    {
+				        _activeChar.sendPacket(new DoorInfo((L2DoorInstance) object, false));
+				    }
 					_activeChar.sendPacket(new DoorStatusUpdate((L2DoorInstance) object));
 				}
 				else if (object instanceof L2BoatInstance)
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/DoorInfo.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/DoorInfo.java	(revision 1113)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/DoorInfo.java	(working copy)
@@ -28,10 +28,12 @@
 {
 	private static final String _S__60_DOORINFO = "[S] 4c DoorInfo";
 	private final L2DoorInstance _door;
+	private final boolean _showHp;
 	
 	public DoorInfo(final L2DoorInstance door, final boolean showHp)
 	{
 		_door = door;
+		_showHp = showHp;
 	}
 	
 	@Override
@@ -40,6 +42,7 @@
 		writeC(0x4c);
 		writeD(_door.getObjectId());
 		writeD(_door.getDoorId());
+		writeD(_showHp ? 1 : 0);
 	}
 	
 	/*

I've tested that on l2jserver's rev 1433, but there shouldn't be a difference.

Posted (edited)

Thanks! :)

I don't use l2jfrozen's pack, but seems there are many people using it.

Here is what this patch does:

http://prntscr.com/5godye

http://prntscr.com/5goe6w

http://prntscr.com/5goeh7

Edited by Tessa
  • 3 weeks later...
Posted

Can you make and when a monster is "npc_to_pc_polymorph.sql" with visible HP ?

 

L2JFrozen

I think this comes from the client side..

  • 3 weeks later...
Posted (edited)

Shit code for shit pack.  :happyforever:

 

ShowHP -> isEnemy. Like L2OFF, you can see door HP only if you are enemy for castle owner.

 

Take aCis free pack and build this patch from him. We fixed it few years ago.

Edited by Rootware
Posted

Shit code for shit pack.  :happyforever:

 

ShowHP -> isEnemy. Like L2OFF, you can see door HP only if you are enemy for castle owner.

 

Take aCis free pack and build this patch from him. We fixed it few years ago.

To be honest aCis is a good public pack but.. Don't get cocky because Setekh for example said the same with archid and guess what.. Untill now your work is just awesome

Posted

Shit code for shit pack.  :happyforever:

 

ShowHP -> isEnemy. Like L2OFF, you can see door HP only if you are enemy for castle owner.

 

Take aCis free pack and build this patch from him. We fixed it few years ago.

Don't care how is in L2OFF... currently on official you can always see door's hp. I've taken the example from them.

Posted

Don't care how is in L2OFF... currently on official you can always see door's hp. I've taken the example from them.

 

Do not forget that many things are changing in the next chronicles. Therefore, any fix must be checked.

Posted

Do not forget that many things are changing in the next chronicles. Therefore, any fix must be checked.

Things like this never got my attention when I played on the official server... but I will never take the l2off extenders as an example. If someone who can remember if the hp should be visible only during a siege confirm that, I will update the code!

Posted

Things like this never got my attention when I played on the official server... but I will never take the l2off extenders as an example. If someone who can remember if the hp should be visible only during a siege confirm that, I will update the code!

 

Why? Why you hated extenders?

 

Many Interlude servers works on the C4 (upgraded) core and GF (downgraded). It's enough for many tests. Basic info about packet structure contains in Engine.dll. NC Soft not adds useless info to the packet.

Posted

Why? Why you hated extenders?

 

Many Interlude servers works on the C4 (upgraded) core and GF (downgraded). It's enough for many tests. Basic info about packet structure contains in Engine.dll. NC Soft not adds useless info to the packet.

I don't hate anything... with some help (because of Themida) I have reversed Engine.dll, so I know the exact structure of the packets. I've used l2off's files to get some retail spawn locations, npc/armor/weapon stats etc but nothing related to the gameplay, because I think it's not retail-like. This is my opinion!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Since theres no reaction on MXC anymore, im giving you a downvote for what you’re selling or doing. Honestly, I think you people have lost your minds. What are these prices? Show someone popular who actually uses your services.
    • Adventure returns!! Are you ready to experience the ultimate Improved Classic Lineage II adventure? Our server combines the authentic Classic 2.5 atmosphere with modern gameplay improvements, balanced systems, and long-term progression designed for both hardcore and casual players!  Key Features: - Opening Date: 3rd July 2026 - Time: 20:00 GMT+3 - Mid Rate x3 - Adena x3 - 100% Drop Rate - Quest Reward Adena x3 - Vitality System - Classic Zaken 2.5 Based - Improved Classic Gameplay - Improved Buff System - No Dual Box - No Pay to Win - 7 Members Party System - Dynamic Stages Progression - Reworked Support Classes - Reworked Skills & New Skills - New Skill Visual Effects - Improved Quests & Better Rewards - Daily Missions & Daily Quests - Weekly Solo Instances - In-Game Wiki with .wiki Command - Olympiad Rework - Castle Siege Improvements - Grand Boss & Raid Boss Progression - Low Rate x1 planned around November *Working on Battle Royale Event!* ⚔ Designed to deliver a competitive, rewarding, and long-term Classic experience without destroying the original Lineage II feeling.   Don't forget to check the in-game wiki and discover all the unique features and gameplay improvements we prepared for you! Website: https://l2einhovant.net/en Discord: https://discord.gg/VfNngPrzaf Facebook: https://www.facebook.com/L2EinhovantClassic
    • L2 Editor is a desktop tool for editing Lineage 2 server and client data side by side. It opens L2J Mobius server XML (NPCs, skills, classes, zones, drops, experience), reads and writes the encrypted client data files for skills, NPC names, hunting zones, the minimap, and more, and renders the world map by stitching the client's radar textures and overlaying real zone polygons and NPC spawn points — both of which you can edit by dragging on the map. The NPC editor exposes every field as a structured form with enum dropdowns and includes a 3D point-cloud viewer of the NPC's model decoded straight from the client. The editor is chronicle-aware across 42 builds from Prelude to Orc Village: it decrypts every supported client format, derives which client files exist per chronicle at runtime, and shows a structured drift indicator that names exactly which fields disagree when server and client data drift apart. Built with Tauri, Rust, and React.   I am open to adding support for other server packs as well, if you are interested, send me a message on discord and send me the xml & xsd files   https://github.com/RumDum3/l2-editor    
    • I tried it, very neat work. Just keep improving it, there's potential.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..