Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Mostrar Crest Npc

Iniciado por Swarlog, Ago 19, 2022, 01:12 AM

Tema anterior - Siguiente tema

Swarlog

CitarCODE:

Index: head-src/com/l2jfrozen/Config.java
===================================================================
--- head-src/com/l2jfrozen/Config.java   (wersja 669)
+++ head-src/com/l2jfrozen/Config.java   (kopia robocza)
@@ -2239,6 +2239,7 @@
    public static String FARM2_CUSTOM_MESSAGE;
    public static String PVP1_CUSTOM_MESSAGE;
    public static String PVP2_CUSTOM_MESSAGE;
+   public static boolean SHOW_NPC_CREST;
 
    //============================================================
    public static void loadL2JFrozenConfig()
@@ -2357,6 +2358,7 @@
        FARM1_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("Farm1CustomMeesage", "You have been teleported to Farm Zone 1!");
FARM2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("Farm2CustomMeesage", "You have been teleported to Farm Zone 2!");
PVP1_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP1CustomMeesage", "You have been teleported to PvP Zone 1!");
PVP2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!");
+         SHOW_NPC_CREST = Boolean.parseBoolean(L2JFrozenSettings.getProperty("ShowNpcCrest", "False"));
       }
       catch(Exception e)
       {
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 = True
\ 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;

CitarSQL:

ALTER TABLE castle ADD showNpcCrest enum('true','false') DEFAULT 'false' NOT NULL;