Sync with L2JServer Feb 3rd 2015.
This commit is contained in:
@@ -41,6 +41,12 @@ import com.l2jserver.gameserver.network.clientpackets.auctionhouse.RequestCommis
|
||||
import com.l2jserver.gameserver.network.clientpackets.auctionhouse.RequestCommissionRegister;
|
||||
import com.l2jserver.gameserver.network.clientpackets.auctionhouse.RequestCommissionRegisteredItem;
|
||||
import com.l2jserver.gameserver.network.clientpackets.auctionhouse.RequestCommissionRegistrableItemList;
|
||||
import com.l2jserver.gameserver.network.clientpackets.compound.RequestNewEnchantClose;
|
||||
import com.l2jserver.gameserver.network.clientpackets.compound.RequestNewEnchantPushOne;
|
||||
import com.l2jserver.gameserver.network.clientpackets.compound.RequestNewEnchantPushTwo;
|
||||
import com.l2jserver.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveOne;
|
||||
import com.l2jserver.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveTwo;
|
||||
import com.l2jserver.gameserver.network.clientpackets.compound.RequestNewEnchantTry;
|
||||
import com.l2jserver.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
|
||||
import com.l2jserver.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
|
||||
import com.l2jserver.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
|
||||
@@ -1158,7 +1164,7 @@ public final class L2GamePacketHandler implements IPacketHandler<L2GameClient>,
|
||||
// msg = new RequestAskMemberShip();
|
||||
break;
|
||||
case 0x7a:
|
||||
// @TODO: RequestAddExpandQuestAlarm
|
||||
msg = new RequestAddExpandQuestAlarm();
|
||||
break;
|
||||
case 0x7b:
|
||||
msg = new RequestVoteNew();
|
||||
|
||||
@@ -118,7 +118,10 @@ public abstract class L2GameClientPacket extends ReceivablePacket<L2GameClient>
|
||||
/**
|
||||
* @return A String with this packet name for debugging purposes
|
||||
*/
|
||||
public abstract String getType();
|
||||
public String getType()
|
||||
{
|
||||
return getClass().getSimpleName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Overridden with true value on some packets that should disable spawn protection (RequestItemList and UseItem only)
|
||||
|
||||
@@ -27,7 +27,6 @@ import com.l2jserver.gameserver.enums.CategoryType;
|
||||
import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.enums.UserInfoType;
|
||||
import com.l2jserver.gameserver.instancemanager.QuestManager;
|
||||
import com.l2jserver.gameserver.model.ClanPrivilege;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.L2SkillLearn;
|
||||
@@ -41,11 +40,10 @@ import com.l2jserver.gameserver.model.events.EventDispatcher;
|
||||
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerSkillLearn;
|
||||
import com.l2jserver.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.skills.CommonSkill;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.model.variables.PlayerVariables;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.AcquireSkillDone;
|
||||
import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
|
||||
@@ -67,14 +65,6 @@ import com.l2jserver.gameserver.util.Util;
|
||||
public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
{
|
||||
private static final String _C__7C_REQUESTACQUIRESKILL = "[C] 7C RequestAcquireSkill";
|
||||
private static final String[] QUEST_VAR_NAMES =
|
||||
{
|
||||
"EmergentAbility65-",
|
||||
"EmergentAbility70-",
|
||||
"ClassAbility75-",
|
||||
"ClassAbility80-"
|
||||
};
|
||||
|
||||
private static final String[] REVELATION_VAR_NAMES =
|
||||
{
|
||||
"RevelationSkill1",
|
||||
@@ -140,14 +130,16 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
|
||||
// Hack check. Doesn't apply to all Skill Types
|
||||
final int prevSkillLevel = activeChar.getSkillLevel(_id);
|
||||
if ((prevSkillLevel > 0) && !((_skillType == AcquireSkillType.TRANSFER) || (_skillType == AcquireSkillType.SUBPLEDGE)))
|
||||
if ((_skillType != AcquireSkillType.TRANSFER) && (_skillType != AcquireSkillType.SUBPLEDGE))
|
||||
{
|
||||
if (prevSkillLevel == _level)
|
||||
{
|
||||
_log.warning("Player " + activeChar.getName() + " is trying to learn a skill that already knows, Id: " + _id + " level: " + _level + "!");
|
||||
return;
|
||||
}
|
||||
else if (prevSkillLevel != (_level - 1))
|
||||
|
||||
final int tmpLv = (prevSkillLevel == -1) ? 0 : prevSkillLevel;
|
||||
if (tmpLv != (_level - 1))
|
||||
{
|
||||
// The previous level skill has not been learned.
|
||||
activeChar.sendPacket(SystemMessageId.THE_PREVIOUS_LEVEL_SKILL_HAS_NOT_BEEN_LEARNED);
|
||||
@@ -324,7 +316,6 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
}
|
||||
case SUBCLASS:
|
||||
{
|
||||
// Hack check.
|
||||
if (activeChar.isSubClassActive())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THIS_SKILL_CANNOT_BE_LEARNED_WHILE_IN_THE_SUBCLASS_STATE_PLEASE_TRY_AGAIN_AFTER_CHANGING_TO_THE_MAIN_CLASS);
|
||||
@@ -332,73 +323,55 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
// Certification Skills - Exploit fix
|
||||
if ((prevSkillLevel == -1) && (_level > 1))
|
||||
if (checkPlayerSkill(activeChar, trainer, s))
|
||||
{
|
||||
// The previous level skill has not been learned.
|
||||
activeChar.sendPacket(SystemMessageId.THE_PREVIOUS_LEVEL_SKILL_HAS_NOT_BEEN_LEARNED);
|
||||
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " without knowing it's previous level!", IllegalActionPunishmentType.NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
QuestState st = activeChar.getQuestState("SubClassSkills");
|
||||
if (st == null)
|
||||
{
|
||||
final Quest subClassSkilllsQuest = QuestManager.getInstance().getQuest("SubClassSkills");
|
||||
if (subClassSkilllsQuest != null)
|
||||
final PlayerVariables vars = activeChar.getVariables();
|
||||
String list = vars.getString("SubSkillList", "");
|
||||
if ((prevSkillLevel > 0) && list.contains(_id + "-" + prevSkillLevel))
|
||||
{
|
||||
st = subClassSkilllsQuest.newQuestState(activeChar);
|
||||
list = list.replace(_id + "-" + prevSkillLevel, _id + "-" + _level);
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.warning("Null SubClassSkills quest, for Sub-Class skill Id: " + _id + " level: " + _level + " for player " + activeChar.getName() + "!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (String varName : QUEST_VAR_NAMES)
|
||||
{
|
||||
for (int i = 1; i <= Config.MAX_SUBCLASS; i++)
|
||||
{
|
||||
final String itemOID = st.getGlobalQuestVar(varName + i);
|
||||
if (!itemOID.isEmpty() && !itemOID.endsWith(";") && !itemOID.equals("0"))
|
||||
if (!list.isEmpty())
|
||||
{
|
||||
if (Util.isDigit(itemOID))
|
||||
{
|
||||
final int itemObjId = Integer.parseInt(itemOID);
|
||||
final L2ItemInstance item = activeChar.getInventory().getItemByObjectId(itemObjId);
|
||||
if (item != null)
|
||||
{
|
||||
for (ItemHolder itemIdCount : s.getRequiredItems())
|
||||
{
|
||||
if (item.getId() == itemIdCount.getId())
|
||||
{
|
||||
if (checkPlayerSkill(activeChar, trainer, s))
|
||||
{
|
||||
giveSkill(activeChar, trainer, skill);
|
||||
// Logging the given skill.
|
||||
st.saveGlobalQuestVar(varName + i, skill.getId() + ";");
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.warning("Inexistent item for object Id " + itemObjId + ", for Sub-Class skill Id: " + _id + " level: " + _level + " for player " + activeChar.getName() + "!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.warning("Invalid item object Id " + itemOID + ", for Sub-Class skill Id: " + _id + " level: " + _level + " for player " + activeChar.getName() + "!");
|
||||
}
|
||||
list += ";";
|
||||
}
|
||||
list += _id + "-" + _level;
|
||||
}
|
||||
vars.set("SubSkillList", list);
|
||||
giveSkill(activeChar, trainer, skill, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DUALCLASS:
|
||||
{
|
||||
if (activeChar.isSubClassActive())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THIS_SKILL_CANNOT_BE_LEARNED_WHILE_IN_THE_SUBCLASS_STATE_PLEASE_TRY_AGAIN_AFTER_CHANGING_TO_THE_MAIN_CLASS);
|
||||
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " is requesting skill Id: " + _id + " level " + _level + " while Sub-Class is active!", IllegalActionPunishmentType.NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Player doesn't have required item.
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
|
||||
showSkillList(trainer, activeChar);
|
||||
if (checkPlayerSkill(activeChar, trainer, s))
|
||||
{
|
||||
final PlayerVariables vars = activeChar.getVariables();
|
||||
String list = vars.getString("DualSkillList", "");
|
||||
if ((prevSkillLevel > 0) && list.contains(_id + "-" + prevSkillLevel))
|
||||
{
|
||||
list = list.replace(_id + "-" + prevSkillLevel, _id + "-" + _level);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!list.isEmpty())
|
||||
{
|
||||
list += ";";
|
||||
}
|
||||
list += _id + "-" + _level;
|
||||
}
|
||||
vars.set("DualSkillList", list);
|
||||
giveSkill(activeChar, trainer, skill, false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case COLLECT:
|
||||
@@ -544,6 +517,32 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
}
|
||||
}
|
||||
|
||||
public final static void showSubSkillList(L2PcInstance activeChar)
|
||||
{
|
||||
final List<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableSubClassSkills(activeChar);
|
||||
if (!skills.isEmpty())
|
||||
{
|
||||
activeChar.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.SUBCLASS));
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN);
|
||||
}
|
||||
}
|
||||
|
||||
public final static void showDualSkillList(L2PcInstance activeChar)
|
||||
{
|
||||
final List<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableDualClassSkills(activeChar);
|
||||
if (!skills.isEmpty())
|
||||
{
|
||||
activeChar.sendPacket(new ExAcquirableSkillListByClass(skills, AcquireSkillType.DUALCLASS));
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform a simple check for current player and skill.<br>
|
||||
* Takes the needed SP if the skill require it and all requirements are meet.<br>
|
||||
@@ -663,18 +662,30 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
* @param skill the skill to be learn.
|
||||
*/
|
||||
private void giveSkill(L2PcInstance player, L2Npc trainer, Skill skill)
|
||||
{
|
||||
giveSkill(player, trainer, skill, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the skill to the player and makes proper updates.
|
||||
* @param player the player acquiring a skill.
|
||||
* @param trainer the Npc teaching a skill.
|
||||
* @param skill the skill to be learn.
|
||||
* @param store
|
||||
*/
|
||||
private void giveSkill(L2PcInstance player, L2Npc trainer, Skill skill, boolean store)
|
||||
{
|
||||
// Send message.
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S12);
|
||||
sm.addSkillName(skill);
|
||||
player.sendPacket(sm);
|
||||
|
||||
player.addSkill(skill, true);
|
||||
player.addSkill(skill, store);
|
||||
|
||||
player.sendPacket(new ItemList(player, false));
|
||||
player.sendPacket(new ShortCutInit(player));
|
||||
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
|
||||
player.sendSkillList();
|
||||
player.sendSkillList(skill.getId());
|
||||
|
||||
player.updateShortCuts(_id, _level);
|
||||
showSkillList(trainer, player);
|
||||
@@ -703,13 +714,21 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
*/
|
||||
private void showSkillList(L2Npc trainer, L2PcInstance player)
|
||||
{
|
||||
if ((_skillType == AcquireSkillType.TRANSFORM) || (_skillType == AcquireSkillType.SUBCLASS) || (_skillType == AcquireSkillType.TRANSFER))
|
||||
if ((_skillType == AcquireSkillType.TRANSFORM) || (_skillType == AcquireSkillType.TRANSFER))
|
||||
{
|
||||
// Managed in Datapack.
|
||||
return;
|
||||
}
|
||||
|
||||
if (trainer instanceof L2FishermanInstance)
|
||||
if (_skillType == AcquireSkillType.SUBCLASS)
|
||||
{
|
||||
showSubSkillList(player);
|
||||
}
|
||||
else if (_skillType == AcquireSkillType.DUALCLASS)
|
||||
{
|
||||
showDualSkillList(player);
|
||||
}
|
||||
else if (trainer instanceof L2FishermanInstance)
|
||||
{
|
||||
L2FishermanInstance.showFishSkillList(player);
|
||||
}
|
||||
|
||||
@@ -112,6 +112,7 @@ public final class RequestAcquireSkillInfo extends L2GameClientPacket
|
||||
case SUBCLASS:
|
||||
case COLLECT:
|
||||
case TRANSFER:
|
||||
case DUALCLASS:
|
||||
{
|
||||
sendPacket(new AcquireSkillInfo(_skillType, s));
|
||||
break;
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* 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.clientpackets;
|
||||
|
||||
import com.l2jserver.gameserver.instancemanager.QuestManager;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
*/
|
||||
public class RequestAddExpandQuestAlarm extends L2GameClientPacket
|
||||
{
|
||||
private static final String _C__D0_7A_REQUESTADDEXPANDQUESTALARM = "[C] D0;7A RequestAddExpandQuestAlarm";
|
||||
|
||||
private int _questId;
|
||||
|
||||
@Override
|
||||
protected void readImpl()
|
||||
{
|
||||
_questId = readD();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Quest quest = QuestManager.getInstance().getQuest(_questId);
|
||||
|
||||
if (quest != null)
|
||||
{
|
||||
quest.sendNpcLogList(activeChar);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType()
|
||||
{
|
||||
return _C__D0_7A_REQUESTADDEXPANDQUESTALARM;
|
||||
}
|
||||
}
|
||||
@@ -52,21 +52,21 @@ public class RequestEx2ndPasswordReq extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
SecondaryPasswordAuth spa = getClient().getSecondaryAuth();
|
||||
boolean exVal = false;
|
||||
SecondaryPasswordAuth secondAuth = getClient().getSecondaryAuth();
|
||||
boolean success = false;
|
||||
|
||||
if ((_changePass == 0) && !spa.passwordExist())
|
||||
if ((_changePass == 0) && !secondAuth.passwordExist())
|
||||
{
|
||||
exVal = spa.savePassword(_password);
|
||||
success = secondAuth.savePassword(_password);
|
||||
}
|
||||
else if ((_changePass == 2) && spa.passwordExist())
|
||||
else if ((_changePass == 2) && secondAuth.passwordExist())
|
||||
{
|
||||
exVal = spa.changePassword(_password, _newPassword);
|
||||
success = secondAuth.changePassword(_password, _newPassword);
|
||||
}
|
||||
|
||||
if (exVal)
|
||||
if (success)
|
||||
{
|
||||
getClient().sendPacket(new Ex2ndPasswordAck(Ex2ndPasswordAck.SUCCESS));
|
||||
sendPacket(new Ex2ndPasswordAck(_changePass, Ex2ndPasswordAck.SUCCESS));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,10 @@
|
||||
* 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.clientpackets;
|
||||
package com.l2jserver.gameserver.network.clientpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
|
||||
|
||||
/**
|
||||
* @author Erlandys
|
||||
@@ -16,13 +16,14 @@
|
||||
* 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.clientpackets;
|
||||
package com.l2jserver.gameserver.network.clientpackets.compound;
|
||||
|
||||
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.network.serverpackets.ExEnchantOneFail;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExEnchantOneOK;
|
||||
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
|
||||
import com.l2jserver.gameserver.network.serverpackets.compound.ExEnchantOneFail;
|
||||
import com.l2jserver.gameserver.network.serverpackets.compound.ExEnchantOneOK;
|
||||
|
||||
/**
|
||||
* @author Erlandys
|
||||
@@ -16,13 +16,14 @@
|
||||
* 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.clientpackets;
|
||||
package com.l2jserver.gameserver.network.clientpackets.compound;
|
||||
|
||||
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.network.serverpackets.ExEnchantTwoFail;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExEnchantTwoOK;
|
||||
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
|
||||
import com.l2jserver.gameserver.network.serverpackets.compound.ExEnchantTwoFail;
|
||||
import com.l2jserver.gameserver.network.serverpackets.compound.ExEnchantTwoOK;
|
||||
|
||||
/**
|
||||
* @author Erlandys
|
||||
@@ -16,9 +16,10 @@
|
||||
* 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.clientpackets;
|
||||
package com.l2jserver.gameserver.network.clientpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
|
||||
|
||||
/**
|
||||
* @author Erlandys
|
||||
@@ -16,9 +16,10 @@
|
||||
* 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.clientpackets;
|
||||
package com.l2jserver.gameserver.network.clientpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
|
||||
|
||||
/**
|
||||
* @author Erlandys
|
||||
@@ -16,13 +16,14 @@
|
||||
* 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.clientpackets;
|
||||
package com.l2jserver.gameserver.network.clientpackets.compound;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExEnchantFail;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExEnchantSucess;
|
||||
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
|
||||
import com.l2jserver.gameserver.network.serverpackets.compound.ExEnchantFail;
|
||||
import com.l2jserver.gameserver.network.serverpackets.compound.ExEnchantSucess;
|
||||
import com.l2jserver.util.Rnd;
|
||||
|
||||
/**
|
||||
@@ -23,13 +23,15 @@ package com.l2jserver.gameserver.network.serverpackets;
|
||||
*/
|
||||
public class Ex2ndPasswordAck extends L2GameServerPacket
|
||||
{
|
||||
int _response;
|
||||
private final int _status;
|
||||
private final int _response;
|
||||
|
||||
public static int SUCCESS = 0x00;
|
||||
public static int WRONG_PATTERN = 0x01;
|
||||
|
||||
public Ex2ndPasswordAck(int response)
|
||||
public Ex2ndPasswordAck(int status, int response)
|
||||
{
|
||||
_status = status;
|
||||
_response = response;
|
||||
}
|
||||
|
||||
@@ -38,7 +40,7 @@ public class Ex2ndPasswordAck extends L2GameServerPacket
|
||||
{
|
||||
writeC(0xFE);
|
||||
writeH(0x107);
|
||||
writeC(0x00);
|
||||
writeC(_status);
|
||||
writeD(_response == WRONG_PATTERN ? 0x01 : 0x00);
|
||||
writeD(0x00);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public class ExInzoneWaiting extends L2GameServerPacket
|
||||
writeD(_instanceTimes.size());
|
||||
for (Entry<Integer, Long> entry : _instanceTimes.entrySet())
|
||||
{
|
||||
final long instanceTime = TimeUnit.MILLISECONDS.toMinutes(entry.getValue() - System.currentTimeMillis());
|
||||
final long instanceTime = TimeUnit.MILLISECONDS.toSeconds(entry.getValue() - System.currentTimeMillis());
|
||||
writeD(entry.getKey());
|
||||
writeD((int) instanceTime);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ package com.l2jserver.gameserver.network.serverpackets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
|
||||
/**
|
||||
@@ -29,7 +30,7 @@ import com.l2jserver.gameserver.network.NpcStringId;
|
||||
public class ExQuestNpcLogList extends L2GameServerPacket
|
||||
{
|
||||
private final int _questId;
|
||||
private final List<Holder> _npcLogList = new ArrayList<>();
|
||||
private final List<NpcLogListHolder> _npcLogList = new ArrayList<>();
|
||||
|
||||
public ExQuestNpcLogList(int questId)
|
||||
{
|
||||
@@ -38,12 +39,17 @@ public class ExQuestNpcLogList extends L2GameServerPacket
|
||||
|
||||
public void addNpc(int npcId, int count)
|
||||
{
|
||||
_npcLogList.add(new Holder(npcId, false, count));
|
||||
_npcLogList.add(new NpcLogListHolder(npcId, false, count));
|
||||
}
|
||||
|
||||
public void addNpcString(NpcStringId npcStringId, int count)
|
||||
{
|
||||
_npcLogList.add(new Holder(npcStringId.getId(), true, count));
|
||||
_npcLogList.add(new NpcLogListHolder(npcStringId.getId(), true, count));
|
||||
}
|
||||
|
||||
public void add(NpcLogListHolder holder)
|
||||
{
|
||||
_npcLogList.add(holder);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -53,40 +59,11 @@ public class ExQuestNpcLogList extends L2GameServerPacket
|
||||
writeH(0xC6);
|
||||
writeD(_questId);
|
||||
writeC(_npcLogList.size());
|
||||
for (Holder holder : _npcLogList)
|
||||
for (NpcLogListHolder holder : _npcLogList)
|
||||
{
|
||||
writeD((holder.getId()));
|
||||
writeC(holder.isNpcString() ? 0x01 : 0x00);
|
||||
writeD(holder.getCount());
|
||||
}
|
||||
}
|
||||
|
||||
private class Holder
|
||||
{
|
||||
private final int _id;
|
||||
private final boolean _isNpcString;
|
||||
private final int _count;
|
||||
|
||||
public Holder(int id, boolean isNpcString, int count)
|
||||
{
|
||||
_id = id;
|
||||
_isNpcString = isNpcString;
|
||||
_count = count;
|
||||
}
|
||||
|
||||
public int getId()
|
||||
{
|
||||
return _id;
|
||||
}
|
||||
|
||||
public boolean isNpcString()
|
||||
{
|
||||
return _isNpcString;
|
||||
}
|
||||
|
||||
public int getCount()
|
||||
{
|
||||
return _count;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,7 @@ public class NpcInfo extends AbstractMaskPacket<NpcInfoType>
|
||||
addComponentType(NpcInfoType.TEAM);
|
||||
}
|
||||
|
||||
if (npc.getDisplayEffect() > 0)
|
||||
if (npc.getState() > 0)
|
||||
{
|
||||
addComponentType(NpcInfoType.DISPLAY_EFFECT);
|
||||
}
|
||||
@@ -327,7 +327,7 @@ public class NpcInfo extends AbstractMaskPacket<NpcInfoType>
|
||||
}
|
||||
if (containsMask(NpcInfoType.DISPLAY_EFFECT))
|
||||
{
|
||||
writeD(_npc.getDisplayEffect());
|
||||
writeD(_npc.getState());
|
||||
}
|
||||
if (containsMask(NpcInfoType.TRANSFORMATION))
|
||||
{
|
||||
|
||||
@@ -24,6 +24,7 @@ import java.util.List;
|
||||
public final class SkillList extends L2GameServerPacket
|
||||
{
|
||||
private final List<Skill> _skills = new ArrayList<>();
|
||||
private int _lastLearnedSkillId = 0;
|
||||
|
||||
static class Skill
|
||||
{
|
||||
@@ -48,6 +49,11 @@ public final class SkillList extends L2GameServerPacket
|
||||
_skills.add(new Skill(id, level, passive, disabled, enchanted));
|
||||
}
|
||||
|
||||
public void setLastLearnedSkillId(int lastLearnedSkillId)
|
||||
{
|
||||
_lastLearnedSkillId = lastLearnedSkillId;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void writeImpl()
|
||||
{
|
||||
@@ -63,6 +69,6 @@ public final class SkillList extends L2GameServerPacket
|
||||
writeC(temp.disabled ? 1 : 0); // iSkillDisabled
|
||||
writeC(temp.enchanted ? 1 : 0); // CanEnchant
|
||||
}
|
||||
writeD(0x00); // TODO: Find me!
|
||||
writeD(_lastLearnedSkillId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantFail extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantOneFail extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantOneOK extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantOneRemoveFail extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantOneRemoveOK extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantSucess extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantTwoFail extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantTwoOK extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantTwoRemoveFail extends L2GameServerPacket
|
||||
{
|
||||
@@ -16,7 +16,9 @@
|
||||
* 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;
|
||||
package com.l2jserver.gameserver.network.serverpackets.compound;
|
||||
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class ExEnchantTwoRemoveOK extends L2GameServerPacket
|
||||
{
|
||||
Reference in New Issue
Block a user