GTA IV: Model=770770717 zu Hexadezimal im Clipboard

Stelle Fragen zur Automatisierung von Spielen

Moderator: jNizM

Fresh Janine
Posts: 29
Joined: 07 May 2017, 10:15

GTA IV: Model=770770717 zu Hexadezimal im Clipboard

08 May 2017, 10:16

Hallo, ich baue leidenschaftlich in GTA IV mit Simple Native Trainer Häuser, Garagen, Inseln und alles mögliche. Seitdem neuen Patch 1.0.8.0 funktioniert Simple Native Trainer nicht mehr und ich konvertiere einfach per Hand die Objects.ini zu einer .sco Datei. Gibt zwar auch Programme zum Konvertieren, doch dann sind oft viele Fehler enthalten und wenn ich es auf meine Weise mache, dann kann ich insgesamt den Code viel individueller gestalten. Folgendes möchte ich mir mit AHK viel leichter machen:

Wenn ich z.B. das markiere und kopiere:

[12]
x=-1657.77
y=-298.914
z=10.55
h=315.324
Model=770770717
qx=0
qy=0
qz=-0.380071
qw=0.924957
Dynamic=0

und ich Strg und V drücke, soll das rauskommen:

Push 0xC
Push 0x2DF1071D
PushF -1657,77
PushF -298,914
PushF 10,55
PushF 315,324
PushF 0
PushF 0
PushF -0,380071
PushF 0,924957
Push 0x0

[12] bleibt in der 1. Zeile und wurde in Hexadezimal umgerechnet.
"Model" ist in die 2. Zeile gerutscht und wurde auch in Hexadezimal umgerechnet.

Mein jetziger Code sieht so aus:

#Persistent
return
ClipWait
OnClipboardChange:
StringReplace, clipboard, clipboard, `. , `,, All
StringReplace, clipboard, clipboard, x=, PushF?, All
StringReplace, clipboard, clipboard, y=, PushF?, All
StringReplace, clipboard, clipboard, z=, PushF?, All
StringReplace, clipboard, clipboard, h=, PushF?, All
StringReplace, clipboard, clipboard, w=, PushF?, All
StringReplace, clipboard, clipboard, q, , All
StringReplace, clipboard, clipboard, ?, %A_SPACE%, All
StringReplace, clipboard, clipboard, Dynamic=, Push 0x, All
return

Nun komme ich nicht weiter. Wer hat eine Lösung? Danke schon mal im Voraus und liebe Grüße :)
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

08 May 2017, 11:12

Es wäre wichtig, dass du deine Daten erst einliest und in eine Variable speicherst, sie danach bearbeitest und als letztes wieder ins Clipboard ausgibst.
Wenn du deine StringReplace Methode bebehalten willst würde ich danach eventuell mit StringSplit oder StrSplit aufteilen.
Dann pickst du dir die Zeilen raus die du umformatieren willst und tust dies mit Format ( Msgbox % Format( "{:#x}", 123 ) ).
Dann sortierst du um und setzt zusammen.
Recommends AHK Studio
Fresh Janine
Posts: 29
Joined: 07 May 2017, 10:15

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

08 May 2017, 11:58

Nun ist es aber so, dass ich da an eine Grenze meines Verständnisses für diese Scriptsprache stoße und hab gehofft hier droppt mal eben einer die fehlenden Codezeilen. Oder ist es doch eine ganze menge Arbeit, da ich die Sache falsch angegangen bin?
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

09 May 2017, 03:55

Es sind nicht nur ein paar fehlende lines. Wir in diesem Forum geben meist nur Hilfe zur Selbsthilfe.
Bei dem StringSplit Befehl wird ein längerer Text genommen und in kleinere Unterabschnitte eingeteilt.
Wo abgeschnitten wird legt man durch ein Zeichen fest. An diesem Zeichen wird dann immer abgeschnitten.
Das Ergebnis wird dann in eine Ausgabe-variable geschrieben.
Beispiel:

Code: Select all

