Vkouk Posted May 1, 2010 Posted May 1, 2010 Well,hi someone from here asked this.Its already at Gracia Epilogue but i did it for Gracia Final if someone need it.Let's see Index: java/config/NPC.properties =================================================================== --- java/config/NPC.properties (revision 4129) +++ java/config/NPC.properties (working copy) @@ -46,6 +46,10 @@ # Default: False ShowNpcLevel = False +# Show clan, alliance crests for territory NPCs without quests +# Default: False +ShowCrestWithoutQuest = False + # Do you want mobs to drop Vitality resplenishing herbs? # Notes: # Works only if EnableVitality = True Index: java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java =================================================================== --- java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java (revision 4129) +++ java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java (working copy) @@ -15,7 +15,10 @@ package net.sf.l2j.gameserver.network.serverpackets; import net.sf.l2j.Config; +import net.sf.l2j.gameserver.datatables.ClanTable; import net.sf.l2j.gameserver.instancemanager.CursedWeaponsManager; +import net.sf.l2j.gameserver.instancemanager.TownManager; +import net.sf.l2j.gameserver.model.L2Clan; import net.sf.l2j.gameserver.model.L2Transformation; import net.sf.l2j.gameserver.model.actor.L2Character; import net.sf.l2j.gameserver.model.actor.L2Decoy; @@ -86,6 +89,10 @@ public static class NpcInfo extends AbstractNpcInfo { private L2Npc _npc; + private int _clanCrest = 0; + private int _allyCrest = 0; + private int _allyId = 0; + private int _clanId = 0; public NpcInfo(L2Npc cha, L2Character attacker) { @@ -108,15 +115,29 @@ _title = cha.getTitle(); // On every subclass if (Config.SHOW_NPC_LVL && _npc instanceof L2MonsterInstance) - { - String t = "Lv " + cha.getLevel() + (cha.getAggroRange() > 0 ? "*" : ""); - if (_title != null) - t += " " + _title; - - _title = t; - } - } + { + String t = "Lv " + cha.getLevel() + (cha.getAggroRange() > 0 ? "*" : ""); + if (_title != null) + t += " " + _title; + + _title = t; + } + // npc crest of owning clan/ally of castle + if (cha instanceof L2Npc && cha.isInsideZone(L2Character.ZONE_TOWN) && (Config.SHOW_CREST_WITHOUT_QUEST || cha.getCastle().getShowNpcCrest()) && cha.getCastle().getOwnerId() != 0) + { + int townId = TownManager.getTown(_x, _y, _z).getTownId(); + if (townId != 33 && townId != 22) + { + L2Clan clan = ClanTable.getInstance().getClan(cha.getCastle().getOwnerId()); + _clanCrest = clan.getCrestId(); + _clanId = clan.getClanId(); + _allyCrest = clan.getAllyCrestId(); + _allyId = clan.getAllyId(); + } + } + } + @Override protected void writeImpl() { Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revision 4129) +++ java/net/sf/l2j/Config.java (working copy) @@ -629,6 +629,7 @@ public static boolean DEEPBLUE_DROP_RULES; public static boolean DEEPBLUE_DROP_RULES_RAID; public static boolean SHOW_NPC_LVL; + public static boolean SHOW_CREST_WITHOUT_QUEST; public static boolean GUARD_ATTACK_AGGRO_MOB; public static boolean ALLOW_WYVERN_UPGRADER; public static String PET_RENT_NPC; @@ -1669,6 +1670,7 @@ DEEPBLUE_DROP_RULES = Boolean.parseBoolean(NPC.getProperty("UseDeepBlueDropRules", "True")); DEEPBLUE_DROP_RULES_RAID = Boolean.parseBoolean(NPC.getProperty("UseDeepBlueDropRulesRaid", "True")); SHOW_NPC_LVL = Boolean.parseBoolean(NPC.getProperty("ShowNpcLevel", "False")); + SHOW_CREST_WITHOUT_QUEST = Boolean.parseBoolean(NPC.getProperty("ShowCrestWithoutQuest", "False")); ENABLE_DROP_VITALITY_HERBS = Boolean.parseBoolean(NPC.getProperty("EnableVitalityHerbs", "True")); GUARD_ATTACK_AGGRO_MOB = Boolean.parseBoolean(NPC.getProperty("GuardAttackAggroMob", "False")); ALLOW_WYVERN_UPGRADER = Boolean.parseBoolean(NPC.getProperty("AllowWyvernUpgrader", "False")); @@ -2270,6 +2272,7 @@ else if (pName.equalsIgnoreCase("ShowServerNews")) SERVER_NEWS = Boolean.parseBoolean(pValue); else if (pName.equalsIgnoreCase("ShowNpcLevel")) SHOW_NPC_LVL = Boolean.parseBoolean(pValue); + else if (pName.equalsIgnoreCase("ShowCrestWithoutQuest")) SHOW_CREST_WITHOUT_QUEST = Boolean.parseBoolean(pValue); else if (pName.equalsIgnoreCase("ForceInventoryUpdate")) FORCE_INVENTORY_UPDATE = Boolean.parseBoolean(pValue); Index: java/net/sf/l2j/gameserver/model/entity/Castle.java =================================================================== --- java/net/sf/l2j/gameserver/model/entity/Castle.java (revision 4129) +++ java/net/sf/l2j/gameserver/model/entity/Castle.java (working copy) @@ -85,6 +85,7 @@ private int _taxPercent = 0; private double _taxRate = 0; private long _treasury = 0; + private boolean _showNpcCrest = false; private L2CastleZone _zone = null; private L2CastleTeleportZone _teleZone; private L2Clan _formerOwner = null; @@ -531,6 +532,7 @@ } updateOwnerInDB(clan); // Update in database + setShowNpcCrest(false); // if clan have fortress, remove it if (clan.getHasFort() > 0) @@ -707,6 +709,8 @@ _taxPercent = rs.getInt("taxPercent"); _treasury = rs.getLong("treasury"); + + _showNpcCrest = rs.getBoolean("showNpcCrest"); } rs.close(); statement.close(); @@ -1129,6 +1133,20 @@ return _treasury; } + public final boolean getShowNpcCrest() + { + return _showNpcCrest; + } + + public final void setShowNpcCrest(boolean showNpcCrest) + { + if (_showNpcCrest != showNpcCrest) + { + _showNpcCrest = showNpcCrest; + updateShowNpcCrest(); + } + } + public List<SeedProduction> getSeedProduction(int period) { return (period == CastleManorManager.PERIOD_CURRENT ? _production : _productionNext); @@ -1579,6 +1597,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 FastList<L2Skill> getResidentialSkills() { return _residentialSkills; Also dont forget this: Index: /trunk/Eclipse_Datapack/sql/castle.sql =================================================================== --- /trunk/Eclipse_Datapack/sql/castle.sql (revision 202) +++ /trunk/Eclipse_Datapack/sql/castle.sql (revision 206) @@ -7,4 +7,5 @@ `regTimeOver` enum('true','false') DEFAULT 'true' NOT NULL, `regTimeEnd` DECIMAL(20,0) NOT NULL default 0, + `showNpcCrest` enum('true','false') DEFAULT 'false' NOT NULL, PRIMARY KEY (`name`), KEY `id` (`id`) @@ -12,11 +13,11 @@ INSERT IGNORE INTO `castle` VALUES -(1,'Gludio',0,0,0,'true',0), -(2,'Dion',0,0,0,'true',0), -(3,'Giran',0,0,0,'true',0), -(4,'Oren',0,0,0,'true',0), -(5,'Aden',0,0,0,'true',0), -(6,'Innadril',0,0,0,'true',0), -(7,'Goddard',0,0,0,'true',0), -(8,'Rune',0,0,0,'true',0), -(9,'Schuttgart',0,0,0,'true',0); +(1,'Gludio',0,0,0,'true',0,'false'), +(2,'Dion',0,0,0,'true',0,'false'), +(3,'Giran',0,0,0,'true',0,'false'), +(4,'Oren',0,0,0,'true',0,'false'), +(5,'Aden',0,0,0,'true',0,'false'), +(6,'Innadril',0,0,0,'true',0,'false'), +(7,'Goddard',0,0,0,'true',0,'false'), +(8,'Rune',0,0,0,'true',0,'false'), +(9,'Schuttgart',0,0,0,'true',0,'false'); Credits to L2JForum and Me For adapt it
Setekh Posted May 1, 2010 Posted May 1, 2010 /facepalm... You sanded us links to this topic just to see a thing that a guy made on l2jserver forum? Dude.. aamm no words.. ur pro! keep it up >.> and ull make smth of yourself.
Vkouk Posted May 1, 2010 Author Posted May 1, 2010 /facepalm... You sanded us links to this topic just to see a thing that a guy made on l2jserver forum? Dude.. aamm no words.. ur pro! keep it up >.> and ull make smth of yourself. yes what's your problem? for someone will be useful but for you i know it isn't
Coyote™ Posted May 1, 2010 Posted May 1, 2010 do it and for interlude.. FACEPALM x2. Anw, as I told you start making your own codes. By adapting stuff you will not learn anything, just how to change the imports.
NoSti* Posted May 1, 2010 Posted May 1, 2010 FACEPALM x2. Anw, as I told you start making your own codes. By adapting stuff you will not learn anything, just how to change the imports. what its your problem??? i want and for interlude have any problem with my opinion???
Coyote™ Posted May 1, 2010 Posted May 1, 2010 what its your problem??? i want and for interlude have any problem with my opinion??? It's nonsense adding every single gracia string in shitlude, instead of using Gracia. And btw Ventic don't add useless hides >_>
PwnedTheGod™ Posted May 1, 2010 Posted May 1, 2010 It's nonsense adding every single gracia string in shitlude, instead of using Gracia. And btw Ventic don't add useless hides >_> Why hide it?As he said it's from l2j forum...Anyone who go and search for it,he's gonna find it...so? Anyways I like servers with this mode...Great job keep sharing...!
Coyote™ Posted May 1, 2010 Posted May 1, 2010 Why hide it?As he said it's from l2j forum...Anyone who go and search for it,he's gonna find it...so? Read what I wrote. I told him not to hide such posts. He had hidden it for 50 posts, and I just removed it. God.. >_>
+cs.tribal Posted May 1, 2010 Posted May 1, 2010 Awesome! I was searching for it! I saw those crests on many servers and i didn't knew how the did it! Thanks!
Loren Posted May 1, 2010 Posted May 1, 2010 thx for share ventic.. this is an crest for npc? i mean the npc will have crest?im right?
Setekh Posted May 1, 2010 Posted May 1, 2010 Awesome! I was searching for it! I saw those crests on many servers and i didn't knew how the did it! Thanks! ITS COMMITTED ON L2JSERVER ! GOD!
Grim. Posted May 1, 2010 Posted May 1, 2010 ITS COMMITTED ON L2JSERVER ! GOD! /pwned @Ventic , gj bro
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now