Thread: kalphite queen combat script {need help}

Results 1 to 3 of 3
  1. #1 kalphite queen combat script {need help} 
    Registered Member
    Join Date
    Jun 2014
    Posts
    103
    Thanks given
    4
    Thanks received
    4
    Rep Power
    11
    wel basicly i got kalphite queen working, but it doesnt attack with kalphite queen attacks, so i wonder if anyone has the combat script of kalphite queen and where to put it. im using revision 667.
    heres my KalphiteQueen.java:
    Code:
    package com.rs.game.npc.kalph;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.TimeUnit;
    
    import com.rs.cores.CoresManager;
    import com.rs.game.Animation;
    import com.rs.game.Entity;
    import com.rs.game.Graphics;
    import com.rs.game.World;
    import com.rs.game.WorldTile;
    import com.rs.game.npc.NPC;
    import com.rs.game.npc.combat.NPCCombatDefinitions;
    import com.rs.game.player.Player;
    import com.rs.game.tasks.WorldTask;
    import com.rs.game.tasks.WorldTasksManager;
    import com.rs.utils.Utils;
    
    @SuppressWarnings("serial")
    public class KalphiteQueen extends NPC {
    
    	public KalphiteQueen(int id, WorldTile tile, int mapAreaNameHash,
    			boolean canBeAttackFromOutOfArea, boolean spawned) {
    		super(id, tile, mapAreaNameHash, canBeAttackFromOutOfArea, spawned);
    		setLureDelay(0);
    	}
    
    	@Override
    	public ArrayList<Entity> getPossibleTargets() {
    		ArrayList<Entity> possibleTarget = new ArrayList<Entity>();
    		for (int regionId : getMapRegionsIds()) {
    			List<Integer> playerIndexes = World.getRegion(regionId)
    					.getPlayerIndexes();
    			if (playerIndexes != null) {
    				for (int npcIndex : playerIndexes) {
    					Player player = World.getPlayers().get(npcIndex);
    					if (player == null
    							|| player.isDead()
    							|| player.hasFinished()
    							|| !player.isRunning()
    							|| !player.withinDistance(this, 64)
    							|| ((!isAtMultiArea() || !player.isAtMultiArea())
    									&& player.getAttackedBy() != this && player
    									.getAttackedByDelay() > Utils
    									.currentTimeMillis())
    							|| !clipedProjectile(player, false))
    						continue;
    					possibleTarget.add(player);
    				}
    			}
    		}
    		return possibleTarget;
    	}
    
    	@Override
    	public void sendDeath(final Entity source) {
    		// TODO Finish up first & second death
    		final NPC n = (NPC) this;
    		final NPCCombatDefinitions defs = getCombatDefinitions();
    		resetWalkSteps();
    		getCombat().removeTarget();
    		setNextAnimation(null);
    		WorldTasksManager.schedule(new WorldTask() {
    			int step;
    			NPC kq;
    
    			@Override
    			public void run() {
    				if (getId() == 1158) {
    					if (step == 10) {
    						stop();
    					}
    					if (step == 0) {
    						setNextAnimation(new Animation(defs.getDeathEmote()));
    					}
    					if (step == 2) {
    						finish();
    						kq = new NPC(1160, n, -1, true, true);
    						kq.setNextGraphics(new Graphics(1055));
    					}
    					if (step == 8) {
    					}
    				} else if (getId() == 1160) {
    					if (step == 4) {
    						finish();
    						stop();
    					}
    					if (step == 0) {
    						setNextAnimation(new Animation(defs.getDeathEmote()));
    						CoresManager.slowExecutor.schedule(new Runnable() {
    							@Override
    							public void run() {
    								try {
    									spawn();
    								} catch (Exception e) {
    									e.printStackTrace();
    								} catch (Error e) {
    									e.printStackTrace();
    								}
    							}
    						}, getCombatDefinitions().getRespawnDelay() * 600,
    								TimeUnit.MILLISECONDS);
    					}
    				}
    				step++;
    			}
    		}, 0, 1);
    	}
    	public void respawn() {
    		setFinished(false);
    		World.addNPC(this);
    		setLastRegionId(0);
    		World.updateEntityRegion(this);
    		loadMapRegions();
    		checkMultiArea();
    	}
    	public static boolean atKQ(WorldTile tile) {
    		if ((tile.getX() >= 3462 && tile.getX() <= 3510)
    				&& (tile.getY() >= 9462 && tile.getY() <= 9528))
    			return true;
    		return false;
    	}
    
    }
    i saw that other bosses had a *bossname*Combat.java but kalphite queen didnt have one
    for example bandos had:
    GeneralGraardor.java
    Code:
    package com.rs.game.npc.godwars.bandos;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.TimeUnit;
    
    import com.rs.cores.CoresManager;
    import com.rs.game.Animation;
    import com.rs.game.Entity;
    import com.rs.game.World;
    import com.rs.game.WorldTile;
    import com.rs.game.minigames.GodWarsBosses;
    import com.rs.game.npc.NPC;
    import com.rs.game.npc.combat.NPCCombatDefinitions;
    import com.rs.game.player.Player;
    import com.rs.game.tasks.WorldTask;
    import com.rs.game.tasks.WorldTasksManager;
    
    @SuppressWarnings("serial")
    public class GeneralGraardor extends NPC {
    
    	public GeneralGraardor(int id, WorldTile tile, int mapAreaNameHash,
    			boolean canBeAttackFromOutOfArea, boolean spawned) {
    		super(id, tile, mapAreaNameHash, canBeAttackFromOutOfArea, spawned);
    	}
    
    	@Override
    	public ArrayList<Entity> getPossibleTargets() {
    		ArrayList<Entity> possibleTarget = new ArrayList<Entity>();
    		for (int regionId : getMapRegionsIds()) {
    			List<Integer> playerIndexes = World.getRegion(regionId)
    					.getPlayerIndexes();
    			if (playerIndexes != null) {
    				for (int npcIndex : playerIndexes) {
    					Player player = World.getPlayers().get(npcIndex);
    					if (player == null
    							|| player.isDead()
    							|| player.hasFinished()
    							|| !player.isRunning()
    							|| !player.withinDistance(this, 64)
    							|| ((!isAtMultiArea() || !player.isAtMultiArea())
    									&& player.getAttackedBy() != this && player
    									.getAttackedByDelay() > System
    									.currentTimeMillis())
    							|| !clipedProjectile(player, false))
    						continue;
    					possibleTarget.add(player);
    				}
    			}
    		}
    		return possibleTarget;
    	}
    
    	/*
    	 * gotta override else setRespawnTask override doesnt work
    	 */
    	@Override
    	public void sendDeath(Entity source) {
    		final NPCCombatDefinitions defs = getCombatDefinitions();
    		resetWalkSteps();
    		getCombat().removeTarget();
    		setNextAnimation(null);
    		WorldTasksManager.schedule(new WorldTask() {
    			int loop;
    
    			@Override
    			public void run() {
    				if (loop == 0) {
    				drop();
    					setNextAnimation(new Animation(defs.getDeathEmote()));
    				} else if (loop >= defs.getDeathDelay()) {
    					reset();
    					setLocation(getRespawnTile());
    					finish();
    					setRespawnTask();
    					stop();
    				}
    				loop++;
    			}
    		}, 0, 1);
    	}
    
    	@Override
    	public void setRespawnTask() {
    		if (!hasFinished()) {
    			reset();
    			setLocation(getRespawnTile());
    			finish();
    		}
    		final NPC npc = this;
    		CoresManager.slowExecutor.schedule(new Runnable() {
    			@Override
    			public void run() {
    				setFinished(false);
    				World.addNPC(npc);
    				npc.setLastRegionId(0);
    				World.updateEntityRegion(npc);
    				loadMapRegions();
    				checkMultiArea();
    				GodWarsBosses.respawnBandosMinions();
    			}
    		}, getCombatDefinitions().getRespawnDelay() * 600,
    				TimeUnit.MILLISECONDS);
    	}
    }
    and GeneralGraardorCombat.java
    Code:
    package com.rs.game.npc.combat.impl;
    
    import com.rs.game.Animation;
    import com.rs.game.Entity;
    import com.rs.game.ForceTalk;
    import com.rs.game.World;
    import com.rs.game.npc.NPC;
    import com.rs.game.npc.combat.CombatScript;
    import com.rs.game.npc.combat.NPCCombatDefinitions;
    import com.rs.utils.Utils;
    
    public class GeneralGraardorCombat extends CombatScript {
    
    	@Override
    	public Object[] getKeys() {
    		return new Object[] { 6260 };
    	}
    
    	@Override
    	public int attack(final NPC npc, final Entity target) {
    		final NPCCombatDefinitions defs = npc.getCombatDefinitions();
    		if (Utils.getRandom(4) == 0) {
    			switch (Utils.getRandom(10)) {
    			case 0:
    				npc.setNextForceTalk(new ForceTalk("Death to our enemies!"));
    				npc.playSound(3219, 2);
    				break;
    			case 1:
    				npc.setNextForceTalk(new ForceTalk("Brargh!"));
    				npc.playSound(3209, 2);
    				break;
    			case 2:
    				npc.setNextForceTalk(new ForceTalk("Break their bones!"));
    				break;
    			case 3:
    				npc.setNextForceTalk(new ForceTalk("For the glory of Bandos!"));
    				break;
    			case 4:
    				npc.setNextForceTalk(new ForceTalk("Split their skulls!"));
    				npc.playSound(3229, 2);
    				break;
    			case 5:
    				npc.setNextForceTalk(new ForceTalk(
    						"We feast on the bones of our enemies tonight!"));
    				npc.playSound(3206, 2);
    				break;
    			case 6:
    				npc.setNextForceTalk(new ForceTalk("CHAAARGE!"));
    				npc.playSound(3220, 2);
    				break;
    			case 7:
    				npc.setNextForceTalk(new ForceTalk("Crush them underfoot!"));
    				npc.playSound(3224, 2);
    				break;
    			case 8:
    				npc.setNextForceTalk(new ForceTalk("All glory to Bandos!"));
    				npc.playSound(3205, 2);
    				break;
    			case 9:
    				npc.setNextForceTalk(new ForceTalk("GRAAAAAAAAAR!"));
    				npc.playSound(3207, 2);
    				break;
    			case 10:
    				npc.setNextForceTalk(new ForceTalk(
    						"FOR THE GLORY OF THE BIG HIGH WAR GOD!"));
    				break;
    			}
    		}
    		if (Utils.getRandom(2) == 0) { // range magical attack
    			npc.setNextAnimation(new Animation(7063));
    			for (Entity t : npc.getPossibleTargets()) {
    				delayHit(
    						npc,
    						1,
    						t,
    						getRangeHit(
    								npc,
    								getRandomMaxHit(npc, 355,
    										NPCCombatDefinitions.RANGE, t)));
    				World.sendProjectile(npc, t, 1200, 41, 16, 41, 35, 16, 0);
    			}
    		} else { // melee attack
    			npc.setNextAnimation(new Animation(defs.getAttackEmote()));
    			delayHit(
    					npc,
    					0,
    					target,
    					getMeleeHit(
    							npc,
    							getRandomMaxHit(npc, defs.getMaxHit(),
    									NPCCombatDefinitions.MELEE, target)));
    		}
    		return defs.getAttackDelay();
    	}
    }
    thanks
    Reply With Quote  
     

  2. #2  
    Registered Member
    Join Date
    Jun 2014
    Posts
    103
    Thanks given
    4
    Thanks received
    4
    Rep Power
    11
    anyone?
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    Jun 2014
    Posts
    103
    Thanks given
    4
    Thanks received
    4
    Rep Power
    11
    please someone
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 3
    Last Post: 06-19-2014, 05:26 PM
  2. [718/***] Pest Queen Combat Script
    By Jae` in forum Snippets
    Replies: 25
    Last Post: 04-15-2014, 08:25 PM
  3. Pest queen combat script
    By Oogle in forum Requests
    Replies: 10
    Last Post: 10-28-2013, 09:00 AM
  4. Runetoplistv2 script need help with.
    By Trollfayze in forum Help
    Replies: 2
    Last Post: 08-20-2013, 11:32 PM
  5. 562 RS2HD Combat Level ~ Need Help
    By I Pk Nomad in forum Help
    Replies: 0
    Last Post: 01-02-2011, 09:35 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •