Sync with L2JServer Jan 24th 2015.
This commit is contained in:
@ -42,15 +42,16 @@ import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.LoginServerThread;
|
||||
import com.l2jserver.gameserver.LoginServerThread.SessionKey;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.datatables.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
|
||||
import com.l2jserver.gameserver.model.CharSelectInfoPackage;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.PcCondOverride;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.L2Event;
|
||||
import com.l2jserver.gameserver.model.olympiad.OlympiadManager;
|
||||
@ -782,18 +783,26 @@ public final class L2GameClient extends MMOClient<MMOConnection<L2GameClient>> i
|
||||
OlympiadManager.getInstance().unRegisterNoble(getActiveChar());
|
||||
|
||||
// If the L2PcInstance has Pet, unsummon it
|
||||
if (getActiveChar().hasSummon())
|
||||
L2Summon pet = getActiveChar().getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
getActiveChar().getSummon().setRestoreSummon(true);
|
||||
pet.setRestoreSummon(true);
|
||||
|
||||
getActiveChar().getSummon().unSummon(getActiveChar());
|
||||
pet.unSummon(getActiveChar());
|
||||
pet = getActiveChar().getPet();
|
||||
// Dead pet wasn't unsummoned, broadcast npcinfo changes (pet will be without owner name - means owner offline)
|
||||
if (getActiveChar().getSummon() != null)
|
||||
if (pet != null)
|
||||
{
|
||||
getActiveChar().getSummon().broadcastNpcInfo(0);
|
||||
pet.broadcastNpcInfo(0);
|
||||
}
|
||||
}
|
||||
|
||||
getActiveChar().getServitors().values().forEach(s ->
|
||||
{
|
||||
s.setRestoreSummon(true);
|
||||
s.unSummon(getActiveChar());
|
||||
});
|
||||
|
||||
if (Config.OFFLINE_SET_NAME_COLOR)
|
||||
{
|
||||
getActiveChar().getAppearance().setNameColor(Config.OFFLINE_NAME_COLOR);
|
||||
@ -948,10 +957,12 @@ public final class L2GameClient extends MMOClient<MMOConnection<L2GameClient>> i
|
||||
if ((player != null) && player.isOnline()) // safety precaution
|
||||
{
|
||||
saveCharToDisk();
|
||||
if (player.hasSummon())
|
||||
final L2Summon pet = player.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
player.getSummon().storeMe();
|
||||
pet.storeMe();
|
||||
}
|
||||
player.getServitors().values().forEach(L2Summon::storeMe);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
@ -24,12 +24,12 @@ import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.datatables.CharTemplateTable;
|
||||
import com.l2jserver.gameserver.datatables.InitialEquipmentData;
|
||||
import com.l2jserver.gameserver.datatables.InitialShortcutData;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.InitialEquipmentData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.InitialShortcutData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.PlayerTemplateData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.model.L2SkillLearn;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
@ -180,7 +180,7 @@ public final class CharacterCreate extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
template = CharTemplateTable.getInstance().getTemplate(_classId);
|
||||
template = PlayerTemplateData.getInstance().getTemplate(_classId);
|
||||
if ((template == null) || (ClassId.getClassId(_classId).level() > 0))
|
||||
{
|
||||
if (Config.DEBUG)
|
||||
|
@ -23,8 +23,8 @@ import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.datatables.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
|
||||
import com.l2jserver.gameserver.instancemanager.PunishmentManager;
|
||||
import com.l2jserver.gameserver.model.CharSelectInfoPackage;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.enums.PlayerAction;
|
||||
import com.l2jserver.gameserver.handler.AdminCommandHandler;
|
||||
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
|
||||
@ -84,7 +84,7 @@ public final class DlgAnswer extends L2GameClientPacket
|
||||
}
|
||||
String command = cmd.split(" ")[0];
|
||||
IAdminCommandHandler ach = AdminCommandHandler.getInstance().getHandler(command);
|
||||
if (AdminTable.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
if (AdminData.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
{
|
||||
if (Config.GMAUDIT)
|
||||
{
|
||||
|
@ -21,11 +21,11 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.LoginServerThread;
|
||||
import com.l2jserver.gameserver.cache.HtmCache;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.datatables.AnnouncementsTable;
|
||||
import com.l2jserver.gameserver.datatables.BeautyShopData;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.data.sql.impl.AnnouncementsTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BeautyShopData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
|
||||
import com.l2jserver.gameserver.instancemanager.CastleManager;
|
||||
@ -175,34 +175,34 @@ public class EnterWorld extends L2GameClientPacket
|
||||
// Apply special GM properties to the GM when entering
|
||||
if (activeChar.isGM())
|
||||
{
|
||||
if (Config.GM_STARTUP_INVULNERABLE && AdminTable.getInstance().hasAccess("admin_invul", activeChar.getAccessLevel()))
|
||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", activeChar.getAccessLevel()))
|
||||
{
|
||||
activeChar.setIsInvul(true);
|
||||
}
|
||||
|
||||
if (Config.GM_STARTUP_INVISIBLE && AdminTable.getInstance().hasAccess("admin_invisible", activeChar.getAccessLevel()))
|
||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", activeChar.getAccessLevel()))
|
||||
{
|
||||
activeChar.setInvisible(true);
|
||||
}
|
||||
|
||||
if (Config.GM_STARTUP_SILENCE && AdminTable.getInstance().hasAccess("admin_silence", activeChar.getAccessLevel()))
|
||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", activeChar.getAccessLevel()))
|
||||
{
|
||||
activeChar.setSilenceMode(true);
|
||||
}
|
||||
|
||||
if (Config.GM_STARTUP_DIET_MODE && AdminTable.getInstance().hasAccess("admin_diet", activeChar.getAccessLevel()))
|
||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", activeChar.getAccessLevel()))
|
||||
{
|
||||
activeChar.setDietMode(true);
|
||||
activeChar.refreshOverloaded();
|
||||
}
|
||||
|
||||
if (Config.GM_STARTUP_AUTO_LIST && AdminTable.getInstance().hasAccess("admin_gmliston", activeChar.getAccessLevel()))
|
||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", activeChar.getAccessLevel()))
|
||||
{
|
||||
AdminTable.getInstance().addGm(activeChar, false);
|
||||
AdminData.getInstance().addGm(activeChar, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
AdminTable.getInstance().addGm(activeChar, true);
|
||||
AdminData.getInstance().addGm(activeChar, true);
|
||||
}
|
||||
|
||||
if (Config.GM_GIVE_SPECIAL_SKILLS)
|
||||
|
@ -47,6 +47,8 @@ public class MoveBackwardToLocation extends L2GameClientPacket
|
||||
private int _originX;
|
||||
private int _originY;
|
||||
private int _originZ;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private int _moveMovement;
|
||||
|
||||
@Override
|
||||
@ -133,23 +135,15 @@ public class MoveBackwardToLocation extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
// Disable keyboard movement when geodata is not enabled and player is not flying.
|
||||
if ((_moveMovement == 0) && (Config.GEODATA < 1) && !activeChar.isFlying())
|
||||
double dx = _targetX - activeChar.getX();
|
||||
double dy = _targetY - activeChar.getY();
|
||||
// Can't move if character is confused, or trying to move a huge distance
|
||||
if (activeChar.isOutOfControl() || (((dx * dx) + (dy * dy)) > 98010000)) // 9900*9900
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
double dx = _targetX - activeChar.getX();
|
||||
double dy = _targetY - activeChar.getY();
|
||||
// Can't move if character is confused, or trying to move a huge distance
|
||||
if (activeChar.isOutOfControl() || (((dx * dx) + (dy * dy)) > 98010000)) // 9900*9900
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(_targetX, _targetY, _targetZ));
|
||||
}
|
||||
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(_targetX, _targetY, _targetZ));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -23,7 +23,7 @@ import java.util.ArrayList;
|
||||
import javolution.util.FastList;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.MultisellData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.MultisellData;
|
||||
import com.l2jserver.gameserver.model.Elementals;
|
||||
import com.l2jserver.gameserver.model.L2Augmentation;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.CharTemplateTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.PlayerTemplateData;
|
||||
import com.l2jserver.gameserver.model.base.ClassId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NewCharacterSuccess;
|
||||
|
||||
@ -45,19 +45,19 @@ public final class NewCharacter extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final NewCharacterSuccess ct = new NewCharacterSuccess();
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.FIGHTER)); // Human Figther
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.MAGE)); // Human Mystic
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.ELVEN_FIGHTER)); // Elven Fighter
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.ELVEN_MAGE)); // Elven Mystic
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.DARK_FIGHTER)); // Dark Fighter
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.DARK_MAGE)); // Dark Mystic
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.ORC_FIGHTER)); // Orc Fighter
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.ORC_MAGE)); // Orc Mystic
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.DWARVEN_FIGHTER)); // Dwarf Fighter
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.MALE_SOLDIER)); // Male Kamael Soldier
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.FEMALE_SOLDIER)); // Female Kamael Soldier
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.ERTHEIA_FIGHTER)); // Ertheia Fighter
|
||||
ct.addChar(CharTemplateTable.getInstance().getTemplate(ClassId.ERTHEIA_WIZARD)); // Ertheia Wizard
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.FIGHTER)); // Human Figther
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.MAGE)); // Human Mystic
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ELVEN_FIGHTER)); // Elven Fighter
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ELVEN_MAGE)); // Elven Mystic
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.DARK_FIGHTER)); // Dark Fighter
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.DARK_MAGE)); // Dark Mystic
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ORC_FIGHTER)); // Orc Fighter
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ORC_MAGE)); // Orc Mystic
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.DWARVEN_FIGHTER)); // Dwarf Fighter
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.MALE_SOLDIER)); // Male Kamael Soldier
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.FEMALE_SOLDIER)); // Female Kamael Soldier
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ERTHEIA_FIGHTER)); // Ertheia Fighter
|
||||
ct.addChar(PlayerTemplateData.getInstance().getTemplate(ClassId.ERTHEIA_WIZARD)); // Ertheia Wizard
|
||||
sendPacket(ct);
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.model.L2SkillLearn;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
|
@ -21,8 +21,8 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.enums.CategoryType;
|
||||
import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
@ -310,6 +310,16 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
{
|
||||
giveSkill(activeChar, trainer, skill);
|
||||
}
|
||||
|
||||
final List<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableTransferSkills(activeChar);
|
||||
if (skills.isEmpty())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN);
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.TRANSFER));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SUBCLASS:
|
||||
@ -619,11 +629,15 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
|
||||
if (!s.getRemoveSkills().isEmpty())
|
||||
{
|
||||
s.getRemoveSkills().forEach(sk ->
|
||||
s.getRemoveSkills().forEach(skillId ->
|
||||
{
|
||||
if (player.getSkillLevel(sk) > 0)
|
||||
if (player.getSkillLevel(skillId) > 0)
|
||||
{
|
||||
player.removeSkill(sk, true);
|
||||
final Skill skillToRemove = player.getKnownSkill(skillId);
|
||||
if (skillToRemove != null)
|
||||
{
|
||||
player.removeSkill(skillToRemove, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -18,8 +18,8 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.enums.CategoryType;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.model.ClanPrivilege;
|
||||
|
@ -25,10 +25,10 @@ import com.l2jserver.gameserver.ai.CtrlEvent;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.ai.L2SummonAI;
|
||||
import com.l2jserver.gameserver.ai.NextAction;
|
||||
import com.l2jserver.gameserver.data.sql.impl.SummonSkillsTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.PetDataTable;
|
||||
import com.l2jserver.gameserver.datatables.BotReportTable;
|
||||
import com.l2jserver.gameserver.datatables.PetDataTable;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.datatables.SummonSkillsTable;
|
||||
import com.l2jserver.gameserver.enums.MountType;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.instancemanager.AirShipManager;
|
||||
@ -134,7 +134,8 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
}
|
||||
|
||||
final L2Summon summon = activeChar.getSummon();
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
final L2Summon servitor = activeChar.getAnyServitor();
|
||||
final L2Object target = activeChar.getTarget();
|
||||
switch (_actionId)
|
||||
{
|
||||
@ -167,48 +168,48 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
activeChar.tryOpenPrivateSellStore(false);
|
||||
break;
|
||||
case 15: // Change Movement Mode (Pets)
|
||||
if (validateSummon(summon, true))
|
||||
if (validateSummon(pet, true))
|
||||
{
|
||||
((L2SummonAI) summon.getAI()).notifyFollowStatusChange();
|
||||
((L2SummonAI) pet.getAI()).notifyFollowStatusChange();
|
||||
}
|
||||
break;
|
||||
case 16: // Attack (Pets)
|
||||
if (validateSummon(summon, true))
|
||||
if (validateSummon(pet, true))
|
||||
{
|
||||
if (summon.canAttack(_ctrlPressed))
|
||||
if (pet.canAttack(_ctrlPressed))
|
||||
{
|
||||
summon.doAttack();
|
||||
pet.doAttack();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 17: // Stop (Pets)
|
||||
if (validateSummon(summon, true))
|
||||
if (validateSummon(pet, true))
|
||||
{
|
||||
summon.cancelAction();
|
||||
pet.cancelAction();
|
||||
}
|
||||
break;
|
||||
case 19: // Unsummon Pet
|
||||
|
||||
if (!validateSummon(summon, true))
|
||||
if (!validateSummon(pet, true))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (summon.isDead())
|
||||
if (pet.isDead())
|
||||
{
|
||||
sendPacket(SystemMessageId.DEAD_PETS_CANNOT_BE_RETURNED_TO_THEIR_SUMMONING_ITEM);
|
||||
break;
|
||||
}
|
||||
|
||||
if (summon.isAttackingNow() || summon.isInCombat() || summon.isMovementDisabled())
|
||||
if (pet.isAttackingNow() || pet.isInCombat() || pet.isMovementDisabled())
|
||||
{
|
||||
sendPacket(SystemMessageId.A_PET_CANNOT_BE_UNSUMMONED_DURING_BATTLE);
|
||||
break;
|
||||
}
|
||||
|
||||
if (summon.isHungry())
|
||||
if (pet.isHungry())
|
||||
{
|
||||
if (summon.isPet() && !((L2PetInstance) summon).getPetData().getFood().isEmpty())
|
||||
if (!((L2PetInstance) pet).getPetData().getFood().isEmpty())
|
||||
{
|
||||
sendPacket(SystemMessageId.YOU_MAY_NOT_RESTORE_A_HUNGRY_PET);
|
||||
}
|
||||
@ -219,27 +220,27 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
break;
|
||||
}
|
||||
|
||||
summon.unSummon(activeChar);
|
||||
pet.unSummon(activeChar);
|
||||
break;
|
||||
case 21: // Change Movement Mode (Servitors)
|
||||
if (validateSummon(summon, false))
|
||||
if (validateSummon(servitor, false))
|
||||
{
|
||||
((L2SummonAI) summon.getAI()).notifyFollowStatusChange();
|
||||
((L2SummonAI) servitor.getAI()).notifyFollowStatusChange();
|
||||
}
|
||||
break;
|
||||
case 22: // Attack (Servitors)
|
||||
if (validateSummon(summon, false))
|
||||
if (validateSummon(servitor, false))
|
||||
{
|
||||
if (summon.canAttack(_ctrlPressed))
|
||||
if (servitor.canAttack(_ctrlPressed))
|
||||
{
|
||||
summon.doAttack();
|
||||
servitor.doAttack();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 23: // Stop (Servitors)
|
||||
if (validateSummon(summon, false))
|
||||
if (validateSummon(servitor, false))
|
||||
{
|
||||
summon.cancelAction();
|
||||
servitor.cancelAction();
|
||||
}
|
||||
break;
|
||||
case 28: // Private Store - Buy
|
||||
@ -270,13 +271,13 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
sendPacket(new RecipeShopManageList(activeChar, true));
|
||||
break;
|
||||
case 38: // Mount/Dismount
|
||||
activeChar.mountPlayer(summon);
|
||||
activeChar.mountPlayer(pet);
|
||||
break;
|
||||
case 39: // Soulless - Parasite Burst
|
||||
useSkill(4138, false);
|
||||
break;
|
||||
case 41: // Wild Hog Cannon - Attack
|
||||
if (validateSummon(summon, false))
|
||||
if (validateSummon(servitor, false))
|
||||
{
|
||||
if ((target != null) && (target.isDoor() || (target instanceof L2SiegeFlagInstance)))
|
||||
{
|
||||
@ -329,33 +330,33 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
sendPacket(new RecipeShopManageList(activeChar, false));
|
||||
break;
|
||||
case 52: // Unsummon Servitor
|
||||
if (validateSummon(summon, false))
|
||||
if (validateSummon(servitor, false))
|
||||
{
|
||||
if (summon.isAttackingNow() || summon.isInCombat())
|
||||
if (servitor.isAttackingNow() || servitor.isInCombat())
|
||||
{
|
||||
sendPacket(SystemMessageId.A_SERVITOR_WHOM_IS_ENGAGED_IN_BATTLE_CANNOT_BE_DE_ACTIVATED);
|
||||
break;
|
||||
}
|
||||
summon.unSummon(activeChar);
|
||||
servitor.unSummon(activeChar);
|
||||
}
|
||||
break;
|
||||
case 53: // Move to target (Servitors)
|
||||
if (validateSummon(summon, false))
|
||||
if (validateSummon(servitor, false))
|
||||
{
|
||||
if ((target != null) && (summon != target) && !summon.isMovementDisabled())
|
||||
if ((target != null) && (servitor != target) && !servitor.isMovementDisabled())
|
||||
{
|
||||
summon.setFollowStatus(false);
|
||||
summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
servitor.setFollowStatus(false);
|
||||
servitor.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 54: // Move to target (Pets)
|
||||
if (validateSummon(summon, true))
|
||||
if (validateSummon(pet, true))
|
||||
{
|
||||
if ((target != null) && (summon != target) && !summon.isMovementDisabled())
|
||||
if ((target != null) && (pet != target) && !pet.isMovementDisabled())
|
||||
{
|
||||
summon.setFollowStatus(false);
|
||||
summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
pet.setFollowStatus(false);
|
||||
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -447,9 +448,9 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
break;
|
||||
case 1001: // Sin Eater - Ultimate Bombastic Buster
|
||||
if (validateSummon(summon, true) && (summon.getId() == SIN_EATER_ID))
|
||||
if (validateSummon(pet, true) && (pet.getId() == SIN_EATER_ID))
|
||||
{
|
||||
summon.broadcastPacket(new NpcSay(summon.getObjectId(), Say2.NPC_ALL, summon.getId(), NPC_STRINGS[Rnd.get(NPC_STRINGS.length)]));
|
||||
pet.broadcastPacket(new NpcSay(pet.getObjectId(), Say2.NPC_ALL, pet.getId(), NPC_STRINGS[Rnd.get(NPC_STRINGS.length)]));
|
||||
}
|
||||
break;
|
||||
case 1003: // Wind Hatchling/Strider - Wild Stun
|
||||
@ -663,9 +664,9 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
useSkill(6044, false);
|
||||
break;
|
||||
case 1084: // Switch State
|
||||
if (summon instanceof L2BabyPetInstance)
|
||||
if (pet instanceof L2BabyPetInstance)
|
||||
{
|
||||
useSkill(6054, true);
|
||||
useSkill(SWITCH_STANCE_ID, true);
|
||||
}
|
||||
break;
|
||||
case 1086: // Panther Cancel
|
||||
@ -707,6 +708,172 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
case 1098: // Elite Maguen - Maguen Party Return
|
||||
useSkill(6684, true);
|
||||
break;
|
||||
case 1099: // All servitor attack
|
||||
activeChar.getServitors().values().forEach(s ->
|
||||
{
|
||||
if (validateSummon(s, false))
|
||||
{
|
||||
if (s.canAttack(_ctrlPressed))
|
||||
{
|
||||
s.doAttack();
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
case 1100: // All servitor move to
|
||||
activeChar.getServitors().values().forEach(s ->
|
||||
{
|
||||
if (validateSummon(s, false))
|
||||
{
|
||||
if ((target != null) && (s != target) && !s.isMovementDisabled())
|
||||
{
|
||||
s.setFollowStatus(false);
|
||||
s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
case 1101: // All servitor stop
|
||||
activeChar.getServitors().values().forEach(summon ->
|
||||
{
|
||||
if (validateSummon(summon, false))
|
||||
{
|
||||
summon.cancelAction();
|
||||
}
|
||||
});
|
||||
break;
|
||||
case 1102: // Unsummon all servitors
|
||||
boolean canUnsummon = true;
|
||||
OUT: for (L2Summon s : activeChar.getServitors().values())
|
||||
{
|
||||
if (validateSummon(s, false))
|
||||
{
|
||||
if (s.isAttackingNow() || s.isInCombat())
|
||||
{
|
||||
sendPacket(SystemMessageId.A_SERVITOR_WHOM_IS_ENGAGED_IN_BATTLE_CANNOT_BE_DE_ACTIVATED);
|
||||
canUnsummon = false;
|
||||
break OUT;
|
||||
}
|
||||
s.unSummon(activeChar);
|
||||
}
|
||||
}
|
||||
if (canUnsummon)
|
||||
{
|
||||
activeChar.getServitors().values().stream().forEach(s ->
|
||||
{
|
||||
s.unSummon(activeChar);
|
||||
});
|
||||
}
|
||||
break;
|
||||
case 1103: // seems to be passive mode
|
||||
break;
|
||||
case 1104: // seems to be defend mode
|
||||
break;
|
||||
case 1106: // Cute Bear - Bear Claw
|
||||
useServitorsSkill(11278);
|
||||
break;
|
||||
case 1107: // Cute Bear - Bear Tumbling
|
||||
useServitorsSkill(11279);
|
||||
break;
|
||||
case 1108: // Saber Tooth Cougar- Cougar Bite
|
||||
useServitorsSkill(11280);
|
||||
break;
|
||||
case 1109: // Saber Tooth Cougar - Cougar Pounce
|
||||
useServitorsSkill(11281);
|
||||
break;
|
||||
case 1110: // Grim Reaper - Reaper Touch
|
||||
useServitorsSkill(11282);
|
||||
break;
|
||||
case 1111: // Grim Reaper - Reaper Power
|
||||
useServitorsSkill(11283);
|
||||
break;
|
||||
case 1113: // Golden Lion - Lion Roar
|
||||
useSkill(10051, false);
|
||||
break;
|
||||
case 1114: // Golden Lion - Lion Claw
|
||||
useSkill(10052, false);
|
||||
break;
|
||||
case 1115: // Golden Lion - Lion Dash
|
||||
useSkill(10053, false);
|
||||
break;
|
||||
case 1116: // Golden Lion - Lion Flame
|
||||
useSkill(10054, false);
|
||||
break;
|
||||
case 1117: // Thunder Hawk - Thunder Flight
|
||||
useSkill(10794, false);
|
||||
break;
|
||||
case 1118: // Thunder Hawk - Thunder Purity
|
||||
useSkill(10795, false);
|
||||
break;
|
||||
case 1120: // Thunder Hawk - Thunder Feather Blast
|
||||
useSkill(10797, false);
|
||||
break;
|
||||
case 1121: // Thunder Hawk - Thunder Sharp Claw
|
||||
useSkill(10798, false);
|
||||
break;
|
||||
case 1122: // Tree of Life - Blessing of Tree
|
||||
useServitorsSkill(11806);
|
||||
break;
|
||||
case 1124: // Wynn Kai the Cat - Feline Aggression
|
||||
useServitorsSkill(11323);
|
||||
break;
|
||||
case 1125: // Wynn Kai the Cat - Feline Stun
|
||||
useServitorsSkill(11324);
|
||||
break;
|
||||
case 1126: // Wynn Feline King - Feline Bite
|
||||
useServitorsSkill(11325);
|
||||
break;
|
||||
case 1127: // Wynn Feline King - Feline Pounce
|
||||
useServitorsSkill(11326);
|
||||
break;
|
||||
case 1128: // Wynn Feline Queen - Feline Touch
|
||||
useServitorsSkill(11327);
|
||||
break;
|
||||
case 1129: // Wynn Feline Queen - Feline Power
|
||||
useServitorsSkill(11328);
|
||||
break;
|
||||
case 1130: // Wynn Merrow - Unicorn's Aggression
|
||||
useServitorsSkill(11332);
|
||||
break;
|
||||
case 1131: // Wynn Merrow - Unicorn's Stun
|
||||
useServitorsSkill(11333);
|
||||
break;
|
||||
case 1132: // Wynn Magnus - Unicorn's Bite
|
||||
useServitorsSkill(11334);
|
||||
break;
|
||||
case 1133: // Wynn Magnus - Unicorn's Pounce
|
||||
useServitorsSkill(11335);
|
||||
break;
|
||||
case 1134: // Wynn Seraphim - Unicorn's Touch
|
||||
useServitorsSkill(11336);
|
||||
break;
|
||||
case 1135: // Wynn Seraphim - Unicorn's Power
|
||||
useServitorsSkill(11337);
|
||||
break;
|
||||
case 1136: // Wynn Nightshade - Phantom Aggression
|
||||
useServitorsSkill(11341);
|
||||
break;
|
||||
case 1137: // Wynn Nightshade - Phantom Stun
|
||||
useServitorsSkill(11342);
|
||||
break;
|
||||
case 1138: // Wynn Spectral Lord - Phantom Bite
|
||||
useServitorsSkill(11343);
|
||||
break;
|
||||
case 1139: // Wynn Spectral Lord - Phantom Pounce
|
||||
useServitorsSkill(11344);
|
||||
break;
|
||||
case 1140: // Wynn Soulless - Phantom Touch
|
||||
useServitorsSkill(11345);
|
||||
break;
|
||||
case 1141: // Wynn Soulless - Phantom Power
|
||||
useServitorsSkill(11346);
|
||||
break;
|
||||
case 1142: // Blood Panther - Panther Roar
|
||||
useServitorsSkill(10087);
|
||||
break;
|
||||
case 1143: // Blood Panther - Panther Rush
|
||||
useServitorsSkill(10088);
|
||||
break;
|
||||
case 5000: // Baby Rudolph - Reindeer Scratch
|
||||
useSkill(23155, true);
|
||||
break;
|
||||
@ -866,45 +1033,57 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final L2Summon summon = activeChar.getSummon();
|
||||
if (!validateSummon(summon, pet))
|
||||
if (pet)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (summon instanceof L2BabyPetInstance)
|
||||
{
|
||||
if (!((L2BabyPetInstance) summon).isInSupportMode())
|
||||
final L2Summon summon = activeChar.getPet();
|
||||
if (!validateSummon(summon, pet))
|
||||
{
|
||||
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
int lvl = 0;
|
||||
if (summon.isPet())
|
||||
{
|
||||
|
||||
if (summon instanceof L2BabyPetInstance)
|
||||
{
|
||||
if (!((L2BabyPetInstance) summon).isInSupportMode())
|
||||
{
|
||||
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ((summon.getLevel() - activeChar.getLevel()) > 20)
|
||||
{
|
||||
sendPacket(SystemMessageId.YOUR_PET_IS_TOO_HIGH_LEVEL_TO_CONTROL);
|
||||
return;
|
||||
}
|
||||
lvl = PetDataTable.getInstance().getPetData(summon.getId()).getAvailableLevel(skillId, summon.getLevel());
|
||||
|
||||
final int lvl = PetDataTable.getInstance().getPetData(summon.getId()).getAvailableLevel(skillId, summon.getLevel());
|
||||
|
||||
if (lvl > 0)
|
||||
{
|
||||
summon.setTarget(target);
|
||||
summon.useMagic(SkillData.getInstance().getSkill(skillId, lvl), _ctrlPressed, _shiftPressed);
|
||||
}
|
||||
|
||||
if (skillId == SWITCH_STANCE_ID)
|
||||
{
|
||||
summon.switchMode();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lvl = SummonSkillsTable.getInstance().getAvailableLevel(summon, skillId);
|
||||
}
|
||||
|
||||
if (lvl > 0)
|
||||
{
|
||||
summon.setTarget(target);
|
||||
summon.useMagic(SkillData.getInstance().getSkill(skillId, lvl), _ctrlPressed, _shiftPressed);
|
||||
}
|
||||
|
||||
if (skillId == SWITCH_STANCE_ID)
|
||||
{
|
||||
summon.switchMode();
|
||||
final L2Summon servitor = activeChar.getAnyServitor();
|
||||
if (!validateSummon(servitor, pet))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int lvl = SummonSkillsTable.getInstance().getAvailableLevel(servitor, skillId);
|
||||
|
||||
if (lvl > 0)
|
||||
{
|
||||
servitor.setTarget(target);
|
||||
servitor.useMagic(SkillData.getInstance().getSkill(skillId, lvl), _ctrlPressed, _shiftPressed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -925,6 +1104,36 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
useSkill(skillId, activeChar.getTarget(), pet);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast a skill for all active summon.<br>
|
||||
* Target is retrieved from owner's target
|
||||
* @param skillId the skill Id to use
|
||||
*/
|
||||
private void useServitorsSkill(int skillId)
|
||||
{
|
||||
final L2PcInstance activeChar = getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
activeChar.getServitors().values().forEach(servitor ->
|
||||
{
|
||||
if (!validateSummon(servitor, false))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final int lvl = SummonSkillsTable.getInstance().getAvailableLevel(servitor, skillId);
|
||||
|
||||
if (lvl > 0)
|
||||
{
|
||||
servitor.setTarget(activeChar.getTarget());
|
||||
servitor.useMagic(SkillData.getInstance().getSkill(skillId, lvl), _ctrlPressed, _shiftPressed);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the given summon and sends a system message to the master.
|
||||
* @param summon the summon to validate
|
||||
|
@ -18,22 +18,21 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.L2Item;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.model.items.type.ActionType;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExAutoSoulShot;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
|
||||
/**
|
||||
* This class ...
|
||||
* @version $Revision: 1.0.0.0 $ $Date: 2005/07/11 15:29:30 $
|
||||
* @author Unknown, UnAfraid
|
||||
*/
|
||||
public final class RequestAutoSoulShot extends L2GameClientPacket
|
||||
{
|
||||
private static final String _C__D0_0D_REQUESTAUTOSOULSHOT = "[C] D0:0D RequestAutoSoulShot";
|
||||
|
||||
// format cd
|
||||
private int _itemId;
|
||||
private int _type; // 1 = on : 0 = off;
|
||||
@ -56,11 +55,6 @@ public final class RequestAutoSoulShot extends L2GameClientPacket
|
||||
|
||||
if ((activeChar.getPrivateStoreType() == PrivateStoreType.NONE) && (activeChar.getActiveRequester() == null) && !activeChar.isDead())
|
||||
{
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.fine("AutoSoulShot:" + _itemId);
|
||||
}
|
||||
|
||||
final L2ItemInstance item = activeChar.getInventory().getItemByItemId(_itemId);
|
||||
if (item == null)
|
||||
{
|
||||
@ -75,100 +69,145 @@ public final class RequestAutoSoulShot extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
// Fishingshots are not automatic on retail
|
||||
if ((_itemId < 6535) || (_itemId > 6540))
|
||||
if (isSummonShot(item.getItem()))
|
||||
{
|
||||
// Attempt to charge first shot on activation
|
||||
if ((_itemId == 6645) || (_itemId == 6646) || (_itemId == 6647) || (_itemId == 20332) || (_itemId == 20333) || (_itemId == 20334))
|
||||
if (activeChar.hasSummon())
|
||||
{
|
||||
if (activeChar.hasSummon())
|
||||
final boolean isSoulshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT;
|
||||
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT;
|
||||
if (isSoulshot)
|
||||
{
|
||||
if (item.getEtcItem().getHandlerName().equals("BeastSoulShot"))
|
||||
int soulshotCount = 0;
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
if (activeChar.getSummon().getSoulShotsPerHit() > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
soulshotCount += pet.getSoulShotsPerHit();
|
||||
}
|
||||
else
|
||||
for (L2Summon servitor : activeChar.getServitors().values())
|
||||
{
|
||||
if (activeChar.getSummon().getSpiritShotsPerHit() > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
soulshotCount += servitor.getSoulShotsPerHit();
|
||||
}
|
||||
if (soulshotCount > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, _type));
|
||||
|
||||
// start the auto soulshot use
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
|
||||
activeChar.rechargeShots(true, true);
|
||||
activeChar.getSummon().rechargeShots(true, true);
|
||||
|
||||
}
|
||||
else
|
||||
else if (isSpiritshot)
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR_OR_PET_AND_THEREFORE_CANNOT_USE_THE_AUTOMATIC_USE_FUNCTION);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((activeChar.getActiveWeaponItem() != activeChar.getFistsWeaponItem()) && (item.getItem().getCrystalType() == activeChar.getActiveWeaponItem().getItemGradeSPlus()))
|
||||
{
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, _type));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (((_itemId >= 2509) && (_itemId <= 2514)) || ((_itemId >= 3947) && (_itemId <= 3952)) || (_itemId == 5790) || ((_itemId >= 22072) && (_itemId <= 22081)))
|
||||
int spiritshotCount = 0;
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOUR_SPIRITSHOT_DOES_NOT_MATCH_THE_WEAPON_S_GRADE);
|
||||
spiritshotCount += pet.getSpiritShotsPerHit();
|
||||
}
|
||||
else
|
||||
for (L2Summon servitor : activeChar.getServitors().values())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THE_SOULSHOT_YOU_ARE_ATTEMPTING_TO_USE_DOES_NOT_MATCH_THE_GRADE_OF_YOUR_EQUIPPED_WEAPON);
|
||||
spiritshotCount += servitor.getSpiritShotsPerHit();
|
||||
}
|
||||
if (spiritshotCount > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, _type));
|
||||
}
|
||||
|
||||
// start the auto soulshot use
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
|
||||
// Activate shots
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, _type));
|
||||
|
||||
// Send message
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
|
||||
activeChar.rechargeShots(true, true);
|
||||
// Recharge summon's shots
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
pet.rechargeShots(isSoulshot, isSpiritshot);
|
||||
}
|
||||
activeChar.getServitors().values().forEach(s ->
|
||||
{
|
||||
s.rechargeShots(isSoulshot, isSpiritshot);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR_OR_PET_AND_THEREFORE_CANNOT_USE_THE_AUTOMATIC_USE_FUNCTION);
|
||||
}
|
||||
}
|
||||
else if (isPlayerShot(item.getItem()))
|
||||
{
|
||||
final boolean isSoulshot = (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) || (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT);
|
||||
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT;
|
||||
if ((activeChar.getActiveWeaponItem() == activeChar.getFistsWeaponItem()) || (item.getItem().getCrystalType() != activeChar.getActiveWeaponItem().getItemGradeSPlus()))
|
||||
{
|
||||
activeChar.sendPacket(isSoulshot ? SystemMessageId.YOUR_SPIRITSHOT_DOES_NOT_MATCH_THE_WEAPON_S_GRADE : SystemMessageId.THE_SOULSHOT_YOU_ARE_ATTEMPTING_TO_USE_DOES_NOT_MATCH_THE_GRADE_OF_YOUR_EQUIPPED_WEAPON);
|
||||
return;
|
||||
}
|
||||
|
||||
// Activate shots
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, _type));
|
||||
|
||||
// Send message
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
|
||||
// Recharge player's shots
|
||||
activeChar.rechargeShots(isSoulshot, isSpiritshot);
|
||||
}
|
||||
}
|
||||
else if (_type == 0)
|
||||
{
|
||||
// Cancel auto shots
|
||||
activeChar.removeAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, _type));
|
||||
|
||||
// cancel the auto soulshot use
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
|
||||
// Send message
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType()
|
||||
{
|
||||
return _C__D0_0D_REQUESTAUTOSOULSHOT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean triggersOnActionRequest()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isPlayerShot(L2Item item)
|
||||
{
|
||||
switch (item.getDefaultAction())
|
||||
{
|
||||
case SPIRITSHOT:
|
||||
case SOULSHOT:
|
||||
case FISHINGSHOT:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isSummonShot(L2Item item)
|
||||
{
|
||||
switch (item.getDefaultAction())
|
||||
{
|
||||
case SUMMON_SPIRITSHOT:
|
||||
case SUMMON_SOULSHOT:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType()
|
||||
{
|
||||
return getClass().getSimpleName();
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.model.BlockList;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
@ -25,7 +25,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.BuyListData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BuyListData;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;
|
||||
|
@ -23,7 +23,7 @@ import java.util.logging.Level;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.enums.InstanceType;
|
||||
import com.l2jserver.gameserver.enums.PlayerAction;
|
||||
import com.l2jserver.gameserver.handler.AdminCommandHandler;
|
||||
@ -39,6 +39,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.Hero;
|
||||
import com.l2jserver.gameserver.model.events.EventDispatcher;
|
||||
import com.l2jserver.gameserver.model.events.impl.character.npc.OnNpcManorBypass;
|
||||
import com.l2jserver.gameserver.model.events.impl.character.npc.OnNpcMenuSelect;
|
||||
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerBypass;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
@ -65,6 +66,7 @@ public final class RequestBypassToServer extends L2GameClientPacket
|
||||
"_match",
|
||||
"_diary",
|
||||
"_olympiad?command",
|
||||
"menu_select",
|
||||
"manor_menu_select"
|
||||
};
|
||||
|
||||
@ -143,14 +145,14 @@ public final class RequestBypassToServer extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!AdminTable.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
if (!AdminData.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
{
|
||||
activeChar.sendMessage("You don't have the access rights to use this command!");
|
||||
_log.warning("Character " + activeChar.getName() + " tried to use admin command " + command + ", without proper access level!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (AdminTable.getInstance().requireConfirm(command))
|
||||
if (AdminData.getInstance().requireConfirm(command))
|
||||
{
|
||||
activeChar.setAdminConfirmCmd(_command);
|
||||
ConfirmDlg dlg = new ConfirmDlg(SystemMessageId.S13);
|
||||
@ -260,6 +262,17 @@ public final class RequestBypassToServer extends L2GameClientPacket
|
||||
handler.useBypass("arenachange " + (arenaId - 1), activeChar, null);
|
||||
}
|
||||
}
|
||||
else if (_command.startsWith("menu_select"))
|
||||
{
|
||||
final L2Npc lastNpc = activeChar.getLastFolkNPC();
|
||||
if ((lastNpc != null) && lastNpc.canInteract(activeChar))
|
||||
{
|
||||
final String[] split = _command.substring(_command.indexOf("?") + 1).split("&");
|
||||
final int ask = Integer.parseInt(split[0].split("=")[1]);
|
||||
final int reply = Integer.parseInt(split[1].split("=")[1]);
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnNpcMenuSelect(activeChar, lastNpc, ask, reply), lastNpc);
|
||||
}
|
||||
}
|
||||
else if (_command.startsWith("manor_menu_select"))
|
||||
{
|
||||
final L2Npc lastNpc = activeChar.getLastFolkNPC();
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AbilityPointsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AbilityPointsData;
|
||||
import com.l2jserver.gameserver.enums.UserInfoType;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.PetNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.PetNameTable;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
@ -48,7 +48,7 @@ public final class RequestChangePetName extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final L2Summon pet = activeChar.getSummon();
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet == null)
|
||||
{
|
||||
return;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExIsCharNameCreatable;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.instancemanager.CastleManager;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@ -22,7 +22,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.ItemCrystalizationData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.ItemCrystalizationData;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.model.CrystalizationData;
|
||||
|
@ -27,6 +27,7 @@ import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
|
||||
import com.l2jserver.gameserver.model.PcCondOverride;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
@ -148,9 +149,10 @@ public final class RequestDestroyItem extends L2GameClientPacket
|
||||
|
||||
if (itemToRemove.getItem().isPetItem())
|
||||
{
|
||||
if (activeChar.hasSummon() && (activeChar.getSummon().getControlObjectId() == _objectId))
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if ((pet != null) && (pet.getControlObjectId() == _objectId))
|
||||
{
|
||||
activeChar.getSummon().unSummon(activeChar);
|
||||
pet.unSummon(activeChar);
|
||||
}
|
||||
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
|
||||
|
@ -20,6 +20,7 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.skills.AbnormalType;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
@ -78,9 +79,15 @@ public class RequestDispel extends L2GameClientPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
if (activeChar.hasSummon() && (activeChar.getSummon().getObjectId() == _objectId))
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if ((pet != null) && (pet.getObjectId() == _objectId))
|
||||
{
|
||||
activeChar.getSummon().stopSkillEffects(true, _skillId);
|
||||
pet.stopSkillEffects(true, _skillId);
|
||||
}
|
||||
|
||||
if (activeChar.hasServitor(_objectId))
|
||||
{
|
||||
activeChar.removeServitor(_objectId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.PcCondOverride;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
@ -223,7 +223,7 @@ public final class RequestDropItem extends L2GameClientPacket
|
||||
{
|
||||
String msg = "Character (" + activeChar.getName() + ") has dropped (" + dropedItem.getCount() + ")adena at (" + _x + "," + _y + "," + _z + ")";
|
||||
_log.warning(msg);
|
||||
AdminTable.getInstance().broadcastMessageToGMs(msg);
|
||||
AdminData.getInstance().broadcastMessageToGMs(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.EnchantItemData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantItemData;
|
||||
import com.l2jserver.gameserver.enums.UserInfoType;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
@ -36,6 +36,7 @@ import com.l2jserver.gameserver.model.skills.CommonSkill;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.EnchantResult;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExAdenaInvenCount;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExUserInfoInvenWeight;
|
||||
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ItemList;
|
||||
@ -430,7 +431,7 @@ public final class RequestEnchantItem extends L2GameClientPacket
|
||||
|
||||
activeChar.broadcastUserInfo(UserInfoType.ENCHANTLEVEL);
|
||||
activeChar.sendPacket(new ExUserInfoInvenWeight(activeChar));
|
||||
activeChar.setActiveEnchantItemId(L2PcInstance.ID_NONE);
|
||||
activeChar.sendPacket(new ExAdenaInvenCount(activeChar));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.network.serverpackets.Ex2ndPasswordCheck;
|
||||
|
||||
/**
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.network.serverpackets.Ex2ndPasswordAck;
|
||||
import com.l2jserver.gameserver.security.SecondaryPasswordAuth;
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SecondaryAuthData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SecondaryAuthData;
|
||||
|
||||
/**
|
||||
* Format: (ch)S S: numerical password
|
||||
|
@ -18,13 +18,12 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.EnchantItemData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantItemData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.enchant.EnchantScroll;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExPutEnchantScrollItemResult;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExPutEnchantSupportItemResult;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
@ -61,7 +60,6 @@ public class RequestExAddEnchantScrollItem extends L2GameClientPacket
|
||||
{
|
||||
// message may be custom
|
||||
activeChar.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
|
||||
activeChar.setActiveEnchantSupportItemId(L2PcInstance.ID_NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -71,8 +69,7 @@ public class RequestExAddEnchantScrollItem extends L2GameClientPacket
|
||||
{
|
||||
// message may be custom
|
||||
activeChar.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
|
||||
activeChar.setActiveEnchantSupportItemId(L2PcInstance.ID_NONE);
|
||||
activeChar.sendPacket(new ExPutEnchantSupportItemResult(0));
|
||||
activeChar.sendPacket(new ExPutEnchantScrollItemResult(0));
|
||||
return;
|
||||
}
|
||||
activeChar.sendPacket(new ExPutEnchantScrollItemResult(_scrollObjectId));
|
||||
|
@ -23,7 +23,7 @@ import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfoDetail;
|
||||
|
@ -23,7 +23,7 @@ import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
|
||||
|
@ -23,7 +23,7 @@ import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
|
||||
|
@ -23,7 +23,7 @@ import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CrestTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CrestTable;
|
||||
import com.l2jserver.gameserver.model.L2Crest;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExPledgeEmblem;
|
||||
|
||||
|
@ -47,12 +47,14 @@ public class RequestExRemoveEnchantSupportItem extends L2GameClientPacket
|
||||
|
||||
activeChar.setActiveEnchantTimestamp(System.currentTimeMillis());
|
||||
|
||||
final L2ItemInstance supportItem = activeChar.getInventory().getItemByItemId(activeChar.getActiveEnchantSupportItemId());
|
||||
final L2ItemInstance supportItem = activeChar.getInventory().getItemByObjectId(activeChar.getActiveEnchantSupportItemId());
|
||||
|
||||
if ((supportItem == null) || (supportItem.getCount() < 1))
|
||||
{
|
||||
activeChar.sendPacket(ExRemoveEnchantSupportItemResult.STATIC_PACKET);
|
||||
activeChar.setActiveEnchantSupportItemId(L2PcInstance.ID_NONE);
|
||||
}
|
||||
|
||||
activeChar.sendPacket(ExRemoveEnchantSupportItemResult.STATIC_PACKET);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CrestTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CrestTable;
|
||||
import com.l2jserver.gameserver.model.ClanPrivilege;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2Crest;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.EnchantItemData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantItemData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.enchant.EnchantScroll;
|
||||
import com.l2jserver.gameserver.model.items.enchant.EnchantSupportItem;
|
||||
|
@ -20,7 +20,7 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.EnchantItemData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantItemData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.enchant.EnchantScroll;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@ -60,7 +60,7 @@ public final class RequestGetItemFromPet extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PetInstance pet = (L2PetInstance) player.getSummon();
|
||||
final L2PetInstance pet = (L2PetInstance) player.getPet();
|
||||
if (player.getActiveEnchantItemId() != L2PcInstance.ID_NONE)
|
||||
{
|
||||
return;
|
||||
|
@ -98,7 +98,7 @@ public final class RequestGiveItemToPet extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PetInstance pet = (L2PetInstance) player.getSummon();
|
||||
final L2PetInstance pet = (L2PetInstance) player.getPet();
|
||||
if (pet.isDead())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOUR_PET_IS_DEAD_AND_ANY_ATTEMPT_YOU_MAKE_TO_GIVE_IT_SOMETHING_GOES_UNRECOGNIZED);
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
|
||||
/**
|
||||
* This class handles RequestGmLista packet triggered by /gmlist command
|
||||
@ -41,7 +41,7 @@ public final class RequestGmList extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
AdminTable.getInstance().sendListToPlayer(getClient().getActiveChar());
|
||||
AdminData.getInstance().sendListToPlayer(getClient().getActiveChar());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.HennaData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.HennaData;
|
||||
import com.l2jserver.gameserver.model.PcCondOverride;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.L2Henna;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.HennaData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.HennaData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.L2Henna;
|
||||
import com.l2jserver.gameserver.network.serverpackets.HennaItemDrawInfo;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.HennaData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.HennaData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.L2Henna;
|
||||
import com.l2jserver.gameserver.network.serverpackets.HennaItemRemoveInfo;
|
||||
|
@ -20,8 +20,8 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.effects.L2EffectType;
|
||||
import com.l2jserver.gameserver.model.skills.CommonSkill;
|
||||
|
@ -63,7 +63,7 @@ public final class RequestPetGetItem extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PetInstance pet = (L2PetInstance) getClient().getActiveChar().getSummon();
|
||||
final L2PetInstance pet = (L2PetInstance) getClient().getActiveChar().getPet();
|
||||
if (pet.isDead() || pet.isOutOfControl())
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
|
@ -56,7 +56,7 @@ public final class RequestPetUseItem extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PetInstance pet = (L2PetInstance) activeChar.getSummon();
|
||||
final L2PetInstance pet = (L2PetInstance) activeChar.getPet();
|
||||
final L2ItemInstance item = pet.getInventory().getItemByObjectId(_objectId);
|
||||
if (item == null)
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.instancemanager.PetitionManager;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
@ -58,7 +58,7 @@ public final class RequestPetition extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!AdminTable.getInstance().isGmOnline(false))
|
||||
if (!AdminData.getInstance().isGmOnline(false))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THERE_ARE_NO_GMS_CURRENTLY_VISIBLE_IN_THE_PUBLIC_LIST_AS_THEY_MAY_BE_PERFORMING_OTHER_FUNCTIONS_AT_THE_MOMENT);
|
||||
return;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.instancemanager.PetitionManager;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
@ -81,7 +81,7 @@ public final class RequestPetitionCancel extends L2GameClientPacket
|
||||
|
||||
// Notify all GMs that the player's pending petition has been cancelled.
|
||||
String msgContent = activeChar.getName() + " has canceled a pending petition.";
|
||||
AdminTable.getInstance().broadcastToGMs(new CreatureSay(activeChar.getObjectId(), Say2.HERO_VOICE, "Petition System", msgContent));
|
||||
AdminData.getInstance().broadcastToGMs(new CreatureSay(activeChar.getObjectId(), Say2.HERO_VOICE, "Petition System", msgContent));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -21,7 +21,7 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.PledgeInfo;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExPledgeRecruitInfo;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.enums.ClanEntryStatus;
|
||||
import com.l2jserver.gameserver.instancemanager.ClanEntryManager;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
@ -81,10 +81,9 @@ public class RequestPledgeWaitingApply extends L2GameClientPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_MAY_APPLY_FOR_ENTRY_AFTER_S1_MINUTE_S_DUE_TO_CANCELLING_YOUR_APPLICATION);
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_MAY_APPLY_FOR_ENTRY_AFTER_S1_MINUTE_S_DUE_TO_CANCELLING_YOUR_APPLICATION);
|
||||
sm.addLong(ClanEntryManager.getInstance().getPlayerLockTime(activeChar.getObjectId()));
|
||||
activeChar.sendPacket(sm);
|
||||
System.out.println("fuck me ?");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ import javolution.util.FastMap;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.datatables.BuyListData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BuyListData;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;
|
||||
@ -161,8 +161,7 @@ public final class RequestPreviewItem extends L2GameClientPacket
|
||||
final L2BuyList buyList = BuyListData.getInstance().getBuyList(_listId);
|
||||
if (buyList == null)
|
||||
{
|
||||
Util.handleIllegalPlayerAction(activeChar, "Warning!! Character " + activeChar.getName() + " of account " + activeChar
|
||||
.getAccountName() + " sent a false BuyList list_id " + _listId, Config.DEFAULT_PUNISH);
|
||||
Util.handleIllegalPlayerAction(activeChar, "Warning!! Character " + activeChar.getName() + " of account " + activeChar.getAccountName() + " sent a false BuyList list_id " + _listId, Config.DEFAULT_PUNISH);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ import static com.l2jserver.gameserver.model.actor.L2Npc.INTERACTION_DISTANCE;
|
||||
import javolution.util.FastSet;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.ItemRequest;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
|
@ -21,7 +21,7 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
import static com.l2jserver.gameserver.model.actor.L2Npc.INTERACTION_DISTANCE;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.OfflineTradersTable;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.ItemRequest;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.RecipeData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.RecipeData;
|
||||
import com.l2jserver.gameserver.model.L2RecipeList;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.RecipeBookItemList;
|
||||
|
@ -24,7 +24,7 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.RecipeData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.RecipeData;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.L2ManufactureItem;
|
||||
import com.l2jserver.gameserver.model.L2RecipeList;
|
||||
@ -101,12 +101,6 @@ public final class RequestRecipeShopListSet extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.canOpenPrivateStore())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
List<L2RecipeList> dwarfRecipes = Arrays.asList(player.getDwarvenRecipeBook());
|
||||
List<L2RecipeList> commonRecipes = Arrays.asList(player.getCommonRecipeBook());
|
||||
|
||||
|
@ -21,7 +21,7 @@ package com.l2jserver.gameserver.network.clientpackets;
|
||||
import static com.l2jserver.gameserver.model.actor.L2Npc.INTERACTION_DISTANCE;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.BuyListData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BuyListData;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.BeautyShopData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BeautyShopData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.beautyshop.BeautyData;
|
||||
import com.l2jserver.gameserver.model.beautyshop.BeautyItem;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
public final class RequestReplySurrenderPledgeWar extends L2GameClientPacket
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.L2SkillLearn;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@ -23,7 +23,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.UIData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.UIData;
|
||||
import com.l2jserver.gameserver.model.ActionKey;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.L2GameClient.GameClientState;
|
||||
|
@ -25,7 +25,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.BuyListData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BuyListData;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;
|
||||
|
@ -22,8 +22,8 @@ import static com.l2jserver.gameserver.model.itemcontainer.Inventory.ADENA_ID;
|
||||
import static com.l2jserver.gameserver.model.itemcontainer.Inventory.MAX_ADENA;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.instancemanager.MailManager;
|
||||
import com.l2jserver.gameserver.model.BlockList;
|
||||
@ -213,7 +213,7 @@ public final class RequestSendPost extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final int level = CharNameTable.getInstance().getAccessLevelById(receiverId);
|
||||
final L2AccessLevel accessLevel = AdminTable.getInstance().getAccessLevel(level);
|
||||
final L2AccessLevel accessLevel = AdminData.getInstance().getAccessLevel(level);
|
||||
|
||||
if (accessLevel.isGm() && !activeChar.getAccessLevel().isGm())
|
||||
{
|
||||
|
@ -18,8 +18,8 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.datatables.CrestTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CrestTable;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2Crest;
|
||||
import com.l2jserver.gameserver.model.L2Crest.CrestType;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CrestTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CrestTable;
|
||||
import com.l2jserver.gameserver.model.ClanPrivilege;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2Crest;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.BeautyShopData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BeautyShopData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.beautyshop.BeautyData;
|
||||
import com.l2jserver.gameserver.model.beautyshop.BeautyItem;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.ClanPrivilege;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.ClanPrivilege;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2ClanMember;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AdminTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jserver.gameserver.handler.AdminCommandHandler;
|
||||
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
@ -72,7 +72,7 @@ public final class SendBypassBuildCmd extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!AdminTable.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
if (!AdminData.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
{
|
||||
activeChar.sendMessage("You don't have the access right to use this command!");
|
||||
_log.warning("Character " + activeChar.getName() + " tryed to use admin command " + command + ", but have no access to it!");
|
||||
|
@ -19,7 +19,6 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.geoeditorcon.GeoEditorListener;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.zone.ZoneId;
|
||||
@ -130,14 +129,6 @@ public class ValidatePosition extends L2GameClientPacket
|
||||
// party.broadcastToPartyMembers(activeChar, new PartyMemberPosition(activeChar));
|
||||
// }
|
||||
|
||||
if (Config.ACCEPT_GEOEDITOR_CONN)
|
||||
{
|
||||
if ((GeoEditorListener.getInstance().getThread() != null) && GeoEditorListener.getInstance().getThread().isWorking() && GeoEditorListener.getInstance().getThread().isSend(activeChar))
|
||||
{
|
||||
GeoEditorListener.getInstance().getThread().sendGmPosition(_x, _y, (short) _z);
|
||||
}
|
||||
}
|
||||
|
||||
// Don't allow flying transformations outside gracia area!
|
||||
if (activeChar.isFlyingMounted() && (_x > L2World.GRACIA_MAX_X))
|
||||
{
|
||||
@ -187,7 +178,7 @@ public class ValidatePosition extends L2GameClientPacket
|
||||
// when too far from server calculated true coordinate.
|
||||
// Due to geodata/zone errors, some Z axis checks are made. (maybe a temporary solution)
|
||||
// Important: this code part must work together with L2Character.updatePosition
|
||||
if ((Config.GEODATA > 0) && ((diffSq > 250000) || (Math.abs(dz) > 200)))
|
||||
if ((diffSq > 250000) || (Math.abs(dz) > 200))
|
||||
{
|
||||
// if ((_z - activeChar.getClientZ()) < 200 && Math.abs(activeChar.getLastServerPosition().getZ()-realZ) > 70)
|
||||
|
||||
|
@ -22,7 +22,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.ItemCrystalizationData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.ItemCrystalizationData;
|
||||
import com.l2jserver.gameserver.enums.PrivateStoreType;
|
||||
import com.l2jserver.gameserver.model.CrystalizationData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@ -23,7 +23,7 @@ import java.sql.PreparedStatement;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.clientpackets.friend;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.clientpackets.mentoring;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.instancemanager.MentorManager;
|
||||
import com.l2jserver.gameserver.model.L2Mentee;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@ -23,9 +23,9 @@ import java.util.Arrays;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.DoorTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.DoorData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.NpcData;
|
||||
import com.l2jserver.gameserver.datatables.ItemTable;
|
||||
import com.l2jserver.gameserver.datatables.NpcData;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.instancemanager.CastleManager;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
@ -607,7 +607,7 @@ public abstract class AbstractMessagePacket<T extends AbstractMessagePacket<?>>
|
||||
|
||||
case TYPE_DOOR_NAME:
|
||||
{
|
||||
final L2DoorInstance door = DoorTable.getInstance().getDoor(param.getIntValue());
|
||||
final L2DoorInstance door = DoorData.getInstance().getDoor(param.getIntValue());
|
||||
params[i] = door == null ? "Unknown" : door.getName();
|
||||
break;
|
||||
}
|
||||
|
@ -19,9 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2TrapInstance;
|
||||
import com.l2jserver.gameserver.model.zone.ZoneId;
|
||||
|
||||
public abstract class AbstractNpcInfo extends L2GameServerPacket
|
||||
{
|
||||
@ -142,98 +140,4 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
|
||||
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()
|
||||
{
|
||||
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(0x01);// Title color 0=client default
|
||||
|
||||
writeD(_summon.getPvpFlag());
|
||||
writeD(_summon.getKarma());
|
||||
|
||||
writeD(0); // was AVE and was adding stealth
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,22 +19,26 @@
|
||||
package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.model.L2SkillLearn;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
*/
|
||||
public class AcquireSkillList extends L2GameServerPacket
|
||||
{
|
||||
final L2PcInstance _activeChar;
|
||||
final List<L2SkillLearn> _learnable;
|
||||
|
||||
public AcquireSkillList(L2PcInstance activeChar)
|
||||
{
|
||||
_activeChar = activeChar;
|
||||
_learnable = SkillTreesData.getInstance().getAvailableSkills(activeChar, activeChar.getClassId(), false, false);
|
||||
_learnable.addAll(SkillTreesData.getInstance().getNextAvailableSkills(activeChar, activeChar.getClassId(), false, false));
|
||||
}
|
||||
@ -58,11 +62,13 @@ public class AcquireSkillList extends L2GameServerPacket
|
||||
writeQ(item.getCount());
|
||||
}
|
||||
|
||||
writeC(skill.getRemoveSkills().size());
|
||||
for (int skillId : skill.getRemoveSkills())
|
||||
final List<Skill> skillRem = skill.getRemoveSkills().stream().map(_activeChar::getKnownSkill).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
writeC(skillRem.size());
|
||||
for (Skill skillRemove : skillRem)
|
||||
{
|
||||
writeD(skillId);
|
||||
writeH(SkillData.getInstance().getMaxLevel(skillId));
|
||||
writeD(skillRemove.getId());
|
||||
writeH(skillRemove.getLevel());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -97,8 +97,7 @@ public class AgitDecoInfo extends L2GameServerPacket
|
||||
{
|
||||
writeC(0);
|
||||
}
|
||||
else if (((_clanHall.getGrade() == 0) && (function.getLvl() < 25)) || ((_clanHall.getGrade() == 1) && (function.getLvl() < 30)) || ((_clanHall.getGrade() == 2) && (function
|
||||
.getLvl() < 40)) || ((_clanHall.getGrade() == 3) && (function.getLvl() < 50)))
|
||||
else if (((_clanHall.getGrade() == 0) && (function.getLvl() < 25)) || ((_clanHall.getGrade() == 1) && (function.getLvl() < 30)) || ((_clanHall.getGrade() == 2) && (function.getLvl() < 40)) || ((_clanHall.getGrade() == 3) && (function.getLvl() < 50)))
|
||||
{
|
||||
writeC(1);
|
||||
}
|
||||
@ -156,8 +155,7 @@ public class AgitDecoInfo extends L2GameServerPacket
|
||||
writeC(0);
|
||||
writeC(0);
|
||||
}
|
||||
else if (((_clanHall.getGrade() == 0) && (function.getLvl() < 2)) || ((_clanHall.getGrade() == 1) && (function.getLvl() < 4)) || ((_clanHall.getGrade() == 2) && (function
|
||||
.getLvl() < 5)) || ((_clanHall.getGrade() == 3) && (function.getLvl() < 8)))
|
||||
else if (((_clanHall.getGrade() == 0) && (function.getLvl() < 2)) || ((_clanHall.getGrade() == 1) && (function.getLvl() < 4)) || ((_clanHall.getGrade() == 2) && (function.getLvl() < 5)) || ((_clanHall.getGrade() == 3) && (function.getLvl() < 8)))
|
||||
{
|
||||
writeC(1);
|
||||
writeC(1);
|
||||
|
@ -20,7 +20,7 @@ package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.model.ClanInfo;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.network.clientpackets.RequestAllyInfo;
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.CrestTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CrestTable;
|
||||
import com.l2jserver.gameserver.model.L2Crest;
|
||||
|
||||
public class AllyCrest extends L2GameServerPacket
|
||||
|
@ -20,7 +20,7 @@ package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
|
@ -1,18 +1,18 @@
|
||||
/*
|
||||
* 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/>.
|
||||
*/
|
||||
@ -29,8 +29,8 @@ import javolution.util.FastList;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.datatables.ExperienceTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.ExperienceData;
|
||||
import com.l2jserver.gameserver.model.CharSelectInfoPackage;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.entity.Hero;
|
||||
@ -131,7 +131,7 @@ public class CharSelectionInfo extends L2GameServerPacket
|
||||
|
||||
writeQ(charInfoPackage.getSp());
|
||||
writeQ(charInfoPackage.getExp());
|
||||
writeF((float) (charInfoPackage.getExp() - ExperienceTable.getInstance().getExpForLevel(charInfoPackage.getLevel())) / (ExperienceTable.getInstance().getExpForLevel(charInfoPackage.getLevel() + 1) - ExperienceTable.getInstance().getExpForLevel(charInfoPackage.getLevel()))); // High Five
|
||||
writeF((float) (charInfoPackage.getExp() - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel())) / (ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel() + 1) - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel()))); // High Five
|
||||
writeD(charInfoPackage.getLevel());
|
||||
|
||||
writeD(charInfoPackage.getKarma());
|
||||
|
@ -50,7 +50,7 @@ public class EnchantResult extends L2GameServerPacket
|
||||
|
||||
public EnchantResult(int result, L2ItemInstance item)
|
||||
{
|
||||
this(result, 0, 0, 0, item.getEnchantOptions());
|
||||
this(result, 0, 0, item.getEnchantLevel(), item.getEnchantOptions());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,95 +0,0 @@
|
||||
/*
|
||||
* 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.gameserver.model.items.L2Item;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
|
||||
public final class EquipUpdate extends L2GameServerPacket
|
||||
{
|
||||
private final L2ItemInstance _item;
|
||||
private final int _change;
|
||||
|
||||
public EquipUpdate(L2ItemInstance item, int change)
|
||||
{
|
||||
_item = item;
|
||||
_change = change;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void writeImpl()
|
||||
{
|
||||
int bodypart = 0;
|
||||
writeC(0x4b);
|
||||
writeD(_change);
|
||||
writeD(_item.getObjectId());
|
||||
switch (_item.getItem().getBodyPart())
|
||||
{
|
||||
case L2Item.SLOT_L_EAR:
|
||||
bodypart = 0x01;
|
||||
break;
|
||||
case L2Item.SLOT_R_EAR:
|
||||
bodypart = 0x02;
|
||||
break;
|
||||
case L2Item.SLOT_NECK:
|
||||
bodypart = 0x03;
|
||||
break;
|
||||
case L2Item.SLOT_R_FINGER:
|
||||
bodypart = 0x04;
|
||||
break;
|
||||
case L2Item.SLOT_L_FINGER:
|
||||
bodypart = 0x05;
|
||||
break;
|
||||
case L2Item.SLOT_HEAD:
|
||||
bodypart = 0x06;
|
||||
break;
|
||||
case L2Item.SLOT_R_HAND:
|
||||
bodypart = 0x07;
|
||||
break;
|
||||
case L2Item.SLOT_L_HAND:
|
||||
bodypart = 0x08;
|
||||
break;
|
||||
case L2Item.SLOT_GLOVES:
|
||||
bodypart = 0x09;
|
||||
break;
|
||||
case L2Item.SLOT_CHEST:
|
||||
bodypart = 0x0a;
|
||||
break;
|
||||
case L2Item.SLOT_LEGS:
|
||||
bodypart = 0x0b;
|
||||
break;
|
||||
case L2Item.SLOT_FEET:
|
||||
bodypart = 0x0c;
|
||||
break;
|
||||
case L2Item.SLOT_BACK:
|
||||
bodypart = 0x0d;
|
||||
break;
|
||||
case L2Item.SLOT_LR_HAND:
|
||||
bodypart = 0x0e;
|
||||
break;
|
||||
case L2Item.SLOT_HAIR:
|
||||
bodypart = 0x0f;
|
||||
break;
|
||||
case L2Item.SLOT_BELT:
|
||||
bodypart = 0x10;
|
||||
break;
|
||||
}
|
||||
writeD(bodypart);
|
||||
}
|
||||
}
|
@ -22,8 +22,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.AbilityPointsData;
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.AbilityPointsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.model.L2SkillLearn;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
|
@ -18,13 +18,14 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.L2SkillLearn;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
@ -35,8 +36,8 @@ public class ExAcquireSkillInfo extends L2GameServerPacket
|
||||
private final int _level;
|
||||
private final int _spCost;
|
||||
private final int _minLevel;
|
||||
private final List<ItemHolder> _itemReq = new ArrayList<>();
|
||||
private final List<Integer> _skillRem = new ArrayList<>();
|
||||
private final List<ItemHolder> _itemReq;
|
||||
private final List<Skill> _skillRem;
|
||||
|
||||
/**
|
||||
* Special constructor for Alternate Skill Learning system.<br>
|
||||
@ -51,8 +52,8 @@ public class ExAcquireSkillInfo extends L2GameServerPacket
|
||||
_level = skillLearn.getSkillLevel();
|
||||
_spCost = sp;
|
||||
_minLevel = skillLearn.getGetLevel();
|
||||
_itemReq.addAll(skillLearn.getRequiredItems());
|
||||
_skillRem.addAll(skillLearn.getRemoveSkills());
|
||||
_itemReq = skillLearn.getRequiredItems();
|
||||
_skillRem = skillLearn.getRemoveSkills().stream().map(player::getKnownSkill).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -65,7 +66,7 @@ public class ExAcquireSkillInfo extends L2GameServerPacket
|
||||
writeD(_level);
|
||||
writeQ(_spCost);
|
||||
writeH(_minLevel);
|
||||
writeH(0x00); // TODO: Find me !
|
||||
writeH(0x00); // Dual Class Level Required
|
||||
writeD(_itemReq.size());
|
||||
for (ItemHolder holder : _itemReq)
|
||||
{
|
||||
@ -74,10 +75,10 @@ public class ExAcquireSkillInfo extends L2GameServerPacket
|
||||
}
|
||||
|
||||
writeD(_skillRem.size());
|
||||
for (int skillId : _skillRem)
|
||||
for (Skill skill : _skillRem)
|
||||
{
|
||||
writeD(skillId);
|
||||
writeD(SkillData.getInstance().getMaxLevel(skillId));
|
||||
writeD(skill.getId());
|
||||
writeD(skill.getLevel());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ package com.l2jserver.gameserver.network.serverpackets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SkillTreesData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
|
||||
|
@ -23,7 +23,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.BeautyShopData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.BeautyShopData;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.beautyshop.BeautyData;
|
||||
import com.l2jserver.gameserver.model.beautyshop.BeautyItem;
|
||||
|
@ -20,7 +20,7 @@ package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import javolution.util.FastList;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
|
||||
|
||||
@ -98,4 +98,4 @@ public final class ExEnchantSkillInfo extends L2GameServerPacket
|
||||
writeD(level);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.EnchantSkillGroupsData;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
|
||||
import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@ -0,0 +1,391 @@
|
||||
/*
|
||||
* 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 java.util.Set;
|
||||
|
||||
import com.l2jserver.gameserver.enums.NpcInfoType;
|
||||
import com.l2jserver.gameserver.enums.Team;
|
||||
import com.l2jserver.gameserver.model.actor.L2Summon;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.skills.AbnormalVisualEffect;
|
||||
import com.l2jserver.gameserver.model.zone.ZoneId;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
*/
|
||||
public class ExPetInfo extends AbstractMaskPacket<NpcInfoType>
|
||||
{
|
||||
private final L2Summon _summon;
|
||||
private final L2PcInstance _attacker;
|
||||
private final int _val;
|
||||
private final byte[] _masks = new byte[]
|
||||
{
|
||||
(byte) 0x00,
|
||||
(byte) 0x0C,
|
||||
(byte) 0x0C,
|
||||
(byte) 0x00,
|
||||
(byte) 0x00
|
||||
};
|
||||
|
||||
private int _initSize = 0;
|
||||
private int _blockSize = 0;
|
||||
|
||||
private int _clanCrest = 0;
|
||||
private int _clanLargeCrest = 0;
|
||||
private int _allyCrest = 0;
|
||||
private int _allyId = 0;
|
||||
private int _clanId = 0;
|
||||
private int _statusMask = 0;
|
||||
private final String _title;
|
||||
private final Set<AbnormalVisualEffect> _abnormalVisualEffects;
|
||||
|
||||
public ExPetInfo(L2Summon summon, L2PcInstance attacker, int val)
|
||||
{
|
||||
_summon = summon;
|
||||
_attacker = attacker;
|
||||
_title = (summon.getOwner() != null) && summon.getOwner().isOnline() ? summon.getOwner().getName() : "";
|
||||
_val = val;
|
||||
_abnormalVisualEffects = summon.getCurrentAbnormalVisualEffects();
|
||||
|
||||
if (summon.getTemplate().getDisplayId() != summon.getTemplate().getId())
|
||||
{
|
||||
_masks[2] |= 0x10;
|
||||
addComponentType(NpcInfoType.NAME);
|
||||
}
|
||||
|
||||
addComponentType(NpcInfoType.ATTACKABLE, NpcInfoType.UNKNOWN1, NpcInfoType.TITLE, NpcInfoType.ID, NpcInfoType.POSITION, NpcInfoType.ALIVE, NpcInfoType.RUNNING);
|
||||
|
||||
if (summon.getHeading() > 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.HEADING);
|
||||
}
|
||||
|
||||
if ((summon.getStat().getPAtkSpd() > 0) || (summon.getStat().getMAtkSpd() > 0))
|
||||
{
|
||||
addComponentType(NpcInfoType.ATK_CAST_SPEED);
|
||||
}
|
||||
|
||||
if (summon.getRunSpeed() > 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.SPEED_MULTIPLIER);
|
||||
}
|
||||
|
||||
if ((summon.getWeapon() > 0) || (summon.getArmor() > 0))
|
||||
{
|
||||
addComponentType(NpcInfoType.EQUIPPED);
|
||||
}
|
||||
|
||||
if (summon.getTeam() != Team.NONE)
|
||||
{
|
||||
addComponentType(NpcInfoType.TEAM);
|
||||
}
|
||||
|
||||
if (summon.isInsideZone(ZoneId.WATER) || summon.isFlying())
|
||||
{
|
||||
addComponentType(NpcInfoType.SWIM_OR_FLY);
|
||||
}
|
||||
|
||||
if (summon.isFlying())
|
||||
{
|
||||
addComponentType(NpcInfoType.FLYING);
|
||||
}
|
||||
|
||||
if (summon.getMaxHp() > 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.MAX_HP);
|
||||
}
|
||||
|
||||
if (summon.getMaxMp() > 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.MAX_MP);
|
||||
}
|
||||
|
||||
if (summon.getCurrentHp() <= summon.getMaxHp())
|
||||
{
|
||||
addComponentType(NpcInfoType.CURRENT_HP);
|
||||
}
|
||||
|
||||
if (summon.getCurrentMp() <= summon.getMaxMp())
|
||||
{
|
||||
addComponentType(NpcInfoType.CURRENT_MP);
|
||||
}
|
||||
|
||||
if (!_abnormalVisualEffects.isEmpty())
|
||||
{
|
||||
addComponentType(NpcInfoType.ABNORMALS);
|
||||
}
|
||||
|
||||
if (summon.getTemplate().getWeaponEnchant() > 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.ENCHANT);
|
||||
}
|
||||
|
||||
if ((summon.getTransformation() != null) && (summon.getTransformation().getId() > 0))
|
||||
{
|
||||
addComponentType(NpcInfoType.TRANSFORMATION);
|
||||
}
|
||||
|
||||
if (summon.getOwner().getClan() != null)
|
||||
{
|
||||
_clanId = summon.getOwner().getClanId();
|
||||
_clanCrest = summon.getOwner().getClanCrestId();
|
||||
_clanLargeCrest = summon.getOwner().getClanCrestLargeId();
|
||||
_allyCrest = summon.getOwner().getAllyId();
|
||||
_allyId = summon.getOwner().getAllyCrestId();
|
||||
|
||||
addComponentType(NpcInfoType.CLAN);
|
||||
}
|
||||
|
||||
addComponentType(NpcInfoType.UNKNOWN8);
|
||||
|
||||
// TODO: Confirm me
|
||||
if (summon.isInCombat())
|
||||
{
|
||||
_statusMask |= 0x01;
|
||||
}
|
||||
if (summon.isDead())
|
||||
{
|
||||
_statusMask |= 0x02;
|
||||
}
|
||||
if (summon.isTargetable())
|
||||
{
|
||||
_statusMask |= 0x04;
|
||||
}
|
||||
|
||||
_statusMask |= 0x08;
|
||||
|
||||
if (_statusMask != 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.VISUAL_STATE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected byte[] getMasks()
|
||||
{
|
||||
return _masks;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onNewMaskAdded(NpcInfoType component)
|
||||
{
|
||||
calcBlockSize(_summon, component);
|
||||
}
|
||||
|
||||
private void calcBlockSize(L2Summon summon, NpcInfoType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case ATTACKABLE:
|
||||
case UNKNOWN1:
|
||||
{
|
||||
_initSize += type.getBlockLength();
|
||||
break;
|
||||
}
|
||||
case TITLE:
|
||||
{
|
||||
_initSize += type.getBlockLength() + (_title.length() * 2);
|
||||
break;
|
||||
}
|
||||
case NAME:
|
||||
{
|
||||
_blockSize += type.getBlockLength() + (summon.getName().length() * 2);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
_blockSize += type.getBlockLength();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeImpl()
|
||||
{
|
||||
writeC(0xFE);
|
||||
writeH(0x15E);
|
||||
writeD(_summon.getObjectId());
|
||||
writeC(_val); // // 0=teleported 1=default 2=summoned
|
||||
writeH(37); // mask_bits_37
|
||||
writeB(_masks);
|
||||
|
||||
// Block 1
|
||||
writeC(_initSize);
|
||||
|
||||
if (containsMask(NpcInfoType.ATTACKABLE))
|
||||
{
|
||||
writeC(_summon.isAutoAttackable(_attacker) ? 0x01 : 0x00);
|
||||
}
|
||||
if (containsMask(NpcInfoType.UNKNOWN1))
|
||||
{
|
||||
writeD(0x00); // unknown
|
||||
}
|
||||
if (containsMask(NpcInfoType.TITLE))
|
||||
{
|
||||
writeS(_title);
|
||||
}
|
||||
|
||||
// Block 2
|
||||
writeH(_blockSize);
|
||||
if (containsMask(NpcInfoType.ID))
|
||||
{
|
||||
writeD(_summon.getTemplate().getDisplayId() + 1000000);
|
||||
}
|
||||
if (containsMask(NpcInfoType.POSITION))
|
||||
{
|
||||
writeD(_summon.getX());
|
||||
writeD(_summon.getY());
|
||||
writeD(_summon.getZ());
|
||||
}
|
||||
if (containsMask(NpcInfoType.HEADING))
|
||||
{
|
||||
writeD(_summon.getHeading());
|
||||
}
|
||||
if (containsMask(NpcInfoType.UNKNOWN2))
|
||||
{
|
||||
writeD(0x00); // Unknown
|
||||
}
|
||||
if (containsMask(NpcInfoType.ATK_CAST_SPEED))
|
||||
{
|
||||
writeD(_summon.getPAtkSpd());
|
||||
writeD(_summon.getMAtkSpd());
|
||||
}
|
||||
if (containsMask(NpcInfoType.SPEED_MULTIPLIER))
|
||||
{
|
||||
_buf.putFloat((float) _summon.getStat().getMovementSpeedMultiplier());
|
||||
_buf.putFloat(_summon.getStat().getAttackSpeedMultiplier());
|
||||
}
|
||||
if (containsMask(NpcInfoType.EQUIPPED))
|
||||
{
|
||||
writeD(_summon.getWeapon());
|
||||
writeD(_summon.getArmor()); // Armor id?
|
||||
writeD(0x00);
|
||||
}
|
||||
if (containsMask(NpcInfoType.ALIVE))
|
||||
{
|
||||
writeC(_summon.isDead() ? 0x00 : 0x01);
|
||||
}
|
||||
if (containsMask(NpcInfoType.RUNNING))
|
||||
{
|
||||
writeC(_summon.isRunning() ? 0x01 : 0x00);
|
||||
}
|
||||
if (containsMask(NpcInfoType.SWIM_OR_FLY))
|
||||
{
|
||||
writeC(_summon.isInsideZone(ZoneId.WATER) ? 0x01 : _summon.isFlying() ? 0x02 : 0x00);
|
||||
}
|
||||
if (containsMask(NpcInfoType.TEAM))
|
||||
{
|
||||
writeC(_summon.getTeam().getId());
|
||||
}
|
||||
if (containsMask(NpcInfoType.ENCHANT))
|
||||
{
|
||||
writeD(_summon.getTemplate().getWeaponEnchant());
|
||||
}
|
||||
if (containsMask(NpcInfoType.FLYING))
|
||||
{
|
||||
writeD(_summon.isFlying() ? 0x01 : 00);
|
||||
}
|
||||
if (containsMask(NpcInfoType.CLONE))
|
||||
{
|
||||
writeD(0x00); // Player ObjectId with Decoy
|
||||
}
|
||||
if (containsMask(NpcInfoType.UNKNOWN8))
|
||||
{
|
||||
// No visual effect
|
||||
writeD(0x00); // Unknown
|
||||
}
|
||||
if (containsMask(NpcInfoType.DISPLAY_EFFECT))
|
||||
{
|
||||
writeD(0x00);
|
||||
}
|
||||
if (containsMask(NpcInfoType.TRANSFORMATION))
|
||||
{
|
||||
writeD(0x00); // Transformation ID
|
||||
}
|
||||
if (containsMask(NpcInfoType.CURRENT_HP))
|
||||
{
|
||||
writeD((int) _summon.getCurrentHp());
|
||||
}
|
||||
if (containsMask(NpcInfoType.CURRENT_MP))
|
||||
{
|
||||
writeD((int) _summon.getCurrentMp());
|
||||
}
|
||||
if (containsMask(NpcInfoType.MAX_HP))
|
||||
{
|
||||
writeD(_summon.getMaxHp());
|
||||
}
|
||||
if (containsMask(NpcInfoType.MAX_MP))
|
||||
{
|
||||
writeD(_summon.getMaxMp());
|
||||
}
|
||||
if (containsMask(NpcInfoType.UNKNOWN11))
|
||||
{
|
||||
writeC(0x00); // 2 - do some animation on spawn
|
||||
}
|
||||
if (containsMask(NpcInfoType.UNKNOWN12))
|
||||
{
|
||||
writeD(0x00);
|
||||
writeD(0x00);
|
||||
}
|
||||
if (containsMask(NpcInfoType.NAME))
|
||||
{
|
||||
writeS(_summon.getName());
|
||||
}
|
||||
if (containsMask(NpcInfoType.NAME_NPCSTRINGID))
|
||||
{
|
||||
writeD(-1); // NPCStringId for name
|
||||
}
|
||||
if (containsMask(NpcInfoType.TITLE_NPCSTRINGID))
|
||||
{
|
||||
writeD(-1); // NPCStringId for title
|
||||
}
|
||||
if (containsMask(NpcInfoType.PVP_FLAG))
|
||||
{
|
||||
writeC(_summon.getPvpFlag()); // PVP flag
|
||||
}
|
||||
if (containsMask(NpcInfoType.NAME_COLOR))
|
||||
{
|
||||
writeD(0x00); // Name color
|
||||
}
|
||||
if (containsMask(NpcInfoType.CLAN))
|
||||
{
|
||||
writeD(_clanId);
|
||||
writeD(_clanCrest);
|
||||
writeD(_clanLargeCrest);
|
||||
writeD(_allyId);
|
||||
writeD(_allyCrest);
|
||||
}
|
||||
|
||||
if (containsMask(NpcInfoType.VISUAL_STATE))
|
||||
{
|
||||
writeC(_statusMask);
|
||||
}
|
||||
|
||||
if (containsMask(NpcInfoType.ABNORMALS))
|
||||
{
|
||||
writeH(_abnormalVisualEffects.size());
|
||||
for (AbnormalVisualEffect abnormalVisualEffect : _abnormalVisualEffects)
|
||||
{
|
||||
writeH(abnormalVisualEffect.getClientId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.network.serverpackets;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.ClanTable;
|
||||
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
|
||||
import com.l2jserver.gameserver.instancemanager.ClanEntryManager;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.clan.entry.PledgeRecruitInfo;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user