Secret Experience

Secret Experience (https://secretexperience.net/)
-   [Lineage] Java Mods (https://secretexperience.net/lineage-java-mods/)
-   -   [L2JServer] Offline Trade (https://secretexperience.net/lineage-java-mods/10320-offline-trade.html)

KaL 02-07-2009 10:34 PM

Offline Trade
 
Este Mod permite que o char abra sua PrivateStore e deslogue, fazendo com que a PrivateStore continue aberta. Feito para L2jServer, mas pode ser adaptado para outras Plataformas.

Código:

Index: data/scripts/handlers/chathandlers/ChatTell.java
===================================================================
--- data/scripts/handlers/chathandlers/ChatTell.java        (revision 5944)
+++ data/scripts/handlers/chathandlers/ChatTell.java        (working copy)
@@ -76,6 +76,11 @@
                                activeChar.sendMessage("Player is chat banned.");
                                return;
                        }
+                        if (receiver.getClient().isDetached())
+                        {
+                                activeChar.sendMessage("Player is in offline mode.");
+                                return;
+                        }
                       
                        if (!receiver.getMessageRefusal())
                        {
Index: java/config/l2jmods.properties
===================================================================
--- java/config/l2jmods.properties        (revision 2917)
+++ java/config/l2jmods.properties        (working copy)
@@ -197,6 +197,24 @@
 
 
 # ---------------------------------------------------------------------------
+# Offline trade/craft
+# ---------------------------------------------------------------------------
+# Option to enable or disable offline trade feature.
+# Enable -> true, Disable -> false
+OfflineTradeEnable = False
+
+# Option to enable or disable offline craft feature.
+# Enable -> true, Disable -> false
+OfflineCraftEnable = False
+
+# If set to True, name color will be changed then entering offline mode
+OfflineSetNameColor = False
+
+# Color of the name in offline mode (if OfflineSetNameColor = True)
+OfflineNameColor = 808080
+
+
+# ---------------------------------------------------------------------------
 # Mana Drugs/Potions
 # ---------------------------------------------------------------------------
 # This option will enable core support for:
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java        (revision 2917)
+++ java/net/sf/l2j/Config.java        (working copy)
@@ -538,6 +538,10 @@
        public static boolean L2JMOD_ENABLE_WAREHOUSESORTING_CLAN;
        public static boolean L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE;
        public static boolean L2JMOD_ENABLE_WAREHOUSESORTING_FREIGHT;
+        public static boolean OFFLINE_TRADE_ENABLE;
+        public static boolean OFFLINE_CRAFT_ENABLE;
+        public static boolean OFFLINE_SET_NAME_COLOR;
+        public static int OFFLINE_NAME_COLOR;
        public static boolean L2JMOD_ENABLE_MANA_POTIONS_SUPPORT;
 
 
@@ -1716,6 +1720,11 @@
                                        BANKING_SYSTEM_GOLDBARS = Integer.parseInt(L2JModSettings.getProperty("BankingGoldbarCount", "1"));
                                        BANKING_SYSTEM_ADENA = Integer.parseInt(L2JModSettings.getProperty("BankingAdenaCount", "500000000"));
 
+                                        OFFLINE_TRADE_ENABLE = Boolean.parseBoolean(L2JModSettings.getProperty("OfflineTradeEnable", "false"));
+                                        OFFLINE_CRAFT_ENABLE = Boolean.parseBoolean(L2JModSettings.getProperty("OfflineCraftEnable", "false"));
+                                        OFFLINE_SET_NAME_COLOR = Boolean.parseBoolean(L2JModSettings.getProperty("OfflineSetNameColor", "false"));
+                                        OFFLINE_NAME_COLOR = Integer.decode("0x" + L2JModSettings.getProperty("OfflineNameColor", "808080"));
+
                                        L2JMOD_ENABLE_MANA_POTIONS_SUPPORT = Boolean.parseBoolean(L2JModSettings.getProperty("EnableManaPotionSupport", "false"));
                                }
                                catch (Exception e)
Index: java/net/sf/l2j/gameserver/network/L2GameClient.java
===================================================================
--- java/net/sf/l2j/gameserver/network/L2GameClient.java        (revision 2917)
+++ java/net/sf/l2j/gameserver/network/L2GameClient.java        (working copy)
@@ -39,6 +39,7 @@
 import net.sf.l2j.gameserver.model.L2World;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 import net.sf.l2j.gameserver.model.entity.L2Event;
+import net.sf.l2j.gameserver.model.entity.TvTEvent;
 import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
 import net.sf.l2j.util.EventData;
 
@@ -580,9 +581,25 @@
                        {
                                isDetached(true);
                                L2PcInstance player = L2GameClient.this.getActiveChar();
-                                if (player != null && player.isInCombat())
+                                if (player != null)
                                {
-                                        fast = false;
+                                        if (!player.isInOlympiadMode() && !player.isFestivalParticipant() && !TvTEvent.isPlayerParticipant(player.getObjectId()) && !player.isInJail())
+                                        {
+                                                if ((player.isInStoreMode() && Config.OFFLINE_TRADE_ENABLE) || (player.isInCraftMode() && Config.OFFLINE_CRAFT_ENABLE))
+                                                {
+                                                        player.leaveParty();
+                                                        if (Config.OFFLINE_SET_NAME_COLOR)
+                                                        {
+                                                                player.getAppearance().setNameColor(Config.OFFLINE_NAME_COLOR);
+                                                                player.broadcastUserInfo();
+                                                        }
+                                                        return;
+                                                }
+                                        }
+                                        if (player.isInCombat())
+                                        {
+                                                fast = false;
+                                        }
                                }
                                cleanMe(fast);
                        }
Index: java/net/sf/l2j/gameserver/network/clientpackets/Logout.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/Logout.java        (revision 2917)
+++ java/net/sf/l2j/gameserver/network/clientpackets/Logout.java        (working copy)
@@ -103,6 +103,13 @@
                }
 
                TvTEvent.onLogout(player);
+               
+                if ((player.isInStoreMode() && Config.OFFLINE_TRADE_ENABLE) || (player.isInCraftMode() && Config.OFFLINE_CRAFT_ENABLE))
+                {
+                        player.closeNetConnection();
+                        return;
+                }
+
                RegionBBSManager.getInstance().changeCommunityBoard();
 
                player.deleteMe();
Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java        (revision 2917)
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java        (working copy)
@@ -105,6 +105,12 @@
                        requestor.sendMessage("Player is in Jail");
                        return;
                }
