Projectile clipping, PassDoor fix (#176)

* Numbered packet sizes.
Corrected sound packet length to 6 from 5.
Corrected sound packet in server.
Teleport sound now plays correctly.
Corrected modern teleport animation playthrough.
Removed redundant teleport delay.

* Changed sendSound packet size back to 5 and removed type attribute to maintain compatibility with Parabot.

* After running around an object to attack the player will no longer wait a number of ticks to start attacking again.
Fixed an issue where walkTo being called from CycleEvents would not execute correctly.
Player will no longer face a killed npc after it respawns.
Added projectile clipping.
Added a new algorithm for player->player/npc following that accounts for projectile clipping.
This commit is contained in:
mikeysasse
2019-11-11 14:20:02 -06:00
committed by Daniel Ginovker
parent a4e4b89d99
commit c827d46ca0
66 changed files with 1293 additions and 480 deletions
+6 -2
View File
@@ -9774,8 +9774,10 @@ public class Game extends RSApplet {
int j13 = stream.readUnsignedByte();
int k15 = anInt1268 + (j13 >> 4 & 7);
int l16 = anInt1269 + (j13 & 7);
if (k15 >= 0 && l16 >= 0 && k15 < 104 && l16 < 104)
if (k15 >= 0 && l16 >= 0 && k15 < 104 && l16 < 104) {
method130(-1, -1, j8, i11, l16, k5, plane, k15, 0);
}
return;
}
if (j == 151) {
@@ -9787,6 +9789,7 @@ public class Game extends RSApplet {
int i15 = k12 >> 2;
int k16 = k12 & 3;
int l17 = anIntArray1177[i15];
//System.out.println("id: " + j10 + " x:" + (this.baseX + anInt1268) + " y:" + (this.baseY + anInt1269));
if (l4 >= 0 && k7 >= 0 && l4 < 104 && k7 < 104)
method130(-1, j10, k16, l17, k7, i15, plane, l4, 0);
return;
@@ -10645,7 +10648,7 @@ public class Game extends RSApplet {
}
if (pktType == 174) {
int id = inStream.readUnsignedWord();
int type = inStream.readUnsignedByte();
int type = /*inStream.readUnsignedByte()*/1;
int delay = inStream.readUnsignedWord();
int volume = inStream.readUnsignedByte();
sound[currentSound] = id;
@@ -11420,6 +11423,7 @@ public class Game extends RSApplet {
Signlink.reporterror(s2);
resetLogout();
exception.printStackTrace();
}
return true;
}
+26 -26
View File
@@ -34,31 +34,31 @@ final class SizeConstants {
173, 228, 121, 83, 133, 68, 0
};
public static final int[] packetSizes = {
0, 0, 0, 0, 6, 0, 0, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, 4, 3, 0, 0, 0,
0, 0, 0, 0, 5, 0, 0, 6, 0, 0,
9, 0, 0, -2, 0, 0, 0, 0, 0, 0,
-2, 1, 0, 0, 2, -2, 0, 0, 0, 0,
6, 3, 2, 4, 2, 4, 0, 0, 0, 4,
0, -2, 0, 0, 7, 2, 0, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 0, 1,
0, 2, 0, 0, -1, 4, 1, 0, 0, 0,
1, 0, 0, 0, 2, 0, 0, 15, 0, 0,
0, 4, 4, 0, 0, 0, -2, 0, 0, 0,
0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0, 0, 14, 0, 0,
0, 4, 0, 0, 0, 0, 3, 0, 0, 0,
4, 0, 0, 0, 2, 0, 6, 0, 0, 0,
0, 3, 0, 0, 5, 0, 10, 6, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -1, 0, 0, 0,
4, 0, 0, 0, 0, 0, 3, 0, 2, 0,
0, 0, 0, 0, -2, 7, 0, 0, 2, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2, -2, 0, 0, 0, 0, 6, 0, 4, 3,
0, 0, 0, -1, 6, 0, 0
0, 0, 0, 0, 6, 0, 0, 0, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //10
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //20
0, 0, 0, 0, -2, 4, 3, 0, 0, 0, //30
0, 0, 0, 0, 5, 0, 0, 6, 0, 0, //40
9, 0, 0, -2, 0, 0, 0, 0, 0, 0, //50
-2, 1, 0, 0, 2, -2, 0, 0, 0, 0, //60
6, 3, 2, 4, 2, 4, 0, 0, 0, 4, //70
0, -2, 0, 0, 7, 2, 0, 6, 0, 0, //80
0, 0, 0, 0, 0, 0, 0, 2, 0, 1, //90
0, 2, 0, 0, -1, 4, 1, 0, 0, 0, //100
1, 0, 0, 0, 2, 0, 0, 15, 0, 0, //110
0, 4, 4, 0, 0, 0, -2, 0, 0, 0, //120
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, //130
0, 0, 2, 0, 0, 0, 0, 14, 0, 0, //140
0, 4, 0, 0, 0, 0, 3, 0, 0, 0, //150
4, 0, 0, 0, 2, 0, 6, 0, 0, 0, //160
0, 3, 0, 0, 5, 0, 10, 6, 0, 0, //170
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, //180
0, 0, 0, 0, 0, 0, -1, 0, 0, 0, //190
4, 0, 0, 0, 0, 0, 3, 0, 2, 0, //200
0, 0, 0, 0, -2, 7, 0, 0, 2, 0, //210
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, //220
8, 0, 0, 0, 0, 0, 0, 0, 0, 0, //230
2, -2, 0, 0, 0, 0, 6, 0, 4, 3, //240
0, 0, 0, -1, 6, 0, 0//250
};
}