#FIX version 3 (with character variables)
- Create and apply this DIFF path:
diff --git java/org/l2jmobius/gameserver/model/actor/Player.java java/org/l2jmobius/gameserver/model/actor/Player.java
index b3a5b07..d2ad8c5 100644
--- java/org/l2jmobius/gameserver/model/actor/Player.java
+++ java/org/l2jmobius/gameserver/model/actor/Player.java
@@ -16123,7 +16123,6 @@
if (holder != null)
{
_relics.add(new PlayerRelicData(relicId, relicLevel, relicCount, relicIndex, relicSummonTime));
- giveRelicSkill(holder);
}
}
}
diff --git java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java
index 6b6bd1b..075b5ab 100644
--- java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java
+++ java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java
@@ -65,6 +65,7 @@
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.AttendanceInfoHolder;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
+import org.l2jmobius.gameserver.model.holders.PlayerRelicData;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.item.ItemTemplate;
import org.l2jmobius.gameserver.model.item.instance.Item;
@@ -148,6 +149,7 @@
import org.l2jmobius.gameserver.network.serverpackets.olympiad.ExOlympiadInfo;
import org.l2jmobius.gameserver.network.serverpackets.quest.ExQuestDialog;
import org.l2jmobius.gameserver.network.serverpackets.quest.ExQuestNotificationAll;
+import org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsActiveInfo;
import org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsCollectionInfo;
import org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsExchangeList;
import org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsList;
@@ -807,14 +809,6 @@
}
player.sendPacket(new ExCollectionActiveEvent());
- // Relic Collections.
- if (Config.RELIC_SYSTEM_ENABLED)
- {
- player.sendPacket(new ExRelicsList(player));
- player.sendPacket(new ExRelicsCollectionInfo(player));
- player.sendPacket(new ExRelicsExchangeList(player));
- }
-
// Virtual Items
// TODO: Add a config for this.
// player.sendPacket(new ExVirtualItemSystemBaseInfo(player));
@@ -979,6 +973,9 @@
// Remove variable used by hunting zone system.
player.getVariables().remove(PlayerVariables.LAST_HUNTING_ZONE_ID);
+
+ // Relic
+ relicSystem(getPlayer());
}
/**
@@ -1024,4 +1021,27 @@
}
}
}
+
+ private void relicSystem(Player player)
+ {
+ if (Config.RELIC_SYSTEM_ENABLED)
+ {
+ int activeRelicId = player.getVariables().getInt(AccountVariables.ACTIVE_RELIC, 0);
+ int activeRelicLevel = 0;
+ for (PlayerRelicData relic : player.getRelics())
+ {
+ if (relic.getRelicId() == activeRelicId)
+ {
+ activeRelicId = relic.getRelicId();
+ activeRelicLevel = relic.getRelicLevel();
+ break;
+ }
+ }
+ player.sendPacket(new ExRelicsActiveInfo(activeRelicId, activeRelicLevel)); // Stored active relic from acc var.
+ player.sendPacket(new ExRelicsCollectionInfo(player));
+ player.sendPacket(new ExRelicsList(player)); // Update confirmed relic list relics count.
+ player.sendPacket(new ExRelicsExchangeList(player)); // Update relic exchange/confirm list.
+ }
+ }
+
}
diff --git java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsActive.java java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsActive.java
index 2bd917a..0383eb3 100644
--- java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsActive.java
+++ java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsActive.java
@@ -65,8 +65,7 @@
final int skillId = RelicData.getInstance().getRelicSkillId(_relicId);
final int skillLevel = relicLevel + 1;
player.sendPacket(new ExRelicsActiveInfo(_relicId, relicLevel));
- player.getAccountVariables().set(AccountVariables.ACTIVE_RELIC, _relicId);
- player.getAccountVariables().storeMe();
+ player.getVariables().set(AccountVariables.ACTIVE_RELIC, _relicId);
final Skill relicSkill = SkillData.getInstance().getSkill(skillId, skillLevel);
if (relicSkill != null)
diff --git java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsOpenUI.java java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsOpenUI.java
index 0f4d0f5..715b525 100644
--- java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsOpenUI.java
+++ java/org/l2jmobius/gameserver/network/clientpackets/relics/RequestRelicsOpenUI.java
@@ -21,10 +21,7 @@
package org.l2jmobius.gameserver.network.clientpackets.relics;
import org.l2jmobius.gameserver.model.actor.Player;
-import org.l2jmobius.gameserver.model.holders.PlayerRelicData;
-import org.l2jmobius.gameserver.model.variables.AccountVariables;
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
-import org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsActiveInfo;
import org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsExchangeList;
import org.l2jmobius.gameserver.network.serverpackets.relics.ExRelicsList;
@@ -47,21 +44,6 @@
return;
}
- int activeRelicId = 0;
- int activeRelicLevel = 0;
- for (PlayerRelicData relic : player.getRelics())
- {
- if (relic.getRelicId() == player.getAccountVariables().getInt(AccountVariables.ACTIVE_RELIC, 0))
- {
- activeRelicId = relic.getRelicId();
- activeRelicLevel = relic.getRelicLevel();
- break;
- }
- }
- player.sendPacket(new ExRelicsActiveInfo(activeRelicId, activeRelicLevel)); // Show stored active relic from acc var.
- player.getAccountVariables().set(AccountVariables.ACTIVE_RELIC, activeRelicId);
- player.getAccountVariables().storeMe();
-
player.sendPacket(new ExRelicsList(player)); // Update confirmed relic list relics count.
player.sendPacket(new ExRelicsExchangeList(player)); // Update relic exchange/confirm list.
}