Jump to content
Eternal Lands Official Forums
SunriseCoder

Elch - Eternal Lands Chat-only client

Recommended Posts

Hi all!

 

Let me introduce my new Chat-only client for Eternal Lands :) It has been written on C# for .NET 2.0

You can download it here: elch-0.0.1-alpha.zip or here: elch-0.0.1-alpha.zip

Just unpack and execute elch.exe in following dir.

 

Now it's only first alpha-version, but I think, I can publish it to test for more people.

 

Client will create 2 files - elch.ini - this file for save last login, server and password (if you want) and elch.log for write detailed log of server messages for debugging. If you don't read log - you can delete this file when it will have big size for free space...

 

I'm waiting for your advices and suggestions

 

For all questions you can contact me:

 

email: sunrisecoder@gmail.com

ICQ: 558-490-376

Jabber: rootest@jabber.ru

Skype: sunrisecoder

In game: SunriseCoder J&H

 

UPD. For radu's advice I want to publish developer version with sources.

You can download it here: elch-0.0.1-alpha-dev.zip and here: elch-0.0.1-alpha-dev.zip

 

UPD. I found (as I hope) more permanent storage for new version on Wuala.

Now I shared Elch folder there and I will put new versions >> HERE <<. I hope, it will works even when my computer is off, but if you will have some issues with downloading - please notify me :)

Edited by SunriseCoder

Share this post


Link to post
Share on other sites
20. No Illegal Clients.

When modifying the Eternal Lands client you must abide to the license given, and may not distribute copies of illegally made clients. All patches or unofficial clients must first be approved by an Eternal Lands owner (namely Entropy) before use.

 

Just a quick reminder that this can not be used with the main game server, only Test.

 

Also, Why /NET 2.0 when 3.5 and 4.0 are easily available?

Share this post


Link to post
Share on other sites
20. No Illegal Clients.

When modifying the Eternal Lands client you must abide to the license given, and may not distribute copies of illegally made clients. All patches or unofficial clients must first be approved by an Eternal Lands owner (namely Entropy) before use.

 

Just a quick reminder that this can not be used with the main game server, only Test.

 

Also, Why /NET 2.0 when 3.5 and 4.0 are easily available?

 

Thanks for remind, but I told with radu, everything ok :)

 

About dotnet 2.0 - I wanted to create it via Java, but I have not enough of knowledge for it, just started with C#...

UPD. If anybody know Java well and wrote any stuff for EL on Java - please PM me in game or in forum, may be we can solve my problems.

Edited by SunriseCoder

Share this post


Link to post
Share on other sites

It runs for me in Linux using Mono, but crashes often... do you want the terminal output from when it crashes? or not since it's not actually .NET i'm running it with, nor Winblows? ;p

Share this post


Link to post
Share on other sites

Hi all!

 

New version of Elch ready.

Added contact list and fixed fixed few bugs.

 

You can download binary+source version here here.

 

I tested client on test sever and I think, client works and I want to ask you about client test and approve.

 

Any suggestions welcome :)

 

UPD: Please test it on test server for avoid ban :) you can test PMs with bot Josi, just type:

 

/Josi hi

 

UPD2:

 

I saw a lot of views of this topic, but few replies only... If you have downloaded and tried client - please post here your opinion :) Thank you all.

Edited by SunriseCoder

Share this post


Link to post
Share on other sites

Ok

am testing right now the client

1st thing to be redone, create an handler that gives back the loginscreen if the wrong password is given I get the Message LoginError but if i cannot retry the login then how can i use it.

Second work on the refresh of the text window, right now i get quite often the image of the screen below in the window that does not change, a autorefresh every few seconds should do the trick

3rd make either the chat add the new messages on the top or the scoll list go to the button if it is not used manually

4th do not just add the buddy list but also a list for gm server messages and local chat

 

So this said its a nice programm hope you does not get discouraged in developing it

Share this post


Link to post
Share on other sites

1st thing to be redone, create an handler that gives back the loginscreen if the wrong password is given I get the Message LoginError but if i cannot retry the login then how can i use it.

Agree... but I should to rebuild program architecture for it...

Second work on the refresh of the text window, right now i get quite often the image of the screen below in the window that does not change, a autorefresh every few seconds should do the trick

Don't understand what problem, can you send me screenshot to sunrisecoder(dog)gmail(dot)com?

3rd make either the chat add the new messages on the top or the scoll list go to the button if it is not used manually

Under Windows XP auto scrolling works well, may be mono have some difference of it?

4th do not just add the buddy list but also a list for gm server messages and local chat

Good idea about channels, but now I'm thinking about how to realize it better and useful...

So this said its a nice programm hope you does not get discouraged in developing it

Why I should to get discouraged? I'm happy that somebody can help me for test it :) Thanks for testing :)

 

PS. I realized now read-only contact-list, but you can doubleclick to friend and his name will add to message field

also supports commands, which uses as RAW TEXT, such as #day, #gm, etc...

 

PPS. If you mistake a password or disconnected - you should to restart program...

Share this post


Link to post
Share on other sites

Hmm interresting now when i want to do the screenshot it works as it should, but another thing

set the colors to contrast colors as it is right now i have local chat whiteyellow on white barly readable also the color for pm is bad to be read, maybe you should set the background of the textwindow to black

Edited by vinoveritas

Share this post


Link to post
Share on other sites

Hmm interresting now when i want to do the screenshot it works as it should

Yeah, sometimes it happens when you want to catch a bug, bug is fly away :(

but another thing

set the colors to contrast colors as it is right now i have local chat whiteyellow on white barly readable also the color for pm is bad to be read, maybe you should set the background of the textwindow to black

Hm... It's a good question... I know about problem with colors, but I don't know how to better to solve it. I know, where I should to change colors, I don't know which colors better to use? :(

 

At first I tried to create it as common GUI-application under Windows/Linux, which will not have any difference with other WinAPI-applications. But if I will use black background - this program can be too visible than other application, and can get too much attention from other users (or boss at work)...

 

On the other hand I used support of original EL colors. They are nice, but may be change few of hard-readable colors to make more contrast relative to white? I saw only PM messages and local chat (and channels, such as #jc 2, etc) - what colors better to use for it?

 

If there is another colors, which hardy to read - please notify me :)

Share this post


Link to post
Share on other sites

Hi again :)

 

I tried to change hard-readable colors, and released fixed version. You can download it >> here <<.

 

You can also do some experiments with colors just changing RGB-parameters of colors in MainForm.cs in line 16-43 with array Color[] colors = { ... };

 

If you will find more beautyful and/or useful color (combination of RGB) - please write me, probably, I will realize it :)

Share this post


Link to post
Share on other sites

I would like to try it on my phone (Nokia N900). I have mono installed, but I never used C#/mono before, so how do you compile and run it on Linux?

Share this post


Link to post
Share on other sites

I heard, VinoVeritas translated it for Mono and run it and tested. I have not his contacts, but I will PM him right now for ask him how to do it.

 

UPD. Entropy, what is the screen resolution of your phone?

Edited by SunriseCoder

Share this post


Link to post
Share on other sites

I also would like to know how to compile with mono.

 

The provided binary does work with mono though, you just run it with

mono elch.exe

 

Without thinking I selected main server just before and logged in one of my chars (soz Radu if it's not allowed on main) and it immediately crashed upon login:

[korrode@legion bin]$ mono elch.exe

Unhandled Exception: System.ArgumentException: length
 at System.Array.Copy (System.Array sourceArray, Int32 sourceIndex, System.Array destinationArray, Int32 destinationIndex, Int32 length) [0x00000] in <filename unknown>:0 
 at elch.Operations.readMessage () [0x00000] in <filename unknown>:0 
 at elch.Operations.start () [0x00000] in <filename unknown>:0 
 at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0

 

However, I logged into the test server instead and it didn't crash, i'm logged into the test server with it now

http://www.paradoxcomputers.com.au/images/elch_linux-2.png

Share this post


Link to post
Share on other sites

Hmm.. is that an X86 binary, or is it .NET VM code?

 

Won't run on my phone :/

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Nokia-N900:/home/user/elc/elch-0.0.2-alpha-r1/bin# gcc

Share this post


Link to post
Share on other sites

Hmm.. is that an X86 binary, or is it .NET VM code?

I built solution under Win32 XP... but I thought it should to work under .NET CLR... But I never used mono and another platforms of smartphones and etc.

 

Korrode, thanks for screenshot, it looks very nice under Linux.

 

Holy shit, I got it to work on my phone!

Had to do a apt-get install libmono-winforms2.0-cil

 

Nice :) What can you say about?

