Additional RequestHuntPassReward adjustments.

Contributed by Fakee.
This commit is contained in:
MobiusDevelopment
2023-01-10 14:10:55 +00:00
parent 97c6d8a6cd
commit b1dfc544d0
7 changed files with 110 additions and 39 deletions

View File

@@ -14,4 +14,4 @@ PremiumItemCount = 1
# Please take caution when changing anything. # Please take caution when changing anything.
# Required Points per Window or step. # Required Points per Window or step.
PointsForStep = 300000 PointsForStep = 3000

View File

@@ -228,11 +228,6 @@ public class HuntPass
public void setRewardStep(int step) public void setRewardStep(int step)
{ {
if (_isPremium && (_premiumRewardStep <= _rewardStep))
{
return;
}
_rewardStep = Math.max(0, Math.min(step, HuntPassData.getInstance().getRewardsCount())); _rewardStep = Math.max(0, Math.min(step, HuntPassData.getInstance().getRewardsCount()));
} }

View File

@@ -64,13 +64,34 @@ public class RequestHuntPassReward implements ClientPacket
final HuntPass huntPass = player.getHuntPass(); final HuntPass huntPass = player.getHuntPass();
final int rewardIndex = huntPass.getRewardStep(); final int rewardIndex = huntPass.getRewardStep();
if (rewardIndex >= HuntPassData.getInstance().getRewardsCount()) final int premiumRewardIndex = huntPass.getPremiumRewardStep();
if ((rewardIndex >= HuntPassData.getInstance().getRewardsCount()) && (premiumRewardIndex >= HuntPassData.getInstance().getPremiumRewardsCount()))
{ {
player.removeRequest(RewardRequest.class); player.removeRequest(RewardRequest.class);
return; return;
} }
final ItemHolder reward = HuntPassData.getInstance().getRewards().get(rewardIndex); ItemHolder reward = null;
if (!huntPass.isPremium())
{
reward = HuntPassData.getInstance().getRewards().get(rewardIndex);
}
else
{
if (rewardIndex < HuntPassData.getInstance().getRewardsCount())
{
reward = HuntPassData.getInstance().getRewards().get(rewardIndex);
}
else if (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())
{
reward = HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex);
}
}
if (reward == null)
{
return;
}
final ItemTemplate itemTemplate = ItemTable.getInstance().getTemplate(reward.getId()); final ItemTemplate itemTemplate = ItemTable.getInstance().getTemplate(reward.getId());
final long weight = itemTemplate.getWeight() * reward.getCount(); final long weight = itemTemplate.getWeight() * reward.getCount();
final long slots = itemTemplate.isStackable() ? 1 : reward.getCount(); final long slots = itemTemplate.isStackable() ? 1 : reward.getCount();
@@ -82,20 +103,26 @@ public class RequestHuntPassReward implements ClientPacket
} }
// Normal reward. // Normal reward.
final int premiumRewardIndex = huntPass.getPremiumRewardStep(); if (!huntPass.isPremium() && (rewardIndex <= HuntPassData.getInstance().getRewardsCount()))
if (!huntPass.isPremium() || ((premiumRewardIndex >= rewardIndex) && (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())))
{ {
rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex)); rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex));
huntPass.setRewardStep(rewardIndex + 1);
} }
// Premium reward. // Premium reward.
if (huntPass.isPremium() && (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())) else if (huntPass.isPremium())
{ {
rewardItem(player, HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex)); if ((rewardIndex < HuntPassData.getInstance().getRewardsCount()) && (rewardIndex <= premiumRewardIndex))
huntPass.setPremiumRewardStep(premiumRewardIndex + 1); {
rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex));
huntPass.setRewardStep(rewardIndex + 1);
}
else if ((premiumRewardIndex < rewardIndex) && (premiumRewardIndex <= HuntPassData.getInstance().getPremiumRewardsCount()))
{
rewardItem(player, HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex));
huntPass.setPremiumRewardStep(premiumRewardIndex + 1);
}
} }
huntPass.setRewardStep(rewardIndex + 1);
huntPass.setRewardAlert(false); huntPass.setRewardAlert(false);
player.sendPacket(new HuntPassInfo(player, _huntPassType)); player.sendPacket(new HuntPassInfo(player, _huntPassType));

