[Guide]Advanced SystemMsg-e.dat editing

06/30/2009 23:24 emir0n#1
Well bassicaly the the SystemMsg-e.dat file in the L2 system folder contains the system messages that are displayed when u play l2 like dmg done/taken,experience gained etc ... originaly the file doesnt have any color color just the standard dark-gray. Anyway ... by using simple tools u can make very interesting changes to it like changing the color of each message,making the mesasges been shown on screen and even add sounds to some messages ...

So when u have a clean system,all the files are crypted so they cant be edited by a normal txt editor or something similar ... but there are some nice tools for this like l2encdec,Heiser's System editor,L2FileEdit.
L2encdec is the basic decryption tool for the l2 system files.Its a com. soft w/o any gui.But its not neccessary to use it for the message editing if we have something faster and more confortable. All of them can be found [Only registered and activated users can see links. Click Here To Register...]

Heiser's System editor :

[Only registered and activated users can see links. Click Here To Register...]

This systemmsg editor is very easy and fast to use.Basically its a graphical extension for l2encoded ... When u have it alredy downloaded on your disk,just copy/paste the SystemMsg-e.dat file in to the heisers folder and run the program via "L2 modder.exe". If u click on File - Load Messages,the copied dat file will be decrypted and listed in the window.U can easily edit the message text and the color (u can choose any color u want). Its even possible to erase a message from the system so it wont be show (not recommed) like the "You have been playing for an extended period of time. Please consider taking a break" message. When u are done editing all the colors,just click File > Save > Messages. Heiser can even make templates (u can make more color variations) so u can make color variables and save/load them everytime u want to make a change. Afted u saved the edited messages,u can copy/paste the edited dat file back to your l2 system.


L2FileEdit :

[Only registered and activated users can see links. Click Here To Register...]

Very usefull tool (not just for message editing,but can be used to edit other system files as well).Also using the decrypt method from dstuff. Anywayz ... using this for mesage editing gets us another advantages. We can make changes for on screen text and adding sounds to each message (will add more in the future).

On screen messages :

Just like on the scree above,u can see the decrypted SystemMsg-e.dat file.Well lets take an example :

35 1 a,You hit for $s1 damage.\0 3 80 FF 80 FF a, a, 0 0 0 0 0 a, a,damage\0

35 1 a,You hit for $s1 damage.\0 3 80 FF 80 FF a, a, 2 0 3 1 0 a,$s1\0 a,damage\0

Well I dont know what everything is for,but u need to know that : 35 is the ID of the message. "a, *message* .\0 - is the format how the messages that are shown in the message window l2 are shown. the $s1 is the dmg variable got from the client. The next number is 3 - group type,but i dont rly know what its for ... The next 3 numbers/letter is the message RGB color code.U can edit this by hand or just using the Heisers message editor above.U can use this to get the rgb color core [Only registered and activated users can see links. Click Here To Register...]. The next letter "a" is for the sound add to each messages. The next one,dont know what is for :P .Ok now we have arived to the numbers that can enable and choose the position of the on-screen message. If u have there a bunch of zeros : 0 0 0 0 0 no message will be shown. The first number defines the position on the screen. Avaible are from 1-8 :

[Only registered and activated users can see links. Click Here To Register...]

The third and forth number indicate how long will the on-screen message be show till its fades away.U can freely experiment with it,but i dont rly recommend to set it higher then it is ...
The last "a" letter is the on-screen message.When its just ",a" that means no message will be shown. If u change it to "a,$s1\0" it will show the dmg u made to your target. For other variables in other messages just copy and paste them from the original message. All the on screen messages will be shown in the color that is used in the normal system message. The last letter is the type of the message but i think its not important what there really is ...


Well thats it for now ... i will add some more info when i will have more time for testing and L2 playing. If i have made any mistakes,plz report them so i can fix it.

Cheers
07/01/2009 10:53 Razor aka 2Fast#2
****** emir0n u know i love u so much !!! <3
07/09/2009 13:04 Nippum#3
I dont understand one thing


