Перейти к содержанию
Авторизация  
4zh

Эмблема Клана У Нпц

Рекомендуемые сообщения

http://l2maxi.ru/jav...by-s2kento.html

Скачал сборку посмотреть что и как.

Увидел что если клан владеет гираном то у нпц в гиране появляется их эмблема.

 

Вот как мне это сделать на L2jFrozen? Скачанная сборка тоже на фрозенах.

 

Может видел кто гайд?

Заменив ядро на такое же чистое. понял что эту штучку сделали в ядре(то есть конфигов точно у них таких нет).

Изменено пользователем 4zh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

вот вам направление

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

вот вам направление

Помоги исправить.

 

thumb_pre_1372445814__image1.png

Изменено пользователем 4zh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а кто сказал, что это под фрозен, здесь адаптировать только

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а кто сказал, что это под фрозен, здесь адаптировать только

Эту строчку как только не менял

Всегда орёт на первое слово.

Я просто в ява вобще не шарю

 

Town _town = TownManager.getInstance().getTown(_x, _y);

 

Town _town = TownManager.getInstance().getTown(_x, _y, _z);

 

L2TownZone _town = TownManager.getInstance().getTown(_x, _y, _z);

Изменено пользователем 4zh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эту строчку как только не менял

Всегда орёт на первое слово.

Я просто в ява вобще не шарю

 

Town _town = TownManager.getInstance().getTown(_x, _y);

 

Town _town = TownManager.getInstance().getTown(_x, _y, _z);

 

L2TownZone _town = TownManager.getInstance().getTown(_x, _y, _z);

 

где-то и под фрозен было, если найду скину

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

где-то и под фрозен было, если найду скину

Надеюсь не забудешь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

cha.isInZonePeace - здесь проблема в импортах (то ли не хватает какого-то импорта, то ли в импортах эта функция имеет другое название).

L2TownZone - аналогично с выше сказанным.

Изменено пользователем bodyan2011

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надеюсь не забудешь :)

 

Держите

 

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);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Держите

Всё равно на 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;
}
}

 

 

Из за чего так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...