- Implemented adena distribution engine.
- Cleaned not used variable.
This commit is contained in:
@@ -72,7 +72,6 @@ public final class L2GamePacketHandler implements IPacketHandler<L2GameClient>,
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
int opcode = buf.get() & 0xFF;
|
int opcode = buf.get() & 0xFF;
|
||||||
|
|
||||||
ReceivablePacket<L2GameClient> msg = null;
|
ReceivablePacket<L2GameClient> msg = null;
|
||||||
@@ -1561,13 +1560,13 @@ public final class L2GamePacketHandler implements IPacketHandler<L2GameClient>,
|
|||||||
// msg = new RequestCardReward();
|
// msg = new RequestCardReward();
|
||||||
break;
|
break;
|
||||||
case 0xE6:
|
case 0xE6:
|
||||||
// msg = new RequestDivideAdenaStart();
|
msg = new RequestDivideAdenaStart();
|
||||||
break;
|
break;
|
||||||
case 0xE7:
|
case 0xE7:
|
||||||
// msg = new RequestDivideAdenaCancel();
|
msg = new RequestDivideAdenaCancel();
|
||||||
break;
|
break;
|
||||||
case 0xE8:
|
case 0xE8:
|
||||||
// msg = new RequestDivideAdena();
|
msg = new RequestDivideAdena();
|
||||||
break;
|
break;
|
||||||
case 0xE9:
|
case 0xE9:
|
||||||
msg = new RequestAcquireAbilityList();
|
msg = new RequestAcquireAbilityList();
|
||||||
|
@@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* 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.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||||
|
import com.l2jserver.gameserver.network.serverpackets.ExDivideAdenaDone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Erlandys
|
||||||
|
*/
|
||||||
|
public class RequestDivideAdena extends L2GameClientPacket
|
||||||
|
{
|
||||||
|
long _count;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void readImpl()
|
||||||
|
{
|
||||||
|
readD();
|
||||||
|
_count = readQ();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void runImpl()
|
||||||
|
{
|
||||||
|
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||||
|
if (activeChar == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
long count = activeChar.getAdena();
|
||||||
|
if (_count > count)
|
||||||
|
{
|
||||||
|
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_THERE_IS_INSUFFICIENT_ADENA);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int membersCount = activeChar.getParty().getMemberCount();
|
||||||
|
long dividedCount = (long) Math.floor(_count / membersCount);
|
||||||
|
activeChar.reduceAdena("AdenaDistribution", membersCount * dividedCount, null, false);
|
||||||
|
for (L2PcInstance player : activeChar.getParty().getMembers())
|
||||||
|
{
|
||||||
|
player.addAdena("AdenaDistribution", dividedCount, null, player.getObjectId() != activeChar.getObjectId());
|
||||||
|
}
|
||||||
|
activeChar.sendPacket(new ExDivideAdenaDone(membersCount, _count, dividedCount, activeChar.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType()
|
||||||
|
{
|
||||||
|
return getClass().getSimpleName();
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* 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.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||||
|
import com.l2jserver.gameserver.network.serverpackets.ExDivideAdenaCancel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Erlandys
|
||||||
|
*/
|
||||||
|
public class RequestDivideAdenaCancel extends L2GameClientPacket
|
||||||
|
{
|
||||||
|
int _cancel;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void readImpl()
|
||||||
|
{
|
||||||
|
_cancel = readC();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void runImpl()
|
||||||
|
{
|
||||||
|
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||||
|
if (activeChar == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (_cancel == 0)
|
||||||
|
{
|
||||||
|
activeChar.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED);
|
||||||
|
activeChar.sendPacket(new ExDivideAdenaCancel());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType()
|
||||||
|
{
|
||||||
|
return getClass().getSimpleName();
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* 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.model.actor.instance.L2PcInstance;
|
||||||
|
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||||
|
import com.l2jserver.gameserver.network.serverpackets.ExDivideAdenaStart;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Erlandys
|
||||||
|
*/
|
||||||
|
public class RequestDivideAdenaStart extends L2GameClientPacket
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
protected void readImpl()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void runImpl()
|
||||||
|
{
|
||||||
|
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||||
|
if (activeChar == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (activeChar.getParty() == null)
|
||||||
|
{
|
||||||
|
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_IN_AN_ALLIANCE_OR_PARTY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (activeChar.getParty().getLeaderObjectId() != activeChar.getObjectId())
|
||||||
|
{
|
||||||
|
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_A_PARTY_LEADER);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
activeChar.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_STARTED);
|
||||||
|
activeChar.sendPacket(new ExDivideAdenaStart());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType()
|
||||||
|
{
|
||||||
|
return getClass().getSimpleName();
|
||||||
|
}
|
||||||
|
}
|
@@ -48,7 +48,7 @@ public class SendChangeAttributeTargetItem extends L2GameClientPacket
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
player.sendPacket(new ExChangeAttributeInfo(_elementOID, _itemOID, item.getAttackElementType()));
|
player.sendPacket(new ExChangeAttributeInfo(_elementOID, item.getAttackElementType()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -19,13 +19,11 @@ package com.l2jserver.gameserver.network.serverpackets;
|
|||||||
*/
|
*/
|
||||||
public class ExChangeAttributeInfo extends L2GameServerPacket
|
public class ExChangeAttributeInfo extends L2GameServerPacket
|
||||||
{
|
{
|
||||||
private final int itemOID;
|
|
||||||
private final int attributeOID;
|
private final int attributeOID;
|
||||||
private final int attributes;
|
private final int attributes;
|
||||||
|
|
||||||
public ExChangeAttributeInfo(int _attributeOID, int _itemOID, int _attribute)
|
public ExChangeAttributeInfo(int _attributeOID, int _attribute)
|
||||||
{
|
{
|
||||||
itemOID = _itemOID;
|
|
||||||
attributeOID = _attributeOID;
|
attributeOID = _attributeOID;
|
||||||
switch (_attribute)
|
switch (_attribute)
|
||||||
{
|
{
|
||||||
|
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Erlandys
|
||||||
|
*/
|
||||||
|
public class ExDivideAdenaCancel extends L2GameServerPacket
|
||||||
|
{
|
||||||
|
public ExDivideAdenaCancel()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final void writeImpl()
|
||||||
|
{
|
||||||
|
writeC(0xFE);
|
||||||
|
writeH(0x15C);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Erlandys
|
||||||
|
*/
|
||||||
|
public class ExDivideAdenaDone extends L2GameServerPacket
|
||||||
|
{
|
||||||
|
int _friendsCount;
|
||||||
|
long _count, _dividedCount;
|
||||||
|
String _name;
|
||||||
|
|
||||||
|
public ExDivideAdenaDone(int friendsCount, long count, long dividedCount, String name)
|
||||||
|
{
|
||||||
|
_friendsCount = friendsCount;
|
||||||
|
_count = count;
|
||||||
|
_dividedCount = dividedCount;
|
||||||
|
_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final void writeImpl()
|
||||||
|
{
|
||||||
|
writeC(0xFE);
|
||||||
|
writeH(0x15D);
|
||||||
|
writeC(0x01); // Always 1
|
||||||
|
writeC(0x00); // Always 0
|
||||||
|
writeD(_friendsCount); // Friends count
|
||||||
|
writeQ(_dividedCount); // Divided count
|
||||||
|
writeQ(_count); // Whole count
|
||||||
|
writeS(_name); // Giver name
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Erlandys
|
||||||
|
*/
|
||||||
|
public class ExDivideAdenaStart extends L2GameServerPacket
|
||||||
|
{
|
||||||
|
public ExDivideAdenaStart()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final void writeImpl()
|
||||||
|
{
|
||||||
|
writeC(0xFE);
|
||||||
|
writeH(0x15B);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user