View File

@@ -228,11 +228,6 @@ public class HuntPass
public void setRewardStep(int step) public void setRewardStep(int step)
{ {
if (_isPremium && (_premiumRewardStep <= _rewardStep))
{
return;
}
_rewardStep = Math.max(0, Math.min(step, HuntPassData.getInstance().getRewardsCount())); _rewardStep = Math.max(0, Math.min(step, HuntPassData.getInstance().getRewardsCount()));
} }

View File

@@ -64,13 +64,34 @@ public class RequestHuntPassReward implements ClientPacket
final HuntPass huntPass = player.getHuntPass(); final HuntPass huntPass = player.getHuntPass();
final int rewardIndex = huntPass.getRewardStep(); final int rewardIndex = huntPass.getRewardStep();
if (rewardIndex >= HuntPassData.getInstance().getRewardsCount()) final int premiumRewardIndex = huntPass.getPremiumRewardStep();
if ((rewardIndex >= HuntPassData.getInstance().getRewardsCount()) && (premiumRewardIndex >= HuntPassData.getInstance().getPremiumRewardsCount()))
{ {
player.removeRequest(RewardRequest.class); player.removeRequest(RewardRequest.class);
return; return;
} }
final ItemHolder reward = HuntPassData.getInstance().getRewards().get(rewardIndex); ItemHolder reward = null;
if (!huntPass.isPremium())
{
reward = HuntPassData.getInstance().getRewards().get(rewardIndex);
}
else
{
if (rewardIndex < HuntPassData.getInstance().getRewardsCount())
{
reward = HuntPassData.getInstance().getRewards().get(rewardIndex);
}
else if (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())
{
reward = HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex);
}
}
if (reward == null)
{
return;
}
final ItemTemplate itemTemplate = ItemTable.getInstance().getTemplate(reward.getId()); final ItemTemplate itemTemplate = ItemTable.getInstance().getTemplate(reward.getId());
final long weight = itemTemplate.getWeight() * reward.getCount(); final long weight = itemTemplate.getWeight() * reward.getCount();
final long slots = itemTemplate.isStackable() ? 1 : reward.getCount(); final long slots = itemTemplate.isStackable() ? 1 : reward.getCount();
@@ -82,20 +103,26 @@ public class RequestHuntPassReward implements ClientPacket
} }
// Normal reward. // Normal reward.
final int premiumRewardIndex = huntPass.getPremiumRewardStep(); if (!huntPass.isPremium() && (rewardIndex <= HuntPassData.getInstance().getRewardsCount()))
if (!huntPass.isPremium() || ((premiumRewardIndex >= rewardIndex) && (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())))
{ {
rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex)); rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex));
huntPass.setRewardStep(rewardIndex + 1);
} }
// Premium reward. // Premium reward.
if (huntPass.isPremium() && (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())) else if (huntPass.isPremium())
{ {
rewardItem(player, HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex)); if ((rewardIndex < HuntPassData.getInstance().getRewardsCount()) && (rewardIndex <= premiumRewardIndex))
huntPass.setPremiumRewardStep(premiumRewardIndex + 1); {
rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex));
huntPass.setRewardStep(rewardIndex + 1);
}
else if ((premiumRewardIndex < rewardIndex) && (premiumRewardIndex <= HuntPassData.getInstance().getPremiumRewardsCount()))
{
rewardItem(player, HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex));
huntPass.setPremiumRewardStep(premiumRewardIndex + 1);
}
} }
huntPass.setRewardStep(rewardIndex + 1);
huntPass.setRewardAlert(false); huntPass.setRewardAlert(false);
player.sendPacket(new HuntPassInfo(player, _huntPassType)); player.sendPacket(new HuntPassInfo(player, _huntPassType));

