InFocus Posted September 30, 2018 Share Posted September 30, 2018 How i can add champion aura? it is something like 0x0C i am not sure. Thanks Link to comment Share on other sites More sharing options...
0 InFocus Posted October 2, 2018 Author Share Posted October 2, 2018 Well, Normal and CHampion have same aura with writeD(-1); // High Five NPCString ID writeS(_title); writeD(0x00); if (_npc.isChampion()) { writeC(1); } else { writeC(0); } writeD(0x00); // pvp flag writeD(0x00); // karma http:// Link to comment Share on other sites More sharing options...
0 melron Posted October 2, 2018 Share Posted October 2, 2018 Forget about the packet thing. The problem is with the 'Champion' system. Probably is broken or you just added the method by Ur self Link to comment Share on other sites More sharing options...
0 InFocus Posted October 2, 2018 Author Share Posted October 2, 2018 I don, broke something, i simply add 2 lines in Config.java and if (_npc.isChampion()) { writeC(1); } else { writeC(0); } and this in AbstractNpcInfo.java Link to comment Share on other sites More sharing options...
0 InFocus Posted October 2, 2018 Author Share Posted October 2, 2018 And doesn't work this aura Link to comment Share on other sites More sharing options...
0 SweeTs Posted October 2, 2018 Share Posted October 2, 2018 Or you simply edited wrong writeC, the comment says it's title color. Try editing this line writeC(_npc.getTeam().getId()); If you have it. Not sure what stands for getTeam for npc but you can try. Link to comment Share on other sites More sharing options...
0 InFocus Posted October 2, 2018 Author Share Posted October 2, 2018 (edited) Ok SweeTs, i post now, all my code, /* * Copyright (C) 2004-2015 L2J Server * * This file is part of L2J Server. * * L2J Server 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 3 of the License, or * (at your option) any later version. * * L2J Server 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, see <http://www.gnu.org/licenses/>. */ package com.l2jserver.gameserver.network.serverpackets; import com.l2jserver.Config; import com.l2jserver.gameserver.data.sql.impl.ClanTable; import com.l2jserver.gameserver.instancemanager.TownManager; import com.l2jserver.gameserver.model.L2Clan; import com.l2jserver.gameserver.model.PcCondOverride; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.L2Summon; import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance; import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.actor.instance.L2TrapInstance; import com.l2jserver.gameserver.model.skills.AbnormalVisualEffect; import com.l2jserver.gameserver.model.zone.ZoneId; public abstract class AbstractNpcInfo extends L2GameServerPacket { protected int _x, _y, _z, _heading; protected int _idTemplate; protected boolean _isAttackable, _isSummoned; protected int _mAtkSpd, _pAtkSpd; protected final int _runSpd, _walkSpd; protected final int _swimRunSpd, _swimWalkSpd; protected final int _flyRunSpd, _flyWalkSpd; protected double _moveMultiplier; protected int _rhand, _lhand, _chest, _enchantEffect; protected double _collisionHeight, _collisionRadius; protected String _name = ""; protected String _title = ""; public AbstractNpcInfo(L2Character cha) { _isSummoned = cha.isShowSummonAnimation(); _x = cha.getX(); _y = cha.getY(); _z = cha.getZ(); _heading = cha.getHeading(); _mAtkSpd = cha.getMAtkSpd(); _pAtkSpd = cha.getPAtkSpd(); _moveMultiplier = cha.getMovementSpeedMultiplier(); _runSpd = (int) Math.round(cha.getRunSpeed() / _moveMultiplier); _walkSpd = (int) Math.round(cha.getWalkSpeed() / _moveMultiplier); _swimRunSpd = (int) Math.round(cha.getSwimRunSpeed() / _moveMultiplier); _swimWalkSpd = (int) Math.round(cha.getSwimWalkSpeed() / _moveMultiplier); _flyRunSpd = cha.isFlying() ? _runSpd : 0; _flyWalkSpd = cha.isFlying() ? _walkSpd : 0; } /** * Packet for Npcs */ public static class NpcInfo extends AbstractNpcInfo { private final L2Npc _npc; private int _clanCrest = 0; private int _allyCrest = 0; private int _allyId = 0; private int _clanId = 0; private int _displayEffect = 0; public NpcInfo(L2Npc cha, L2Character attacker) { super(cha); _npc = cha; _idTemplate = cha.getTemplate().getDisplayId(); // On every subclass _rhand = cha.getRightHandItem(); // On every subclass _lhand = cha.getLeftHandItem(); // On every subclass _enchantEffect = cha.getEnchantEffect(); _collisionHeight = cha.getCollisionHeight();// On every subclass _collisionRadius = cha.getCollisionRadius();// On every subclass _isAttackable = cha.isAutoAttackable(attacker); if (cha.getTemplate().isUsingServerSideName()) { _name = cha.getName();// On every subclass } if (_npc.isInvisible()) { _title = "Invisible"; } else if (Config.L2JMOD_CHAMPION_ENABLE && cha.isChampion()) { _title = (Config.L2JMOD_CHAMP_TITLE); // On every subclass } else if (cha.getTemplate().isUsingServerSideTitle()) { _title = cha.getTemplate().getTitle(); // On every subclass } else { _title = cha.getTitle(); // On every subclass } if (Config.SHOW_NPC_LVL && (_npc instanceof L2MonsterInstance)) { String t = "Lv " + cha.getLevel() + (cha.isAggressive() ? "*" : ""); if (_title != null) { t += " " + _title; } _title = t; } // npc crest of owning clan/ally of castle if ((cha instanceof L2NpcInstance) && cha.isInsideZone(ZoneId.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.getId(); _allyCrest = clan.getAllyCrestId(); _allyId = clan.getAllyId(); } } _displayEffect = cha.getDisplayEffect(); } @Override protected void writeImpl() { writeC(0x0c); writeD(_npc.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); writeD(_swimWalkSpd); writeD(_flyRunSpd); writeD(_flyWalkSpd); writeD(_flyRunSpd); writeD(_flyWalkSpd); writeF(_moveMultiplier); writeF(_npc.getAttackSpeedMultiplier()); writeF(_collisionRadius); writeF(_collisionHeight); writeD(_rhand); // right hand weapon writeD(_chest); writeD(_lhand); // left hand weapon writeC(1); // name above char 1=true ... ?? writeC(_npc.isRunning() ? 1 : 0); writeC(_npc.isInCombat() ? 1 : 0); writeC(_npc.isAlikeDead() ? 1 : 0); writeC(_isSummoned ? 2 : 0); // invisible ?? 0=false 1=true 2=summoned (only works if model has a summon animation) writeD(-1); // High Five NPCString ID writeS(_name); writeD(-1); // High Five NPCString ID writeS(_title); writeD(0x00); writeD(0x00); // pvp flag writeD(0x00); // karma writeD(_npc.isInvisible() ? _npc.getAbnormalVisualEffects() | AbnormalVisualEffect.STEALTH.getMask() : _npc.getAbnormalVisualEffects()); writeD(_clanId); // clan id writeD(_clanCrest); // crest id writeD(_allyId); // ally id writeD(_allyCrest); // all crest writeC(_npc.isInsideZone(ZoneId.WATER) ? 1 : _npc.isFlying() ? 2 : 0); // C2 writeC(_npc.getTeam().getId()); writeF(_collisionRadius); writeF(_collisionHeight); writeD(_enchantEffect); // C4 writeD(_npc.isFlying() ? 1 : 0); // C6 writeD(_npc.getColorEffect()); // CT1.5 Pet form and skills, Color effect writeC(_npc.isTargetable() ? 0x01 : 0x00); writeC(_npc.isShowName() ? 0x01 : 0x00); writeD(_npc.getAbnormalVisualEffectSpecial()); writeD(_displayEffect); } /** * @param object */ } public static class TrapInfo extends AbstractNpcInfo { private final L2TrapInstance _trap; public TrapInfo(L2TrapInstance cha, L2Character attacker) { super(cha); _trap = cha; _idTemplate = cha.getTemplate().getDisplayId(); _isAttackable = cha.isAutoAttackable(attacker); _rhand = 0; _lhand = 0; _collisionHeight = _trap.getTemplate().getfCollisionHeight(); _collisionRadius = _trap.getTemplate().getfCollisionRadius(); if (cha.getTemplate().isUsingServerSideName()) { _name = cha.getName(); } _title = cha.getOwner() != null ? cha.getOwner().getName() : ""; } @Override protected void writeImpl() { writeC(0x0c); writeD(_trap.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); writeD(_swimWalkSpd); writeD(_flyRunSpd); writeD(_flyWalkSpd); writeD(_flyRunSpd); writeD(_flyWalkSpd); writeF(_moveMultiplier); writeF(_trap.getAttackSpeedMultiplier()); writeF(_collisionRadius); writeF(_collisionHeight); writeD(_rhand); // right hand weapon writeD(_chest); writeD(_lhand); // left hand weapon writeC(1); // name above char 1=true ... ?? writeC(1); writeC(_trap.isInCombat() ? 1 : 0); writeC(_trap.isAlikeDead() ? 1 : 0); writeC(_isSummoned ? 2 : 0); // invisible ?? 0=false 1=true 2=summoned (only works if model has a summon animation) writeD(-1); // High Five NPCString ID writeS(_name); writeD(-1); // High Five NPCString ID writeS(_title); writeD(0x01); // title color 0 = client default writeD(_trap.getPvpFlag()); writeD(_trap.getKarma()); writeD(_trap.isInvisible() ? _trap.getAbnormalVisualEffects() | AbnormalVisualEffect.STEALTH.getMask() : _trap.getAbnormalVisualEffects()); writeD(0x00); // clan id writeD(0x00); // crest id writeD(0000); // C2 writeD(0000); // C2 writeC(0000); // C2 writeC(_trap.getTeam().getId()); writeF(_collisionRadius); writeF(_collisionHeight); writeD(0x00); // C4 writeD(0x00); // C6 writeD(0x00); writeD(0);// CT1.5 Pet form and skills writeC(0x01); writeC(0x01); writeD(0x00); } } /** * Packet for summons. */ public static class SummonInfo extends AbstractNpcInfo { private final L2Summon _summon; private final int _form; private final int _val; public SummonInfo(L2Summon cha, L2Character attacker, int val) { super(cha); _summon = cha; _val = val; _form = cha.getFormId(); _isAttackable = cha.isAutoAttackable(attacker); _rhand = cha.getWeapon(); _lhand = 0; _chest = cha.getArmor(); _enchantEffect = cha.getTemplate().getWeaponEnchant(); _name = cha.getName(); _title = (cha.getOwner() != null) && cha.getOwner().isOnline() ? cha.getOwner().getName() : ""; _idTemplate = cha.getTemplate().getDisplayId(); _collisionHeight = cha.getTemplate().getfCollisionHeight(); _collisionRadius = cha.getTemplate().getfCollisionRadius(); setInvisible(cha.isInvisible()); } @Override protected void writeImpl() { boolean gmSeeInvis = false; if (isInvisible()) { final L2PcInstance activeChar = getClient().getActiveChar(); if ((activeChar != null) && activeChar.canOverrideCond(PcCondOverride.SEE_ALL_PLAYERS)) { gmSeeInvis = true; } } writeC(0x0c); writeD(_summon.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); writeD(_swimWalkSpd); writeD(_flyRunSpd); writeD(_flyWalkSpd); writeD(_flyRunSpd); writeD(_flyWalkSpd); writeF(_moveMultiplier); writeF(_summon.getAttackSpeedMultiplier()); writeF(_collisionRadius); writeF(_collisionHeight); writeD(_rhand); // right hand weapon writeD(_chest); writeD(_lhand); // left hand weapon writeC(0x01); // name above char 1=true ... ?? writeC(0x01); // always running 1=running 0=walking writeC(_summon.isInCombat() ? 1 : 0); writeC(_summon.isAlikeDead() ? 1 : 0); writeC(_val); // invisible ?? 0=false 1=true 2=summoned (only works if model has a summon animation) writeD(-1); // High Five NPCString ID writeS(_name); writeD(-1); // High Five NPCString ID writeS(_title); writeD(_summon.getPvpFlag()); writeD(_summon.getKarma()); writeD(gmSeeInvis ? _summon.getAbnormalVisualEffects() | AbnormalVisualEffect.STEALTH.getMask() : _summon.getAbnormalVisualEffects()); writeD(0x00); // clan id writeD(0x00); // crest id writeD(0x00); // C2 writeD(0x00); // C2 writeC(_summon.isInsideZone(ZoneId.WATER) ? 1 : _summon.isFlying() ? 2 : 0); // C2 writeC(_summon.getTeam().getId()); writeF(_collisionRadius); writeF(_collisionHeight); writeD(_enchantEffect); // C4 writeD(0x00); // C6 writeD(0x00); writeD(_form); // CT1.5 Pet form and skills writeC(0x01); writeC(0x01); writeD(_summon.getAbnormalVisualEffectSpecial()); } } } And tell me exactly where i put if (_npc.isChampion()) { writeC(0); } else { writeC(1); } Help me this time, or give me a suggestion, I want to close this topic. And i want to solve it :(( Edited October 2, 2018 by InFocus Link to comment Share on other sites More sharing options...
0 melron Posted October 2, 2018 Share Posted October 2, 2018 try this - writeC(_npc.getTeam().getId()); + writeC(_npc.isChampion? Config.CHAMPION_AURA_TYPE : _npc.getTeam().getId()); Link to comment Share on other sites More sharing options...
0 InFocus Posted October 3, 2018 Author Share Posted October 3, 2018 Doesn't work melron and SweeTs Everything i do, no work that aura for champions, i try all methods. :(( Link to comment Share on other sites More sharing options...
0 InFocus Posted October 3, 2018 Author Share Posted October 3, 2018 15 hours ago, melron said: try this - writeC(_npc.getTeam().getId()); + writeC(_npc.isChampion? Config.CHAMPION_AURA_TYPE : _npc.getTeam().getId()); writeC(_npc.isChampion() ? Config.CHAMPION_AURA_TYPE : _npc.getTeam().getId()); and with this setting , http:// Link to comment Share on other sites More sharing options...
0 InFocus Posted October 3, 2018 Author Share Posted October 3, 2018 Nothing work Link to comment Share on other sites More sharing options...
0 melron Posted October 3, 2018 Share Posted October 3, 2018 This one is the correct. If it does not work then, either the config is not parsed or the method for champion is wrong Link to comment Share on other sites More sharing options...
0 InFocus Posted October 3, 2018 Author Share Posted October 3, 2018 (edited) And what i can do ? What i can modify? This is in Config.java CHAMPION_AURA_TYPE = NPC.getInt("ChampionAuraType", 0); Edited October 3, 2018 by InFocus Link to comment Share on other sites More sharing options...
0 SweeTs Posted October 3, 2018 Share Posted October 3, 2018 Eh, you are showing us monsters.. but the config is for CHAMPION. Does those mobs are champions?! NO, I don't think so. So, until you don't find a champion monster, you can't say if it's working or not. So, simply change the line to 1 or 2, to give aura for all monsters - if you see the aura, the line is LEGIT and your champion config sux balls, you are wasting our time showing normal monster. Which means, you are... Link to comment Share on other sites More sharing options...
0 InFocus Posted October 3, 2018 Author Share Posted October 3, 2018 (edited) I set monster frequency up to 99%, so? Edited October 3, 2018 by InFocus Link to comment Share on other sites More sharing options...
0 SweeTs Posted October 3, 2018 Share Posted October 3, 2018 When monster is a champion, you should see a title "Champion". Check champion settings, enable, chage chance, set proper level range. If it's broken, it's broken. Link to comment Share on other sites More sharing options...
Question
InFocus
How i can add champion aura? it is something like 0x0C i am not sure. Thanks
Link to comment
Share on other sites
82 answers to this question
Recommended Posts