Skip to content

Commit c12e9ae

Browse files
committed
4.3.0
1 parent da7a49a commit c12e9ae

File tree

2 files changed

+79
-1
lines changed

2 files changed

+79
-1
lines changed

Formulas.cs

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,4 +373,82 @@ public override uint CalcAuthFromOpcode(uint opcode)
373373
return ((opcode & 0x8000) >> 13) | ((opcode & 0x80) >> 7) | ((opcode & 0x800) >> 10);
374374
}
375375
}
376+
377+
public class Windows430 : FormulasBase
378+
{
379+
public override string ToString()
380+
{
381+
return "4.3.0.15005 Windows";
382+
}
383+
384+
protected override bool AuthCheck(uint opcode)
385+
{
386+
return (opcode & 0xEBDE) == 770;
387+
}
388+
389+
protected override bool SpecialCheck(uint opcode)
390+
{
391+
return (opcode & 0x9549) == 1032;
392+
}
393+
394+
protected override bool NormalCheck(uint opcode)
395+
{
396+
return (opcode & 0x8159) == 0;
397+
}
398+
399+
public override uint CalcCryptedFromOpcode(uint opcode)
400+
{
401+
return (opcode & 6 | ((opcode & 0x20 | (((opcode & 0x80) | (opcode >> 1) & 0x3F00) >> 1)) >> 2)) >> 1;
402+
}
403+
404+
public override uint CalcSpecialFromOpcode(uint opcode)
405+
{
406+
return (opcode & 6 | ((opcode & 0x30 | (((opcode & 0x80) | ((opcode & 0x200 | ((opcode & 0x800 | (opcode >> 1) & 0x3000) >> 1)) >> 1)) >> 1)) >> 1)) >> 1;
407+
}
408+
409+
public override uint CalcAuthFromOpcode(uint opcode)
410+
{
411+
return opcode & 1 | ((opcode & 0x20 | ((opcode & 0x400 | (opcode >> 1) & 0x800) >> 4)) >> 4);
412+
}
413+
}
414+
415+
public class Mac430 : FormulasBase
416+
{
417+
public override string ToString()
418+
{
419+
return "4.3.0.15005 Mac";
420+
}
421+
422+
protected override uint BaseOffset { get { return 1380; } }
423+
424+
protected override bool AuthCheck(uint opcode)
425+
{
426+
return (opcode & 0xEBDE) == 770;
427+
}
428+
429+
protected override bool SpecialCheck(uint opcode)
430+
{
431+
return (opcode & 0x9549) == 1032;
432+
}
433+
434+
protected override bool NormalCheck(uint opcode)
435+
{
436+
return (opcode & 0x8159) == 0;
437+
}
438+
439+
public override uint CalcCryptedFromOpcode(uint opcode)
440+
{
441+
return ((opcode & 0x7E00u) >> 5) | ((opcode & 0x80u) >> 4) | ((opcode & 6u) >> 1) | ((opcode & 0x20u) >> 3);
442+
}
443+
444+
public override uint CalcSpecialFromOpcode(uint opcode)
445+
{
446+
return ((opcode & 0x6000) >> 6) | ((opcode & 0x800) >> 5) | ((opcode & 0x200) >> 4) | ((opcode & 0x80) >> 3) | ((opcode & 6) >> 1) | ((opcode & 0x30) >> 2);
447+
}
448+
449+
public override uint CalcAuthFromOpcode(uint opcode)
450+
{
451+
return ((opcode & 0x1000) >> 9) | opcode & 1 | ((opcode & 0x400) >> 8) | ((opcode & 0x20) >> 4);
452+
}
453+
}
376454
}

README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
This is a simple form that converts opcodes as server sees them to/from various values used by WoW client.
22
Don't expect it to magically give you all the opcodes.
33

4-
Fields exaplanation:
4+
Fields explanation:
55
Opcode (hex/decimal) - opcode as server sends and receives it.
66
Special (hex) - value used in NetClient__ProcessSpecialOpcodes / NetClient__JAMClientDispatch.
77
Auth (dec) - value used in NetClient__HandleAuthOpcodes / NetClient__JAMClientConnectionDispatch.

0 commit comments

Comments
 (0)