Print Page | Close Window

Multiple Server Code

Printed From: Mirage Source
Category: Tutorials
Forum Name: Temporary Archive (Read Only)
Forum Discription: Temporary 3.0.3 archive tutorials, will be deleted when converted.
URL: http://ms.shannaracorp.com/backup-forums/forum_posts.asp?TID=201
Printed Date: 20 December 2006 at 5:53pm
Software Version: Web Wiz Forums 8.01 - http://www.webwizforums.com


Topic: Multiple Server Code
Posted By: Sync
Subject: Multiple Server Code
Date Posted: 11 February 2006 at 3:28pm
Hey everyone ^_^ 3rd tut now ;) only my engine and my konfuze patch have this feature [I think], but I wnat you guys to have it , so be happy lol ^.^

What this feature does : This will let you choose to connect to 3 different servers, with 3 different IP Addresses...kinda like mirrors or worlds ;)
------------
:: CLIENT SIDE::

Ok...make a form called frmServerChooser and make it look somewhat like this, make sure the form name and the command names are proper ;)



Now, open up the modGameLogic [Client] and find Sub Main() and look at the end!

Replace this code :

        Call TcpInit
        frmMainMenu.Visible = True
        frmSendGetData.Visible = False


With this:


Dim Filename As String
Filename = App.Path + "\MultiServer.ini"
    ServerOnOff = ReadINI("MULTISERVER", "MULTISERVER", Filename)
    If ServerOnOff = "Off" Then  'Check if Multi-Server is enabled
        Call TcpInit
        frmMainMenu.Visible = True
        frmSendGetData.Visible = False
    Else
        frmServerChooser.Show
    End If


Now make a module called ModServerOptions and put this text in it :
'Server Variables
Public ServerOnOff As String
Public ServerUsed As Integer
'Server1
Public Server1Name As String
Public Server1IP As String
Public Server1Port As String
'Server2
Public Server2Name As String
Public Server2IP As String
Public Server2Port As String
'Server3
Public Server3Name As String
Public Server3IP As String
Public Server3Port As String


Good! Now in the same folder as your client, make a file called MultiServer.ini with the following text in it :

[MULTISERVER]
'Type either on or off for the multi server option
'Also, if you dont want a server to appear, erase the information
'for it ;)
MULTISERVER=ON
[SERVER1]
SERVER1NAME=Server 1 Name
SERVER1IP=Server 1 Ip
SERVER1PORT=Server 1 Port
[SERVER2]
SERVER2NAME=Server 2 Name
SERVER2IP=Server 2 IP
SERVER2PORT=Server 2 Port
[SERVER3]
SERVER3NAME=Server 3 Name
SERVER3IP=Server 3 IP
SERVER3PORT=Server 3 Port


Good!Now go to frmServerChooser and replace all the code with this :

Private Sub cmdS1_Click()
ServerUsed = 1
        Call TcpInit          ;       'Initiliaze original settings
        frmServerChooser.Visible = False
        frmMainMenu.Visible = True
        frmSendGetData.Visible = False
End Sub

Private Sub cmdS2_Click()
ServerUsed = 2
        Call TcpInit          ;       'Initiliaze original settings
        frmServerChooser.Visible = False
        frmMainMenu.Visible = True
        frmSendGetData.Visible = False
End Sub

Private Sub cmdS3_Click()
ServerUsed = 3
        Call TcpInit          ;       'Initiliaze original settings
        frmServerChooser.Visible = False
        frmMainMenu.Visible = True
        frmSendGetData.Visible = False
End Sub

Private Sub Form_Load()
Dim GameName As String
Dim Filename As String
Filename = App.Path & "\config.ini"
Dim Serverloc As String
Serverloc = App.Path & "\MultiServer.ini"
If FileExist("config.ini") Then
GameName = ReadINI("GAMECONFIG", "GAME_NAME", Filename)
Else
GameName = ""
Call WriteINI("GAMECONFIG", "GAME_NAME", GameName, (App.Path & "\config.ini"))
End If
     frmServerChooser.Caption = GameName & " - Please Pick A Server"
'Server1
     Server1Name = ReadINI("Server1", "Server1Name", Serverloc)
     Server1IP = ReadINI("Server1", "Server1IP", Serverloc)
     Server1Port = ReadINI("Server1", "Server1Port", Serverloc)
'Server2
     Server2Name = ReadINI("Server2", "Server2Name", Serverloc)
     Server2IP = ReadINI("Server2", "Server2IP", Serverloc)
     Server2Port = ReadINI("Server2", "Server2Port", Serverloc)
'Server3
     Server3Name = ReadINI("Server3", "Server3Name", Serverloc)
     Server3IP = ReadINI("Server3", "Server3IP", Serverloc)
     Server3Port = ReadINI("Server3", "Server3Port", Serverloc)
    
If Server1IP <> "" Then
    cmdS1.Caption = Server1Name
Else
    cmdS1.Caption = "Server Disabled"
    cmdS1.Enabled = False
End If
If Server2IP <> "" Then
    cmdS2.Caption = Server2Name
Else
    cmdS2.Caption = "Server Disabled"
    cmdS2.Enabled = False
End If
If Server3IP <> "" Then
    cmdS3.Caption = Server3Name
Else
    cmdS3.Caption = "Server Disabled"
    cmdS3.Enabled = False
End If
Beep
frmServerChooser.Show
End Sub


Now for the last thing, go to modClientTCp, and find TCPInit, and replace :

SEP_CHAR = Chr(0)
    END_CHAR = Chr(237)
    PlayerBuffer = ""
   
    Dim Filename As String
    Filename = App.Path & "\config.ini"

    frmMirage.Socket.RemoteHost = ReadINI("IPCONFIG", "IP", Filename)
    frmMirage.Socket.RemotePort = Val(ReadINI("IPCONFIG", "PORT", FileName))


with the following code:

SEP_CHAR = Chr(0)
END_CHAR = Chr(237)
PlayerBuffer = ""

Dim IP As String
Dim Port As String
Dim Filename As String
Dim ServerName As String
Filename = App.Path & "\config.ini"
ServerName = App.Path & "\MultiServer.ini"
If ServerOnOff = "Off" Then
    If FileExist("config.ini") Then
        IP = ReadINI("IPCONFIG", "IP", Filename)
        Port = ReadINI("IPCONFIG", "PORT", Filename)
    Else
        IP = "0.0.0.0"
        Port = 0
        Call WriteINI("IPCONFIG", "IP", IP, (App.Path & "\config.ini"))
        Call WriteINI("IPCONFIG", "PORT", Port, (App.Path & "\config.ini"))
    End If
ElseIf ServerUsed = 1 Then
        IP = ReadINI("SERVER1", "SERVER1IP", ServerName)
        Port = ReadINI("SERVER1", "SERVER1PORT", ServerName)
ElseIf ServerUsed = 2 Then
        IP = ReadINI("SERVER2", "SERVER2IP", ServerName)
        Port = ReadINI("SERVER2", "SERVER2PORT", ServerName)
ElseIf ServerUsed = 3 Then
        IP = ReadINI("SERVER3", "SERVER3IP", ServerName)
        Port = ReadINI("SERVER3", "SERVER3PORT", ServerName)
End If


and you are done! ^_^ Hope you enjoyed the tut. If you have any questions or comments, please post them here!
~JokeOfWeek



Print Page | Close Window

Bulletin Board Software by Web Wiz Forums version 8.01 - http://www.webwizforums.com
Copyright ©2001-2006 Web Wiz Guide - http://www.webwizguide.info