Jump to content

Recommended Posts

Posted

Description

Allows you to configure the effect to Trade Players in Offline Mode.

 

Effects (the same order of images):

1 Bleed

2 Poison

3 Confusion

4 Silence

5 Sleep

6 Root

7 Petrification

8 Big Head

9 Flame

10 Fire Root Stun

11 Stealth

12 Imprisioning

 

5KXf9.jpg

 

Index: config/fun/offline.properties

===================================================================

--- config/fun/offline.properties (revision 7)

+++ config/fun/offline.properties (working copy)

@@ -12,6 +12,7 @@

 

# If set to True, name color will be changed then entering offline mode

OfflineNameColorEnable = False

+

# Color of the name in offline mode (if OfflineNameColorEnable = True)

OfflineNameColor = ff00ff

 

@@ -18,8 +19,27 @@

# After Server Restart or Shutdown, all players in Offline mode will be auto logged.

# Enable -> true, Disable -> false

RestoreOffliners=false

+

# Max Days after no auto relog.

OfflineMaxDays=0

+

# If a player finish to sell/buy he will be kicked from the Server.

# Enable -> true, Disable -> false

-OfflineDisconnectFinished=false

\ No newline at end of file

+OfflineDisconnectFinished=false

+

+# -----------------------------------------

+# Offline Effect -

+# -----------------------------------------

+# Add effect when entering offline mode.

+# Default: False

+OfflineTradeEffect = False

+

+# The effect that will be shown by players in offline mode.

+# Use:

+# - 1 Bleed      | 7  Petrification  - #

+# - 2 Poison      | 8  Big Head      - #

+# - 3 Confusion  | 9  Flame          - #

+# - 4 Silence    | 10 Fire Root Stun - #

+# - 5 Sleep      | 11 Stealth        - #

+# - 6 Root        | 12 Imprisioning  - #

+OfflineEffectId = 5

Index: head-src/com/l2jfrozen/Config.java

===================================================================

--- head-src/com/l2jfrozen/Config.java (revision 7)

+++ head-src/com/l2jfrozen/Config.java (working copy)

@@ -2402,6 +2413,9 @@

public static int OFFLINE_MAX_DAYS;

public static boolean OFFLINE_DISCONNECT_FINISHED;

 

+    public static boolean OFFLINE_TRADE_EFFECT;

+ public static int OFFLINE_EFFECT_ID;

+

//============================================================

public static void loadOfflineConfig()

{

@@ -2422,7 +2436,9 @@

RESTORE_OFFLINERS = Boolean.parseBoolean(OfflineSettings.getProperty("RestoreOffliners", "false"));

OFFLINE_MAX_DAYS = Integer.parseInt(OfflineSettings.getProperty("OfflineMaxDays", "10"));

OFFLINE_DISCONNECT_FINISHED = Boolean.parseBoolean(OfflineSettings.getProperty("OfflineDisconnectFinished", "true"));

-

+

+ OFFLINE_TRADE_EFFECT = Boolean.parseBoolean(OfflineSettings.getProperty("OfflineTradeEffect", "False"));

+ OFFLINE_EFFECT_ID = Integer.parseInt(OfflineSettings.getProperty("OfflineEffectId", "1"));

}

catch(Exception e)

{

Index: head-src/com/l2jfrozen/gameserver/datatables/OfflineTradeTable.java

===================================================================

--- head-src/com/l2jfrozen/gameserver/datatables/OfflineTradeTable.java (revision 7)

+++ head-src/com/l2jfrozen/gameserver/datatables/OfflineTradeTable.java (working copy)

@@ -19,8 +19,6 @@

package com.l2jfrozen.gameserver.datatables;

 

/**

- *

- *

  * @author Enzo

  */

 

@@ -32,6 +30,7 @@

import java.util.logging.Logger;

 

import com.l2jfrozen.Config;

+import com.l2jfrozen.gameserver.model.L2Character;

import com.l2jfrozen.gameserver.model.L2ManufactureItem;

import com.l2jfrozen.gameserver.model.L2ManufactureList;

import com.l2jfrozen.gameserver.model.L2World;

@@ -44,8 +43,6 @@

import com.l2jfrozen.util.CloseUtil;

import com.l2jfrozen.util.database.L2DatabaseFactory;

 

-

-

public class OfflineTradeTable

{

private static Logger _log = Logger.getLogger(OfflineTradeTable.class.getName());

@@ -213,6 +210,50 @@

player.setClient(client);

player.setOffline(true);

player.setOfflineStartTime(time);

+

+ if(Config.OFFLINE_TRADE_EFFECT)

+ {

+ switch(Config.OFFLINE_EFFECT_ID)

+ {

+ case 1:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_BLEEDING);

+ break;

+ case 2:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_POISON);

+ break;

+ case 3:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_CONFUSED);

+ break;

+ case 4:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_MUTED);

+ break;

+ case 5:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_SLEEP);

+ break;

+ case 6:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_ROOT);

+ break;

+ case 7:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_HOLD_2);

+ break;

+ case 8:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_BIG_HEAD);

+ break;

+ case 9:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_FLAME);

+ break;

+ case 10:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_FIREROOT_STUN);

+ break;

+ case 11:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_STEALTH);

+ break;

+ case 12:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_IMPRISIONING_2);

+ break;

+ }

+ }

+

player.spawnMe(player.getX(), player.getY(), player.getZ());

LoginServerThread.getInstance().addGameServerLogin(player.getAccountName(), client);

PreparedStatement stm_items = con.prepareStatement(LOAD_OFFLINE_ITEMS);

Index: head-src/com/l2jfrozen/gameserver/network/L2GameClient.java

===================================================================

--- head-src/com/l2jfrozen/gameserver/network/L2GameClient.java (revision 7)

+++ head-src/com/l2jfrozen/gameserver/network/L2GameClient.java (working copy)

@@ -41,6 +41,7 @@

import com.l2jfrozen.gameserver.datatables.sql.ClanTable;

import com.l2jfrozen.gameserver.managers.AwayManager;

import com.l2jfrozen.gameserver.model.CharSelectInfoPackage;

+import com.l2jfrozen.gameserver.model.L2Character;

import com.l2jfrozen.gameserver.model.L2Clan;

import com.l2jfrozen.gameserver.model.L2World;

import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;

@@ -1001,6 +1002,49 @@

player.broadcastUserInfo();

}

 

+ if(Config.OFFLINE_TRADE_EFFECT)

+ {

+ switch(Config.OFFLINE_EFFECT_ID)

+ {

+ case 1:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_BLEEDING);

+ break;

+ case 2:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_POISON);

+ break;

+ case 3:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_CONFUSED);

+ break;

+ case 4:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_MUTED);

+ break;

+ case 5:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_SLEEP);

+ break;

+ case 6:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_ROOT);

+ break;

+ case 7:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_HOLD_2);

+ break;

+ case 8:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_BIG_HEAD);

+ break;

+ case 9:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_FLAME);

+ break;

+ case 10:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_FIREROOT_STUN);

+ break;

+ case 11:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_STEALTH);

+ break;

+ case 12:

+ player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_IMPRISIONING_2);

+ break;

+ }

+ }

+

if (player.getOfflineStartTime() == 0)

player.setOfflineStartTime(System.currentTimeMillis());

 

Creditos : RedHot

Posted

can it be done to make the offline traders to transform into one or more transformations? Like Rabbit, pig, etc.

 

Ofc yes, you can use polyself/polymorph packages.

