Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/impl/creature/player/OnPlayerLoad.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/impl/creature/player/OnPlayerLoad.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/impl/creature/player/OnPlayerLoad.java
- new file mode 100644
- --- /dev/null (date 1619442949925)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/impl/creature/player/OnPlayerLoad.java (date 1619442949925)
- @@ -0,0 +1,30 @@
- +package org.l2jmobius.gameserver.model.events.impl.creature.player;
- +
- +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
- +import org.l2jmobius.gameserver.model.events.EventType;
- +import org.l2jmobius.gameserver.model.events.impl.IBaseEvent;
- +
- +/**
- + * @author Gabriel Costa Souza
- + * Discord: Gabriel 'GCS'#2589
- + * Skype - email: gabriel_costa25@hotmail.com
- + */
- +public class OnPlayerLoad implements IBaseEvent {
- + private final PlayerInstance _player;
- +
- + public OnPlayerLoad(PlayerInstance player)
- + {
- + _player = player;
- + }
- +
- + public PlayerInstance getPlayer()
- + {
- + return _player;
- + }
- +
- + @Override
- + public EventType getType()
- + {
- + return EventType.ON_PLAYER_LOAD;
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/55000-55099.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/55000-55099.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/55000-55099.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/55000-55099.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/55000-55099.xml (date 1619407398827)
- @@ -283,36 +283,467 @@
- <!-- You can obtain a daily VIP chest Lv. 1. Acquired XP/ SP +3%, item drop rate +3%. -->
- <icon>BranchIcon.Icon.g_skill_vip1</icon>
- <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>5</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>5</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>50</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>1</amount>
- + <mode>DIFF</mode>
- + </effect>
- + </effects>
- </skill>
- <skill id="55025" toLevel="1" name="VIP Lv. 2">
- <!-- You can obtain a daily VIP chest Lv. 2. Acquired XP/ SP +7%, item drop rate +7%. You can use the world chat at any level (world chat messages +3). -->
- <icon>BranchIcon.Icon.g_skill_vip2</icon>
- <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>10</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>10</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>150</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>6</amount>
- + <mode>DIFF</mode>
- + </effect>
- + </effects>
- </skill>
- <skill id="55026" toLevel="1" name="VIP Lv. 3">
- <!-- You can obtain a daily VIP chest Lv. 3. Acquired XP/ SP +15%, item drop rate +15%, Death XP Penalty -10%. You can use the world chat at any level (world chat messages +3). -->
- <icon>BranchIcon.Icon.g_skill_vip3</icon>
- <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>15</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>15</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>200</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>6</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-10</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>3</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>3</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>3</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>3</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>3</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>3</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>3</amount>
- + <mode>PER</mode>
- + </effect>
- + </effects>
- </skill>
- <skill id="55027" toLevel="1" name="VIP Lv. 4">
- <!-- You can obtain a daily VIP chest Lv. 4. Acquired XP/ SP +25%, item drop rate +15%, Death XP Penalty -15%. You can use the world chat at any level (world chat messages +5). -->
- <icon>BranchIcon.Icon.g_skill_vip4</icon>
- <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>25</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>25</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>250</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>10</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-20</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PhysicalDefence">
- + <amount>10</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MagicalDefence">
- + <amount>10</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>STR</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>INT</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>CON</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>DEX</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>MEN</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>WIT</stat>
- + </effect>
- + </effects>
- </skill>
- <skill id="55028" toLevel="1" name="VIP Lv. 5">
- <!-- You can obtain a daily VIP chest Lv. 5. Acquired XP/ SP +30%, item drop rate +30%, Death XP Penalty -20%. Increases PvE damage. You can use the world chat at any level (world chat messages +10). -->
- <icon>BranchIcon.Icon.g_skill_vip5</icon>
- <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>30</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>30</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>250</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>20</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-20</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PhysicalDefence">
- + <amount>15</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MagicalDefence">
- + <amount>15</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>STR</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>INT</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>CON</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>DEX</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>MEN</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>WIT</stat>
- + </effect>
- + </effects>
- </skill>
- <skill id="55029" toLevel="1" name="VIP Lv. 6">
- <!-- You can obtain a daily VIP chest Lv. 6. Acquired XP/ SP +30%, item drop rate +30%, Death XP Penalty -20%. Increases PvE damage, STR/ DEX/ CON/ INT/ WIT/ MEN +2. You can use the world chat at any level (world chat messages +10). -->
- <icon>BranchIcon.Icon.g_skill_vip6</icon>
- - <operateType>P</operateType>
- + <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>35</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>35</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>250</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>20</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-20</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpMagicalSkillDamageBonus">
- + <amount>2.5</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalAttackDamageBonus">
- + <amount>2.5</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalSkillDamageBonus">
- + <amount>2.5</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PhysicalDefence">
- + <amount>20</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MagicalDefence">
- + <amount>20</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>STR</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>INT</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>CON</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>DEX</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>MEN</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>1</amount>
- + <stat>WIT</stat>
- + </effect>
- + </effects>
- </skill>
- <skill id="55030" toLevel="1" name="VIP Lv. 7">
- <!-- You can obtain a daily VIP chest Lv. 7. Acquired XP/ SP +30%, item drop rate +30%, Death XP Penalty -20%. Increases PvP/ PvE damage, STR/ DEX/ CON/ INT/ WIT/ MEN +2. You can use the world chat at any level (world chat messages +10). -->
- <icon>BranchIcon.Icon.g_skill_vip7</icon>
- - <operateType>P</operateType>
- + <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>35</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>35</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>250</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>40</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-20</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpMagicalSkillDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalAttackDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalSkillDamageBonus">
- + <amount>10</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PhysicalDefence">
- + <amount>30</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MagicalDefence">
- + <amount>30</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>STR</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>INT</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>CON</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>DEX</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>MEN</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>WIT</stat>
- + </effect>
- + </effects>
- </skill>
- <skill id="55031" toLevel="1" name="Report Status">
- <!-- You are under suspicion of using an illegal program. Your actions have been restricted. -->
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/VipSystem.ini
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/VipSystem.ini b/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/VipSystem.ini
- new file mode 100644
- --- /dev/null (date 1619548564258)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/VipSystem.ini (date 1619548564258)
- @@ -0,0 +1,23 @@
- +# ---------------------------------------------------------------------------
- +# VIP System
- +# ---------------------------------------------------------------------------
- +
- +# VIP System Enabled.
- +# l2.ini
- +# [VipSystem]
- +# UseVipInfoWndAden=false
- +# -> needs to be true
- +# Prime shop Aden needs to be true aswell!
- +# Check vip.xml for more info!
- +
- +VIPEnabled = True
- +
- +# Max vip level that can be reached (Client Limitations, lv 8 -> 10 Doesn't exist. If u want to use, make it yourself!)
- +MaxVipLevel = 7
- +
- +# When purchasing from the Prime Shop, the price amount will add to your vip points
- +PrimeAffectPoints = true
- +
- +# When purchasing from the L Shop, the price amount will add to your vip points
- +# P.S. this will only affect the purchases made with L Coin and not Adena!
- +LShopAffectPoints = true
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipLuckyGameInfo.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipLuckyGameInfo.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipLuckyGameInfo.java
- new file mode 100644
- --- /dev/null (date 1619559249862)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipLuckyGameInfo.java (date 1619559249862)
- @@ -0,0 +1,34 @@
- +package org.l2jmobius.gameserver.network.serverpackets.vip;
- +
- +import org.l2jmobius.commons.network.PacketWriter;
- +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
- +import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
- +import org.l2jmobius.gameserver.network.OutgoingPackets;
- +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
- +
- +
- +/**
- + * @author Gabriel Costa Souza
- + * Discord: Gabriel 'GCS'#2589
- + * Skype - email: gabriel_costa25@hotmail.com
- + */
- +public class ReceiveVipLuckyGameInfo implements IClientOutgoingPacket
- +{
- + private final PlayerInstance _player;
- + private final int LCOIN = 91663;
- +
- + public ReceiveVipLuckyGameInfo(PlayerInstance player)
- + {
- + _player = player;
- + }
- + @Override
- + public boolean write(PacketWriter packet)
- + {
- + OutgoingPackets.RECIVE_VIP_LUCKY_GAME_INFO.writeId(packet);
- + packet.writeC(1); // enabled
- + packet.writeH((int) _player.getAdena());
- + ItemInstance item = _player.getInventory().getItemByItemId(LCOIN);
- + packet.writeH(item == null? 0 : (int) item.getCount()); //L Coin count
- + return true;
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71300-71399.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71300-71399.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71300-71399.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71300-71399.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71300-71399.xml (date 1619408502281)
- @@ -154,50 +154,70 @@
- <item id="71314" name="VIP Gain Scroll - 800" type="EtcItem">
- <!-- Allows to regain 800 VIP Points when used. Cannot be exchanged, dropped or sold in a private store. Can be stored in a private warehouse. -->
- <set name="icon" val="BranchIcon.Icon.g_bm_vip_potion_i00" />
- - <set name="default_action" val="SKILL_REDUCE_ON_SKILL_SUCCESS" />
- - <set name="material" val="PAPER" />
- - <set name="weight" val="5" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="SKILL_REDUCE" />
- + <set name="material" val="PAPER" />
- + <set name="weight" val="5" />
- + <set name="is_tradable" val="false" />
- + <set name="is_depositable" val="false" />
- + <set name="immediate_effect" val="true" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ItemSkills" />
- + <skills>
- + <skill id="59125" level="1" /> <!-- VIP Gain Scroll - 800 -->
- + </skills>
- </item>
- <item id="71315" name="VIP Gain Scroll - 2400" type="EtcItem">
- <!-- Allows to regain 2400 VIP Points when used. Cannot be exchanged, dropped or sold in a private store. Can be stored in a private warehouse. -->
- <set name="icon" val="BranchIcon.Icon.g_bm_vip_potion_i00" />
- - <set name="default_action" val="SKILL_REDUCE_ON_SKILL_SUCCESS" />
- + <set name="default_action" val="SKILL_REDUCE" />
- <set name="material" val="PAPER" />
- <set name="weight" val="5" />
- <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="immediate_effect" val="true" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ItemSkills" />
- + <skills>
- + <skill id="59126" level="1" /> <!-- VIP Gain Scroll - 2400 -->
- + </skills>
- </item>
- <item id="71316" name="VIP Gain Scroll - 80" type="EtcItem">
- <!-- Allows to regain 80 VIP Points when used. Cannot be exchanged, dropped or sold in a private store. Can be stored in a private warehouse. -->
- <set name="icon" val="BranchIcon.Icon.g_bm_vip_potion_i00" />
- - <set name="default_action" val="SKILL_REDUCE_ON_SKILL_SUCCESS" />
- - <set name="material" val="PAPER" />
- - <set name="weight" val="5" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="SKILL_REDUCE" />
- + <set name="material" val="PAPER" />
- + <set name="weight" val="5" />
- + <set name="is_tradable" val="false" />
- + <set name="is_depositable" val="false" />
- + <set name="immediate_effect" val="true" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ItemSkills" />
- + <skills>
- + <skill id="59127" level="1" /> <!-- VIP Gain Scroll - 80 -->
- + </skills>
- </item>
- <item id="71317" name="VIP Gain Scroll - 240" type="EtcItem">
- <!-- Allows to regain 240 VIP Points when used. Cannot be exchanged, dropped or sold in a private store. Can be stored in a private warehouse. -->
- <set name="icon" val="BranchIcon.Icon.g_bm_vip_potion_i00" />
- - <set name="default_action" val="SKILL_REDUCE_ON_SKILL_SUCCESS" />
- - <set name="material" val="PAPER" />
- - <set name="weight" val="5" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="SKILL_REDUCE" />
- + <set name="material" val="PAPER" />
- + <set name="weight" val="5" />
- + <set name="is_tradable" val="false" />
- + <set name="is_depositable" val="false" />
- + <set name="immediate_effect" val="true" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ItemSkills" />
- + <skills>
- + <skill id="59128" level="1" /> <!-- VIP Gain Scroll - 240 -->
- + </skills>
- </item>
- <item id="71318" name="Transformation Sealbook: Part-time Seller" additionalName="Kat the Cat" type="EtcItem">
- <!-- Sealbook for learning the skill of transforming yourself into Kat the Cat. -->
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExWorldChatCnt.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExWorldChatCnt.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExWorldChatCnt.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExWorldChatCnt.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExWorldChatCnt.java (date 1619454109453)
- @@ -30,7 +30,7 @@
- public ExWorldChatCnt(PlayerInstance player)
- {
- - _points = player.getLevel() < Config.WORLD_CHAT_MIN_LEVEL ? 0 : Math.max(player.getWorldChatPoints() - player.getWorldChatUsed(), 0);
- + _points = player.getLevel() < Config.WORLD_CHAT_MIN_LEVEL || player.getVipTier() <= 0 ? 0 : Math.max(player.getWorldChatPoints() - player.getWorldChatUsed(), 0);
- }
- @Override
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBrPremiumState.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBrPremiumState.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBrPremiumState.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBrPremiumState.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBrPremiumState.java (date 1619454109442)
- @@ -38,7 +38,7 @@
- OutgoingPackets.EX_BR_PREMIUM_STATE.writeId(packet);
- packet.writeD(_player.getObjectId());
- - packet.writeC(_player.hasPremiumStatus() ? 0x01 : 0x00);
- + packet.writeC(_player.hasPremiumStatus() || _player.getVipTier() > 0 ? 0x01 : 0x00);
- return true;
- }
- }
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/EffectMasterHandler.java (date 1619407462579)
- @@ -66,6 +66,7 @@
- EffectHandler.getInstance().registerHandler("BlockSkill", BlockSkill::new);
- EffectHandler.getInstance().registerHandler("BlockTarget", BlockTarget::new);
- EffectHandler.getInstance().registerHandler("Bluff", Bluff::new);
- + EffectHandler.getInstance().registerHandler("VipUp", VipUp::new);
- EffectHandler.getInstance().registerHandler("BonusDropAdena", BonusDropAdena::new);
- EffectHandler.getInstance().registerHandler("BonusDropAmount", BonusDropAmount::new);
- EffectHandler.getInstance().registerHandler("BonusDropRate", BonusDropRate::new);
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java (date 1619453850578)
- @@ -16,6 +16,7 @@
- */
- package org.l2jmobius.gameserver.network.clientpackets.limitshop;
- +import org.l2jmobius.Config;
- import org.l2jmobius.commons.network.PacketReader;
- import org.l2jmobius.commons.util.Chronos;
- import org.l2jmobius.gameserver.data.xml.LCoinShopData;
- @@ -147,6 +148,8 @@
- else
- {
- player.destroyItemByItemId("LCoinShop", product.getIngredientIds()[i], product.getIngredientQuantities()[i] * _amount, player, true);
- + if(Config.VIP_SYSTEM_L_SHOP_AFFECT)
- + player.updateVipPoints(_amount);
- }
- }
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/56000-56099.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/56000-56099.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/56000-56099.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/56000-56099.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/56000-56099.xml (date 1619405978152)
- @@ -546,11 +546,21 @@
- <icon>BranchIcon.Icon.g_bm_vip_potion_i00</icon>
- <operateType>A1</operateType>
- <reuseDelay>1000</reuseDelay>
- + <effects>
- + <effect name="VipUp">
- + <amount>27</amount>
- + </effect>
- + </effects>
- </skill>
- <skill id="56097" toLevel="1" name="Good VIP Gain Scroll">
- <icon>BranchIcon.Icon.g_bm_vip_potion_i00</icon>
- <operateType>A1</operateType>
- <reuseDelay>1000</reuseDelay>
- + <effects>
- + <effect name="VipUp">
- + <amount>273</amount>
- + </effect>
- + </effects>
- </skill>
- <skill id="56098" toLevel="24" name="Venir's Talisman">
- <!-- When equipped, CON +$s1. -->
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/GameServer.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/GameServer.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/GameServer.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/GameServer.java (date 1619442119536)
- @@ -45,69 +45,7 @@
- import org.l2jmobius.gameserver.data.sql.ClanTable;
- import org.l2jmobius.gameserver.data.sql.CrestTable;
- import org.l2jmobius.gameserver.data.sql.OfflineTraderTable;
- -import org.l2jmobius.gameserver.data.xml.ActionData;
- -import org.l2jmobius.gameserver.data.xml.AdminData;
- -import org.l2jmobius.gameserver.data.xml.AgathionData;
- -import org.l2jmobius.gameserver.data.xml.AppearanceItemData;
- -import org.l2jmobius.gameserver.data.xml.ArmorSetData;
- -import org.l2jmobius.gameserver.data.xml.AttendanceRewardData;
- -import org.l2jmobius.gameserver.data.xml.BeautyShopData;
- -import org.l2jmobius.gameserver.data.xml.BuyListData;
- -import org.l2jmobius.gameserver.data.xml.CategoryData;
- -import org.l2jmobius.gameserver.data.xml.ClanHallData;
- -import org.l2jmobius.gameserver.data.xml.ClanRewardData;
- -import org.l2jmobius.gameserver.data.xml.ClassListData;
- -import org.l2jmobius.gameserver.data.xml.CombinationItemsData;
- -import org.l2jmobius.gameserver.data.xml.CubicData;
- -import org.l2jmobius.gameserver.data.xml.DailyMissionData;
- -import org.l2jmobius.gameserver.data.xml.DoorData;
- -import org.l2jmobius.gameserver.data.xml.ElementalSpiritData;
- -import org.l2jmobius.gameserver.data.xml.EnchantItemData;
- -import org.l2jmobius.gameserver.data.xml.EnchantItemGroupsData;
- -import org.l2jmobius.gameserver.data.xml.EnchantItemHPBonusData;
- -import org.l2jmobius.gameserver.data.xml.EnchantItemOptionsData;
- -import org.l2jmobius.gameserver.data.xml.EnchantSkillGroupsData;
- -import org.l2jmobius.gameserver.data.xml.EnsoulData;
- -import org.l2jmobius.gameserver.data.xml.EquipmentUpgradeData;
- -import org.l2jmobius.gameserver.data.xml.EventEngineData;
- -import org.l2jmobius.gameserver.data.xml.ExperienceData;
- -import org.l2jmobius.gameserver.data.xml.FakePlayerData;
- -import org.l2jmobius.gameserver.data.xml.FenceData;
- -import org.l2jmobius.gameserver.data.xml.FishingData;
- -import org.l2jmobius.gameserver.data.xml.HennaData;
- -import org.l2jmobius.gameserver.data.xml.HitConditionBonusData;
- -import org.l2jmobius.gameserver.data.xml.InitialEquipmentData;
- -import org.l2jmobius.gameserver.data.xml.InitialShortcutData;
- -import org.l2jmobius.gameserver.data.xml.ItemCrystallizationData;
- -import org.l2jmobius.gameserver.data.xml.KarmaData;
- -import org.l2jmobius.gameserver.data.xml.LCoinShopData;
- -import org.l2jmobius.gameserver.data.xml.LuckyGameData;
- -import org.l2jmobius.gameserver.data.xml.MagicLampData;
- -import org.l2jmobius.gameserver.data.xml.MultisellData;
- -import org.l2jmobius.gameserver.data.xml.NpcData;
- -import org.l2jmobius.gameserver.data.xml.NpcNameLocalisationData;
- -import org.l2jmobius.gameserver.data.xml.OptionData;
- -import org.l2jmobius.gameserver.data.xml.PetDataTable;
- -import org.l2jmobius.gameserver.data.xml.PetSkillData;
- -import org.l2jmobius.gameserver.data.xml.PlayerTemplateData;
- -import org.l2jmobius.gameserver.data.xml.PlayerXpPercentLostData;
- -import org.l2jmobius.gameserver.data.xml.PrimeShopData;
- -import org.l2jmobius.gameserver.data.xml.RandomCraftData;
- -import org.l2jmobius.gameserver.data.xml.RecipeData;
- -import org.l2jmobius.gameserver.data.xml.ResidenceFunctionsData;
- -import org.l2jmobius.gameserver.data.xml.SayuneData;
- -import org.l2jmobius.gameserver.data.xml.SecondaryAuthData;
- -import org.l2jmobius.gameserver.data.xml.SendMessageLocalisationData;
- -import org.l2jmobius.gameserver.data.xml.ShuttleData;
- -import org.l2jmobius.gameserver.data.xml.SiegeScheduleData;
- -import org.l2jmobius.gameserver.data.xml.SkillData;
- -import org.l2jmobius.gameserver.data.xml.SkillTreeData;
- -import org.l2jmobius.gameserver.data.xml.SpawnData;
- -import org.l2jmobius.gameserver.data.xml.StaticObjectData;
- -import org.l2jmobius.gameserver.data.xml.TeleportListData;
- -import org.l2jmobius.gameserver.data.xml.TeleporterData;
- -import org.l2jmobius.gameserver.data.xml.TransformData;
- -import org.l2jmobius.gameserver.data.xml.VariationData;
- +import org.l2jmobius.gameserver.data.xml.*;
- import org.l2jmobius.gameserver.geoengine.GeoEngine;
- import org.l2jmobius.gameserver.handler.ConditionHandler;
- import org.l2jmobius.gameserver.handler.DailyMissionHandler;
- @@ -155,6 +93,7 @@
- import org.l2jmobius.gameserver.model.events.EventDispatcher;
- import org.l2jmobius.gameserver.model.olympiad.Hero;
- import org.l2jmobius.gameserver.model.olympiad.Olympiad;
- +import org.l2jmobius.gameserver.model.vip.VipManager;
- import org.l2jmobius.gameserver.model.votereward.VoteSystem;
- import org.l2jmobius.gameserver.network.ClientNetworkManager;
- import org.l2jmobius.gameserver.network.NpcStringId;
- @@ -288,6 +227,7 @@
- AttendanceRewardData.getInstance();
- MagicLampData.getInstance();
- RandomCraftData.getInstance();
- + VipData.getInstance();
- printSection("Characters");
- ClassListData.getInstance();
- @@ -305,6 +245,7 @@
- CharSummonTable.getInstance().init();
- BeautyShopData.getInstance();
- MentorManager.getInstance();
- + VipManager.getInstance();
- if (Config.FACTION_SYSTEM_ENABLED)
- {
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipInfo.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipInfo.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipInfo.java
- new file mode 100644
- --- /dev/null (date 1619559202606)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/vip/ReceiveVipInfo.java (date 1619559202606)
- @@ -0,0 +1,40 @@
- +package org.l2jmobius.gameserver.network.serverpackets.vip;
- +
- +import org.l2jmobius.Config;
- +import org.l2jmobius.commons.network.PacketWriter;
- +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
- +import org.l2jmobius.gameserver.model.vip.VipManager;
- +import org.l2jmobius.gameserver.network.OutgoingPackets;
- +import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
- +
- +import java.time.Instant;
- +import java.time.temporal.ChronoUnit;
- +
- +public class ReceiveVipInfo implements IClientOutgoingPacket
- +{
- + private final PlayerInstance _player;
- +
- + public ReceiveVipInfo(PlayerInstance player)
- + {
- + _player = player;
- + }
- + @Override
- + public boolean write(PacketWriter packet)
- + {
- + if(!Config.VIP_SYSTEM_ENABLED)
- + return false;
- + var vipManager = VipManager.getInstance();
- + var vipTier = _player.getVipTier();
- + var vipDuration = (int) ChronoUnit.SECONDS.between(Instant.now(), Instant.ofEpochMilli(_player.getVipTierExpiration()));
- +
- + OutgoingPackets.RECIVE_VIP_INFO.writeId(packet);
- + packet.writeC(vipTier);
- + packet.writeQ(_player.getVipPoints());
- + packet.writeD(vipDuration);
- + packet.writeQ(vipManager.getPointsToLevel((byte)(vipTier+1)));
- + packet.writeQ(vipManager.getPointsDepreciatedOnLevel(vipTier));
- + packet.writeC(vipTier);
- + packet.writeQ(vipManager.getPointsToLevel(vipTier));
- + return true;
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59100-59199.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59100-59199.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59100-59199.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59100-59199.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59100-59199.xml (date 1619405854067)
- @@ -139,21 +139,41 @@
- <icon>BranchIcon.Icon.g_bm_vip_potion_i00</icon>
- <operateType>A1</operateType>
- <reuseDelay>1000</reuseDelay>
- + <effects>
- + <effect name="VipUp">
- + <amount>800</amount>
- + </effect>
- + </effects>
- </skill>
- <skill id="59126" toLevel="1" name="VIP Gain Scroll - 2400">
- <icon>BranchIcon.Icon.g_bm_vip_potion_i00</icon>
- <operateType>A1</operateType>
- <reuseDelay>1000</reuseDelay>
- + <effects>
- + <effect name="VipUp">
- + <amount>2400</amount>
- + </effect>
- + </effects>
- </skill>
- <skill id="59127" toLevel="1" name="VIP Gain Scroll - 80">
- <icon>BranchIcon.Icon.g_bm_vip_potion_i00</icon>
- <operateType>A1</operateType>
- <reuseDelay>1000</reuseDelay>
- + <effects>
- + <effect name="VipUp">
- + <amount>80</amount>
- + </effect>
- + </effects>
- </skill>
- <skill id="59128" toLevel="1" name="VIP Gain Scroll - 240">
- <icon>BranchIcon.Icon.g_bm_vip_potion_i00</icon>
- <operateType>A1</operateType>
- <reuseDelay>1000</reuseDelay>
- + <effects>
- + <effect name="VipUp">
- + <amount>240</amount>
- + </effect>
- + </effects>
- </skill>
- <skill id="59129" toLevel="1" name="Transformation Sealbook: Kat the Cat">
- <operateType>A1</operateType>
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/99000-99099.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/99000-99099.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/99000-99099.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/99000-99099.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/99000-99099.xml (date 1619451172663)
- @@ -9,4 +9,61 @@
- <set name="is_dropable" val="false" />
- <set name="is_sellable" val="false" />
- </item>
- + <item id="99027" name="Daily Present - VIP 8" type="EtcItem">
- + <!-- Double-click the item to receive 1 Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 Greater Healing Potions, 150 VIP Coins. -->
- + <set name="icon" val="BranchIcon.Icon.etc_vip_present_i06" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="3" />
- + <set name="extractableCountMax" val="3" />
- + <capsuled_items>
- + <item id="91689" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Escape -->
- + <item id="3936" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Resurrection -->
- + <item id="29652" min="3" max="3" chance="100.00"/> <!-- Major Healing Potion -->
- + </capsuled_items>
- + </item>
- + <item id="99028" name="Daily Present - VIP 9" type="EtcItem">
- + <!-- Double-click the item to receive 1 Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 Greater Healing Potions, 150 VIP Coins. -->
- + <set name="icon" val="BranchIcon.Icon.etc_vip_present_i06" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="3" />
- + <set name="extractableCountMax" val="3" />
- + <capsuled_items>
- + <item id="91689" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Escape -->
- + <item id="3936" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Resurrection -->
- + <item id="29652" min="3" max="3" chance="100.00"/> <!-- Major Healing Potion -->
- + </capsuled_items>
- + </item>
- + <item id="99029" name="Daily Present - VIP 10" type="EtcItem">
- + <!-- Double-click the item to receive 1 Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 Greater Healing Potions, 150 VIP Coins. -->
- + <set name="icon" val="BranchIcon.Icon.etc_vip_present_i06" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="3" />
- + <set name="extractableCountMax" val="3" />
- + <capsuled_items>
- + <item id="91689" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Escape -->
- + <item id="3936" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Resurrection -->
- + <item id="29652" min="3" max="3" chance="100.00"/> <!-- Major Healing Potion -->
- + </capsuled_items>
- + </item>
- </list>
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/PcCafe.ini
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/PcCafe.ini b/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/PcCafe.ini
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/PcCafe.ini (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/Custom/PcCafe.ini (date 1619454227615)
- @@ -9,6 +9,9 @@
- # Allow only players with a Premium account.
- PcCafeOnlyPremium = False
- +# Allow only players with a Vip Tier account.
- +PcCafeOnlyVip = False
- +
- # Max points that player may have.
- # Limited by int limit.
- MaxPcCafePoints = 200000
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBRNewIconCashBtnWnd.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBRNewIconCashBtnWnd.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBRNewIconCashBtnWnd.java
- new file mode 100644
- --- /dev/null (date 1619379122105)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/serverpackets/ExBRNewIconCashBtnWnd.java (date 1619379122105)
- @@ -0,0 +1,27 @@
- +package org.l2jmobius.gameserver.network.serverpackets;
- +
- +import org.l2jmobius.commons.network.PacketWriter;
- +import org.l2jmobius.gameserver.network.OutgoingPackets;
- +
- +/**
- + * @author Gabriel Costa Souza
- + * Discord: Gabriel 'GCS'#2589
- + * Skype - email: gabriel_costa25@hotmail.com
- + */
- +public class ExBRNewIconCashBtnWnd implements IClientOutgoingPacket
- +{
- + private final short active;
- +
- + public ExBRNewIconCashBtnWnd(short active)
- + {
- + this.active = active;
- + }
- +
- + @Override
- + public boolean write(PacketWriter packet)
- + {
- + OutgoingPackets.EX_BR_NEW_ICON_CASH_BTN_WND.writeId(packet);
- + packet.writeH(active);
- + return true;
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/ExRequestVipInfo.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/ExRequestVipInfo.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/ExRequestVipInfo.java
- new file mode 100644
- --- /dev/null (date 1619559189039)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/ExRequestVipInfo.java (date 1619559189039)
- @@ -0,0 +1,22 @@
- +package org.l2jmobius.gameserver.network.clientpackets.vip;
- +
- +import org.l2jmobius.commons.network.PacketReader;
- +import org.l2jmobius.gameserver.network.GameClient;
- +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
- +import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipInfo;
- +
- +public class ExRequestVipInfo implements IClientIncomingPacket {
- + @Override
- + public boolean read(GameClient client, PacketReader packet)
- + {
- + // Nothing to read
- + return true;
- + }
- +
- + @Override
- + public void run(GameClient client)
- + {
- + client.sendPacket(new ReceiveVipInfo(client.getPlayer()));
- +
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRPresentBuyProduct.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRPresentBuyProduct.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRPresentBuyProduct.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRPresentBuyProduct.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRPresentBuyProduct.java (date 1619457507470)
- @@ -88,6 +88,12 @@
- player.addRequest(new PrimeShopRequest(player));
- final PrimeShopGroup item = PrimeShopData.getInstance().getItem(_brId);
- +
- + if(item.isVipGift()){
- + player.sendMessage("You cannot gift a Vip Gift!");
- + return;
- + }
- +
- if (validatePlayer(item, _count, player))
- {
- final int price = (item.getPrice() * _count);
- @@ -116,6 +122,8 @@
- return;
- }
- player.setPrimePoints(player.getPrimePoints() - price);
- + if(Config.VIP_SYSTEM_PRIME_AFFECT)
- + player.updateVipPoints(price);
- }
- player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.SUCCESS));
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/EventType.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/EventType.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/EventType.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/EventType.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/events/EventType.java (date 1619376093109)
- @@ -58,67 +58,7 @@
- import org.l2jmobius.gameserver.model.events.impl.creature.npc.OnNpcSpawn;
- import org.l2jmobius.gameserver.model.events.impl.creature.npc.OnNpcTeleport;
- import org.l2jmobius.gameserver.model.events.impl.creature.npc.OnNpcTeleportRequest;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnElementalSpiritLearn;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAbilityPointsChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAugment;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerBypass;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCallToChangeClass;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerChangeToAwakenedClass;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerChat;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanCreate;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanDestroy;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanJoin;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanLeaderChange;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanLeft;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanLvlUp;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanWHItemAdd;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanWHItemDestroy;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanWHItemTransfer;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCreate;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDelete;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAnswer;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerFameChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerFishing;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerHennaAdd;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerHennaRemove;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemAdd;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDestroy;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDrop;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemEquip;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemPickup;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemTransfer;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemUnequip;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLevelChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogout;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMenteeAdd;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMenteeLeft;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMenteeRemove;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMenteeStatus;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMentorStatus;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMoveRequest;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPKChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPressTutorialMark;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionCancel;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionChange;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPvPChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPvPKill;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerQuestAbort;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerQuestComplete;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerReputationChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerRestore;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSelect;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSkillLearn;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSocialAction;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSubChange;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSummonAgathion;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSummonSpawn;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSummonTalk;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerTakeHero;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerTransform;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerUnsummonAgathion;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnTrapAction;
- +import org.l2jmobius.gameserver.model.events.impl.creature.player.*;
- import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceCreated;
- import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceDestroy;
- import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceEnter;
- @@ -259,6 +199,7 @@
- ON_PLAYER_LEVEL_CHANGED(OnPlayerLevelChanged.class, void.class),
- ON_PLAYER_LOGIN(OnPlayerLogin.class, void.class),
- ON_PLAYER_LOGOUT(OnPlayerLogout.class, void.class),
- + ON_PLAYER_LOAD(OnPlayerLoad.class, void.class),
- ON_PLAYER_PK_CHANGED(OnPlayerPKChanged.class, void.class),
- ON_PLAYER_PRESS_TUTORIAL_MARK(OnPlayerPressTutorialMark.class, void.class),
- ON_PLAYER_MOVE_REQUEST(OnPlayerMoveRequest.class, void.class, TerminateReturn.class),
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/RequestVipLuckGameInfo.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/RequestVipLuckGameInfo.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/RequestVipLuckGameInfo.java
- new file mode 100644
- --- /dev/null (date 1619559189056)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/vip/RequestVipLuckGameInfo.java (date 1619559189056)
- @@ -0,0 +1,22 @@
- +package org.l2jmobius.gameserver.network.clientpackets.vip;
- +
- +
- +import org.l2jmobius.commons.network.PacketReader;
- +import org.l2jmobius.gameserver.network.GameClient;
- +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
- +import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipLuckyGameInfo;
- +
- +public class RequestVipLuckGameInfo implements IClientIncomingPacket {
- + @Override
- + public boolean read(GameClient client, PacketReader packet)
- + {
- + // Nothing to read
- + return true;
- + }
- +
- + @Override
- + public void run(GameClient client)
- + {
- + client.sendPacket(new ReceiveVipLuckyGameInfo(client.getPlayer()));
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRBuyProduct.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRBuyProduct.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRBuyProduct.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRBuyProduct.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/primeshop/RequestBRBuyProduct.java (date 1619460020189)
- @@ -27,6 +27,7 @@
- import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
- 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.GameClient;
- import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
- import org.l2jmobius.gameserver.network.serverpackets.primeshop.ExBRBuyProduct;
- @@ -97,14 +98,17 @@
- player.removeRequest(PrimeShopRequest.class);
- return;
- }
- - player.setPrimePoints(player.getPrimePoints() - price);
- + player.setPrimePoints(player.getPrimePoints() - price);
- + if (Config.VIP_SYSTEM_PRIME_AFFECT)
- + player.updateVipPoints(price);
- }
- -
- +
- for (PrimeShopItem subItem : item.getItems())
- {
- player.addItem("PrimeShop", subItem.getId(), subItem.getCount() * _count, player, true);
- }
- -
- + if(item.isVipGift())
- + player.getAccountVariables().set(AccountVariables.VIP_ITEM_BOUGHT, Calendar.getInstance().getTimeInMillis());
- player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.SUCCESS));
- player.sendPacket(new ExBRGamePoint(player));
- }
- @@ -168,8 +172,13 @@
- player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.AFTER_SALE_DATE));
- return false;
- }
- -
- - final int weight = item.getWeight() * count;
- +
- + if(item.getVipTier() > player.getVipTier() || item.isVipGift() && !canReceiveGift(player, item)) {
- + player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.SOLD_OUT));
- + return false;
- + }
- +
- + final int weight = item.getWeight() * count;
- final long slots = item.getCount() * count;
- if (player.getInventory().validateWeight(weight))
- {
- @@ -187,6 +196,26 @@
- return true;
- }
- +
- + /**
- + * Check if player can receive Gift from L2 Store
- + * @param player player in question
- + * @param item requested item.
- + * @return true if player can receive gift item.
- + */
- + private static boolean canReceiveGift(PlayerInstance player, PrimeShopGroup item){
- + if(!Config.VIP_SYSTEM_ENABLED)
- + return false;
- + if(player.getVipTier() <= 0)
- + return false;
- + else if(item.getVipTier() != player.getVipTier()) {
- + player.sendMessage("This item is not for your vip tier!");
- + return false;
- + } else{
- + long timeBought = player.getAccountVariables().getLong(AccountVariables.VIP_ITEM_BOUGHT, 0L);
- + return timeBought <= 0;
- + }
- + }
- private static int validatePaymentId(PrimeShopGroup item, long amount)
- {
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59700-59799.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59700-59799.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59700-59799.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59700-59799.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/skills/59700-59799.xml (date 1619407883878)
- @@ -241,21 +241,324 @@
- <icon>icon.skill0000</icon>
- <operateType>A1</operateType>
- </skill>
- - <skill id="59723" toLevel="1" name="">
- - <!-- AUTO GENERATED SKILL TODO: FIX IT -->
- - <icon>icon.skill0000</icon>
- - <operateType>A1</operateType>
- + <skill id="59723" toLevel="1" name="VIP Lv. 8">
- + <!-- TODO: Client side -->
- + <icon>BranchIcon.Icon.g_skill_vip8</icon>
- + <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>35</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>35</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>300</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>50</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-30</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpMagicalSkillDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalAttackDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalSkillDamageBonus">
- + <amount>12</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PhysicalDefence">
- + <amount>50</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MagicalDefence">
- + <amount>50</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>STR</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>INT</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>CON</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>DEX</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>MEN</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>2</amount>
- + <stat>WIT</stat>
- + </effect>
- + <effect name="MaxHp">
- + <amount>100</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MaxMp">
- + <amount>100</amount>
- + <mode>DIFF</mode>
- + </effect>
- + </effects>
- </skill>
- - <skill id="59724" toLevel="1" name="">
- - <!-- AUTO GENERATED SKILL TODO: FIX IT -->
- - <icon>icon.skill0000</icon>
- - <operateType>A1</operateType>
- + <skill id="59724" toLevel="1" name="VIP Lv. 9">
- + <!-- TODO: Client side -->
- + <icon>BranchIcon.Icon.g_skill_vip9</icon>
- + <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>40</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>40</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>300</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>50</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-40</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpMagicalSkillDamageBonus">
- + <amount>13</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalAttackDamageBonus">
- + <amount>13</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalSkillDamageBonus">
- + <amount>13</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PhysicalDefence">
- + <amount>80</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MagicalDefence">
- + <amount>80</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="StatUp">
- + <amount>3</amount>
- + <stat>STR</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>3</amount>
- + <stat>INT</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>3</amount>
- + <stat>CON</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>3</amount>
- + <stat>DEX</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>3</amount>
- + <stat>MEN</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>3</amount>
- + <stat>WIT</stat>
- + </effect>
- + <effect name="MaxHp">
- + <amount>200</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MaxMp">
- + <amount>200</amount>
- + <mode>DIFF</mode>
- + </effect>
- + </effects>
- </skill>
- - <skill id="59725" toLevel="1" name="">
- - <!-- AUTO GENERATED SKILL TODO: FIX IT -->
- - <icon>icon.skill0000</icon>
- - <operateType>A1</operateType>
- - </skill>
- + <skill id="59725" toLevel="1" name="VIP Lv. 10">
- + <!-- TODO: Client side -->
- + <icon>BranchIcon.Icon.g_skill_vip10</icon>
- + <operateType>P</operateType>
- + <hitTime>500</hitTime>
- + <effects>
- + <effect name="ExpModify">
- + <amount>50</amount>
- + </effect>
- + <effect name="SpModify">
- + <amount>50</amount>
- + </effect>
- + <effect name="BonusDropRate">
- + <amount>300</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="WorldChatPoints">
- + <amount>50</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="ReduceDropPenalty">
- + <deathPenalty>-50</deathPenalty>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvePhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PveRaidPhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpMagicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalAttackDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PvpPhysicalSkillDamageBonus">
- + <amount>15</amount>
- + <mode>PER</mode>
- + </effect>
- + <effect name="PhysicalDefence">
- + <amount>100</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MagicalDefence">
- + <amount>100</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="StatUp">
- + <amount>4</amount>
- + <stat>STR</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>4</amount>
- + <stat>INT</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>4</amount>
- + <stat>CON</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>4</amount>
- + <stat>DEX</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>4</amount>
- + <stat>MEN</stat>
- + </effect>
- + <effect name="StatUp">
- + <amount>4</amount>
- + <stat>WIT</stat>
- + </effect>
- + <effect name="MaxHp">
- + <amount>500</amount>
- + <mode>DIFF</mode>
- + </effect>
- + <effect name="MaxMp">
- + <amount>500</amount>
- + <mode>DIFF</mode>
- + </effect>
- + </effects>
- + </skill>
- <skill id="59726" toLevel="1" name="">
- <!-- AUTO GENERATED SKILL TODO: FIX IT -->
- <icon>icon.skill0000</icon>
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/Config.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/Config.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/Config.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/Config.java (date 1619460020152)
- @@ -135,6 +135,7 @@
- private static final String CUSTOM_OFFLINE_TRADE_CONFIG_FILE = "./config/Custom/OfflineTrade.ini";
- private static final String CUSTOM_PASSWORD_CHANGE_CONFIG_FILE = "./config/Custom/PasswordChange.ini";
- private static final String CUSTOM_PC_CAFE_CONFIG_FILE = "./config/Custom/PcCafe.ini";
- + private static final String CUSTOM_VIP_CONFIG_FILE = "./config/Custom/VipSystem.ini";
- private static final String CUSTOM_PREMIUM_SYSTEM_CONFIG_FILE = "./config/Custom/PremiumSystem.ini";
- private static final String CUSTOM_PRIVATE_STORE_RANGE_CONFIG_FILE = "./config/Custom/PrivateStoreRange.ini";
- private static final String CUSTOM_PVP_ANNOUNCE_CONFIG_FILE = "./config/Custom/PvpAnnounce.ini";
- @@ -157,6 +158,7 @@
- public static boolean ENABLE_ATTENDANCE_REWARDS;
- public static boolean PREMIUM_ONLY_ATTENDANCE_REWARDS;
- + public static boolean VIP_ONLY_ATTENDANCE_REWARDS;
- public static boolean ATTENDANCE_REWARDS_SHARE_ACCOUNT;
- public static int ATTENDANCE_REWARD_DELAY;
- public static boolean ATTENDANCE_POPUP_START;
- @@ -1271,6 +1273,7 @@
- public static boolean PREMIUM_ONLY_FISHING;
- public static boolean PC_CAFE_ENABLED;
- public static boolean PC_CAFE_ONLY_PREMIUM;
- + public static boolean PC_CAFE_ONLY_VIP;
- public static int PC_CAFE_MAX_POINTS;
- public static boolean PC_CAFE_ENABLE_DOUBLE_POINTS;
- public static int PC_CAFE_DOUBLE_POINTS_CHANCE;
- @@ -1278,7 +1281,11 @@
- public static boolean PC_CAFE_RANDOM_POINT;
- public static boolean PC_CAFE_REWARD_LOW_EXP_KILLS;
- public static int PC_CAFE_LOW_EXP_KILLS_CHANCE;
- - public static boolean SELLBUFF_ENABLED;
- + public static boolean VIP_SYSTEM_ENABLED;
- + public static boolean VIP_SYSTEM_PRIME_AFFECT;
- + public static boolean VIP_SYSTEM_L_SHOP_AFFECT;
- + public static int VIP_SYSTEM_MAX_TIER;
- + public static boolean SELLBUFF_ENABLED;
- public static int SELLBUFF_MP_MULTIPLER;
- public static int SELLBUFF_PAYMENT_ID;
- public static long SELLBUFF_MIN_PRICE;
- @@ -1565,6 +1572,7 @@
- final PropertiesParser Attandance = new PropertiesParser(ATTENDANCE_CONFIG_FILE);
- ENABLE_ATTENDANCE_REWARDS = Attandance.getBoolean("EnableAttendanceRewards", false);
- PREMIUM_ONLY_ATTENDANCE_REWARDS = Attandance.getBoolean("PremiumOnlyAttendanceRewards", false);
- + VIP_ONLY_ATTENDANCE_REWARDS = Attandance.getBoolean("VIPOnlyAttendanceRewards", false);
- ATTENDANCE_REWARDS_SHARE_ACCOUNT = Attandance.getBoolean("AttendanceRewardsShareAccount", false);
- ATTENDANCE_REWARD_DELAY = Attandance.getInt("AttendanceRewardDelay", 30);
- ATTENDANCE_POPUP_START = Attandance.getBoolean("AttendancePopupStart", true);
- @@ -3279,6 +3287,7 @@
- final PropertiesParser PcCafe = new PropertiesParser(CUSTOM_PC_CAFE_CONFIG_FILE);
- PC_CAFE_ENABLED = PcCafe.getBoolean("PcCafeEnabled", false);
- PC_CAFE_ONLY_PREMIUM = PcCafe.getBoolean("PcCafeOnlyPremium", false);
- + PC_CAFE_ONLY_VIP = PcCafe.getBoolean("PcCafeOnlyVip", false);
- PC_CAFE_MAX_POINTS = PcCafe.getInt("MaxPcCafePoints", 200000);
- if (PC_CAFE_MAX_POINTS < 0)
- {
- @@ -3306,7 +3315,19 @@
- {
- PC_CAFE_LOW_EXP_KILLS_CHANCE = 100;
- }
- -
- +
- +
- + final PropertiesParser vipSystem = new PropertiesParser(CUSTOM_VIP_CONFIG_FILE);
- + VIP_SYSTEM_ENABLED = vipSystem.getBoolean("VIPEnabled", false);
- + if(VIP_SYSTEM_ENABLED) {
- + VIP_SYSTEM_PRIME_AFFECT = vipSystem.getBoolean("PrimeAffectPoints", false);
- + VIP_SYSTEM_L_SHOP_AFFECT = vipSystem.getBoolean("LShopAffectPoints", false);
- + VIP_SYSTEM_MAX_TIER = vipSystem.getInt("MaxVipLevel", 7);
- + if (VIP_SYSTEM_MAX_TIER > 10)
- + VIP_SYSTEM_MAX_TIER = 10;
- + }
- +
- +
- // Load PremiumSystem config file (if exists)
- final PropertiesParser PremiumSystem = new PropertiesParser(CUSTOM_PREMIUM_SYSTEM_CONFIG_FILE);
- PREMIUM_SYSTEM_ENABLED = PremiumSystem.getBoolean("EnablePremiumSystem", false);
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/PrimeShop.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/PrimeShop.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/PrimeShop.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/PrimeShop.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/PrimeShop.xml (date 1619456295873)
- @@ -18,7 +18,56 @@
- <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 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" restrictionDay="0" availableCount="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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 itemId="99029" count="1" /> <!-- Daily Present - VIP 10 -->
- + </item>
- </list>
- \ No newline at end of file
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/DailyTaskManager.java (date 1619456869881)
- @@ -43,7 +43,9 @@
- import org.l2jmobius.gameserver.model.holders.SkillHolder;
- import org.l2jmobius.gameserver.model.holders.SubClassHolder;
- import org.l2jmobius.gameserver.model.olympiad.Olympiad;
- +import org.l2jmobius.gameserver.model.variables.AccountVariables;
- import org.l2jmobius.gameserver.model.variables.PlayerVariables;
- +import org.l2jmobius.gameserver.model.vip.VipManager;
- import org.l2jmobius.gameserver.network.serverpackets.ExVoteSystemInfo;
- import org.l2jmobius.gameserver.network.serverpackets.ExWorldChatCnt;
- @@ -73,6 +75,7 @@
- resetWorldChatPoints();
- resetTrainingCamp();
- resetVitality();
- + checkVip();
- }
- @ScheduleTarget
- @@ -86,6 +89,22 @@
- LOGGER.info("Olympiad System: Data updated.");
- }
- }
- +
- + private void checkVip(){
- + // Delete all entries for received gifts
- + AccountVariables.deleteVipPurchases(AccountVariables.VIP_ITEM_BOUGHT);
- +
- + // Checks the tier expiration for online players
- + // offline players get handled on next time they log in.
- + for (PlayerInstance player : World.getInstance().getPlayers())
- + {
- + if(player.getVipTier() > 0) {
- + VipManager.getInstance().checkVipTierExpiration(player);
- + }
- +
- + player.getAccountVariables().restoreMe();
- + }
- + }
- private void resetVitality()
- {
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/PcCafePointsManager.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/PcCafePointsManager.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/PcCafePointsManager.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/PcCafePointsManager.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/instancemanager/PcCafePointsManager.java (date 1619454227599)
- @@ -38,6 +38,11 @@
- {
- return;
- }
- +
- + if (Config.PC_CAFE_ONLY_VIP && player.getVipTier() <= 0)
- + {
- + return;
- + }
- if (player.getPcCafePoints() >= Config.PC_CAFE_MAX_POINTS)
- {
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/attendance/RequestVipAttendanceCheck.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/attendance/RequestVipAttendanceCheck.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/attendance/RequestVipAttendanceCheck.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/attendance/RequestVipAttendanceCheck.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/clientpackets/attendance/RequestVipAttendanceCheck.java (date 1619453599275)
- @@ -60,7 +60,10 @@
- {
- player.sendPacket(SystemMessageId.YOUR_VIP_RANK_IS_TOO_LOW_TO_RECEIVE_THE_REWARD);
- return;
- - }
- + }else if(Config.VIP_ONLY_ATTENDANCE_REWARDS && player.getVipTier() <= 0){
- + player.sendPacket(SystemMessageId.YOUR_VIP_RANK_IS_TOO_LOW_TO_RECEIVE_THE_REWARD);
- + return;
- + }
- // Check login delay.
- if (player.getUptime() < (Config.ATTENDANCE_REWARD_DELAY * 60 * 1000))
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipInfo.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipInfo.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipInfo.java
- new file mode 100644
- --- /dev/null (date 1619559315844)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipInfo.java (date 1619559315844)
- @@ -0,0 +1,40 @@
- +package org.l2jmobius.gameserver.model.vip;
- +
- +/**
- + * @author Gabriel Costa Souza
- + * Discord: Gabriel 'GCS'#2589
- + * Skype - email: gabriel_costa25@hotmail.com
- + */
- +public class VipInfo {
- +
- + private final byte tier;
- + private final long pointsRequired;
- + private final long pointsDepreciated;
- + private int skill;
- +
- + public VipInfo(byte tier, long pointsRequired, long pointsDepreciated) {
- + this.tier = tier;
- + this.pointsRequired = pointsRequired;
- + this.pointsDepreciated = pointsDepreciated;
- + }
- +
- + public byte getTier() {
- + return tier;
- + }
- +
- + public long getPointsRequired() {
- + return pointsRequired;
- + }
- +
- + public long getPointsDepreciated() {
- + return pointsDepreciated;
- + }
- +
- + public int getSkill() {
- + return skill;
- + }
- +
- + public void setSkill(int skill) {
- + this.skill = skill;
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipManager.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipManager.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipManager.java
- new file mode 100644
- --- /dev/null (date 1619559315828)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/vip/VipManager.java (date 1619559315828)
- @@ -0,0 +1,154 @@
- +package org.l2jmobius.gameserver.model.vip;
- +
- +import org.l2jmobius.Config;
- +import org.l2jmobius.gameserver.data.xml.SkillData;
- +import org.l2jmobius.gameserver.data.xml.VipData;
- +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
- +import org.l2jmobius.gameserver.model.events.Containers;
- +import org.l2jmobius.gameserver.model.events.EventType;
- +import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLoad;
- +import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
- +import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
- +import org.l2jmobius.gameserver.model.variables.AccountVariables;
- +import org.l2jmobius.gameserver.network.serverpackets.ExBRNewIconCashBtnWnd;
- +import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipInfo;
- +
- +import java.time.Instant;
- +import java.time.temporal.ChronoUnit;
- +import java.util.function.Consumer;
- +
- +import static java.util.Objects.nonNull;
- +
- +/**
- + * @author Gabriel Costa Souza
- + * Discord: Gabriel 'GCS'#2589
- + * Skype - email: gabriel_costa25@hotmail.com
- + */
- +public final class VipManager {
- +
- + private static final byte VIP_MAX_TIER = (byte) Config.VIP_SYSTEM_MAX_TIER;
- +
- + private final ConsumerEventListener vipLoginListener = new ConsumerEventListener(null, EventType.ON_PLAYER_LOGIN, (Consumer<OnPlayerLogin>) this::onVipLogin, this);
- +
- + private VipManager() {
- + if(!Config.VIP_SYSTEM_ENABLED)
- + return;
- + Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_LOAD, (Consumer<OnPlayerLoad>) this::onPlayerLoaded, this));
- + }
- +
- + private void onPlayerLoaded(OnPlayerLoad event) {
- + final var player = event.getPlayer();
- + player.setVipTier(getVipTier(player));
- + if(player.getVipTier() > 0) {
- + manageTier(player);
- + player.addListener(vipLoginListener);
- + } else {
- + player.sendPacket(new ReceiveVipInfo(player));
- + player.sendPacket(new ExBRNewIconCashBtnWnd((byte)0));
- + }
- + }
- +
- + private boolean canReceiveGift(PlayerInstance player){
- + if(!Config.VIP_SYSTEM_ENABLED)
- + return false;
- + if(player.getVipTier() <= 0)
- + return false;
- + else{
- + long timeBought = player.getAccountVariables().getLong(AccountVariables.VIP_ITEM_BOUGHT, 0L);
- + return timeBought <= 0;
- + }
- + }
- +
- + private void onVipLogin(OnPlayerLogin event) {
- + final var player = event.getPlayer();
- + if(canReceiveGift(player)) {
- + player.sendPacket(new ExBRNewIconCashBtnWnd((byte) 1));
- + }else {
- + player.sendPacket(new ExBRNewIconCashBtnWnd((byte) 0));
- + }
- + player.removeListener(vipLoginListener);
- + player.sendPacket(new ReceiveVipInfo(player));
- + }
- +
- + public void manageTier(PlayerInstance player) {
- + if(!checkVipTierExpiration(player)) {
- + player.sendPacket(new ReceiveVipInfo(player));
- + }
- +
- + if(player.getVipTier() > 1) {
- + var oldSkillId = VipData.getInstance().getSkillId((byte) (player.getVipTier() - 1));
- + if(oldSkillId > 0) {
- + var oldSkill = SkillData.getInstance().getSkill(oldSkillId, 1);
- + if(nonNull(oldSkill)) {
- + player.removeSkill(oldSkill);
- + }
- + }
- + }
- +
- + var skillId = VipData.getInstance().getSkillId(player.getVipTier());
- + if(skillId > 0) {
- + var skill = SkillData.getInstance().getSkill(skillId, 1);
- + if(nonNull(skill)) {
- + player.addSkill(skill);
- + }
- + }
- + }
- +
- +
- + public byte getVipTier(PlayerInstance player) {
- + return getVipInfo(player).getTier();
- + }
- +
- + public byte getVipTier(long points) {
- + byte temp = getVipInfo(points).getTier();
- + if(temp > VIP_MAX_TIER)
- + temp = VIP_MAX_TIER;
- + return temp;
- + }
- +
- + private VipInfo getVipInfo(PlayerInstance player) {
- + var points = player.getVipPoints();
- + return getVipInfo(points);
- + }
- +
- + private VipInfo getVipInfo(long points) {
- + for (byte i = 0; i < VipData.getInstance().getVipTiers().size(); i++) {
- + if(points < VipData.getInstance().getVipTiers().get(i).getPointsRequired()) {
- + byte temp = (byte) (i - 1);
- + if(temp > VIP_MAX_TIER)
- + temp = VIP_MAX_TIER;
- + return VipData.getInstance().getVipTiers().get(temp);
- + }
- + }
- + return VipData.getInstance().getVipTiers().get(VIP_MAX_TIER);
- + }
- +
- + public long getPointsDepreciatedOnLevel(byte vipTier) {
- + return VipData.getInstance().getVipTiers().get(vipTier).getPointsDepreciated();
- + }
- +
- + public long getPointsToLevel(byte level) {
- + if(VipData.getInstance().getVipTiers().containsKey(level)) {
- + return VipData.getInstance().getVipTiers().get(level).getPointsRequired();
- + }
- + return 0;
- + }
- +
- + public boolean checkVipTierExpiration(PlayerInstance player) {
- + var now = Instant.now();
- + if(now.isAfter(Instant.ofEpochMilli(player.getVipTierExpiration()))) {
- + player.updateVipPoints(-getPointsDepreciatedOnLevel(player.getVipTier()));
- + player.setVipTierExpiration(Instant.now().plus(30, ChronoUnit.DAYS).toEpochMilli());
- + return true;
- + }
- + return false;
- + }
- +
- + public static VipManager getInstance() {
- + return Singleton.INSTANCE;
- + }
- +
- + private static class Singleton {
- + private static final VipManager INSTANCE = new VipManager();
- + }
- +}
- \ No newline at end of file
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java (date 1619460020275)
- @@ -21,6 +21,8 @@
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- +import java.time.Instant;
- +import java.time.temporal.ChronoUnit;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Calendar;
- @@ -199,23 +201,7 @@
- import org.l2jmobius.gameserver.model.eventengine.AbstractEvent;
- import org.l2jmobius.gameserver.model.events.EventDispatcher;
- import org.l2jmobius.gameserver.model.events.EventType;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayableExpChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAbilityPointsChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerFameChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerHennaAdd;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerHennaRemove;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemEquip;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogout;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMenteeStatus;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerMentorStatus;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPKChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionCancel;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionChange;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPvPChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerPvPKill;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerReputationChanged;
- -import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerSubChange;
- +import org.l2jmobius.gameserver.model.events.impl.creature.player.*;
- import org.l2jmobius.gameserver.model.events.listeners.FunctionEventListener;
- import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
- import org.l2jmobius.gameserver.model.events.timers.TimerHolder;
- @@ -281,6 +267,7 @@
- import org.l2jmobius.gameserver.model.stats.Stat;
- import org.l2jmobius.gameserver.model.variables.AccountVariables;
- import org.l2jmobius.gameserver.model.variables.PlayerVariables;
- +import org.l2jmobius.gameserver.model.vip.VipManager;
- import org.l2jmobius.gameserver.model.zone.ZoneId;
- import org.l2jmobius.gameserver.model.zone.ZoneType;
- import org.l2jmobius.gameserver.model.zone.type.WaterZone;
- @@ -362,6 +349,7 @@
- import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus;
- import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
- import org.l2jmobius.gameserver.network.serverpackets.sessionzones.TimedHuntingZoneExit;
- +import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipInfo;
- import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
- import org.l2jmobius.gameserver.taskmanager.AutoPlayTaskManager;
- import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
- @@ -890,7 +878,7 @@
- private ScheduledFuture<?> _timedHuntingZoneFinishTask = null;
- private PlayerRandomCraft _randomCraft = null;
- -
- + private byte vipTier = 0;
- private final List<QuestTimer> _questTimers = new ArrayList<>();
- private final List<TimerHolder<?>> _timerHolders = new ArrayList<>();
- @@ -6676,6 +6664,7 @@
- }
- }
- }
- + EventDispatcher.getInstance().notifyEventAsync(new OnPlayerLoad(player), player);
- }
- }
- @@ -6779,7 +6768,8 @@
- player.setOnlineStatus(true, false);
- PlayerAutoSaveTaskManager.getInstance().add(player);
- - }
- +
- + }
- catch (Exception e)
- {
- LOGGER.log(Level.SEVERE, "Failed loading character.", e);
- @@ -10074,8 +10064,9 @@
- {
- LOGGER.log(Level.SEVERE, "", e);
- }
- -
- +
- EventDispatcher.getInstance().notifyEventAsync(new OnPlayerLogin(this), this);
- +
- if (isMentee())
- {
- // Notify to scripts
- @@ -14539,4 +14530,45 @@
- {
- return _randomCraft;
- }
- +
- + public byte getVipTier() {
- + return vipTier;
- + }
- +
- + public void setVipTier(byte vipTier) {
- + this.vipTier = vipTier;
- + }
- +
- + public long getVipPoints()
- + {
- + return getAccountVariables().getLong(AccountVariables.VIP_POINTS, 0L);
- + }
- +
- + public long getVipTierExpiration() {
- + return getAccountVariables().getLong(AccountVariables.VIP_EXPIRATION, 0L);
- + }
- +
- + public void setVipTierExpiration(long expiration) {
- + getAccountVariables().set(AccountVariables.VIP_EXPIRATION, expiration);
- + }
- +
- + public void updateVipPoints(long points) {
- + if(points == 0) {
- + return;
- + }
- + var currentVipTier = VipManager.getInstance().getVipTier(getVipPoints());
- + getAccountVariables().set(AccountVariables.VIP_POINTS, getVipPoints() + points);
- + var newTier = VipManager.getInstance().getVipTier(getVipPoints());
- + if(newTier != currentVipTier) {
- + vipTier = newTier;
- + if(newTier > 0) {
- + getAccountVariables().set(AccountVariables.VIP_EXPIRATION, Instant.now().plus(30, ChronoUnit.DAYS).toEpochMilli());
- + VipManager.getInstance().manageTier(this);
- + } else {
- + getAccountVariables().set(AccountVariables.VIP_EXPIRATION, 0L);
- + }
- + }
- + getAccountVariables().storeMe(); //force to store to prevent falty purchases after a crash.
- + sendPacket(new ReceiveVipInfo(this));
- + }
- }
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/vip.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/vip.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/vip.xml
- new file mode 100644
- --- /dev/null (date 1619555983381)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/vip.xml (date 1619555983381)
- @@ -0,0 +1,245 @@
- +<?xml version='1.0' encoding='utf-8'?>
- +<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/vip.xsd">
- + <!--
- + tier: tier of the vip
- + points-requires: points required to get to that tier
- + points-lose: points player will lose after a while.
- +
- + PS. Client data made for Sylph! Probably works on essence aswell!
- +
- +l2.ini
- +[VipSystem]
- +UseVipInfoWndAden=false
- +
- + -> needs to be true
- +
- +L2 Store needs to be true aswell!
- +
- +ItemIds: 71314, 71315, 71316, 71317, 71268, 71269
- +
- +
- +ItemName_ClassicAden-eu.dat
- +
- +item_name_begin id=71314 name=[VIP Gain Scroll - 800] additionalname=[] description=[VIP Points +800.] popup=-1 default_action=[action_skill_reduce_on_skill_success] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71315 name=[VIP Gain Scroll - 2400] additionalname=[] description=[VIP Points +2400.] popup=-1 default_action=[action_skill_reduce_on_skill_success] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71316 name=[VIP Gain Scroll - 80] additionalname=[] description=[VIP Points +80.] popup=-1 default_action=[action_skill_reduce_on_skill_success] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71317 name=[VIP Gain Scroll - 240] additionalname=[] description=[VIP Points +240.] popup=-1 default_action=[action_skill_reduce_on_skill_success] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71268 name=[VIP Gain Scroll] additionalname=[] description=[VIP Points +27.] popup=-1 default_action=[action_skill_reduce_on_skill_success] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71269 name=[Good VIP Gain Scroll] additionalname=[] description=[VIP Points +273.] popup=-1 default_action=[action_skill_reduce_on_skill_success] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71177 name=[Daily Present - VIP 1] additionalname=[] description=[Double-click to obtain a Scroll of Escape and 3 HP Replenishing Potions.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71178 name=[Daily Present - VIP 2] additionalname=[] description=[Double-click to obtain a Scroll of Resurrection and 3 HP Replenishing Potions.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71179 name=[Daily Present - VIP 3] additionalname=[] description=[Double-click to obtain a Scroll of Escape, Scroll of Resurrection, 5 HP Replenishing Potions.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71180 name=[Daily Present - VIP 4] additionalname=[] description=[Double-click to obtain a Scroll of Escape, Scroll of Resurrection, 3 HP Replenishing Potions.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71181 name=[Daily Present - VIP 5] additionalname=[] description=[Double-click to obtain a Blessed Scroll of Escape, 3 High-grade HP Replenishing Potions, 40 VIP Coins.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71182 name=[Daily Present - VIP 6] additionalname=[] description=[Double-click to obtain a Blessed Scroll of Resurrection, 3 High-grade HP Replenishing Potions, 100 VIP Coins.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=71183 name=[Daily Present - VIP 7] additionalname=[] description=[Double-click to obtain a Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 High-grade HP Replenishing Potions, 150 VIP Coins.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=99027 name=[Daily Present - VIP 8] additionalname=[] description=[CHANGE ME Double-click to obtain a Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 High-grade HP Replenishing Potions, 150 VIP Coins.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=99028 name=[Daily Present - VIP 9] additionalname=[] description=[CHANGE ME Double-click to obtain a Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 High-grade HP Replenishing Potions, 150 VIP Coins.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +item_name_begin id=99029 name=[Daily Present - VIP 10] additionalname=[] description=[CHANGE ME Double-click to obtain a Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 High-grade HP Replenishing Potions, 150 VIP Coins.] popup=-1 default_action=[action_peel] use_order=99 name_class=-1 color=1 Tooltip_Texture=[None] is_trade=0 is_drop=0 is_destruct=1 is_private_store=0 keep_type=1 is_npctrade=0 is_commission_store=0 item_name_end
- +
- +ItemName_ClassicAden-eu.dat [end]
- +item_ex_begin id=71314 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71315 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71316 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71317 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71268 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71269 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71177 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71178 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71179 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71180 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71181 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71182 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=71183 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=99027 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=99028 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +item_ex_begin id=99029 keep_type_selection=normal keep_type_enchant={0;0;0} item_ex_end
- +
- +
- +ProductName_ClassicAden-eu.dat
- +product_name_begin id=2090044 outer_name=[VIP Gain Scroll] description=[] icon=[BranchIcon.Icon.g_bm_vip_potion_i00] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090045 outer_name=[Good VIP Gain Scroll] description=[] icon=[BranchIcon.Icon.g_bm_vip_potion_i00] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090046 outer_name=[VIP Gain Scroll - 80] description=[] icon=[BranchIcon.Icon.g_bm_vip_potion_i00] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090047 outer_name=[VIP Gain Scroll - 240] description=[] icon=[BranchIcon.Icon.g_bm_vip_potion_i00] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090048 outer_name=[VIP Gain Scroll - 800] description=[] icon=[BranchIcon.Icon.g_bm_vip_potion_i00] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090049 outer_name=[VIP Gain Scroll - 2400] description=[] icon=[BranchIcon.Icon.g_bm_vip_potion_i00] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090050 outer_name=[Daily Present - VIP 1] description=[] icon=[BranchIcon.Icon.etc_vip_present_i00] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090051 outer_name=[Daily Present - VIP 2] description=[] icon=[BranchIcon.Icon.etc_vip_present_i01] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090052 outer_name=[Daily Present - VIP 3] description=[] icon=[BranchIcon.Icon.etc_vip_present_i02] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090053 outer_name=[Daily Present - VIP 4] description=[] icon=[BranchIcon.Icon.etc_vip_present_i03] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090054 outer_name=[Daily Present - VIP 5] description=[] icon=[BranchIcon.Icon.etc_vip_present_i04] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090055 outer_name=[Daily Present - VIP 6] description=[] icon=[BranchIcon.Icon.etc_vip_present_i05] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090056 outer_name=[Daily Present - VIP 7] description=[] icon=[BranchIcon.Icon.etc_vip_present_i06] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090057 outer_name=[Daily Present - VIP 8] description=[] icon=[BranchIcon.Icon.etc_vip_present_i08] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090058 outer_name=[Daily Present - VIP 9] description=[] icon=[BranchIcon.Icon.etc_vip_present_i09] icon_panel=[None] mainsubject=[] product_name_end
- +product_name_begin id=2090059 outer_name=[Daily Present - VIP 10] description=[] icon=[BranchIcon.Icon.etc_vip_present_i10] icon_panel=[None] mainsubject=[] product_name_end
- +
- +
- +EtcItemgrp_ClassicAden.dat
- +item_begin tag=2 object_id=71314 drop_type=0 drop_anim_type=3 drop_radius=6 drop_height=3 drop_texture={{[dropitems.drop_scroll_m00];{[dropitemstex.drop_scroll_t00]}}} icon={[BranchIcon.Icon.g_bm_vip_potion_i00];[None];[None];[None];[None]} durability=-1 weight=5 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=consumable mesh={[None]} texture={[None]} drop_sound=[ItemSound.itemdrop_scroll] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=scroll crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71315 drop_type=0 drop_anim_type=3 drop_radius=6 drop_height=3 drop_texture={{[dropitems.drop_scroll_m00];{[dropitemstex.drop_scroll_t00]}}} icon={[BranchIcon.Icon.g_bm_vip_potion_i00];[None];[None];[None];[None]} durability=-1 weight=5 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[icon.panel_2] complete_item_dropsound_type=[None] inventory_type=consumable mesh={[None]} texture={[None]} drop_sound=[ItemSound.itemdrop_scroll] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=scroll crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71316 drop_type=0 drop_anim_type=3 drop_radius=6 drop_height=3 drop_texture={{[dropitems.drop_scroll_m00];{[dropitemstex.drop_scroll_t00]}}} icon={[BranchIcon.Icon.g_bm_vip_potion_i00];[None];[None];[None];[None]} durability=-1 weight=5 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=consumable mesh={[None]} texture={[None]} drop_sound=[ItemSound.itemdrop_scroll] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=scroll crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71317 drop_type=0 drop_anim_type=3 drop_radius=6 drop_height=3 drop_texture={{[dropitems.drop_scroll_m00];{[dropitemstex.drop_scroll_t00]}}} icon={[BranchIcon.Icon.g_bm_vip_potion_i00];[None];[None];[None];[None]} durability=-1 weight=5 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[icon.panel_2] complete_item_dropsound_type=[None] inventory_type=consumable mesh={[None]} texture={[None]} drop_sound=[ItemSound.itemdrop_scroll] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=scroll crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71268 drop_type=0 drop_anim_type=3 drop_radius=6 drop_height=3 drop_texture={{[dropitems.drop_scroll_m00];{[dropitemstex.drop_scroll_t00]}}} icon={[BranchIcon.Icon.g_bm_vip_potion_i00];[None];[None];[None];[None]} durability=-1 weight=5 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=consumable mesh={[None]} texture={[None]} drop_sound=[ItemSound.itemdrop_scroll] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=scroll crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71269 drop_type=0 drop_anim_type=3 drop_radius=6 drop_height=3 drop_texture={{[dropitems.drop_scroll_m00];{[dropitemstex.drop_scroll_t00]}}} icon={[BranchIcon.Icon.g_bm_vip_potion_i00];[None];[None];[None];[None]} durability=-1 weight=5 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[icon.panel_2] complete_item_dropsound_type=[None] inventory_type=consumable mesh={[None]} texture={[None]} drop_sound=[ItemSound.itemdrop_scroll] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=scroll crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71177 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i00];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71178 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i01];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71179 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i02];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71180 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i03];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71181 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i04];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71182 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i05];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=71183 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i06];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=99027 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i08];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=99028 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i09];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +item_begin tag=2 object_id=99029 drop_type=0 drop_anim_type=3 drop_radius=5 drop_height=6 drop_texture={{[None];{[None]}}} icon={[BranchIcon.Icon.etc_vip_present_i10];[None];[None];[None];[None]} durability=-1 weight=10 material_type=paper crystallizable=0 related_quest_id={} color=1 is_attribution=0 property_params=0 icon_panel=[None] complete_item_dropsound_type=[None] inventory_type=etc mesh={[None]} texture={[None]} drop_sound=[None] equip_sound=[None] consume_type=consume_type_stackable etcitem_type=none crystal_type=crystal_free item_end
- +
- +
- +Placeholders!!!! The skill exist and is edited. Only client side need to be done. But we cannot open skillgrp yet due missing grp enum.
- +
- +SkillName_ClassicAden-eu.dat
- +skill_begin skill_id=59723 skill_level=1 skill_sublevel=0 name=[VIP Lv. 8] desc=[You can obtain a daily VIP chest Lv. 8. Acquired XP/ SP +35%%, item drop rate +300%%, Death XP Penalty -30%%. Increases PvP/ PvE damage, STR/ DEX/ CON/ INT/ WIT/ MEN +2. You can use the world chat at any level (world chat messages +50).] desc_param=[] enchant_name=[none] enchant_name_param=[] enchant_desc=[none] enchant_desc_param=[] skill_end
- +skill_begin skill_id=59724 skill_level=1 skill_sublevel=0 name=[VIP Lv. 9] desc=[You can obtain a daily VIP chest Lv. 9. Acquired XP/ SP +40%%, item drop rate +300%%, Death XP Penalty -40%%. Increases PvP/ PvE damage, STR/ DEX/ CON/ INT/ WIT/ MEN +3. You can use the world chat at any level (world chat messages +50).] desc_param=[] enchant_name=[none] enchant_name_param=[] enchant_desc=[none] enchant_desc_param=[] skill_end
- +skill_begin skill_id=59725 skill_level=1 skill_sublevel=0 name=[VIP Lv. 10] desc=[You can obtain a daily VIP chest Lv. 10. Acquired XP/ SP +50%%, item drop rate +300%%, Death XP Penalty -50%%. Increases PvP/ PvE damage, STR/ DEX/ CON/ INT/ WIT/ MEN +4. You can use the world chat at any level (world chat messages +50).] desc_param=[] enchant_name=[none] enchant_name_param=[] enchant_desc=[none] enchant_desc_param=[] skill_end
- +
- +Skillgrp_ClassicAden.dat [Sylph]
- +skill_begin skill_id=59723 skill_level=1 skill_sublevel=0 icon_type=40 icon_hide=0 MagicType=default operate_type=2 mp_consume=0 cast_range=-1 cast_style=0 hit_time=0.0 cool_time=0.0 reuse_delay=0.0 effect_point=0 is_magic=0 origin_skill=0 is_double=0 animation={[None]} skill_visual_effect=[None] icon=[BranchIcon.Icon.g_skill_vip8] icon_panel=[None] debuff=0 resist_cast=0 enchant_skill_level=0 enchant_icon=[None] hp_consume=0 rumble_self=-1 rumble_target=-1 level_hide=0 dp_consume=0 energy_consume=0 dbdelete=0 abnormal_time=0 trait_type=None target_type=none affect_scope=none skill_end
- +skill_begin skill_id=59724 skill_level=1 skill_sublevel=0 icon_type=40 icon_hide=0 MagicType=default operate_type=2 mp_consume=0 cast_range=-1 cast_style=0 hit_time=0.0 cool_time=0.0 reuse_delay=0.0 effect_point=0 is_magic=0 origin_skill=0 is_double=0 animation={[None]} skill_visual_effect=[None] icon=[BranchIcon.Icon.g_skill_vip9] icon_panel=[None] debuff=0 resist_cast=0 enchant_skill_level=0 enchant_icon=[None] hp_consume=0 rumble_self=-1 rumble_target=-1 level_hide=0 dp_consume=0 energy_consume=0 dbdelete=0 abnormal_time=0 trait_type=None target_type=none affect_scope=none skill_end
- +skill_begin skill_id=59725 skill_level=1 skill_sublevel=0 icon_type=40 icon_hide=0 MagicType=default operate_type=2 mp_consume=0 cast_range=-1 cast_style=0 hit_time=0.0 cool_time=0.0 reuse_delay=0.0 effect_point=0 is_magic=0 origin_skill=0 is_double=0 animation={[None]} skill_visual_effect=[None] icon=[BranchIcon.Icon.g_skill_vip10] icon_panel=[None] debuff=0 resist_cast=0 enchant_skill_level=0 enchant_icon=[None] hp_consume=0 rumble_self=-1 rumble_target=-1 level_hide=0 dp_consume=0 energy_consume=0 dbdelete=0 abnormal_time=0 trait_type=None target_type=none affect_scope=none skill_end
- +
- +
- + -->
- +
- + <vip tier="0" points-required="0" points-lose="0">
- + <bonus/>
- + </vip>
- + <vip tier="1" points-required="300" points-lose="300">
- + <bonus skill="55024"/>
- + </vip>
- + <vip tier="2" points-required="1000" points-lose="600">
- + <bonus skill="55025"/>
- + </vip>
- + <vip tier="3" points-required="2000" points-lose="660">
- + <bonus skill="55026"/>
- + </vip>
- + <vip tier="4" points-required="3500" points-lose="1320">
- + <bonus skill="55027"/>
- + </vip>
- + <vip tier="5" points-required="7000" points-lose="2640">
- + <bonus skill="55028"/>
- + </vip>
- + <vip tier="6" points-required="20000" points-lose="5280">
- + <bonus skill="55029"/>
- + </vip>
- + <vip tier="7" points-required="40000" points-lose="10560">
- + <bonus skill="55030"/>
- + </vip>
- + <vip tier="8" points-required="60000" points-lose="15740">
- + <bonus skill="59723"/>
- + </vip>
- + <vip tier="9" points-required="80000" points-lose="21120">
- + <bonus skill="59724"/>
- + </vip>
- + <vip tier="10" points-required="120000" points-lose="31680">
- + <bonus skill="59725"/>
- + </vip>
- +</list>
- +
- +
- +<!--
- +<file pattern="kor_prelude_of_war_p10" isSafePackage="true">
- + <node name="data" reader="UINT" />
- + <for name="skill" size="#data" hidden="false">
- + <node name="skill_id" reader="UINT" />
- + <node name="skill_level" reader="UCHAR" />
- + <node name="skill_sublevel" reader="SHORT" />
- + <node name="icon_type" reader="UCHAR" />
- + <node name="icon_hide" reader="UCHAR" />
- + <node name="MagicType" reader="UCHAR" enumName="skill_magic_type" />
- + <node name="operate_type" reader="UCHAR" />
- + <node name="mp_consume" reader="SHORT" />
- + <node name="cast_range" reader="UINT" />
- + <node name="cast_style" reader="UCHAR" />
- + <node name="hit_time" reader="FLOAT" />
- + <node name="cool_time" reader="FLOAT" />
- + <node name="reuse_delay" reader="FLOAT" />
- + <node name="effect_point" reader="UINT" />
- + <node name="is_magic" reader="UCHAR" />
- + <node name="origin_skill" reader="UINT" />
- + <node name="is_double" reader="UCHAR" />
- + <node name="animation" reader="UINT" />
- + <for name="animation" size="#animation">
- + <node name="param_animation" reader="MAP_INT" />
- + </for>
- + <node name="skill_visual_effect" reader="MAP_INT" />
- + <node name="icon" reader="MAP_INT" />
- + <node name="icon_panel" reader="MAP_INT" />
- + <node name="debuff" reader="UCHAR" />
- + <node name="resist_cast" reader="UCHAR" />
- + <node name="enchant_skill_level" reader="UCHAR" />
- + <node name="enchant_icon" reader="MAP_INT" />
- + <node name="hp_consume" reader="SHORT" />
- + <node name="rumble_self" reader="UCHAR" />
- + <node name="rumble_target" reader="UCHAR" />
- + <node name="level_hide" reader="UCHAR" />
- + <node name="dp_consume" reader="UCHAR" />
- + <node name="energy_consume" reader="UCHAR" />
- + <node name="dbdelete" reader="INT" />
- + <node name="abnormal_time" reader="UINT" />
- + <node name="trait_type" reader="UCHAR" enumName="trait_type" />
- + <node name="target_type" reader="UCHAR" enumName="target_type" />
- + <node name="affect_scope" reader="UCHAR" enumName="affect_scope" />
- + </for>
- + <node name="data2" reader="CNTR" />
- + <for name="skill_macro" size="#data2" hidden="false">
- + <node name="skill_id" reader="UINT" />
- + <node name="automatic_use" reader="UCHAR" />
- + </for>
- + <node name="data3" reader="CNTR" />
- + <for name="skill_ex_icon" size="#data3" hidden="false">
- + <node name="skill_id" reader="UINT" />
- + <node name="skill_level" reader="UCHAR" />
- + <node name="skill_sublevel" reader="SHORT" />
- + <node name="icon_panel2" reader="MAP_INT" />
- + </for>
- + </file>
- +
- + <enum name="trait_type">
- + <node index="0" name="None" />
- + </enum>
- + <enum name="target_type">
- + <node index="0" name="none" />
- + <node index="1" name="self" />
- + <node index="2" name="target" />
- + <node index="3" name="targetself" />
- + <node index="4" name="enemy" />
- + <node index="5" name="enemyonly" />
- + <node index="6" name="enemynot" />
- + <node index="7" name="summon" />
- + </enum>
- + <enum name="affect_scope">
- + <node index="0" name="none" />
- + <node index="1" name="single" />
- + <node index="2" name="range" />
- + <node index="3" name="fan" />
- + <node index="4" name="pointblank" />
- + <node index="5" name="party" />
- + <node index="6" name="square" />
- + <node index="7" name="pledge" />
- + <node index="8" name="rangesortbyhp" />
- + <node index="9" name="rangesortbydist" />
- + </enum>
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- + -->
- \ No newline at end of file
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/vip.xsd
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/vip.xsd b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/vip.xsd
- new file mode 100644
- --- /dev/null (date 1619546282869)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/vip.xsd (date 1619546282869)
- @@ -0,0 +1,24 @@
- +<?xml version="1.0" encoding="UTF-8"?>
- +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- + <xs:element name="list">
- + <xs:complexType>
- + <xs:sequence>
- + <xs:element name="vip" type="TierInfo" minOccurs="0" maxOccurs="unbounded"/>
- + </xs:sequence>
- + </xs:complexType>
- +
- + </xs:element>
- +
- + <xs:complexType name="TierInfo">
- + <xs:sequence>
- + <xs:element name="bonus" type="TierBonusInfo"/>
- + </xs:sequence>
- + <xs:attribute name="tier" type="xs:byte" use="required"/>
- + <xs:attribute name="points-required" type="xs:long" use="required"/>
- + <xs:attribute name="points-lose" type="xs:long" use="required"/>
- + </xs:complexType>
- +
- + <xs:complexType name="TierBonusInfo">
- + <xs:attribute name="skill" type="xs:int" default="0"/>
- + </xs:complexType>
- +</xs:schema>
- \ No newline at end of file
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/VipData.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/VipData.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/VipData.java
- new file mode 100644
- --- /dev/null (date 1619559368938)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/VipData.java (date 1619559368938)
- @@ -0,0 +1,137 @@
- +package org.l2jmobius.gameserver.data.xml;
- +
- +import org.l2jmobius.Config;
- +import org.l2jmobius.commons.util.IXmlReader;
- +import org.l2jmobius.gameserver.model.vip.VipInfo;
- +import org.w3c.dom.Document;
- +import org.w3c.dom.NamedNodeMap;
- +import org.w3c.dom.Node;
- +
- +import java.io.File;
- +import java.util.HashMap;
- +import java.util.Map;
- +import java.util.logging.Logger;
- +
- +/**
- + * @author Gabriel Costa Souza
- + * Discord: Gabriel 'GCS'#2589
- + * Skype - email: gabriel_costa25@hotmail.com
- + */
- +public class VipData implements IXmlReader
- +{
- + private static final Logger LOGGER = Logger.getLogger(VipData.class.getName());
- +
- + private final Map<Byte, VipInfo> vipTiers = new HashMap<>();
- +
- + protected VipData()
- + {
- + load();
- + }
- +
- + @Override
- + public void load()
- + {
- + if(!Config.VIP_SYSTEM_ENABLED)
- + return;
- + vipTiers.clear();
- + parseDatapackFile("data/vip.xml");
- + LOGGER.info(getClass().getSimpleName() + ": Loaded " + vipTiers.size() + " vips.");
- + }
- +
- + @Override
- + public void parseDocument(Document doc, File f)
- + {
- + for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
- + {
- + if ("list".equalsIgnoreCase(n.getNodeName()))
- + {
- + VIP_FILE: for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
- + {
- + if ("vip".equalsIgnoreCase(d.getNodeName()))
- + {
- + final NamedNodeMap attrs = d.getAttributes();
- + Node att;
- + byte tier = -1;
- + int required = -1;
- + int lose = -1;
- +
- + att = attrs.getNamedItem("tier");
- + if (att == null)
- + {
- + LOGGER.severe(getClass().getSimpleName() + ": Missing tier for vip, skipping");
- + continue;
- + }
- + tier = Byte.parseByte(att.getNodeValue());
- +
- + att = attrs.getNamedItem("points-required");
- + if (att == null)
- + {
- + LOGGER.severe(getClass().getSimpleName() + ": Missing points-required for vip: " + tier + ", skipping");
- + continue;
- + }
- +
- + required = Integer.parseInt(att.getNodeValue());
- +
- + att = attrs.getNamedItem("points-lose");
- + if (att == null)
- + {
- + LOGGER.severe(getClass().getSimpleName() + ": Missing points-lose for vip: " + tier + ", skipping");
- + continue;
- + }
- +
- + lose = Integer.parseInt(att.getNodeValue());
- +
- + var vipInfo = new VipInfo(tier, required, lose);
- +
- +
- + for (Node c = d.getFirstChild(); c != null; c = c.getNextSibling())
- + {
- + if ("bonus".equalsIgnoreCase(c.getNodeName()))
- + {
- + final int skill = Integer.parseInt(c.getAttributes().getNamedItem("skill").getNodeValue());
- + try
- + {
- + vipInfo.setSkill(skill);
- + }
- + catch (Exception e)
- + {
- + LOGGER.severe(getClass().getSimpleName() + ": Error in bonus parameter for vip: " + tier + ", skipping");
- + continue VIP_FILE;
- + }
- + }
- + }
- + vipTiers.put(tier, vipInfo);
- +
- + }
- + }
- + }
- + }
- + }
- +
- + /**
- + * Gets the single instance of VipData.
- + * @return single instance of VipData
- + */
- + public static VipData getInstance()
- + {
- + return SingletonHolder.INSTANCE;
- + }
- +
- + /**
- + * The Class SingletonHolder.
- + */
- + private static class SingletonHolder
- + {
- + protected static final VipData INSTANCE = new VipData();
- + }
- +
- +
- + public int getSkillId(byte tier){
- + return vipTiers.get(tier).getSkill();
- + }
- +
- + public Map<Byte, VipInfo> getVipTiers() {
- + return vipTiers;
- + }
- +}
- +
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/primeshop/PrimeShopGroup.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/primeshop/PrimeShopGroup.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/primeshop/PrimeShopGroup.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/primeshop/PrimeShopGroup.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/primeshop/PrimeShopGroup.java (date 1619452701759)
- @@ -47,7 +47,9 @@
- private final int _maxBirthday;
- private final int _restrictionDay;
- private final int _availableCount;
- - private final List<PrimeShopItem> _items;
- + private final boolean _isVipGift;
- + private final int _vipTier;
- + private final List<PrimeShopItem> _items;
- public PrimeShopGroup(StatSet set, List<PrimeShopItem> items)
- {
- @@ -73,6 +75,9 @@
- _maxBirthday = set.getInt("maxBirthday", 0);
- _restrictionDay = set.getInt("restrictionDay", 0);
- _availableCount = set.getInt("availableCount", 0);
- + _isVipGift = set.getBoolean("isVipGift", false);
- + _vipTier = set.getInt("vipTier", 0);
- +
- _items = items;
- }
- @@ -195,8 +200,16 @@
- {
- return _availableCount;
- }
- -
- - public List<PrimeShopItem> getItems()
- +
- + public boolean isVipGift() {
- + return _isVipGift;
- + }
- +
- + public int getVipTier(){
- + return _vipTier;
- + }
- +
- + public List<PrimeShopItem> getItems()
- {
- return _items;
- }
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71200-71299.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71200-71299.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71200-71299.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71200-71299.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71200-71299.xml (date 1619408502262)
- @@ -678,24 +678,36 @@
- <item id="71268" name="VIP Gain Scroll" type="EtcItem">
- <!-- Allows to regain 27 VIP Points when used. Cannot be exchanged, dropped or sold in a private store. Can be stored in a private warehouse. -->
- <set name="icon" val="BranchIcon.Icon.g_bm_vip_potion_i00" />
- - <set name="default_action" val="SKILL_REDUCE_ON_SKILL_SUCCESS" />
- - <set name="weight" val="5" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="SKILL_REDUCE" />
- + <set name="material" val="PAPER" />
- + <set name="weight" val="5" />
- + <set name="is_tradable" val="false" />
- + <set name="is_depositable" val="false" />
- + <set name="immediate_effect" val="true" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ItemSkills" />
- + <skills>
- + <skill id="56096" level="1" /> <!-- VIP Gain Scroll -->
- + </skills>
- </item>
- <item id="71269" name="Good VIP Gain Scroll" type="EtcItem">
- <!-- Allows to regain 273 VIP Points when used. Cannot be exchanged, dropped or sold in a private store. Can be stored in a private warehouse. -->
- <set name="icon" val="BranchIcon.Icon.g_bm_vip_potion_i00" />
- - <set name="default_action" val="SKILL_REDUCE_ON_SKILL_SUCCESS" />
- - <set name="weight" val="5" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="SKILL_REDUCE" />
- + <set name="material" val="PAPER" />
- + <set name="weight" val="5" />
- + <set name="is_tradable" val="false" />
- + <set name="is_depositable" val="false" />
- + <set name="immediate_effect" val="true" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ItemSkills" />
- + <skills>
- + <skill id="56097" level="1" /> <!-- Good VIP Gain Scroll -->
- + </skills>
- </item>
- <item id="71270" name="Venir's Talisman Fragment" type="EtcItem">
- <!-- Material used to upgrade Venir's Talisman. If upgrade fails, the talisman level value will drop to 1. Cannot be dropped. -->
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/variables/AccountVariables.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/variables/AccountVariables.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/variables/AccountVariables.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/variables/AccountVariables.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/model/variables/AccountVariables.java (date 1619456872774)
- @@ -37,13 +37,18 @@
- private static final String SELECT_QUERY = "SELECT * FROM account_gsdata WHERE account_name = ?";
- private static final String DELETE_QUERY = "DELETE FROM account_gsdata WHERE account_name = ?";
- private static final String INSERT_QUERY = "INSERT INTO account_gsdata (account_name, var, value) VALUES (?, ?, ?)";
- -
- + private static final String DELETE_QUERY_VAR = "DELETE FROM account_gsdata where var = ?";
- +
- // Public variable names
- public static final String HWID = "HWID";
- public static final String HWIDSLIT_VAR = " ";
- public static final String LCOIN_SHOP_PRODUCT_TIME = "LCSTime";
- public static final String LCOIN_SHOP_PRODUCT_COUNT = "LCSCount";
- -
- + public static final String VIP_POINTS = "VipPoints";
- + public static final String VIP_TIER = "VipTier";
- + public static final String VIP_EXPIRATION = "VipExpiration";
- + public static final String VIP_ITEM_BOUGHT = "Vip_Item_Bought";
- +
- private final String _accountName;
- public AccountVariables(String accountName)
- @@ -145,4 +150,28 @@
- }
- return true;
- }
- +
- + /**
- + * Delete all entries for an requested var
- + * @param var
- + * @return success
- + */
- + public static boolean deleteVipPurchases(String var)
- + {
- + try (Connection con = DatabaseFactory.getConnection())
- + {
- + // Clear previous entries.
- + try (PreparedStatement st = con.prepareStatement(DELETE_QUERY_VAR))
- + {
- + st.setString(1, var);
- + st.execute();
- + }
- + }
- + catch (Exception e)
- + {
- + LOGGER.log(Level.WARNING, "AccountVariables: Couldn't delete vip variables!", e);
- + return false;
- + }
- + return true;
- + }
- }
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/VipUp.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/VipUp.java b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/VipUp.java
- new file mode 100644
- --- /dev/null (date 1619409512038)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/scripts/handlers/effecthandlers/VipUp.java (date 1619409512038)
- @@ -0,0 +1,62 @@
- +package handlers.effecthandlers;
- +
- +import org.l2jmobius.gameserver.model.StatSet;
- +import org.l2jmobius.gameserver.model.actor.Creature;
- +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
- +import org.l2jmobius.gameserver.model.effects.AbstractEffect;
- +import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
- +import org.l2jmobius.gameserver.model.skills.Skill;
- +
- +/**
- + * @author Gabriel Costa Souza
- + * Discord: Gabriel 'GCS'#2589
- + * Skype - email: gabriel_costa25@hotmail.com
- + */
- +public class VipUp extends AbstractEffect
- +{
- + private final long _amount;
- +
- + public VipUp(StatSet params)
- + {
- + _amount = params.getLong("amount", 0L);
- + }
- +
- + @Override
- + public boolean isInstant()
- + {
- + return true;
- + }
- +
- + @Override
- + public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
- + {
- + if (effected == null)
- + {
- + return;
- + }
- +
- + final PlayerInstance player = effected.getActingPlayer();
- + if (player == null)
- + {
- + return;
- + }
- +
- + player.updateVipPoints(_amount);
- + }
- +}
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/config/AttendanceRewards.ini
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/AttendanceRewards.ini b/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/AttendanceRewards.ini
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/AttendanceRewards.ini (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/config/AttendanceRewards.ini (date 1619453599284)
- @@ -13,6 +13,10 @@
- # Default: False
- PremiumOnlyAttendanceRewards = False
- +# Enable the Attendance Reward system only for Vip accounts.
- +# Default: False
- +VIPOnlyAttendanceRewards = False
- +
- # Make rewards sharable in the same account.
- # Default: False (Each character will receive its own rewards.)
- AttendanceRewardsShareAccount = False
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/PrimeShop.xsd
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/PrimeShop.xsd b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/PrimeShop.xsd
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/PrimeShop.xsd (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/PrimeShop.xsd (date 1619452701767)
- @@ -34,6 +34,8 @@
- <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:boolean" name="isVipGift" use="optional" />
- + <xs:attribute type="xs:byte" name="vipTier" use="optional" />
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- Index: L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java
- --- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java (date 1619379122093)
- @@ -129,6 +129,8 @@
- import org.l2jmobius.gameserver.network.clientpackets.teleports.ExTeleportToRaidPosition;
- import org.l2jmobius.gameserver.network.clientpackets.teleports.RequestRaidTeleportInfo;
- import org.l2jmobius.gameserver.network.clientpackets.training.NotifyTrainingRoomEnd;
- +import org.l2jmobius.gameserver.network.clientpackets.vip.ExRequestVipInfo;
- +import org.l2jmobius.gameserver.network.clientpackets.vip.RequestVipLuckGameInfo;
- /**
- * @author Sdw
- @@ -400,10 +402,10 @@
- REQUEST_ITEM_ENSOUL(0x107, RequestItemEnsoul::new, ConnectionState.IN_GAME),
- REQUEST_CASTLE_WAR_SEASON_REWARD(0x108, null, ConnectionState.IN_GAME),
- REQUEST_VIP_PRODUCT_LIST(0x109, null, ConnectionState.IN_GAME),
- - REQUEST_VIP_LUCKY_GAME_INFO(0x10A, null, ConnectionState.IN_GAME),
- + REQUEST_VIP_LUCKY_GAME_INFO(0x10A, RequestVipLuckGameInfo::new, ConnectionState.IN_GAME),
- REQUEST_VIP_LUCKY_GAME_ITEM_LIST(0x10B, null, ConnectionState.IN_GAME),
- REQUEST_VIP_LUCKY_GAME_BONUS(0x10C, null, ConnectionState.IN_GAME),
- - EX_REQUEST_VIP_INFO(0x10D, null, ConnectionState.IN_GAME),
- + EX_REQUEST_VIP_INFO(0x10D, ExRequestVipInfo::new, ConnectionState.IN_GAME),
- REQUEST_CAPTCHA_ANSWER(0x10E, null, ConnectionState.IN_GAME),
- REQUEST_REFRESH_CAPTCHA_IMAGE(0x10F, null, ConnectionState.IN_GAME),
- REQUEST_PLEDGE_SIGN_IN_FOR_OPEN_JOINING_METHOD(0x110, RequestPledgeSignInForOpenJoiningMethod::new, ConnectionState.IN_GAME),
- Index: L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71100-71199.xml
- IDEA additional info:
- Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
- <+>UTF-8
- ===================================================================
- diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71100-71199.xml b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71100-71199.xml
- --- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71100-71199.xml (revision 5dccd31cc69ab347a4a7e7c2ddd23325d9458024)
- +++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/stats/items/71100-71199.xml (date 1619451172674)
- @@ -738,86 +738,131 @@
- <item id="71177" name="Daily Present - VIP 1" type="EtcItem">
- <!-- Double-click the item to receive 1 Scroll of Escape, 3 Healing Potions, 5 VIP Coins. -->
- <set name="icon" val="BranchIcon.Icon.etc_vip_present_i00" />
- - <set name="default_action" val="PEEL" />
- - <set name="immediate_effect" val="true" />
- - <set name="weight" val="10" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="2" />
- + <set name="extractableCountMax" val="2" />
- + <capsuled_items>
- + <item id="736" min="1" max="1" chance="100.00"/> <!-- Scroll of Escape -->
- + <item id="29651" min="3" max="3" chance="100.00"/> <!-- Healing Potion -->
- + </capsuled_items>
- </item>
- <item id="71178" name="Daily Present - VIP 2" type="EtcItem">
- <!-- Double-click the item to receive 1 Scroll of Resurrection, 3 Healing Potions, 10 VIP Coins. -->
- <set name="icon" val="BranchIcon.Icon.etc_vip_present_i01" />
- - <set name="default_action" val="PEEL" />
- - <set name="immediate_effect" val="true" />
- - <set name="weight" val="10" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="2" />
- + <set name="extractableCountMax" val="2" />
- + <capsuled_items>
- + <item id="737" min="1" max="1" chance="100.00"/> <!-- Scroll of Resurrection -->
- + <item id="29651" min="3" max="3" chance="100.00"/> <!-- Healing Potion -->
- + </capsuled_items>
- </item>
- <item id="71179" name="Daily Present - VIP 3" type="EtcItem">
- <!-- Double-click the item to receive 1 Scroll of Escape, 1 Scroll of Resurrection, 5 Healing Potions, 15 VIP Coins. -->
- <set name="icon" val="BranchIcon.Icon.etc_vip_present_i02" />
- - <set name="default_action" val="PEEL" />
- - <set name="immediate_effect" val="true" />
- - <set name="weight" val="10" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="3" />
- + <set name="extractableCountMax" val="3" />
- + <capsuled_items>
- + <item id="736" min="1" max="1" chance="100.00"/> <!-- Scroll of Escape -->
- + <item id="737" min="1" max="1" chance="100.00"/> <!-- Scroll of Resurrection -->
- + <item id="29651" min="3" max="3" chance="100.00"/> <!-- Healing Potion -->
- + </capsuled_items>
- </item>
- <item id="71180" name="Daily Present - VIP 4" type="EtcItem">
- <!-- Double-click the item to receive 1 Scroll of Escape, 1 Scroll of Resurrection, 3 Greater Healing Potions, 25 VIP Coins. -->
- <set name="icon" val="BranchIcon.Icon.etc_vip_present_i03" />
- - <set name="default_action" val="PEEL" />
- - <set name="immediate_effect" val="true" />
- - <set name="weight" val="10" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="3" />
- + <set name="extractableCountMax" val="3" />
- + <capsuled_items>
- + <item id="736" min="1" max="1" chance="100.00"/> <!-- Scroll of Escape -->
- + <item id="737" min="1" max="1" chance="100.00"/> <!-- Scroll of Resurrection -->
- + <item id="29652" min="3" max="3" chance="100.00"/> <!-- Major Healing Potion -->
- + </capsuled_items>
- </item>
- <item id="71181" name="Daily Present - VIP 5" type="EtcItem">
- <!-- Double-click the item to receive 1 Blessed Scroll of Escape, 3 Greater Healing Potions, 40 VIP Coins. -->
- <set name="icon" val="BranchIcon.Icon.etc_vip_present_i04" />
- - <set name="default_action" val="PEEL" />
- - <set name="immediate_effect" val="true" />
- - <set name="weight" val="10" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="2" />
- + <set name="extractableCountMax" val="2" />
- + <capsuled_items>
- + <item id="91689" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Escape -->
- + <item id="29652" min="3" max="3" chance="100.00"/> <!-- Major Healing Potion -->
- + </capsuled_items>
- </item>
- <item id="71182" name="Daily Present - VIP 6" type="EtcItem">
- <!-- Double-click on the item to receive 1 Blessed Scroll of Resurrection, 3 Greater Healing Potions, 100 VIP Coins. -->
- <set name="icon" val="BranchIcon.Icon.etc_vip_present_i05" />
- - <set name="default_action" val="PEEL" />
- - <set name="immediate_effect" val="true" />
- - <set name="weight" val="10" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="2" />
- + <set name="extractableCountMax" val="2" />
- + <capsuled_items>
- + <item id="3936" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Resurrection -->
- + <item id="29652" min="3" max="3" chance="100.00"/> <!-- Major Healing Potion -->
- + </capsuled_items>
- </item>
- <item id="71183" name="Daily Present - VIP 7" type="EtcItem">
- <!-- Double-click the item to receive 1 Blessed Scroll of Escape, 1 Blessed Scroll of Resurrection, 3 Greater Healing Potions, 150 VIP Coins. -->
- <set name="icon" val="BranchIcon.Icon.etc_vip_present_i06" />
- - <set name="default_action" val="PEEL" />
- - <set name="immediate_effect" val="true" />
- - <set name="weight" val="10" />
- - <set name="is_tradable" val="false" />
- - <set name="is_dropable" val="false" />
- - <set name="is_depositable" val="false" />
- - <set name="is_sellable" val="false" />
- - <set name="is_stackable" val="true" />
- + <set name="default_action" val="PEEL" />
- + <set name="immediate_effect" val="true" />
- + <set name="material" val="FISH" />
- + <set name="is_tradable" val="false" />
- + <set name="is_dropable" val="false" />
- + <set name="is_sellable" val="false" />
- + <set name="is_stackable" val="true" />
- + <set name="handler" val="ExtractableItems" />
- + <set name="extractableCountMin" val="3" />
- + <set name="extractableCountMax" val="3" />
- + <capsuled_items>
- + <item id="91689" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Escape -->
- + <item id="3936" min="1" max="1" chance="100.00"/> <!-- Blessed Scroll of Resurrection -->
- + <item id="29652" min="3" max="3" chance="100.00"/> <!-- Major Healing Potion -->
- + </capsuled_items>
- </item>
- <item id="71184" name="Agathion Meliodas" additionalName="Lv. 1" type="Armor">
- <!-- Activates the power of the Agathion Meliodas. Special abilities may be activated if the Agathion is summoned from the main slot. Can be enchanted up to +7 with the Seven Sins Agathion Growth Book. Cannot be exchanged, dropped, destroyed, or sold. Can be stored in a private warehouse. <Conditions for upgrade>. Enchant to +7 to upgrade to Agathion Meliodas Lv. 2. -->
Add Comment
Please, Sign In to add comment