Einzelnen Beitrag anzeigen

k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#1

[C++] Packet Problem

  Alt 21. Apr 2008, 09:33
hallo,

Ich habe ein problem, und zwar:
Ich versuche einen "packet-parser" zu machen für functionen von einem spiel.
z.B die zwei wichtigsten die ich zurzeit mache sind "find" und "whisper".
Die vorgefertigte source hatet schon einen packet-parser der aber nur nach dem packet-header (also erste byte) schaut und es dann zu der bestimmten function zuordnet.
Also die "find" und "whisper" functionen haben die gleichen packet header (0x58), doch ich muss ja rausfinden ob der user jetzt "find" oder "whisper" benützt.

Also hier mal ein beispiel:
Command: . /find rEakW0n = 58 00 05 07 00 72 45 61 6B 57 30 6E
Whisper: rEakW0n Msg: lol = 58 00 06 07 00 72 45 61 6B 57 30 6E 03 00 6C 6F 6C

Also wie ihr sehen könnt, der 3 byte des packets definiert ob es "find" oder "whisper" ist.
Soweit so gut.

Der byte direkt danach definiert die länge des namen nachdem jemand suchen will oder zu dem jemand whispern will mit "find" bzw "whisper".
Diese länge habe ich ganz einfach mit nicksize = getShort(packet+1) bekommen.
Also dacht ich mir, wenn ich den byte davor holen will muss ich einfach getShort(packet) benützen. Gibt mir aber leider nur eine komische zahl. (auch -2, -3, -4, -5 oder das ganze mit plus).

Dann hab ich in einer anderen function geschaut (mit einem anderen packet header) der die smilies die ein spieler per F-tasten machen kann definiert.
Hier mal ein packet davon:
5C 00 02 00 00 00

Auch hier, definiert der dritte byte etwas wichtiges, und zwar, welcher smilie der user machen will (habs getestet).
Die function benützt getInt(packet) um diese zahl aus dem packet zu bekommen.
Also hab ich das selbe bei meiner find/whisper sache versucht da ich dabei ja auch den dritten byte brauche.
Hat allerdings nicht geklappt

Hat irgendjemand eine idee wie ich aus den oben geposteten (whisper/find) packets ich den dritten byte auslesen könnte?
  Mit Zitat antworten Zitat