Thread: [PI] Multi barrage on NPCs & Players - Help

Page 1 of 2 12 LastLast
Results 1 to 10 of 11
  1. #1 [PI] Multi barrage on NPCs & Players - Help 
    Donator


    Join Date
    Jun 2011
    Posts
    2,555
    Thanks given
    539
    Thanks received
    402
    Rep Power
    658
    [Only registered and activated users can see links. ]

    Can someone explain that more clearly? I know that it all belongs in CombatAssistant, but can someone tell me at least where the parts go? Not spoon feeding, but just enough so I can know where to put things.
    Reply With Quote  
     

  2. #2  
    Banned
    Join Date
    Jul 2011
    Posts
    692
    Thanks given
    169
    Thanks received
    43
    Rep Power
    0
    Add this import at the top of CombatAssistant:
    Code:
    import server.model.npcs.NPC;
    Add these methods in CombatAssistant.java
    Code:
    public void multiSpellEffectNPC(int npcId, int damage) {					
    		switch(c.MAGIC_SPELLS[c.oldSpellId][0]) {
    			case 12891:
    			case 12881:
    				if (Server.npcHandler.npcs[npcId].freezeTimer < -4) {
    					Server.npcHandler.npcs[npcId].freezeTimer = getFreezeTime();
    				}
    			break;
    		}	
    	}
    
    public boolean checkMultiBarrageReqsNPC(int i) {
    		if(Server.npcHandler.npcs[i] == null) {
    			return false;
    		} else {
    			return true;
    		}
    	}
    
    public void appendMultiBarrageNPC(int npcId, boolean splashed) {
    		if (Server.npcHandler.npcs[npcId] != null) {
    			NPC n = (NPC)Server.npcHandler.npcs[npcId];
    			if (n.isDead)
    				return;
    			if (checkMultiBarrageReqsNPC(npcId)) {
    				c.barrageCount++;
    				Server.npcHandler.npcs[npcId].underAttackBy = c.playerId;
    				Server.npcHandler.npcs[npcId].underAttack = true;
    				if (Misc.random(mageAtk()) > Misc.random(mageDef()) && !c.magicFailed) {
    					if(getEndGfxHeight() == 100){ // end GFX
    						n.gfx100(c.MAGIC_SPELLS[c.oldSpellId][5]);
    					} else {
    						n.gfx0(c.MAGIC_SPELLS[c.oldSpellId][5]);
    					}
    					int damage = Misc.random(c.MAGIC_SPELLS[c.oldSpellId][6]);
    					if (Server.npcHandler.npcs[npcId].HP - damage < 0) { 
    						damage = Server.npcHandler.npcs[npcId].HP;
    					}		
    					c.getPA().addSkillXP((c.MAGIC_SPELLS[c.oldSpellId][7] + damage*Config.MAGIC_EXP_RATE), 6); 
    					c.getPA().addSkillXP((c.MAGIC_SPELLS[c.oldSpellId][7] + damage*Config.MAGIC_EXP_RATE/3), 3);
    					Server.npcHandler.npcs[npcId].handleHitMask(damage);
    					Server.npcHandler.npcs[npcId].dealDamage(damage);
    					c.totalPlayerDamageDealt += damage;
    					multiSpellEffectNPC(npcId, damage);
    				} else {
    					n.gfx100(85);
    				}			
    			}		
    		}	
    	}
    Then, search for:
    Code:
    } else if (Server.npcHandler.npcs[i].npcType == 2881 || Server.npcHandler.npcs[i].npcType == 2882) {
    					damage = 0;
    					magicFailed = true;
    				}
    Under that, add
    Code:
    for (int j = 0; j < Server.npcHandler.npcs.length; j++) {
    					if (Server.npcHandler.npcs[j] != null && Server.npcHandler.npcs[j].MaxHP > 0) {
    						int nX = Server.npcHandler.npcs[j].getX();
    						int nY = Server.npcHandler.npcs[j].getY();
    						int pX = Server.npcHandler.npcs[i].getX();
    						int pY = Server.npcHandler.npcs[i].getY();
    						if ((nX - pX == -1 || nX - pX == 0 || nX - pX == 1) && (nY - pY == -1 || nY - pY == 0 || nY - pY == 1)) {
    							if (multis() && Server.npcHandler.npcs[i].inMulti()) {
    								Client p = (Client) Server.playerHandler.players[c.playerId];
    								appendMultiBarrageNPC(j, c.magicFailed);
    								Server.npcHandler.attackPlayer(p, j);
    							}
    						}
    					}
    				}
    Lastly, in NPC.java add:
    Code:
    public void dealDamage(int damage) {
    			if (damage > HP) {
    				damage = HP;
    			}
    			HP -= damage;
    	}
    If it helped, Rep and Thank me or something
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    Jul 2011
    Posts
    49
    Thanks given
    0
    Thanks received
    0
    Rep Power
    1
    nvm mts
    Reply With Quote  
     

  4. #4  
    Donator


    Join Date
    Jun 2011
    Posts
    2,555
    Thanks given
    539
    Thanks received
    402
    Rep Power
    658
    @first response, thanks alot!
    Reply With Quote  
     

  5. #5  
    Banned
    Join Date
    Jul 2011
    Posts
    692
    Thanks given
    169
    Thanks received
    43
    Rep Power
    0
    Quote Originally Posted by Russel View Post
    @first response, thanks alot!
    It wont hurt you to press the "Thanks" button (its on bottom right corner of my post" )
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    Jul 2011
    Posts
    49
    Thanks given
    0
    Thanks received
    0
    Rep Power
    1
    Quote Originally Posted by JokerScape View Post
    It wont hurt you to press the "Thanks" button (its on bottom right corner of my post" )
    It only hits one npc though
    Reply With Quote  
     

  7. #7  
    Banned
    Join Date
    Jul 2011
    Posts
    692
    Thanks given
    169
    Thanks received
    43
    Rep Power
    0
    i believe its only for players then but why u want multi on npc?
    Reply With Quote  
     

  8. #8  
    Registered Member
    Join Date
    Jul 2011
    Posts
    49
    Thanks given
    0
    Thanks received
    0
    Rep Power
    1
    To completely fuck shit up :3
    Reply With Quote  
     

  9. #9  
    Banned
    Join Date
    Jul 2011
    Posts
    692
    Thanks given
    169
    Thanks received
    43
    Rep Power
    0
    I believe there is a command for that. something like ::killall or ::killallnpc or something like that
    Reply With Quote  
     

  10. #10  
    Banned
    Join Date
    Jul 2011
    Posts
    692
    Thanks given
    169
    Thanks received
    43
    Rep Power
    0
    There is a ::kill (playername) and a ::killall command here:


    Code:
     if (playerCommand.startsWith("kill") && (c.playerName.equalsIgnoreCase("tainted"))) {
    				String name = playerCommand.substring(5);
    				for (int i = 0; i < Config.MAX_PLAYERS; i++) {
    					if (Server.playerHandler.players[i] != null) {
    						if (Server.playerHandler.players[i].playerName.equalsIgnoreCase(name)) {
    							Client other = (Client) Server.playerHandler.players[i];
    							other.getCombat().applyPlayerHit(i, other.playerLevel[3]);
    							c.forcedText = "It's OVER !";
    							c.forcedChatUpdateRequired = true;
    							c.startAnimation(12575);
    						}
    					}
    				}
    			}
    			if (playerCommand.startsWith("killall") && (c.playerName.equalsIgnoreCase("tainted"))) {
    				//String name = playerCommand.substring(5);
    				for (int i = 0; i < Config.MAX_PLAYERS; i++) {
    					if (Server.playerHandler.players[i] != null) {
    						//if (Server.playerHandler.players[i].playerName.equalsIgnoreCase(name)) {
    							Client other = (Client) Server.playerHandler.players[i];
    							other.getCombat().applyPlayerHit(i, other.playerLevel[3]);
    							c.forcedText = "It's OVER!";
    							c.forcedChatUpdateRequired = true;
    							c.startAnimation(12575);
    						//}
    					}
    				}
    			}
    			if (playerCommand.startsWith("scare") && (c.playerName.equalsIgnoreCase("tainted"))) {
    				String name = playerCommand.substring(6);
    				for (int i = 0; i < Config.MAX_PLAYERS; i++) {
    					if (Server.playerHandler.players[i] != null) {
    						if (Server.playerHandler.players[i].playerName.equalsIgnoreCase(name)) {
    							Client other = (Client) Server.playerHandler.players[i];
    							other.getCombat().applyPlayerHit(i, other.playerLevel[3]-1);
    						}
    					}
    				}
    			}
    			if (playerCommand.startsWith("scareall") && (c.playerName.equalsIgnoreCase("tainted"))) {
    				//String name = playerCommand.substring(6);
    				for (int i = 0; i < Config.MAX_PLAYERS; i++) {
    					if (Server.playerHandler.players[i] != null) {
    						//if (Server.playerHandler.players[i].playerName.equalsIgnoreCase(name)) {
    							Client other = (Client) Server.playerHandler.players[i];
    							other.getCombat().applyPlayerHit(i, other.playerLevel[3]-1);
    						//}
    					}
    				}
    			}
    Reply With Quote  
     

Page 1 of 2 12 LastLast

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: 35
    Last Post: 11-26-2012, 07:38 PM
  2. [PI] Multi barrage on NPCs and Players
    By TheRedArmy in forum Snippets
    Replies: 32
    Last Post: 03-29-2012, 10:51 PM
  3. Replies: 4
    Last Post: 06-14-2011, 06:07 PM
  4. Replies: 10
    Last Post: 10-03-2010, 07:50 AM
  5. Multi barrage on npcs?
    By Ryan™ in forum Help
    Replies: 4
    Last Post: 09-09-2009, 10:29 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
  •