Thread: [APOLLO] NPC & Player Damaging

Results 1 to 8 of 8
  1. #1 [APOLLO] NPC & Player Damaging 
    arrowzftw
    Guest
    Add this to event.impl
    DamageEvent.class

    Code:
    package org.apollo.game.event.impl;
    
    import org.apollo.game.event.Event;
    
    /**
     *
     * @author Arrowzftw
     */
    public class DamageEvent extends Event {
        
        private int damageDone;
        private int hitType;
        private int currentHp;
        private int maxHp;
        
        public DamageEvent(int damageDone, int currentHp, int maxHp) {
            this.damageDone = damageDone;
            this.hitType = damageDone == 0 ? 0 : 1;
            this.currentHp = currentHp;
            this.maxHp = maxHp;
        }
        
        public int getDamageDone() {
            return damageDone;
        }
        
        public int getHitType() {
            return hitType;
        }
       
        public int getHp() {
            return currentHp;
        }
        
        public int getMaxHp() {
            return maxHp;
        }
        
    }

    Add this to sync.block

    Code:
    package org.apollo.game.sync.block;
    
    import org.apollo.game.event.impl.DamageEvent;
    
    /**
     *
     * @author ArrowzFtw
     */
    public class HitUpdateBlock extends SynchronizationBlock {
        
        private final DamageEvent damage;
        
        HitUpdateBlock(DamageEvent damage) {
            this.damage = damage;
        }
        
        public DamageEvent getDamage() {
            return damage;
        }
        
    }
    Inside PlayerSynchronizationEventEncoder Under:
    Do the exact same thing in NPCSynchronizationEventEncoder mask for NPCs is ..... mask |= 0x8;

    Code:
    			if (blockSet.contains(TurnToPositionBlock.class)) {
    				mask |= 0x2;
    			}
    Add:

    Code:
                            if (blockSet.contains(HitUpdateBlock.class)) {
                                    mask |= 0x20;
                            }

    Find this again:

    Code:
    if (blockSet.contains(TurnToPositionBlock.class)) {
    Then under the whole thing add:

    Code:
                            if (blockSet.contains(HitUpdateBlock.class)) {
    				putHitUpdateBlock(blockSet.get(HitUpdateBlock.class), blockBuilder);
    			}

    Declare this:

    Code:
            private void putHitUpdateBlock(HitUpdateBlock block, GamePacketBuilder blockBuilder) {
                    DamageEvent damage = block.getDamage();
                    blockBuilder.put(DataType.BYTE, damage.getDamageDone());
                    blockBuilder.put(DataType.BYTE, DataTransformation.ADD, damage.getHitType());
                    blockBuilder.put(DataType.BYTE, DataTransformation.NEGATE, damage.getHp()-damage.getDamageDone());
                    blockBuilder.put(DataType.BYTE, damage.getMaxHp());
            }

    Add this to SynchronizationBlock.java

    Code:
    	public static SynchronizationBlock createHitUpdateBlock(DamageEvent damage) {
    		return new HitUpdateBlock(damage);
    	}

    Add this to Character.java

    Code:
            /*
             * Damage Entity
             * 
             */
            
            public void damageEntity(DamageEvent damage) {
                blockSet.add(SynchronizationBlock.createHitUpdateBlock(damage));
            }
    How to use:

    Code:
    character.damageEntity(DamageEvent.new(DamageDoneOnPlayer,CurrentHP,MAXHP))
    You still have to make the players HP drop.

    Reply With Quote  
     


  2. #2  
    Registered Member
    Join Date
    Dec 2011
    Posts
    11
    Thanks given
    0
    Thanks received
    19
    Rep Power
    13
    beat me to it. Good Job.
    Reply With Quote  
     

  3. #3  
    arrowzftw
    Guest
    Quote Originally Posted by Jake_G View Post
    beat me to it. Good Job.
    =] thanks, started on combat.
    Reply With Quote  
     

  4. #4  
    Astrect Developer

    Join Date
    Oct 2008
    Age
    25
    Posts
    1,941
    Thanks given
    369
    Thanks received
    212
    Rep Power
    591
    Dear Jay,
    Have my babies please but anyways nice.
    Reply With Quote  
     

  5. #5  
    Registered Member

    Join Date
    Sep 2008
    Posts
    4,830
    Thanks given
    893
    Thanks received
    1,439
    Discord
    View profile
    Rep Power
    2924
    Thanks nice share
    "Know thy self, know thy enemy. A thousand battles, a thousand victories." - Sun Tzu
    GitHub: [Only registered and activated users can see links. ]
    Reply With Quote  
     

  6. #6  
    Dr. Jaegon


    Join Date
    Sep 2011
    Posts
    2,135
    Thanks given
    407
    Thanks received
    441
    Rep Power
    2559
    Thanks man I love your apollo releases.
    Reply With Quote  
     

  7. #7  
    Registered Member
    The Wanderer's Avatar
    Join Date
    Mar 2010
    Posts
    597
    Thanks given
    44
    Thanks received
    152
    Rep Power
    196
    Wonderful release.
    "But men may construe things after their fashion,. Clean from the purpose of the things themselves" - Shakespeare
    Reply With Quote  
     

  8. #8  
    Donator
    Woosh's Avatar
    Join Date
    Jan 2012
    Posts
    190
    Thanks given
    2
    Thanks received
    9
    Rep Power
    34
    thank you(:
    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. [Apollo]NPC Updating[Apollo]
    By The Wanderer in forum Tutorials
    Replies: 41
    Last Post: 09-06-2013, 02:19 AM
  2. [PI] NPC & Player Clipping?
    By Cheaterz in forum Requests
    Replies: 1
    Last Post: 11-29-2011, 09:07 AM
  3. Npc & player facing eachother
    By Jukk in forum Snippets
    Replies: 22
    Last Post: 06-12-2009, 08:46 AM
  4. Npc & Player Npc Dialog
    By Sub in forum Snippets
    Replies: 5
    Last Post: 03-14-2009, 06:07 PM
  5. [508]All Player && NPC UpdateMasks
    By Sean in forum RS 503+ Client & Server
    Replies: 6
    Last Post: 08-29-2008, 12:41 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
  •