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!

How to Create a Server?

Lagi

Wanderer
Английски не знаю может кто так подскажет? Такая же проблема в DataPath вписываю эту строку
private static string CustomPath = @"C:\Program Files (x86)\UO3d\3D";
*/
private static string CustomPath = @"C:\Program Files (x86)\UO3d\3D";
и всё крахом идёт сервер пытается найти mul файлы но в 3д клиенте их нету... Клиент взят с TheAbyss v. 4.0.31.0 сервер стоит RunUO2.3r987_Full вот такой.
Помогите настроить.

Английски I do not know who can so will prompt? The same problem in DataPath I enter this line
private static string CustomPath = "C:\Program Files (x86) \UO3d\3D";
*/
private static string CustomPath = "C:\Program Files (x86) \UO3d\3D";
And all crash goes the server tries to find mul files but in 3д the client they are not present... The Client is taken with v. 4.0.31.0 the server there is RunUO2.3r987_Full here a such.
Help to adjust.

I will add! What come on the server from this client I can BUT referring to client ML in DataPath
This unique problem I fail under the earth and some NPS too fall downwards...
At PremiumSpawnere all NPS stand normally and I do not fall under the earth but it is necessary to bowl off as such nonsense occurs...

Добавлю ! Что зайти на сервер с этого клиента я могу НО ссылаясь на клиент ML в DataPath
Единственная проблема эта проваливаюсь под землю и некоторые NPS тоже падают вниз...
При PremiumSpawnere все NPS стоят нормально и я не падаю под землю но стоит только выйти из игры как такая ерунда происходит...
 

Bout50Bills

Wanderer
Hello all,
This is my first time joining a forum, so I hope I'm not "hijacking" this thread, but it seemed dead (and I wasn't sure how to start my own). I played UO in 2000. I'd like to play it again, by myself, or perhaps with some friends, much like our Russian friends above me. Can I set up UO as a single player game, and just roam around the world enjoying all the areas that I remember? I have Razor, and have downloaded RunUO. I would like to play during the T2A era. I tried to play on the T2A server, but didn't enjoy the need to macro to keep up with the surrounding players and not be PKed constantly.

Is there anyone willing to help me set this up? Specifically, I am unsure how to get the specific era I'm looking for, since the RunUO files seem to include later expansions. Past that, I'm sure I would need guidance on other things. I am not tech savvy, but I have a brain and I learn quick.

Thanks for your time.
 
Well, if you download nerun's distro, you should be able to spawn the world in the era you want, with no problems, and no need for any editing to the server. You can play by yourself fairly easily, just start it up, and log in using the server address "127.0.0.1" I'm usually too busy to do much, but if you have basic questions, you can always message me on here. I'll always offer to help, and if i can, I will. It may take me a while sometimes
 

Bout50Bills

Wanderer
Thanks for the help! I've followed these instructions for Nerun's distro:

1) Unrar "NerunsDistro-rx.rar".

2) You will se two folders inside: "Data" and "Scripts". Plus some files
(including this tutiorial, changes history, benchmark tests, SpawnsID of
all maps etc). Read the files for more usefull information if you want.

3) Cut the folders "Data" and "Scripts".

4) Go to "c:\RunUO 2.2\" (or where you install it) and paste it there. Windows
Explorer will say that those folders already exists, and will ask if you
want to overwrite, click "yes to all".

I have now come upon:

To access the Main Menu wrote "[spawner" (without quotes) in the
command prompt. There are a lot of options in the menu, in two pages. These
options are self-explained:

But, when I start "runUO" and the command prompt appears, I receive this message:

World: Loading...tiledata.mul was not found
Make sure your scripts/misc/datapath.cs is properly configured
After pressing return an exception will be thrown on the server will terminate
An error was encountered while loading a saved object
—Type: Servers.engines.bulkorders.largesmithBOD
—Serial: 0x4000004E

I've looked this up, and it seems like I'm supposed to change the "private static string CustomPath" in the datapath.cs file, but I'm unsure of what to change it to. There is some clarifying info in that file, but I don't know what to make of it. What do you think?

Thanks again for your time!
 

Bout50Bills

Wanderer
Ok, I've broken through that barrier. I think I'm developing a rudimentary understanding here. I downloaded a client, and set the "private static string CustomPath" to the location of the client. Now the command prompt asks me to create an account username and password. After this, it sits there "listening" to a couple of addresses. The end :)

I downloaded the T2A client. Was this correct, or does it matter? I'll post my serverlist.cs for reference. I tried to change "public static readonly string Address" to my IP. I also tried changing "public static readonly bool AutoDetect" to false, as suggested in the text. I think I'm actually stuck this time. Thanks in advance.

using System;
using System.IO;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using Server;
using Server.Network;

namespace Server.Misc
{
public class ServerList
{
/*
* The default setting for Address, a value of 'null', will use your local IP address. If all of your local IP addresses
* are private network addresses and AutoDetect is 'true' then RunUO will attempt to discover your public IP address
* for you automatically.
*
* If you do not plan on allowing clients outside of your LAN to connect, you can set AutoDetect to 'false' and leave
* Address set to 'null'.
*
* If your public IP address cannot be determined, you must change the value of Address to your public IP address
* manually to allow clients outside of your LAN to connect to your server. Address can be either an IP address or
* a hostname that will be resolved when RunUO starts.
*
* If you want players outside your LAN to be able to connect to your server and you are behind a router, you must also
* forward TCP port 2593 to your private IP address. The procedure for doing this varies by manufacturer but generally
* involves configuration of the router through your web browser.
*
* ServerList will direct connecting clients depending on both the address they are connecting from and the address and
* port they are connecting to. If it is determined that both ends of a connection are private IP addresses, ServerList
* will direct the client to the local private IP address. If a client is connecting to a local public IP address, they
* will be directed to whichever address and port they initially connected to. This allows multihomed servers to function
* properly and fully supports listening on multiple ports. If a client with a public IP address is connecting to a
* locally private address, the server will direct the client to either the AutoDetected IP address or the manually entered
* IP address or hostname, whichever is applicable. Loopback clients will be directed to loopback.
*
* If you would like to listen on additional ports (i.e. 22, 23, 80, for clients behind highly restrictive egress
* firewalls) or specific IP adddresses you can do so by modifying the file SocketOptions.cs found in this directory.
*/

public static readonly string Address = null;
public static readonly string ServerName = "RunUO TC";

public static readonly bool AutoDetect = true;

public static void Initialize()
{
if ( Address == null ) {
if ( AutoDetect )
AutoDetection();
}
else {
Resolve( Address, out m_PublicAddress );
}

EventSink.ServerList += new ServerListEventHandler( EventSink_ServerList );
}

private static IPAddress m_PublicAddress;

private static void EventSink_ServerList( ServerListEventArgs e )
{
try
{
NetState ns = e.State;
Socket s = ns.Socket;

IPEndPoint ipep = (IPEndPoint)s.LocalEndPoint;

IPAddress localAddress = ipep.Address;
int localPort = ipep.Port;

if ( IsPrivateNetwork( localAddress ) ) {
ipep = (IPEndPoint)s.RemoteEndPoint;
if ( !IsPrivateNetwork( ipep.Address ) && m_PublicAddress != null )
localAddress = m_PublicAddress;
}

e.AddServer( ServerName, new IPEndPoint( localAddress, localPort ) );
}
catch
{
e.Rejected = true;
}
}

private static void AutoDetection()
{
if ( !HasPublicIPAddress() ) {
Console.Write( "ServerList: Auto-detecting public IP address..." );
m_PublicAddress = FindPublicAddress();

if ( m_PublicAddress != null )
Console.WriteLine( "done ({0})", m_PublicAddress.ToString() );
else
Console.WriteLine( "failed" );
}
}

private static void Resolve( string addr, out IPAddress outValue )
{
if ( IPAddress.TryParse( addr, out outValue ) )
return;

try {
IPHostEntry iphe = Dns.GetHostEntry( addr );

if ( iphe.AddressList.Length > 0 )
outValue = iphe.AddressList[iphe.AddressList.Length - 1];
}
catch {
}
}

private static bool HasPublicIPAddress()
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();

foreach ( NetworkInterface adapter in adapters ) {
IPInterfaceProperties properties = adapter.GetIPProperties();

foreach ( IPAddressInformation unicast in properties.UnicastAddresses ) {
IPAddress ip = unicast.Address;

if ( !IPAddress.IsLoopback( ip ) && ip.AddressFamily != AddressFamily.InterNetworkV6 && !IsPrivateNetwork( ip ) )
return true;
}
}

return false;


/*
IPHostEntry iphe = Dns.GetHostEntry( Dns.GetHostName() );

IPAddress[] ips = iphe.AddressList;

for ( int i = 0; i < ips.Length; ++i )
{
if ( ips.AddressFamily != AddressFamily.InterNetworkV6 && !IsPrivateNetwork( ips ) )
return true;
}

return false;
*/
}

private static bool IsPrivateNetwork( IPAddress ip )
{
// 10.0.0.0/8
// 172.16.0.0/12
// 192.168.0.0/16

if ( ip.AddressFamily == AddressFamily.InterNetworkV6 )
return false;

if ( Utility.IPMatch( "192.168.*", ip ) )
return true;
else if ( Utility.IPMatch( "10.*", ip ) )
return true;
else if ( Utility.IPMatch( "172.16-31.*", ip ) )
return true;
else
return false;
}

private static IPAddress FindPublicAddress()
{
try {
WebRequest req = HttpWebRequest.Create( "http://www.runuo.com/ip.php" );
req.Timeout = 15000;

WebResponse res = req.GetResponse();

Stream s = res.GetResponseStream();

StreamReader sr = new StreamReader( s );

IPAddress ip = IPAddress.Parse( sr.ReadLine() );

sr.Close();
s.Close();
res.Close();

return ip;
} catch {
return null;
}
}
}
}
 
Well, after it says listening, it's done. You're ready to log in. At that point, start razor, and log in using 127.0.0.1, which is your localhost. It will look for the server on your machine.
 
Top