Hey there guys , i got a wired problem that it seems my fight caves is fully coded but only spawns untill wave 3 these aremy files:


This is my fightcaves.java:

Code:
package novelia.model.minigames;

import novelia.model.npcs.NpcHandler;
import novelia.model.players.Client;

public class FightCaves {
	
	public static final int TZ_KIH = 2627, TZ_KEK_SPAWN = 2738, TZ_KEK = 2630, TOK_XIL = 2631, YT_MEJKOT = 2741, KET_ZEK = 2743, TZTOK_JAD = 2745;
	
	/**
	 * Holds the data for the 63 waves fight cave.
	 */
	private final int[][] WAVES = {{TZ_KIH},
								  {TZ_KIH,TZ_KIH},
								  {TZ_KEK},
								  {TZ_KEK,TZ_KIH},
								  {TZ_KEK,TZ_KIH,TZ_KIH},
								  {TZ_KEK,TZ_KEK},
								  {TOK_XIL},
								  {TOK_XIL,TZ_KIH},
								  {TOK_XIL,TZ_KIH,TZ_KIH},
								  {TOK_XIL,TZ_KEK},
								  {TOK_XIL,TZ_KEK,TZ_KIH},
								  {TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
								  {TOK_XIL,TZ_KEK,TZ_KEK},
								  {TOK_XIL,TOK_XIL},
								  {YT_MEJKOT}, //15
								  {YT_MEJKOT,TZ_KIH}, 
								  {YT_MEJKOT,TZ_KIH,TZ_KIH},
								  {YT_MEJKOT,TZ_KEK},
								  {YT_MEJKOT,TZ_KEK,TZ_KIH},
								  {YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH},
								  {YT_MEJKOT,TZ_KEK,TZ_KEK},
								  {YT_MEJKOT,TOK_XIL},
								  {YT_MEJKOT,TOK_XIL,TZ_KIH},
								  {YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH},
								  {YT_MEJKOT,TOK_XIL,TZ_KEK},
								  {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH},
								  {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
								  {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK},
								  {YT_MEJKOT,TOK_XIL,TOK_XIL},
								  {YT_MEJKOT,YT_MEJKOT},
								  {KET_ZEK}, //30
								  {KET_ZEK,TZ_KIH}, 
								  {KET_ZEK,TZ_KIH,TZ_KIH},
								  {KET_ZEK,TZ_KEK},
								  {KET_ZEK,TZ_KEK,TZ_KIH},
								  {KET_ZEK,TZ_KEK,TZ_KIH,TZ_KIH},
								  {KET_ZEK,TZ_KEK,TZ_KEK},
								  {KET_ZEK,TOK_XIL},
								  {KET_ZEK,TOK_XIL,TZ_KIH},
								  {KET_ZEK,TOK_XIL,TZ_KIH,TZ_KIH},
								  {KET_ZEK,TOK_XIL,TZ_KEK},
								  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH},
								  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
								  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KEK},
								  {KET_ZEK,TOK_XIL,TOK_XIL},
								  {KET_ZEK,YT_MEJKOT},
								  {KET_ZEK,YT_MEJKOT,TZ_KIH},
								  {KET_ZEK,YT_MEJKOT,TZ_KIH,TZ_KIH},
								  {KET_ZEK,YT_MEJKOT,TZ_KEK},
								  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH}, //50
								  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH}, 
								  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KEK},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK},
								  {KET_ZEK,YT_MEJKOT,TOK_XIL,TOK_XIL},
								  {KET_ZEK,YT_MEJKOT,YT_MEJKOT},
								  {KET_ZEK,KET_ZEK},
								  {TZTOK_JAD}}; //63
	
	private final static int[][] COORDINATES = {{2403, 5094}, {2390, 5096}, {2392, 5077}, {2408, 5080}, {2413, 5108}, {2381, 5106}, {2379, 5072}, {2420, 5082}};

	/**
	 * Handles spawning the next fightcave wave
	 * @param c
	 * 		The player.
	 */
	public void spawnNextWave(Client c) {
		//c.sendMessage("Spawned: "+c.waveId);
		if (c != null) {
			if (c.waveId >= WAVES.length) {
				c.waveId = 0;
				return;				
			}
			if (c.waveId < 0){
				return;
			}
			int npcAmount = WAVES[c.waveId].length;
			for (int j = 0; j < npcAmount; j++) {
				int npc = WAVES[c.waveId][j];
				int X = COORDINATES[j][0];
				int Y = COORDINATES[j][1];
				int H = c.heightLevel;
				int hp = getHp(npc);
				int max = getMax(npc);
				int atk = getAtk(npc);
				int def = getDef(npc);
				NpcHandler.getNpcHandler().spawnNpc(c, npc, X, Y, H, 0, hp, max, atk, def, true, false);				
			}
			c.tzhaarToKill = npcAmount;
			for (int i = 0; i < npcAmount; i++) {
				if(WAVES[c.waveId][i] == TZ_KEK) {
					//c.sendMessage("Has TZ_KEK, added +2 to npc tzhaarToKill!");
					c.tzhaarToKill += 2;
				}
			}
			c.tzhaarKilled = 0;
		}
	}
	
	/**
	 * Handles the correct tz-kih effect; prayer
	 * is drained by the formula: drain = damage + 1
	 * @param c
	 * 		The player
	 * @param i
	 * 		The npcId
	 * @param damage
	 * 		What the npchit
	 */
	public static void tzKihEffect(Client c,int i, int damage) {
		if(NpcHandler.getNpcHandler().npcs[i].npcType == TZ_KIH) {
			if(c != null) {
				if(c.playerLevel[5] > 0) {
					c.playerLevel[5] -= 1 + damage;
					c.getPA().refreshSkill(5);
				}
			}	
		}
	}
	
	public static void tzKekEffect(Client c, int i) {
		if(NpcHandler.getNpcHandler().npcs[i].npcType == TZ_KEK) {
			
			int x = NpcHandler.getNpcHandler().npcs[i].absX + 2;
			int y = NpcHandler.getNpcHandler().npcs[i].absY + 2;
			int x1 = NpcHandler.getNpcHandler().npcs[i].absX - 2;
			int y1 = NpcHandler.getNpcHandler().npcs[i].absY - 2;
	
			int hp = getHp(TZ_KEK_SPAWN);
			int max = getMax(TZ_KEK_SPAWN);
			int atk = getAtk(TZ_KEK_SPAWN);
			int def = getDef(TZ_KEK_SPAWN);
			
			if(c != null) {
				if(c.tzKekTimer == 0) {
					if(NpcHandler.getNpcHandler().npcs[i].isDead) {
						NpcHandler.getNpcHandler().spawnNpc(c, TZ_KEK_SPAWN, x, y, c.heightLevel, 0, hp, max, atk, def, true, false);
						NpcHandler.getNpcHandler().spawnNpc(c, TZ_KEK_SPAWN, x1, y1, c.heightLevel, 0, hp, max, atk, def, true, false);
					}
				}
			}
		}
	}
	
	public static int getHp(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
			return 10;
			case TZ_KEK:
			return 20;
			case TOK_XIL:
			return 40;
			case YT_MEJKOT:
			return 80;
			case KET_ZEK: 
			return 150;
			case TZTOK_JAD:
			return 250;		
		}
		return 100;
	}
	
	public static int getMax(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
			return 4;
			case TZ_KEK:
			return 7;
			case TOK_XIL:
			return 10;
			case YT_MEJKOT:
			return 25;
			case KET_ZEK: 
			return 50;
			case TZTOK_JAD:
			return 97;		
		}
		return 5;
	}
	
	public static int getAtk(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
			return 30;
			case TZ_KEK:
			return 50;
			case TOK_XIL:
			return 100;
			case YT_MEJKOT:
			return 150;
			case KET_ZEK: 
			return 450;
			case TZTOK_JAD:
			return 650;		
		}
		return 100;
	}
	
	public static int getDef(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
			return 30;
			case TZ_KEK:
			return 50;
			case TOK_XIL:
			return 75;
			case YT_MEJKOT:
			return 100;
			case KET_ZEK: 
			return 250;
			case TZTOK_JAD:
			return 500;		
		}
		return 100;
	}
	
}

