Put this into your rs2e foldar
[Only registered and activated users can see links. Click Here To Register...]
Open main.java
under
AddCode:m.ge = new GameEngine();
Open GameEngine.java addCode:m.ge.load();
underCode:import RS2E.NPCs.*;
AddCode:public class GameEngine
{
underCode:public int maxNPCs = 150;
public int maxListedNPCs = 7000;
AddCode:public Player[] players;
UnderCode:public NPC[] npcs;
public NPCList[] npcLists;
AddCode:public Items item;
replace ur public gameengine with this *cba doing add under **** lol*Code:public NPCMovement moveN;
public NPCUpdate updateN;
AddCode:public GameEngine()
{
players = new Player[maxPlayers];
npcs = new NPC[maxNPCs];
npcLists = new NPCList[maxListedNPCs];
globalStream = new Stream(new byte[15000]);
pkt = new Packet();
frame = new Frames();
moveP = new PlayerMovement();
updateP = new PlayerUpdate();
mapData = new MapData();
moveN = new NPCMovement();
updateN = new NPCUpdate();
}
replace urCode:public void load()
{
LoadNPCLists lnl = new LoadNPCLists();
lnl = null;
}
WithCode:public void process()
AddCode:public void process()
{
if(item == null)
{
item = new Items();
}
long processTime = 0;
if(System.currentTimeMillis() - lastEntityUpdate >= 600)
{
for(Player p : players)
{
if(p == null)
{
continue;
}
else if(p.disconnected[0] && p.disconnected[1])
{
removePlayer(p);
continue;
}
p.process();
if(p.isOnline)
{
moveP.getNextPlayerMovement(p);
}
}
long updateTime = System.currentTimeMillis();
for(Player p : players)
{
if(p != null && p.isOnline && !p.disconnected[0] && !p.disconnected[1])
{
updateP.update(p);
p.lastUpdate = updateTime;
}
}
for(Player p : players)
{
if(p != null)
{
if(p.isOnline)
{
updateP.clearUpdateFlags(p);
}
}
}
for(NPC n : npcs)
{
if(n != null && updateN != null)
{
updateN.clearUpdateFlags(n);
n.process();
if(!n.isDead)
{
if(n.randomWalk && !n.isUnderPlayerAttack)
{
moveN.randomWalk(n);
}
}
else
{
if(!n.deadEmoteDone)
{
n.requestAnim(NPCAttack.getDeathAnimation(n.npcType), 0);
n.deadEmoteDone = true;
n.combatDelay = 3;
}
else if(n.deadEmoteDone && !n.hiddenNPC && n.combatDelay <= 0)
{
n.hiddenNPC = true;
}
else if(n.hiddenNPC && n.respawnDelay <= 0)
{
if(n.needsRespawn)
{
newNPC(n.npcType, n.makeX, n.makeY, n.heightLevel, n.moveRangeX1, n.moveRangeY1,
n.moveRangeX2, n.moveRangeY2, true);
Main.m.log("New NPC");
}
npcs[n.npcIndex] = null;
rebuildNPCs();
}
}
}
}
lastEntityUpdate = System.currentTimeMillis();
}
}
addCode:private void removePlayer(Player p)
{
if(p != null)
{
int index = p.playerIndex;
players[index].destruct();
players[index] = null;
}
}
public void rebuildNPCs()
{
for(Player p : players)
{
if(p != null)
{
p.rebuildNPCList = true;
}
}
}
Code:public int newNPC(int type, int absX, int absY, int height, int mRX1, int mRY1, int mRX2, int mRY2, boolean needsRespawn)
{
int index = -1;
for(int i = 1; i < maxNPCs; i++)
{
if(npcs[i] == null)
{
index = i;
break;
}
}
if(index == -1)
{
Main.m.log("Max number of NPCs spawned");
return -1;
}
NPC n = npcs[index] = new NPC(type, index);
n.absX = absX;
n.absY = absY;
n.makeX = absX;
n.makeY = absY;
n.heightLevel = height;
n.moveRangeX1 = mRX1;
n.moveRangeY1 = mRY1;
n.moveRangeX2 = mRX2;
n.moveRangeY2 = mRY2;
n.needsRespawn = needsRespawn;
NPCList nl = npcLists[type];
if(nl != null)
{
n.name = nl.getName();
n.combatLevel = nl.getCb();
n.maxHP = nl.getHP();
n.currentHP = n.maxHP;
n.maxHit = nl.getMaxHit();
n.atkType = nl.getAtk();
n.weakness = nl.getWeakness();
n.respawnDelay = nl.getSpawnTime();
}
return index;
}
public String getNPCName(int npcType)
{
if(npcType > maxListedNPCs)
{
return new String("NPCType = " + npcType);
}
else if(npcLists[npcType] != null)
{
return npcLists[npcType].getName();
}
else
{
return new String("NPCType = " + npcType);
}
}
go into the Players foldar open player.java add
add underCode:import RS2E.NPCs.*;
thisCode:public void destruct()
{
teleportToX = teleportToY = absX = absY = 0;
playerListSize = 0;
underCode:npcListSize = 0;
add thisCode:playerList = null;
openCode:npcList = null;
npcInListBitmap = null;
PlayerInstance.java
add
Code:import RS2E.NPCs.*;
Now add this in your data foldarCode:public NPC[] npcList;
public byte[] npcInListBitmap;
public boolean rebuildNPCList = false;
public int npcListSize = 0;
[Only registered and activated users can see links. Click Here To Register...]
Your done the npcs are bugged u only see it for a split secound before you dc
<3 Ian & Mark aka T X
