Jump to content

Recommended Posts

Posted

This is a exshowscreenmessage, like you go to towns and a window apear "Giran Town".

 

You will be able to put anything you want.

 

This tested at l2j.

 

go java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java

 

First add this import;

 

import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;

 

and then add this (delete the other message from l2j and put this);

 

ExShowScreenMessage welcomemessage = new ExShowScreenMessage("Welcome to The MaxCheaters",10000); //10000 = 10 seconds 
     activeChar.sendPacket(welcomemessage); 

 

Well this is good idea you can use this method, at pvp showing the damage apear of window for example...etc ;P

 

 

NOTE: This no need any client modding ;]!

 

Regard Cobra.

 

p.s: My pc crashed ;P so i don't have eclipse //cry! I will update the post better wen my pc come back ^.^

 

Well some updates i donne it for il i test it at l2jdot :];

 

Index: C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/Config.java
===================================================================
--- C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/Config.java	(revision 512)
+++ C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/Config.java	(working copy)
@@ -1599,6 +1599,8 @@
	public static boolean ALLOW_LOW_LEVEL_TRADE;

	public static boolean SHOW_HTML_WELCOME;
+	
+	public static boolean SHOW_SCREEN_MESSAGE;

	/** Chat filter */
	public static boolean USE_CHAT_FILTER;
@@ -3403,6 +3405,7 @@
				ALLOW_LOW_LEVEL_TRADE = Boolean.parseBoolean(L2dotSettings
						.getProperty("AllowLowLevelTrade", "True"));
				SHOW_HTML_WELCOME = Boolean.parseBoolean(L2dotSettings.getProperty("ShowWelcomeHTML", "False"));
+				SHOW_SCREEN_MESSAGE = Boolean.parseBoolean(L2dotSettings.getProperty("ShowScreenMessage", "False"));
				ALLOW_POTS_IN_PVP = Boolean.parseBoolean(L2dotSettings
						.getProperty("AllowPotsInPvP", "True"));
				ALLOW_SOE_IN_PVP = Boolean.parseBoolean(L2dotSettings.getProperty("AllowSoEInPvP", "True"));
Index: C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowScreenMessage.java
===================================================================
--- C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowScreenMessage.java	(revision 0)
+++ C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowScreenMessage.java	(revision 0)
@@ -0,0 +1,88 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+/**
+ * @author Cobra
+ *
+ */
+public class ExShowScreenMessage extends L2GameServerPacket
+{
+	private int _type;
+	private int _sysMessageId;
+	private int _unk1;
+	private int _unk2;
+	private int _unk3;
+	private int _unk4;
+	private int _size;
+	private int _position;
+	private boolean _effect;
+	private String _text;
+	private int _time;
+
+	public ExShowScreenMessage (String text, int time)
+	{
+		_type = 1;
+		_sysMessageId = -1;
+		_unk1 = 0;
+		_unk2 = 0;
+		_unk3 = 0;
+		_unk4 = 0;
+		_position = 0x02;
+		_text = text;
+		_time = time;
+		_size = 0;
+		_effect = false;
+	}
+
+	public ExShowScreenMessage (int type, int messageId, int position, int unk1, int size, int unk2, int unk3,boolean showEffect, int time,int unk4, String text)
+	{
+		_type = type;
+		_sysMessageId = messageId;
+		_unk1 = unk1;
+		_unk2 = unk2;
+		_unk3 = unk3;
+		_unk4 = unk4;
+		_position = position;
+		_text = text;
+		_time = time;
+		_size = size;
+		_effect = showEffect;
+	}
+	
+	@Override
+	public String getType()
+	{
+		return "[s]FE:39 ExShowScreenMessage";
+	}
+
+	@Override
+	protected void writeImpl()
+	{
+		writeC(0xfe);
+		writeH(0x39);
+		writeD(_type); // 0 - system messages, 1 - your defined text
+		writeD(_sysMessageId); // system message id (_type must be 0 otherwise no effect)
+		writeD(_position); // message position
+		writeD(_unk1); // ?
+		writeD(_size); // font size 0 - normal, 1 - small
+		writeD(_unk2); // ?
+		writeD(_unk3); // ? 
+		writeD(_effect == true ? 1 : 0); // upper effect (0 - disabled, 1 enabled) - _position must be 2 (center) otherwise no effect
+		writeD(_time); // time
+		writeD(_unk4); // ?
+		writeS(_text); // your text (_type must be 1, otherwise no effect)
+	}
+}
\ No newline at end of file
Index: C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(revision 512)
+++ C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(working copy)
@@ -74,6 +74,8 @@
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.network.serverpackets.UserInfo;
import net.sf.l2j.gameserver.util.FloodProtector;
+import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
+
/**
  * Enter World Packet Handler<p>
  * <p>
@@ -328,6 +331,12 @@
			}
		}

+		if(!Config.SHOW_SCREEN_MESSAGE)
+		{
+		ExShowScreenMessage welcomemessage = new ExShowScreenMessage("Welcome to The L2DOT Project",10000); //10000 = 10 seconds 
+	     activeChar.sendPacket(welcomemessage);
+		}
+		
         if (Hero.getInstance().getHeroes() != null &&
                 Hero.getInstance().getHeroes().containsKey(activeChar.getObjectId()))
             activeChar.setHero(true);
Index: C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/config/l2dot.properties
===================================================================
--- C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/config/l2dot.properties	(revision 512)
+++ C:/Documents and Settings/l2/workspace/L2Dot_IL_GameServer/config/l2dot.properties	(working copy)
@@ -39,6 +39,9 @@
# Show Welcome.htm When a Player Enters Lineage 2 World?
ShowWelcomeHTML = False

+#Show ScreenMessage By Cobra For Interlude!
+ShowScreenMessage = False
+
# -------------------------------------------------------------
# Custom PVP/PK settings									  -
# -------------------------------------------------------------

-------------------------------------------------------------

 

 

Posted

AWESOME!!

 

and i was searchin' about how to do that..

 

really thanks mate ;)

 

btw, update your java mods list ;p

Posted

mmmmm start to share our good stuff? :)

 

ehehe i see one other post about this... and i see client modding .... ;P

 

So why to use client modding? :P

 

Yeah i know this is good staff //joke ;P

 

Anyway i hope i helped a little :]!

 

@Stef: Thanks :]! I will update it ^.^

 

 

Posted

You can also use the party command leader chat (the leader of more allied parties...cant remember the name).

Posted

You can also use the party command leader chat (the leader of more allied parties...cant remember the name).

Yup thats the name.

Something like:

CreatureSay cs = new CreatureSay(0, SystemChatChannelId.Chat_Commander, "PvP", "I have pwnt you!");

sendPacket(cs);

Btw Cobra don't share things like this, people should find them themselves :P

Guest
This topic is now closed to further replies.



  • Posts

    • Despite the overwhelming amount of expert testimony explaining why this project was fundamentally broken and apparently an insult to several generations of software engineering, the fucking thing continues to improve, and all it takes is copypasting Galagard's comments to ChatGPT as a prompt. I was going to dedicate three months to it, but unfortunately I have other things to do. ### Changelog - Fixed terrain boundaries and seamless heightmap edges. - Added native cylinder collision. - Improved water generation, height handling and missing asset support. - Fixed collapsed meshes, zero-scale actors and USX/UTX package lookup. - Fixed various parser issues. - Improved caching. **28% faster batch generation**, identical output. - Searchable errors, warnings and skipped items. - Maps/minute statistics and UI improvements. - The spinning ASCII donut remains fully operational. ### Testing Since some of our experts were particularly concerned about whether the generator could actually generate anything, I decided to test the entire Samurai client. **347 maps.** **347 L2J files.** **347 L2OFF files.** **347 pathnode files.** **1,041 successfully generated and validated files.** I'd also like to sincerely thank our dedicated community volunteers for continuing to provide free quality assurance. Your contributions have been invaluable. It's genuinely amazing how much useful feedback you can get from people who supposedly don't care about your software. Unfortunately, ChatGPT keeps fixing the problems you report, so please try finding some harder ones next time. And to those concerned about the future of software development, don't worry. I'm sure spending three months doing something that takes seven minutes will remain a highly marketable skill.   https://github.com/911reg/911reg-MapExtractor/releases/download/v0.9.0/911reg-MapExtractor-0.9.0-win64.zip   https://github.com/911reg/911reg-MapExtractor   Haters, eat your hearts out.
    • 🔥 End-of-October Deals: ChatGPT Plus, Cursor AI, Claude Pro, and Canva Pro subscriptions available at unbeatable rates!     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
    • Hello everyone, We remind you that before making a purchase, you can take our proxies for a 3-hour test. We also provide a 20% discount on your first purchase. Welcome.
  • 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..