RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Absolutely new in Linux

nerun

Sorceror
Hi all,

I am absolutely new (not so really) in Linux here. I had formated my PC and installed Debian 7.1 (wine 1.7.1 and mono-complete, default for Debian 7.1). I am trying to play games, but not so many luck.

Some questions:

1. When compiling Server, i read somewhere around that:

For Framework 2.0 i should use:
Code:
gcms -optimize -unsafe -d:MONO -out:RunUO-Framework2.exe -win32icon:Server/runuo.ico -recurse:Server/*.cs

And config file:
Code:
echo "<configuration>" >> RunUO-Framework2.exe.config
echo "    <dllmap dll=\"libz\" target=\"libz.so.1.2.3.4\"/>" >> RunUO-Framework2.exe.config
echo "</configuration>" >> RunUO-Framework2.exe.config

It will generate a RunUO-Framework2.exe and a RunUO-Framework2.exe.config in RunUO folder.

For Framework 4.0 i should use:
Code:
dmcs -optimize -unsafe -d:MONO -out:RunUO-Framework4.exe -win32icon:Server/runuo.ico -recurse:Server/*.cs

And config file:
Code:
echo "<configuration>" >> RunUO-Framework4.exe.config
echo "    <dllmap dll=\"libz\" target=\"libz.so.1.2.3.4\"/>" >> RunUO-Framework4.exe.config
echo "</configuration>" >> RunUO-Framework4.exe.config

It will generate a RunUO-Framework4.exe and a RunUO-Framework4.exe.config in RunUO folder.

BUT, some sites talk that i should use libz.so.1.2.3.4 in config file, but others talk about libz.so.1.2.5. Which of them i should use, and which are the differences?

2. Install Ultima Online is easy.

I never install, i just use a full copy of UO installation and it works.
Code:
wine client.exe

3. AssistUO

Here is my big problem. How to install it properly? Can someone explain it to me? I tried, but it crashes server when connect: "Creating character..." then crash.

I need a connection tool because encryptation should be removed, and AssistUO is a great tool.

PS.: I MADE THIS SCRIPT BELLOW TO SIMPLIFY COMPILATION. It verify if Mono is installed or not. You can select compile for Framework 2.0 or 4.0.
 

Attachments

  • ServerCompiler-Linux.sh.zip
    929 bytes · Views: 3

Soteric

Knight
There is no difference between "-out:RunUO-Framework2.exe" and "-out:RunUO-Framework4.exe", you just point the name of the output file. As for libz I don't think there are significance differences between them. Find the one your system has by "locate libz" command and use it.
 

fwiffo

Sorceror
Also remember to FIX the multitextwriter in Main.cs, on Server, the FileLogger is a bit buggy under linux and could lead to shared violations when writing from async threads (network, myrunuo, xmlspawner.xmlfind, etc)

30 clients are sufficient to trick server crash and lead to file sharing violation in write

below a little example:

in Main.cs below Slice and above the Core class:

Code:
    public delegate void Slice();
 
#if MONO
    internal class PrefixedWriter : TextWriter
    {
        private TextWriter originalOut;
 
        public PrefixedWriter()
        {
            originalOut = Console.Out;
        }
 
        public override Encoding Encoding
        {
            get { return System.Text.Encoding.UTF8; }
        }
 
        public override void WriteLine(string message)
        {
            originalOut.WriteLine(String.Format("[{0}] {1}", DateTime.Now.ToString("MMMM dd HH:mm:ss.f"), message));
        }
 
        public override void Write(string message)
        {
            originalOut.Write(String.Format("[{0}] {1}", DateTime.Now.ToString("MMMM dd HH:mm:ss.f"), message));
        }
    }
#endif
 
    public static class Core
    {

then, in the part where you have the FileLogger declartion you have to put this:

Code:
#if !MONO
if( m_Service )
                {
                    if( !Directory.Exists( "Logs" ) )
                        Directory.CreateDirectory( "Logs" );
 
                    Console.SetOut( m_MultiConOut = new MultiTextWriter( new FileLogger( "Logs/Console.log" ) ) );
                }
                else
                {
                    Console.SetOut( m_MultiConOut = new MultiTextWriter( Console.Out ) );
                }
#else
                    Console.SetOut( m_MultiConOut = new MultiTextWriter( new PrefixedWriter() ) );
#endif

then if you want to log the output of the Console to a file, you can do that with:

mono RunUO.exe -flag -otherflag >> Logs/ConsoleOut.log 2>&1
 

fwiffo

Sorceror
I think that this advancement would be great, but nowadays almost all shards use custom logging, as I have done, console logging is only a little part, of what is already present in RUNUO, other logfiles are needed, and XML ones are the best choise if you have a good parser to see them pretty format in later time.

Also crude TXT are good, but less pretty :)
 

fwiffo

Sorceror
Anyway, just to put some beef inside the topic and to go slightly OT, a posix "FORK" would be great under mono in RUNUO, just wonder why, with that you could do a SAVE without stopping the original process, as actual runuo does. :)
 
Top