Examples of NPC


Examples of org.moparscape.msc.gs.model.Npc

      attacker = affectedMob;
      opponent = owner;
    }

    if (attacker instanceof Npc) {
      Npc n = (Npc) attacker;
      if (attacker.getHits() <= 0) {
        n.resetCombat(CombatState.ERROR);
        owner.resetCombat(CombatState.ERROR);
        this.stop();
        return;
      }
    }
    if (opponent instanceof Npc) {
      Npc n = (Npc) opponent;
      if (opponent.getHits() <= 0) {
        n.resetCombat(CombatState.ERROR);
        owner.resetCombat(CombatState.ERROR);
        this.stop();
        return;
      }
    }
    if (opponent instanceof Player && attacker instanceof Player) {
      if (((Player) opponent).isSleeping()) {
        ((Player) opponent).getActionSender().sendWakeUp(false);
      }
    }

    /*
     * if(opponent.getHits() <= 0) { attacker.resetCombat(CombatState.WON);
     * opponent.resetCombat(CombatState.LOST); return; }
     */
    attacker.incHitsMade();
    if (attacker instanceof Npc && opponent.isPrayerActivated(12)) {
      return;
    }
    // int damage = (attacker instanceof Player && opponent instanceof
    // Player ? Formulae
    // .calcFightHit(attacker, opponent) : Formulae
    // .calcFightHitWithNPC(attacker, opponent));

    int damage = CombatFormulae.getNextHit(attacker, opponent);
    if (attacker instanceof Player && opponent instanceof Npc) {
      Npc npc = (Npc) opponent;

      int newDmg = damage;
      if (npc.getCurHits() - damage <= 0 && npc.getCurHits() > 0) {
        newDmg = npc.getCurHits();
      }
      npc.getSyndicate().addDamage(owner, newDmg, Damage.COMBAT_DAMAGE);
    }

    if (attacker instanceof Npc && opponent instanceof Player
        && attacker.getHitsMade() >= (attacked ? 4 : 3)) {
      Npc npc = (Npc) attacker;
      Player player = (Player) opponent;
      if (npc.getCurHits() <= npc.getDef().hits * 0.10
          && npc.getCurHits() > 0) {
        if (!npc.getLocation().inWilderness()
            && npc.getDef().attackable && !npc.getDef().aggressive) {
          boolean go = true;
          for (int i : Constants.GameServer.NPCS_THAT_DONT_RETREAT) {
            if (i == npc.getID()) {
              go = false;
              break;
            }
          }

          if (go) {
            player.getActionSender().sendSound("retreat");
            npc.unblock();
            npc.resetCombat(CombatState.RUNNING);
            player.resetCombat(CombatState.WAITING);
            npc.setRan(true);
            npc.setPath(new Path(attacker.getX(), attacker.getY(),
                DataConversions.random(npc.getLoc().minX(), npc
                    .getLoc().maxX()), DataConversions
                    .random(npc.getLoc().minY(), npc
                        .getLoc().maxY())));
            player.resetAll();
            player.getActionSender().sendMessage(
                "Your opponent is retreating");
            this.stop();
            return;
          }
        }
      }
    }

    opponent.setLastDamage(damage);
    int newHp = opponent.getHits() - damage;
    opponent.setHits(newHp);

    String combatSound = null;
    combatSound = damage > 0 ? "combat1b" : "combat1a";
    if (opponent instanceof Player) {
      if (attacker instanceof Npc) {
        Npc n = (Npc) attacker;
        if (n.hasArmor) {
          combatSound = damage > 0 ? "combat2b" : "combat2a";
        } else if (n.undead) {
          combatSound = damage > 0 ? "combat3b" : "combat3a";
        } else {
          combatSound = damage > 0 ? "combat1b" : "combat1a";
        }
      }
      Player opponentPlayer = ((Player) opponent);
      opponentPlayer.getActionSender().sendStat(3);
      opponentPlayer.getActionSender().sendSound(combatSound);
    }
    if (attacker instanceof Player) {
      if (opponent instanceof Npc) {
        Npc n = (Npc) opponent;
        if (n.hasArmor) {
          combatSound = damage > 0 ? "combat2b" : "combat2a";
        } else if (n.undead) {
          combatSound = damage > 0 ? "combat3b" : "combat3a";
        } else {
          combatSound = damage > 0 ? "combat1b" : "combat1a";
        }
      }
      Player attackerPlayer = (Player) attacker;
      attackerPlayer.getActionSender().sendSound(combatSound);
    }

    if (newHp <= 0) {

      Mob toLoot = attacker;

      // Logging.debug(opponent+" killed by "+attacker);

      if (attacker instanceof Player) {
        Player attackerPlayer = (Player) attacker;
        toLoot = attackerPlayer;
        if (opponent instanceof Player) {
          // Logging.debug(opponent+" killed by "+attacker);
          opponent.killedBy(attackerPlayer, false);
        }

        if (attacker instanceof Player && opponent instanceof Npc) {
          Npc npc = (Npc) opponent;
          npc.getSyndicate().distributeExp(npc);
        } else {
          int exp = DataConversions.roundUp(Formulae
              .combatExperience(opponent) / 4D);
          switch (attackerPlayer.getCombatStyle()) {
          case 0:
View Full Code Here

Examples of org.moparscape.msc.gs.model.Npc

              return;
            }
            try {
              if (item.getID() == 59 && item.getX() == 106
                  && item.getY() == 1476) {
                Npc n = world.getNpc(37, 103, 107, 1476, 1479);

                if (n != null && !n.inCombat()) {
                  owner.informOfNpcMessage(new ChatMessage(n,
                      "Nobody steals from this gang!",
                      owner));
                  fight(owner, n);
                }
              } else if (item.getID() == 501
                  && item.getX() == 333 && item.getY() == 434) {
                Npc zam = world.getNpc(140, 328, 333, 433, 438,
                    true);
                if (zam != null && !zam.inCombat()) {
                  owner.informOfNpcMessage(new ChatMessage(
                      zam, "a curse be upon you", owner));
                  for (int i = 0; i < 3; i++) {
                    int stat = owner.getCurStat(i);
                    if (stat < 3)
View Full Code Here

Examples of org.moparscape.msc.gs.model.Npc

    super.matchRunning = false;
  }

  private boolean inBounds() {
    if (owner instanceof Npc) {
      Npc npc = (Npc) owner;
      loc = npc.getLoc();

      if (affectedMob.getX() < (loc.minX() - 4)
          || affectedMob.getX() > (loc.maxX() + 4)
          || affectedMob.getY() < (loc.minY() - 4)
          || affectedMob.getY() > (loc.maxY() + 4)) {
View Full Code Here

Examples of org.moparscape.msc.gs.model.Npc

    case 71: // Cast on npc
      if (player.isDueling()) {
        return;
      }
      if (spell.getSpellType() == 2) {
        Npc affectedNpc = world.getNpc(p.readShort());
        if (affectedNpc == null) { // This shouldn't happen
          player.resetPath();
          return;
        }

        if (affectedNpc.getID() == 35) {
          player.getActionSender()
              .sendMessage(
                  "Delrith can not be attacked without the Silverlight sword");
          return;
        }
View Full Code Here

Examples of org.moparscape.msc.gs.model.Npc

    }
    if (GameEngine.getTime() - player.getLastNPCChat() < 1500)
      return;
    player.setLastNPCChat(GameEngine.getTime());
    player.resetAll();
    final Npc affectedNpc = world.getNpc(p.readShort());
    if (affectedNpc == null) {
      return;
    }
    world.addEntryToSnapshots(new Activity(player.getUsername(), player
        .getUsername()
        + " talked to NPC ("
        + affectedNpc.getID()
        + ") at: "
        + player.getX()
        + "/"
        + player.getY()
        + "|"
        + affectedNpc.getX() + "/" + affectedNpc.getY()));

    player.setFollowing(affectedNpc);
    player.setStatus(Action.TALKING_MOB);
    Instance.getDelayedEventHandler().add(
        new WalkToMobEvent(player, affectedNpc, 1) {
          public void arrived() {
            owner.resetFollowing();
            owner.resetPath();
            if (owner.isBusy() || owner.isRanging()
                || !owner.nextTo(affectedNpc)
                || owner.getStatus() != Action.TALKING_MOB) {
              return;
            }
            owner.resetAll();
            if (affectedNpc.isBusy()) {
              owner.getActionSender().sendMessage(
                  affectedNpc.getDef().getName()
                      + " is currently busy.");
              return;
            }
            affectedNpc.resetPath();
            if (Formulae.getDirection(owner, affectedNpc) != -1) {
              affectedNpc.setSprite(Formulae.getDirection(owner,
                  affectedNpc));
              owner.setSprite(Formulae.getDirection(affectedNpc,
                  owner));
            }
View Full Code Here

Examples of org.moparscape.msc.gs.model.Npc

            case 5: // Weaken
            case 9: // Curse

              if (affectedMob instanceof Npc) {
                Npc np = (Npc) affectedMob;
                if (spellID == 1) {
                  if (np.confused) {
                    owner.getActionSender()
                        .sendMessage(
                            "Your oponent is already confused");
                    return;
                  }
                }
                if (spellID == 5) {
                  if (np.weakend) {
                    owner.getActionSender()
                        .sendMessage(
                            "Your oponent is already weakend");
                    return;
                  }
                }
                if (spellID == 9) {
                  if (np.cursed) {
                    owner.getActionSender()
                        .sendMessage(
                            "Your oponent is already cursed");
                    return;
                  }
                }
              } /*
               * else { player.getActionSender().sendMessage(
               * "Currently Unavaliable"); return; }
               */

              if (affectedMob instanceof Player
                  && !owner.isDueling()) {
                Player affectedPlayer = (Player) affectedMob;
                owner.setSkulledOn(affectedPlayer);
              }
              int stat = -1;
              if (spellID == 1)
                stat = 0;
              else if (spellID == 5)
                stat = 2;
              else if (spellID == 9)
                stat = 1;

              int statLv = -1;
              if (affectedMob instanceof Player) {
                Player affectedPlayer = (Player) affectedMob;
                statLv = affectedPlayer.getCurStat(stat);

              } else if (affectedMob instanceof Npc) {
                Npc n = (Npc) affectedMob;
                if (stat == 0)
                  statLv = n.getAttack();
                else if (stat == 1)
                  statLv = n.getDefense();
                else if (stat == 2)
                  statLv = n.getStrength();
              }
              if (statLv == -1 || stat == -1)
                return;

              if (affectedMob instanceof Player) {
                Player affectedPlayer = (Player) affectedMob;
                if (affectedPlayer.getCurStat(stat) < affectedPlayer
                    .getMaxStat(stat)
                    - (affectedPlayer.getMaxStat(stat) / 20)) {
                  owner.getActionSender().sendMessage(
                      "Your opponent is already stunned");
                  return;
                } else {
                  affectedPlayer.setCurStat(
                      stat,
                      affectedPlayer.getCurStat(stat)
                          - (affectedPlayer
                              .getMaxStat(stat) / 20));
                  affectedPlayer.getActionSender()
                      .sendStats();
                  affectedPlayer
                      .getActionSender()
                      .sendMessage(
                          owner.getUsername()
                              + " has stunned you");
                }

              } else if (affectedMob instanceof Npc) {
                Npc n = (Npc) affectedMob;
                if (spellID == 1)
                  n.confused = true;
                else if (spellID == 5)
                  n.weakend = true;
                else if (spellID == 9)
                  n.cursed = true;

              }
              if (!checkAndRemoveRunes(owner, spell)) {
                return;
              }

              Projectile projectilez = new Projectile(owner,
                  affectedMob, 1);
              ArrayList<Player> playersToInformm = new ArrayList<Player>();
              playersToInformm.addAll(owner.getViewArea()
                  .getPlayersInView());
              playersToInformm.addAll(affectedMob.getViewArea()
                  .getPlayersInView());
              for (Player p : playersToInformm) {
                p.informOfProjectile(projectilez);
                p.informOfModifiedHits(affectedMob);
              }

              finalizeSpell(owner, spell);

              owner.getActionSender().sendInventory();
              owner.getActionSender().sendStat(6);
              return;
            case 19: // Crumble undead

              if (affectedMob instanceof Player) {
                owner.getActionSender()
                    .sendMessage(
                        "You can not use this spell on a Player");
                return;
              }
              if (!checkAndRemoveRunes(owner, spell)) {
                return;
              }
              Npc n = (Npc) affectedMob;
              int damaga = Formulae.Rand(1, 5);
              boolean foundd = false;
              if (n.undead) {
                foundd = true;
                damaga = Formulae
                    .Rand(3,
                        Constants.GameServer.CRUMBLE_UNDEAD_MAX);
              }

              if (!foundd) {
                owner.getActionSender()
                    .sendMessage(
                        "You must use this spell on undead monsters only");
                return;
              }
              if (Formulae.Rand(0, 8) == 2)
                damaga = 0;

              Projectile projectilee = new Projectile(owner,
                  affectedMob, 1);
              affectedMob.setLastDamage(damaga);
              int newp = affectedMob.getHits() - damaga;
              affectedMob.setHits(newp);
              ArrayList<Player> playersToInforms = new ArrayList<Player>();
              playersToInforms.addAll(owner.getViewArea()
                  .getPlayersInView());
              playersToInforms.addAll(affectedMob.getViewArea()
                  .getPlayersInView());
              for (Player p : playersToInforms) {
                p.informOfProjectile(projectilee);
                p.informOfModifiedHits(affectedMob);
              }
              if (newp <= 0) {
                affectedMob.killedBy(owner, owner.isDueling());
                if (owner instanceof Player
                    && affectedMob instanceof Npc) {
                  ((Npc) affectedMob).getSyndicate()
                      .distributeExp((Npc) affectedMob);
                }
              }
              finalizeSpell(owner, spell);

              owner.getActionSender().sendInventory();
              owner.getActionSender().sendStat(6);
              return;
            case 42: // vulnerability
            case 45: // Enfeeble
            case 47: // Stun
              owner.getActionSender().sendMessage(
                  "@or1@This spell is not yet implemented.");
              break;
            case 25:
              if (owner.getLocation().inWilderness()) {
                owner.getActionSender().sendMessage(
                    "Can not use this spell in wilderness");
                return;
              }
              if (affectedMob instanceof Npc) {
                if (((Npc) affectedMob).getID() == 477) {
                  player.getActionSender()
                      .sendMessage(
                          "The dragon seems immune to this spell");
                  return;
                }
              }
              boolean flagispro = false;
              ListIterator<InvItem> iterator22 = owner
                  .getInventory().getItems().listIterator();
              while (iterator22.hasNext()) {
                InvItem cape = (InvItem) iterator22.next();
                if (cape.id == 1000 && cape.wielded) {
                  flagispro = flagispro || true;
                }
                // else {flag = false;}
              }
              if (flagispro) {
                if (!owner.isCharged()) {
                  owner.getActionSender().sendMessage(
                      "@red@You are not charged!");
                }

                if (!checkAndRemoveRunes(owner, spell)) {
                  return;
                }
                if (affectedMob instanceof Player
                    && !owner.isDueling()) {
                  Player affectedPlayer = (Player) affectedMob;
                  owner.setSkulledOn(affectedPlayer);
                }
                int damag = Formulae.calcSpellHit(20,
                    owner.getMagicPoints());
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer
                      .getActionSender()
                      .sendMessage(
                          owner.getUsername()
                              + " is shooting at you!");
                }
                Projectile projectil = new Projectile(owner,
                    affectedMob, 1);
                // godSpellObject(affectedMob, 33);
                affectedMob.setLastDamage(damag);
                int newhp = affectedMob.getHits() - damag;
                affectedMob.setHits(newhp);
                ArrayList<Player> playersToInfor = new ArrayList<Player>();
                playersToInfor.addAll(owner.getViewArea()
                    .getPlayersInView());
                playersToInfor.addAll(affectedMob.getViewArea()
                    .getPlayersInView());
                for (Player p : playersToInfor) {
                  p.informOfProjectile(projectil);
                  p.informOfModifiedHits(affectedMob);
                }
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer.getActionSender()
                      .sendStat(3);
                }
                if (newhp <= 0) {
                  affectedMob.killedBy(owner,
                      owner.isDueling());
                }
                owner.getActionSender().sendInventory();
                owner.getActionSender().sendStat(6);
                finalizeSpell(owner, spell);
                break;
              } else {
                owner.getActionSender()
                    .sendMessage(
                        "You need to be wearing the Iban Staff to cast this spell!");
                return;
              }
            case 33:
              if (owner.getLocation().inWilderness()) {
                owner.getActionSender().sendMessage(
                    "Can not use this spell in wilderness");
                return;
              }
              if (affectedMob instanceof Npc) {
                if (((Npc) affectedMob).getID() == 477) {
                  player.getActionSender()
                      .sendMessage(
                          "The dragon seems immune to this spell");
                  return;
                }
              }
              boolean flag = false;
              ListIterator<InvItem> iterator = owner
                  .getInventory().getItems().listIterator();
              while (iterator.hasNext()) {
                InvItem cape = iterator.next();
                if (cape.id == 1217 && cape.wielded) {
                  flag = true;
                }
                // else {flag = false;}
              }
              if (flag) {
                if (!owner.isCharged()) {
                  owner.getActionSender().sendMessage(
                      "@red@You are not charged!");
                }

                if (!checkAndRemoveRunes(owner, spell)) {
                  return;
                }
                if (affectedMob instanceof Player
                    && !owner.isDueling()) {
                  Player affectedPlayer = (Player) affectedMob;
                  owner.setSkulledOn(affectedPlayer);
                }
                int damag = Formulae.calcGodSpells(owner,
                    affectedMob);
                // int damag = Formulae.calcSpellHit(max,
                // owner.getMagicPoints());
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer
                      .getActionSender()
                      .sendMessage(
                          owner.getUsername()
                              + " is shooting at you!");
                }
                Projectile projectil = new Projectile(owner,
                    affectedMob, 1);
                godSpellObject(affectedMob, 33);
                affectedMob.setLastDamage(damag);
                int newhp = affectedMob.getHits() - damag;
                affectedMob.setHits(newhp);
                ArrayList<Player> playersToInfor = new ArrayList<Player>();
                playersToInfor.addAll(owner.getViewArea()
                    .getPlayersInView());
                playersToInfor.addAll(affectedMob.getViewArea()
                    .getPlayersInView());
                for (Player p : playersToInfor) {
                  p.informOfProjectile(projectil);
                  p.informOfModifiedHits(affectedMob);
                }
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer.getActionSender()
                      .sendStat(3);
                }
                if (newhp <= 0) {
                  affectedMob.killedBy(owner,
                      owner.isDueling());
                }
                owner.getActionSender().sendInventory();
                owner.getActionSender().sendStat(6);
                finalizeSpell(owner, spell);
                break;
              } else {
                owner.getActionSender()
                    .sendMessage(
                        "You need to be wearing the Staff of Guthix to cast this spell!");
                return;
              }
            case 34:
              if (affectedMob instanceof Npc) {
                if (((Npc) affectedMob).getID() == 477) {
                  player.getActionSender()
                      .sendMessage(
                          "The dragon seems immune to this spell");
                  return;
                }
              }
              if (owner.getLocation().inWilderness()) {
                owner.getActionSender().sendMessage(
                    "Can not use this spell in wilderness");
                return;
              }
              boolean bool = false;
              ListIterator<InvItem> iterat = owner.getInventory()
                  .getItems().listIterator();
              while (iterat.hasNext()) {
                InvItem cape = iterat.next();
                if (cape.id == 1218 && cape.wielded) {
                  bool = bool || true;
                }
                // else {flag = false;}
              }
              if (bool) {
                if (!owner.isCharged()) {
                  owner.getActionSender().sendMessage(
                      "@red@You are not charged!");
                }

                if (!checkAndRemoveRunes(owner, spell)) {
                  return;
                }
                if (affectedMob instanceof Player
                    && !owner.isDueling()) {
                  Player affectedPlayer = (Player) affectedMob;
                  owner.setSkulledOn(affectedPlayer);
                }
                // int damag = Rand(0, 25);
                int damag = Formulae.calcGodSpells(owner,
                    affectedMob);
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer
                      .getActionSender()
                      .sendMessage(
                          owner.getUsername()
                              + " is shooting at you!");
                }
                Projectile projectil = new Projectile(owner,
                    affectedMob, 1);
                godSpellObject(affectedMob, 34);
                affectedMob.setLastDamage(damag);
                int newhp = affectedMob.getHits() - damag;
                affectedMob.setHits(newhp);
                ArrayList<Player> playersToInfor = new ArrayList<Player>();
                playersToInfor.addAll(owner.getViewArea()
                    .getPlayersInView());
                playersToInfor.addAll(affectedMob.getViewArea()
                    .getPlayersInView());
                for (Player p : playersToInfor) {
                  p.informOfProjectile(projectil);
                  p.informOfModifiedHits(affectedMob);
                }
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer.getActionSender()
                      .sendStat(3);
                }
                if (newhp <= 0) {
                  affectedMob.killedBy(owner,
                      owner.isDueling());
                }
                owner.getActionSender().sendInventory();
                owner.getActionSender().sendStat(6);
                finalizeSpell(owner, spell);
                break;
              } else {
                owner.getActionSender()
                    .sendMessage(
                        "You need to be wearing the Staff of Saradomin to cast this spell!");
                return;
              }
            case 35:
              if (affectedMob instanceof Npc) {
                if (((Npc) affectedMob).getID() == 477) {
                  player.getActionSender()
                      .sendMessage(
                          "The dragon seems immune to this spell");
                  return;
                }
              }
              if (owner.getLocation().inWilderness()) {
                owner.getActionSender().sendMessage(
                    "Can not use this spell in wilderness");
                return;
              }
              boolean flag2 = false;
              ListIterator<InvItem> iterato = owner
                  .getInventory().getItems().listIterator();
              while (iterato.hasNext()) {
                InvItem cape = iterato.next();
                if (cape.id == 1216 && cape.wielded) {
                  flag2 = flag2 || true;
                }
                // else {flag = false;}
              }
              if (flag2) {
                if (!owner.isCharged()) {
                  owner.getActionSender().sendMessage(
                      "@red@You are not charged!");
                }

                if (!checkAndRemoveRunes(owner, spell)) {
                  return;
                }
                if (affectedMob instanceof Player
                    && !owner.isDueling()) {
                  Player affectedPlayer = (Player) affectedMob;
                  owner.setSkulledOn(affectedPlayer);
                }
                // int damag = Rand(0, 25);
                int damag = Formulae.calcGodSpells(owner,
                    affectedMob);
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer
                      .getActionSender()
                      .sendMessage(
                          owner.getUsername()
                              + " is shooting at you!");
                }
                Projectile projectil = new Projectile(owner,
                    affectedMob, 1);
                godSpellObject(affectedMob, 35);
                affectedMob.setLastDamage(damag);
                int newhp = affectedMob.getHits() - damag;
                affectedMob.setHits(newhp);
                ArrayList<Player> playersToInfor = new ArrayList<Player>();
                playersToInfor.addAll(owner.getViewArea()
                    .getPlayersInView());
                playersToInfor.addAll(affectedMob.getViewArea()
                    .getPlayersInView());
                for (Player p : playersToInfor) {
                  p.informOfProjectile(projectil);
                  p.informOfModifiedHits(affectedMob);
                }
                if (affectedMob instanceof Player) {
                  Player affectedPlayer = (Player) affectedMob;
                  affectedPlayer.getActionSender()
                      .sendStat(3);
                }
                if (newhp <= 0) {
                  affectedMob.killedBy(owner,
                      owner.isDueling());
                }
                owner.getActionSender().sendInventory();
                owner.getActionSender().sendStat(6);
                finalizeSpell(owner, spell);
                break;
              } else {
                owner.getActionSender()
                    .sendMessage(
                        "You need to be wearing the Staff of Zaramorak to cast this spell");
                return;
              }

            default:
              if (spell.getReqLevel() == 62
                  || spell.getReqLevel() == 65
                  || spell.getReqLevel() == 70
                  || spell.getReqLevel() == 75) {
                if (!Config.members) {
                  player.getActionSender()
                      .sendMessage(
                          "Must be on a members server to use this");
                  return;
                }
                if (player.getLocation().inWilderness()
                    && Config.f2pWildy) {
                  player.getActionSender()
                      .sendMessage(
                          "You can not cast this Members spell in F2P Wilderness");
                  return;
                }
              }
              if (!checkAndRemoveRunes(owner, spell)) {
                return;
              }

              int max = -1;
              for (int i = 0; i < Constants.GameServer.SPELLS.length; i++) {
                if (spell.getReqLevel() == Constants.GameServer.SPELLS[i][0])
                  max = Constants.GameServer.SPELLS[i][1];
              }
              if (player.getMagicPoints() > 30)
                max += 1;
              int damage = Formulae.calcSpellHit(max,
                  owner.getMagicPoints());
              if (affectedMob instanceof Player) {
                Player affectedPlayer = (Player) affectedMob;
                affectedPlayer.getActionSender().sendMessage(
                    owner.getUsername()
                        + " is shooting at you!");
              }

              if (affectedMob instanceof Npc) {
                Npc npcc = (Npc) affectedMob;
                npcc.getSyndicate().addDamage(owner, damage,
                    Damage.MAGIC_DAMAGE);
              }
              Projectile projectile = new Projectile(owner,
                  affectedMob, 1);
              affectedMob.setLastDamage(damage);
              int newHp = affectedMob.getHits() - damage;
              affectedMob.setHits(newHp);

              ArrayList<Player> playersToInform = new ArrayList<Player>();
              playersToInform.addAll(owner.getViewArea()
                  .getPlayersInView());
              playersToInform.addAll(affectedMob.getViewArea()
                  .getPlayersInView());
              for (Player p : playersToInform) {
                p.informOfProjectile(projectile);
                p.informOfModifiedHits(affectedMob);
              }
              if (affectedMob instanceof Player) {
                Player affectedPlayer = (Player) affectedMob;
                affectedPlayer.getActionSender().sendStat(3);
              }
              if (newHp <= 0) {
                if (affectedMob instanceof Player)
                  affectedMob.killedBy(owner,
                      owner.isDueling());

                if (owner instanceof Player) {
                  Player toLoot = owner;
                  if (affectedMob instanceof Npc) {
                    Npc npc = (Npc) affectedMob;
                    npc.getSyndicate().distributeExp(npc);
                  }
                  if (!(affectedMob instanceof Player))
                    affectedMob.killedBy(toLoot,
                        owner.isDueling());
                }
              }
              finalizeSpell(owner, spell);
              if (newHp > 0) {
                if (affectedMob instanceof Npc) {
                  final Npc npc = (Npc) affectedMob;

                  if (npc.isBusy()
                      || npc.getChasing() != null)
                    return;

                  npc.resetPath();
                  npc.setChasing(player);

                  // Radius is 0 to prevent wallhacking by
                  // NPCs. Easiest method I can come up with
                  // for now.
                  Instance.getDelayedEventHandler().add(
                      new WalkMobToMobEvent(affectedMob,
                          owner, 0) {
                        public void arrived() {
                          if (affectedMob.isBusy()
                              || owner.isBusy()) {
                            npc.setChasing(null);
                            return;
                          }
                          if (affectedMob.inCombat()
                              || owner.inCombat()) {
                            npc.setChasing(null);
                            return;
                          }

                          npc.resetPath();
                          player.resetAll();
                          player.resetPath();
                          player.setBusy(true);
                          player.setStatus(Action.FIGHTING_MOB);
                          player.getActionSender()
                              .sendSound(
                                  "underattack");
                          player.getActionSender()
                              .sendMessage(
                                  "You are under attack!");

                          npc.setLocation(player
                              .getLocation(),
                              true);
                          for (Player p : npc
                              .getViewArea()
                              .getPlayersInView())
                            p.removeWatchedNpc(npc);

                          player.setSprite(9);
                          player.setOpponent(npc);
                          player.setCombatTimer();

                          npc.setBusy(true);
                          npc.setSprite(8);
                          npc.setOpponent(player);
                          npc.setCombatTimer();

                          npc.setChasing(null);
                          FightEvent fighting = new FightEvent(
                              player, npc, true);
                          fighting.setLastRun(0);
                          world.getDelayedEventHandler()
                              .add(fighting);
                        }

                        public void failed() {
                          npc.setChasing(null);
                        }
                      });
                }
              }
              break;
View Full Code Here

Examples of org.powerbot.game.api.wrappers.interactive.NPC

                }
                return false;
            }
        });

        NPC bestMonster = null;
        Monster bestMonsterValue = null;

        for (NPC npc : realNpcs) {
            if (npc.validate()) {
                final Monster tempMonster = Monster.getMonster(npc.getId());

                if (bestMonster == null || (nodeBlocking ? tempMonster.ordinal() < bestMonsterValue.ordinal() :
                        tempMonster.ordinal() > bestMonsterValue.ordinal()) ||
                        (tempMonster.ordinal() == bestMonsterValue.ordinal() &&
                                distanceTo(npc.getLocation()) < distanceTo(bestMonster.getLocation()))) {
                    bestMonster = npc;
                    bestMonsterValue = tempMonster;
                }
            }
        }
View Full Code Here

Examples of org.powerbot.game.api.wrappers.interactive.NPC

        }
    }

    @Override
    public void process() {
        final NPC floatingEss = Methods.getNearestReachableNPC(FLOATING_ESS_ID);

        if (floatingEss == null) {
            if (Tabs.getCurrent() == Tabs.INVENTORY && Game.getClientState() == 11) {
                if (failCheck > 5) {
                    error("Out of rune essence and no reachable floating rune essence!");
                } else {
                    Time.sleep(2000);
                    failCheck++;
                }
            }
        } else {
            failCheck = 0;
            Methods.interact(floatingEss, floatingEss.getLocation(), "Collect", "Floating essence");
        }
    }
View Full Code Here

Examples of org.powerbot.game.api.wrappers.interactive.NPC

        if (SudoRunespan.isNodeBlock() && runeEss != null && runeEss.getStackSize() > 200) {
            SudoRunespan.setNodeBlock(false);
        }

        final NPC monster = Methods.getBestReachableMonster(SudoRunespan.isNodeBlock());

        if (monster != null) {
            if (monster.getId() != SudoRunespan.getCurrentId() &&
                    (!SudoRunespan.isNodeBlock() || SudoRunespan.getCurrentId() == -1)) {
                SudoRunespan.setTarget(monster);
                SudoRunespan.setCurrentId(monster.getId());
                entity = monster;
                return true;
            } else {
                return false;
            }
View Full Code Here

Examples of tyrelion.objects.Npc

     
      for (int j = 0; j < texts.size(); j++) {
        Element elem = (Element) texts.get(j);
        helloText[j] = elem.getTextNormalize();
      }
      npcs[i] = new Npc(id, 0, 0, animation, helloText);
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.