View File

@@ -1,7 +1,7 @@
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# HuntPass Settings # HuntPass Settings
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
EnabledHuntPass = False EnabledHuntPass = True
# Period to end. # Period to end.
# Retail 1 month. # Retail 1 month.

View File

@@ -64,13 +64,34 @@ public class RequestHuntPassReward implements ClientPacket
final HuntPass huntPass = player.getHuntPass(); final HuntPass huntPass = player.getHuntPass();
final int rewardIndex = huntPass.getRewardStep(); final int rewardIndex = huntPass.getRewardStep();
if (rewardIndex >= HuntPassData.getInstance().getRewardsCount()) final int premiumRewardIndex = huntPass.getPremiumRewardStep();
if ((rewardIndex >= HuntPassData.getInstance().getRewardsCount()) && (premiumRewardIndex >= HuntPassData.getInstance().getPremiumRewardsCount()))
{ {
player.removeRequest(RewardRequest.class); player.removeRequest(RewardRequest.class);
return; return;
} }
final ItemHolder reward = HuntPassData.getInstance().getRewards().get(rewardIndex); ItemHolder reward = null;
if (!huntPass.isPremium())
{
reward = HuntPassData.getInstance().getRewards().get(rewardIndex);
}
else
{
if (rewardIndex < HuntPassData.getInstance().getRewardsCount())
{
reward = HuntPassData.getInstance().getRewards().get(rewardIndex);
}
else if (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())
{
reward = HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex);
}
}
if (reward == null)
{
return;
}
final ItemTemplate itemTemplate = ItemTable.getInstance().getTemplate(reward.getId()); final ItemTemplate itemTemplate = ItemTable.getInstance().getTemplate(reward.getId());
final long weight = itemTemplate.getWeight() * reward.getCount(); final long weight = itemTemplate.getWeight() * reward.getCount();
final long slots = itemTemplate.isStackable() ? 1 : reward.getCount(); final long slots = itemTemplate.isStackable() ? 1 : reward.getCount();
@@ -82,20 +103,26 @@ public class RequestHuntPassReward implements ClientPacket
} }
// Normal reward. // Normal reward.
final int premiumRewardIndex = huntPass.getPremiumRewardStep(); if (!huntPass.isPremium() && (rewardIndex <= HuntPassData.getInstance().getRewardsCount()))
if (!huntPass.isPremium() || ((premiumRewardIndex >= rewardIndex) && (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())))
{ {
rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex)); rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex));
huntPass.setRewardStep(rewardIndex + 1);
} }
// Premium reward. // Premium reward.
if (huntPass.isPremium() && (premiumRewardIndex < HuntPassData.getInstance().getPremiumRewardsCount())) else if (huntPass.isPremium())
{ {
rewardItem(player, HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex)); if ((rewardIndex < HuntPassData.getInstance().getRewardsCount()) && (rewardIndex <= premiumRewardIndex))
huntPass.setPremiumRewardStep(premiumRewardIndex + 1); {
rewardItem(player, HuntPassData.getInstance().getRewards().get(rewardIndex));
huntPass.setRewardStep(rewardIndex + 1);
}
else if ((premiumRewardIndex < rewardIndex) && (premiumRewardIndex <= HuntPassData.getInstance().getPremiumRewardsCount()))
{
rewardItem(player, HuntPassData.getInstance().getPremiumRewards().get(premiumRewardIndex));
huntPass.setPremiumRewardStep(premiumRewardIndex + 1);
}
} }
huntPass.setRewardStep(rewardIndex + 1);
huntPass.setRewardAlert(false); huntPass.setRewardAlert(false);
player.sendPacket(new HuntPassInfo(player, _huntPassType)); player.sendPacket(new HuntPassInfo(player, _huntPassType));