Jump to content

[Guide] Screen Message - L2JFree


Recommended Posts

Since i was changing the code for l2jfree for a friend i decided to post it here also! it is a copy of that topic which the creator is named ˚°▫•Cobra●▫°˚ of the first code.

 

 

 

L2JFree-Core\src\main\java\com\l2jfree\config.java

Find Line = 910

 

 

Add After That:

    public static int				BANKING_SYSTEM_ADENA;

 

This Code:

public static boolean				SHOW_SCREEN_MESSAGE;									// Shows Screen Message

 

It will look like that:

public static boolean			EFFECT_CANCELING;
public static String			NONDROPPABLE_ITEMS;
public static FastList<Integer>	LIST_NONDROPPABLE_ITEMS	= new FastList<Integer>();
public static String			PET_RENT_NPC;
public static FastList<Integer>	LIST_PET_RENT_NPC		= new FastList<Integer>();
public static boolean			LEVEL_ADD_LOAD;
public static int				WAREHOUSE_SLOTS_NO_DWARF;								// Warehouse slots limits
public static int				WAREHOUSE_SLOTS_DWARF;									// Warehouse slots limits
public static int				WAREHOUSE_SLOTS_CLAN;									// Warehouse slots limits
public static int				FREIGHT_SLOTS;											// Freight slots limits
public static int				INVENTORY_MAXIMUM_NO_DWARF;							// Inventory slots limits
public static int				INVENTORY_MAXIMUM_DWARF;								// Inventory slots limits
public static int				INVENTORY_MAXIMUM_GM;									// Inventory slots limits
public static int				DEATH_PENALTY_CHANCE;									// Death Penalty chance
    public static boolean			BANKING_SYSTEM_ENABLED;
    public static int				BANKING_SYSTEM_GOLDBARS;
    public static int				BANKING_SYSTEM_ADENA;
public static boolean				SHOW_SCREEN_MESSAGE;									// Shows Screen Message when log in

 

 

 

L2JFree-Core\src\main\java\com\l2jfree\config.java

Find Line = 1037

 

 

Add After That:

            BANKING_SYSTEM_ADENA	= Integer.parseInt(otherSettings.getProperty("BankingAdenaCount", "500000000"));

 

This Code

            
		SHOW_SCREEN_MESSAGE = Boolean.parseBoolean(otherSettings.getProperty("ShowScreenMessage", "False"));

 

It will look like that:

		JAIL_IS_PVP = Boolean.parseBoolean(otherSettings.getProperty("JailIsPvp", "True"));
		JAIL_DISABLE_CHAT = Boolean.parseBoolean(otherSettings.getProperty("JailDisableChat", "True"));
		DEATH_PENALTY_CHANCE = Integer.parseInt(otherSettings.getProperty("DeathPenaltyChance", "20"));

            BANKING_SYSTEM_ENABLED	= Boolean.parseBoolean(otherSettings.getProperty("BankingEnabled", "false"));
            BANKING_SYSTEM_GOLDBARS	= Integer.parseInt(otherSettings.getProperty("BankingGoldbarCount", "1"));
            BANKING_SYSTEM_ADENA	= Integer.parseInt(otherSettings.getProperty("BankingAdenaCount", "500000000"));
            
		SHOW_SCREEN_MESSAGE = Boolean.parseBoolean(otherSettings.getProperty("ShowScreenMessage", "False"));
	}
}

 

 

 

L2JFree-Core\src\main\java\com\l2jfree\gameserver\network\clientpackets\EnterWorld.java

Find Line = 309

 

 

Add Before That:

	if (Hero.getInstance().getHeroes() != null && Hero.getInstance().getHeroes().containsKey(activeChar.getObjectId()))
		activeChar.setHero(true);

 

This Code

	// When Enter World a message will appear
	if(!Config.SHOW_SCREEN_MESSAGE)
	{
	ExShowScreenMessage welcomemessage = new ExShowScreenMessage("Welcome to Lineage II Hammer Fall",10000); //10000 = 10 seconds 
     activeChar.sendPacket(welcomemessage);
	}

 

It will look like that:

		}

	// When Enter World a message will appear
	if(!Config.SHOW_SCREEN_MESSAGE)
	{
	ExShowScreenMessage welcomemessage = new ExShowScreenMessage("Welcome to Lineage II Hammer Fall",10000); //10000 = 10 seconds 
     activeChar.sendPacket(welcomemessage);
	}

	if (Hero.getInstance().getHeroes() != null && Hero.getInstance().getHeroes().containsKey(activeChar.getObjectId()))
		activeChar.setHero(true);

	//Updating Seal of Strife Buff/Debuff

 

 

 

L2JFree-Core\config\other.properties

Find Line = 155

 

 

Add After That:

lose when they do .deposit
BankingAdenaCount = 500000000

 

This Code


#Show Screen Message
ShowScreenMessage = False

 

It will look like that:

# ---------------------------------------------------------------
# L2JFree Banking System                                           -
# ---------------------------------------------------------------
# To enable banking system set this value to true, default is false.
BankingEnabled = False
# This is the amount of Goldbars someone will get when they do the .deposit command, and also the same amount they will lose when they do .withdraw
BankingGoldbarCount = 1
# This is the amount of Adena someone will get when they do the .withdraw command, and also the same amount they will lose when they do .deposit
BankingAdenaCount = 500000000

#Show Screen Message
ShowScreenMessage = False

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.



  • Posts

    • Will it work for GOD H5 Client Protocol 140??
    • 6.2K followers growth from 500K DMs campaign for Onlyfan niche 🚀 ⭐️ Instant Instagram followers growth & gain subscribers ⭐️ GO VIRAL easier with reels on IG ⭐️ Scraping & Sending in less than 24 hours For consulting contact us on telegram @igmassdm ✅
    • ANOTHER LOGO DESIGN FOR ANOTHER EPIC PROJECT 😎 Thank You for using my support 🙏    
    • In this guide we will cover how to understand and implement the packages belonging to the Lineage 2 UI. More specifically the Essence version UI. Required UTPT (Unreal Tournament Package Tool) : https://github.com/l2jsourcecode/ut-package-tool File : InterfaceClassic.U   The packages are embedded into the interface, specifically located in the InterfaceClassic.u file. Some key classes include: UIPacket.uc (defines package structure) UIProtocol.uc (defines package opcode)   The packages are split into two main types: Client to Server (prefix: C) Server to Client (prefix: S) For example, in the UIProtocol class:   const C_EX_COSTUME_LOCK = 573; // packet from client to server const S_EX_COSTUME_LOCK = 785; // packet from server to client   We’ll use this package as a case study to delve deeper. Understanding Client to Server Packets Let's examine a packet from the client with an opcode of 573. On the server side, opcodes are converted into hexadecimal values using a formula: opcode - C_MAX   where C_MAX is an opcode defined in UIProtocol. Recently, C_MAX has been set to 209. For instance: 573 - 209 = 364 364 -> hex = 16C This hexadecimal value (16C) corresponds to the opcode for the Java class. Understanding Server to Client Packets For server packets, we also use hexadecimal conversion but with a different opcode: S_MAX = 255 S_MAX is applied to packages with an opcode above 255. For values below this, simply convert the number to hex. For example: const S_EX_COSTUME_LOCK = 785; 785 - 255 = 530 530 -> hex = 212 = 0xFE:0x212 Here, 0xFE represents S_MAX. Packet Structure Finally, let’s look at the packet structure. Open UIPacket.uc and locate the C_EX_COSTUME_LOCK to examine its structure in detail.   struct _C_EX_COSTUME_LOCK { var int nCostumeId; var int nLockState; };   We observe two integer variables, representing the structure of the package transmitted to the server. By continuing our search within this file, we find the following code:   static function bool Encode_C_EX_COSTUME_LOCK(out array<byte> stream, _C_EX_COSTUME_LOCK packet) { if(!EncodeInt(stream, packet.nCostumeId)) { return false; } if(!EncodeChar(stream, packet.nLockState)) { return false; } return true; }   This function encodes the packet structure for transmission. As discussed earlier, the data types within the packet are crucial. Specifically:   EncodeInt corresponds to an integer. EncodeChar is treated as a short in Java, typically read using readC, while readD is used for EncodeInt. Having examined the client-to-server packet structure, let's now explore the structure expected by the client from the server. The process is similar. We locate _S_EX_COSTUME_LOCK within UIPacket:     struct _S_EX_COSTUME_LOCK { var byte bResult; var int nCostumeId; var int nLockState; };   Data Decryption The corresponding decryption function is:   static function bool Decode_S_EX_COSTUME_LOCK(out _S_EX_COSTUME_LOCK packet) { if(!DecodeBool(packet.bResult)) { return false; } if(!DecodeInt(packet.nCostumeId)) { return false; } if(!DecodeChar(packet.nLockState)) { return false; } return true; }   Here, the variables are decoded as follows:   bResult is decoded as a Bool. nCostumeId is decoded as an Int. nLockState is decoded as a Char.   This consistent approach to encoding and decoding ensures reliable data transmission between the client and server. Example usage :  https://imgur.com/a/zVZHVzq Credits : L2j West Coast Custom ( https://discord.gg/n2c8meMN )
  • Topics

×
×
  • Create New...