Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
# NODE_STAFF=pazaz
# NODE_CLIENT_ROUTEFINDER=true
# NODE_SOCKET_TIMEOUT=true
# NODE_WALKTRIGGER_SETTING=0
# NODE_PROFILE=main
# NODE_MAX_PLAYERS=2047
# NODE_MAX_NPCS=8191
Expand Down
9 changes: 5 additions & 4 deletions src/engine/GameMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import Packet from '#/io/Packet.js';
import Environment from '#/util/Environment.js';
import { printDebug, printFatalError, printWarning } from '#/util/Logger.js';

export type RouteCoordinates = { x: number; z: number };

export default class GameMap {
private static readonly OPEN: number = 0x0;
private static readonly BLOCK_MAP_SQUARE: number = 0x1;
Expand Down Expand Up @@ -339,6 +341,9 @@ export function changeLocCollision(shape: number, angle: number, blockrange: boo
}
}
}
export function findNaivePath(level: number, srcX: number, srcZ: number, destX: number, destZ: number, srcWidth: number, srcHeight: number, destWidth: number, destHeight: number, extraFlag: number, collision: CollisionType): Uint32Array {
return rsmod.findNaivePath(level, srcX, srcZ, destX, destZ, srcWidth, srcHeight, destWidth, destHeight, extraFlag, collision);
}

/**
* Change collision at a specified Position for npcs.
Expand Down Expand Up @@ -387,10 +392,6 @@ export function findPathToLoc(level: number, srcX: number, srcZ: number, destX:
return rsmod.findPath(level, srcX, srcZ, destX, destZ, srcSize, destWidth, destHeight, angle, shape, true, blockAccessFlags, 25, CollisionType.NORMAL);
}

export function findNaivePath(level: number, srcX: number, srcZ: number, destX: number, destZ: number, srcWidth: number, srcHeight: number, destWidth: number, destHeight: number, extraFlag: number, collision: CollisionType): Uint32Array {
return rsmod.findNaivePath(level, srcX, srcZ, destX, destZ, srcWidth, srcHeight, destWidth, destHeight, extraFlag, collision);
}

export function reachedEntity(level: number, srcX: number, srcZ: number, destX: number, destZ: number, destWidth: number, destHeight: number, srcSize: number): boolean {
return rsmod.reached(level, srcX, srcZ, destX, destZ, destWidth, destHeight, srcSize, 0, -2, 0);
}
Expand Down
16 changes: 0 additions & 16 deletions src/engine/World.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ import Environment from '#/util/Environment.js';
import { fromBase37, toBase37, toSafeName } from '#/util/JString.js';
import LinkList from '#/datastruct/LinkList.js';
import { printDebug, printError, printInfo } from '#/util/Logger.js';
import { WalkTriggerSetting } from '#/engine/entity/WalkTriggerSetting.js';

import OnDemand from './OnDemand.js';
import { ObjDelayedRequest } from './entity/ObjDelayedRequest.js';
import DbTableIndex from '#/cache/config/DbTableIndex.js';
Expand Down Expand Up @@ -612,7 +610,6 @@ class World {
player.processInputTracking();

if (isClientConnected(player) && player.decodeIn()) {
const followingPlayer = player.targetOp === ServerTriggerType.APPLAYER3 || player.targetOp === ServerTriggerType.OPPLAYER3;
if (player.userPath.length > 0 || player.opcalled) {
if (player.delayed) {
player.unsetMapFlag();
Expand All @@ -624,19 +621,6 @@ class World {
} else {
player.moveClickRequest = true;
}

if (!followingPlayer && player.opcalled && (player.userPath.length === 0 || !Environment.NODE_CLIENT_ROUTEFINDER)) {
player.pathToTarget();
continue;
}

if (Environment.NODE_WALKTRIGGER_SETTING !== WalkTriggerSetting.PLAYERPACKET) {
player.pathToMoveClick(player.userPath, !Environment.NODE_CLIENT_ROUTEFINDER);

if (Environment.NODE_WALKTRIGGER_SETTING === WalkTriggerSetting.PLAYERSETUP && !player.opcalled && player.hasWaypoints()) {
player.processWalktrigger();
}
}
}
}

Expand Down
4 changes: 4 additions & 0 deletions src/engine/entity/AllowRepath.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export const enum AllowRepath {
BEFOREDEST,
NONE
}
10 changes: 5 additions & 5 deletions src/engine/entity/Npc.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { NpcInfoProt } from '@2004scape/rsbuf';
import * as rsbuf from '@2004scape/rsbuf';
import { CollisionFlag, CollisionType } from '@2004scape/rsmod-pathfinder';
import { CollisionFlag } from '@2004scape/rsmod-pathfinder';

import HuntType from '#/cache/config/HuntType.js';
import NpcType from '#/cache/config/NpcType.js';
Expand All @@ -26,7 +26,7 @@ import { NpcQueueRequest } from '#/engine/entity/NpcQueueRequest.js';
import { NpcStat } from '#/engine/entity/NpcStat.js';
import PathingEntity from '#/engine/entity/PathingEntity.js';
import Player from '#/engine/entity/Player.js';
import { isFlagged, findNaivePath } from '#/engine/GameMap.js';
import { isFlagged } from '#/engine/GameMap.js';
import ScriptFile from '#/engine/script/ScriptFile.js';
import { HuntIterator } from '#/engine/script/ScriptIterators.js';
import ScriptPointer from '#/engine/script/ScriptPointer.js';
Expand Down Expand Up @@ -329,7 +329,7 @@ export default class Npc extends PathingEntity {
}

if (CoordGrid.intersects(this.x, this.z, this.width, this.length, this.target.x, this.target.z, this.target.width, this.target.length)) {
this.queueWaypoints(findNaivePath(this.level, this.x, this.z, this.target.x, this.target.z, this.width, this.length, this.target.width, this.target.length, 0, CollisionType.NORMAL));
this.randomWalk();
return;
}

Expand Down Expand Up @@ -683,7 +683,7 @@ export default class Npc extends PathingEntity {
return true;
}

private randomWalk(range: number) {
private wander(range: number) {
const dx = Math.round(Math.random() * (range * 2) - range);
const dz = Math.round(Math.random() * (range * 2) - range);
const destX = this.startX + dx;
Expand All @@ -703,7 +703,7 @@ export default class Npc extends PathingEntity {

// 1/8 chance to move every tick (even if they already have a destination)
if (type.moverestrict !== MoveRestrict.NOMOVE && Math.random() < 0.125) {
this.randomWalk(type.wanderrange);
this.wander(type.wanderrange);
}

this.updateMovement();
Expand Down
Loading
Loading