Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void attackPlayer(int i) {
- if (Mistex.playerHandler.players[i] != null) {
- Client c2 = (Client) Mistex.playerHandler.players[i];
- if (Mistex.playerHandler.players[i].isDead) {
- resetPlayerAttack();
- return;
- }
- /*if (c.getX() == c2.getX() && c.getY() == c2.getY()) {
- c.getPA().stepAway();
- }*/
- if (c.respawnTimer > 0
- || Mistex.playerHandler.players[i].respawnTimer > 0) {
- resetPlayerAttack();
- return;
- }
- if (!c.getCombat().checkReqs()) {
- return;
- }
- if (c.getPA().getWearingAmount() < 4 && !c.inDuelArena()) {
- c.sendMessage("You must be wearing at least 4 items to attack someone.");
- resetPlayerAttack();
- return;
- }
- boolean sameSpot = c.absX == Mistex.playerHandler.players[i].getX()
- && c.absY == Mistex.playerHandler.players[i].getY();
- if (!c.goodDistance(Mistex.playerHandler.players[i].getX(),
- Mistex.playerHandler.players[i].getY(), c.getX(), c.getY(),
- 25)
- && !sameSpot) {
- resetPlayerAttack();
- return;
- }
- if (Mistex.playerHandler.players[i].respawnTimer > 0) {
- Mistex.playerHandler.players[i].playerIndex = 0;
- resetPlayerAttack();
- return;
- }
- if (Mistex.playerHandler.players[i].heightLevel != c.heightLevel) {
- resetPlayerAttack();
- return;
- }
- 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 == Mistex.playerHandler.players[i].absX
- && c.absY == Mistex.playerHandler.players[i].absY) {
- if (c.freezeTimer > 0) {
- resetPlayerAttack();
- return;
- }
- c.followId = i;
- c.attackTimer = 0;
- return;
- }
- /*if (c.getX() != c2.getX() && c.getY() != c2.getY() && !usingOtherRangeWeapons && !c.getCombat().usingHally() && !usingBow && !c.usingMagic) {
- c.faceUpdate(i+32768); //face the player
- c.getPA().stopDiagonal(c2.getX(), c2.getY());//move to a correct spot
- return;
- }*/
- 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;
- }
- 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 : MistexConfiguration.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;
- }
- }
- 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(),
- Mistex.playerHandler.players[i].getX(),
- Mistex.playerHandler.players[i].getY(), 4) && (usingOtherRangeWeapons
- && !usingBow && !c.usingMagic))
- || (!c.goodDistance(c.getX(), c.getY(),
- Mistex.playerHandler.players[i].getX(),
- Mistex.playerHandler.players[i].getY(), 2) && (!usingOtherRangeWeapons
- && usingHally() && !usingBow && !c.usingMagic))
- || (!c.goodDistance(c.getX(), c.getY(),
- Mistex.playerHandler.players[i].getX(),
- Mistex.playerHandler.players[i].getY(),
- getRequiredDistance()) && (!usingOtherRangeWeapons
- && !usingHally() && !usingBow && !c.usingMagic))
- || (!c.goodDistance(c.getX(), c.getY(),
- Mistex.playerHandler.players[i].getX(),
- Mistex.playerHandler.players[i].getY(), 10) && (usingBow || c.usingMagic))) {
- 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 (c.getRange().correctBowAndArrows() < c.playerEquipment[c.playerArrows]
- && PlayerConfiguration.CORRECT_ARROWS && usingBow
- && !c.getRange().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 && !c.getRange().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(PlayerAssistant.pathBlocked(c, c2)) {
- if((c.usingBow || c.usingMagic || usingOtherRangeWeapons || c.autocasting))
- PathFinder.getPathFinder().findRoute(c, c2.absX, c2.absY, true, 8, 8);
- if(!c.usingBow && !c.usingMagic && !usingOtherRangeWeapons && !c.autocasting)
- PathFinder.getPathFinder().findRoute(c, c2.absX, c2.absY, true, 1, 1);
- c.attackTimer = 0;
- return;
- }*/
- if (!c.getMagics().checkMagicReqs(c.spellId)) {
- c.stopMovement();
- resetPlayerAttack();
- return;
- }
- c.faceUpdate(i + 32768);
- if (c.duelStatus != 5) {
- if (!c.attackedPlayers.contains(c.playerIndex)
- && !Mistex.playerHandler.players[c.playerIndex].attackedPlayers
- .contains(c.playerId)) {
- c.attackedPlayers.add(c.playerIndex);
- c.isSkulled = true;
- c.skullTimer = PlayerConfiguration.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.mageFollow = false;
- } else {
- c.startAnimation(c.getMagics().MAGIC_SPELLS[c.spellId][2]);
- c.mageFollow = true;
- c.followId = c.playerIndex;
- }
- Mistex.playerHandler.players[i].underAttackBy = c.playerId;
- Mistex.playerHandler.players[i].logoutDelay = System
- .currentTimeMillis();
- Mistex.playerHandler.players[i].singleCombatDelay = System
- .currentTimeMillis();
- Mistex.playerHandler.players[i].killerId = c.playerId;
- c.lastArrowUsed = 0;
- c.rangeItemUsed = 0;
- if (!usingBow && !c.usingMagic && !usingOtherRangeWeapons) { // melee
- // hit
- // delay
- c.followId = Mistex.playerHandler.players[c.playerIndex].playerId;
- c.getPA().followPlayer();
- c.hitDelay = getHitDelay(c.getItems()
- .getItemName(c.playerEquipment[c.playerWeapon])
- .toLowerCase());
- c.delayedDamage = MistexUtility.random(c.getMelee().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 = Mistex.playerHandler.players[c.playerIndex].playerId;
- c.getPA().followPlayer();
- c.lastWeaponUsed = c.playerEquipment[c.playerWeapon];
- c.lastArrowUsed = c.playerEquipment[c.playerArrows];
- c.gfx100(c.getRange().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 = Mistex.playerHandler.players[c.playerIndex].playerId;
- c.getPA().followPlayer();
- c.gfx100(c.getRange().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 = Mistex.playerHandler.players[i].getX();
- int nY = Mistex.playerHandler.players[i].getY();
- int offX = (pY - nY) * -1;
- int offY = (pX - nX) * -1;
- c.castingMagic = true;
- c.projectileStage = 2;
- if (c.getMagics().MAGIC_SPELLS[c.spellId][3] > 0) {
- if (c.getMagics().getStartGfxHeight() == 100) {
- c.gfx100(c.getMagics().MAGIC_SPELLS[c.spellId][3]);
- } else {
- c.gfx0(c.getMagics().MAGIC_SPELLS[c.spellId][3]);
- }
- }
- if (c.getMagics().MAGIC_SPELLS[c.spellId][4] > 0) {
- c.getPA().createPlayersProjectile(pX, pY, offX, offY,
- 50, 78, c.getMagics().MAGIC_SPELLS[c.spellId][4],
- c.getMagics().getStartHeight(), c.getMagics().getEndHeight(), -i - 1,
- c.getMagics().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) Mistex.playerHandler.players[i];
- if (c.getMagics().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, c.getMagics().getStartDelay());
- }
- c.magicFailed = c.getMagics().canHitMage(o);
- int freezeDelay = c.getMagics().getFreezeTime();// freeze time
- if (MistexUtility.random(c.getMagics().mageAtk()) > MistexUtility.random(o.getCombat().c.getMagics().mageDef())) {
- c.magicFailed = false;
- } else if (MistexUtility.random(c.getMagics().mageAtk()) < MistexUtility.random(o.getCombat().c.getMagics().mageDef())) {
- c.magicFailed = true;
- }
- if (freezeDelay > 0
- && Mistex.playerHandler.players[i].freezeTimer <= -3
- && !c.magicFailed) {
- Mistex.playerHandler.players[i].freezeTimer = freezeDelay;
- o.resetWalkingQueue();
- o.getCombat().resetPlayerAttack();
- o.sendMessage("You have been frozen!");
- o.frozenBy = c.playerId;
- }
- if (!c.autocasting && c.spellId <= 0)
- c.playerIndex = 0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement