Thema: Delphi Rcon an Hl2-Server

Einzelnen Beitrag anzeigen

Benutzerbild von rey003
rey003

Registriert seit: 31. Aug 2005
Ort: Sachsen ;-)
46 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Rcon an Hl2-Server

  Alt 11. Nov 2007, 17:02
Ach man ich weiß echt nich was ich falsch mache... -.-
Hier hab ich folgendes gefunden (Beschreibt den Aufbau der Daten die gesendet werden müssen):
http://developer.valvesoftware.com/w...otocol#Sending
Mein aktueller Code ist dieser:
Delphi-Quellcode:
var
  reqid :integer =0;

const
  SERVERDATA_EXECCOMMAND = 2;
  SERVERDATA_AUTH = 3;

function ContructPacket(id, cmdtype: integer; s1,s2:string) : string;
var
  data: TStringStream;
  packetlength: integer;
  ende: byte;
begin
 //leeres byte
  ende:= 0;
 //ContructPacket
  data := TStringStream.Create('');
  try
   //Länge festlegen
    data.Size:= 4+4+4+length(s1)+1+length(s2)+1;
   //Paketlänge errechnen (-4 da Paketlänge nicht mitgerechnet wird)
    packetlength:= data.Size-4;

    data.Position:= 0;

    data.Write(packetlength,sizeof(INTEGER));
    data.Write(id,sizeof(INTEGER));
    data.Write(cmdtype,sizeof(INTEGER));
    data.WriteString(s1);
    data.Write(ende,sizeof(byte));
    data.WriteString(s2);
    data.Write(ende,sizeof(byte));
    result:= data.DataString;
    reqid:= reqid+1;
 finally
   data.Free;
 end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
 temp: string;
begin
  //IP und Port sind fest in der Komponente eingetragen
  IdUDPClient1.Active:= True;
  IdUDPClient1.Connect;
  ActiveSleep(5); //nur sleep mit application.ProcessMessages;
  IdUDPClient1.Send(ContructPacket(reqid,SERVERDATA_AUTH,'RconPasswort',''));
  ActiveSleep(10);
  temp:= IdUDPClient1.ReceiveString(12000);
  memo1.Text:= temp; //Bleibt leer
  IdUDPClient1.Active:= false;
end;
Laut Sniffer sendet er genau die selbe Zeichenfolge wie die Console in CSS nur der beim ReqID weiß ich immer noch nicht was der bewirkt, deshalb zähl ich ihn einfach hoch..

Ich würd mich wirklich freuen wenn jemand von euch mal drüber schauen könnte!
Daniel S.
  Mit Zitat antworten Zitat