Thread: [PI] attackNPC

Page 1 of 2 12 LastLast
Results 1 to 10 of 12
  1. #1 [PI] attackNPC 
    Registered Member Frankie's Avatar
    Join Date
    Feb 2013
    Posts
    568
    Thanks given
    10
    Thanks received
    16
    Rep Power
    12
    i'm adding clipping to my server, idk how to add attacknpc/attackplayer clipping

    Code:
    public void attackNpc(int i) {		
    		if (Server.npcHandler.npcs[i] != null) {
    			if (Server.npcHandler.npcs[i].isDead || Server.npcHandler.npcs[i].MaxHP <= 0) {
    				c.usingMagic = false;
    				c.faceUpdate(0);
    				c.npcIndex = 0;
    				return;
    			}			
    			if(c.respawnTimer > 0) {
    				c.npcIndex = 0;
    				return;
    			}
    			if (Server.npcHandler.npcs[i].underAttackBy > 0 && Server.npcHandler.npcs[i].underAttackBy != c.playerId && !Server.npcHandler.npcs[i].inMulti()) {
    				c.npcIndex = 0;
    				c.sendMessage("This monster is already in combat.");
    				return;
    			}
    			if ((c.underAttackBy > 0 || c.underAttackBy2 > 0) && c.underAttackBy2 != i && !c.inMulti()) {
    				resetPlayerAttack();
    				c.sendMessage("I am already under attack.");
    				return;
    			}
    			if (!goodSlayer(i)) {
    				resetPlayerAttack();
    				return;
    			}
    			if (Server.npcHandler.npcs[i].spawnedBy != c.playerId && Server.npcHandler.npcs[i].spawnedBy > 0) {
    				resetPlayerAttack();
    				c.sendMessage("This monster was not spawned for you.");
    				return;
    			}
    			c.followId2 = i;
    			c.followId = 0;
    			if(c.attackTimer <= 0) {
    				boolean usingBow = false;
    				boolean usingArrows = false;
    				boolean usingOtherRangeWeapons = false;
    				boolean usingCross = c.playerEquipment[c.playerWeapon] == 9185;
    				c.bonusAttack = 0;
    				c.rangeItemUsed = 0;
    				c.projectileStage = 0;
    				if (c.autocasting) {
    					c.spellId = c.autocastId;
    					c.usingMagic = true;
    				}
    				if(c.spellId > 0) {
                        c.usingMagic = true;
                    }
    				c.attackTimer = getAttackDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    				c.specAccuracy = 1.0;
    				c.specDamage = 1.0;
    				if(!c.usingMagic) {
    					for (int bowId : c.BOWS) {
    						if(c.playerEquipment[c.playerWeapon] == bowId) {
    							usingBow = true;
    							for (int arrowId : c.ARROWS) {
    								if(c.playerEquipment[c.playerArrows] == arrowId) {
    									usingArrows = true;
    								}
    							}
    						}
    					}
    					
    					for (int otherRangeId : c.OTHER_RANGE_WEAPONS) {
    						if(c.playerEquipment[c.playerWeapon] == otherRangeId) {
    							usingOtherRangeWeapons = true;
    						}
    					}
    				}
    				if (armaNpc(i) && !usingCross && !usingBow && !c.usingMagic && !usingCrystalBow() && !usingOtherRangeWeapons) {				
    					resetPlayerAttack();
    					return;
    				}
    				if((!c.goodDistance(c.getX(), c.getY(), Server.npcHandler.npcs[i].getX(), Server.npcHandler.npcs[i].getY(), 2) && (usingHally() && !usingOtherRangeWeapons && !usingBow && !c.usingMagic)) ||(!c.goodDistance(c.getX(), c.getY(), Server.npcHandler.npcs[i].getX(), Server.npcHandler.npcs[i].getY(), 4) && (usingOtherRangeWeapons && !usingBow && !c.usingMagic)) || (!c.goodDistance(c.getX(), c.getY(), Server.npcHandler.npcs[i].getX(), Server.npcHandler.npcs[i].getY(), 1) && (!usingOtherRangeWeapons && !usingHally() && !usingBow && !c.usingMagic)) || ((!c.goodDistance(c.getX(), c.getY(), Server.npcHandler.npcs[i].getX(), Server.npcHandler.npcs[i].getY(), 8) && (usingBow || c.usingMagic)))) {
    					c.attackTimer = 2;
    					return;
    				}
    				
    				if(!usingCross && !usingArrows && usingBow && (c.playerEquipment[c.playerWeapon] < 4212 || c.playerEquipment[c.playerWeapon] > 4223)) {
    					c.sendMessage("You have run out of arrows!");
    					c.stopMovement();
    					c.npcIndex = 0;
    					return;
    				} 
    				if(correctBowAndArrows() < c.playerEquipment[c.playerArrows] && MainCore.CORRECT_ARROWS && usingBow && !usingCrystalBow() && c.playerEquipment[c.playerWeapon] != 9185) {
    					c.sendMessage("You can't use "+c.getItems().getItemName(c.playerEquipment[c.playerArrows]).toLowerCase()+"s with a "+c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase()+".");
    					c.stopMovement();
    					c.npcIndex = 0;
    					return;
    				}
    				
    				
    				if (c.playerEquipment[c.playerWeapon] == 9185 && !properBolts()) {
    					c.sendMessage("You must use bolts with a crossbow.");
    					c.stopMovement();
    					resetPlayerAttack();
    					return;				
    				}
    				
    				if(usingBow || c.usingMagic || usingOtherRangeWeapons || (c.goodDistance(c.getX(), c.getY(), Server.npcHandler.npcs[i].getX(), Server.npcHandler.npcs[i].getY(), 2) && usingHally())) {
    					c.stopMovement();
    				}
    
    				if(!checkMagicReqs(c.spellId)) {
    					c.stopMovement();
    					c.npcIndex = 0;
    					return;
    				}
    				
    				c.faceUpdate(i);
    				//c.specAccuracy = 1.0;
    				//c.specDamage = 1.0;
    				Server.npcHandler.npcs[i].underAttackBy = c.playerId;
    				Server.npcHandler.npcs[i].lastDamageTaken = System.currentTimeMillis();
    				if(c.usingSpecial && !c.usingMagic) {
    					if(checkSpecAmount(c.playerEquipment[c.playerWeapon])){
    						c.lastWeaponUsed = c.playerEquipment[c.playerWeapon];
    						c.lastArrowUsed = c.playerEquipment[c.playerArrows];
    						activateSpecial(c.playerEquipment[c.playerWeapon], i);
    						return;
    					} else {
    						c.sendMessage("You don't have the required special energy to use this attack.");
    						c.usingSpecial = false;
    						c.getItems().updateSpecialBar();
    						c.npcIndex = 0;
    						return;
    					}
    				}
    				c.specMaxHitIncrease = 0;
    				if(!c.usingMagic) {
    					c.startAnimation(getWepAnim(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase()));
    					//c.sendSound(getWepSound());
    				} else {
    					c.startAnimation(c.MAGIC_SPELLS[c.spellId][2]);
    				}
    				c.lastWeaponUsed = c.playerEquipment[c.playerWeapon];
    				c.lastArrowUsed = c.playerEquipment[c.playerArrows];
    				if(!usingBow && !c.usingMagic && !usingOtherRangeWeapons) { // melee hit delay
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.projectileStage = 0;
    					c.oldNpcIndex = i;
    				}
    				
    				if(usingBow && !usingOtherRangeWeapons && !c.usingMagic || usingCross) { // range hit delay					
    					if (usingCross)
    						c.usingBow = true;
    					if (c.fightMode == 2)
    						c.attackTimer--;
    					c.lastArrowUsed = c.playerEquipment[c.playerArrows];
    					c.lastWeaponUsed = c.playerEquipment[c.playerWeapon];
    					c.gfx100(getRangeStartGFX());	
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.projectileStage = 1;
    					c.oldNpcIndex = i;
    					if(c.playerEquipment[c.playerWeapon] >= 4212 && c.playerEquipment[c.playerWeapon] <= 4223) {
    						c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
    						c.crystalBowArrowCount++;
    						c.lastArrowUsed = 0;
    					} else {
    						c.rangeItemUsed = c.playerEquipment[c.playerArrows];
    						c.getItems().deleteArrow();	
    					}
    					fireProjectileNpc();
    				}
    							
    				
    				if(usingOtherRangeWeapons && !c.usingMagic && !usingBow) {	// knives, darts, etc hit delay		
    					c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
    					c.getItems().deleteEquipment();
    					c.gfx100(getRangeStartGFX());
    					c.lastArrowUsed = 0;
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.projectileStage = 1;
    					c.oldNpcIndex = i;
    					if (c.fightMode == 2)
    						c.attackTimer--;
    					fireProjectileNpc();	
    				}
    
    				if(c.usingMagic) {	// magic hit delay
    					int pX = c.getX();
    					int pY = c.getY();
    					int nX = Server.npcHandler.npcs[i].getX();
    					int nY = Server.npcHandler.npcs[i].getY();
    					int offX = (pY - nY)* -1;
    					int offY = (pX - nX)* -1;
    					c.castingMagic = true;
    					c.projectileStage = 2;
    					if(c.MAGIC_SPELLS[c.spellId][3] > 0) {
    						if(getStartGfxHeight() == 100) {
    							c.gfx100(c.MAGIC_SPELLS[c.spellId][3]);
    						} else {
    							c.gfx0(c.MAGIC_SPELLS[c.spellId][3]);
    						}
    					}
    					if(c.MAGIC_SPELLS[c.spellId][4] > 0) {
    						c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 78, c.MAGIC_SPELLS[c.spellId][4], getStartHeight(), getEndHeight(), i + 1, 50);
    					}
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.oldNpcIndex = i;
    					c.oldSpellId = c.spellId;
                        c.spellId = 0;
    					if (!c.autocasting)
    						c.npcIndex = 0;
    				}
    
    				if(usingBow && MainCore.CRYSTAL_BOW_DEGRADES) { // crystal bow degrading
    					if(c.playerEquipment[c.playerWeapon] == 4212) { // new crystal bow becomes full bow on the first shot
    						c.getItems().wearItem(4214, 1, 3);
    					}
    					
    					if(c.crystalBowArrowCount >= 250){
    						switch(c.playerEquipment[c.playerWeapon]) {
    							
    							case 4223: // 1/10 bow
    							c.getItems().wearItem(-1, 1, 3);
    							c.sendMessage("Your crystal bow has fully degraded.");
    							if(!c.getItems().addItem(4207, 1)) {
    								Server.itemHandler.createGroundItem(c, 4207, c.getX(), c.getY(), 1, c.getId());
    							}
    							c.crystalBowArrowCount = 0;
    							break;
    							
    							default:
    							c.getItems().wearItem(++c.playerEquipment[c.playerWeapon], 1, 3);
    							c.sendMessage("Your crystal bow degrades.");
    							c.crystalBowArrowCount = 0;
    							break;
    							
    						
    						}
    					}	
    				}
    			}
    		}
    	}
    Code:
    public void attackPlayer(int i) {
    
    		if (Server.playerHandler.players[i] != null) {
    			
    			if (Server.playerHandler.players[i].isDead) {
    				resetPlayerAttack();
    				return;
    			}
    			
    			if(c.respawnTimer > 0 || Server.playerHandler.players[i].respawnTimer > 0) {
    				resetPlayerAttack();
    				return;
    			}
    			
    			/*if (c.teleTimer > 0 || Server.playerHandler.players[i].teleTimer > 0) {
    				resetPlayerAttack();
    				return;
    			}*/
    			
    			if(!c.getCombat().checkReqs()) {
    				return;
    			}
    			
    			if (c.getPA().getWearingAmount() < 4 && c.duelStatus < 1) {
    				c.sendMessage("You must be wearing at least 4 items to attack someone.");
    				resetPlayerAttack();
    				return;
    			}
    			boolean sameSpot = c.absX == Server.playerHandler.players[i].getX() && c.absY == Server.playerHandler.players[i].getY();
    			if(!c.goodDistance(Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), c.getX(), c.getY(), 25) && !sameSpot) {
    				resetPlayerAttack();
    				return;
    			}
    
    			if(Server.playerHandler.players[i].respawnTimer > 0) {
    				Server.playerHandler.players[i].playerIndex = 0;
    				resetPlayerAttack();
    				return;
    			}
    			
    			if (Server.playerHandler.players[i].heightLevel != c.heightLevel) {
    				resetPlayerAttack();
    				return;
    			}
    			//c.sendMessage("Made it here0.");
    			c.followId = i;
    			c.followId2 = 0;
    			if(c.attackTimer <= 0) {
    				c.usingBow = false;
    				c.specEffect = 0;
    				c.usingRangeWeapon = false;
    				c.rangeItemUsed = 0;
    				boolean usingBow = false;
    				boolean usingArrows = false;
    				boolean usingOtherRangeWeapons = false;
    				boolean usingCross = c.playerEquipment[c.playerWeapon] == 9185;
    				c.projectileStage = 0;
    				
    				if (c.absX == Server.playerHandler.players[i].absX && c.absY == Server.playerHandler.players[i].absY) {
    					if (c.freezeTimer > 0) {
    						resetPlayerAttack();
    						return;
    					}	
    					c.followId = i;
    					c.attackTimer = 0;
    					return;
    				}
    				
    				/*if ((c.inPirateHouse() && !Server.playerHandler.players[i].inPirateHouse()) || (Server.playerHandler.players[i].inPirateHouse() && !c.inPirateHouse())) {
    					resetPlayerAttack();
    					return;
    				}*/
    				//c.sendMessage("Made it here1.");
    				if(!c.usingMagic) {
    					for (int bowId : c.BOWS) {
    						if(c.playerEquipment[c.playerWeapon] == bowId) {
    							usingBow = true;
    							for (int arrowId : c.ARROWS) {
    								if(c.playerEquipment[c.playerArrows] == arrowId) {
    									usingArrows = true;
    								}
    							}
    						}
    					}				
    				
    					for (int otherRangeId : c.OTHER_RANGE_WEAPONS) {
    						if(c.playerEquipment[c.playerWeapon] == otherRangeId) {
    							usingOtherRangeWeapons = true;
    						}
    					}
    				}
    				if (c.autocasting) {
    					c.spellId = c.autocastId;
    					c.usingMagic = true;
    				}
    				//c.sendMessage("Made it here2.");
    				if(c.spellId > 0) {
                        c.usingMagic = true;
                    }
    				c.attackTimer = getAttackDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    
    				if(c.duelRule[9]){
    				boolean canUseWeapon = false;
    					for(int funWeapon: Config.FUN_WEAPONS) {
    						if(c.playerEquipment[c.playerWeapon] == funWeapon) {
    							canUseWeapon = true;
    						}
    					}
    					if(!canUseWeapon) {
    						c.sendMessage("You can only use fun weapons in this duel!");
    						resetPlayerAttack();
    						return;
    					}
    				}
    				//c.sendMessage("Made it here3.");
    				if(c.duelRule[2] && (usingBow || usingOtherRangeWeapons)) {
    					c.sendMessage("Range has been disabled in this duel!");
    					return;
    				}
    				if(c.duelRule[3] && (!usingBow && !usingOtherRangeWeapons && !c.usingMagic)) {
    					c.sendMessage("Melee has been disabled in this duel!");
    					return;
    				}
    				
    				if(c.duelRule[4] && c.usingMagic) {
    					c.sendMessage("Magic has been disabled in this duel!");
    					resetPlayerAttack();
    					return;
    				}
    				
    				if((!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), 4) && (usingOtherRangeWeapons && !usingBow && !c.usingMagic)) 
    				|| (!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), 2) && (!usingOtherRangeWeapons && usingHally() && !usingBow && !c.usingMagic))
    				|| (!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), getRequiredDistance()) && (!usingOtherRangeWeapons && !usingHally() && !usingBow && !c.usingMagic)) 
    				|| (!c.goodDistance(c.getX(), c.getY(), Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), 10) && (usingBow || c.usingMagic))) {
    					//c.sendMessage("Setting attack timer to 1");
    					c.attackTimer = 1;
    					if (!usingBow && !c.usingMagic && !usingOtherRangeWeapons && c.freezeTimer > 0)
    						resetPlayerAttack();
    					return;
    				}
    				
    				if(!usingCross && !usingArrows && usingBow && (c.playerEquipment[c.playerWeapon] < 4212 || c.playerEquipment[c.playerWeapon] > 4223) && !c.usingMagic) {
    					c.sendMessage("You have run out of arrows!");
    					c.stopMovement();
    					resetPlayerAttack();
    					return;
    				}
    				if(correctBowAndArrows() < c.playerEquipment[c.playerArrows] && MainCore.CORRECT_ARROWS && usingBow && !usingCrystalBow() && c.playerEquipment[c.playerWeapon] != 9185 && !c.usingMagic) {
    					c.sendMessage("You can't use "+c.getItems().getItemName(c.playerEquipment[c.playerArrows]).toLowerCase()+"s with a "+c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase()+".");
    					c.stopMovement();
    					resetPlayerAttack();
    					return;
    				}
    				if (c.playerEquipment[c.playerWeapon] == 9185 && !properBolts() && !c.usingMagic) {
    					c.sendMessage("You must use bolts with a crossbow.");
    					c.stopMovement();
    					resetPlayerAttack();
    					return;				
    				}
    				
    				
    				if(usingBow || c.usingMagic || usingOtherRangeWeapons || usingHally()) {
    					c.stopMovement();
    				}
    				
    				if(!checkMagicReqs(c.spellId)) {
    					c.stopMovement();
    					resetPlayerAttack();
    					return;
    				}
    				
    				c.faceUpdate(i+32768);
    				
    				if(c.duelStatus != 5) {
    					if(!c.attackedPlayers.contains(c.playerIndex) && !Server.playerHandler.players[c.playerIndex].attackedPlayers.contains(c.playerId)) {
    						c.attackedPlayers.add(c.playerIndex);
    						c.isSkulled = true;
    						c.skullTimer = Config.SKULL_TIMER;
    						c.headIconPk = 0;
    						c.getPA().requestUpdates();
    					} 
    				}
    				c.specAccuracy = 1.0;
    				c.specDamage = 1.0;
    				c.delayedDamage = c.delayedDamage2 = 0;
    				if(c.usingSpecial && !c.usingMagic) {
    					if(c.duelRule[10] && c.duelStatus == 5) {
    						c.sendMessage("Special attacks have been disabled during this duel!");
    						c.usingSpecial = false;
    						c.getItems().updateSpecialBar();
    						resetPlayerAttack();
    						return;
    					}
    					if(checkSpecAmount(c.playerEquipment[c.playerWeapon])){
    						c.lastArrowUsed = c.playerEquipment[c.playerArrows];
    						activateSpecial(c.playerEquipment[c.playerWeapon], i);
    						c.followId = c.playerIndex;
    						return;
    					} else {
    						c.sendMessage("You don't have the required special energy to use this attack.");
    						c.usingSpecial = false;
    						c.getItems().updateSpecialBar();
    						c.playerIndex = 0;
    						return;
    					}	
    				}
    				
    				if(!c.usingMagic) {
    					c.startAnimation(getWepAnim(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase()));
    					//c.sendSound(getWepSound());
    					c.mageFollow = false;
    				} else {
    					c.startAnimation(c.MAGIC_SPELLS[c.spellId][2]);
    					c.mageFollow = true;
    					c.followId = c.playerIndex;
    				}
    				Server.playerHandler.players[i].underAttackBy = c.playerId;
    				Server.playerHandler.players[i].logoutDelay = System.currentTimeMillis();
    				Server.playerHandler.players[i].singleCombatDelay = System.currentTimeMillis();
    				Server.playerHandler.players[i].killerId = c.playerId;
    				c.lastArrowUsed = 0;
    				c.rangeItemUsed = 0;
    				if(!usingBow && !c.usingMagic && !usingOtherRangeWeapons) { // melee hit delay
    					c.followId = Server.playerHandler.players[c.playerIndex].playerId;
    					c.getPA().followPlayer();
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.delayedDamage = Misc.random(calculateMeleeMaxHit());
    					c.projectileStage = 0;
    					c.oldPlayerIndex = i;
    				}
    								
    				if(usingBow && !usingOtherRangeWeapons && !c.usingMagic || usingCross) { // range hit delay
    					if(c.playerEquipment[c.playerWeapon] >= 4212 && c.playerEquipment[c.playerWeapon] <= 4223) {
    						c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
    						c.crystalBowArrowCount++;
    					} else {
    						c.rangeItemUsed = c.playerEquipment[c.playerArrows];
    						c.getItems().deleteArrow();
    					}
    					if (c.fightMode == 2)
    						c.attackTimer--;
    					if (usingCross)
    						c.usingBow = true;
    					c.usingBow = true;
    					c.followId = Server.playerHandler.players[c.playerIndex].playerId;
    					c.getPA().followPlayer();
    					c.lastWeaponUsed = c.playerEquipment[c.playerWeapon];
    					c.lastArrowUsed = c.playerEquipment[c.playerArrows];
    					c.gfx100(getRangeStartGFX());	
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.projectileStage = 1;
    					c.oldPlayerIndex = i;
    					fireProjectilePlayer();
    				}
    											
    				if(usingOtherRangeWeapons) {	// knives, darts, etc hit delay
    					c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
    					c.getItems().deleteEquipment();
    					c.usingRangeWeapon = true;
    					c.followId = Server.playerHandler.players[c.playerIndex].playerId;
    					c.getPA().followPlayer();
    					c.gfx100(getRangeStartGFX());
    					if (c.fightMode == 2)
    						c.attackTimer--;
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.projectileStage = 1;
    					c.oldPlayerIndex = i;
    					fireProjectilePlayer();
    				}
    
    				if(c.usingMagic) {	// magic hit delay
    					int pX = c.getX();
    					int pY = c.getY();
    					int nX = Server.playerHandler.players[i].getX();
    					int nY = Server.playerHandler.players[i].getY();
    					int offX = (pY - nY)* -1;
    					int offY = (pX - nX)* -1;
    					c.castingMagic = true;
    					c.projectileStage = 2;
    					if(c.MAGIC_SPELLS[c.spellId][3] > 0) {
    						if(getStartGfxHeight() == 100) {
    							c.gfx100(c.MAGIC_SPELLS[c.spellId][3]);
    						} else {
    							c.gfx0(c.MAGIC_SPELLS[c.spellId][3]);
    						}
    					}
    					if(c.MAGIC_SPELLS[c.spellId][4] > 0) {
    						c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 78, c.MAGIC_SPELLS[c.spellId][4], getStartHeight(), getEndHeight(), -i - 1, getStartDelay());
    					}
    					if (c.autocastId > 0) {
    						c.followId = c.playerIndex;
    						c.followDistance = 5;
    					}	
    					c.hitDelay = getHitDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    					c.oldPlayerIndex = i;
    					c.oldSpellId = c.spellId;
                        c.spellId = 0;
    					Client o = (Client)Server.playerHandler.players[i];
    					if(c.MAGIC_SPELLS[c.oldSpellId][0] == 12891 && o.isMoving) {
    						//c.sendMessage("Barrage projectile..");
    						c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 85, 368, 25, 25, -i - 1, getStartDelay());
    					}
    					if(Misc.random(o.getCombat().mageDef()) > Misc.random(mageAtk())) {
    						c.magicFailed = true;
    					} else {
    						c.magicFailed = false;
    					}
    					int freezeDelay = getFreezeTime();//freeze time
    					if(freezeDelay > 0 && Server.playerHandler.players[i].freezeTimer <= -3 && !c.magicFailed) { 
    						Server.playerHandler.players[i].freezeTimer = freezeDelay;
    						o.resetWalkingQueue();
    						o.sendMessage("You have been frozen.");
    						o.frozenBy = c.playerId;
    					}
    					if (!c.autocasting && c.spellId <= 0)
    						c.playerIndex = 0;
    				}
    
    				if(usingBow && MainCore.CRYSTAL_BOW_DEGRADES) { // crystal bow degrading
    					if(c.playerEquipment[c.playerWeapon] == 4212) { // new crystal bow becomes full bow on the first shot
    						c.getItems().wearItem(4214, 1, 3);
    					}
    					
    					if(c.crystalBowArrowCount >= 250){
    						switch(c.playerEquipment[c.playerWeapon]) {
    							
    							case 4223: // 1/10 bow
    							c.getItems().wearItem(-1, 1, 3);
    							c.sendMessage("Your crystal bow has fully degraded.");
    							if(!c.getItems().addItem(4207, 1)) {
    								Server.itemHandler.createGroundItem(c, 4207, c.getX(), c.getY(), 1, c.getId());
    							}
    							c.crystalBowArrowCount = 0;
    							break;
    							
    							default:
    							c.getItems().wearItem(++c.playerEquipment[c.playerWeapon], 1, 3);
    							c.sendMessage("Your crystal bow degrades.");
    							c.crystalBowArrowCount = 0;
    							break;
    						}
    					}	
    				}
    			}
    		}
    	}
    or if you happen to have a public void attackNpc(int i) that has clipping? or a attackPlayer
    that you don't mind giving me, so i can have clipping ;D
    Located in: CombatAssistant.java
    Thanks in advanced!
    Reply With Quote  
     

  2. #2  
    Registered Member Ab Saint Dane's Avatar
    Join Date
    Mar 2013
    Posts
    77
    Thanks given
    0
    Thanks received
    5
    Rep Power
    54
    Nice!

    Keep up the momentum!
    Reply With Quote  
     

  3. #3  
    Registered Member
    Karma_K's Avatar
    Join Date
    Nov 2012
    Posts
    4,283
    Thanks given
    152
    Thanks received
    610
    Rep Power
    108
    Quote Originally Posted by Ab Saint Dane View Post
    Nice!

    Keep up the momentum!
    He's asking for help and you say that. Loled
    Reply With Quote  
     

  4. #4  
    Registered Member Frankie's Avatar
    Join Date
    Feb 2013
    Posts
    568
    Thanks given
    10
    Thanks received
    16
    Rep Power
    12
    Quote Originally Posted by Karma_K View Post
    He's asking for help and you say that. Loled
    friendly bump
    Reply With Quote  
     

  5. #5  
    H_E_N_T_A_I_H_E_A_V_E_N_
    Tatsumi's Avatar
    Join Date
    May 2013
    Posts
    1,779
    Thanks given
    537
    Thanks received
    269
    Rep Power
    337
    FGS, please use Code tags.
    Attached image
    Reply With Quote  
     

  6. #6  
    Registered Member
    Mylyn's Avatar
    Join Date
    Dec 2012
    Posts
    1,536
    Thanks given
    602
    Thanks received
    278
    Rep Power
    119
    Hint: pathBlocked.
    Reply With Quote  
     

  7. #7  
    Registered Member Frankie's Avatar
    Join Date
    Feb 2013
    Posts
    568
    Thanks given
    10
    Thanks received
    16
    Rep Power
    12
    Quote Originally Posted by Mylyn View Post
    Hint: pathBlocked.
    not asking for a spoon feed but mind throwing a little more out?
    Reply With Quote  
     

  8. #8  
    Registered Member Frankie's Avatar
    Join Date
    Feb 2013
    Posts
    568
    Thanks given
    10
    Thanks received
    16
    Rep Power
    12
    Quote Originally Posted by Lord I F A I L View Post
    LOL he was friendly bumping and didn't read the post.

    OFF Topic: I got SB banned by scu11 LOL
    Reply With Quote  
     

  9. #9  
    Registered Member
    Mylyn's Avatar
    Join Date
    Dec 2012
    Posts
    1,536
    Thanks given
    602
    Thanks received
    278
    Rep Power
    119
    Quote Originally Posted by Frankie View Post
    not asking for a spoon feed but mind throwing a little more out?
    If you have the pathBlocked booleans you should be able to figure it all out.
    Reply With Quote  
     

  10. #10  
    Registered Member Frankie's Avatar
    Join Date
    Feb 2013
    Posts
    568
    Thanks given
    10
    Thanks received
    16
    Rep Power
    12
    Quote Originally Posted by Mylyn View Post
    If you have the pathBlocked booleans you should be able to figure it all out.
    i don't.

    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: 4
    Last Post: 07-04-2013, 04:45 AM
  2. [PI]attackNPC error(summoning)
    By TheScape in forum Help
    Replies: 0
    Last Post: 11-13-2012, 03:42 AM
  3. Some pi error??????
    By Oh my gawd in forum Help
    Replies: 20
    Last Post: 05-08-2009, 03:19 PM
  4. player item pi
    By Ishana in forum Help
    Replies: 4
    Last Post: 05-06-2009, 09:17 PM
  5. PI day!!!!!
    By HvSxTornado in forum Chat
    Replies: 5
    Last Post: 03-15-2009, 11:36 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
  •