Gå til innhold

HL/CS protokollen


Anbefalte innlegg

Hei

Jeg har et spørsmål her:

 

Hvordan man får informasjon ut av en HL server ved å sende kommandoer til den via UDP eller evt. TCP

 

Hvordan jeg kan hente info om antall frags, bane, antall spillere, osv.

 

 

 

 

 

Tusen takk for all hjelp

Endret av Neverio
Lenke til kommentar
Videoannonse
Annonse


   //**************************************
   //     
   // Name: Half-Life RCon Class
   // Description:This Class is rcon protoc
   //     oll implemantation.
   It allows u to send commands to a hl based gameserver without any knowledge of the rcon protcoll or udp sockets. code is commented.
   And dont forget to rate this code :-)
   // By: Holger Kaslowitz
   //
   //This code is copyrighted and has    // limited warranties.Please see http://
   //     www.Planet-Source-Code.com/vb/scripts/Sh
   //     owCode.asp?txtCodeId=2384&lngWId=10    //for details.    //**************************************
   //     
   
   Public Class HLrCon
   #Region "Various Variables"
   Dim UdpSender As Net.Sockets.UdpClient
   Dim UdpReceiver As Net.Sockets.UdpClient
   Dim RconId As UInt32
   Dim Passwort As String
   Dim UniqueIdentifier As String = "cdf0c103e995bbd63cb3050a96531ec7"
   Dim Anfang As Byte() = {255, 255, 255, 255}
   Dim StringConverter As New Text.ASCIIEncoding
   Dim uintConverter As New System.ComponentModel.UInt32Converter
   #End Region
   Sub New(ByVal Host As String, ByVal Port As Int32, ByVal Password As String)
   Dim HelloMessage As Byte()
   Dim ReceiveBuffer As Byte()
   Dim Temp As New ArrayList
   'Adding the 4 255
   Temp.AddRange(Anfang)
   'Creating a new Socket
   UdpSender = New Net.Sockets.UdpClient(Host, Port)
   'Adding Challenge Message
   Temp.AddRange(StringConverter.GetBytes("challenge rcon" & Chr(10)))
   'Converting to ByteArray for sending
   HelloMessage = Temp.ToArray(GetType(Byte))
   'Sending...;-)
   UdpSender.Send(HelloMessage, HelloMessage.Length)
   'Receiving
   ReceiveBuffer = UdpSender.Receive(New Net.IPEndPoint(Net.IPAddress.Any, 0))
   'Parsing Answer
   Dim Tempstring As String = StringConverter.GetString(ReceiveBuffer)
   Tempstring = Tempstring.TrimEnd(Chr(10))
   RconId = uintConverter.ConvertFromString(Tempstring.Split(" ")(2))
   Passwort = Password
   End Sub
   Public Function SendCommand(ByVal Command As String) As String
   Dim TempList As New ArrayList
   Dim TempArray() As Byte
   'Creating the Message
   TempList.AddRange(Anfang)
   TempList.AddRange(StringConverter.GetBytes("rcon " & uintConverter.ConvertToString(RconId) & " " & Passwort & " " & Command))
   TempArray = TempList.ToArray(GetType(Byte))
   'Sending
   UdpSender.Send(TempArray, TempArray.Length)
   'Waiting for response
   Return StringConverter.GetString(UdpSender.Receive(New Net.IPEndPoint(Net.IPAddress.Any, 0))).Substring(5)
   End Function
   End Class

 

VB.NET kode, du burde klare å "oversette" det til C++ kode.

Endret av chills
Lenke til kommentar
  • 1 år senere...
Hvorfor bumper du flere år gamle tråder?

 

Så ikke på datoen på trådene, tenkte kanskje at forumet var litt mer aktivt enn det igrunn er. Er jo altids kjekt å ha løsninger liggende ute på nett. Men da får jeg vel igrunn finne meg et litt mer seriøst forum da, siden alle her virker afk. (Med enkelte unntak)

Lenke til kommentar

Det er jo så koselig her :yes:

 

 

Ingen grunn til å baile fra diskusjon.no eller kalle forumet for useriøst.

 

Det er en koslig stamgjeng her, som klarer å dra svært mange tråder off-topic med koseprat når problemet er løst. En del andre er inaktive, men istedenfor å ditche diskusjon.no er det vel bare å vanke andre steder i tilegg?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...