MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[ALL]Escolhendo Servidor [Funcionado ]

+5
Thales12
hardsfree
Karlos
Lendário
Rio Absolut
9 participantes

Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Rio Absolut Qui 22 Out 2009, 11:54

Esse código é indicado para quem tem dois IPs diferentes em dois servidores e quer fazer com que o jogador escolha algum dos servidores para jogar.

Atenção: esse código não é de integração de servidores.

Dificuldade: 1/5

Crie um arquivo chamado servidores.ini e coloque o seguinte código lá:
Código:
Código:
[SERVER#]
Nome=
IP=
Porta=

Mude o "#" pelo número do servidor (exemplo: se o número acima for [SERVER3], esse será [SERVER4]. Comece pelo SERVER0 e coloque quantos bem entender).

Bom, vá ao VB6, crie um form chamado frmEServer e crie uma listbox chamada lstServer. Faça também dois botões, um chamado de cmdOk e o outro de cmdCancelar (acho que dá pra entender o que cada um vai fazer, só pelo nome Razz).

Bom, procure pelo Sub Main() e mude:
Código:
Código:
frmMainMenu.Visible = True


Para:
Código:
Código:
Call SetStatus("Checando o status dos servidores'...")
    frmEServer.Show


Adicione isso próximo ao topo do Sub Main():
Código:
Código:
If FileExist("servidores.ini") = False Then
        WriteINI "SERVER0", "Nome", "Server 0", App.Path & "\servidores.ini"
        WriteINI "SERVER0", "IP", "127.0.0.1", App.Path & "\servidores.ini"
        WriteINI "SERVER0", "Porta", "4000", App.Path & "\servidores.ini"
    End If


Vá ao frmEServer, na parte de código, e insira o seguinte código:
Código:
Código:
Option Explicit
Dim GAME_IP As String, GAME_PORT As Long

Private Sub cmdCancel_Click()
    Call GameDestroy
End Sub

Private Sub cmdOk_Click()
    If lstServers.ListCount <= 0 Then Exit Sub

    GAME_IP = ReadINI("SERVER" & lstServers.ListIndex, "IP", App.Path & "\servidores.ini")
    GAME_PORT = Val(ReadINI("SERVER" & lstServers.ListIndex, "PORTA", App.Path & "\servidores.ini"))
    Me.Caption = "Escolhedor de Servidores - Checando Status..."
    If CheckServerStatus = False Then
        Me.Caption = "Escolhedor de Servidores - Servidor Desligado!"
        cmdOk.Enabled = True
        Exit Sub
    End If
    cmdOk.Enabled = True
    Me.Caption = "Escolhedor de Servidores - Conectado!"
    frmMirage.Socket.Close
    frmMirage.Socket.RemoteHost = GAME_IP
    frmMirage.Socket.RemotePort = GAME_PORT
    frmMainMenu.Show
    Unload Me
End Sub

Private Sub Form_Load()
Dim FileName As String
Dim i As Long, c As Long
On Error Resume Next

    frmServerChooser.Visible = True

    FileName = App.Path & "\servidores.ini"
    i = 0
    c = 0
    CHECK_WAIT = False
    lstServers.Clear
 
    cmdOk.Enabled = False
    Me.Caption = "Escolhedor de Servidores - Checando os status dos servidores'..."
    Do Until c = 1
        DoEvents
        If CHECK_WAIT = False Then
            If ReadINI("SERVER" & i, "IP", FileName) <> "" And ReadINI("SERVER" & i, "PORTA", FileName) <> "" Then
                GAME_IP = ReadINI("SERVER" & i, "IP", FileName)
                GAME_PORT = Val(ReadINI("SERVER" & i, "PORTA", FileName))
                If CheckServerStatus = True Then
                    CHECK_WAIT = True
                    Call SendData("serverresults" & SEP_CHAR & i & SEP_CHAR & END_CHAR)
                Else
                    lstServers.AddItem ReadINI("SERVER" & i, "Name", FileName) & " - Desligado!"
                End If
                i = i + 1
            Else
                c = 1
            End If
        End If
    Loop
    cmdOk.Enabled = True
    Me.Caption = "Escolhedor de Servidores - Completo!"
End Sub

Function CheckServerStatus() As Boolean
    frmMirage.Socket.Close
    frmMirage.Socket.RemoteHost = GAME_IP
    frmMirage.Socket.RemotePort = GAME_PORT
 
    cmdOk.Enabled = False
    CheckServerStatus = False
 
    If ConnectToServer = True Then
        CheckServerStatus = True
    End If
End Function


Perto do topo do modGameLogic, adicione:
Código:
Código:
Public CHECK_WAIT As Boolean


No sub HandleData, em qualquer lugar (modClientTCP), adicione:
Código:
Código:
If LCase(Parse(0)) = "serverresults" Then
        frmServerChooser.lstServers.AddItem ReadINI("SERVER" & Val(Parse(1)), "Name", App.Path & "\servidores.ini") & " - Ligado! (" & Val(Parse(2)) & "/" & Val(Parse(3)) & ")"
        CHECK_WAIT = False
        Exit Sub
    End If


Finalmente vá ao menu e delete a label "Escolher IP" ;P.

~ Server-Side

Ache
Código:
Código:
' Parse sem estar online
If Not IsPlaying(index) Then
    Select Case LCase(Parse(0))


Abaixo, adicione:
Código:
Código:
Case "serverresults"
            Call SendDataTo(index, "serverresults" & SEP_CHAR & Val(Parse(1)) & SEP_CHAR & TotalOnlinePlayers & SEP_CHAR & MAX_PLAYERS & SEP_CHAR & END_CHAR)
            Exit Sub


Crie um novo módulo chamado modINI e coloque o seguinte código:
Código:

Código:
Option Explicit
Public Declare Function WritePrivateProfileString& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal AppName$, ByVal KeyName$, ByVal keydefault$, ByVal FileName$)
Public Declare Function GetPrivateProfileString& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal AppName$, ByVal KeyName$, ByVal keydefault$, ByVal ReturnedString$, ByVal RSSize&, ByVal FileName$)

Public Sub WriteINI(INISection As String, INIKey As String, INIValue As String, INIFile As String)
    Call WritePrivateProfileString(INISection, INIKey, INIValue, INIFile)
End Sub

Public Function ReadINI(INISection As String, INIKey As String, INIFile As String) As String
    Dim StringBuffer As String
    Dim StringBufferSize As Long
 
    StringBuffer = Space$(255)
    StringBufferSize = Len(StringBuffer)
 
    StringBufferSize = GetPrivateProfileString(INISection, INIKey, "", StringBuffer, StringBufferSize, INIFile)
 
    If StringBufferSize > 0 Then
        ReadINI = Left$(StringBuffer, StringBufferSize)
    Else
        ReadINI = ""
    End If
End Function


Creditos : Eu que desemvolvi o Progama , na MMODEV tem 1 parecido com esse nunca testei esse eu peguei de 1 amigo que encinou qualquer duvida poste !
Rio Absolut
Rio Absolut
Membro Vitalicio
Membro Vitalicio

Mensagens : 655

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Lendário Qui 22 Out 2009, 11:56

+1 de CRED pela colaboração Exclamation
Lendário
Lendário
Administrador Lendário
Administrador Lendário

Mensagens : 1958

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Karlos Dom 17 Jan 2010, 13:26

+1 de cred pela ajudaça. XD
Karlos
Karlos
Membro Veterano
Membro Veterano

Mensagens : 2851

http://www.talack.com.br

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por hardsfree Qua 09 Fev 2011, 05:22

Mt bom...
valew ai mais 1 cred.
avatar
hardsfree
Membro
Membro

Mensagens : 198

http://www.dbzaf.hd1.com.br/

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Thales12 Qua 09 Fev 2011, 07:42

Nossa, bom msm, vai ajudar mt gente +1creed
Thales12
Thales12
Membro Veterano
Membro Veterano

Mensagens : 1011

http://www.rdmgames.tk

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Rafael xD Qua 09 Fev 2011, 08:26

Parabens Mano, Grande Tutorial , +1 Cred.

@EDIT
Bom eu fui testar aqui ne.. kkkk e deu um errinho .-.

Alem de Precisar Adicionar o modINI no Cliente tambem como nao tinha dito se nao da erro tem que arruma mais esse errinho tambem.. ;*

[ALL]Escolhendo Servidor [Funcionado ] Errinho

Bom eu nao vou resolver por que ... Tenho outras coisas pra fazer [ALL]Escolhendo Servidor [Funcionado ] 332646
Rafael xD
Rafael xD
Novato
Novato

Mensagens : 31

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Lucas Roberto Qua 09 Fev 2011, 18:45

Parabens Mano, Grande Tutorial , +1 Cred.

@EDIT
Bom eu fui testar aqui ne.. kkkk e deu um errinho .-.

Alem de Precisar Adicionar o modINI no Cliente tambem como nao tinha dito se nao da erro tem que arruma mais esse errinho tambem.. ;*

achu que ta faltando umas form cara

olha o nome que esta dando erro

--

e revivendo topico

aff

"modINI"

uu rindo ate agora me desculpe

cara aquele erro nao tem nada aver com "modINI"
olha so esta faltando um form

Código:
frmServerChooser.Visible = True

frmServerChooser.Visible = True

frmServerChooser
as form
Lucas Roberto
Lucas Roberto
Membro Veterano
Membro Veterano

Mensagens : 1794

http://universogamesmmo.forumeiros.com/forum

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Rafael xD Qua 09 Fev 2011, 19:57

Lucas Roberto escreveu:
Parabens Mano, Grande Tutorial , +1 Cred.

@EDIT
Bom eu fui testar aqui ne.. kkkk e deu um errinho .-.

Alem de Precisar Adicionar o modINI no Cliente tambem como nao tinha dito se nao da erro tem que arruma mais esse errinho tambem.. ;*

achu que ta faltando umas form cara

olha o nome que esta dando erro

--

e revivendo topico

aff

"modINI"

uu rindo ate agora me desculpe

cara aquele erro nao tem nada aver com "modINI"
olha so esta faltando um form

Código:
frmServerChooser.Visible = True

frmServerChooser.Visible = True

frmServerChooser
as form

sim mano, so que eu nao to falando que o modINI tem aver com o suposto erro , eu estou dizendo que se eu nao adiciono ele no cliente ele da outro erro entendeu? ele da um erro com o servidores.ini , ai eu ja dei uma dica pra adicionar ele ;D
e esse frmserverchooser , deve ser do eclipse... e isso o que eu to tentando dizer e.e

nao confunda as coisas ,e leia direito u.u
Rafael xD
Rafael xD
Novato
Novato

Mensagens : 31

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Megagengar By guii Dom 08 Abr 2012, 19:56

No futuro eu irei rir disso T.T
Megagengar By guii
Megagengar By guii
Novato
Novato

Mensagens : 11

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por hornet600 Dom 06 maio 2012, 06:54

O tutorial está funcionando sem erros? e tenho uma duvida pode escolher entre 2 servidores tipo no client1 e client2 ou um só client e tambem cade servidor ter mapas diferente?
hornet600
hornet600
Novato
Novato

Mensagens : 31

Ir para o topo Ir para baixo

[ALL]Escolhendo Servidor [Funcionado ] Empty Re: [ALL]Escolhendo Servidor [Funcionado ]

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos