Data Types: Difference between revisions
From RuneWiki
No edit summary |
|||
Line 1: | Line 1: | ||
== | === Alt Packets === | ||
These buffer functions are used to obfuscate the network protocol - there are 3 alt types typically, but their obfuscation process can strip out unused methods so there is a chance not all of them are in a specific revision. | |||
You won't find these used in the cache. | |||
==== Get ==== | |||
<syntaxhighlight lang="java" line="1"> | |||
public final int g1_alt1() { | |||
return this.data[this.pos++] - 128 & 0xFF; | |||
} | |||
public final int g1_alt2() { | |||
return -this.data[this.pos++] & 0xFF; | |||
} | |||
public final int g1_alt3() { | |||
return 128 - this.data[this.pos++] & 0xFF; | |||
} | |||
public final byte g1b_alt1() { | |||
return (byte) (this.data[this.pos++] - 128); | |||
} | |||
public final byte g1b_alt2() { | |||
return (byte) -this.data[this.pos++]; | |||
} | |||
public final byte g1b_alt3() { | |||
return (byte) (128 - this.data[this.pos++]); | |||
} | |||
public final int g2_alt2() { | |||
this.pos += 2; | |||
return ((this.data[this.pos - 2] & 0xFF) << 8) + (this.data[this.pos - 1] - 128 & 0xFF); | |||
} | |||
public final int g2_alt3() { | |||
this.pos += 2; | |||
return ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] - 128 & 0xFF); | |||
} | |||
public final int g3_alt1() { | |||
this.pos += 3; | |||
return ((this.data[this.pos - 3] & 0xFF) << 16) + ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] & 0xFF); | |||
} | |||
public final int g4_alt1() { | |||
this.pos += 4; | |||
return ((this.data[this.pos - 1] & 0xFF) << 24) + ((this.data[this.pos - 2] & 0xFF) << 16) + ((this.data[this.pos - 3] & 0xFF) << 8) + (this.data[this.pos - 4] & 0xFF); | |||
} | |||
data - | public final int g4_alt2() { | ||
this.pos += 4; | |||
return ((this.data[this.pos - 2] & 0xFF) << 24) + ((this.data[this.pos - 1] & 0xFF) << 16) + ((this.data[this.pos - 4] & 0xFF) << 8) + (this.data[this.pos - 3] & 0xFF); | |||
} | |||
public final int g4_alt3() { | |||
this.pos += 4; | |||
return ((this.data[this.pos - 3] & 0xFF) << 24) + ((this.data[this.pos - 4] & 0xFF) << 16) + ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] & 0xFF); | |||
} | |||
</syntaxhighlight> | |||
==== Put ==== | |||
<syntaxhighlight lang="java" line="1"> | |||
public final void p1_alt1(int value) { | |||
this.data[this.pos++] = (byte) (value + 128); | |||
} | |||
public final void p1_alt2(int value) { | |||
this.data[this.pos++] = (byte) -value; | |||
} | |||
= | public final void p1_alt3(int value) { | ||
( | this.data[this.pos++] = (byte) (128 - value); | ||
} | |||
public final void p2_alt1(int value) { | |||
this.data[this.pos++] = (byte) value; | |||
this.data[this.pos++] = (byte) (value >> 8); | |||
} | |||
== | public final void p2_alt2(int value) { | ||
( | this.data[this.pos++] = (byte) (value >> 8); | ||
this.data[this.pos++] = (byte) (value + 128); | |||
} | |||
public final void p2_alt3(int value) { | |||
this.data[this.pos++] = (byte) (value + 128); | |||
this.data[this.pos++] = (byte) (value >> 8); | |||
} | |||
public final void p4_alt1(int value) { | |||
this.data[this.pos++] = (byte) value; | |||
this.data[this.pos++] = (byte) (value >> 8); | |||
this.data[this.pos++] = (byte) (value >> 16); | |||
this.data[this.pos++] = (byte) (value >> 24); | |||
} | |||
public final void p4_alt2(int value) { | |||
this.data[this.pos++] = (byte) (value >> 8); | |||
this.data[this.pos++] = (byte) value; | |||
this.data[this.pos++] = (byte) (value >> 24); | |||
this.data[this.pos++] = (byte) (value >> 16); | |||
} | |||
public final void p4_alt3(int value) { | |||
this.data[this.pos++] = (byte) (value >> 16); | |||
this.data[this.pos++] = (byte) (value >> 24); | |||
this.data[this.pos++] = (byte) value; | |||
this.data[this.pos++] = (byte) (value >> 8); | |||
} | |||
</syntaxhighlight> | |||
Revision as of 14:46, 11 February 2024
Alt Packets
These buffer functions are used to obfuscate the network protocol - there are 3 alt types typically, but their obfuscation process can strip out unused methods so there is a chance not all of them are in a specific revision.
You won't find these used in the cache.
Get
public final int g1_alt1() {
return this.data[this.pos++] - 128 & 0xFF;
}
public final int g1_alt2() {
return -this.data[this.pos++] & 0xFF;
}
public final int g1_alt3() {
return 128 - this.data[this.pos++] & 0xFF;
}
public final byte g1b_alt1() {
return (byte) (this.data[this.pos++] - 128);
}
public final byte g1b_alt2() {
return (byte) -this.data[this.pos++];
}
public final byte g1b_alt3() {
return (byte) (128 - this.data[this.pos++]);
}
public final int g2_alt2() {
this.pos += 2;
return ((this.data[this.pos - 2] & 0xFF) << 8) + (this.data[this.pos - 1] - 128 & 0xFF);
}
public final int g2_alt3() {
this.pos += 2;
return ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] - 128 & 0xFF);
}
public final int g3_alt1() {
this.pos += 3;
return ((this.data[this.pos - 3] & 0xFF) << 16) + ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] & 0xFF);
}
public final int g4_alt1() {
this.pos += 4;
return ((this.data[this.pos - 1] & 0xFF) << 24) + ((this.data[this.pos - 2] & 0xFF) << 16) + ((this.data[this.pos - 3] & 0xFF) << 8) + (this.data[this.pos - 4] & 0xFF);
}
public final int g4_alt2() {
this.pos += 4;
return ((this.data[this.pos - 2] & 0xFF) << 24) + ((this.data[this.pos - 1] & 0xFF) << 16) + ((this.data[this.pos - 4] & 0xFF) << 8) + (this.data[this.pos - 3] & 0xFF);
}
public final int g4_alt3() {
this.pos += 4;
return ((this.data[this.pos - 3] & 0xFF) << 24) + ((this.data[this.pos - 4] & 0xFF) << 16) + ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] & 0xFF);
}
Put
public final void p1_alt1(int value) {
this.data[this.pos++] = (byte) (value + 128);
}
public final void p1_alt2(int value) {
this.data[this.pos++] = (byte) -value;
}
public final void p1_alt3(int value) {
this.data[this.pos++] = (byte) (128 - value);
}
public final void p2_alt1(int value) {
this.data[this.pos++] = (byte) value;
this.data[this.pos++] = (byte) (value >> 8);
}
public final void p2_alt2(int value) {
this.data[this.pos++] = (byte) (value >> 8);
this.data[this.pos++] = (byte) (value + 128);
}
public final void p2_alt3(int value) {
this.data[this.pos++] = (byte) (value + 128);
this.data[this.pos++] = (byte) (value >> 8);
}
public final void p4_alt1(int value) {
this.data[this.pos++] = (byte) value;
this.data[this.pos++] = (byte) (value >> 8);
this.data[this.pos++] = (byte) (value >> 16);
this.data[this.pos++] = (byte) (value >> 24);
}
public final void p4_alt2(int value) {
this.data[this.pos++] = (byte) (value >> 8);
this.data[this.pos++] = (byte) value;
this.data[this.pos++] = (byte) (value >> 24);
this.data[this.pos++] = (byte) (value >> 16);
}
public final void p4_alt3(int value) {
this.data[this.pos++] = (byte) (value >> 16);
this.data[this.pos++] = (byte) (value >> 24);
this.data[this.pos++] = (byte) value;
this.data[this.pos++] = (byte) (value >> 8);
}