Jump to content
  • 0

Clan Crest Npc


OldTrue14

Question

Kalhspera exo ena problima me ena java code mipos mpwrite na me voithisete exo perasi auto to kodika pou exo vri edw

Index: config/functions/l2jfrozen.properties
===================================================================
--- config/functions/l2jfrozen.properties   (wersja 669)
+++ config/functions/l2jfrozen.properties   (kopia robocza)
@@ -275,4 +275,8 @@
 ProtectorSkillLevel = 13
 ProtectorSkillTime = 600
 # Npc Protector Message
-ProtectorMessage = Hey You!, Never Kill On This Area, Go Read The Rules!
\ No newline at end of file
+ProtectorMessage = Hey You!, Never Kill On This Area, Go Read The Rules!
+
+# Show clan, alliance crests for territory NPC's.
+# Default: False
+ShowNpcCrest = False
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/NpcInfo.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/NpcInfo.java   (wersja 669)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/NpcInfo.java   (kopia robocza)
@@ -19,11 +19,15 @@
 package com.l2jfrozen.gameserver.network.serverpackets;
 
 import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.datatables.sql.ClanTable;
+import com.l2jfrozen.gameserver.managers.TownManager;
 import com.l2jfrozen.gameserver.model.L2Character;
+import com.l2jfrozen.gameserver.model.L2Clan;
 import com.l2jfrozen.gameserver.model.L2Summon;
 import com.l2jfrozen.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance;
 import com.l2jfrozen.gameserver.model.actor.instance.L2PetInstance;
