Index: /java/net/sf/l2j/gameserver/clientpackets/RequestSetPledgeCrest.java =================================================================== --- /java/net/sf/l2j/gameserver/clientpackets/RequestSetPledgeCrest.java (revision 561) +++ /java/net/sf/l2j/gameserver/clientpackets/RequestSetPledgeCrest.java (working copy) @@ -27,7 +27,9 @@ import net.sf.l2j.Config; import net.sf.l2j.gameserver.ClientThread; +import net.sf.l2j.gameserver.IdFactory; import net.sf.l2j.gameserver.model.L2Clan; +import net.sf.l2j.gameserver.model.L2ClanMember; import net.sf.l2j.gameserver.model.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.SystemMessage; @@ -64,15 +66,22 @@ activeChar.sendPacket(sm); return; } - - File crestFile = new File(Config.DATAPACK_ROOT, "data/crests/Pledge_"+clan.getClanId()+".bmp"); + int crestID = IdFactory.getInstance().getNextId(); + File crestFile = new File(Config.DATAPACK_ROOT, "data/crests/Pledge_"+crestID+".dds"); + clan.setCrestId(crestID); try { FileOutputStream out = new FileOutputStream(crestFile); out.write(_data); out.close(); - + clan.setHasCrest(true); - activeChar.broadcastUserInfo(); + for (L2ClanMember member : clan.getMembers()) + { + if (member.isOnline()) + { + member.getPlayerInstance().broadcastUserInfo(); + } + } } catch (IOException e) { _log.log(Level.INFO, "Error loading "+crestFile+":", e); } Index: /java/net/sf/l2j/gameserver/clientpackets/RequestPledgeCrest.java =================================================================== --- /java/net/sf/l2j/gameserver/clientpackets/RequestPledgeCrest.java (revision 561) +++ /java/net/sf/l2j/gameserver/clientpackets/RequestPledgeCrest.java (working copy) @@ -53,7 +53,7 @@ { if (Config.DEBUG) _log.fine("crestid " + _crestId + " requested"); - File crestFile = new File(Config.DATAPACK_ROOT, "data/crests/Pledge_"+_crestId+".bmp"); + File crestFile = new File(Config.DATAPACK_ROOT, "data/crests/Pledge_"+_crestId+".dds"); if (crestFile.exists()) { PledgeCrest pc = new PledgeCrest(_crestId, crestFile); Index: /java/net/sf/l2j/gameserver/model/L2PcInstance.java =================================================================== --- /java/net/sf/l2j/gameserver/model/L2PcInstance.java (revision 581) +++ /java/net/sf/l2j/gameserver/model/L2PcInstance.java (working copy) @@ -939,7 +939,7 @@ { if (_clan != null && _clan.hasCrest()) { - return _clanId; + return _clan.getCrestId(); } else { Index: /java/net/sf/l2j/gameserver/model/L2Clan.java =================================================================== --- /java/net/sf/l2j/gameserver/model/L2Clan.java (revision 589) +++ /java/net/sf/l2j/gameserver/model/L2Clan.java (working copy) @@ -18,7 +18,6 @@ */ package net.sf.l2j.gameserver.model; -import java.io.File; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; @@ -53,6 +52,7 @@ private int _hasHideout; private boolean _hasCrest; private int _hiredGuards; + private int _crestId; private Warehouse _warehouse = new ClanWarehouse(this); private ArrayList _atWarWith; @@ -66,8 +66,8 @@ { _clanId = clanId; restore(); - File crestFile = new File(Config.DATAPACK_ROOT, "data/crests/Pledge_"+_clanId+".bmp"); - _hasCrest = crestFile.exists(); + //File crestFile = new File(Config.DATAPACK_ROOT, "data/crests/Pledge_"+_clanId+".bmp"); + //_hasCrest = crestFile.exists(); } /** @@ -81,6 +81,7 @@ _clanId = clanId; _name = clanName; setLeader(leader); + _crestId = 0; } /** @@ -288,7 +289,7 @@ */ public int getCrestId() { - return _clanId; + return _crestId; } /** * @param allyId The allyId to set. @@ -385,7 +386,7 @@ try { con = L2DatabaseFactory.getInstance().getConnection(); - PreparedStatement statement = con.prepareStatement("INSERT INTO clan_data (clan_id,clan_name,clan_level,hasCastle,hasHideout,ally_id,ally_name,leader_id) values (?,?,?,?,?,?,?,?)"); + PreparedStatement statement = con.prepareStatement("INSERT INTO clan_data (clan_id,clan_name,clan_level,hasCastle,hasHideout,ally_id,ally_name,leader_id,crest_id) values (?,?,?,?,?,?,?,?,?)"); statement.setInt(1, getClanId()); statement.setString(2, getName()); statement.setInt(3, getLevel()); @@ -394,6 +395,7 @@ statement.setInt(6, getAllyId()); statement.setString(7, getAllyName()); statement.setInt(8, getLeaderId()); + statement.setInt(9, getCrestId()); statement.execute(); statement.close(); @@ -494,7 +496,7 @@ L2ClanMember member; con = L2DatabaseFactory.getInstance().getConnection(); - PreparedStatement statement = con.prepareStatement("SELECT clan_name,clan_level,hasCastle,hasHideout,ally_id,ally_name,leader_id FROM clan_data where clan_id=?"); + PreparedStatement statement = con.prepareStatement("SELECT clan_name,clan_level,hasCastle,hasHideout,ally_id,ally_name,leader_id,crest_id FROM clan_data where clan_id=?"); statement.setInt(1, getClanId()); ResultSet clanData = statement.executeQuery(); @@ -506,7 +508,9 @@ setHasHideout(clanData.getInt("hasHideout")); setAllyId(clanData.getInt("ally_id")); setAllyName(clanData.getString("ally_name")); - int leaderId = (clanData.getInt("leader_id")); + int leaderId = (clanData.getInt("leader_id")); + setCrestId(clanData.getInt("crest_id")); + _hasCrest = getCrestId() > 0; PreparedStatement statement2 = con.prepareStatement("SELECT char_name,level,classid,obj_Id FROM characters WHERE clanid=?"); statement2.setInt(1, getClanId()); @@ -543,7 +547,15 @@ } } - public void broadcastToOnlineMembers(ServerBasePacket packet) + /** + * @param string + */ + public void setCrestId(int crestId) + { + _crestId = crestId; + } + + public void broadcastToOnlineMembers(ServerBasePacket packet) { for (L2ClanMember member : _members.values()) {