Go Back   RunUO - Ultima Online Emulation > RunUO > Script Support

Script Support Get support for modifying RunUO Scripts, or writing your own!

Reply
 
Thread Tools Display Modes
Old 05-19-2008, 03:34 PM   #1 (permalink)
Newbie
 
Shaun.Lehal's Avatar
 
Join Date: May 2008
Age: 18
Posts: 16
Default I dont get it =S

So I downloaded RunUO and I change the server name and the ip address to mine but when I run RunUO it says error occurred line 40 which is my server name I don't know why
Shaun.Lehal is offline   Reply With Quote
Old 05-19-2008, 04:23 PM   #2 (permalink)
Forum Novice
 
Galdar's Avatar
 
Join Date: May 2006
Age: 45
Posts: 117
Send a message via ICQ to Galdar Send a message via AIM to Galdar Send a message via MSN to Galdar Send a message via Yahoo to Galdar
Default

Please post a picture of the scipt so we can see your suntax. it may just be a typo error.
__________________
--- Sometimes I feel like I'm as confused as a $2 hooker with a $50 bill
Galdar is offline   Reply With Quote
Old 05-19-2008, 06:48 PM   #3 (permalink)
Newbie
 
Shaun.Lehal's Avatar
 
Join Date: May 2008
Age: 18
Posts: 16
Default

using System;
using System.IO;
using System.Net;
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 = 192.168.1.100;
public static readonly string ServerName = Renaissance;

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()
{
IPHostEntry iphe = Dns.GetHostEntry( Dns.GetHostName() );

IPAddress[] ips = iphe.AddressList;

for ( int i = 0; i < ips.Length; ++i )
if ( !IsPrivateNetwork( ips[i] ) )
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 ( 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;
}
}
}
}
Shaun.Lehal is offline   Reply With Quote
Old 05-19-2008, 08:11 PM   #4 (permalink)
Forum Expert
 
Packer898's Avatar
 
Join Date: Dec 2004
Location: Tulsa, Oklahoma
Age: 35
Posts: 2,378
Send a message via ICQ to Packer898 Send a message via MSN to Packer898
Default

Hello,

You need to add quotations around both the ip address and server name fields. See below.

Code:
public static readonly string Address = "192.168.1.100";
public static readonly string ServerName = "Renaissance";
p.s. In the future please encase you files in code tags like so. [c0de] <Insert Code Here> [/c0de] tags. The zero's should be o's though. =)-
__________________
"We sometimes congratulate ourselves at the moment of waking from a troubled dream; it may be so the moment after death."

~Nathaniel Hawthorne
Packer898 is offline   Reply With Quote
Old 05-21-2008, 07:46 AM   #5 (permalink)
Forum Expert
 
Liacs's Avatar
 
Join Date: Mar 2004
Location: Belgium / Germany
Age: 31
Posts: 1,036
Send a message via MSN to Liacs
Default

Please make the titles of your threads a bit more understandable. "I don't get this" doesn't say much about your problem

Lia
__________________
;)My C# Bookshelf (carpented by Soultaker);)

BTW: Please ask questions in the adequat forum and not on a private message! Otherwise nobody can learn from it!
Liacs is offline   Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5