Also ich hab grad mal meinen alten rechner durchstöbert und son paar alte aufzeichnungen zu Florensia gefunden und dachte mir ich könnte ja mal wieder hier vorbeischauen und anscheinend gibts ja wieder nen Hackshield bypass also dachte ich mir dass ich meine aufzeichnungen ja mal releasen könnte.
Ich hab keine ahnung ob die sachen die ich nun release noch funktionieren, denke aber schon da ich nicht davon ausgehe dass die gesammte packet struktur geändert wurde ^^
[-]PVP-Hack
Mit diesem "hack" ist es möglich andere Spieler ausserhalb der PVP-Arena und ausserhalb der Warzone anzugreifen.
- Florensia Starten
- HackShield bypassen
- WPE Pro starten und Florensia attachen
- Ein monster angreifen und das packet davon fangen.
- Den Spieler den du angreifen willst anwählen und das packet davon fangen.
- Aus dem packet vom Spieler auswählen die letzten 8 bytes merken oder aufschreiben oder was auch immer
- Danach beim erneuten senden des attack packets an die 15. stelle gehen und die 8 bytes aus dem player packet rein schreiben
- senden und ihr greift an
Das ganze geht mit jedem beliebigen skill und mit dem auto hit.
[-]Instant Skill Cast (kein No-CD)
Wenn ihr einen Skill habt der eine Casting zeit hat (wie z.B. Sniping oder Master Recovery) castet den Skill und fangt dabei die packets.
Ihr bekommt dabei 2 packets einmal das fürs casten und das für den eigentlichen skill. Nehmt das 2. und sendet es noch einmal.
Was passiert? huch! der skill wird instant =o
Nun gibts dabei ein kleines Problemchen (hehe alles hat nen haken xD)
Im packet des skills muss die Monster bzw Spieler ID angegeben werden.
Erinnert euch an den PVP-Hack, die ID sind die 8 bytes vom Select packet.
An welcher stelle die ID im packet einzutragen ist sollte auch klar sein
[-]Teleport Hack (Land/See)
Land:
Beim laufen mit der Maus auf Land wird ein packet verschickt in dem die start und die ziel position stehen. Das packet is in etwa so aufgebaut:
Code:
[COLOR=Blue]länge[/COLOR] [COLOR=Red]befehl[/COLOR] [COLOR=SeaGreen]startX startY startZ[/COLOR] [COLOR=DarkOrange]Null[/COLOR] [COLOR=Magenta]zielX zielY zielZ[/COLOR]
[COLOR=Blue]LL LL[/COLOR] [COLOR=Red]CC CC[/COLOR] [COLOR=SeaGreen]XX XX YY YY ZZ ZZ[/COLOR] [COLOR=DarkOrange]NN[/COLOR] [COLOR=Magenta]XX XX YY YY ZZ ZZ[/COLOR]
Um aus dem Laufen dann einen Teleport zu machen müsste man nun in etwa folgendes tun:
Code:
startX = zielX + 0xCD
startY = zielY + 0xCD
startZ = zielZ + 0xCD
wenn man das ganze dann in einem send hook macht hat man auch schon einen fertigen Land Teleport hack.
See:
Beim See Teleport is das ganze schon viel einfacher.
Wenn man in einen Hafen einfährt wird ein Packet gesendet. Wenn man dieses Packet wieder sendet, egal wo man auf see is, landet man wieder in dem hafen =)
Liste der Packets für alle Häfen etc
char Cardiff[11];
Cardiff[0] = 0x0B;
Cardiff[1] = 0x00;
Cardiff[2] = 0x0E;
Cardiff[3] = 0x3C;
Cardiff[4] = 0x9E;
Cardiff[5] = 0x9C;
Cardiff[6] = 0xCE;
Cardiff[7] = 0xFF;
Cardiff[8] = 0xD7;
Cardiff[9] = 0xFF;
Cardiff[10] = 0x04;
char Magnel[11];
Magnel[0] = 0x0B;
Magnel[1] = 0x00;
Magnel[2] = 0x0E;
Magnel[3] = 0x3C;
Magnel[4] = 0x9D;
Magnel[5] = 0x9C;
Magnel[6] = 0xCE;
Magnel[7] = 0xFF;
Magnel[8] = 0xD7;
Magnel[9] = 0xFF;
Magnel[10] = 0x04;
char Exeter[11];
Exeter[0] = 0x0B;
Exeter[1] = 0x00;
Exeter[2] = 0x0E;
Exeter[3] = 0x3C;
Exeter[4] = 0x9C;
Exeter[5] = 0x9C;
Exeter[6] = 0xCE;
Exeter[7] = 0xFF;
Exeter[8] = 0xD7;
Exeter[9] = 0xFF;
Exeter[10] = 0x04;
char Chester[11];
Chester[0] = 0x0B;
Chester[1] = 0x00;
Chester[2] = 0x0E;
Chester[3] = 0x3C;
Chester[4] = 0x9A;
Chester[5] = 0x9C;
Chester[6] = 0xCE;
Chester[7] = 0xFF;
Chester[8] = 0xD7;
Chester[9] = 0xFF;
Chester[10] = 0x04;
char Ron[11];
Ron[0] = 0x0B;
Ron[1] = 0x00;
Ron[2] = 0x0E;
Ron[3] = 0x3C;
Ron[4] = 0x8C;
Ron[5] = 0x8D;
Ron[6] = 0xCE;
Ron[7] = 0xFF;
Ron[8] = 0xD7;
Ron[9] = 0xFF;
Ron[10] = 0x04;
char Kendal[11];
Kendal[0] = 0x0B;
Kendal[1] = 0x00;
Kendal[2] = 0x0E;
Kendal[3] = 0x3C;
Kendal[4] = 0x8C;
Kendal[5] = 0x8D;
Kendal[6] = 0xCD;
Kendal[7] = 0xFF;
Kendal[8] = 0xD7;
Kendal[9] = 0xFF;
Kendal[10] = 0x04;
char Cony[11];
Cony[0] = 0x0B;
Cony[1] = 0x00;
Cony[2] = 0x0E;
Cony[3] = 0x3C;
Cony[4] = 0x8C;
Cony[5] = 0x8D;
Cony[6] = 0xCC;
Cony[7] = 0xFF;
Cony[8] = 0xD7;
Cony[9] = 0xFF;
Cony[10] = 0x04;
char Aria[11];
Aria[0] = 0x0B;
Aria[1] = 0x00;
Aria[2] = 0x0E;
Aria[3] = 0x3C;
Aria[4] = 0x9E;
Aria[5] = 0x96;
Aria[6] = 0xCD;
Aria[7] = 0xFF;
Aria[8] = 0x9F;
Aria[9] = 0x0F;
Aria[10] = 0x02;
char Clouds[11];
Clouds[0] = 0x0B;
Clouds[1] = 0x00;
Clouds[2] = 0x0E;
Clouds[3] = 0x3C;
Clouds[4] = 0x9E;
Clouds[5] = 0x96;
Clouds[6] = 0xCE;
Clouds[7] = 0xFF;
Clouds[8] = 0x9F;
Clouds[9] = 0x0F;
Clouds[10] = 0x02;
char Misty[11];
Misty[0] = 0x0B;
Misty[1] = 0x00;
Misty[2] = 0x0E;
Misty[3] = 0x3C;
Misty[4] = 0x9D;
Misty[5] = 0x96;
Misty[6] = 0xCE;
Misty[7] = 0xFF;
Misty[8] = 0x9F;
Misty[9] = 0x0F;
Misty[10] = 0x02;
char Gem[11];
Gem[0] = 0x0B;
Gem[1] = 0x00;
Gem[2] = 0x0E;
Gem[3] = 0x3C;
Gem[4] = 0x9D;
Gem[5] = 0x96;
Gem[6] = 0xCC;
Gem[7] = 0xFF;
Gem[8] = 0x9F;
Gem[9] = 0x0F;
Gem[10] = 0x02;
char Ease[11];
Ease[0] = 0x0B;
Ease[1] = 0x00;
Ease[2] = 0x0E;
Ease[3] = 0x3C;
Ease[4] = 0x9C;
Ease[5] = 0x96;
Ease[6] = 0xCC;
Ease[7] = 0xFF;
Ease[8] = 0x9F;
Ease[9] = 0x0F;
Ease[10] = 0x02;
char Celestyn[11];
Celestyn[0] = 0x0B;
Celestyn[1] = 0x00;
Celestyn[2] = 0x0E;
Celestyn[3] = 0x3C;
Celestyn[4] = 0x9A;
Celestyn[5] = 0x96;
Celestyn[6] = 0xCE;
Celestyn[7] = 0xFF;
Celestyn[8] = 0x9F;
Celestyn[9] = 0x0F;
Celestyn[10] = 0x02;
char Selina[11];
Selina[0] = 0x0B;
Selina[1] = 0x00;
Selina[2] = 0x0E;
Selina[3] = 0x3C;
Selina[4] = 0x9A;
Selina[5] = 0x96;
Selina[6] = 0xCB;
Selina[7] = 0xFF;
Selina[8] = 0x9F;
Selina[9] = 0x0F;
Selina[10] = 0x02;
char Eva[11];
Eva[0] = 0x0B;
Eva[1] = 0x00;
Eva[2] = 0x0E;
Eva[3] = 0x3C;
Eva[4] = 0x9C;
Eva[5] = 0x96;
Eva[6] = 0xCA;
Eva[7] = 0xFF;
Eva[8] = 0x9F;
Eva[9] = 0x0F;
Eva[10] = 0x02;
char Hidden[11];
Hidden[0] = 0x0B;
Hidden[1] = 0x00;
Hidden[2] = 0x05;
Hidden[3] = 0x6E;
Hidden[4] = 0xFF;
Hidden[5] = 0xFF;
Hidden[6] = 0xFF;
Hidden[7] = 0xFF;
Hidden[8] = 0xE5;
Hidden[9] = 0xFF;
Hidden[10] = 0xFF;
char SoB_in[11];
SoB_in[0] = 0x0B;
SoB_in[1] = 0x00;
SoB_in[2] = 0x05;
SoB_in[3] = 0x6E;
SoB_in[4] = 0xFF;
SoB_in[5] = 0xFF;
SoB_in[6] = 0xFF;
SoB_in[7] = 0xFF;
SoB_in[8] = 0xED;
SoB_in[9] = 0xFF;
SoB_in[10] = 0xFF;
char Falcon[11];
Falcon[0] = 0x0B;
Falcon[1] = 0x00;
Falcon[2] = 0x05;
Falcon[3] = 0x6E;
Falcon[4] = 0xFF;
Falcon[5] = 0xFF;
Falcon[6] = 0xFF;
Falcon[7] = 0xFF;
Falcon[8] = 0xE7;
Falcon[9] = 0xFF;
Falcon[10] = 0xFF;
char SoB_out[11];
SoB_out[0] = 0x0B;
SoB_out[1] = 0x00;
SoB_out[2] = 0x05;
SoB_out[3] = 0x6E;
SoB_out[4] = 0xFF;
SoB_out[5] = 0xFF;
SoB_out[6] = 0xFF;
SoB_out[7] = 0xFF;
SoB_out[8] = 0xE9;
SoB_out[9] = 0xFF;
SoB_out[10] = 0xFF;
char dragon_in[11];
dragon_in[0] = 0x0B;
dragon_in[1] = 0x00;
dragon_in[2] = 0x05;
dragon_in[3] = 0x6E;
dragon_in[4] = 0xFF;
dragon_in[5] = 0xFF;
dragon_in[6] = 0xFF;
dragon_in[7] = 0xFF;
dragon_in[8] = 0xEB;
dragon_in[9] = 0xFF;
dragon_in[10] = 0xFF;
char dragon_out[11];
dragon_out[0] = 0x0B;
dragon_out[1] = 0x00;
dragon_out[2] = 0x05;
dragon_out[3] = 0x6E;
dragon_out[4] = 0xFF;
dragon_out[5] = 0xFF;
dragon_out[6] = 0xFF;
dragon_out[7] = 0xFF;
dragon_out[8] = 0xE8;
dragon_out[9] = 0xFF;
dragon_out[10] = 0xFF;
Last but not least noch ein paar andere packets, was ihr draus macht müsst ihr selbst wissen ^^
Entity Packs (Credits: two_laid, überarbeitet von MeOnXtc und mir)
0x0878 | C>S | Select Entity
{
uint16 len;
uint16 cmd = 0x0878
uint32 serial;
uint32 entity ID;
}
0x0A05 | C<S | Entity Spawn
{
uint16 len;
uint16 cmd = 0x0A05;
uint32 unk1; // 0x00
uint8 unk2; // 0x01
uint16 id; // mobid
uint32 entity; // entity id
uint32 serial;
uint32 unk3; // 0x00
float pos_x;
float pos_y;
float pos_z;
uint16 unk4; // 0x00f
0x2805 | C<S | Entity Disappear
{
uint16 len;
uint16 cmd = 0x2805;
uint32 type; //0x00: disappeared, 0x03: walked out
uint32 id;
}
0x1E07 | C<S | Entity Info
{
uint16 len;
uint16 cmd = 0x1E07;
uint32 id;
uint32 flag;
if(flag == 0)
uint8 *name;
}
0x1605 | C<S | Entity HP
{
uint16 len;
uint16 cmd = 0x1605;
}
0x5005 | C<S | Entity Walk
{
uint16 len;
uint16 cmd = 0x5005;
uint32 id;
float curX;
float curY;
float curZ;
float tarX;
float tarY;
float tarZ;
}
0x3D06 | C<S | Entity Attack
{
uint16 len;
uint16 cmd = 0x3D06;
}
0x0209 | C<S | Entity Name
{
uint16 len;
uint16 cmd = 0x0209;
uint32 id;
uint8 flag;
uint8 name[20];
}
0x1405 | C<S | Entity Info2
{
uint16 len;
uint16 cmd = 0x1405;
uint32 id;
uint16 unk1;
uint8 sex;
uint8 class;
uint8 unk2[14];
if(len > 26)
uint8 guild[22];
}
0x3C05 | C>S | Walk
{
uint16 len;
uint16 cmd = 0x3C05;
float srcX;
float srcY;
float srcZ;
uint8 unk;
float tarX;
float tarY;
float tarZ;
}
0x0A09 | C>S | Send Message
{
uint16 len;
uint16 cmd = 0x0A09;
uint32 type; // 0x00: General, 0x01: ?, 0x02: Shout, 0x07: Trade
uint16 mes_len;
uint8 *message;
}
Login Packets (Credits: two_laid, Überarbeitet von MeOnXtc)
0x0102 | C>S | Login
{
uint16 len = 0x30; // 48
uint16 cmd = 0x0102;
uint32 unk1 = 0x00;
uint8 user[16];
uint32 unk2 = 0x24;
uint8 pass[16];
uint32 unk3; // 18f0b003
}
0x0202 | C<S | Login Ack
{
uint16 len = 0x18; // 24
uint16 cmd = 0x0202;
uint32 success; // 0x00: success
uint32 aid = (success != 0x00) ? -1 : aid; // 0x16A5
uint32 unk2 = (success != 0x00) ? -1 : unk2; // 0x00
uint32 unk3 = (success != 0x00) ? -1 : unk3; // 0x0F33FFB4
uint32 unk4; // 0x00
// success:
// 0x00 -> success
// 0x09 -> already online (but can still connect on choice)
// 0x10 -> "You can't login."
// others (normally 0x08) -> wrong user/pw
}
0x0302 | C>S | Request WorldList
{
uint16 len = 0x05;
uint16 cmd = 0x0203;
uint8 unk1 = 0x00;
}
0x0402 | C<-S | Worldlist
{
uint16 size;
uint16 cmd = 0x0204;
uint32 unk1; // 0x00
uint16 chan_count; // 0x07
uint16 world_count; // 0x03
world_list {
uint8 *name[32]; //nullterminated
uint16 unk2; // 0x100 | 0x0182 | 0x01B0
uint16 chan_n; // 0x03 | 0x02 | 0x02
uint16 unk4; // 0x00 | 0x00 | 0x00
uint32 unk5; // 0x01 | 0x01 | 0x01
}
chan_list {
uint8 *name[32];
uint16 unk6; // 0x34 | 0x36 | 0x00 | 0x84 | 0x00 | 0x70 | 0x00
uint16 unk7; // 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF
uint8 unk8; // 0x01 | 0x01 | 0x01 | 0x01 | 0x01 | 0x01 | 0x01
uint8 state; // 0: Checking/Close; 1: Normal; 2: Congestion?; 3: Full?
uint32 unk9; // 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x01 | 0x00
}
}
0x0502 | C->S | Channel Select
{
uint16 size;
uint16 cmd;
uint16 chan_num; //zero-based
}
0x0602 | C<-S | Channel Info
{
uint16 size = 0x12;
uint16 cmd = 0x0206;
uint32 unk1; // 0x00
uint32 ip;
uint16 port;
uint32 sid; //session?
}
0x0103 | C->S | World Auth
{
uint16 size = 0x0C
uint16 cmd = 0x0301;
uint32 aid;
uint32 sid;
}
0x0203 | C<-S | World Auth Ack
{
uint16 size = 0x08;
uint16 cmd = 0x0302;
uint32 success; // 0x00: success
}
0x0B03 | C>S | Request Charlist
{
uint16 len = 0x05;
uint16 cmd = 0x0B03;
uint8 unk1; // 0x00
}
0x0C03 | C<S | Charlist
{
uint16 len = 0x10; // 16
uint16 cmd = 0x0C03;
uint32 unk1; // 0x00
uint32 selected_char; //charid of the selected char
uint8 char_count;
char_count * uint8[335] {
uint8 slot;
uint8 name[13]; // w_char + null-terminated
uint32 unk6; // 0x00
uint32 unk7; // 0x2F138C00
uint32 unk8; // 0x00
uint32 unk9; // 0x2EB09BDF
uint32 unk10; // 0x04B4F900
uint32 unk11; // 0x2EB40700
uint32 unk12; // 0x2EB8D918
uint32 cid;
uint8 land_lvl;
uint16 sea_lvl; // 0x01
uint32 class; // 0: mercenary; 1: ?; 2: explorer; 3: noble; 4: saint
uint32 sex; // 0:male; 1:female
uint8 EyeColor;
uint8 Hair;
uint8 HairColor;
uint8 Face;
uint32 unk19; // 0x00
uint8 map[12]; // nullterminated;
uint8 unk; // 0x04
uint32 unk; // 0x2EBB0000
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0xFF
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0x04
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0x00
uint32 unk; // 0x00
}
}
0x0D03 | C>S | Create Char
{
uint16 len;
uint16 cmd = 0x0D03;
uint8 slot
uint8 *name; // Unicode + null-terminated
....
....
uint8 eye_color;
uint8 hair;
uint8 hair_color;
uint8 face;
uint32 unk;
uint32 sex;
uint32 class;
}
0x0D03 | C<S | Create Char Answer
{
uint16 len = 0800;
uint16 cmd = 030E;
uint32 0xFFFFFFF4 // charname already exist
}
0x0F03 | C>S | Delete Char
{
uint16 len;
uint16 cmd = 0x0F03;
uint32 unk1; // 0x1234 - charid?
uint8 *name; // Unicode + null-terminated
uint32 unk6; // 0x016E06F8 - session kacke?
uint32 unk7; // 0x00
uint32 unk8; // 0x016E16F8 - similar to unk6 O.o
uint16 unk9; // 0x04
uint16 unk10; // 0x00
uint32 unk11; // 0x01
uint32 unk12; // 0x00
uint32 unk13; // 0x03B0F018 - session kacke #3
}
0x1003 | C<S | Delete Char Ack
{
uint16 len = 0x0C; // 12
uint16 cmd = 0x1003;
uint32 success; // 0x00: success
uint32 unk1; // see 0x0F03.unk1
}
0x1103 | C>S | Select Char
{
uint16 len;
uint16 cmd = 0x1103;
uint32 cid; //charid
uint8 name[13]; // w_char + null-terminated
uint32 unk4; // 0x016E06F8
uint32 unk5; // 0x00
uint32 unk6; // 0x016E06F8 ; similiar to unk4
uint32 unk7; // 0x400
uint32 unk8; // 0x01
uint32 unk9; // 0x00
uint16 unk10; // 0xF250
}
0x1203 | C<S | Select Char Ack
{
uint16 len = 0x08;
uint16 cmd = 0x1203;
uint8 success; //0: success
}
0x0211 | C>S | Character Info
{
uint16 len;
uint16 cmd = 0x0211;
uint32 unk; // 0x00
uint32 CharID;
uint8 name[14]; //unicode
uint32 unk1;
uint32 unk2;
uint32 unk3;
uint32 unk4;
uint32 unk5;
uint32 unk6;
uint16 unk7;
uint32 unk8;
uint32 unk9;
uint8 unk10;
uint16 unk11;
uint8 map[7];
float pos_x;
float pos_y;
float pos_z;
uint8 sea_lvl; b86
uint8 land_lvl; b85
uint32 unk12; // 0x00
uint32 unk13; // 0x40F0E050
uint32 unk14; // 0x00
uint32 unk15; // 0x4074C000
uint32 unk16; // 0x00
uint32 unk17; // 0x00
uint32 unk18; // 0x00
uint32 unk19; // 0x40A8B800
uint32 cur_hp; b130 b131
uint32 cur_mp; b134 b135
uint16 unk20; // 0xA9D0 | 0x86FD
uint16 unk21; // 0x04
uint16 unk22; // 0x00 | 0x04
uint32 unk23; // 0x44D0F4
uint32 unk24; // 0x6DE0035D
uint32 unk25; // 0x0477FCC3
uint32 unk26; // 0x00
uint32 unk27; // 0x01D780
uint32 unk28; // 0x00
uint16 unk29; // 0x8000
uint16 unk30; // 0x4000
uint32 unk32; // 0x00
uint32 unk32; // 0x01D380
uint8 save_map[7]; //eg "af2"
uint8 save_map_area[10]; //eg "AF2_006"
uint16 unk33; // 0x2A
uint16 unk34; // 0x316A
uint8 unk35; // 0x00
uint16 unk36; // 0x4C, 0x43
uint16 unk37; // 0x2A
uint32 unk38; // 0xFE8CFB86
uint32 unk39; // 0x62C004B4
}
0x3208 | C<S | Character Stats
{
uint16 len = 0xA0;
uint16 cmd = 0x3208;
uint32 strength;
uint32 dexterity;
uint32 constitution;
uint32 intelligence;
uint32 wisdom;
uint32 will;
uint32 luck;
uint32 unk1; // 0x00 | most likely Statpoints
uint32 hp; // max_hp?
uint32 mp; // max_mp?
uint32 ph_min;
uint32 ph_max;
uint32 hit;
uint32 aspd; // notsure? 1000
uint32 unk2; // 135 | maybe range
uint32 critical;
uint32 ph2_min;
uint32 ph2_max;
uint32 hit2;
uint32 unk3; // 1700
uint32 unk4; // 1535
uint32 critical2;
uint32 unk5; // 112
uint32 unk6; // 118
uint32 unk7; // 103
uint32 unk8; // 16
uint32 unk9; // 0x00
uint32 unk10; // 0x24
uint32 unk11; // 0x0C
uint32 unk12; // 0x19
uint32 unk13; // 0x0280 | 640
uint32 unk14; // 0x00
uint32 unk15; // 0x00
uint32 unk16; // 0x00
uint32 unk17; // 0x00
uint32 unk18; // 0x00
uint32 unk19; // 0x00
uint32 unk20; // 0x00
uint32 unk21; // 0x00
}
0x3C08 | C<S | Ship Info
{
uint16 len = 0x98;
uint16 cmd = 0x3C08;
uint32 unk1; // 0x00
uint32 max_dp;
uint32 dmg; // dp = max_dp - dmg
uint32 unk2; // maybe dmg percentage
uint32 crew_count;
uint32 unk3; // maybe crew condition
uint32 unk4; // 0x00
uint32 unk5; // 0x00
uint32 unk6; // 0x00
uint32 unk7; // 0x00
uint32 fav_wind; // favorable wind
uint32 adv_wind; // adverse wind
uint32 turning_power;
uint32 accel; // accelaration = accel / 10
uint32 decel; // deceleration = decel / 10
uint32 unk8; // 448
uint32 unk9; // 0x00
uint32 unk10; // 0x00
uint32 unk11; // 0x00
uint32 unk12; // 0x00
uint32 ph;
uint32 reload; // in 1/1000 seconds
uint32 range; // in cm
uint32 range; // again..?
uint32 critical; // in %
uint32 unk13; // 0xA0 | 160
uint32 unk14; // 0x09C4 | 2500
uint32 unk15; // 0x00
uint32 unk16; // 0x00
uint32 unk17; // 0x00
uint32 unk18; // 0x00
uint32 unk19; // 0x00
uint32 unk20; // 0x3C | 60
uint32 unk21; // 0x03
uint32 unk22; // 700
uint32 unk23; // 1000
}
0x0D11 | C<S | Inventory ?
{
uint16 len;
uint16 cmd = 0x0D11;
uint8 unk1; // 0x0F - itemcount?
}
0x0C11 | C<S | Unknown
{
uint16 len = 0x06;
uint16 cmd = 0x0B11;
uint16 unk; // 0x00
}
0x1511 | C<S | Unknown
{
uint16 len = 0x0B;
uint16 cmd = 0x1511;
uint16 unk1 = 0x00;
uint16 unk2; // 0xFF02
}
0x1F11 | C<S | Unknown
{
uint16 len = 0x13;
uint16 cmd = 0x1F11;
uint32 unk1 = 0x00;
uint32 unk2; // 0x01
uint32 unk3; // 0x03
uint16 unk4; // 0x00
uint8 unk5; // 0x00
}
0x2011 | C<S | Unknown
{
uint16 len = 0x05;
uint16 cmd = 0x2011;
uint8 unk = 0x00;
}
0x3311 | C<S | Unknown
{
uint16 len = 0x09;
uint16 cmd = 0x3311;
uint32 unk1 = 0x00;
uint8 unk2 = 0x00;
}
0x2911 | C<S | Unknown
{
uint16 len = 0x16;
uint16 cmd = 0x2911;
uint32 unk1 = 0x00;
uint32 unk2; // 0xFFFFFFFF
uint32 unk3; // 0xFFFFFFFF
uint32 unk4; // 0xFFFFFFFF
uint16 unk5; // 0x00FF
}
0x3D11 | C<S | Unknown
{
uint16 len = 0x09;
uint16 cmd = 0x3D11;
uint32 unk1 = 0x00;
uint8 unk2 = 0x00;
}
0x4711 | C<S | Unknown
{
uint16 len = 0x09;
uint16 cmd = 0x4711;
uint32 unk1 = 0x00;
uint8 unk2 = 0x00;
}
0x5B11 | C<S | Unknown
{
uint16 len = 0x0C;
uint16 cmd = 0x5B11;
uint32 unk1 = 0x00;
uint32 unk2 = 0x00;
}
0x4911 | C<S | Unknown
{
uint16 len = 0x0C;
uint16 cmd = 0x4911;
uint32 unk1 = 0x00;
uint32 unk2 = 0x00;
}
0x4B11 | C<S | Unknown
{
uint16 len = 0x0B;
uint16 cmd = 0x4B11;
uint32 unk1 = 0x00;
uint16 unk2 = 0x00;
uint8 unk3 = 0x00;
}
0x4D11 | C<S | Unknown
{
uint16 len = 0x09;
uint16 cmd = 0x4D11;
uint32 unk1 = 0x00;
uint8 unk2 = 0x00;
}
0x4F11 | C<S | Unknown
{
uint16 len = 0x09;
uint16 cmd = 0x4F11;
uint32 unk1 = 0x00;
uint8 unk2 = 0x00;
}
0x5111 | C<S | Unknown
{
uint16 len = 0x09;
uint16 cmd = 0x5111;
uint32 unk1 = 0x00;
uint8 unk2 = 0x00;
}
0x6A08 | C<S | Entity..something? -> maybe looting
{
uint16 len; // 12, 15, 18 O_o
uint16 cmd = 0x6A08;
uint32 unk1; // 0x119954 - some kind of id?
uint32 unk2; // 0x120302 - some kind of id too?
uint8 unk3; // 0x03
uint8 unk4; // 0x12, 0x13
uint8 unk5; // 0x00
}
0x1C05 | C<S | Entity..something?
{
uint16 len = 0x10;
uint16 cmd = 0x1C05;
uint32 id; // id of an entity
uint32 unk1; // 0x6C
uint32 unk2; // 0x6C
}
0xAD05 | C<S | Unknown
{
uint16 len = 0x05;
uint16 cmd = 0xAD05;
uint8 unk = 0x00;
}
0x0000 | C<S | wtf..
{
uint16 len = 0x07;
uint16 cmd = 0x00;
uint8 unk1; // 0x01
uint8 unk2; // 0x01
uint8 unk3; // 0x00
}
0x0B12 | C<S | Unknown
{
uint16 len = 0x06;
uint16 cmd = 0x0B12;
uint16 unk1 = 0xEFFF;
}
0x0A08 | C<S | Entity..something
{
uint16 len = 0x18;
uint16 cmd = 0x0A08;
uint32 unk1; // 0x00, 0x07, 0x6B, 0x80, 0x88, 0x8D, 0x92
uint32 id; // entity id
uint32 unk2; // 0x01, 0x05
uint32 id2; // another entity; can be same as id (if unk3==0x05??)
uint32 unk3; // 0x05, 0x06, 0xFFFFFFE3, 0xFFFFFFF9
}
0x2606 | C<S | Entity..something
{
uint16 len = 0x16;
uint16 cmd = 0x2606;
uint32 id; // id of an entity
uint32 unk1; // 0x34, 0x36, 0x37
uint32 id2; // second entity
uint32 unk2 = 0x00;
uint16 unk3; // 0xFFFF
}
0x2806 | C<S | Entity..something
{
uint16 len = 0x10;
uint16 cmd = 0x2806;
uint32 id; // entity id
uint32 id2; // second entity
uint32 unk1; // 0x35, 0x6C
}
0x4F05 | C<S | Entity..something
{
uint16 len = 0x27;
uint16 cmd = 0x4F05;
uint32 id; // entity
//...
}
0x1705 | C<S | Entity..something
{
uint16 len = 0x25;
uint16 cmd = 0x1705;
uint32 id; //entity
uint32 unk1; // 0x00FFFFFF
uint32 unk2; // 0x00
uint32 unk3; // 0x0C
uint32 unk4; // another entity id
uint32 unk5; // 0xFFFFFFFF
uint8 unk6; // 0x00
uint32 unk7; // another entity id
uint32 unk8; // 0x25B5
}
0x1706 | C<S | Status update?
{
uint16 len = 0x43;
uint16 cmd = 0x1706;
uint32 unk1;
uint32 unk2;
uint32 unk3;
uint32 unk4;
uint32 exp;
// ...
}
Some Other Stuff (Looting etc; Credits: MeOnXtc)
Recv - Lootable items at mob
{
2E 00 - Length
05 0A - OpCode
uint32 - unknown //0xFF
uint16 - sign //FE = span alive F8 = Dead lootable
uint8 - unknown //0xFF
uint32 - deadEntityID
uint32 - itemID
uint32 - unknown //0xFF
float - koordX
float - koordY
float - koordZ
uint24 - unknown //0xFF
uint32 - unknown //0x00
uint32 - unknown //0xFF
}
Send - Loot item ( 2 packets in 1 )
{
06 00 - Length
09 3C - OpCode
uint16 - unknown //0xAF FF
10 00 - Length
0C AA - OpCode
uint16 - sign //from Recv Pack - Lootable items
uint16 - unknown //0xFF
uint32 - itemSerial
uint32 - itemID
}
Recv - Lootrecht
{
25 00 - Length
05 17 - OpCode
uint32 - deadEntityID
uint24 - unknown //0x00
uint32 - unknown //0xFF
uint8 - unknown //0xFF
uint32 - unknown //0xDDFFFFFF
uint32 - charID
uint32 - unknown //0x00
uint8 - unknown //0xFF
uint32 - oldEntityID
uint32 - itemID
}
Send - Use Item ( Pot )
{
06 00 - Length
0F 01 - OpCode
uint16 - ItemID
}
Send - Sit
{
05 00 - Length
05 08 - Opcode
uint8 - FE=SitDown, FF=StandUP
}
Send - Talk / Chat
{
uint16 - Length
09 0A - OpCode
uint32 - Target Chat // FF=General
uint8 - msg Length
uint8 - AnsiiChar
...
uint8 - 0 terminator // 0xFF
}
Recv - Talk / Chat
{
uint16 - Length
09 32 - OpCode
uint8 - unknown // 0xFF
uint8 - Target Chat // FF=General FD=Server
...
}
Recv - Attack (DMG...)
{
uint16 - Length // 33=miss 43=hit
06 17 - OpCode
uint32 - CharId
uint32 - EntityID
uint32 - unknown
uint32 - unknown
uint32 - unknown
uint32 - unknown //maybe counter
uint32 - unknown
uint16 - unknown //0x00
uint8 - unknown //0xFF
uint16 - unknown //0x00
uint8 - length? from 06 03
uint32 - maxHP? from 06 03
float - koordX
float - koordY
float - koordZ
uint8 - unknown // 0xFE
uint32 - EntityID
uint16 - unknown // 0xFF
uint16 - DMG
uint32 - unknown // 0xFF000000
uint32 - unknown // 0xFF
}
Recv - Somethin like posi refresh ???
{
uint 16 - Length // 14 00
05 5A - OpCode
uint32 - charID
koordX
koordY
koordZ
}
Send - Somethin like post refresh ???
{
uint16 - Length // 10 00
05 3D - OpCode
koordX
koordY
koordZ
}
Send - Spawn after dead
{
uint16 - Length // 09 00
06 00 - Opcode
uint16 - SpawnLocation // FF FE = altar , FF FD = town
uint24 - unknown // 0xFFFFFF
}
Recv - HS Enabled?
{
08 00 63 03 FA FF FB 16
}
Soh ich hoffe ihr könnt damit etwas anfangen und ich hoffe dass meine PM box in den nächsten Tagen nicht überläuft vor PMs xD
Ich werde keine Fragen dazu beantworten, wenn etwas davon nicht mehr funktioniert funktioniert es halt nicht mehr oder brauch nur nen kleineres Update.
Viel Spaß damit
greetz