mgay let's start go in npchandler under
Code:
NPCHandler() {
for(int i = 0; i < maxNPCs; i++) {
npcs[i] = null;
}
for(int i = 0; i < maxListedNPCs; i++) {
NpcList[i] = null;
}
for(int i = 0; i < maxNPCDrops; i++) {
NpcDrops[i] = null;
}
loadNPCList("npc.cfg");
loadAutoSpawn2("NonCombatSpawn.cfg");
loadAutoSpawn("CombatSpawn.cfg");
}
add
Code:
public void archerGfx2(int startID, int movingID, int casterY, int casterX, int offsetY, int offsetX, int index, int enemyY, int enemyX) {
{
try {
GraphicsHandler.createArrow(startID, casterY, casterX, offsetY, offsetX, 50, 95, movingID, 43, 21, enemyY, enemyX, index+1);
} catch(Exception E) {
}
}
}
mgay now under
Code:
public boolean AttackPlayerMage(int NPCID) {
int Player = npcs[NPCID].StartKilling;
client p = (client) server.playerHandler.players[Player];
if (server.playerHandler.players[Player] == null) {
ResetAttackPlayer(NPCID);
return false;
} else if (server.playerHandler.players[Player].DirectionCount < 2) {
return false;
}
int EnemyX = server.playerHandler.players[Player].absX;
int EnemyY = server.playerHandler.players[Player].absY;
int EnemyHP = server.playerHandler.players[Player].playerLevel[server.playerHandler.players[Player].playerHitpoints];
int EnemyMaxHP = getLevelForXP(server.playerHandler.players[Player].playerXP[server.playerHandler.players[Player].playerHitpoints]);
int casterX = server.npcHandler.npcs[NPCID].absX;
int casterY = server.npcHandler.npcs[NPCID].absY;
int offsetY = (casterX - EnemyX) * -1;
int offsetX = (casterY - EnemyY) * -1;
boolean RingOfLife = false;
if (server.playerHandler.players[Player].playerEquipment[server.playerHandler.players[Player].playerRing] == 2570) {
RingOfLife = true;
}
int hitDiff = 0;
int chance = misc.random(1);
if (npcs[NPCID].actionTimer == 0) {
if (RingOfLife == true && EnemyHP <= (int)((double)((double)EnemyMaxHP / 10.0) + 0.5)) {
server.playerHandler.players[Player].SafeMyLife = true;
} else {
if (server.playerHandler.players[Player].IsDead == true) {
ResetAttackPlayer(NPCID);
} else {
add
Code:
if(npcs[NPCID].npcType == 2361 && GoodDistance(npcs[NPCID].absX, npcs[NPCID].absY, EnemyX, EnemyY, 30) == true) { //Elf warrior
npcs[NPCID].animNumber = 426; // bow emote
archerGfx2(249, 249, casterY, casterX, offsetY, offsetX, 2, EnemyY, EnemyX);
if (server.playerHandler.players[Player].PRange == false) {
hitDiff = misc.random(30/2);
}
if (server.playerHandler.players[Player].PRange == true) {
hitDiff = 0;
}}
Note: u can use protect from range against them post any errors too
post any errors and o' course credits:me
oh and the ranger npc id is 2361