mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-02 16:49:03 +00:00
Fixed random trees everywhere (#209)
* Fixed random trees everywhere * Npcs will no longer face southwest every time they take a step. Added a fixed for walking forever after teleporting/region change (only tested that walking still works, never tested if the fix would resolve the issue). You can now only click an object once per tick.
This commit is contained in:
committed by
Daniel Ginovker
parent
8393c0c928
commit
3650170a84
@@ -1 +1,4 @@
|
||||
[2019/10/27] 16:16 michael used command: bank
|
||||
[2019/11/24] 09:27 michael used command: bank
|
||||
[2019/11/24] 09:31 michael used command: bank
|
||||
[2019/11/24] 09:38 michael used command: bank
|
||||
|
||||
@@ -553,33 +553,6 @@ public class NpcHandler {
|
||||
}
|
||||
}
|
||||
|
||||
if (npcs[i].walkingType >= 0) {
|
||||
switch (npcs[i].walkingType) {
|
||||
|
||||
case 5:
|
||||
npcs[i].turnNpc(npcs[i].absX - 1, npcs[i].absY);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
npcs[i].turnNpc(npcs[i].absX + 1, npcs[i].absY);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
npcs[i].turnNpc(npcs[i].absX, npcs[i].absY - 1);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
npcs[i].turnNpc(npcs[i].absX, npcs[i].absY + 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (npcs[i].walkingType >= 0) {
|
||||
npcs[i].turnNpc(npcs[i].absX, npcs[i].absY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (npcs[i].isDead) {
|
||||
if (npcs[i].actionTimer == 0 && npcs[i].applyDead == false
|
||||
&& npcs[i].needRespawn == false) {
|
||||
|
||||
@@ -42,7 +42,7 @@ public abstract class Player {
|
||||
godSpellDelay, singleCombatDelay, singleCombatDelay2, reduceStat,
|
||||
restoreStatsDelay, logoutDelay, buryDelay, foodDelay, potDelay,
|
||||
doorDelay, doubleDoorDelay, buySlayerTimer, lastIncrease,
|
||||
boneDelay, botAttempts, leverDelay = 0, farmTime, searchObjectDelay = 0;
|
||||
boneDelay, botAttempts, leverDelay = 0, farmTime, searchObjectDelay = 0, clickDelay = 0;
|
||||
|
||||
|
||||
private Npc specialTarget = null;
|
||||
|
||||
@@ -26,6 +26,10 @@ public class ClickObject implements PacketType {
|
||||
THIRD_CLICK = 70, FOURTH_CLICK = 234;
|
||||
|
||||
public void onObjectReached(Client player, Consumer<Client> consumer) {
|
||||
if (System.currentTimeMillis() - player.clickDelay < 300)
|
||||
return;
|
||||
player.clickDelay = System.currentTimeMillis();
|
||||
|
||||
final int objectX = player.objectX;
|
||||
final int objectY = player.objectY;
|
||||
final int objectId = player.objectId;
|
||||
|
||||
@@ -170,21 +170,33 @@ public class Walking implements PacketType {
|
||||
}
|
||||
|
||||
player.getNewWalkCmdX()[0] = player.getNewWalkCmdY()[0] = 0;
|
||||
int firstStepX, firstStepY;
|
||||
|
||||
if (player.clickToTele)
|
||||
int firstStepX, firstStepY;
|
||||
int realX = 0;
|
||||
int realY = 0;
|
||||
|
||||
if (player.clickToTele) {
|
||||
firstStepX = player.getInStream().readSignedWordBigEndianA();
|
||||
else
|
||||
firstStepX = player.getInStream().readSignedWordBigEndianA()-player.getMapRegionX()*8;
|
||||
} else {
|
||||
realX = player.getInStream().readSignedWordBigEndianA();
|
||||
firstStepX = realX - player.getMapRegionX() * 8;
|
||||
}
|
||||
for (int i = 1; i < player.newWalkCmdSteps; i++) {
|
||||
player.getNewWalkCmdX()[i] = player.getInStream().readSignedByte();
|
||||
player.getNewWalkCmdY()[i] = player.getInStream().readSignedByte();
|
||||
}
|
||||
|
||||
if (player.clickToTele)
|
||||
if (player.clickToTele) {
|
||||
firstStepY = player.getInStream().readSignedWordBigEndian();
|
||||
else
|
||||
firstStepY = player.getInStream().readSignedWordBigEndian()-player.getMapRegionY()*8;
|
||||
} else {
|
||||
realY = player.getInStream().readSignedWordBigEndian();
|
||||
firstStepY = realY - player.getMapRegionY() * 8;
|
||||
}
|
||||
|
||||
if (player.distanceToPoint(realX, realY) > 30) {
|
||||
return;
|
||||
}
|
||||
|
||||
player.setNewWalkCmdIsRunning(player.getInStream().readSignedByteC() == 1 && player.playerEnergy > 0);
|
||||
for (int i1 = 0; i1 < player.newWalkCmdSteps; i1++) {
|
||||
if (player.clickToTele)
|
||||
|
||||
@@ -146,8 +146,9 @@ public class ObjectManager {
|
||||
for (Player player : PlayerHandler.players) {
|
||||
if (player != null) {
|
||||
Client c = (Client) player;
|
||||
c.getActionSender().object(o.newId, o.objectX, o.objectY,
|
||||
o.face, o.type);
|
||||
if (loadForPlayer(o, c)) {
|
||||
c.getActionSender().object(o.newId, o.objectX, o.objectY, o.face, o.type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -157,8 +158,7 @@ public class ObjectManager {
|
||||
if (player != null) {
|
||||
Client c = (Client) player;
|
||||
if (c.distanceToPoint(o.objectX, o.objectY) <= 60) {
|
||||
c.getActionSender().object(o.objectId, o.objectX,
|
||||
o.objectY, o.face, o.type);
|
||||
c.getActionSender().object(o.objectId, o.objectX, o.objectY, o.face, o.type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user