diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_01.0_Ertheia/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_01.0_Ertheia/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java index fa399ba045..37d9eee40a 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1098,6 +1099,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3291,6 +3293,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_02.5_Underground/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_02.5_Underground/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_02.5_Underground/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java index 43dacaa73a..92f4a62a32 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1109,6 +1110,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3317,6 +3319,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_03.0_Helios/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_03.0_Helios/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_03.0_Helios/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java index fb9e1a8cdd..c9eece493d 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1122,6 +1123,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3339,6 +3341,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java index f38694b927..414e6cb0fc 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1109,6 +1110,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3313,6 +3315,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_05.0_Salvation/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_05.0_Salvation/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_05.0_Salvation/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java index 3b7c895d0d..a714ef0359 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1108,6 +1109,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3322,6 +3324,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_05.5_EtinasFate/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java index 90f099325a..af5a7c35fa 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1115,6 +1116,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3334,6 +3336,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_06.0_Fafurion/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_06.0_Fafurion/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java index 74682fe784..03cb46ff8d 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1137,6 +1138,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3377,6 +3379,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java index 47f5204a65..0052c5f01f 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1145,6 +1146,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3393,6 +3395,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_08.2_Homunculus/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_08.2_Homunculus/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java index f0fe3d7221..01ec71be67 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1137,6 +1138,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3369,6 +3371,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java index 5a57dac542..2a0f3bf48b 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1148,6 +1149,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3405,6 +3407,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_10.1_MasterClass/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_10.1_MasterClass/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java index 7daa7d1702..af3ebc714e 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1148,6 +1149,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3405,6 +3407,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_10.2_MasterClass/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_10.2_MasterClass/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java index 7daa7d1702..af3ebc714e 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1148,6 +1149,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3405,6 +3407,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 53f4033548..2fa24222f6 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.TradeItem; import org.l2jmobius.gameserver.model.World; @@ -297,6 +298,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_CT_0_Interlude/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_CT_0_Interlude/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_CT_0_Interlude/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_CT_0_Interlude/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/Config.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/Config.java index 1abf6d25a4..cf447f45b8 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/Config.java @@ -63,6 +63,7 @@ import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1118,6 +1119,7 @@ public class Config public static boolean OFFLINE_FAME; public static boolean STORE_OFFLINE_TRADE_IN_REALTIME; public static boolean ENABLE_OFFLINE_COMMAND; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean DISPLAY_SERVER_TIME; public static int BUFFER_MAX_SCHEMES; public static int BUFFER_STATIC_BUFF_COST; @@ -2762,6 +2764,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index 2665cce8d5..282f9d61cf 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.startAbnormalVisualEffect(false, Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index fcbbd3f84e..c053693886 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -149,6 +150,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.startAbnormalVisualEffect(true, Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java index c60b7fb4fb..d5c513529a 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java @@ -63,6 +63,7 @@ import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1172,6 +1173,7 @@ public class Config public static boolean OFFLINE_FAME; public static boolean STORE_OFFLINE_TRADE_IN_REALTIME; public static boolean ENABLE_OFFLINE_COMMAND; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean DISPLAY_SERVER_TIME; public static int BUFFER_MAX_SCHEMES; public static int BUFFER_STATIC_BUFF_COST; @@ -2880,6 +2882,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..739fcaaf2b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.startAbnormalVisualEffect(false, Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index fcbbd3f84e..c053693886 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -149,6 +150,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.startAbnormalVisualEffect(true, Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java index abf6318c75..c63e8fa5ea 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java @@ -63,6 +63,7 @@ import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1172,6 +1173,7 @@ public class Config public static boolean OFFLINE_FAME; public static boolean STORE_OFFLINE_TRADE_IN_REALTIME; public static boolean ENABLE_OFFLINE_COMMAND; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean DISPLAY_SERVER_TIME; public static int BUFFER_MAX_SCHEMES; public static int BUFFER_STATIC_BUFF_COST; @@ -2887,6 +2889,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..739fcaaf2b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.startAbnormalVisualEffect(false, Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 599bc6bbee..b8a4cc4c68 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -149,6 +150,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.startAbnormalVisualEffect(true, Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_1.0/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_1.0/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_Classic_1.0/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_1.0/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java index edd94e378f..4248953c99 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1048,6 +1049,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3192,6 +3194,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java index 5df4392a40..1ce92423d1 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1058,6 +1059,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3221,6 +3223,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java index b10f877c16..6937feeddf 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1057,6 +1058,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3219,6 +3221,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_2.5_Zaken/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java index eae9a675fd..de6b0b4de7 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1061,6 +1062,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3225,6 +3227,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_2.7_Antharas/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java index eae9a675fd..de6b0b4de7 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1061,6 +1062,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3225,6 +3227,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java index eae9a675fd..de6b0b4de7 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1061,6 +1062,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3225,6 +3227,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java index 55526af84a..bf671f05ea 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1066,6 +1067,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3234,6 +3236,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java index b79fa0af6c..ec86c01724 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1072,6 +1073,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3279,6 +3281,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Classic_Interlude/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1e7a9cd5c3 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Classic_Interlude/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: SLEEP +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java index 9e2e044edc..7a6f09f0d5 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java @@ -65,6 +65,7 @@ import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.item.type.CrystalType; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1073,6 +1074,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3239,6 +3241,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java index 2acef6df97..c10511d1d9 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/Config.java @@ -64,6 +64,7 @@ import org.l2jmobius.gameserver.enums.ClassId; import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1098,6 +1099,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3332,6 +3334,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java index 671618170a..d3c74d3a5b 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/Config.java @@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ResurrectByPaymentHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1106,6 +1107,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3434,6 +3436,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java index 4756e96998..aaac329686 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/Config.java @@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ResurrectByPaymentHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1113,6 +1114,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3448,6 +3450,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Custom/OfflineTrade.ini b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Custom/OfflineTrade.ini index 82e246dc9a..1d27a6c2f0 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Custom/OfflineTrade.ini +++ b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/config/Custom/OfflineTrade.ini @@ -44,3 +44,8 @@ StoreOfflineTradeInRealtime = True # Enable .offline command for logging out. EnableOfflineCommand = True +# Abnormal effect for offline traders. +# Can use multiple enums separated by commas to choose random effect. +# Leave empty to disable. +# Example: DORMANT_USER +OfflineAbnormalEffect = diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java index b6cf64ce1c..5ccc764ab9 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/Config.java @@ -66,6 +66,7 @@ import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ResurrectByPaymentHolder; +import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect; import org.l2jmobius.gameserver.util.FloodProtectorConfig; import org.l2jmobius.gameserver.util.Util; @@ -1113,6 +1114,7 @@ public class Config public static int OFFLINE_MAX_DAYS; public static boolean OFFLINE_DISCONNECT_FINISHED; public static boolean OFFLINE_DISCONNECT_SAME_ACCOUNT; + public static List OFFLINE_ABNORMAL_EFFECTS = new ArrayList<>(); public static boolean OFFLINE_SET_NAME_COLOR; public static int OFFLINE_NAME_COLOR; public static boolean OFFLINE_FAME; @@ -3448,6 +3450,15 @@ public class Config OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false); STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true); ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true); + OFFLINE_ABNORMAL_EFFECTS.clear(); + final String offlineAbnormalEffects = offlineTradeConfig.getString("OfflineAbnormalEffect", "").trim(); + if (!offlineAbnormalEffects.isEmpty()) + { + for (String ave : offlineAbnormalEffects.split(",")) + { + OFFLINE_ABNORMAL_EFFECTS.add(Enum.valueOf(AbnormalVisualEffect.class, ave.trim())); + } + } // Load PasswordChange config file (if exists) final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE); diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java index e5153027f1..13358b2b3c 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/sql/OfflineTraderTable.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.enums.PrivateStoreType; import org.l2jmobius.gameserver.model.ManufactureItem; import org.l2jmobius.gameserver.model.TradeItem; @@ -293,6 +294,10 @@ public class OfflineTraderTable player.setPrivateStoreType(type); player.setOnlineStatus(true, true); player.restoreEffects(); + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } player.broadcastUserInfo(); nTraders++; } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java index 92393a9cf6..9ccd99b562 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/util/OfflineTradeUtil.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.util; import java.util.logging.Logger; import org.l2jmobius.Config; +import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.sql.OfflineTraderTable; import org.l2jmobius.gameserver.instancemanager.AntiFeedManager; import org.l2jmobius.gameserver.model.World; @@ -155,6 +156,12 @@ public class OfflineTradeUtil player.storeMe(); LOGGER_ACCOUNTING.info("Entering offline mode, " + client); + + if (!Config.OFFLINE_ABNORMAL_EFFECTS.isEmpty()) + { + player.getEffectList().startAbnormalVisualEffect(Config.OFFLINE_ABNORMAL_EFFECTS.get(Rnd.get(Config.OFFLINE_ABNORMAL_EFFECTS.size()))); + } + return true; } }