Thread: [SHARD] Attack NPC

Results 1 to 6 of 6
  1. #1 [SHARD] Attack NPC 
    Owner/Developer of Bethestic

    Join Date
    Mar 2011
    Posts
    157
    Thanks given
    15
    Thanks received
    5
    Rep Power
    1
    I'm using the Creativescape source. And sometimes i have to click 3 times on a NPC before it will attack the NPC.
    I know it's something with the updating part, but i want to get it fixed.

    Maybe someone will help me and can get it fixed on my server.

    Owner of Bethestic
    Reply With Quote  
     

  2. #2  
    Donator

    Arithium's Avatar
    Join Date
    May 2010
    Age
    31
    Posts
    4,721
    Thanks given
    199
    Thanks received
    1,256
    Rep Power
    1114
    Wouldn't recommend using creativescape as its garbage, I'd go with project no-doze if you want to use shard. As for your problem you may need to check where it handles the players attack timer.
    Reply With Quote  
     

  3. #3  
    Owner/Developer of Bethestic

    Join Date
    Mar 2011
    Posts
    157
    Thanks given
    15
    Thanks received
    5
    Rep Power
    1
    I can't find the timer.

    This is my CombatManager.java class.
    Code:
    package server.model.player;
    
    import java.util.HashMap;
    import java.util.Map;
    import server.Constants;
    import server.Server;
    import server.content.skill.SkillConstants;
    import server.events.Event;
    import server.events.EventContainer;
    import server.events.EventManager;
    import server.model.FloorItem;
    import server.model.Item;
    import server.model.ItemDefinition;
    import server.model.npc.NPC;
    import server.world.AnimationManager;
    import server.world.PlayerManager;
    import server.util.Misc;
    import server.model.player.packet.Following;
    import server.model.npc.FollowingNPC;
    import server.model.npc.AttackNPC;
    import server.model.player.WeaponSounds;
    import server.model.player.packet.SubClasses.Wear;
    import server.model.player.packet.SubClasses.HitManager;
    
    /**
     * Combat manager
     * 
     * @author Graham
     * 
     */
    public class CombatManager {
    
    	public Client attacker;
    	public Map<Client, Integer> attackers = new HashMap<Client, Integer>();
    	public Map<Client, Integer> previousAttackers = null;
    
    	public static final int BASE_TICK = 500;
    	public static final int MODIFIER = 500;
    	public static final double SWAP_FACTOR = 0.2;
    
    	public Client client;
    	public boolean isFighting = false;
    	public NPC targetNPC;
    	public Client targetPlayer;	
    
    	public boolean doubleHit = false;
    
    	public int[] bonus = new int[12];
    
    	public int poisHit = 6;
    	public int recoilDamageDone;
    
    	public int lastWildernessLevel = 0, wildernessLevel = 0;
    
    	public CombatManager(Client client) {
    		this.client = client;
    	}
    	
    
        public boolean destroyItem(int ITEM){
    	for(int i = 0; i < Item.destroyItemList.length; i++){
    	    if(Item.destroyItemList[i] == ITEM)
    		return true;
    	}
        return false;
        }
    
    	public void dropItems() {
    		Client highestHitter = null;
    		int highestHit = -1;
    		for (Map.Entry<Client, Integer> entry : previousAttackers.entrySet()) {
    			if (entry.getValue() > highestHit) {
    				highestHit = entry.getValue();
    				highestHitter = entry.getKey();
    			}
    		}
    		for(int i = 0; i < client.playerItems.length; i++) {
    			if(client.playerItems[i] <= 0) continue;
    			FloorItem item = new FloorItem((client.playerItems[i]-1), client.playerItemsN[i], highestHitter, client.getAbsX(), client.getAbsY(), client.getHeightLevel(), client.currentRegion);
    			if(highestHitter != null) {
    				Server.getItemManager().newDrop(item, highestHitter);
    			} else {
    				Server.getItemManager().newDrop(item, null);
    				Server.getItemManager().showDrop(item);
    			}
    			client.playerItems[i] = 0;
    			client.playerItemsN[i] = 1;
    		}
    		for(int i = 0; i < client.playerEquipment.length; i++) {
    			if(client.playerEquipment[i] <= -1) continue;
    if(i == 6 || i == 8 || i == 11 || i == 13) continue;
    			FloorItem item = new FloorItem(client.playerEquipment[i], client.playerEquipmentN[i], highestHitter, client.getAbsX(), client.getAbsY(), client.getHeightLevel(), client.currentRegion);
    			if(highestHitter != null) {
    				Server.getItemManager().newDrop(item, highestHitter);
    			} else {
    				Server.getItemManager().newDrop(item, null);
    				Server.getItemManager().showDrop(item);
    			}
    			client.getOutStream().createFrame(34);
    			client.getOutStream().writeWord(6);
    			client.getOutStream().writeWord(1688);
    			client.getOutStream().writeByte(i);
    			client.getOutStream().writeWord(0);
    			client.getOutStream().writeByte(0);
    			client.flushOutStream();
    			client.playerEquipment[i] = -1;
    			client.playerEquipmentN[i] = 1;
    		}
    		FloorItem item = new FloorItem(526, 1, highestHitter, client.getAbsX(), client.getAbsY(), client.getHeightLevel(), client.currentRegion);
    		if(highestHitter != null) {
    			Server.getItemManager().newDrop(item, highestHitter);
    		} else {
    			Server.getItemManager().newDrop(item, null);
    			Server.getItemManager().showDrop(item);
    		}
    		client.getActionAssistant().resetItems();
    		client.updateRequired = true;
    		client.appearanceUpdateRequired = true;
    		previousAttackers = null;
    	}
    
    	public void FightPitsHitter() {
    		Client highestHitter = null;
    		int highestHit = -1;
    		for (Map.Entry<Client, Integer> entry : previousAttackers.entrySet()) {
    			if (entry.getValue() > highestHit) {
    				highestHit = entry.getValue();
    				highestHitter = entry.getKey();
    			}
    		}
    			final Client hhgg = highestHitter;
    				EventManager.getSingleton().addEvent(null, new Event() {
    					@Override
    					public void execute(EventContainer c) {
    						Server.getFightPits().PlayersInGame -= 1;
    						Server.getFightPits().PlayersReady += 1;
    						Server.getFightPits().processPits();
    						c.stop();
    					}
    
    					@Override
    					public void stop() {
    				if(Server.getFightPits().PlayersInGame <= 1){
    					Server.getFightPits().ChampionName = hhgg.playerName;
    					Server.getFightPits().killOffOldNPCs1();
    					Server.getFightPits().killOffOldNPCs2();
    					Server.getFightPits().killOffOldNPCs3();
    					Server.getFightPits().TIMER = 10;
    					Server.getFightPits().WonFightPits(hhgg);
    				}
    					}
    				}, 1000);
    	}
    
    	public void CastleWarsHitter() {
    		Client highestHitter = null;
    		int highestHit = -1;
    		for (Map.Entry<Client, Integer> entry : previousAttackers.entrySet()) {
    			if (entry.getValue() > highestHit) {
    				highestHit = entry.getValue();
    				highestHitter = entry.getKey();
    			}
    		}
    		if(highestHitter != null){
    			highestHitter.CWKills += 1;
    		}
    	}
    
    	public static void specialAmount(Client client, int weapon, double specAmount, int barId) {
    		client.specBarId = barId;
    		sendFrame70(client, specAmount >= 10 ? 150 : 0, 0, (--barId));
            	sendFrame70(client, specAmount >= 9 ? 150 : 0, 0, (--barId));
            	sendFrame70(client, specAmount >= 8 ? 150 : 0, 0, (--barId));
    		sendFrame70(client, specAmount >= 7 ? 150 : 0, 0, (--barId));
    		sendFrame70(client, specAmount >= 6 ? 150 : 0, 0, (--barId));
    		sendFrame70(client, specAmount >= 5 ? 150 : 0, 0, (--barId));
    		sendFrame70(client, specAmount >= 4 ? 150 : 0, 0, (--barId));
    		sendFrame70(client, specAmount >= 3 ? 150 : 0, 0, (--barId));
    		sendFrame70(client, specAmount >= 2 ? 150 : 0, 0, (--barId));
    		sendFrame70(client, specAmount >= 1 ? 150 : 0, 0, (--barId));
    		updateSpecialBar(client);
    		client.getCombat().getMethods().sendWeapon(client);
    	}
    
    	public static void updateSpecialBar(Client client) {
    		if(client.usingSpecial) {
    			client.getActionAssistant().sendFrame126("@yel@S P E C I A L  A T T A C K", client.specBarId);
    		} else {
    			client.getActionAssistant().sendFrame126("@bla@S P E C I A L  A T T A C K", client.specBarId);
    		}
    	}
    
    	public static void sendFrame70(Client client, int i, int o, int id) {
    		if(client.getOutStream() != null && client != null) {
    			client.getOutStream().createFrame(70);
    			client.getOutStream().writeWord(i);
    			client.getOutStream().writeWordBigEndian(o);
    			client.getOutStream().writeWordBigEndian(id);
    			client.flushOutStream();
    		}
    	}
    
    	public static void sendFrame171(Client client, int i, int j) {
    		if(client.getOutStream() != null && client != null) {
    		client.getOutStream().createFrame(171);
    		client.getOutStream().writeByte(i);
    		client.getOutStream().writeWord(j);
    		client.flushOutStream();
    		}
    	}
    
    	public void process() {
    		if (client.isDead()) {
    			if (previousAttackers == null) {
    				previousAttackers = attackers;
    				attackers = new HashMap<Client, Integer>();
    			}
    		}
    
    		if(client.usingSpecial){
    			if(client.playerEquipment[3] == 4153){
    				client.doubleHit = false;
    				if(client.getCombat().getTargetNpc() != null && client.AttackEventRunning && !client.getCombat().getTargetNpc().isDead){
    					if(client.specAmount == 10){
    						client.specAmount -= 5;
    						sendFrame171(client, 0, 7474);
    						specialAmount(client, 4153, client.specAmount, 7486);
    						client.getCombat().getTargetNpc().hit2(client, client.getCombat().CalculateHits().Calculate_PVN_Melee_Hit(client, client.getCombat().getTargetNpc()), 1);
    						client.gfx100(340);
    						client.getActionAssistant().startAnimation(1667);
    					} else if(client.specAmount >= 5){
    						client.specAmount -= 5;
    						sendFrame171(client, 0, 7474);
    						specialAmount(client, 4153, client.specAmount, 7486);
    						client.getCombat().getTargetNpc().hit(client, client.getCombat().CalculateHits().Calculate_PVN_Melee_Hit(client, client.getCombat().getTargetNpc()), 1);
    						client.gfx100(340);
    						client.getActionAssistant().startAnimation(1667);
    					} else {
    						client.getActionAssistant().sendMessage("You don't have the required special energy to use this attack.");
    					}
    				}
    				if(client.getCombat().getTargetPlayer() != null && client.AttackEventRunning && !client.getCombat().getTargetPlayer().isDead){
    					if(client.specAmount == 10){
    						client.specAmount -= 5;
    						sendFrame171(client, 0, 7474);
    						specialAmount(client, 4153, client.specAmount, 7486);
    						client.getCombat().getTargetPlayer().getActionAssistant().hit2(client.getCombat().CalculateHits().Calculate_PVN_Melee_Hit(client, client.getCombat().getTargetPlayer()), 1);
    						client.gfx100(340);
    						client.getActionAssistant().startAnimation(1667);
    					} else if(client.specAmount >= 5){
    						client.specAmount -= 5;
    						sendFrame171(client, 0, 7474);
    						specialAmount(client, 4153, client.specAmount, 7486);
    						client.getCombat().getTargetPlayer().getActionAssistant().hit(client.getCombat().CalculateHits().Calculate_PVN_Melee_Hit(client, client.getCombat().getTargetPlayer()), 1);
    						client.gfx100(340);
    						client.getActionAssistant().startAnimation(1667);
    					} else {
    						client.getActionAssistant().sendMessage("You don't have the required special energy to use this attack.");
    					}
    				}
    				client.usingSpecial = false;
    				client.getActionAssistant().updateSpecialBar();
    			}
    		}
    	
    		if (client.getAbsY() >= 3518 && client.getAbsX() > 2930 && client.getAbsX() < 3400) {
    			wildernessLevel = (((client.getAbsY() - 3518) / 8) + 1);
    			client.getExtraData().put("wildernessWarned", Boolean.TRUE);
    		} else if (client.getAbsY() >= 9918 && client.getAbsX() > 3050 && client.getAbsX() < 3142) {
    			wildernessLevel = (((client.getAbsY() - 9918) / 8) + 1);
    			client.getExtraData().put("wildernessWarned", Boolean.TRUE);
    		} else {
    			wildernessLevel = -1;
    		}
    		if (client.getAbsY() >= 3516 && client.getAbsX() > 2930 && client.getAbsX() < 3400 || client.getAbsY() >= 9918 && client.getAbsX() > 3050 && client.getAbsX() < 3142) {
    			if (!client.getExtraData().containsKey("wildernessWarned")) {
    				client.getActionAssistant().sendFrame248(1908, 3213);
    				client.stopMovement();
    				client.resetWalkingQueue();
    				client.setCanWalk(false);
    				client.setBusy(true);
    				client.getExtraData().put("wildernessWarned", Boolean.TRUE);
    				EventManager.getSingleton().addEvent(null, new Event() {
    					@Override
    					public void execute(EventContainer c) {
    						c.stop();
    					}
    
    					@Override
    					public void stop() {
    						client.setCanWalk(true);
    						client.setBusy(false);
    					}
    				}, 1000);
    			}
    		}
    
    			if(!client.inBarrows() && !client.inPcBoat() && !client.inSnow()){
    			if (client.inWild()) {
    				client.getOutStream().createFrame(208);
    				client.getOutStream().writeWordBigEndian_dup(197);
    				client.getActionAssistant().sendQuest(
    						"Level: " + wildernessLevel, 199);
    				client.flushOutStream();
    				client.getOutStream().createFrameVarSize(104);
    				client.getOutStream().writeByteC(1); // command slot (does it matter which one?)
    				client.getOutStream().writeByteA(1); // 0 or 1; 0 if command should be placed on top
    											// in context menu
    				client.getOutStream().writeString("Attack");
    				client.getOutStream().endFrameVarSize();
    				client.flushOutStream();
    			} else if (client.duelArea1() || client.duelArea2()) {
    				client.getOutStream().createFrame(208);
    				client.getOutStream().writeWordBigEndian_dup(201);
    				client.getOutStream().createFrameVarSize(104);
    				client.getOutStream().writeByteC(1); // command slot (does it matter which one?)
    				client.getOutStream().writeByteA(1); // 0 or 1; 0 if command should be placed on top
    				client.getOutStream().writeString("Fight");
    				client.getOutStream().endFrameVarSize();
    				client.flushOutStream();
    			} else if(client.inFightPits() || client.inCastleWars()){
    				client.getOutStream().createFrameVarSize(104);
    				client.getOutStream().writeByteC(1); // command slot (does it matter which one?)
    				client.getOutStream().writeByteA(1); // 0 or 1; 0 if command should be placed on top
    				client.getOutStream().writeString("Attack");
    				client.getOutStream().endFrameVarSize();
    				client.flushOutStream();
    			} else if(client.inDuelArena()){
    				client.getOutStream().createFrame(208);
    				client.getOutStream().writeWordBigEndian_dup(201);
    				client.getOutStream().createFrameVarSize(104);
    				client.getOutStream().writeByteC(1); // command slot (does it matter which one?)
    				client.getOutStream().writeByteA(0); // 0 or 1; 0 if command should be placed on top
    											// in context menu
    				client.getOutStream().writeString("Challenge");
    				client.getOutStream().endFrameVarSize();
    				client.flushOutStream();
    			} else if(client.inFightPitsLobby() || client.inCWSafe() || Server.getCastleWars().inSaraLobby(client) || Server.getCastleWars().inZammyLobby(client)){
    				client.getOutStream().createFrameVarSize(104);
    				client.getOutStream().writeByteC(1); // command slot (does it matter which one?)
    				client.getOutStream().writeByteA(0); // 0 or 1; 0 if command should be placed on top
    											// in context menu
    				client.getOutStream().writeString("null");
    				client.getOutStream().endFrameVarSize();
    				client.flushOutStream();
    			} else if(client.acceptedFUNDuel){
    				client.getOutStream().createFrame(208);
    				client.getOutStream().writeWordBigEndian_dup(-1);
    				client.getOutStream().createFrameVarSize(104);
    				client.getOutStream().writeByteC(1); // command slot (does it matter which one?)
    				client.getOutStream().writeByteA(1); // 0 or 1; 0 if command should be placed on top
    											// in context menu
    				client.getOutStream().writeString("Attack");
    				client.getOutStream().endFrameVarSize();
    				client.flushOutStream();
    			} else {
    				client.getOutStream().createFrame(208);
    				client.getOutStream().writeWordBigEndian_dup(-1);
    				client.getOutStream().createFrameVarSize(104);
    				client.getOutStream().writeByteC(1); // command slot (does it matter which one?)
    				client.getOutStream().writeByteA(1); // 0 or 1; 0 if command should be placed on top
    											// in context menu
    				client.getOutStream().writeString("null");
    				client.getOutStream().endFrameVarSize();
    				client.flushOutStream();
    			}
    			}
    	}
    
    	public boolean isFighting() {
    		return isFighting;
    	}
    
    	public void resetAttack() {
    		isFighting = false;
    		client.faceNPC(-1);
    		client.attackTimer = 0;
    		client.hitDelay = 0;
    		client.doubleHit = false;
    		client.followId = 0;
    		client.setBusyFollow(false);
    		if(!client.autocasting){
    			client.getActionAssistant().setClientConfig(108, 0);
    		}
    		if (targetNPC != null) {
    			targetNPC.getAttackers().remove(client);
    			if (targetNPC.getAttacker() == client) {
    				if (targetNPC.getAttackers().entrySet().iterator().hasNext()) {
    					targetNPC.setAttacker(targetNPC.getAttackers().entrySet().iterator().next().getKey());
    				} else {
    					targetNPC.setWalking(targetNPC.isWasWalking());
    					targetNPC.setAttacker(null);
    				}
    			}
    			targetNPC = null; // lose our ref
    		}
    		if(targetPlayer != null) {
    			targetPlayer.getCombatManager().attackers.remove(client);
    			if(targetPlayer.getCombatManager().attacker == client) {
    				targetPlayer.getCombatManager().attacker = null;
    				if(targetPlayer.getCombatManager().attackers.entrySet().iterator().hasNext()) {
    					targetPlayer.getCombatManager().attacker = targetPlayer.getCombatManager().attackers.entrySet().iterator().next().getKey();
    				} else {
    					//targetPlayer.getCombatManager().resetAttack();
    				}
    			}
    			targetPlayer = null;
    		}
    	}
    
    	/**
    	 * UTILITY METHODS.
    	 */
    	public void calculateBonus() {
    		for (int i = 0; i < client.playerBonus.length; i++) {
    			client.playerBonus[i] = 0;
    		}
    		for (int i = 0; i < client.playerEquipment.length; i++) {
    			if (client.playerEquipment[i] > -1) {
    				ItemDefinition def = Server.getItemManager().getItemDefinition(client.playerEquipment[i]);
    				for (int k = 0; k < client.playerBonus.length; k++) {
    					client.playerBonus[k] += def.getBonus(k);
    				}
    			}
    		}
    		for (int i = 0; i < client.playerBonus.length; i++) {
    			String text = "";
    			int offset = 0;
    			if (client.playerBonus[i] >= 0) {
    				text = Constants.BONUS_NAME[i] + ": +" + client.playerBonus[i];
    			} else {
    				text = Constants.BONUS_NAME[i] + ": -" + Math.abs(client.playerBonus[i]);
    			}
    			if (i >= 12) {
    				offset = 1;
    			}
    			int interfaceid = 1676 + i + offset;
    			client.getActionAssistant().sendQuest(text, interfaceid);
    		}
    	}
    
    	public void sendWeapon() {
    
    		int weapon = client.playerEquipment[PlayerConstants.PLAYER_WEAPON];
    		String WeaponName = null;
    		if (weapon == -1) {
    			WeaponName = "Unarmed";
    		} else {
    			ItemDefinition def = Server.getItemManager().getItemDefinition(weapon);
    			WeaponName = def.getName();
    		}
    
            	 String WeaponName2 = WeaponName.replaceAll("Bronze", "");
            		WeaponName2 = WeaponName2.replaceAll("Iron", "");
            		WeaponName2 = WeaponName2.replaceAll("Steel", "");
            		WeaponName2 = WeaponName2.replaceAll("Black", "");
            		WeaponName2 = WeaponName2.replaceAll("Mithril", "");
            		WeaponName2 = WeaponName2.replaceAll("Adamant", "");
            		WeaponName2 = WeaponName2.replaceAll("Rune", "");
            		WeaponName2 = WeaponName2.replaceAll("Granite", "");
            		WeaponName2 = WeaponName2.replaceAll("Dragon", "");
            		WeaponName2 = WeaponName2.replaceAll("Crystal", "");
            		WeaponName2 = WeaponName2.trim();
    
    		client.getActionAssistant().sendFrame126("Combat Level: "+client.combatLevel, 19999);
    
    		if(client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 4587) {
    			client.getActionAssistant().setSidebarInterface(0, 2423);
                		client.getActionAssistant().sendFrame126(WeaponName, 2426);
    		}
    
    		else if(client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 1305) {
    			client.getActionAssistant().setSidebarInterface(0, 2423);
                		client.getActionAssistant().sendFrame126(WeaponName, 2426);
    		}
    
            	else if (WeaponName.equals("Unarmed") || client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == -1) {
    			client.getActionAssistant().setSidebarInterface(0, 5855);
                		client.getActionAssistant().sendFrame126(WeaponName, 5857);
    		}
    
    		else if(client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 7158) {
    			client.getActionAssistant().setSidebarInterface(0, 4705);
                		client.getActionAssistant().sendFrame126(WeaponName, 4708);
    		}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 1434) {
    			client.getActionAssistant().setSidebarInterface(0, 3796);
                		client.getActionAssistant().sendFrame126(WeaponName, 3799);
    		}
    
            	else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 4153) {
    			client.getActionAssistant().setSidebarInterface(0, 425);
                		client.getActionAssistant().sendFrame126(WeaponName, 428);
    		}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 5698) {
    			client.getActionAssistant().setSidebarInterface(0, 2276);
                		client.getActionAssistant().sendFrame126(WeaponName, 2279);
            	}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 6739 || WeaponName2.contains("axe") || WeaponName.contains("axe")) {
    			client.getActionAssistant().setSidebarInterface(0, 1698);
                		client.getActionAssistant().sendFrame126(WeaponName, 1701);
            	}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 1377) {
    			client.getActionAssistant().setSidebarInterface(0, 1698);
                		client.getActionAssistant().sendFrame126(WeaponName, 1701);
            	}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 4718 || WeaponName.contains("battleaxe")) {
    			client.getActionAssistant().setSidebarInterface(0, 1698);
                		client.getActionAssistant().sendFrame126(WeaponName, 1701);
            	}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 4747) {
    			client.getActionAssistant().setSidebarInterface(0, 425);
                		client.getActionAssistant().sendFrame126(WeaponName, 428);
            	}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 1249 || WeaponName.equals("spear") || WeaponName.contains("spear") || WeaponName.endsWith("spear")) {
    			client.getActionAssistant().setSidebarInterface(0, 4679);
                		client.getActionAssistant().sendFrame126(WeaponName, 4682);
            	}
    
    		else if (WeaponName2.contains("pickaxe")) {
    			client.getActionAssistant().setSidebarInterface(0, 5570);
                		client.getActionAssistant().sendFrame126(WeaponName, 5573);
            	}
    
            	else if (WeaponName.equals("2h") || WeaponName.contains("2h") || WeaponName.endsWith("2h")) {
    			client.getActionAssistant().setSidebarInterface(0, 4705);	
                		client.getActionAssistant().sendFrame126(WeaponName, 4708);
    		}
    
            	else if (WeaponName.equals("dart") || WeaponName.contains("dart") || WeaponName.endsWith("dart") ||
    			WeaponName.equals("knife") || WeaponName.contains("knife") || WeaponName.endsWith("knife") ||
    			WeaponName.equals("javelin") || WeaponName.contains("javelin") || WeaponName.endsWith("javelin")) {
    			client.getActionAssistant().setSidebarInterface(0, 4446);
                		client.getActionAssistant().sendFrame126(WeaponName, 4449);
    		}
    
    		else if(WeaponName2.endsWith("mace") || WeaponName2.endsWith("warhammer") || client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 4755) {
    			client.getActionAssistant().setSidebarInterface(0, 3796);
                		client.getActionAssistant().sendFrame126(WeaponName, 3799);
    		}
    
    		else if (WeaponName.contains("whip")) {
    			client.getActionAssistant().setSidebarInterface(0, 12290);
                		client.getActionAssistant().sendFrame126(WeaponName, 12293);
            	}
    
    		else if (WeaponName.startsWith("Staff") || WeaponName.endsWith("staff") || WeaponName.endsWith("wand")) {
    			client.getActionAssistant().setSidebarInterface(0, 328);
                		client.getActionAssistant().sendFrame126(WeaponName, 331);
    		}
    
    		else if (WeaponName.equals("crossbow") || WeaponName.contains("crossbow") || WeaponName.endsWith("crossbow") || WeaponName.equals("c'bow") || WeaponName.contains("c'bow") || WeaponName.endsWith("c'bow") || WeaponName.contains("Karils") || WeaponName.contains("karils")) {
    			client.getActionAssistant().setSidebarInterface(0, 1749);
                		client.getActionAssistant().sendFrame126(WeaponName, 1752);
            	}
    
    		else if (client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 861 || client.playerEquipment[PlayerConstants.PLAYER_WEAPON] == 6724) {
    			client.getActionAssistant().setSidebarInterface(0, 1764);
                		client.getActionAssistant().sendFrame126(WeaponName, 1767);
            	}
    
    		else if (WeaponName.contains("bow") ||  WeaponName.startsWith("Crystal bow") || WeaponName.contains("bow")) {
    			client.getActionAssistant().setSidebarInterface(0, 1764);
                		client.getActionAssistant().sendFrame126(WeaponName, 1767);
            	}
    
    		else if (WeaponName2.contains("dagger")) {
    			client.getActionAssistant().setSidebarInterface(0, 2276);
                		client.getActionAssistant().sendFrame126(WeaponName, 2279);
            	}
    
    		else if (WeaponName2.endsWith("halberd")) {
    			client.getActionAssistant().setSidebarInterface(0, 8460);
                		client.getActionAssistant().sendFrame126(WeaponName, 8463);
            	}
    
    		else if (WeaponName2.endsWith("claws")) {
    			client.getActionAssistant().setSidebarInterface(0, 7762);
                		client.getActionAssistant().sendFrame126(WeaponName, 7765);
    		}
    
    		else if (WeaponName.contains("Staff") || WeaponName.endsWith("staff")) {
    			client.getActionAssistant().setSidebarInterface(0, 328);
                		client.getActionAssistant().sendFrame126(WeaponName, 331);
            	}
    		 else {
    			client.getActionAssistant().setSidebarInterface(0, 2423);
                		client.getActionAssistant().sendFrame126(WeaponName, 2426);
    		}
    	}
    
    
    }

    Owner of Bethestic
    Reply With Quote  
     

  4. #4  
    Owner/Developer of Bethestic

    Join Date
    Mar 2011
    Posts
    157
    Thanks given
    15
    Thanks received
    5
    Rep Power
    1
    bump

    Owner of Bethestic
    Reply With Quote  
     

  5. #5  
    Owner/Developer of Bethestic

    Join Date
    Mar 2011
    Posts
    157
    Thanks given
    15
    Thanks received
    5
    Rep Power
    1
    bump

    Owner of Bethestic
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    Jul 2012
    Posts
    900
    Thanks given
    66
    Thanks received
    85
    Rep Power
    0
    Quote Originally Posted by Arithium View Post
    Wouldn't recommend using creativescape as its garbage, I'd go with project no-doze if you want to use shard. As for your problem you may need to check where it handles the players attack timer.
    ^this
    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. How To Fix Ur Attack Npc With More Wepaon
    By PrataKosong in forum Tutorials
    Replies: 10
    Last Post: 02-08-2009, 05:55 PM
  2. Multiple attacks (NPCs)
    By Encouragin in forum Tutorials
    Replies: 35
    Last Post: 01-17-2009, 09:57 PM
  3. Attack NPC Server DC
    By discipl3 in forum Help
    Replies: 7
    Last Post: 01-07-2009, 12:50 AM
  4. Attack NPC on NPC's coordinates. Also for players.
    By ParasyncheD in forum Tutorials
    Replies: 27
    Last Post: 09-28-2008, 08:30 AM
  5. My Attack Npc Spec
    By PrataKosong in forum RS 503+ Client & Server
    Replies: 11
    Last Post: 09-17-2008, 01:04 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •