Thread: 474 Player vs Npc Combat

Results 1 to 6 of 6
  1. #1 474 Player vs Npc Combat 
    Registered Member
    CTucker's Avatar
    Join Date
    Oct 2008
    Posts
    2,422
    Thanks given
    263
    Thanks received
    281
    Rep Power
    343
    Here is the start of my NpcPacket

    Code:
    public class NpcPacket implements Packet {
    
    	@Override
    	public void handlePacket(Player p, int packetId, int packetSize) {
    		switch (packetId) {
    		case 21:
    			firstClick(p);
    			break;
    		case 196:
    			p.attackNpc = p.stream.readUnsignedWordBigEndian();
    			p.inCombat = true;
    			p.target = Engine.npcs[p.attackNpc];
    			break;
    		case 160:
    			secondClick(p);
    			break;
    		case 157:
    			magicNpc(p);
    			break;
    		case 96:
    			sendAttack(p);
    			break;
    
    		}
    	}
    
    	private void sendAttack(Player p) {
    
    		if (!p.playerOption1) {
    			int npcId = p.stream.readUnsignedWordBigEndianA();
    			
    			p.requestFaceTo(npcId + 32768);
    			p.clickId = npcId;
    			p.clickX = Engine.npcs[npcId].absX;
    			p.clickY = Engine.npcs[npcId].absY;
    			if (Misc.getDistance(p.absX, p.absY, p.clickX, p.clickY) > 30) {
    				return;
    			}
    			p.playerOption1 = true;
    		}
    		p.playerOption1 = false;
    		p.combat.inCombat = true;
    		p.NpcOpponent = Engine.npcs[p.clickId];
    		p.attackingNpc = true;
    	}

    in player.java right under

    Code:
     	if (attackingPlayer) {
    			Engine.playerCombat.attackPlayer(this);
    		}
    i have this

    Code:
    		if (attackingNpc) {
    			Engine.playerCombat.attackNpc(this);
    		}

    and last but not least my attack npc void

    Code:
    public void attackNpc(Player p) {
    		NPC opponent = p.NpcOpponent;
    		if (opponent == null || opponent.isDead) {
    			p.combat.stopCombat();
    			return;
    		}
    		int distance = Misc.getDistance(p.absX, p.absY, opponent.absX,
    				opponent.absY);
    		if (distance > 30) {
    			p.combat.stopCombat();
    			return;
    		}
    		if (p.combat.isRanging()) {
    			Engine.playerMovement.resetWalkingQueue(p);
    		} 
    		if (p.combat.attackDelay > 0 || !p.combat.inCombat) {
    			return;
    		}
    
    		
    			if (p.combat.isRanging()) {
    				handleRanged(p);
    			} else {
    				distance = Misc.getDistance(p.absX, p.absY, opponent.absX,
    						opponent.absY);
    				if (distance >= p.combat.getAttackingDistance()) {
    					p.requestAnim(p.combat.setAttackAnimation(), 0);
    					p.combat.attackDelay = p.combat.getAttackSpeed();
    
    					p.combat.hitDamage = p.combat.getDamage();
    
    					// p.combat.hitDamage = p.combat.getHit(p.combat
    					// .getAccuracy(false), p.combat.getMeleeMaxhit());
    					// p.combat.hitDamage2 = p.combat.getHit(p.combat
    					// .getAccuracy(false), p.combat.getMeleeMaxhit());
    					hitPlayer(p, 2);
    				}
    			}
    		}
    First try at 474 combat, can any1 find out whats wrong?


    Compiles no errors, but nothing happens in terms of combat
    Reply With Quote  
     

  2. #2  
    Registered Member
    CTucker's Avatar
    Join Date
    Oct 2008
    Posts
    2,422
    Thanks given
    263
    Thanks received
    281
    Rep Power
    343
    Bumpidy bump bump
    Reply With Quote  
     

  3. #3  
    Registered Member
    CTucker's Avatar
    Join Date
    Oct 2008
    Posts
    2,422
    Thanks given
    263
    Thanks received
    281
    Rep Power
    343
    And another bump
    Reply With Quote  
     

  4. #4  
    Registered Member Mayday Parade's Avatar
    Join Date
    Apr 2009
    Age
    27
    Posts
    495
    Thanks given
    20
    Thanks received
    17
    Rep Power
    8
    Are the NPC's aggressive?

    Spoiler for LoL:
    Quote Originally Posted by Imbued View Post
    Quote Originally Posted by pasta186 View Post
    That tutorial doesnt walk.
    That's because it got no legs..
    Best report I've sent? "Mass spam? Also in wrong sexual"
    LOL
    Reply With Quote  
     

  5. #5  
    Registered Member Vyper's Avatar
    Join Date
    Sep 2009
    Posts
    149
    Thanks given
    3
    Thanks received
    0
    Rep Power
    14
    case 196:
    p.attackNpc = p.stream.readUnsignedWordBigEndian();
    p.inCombat = true;
    p.target = Engine.npcs[p.attackNpc];
    p.attackingNpc = true;
    break;

    remove


    case 96:
    sendAttack;
    break;

    thats player vs player packet lol


    GO GNARLY!

    Private-message me if you require help/assistance, I'll be sure to help! (RSPS/FRAMEWORK/NETTY/MINA)

    Reply With Quote  
     

  6. #6  
    Registered Member
    Pilldom's Avatar
    Join Date
    Sep 2007
    Posts
    1,298
    Thanks given
    24
    Thanks received
    221
    Rep Power
    164
    Theres quiet a few problems here... 1) You never said whetever attackingNpc was true or not. And 2) is
    if (attackingNpc) {
    Engine.playerCombat.attackNpc(this);
    }

    in an event?
    Attached image
    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

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •