Support for Prime shop account limitations.

This commit is contained in:
MobiusDevelopment
2022-03-08 22:29:24 +00:00
parent 9522f4fefe
commit 7e09528fc1
146 changed files with 3702 additions and 1873 deletions

View File

@@ -9,65 +9,65 @@
<!-- endSale = unixTime -->
<!-- Supplies -->
<item id="2090029" cat="2" panelType="3" paymentType="0" price="250" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090029" cat="2" panelType="3" paymentType="0" price="250" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="93628" count="1" /> <!-- L-Coins (1000 pcs.) -->
</item>
<item id="2090030" cat="2" panelType="2" paymentType="0" price="1499" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090030" cat="2" panelType="2" paymentType="0" price="1499" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="91755" count="1" /> <!-- L-Coins (8000 pcs.) -->
</item>
<item id="2090028" cat="2" paymentType="0" price="600" recommended="2" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090028" cat="2" paymentType="0" price="600" recommended="2" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="93483" count="1" /> <!-- Growth Kit: L-Coins -->
</item>
<item id="2090027" cat="2" paymentType="0" price="999" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090027" cat="2" paymentType="0" price="999" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="93484" count="1" /> <!-- Grace Kit: L-Coins -->
</item>
<item id="2090044" cat="4" paymentType="0" price="30" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090044" cat="4" paymentType="0" price="30" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="71268" count="1" /> <!-- VIP Gain Scroll -->
</item>
<item id="2090045" cat="4" paymentType="0" price="60" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090045" cat="4" paymentType="0" price="60" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="71269" count="1" /> <!-- Good VIP Gain Scroll -->
</item>
<item id="2090046" cat="4" paymentType="0" price="50" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090046" cat="4" paymentType="0" price="50" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="71316" count="1" /> <!-- VIP Gain Scroll - 80 -->
</item>
<item id="2090047" cat="4" paymentType="0" price="100" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090047" cat="4" paymentType="0" price="100" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="71317" count="1" /> <!-- VIP Gain Scroll - 240 -->
</item>
<item id="2090048" cat="4" paymentType="0" price="333" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090048" cat="4" paymentType="0" price="333" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="71314" count="1" /> <!-- VIP Gain Scroll - 800 -->
</item>
<item id="2090049" cat="4" paymentType="0" price="999" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0">
<item id="2090049" cat="4" paymentType="0" price="999" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
<item itemId="71315" count="1" /> <!-- VIP Gain Scroll - 2400 -->
</item>
<item id="2090050" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="1">
<item id="2090050" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="1">
<item itemId="71177" count="1" /> <!-- Daily Present - VIP 1 -->
</item>
<item id="2090051" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="2">
<item id="2090051" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="2">
<item itemId="71178" count="1" /> <!-- Daily Present - VIP 2 -->
</item>
<item id="2090052" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="3">
<item id="2090052" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="3">
<item itemId="71179" count="1" /> <!-- Daily Present - VIP 3 -->
</item>
<item id="2090053" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="4">
<item id="2090053" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="4">
<item itemId="71180" count="1" /> <!-- Daily Present - VIP 4 -->
</item>
<item id="2090054" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="5">
<item id="2090054" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="5">
<item itemId="71181" count="1" /> <!-- Daily Present - VIP 5 -->
</item>
<item id="2090055" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="6">
<item id="2090055" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="6">
<item itemId="71182" count="1" /> <!-- Daily Present - VIP 6 -->
</item>
<item id="2090056" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="7">
<item id="2090056" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="7">
<item itemId="71183" count="1" /> <!-- Daily Present - VIP 7 -->
</item>
<item id="2090057" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="8">
<item id="2090057" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="8">
<item itemId="99027" count="1" /> <!-- Daily Present - VIP 8 -->
</item>
<item id="2090058" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="9">
<item id="2090058" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="9">
<item itemId="99028" count="1" /> <!-- Daily Present - VIP 9 -->
</item>
<item id="2090059" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" isVipGift="true" vipTier="10">
<item id="2090059" cat="5" paymentType="0" price="0" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0" isVipGift="true" vipTier="10">
<item itemId="99029" count="1" /> <!-- Daily Present - VIP 10 -->
</item>
</list>

View File

@@ -32,8 +32,8 @@
<xs:attribute type="xs:byte" name="maxLevel" use="optional" />
<xs:attribute type="xs:byte" name="minBirthday" use="optional" />
<xs:attribute type="xs:byte" name="maxBirthday" use="optional" />
<xs:attribute type="xs:byte" name="restrictionDay" use="optional" />
<xs:attribute type="xs:byte" name="availableCount" use="optional" />
<xs:attribute type="xs:byte" name="accountDailyLimit" use="optional" />
<xs:attribute type="xs:byte" name="accountBuyLimit" use="optional" />
<xs:attribute type="xs:boolean" name="isVipGift" use="optional" />
<xs:attribute type="xs:byte" name="vipTier" use="optional" />
</xs:complexType>

View File

@@ -31,6 +31,7 @@ import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.data.sql.ClanTable;
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
import org.l2jmobius.gameserver.data.xml.LimitShopData;
import org.l2jmobius.gameserver.data.xml.PrimeShopData;
import org.l2jmobius.gameserver.data.xml.TimedHuntingZoneData;
import org.l2jmobius.gameserver.model.DailyMissionDataHolder;
import org.l2jmobius.gameserver.model.World;
@@ -42,6 +43,7 @@ import org.l2jmobius.gameserver.model.holders.LimitShopProductHolder;
import org.l2jmobius.gameserver.model.holders.SubClassHolder;
import org.l2jmobius.gameserver.model.holders.TimedHuntingZoneHolder;
import org.l2jmobius.gameserver.model.olympiad.Olympiad;
import org.l2jmobius.gameserver.model.primeshop.PrimeShopGroup;
import org.l2jmobius.gameserver.model.variables.AccountVariables;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.model.vip.VipManager;
@@ -119,6 +121,7 @@ public class DailyTaskManager
resetClanDonationPoints();
resetDailyHennaPattern();
resetDailySkills();
resetDailyPrimeShopData();
resetDailyLimitShopData();
resetWorldChatPoints();
resetRecommends();
@@ -537,6 +540,32 @@ public class DailyTaskManager
}
}
private void resetDailyPrimeShopData()
{
for (PrimeShopGroup holder : PrimeShopData.getInstance().getPrimeItems().values())
{
// Update data for offline players.
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement ps = con.prepareStatement("DELETE FROM account_gsdata WHERE var=?"))
{
ps.setString(1, AccountVariables.PRIME_SHOP_PRODUCT_DAILY_COUNT + holder.getBrId());
ps.executeUpdate();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, getClass().getSimpleName() + ": Could not reset PrimeShopData: " + e);
}
// Update data for online players.
for (Player player : World.getInstance().getPlayers())
{
player.getVariables().remove(AccountVariables.PRIME_SHOP_PRODUCT_DAILY_COUNT + holder.getBrId());
player.getAccountVariables().storeMe();
}
}
LOGGER.info("PrimeShopData has been resetted.");
}
private void resetDailyLimitShopData()
{
for (LimitShopProductHolder holder : LimitShopData.getInstance().getProducts())

View File

@@ -45,8 +45,8 @@ public class PrimeShopGroup
private final int _maxLevel;
private final int _minBirthday;
private final int _maxBirthday;
private final int _restrictionDay;
private final int _availableCount;
private final int _accountDailyLimit;
private final int _accountBuyLimit;
private final boolean _isVipGift;
private final int _vipTier;
private final List<PrimeShopItem> _items;
@@ -73,8 +73,8 @@ public class PrimeShopGroup
_maxLevel = set.getInt("maxLevel", 0);
_minBirthday = set.getInt("minBirthday", 0);
_maxBirthday = set.getInt("maxBirthday", 0);
_restrictionDay = set.getInt("restrictionDay", 0);
_availableCount = set.getInt("availableCount", 0);
_accountDailyLimit = set.getInt("accountDailyLimit", 0);
_accountBuyLimit = set.getInt("accountBuyLimit", 0);
_isVipGift = set.getBoolean("isVipGift", false);
_vipTier = set.getInt("vipTier", 0);
@@ -191,14 +191,14 @@ public class PrimeShopGroup
return _maxBirthday;
}
public int getRestrictionDay()
public int getAccountDailyLimit()
{
return _restrictionDay;
return _accountDailyLimit;
}
public int getAvailableCount()
public int getAccountBuyLimit()
{
return _availableCount;
return _accountBuyLimit;
}
public boolean isVipGift()

View File

@@ -42,6 +42,8 @@ public class AccountVariables extends AbstractVariables
// Public variable names
public static final String HWID = "HWID";
public static final String HWIDSLIT_VAR = " ";
public static final String PRIME_SHOP_PRODUCT_COUNT = "PSPCount";
public static final String PRIME_SHOP_PRODUCT_DAILY_COUNT = "PSPDailyCount";
public static final String LCOIN_SHOP_PRODUCT_COUNT = "LCSCount";
public static final String LCOIN_SHOP_PRODUCT_DAILY_COUNT = "LCSDailyCount";
public static final String VIP_POINTS = "VipPoints";

View File

