Jon 0 #1 Posted June 12, 2012 I just wrote this in about 20 mins nothing big. Work it out yourself, I've done the hard part for you :L [code] public class FightCaves { private final static int[] NPCS = new int[]{2734, 2735, 2736, 2737, 2739, 2740, 2741, 2742, 2743, 2744, 2745}; private int wave = 0; private int[] waveNpcs = new int[] {}; public void generateWave() { wave++; int len = waveNpcs.length; switch(len) { case 0: waveNpcs = new int[]{NPCS[0]}; break; case 1: if(waveNpcs[0] == 2734) waveNpcs = new int[]{waveNpcs[0], NPCS[1]}; else if(waveNpcs[0] != NPCS[NPCS.length-1]) waveNpcs = new int[] {waveNpcs[0], NPCS[0]}; else { //Killed Jad return; } break; case 2: if(waveNpcs[0]+1 == waveNpcs[1]) waveNpcs = new int[]{NPCS[getIndex(waveNpcs[1])+1]}; else if(waveNpcs[1] == 2734) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], NPCS[getIndex(waveNpcs[1]+1)]}; else waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], NPCS[0]}; break; case 3: if(waveNpcs[1]+1 == waveNpcs[2]) { if(waveNpcs[0] != 2736 && waveNpcs[2] == 2735 && waveNpcs[1] == 2734) waveNpcs = new int[]{waveNpcs[0], NPCS[getIndex(waveNpcs[2])+1]}; else if(waveNpcs[1]+1 == waveNpcs[2] && waveNpcs[0]+1 == NPCS[getIndex(waveNpcs[2])+2]) waveNpcs = new int[]{waveNpcs[0], NPCS[getIndex(waveNpcs[2])+2]}; else waveNpcs = new int[]{waveNpcs[0], NPCS[getIndex(waveNpcs[2])+1]}; } else { if(waveNpcs[2] != 2734) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], NPCS[0]}; else waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], NPCS[1]}; } break; case 4: if(waveNpcs[2]+1 == waveNpcs[3]) { if(waveNpcs[1] != 2736 && waveNpcs[3] == 2735 && waveNpcs[2] == 2734) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], NPCS[getIndex(waveNpcs[3])+1]}; else if(waveNpcs[2]+1 == waveNpcs[3] && waveNpcs[1]+1 == NPCS[getIndex(waveNpcs[3])+2]) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], NPCS[getIndex(waveNpcs[3])+2]}; else waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], NPCS[getIndex(waveNpcs[3])+1]}; } else { if(waveNpcs[3] != 2734) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], waveNpcs[3], NPCS[0]}; else waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], waveNpcs[3], NPCS[1]}; } break; case 5: if(waveNpcs[3]+1 == waveNpcs[4]) { if(waveNpcs[2] != 2736 && waveNpcs[4] == 2735 && waveNpcs[3] == 2734) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], NPCS[getIndex(waveNpcs[4])+1]}; else if(waveNpcs[3]+1 == waveNpcs[4]) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], NPCS[getIndex(waveNpcs[4])+2]}; } else waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], waveNpcs[3], waveNpcs[4], NPCS[1]}; break; case 6: if(waveNpcs[4]+1 == waveNpcs[5]) if(waveNpcs[4]+1 == waveNpcs[5]) waveNpcs = new int[]{waveNpcs[0], waveNpcs[1], waveNpcs[2], waveNpcs[3], NPCS[getIndex(waveNpcs[5])+2]}; break; } } public static int getIndex(int npcId) { for(int i = 0; i < NPCS.length; i++) if(NPCS[i] == npcId) return i; return -1; } public int getWave() { return wave; } } [/code] Share this post Link to post Share on other sites
jet kai 0 #2 Posted June 12, 2012 First, Thanks! Will be using or messing around with it to make something good! Share this post Link to post Share on other sites
Master Laake 0 #3 Posted June 14, 2012 Have you ever tried like a full fight caves? Was wondering how you handled multiple people doing fight caves at the same time? Share this post Link to post Share on other sites
Jon 0 #4 Posted June 16, 2012 It's supposed to be done with an instanced map, but most people just cheat and do playerindex*4 for height level. if you do use this make sure the byte for height in the send Map Data packet is between 0-3. Share this post Link to post Share on other sites
exuals 0 #5 Posted June 20, 2012 thanks needed this Share this post Link to post Share on other sites
davidpaceway 0 #6 Posted June 23, 2012 Jon I got a problem with mine, Like all the spawns work and the waves are generating, but the npcs wont attack back! I've tried spawning them just by a command and they attack back so it's nothing with the packedcombatdefs :s Share this post Link to post Share on other sites
crypted 0 #7 Posted June 24, 2012 Ok, for some reason the waves aren't generating for me. I made a command to see if it would start. [CODE]if(cmd[0].equals("fight")) { player.getFightCaves().generateWave(); };[/CODE] I've added few things into player for it. But still wave generation doesn't start. Share this post Link to post Share on other sites
Jon 0 #8 Posted July 2, 2012 [quote name='crypted']Ok, for some reason the waves aren't generating for me. I made a command to see if it would start. [CODE]if(cmd[0].equals("fight")) { player.getFightCaves().generateWave(); };[/CODE] I've added few things into player for it. But still wave generation doesn't start.[/QUOTE] :fp: it generates the npcs to spawn, it doesn't spawn them for you. Share this post Link to post Share on other sites