Guest
This topic is now closed to further replies.



  • Posts

    • ⭐ 100% Safe on your personal Gmail: Zero VPN needed, worldwide access, and backed by 24/7 customer replacement support.     FINAL CALL: Google is Shutting This Down After October 2026! Google will NEVER bring back this window of opportunity again. Once this month ends, this massive backdoor upgrade is gone permanently!  BUY 2, GET 1 FREE IS STILL LIVE! Stock up now for yourself, your family, your business, and your friends! Think about it: Every single person you know uses a Gmail account, and everyone is running out of storage. Don't let your loved ones get trapped paying $20–$30 every single month when you can set them up with 5TB Cloud Storage + Gemini Advanced (12–18 Months) right now for only $15! Why Buy Bulk Activations Today? Instant Gift Value: Perfect lifetime-style gift for clients, family, or team members. 100% Private & Safe: Activates on personal Gmails—zero passwords or logins required. Global Access: Works worldwide with zero VPN hassles. Instant Automated Delivery: Receive your activation links in seconds 24/7! ‍ Time is running out fast—secure your extra free licenses before the October deadline hits! Order Your Bundle Now on the Website
    • Version 0.8.0 - Export to Blender. Map tile transfer. Main/Classic support. New shadows   Download   Location export to Blender   Export works both from the main menu and inside a loaded world.   - Export location… saves one or more tiles (up to 25) into one glTF file (.glb) with textures. The file holds:   - the terrain, with all its layers baked into one texture of 2048, 4096 or 8192 px;   - the level geometry, static meshes, doors and, if you want, the grass. - Neighbouring tiles meet without gaps. Shared textures are written only once. - Water looks like the viewer's realistic water. It is smooth, with ripples, and its colour depends on the depth: turquoise over sand, dark in deep places. - Scale: 1 client unit = 4 cm, so people are 1.8 m tall. - A part exports a square of 200–1300 m instead of the whole tile. - Place NPCs from npcpos places the NPCs from the server's npcpos.txt. For each kind of NPC it writes a separate file with its skeleton and animations. - Time of day takes the client's sun, light, fog and sky (clouds, sun, moon) for the chosen hour.   NPC and player character export   - Export NPC… finds an NPC by name, title, id or mesh. It saves the NPC as glTF with its skeleton and all its animations: idle, walk, run, attacks, death and more. - NPCs built from player race parts, such as guards in armour, are exported too, with their weapons and shields. - Player character mode makes a character of any race in the armour and weapons you choose.   Open in Blender   - Every export comes with the open-in-blender.py script. If Blender is installed, an "Open in Blender" button appears after the export. - A character opens with its textures at once: the camera looks at its face, the idle animation plays, the bones are hidden, and the animations loop. - Locations and characters are lit by their own sun and sky, with shadows. - Each tile and each of its parts (terrain, meshes, grass) is in its own collection, so one checkbox hides it.   Copy, move and swap map tiles   - In Copy, move or swap tiles… you pick the source tile and a place on the map. Cruma shifts all the coordinates in the map. - The geodata region and the spawns from npcpos.txt can move along with the tile. A tile can also come from another client. If the two clients are from different chronicles, correct results are not guaranteed, so make a backup first. - Build from the map builds the geodata of the moved tiles again, and Rebuild pathnodes rebuilds the pathnode graph. - Update map image updates the map image in the start menu after the operation. - The dialog shows which world you are picking the tile in and which client will be changed.   Main and Classic worlds   - Clients with Classic maps have a Main / Classic switch. Classic opens X_Y_Classic.unr. - The Classic world has its own folders for captures, the map image and geodata. - If a client has no Classic maps, the switch is dimmed and cannot be changed.   Shadows (Custom Lighting) Note: the custom lighting must be enabled in settings/scene settings   - NPCs now also cast sun shadows on the ground and walls, and get darker in the shade of buildings and trees. - Shadows of buildings and trees are much sharper, with crisp edges on roofs and walls. - This has almost no effect on performance. Thanks, appreciate it!
    • 🎬 Creator Subscriptions: CapCut Pro, Canva Pro, and Adobe Creative Cloud available with instant automated setup!   FINAL CALL: Google is Shutting This Down After October 2026! Google will NEVER bring back this window of opportunity again. Once this month ends, this massive backdoor upgrade is gone permanently!  BUY 2, GET 1 FREE IS STILL LIVE! Stock up now for yourself, your family, your business, and your friends! Think about it: Every single person you know uses a Gmail account, and everyone is running out of storage. Don't let your loved ones get trapped paying $20–$30 every single month when you can set them up with 5TB Cloud Storage + Gemini Advanced (12–18 Months) right now for only $15! Why Buy Bulk Activations Today? Instant Gift Value: Perfect lifetime-style gift for clients, family, or team members. 100% Private & Safe: Activates on personal Gmails—zero passwords or logins required. Global Access: Works worldwide with zero VPN hassles. Instant Automated Delivery: Receive your activation links in seconds 24/7! ‍ Time is running out fast—secure your extra free licenses before the October deadline hits! Order Your Bundle Now on the Website
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..