@@ -113,6 +113,17 @@ public class RequestBRBuyProduct implements IClientIncomingPacket
{
player.getAccountVariables().set(AccountVariables.VIP_ITEM_BOUGHT, Calendar.getInstance().getTimeInMillis());
}
// Update account variables.
if (item.getAccountDailyLimit() > 0)
{
player.getAccountVariables().set(AccountVariables.PRIME_SHOP_PRODUCT_DAILY_COUNT + item.getBrId(), player.getAccountVariables().getInt(AccountVariables.PRIME_SHOP_PRODUCT_DAILY_COUNT + item.getBrId(), 0) + (item.getCount() * _count));
}
else if (item.getAccountBuyLimit() > 0)
{
player.getAccountVariables().set(AccountVariables.PRIME_SHOP_PRODUCT_COUNT + item.getBrId(), player.getAccountVariables().getInt(AccountVariables.PRIME_SHOP_PRODUCT_COUNT + item.getBrId(), 0) + (item.getCount() * _count));
}
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.SUCCESS));
player.sendPacket(new ExBRGamePoint(player));
}
@@ -176,6 +187,16 @@ public class RequestBRBuyProduct implements IClientIncomingPacket
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.AFTER_SALE_DATE));
return false;
}
else if ((item.getAccountDailyLimit() > 0) && ((count + player.getAccountVariables().getInt(AccountVariables.PRIME_SHOP_PRODUCT_DAILY_COUNT + item.getBrId(), 0)) > item.getAccountDailyLimit()))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.SOLD_OUT));
return false;
}
else if ((item.getAccountBuyLimit() > 0) && ((count + player.getAccountVariables().getInt(AccountVariables.PRIME_SHOP_PRODUCT_COUNT + item.getBrId(), 0)) > item.getAccountBuyLimit()))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.SOLD_OUT));
return false;
}
if ((item.getVipTier() > player.getVipTier()) || (item.isVipGift() && !canReceiveGift(player, item)))
{
@@ -225,8 +246,7 @@ public class RequestBRBuyProduct implements IClientIncomingPacket
}
else
{
long timeBought = player.getAccountVariables().getLong(AccountVariables.VIP_ITEM_BOUGHT, 0L);
return timeBought <= 0;
return player.getAccountVariables().getLong(AccountVariables.VIP_ITEM_BOUGHT, 0) <= 0;
}
}

View File

@@ -22,6 +22,7 @@ import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.primeshop.PrimeShopGroup;
import org.l2jmobius.gameserver.model.primeshop.PrimeShopItem;
import org.l2jmobius.gameserver.model.variables.AccountVariables;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@@ -64,15 +65,49 @@ public class ExBRProductList implements IClientOutgoingPacket
packet.writeC(brItem.getStartMinute());
packet.writeC(brItem.getStopHour());
packet.writeC(brItem.getStopMinute());
packet.writeD(brItem.getStock());
packet.writeD(brItem.getTotal());
// Daily account limit.
if ((brItem.getAccountDailyLimit() > 0) && (_player.getAccountVariables().getInt(AccountVariables.PRIME_SHOP_PRODUCT_DAILY_COUNT + brItem.getBrId(), 0) >= brItem.getAccountDailyLimit()))
{
packet.writeD(brItem.getAccountDailyLimit());
packet.writeD(brItem.getAccountDailyLimit());
}
// General account limit.
else if ((brItem.getAccountBuyLimit() > 0) && (_player.getAccountVariables().getInt(AccountVariables.PRIME_SHOP_PRODUCT_COUNT + brItem.getBrId(), 0) >= brItem.getAccountBuyLimit()))
{
packet.writeD(brItem.getAccountBuyLimit());
packet.writeD(brItem.getAccountBuyLimit());
}
else
{
packet.writeD(brItem.getStock());
packet.writeD(brItem.getTotal());
}
packet.writeC(brItem.getSalePercent());
packet.writeC(brItem.getMinLevel());
packet.writeC(brItem.getMaxLevel());
packet.writeD(brItem.getMinBirthday());
packet.writeD(brItem.getMaxBirthday());
packet.writeD(brItem.getRestrictionDay());
packet.writeD(brItem.getAvailableCount());
// Daily account limit.
if (brItem.getAccountDailyLimit() > 0)
{
packet.writeD(1); // Days
packet.writeD(brItem.getAccountDailyLimit()); // Amount
}
// General account limit.
else if (brItem.getAccountBuyLimit() > 0)
{
packet.writeD(-1); // Days
packet.writeD(brItem.getAccountBuyLimit()); // Amount
}
else
{
packet.writeD(0); // Days
packet.writeD(0); // Amount
}
packet.writeC(brItem.getItems().size());
for (PrimeShopItem item : brItem.getItems())
{