my wave.java:

Code:
ackage novelia.model.minigames;

import novelia.util.Operations;

/**
 * 
 * @author Jason http://www.rune-server.org/members/jason
 * @date Oct 17, 2013
 */
public class Wave {
	
	public static int[][] SPAWN_DATA = {
		{2403, 5079},
		{2396, 5074},
		{2387, 5072},
		{2388, 5085},
		{2389, 5096},
		{2403, 5097},
		{2410, 5087}
	};
	
	public static final int
		TZ_KIH = 2627,
		TZ_KEK_SPAWN = 2738,
		TZ_KEK = 2630,
		TOK_XIL = 2631,
		YT_MEJKOT = 2741,
		KET_ZEK = 2743,
		TZTOK_JAD = 2745;
	
	public static int getHp(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
				return 22;
			case TZ_KEK:
				return 45;
			case TOK_XIL:
				return 90;
			case YT_MEJKOT:
				return 180;
			case KET_ZEK: 
				return 360;
			case TZTOK_JAD:
			return 720;		
		}
		return 50 + Operations.random(50);
	}
	
	public static int getMax(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
			return 4;
			case TZ_KEK:
			return 7;
			case TOK_XIL:
			return 13;
			case YT_MEJKOT:
			return 20;
			case KET_ZEK: 
			return 30;
			case TZTOK_JAD:
			return 97;		
		}
		return 5 + Operations.random(5);
	}
	
	public static int getAtk(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
			return 30;
			case TZ_KEK:
			return 50;
			case TOK_XIL:
			return 80;
			case YT_MEJKOT:
			return 100;
			case KET_ZEK: 
			return 200;
			case TZTOK_JAD:
			return 450;		
		}
		return 50 + Operations.random(50);
	}
	
	public static int getDef(int npc) {
		switch (npc) {
			case TZ_KIH:
			case TZ_KEK_SPAWN:
				return 30;
			case TZ_KEK:
				return 75;
			case TOK_XIL:
				return 100;
			case YT_MEJKOT:
				return 100;
			case KET_ZEK: 
				return 200;
			case TZTOK_JAD:
				return 500;		
		}
		return 50 + Operations.random(50);
	}
		public static final int[][] LEVEL_1 = {
		  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KEK},
		  {KET_ZEK,TOK_XIL,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT},
		  {KET_ZEK,YT_MEJKOT,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT,YT_MEJKOT},
		  {KET_ZEK,KET_ZEK},
		  {TZTOK_JAD}
	};
	
	public static final int[][] LEVEL_2 = {
		{KET_ZEK},
		  {KET_ZEK,TZ_KIH},
		  {KET_ZEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TZ_KEK},
		  {KET_ZEK,TZ_KEK,TZ_KIH},
		  {KET_ZEK,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TZ_KEK,TZ_KEK},
		  {KET_ZEK,TOK_XIL},
		  {KET_ZEK,TOK_XIL,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KEK},
		  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KEK},
		  {KET_ZEK,TOK_XIL,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT},
		  {KET_ZEK,YT_MEJKOT,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT,YT_MEJKOT},
		  {KET_ZEK,KET_ZEK},
		  {TZTOK_JAD}
	};
	
	public static final int[][] LEVEL_3 = {
		  {TZ_KIH},
		  {TZ_KIH,TZ_KIH},
		  {TZ_KEK},
		  {TZ_KEK,TZ_KIH},
		  {TZ_KEK,TZ_KIH,TZ_KIH},
		  {TZ_KEK,TZ_KEK},
		  {TOK_XIL},
		  {TOK_XIL,TZ_KIH},
		  {TOK_XIL,TZ_KIH,TZ_KIH},
		  {TOK_XIL,TZ_KEK},
		  {TOK_XIL,TZ_KEK,TZ_KIH},
		  {TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
		  {TOK_XIL,TZ_KEK,TZ_KEK},
		  {TOK_XIL,TOK_XIL},
		  {YT_MEJKOT},
		  {YT_MEJKOT,TZ_KIH},
		  {YT_MEJKOT,TZ_KIH,TZ_KIH},
		  {YT_MEJKOT,TZ_KEK},
		  {YT_MEJKOT,TZ_KEK,TZ_KIH},
		  {YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH},
		  {YT_MEJKOT,TZ_KEK,TZ_KEK},
		  {YT_MEJKOT,TOK_XIL},
		  {YT_MEJKOT,TOK_XIL,TZ_KIH},
		  {YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH},
		  {YT_MEJKOT,TOK_XIL,TZ_KEK},
		  {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH},
		  {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
		  {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK},
		  {YT_MEJKOT,TOK_XIL,TOK_XIL},
		  {YT_MEJKOT,YT_MEJKOT},
		  {KET_ZEK},
		  {KET_ZEK,TZ_KIH},
		  {KET_ZEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TZ_KEK},
		  {KET_ZEK,TZ_KEK,TZ_KIH},
		  {KET_ZEK,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TZ_KEK,TZ_KEK},
		  {KET_ZEK,TOK_XIL},
		  {KET_ZEK,TOK_XIL,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KEK},
		  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KEK},
		  {KET_ZEK,TOK_XIL,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT},
		  {KET_ZEK,YT_MEJKOT,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK},
		  {KET_ZEK,YT_MEJKOT,TOK_XIL,TOK_XIL},
		  {KET_ZEK,YT_MEJKOT,YT_MEJKOT},
		  {KET_ZEK,KET_ZEK},
		  {TZTOK_JAD}
	};
	
	

}


I got no errors while running if you need any more info i can provide it;

Regards