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

    • Thank you for your feedback. To help me improve the system, please leave your comments or report any bugs. I will try to release weekly updates. 
    • Thank you for your feedback, SkyLord — even the negative kind.   Let me give you some context on who we actually are, since you asked. L2-Scripts has been around for nearly 20 years. Over that time, we've worked with a large number of developers — I've personally seen probably half of every serious (and not-so-serious) developer in this scene. The most significant figure in our studio's history was Bonux. Together with a small team of assistants, he was essentially the backbone of our old codebase, and we were the ones who brought virtually every chronicle to the community — Essence, Classic, Main — all of it came through us.   Back then, we worked at scale. That era is over. Today, L2-Scripts is no longer a studio in the traditional sense. It's more of a developer collective. I work alongside the best developers I've encountered in 20 years. Bonux is still with us on Classic. A new developer named Den has joined — in just 3 years he became one of the top Essence developers in the world. Every one of us works independently, but we're united by long-standing friendships and shared projects.   We no longer chase every chronicle or every client. For the past several years, we've been focused exclusively on specific long-term projects where we're paid a proper salary — and when you focus like that, with 20 years of experience behind you, the quality of what you produce is on a completely different level. Our code is currently running on nearly all top Essence and Classic servers. We're now bringing Main (Last Protocol) up to that same standard.   You mentioned Nexvil. Yes, he worked with us. That was a difficult period — the lead developer at the time was not up to the standard we hold ourselves to. It was a short period, and it's long behind us.   As for the prices — I'd ask you not to judge a product by whether you personally can afford it. That's not a fair measure of value. The people running top-tier servers understand what they're paying for. If our pricing doesn't fit your budget, that's completely fine — but downvoting a service simply because it feels expensive to you doesn't reflect well, and it certainly doesn't make the product worse.   A special thank you to eMommy and Zenith for the honest and fair words — it genuinely means a lot. It's good to know there are people in this community who judge things as they are.
    • Just because someone does professional sales doesn’t mean everything is overpriced. If the products he provides are stable and good quality, then I see nothing wrong with it, and those prices aren’t even bad. Remember, we’re living in 2026, not 10 years in the past. Your mindset is probably stuck on buying the cheapest products because maybe you can’t afford better ones. And of course, there’s always someone who likes blaming others. I think you should mind your own business instead of blaming someone for how they run theirs. If you really think his prices are too expensive, then do better than him.
    • I have to be fair here and state that almost all 'good' servers on Essence/Classic are using bonux/l2scripts files and 10k for a decent essence build imo is not that bad of a price as long as nexvil is not touching these files
  • 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..