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

    • Hi, great work! Are there any bugs? And will it work with a high five?
    • For others that would like to understand in more details:   The login server also uses a protocol (sent by the server to the client in the very first packet). For instance, the C4 client (the one I'm developing my emulator for) expects the protocol number `50721` (or `0xc621`) which works as follow (from what I've gathered): Preamble: L2 packets are divided into two parts: size and payload; As mentioned, every packet starts with two bytes containing the whole packet size (thus including those two bytes, e.g. a packet of size 15 will have the number `15` written onto its first two bytes and a following payload of 13 bytes); For login server, first byte of the payload is the opcode (game server must deal with variable-sized opcodes); Next bytes are the packet content; Before sending the packet, its buffer size (minus the initial two bytes) is padded to 8 bytes (required by upcoming Blowfish encoding); A checksum of the packet is appended at the end, then the payload is again padded to 8 bytes; If the opcode is not `0` (also written as `0x00`), then the payload is encoded by Blowfish; Packet is sent over the network. You can have a look at my implementation (in C++) here (do note I'm assuming little-endian).   In this protocol, the auth packet (`0x00`) sent back by the client is RSA encrypted using the RSA modulus sent in the first server packet, inserted right after the protocol number.  
    • Hello guys I wanna buy some  Lessons for an L2J Developer
    • Let me give you something for inspiration and get you addicted to bot AI     And a siege 😛     What I have notice helps a lot the LLM to act real, is to give it a real-persons background. So for each LLM in the context beggining, besides the L2 facts, give it a real-life back story "You are a 67 years old retired nurse who plays Lineage 2 while her husband reads his newspaper, you are calm, collected but get mad if insulted". But that makes for a creative bot but its repetitive. So what you can also do, is pick random 20 news sites and for each bot every 2-3 days, initialize a context that is affected by the "news" the bot reads in the "real world".  So for example there's Iran - US war ok ? You take the news, put it in an LLM and ask it, extract the "abstract feelings" that this news piece invokes into you without mentioning anything related to the news. Then you take the result and inject it to the bots LLM prompt after its backstory.  This leads to some VERY human-like behavior from bots. 
  • 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..