Characterdata-Packet

  • Morgen,
    ich versuche grade das Packet mit den Chardaten (erstmal nur den Anfang, also nur Charstats, keine Items, Quests, Masteries...) auszulesen, jedoch habe ich da ein Problem. Das Packet habe ich leider grade nicht, aber das ist denke ich jetzt nicht so schlimm..
    Also, ich habe mir mal den Aufbau angeschaut:


    So, als ich meinen Char ausgewählt habe, kam ein langes Packet (Opcode=3013) an, welches auch mit "7F 07 00 00" angefangen hat, somit habe ich dieses genommen. Das Problem ist nun aber, dass wenn ich es so aufteile bei level "00" (=0, obwohl mein Char Lv14 ist) und bei highest level "E2" (=226, obwohl es nur bis 105 geht). Dann dachte ich mir, ist das falsche Packet und hab im Analyzer nachgeschaut, nach dem 3013er kamen noch 2 lange, einmal 3018 und 3019, aber auch bei denen kommt beim Level was ganz falsches raus..das komische ist aber, dass im 3013er meine richtigen HP/MP & SP auftauchen (aber nich an der Stelle, wie es im Aufbau gezeigt ist), nur eben nicht Level..
    Woran kann das also liegen? Sind alle 3 Packets die falschen oder kA was sonst noch...
    Vielleicht kann sich das ja jemand mal anschauen, habe es auf dem ZSZC(Fire)-Server probiert, aber müsste auch mit rSRO gehen, da bis jetzt alle Packets, die ich gesehen habe, den gleichen Opcode haben.

  • Du bist schon richtig, das 0x3013 ist das chardata packet,
    3017 & 3018 & 3019 sind Groupspawn packets, also wenn mobs chars npcs etc spawnen.
    Der Aufbau ist etwas älter, am besten aktivierst du mal beim nächsten Login vom edxLoader den Analyzer, da bekommst du das Paket direkt in seine Einzelteile zerstückelt.


    MfG

  • OK, danke euch beiden!
    Werde es dann später nochmal versuchen, und genauer drüberschauen, wo der Levelwert etc. drinnesteht.

    Zitat

    am besten aktivierst du mal beim nächsten Login vom edxLoader den Analyzer, da bekommst du das Paket direkt in seine Einzelteile zerstückelt.


    Ich hab bis jetzt immer den phConnector+Analyzer benutzt, hatte immer Probleme mit dem edxLoader..naja ich such nochmal danach und versuche es zum Starten zu bekommen, denn das ist wirklich leichter, wenn es schon in Einzelteilen angezeigt wird..

  • So,
    ich habs nochmal versucht, aber ich blick da nicht durch.
    Normal müssten doch im Chardata-Packet (3013) alle Infos wie Level, Gold, Skillpunkte, Items, Skills etc. stehen, aber irgendwie finde ich fast nichts davon..
    Packet:

    Code
    1. S->C (3013) 8807000006004B7261697A79226060EC8B990600000000500000009A6D2700000000004981010000000400000000C62F00008E1000000100000000000000000000000000000000000000010000000001000000000100000000371F00260600000086C426060000000033000000013E000000020000000192060000002B8CA714000000003E0000000205000000010000000B00000001000000026E06000000EA0CE00800000000410000000003DA060000000614840E000000003E0000000004B606000000C3A990020000000035000000010B0000000300000005FE06000000678D152700000000380000000205000000010000003E0000000100000006CF00000003E489D084030000004300000000094407000000AA0000000000000000000000000A6707000000200100000000000000000000000B2007000000020100000000000000000000000C2007000000B00100000000000000000000000D600E00000100110800000018001208000000320013080000003200140800000032001508000000320016080000003200170800000032001808000000320019620E000001001D0F0000001C001E0F00000032001F0F0000003200200F0000003200210F0000003200220F0000003200230F0000003200240F00000032002B470F00001B002C3D00000004000001010100000001020100005F0103010000


    Habe nun mal angefangen es zu unterteilen:

    Code
    1. 88-07-00-00 character type
    2. 06-00 character name length
    3. 4B-72-61-69-7A-79 character name
    4. 22 ?
    5. 60 level
    6. 60 ?
    7. ...


    Mein Char heißt Kraizy [4B-72-61-69-7A-79] und ist Lv96 [60], das befindet sich auch im Packet, aber ich finde nichts was mit Gold oder Skillpunkten etc. zu tun hat. Hab 98.512 Skillpunkte [18-0D-00] und 2.251.032 Gold [22-59-18] -> Ergebnis: keines davon ist im Packet vorhanden..woran liegt das?
    Achja, hab auch nach meinen Skills gesucht, indem ich danach einige meine Skills ausgeführt habe und mir die Hexwerte notiert habe (und es sind ganz sicher die richtigen, da die Skills aktiviert werden, wenn ich das Packet mit meinem Tool sende) und habe dann im Chardata-Packet danach gesucht. Der Skill "River Fire Force" hat z.B. den Wert 7C, wenn ich danach suche, findet er in den tausenden von Zeichen natürlich auch 7C (evtl. Zufall), aber bei anderen Hexwerten wird kein Ergebnis im 3013-Packet gefunden..
    Bis jetzt haben eig alle Packete gut geklappt sie zu analysieren und richtig zu benutzen, aber ausgerechnet das wichtigste Packet ist irgendwie ganz komisch...
    Vielleicht weiß ja jemand von euch mehr..hoffe ich zumindest.

  • [cs]
    88-07-00-00 character type
    06-00 character name length
    4B-72-61-69-7A-79 character name
    22 volume, also ein mix aus wie dick und wie hoch du ihn gemacht hast
    60 current level
    60 highest level (also das höchste erreichte level, wenn du ihn z.B. downgelevelt hast ist highest lvl höher als current level)
    QWORD exp EC8B990600000000 -> 110.726.124
    DWORD sp leiste wert
    QWORD gold 9A6D270000000000 -> 2.583.962
    DWORD sp 49810100 -> 98633
    WORD ap
    BYTE zerk orbs
    DWORD kp
    DWORD HP C62F0000 -> 12230
    DWORD MP 8E100000 -> 4238
    packet.data.ReadBYTE();//noob icon (byte)
    packet.data.ReadWORD();//daily pk (uint16)
    packet.data.ReadWORD();//pk level (uint16)
    packet.data.ReadDWORD();//murderer level (uint32)
    packet.data.ReadBYTE();//titel
    packet.data.ReadBYTE();//kp
    BYTE inventarsize
    BYTE itemcount
    [/cs]


    So das wär schonmal das wichtigste anhand der item anzahl kannst du dann ne for schleife machen und alles durchgehen, darauf folgen avataritems, dann masteries und dann skills.


    //Edit hab gerade gesehen dass das ein sehr altes Packet ist, normalerweise steht der charname erst gegen Ende des Packets, poste mal in nem spoiler das 3013 Packet so wie es der edxAnalyzer schon zerstückelt hat !
    //Edit2 hab das mal grade anfänglich geparsed, da kommen werte raus die ein bischen verschieden zu deinen Angaben sind, nehme an du hast ein die Werte erst später/früher abgelesen.
    MfG

  • Sorry, ich habe jetzt nicht den ganzen Thread durchgelesen aber ich würde dir empfehlen den Sourcecode von zB. dem csremu anzuschauen.
    Die reihenfolge innerhalb des Packets ist zwar von Version zu Version etwas unterschiedlich aber generell sollte das deine suche etwas einfacher machen.


    csremu Sourcecode
    Findest es unter "OnIngameRequest"

    Zitat

    Dr. Gregory House: You've gotta get down here. They've got a satellite aimed directly into Cuddy's vagina. I told them that chances of invasion are slim to none but...

  • Danke euch beiden, habt es mir nun ein wenig verständlicher gemacht!

    poste mal in nem spoiler das 3013 Packet so wie es der edxAnalyzer schon zerstückelt hat !


    Wenn ich den edxAnalyzer starte, versucht dieser Silkroad zu starten und jedesmal bekomm ich die Meldung "Cannot create file transfer manager"..benutze den phAnalyzer, aber da wird leider nichts automatisch unterteilt..


    Das komische hier nun, nach den letzten zwei Werten (title & unknown) müsste ja max item slot und die Anzahl der Items kommen, aber warum sind dort danach nur Nullen? Außerdem, bei den Gold, EXP, SP, HP/MP-Werten sind die Hexwerte komischerweise umgedreht..?

  • Ich weiß nicht wie du deine Zahlen in Hex-Werte umwandelst, aber wenn ich 100.224 in Hex-Schreibweise umwandle kommt bei mir genauso wie im Packet
    80-87-01-00 raus. Du hast warscheinlich die ganz normale Hex() oder .ToString("X4") funktion genommen, das klappt so nicht.
    Versuchs mal so:
    [cs]Dim barr As Byte() = BitConverter.GetBytes(100224)
    Dim str As String = BitConverter.ToString(barr).Replace("-", "")[/cs]


    Ich kann jetzt auch nicht viel mit dem Packet anfangen weil ich weder weiß, welche Items/Skills/Masteries du geskillt hast, noch ob du irgendwelche Avataritems an hast.


    MfG

  • Normal benutze ich auch den BitConverter, aber da hab ich einmal den Windows-Taschenrechner benutzt, lag wohl daran..

    Zitat

    Ich kann jetzt auch nicht viel mit dem Packet anfangen weil ich weder weiß, welche Items/Skills/Masteries du geskillt hast, noch ob du irgendwelche Avataritems an hast.


    Ja, das versteh ich^^ Aber weißt du warum ich denn immer die Meldung "Can't create file transfer manager" bekomme, oder kann ich nicht einfach selber Silkroad starten anstatt es vom Analyzer aus zu machen? Liegt es evlt. daran, dass ich die IP mit dem Tool von drew benton redirected habe (weil ohne das kann ich den phConnector nicht benutzen)?
    Edit: Wenn ich es entferne, kommt die Fehlermeldung "Application corrupt." -.-

  • Mist, ich sehe gerade, dass hinter dem Packet Auto-Parse noch "new SRO only" steht, also fällt das für die alten Versionen wir zszc und sowas flach.
    Bei rsro, csro, isro etc. funkt der Analyzer eiwnandfrei, aber da sind die Packets auch unterschiedlich aufgebaut, also wird dir das wenig nutzen.


    MfG

  • Für dich vielleicht^^
    Naja ich schau mir dann später nochmal das Packet an, vielleicht find ich ja irgendwo den Wert für die Größe des Inventars und wie viele Items darin sind..

  • Du kannst doch einfach nachzählen, die Zahl in Hex wandeln und dann das Packet danach durchsuchen.
    Du musst AvatarItems usw davon abziehen.


    Kuh :>

  • die größe des inventars und die anzahl der items, müssten die zwei bytes nach den ganzen nullen und einsen sein, nach dem pk usw.
    also wäre das bei deinem post:
    37->größe des inventars und
    17->anzahl der items, die danach auch aufgelistet werden

  • 00-00 daily pk (uint16)
    00-00 pk level (uint16)
    00-00-00-00 murderer level (uint32)


    wird zu


    00 daily pk (byte)
    00-00 total pk level(uint16)
    00-00-00-00 pk points (uint32)
    die restlichen 27 bytes einfach mal skippen, dann kommt die inv-grösse & den itemcount (je ein byte).


    danach kannst du den inventar parsen. :)

  • Für dich vielleicht^^
    Naja ich schau mir dann später nochmal das Packet an, vielleicht find ich ja irgendwo den Wert für die Größe des Inventars und wie viele Items darin sind..



    Guck mal mal die itemId von deiner waffe inner media.pk2 nach, dann suchst du nach der hexwert in deinem packet dump, am anfang sollte dann der slot stehen, und davor die anzahl der items und davor die anzahl der inventar slots. Hoffe das hilft dir.