+               
+                if (target.getClient().isDetached())
+                {
+                        requestor.sendMessage("Player is in offline mode.");
+                        return;
+                }
 
        if (target.isInOlympiadMode() || requestor.isInOlympiadMode())
            return;
Index: java/net/sf/l2j/gameserver/model/L2ClanMember.java
===================================================================
--- java/net/sf/l2j/gameserver/model/L2ClanMember.java        (revision 2917)
+++ java/net/sf/l2j/gameserver/model/L2ClanMember.java        (working copy)
@@ -143,7 +143,14 @@
 
        public boolean isOnline()
        {
-                return _player != null;
+                if (_player == null)
+                        return false;
+                if (_player.getClient() == null)
+                        return false;
+                if (_player.getClient().isDetached())
+                        return false;
+
+                return true;
        }
 
        /**

Créditos : _DS_

leopiri 05-04-2010 10:54 PM

tem como colocar numa rev l2free hellbound?

Guma 05-04-2010 11:21 PM

sim
c voce souber compilar ja e um bom comesso.

darlanws 27-09-2010 04:47 AM

Pergunta apos adicionado como ativo a off?

paytaly 27-09-2010 09:53 AM

Só abrir a loja e deslogar com ela ainda aberta.

darlanws 28-09-2010 02:30 AM

Tem como adaptar para ... Interlude? L2J

Setokaiba 28-09-2010 03:42 AM

Isto é para L2J Interlude.

douglinhas 16-02-2011 02:41 PM

Queria Saber se tem como em vez de vender por adena vender por outro item?

thugstronda 11-07-2011 10:25 PM

@KąŁ

Em te falar so pegar esse codigo e colocar junto no "Ex" l2jteon no l2jteonmods ?

Nakashimi 15-09-2011 05:19 PM

uma pergunta na rev l2jserve tem esse caminh?
data/scripts/handlers/chathandlers/ChatTell.java

onde achar?


Horários baseados na GMT -3. Agora são 08:43 AM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.