35 1 a,You hit for $s1 damage.\0 3 80 FF 80 FF a, a, 2 0 3 1 0 a,$s1\0 a,damage\0

For color i must edit

80 FF 80

or

FF 80 FF
07/09/2009 17:10 emir0n#4
80 FF 80 is the RGB color of that message

the next FF letters are for the rgba[3] but im not sure what that is,becouse all messages have it on FF and it doesnt change the color of the message .. but i can try what it does :)
07/12/2009 01:17 stirniux10#5
can you make video guide? plz :D
07/12/2009 16:19 emir0n#6
no,if u cant understand it from this,u wouldnt understand it from the video too and u would just copy the things that i would do and wouldnt do anything by your own so its a waste of time ... if u ahve questions,just ask
07/12/2009 17:05 ZoManX#7
Nice guide.
07/15/2009 16:57 Zanderico#8
I will post mor eingo later but u can add all this with l2utils with an easier interface imo
07/15/2009 18:07 Zanderico#9
wich version i need for hb 413?
07/17/2009 03:01 Zanderico#10
[Only registered and activated users can see links. Click Here To Register...]

with this program is way easier u dont need to edit the code, u can do it with an interface, the last version only works with ct1 and so on clients
07/22/2009 12:04 benik#11
"the last "a" letter is the on-screen message.When its just ",a" that means no message will be shown. If u change it to "a,$s1\0" it will show the dmg u made to your target. For other variables in other messages just copy and paste them from the original message. "

I did like this and only appears my name.
every hit my name is up in place of dmg.
a,$c1 has given $c2 damage of $s3.\0 3 80 FF 80 FF a, a, 2 0 3 1 0 a,$s3\0 a,damage\0


pls help
07/22/2009 13:38 benik#12
server dont accept line 35
im on line 2261
in l2edit. can u try make that work..if i write
a,$c1 has given $c2 damage of $s3\0 3 80 FF 80 FF a, a, 2 0 3 1 0 a,$s3\0 a,damage\0
first $s3 works but the second dont...appears my nick insted of dmg
07/23/2009 19:30 XxXMenghusXxX#13
Hi everyone

I need some help, what should i do to modify the file in order to make whatever is said in command or ally chanel pop up in the screen. I mean, i canīt find the line that modify this. Iīve seen it in several videos, but i canīt figure it out.

Does anybody know how to change this?

thx
07/26/2009 05:28 teerak#14
Please help me.

i can not open systemmsg-e.dat with Heiser's System editor. when load messages it have error as show below.

Unhandled exeception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue.If you click Quit, the application will close immediatly.

Could not find file 'D:\systemmsg_editor\dis-dex-systemmsg-e.dat'.

and in the detail

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: Could not find file 'D:\systemmsg_editor\dis-dec-systemmsg-e.dat'.
File name: 'D:\systemmsg_editor\dis-dec-systemmsg-e.dat'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path)
at System.IO.File.OpenText(String path)
at L2_modder.Form1.mnuLoadMessages_Click_1(Object sender, EventArgs e)
at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItem.MenuItemData.Execute ()
at System.Windows.Forms.Command.Invoke()
at System.Windows.Forms.Command.DispatchID(Int32 id)
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at System.Windows.Forms.ContainerControl.WndProc(Mess age& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4016 (NetFxQFE.050727-4000)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
L2 modder
Assembly Version: 1.0.2699.19244
Win32 Version: 1.0.2699.19244
CodeBase: file:///D:/systemmsg_editor/L2%20modder.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4016 (NetFxQFE.050727-4000)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4016 (NetFxQFE.050727-4000)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4016 (NetFxQFE.050727-4000)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.4016 (NetFxQFE.050727-4000)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4016 (NetFxQFE.050727-4000)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
How to fix this problem?
Thank you for advance.
08/03/2009 18:26 tangohitman#15
can you upload the one you made please?