code = 
(
[12]
x=-1657.77
y=-298.914
z=10.55
h=315.324
Model=770770717
qx=0
qy=0
qz=-0.380071
qw=0.924957
Dynamic=0
)
StringSplit, Zeile, code, `n
Msgbox %Zeile1%
Msgbox %Zeile2%
;...
Über StringSplit wird dein Text ( den ich vorher in der variable code gespeichert habe ) in einzelne Zeilen zerlegt. Das `n bedeutet in diesem Fall, dass er an einem neue Zeile Zeichen abschneiden soll. Allgemein steht `n für ein neue Zeile Zeichen.
Nachdem der Befehl ausgeführt wurde enthält die Variable Zeile1 deine erste Zeile, die Variable Zeile2 deine 2...

Du kannst mit dem Ausdruck Clipboard := Zeile1 Zeile3 Zeile7 die Zeilen in beliebiger Reihenfolge wieder zusammensetzen und in die Zwischenablage speichern.
Recommends AHK Studio
Fresh Janine
Posts: 29
Joined: 07 May 2017, 10:15

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

09 May 2017, 11:10

Ok, danke dir. Das löst das Problem mit den Zeilen, doch wie befehle ich dem AHK, dass es mir die Modelnummer im Zwischenspeicher in Hexadezimal umrechnet?
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

09 May 2017, 13:32

Das geht über ZeileX := Format( "{:#x}", ZeileX )
Über ZeileX := "Text" Format( "{:#x}", ZeileX ) kannst du dem ganzen auch noch Text hinzufügen.
Recommends AHK Studio
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

09 May 2017, 13:47

Fresh Janine wrote:Ok, danke dir. Das löst das Problem mit den Zeilen, doch wie befehle ich dem AHK, dass es mir die Modelnummer im Zwischenspeicher in Hexadezimal umrechnet?
Wie von nnnik bereits beschrieben ...

Code: Select all

Dann pickst du dir die Zeilen raus die du umformatieren willst und tust dies mit Format.
Msgbox % Format( "{:#x}", 123 )
https://autohotkey.com/docs/commands/Format.htm
just me
Posts: 9442
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

09 May 2017, 15:53

@nnnik: Soweit ich weiß, handelt es sich bei GTA IV um ein Spiel. Und für Spiele gibt es ein eigenes Forum. Ich kann hier nichts mehr verschieben. Warum tust Du es nicht?

Bei einigen Diskussionen der letzten Zeit entsteht bei mir der Eindruck, dass sich einige neue und auch einige längerfristige Mitglieder der AHK Community sehr darum bemühen, den von polyethene beabsichtigten Status des Forums wiederherzustellen.
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

10 May 2017, 01:47

Es geht hierbei um das Texteditieren einer Datei welche ein Objekt innerhalb eines Spiels darstellt.
Wir haben gesagt, dass Hotkeys oder Chatautomatisierer etc. in die Spiele Kategorie gehören.
Was jedoch nicht in die Spiele Kategorie gehört sind ganze Spiele und Scripte zur Erstellung von Spielen etc.
Ich konnte aufgrund des Typs der Frage nicht entscheiden in welche Kategorie genau sie gehört und habe deshalb einfach das einfachste genommen ( als ich sie aus dem Englischen Forum rübergezogen habe ) .
Wenn ihr das anders seht dann könnt ihr das gerne ändern.

Ich lasse mir nicht von irgendjemandem sagen, dass ich plane polyethenes Zustand des Forums wiederherzustellen.
Ganz besonders nicht von jemandem der eine Veränderung durchsetzen wollte für die es kaum Argumente gab.
Als er dann die Erlaubnis dafür bekam darauf pochte, dass ein Admin die Verantwortung für diese Veränderung in Form einer Regel übernimmt.
Und schließlich als das nicht passiert aus Trotz seinen Moderator Status hinwirft.
Recommends AHK Studio
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: GTA IV: Model=770770717 zu Hexadezimal im Clipboard

10 May 2017, 11:14

Ähm, ich bin dann mal kurz raus ... :wtf:

Return to “Spiele”

Who is online

Users browsing this forum: No registered users and 14 guests