+import com.l2jfrozen.gameserver.model.zone.type.L2TownZone;
 
 /**
  * This class ...
@@ -46,6 +50,10 @@
    private int _collisionHeight, _collisionRadius;
    private String _name = "";
    private String _title = "";
+   int _clanCrest = 0;
+   int _allyCrest = 0;
+   int _allyId = 0;
+   int _clanId = 0;
 
    /**
     * @param _characters
@@ -99,6 +107,32 @@
          _title = t;
       }
 
+      if(Config.SHOW_NPC_CREST)
+      {
+         if(cha instanceof L2NpcInstance && cha.isInsideZone(L2Character.ZONE_PEACE) && cha.getCastle().getOwnerId() != 0)
+         {
+            int _x,_y,_z;
+            _x = cha.getX();
+            _y = cha.getY();
+            _z = cha.getZ();
+            L2TownZone Town;
+            Town = TownManager.getInstance().getTown(_x, _y, _z);
+            if(Town != null)
+            {
+               int townId = Town.getTownId();
+               if(townId != 33 && townId != 22)
+               {
+                  L2Clan clan;
+                  clan = ClanTable.getInstance().getClan(cha.getCastle().getOwnerId());
+                  _clanCrest = clan.getCrestId();
+                  _clanId = clan.getClanId();
+                  _allyCrest = clan.getAllyCrestId();
+                  _allyId = clan.getAllyId();
+               }
+            }
+         }
+      }
+
       _x = _activeChar.getX();
       _y = _activeChar.getY();
       _z = _activeChar.getZ();
@@ -187,12 +221,23 @@
       writeD(0000); // hmm karma ??
 
       writeD(_activeChar.getAbnormalEffect()); // C2
-      writeD(0000); // C2
-      writeD(0000); // C2
-      writeD(0000); // C2
-      writeD(0000); // C2
-      writeC(0000); // C2
 
+      if(Config.SHOW_NPC_CREST)
+      {
+         writeD(_clanId);
+         writeD(_clanCrest);
+         writeD(_allyId);
+         writeD(_allyCrest);
+      }
+      else
+      {
+         writeD(0000);
+         writeD(0000);
+         writeD(0000);
+         writeD(0000);
+         writeC(0000);
+      }
+
       writeC(0x00); // C3  team circle 1-blue, 2-red
       writeF(_collisionRadius);
       writeF(_collisionHeight);
Index: head-src/com/l2jfrozen/gameserver/model/entity/siege/Castle.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/entity/siege/Castle.java   (wersja 669)
+++ head-src/com/l2jfrozen/gameserver/model/entity/siege/Castle.java   (kopia robocza)
@@ -90,6 +90,7 @@
    private int _taxPercent = 0;
    private double _taxRate = 0;
    private int _treasury = 0;
+   private boolean _showNpcCrest = false;
    private L2CastleZone _zone;
    private L2CastleTeleportZone _teleZone;
    private L2Clan _formerOwner = null;
@@ -364,6 +365,7 @@
       }
 
       updateOwnerInDB(clan); // Update in database
+      setShowNpcCrest(false);
 
       if(getSiege().getIsInProgress())
       {
@@ -552,6 +554,7 @@
 
             _taxPercent = rs.getInt("taxPercent");
             _treasury = rs.getInt("treasury");
+            _showNpcCrest = rs.getBoolean("showNpcCrest");
          }
 
          rs.close();
@@ -854,6 +857,20 @@
       return _treasury;
    }
 
+   public final boolean getShowNpcCrest()
+   {
+      return _showNpcCrest;
+   }
+
+   public final void setShowNpcCrest(boolean showNpcCrest)
+   {
+      if(_showNpcCrest != showNpcCrest)
+      {
+         _showNpcCrest = showNpcCrest;
+         updateShowNpcCrest();
+      }
+   }
+
    public FastList<SeedProduction> getSeedProduction(int period)
    {
       return period == CastleManorManager.PERIOD_CURRENT ? _production : _productionNext;
@@ -1324,6 +1341,36 @@
       }
    }
 
+   public void updateShowNpcCrest()
+   {
+      Connection con = null;
+      PreparedStatement statement;
+      try
+      {
+         con = L2DatabaseFactory.getInstance().getConnection();
+
+         statement = con.prepareStatement("UPDATE castle SET showNpcCrest = ? WHERE id = ?");
+         statement.setString(1, String.valueOf(getShowNpcCrest()));
+         statement.setInt(2, getCastleId());
+         statement.execute();
+         statement.close();
+      }
+      catch (Exception e)
+      {
+         _log.info("Error saving showNpcCrest for castle " + getName() + ": " + e.getMessage());
+      }
+      finally
+      {
+         try
+         {
+            con.close();
+         }
+         catch (Exception e)
+         {
+         }
+      }
+   }
+
    public boolean isNextPeriodApproved()
    {
       return _isNextPeriodApproved;

Einai gia Clan crest  sta Npc alla mou vgazi auto to provlima mipos kseri kaneis gt

post-92110-0-98167400-1381012595_thumb.png

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Me tin prwti matia pou eida ton kodika lipi sto config.java i aparetiti dhlosi gia na sou vgalei to error.

 

Phgene sto config.java pare mia idiea to pws einai dilomena ta alla config kai dhlose ayto gia na mpwresi na lytourgisi swsta.

Edited by •Cobra•
Link to comment
Share on other sites

  • 0

l2jfrozen/Config.java
 
 
        public static String PVP1_CUSTOM_MESSAGE;
        public static String PVP2_CUSTOM_MESSAGE;
+      public static boolean SHOW_NPC_CREST;
 
 
                  PVP1_CUSTOM_MESSAGE = L2ScoriaSettings.getProperty("PvP1CustomMeesage", "You have been teleported to PvP Zone 1!");
                  PVP2_CUSTOM_MESSAGE = L2ScoriaSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!");
+                SHOW_NPC_CREST = Boolean.parseBoolean(L2FrozenSettings.getProperty("ShowNpcCrest", "False"));
           }
 
 
 
 

 

den kserw ean doulepsei alla dokimasetw

Link to comment
Share on other sites

  • 0

 

l2jfrozen/Config.java
 
 
        public static String PVP1_CUSTOM_MESSAGE;
        public static String PVP2_CUSTOM_MESSAGE;
+      public static boolean SHOW_NPC_CREST;
 
 
                  PVP1_CUSTOM_MESSAGE = L2ScoriaSettings.getProperty("PvP1CustomMeesage", "You have been teleported to PvP Zone 1!");
                  PVP2_CUSTOM_MESSAGE = L2ScoriaSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!");
+                SHOW_NPC_CREST = Boolean.parseBoolean(L2FrozenSettings.getProperty("ShowNpcCrest", "False"));

 
den kserw ean doulepsei alla dokimasetw
 
 
 
 
:(

 

Edited by OldTrue14
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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.



  • Posts

    • from what it seems the whole server left, rofl, only one still online is the bot clan u give gear to 
    • Good luck with your sales buddy. You can re-design the html (action) part and the item engine. (You got a retail trade system 😉 )
    • Experience the best of Lineage 2 on L2 Exalta, a server that brings you the authentic retail gameplay you've been craving. Our Interlude client-based server is meticulously designed to provide an immersive and balanced experience that stays true to the original game.   L2 Exalta stands out from the rest by offering a unique feature: it is a server that is not focused on crafting. We understand that some players prefer to focus on other aspects of the game, and our server is tailored to provide a seamless experience without the emphasis on crafting.   Enjoy enticing server stats, including rates of x50 for experience, x200 for skill points, and x200 for adena, ensuring steady progression and a thrilling adventure. We pride ourselves on maintaining retail items and retail farm items, including adena and ancient adena, to create an authentic and familiar gaming environment.   Join our vibrant community on Facebook at https://www.facebook.com/profile.php?id=100092629147488 and connect with fellow adventurers. Share strategies, stay updated with the latest news, and forge lasting friendships. For real-time communication and coordination, our dedicated Discord server at https://discord.gg/nayhtZ7v8J provides a platform to engage with like-minded players, form alliances, and plan epic battles.   Don't miss out on this incredible opportunity to delve into the world of Lineage 2 on L2 Exalta. Join us now and embark on an unforgettable journey filled with challenges, camaraderie, and the exhilaration of conquering the realm. Experience Lineage 2 the way it was meant to be played, without the emphasis on crafting!     LINEAGE 2 EXALTA BASIC INFORMATION & RATES RATES Experiece :       x50 Skill Points :    x200 Adena :            x200 Drop :               x1 Spoil :               x1 Epic Bosses : x1 BASIC INFORMATION Sub Classes :             Adena Noblesse Quest :     Barakiel Change Class:         Free Buff Slots :                  30+4 Skills:                            Auto learning Equipment :              Armor / Weapons / Jewels Olympiad Period: 2 weeks Skills :                         Interlude   ENCHANT RATES Weapon Enchant Rate : 65% and dropping Armor Enchant Rate :     65% and dropping Jewels Enchant Rate :    65% and dropping Weapon Max Enchant : 25 Armor Max Enchant :     20 Jewels Max Enchant :    20 Weapon Safe Enchant : 3 Armor Safe Enchant :     3 Jewels Safe Enchant :    3 AUGMENT RATES Augment Skills :           Active Or Passive Life Stones :                        1% Mid Grade Life Stone :  2% High Grade Life Stone: 3% Top Grade Life Stone :   5%   BETA OPENING 17/06/2023 20:00 GMT +3 GRAND OPENING 24/06/2023 20:00 GMT +3 WEBSITE
    • any edit on "onscreendamage" for damage received? or even mp cp hp healing
    • Based on 2 projects means you have ripped what you could from them.
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock