Call of Duty Ingame in die Console schreiben

  • Hallo Community.

    Ich habe ein Problem.
    Wie kann ich bei Call of Duty 1.1 in die Console schreiben? Ich habe schon die SuFu gequält aber leider nichts gefunden.
    Als Beispiel: Man kann in die Console schreiben, wenn man sie öffnet, ich möchte aber, ähnlich wie xFire, Text/Befehle an die Console senden ohne sie über den 'Bind(^)' zu öffnen.

    Ich habe es schon mit WriteConsole() versucht, leider ohne Erfolg.

    Kleine Info am Rande, Call of Duty 1.1 basiert auf quake3 Engine.

    Hoffe, ich konnte euch mein Problem erklären und ihr könnt mir helfen.

    mfg Nuke

    AutoIT rockt! :rock:

  • Oscar das ist kein BOT,

    und zwar kann man an die Console Befehle schicken, aber nur via Rcon es lassen sich aber soweit ich weiß keine Clientsachen verändern, sondern nur für den Server.
    Hier im Forum gibt es schon eine vorgefertigte rcon au3 für auf quake3 basierende Spiele, damit kannst du auf einen Server connecten und ihm Befehle schicken

    Spoiler anzeigen
    [autoit]

    func _RconConnect ( $sIP, $iPort )
    UDPStartup ()

    [/autoit] [autoit][/autoit] [autoit]

    Local $socket, $error

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $socket = UDPOpen ( $sIp, $iPort )

    [/autoit] [autoit][/autoit] [autoit]

    if @error then
    return SetError ( @error, 0, $socket)
    Else
    return $socket
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    func _RconSend ( $socket, $sData, $sPassword, $sHeader = "rcon")

    [/autoit] [autoit][/autoit] [autoit]

    ;Wenn sHeader nicht "rcon" ist wird $sPassword automatisch zu einem leeren String gemacht und nur der string $sData
    ;wird übertragen (übrigens um das leerzeichen nach dem header braucht ihr euch NICHT zu kümmern!)
    ;andere header sind (ich weiss nicht ob es mehr gibt^^) getstatus und getinfo also:
    ;_RconSend ( $socket, "", "", "getstatus")
    ;_RconSend ( $socket, "", "", "getinfo")
    ;***Edit*** (20 miunten dannach :)
    ;es gibt getservers das kann man an den masterserver senden

    [/autoit] [autoit][/autoit] [autoit]

    if $socket <> false and IsArray ( $socket ) and $socket[0] <> -1 Then
    ;
    Else
    return SetError ( 1, 0, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Local $send

    if $sHeader == "rcon" Then
    $sHeader &= " "
    $sPassword &= " "
    Else
    $sHeader &= " "
    $sPassword = ""
    EndIf

    $send = UDPSend ( $socket, chr (255) & chr ( 255 ) & chr ( 255 ) & chr ( 255) & $sHeader & $sPassword & $sData )

    if @error Then
    return SetError ( @error, 0, 0)
    Else
    return $send
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    func _RconRecv ( $socket , $iCheckForPassword = 1, $iRemoveHeader = 1)

    [/autoit] [autoit][/autoit] [autoit]

    if $socket <> false and IsArray ( $socket ) and $socket[0] <> -1 Then
    ;
    Else
    return SetError ( 1, 0, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Local $sRecv = "", $iCountEmptyRecv = 0, $sBuffer, $sTmp = ""

    [/autoit] [autoit][/autoit] [autoit]

    while 1
    $sBuffer = UDPRecv ( $socket, 100000000 )

    [/autoit] [autoit][/autoit] [autoit]

    if ($sBuffer = "" and $sRecv <> "") or @error then
    ExitLoop
    Else
    $sRecv &= $sBuffer
    EndIf

    if $sBuffer = "" Then
    $iCountEmptyRecv += 1
    if $iCountEmptyRecv > 2 Then
    ExitLoop
    EndIf
    EndIf

    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    if $sRecv == "" then
    return SetError ( 2, 0, 0)
    Else

    if StringRegExp ( $sRecv, "(\xFF\xFF\xFF\xFFdisconnect)") Then
    return SetError ( 4, 0, 0)
    EndIf

    if $iRemoveHeader Then
    $sTmp = StringRegExpReplace ($sRecv, "(\xFF\xFF\xFF\xFF.+\n)", "")
    if not @error Then
    $sRecv = $sTmp
    EndIf
    EndIf


    if StringRegExp ( $sRecv , "(?i).*((Invalid)|(Bad)|(No))+.*(rcon)?.*password.*") and $iCheckForPassword Then
    return SetError ( 3, 0, 0)
    else
    return $sRecv
    EndIf

    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]


    https://autoit.de/index.php?page…ake+3#post55907


    Aber wenn du nur mehrere Befehler auf einmal senden möchtest geht das doch viel einfach via Bind, du kannst doch mit ; trennen bzw du machst dir eine neue .cfg hast in dieser deine Befehler und bindest du mit /bind k exec bla.cfg - so wie bei name scripts halt oder anderen dingen

  • Hehe die Console ist ja kein Fremdprogramm... Glaube kaum, dass Activision einen internen Bot erlauben würde :D

  • Hi. Es geht nicht um einen Bot oder ein Tool zum connecten auf Server.

    Es geht darum, ingame Befehle an die lokale Console zu schicken (Keine administrative Befehle an den Server), ohne sie zu öffnen und ohne Binds zu benutzen.
    So wie das xFire macht, mit dem Timestamp und dann logfile.

    mfg

    AutoIT rockt! :rock:

  • Hallo Bert,

    Nein.
    Du kennst doch sicher xFire. Wenn du damit ingame bist und in die Console schaust, siehst du manchmal die Befehle, die xFire an die Console schickt, ohne sie zu öffnen. Genau das möchte ich auch machen können. Ich möchte nicht loggen sondern über AutoIT Befehle wie z.B.: /kill an die Console schicken OHNE sie zu öffnen und OHNE Bindings zu benutzen.
    Ich hoffe, ich konnte es verdeutlichen... :)

    mfg Nuke

    AutoIT rockt! :rock:

  • Hi Scripter,

    ich 'arbeite' an einem Tool, dass bei CoD 1.1 das Cheaten verhindern soll. Wir haben schon alle Ideen und Ansätze fertig und mehrmals durchdacht. Jetzt ist aber das Problem, wie wir in die Console reinkommen um verschiedene Werte oder Befehle einzugeben bzw. abzufragen. Bis jetzt habe ich immer nur über send() gemacht, das nervt und ist unsicher. Über Bindings geht das nicht, weil die Clienten dann /unbind machen könnten und unser Tool wäre nutzlos.

    mfg Nuke

    AutoIT rockt! :rock:

  • Ah. Cool danke.

    Geht das auch ingame? So weit ich das bis jetzt sehen kann, ist das nur für Admin befehle von ausen wie z.B. HLSW das macht.

    Oder hab ich einen Denkfehler?^^

    mfg Nuke

    AutoIT rockt! :rock:

  • Bin mir recht sicher das das auch ingame funktioniert.. probiere es aber später mal aus
    Glaube die entscheidene Funktion ist _Q3ServerQuery() ... den Rest kannste nur gebrauchen wenn du server admin bist!