4zh 8 Опубликовано 28 июня, 2013 (изменено) http://l2maxi.ru/jav...by-s2kento.html Скачал сборку посмотреть что и как. Увидел что если клан владеет гираном то у нпц в гиране появляется их эмблема. Вот как мне это сделать на L2jFrozen? Скачанная сборка тоже на фрозенах. Может видел кто гайд? Заменив ядро на такое же чистое. понял что эту штучку сделали в ядре(то есть конфигов точно у них таких нет). Изменено 28 июня, 2013 пользователем 4zh Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 28 июня, 2013 com/l2jfrozen/gameserver/network/serverpackets/NpcInfo.java if(cha instanceof L2NpcInstance && cha.isInZonePeace() && cha.getCastle().getOwnerId() != 0) { int _x = cha.getX(); int _y = cha.getY(); Town _town = TownManager.getInstance().getTown(_x, _y); 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 = alliance.getAllyCrestId(); _allyId = clan.getAllyId(); } } } вот вам направление 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4zh 8 Опубликовано 28 июня, 2013 (изменено) com/l2jfrozen/gameserver/network/serverpackets/NpcInfo.java if(cha instanceof L2NpcInstance && cha.isInZonePeace() && cha.getCastle().getOwnerId() != 0) { int _x = cha.getX(); int _y = cha.getY(); Town _town = TownManager.getInstance().getTown(_x, _y); 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 = alliance.getAllyCrestId(); _allyId = clan.getAllyId(); } } } вот вам направление Помоги исправить. Изменено 28 июня, 2013 пользователем 4zh Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 28 июня, 2013 а кто сказал, что это под фрозен, здесь адаптировать только Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4zh 8 Опубликовано 28 июня, 2013 (изменено) а кто сказал, что это под фрозен, здесь адаптировать только Эту строчку как только не менял Всегда орёт на первое слово. Я просто в ява вобще не шарю Town _town = TownManager.getInstance().getTown(_x, _y); Town _town = TownManager.getInstance().getTown(_x, _y, _z); L2TownZone _town = TownManager.getInstance().getTown(_x, _y, _z); Изменено 28 июня, 2013 пользователем 4zh Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 28 июня, 2013 Эту строчку как только не менял Всегда орёт на первое слово. Я просто в ява вобще не шарю Town _town = TownManager.getInstance().getTown(_x, _y); Town _town = TownManager.getInstance().getTown(_x, _y, _z); L2TownZone _town = TownManager.getInstance().getTown(_x, _y, _z); где-то и под фрозен было, если найду скину Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4zh 8 Опубликовано 28 июня, 2013 где-то и под фрозен было, если найду скину Надеюсь не забудешь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bodyan2011 49 Опубликовано 28 июня, 2013 (изменено) cha.isInZonePeace - здесь проблема в импортах (то ли не хватает какого-то импорта, то ли в импортах эта функция имеет другое название). L2TownZone - аналогично с выше сказанным. Изменено 28 июня, 2013 пользователем bodyan2011 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 29 июня, 2013 Надеюсь не забудешь Держите 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); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4zh 8 Опубликовано 29 июня, 2013 Держите Всё равно на L2TownZone орёт NpcInfo.java - как я вписал /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ 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.actor.instance.L2SummonInstance; /** * This class ... * * @version $Revision: 1.7.2.4.2.9 $ $Date: 2005/04/11 10:05:54 $ */ public class NpcInfo extends L2GameServerPacket { // ddddddddddddddddddffffdddcccccSSddd dddddc // ddddddddddddddddddffffdddcccccSSddd dddddccffd /** The Constant _S__22_NPCINFO. */ private static final String _S__22_NPCINFO = "[s] 16 NpcInfo"; /** The _active char. */ private L2Character _activeChar; /** The _heading. */ private int _x, _y, _z, _heading; /** The _id template. */ private int _idTemplate; /** The _is summoned. */ private boolean _isAttackable, _isSummoned; /** The _p atk spd. */ private int _mAtkSpd, _pAtkSpd; /** The _fly walk spd. */ private int _runSpd, _walkSpd, _swimRunSpd, _swimWalkSpd, _flRunSpd, _flWalkSpd, _flyRunSpd, _flyWalkSpd; /** The _lhand. */ private int _rhand, _lhand; /** The _collision radius. */ private int _collisionHeight, _collisionRadius; /** The _name. */ private String _name = ""; /** The _title. */ private String _title = ""; int _clanCrest = 0; int _allyCrest = 0; int _allyId = 0; int _clanId = 0; /** * Instantiates a new npc info. * * @param cha the cha * @param attacker the attacker */ public NpcInfo(L2NpcInstance cha, L2Character attacker) { /* if(cha.getMxcPoly() != null) { attacker.sendPacket(new MxCPolyInfo(cha)); return; } */ if(cha.getCustomNpcInstance() != null) { attacker.sendPacket(new CustomNpcInfo(cha)); attacker.broadcastPacket(new FinishRotation(cha)); return; } _activeChar = cha; _idTemplate = cha.getTemplate().idTemplate; _isAttackable = cha.isAutoAttackable(attacker); _rhand = cha.getRightHandItem(); _lhand = cha.getLeftHandItem(); _isSummoned = false; _collisionHeight = cha.getCollisionHeight(); _collisionRadius = cha.getCollisionRadius(); if(cha.getTemplate().serverSideName) { _name = cha.getTemplate().name; } if(Config.L2JMOD_CHAMPION_ENABLE && cha.isChampion()) { _title = Config.L2JMOD_CHAMP_TITLE; } else if(cha.getTemplate().serverSideTitle) { _title = cha.getTemplate().title; } else { _title = cha.getTitle(); } if(Config.SHOW_NPC_LVL && _activeChar instanceof L2MonsterInstance) { String t = "Lv " + cha.getLevel() + (cha.getAggroRange() > 0 ? "*" : ""); if(_title != null) { t += " " + _title; } _title = t; } 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(); _heading = _activeChar.getHeading(); _mAtkSpd = _activeChar.getMAtkSpd(); _pAtkSpd = _activeChar.getPAtkSpd(); _runSpd = _activeChar.getRunSpeed(); _walkSpd = _activeChar.getWalkSpeed(); _swimRunSpd = _flRunSpd = _flyRunSpd = _runSpd; _swimWalkSpd = _flWalkSpd = _flyWalkSpd = _walkSpd; } /** * Instantiates a new npc info. * * @param cha the cha * @param attacker the attacker */ public NpcInfo(L2Summon cha, L2Character attacker) { _activeChar = cha; _idTemplate = cha.getTemplate().idTemplate; _isAttackable = cha.isAutoAttackable(attacker); //(cha.getKarma() > 0); _rhand = 0; _lhand = 0; _isSummoned = cha.isShowSummonAnimation(); _collisionHeight = _activeChar.getTemplate().collisionHeight; _collisionRadius = _activeChar.getTemplate().collisionRadius; if(cha.getTemplate().serverSideName || cha instanceof L2PetInstance || cha instanceof L2SummonInstance) { _name = _activeChar.getName(); _title = cha.getTitle(); } _x = _activeChar.getX(); _y = _activeChar.getY(); _z = _activeChar.getZ(); _heading = _activeChar.getHeading(); _mAtkSpd = _activeChar.getMAtkSpd(); _pAtkSpd = _activeChar.getPAtkSpd(); _runSpd = _activeChar.getRunSpeed(); _walkSpd = _activeChar.getWalkSpeed(); _swimRunSpd = _flRunSpd = _flyRunSpd = _runSpd; _swimWalkSpd = _flWalkSpd = _flyWalkSpd = _walkSpd; } /* (non-Javadoc) * @see com.l2jfrozen.gameserver.network.serverpackets.L2GameServerPacket#writeImpl() */ @Override protected final void writeImpl() { if(_activeChar == null) return; if(_activeChar instanceof L2Summon) if(((L2Summon) _activeChar).getOwner() != null && ((L2Summon) _activeChar).getOwner().getAppearance().getInvisible()) return; writeC(0x16); writeD(_activeChar.getObjectId()); writeD(_idTemplate + 1000000); // npctype id writeD(_isAttackable ? 1 : 0); writeD(_x); writeD(_y); writeD(_z); writeD(_heading); writeD(0x00); writeD(_mAtkSpd); writeD(_pAtkSpd); writeD(_runSpd); writeD(_walkSpd); writeD(_swimRunSpd/*0x32*/); // swimspeed writeD(_swimWalkSpd/*0x32*/); // swimspeed writeD(_flRunSpd); writeD(_flWalkSpd); writeD(_flyRunSpd); writeD(_flyWalkSpd); writeF(1.1/*_activeChar.getProperMultiplier()*/); //writeF(1/*_activeChar.getAttackSpeedMultiplier()*/); writeF(_pAtkSpd / 277.478340719); writeF(_collisionRadius); writeF(_collisionHeight); writeD(_rhand); // right hand weapon writeD(0); writeD(_lhand); // left hand weapon writeC(1); // name above char 1=true ... ?? writeC(_activeChar.isRunning() ? 1 : 0); writeC(_activeChar.isInCombat() ? 1 : 0); writeC(_activeChar.isAlikeDead() ? 1 : 0); writeC(_isSummoned ? 2 : 0); // invisible ?? 0=false 1=true 2=summoned (only works if model has a summon animation) writeS(_name); writeS(_title); if(_activeChar instanceof L2Summon){ writeD(0x01);// Title color 0=client default writeD(((L2Summon)_activeChar).getPvpFlag()); writeD(((L2Summon)_activeChar).getKarma()); }else{ writeD(0); writeD(0); writeD(0); } writeD(_activeChar.getAbnormalEffect()); // C2 writeD(_clanId); writeD(_clanCrest); writeD(_allyId); writeD(_allyCrest); writeC(0x00); // C3 team circle 1-blue, 2-red writeF(_collisionRadius); writeF(_collisionHeight); writeD(0x00); // C4 writeD(0x00); // C6 } /* (non-Javadoc) * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType() */ @Override public String getType() { return _S__22_NPCINFO; } } Из за чего так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4zh 8 Опубликовано 30 июня, 2013 up Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты