Implemented Auto Shots with Config.

This commit is contained in:
MobiusDev
2016-07-08 23:46:39 +00:00
parent ee76eb17d9
commit 74fa05d65e
12 changed files with 97 additions and 26 deletions

View File

@ -13798,8 +13798,13 @@ public final class L2PcInstance extends L2Playable
}
}
public void handleAutoShots()
public void handleAutoShots(boolean force)
{
if (getAutoSoulShot().isEmpty() && !force)
{
return;
}
final L2ItemInstance weapon = getActiveWeaponInstance();
int soulShotId = 0;
int spiritShotId = 0;
@ -13853,10 +13858,40 @@ public final class L2PcInstance extends L2Playable
}
}
sendPacket(new ExAutoSoulShot(soulShotId, true, 1));
sendPacket(new ExAutoSoulShot(spiritShotId, true, 2));
sendPacket(new ExAutoSoulShot(summonSoulShotId, true, 3));
sendPacket(new ExAutoSoulShot(summonSpiritShotId, true, 4));
for (int shotId : getAutoSoulShot())
{
if ((shotId != soulShotId) && (shotId != spiritShotId) && (shotId != summonSoulShotId) && (shotId != summonSpiritShotId))
{
removeAutoSoulShot(shotId);
}
}
if (soulShotId != 0)
{
addAutoSoulShot(soulShotId);
}
if (spiritShotId != 0)
{
addAutoSoulShot(spiritShotId);
}
if (summonSoulShotId != 0)
{
addAutoSoulShot(summonSoulShotId);
}
if (summonSpiritShotId != 0)
{
addAutoSoulShot(summonSpiritShotId);
}
sendPacket(new ExAutoSoulShot(soulShotId, true, 0));
sendPacket(new ExAutoSoulShot(spiritShotId, true, 1));
sendPacket(new ExAutoSoulShot(summonSoulShotId, true, 2));
sendPacket(new ExAutoSoulShot(summonSpiritShotId, true, 3));
if (!getAutoSoulShot().isEmpty())
{
rechargeShots(true, true, true);
}
}
public GroupType getGroupType()

View File

@ -374,7 +374,7 @@ public abstract class Inventory extends ItemContainer
if (item.isWeapon())
{
player.handleAutoShots();
player.handleAutoShots(false);
}
}
@ -470,7 +470,7 @@ public abstract class Inventory extends ItemContainer
if (item.isWeapon())
{
player.handleAutoShots();
player.handleAutoShots(Config.ENABLE_AUTO_SHOTS);
}
}
}

View File

@ -460,7 +460,7 @@ public class PcInventory extends Inventory
if (item.isEtcItem() && (item.getItemType() == EtcItemType.SOULSHOT))
{
actor.handleAutoShots();
actor.handleAutoShots(false);
}
// Notify to scripts
@ -516,7 +516,7 @@ public class PcInventory extends Inventory
if (item.isEtcItem() && (item.getItemType() == EtcItemType.SOULSHOT))
{
actor.handleAutoShots();
actor.handleAutoShots(false);
}
// Notify to scripts

View File

@ -63,6 +63,7 @@ import com.l2jmobius.gameserver.network.serverpackets.CreatureSay;
import com.l2jmobius.gameserver.network.serverpackets.Die;
import com.l2jmobius.gameserver.network.serverpackets.EtcStatusUpdate;
import com.l2jmobius.gameserver.network.serverpackets.ExAdenaInvenCount;
import com.l2jmobius.gameserver.network.serverpackets.ExAutoSoulShot;
import com.l2jmobius.gameserver.network.serverpackets.ExBasicActionList;
import com.l2jmobius.gameserver.network.serverpackets.ExBeautyItemList;
import com.l2jmobius.gameserver.network.serverpackets.ExCastleState;
@ -616,7 +617,18 @@ public class EnterWorld implements IClientIncomingPacket
activeChar.sendPacket(new ExWorldChatCnt(activeChar));
activeChar.sendPacket(new ExOneDayReceiveRewardList(activeChar));
activeChar.sendPacket(ExConnectedTimeAndGettableReward.STATIC_PACKET);
activeChar.handleAutoShots();
if (Config.ENABLE_AUTO_SHOTS)
{
activeChar.handleAutoShots(true);
}
else
{
activeChar.sendPacket(new ExAutoSoulShot(0, false, 0));
activeChar.sendPacket(new ExAutoSoulShot(0, false, 1));
activeChar.sendPacket(new ExAutoSoulShot(0, false, 2));
activeChar.sendPacket(new ExAutoSoulShot(0, false, 3));
}
}
/**

View File

@ -184,9 +184,13 @@ public final class RequestAutoSoulShot implements IClientIncomingPacket
case SPIRITSHOT:
case SOULSHOT:
case FISHINGSHOT:
{
return true;
}
default:
{
return false;
}
}
}
@ -196,9 +200,13 @@ public final class RequestAutoSoulShot implements IClientIncomingPacket
{
case SUMMON_SPIRITSHOT:
case SUMMON_SOULSHOT:
{
return true;
}
default:
{
return false;
}
}
}
}