A Project for Chronicle 4 based on L2JServer.


    show npc crest

    Share
    avatar
    jamaica

    Posts : 135
    Join date : 2013-02-24
    Age : 28
    Location : Romania

    show npc crest

    Post  jamaica on 10th October 2013, 23:52

    here is the code for npc crest (clan who owns a castle shows the crest on all npcs from that town) but needs to be clean and adapt for c4, so....who is going to fix it?



    Code:
    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 loadL2SCORIAConfig()
    @@ -2357,6 +2358,7 @@
              FARM2_CUSTOM_MESSAGE = L2ScoriaSettings.getProperty("Farm2CustomMeesage", "You have been teleported to Farm Zone 2!");
              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(L2ScoriaSettings.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 = 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;
    avatar
    mystogan64

    Posts : 51
    Join date : 2013-10-04

    Re: show npc crest

    Post  mystogan64 on 11th October 2013, 01:14

    DONE! Smile

    So lets begin.

    net.sf.l2j.Config.java
    Code:

    +public static boolean SHOW_NPC_CREST;

    +// NPC CLAN CREST
    +SHOW_NPC_CREST = Boolean.parseBoolean(customSettings.getProperty("ShowNpcCrest", "False"));
    gameserver/configs/custom.properties
    Code:

    +# ---------------------------------------------------
    +# Npc Crest System                             -
    +# Show clan, alliance crests for territory NPC's.   -
    +# Default: False -
    +# ---------------------------------------------------
    +ShowNpcCrest = False
    ClanCrest.sql
    Code:

    ALTER TABLE castle ADD showNpcCrest enum('true','false') DEFAULT 'false' NOT NULL;
    net.sf.l2j.gameserver.serverpackets.NpcInfo.java
    Code:

    +import net.sf.l2j.gameserver.datatables.ClanTable;
    +import net.sf.l2j.gameserver.instancemanager.TownManager;
    +import net.sf.l2j.gameserver.model.L2Clan;
    +import net.sf.l2j.gameserver.model.zone.type.L2TownZone;

    private String _title = "";

    +int _clanCrest = 0;
    +int _allyCrest = 0;
    +int _allyId = 0;
    +int _clanId = 0;

    _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();
    + }
    + }
    + }
    + }


    -      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);
    + }
    net.sf.l2j.gameserver.model.entity.Castle.java
    Code:

    +import com.mysql.jdbc.Connection;


    private int _Treasury = 0;
    +private boolean _showNpcCrest = false;

    updateOwnerInDB(clan);
    +setShowNpcCrest(false);

    _Treasury = rs.getInt("treasury");
    +_showNpcCrest = rs.getBoolean("showNpcCrest");

    public final int getTreasury()
    {
    return _Treasury;
    }

    +public final boolean getShowNpcCrest()
    +{
    + return _showNpcCrest;
    +}
    +public final void setShowNpcCrest(boolean showNpcCrest)
    +{
    +  if(_showNpcCrest != showNpcCrest)
    +    {
    +       _showNpcCrest = showNpcCrest;
    +        updateShowNpcCrest();
    +      }
    + }

    finally
     {
     try
     {
     con.close();
     }
     catch (Exception e)
     {
     }
     }
     }

    +public void updateShowNpcCrest()
    +{
    + java.sql.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;
    }
    avatar
    jamaica

    Posts : 135
    Join date : 2013-02-24
    Age : 28
    Location : Romania

    Re: show npc crest

    Post  jamaica on 11th October 2013, 11:22

    thanks now i can get forward with some other stuffs Very Happy i didnt waste time on this ^^

    ASDron

    Posts : 4
    Join date : 2016-04-15
    Age : 22
    Location : Ukraine, Kiev

    Re: show npc crest

    Post  ASDron on 21st December 2016, 01:41

    577 revision does not work Sad
    avatar
    DnR
    Admin
    Admin

    Posts : 1027
    Join date : 2012-12-03

    Re: show npc crest

    Post  DnR on 4th September 2017, 11:05

    An optimized version of this feature has been added to project.

    Regards,
    DnR

    Sponsored content

    Re: show npc crest

    Post  Sponsored content


      Current date/time is 24th November 2017, 09:17