[Steamkit2] Lobby Chat Nachricht Schicken

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Fachkraftx3.

    [Steamkit2] Lobby Chat Nachricht Schicken

    Also ich hab versucht mit nem kleinem Bot und mit hilfe von Protocol Buffer eine Nachricht an eine Steam Lobby (csgo lobby) zu senden.

    Also erstmal zu der Lobby connecten

    C#-Quellcode

    1. ​var JoinLobby = new ClientMsgProtobuf<CMsgClientMMSJoinLobby>(EMsg.ClientMMSJoinLobby);
    2. JoinLobby.ProtoHeader.routing_appid = 730;
    3. JoinLobby.Body.app_id = 730;
    4. JoinLobby.Body.persona_name = "DEIN-NAME-HIER";
    5. JoinLobby.Body.steam_id_lobby = (ulong)109775243834561419; // Lobby link 109775243834561419/76561198312797851
    6. Console.WriteLine(JoinLobby.Body.steam_id_lobby);
    7. Client.Send(JoinLobby);


    Nachdem ich also nen "OK" response bekomme versuche ich die nachricht mithilfe dieses protos zu senden:

    C#-Quellcode

    1. ​message CMsgClientMMSSendLobbyChatMsg {
    2. optional uint32 app_id = 1;
    3. optional fixed64 steam_id_lobby = 2;
    4. optional fixed64 steam_id_target = 3;
    5. optional bytes lobby_message = 4;
    6. }


    ich wollte das irgendwie so anfangen:

    C#-Quellcode

    1. ​var SendMessage = new ClientMsgProtobuf<CMsgClientMMSSendLobbyChatMsg>(EMsg.ClientMMSSendLobbyChatMsg);
    2. SendMessage.Header.Proto.routing_appid = 730;
    3. SendMessage.Body.app_id = 730;
    4. SendMessage.Body.steam_id_lobby = 109775243834354861;
    5. SendMessage.Body.steam_id_target = 109775243834354861;
    6. //SendMessage.Body.lobby_message


    aber ihr seht selbst lobby_message ist vom typ her ein byte - und ich weiß nicht wie ich darin einen text speicher bzw wiedergeben soll.
    Leider gibts zu dem buffer kein response.

    Es ist aber zu 100% dieser buffer.
    Hoffe ihr könnt mir helfen.
    Mfg
    Wieso wandelst du den Text nicht in ein Byte (Array) um und versendest diesen dann (soweit wie ich das verstanden habe)?
    stackoverflow.com/questions/47…in-c-sharp-without-manual
    Software being "Done" is like lawn being "Mowed". (Jim Benson)

    KidRick schrieb:

    Wieso wandelst du den Text nicht in ein Byte (Array) um und versendest diesen dann (soweit wie ich das verstanden habe)?
    stackoverflow.com/questions/47…in-c-sharp-without-manual


    Hab ich probiert und hab das ganze mal analysiert was ich brauche und was kommt.
    Das kam dabei raus wenn ich eine nachricht geschrieben habe:

    i66.tinypic.com/2me77k4.png ( VB akzeptiert keinen meiner hosts?!)

    wenn wir uns dann mal im analyzer anschauen was da eigentlich gemacht wird:

    i63.tinypic.com/dwtekx.png

    da fällt mir dann die lobby_message auf.
    ASCII: => \0\04?\0SysSession::Command\0\0Game::Chat\0run\0all\0xuid\0\06?name\0Logxn\0chat\0jo\0
    UTF-8 => \0\04?\0SysSession::Command\0\0Game::Chat\0run\0all\0xuid\0\06?name\0Logxn\0chat\0jo\0
    Hex=> 000034FB0053797353657373696F6E3A3A436F6D6D616E64000047616D653A3A43686174000172756E00616C6C00077875696400011000011503369B016E616D65004C6F67786E000163686174006A6F000B0B0B

    nun die frage ist wie bring ich das in den byte?
    hab ich was übersehen?