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