Removal of assorted empty lines.

This commit is contained in:
MobiusDevelopment
2020-03-03 17:07:18 +00:00
parent ecaf8a1a66
commit 6d8addc784
14371 changed files with 304 additions and 44722 deletions

View File

@@ -108,7 +108,6 @@ public abstract class AbstractNpcAI extends Quest
final int x = npcAround.getLocation().getX() + (int) (Math.cos(Math.PI + radian + course) * nRadius);
final int y = npcAround.getLocation().getY() + (int) (Math.sin(Math.PI + radian + course) * nRadius);
final int z = npcAround.getLocation().getZ();
npc.getAI().moveTo(new Location(x, y, z));
});
}

View File

@@ -49,7 +49,6 @@ public class Ruine extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "cod_aden_officer001.htm":

View File

@@ -72,12 +72,10 @@ public class AncientArcanCity extends AbstractNpcAI
if (event.equals("CHANGE_STATE"))
{
isCeremonyRunning = !isCeremonyRunning;
for (PlayerInstance temp : BROADCAST_ZONE.getPlayersInside())
{
temp.sendPacket(new OnEventTrigger(262001, !isCeremonyRunning));
temp.sendPacket(new OnEventTrigger(262003, isCeremonyRunning));
if (isCeremonyRunning)
{
showOnScreenMsg(temp, NpcStringId.THE_INCREASED_GRASP_OF_DARK_ENERGY_CAUSES_THE_GROUND_TO_SHAKE, ExShowScreenMessage.TOP_CENTER, 5000, true);
@@ -108,7 +106,6 @@ public class AncientArcanCity extends AbstractNpcAI
if (creature.isPlayer())
{
final PlayerInstance player = creature.getActingPlayer();
if (zone.getId() == TELEPORT_ZONE.getId())
{
final QuestState qs = creature.getActingPlayer().getQuestState(Q10301_ShadowOfTerrorBlackishRedFog.class.getSimpleName());
@@ -129,7 +126,6 @@ public class AncientArcanCity extends AbstractNpcAI
{
player.sendPacket(new OnEventTrigger(262001, !isCeremonyRunning));
player.sendPacket(new OnEventTrigger(262003, isCeremonyRunning));
if (player.getVariables().getBoolean("ANCIENT_ARCAN_CITY_SCENE", true))
{
player.getVariables().set("ANCIENT_ARCAN_CITY_SCENE", false);
@@ -151,7 +147,6 @@ public class AncientArcanCity extends AbstractNpcAI
// {
// _templates.remove(template);
// }
@Override
public void onSpawnNpc(SpawnTemplate template, SpawnGroup group, Npc npc)
{

View File

@@ -45,7 +45,6 @@ public class Lykus extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "33521-01.html":
@@ -65,7 +64,6 @@ public class Lykus extends AbstractNpcAI
if (event.startsWith("trade"))
{
final int count = (int) (event.equals("trade1") ? 1 : getQuestItemsCount(player, OLD_SHIELD));
if (!hasAtLeastOneQuestItem(player, OLD_SHIELD))
{
htmltext = "33521-11.html";

View File

@@ -61,7 +61,6 @@ public class BabyPets extends AbstractNpcAI
if (event.equals("HEAL") && (player != null))
{
final Summon summon = player.getPet();
if (summon != null)
{
if (getRandom(100) <= 25)
@@ -105,12 +104,10 @@ public class BabyPets extends AbstractNpcAI
{
final boolean previousFollowStatus = summon.getFollowStatus();
final PlayerInstance owner = summon.getOwner();
if (!owner.isDead() && (((owner.getCurrentHp() / owner.getMaxHp()) * 100) < maxHpPer) && !summon.isHungry() && SkillCaster.checkUseConditions(summon, skill.getSkill()))
{
summon.getAI().setIntention(CtrlIntention.AI_INTENTION_CAST, skill.getSkill(), owner);
summon.sendPacket(new SystemMessage(SystemMessageId.YOUR_PET_USES_S1).addSkillName(skill.getSkill()));
if (previousFollowStatus != summon.getFollowStatus())
{
summon.setFollowStatus(previousFollowStatus);

View File

@@ -243,7 +243,6 @@ public class BeastFarm extends AbstractNpcAI
if (CommonUtil.contains(TAMED_BEASTS, nextNpcId))
{
final TamedBeastInstance nextNpc = new TamedBeastInstance(nextNpcId, player, food, npc.getX(), npc.getY(), npc.getZ(), true);
final TamedBeast beast = getRandomEntry(TAMED_BEAST_DATA);
String name = beast.getName();
switch (nextNpcId)
@@ -292,7 +291,6 @@ public class BeastFarm extends AbstractNpcAI
nextNpc.setRunning();
nextNpc.addDamageHate(player, 0, 99999);
nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
player.setTarget(nextNpc);
}
}

View File

@@ -187,7 +187,6 @@ public class FeedableBeasts extends AbstractNpcAI
final int[][] Kookabura_1_Crystal_2 = {{ 21465, 21467 }};
final int[][] Kookabura_2_1 = {{ 21468, 21824}, { TRAINED_KOOKABURRA1, TRAINED_KOOKABURRA2 }};
final int[][] Kookabura_2_2 = {{ 21469, 21825}, { TRAINED_KOOKABURRA1, TRAINED_KOOKABURRA2 }};
final int[][] Buffalo_0_Gold = {{ 21471, 21472, 21473, 21474 }};
final int[][] Buffalo_0_Crystal = {{ 21475, 21476, 21477, 21478 }};
final int[][] Buffalo_1_Gold_1 = {{ 21479, 21481 }};
@@ -196,7 +195,6 @@ public class FeedableBeasts extends AbstractNpcAI
final int[][] Buffalo_1_Crystal_2 = {{ 21484, 21486 }};
final int[][] Buffalo_2_1 = {{ 21487, 21826}, {TRAINED_BUFFALO1, TRAINED_BUFFALO2 }};
final int[][] Buffalo_2_2 = {{ 21488, 21827}, {TRAINED_BUFFALO1, TRAINED_BUFFALO2 }};
final int[][] Cougar_0_Gold = {{ 21490, 21491, 21492, 21493 }};
final int[][] Cougar_0_Crystal = {{ 21494, 21495, 21496, 21497 }};
final int[][] Cougar_1_Gold_1 = {{ 21498, 21500 }};
@@ -451,7 +449,6 @@ public class FeedableBeasts extends AbstractNpcAI
// if not trained, the newly spawned mob will automatically be aggro against its feeder
// (what happened to "never bite the hand that feeds you" anyway?!)
final Attackable nextNpc = (Attackable) addSpawn(nextNpcId, npc);
if (MAD_COW_POLYMORPH.containsKey(nextNpcId))
{
startQuestTimer("polymorph Mad Cow", 10000, nextNpc, player);

View File

@@ -61,7 +61,6 @@ public class ImprovedBabyPets extends AbstractNpcAI
if (player != null)
{
final Summon summon = player.getPet();
if (summon == null)
{
cancelQuestTimer("HEAL", null, player);
@@ -73,11 +72,9 @@ public class ImprovedBabyPets extends AbstractNpcAI
final double mpPer = (player.getCurrentMp() / player.getMaxMp()) * 100;
final int healType = summon.getTemplate().getParameters().getInt("heal_type", 0);
final int skillLv = (int) Math.floor((summon.getLevel() / 5) - 11);
if (healType == 1)
{
final int stepLv = CommonUtil.constrain(skillLv, 0, 3);
if ((hpPer >= 30) && (hpPer < 70))
{
castHeal(summon, stepLv, 1);
@@ -102,7 +99,6 @@ public class ImprovedBabyPets extends AbstractNpcAI
else if (event.equals("BUFF") && !summon.isAffectedBySkill(PET_CONTROL) && !summon.isHungry())
{
final int buffStep = (int) CommonUtil.constrain(Math.floor((summon.getLevel() / 5) - 11), 0, 3);
for (int i = 1; i <= (2 * (1 + buffStep)); i++)
{
if (castBuff(summon, buffStep, i))
@@ -135,13 +131,11 @@ public class ImprovedBabyPets extends AbstractNpcAI
final PlayerInstance owner = summon.getOwner();
final StatSet parameters = summon.getTemplate().getParameters();
final SkillHolder skill = parameters.getObject("step" + stepNumber + "_buff0" + buffNumber, SkillHolder.class);
if ((skill != null) && (owner != null))
{
final boolean previousFollowStatus = summon.getFollowStatus();
final SkillHolder mergedSkill = parameters.getObject("step" + stepNumber + "_merged_buff0" + buffNumber, SkillHolder.class);
final int targetType = parameters.getInt("step" + stepNumber + "_buff_target0" + buffNumber, 0);
if (!owner.hasAbnormalType(skill.getSkill().getAbnormalType()) && SkillCaster.checkUseConditions(summon, skill.getSkill()) && !owner.isDead())
{
if ((mergedSkill != null) && owner.hasAbnormalType(mergedSkill.getSkill().getAbnormalType()))
@@ -158,7 +152,6 @@ public class ImprovedBabyPets extends AbstractNpcAI
{
summon.getAI().setIntention(CtrlIntention.AI_INTENTION_CAST, skill.getSkill(), (targetType == 1) ? summon : owner);
summon.sendPacket(new SystemMessage(SystemMessageId.YOUR_PET_USES_S1).addSkillName(skill.getSkill()));
if (previousFollowStatus != summon.getFollowStatus())
{
summon.setFollowStatus(previousFollowStatus);
@@ -177,7 +170,6 @@ public class ImprovedBabyPets extends AbstractNpcAI
final StatSet parameters = summon.getTemplate().getParameters();
final SkillHolder skill = parameters.getObject("step" + stepNumber + "_heal0" + healNumber, SkillHolder.class);
final int targetType = parameters.getInt("step" + stepNumber + "_heal_target0" + healNumber, 0);
if ((skill != null) && (owner != null) && SkillCaster.checkUseConditions(summon, skill.getSkill()) && !owner.isDead())
{
if (!previousFollowStatus && !summon.isInsideRadius3D(owner, skill.getSkill().getCastRange()))
@@ -189,7 +181,6 @@ public class ImprovedBabyPets extends AbstractNpcAI
{
summon.getAI().setIntention(CtrlIntention.AI_INTENTION_CAST, skill.getSkill(), (targetType == 1) ? summon : owner);
summon.sendPacket(new SystemMessage(SystemMessageId.YOUR_PET_USES_S1).addSkillName(skill.getSkill()));
if (previousFollowStatus != summon.getFollowStatus())
{
summon.setFollowStatus(previousFollowStatus);

View File

@@ -45,7 +45,6 @@ public class Tunatun extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = getNoQuestMsg(player);
switch (event)
{
case "31537-04.html":

View File

@@ -69,7 +69,6 @@ public class DragonVortex extends AbstractNpcAI
takeItems(player, LARGE_DRAGON_BONE, 1);
final int random = getRandom(100);
int raid = 0;
if (random < 3)
{
raid = RAIDS[6]; // Muscle Bomber

View File

@@ -87,7 +87,6 @@ public class Wisp extends AbstractNpcAI
{
final Creature creature = event.getSeen();
final Npc npc = (Npc) event.getSeer();
if (creature.isPlayer() || creature.isFakePlayer())
{
npc.setTarget(creature);

View File

@@ -79,7 +79,6 @@ public class HandysBlockCheckerEvent extends AbstractNpcAI
final int countBlue = holder.getBlueTeamSize();
final int countRed = holder.getRedTeamSize();
final int minMembers = Config.MIN_BLOCK_CHECKER_TEAM_MEMBERS;
if ((countBlue >= minMembers) && (countRed >= minMembers))
{
holder.updateEvent();

View File

@@ -165,7 +165,6 @@ public class Parade extends AbstractNpcAI
{
dd += 86400;
}
return (dd * 1000) / 6;
}

View File

@@ -50,7 +50,6 @@ public class FrozenLabyrinth extends AbstractNpcAI
{
final int x = diff < 60 ? npc.getX() + diff : npc.getX();
final int y = diff >= 60 ? npc.getY() + (diff - 40) : npc.getY();
final Npc monster = addSpawn(spawnId, x, y, npc.getZ(), npc.getHeading(), false, 0);
addAttackPlayerDesire(monster, attacker);
diff += 20;

View File

@@ -92,7 +92,6 @@ public class HotSprings extends AbstractNpcAI
final BuffInfo info = creature.getEffectList().getBuffInfoBySkillId(diseaseId);
final int skillLevel = (info == null) ? 1 : (info.getSkill().getLevel() < 10) ? info.getSkill().getLevel() + 1 : 10;
final Skill skill = SkillData.getInstance().getSkill(diseaseId, skillLevel);
if ((skill != null) && SkillCaster.checkUseConditions(npc, skill))
{
npc.setTarget(creature);

View File

@@ -478,7 +478,6 @@ public class FourSepulchers extends AbstractNpcAI implements IXmlReader
private void tryEnter(Npc npc, PlayerInstance player)
{
final int npcId = npc.getId();
if (!ZoneManager.getInstance().getZoneById(MANAGER_ZONES.get(npcId)).getPlayersInside().isEmpty())
{
showHtmlFile(player, npcId + "-FULL.htm", npc, null);

View File

@@ -106,7 +106,6 @@ public class DarkWaterDragon extends AbstractNpcAI
cancelQuestTimer("2", npc, null);
cancelQuestTimer("3", npc, null);
cancelQuestTimer("4", npc, null);
MY_TRACKING_SET.remove(npc.getObjectId());
player = ID_MAP.remove(npc.getObjectId());
if (player != null)

View File

@@ -68,7 +68,6 @@ public class Rignos extends AbstractNpcAI
TIMER.getSkill().applyEffects(pet, pet);
}
player.getServitors().values().forEach(s -> TIMER.getSkill().applyEffects(s, s));
if (hasQuestItems(player, STAMP))
{
takeItems(player, STAMP, -1);

View File

@@ -125,7 +125,6 @@ public class AvantGarde extends AbstractNpcAI
public static void showTransformSkillList(PlayerInstance player)
{
final List<SkillLearn> skills = SkillTreeData.getInstance().getAvailableTransformSkills(player);
if (skills.isEmpty())
{
final int minlevel = SkillTreeData.getInstance().getMinLevelForNewSkill(player, SkillTreeData.getInstance().getTransformSkillTree());

View File

@@ -89,7 +89,6 @@ public class LindviorScene extends AbstractNpcAI
_lindviorCamera = SpawnTable.getInstance().getAnySpawn(LINDVIOR_CAMERA).getLastSpawn();
_tomaris = SpawnTable.getInstance().getAnySpawn(TOMARIS).getLastSpawn();
_artius = SpawnTable.getInstance().getAnySpawn(ARTIUS).getLastSpawn();
startQuestTimer("tomaris_shout1", 1000, _tomaris, null);
startQuestTimer("artius_shout", 60000, _artius, null);
startQuestTimer("tomaris_shout2", 90000, _tomaris, null);

View File

@@ -112,7 +112,6 @@ public class EntrancePortalToCrystalCaverns extends AbstractNpcAI
if (event.equals("LOOP_TIMER"))
{
final int currentTemplateId = getCurrentInstanceTemplateId();
World.getInstance().forEachVisibleObjectInRange(npc, PlayerInstance.class, 500, p -> updateTriggersForPlayer(player, currentTemplateId));
}
}

View File

@@ -65,7 +65,6 @@ public class AltarOfSacrifice extends AbstractNpcAI
sendMessage(_giggle, NpcStringId.IT_JUST_GOES_TO_SHOW_HOW_IMPORTANT_AND_DIFFICULT_IT_IS_TO_ACTIVATE_THE_SEAL_DEVICE, 109000); // It just goes to show how important and difficult it is to activate the Seal Device!
sendMessage(_immerial, NpcStringId.THIS_HAS_BEEN_TOO_TAXING_ON_US_ALL, 119000); // This has been too taxing on us all.
sendMessage(_immerial, NpcStringId.WE_NEED_A_NEW_SOUL_THAT_CAN_MAINTAIN_THE_SEAL, 126000); // We need a new soul that can maintain the seal.
startQuestTimer("msg_text", 135000, npc, null);
_jenas_guard.setScriptValue(0);
}

View File

@@ -172,11 +172,9 @@ public class Maguen extends AbstractNpcAI
final BuffInfo bInfo = player.getEffectList().getFirstBuffInfoByAbnormalType(B_PLASMA1.getSkill().getAbnormalType());
final BuffInfo cInfo = player.getEffectList().getFirstBuffInfoByAbnormalType(C_PLASMA1.getSkill().getAbnormalType());
final BuffInfo rInfo = player.getEffectList().getFirstBuffInfoByAbnormalType(R_PLASMA1.getSkill().getAbnormalType());
final int b = bInfo == null ? 0 : bInfo.getSkill().getAbnormalLvl();
final int c = cInfo == null ? 0 : cInfo.getSkill().getAbnormalLvl();
final int r = rInfo == null ? 0 : rInfo.getSkill().getAbnormalLvl();
if ((b == 3) && (c == 0) && (r == 0))
{
showOnScreenMsg(player, NpcStringId.ENOUGH_MAGUEN_PLASMA_BISTAKON_HAVE_GATHERED, 2, 4000);
@@ -264,11 +262,9 @@ public class Maguen extends AbstractNpcAI
final BuffInfo i1Info = caster.getEffectList().getFirstBuffInfoByAbnormalType(B_PLASMA1.getSkill().getAbnormalType());
final BuffInfo i2Info = caster.getEffectList().getFirstBuffInfoByAbnormalType(C_PLASMA1.getSkill().getAbnormalType());
final BuffInfo i3Info = caster.getEffectList().getFirstBuffInfoByAbnormalType(R_PLASMA1.getSkill().getAbnormalType());
final int i1 = i1Info == null ? 0 : i1Info.getSkill().getAbnormalLvl();
final int i2 = i2Info == null ? 0 : i2Info.getSkill().getAbnormalLvl();
final int i3 = i3Info == null ? 0 : i3Info.getSkill().getAbnormalLvl();
caster.getEffectList().stopEffects(B_PLASMA1.getSkill().getAbnormalType());
caster.getEffectList().stopEffects(C_PLASMA1.getSkill().getAbnormalType());
caster.getEffectList().stopEffects(R_PLASMA1.getSkill().getAbnormalType());
@@ -277,7 +273,6 @@ public class Maguen extends AbstractNpcAI
cancelQuestTimer("THIRD_TIMER", npc, caster);
cancelQuestTimer("FORTH_TIMER", npc, caster);
npc.getVariables().set("BLOCKED_SKILLSEE", 1);
SkillHolder skillToCast = null;
switch (npc.getVariables().getInt("NPC_EFFECT"))
{
@@ -365,7 +360,6 @@ public class Maguen extends AbstractNpcAI
{
final PlayerInstance partyMember = getRandomPartyMember(killer);
final int i0 = 10 + (10 * killer.getParty().getMemberCount());
if ((getRandom(1000) < i0) && (npc.calculateDistance3D(killer) < 2000) && (npc.calculateDistance3D(partyMember) < 2000))
{
notifyEvent("SPAWN_MAGUEN", npc, partyMember);

View File

@@ -308,7 +308,6 @@ public class SeedOfAnnihilation extends AbstractNpcAI
for (int i = 0; i < _regionsData.length; i++)
{
_regionsData[i].activeBuff = ZONE_BUFFS_LIST[buffsNow][i];
for (Npc af : _regionsData[i].af_npcs)
{
af.setDisplayEffect(_regionsData[i].activeBuff);

View File

@@ -285,7 +285,6 @@ public class SelMahumDrill extends AbstractNpcAI
}
final int socialActionId = (npc.getVariables().getInt("SOCIAL_ACTION_ALT_BEHAVIOR") == 0) ? action.getSocialActionId() : action.getAltSocialActionId();
if (socialActionId < 0)
{
return;

View File

@@ -98,7 +98,6 @@ public class StakatoNest extends AbstractNpcAI
if (follower != null)
{
final double _hp = follower.getCurrentHp();
if (_hp > (follower.getMaxHp() * 0.3))
{
mob.abortAttack();

View File

@@ -52,11 +52,9 @@ public class StakatoNestTeleporter extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final int index = Integer.parseInt(event) - 1;
if (LOCS.length > index)
{
final Location loc = LOCS[index];
if (player.getParty() != null)
{
for (PlayerInstance partyMember : player.getParty().getMembers())

View File

@@ -262,7 +262,6 @@ public class AwakeningMaster extends AbstractNpcAI
public void OnPlayerChangeToAwakenedClass(OnPlayerChangeToAwakenedClass event)
{
final PlayerInstance player = event.getPlayer();
if (player.isSubClassActive() && !player.isDualClassActive())
{
return;
@@ -339,7 +338,6 @@ public class AwakeningMaster extends AbstractNpcAI
}
}
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
SkillTreeData.getInstance().cleanSkillUponAwakening(player);
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
{

View File

@@ -44,7 +44,6 @@ public class Galad extends AbstractNpcAI
{
npc.broadcastSocialAction(3);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.OCCASIONALLY_RARE_JEWELS_OF_GIANTS_ARE_DISCOVERED_IN_THE_BEACH, 1000);
}
return super.onAdvEvent(event, npc, player);
}

View File

@@ -60,7 +60,6 @@ public class GiantSoldiers extends AbstractNpcAI
}
String htmltext = null;
switch (event)
{
case "CHAT_MESSAGE_1A":

View File

@@ -44,7 +44,6 @@ public class GuardSoldier extends AbstractNpcAI
{
npc.broadcastSocialAction(3);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LADY_YOU_MUST_GO_IN, 1000);
}
else if (event.equals("SOCIAL_ACTION") && (npc != null))
{

View File

@@ -46,7 +46,6 @@ public class Hadel extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "33344.html":

View File

@@ -67,7 +67,6 @@ public class MonkOfChaos extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "33880-1.html":

View File

@@ -198,7 +198,6 @@ public class Raina extends AbstractNpcAI
final Set<ClassId> availSubs = getAvailableSubClasses(player);
final StringBuilder sb = new StringBuilder();
final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "subclassList.html");
if ((availSubs == null) || availSubs.isEmpty())
{
break;
@@ -244,7 +243,6 @@ public class Raina extends AbstractNpcAI
{
final StringBuilder sb = new StringBuilder();
final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "subclassRemoveList.html");
for (SubClass subClass : player.getSubClasses().values())
{
if (subClass != null)
@@ -320,7 +318,6 @@ public class Raina extends AbstractNpcAI
}
final CategoryType cType = CategoryType.valueOf(event.replace("addDualClass_", ""));
if (cType == null)
{
LOGGER.warning(getClass().getSimpleName() + ": Cannot parse CategoryType, event: " + event);
@@ -328,7 +325,6 @@ public class Raina extends AbstractNpcAI
final StringBuilder sb = new StringBuilder();
final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "addDualClassErtheiaList.html");
for (ClassId dualClasses : getDualClasses(player, cType))
{
if (dualClasses != null)
@@ -405,7 +401,6 @@ public class Raina extends AbstractNpcAI
case "reawaken_SIXTH_EOLH_GROUP":
{
final CategoryType cType = CategoryType.valueOf(event.replace("reawaken_", ""));
if (cType == null)
{
LOGGER.warning(getClass().getSimpleName() + ": Cannot parse CategoryType, event: " + event);
@@ -413,7 +408,6 @@ public class Raina extends AbstractNpcAI
final StringBuilder sb = new StringBuilder();
final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "reawakenClassList.html");
for (ClassId dualClasses : getDualClasses(player, cType))
{
if (dualClasses != null)
@@ -484,7 +478,6 @@ public class Raina extends AbstractNpcAI
final int classId = event.getReply();
final StringBuilder sb = new StringBuilder();
final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "addConfirm.html");
if (!isValidNewSubClass(player, classId))
{
return;
@@ -521,7 +514,6 @@ public class Raina extends AbstractNpcAI
final Set<ClassId> availSubs = getAvailableSubClasses(player);
final StringBuilder sb = new StringBuilder();
final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "removeSubclassList.html");
if ((availSubs == null) || availSubs.isEmpty())
{
return;
@@ -673,9 +665,7 @@ public class Raina extends AbstractNpcAI
final int currentBaseId = player.getBaseClass();
final ClassId baseCID = ClassId.getClassId(currentBaseId);
final int baseClassId = (CategoryData.getInstance().isInCategory(CategoryType.FOURTH_CLASS_GROUP, baseCID.getId()) || CategoryData.getInstance().isInCategory(CategoryType.FIFTH_CLASS_GROUP, baseCID.getId()) || CategoryData.getInstance().isInCategory(CategoryType.SIXTH_CLASS_GROUP, baseCID.getId())) ? baseCID.getParent().getId() : currentBaseId;
final Set<ClassId> availSubs = getSubclasses(player, baseClassId);
if ((availSubs != null) && !availSubs.isEmpty())
{
for (ClassId pclass : availSubs)
@@ -683,11 +673,9 @@ public class Raina extends AbstractNpcAI
// scan for already used subclasses
final int availClassId = pclass.getId();
final ClassId cid = ClassId.getClassId(availClassId);
for (SubClass subList : player.getSubClasses().values())
{
final ClassId subId = ClassId.getClassId(subList.getClassId());
if (subId.equalsOrChildOf(cid))
{
availSubs.remove(cid);
@@ -718,7 +706,6 @@ public class Raina extends AbstractNpcAI
for (SubClass subList : player.getSubClasses().values())
{
subClassId = ClassId.getClassId(subList.getClassId());
if (subClassId.equalsOrChildOf(cid))
{
return false;
@@ -732,7 +719,6 @@ public class Raina extends AbstractNpcAI
// we need 2nd occupation ID
final int baseClassId = (CategoryData.getInstance().isInCategory(CategoryType.FOURTH_CLASS_GROUP, baseCID.getId()) || CategoryData.getInstance().isInCategory(CategoryType.FIFTH_CLASS_GROUP, baseCID.getId()) || CategoryData.getInstance().isInCategory(CategoryType.SIXTH_CLASS_GROUP, baseCID.getId())) ? baseCID.getParent().getId() : currentBaseId;
final Set<ClassId> availSubs = getSubclasses(player, baseClassId);
if ((availSubs == null) || availSubs.isEmpty())
{
return false;
@@ -753,7 +739,6 @@ public class Raina extends AbstractNpcAI
private boolean hasAllSubclassLeveled(PlayerInstance player)
{
boolean leveled = true;
for (SubClass sub : player.getSubClasses().values())
{
if ((sub != null) && (sub.getLevel() < 75))
@@ -767,7 +752,6 @@ public class Raina extends AbstractNpcAI
public List<ClassId> getAvailableDualclasses(PlayerInstance player)
{
final List<ClassId> dualClasses = new ArrayList<>();
for (ClassId ClassId : ClassId.values())
{
if ((ClassId.getRace() != Race.ERTHEIA) && CategoryData.getInstance().isInCategory(CategoryType.SIXTH_CLASS_GROUP, ClassId.getId()) && (ClassId.getId() != player.getClassId().getId()))
@@ -783,7 +767,6 @@ public class Raina extends AbstractNpcAI
final List<ClassId> tempList = new ArrayList<>();
final int baseClassId = player.getBaseClass();
final int dualClassId = player.getClassId().getId();
for (ClassId temp : dualClassList)
{
if ((temp.getId() != baseClassId) && (temp.getId() != dualClassId) && ((cType == null) || CategoryData.getInstance().isInCategory(cType, temp.getId())))
@@ -798,7 +781,6 @@ public class Raina extends AbstractNpcAI
{
Set<ClassId> subclasses = null;
final ClassId pClass = ClassId.getClassId(classId);
if (CategoryData.getInstance().isInCategory(CategoryType.THIRD_CLASS_GROUP, classId) || (CategoryData.getInstance().isInCategory(CategoryType.FOURTH_CLASS_GROUP, classId)))
{
subclasses = EnumSet.copyOf(mainSubclassSet);

View File

@@ -44,7 +44,6 @@ public class TomaJunior extends AbstractNpcAI
{
npc.broadcastSocialAction(3);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_BEACH_WHERE_RELICS_OF_GIANTS_HAD_FALLEN_HAS_NOW_BECOME_CLEAN, 1000);
}
else if (event.equals("SOCIAL_ACTION") && (npc != null))
{

View File

@@ -93,7 +93,6 @@ public class YeSegiraTeleportDevice extends AbstractNpcAI
if (LOCATIONS.containsKey(event))
{
player.teleToLocation(LOCATIONS.get(event), true);
if (event.equals("observatory") && player.getVariables().getBoolean(MOVIE_VAR, false))
{
playMovie(player, Movie.SI_ILLUSION_03_QUE);

View File

@@ -103,7 +103,6 @@ public class Alexandria extends AbstractNpcAI
{
giveItems(player, agathion);
htmltext = "30098-03.html";
if (agathion instanceof AdditionalQuestItemHolder)
{
giveItems(player, ((AdditionalQuestItemHolder) agathion).getAdditionalId(), 1);

View File

@@ -45,7 +45,6 @@ public class Cerenas extends AbstractNpcAI
{
final QuestState qs = player.getQuestState(Q10369_NoblesseSoulTesting.class.getSimpleName());
String htmltext = null;
if (event.equals("tiara"))
{
if ((qs != null) && qs.isCompleted())

View File

@@ -46,7 +46,6 @@ public class ElmoredenServantsGhost extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
if (event.equals("teleport1") || event.equals("teleport2"))
{
if (!hasAtLeastOneQuestItem(player, USED_GRAVE_PASS, ANTIQUE_BROOCH))

View File

@@ -96,7 +96,6 @@ public class Wastelands extends AbstractNpcAI
{
npc.broadcastSocialAction(4);
npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_SHOUT[getRandom(2)], 1000);
World.getInstance().getVisibleObjectsInRange(npc, Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard -> startQuestTimer("SOCIAL_ACTION", getRandom(2500, 3500), guard, null));
break;
}
@@ -306,15 +305,12 @@ public class Wastelands extends AbstractNpcAI
{
sakum.getVariables().set("GUARD_COUNT", COMMANDO_CAPTAIN_SAKUM_LOC.length);
sakum.getVariables().set("GUARD_CAPTAIN", false);
for (Location loc : COMMANDO_CAPTAIN_SAKUM_LOC)
{
final Attackable commander = (Attackable) addSpawn(COMMANDO_CAPTAIN, loc);
commander.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HOW_DARE_YOU_ATTACK);
commander.reduceCurrentHp(1, sakum, null); // TODO: Find better way for attack
sakum.reduceCurrentHp(1, commander, null);
notifyEvent("START_ATTACK", commander, null);
}
}
@@ -322,14 +318,11 @@ public class Wastelands extends AbstractNpcAI
{
sakum.getVariables().set("GUARD_COUNT", COMMANDO_SAKUM_LOC.length);
sakum.getVariables().set("GUARD_CAPTAIN", true);
for (Location loc : COMMANDO_SAKUM_LOC)
{
final Attackable commander = (Attackable) addSpawn(COMMANDO, loc);
commander.reduceCurrentHp(1, sakum, null); // TODO: Find better way for attack
sakum.reduceCurrentHp(1, commander, null);
notifyEvent("START_ATTACK", commander, null);
}
}

View File

@@ -615,7 +615,6 @@ public class Antharas extends AbstractNpcAI
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon, Skill skill)
{
_lastAttack = System.currentTimeMillis();
if (npc.getId() == BOMBER)
{
if (npc.calculateDistance3D(attacker) < 230)
@@ -878,7 +877,6 @@ public class Antharas extends AbstractNpcAI
final double distance_c2 = npc.calculateDistance3D(c2);
final double direction_c2 = npc.calculateDirectionTo(c2);
SkillHolder skillToCast = null;
boolean castOnTarget = false;
if (npc.getCurrentHp() < (npc.getMaxHp() * 0.25))

View File

@@ -134,7 +134,6 @@ public class Baium extends AbstractNpcAI
final int loc_y = info.getInt("loc_y");
final int loc_z = info.getInt("loc_z");
final int heading = info.getInt("heading");
_baium = (GrandBossInstance) addSpawn(BAIUM, loc_x, loc_y, loc_z, heading, false, 0);
_baium.setCurrentHpMp(curr_hp, curr_mp);
_lastAttack = System.currentTimeMillis();
@@ -319,7 +318,6 @@ public class Baium extends AbstractNpcAI
{
final Attackable mob = (Attackable) npc;
final Creature mostHated = mob.getMostHated();
if ((_baium == null) || _baium.isDead())
{
mob.deleteMe();
@@ -485,7 +483,6 @@ public class Baium extends AbstractNpcAI
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon, Skill skill)
{
_lastAttack = System.currentTimeMillis();
if (npc.getId() == BAIUM)
{
if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(ANTI_STRIDER.getSkillId()) && !npc.isSkillDisabled(ANTI_STRIDER.getSkill()))
@@ -520,7 +517,6 @@ public class Baium extends AbstractNpcAI
{
final Attackable mob = (Attackable) npc;
final Creature mostHated = mob.getMostHated();
if ((getRandom(100) < 10) && SkillCaster.checkUseConditions(mob, SPEAR_ATTACK.getSkill()))
{
if ((mostHated != null) && (npc.calculateDistance3D(mostHated) < 1000) && zone.isCharacterInZone(mostHated))
@@ -605,7 +601,6 @@ public class Baium extends AbstractNpcAI
public String onSpellFinished(Npc npc, PlayerInstance player, Skill skill)
{
startQuestTimer("MANAGE_SKILLS", 1000, npc, null);
if (!zone.isCharacterInZone(npc) && (_baium != null))
{
_baium.teleToLocation(BAIUM_LOC);

View File

@@ -258,7 +258,6 @@ public class BalokWarzone extends AbstractInstance
public String onKill(Npc npc, PlayerInstance player, boolean isPet)
{
final Instance world = npc.getInstanceWorld();
if (npc == _balok)
{
if (world.getAliveNpcs(BALOK).isEmpty())

View File

@@ -291,7 +291,6 @@ public class BaylorWarzone extends AbstractInstance
{
final Npc npc = (Npc) event.getTarget();
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
if (world.getAliveNpcs(BAYLOR).isEmpty())
@@ -310,7 +309,6 @@ public class BaylorWarzone extends AbstractInstance
final Creature creature = event.getSeen();
final Npc npc = (Npc) event.getSeer();
final Instance world = npc.getInstanceWorld();
if (isInInstance(world) && creature.isPlayer() && npc.isScriptValue(0))
{
npc.setScriptValue(1);

View File

@@ -158,39 +158,33 @@ public class Beleth extends AbstractNpcAI
_camera2 = addSpawn(29121, new Location(16323, 210741, -9357));
_camera3 = addSpawn(29122, new Location(16323, 213170, -9357));
_camera4 = addSpawn(29123, new Location(16323, 214917, -9356));
ZONE.broadcastPacket(new PlaySound(1, "BS07_A", 1, _camera1.getObjectId(), _camera1.getX(), _camera1.getY(), _camera1.getZ()));
ZONE.broadcastPacket(new SpecialCamera(_camera1, 400, 75, -25, 0, 2500, 0, 0, 1, 0, 0));
ZONE.broadcastPacket(new SpecialCamera(_camera1, 400, 75, -25, 0, 2500, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN2", 300, null, null);
break;
}
case "SPAWN2":
{
ZONE.broadcastPacket(new SpecialCamera(_camera1, 1800, -45, -45, 5000, 5000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN3", 4900, null, null);
break;
}
case "SPAWN3":
{
ZONE.broadcastPacket(new SpecialCamera(_camera1, 2500, -120, -45, 5000, 5000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN4", 4900, null, null);
break;
}
case "SPAWN4":
{
ZONE.broadcastPacket(new SpecialCamera(_camera2, 2200, 130, 0, 0, 1500, -20, 15, 1, 0, 0));
startQuestTimer("SPAWN5", 1400, null, null);
break;
}
case "SPAWN5":
{
ZONE.broadcastPacket(new SpecialCamera(_camera2, 2300, 100, 0, 2000, 4500, 0, 10, 1, 0, 0));
startQuestTimer("SPAWN6", 2500, null, null);
break;
}
@@ -201,7 +195,6 @@ public class Beleth extends AbstractNpcAI
ZONE.broadcastPacket(new StaticObject(door, false));
ZONE.broadcastPacket(new DoorStatusUpdate(door));
startQuestTimer("SPAWN7", 1700, null, null);
break;
}
@@ -209,23 +202,19 @@ public class Beleth extends AbstractNpcAI
{
ZONE.broadcastPacket(new SpecialCamera(_camera4, 1500, 210, 0, 0, 1500, 0, 0, 1, 0, 0));
ZONE.broadcastPacket(new SpecialCamera(_camera4, 900, 255, 0, 5000, 6500, 0, 10, 1, 0, 0));
startQuestTimer("SPAWN8", 6000, null, null);
break;
}
case "SPAWN8":
{
_whirpool = addSpawn(WHIRPOOL, new Location(16323, 214917, -9356));
ZONE.broadcastPacket(new SpecialCamera(_camera4, 900, 255, 0, 0, 1500, 0, 10, 1, 0, 0));
startQuestTimer("SPAWN9", 1000, null, null);
break;
}
case "SPAWN9":
{
ZONE.broadcastPacket(new SpecialCamera(_camera4, 1000, 255, 0, 7000, 17000, 0, 25, 1, 0, 0));
startQuestTimer("SPAWN10", 3000, null, null);
break;
}
@@ -242,7 +231,6 @@ public class Beleth extends AbstractNpcAI
case "SPAWN11":
{
ZONE.broadcastPacket(new SocialAction(_beleth.getObjectId(), 1));
for (int i = 0; i < 6; i++)
{
final int x = (int) ((150 * Math.cos(i * 1.046666667)) + 16323);
@@ -260,14 +248,12 @@ public class Beleth extends AbstractNpcAI
case "SPAWN12":
{
ZONE.broadcastPacket(new SpecialCamera(_beleth, 0, 270, -5, 0, 4000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN13", 3500, null, null);
break;
}
case "SPAWN13":
{
ZONE.broadcastPacket(new SpecialCamera(_beleth, 800, 270, 10, 3000, 6000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN14", 5000, null, null);
break;
}
@@ -275,14 +261,12 @@ public class Beleth extends AbstractNpcAI
{
ZONE.broadcastPacket(new SpecialCamera(_camera3, 100, 270, 15, 0, 5000, 0, 0, 1, 0, 0));
ZONE.broadcastPacket(new SpecialCamera(_camera3, 100, 270, 15, 0, 5000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN15", 100, null, null);
break;
}
case "SPAWN15":
{
ZONE.broadcastPacket(new SpecialCamera(_camera3, 100, 270, 15, 3000, 6000, 0, 5, 1, 0, 0));
startQuestTimer("SPAWN16", 1400, null, null);
break;
}
@@ -296,21 +280,18 @@ public class Beleth extends AbstractNpcAI
case "SPAWN17":
{
ZONE.broadcastPacket(new MagicSkillUse(_beleth, _beleth, 5532, 1, 2000, 0));
startQuestTimer("SPAWN18", 2000, null, null);
break;
}
case "SPAWN18":
{
ZONE.broadcastPacket(new SpecialCamera(_camera3, 700, 270, 20, 1500, 8000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN19", 6900, null, null);
break;
}
case "SPAWN19":
{
ZONE.broadcastPacket(new SpecialCamera(_camera3, 40, 260, 0, 0, 4000, 0, 0, 1, 0, 0));
for (Npc fakeBeleth : _minions)
{
fakeBeleth.spawnMe();
@@ -325,28 +306,24 @@ public class Beleth extends AbstractNpcAI
case "SPAWN20":
{
ZONE.broadcastPacket(new SpecialCamera(_camera3, 40, 280, 0, 0, 4000, 5, 0, 1, 0, 0));
startQuestTimer("SPAWN21", 3000, null, null);
break;
}
case "SPAWN21":
{
ZONE.broadcastPacket(new SpecialCamera(_camera3, 5, 250, 5, 0, 13000, 20, 15, 1, 0, 0));
startQuestTimer("SPAWN22", 1000, null, null);
break;
}
case "SPAWN22":
{
ZONE.broadcastPacket(new SocialAction(_beleth.getObjectId(), 3));
startQuestTimer("SPAWN23", 4000, null, null);
break;
}
case "SPAWN23":
{
ZONE.broadcastPacket(new MagicSkillUse(_beleth, _beleth, 5533, 1, 2000, 0));
startQuestTimer("SPAWN24", 6800, null, null);
break;
}
@@ -354,7 +331,6 @@ public class Beleth extends AbstractNpcAI
{
_beleth.deleteMe();
_beleth = null;
for (Npc fakeBeleth : _minions)
{
fakeBeleth.deleteMe();
@@ -374,9 +350,7 @@ public class Beleth extends AbstractNpcAI
}
_lastAttack = System.currentTimeMillis();
startQuestTimer("CHECK_ATTACK", 60000, null, null);
startQuestTimer("SPAWN25", 60000, null, null);
break;
}
@@ -391,7 +365,6 @@ public class Beleth extends AbstractNpcAI
final int x = (int) ((650 * Math.cos(i * 0.39)) + 16323);
final int y = (int) ((650 * Math.sin(i * 0.39)) + 213170);
npc = addSpawn(FAKE_BELETH, new Location(x, y, -9357, 49152));
_minions.add(npc);
@@ -408,7 +381,6 @@ public class Beleth extends AbstractNpcAI
{
xm[i] = (int) ((1700 * Math.cos((i * 1.57) + 0.78)) + 16323);
ym[i] = (int) ((1700 * Math.sin((i * 1.57) + 0.78)) + 213170);
npc = addSpawn(FAKE_BELETH, new Location(xm[i], ym[i], -9357, 49152));
npc.setImmobilized(true);
@@ -460,7 +432,6 @@ public class Beleth extends AbstractNpcAI
xm[15] = (xm[7] + xm[0]) / 2;
ym[15] = (ym[7] + ym[0]) / 2;
_minions.add(addSpawn(FAKE_BELETH, new Location(xm[15], ym[15], -9357, 49152)));
_allowedObjId = getRandomEntry(_minions).getObjectId();
break;
}
@@ -476,26 +447,22 @@ public class Beleth extends AbstractNpcAI
_camera1 = addSpawn(29122, new Location(16323, 213170, -9357));
_camera1.broadcastPacket(new PlaySound(1, "BS07_D", 1, _camera1.getObjectId(), _camera1.getX(), _camera1.getY(), _camera1.getZ()));
ZONE.broadcastPacket(new SpecialCamera(_camera1, 400, 290, 25, 0, 10000, 0, 0, 1, 0, 0));
ZONE.broadcastPacket(new SpecialCamera(_camera1, 400, 290, 25, 0, 10000, 0, 0, 1, 0, 0));
ZONE.broadcastPacket(new SpecialCamera(_camera1, 400, 110, 25, 4000, 10000, 0, 0, 1, 0, 0));
ZONE.broadcastPacket(new SocialAction(_beleth.getObjectId(), 5));
startQuestTimer("SPAWN27", 4000, null, null);
break;
}
case "SPAWN27":
{
ZONE.broadcastPacket(new SpecialCamera(_camera1, 400, 295, 25, 4000, 5000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN28", 4500, null, null);
break;
}
case "SPAWN28":
{
ZONE.broadcastPacket(new SpecialCamera(_camera1, 400, 295, 10, 4000, 11000, 0, 25, 1, 0, 0));
startQuestTimer("SPAWN29", 9000, null, null);
break;
}
@@ -503,7 +470,6 @@ public class Beleth extends AbstractNpcAI
{
ZONE.broadcastPacket(new SpecialCamera(_camera1, 250, 90, 25, 0, 1000, 0, 0, 1, 0, 0));
ZONE.broadcastPacket(new SpecialCamera(_camera1, 250, 90, 25, 0, 10000, 0, 0, 1, 0, 0));
startQuestTimer("SPAWN30", 2000, null, null);
break;
}
@@ -513,7 +479,6 @@ public class Beleth extends AbstractNpcAI
_beleth.deleteMe();
_camera2 = addSpawn(29121, new Location(14056, 213170, -9357));
startQuestTimer("SPAWN31", 3500, null, null);
break;
}
@@ -527,7 +492,6 @@ public class Beleth extends AbstractNpcAI
ZONE.broadcastPacket(new StaticObject(door2, false));
ZONE.broadcastPacket(new DoorStatusUpdate(door2));
DoorData.getInstance().getDoor(DOOR3).openMe();
_camera1.deleteMe();
@@ -602,7 +566,6 @@ public class Beleth extends AbstractNpcAI
npc.setTarget(player);
npc.doCast(HORN_OF_RISING.getSkill());
}
return null;
}
@@ -672,7 +635,6 @@ public class Beleth extends AbstractNpcAI
{
npc.getSpawn().setRespawnDelay(0);
}
return null;
}
@@ -683,16 +645,13 @@ public class Beleth extends AbstractNpcAI
if ((_killer != null) && (player.getObjectId() == _killer.getObjectId()))
{
_killer = null;
giveItems(player, RING);
html = "32470a.htm";
}
else
{
html = "32470b.htm";
}
return HtmCache.getInstance().getHtm(player, "data/html/default/" + html);
}
@@ -746,7 +705,6 @@ public class Beleth extends AbstractNpcAI
if (npc.getId() == REAL_BELETH)
{
cancelQuestTimer("CHECK_ATTACK", null, null);
setBelethKiller(killer);
GrandBossManager.getInstance().setBossStatus(REAL_BELETH, DEAD);
final long respawnTime = (Config.BELETH_SPAWN_INTERVAL + getRandom(-Config.BELETH_SPAWN_RANDOM, Config.BELETH_SPAWN_RANDOM)) * 3600000;
@@ -754,7 +712,6 @@ public class Beleth extends AbstractNpcAI
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
GrandBossManager.getInstance().setStatSet(REAL_BELETH, info);
startQuestTimer("BELETH_UNLOCK", respawnTime, null, null);
deleteAll();
npc.deleteMe();
@@ -775,7 +732,6 @@ public class Beleth extends AbstractNpcAI
_priest.decayMe();
_stone = addSpawn(STONE_COFFIN, new Location(12470, 215607, -9381, 49152));
startQuestTimer("SPAWN26", 1000, null, null);
}
else if (npc.getObjectId() == _allowedObjId)

View File

@@ -146,7 +146,6 @@ public class IceQueensCastle extends AbstractInstance
{
npc.setScriptValue(1);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_MAY_THE_PROTECTION_OF_THE_GODS_BE_UPON_YOU, creature.getName());
World.getInstance().forEachVisibleObject(npc, Npc.class, mob ->
{
if ((mob.getId() == ARCHERY_KNIGHT) && !mob.isDead() && !mob.isDecayed())

View File

@@ -202,7 +202,6 @@ public class LastImperialTomb extends AbstractInstance
case "FRINTEZZA_INTRO_2":
{
final Instance world = player.getInstanceWorld();
final Npc frintezzaDummy = addSpawn(DUMMY, -87784, -155083, -9087, 16048, false, 0, false, world.getId());
world.setParameter("frintezzaDummy", frintezzaDummy);
@@ -219,7 +218,6 @@ public class LastImperialTomb extends AbstractInstance
final Npc scarletDummy = addSpawn(DUMMY2, -87784, -153298, -9175, 16384, false, 0, false, world.getId());
world.setParameter("scarletDummy", scarletDummy);
disablePlayers(world);
// broadcastPacket(world, new SpecialCamera(overheadDummy, 0, 75, -89, 0, 100, 0, 0, 1, 0, 0));
@@ -241,7 +239,6 @@ public class LastImperialTomb extends AbstractInstance
demons.add(demon);
}
world.setParameter("demons", demons);
startQuestTimer("FRINTEZZA_INTRO_3", 6500, null, player, false);
break;
}
@@ -505,7 +502,6 @@ public class LastImperialTomb extends AbstractInstance
broadcastPacket(world, new SocialAction(frintezza.getObjectId(), 4));
broadcastPacket(world, new SpecialCamera(frintezza, 250, 120, 15, 0, 1000, 0, 0, 1, 0, 0));
broadcastPacket(world, new SpecialCamera(frintezza, 250, 120, 15, 0, 10000, 0, 0, 1, 0, 0));
startQuestTimer("SCARLET_SECOND_MORPH_CAMERA_2", 7000, npc, null, false);
break;
}

View File

@@ -160,7 +160,6 @@ public class ScarletVanHalisha extends AbstractNpcAI
}
}
}
return SkillData.getInstance().getSkill(FRINTEZZA_DAEMON_ATTACK, 1);
}

View File

@@ -169,7 +169,6 @@ public class IstinaCavern extends AbstractInstance
{
final SkillHolder death1 = npcParams.getSkillHolder("Istina_Death_Skill01");
final SkillHolder death2 = npcParams.getSkillHolder("Istina_Death_Skill02");
if (mostHated.isInCategory(CategoryType.TANKER_GROUP))
{
addSkillCastDesire(npc, mostHated, (mostHated.isAffectedBySkill(death1) ? death2 : death1), 23);
@@ -187,7 +186,6 @@ public class IstinaCavern extends AbstractInstance
final SkillHolder death1 = npcParams.getSkillHolder("Istina_Death_Skill01");
final SkillHolder death2 = npcParams.getSkillHolder("Istina_Death_Skill02");
final Creature mostHated = ((Attackable) npc).getMostHated();
if ((mostHated != null) && npc.isInsideRadius2D(mostHated, 15000) && mostHated.isInCategory(CategoryType.TANKER_GROUP) && mostHated.isAffectedBySkill(death1))
{
addSkillCastDesire(npc, mostHated, death2, 23);
@@ -266,7 +264,6 @@ public class IstinaCavern extends AbstractInstance
{
final int countDown = npcVars.getInt("COUNT_DOWN", 30);
final int charged = getChargedPercent(npcVars.getInt("SCORE_VAL", 0), isExtremeMode(instance));
if (countDown == 0)
{
npcVars.set("COUNTING_ENABLED", false);
@@ -370,7 +367,6 @@ public class IstinaCavern extends AbstractInstance
if ((skill != null) && isInInstance(instance))
{
final int skillId = skill.getId();
if (npc.getId() == INVISIBLE_NPC)
{
if (skillId == ERUPTION_1.getSkillId())
@@ -381,7 +377,6 @@ public class IstinaCavern extends AbstractInstance
else if (skillId == ERUPTION_2.getSkillId())
{
getTimers().addTimer("NPC_DELETE", 2000, event -> npc.deleteMe());
if (isExtremeMode(instance) && (getRandom(100) < 30))
{
addAttackPlayerDesire(addSpawn(EXTREME_MINION, npc, false, 0, false, instance.getId()), npc.getVariables().getObject("ERUPTION_TARGET", PlayerInstance.class), 23);
@@ -391,7 +386,6 @@ public class IstinaCavern extends AbstractInstance
else
{
final StatSet npcParams = npc.getParameters();
if (skillId == npcParams.getSkillHolder("Istina_Death_Skill01").getSkillId())
{
showOnScreenMsg(player, NpcStringId.ISTINA_S_MARK_SHINES_ABOVE_THE_HEAD, ExShowScreenMessage.TOP_CENTER, 4000);
@@ -441,17 +435,14 @@ public class IstinaCavern extends AbstractInstance
{
final StatSet npcVars = npc.getVariables();
final int stage = npcVars.getInt("ISTINA_STAGE", -1);
if (npc.getId() == BALLISTA)
{
if (npcVars.getBoolean("COUNTING_ENABLED", false))
{
final int score = npcVars.getInt("SCORE_VAL", 0);
if (getChargedPercent(score, isExtremeMode(instance)) < 100)
{
int addScore = damage;
if (skill != null)
{
if (skill.getEffectPoint() < 0)
@@ -660,7 +651,6 @@ public class IstinaCavern extends AbstractInstance
PlayerInstance maxDealer = null;
long maxDamage = 0;
int totalDamage = 0;
for (AggroInfo info : ((Attackable) npc).getAggroList().values())
{
if (info == null)

View File

@@ -43,7 +43,6 @@ public class Rumiese extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "33151-01.html":

View File

@@ -419,23 +419,17 @@ public class Kelbim extends AbstractNpcAI
public String onKill(Npc npc, PlayerInstance killer, boolean isPet)
{
_bossStage = 7;
addSpawn(TELEPORT_DEVICE, -54331, 58331, -264, 16292, false, 1800000);
notifyEvent("cancel_timers", null, null);
closeDoor(DOOR1, 0);
closeDoor(DOOR2, 0);
GrandBossManager.getInstance().setBossStatus(KELBIM, DEAD);
final long respawnTime = (Config.KELBIM_SPAWN_INTERVAL + getRandom(-Config.KELBIM_SPAWN_RANDOM, Config.KELBIM_SPAWN_RANDOM)) * 3600000;
final StatSet info = GrandBossManager.getInstance().getStatSet(KELBIM);
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
GrandBossManager.getInstance().setStatSet(KELBIM, info);
startQuestTimer("unlock_kelbim", respawnTime, null, null);
startQuestTimer("end_kelbim", 1800000, null, null);
return super.onKill(npc, killer, isPet);
}

View File

@@ -209,7 +209,6 @@ public class OctavisWarzone extends AbstractInstance
case "BEASTS_CHECK_HP":
{
final int hpPer = npc.getCurrentHpPercent();
if ((hpPer < 50) && npc.isScriptValue(0))
{
npc.getStat().addFixedValue(Stat.REGENERATE_HP_RATE, 100d); // On original script 95000d was added, making Octavis targetable for two seconds.
@@ -283,7 +282,6 @@ public class OctavisWarzone extends AbstractInstance
{
final int moveX = npcParams.getInt("Move_to_X", 0);
final int moveY = npcParams.getInt("Move_to_Y", 0);
if ((moveX != 0) && (moveY != 0))
{
npc.setRunning();
@@ -348,7 +346,6 @@ public class OctavisWarzone extends AbstractInstance
if (isInInstance(world))
{
final int hpPer = npc.getCurrentHpPercent();
if (CommonUtil.contains(OCTAVIS_STAGE_1, npc.getId()))
{
if (hpPer >= 90)
@@ -379,7 +376,6 @@ public class OctavisWarzone extends AbstractInstance
else if (CommonUtil.contains(OCTAVIS_STAGE_2, npc.getId()))
{
final StatSet npcVars = npc.getVariables();
if (npcVars.getBoolean("START_TIMERS", true))
{
npcVars.set("START_TIMERS", false);
@@ -506,7 +502,6 @@ public class OctavisWarzone extends AbstractInstance
final Creature creature = event.getSeen();
final Npc npc = (Npc) event.getSeer();
final Instance world = npc.getInstanceWorld();
if (isInInstance(world) && creature.isPlayer() && npc.isScriptValue(0))
{
world.openCloseDoor(MAIN_DOOR_1, true);

View File

@@ -279,7 +279,6 @@ public class QueenAnt extends AbstractNpcAI
break;
}
}
return super.onSpawn(npc);
}

View File

@@ -152,7 +152,6 @@ public class Sailren extends AbstractNpcAI
sailren.setInvul(true);
sailren.setImmobilized(true);
zone.broadcastPacket(new SpecialCamera(movieNpc, 60, 110, 30, 4000, 1500, 20000, 0, 65, 1, 0, 0));
startQuestTimer("ATTACK", 24600, sailren, null);
startQuestTimer("ANIMATION", 2000, movieNpc, null);
startQuestTimer("CAMERA_1", 4100, movieNpc, null);

View File

@@ -77,7 +77,6 @@ public class Cannon extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "useCannonBall":
@@ -172,7 +171,6 @@ public class Cannon extends AbstractNpcAI
if (skill.getId() == PRESENT_SKILL.getSkillId())
{
final StatSet npcParams = npc.getParameters();
npc.broadcastPacket(new Earthquake(npc, 10, 5));
npc.broadcastPacket(new OnEventTrigger(npcParams.getInt("TRIGGER_ID"), true));
final Npc light = addSpawn(INVISIBLE_NPC, npcParams.getInt("LIGHT_ZONE_POS_X"), npcParams.getInt("LIGHT_ZONE_POS_Y"), npcParams.getInt("LIGHT_ZONE_POS_Z"), 0, false, 10000);

View File

@@ -143,7 +143,6 @@ public class TeredorWarzone extends AbstractInstance
case "TEREDOR_LAIR_CHECK":
{
final Location spawnLoc = npc.getSpawn();
if (((spawnLoc.getX() - npc.getX()) > 1000) || ((spawnLoc.getX() - npc.getX()) < -2000))
{
showOnScreenMsg(instance, NpcStringId.TEREDOR_SUMMONS_SUBORDINATE_BECAUSE_YOU_MOVED_OUT_OF_TEREDOR_S_AREA, ExShowScreenMessage.TOP_CENTER, 4000);
@@ -188,7 +187,6 @@ public class TeredorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "enterInstance":
@@ -200,7 +198,6 @@ public class TeredorWarzone extends AbstractInstance
{
final Instance playerInstance = getPlayerInstance(player);
final Party playerParty = player.getParty();
if ((playerInstance != null) && (playerInstance.getTemplateId() == TEMPLATE_ID))
{
enterInstance(player, npc, TEMPLATE_ID);
@@ -289,7 +286,6 @@ public class TeredorWarzone extends AbstractInstance
final Creature creature = event.getSeen();
final Npc npc = (Npc) event.getSeer();
final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance))
{
final StatSet npcParams = npc.getParameters();
@@ -475,7 +471,6 @@ public class TeredorWarzone extends AbstractInstance
final StatSet npcVars = npc.getVariables();
final int hpPer = npc.getCurrentHpPercent();
int teredorStatus = npcVars.getInt("TEREDOR_STATUS", 1);
if ((npc.calculateDistance3D(attacker) > 450) && (getRandom(100) < 5))
{
addSkillCastDesire(npc, attacker, TEREDOR_POISON_SKILL, 23);

View File

@@ -227,7 +227,6 @@ public class Stage1 extends AbstractInstance implements IXmlReader
NamedNodeMap attrs = e.getAttributes();
final int npcId = parseInteger(attrs, "npcId");
final int flag = parseInteger(attrs, "flag");
if (!_spawnList.containsKey(flag))
{
_spawnList.put(flag, new ArrayList<>());
@@ -246,7 +245,6 @@ public class Stage1 extends AbstractInstance implements IXmlReader
spw.z = parseInteger(attrs, "z");
spw.h = parseInteger(attrs, "heading");
spw.isNeededNextFlag = parseBoolean(attrs, "mustKill", false);
if (spw.isNeededNextFlag)
{
killIds.add(npcId);
@@ -263,7 +261,6 @@ public class Stage1 extends AbstractInstance implements IXmlReader
spw.zone = parseInteger(attrs, "id");
spw.count = parseInteger(attrs, "count");
spw.isNeededNextFlag = parseBoolean(attrs, "mustKill", false);
if (spw.isNeededNextFlag)
{
killIds.add(npcId);

View File

@@ -140,14 +140,12 @@ public class CavernOfThePirateCaptain extends AbstractInstance
{
final List<Npc> candles = new ArrayList<>();
final int zakenRoom = getRandom(1, 15);
for (int i = 0; i < 36; i++)
{
final Npc candle = addSpawn(CANDLE, CANDLE_LOC[i], false, 0, false, instance.getId());
candle.getVariables().set("candleId", i + 1);
candles.add(candle);
}
for (int i = 3; i < 7; i++)
{
candles.get(ROOM_DATA[zakenRoom - 1][i] - 1).getVariables().set("isBlue", 1);

View File

@@ -146,7 +146,6 @@ public class AdventureGuildsman extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "pccafe_list":
@@ -350,7 +349,6 @@ public class AdventureGuildsman extends AbstractNpcAI
case "give_talismanR_by_class":
{
int multisellId = -1;
for (Entry<CategoryType, Integer> entry : R_CLASS_TALISMAN.entrySet())
{
if (player.isInCategory(entry.getKey()))
@@ -369,7 +367,6 @@ public class AdventureGuildsman extends AbstractNpcAI
case "give_talismanR90_by_class":
{
int multisellId = -1;
for (Entry<CategoryType, Integer> entry : R90_CLASS_TALISMAN.entrySet())
{
if (player.isInCategory(entry.getKey()))
@@ -407,7 +404,6 @@ public class AdventureGuildsman extends AbstractNpcAI
case "give_talismanR99_by_class":
{
int multisellId = -1;
for (Entry<CategoryType, Integer> entry : R99_CLASS_TALISMAN.entrySet())
{
if (player.isInCategory(entry.getKey()))

View File

@@ -68,7 +68,6 @@ public class AdventurersGuide extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "guide-01.html":

View File

@@ -75,7 +75,6 @@ public class AlchemistManager extends AbstractNpcAI
if (player.getRace() == Race.ERTHEIA)
{
final List<SkillLearn> alchemySkills = SkillTreeData.getInstance().getAvailableAlchemySkills(player);
if (alchemySkills.isEmpty())
{
player.sendPacket(SystemMessageId.THERE_ARE_NO_OTHER_SKILLS_TO_LEARN);

View File

@@ -41,7 +41,6 @@ public class BlackJudge extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
if (event.equals("weakenBreath"))
{
if (player.getShilensBreathDebuffLevel() >= 3)

View File

@@ -52,7 +52,6 @@ public class BlackMarketeerOfMammon extends AbstractNpcAI
{
final StringTokenizer st = new StringTokenizer(event, " ");
event = st.nextToken();
if (!st.hasMoreElements())
{
return "31092-02.html";
@@ -66,7 +65,6 @@ public class BlackMarketeerOfMammon extends AbstractNpcAI
final long count = Integer.parseInt(value);
final long AAcount = player.getAncientAdena();
if (count < 1)
{
return "31092-02.html";
@@ -75,7 +73,6 @@ public class BlackMarketeerOfMammon extends AbstractNpcAI
if (count > AAcount)
{
return "31092-03.html";
}
takeItems(player, Inventory.ANCIENT_ADENA_ID, count);
giveAdena(player, count, false);

View File

@@ -638,7 +638,6 @@ public class CastleChamberlain extends AbstractNpcAI
final int level = Integer.parseInt(st.nextToken());
final int price = getTrapUpgradePrice(level);
final int currentLevel = castle.getTrapUpgradeLevel(trapIndex);
if (currentLevel >= level)
{
final NpcHtmlMessage html = getHtmlPacket(player, npc, "chamberlain-19.html");
@@ -1140,7 +1139,6 @@ public class CastleChamberlain extends AbstractNpcAI
else if (isMyLord)
{
final int cloakId = npc.getCastle().getSide() == CastleSide.DARK ? LORD_CLOAK_OF_DARK : LORD_CLOAK_OF_LIGHT;
if (hasQuestItems(player, cloakId))
{
htmltext = "chamberlain-03.html";

View File

@@ -349,7 +349,6 @@ public class CastleCourtMagician extends AbstractNpcAI
if (player.getClanId() == npc.getCastle().getOwnerId())
{
final PlayerInstance clanLeader = player.getClan().getLeader().getPlayerInstance();
if ((clanLeader != null) && clanLeader.isAffectedBySkill(CLAN_GATE))
{
if (CallPc.checkSummonTargetStatus(player, clanLeader)) // TODO: Custom one, retail dont check it but for sure lets check same conditions like when summon player by skill.
@@ -369,7 +368,6 @@ public class CastleCourtMagician extends AbstractNpcAI
case "giveCloak":
{
final int cloakId = npc.getCastle().getSide() == CastleSide.DARK ? CLOAK_OF_DARK : CLOAK_OF_LIGHT;
if (hasQuestItems(player, cloakId))
{
htmltext = "courtmagician-08.html";

View File

@@ -77,7 +77,6 @@ public class CastleDoorManager extends AbstractNpcAI
final StringTokenizer st = new StringTokenizer(event, " ");
final String action = st.nextToken();
String htmltext = null;
switch (action)
{
case "manageDoors":
@@ -94,7 +93,6 @@ public class CastleDoorManager extends AbstractNpcAI
final boolean open = st.nextToken().equals("1");
final String doorName1 = npc.getParameters().getString("DoorName1", null);
final String doorName2 = npc.getParameters().getString("DoorName2", null);
castle.openCloseDoor(player, doorName1, open);
castle.openCloseDoor(player, doorName2, open);
}
@@ -110,7 +108,6 @@ public class CastleDoorManager extends AbstractNpcAI
if (isOwningClan(player, npc) && st.hasMoreTokens())
{
final int param = Integer.parseInt(st.nextToken());
if (param == 1)
{
final int x = npc.getParameters().getInt("pos_x01");

View File

@@ -67,7 +67,6 @@ public class ClanHallAuctioneer extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "ClanHallAuctioneer.html":

View File

@@ -63,7 +63,6 @@ public class ClanHallDoorManager extends AbstractNpcAI
final String action = st.nextToken();
final ClanHall clanHall = npc.getClanHall();
String htmltext = null;
if (clanHall != null)
{
switch (action)

View File

@@ -112,7 +112,6 @@ public class ClanHallManager extends AbstractNpcAI
final String action = st.nextToken();
final ClanHall clanHall = npc.getClanHall();
String htmltext = null;
if ((clanHall != null) && isOwningClan(player, npc))
{
switch (action)
@@ -325,7 +324,6 @@ public class ClanHallManager extends AbstractNpcAI
{
final int funcId = Integer.parseInt(st.nextToken());
final int funcLv = Integer.parseInt(st.nextToken());
final ResidenceFunction oldFunc = clanHall.getFunction(funcId, funcLv);
if (oldFunc != null)
{
@@ -378,7 +376,6 @@ public class ClanHallManager extends AbstractNpcAI
if (st.countTokens() == 2)
{
final String act = st.nextToken();
final ResidenceFunctionType funcType = ResidenceFunctionType.valueOf(st.nextToken());
if (funcType != null)
{
@@ -436,7 +433,6 @@ public class ClanHallManager extends AbstractNpcAI
{
String htmltext = null;
final ClanHall clanHall = npc.getClanHall();
if (isOwningClan(player, npc))
{
if (clanHall.getCostFailDay() == 0)

View File

@@ -124,7 +124,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
_spawnClassMasters = parseBoolean(attrs, "spawnClassMasters", true);
_showPopupWindow = parseBoolean(attrs, "showPopupWindow", false);
for (Node c = cm.getFirstChild(); c != null; c = c.getNextSibling())
{
attrs = c.getAttributes();
@@ -166,7 +165,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
final int itemId = parseInteger(attrs, "id");
final int count = parseInteger(attrs, "count", 1);
rewardedItems.add(new ItemHolder(itemId, count));
}
else if ("setNoble".equals(r.getNodeName()))
@@ -188,7 +186,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
final int itemId = parseInteger(attrs, "id");
final int count = parseInteger(attrs, "count", 1);
requiredItems.add(new ItemHolder(itemId, count));
}
}
@@ -894,7 +891,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
public void onPlayerPressTutorialMark(OnPlayerPressTutorialMark event)
{
final PlayerInstance player = event.getPlayer();
if (!_showPopupWindow || (event.getMarkId() != 1)) // mark id was 1001 - used 1 for tutorial text
{
return;
@@ -961,7 +957,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
private String getClassChangeOptions(PlayerInstance player, int selectedClassId)
{
final StringBuilder sb = new StringBuilder();
for (int i = 0; i < _classChangeData.size(); i++)
{
final ClassChangeData option = getClassChangeData(i);
@@ -1004,7 +999,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
else
{
option.getItemsRewarded().forEach(ih -> sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>"));
if (option.isRewardNoblesse())
{
sb.append("<tr><td><font color=\"LEVEL\">Noblesse status.</font></td></tr>");
@@ -1059,7 +1053,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
}
}
}
return false;
}
@@ -1111,7 +1104,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose.
}
return showOptions;
}
@@ -1121,7 +1113,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
return _classChangeData.get(index);
}
return null;
}

View File

@@ -76,7 +76,6 @@ public class DimensionalMerchant extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "32478.html":

View File

@@ -55,7 +55,6 @@ public class DivineBeast extends AbstractNpcAI
cancelQuestTimer(event, npc, player);
player.getServitors().values().forEach(summon -> summon.unSummon(player));
}
return super.onAdvEvent(event, npc, player);
}

View File

@@ -68,7 +68,6 @@ public class FleeMonsters extends AbstractNpcAI
final int posX = (int) (npc.getX() + (FLEE_DISTANCE * Math.cos(radians)));
final int posY = (int) (npc.getY() + (FLEE_DISTANCE * Math.sin(radians)));
final int posZ = npc.getZ();
final Location destination = GeoEngine.getInstance().canMoveToTargetLoc(npc.getX(), npc.getY(), npc.getZ(), posX, posY, posZ, attacker.getInstanceWorld());
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination);
return super.onAttack(npc, attacker, damage, isSummon);

View File

@@ -93,7 +93,6 @@ public class FortressSiegeManager extends AbstractNpcAI
final Clan clan = player.getClan();
final Fort fortress = npc.getFort();
final Castle castle = npc.getCastle();
if (clan.getFortId() == fortress.getResidenceId())
{
final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
@@ -163,7 +162,6 @@ public class FortressSiegeManager extends AbstractNpcAI
{
final Clan clan = player.getClan();
final Fort fortress = npc.getFort();
if (clan.getFortId() == fortress.getResidenceId())
{
final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());

View File

@@ -66,7 +66,6 @@ public class GrandBossTeleporters extends AbstractNpcAI
{
String htmltext = "";
final QuestState qs = getQuestState(player, false);
if (hasQuestItems(player, VACUALITE_FLOATING_STONE))
{
player.teleToLocation(ENTER_HALL_OF_FLAMES);
@@ -92,7 +91,6 @@ public class GrandBossTeleporters extends AbstractNpcAI
if (valakasAI() != null)
{
final int status = GrandBossManager.getInstance().getBossStatus(29028);
if ((status == 0) || (status == 1))
{
if (playerCount >= 200)
@@ -103,7 +101,6 @@ public class GrandBossTeleporters extends AbstractNpcAI
{
qs.unset("allowEnter");
player.teleToLocation(TELEPORT_INTO_VALAKAS_LAIR.getX() + getRandom(600), TELEPORT_INTO_VALAKAS_LAIR.getY() + getRandom(600), TELEPORT_INTO_VALAKAS_LAIR.getZ());
playerCount++;
if (status == 0)

View File

@@ -94,7 +94,6 @@ public class HermuncusMinion extends AbstractNpcAI
String htmltext = null;
final StringTokenizer st = new StringTokenizer(event, " ");
event = st.nextToken();
if (event.equals("teleportList"))
{
if (!player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
@@ -126,7 +125,6 @@ public class HermuncusMinion extends AbstractNpcAI
else if (event.equals("teleport") && st.hasMoreTokens())
{
final int locId = Integer.parseInt(st.nextToken());
if (player.getAdena() < 150000)
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);

View File

@@ -142,7 +142,6 @@ public class LaVieEnRose extends AbstractNpcAI
// player.sendPacket(SystemMessageId.YOU_CANNOT_USE_THE_BEAUTY_SHOP_AS_THE_NPC_SERVER_IS_CURRENTLY_NOT_IN_FUNCTION);
// player.sendPacket(SystemMessageId.YOU_CANNOT_USE_THE_BEAUTY_SHOP_WHILE_USING_THE_AUTOMATIC_REPLACEMENT);
return true;
}

View File

@@ -87,7 +87,6 @@ public class Mammons extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "31126.html":
@@ -114,11 +113,9 @@ public class Mammons extends AbstractNpcAI
final Npc merchant = addSpawn(MAMMONS[1], MERCHANT_LOC[town]);
final Npc priest = addSpawn(MAMMONS[2], PRIEST_LOC[town]);
_mammons.addAll(Arrays.asList(blacksmith, merchant, priest));
if (blacksmith != null)
{
blacksmith.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(RANDOM_SAY));
if (Config.ANNOUNCE_MAMMON_SPAWN)
{
Broadcast.toAllOnlinePlayers("Mammon's has been spawned in Town of " + blacksmith.getCastle().getName() + ".", false);

View File

@@ -147,7 +147,6 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = event;
if (event.equalsIgnoreCase("exchange"))
{
if (hasQuestItems(player, MENTEE_CERT) && (player.getLevel() >= MAX_LEVEL) && player.isAwakenedClass())
@@ -227,7 +226,6 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
public void OnPlayerMenteeStatus(OnPlayerMenteeStatus event)
{
final PlayerInstance player = event.getMentee();
if (event.isMenteeOnline())
{
final Mentee mentor = MentorManager.getInstance().getMentor(player.getObjectId());
@@ -294,12 +292,10 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
public void OnPlayerMentorStatus(OnPlayerMentorStatus event)
{
final PlayerInstance player = event.getMentor();
if (event.isMentorOnline())
{
// stop buffs removal task
cancelQuestTimer("REMOVE_BUFFS " + player.getObjectId(), null, null);
MentorManager.getInstance().getMentees(player.getObjectId()).stream().filter(Objects::nonNull).filter(Mentee::isOnline).forEach(mentee ->
{
//@formatter:off
@@ -353,7 +349,6 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
public void onProfessionChange(OnPlayerProfessionChange event)
{
final PlayerInstance player = event.getPlayer();
if (player.isMentor())
{
// Give mentor's buffs only if he didn't had them.
@@ -388,7 +383,6 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
}
checkLevelForReward(player); // Checking level to send a mail if is necessary
if (player.getLevel() > MAX_LEVEL)
{
handleGraduateMentee(player);
@@ -434,7 +428,6 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
final Mentee mentee = event.getMentee();
final PlayerInstance mentor = event.getMentor();
final PlayerInstance player = mentee.getPlayerInstance();
if (player != null)
{
// Remove the mentee skills
@@ -486,11 +479,9 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
{
MentorManager.getInstance().setPenalty(mentor.getObjectId(), Config.MENTOR_PENALTY_FOR_MENTEE_COMPLETE);
MentorManager.getInstance().deleteMentor(mentor.getObjectId(), player.getObjectId());
if (mentor.isOnline())
{
mentor.sendPacket(new SystemMessage(SystemMessageId.S1_HAS_AWAKENED_AND_THE_MENTOR_MENTEE_RELATIONSHIP_HAS_ENDED_THE_MENTOR_CANNOT_OBTAIN_ANOTHER_MENTEE_FOR_ONE_DAY_AFTER_THE_MENTEE_S_GRADUATION).addPcName(player));
if (MentorManager.getInstance().isAllMenteesOffline(mentor.getObjectId(), player.getObjectId()))
{
MentorManager.getInstance().cancelAllMentoringBuffs(mentor.getPlayerInstance());
@@ -503,9 +494,7 @@ public class MentorGuide extends AbstractNpcAI implements IXmlReader
// Clear mentee status
player.sendPacket(new ExMentorList(player));
player.sendPacket(new SystemMessage(SystemMessageId.YOUR_MENTOR_MENTEE_RELATIONSHIP_WITH_YOUR_MENTOR_S1_HAS_ENDED_AS_YOU_ARE_AN_AWAKENED_CHARACTER_OF_LV_85_OR_ABOVE_YOU_CAN_NO_LONGER_BE_PAIRED_WITH_A_MENTOR).addPcName(player));
sendMail(player.getObjectId(), MENTEE_GRADUATE_TITLE, MENTEE_GRADUATE_BODY, MENTEE_CERT, 1);
}
}

View File

@@ -88,7 +88,6 @@ public class Minigame extends AbstractNpcAI
takeItems(player, UNLIT_TORCHLIGHT, 1);
giveItems(player, TORCHLIGHT, 1);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_LL_START_THE_FURNACE_MECHANISM_WATCH_FOR_THE_PATTERN);
room.getManager().setTarget(player);
room.setParticipant(player);
room.setStarted(true);
@@ -99,7 +98,6 @@ public class Minigame extends AbstractNpcAI
cancelQuestTimer("hurry_up", npc, null);
cancelQuestTimer("hurry_up2", npc, null);
cancelQuestTimer("expire", npc, null);
startQuestTimer("hurry_up", 120000, npc, null);
startQuestTimer("expire", 190000, npc, null);
startQuestTimer("start", 1000, npc, null);
@@ -204,7 +202,6 @@ public class Minigame extends AbstractNpcAI
String htmltext = null;
final MinigameRoom room = getRoomByManager(npc);
final boolean miniGameStarted = room.getStarted();
if (npc.getTarget() == null)
{
htmltext = (miniGameStarted ? "32758-08.html" : "32758.html");
@@ -218,7 +215,6 @@ public class Minigame extends AbstractNpcAI
else
{
final int attemptNumber = room.getAttemptNumber();
if (attemptNumber == 2)
{
htmltext = "32758-02.html";
@@ -233,7 +229,6 @@ public class Minigame extends AbstractNpcAI
{
htmltext = "32758-04.html";
}
return htmltext;
}
@@ -323,7 +318,6 @@ public class Minigame extends AbstractNpcAI
final Npc[] burners = new Npc[9];
Npc lastSpawn;
int potNumber = 0;
for (Spawn spawn : SpawnTable.getInstance().getSpawns(BURNER))
{
lastSpawn = spawn.getLastSpawn();

View File

@@ -78,7 +78,6 @@ public class MonumentOfHeroes extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "MonumentOfHeroes-reward.html":

View File

@@ -52,7 +52,6 @@ public class MysteriousWizard extends AbstractNpcAI
String htmltext = null;
final QuestState qs = player.getQuestState(Q10751_WindsOfFateEncounters.class.getSimpleName());
final Instance world = npc.getInstanceWorld();
if (isFotDInstance(world))
{
htmltext = "33980.html";

View File

@@ -81,7 +81,6 @@ class NpcBufferAI implements Runnable
}
final PlayerInstance player = _npc.getSummoner().getActingPlayer();
final Skill skill = getSkill(player);
if (skill == null)
{

View File

@@ -57,7 +57,6 @@ public class OlyBuffer extends AbstractNpcAI
public String onFirstTalk(Npc npc, PlayerInstance player)
{
String htmltext = null;
if (npc.isScriptValue(0))
{
htmltext = "olympiad_master001.htm";
@@ -69,7 +68,6 @@ public class OlyBuffer extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "guardian":
@@ -91,7 +89,6 @@ public class OlyBuffer extends AbstractNpcAI
npc.setScriptValue(1);
htmltext = "olympiad_master003.htm";
getTimers().addTimer("DELETE_ME", 5000, evnt -> npc.deleteMe());
return htmltext;
}

View File

@@ -89,7 +89,6 @@ public class OlyManager extends AbstractNpcAI implements IBypassHandler
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "OlyManager-info.html":
@@ -204,7 +203,6 @@ public class OlyManager extends AbstractNpcAI implements IBypassHandler
case "showEquipmentReward":
{
int multisellId = -1;
if (player.getClassId() == ClassId.SAYHA_SEER)
{
multisellId = 926;
@@ -271,7 +269,6 @@ public class OlyManager extends AbstractNpcAI implements IBypassHandler
final int classId = Integer.parseInt(event.replace("rank_", ""));
final List<String> names = Olympiad.getInstance().getClassLeaderBoard(classId);
htmltext = getHtm(player, "OlyManager-rankDetail.html");
int index = 1;
for (String name : names)
{
@@ -298,7 +295,6 @@ public class OlyManager extends AbstractNpcAI implements IBypassHandler
public String onFirstTalk(Npc npc, PlayerInstance player)
{
String htmltext = null;
if (!player.isCursedWeaponEquipped())
{
htmltext = player.getNobleLevel() > 0 ? "OlyManager-noble.html" : "OlyManager-noNoble.html";
@@ -316,7 +312,6 @@ public class OlyManager extends AbstractNpcAI implements IBypassHandler
try
{
final Npc olymanager = player.getLastFolkNPC();
if (command.startsWith(BYPASSES[0])) // list
{
if (!Olympiad.getInstance().inCompPeriod())

View File

@@ -56,7 +56,6 @@ public class SinEater extends AbstractNpcAI
{
final int random = getRandom(100);
final Summon summon = player.getPet();
if (random < 20)
{
broadcastSummonSay(summon, NpcStringId.YAWWWWN_IT_S_SO_BORING_HERE_WE_SHOULD_GO_AND_FIND_SOME_ACTION);
@@ -90,7 +89,6 @@ public class SinEater extends AbstractNpcAI
{
final int random = getRandom(100);
final Summon summon = (Summon) event.getTarget();
if (random < 30)
{
broadcastSummonSay(summon, NpcStringId.OH_THIS_IS_JUST_GREAT_WHAT_ARE_YOU_GOING_TO_DO_NOW);
@@ -114,7 +112,6 @@ public class SinEater extends AbstractNpcAI
{
final int random = getRandom(100);
final Summon summon = (Summon) event.getTarget();
if (random < 35)
{
broadcastSummonSay(summon, NpcStringId.OH_THAT_SMARTS);
@@ -143,7 +140,6 @@ public class SinEater extends AbstractNpcAI
if (getRandom(100) < 10)
{
final int random = getRandom(100);
if (random < 25)
{
broadcastSummonSay(summon, NpcStringId.USING_A_SPECIAL_SKILL_HERE_COULD_TRIGGER_A_BLOODBATH);

View File

@@ -133,7 +133,6 @@ public class TersisHerald extends AbstractNpcAI
}
World.getInstance().getPlayers().stream().forEach(p -> showOnScreenMsg(p, npcStringId, 2, 10000, true));
if (!SPAWNED_NPCS.isEmpty())
{
getTimers().cancelTimers("DESPAWN_NPCS");

View File

@@ -62,7 +62,6 @@ public class TrainingCamp extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
if (!Config.TRAINING_CAMP_ENABLE || !checkConditions(player))
{
return htmltext;

View File

@@ -88,7 +88,6 @@ public class ClassTransferTalk extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
switch (event)
{
case "30565-02.html":

View File

@@ -96,10 +96,8 @@ public class Elpies extends Event
EVENT_ACTIVE = true;
final EventLocation randomLoc = getRandomEntry(EventLocation.values());
CURRENT_ELPY_COUNT = 0;
final long despawnDelay = EVENT_DURATION_MINUTES * 60000;
for (int i = 0; i < ELPY_AMOUNT; i++)
{
addSpawn(ELPY, randomLoc.getRandomX(), randomLoc.getRandomY(), randomLoc.getZ(), 0, true, despawnDelay);
@@ -110,7 +108,6 @@ public class Elpies extends Event
Broadcast.toAllOnlinePlayers("Elpy invasion in " + randomLoc.getName());
Broadcast.toAllOnlinePlayers("Help us exterminate them!");
Broadcast.toAllOnlinePlayers("You have " + EVENT_DURATION_MINUTES + " minutes!");
_eventTask = ThreadPool.schedule(() ->
{
Broadcast.toAllOnlinePlayers("Time is up!");
@@ -128,7 +125,6 @@ public class Elpies extends Event
}
EVENT_ACTIVE = false;
if (_eventTask != null)
{
_eventTask.cancel(true);
@@ -164,7 +160,6 @@ public class Elpies extends Event
eventStop();
}
}
return super.onKill(npc, killer, isSummon);
}
@@ -225,7 +220,6 @@ public class Elpies extends Event
private void dropItem(Npc mob, PlayerInstance player, int[][] droplist)
{
final int chance = getRandom(100);
for (int[] drop : droplist)
{
if (chance >= drop[1])

View File

@@ -158,7 +158,6 @@ public class Rabbits extends Event
// Announce event end
Broadcast.toAllOnlinePlayers("Rabbits Event: Event has finished.");
return true;
}

View File

@@ -140,9 +140,7 @@ public class Race extends Event
// Schedule Event end
_eventTask = ThreadPool.schedule(this::StartRace, REGISTER_TIME * 60 * 1000);
return true;
}
protected void StartRace()
@@ -226,7 +224,6 @@ public class Race extends Event
_players.clear();
// Announce event end
Broadcast.toAllOnlinePlayers("* Race Event finished *");
return true;
}
@@ -329,7 +326,6 @@ public class Race extends Event
public String onFirstTalk(Npc npc, PlayerInstance player)
{
getQuestState(player, true);
if (npc.getId() == START_NPC)
{
if (_isRaceStarted)

View File

@@ -22,4 +22,4 @@
* The mechanics and syntax of custom scripts are the same as all quest scripts.
* @author Zoey76
*/
package custom;
package custom;

View File

@@ -81,7 +81,6 @@ public class FreyaCelebration extends LongTimeEvent
final long currTime = System.currentTimeMillis();
final String value = player.getVariables().getString("FreyaCelebration");
final long reuseTime = value.equals("") ? 0 : Long.parseLong(value);
if (currTime > reuseTime)
{
takeItems(player, Inventory.ADENA_ID, 1);

View File

@@ -63,7 +63,6 @@ public class HeavyMedal extends LongTimeEvent
{
String htmltext = event;
int level = checkLevel(player);
if (event.equalsIgnoreCase("game"))
{
htmltext = getQuestItemsCount(player, GLITTERING_MEDAL) < MEDALS[level] ? "31229-no.htm" : "31229-game.htm";
@@ -77,7 +76,6 @@ public class HeavyMedal extends LongTimeEvent
else
{
takeItems(player, GLITTERING_MEDAL, MEDALS[level]);
if (getRandom(100) > WIN_CHANCE)
{
level = 0;

View File

@@ -43,7 +43,6 @@ public class PetInstanceAction implements IActionHandler
}
final boolean isOwner = player.getObjectId() == ((PetInstance) target).getOwner().getObjectId();
if (isOwner && (player != ((PetInstance) target).getOwner()))
{
((PetInstance) target).updateRefOwner(player);

View File

@@ -446,7 +446,6 @@ public class AdminAdmin implements IAdminCommandHandler
replyMSG.append("<tr><td><font color=\"LEVEL\">Rate SP</font> = " + Config.RATE_SP + "</td><td><edit var=\"param2\" width=40 height=15></td><td><button value=\"Set\" action=\"bypass -h admin_setconfig RateSp $param2\" width=40 height=25 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
replyMSG.append("<tr><td><font color=\"LEVEL\">Rate Drop Spoil</font> = " + Config.RATE_SPOIL_DROP_CHANCE_MULTIPLIER + "</td><td><edit var=\"param4\" width=40 height=15></td><td><button value=\"Set\" action=\"bypass -h admin_setconfig RateDropSpoil $param4\" width=40 height=25 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
replyMSG.append("<tr><td width=140></td><td width=40></td><td width=40></td></tr>");
replyMSG.append("</table></body></html>");
adminReply.setHtml(replyMSG.toString());
activeChar.sendPacket(adminReply);

View File

@@ -140,11 +140,9 @@ public class AdminBuffs implements IAdminCommandHandler
try
{
final StringTokenizer st = new StringTokenizer(command, " ");
st.nextToken();
final int objectId = Integer.parseInt(st.nextToken());
final int skillId = Integer.parseInt(st.nextToken());
removeBuff(activeChar, objectId, skillId);
return true;
}
@@ -197,9 +195,7 @@ public class AdminBuffs implements IAdminCommandHandler
try
{
final int radius = Integer.parseInt(val);
World.getInstance().forEachVisibleObjectInRange(activeChar, PlayerInstance.class, radius, Creature::stopAllEffects);
BuilderUtil.sendSysMessage(activeChar, "All effects canceled within radius " + radius);
return true;
}
@@ -305,7 +301,6 @@ public class AdminBuffs implements IAdminCommandHandler
}
final String pageLink = "bypass -h admin_getbuffs" + (passive ? "_ps " : " ") + target.getName();
final PageResult result = PageBuilder.newBuilder(effects, 3, pageLink).currentPage(page).style(ButtonsStyle.INSTANCE).bodyHandler((pages, info, sb) ->
{
for (AbstractEffect effect : info.getEffects())
@@ -331,7 +326,6 @@ public class AdminBuffs implements IAdminCommandHandler
final NpcHtmlMessage html = new NpcHtmlMessage(0, 1);
html.setFile(activeChar, "data/html/admin/getbuffs.htm");
if (result.getPages() > 0)
{
html.replace("%pages%", "<table width=280 cellspacing=0><tr>" + result.getPagerTemplate() + "</tr></table>");
@@ -426,7 +420,6 @@ public class AdminBuffs implements IAdminCommandHandler
html.append("<html><table width=\"100%\"><tr><td width=45><button value=\"Main\" action=\"bypass -h admin_admin\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center><font color=\"LEVEL\">Blocked effects of ");
html.append(target.getName());
html.append("</font></td><td width=45><button value=\"Back\" action=\"bypass -h admin_getbuffs" + (target.isPlayer() ? (" " + target.getName()) : "") + "\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table><br>");
if ((blockedAbnormals != null) && !blockedAbnormals.isEmpty())
{
html.append("<br>Blocked buff slots: ");
@@ -440,7 +433,6 @@ public class AdminBuffs implements IAdminCommandHandler
// Send the packet
activeChar.sendPacket(new NpcHtmlMessage(0, 1, html.toString()));
if (Config.GMAUDIT)
{
GMAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "viewblockedeffects", target.getName() + " (" + Integer.toString(target.getObjectId()) + ")", "");

View File

@@ -48,7 +48,6 @@ public class AdminCastle implements IAdminCommandHandler
{
final StringTokenizer st = new StringTokenizer(command, " ");
final String actualCommand = st.nextToken();
if (actualCommand.equals("admin_castlemanage"))
{
if (st.hasMoreTokens())
@@ -235,7 +234,6 @@ public class AdminCastle implements IAdminCommandHandler
private void showCastleMenu(PlayerInstance player, int castleId)
{
final Castle castle = CastleManager.getInstance().getCastleById(castleId);
if (castle != null)
{
final Clan ownerClan = castle.getOwner();

View File

@@ -144,7 +144,6 @@ public class AdminClan implements IAdminCommandHandler
break;
}
final int clanId = Integer.parseInt(token);
final Clan clan = ClanTable.getInstance().getClan(clanId);
if (clan == null)
{

Some files were not shown because too many files have changed in this diff Show More