Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • Offizieller Beitrag

    @meisterlampe00, du musst jetzt auch nicht deinen Thread weiter zumüllen.

    Das du und autoBert nicht miteinander könnt, ist wohl jedem klar geworden und muss nicht weiter ausgeführt werden.

    Weiter Posts in diesem Thread die nur dazu dienen,aufeinander rumzuhacken, werde ich sofort löschen.

  • @meisterlampe00 dein Textdatei irritiert mich jetzt etwas. Ist das was bei Ammount steht die realen Werte Ingame? Weil bei Slot 25 mit "5E01" hast du "24065" geschrieben in deinem Text schreibst aber das muss in "15E" gedreht werden was dann "350" wäre.


    Wenn ich davon ausgehe, dass das in der Textdatei bei Slot 25 ein Schreibfehler ist, dann sollte es so gehen:

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (7. Mai 2016 um 11:26)

  • ammount=5E01<----- dieser wert ist verdreht. der wert Ingame ist = 350 items (Dezimal) in hexadeizimal sind es (15E)


    Wenn ich jetzt genau hinsehe steht dort unter ammount auch 15E, nur verdreht.....

    Gibt es irgendwie die möglichkeit zu sagen wenn die letzten beiden Zahlen nicht 00 sind sonder 01 - 09 z.b das er diese zahl dann nach vorne legt? z.b von 5e01 zu 15e0 und die 0 rauszucutten?

    Entweder wurde das so im Spiel definiert oder es wurde ein Endian festgelegt der das so abspeichert mehr dazu hier: https://de.wikipedia.org/wiki/Byte-Reihenfolge
    Hol doch einfach den amount als String, splitte alle zwei Zeichen und vertausche denn die gesplitteten Werte. Dann kannst du sie auch konvertieren lassen und zusammenaddieren je nach Stellenwert natürlich.

  • @chip
    Nein, in der textdatei wird es wirklich so ausgegeben wie es dort steht. ingame sind es 300 items somit müsste es 15e sein

    AutoIt
    $amount = StringRight($slot, 4); Er nimmt sich die 4 von rechts?
    	$left = StringLeft($amount, 2) ;dort nimmer er sich von den 4 die 2 linken
    	$right = StringRight($amount, 2);2 rechten
    	$result[0] = StringTrimRight($slot, 4);Hier bleibt nurnoch der slot=itemid über richtig?
    	$result[1] = Dec($right & $left) ;hier die sachen drehen und als dec umrechnen richtig?
  • @meisterlampe00 hast alles richtig verstanden. Bei result[0] werden die letzten vier Zeichen also die Anzahl abgeschnitten damit nur noch die item id übrig bleibt. Damit hast dann im Array itemid und Anzahl.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Gibt es die möglichkeit das so umzuschreiben das er immer ein 02im hex sucht dann die 10x 00 und den slot dann nur ausgibt wenn am anfang 02 steht und am ende 02? bis zu dem endgültigem ende 03?

    anfang 0A
    ab jedem 02 xx xx xx xx xx xx xx xx xx xx 02 wäre z.b Slot1
    letzer slot = 02 xx xx xx xx xx xx xx xx xx xx 03


    mit dem code den ich hier habe bekomme ich einfach viel zu viele slots, die es garnicht gibt.

    z.b if 02&10x&02 then
    slot+=1
    nur ich komme echt nicht drauf...

  • 1. Macht mein Beispiel oben genau das
    2. Stimmt die Slotanzahl die rauskommt. Sprich 57 (50x Inventar, 7x was der Spieler an Körper hat)

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Es wird nach 02 gesucht dann 10 Zeichen genommen, dann nach der nächsten 02 gesucht und wieder 10 Zeichen. Die Abfrage ob es mit 02 endet ist irrelevant.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ist sie nicht, denn 02 kann überall in den 10 zeichen auch nochmal vorkommen

    z.b 02 11 11 11 11 11 02 11 11 11 11 02 00 00 00 00 00 00 00 00 00 00 02

    somit wäre
    slot1 = 02 11 11 11 11 11 02 11 11 11 11 02
    slot2 = 02 11 11 11 02 00 00 00 00 00 00 00
    slot3 = 02 00 00 00 00 00 00 00 00 00 00 02


    das ist das problem
    mit einer abfrage das, dass letze zeichen eine 02 wäre!
    wäre dieses problem beseitigt kannst du mir folgen?

    danke nochmal´s für deine mühen

  • Ich sag es nochmal, es ist überflüssig. Schau dir mein Script von Seite 2 an. Da mit der Suche erst nach den 10 Zeichen weitergemacht wird, könnte auch alles voller 02 sein und es wäre egal.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hier eine auswertung einer anderen .ply datei

    69 slots. irgendwie komisch ich verstehe nicht ganz wieso ich bin echt ratlos

  • Lad die ply mal hier hoch.

    Und dann lad nochmal eine ply hoch bei der ingame vorher auf jeden inventarslot vom genau gleichen item 10 Stück abgelegt hast.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    2 Mal editiert, zuletzt von chip (14. Mai 2016 um 09:10)

  • Bist dir sicher, dass das Bild mit den Werten in der bird***.txt übereinstimmen? Weil auf einem Slot sind laut der txt 32 Items. Kann es sein, das das noch nicht richtig vom Server in der ply rein geschrieben wurde bevor du sie runterkopiert hast?

    Weil ansonsten stimmt die Slots mit Item und Anzahl. Überall 10 Stück bis auf zwei slots. Da steht einmal 0x mit keinem Item und einmal 32x Pentaxit. Was allerdings, wie schon erwähnt, von einer noch nicht richtig vom Server aktualisierte Datei kommen dürfte.

    Hier mal mit while-Bedingung, dass nach 49 Slots abgebrochen wird:

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (14. Mai 2016 um 16:22)

  • das kann sein der server braucht immer ein wenig bis er das übernimmt war relativ fix, ich war auf dem Sprung.
    Aber das mit der While Schleife abbrechen nach der slotanzahl ist natürlich super,
    nur ist das problem mit dem 02 in den 10 zeichen immernoch gegeben oder?

    ich lad dir mal eben eine .ply datei hoch wo ich mir gedacht hatte ich wäre im falschen film. Da wird nicht ab 02 der ItemSlot angefangen sondern ab 01 ..... z.b 01 00 01 99 99 99 99 99 99 99 99 99 99 01
    00 01 99 99 99 99 99 99 99 99 99 99 01
    00 01 99 99 99 99 99 99 99 99 99 99 01 usw d.h wenn in dem SLOT 01 99 99 99 99 99 99 99 99 01 99 01 ein item wäre was nur ein mal vorhanden wäre ware an der vorletzten stelle HEXA 01 für 1 item.
    dann würde er der nächste Slot so aussehen 01 99 01 99 99 99 99 99 99 99 99
    was auch wieder ein Fehler wäre

    aber genau so Ideen mit der Schleife nach XY durchläufen rauszugehen ist einfach nur genial....
    Somit wird nach maximal 50 slots gesagt Feierabend.

    Trotz all dem wäre glaube ich eine abfrage das der slot mit 02 anfangen muss und mit 02 aufhören muss eine zusätzliche sicherheitsmaßnahme

  • Dann baue es dir rein wenn es brauchst. Alles was dazu brauchst wurde bereits gepostet.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ich versuchs ja seit gestern xD

    irgendwie bekomme ich die syntax nicht auf die reihe...