Share this post


Link to post
Share on other sites

Ok, it also crashes on the main server, I get:

Unhandled Exception: System.ArgumentException: length

at System.Array.Copy (System.Array sourceArray, Int32 sourceIndex, System.Array destinationArray, Int32 destinationIndex, Int32 length) [0x00000] in <filename unknown>:0

at elch.Operations.readMessage () [0x00000] in <filename unknown>:0

at elch.Operations.start () [0x00000] in <filename unknown>:0

at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0

Share this post


Link to post
Share on other sites

My phone is 800x480. But the screen is only 3.5" so as you can imagine, it is hard to read. Can you add an option to make fonts bigger and maybe bold too?

Would also be nice to display the tab maps, so you can have some sort of idea on where you are. That's a bit of work, of course. And a trade window would be very very pro :)

Share this post


Link to post
Share on other sites

My phone is 800x480. But the screen is only 3.5" so as you can imagine, it is hard to read. Can you add an option to make fonts bigger and maybe bold too?

Ok, I will think how to realize it...

Would also be nice to display the tab maps, so you can have some sort of idea on where you are. That's a bit of work, of course. And a trade window would be very very pro :)

I didn't thought it about because I afraid it can break some rules about advantages, etc...

 

About 'how to know where am I?' - good idea, but is there any command to server, which return a appropriative message? (such as 'Copy Location' on EL client) If not - I will think about how to realize it using game protocol...

 

Trade window? Hm.. may be create new child form, but you can't see anybody who is around, and you can trade only if anybody with EL client will initiate trade first. I think, good idea is add any client-side command, which will be catch my 'sendMessage' handler and processing, for example '#accept_trade' or so... If you will want to initiate trade - you will need to get a list of people around (and may be will need to support moving char ability) - it can take one command else, for example #who_is_around and it can show a list or actors around (players only or all actors - may be you log off and after login some monster attack you....)

 

About support on mobile phone - Client will need to be changed, because not much pixels on horizontal. Need to hide contact-list and use hotkey for show it... Also all features, which can be realized on 1024x768 form need to realize on hotkeys using appropriative form for each feature.

Share this post


Link to post
Share on other sites

Don't worry about breaking rules, so long as you implement features existing in the normal client.

You can try to make a list with the players nearby and display them somewhere, then you can initiate trades and stuff.

Share this post


Link to post
Share on other sites
Would also be nice to display the tab maps, so you can have some sort of idea on where you are.

Tab maps are pretty large for a "light weight" chat program and imply more graphics support than just text. But if there was a #loc command (like a #date and #time), the equivalent of clicking on the compass, the server would tell you where you are.

 

And since bots can report their location, the is already the protocol for requesting the information from the server. Even if the client doesn't support #loc, Elch could.

 

And a trade window would be very very pro :)

The trade window would only be useful if you can click on someone to initiate a trade, which implies either a #trade <person> command of some kind, or a graphical interface (beyond the scope of a chat program). And again, a trade window would imply a level of support well beyond basic text.

 

Think of yourself as stuck in the console window. Any text command in the game, or that could be added, would all be usable.

 

And while probably not desirable for a variety of other reasons (like automation), the addition of a few additional text commands could make the game playable from a chat-style interface:

 

#goto x,y

#list_inventory

#use <inventory index>

#equip <inventory index>

#use <map item>

#harvest <map item>

#store <inventory index>,<number>

#get <storage item or index or item name>,<number>

 

And the list goes on. Of course even the most basic #goto command has been rejected in the past, so none of this will likely happen. But it could...

 

I'll add (in response to additional posts while I was typing) guard and trade bots can do all that sort of stuff (trading, moving about, etc). The server/client protocol is there. All that's required is to put add a text command to Elch to expose them to the user.

Edited by bkc56

Share this post


Link to post
Share on other sites

Ok, got a lot of ideas, thanks for them :)

I think, at first, I should to move all settings to config-file based on XML.

I think, I should to move colors, font style of chat, message and contact-list message, sizes of main form, chat/message/contact controls sizes (for example, for mobile phone may be good idea not use contact list for economy not enough pixes on horizontal.

 

Then I should to add support a clock - very useful thing sometimes

 

Then I will think about how to realize map/trade/moving features...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×