Code review Part 5.
This commit is contained in:
+1
-1
@@ -124,7 +124,7 @@ public class CemeteryMonsters extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
Npc raider = addSpawn(ADEN_RAIDER, killer, true, 180000, false);
|
final Npc raider = addSpawn(ADEN_RAIDER, killer, true, 180000, false);
|
||||||
addAttackPlayerDesire(raider, killer);
|
addAttackPlayerDesire(raider, killer);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
+4
-4
@@ -42,7 +42,7 @@ public class ApherusLookout extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
{
|
{
|
||||||
String htmltext = null;
|
final String htmltext = null;
|
||||||
if (event.equals("open_bag"))
|
if (event.equals("open_bag"))
|
||||||
{
|
{
|
||||||
if (getRandom(100) < 7)
|
if (getRandom(100) < 7)
|
||||||
@@ -58,11 +58,11 @@ public class ApherusLookout extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isPet)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isPet)
|
||||||
{
|
{
|
||||||
Npc aPackage = addSpawn(APHERUS_PACKAGE, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000, false);
|
final Npc aPackage = addSpawn(APHERUS_PACKAGE, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000, false);
|
||||||
aPackage.setIsImmobilized(true);
|
aPackage.setIsImmobilized(true);
|
||||||
Npc bPackage = addSpawn(APHERUS_PACKAGE1, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000, false);
|
final Npc bPackage = addSpawn(APHERUS_PACKAGE1, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000, false);
|
||||||
bPackage.setIsImmobilized(true);
|
bPackage.setIsImmobilized(true);
|
||||||
Npc cPackage = addSpawn(APHERUS_PACKAGE2, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000, false);
|
final Npc cPackage = addSpawn(APHERUS_PACKAGE2, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000, false);
|
||||||
cPackage.setIsImmobilized(true);
|
cPackage.setIsImmobilized(true);
|
||||||
return super.onKill(npc, killer, isPet);
|
return super.onKill(npc, killer, isPet);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -70,7 +70,7 @@ public class Hardin extends AbstractNpcAI
|
|||||||
|
|
||||||
if (event.equals("list"))
|
if (event.equals("list"))
|
||||||
{
|
{
|
||||||
StringBuilder classes = new StringBuilder();
|
final StringBuilder classes = new StringBuilder();
|
||||||
for (ClassId c : ClassId.values())
|
for (ClassId c : ClassId.values())
|
||||||
{
|
{
|
||||||
if ((((c.level() != 4) && (c.getRace() != Race.ERTHEIA)) //
|
if ((((c.level() != 4) && (c.getRace() != Race.ERTHEIA)) //
|
||||||
|
|||||||
+8
-8
@@ -64,9 +64,9 @@ public class HarnakUndergroundRuinsZone extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
for (int zoneId = 60142; zoneId <= 60165; zoneId++)
|
for (int zoneId = 60142; zoneId <= 60165; zoneId++)
|
||||||
{
|
{
|
||||||
ZoneType zone = ZoneManager.getInstance().getZoneById(zoneId);
|
final ZoneType zone = ZoneManager.getInstance().getZoneById(zoneId);
|
||||||
_roomInfo.put(zone, new zoneInfo());
|
_roomInfo.put(zone, new zoneInfo());
|
||||||
String zoneName = zone.getName().toLowerCase().replace(" ", "_");
|
final String zoneName = zone.getName().toLowerCase().replace(" ", "_");
|
||||||
_templates.stream().forEach(t -> t.spawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName), null));
|
_templates.stream().forEach(t -> t.spawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName), null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -131,7 +131,7 @@ public class HarnakUndergroundRuinsZone extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
zoneInfo currentInfo = _roomInfo.get(_zone);
|
final zoneInfo currentInfo = _roomInfo.get(_zone);
|
||||||
switch (currentInfo.getZoneStage())
|
switch (currentInfo.getZoneStage())
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
@@ -169,7 +169,7 @@ public class HarnakUndergroundRuinsZone extends AbstractNpcAI
|
|||||||
if (currentInfo.getCurrentMonitorizedDamage() >= 10)
|
if (currentInfo.getCurrentMonitorizedDamage() >= 10)
|
||||||
{
|
{
|
||||||
_zone.broadcastPacket(new ExShowScreenMessage(NpcStringId.DEMONIC_SYSTEM_WILL_ACTIVATE, ExShowScreenMessage.TOP_CENTER, 3000));
|
_zone.broadcastPacket(new ExShowScreenMessage(NpcStringId.DEMONIC_SYSTEM_WILL_ACTIVATE, ExShowScreenMessage.TOP_CENTER, 3000));
|
||||||
String zoneName = _zone.getName().toLowerCase().replace(" ", "_");
|
final String zoneName = _zone.getName().toLowerCase().replace(" ", "_");
|
||||||
_templates.stream().forEach(t -> t.despawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName)));
|
_templates.stream().forEach(t -> t.despawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName)));
|
||||||
_templates.stream().forEach(t -> t.spawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName + "_demonic"), null));
|
_templates.stream().forEach(t -> t.spawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName + "_demonic"), null));
|
||||||
_zone.getPlayersInside().forEach(temp -> temp.sendPacket(new ExSendUIEvent(temp, false, false, 600, 0, NpcStringId.DEMONIC_SYSTEM_ACTIVATED)));
|
_zone.getPlayersInside().forEach(temp -> temp.sendPacket(new ExSendUIEvent(temp, false, false, 600, 0, NpcStringId.DEMONIC_SYSTEM_ACTIVATED)));
|
||||||
@@ -193,7 +193,7 @@ public class HarnakUndergroundRuinsZone extends AbstractNpcAI
|
|||||||
player.sendPacket(new ExSendUIEvent(player));
|
player.sendPacket(new ExSendUIEvent(player));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String zoneName = _zone.getName().toLowerCase().replace(" ", "_");
|
final String zoneName = _zone.getName().toLowerCase().replace(" ", "_");
|
||||||
_templates.stream().forEach(t -> t.despawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName + "_demonic")));
|
_templates.stream().forEach(t -> t.despawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName + "_demonic")));
|
||||||
_templates.stream().forEach(t -> t.spawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName), null));
|
_templates.stream().forEach(t -> t.spawn(g -> String.valueOf(g.getName()).equalsIgnoreCase(zoneName), null));
|
||||||
return;
|
return;
|
||||||
@@ -219,14 +219,14 @@ public class HarnakUndergroundRuinsZone extends AbstractNpcAI
|
|||||||
if (currentZone.getKey().isInsideZone(npc))
|
if (currentZone.getKey().isInsideZone(npc))
|
||||||
{
|
{
|
||||||
final zoneInfo currentInfo = currentZone.getValue();
|
final zoneInfo currentInfo = currentZone.getValue();
|
||||||
int currentPoints = currentInfo.getCurrentPoints();
|
final int currentPoints = currentInfo.getCurrentPoints();
|
||||||
if (currentPoints == 300)
|
if (currentPoints == 300)
|
||||||
{
|
{
|
||||||
if (currentInfo.getZoneStage() < 1)
|
if (currentInfo.getZoneStage() < 1)
|
||||||
{
|
{
|
||||||
return super.onKill(npc, killer, isSummon);
|
return super.onKill(npc, killer, isSummon);
|
||||||
}
|
}
|
||||||
int currentDamage = currentInfo.getCurrentMonitorizedDamage();
|
final int currentDamage = currentInfo.getCurrentMonitorizedDamage();
|
||||||
int calcDamage = currentDamage + 1;
|
int calcDamage = currentDamage + 1;
|
||||||
if (calcDamage >= 10)
|
if (calcDamage >= 10)
|
||||||
{
|
{
|
||||||
@@ -262,7 +262,7 @@ public class HarnakUndergroundRuinsZone extends AbstractNpcAI
|
|||||||
|
|
||||||
if (npc.getDisplayEffect() > 0)
|
if (npc.getDisplayEffect() > 0)
|
||||||
{
|
{
|
||||||
MonsterInstance copy = (MonsterInstance) addSpawn(npc.getId(), npc.getX(), npc.getY(), npc.getZ(), 0, true, 0, false);
|
final MonsterInstance copy = (MonsterInstance) addSpawn(npc.getId(), npc.getX(), npc.getY(), npc.getZ(), 0, true, 0, false);
|
||||||
copy.setTarget(killer);
|
copy.setTarget(killer);
|
||||||
copy.addDamageHate(killer, 500, 99999);
|
copy.addDamageHate(killer, 500, 99999);
|
||||||
copy.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, killer);
|
copy.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, killer);
|
||||||
|
|||||||
+2
-2
@@ -672,7 +672,7 @@ public class Raina extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
final int currentBaseId = player.getBaseClass();
|
final int currentBaseId = player.getBaseClass();
|
||||||
final ClassId baseCID = ClassId.getClassId(currentBaseId);
|
final ClassId baseCID = ClassId.getClassId(currentBaseId);
|
||||||
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 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);
|
final Set<ClassId> availSubs = getSubclasses(player, baseClassId);
|
||||||
|
|
||||||
@@ -830,7 +830,7 @@ public class Raina extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
|
final Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
|
||||||
if (unavailableClasses != null)
|
if (unavailableClasses != null)
|
||||||
{
|
{
|
||||||
subclasses.removeAll(unavailableClasses);
|
subclasses.removeAll(unavailableClasses);
|
||||||
|
|||||||
@@ -408,7 +408,7 @@ public class Anakim extends AbstractNpcAI
|
|||||||
randomSpawn = _spawns.get(Rnd.get(_spawns.size()));
|
randomSpawn = _spawns.get(Rnd.get(_spawns.size()));
|
||||||
if (randomSpawn != null)
|
if (randomSpawn != null)
|
||||||
{
|
{
|
||||||
Npc remnant = addSpawn(REMNANT, randomSpawn.getX(), randomSpawn.getY(), randomSpawn.getZ(), randomSpawn.getHeading(), true, 0, false, 0);
|
final Npc remnant = addSpawn(REMNANT, randomSpawn.getX(), randomSpawn.getY(), randomSpawn.getZ(), randomSpawn.getHeading(), true, 0, false, 0);
|
||||||
_remnants.add(remnant);
|
_remnants.add(remnant);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -426,13 +426,13 @@ public class Anakim extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "cancel_timers":
|
case "cancel_timers":
|
||||||
{
|
{
|
||||||
QuestTimer activityTimer = getQuestTimer("check_activity_task", null, null);
|
final QuestTimer activityTimer = getQuestTimer("check_activity_task", null, null);
|
||||||
if (activityTimer != null)
|
if (activityTimer != null)
|
||||||
{
|
{
|
||||||
activityTimer.cancel();
|
activityTimer.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
QuestTimer forceEnd = getQuestTimer("end_anakim", null, null);
|
final QuestTimer forceEnd = getQuestTimer("end_anakim", null, null);
|
||||||
if (forceEnd != null)
|
if (forceEnd != null)
|
||||||
{
|
{
|
||||||
forceEnd.cancel();
|
forceEnd.cancel();
|
||||||
@@ -588,7 +588,7 @@ public class Anakim extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
if (!BOSS_ZONE.isInsideZone(npc)) // Npc moved out of the zone
|
if (!BOSS_ZONE.isInsideZone(npc)) // Npc moved out of the zone
|
||||||
{
|
{
|
||||||
Spawn spawn = npc.getSpawn();
|
final Spawn spawn = npc.getSpawn();
|
||||||
if (spawn != null)
|
if (spawn != null)
|
||||||
{
|
{
|
||||||
npc.teleToLocation(spawn.getX(), spawn.getY(), spawn.getZ());
|
npc.teleToLocation(spawn.getX(), spawn.getY(), spawn.getZ());
|
||||||
@@ -661,13 +661,13 @@ public class Anakim extends AbstractNpcAI
|
|||||||
|
|
||||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||||
{
|
{
|
||||||
Calendar now = Calendar.getInstance();
|
final Calendar now = Calendar.getInstance();
|
||||||
Calendar day1 = (Calendar) now.clone();
|
final Calendar day1 = (Calendar) now.clone();
|
||||||
day1.set(Calendar.MINUTE, day1Minute);
|
day1.set(Calendar.MINUTE, day1Minute);
|
||||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||||
|
|
||||||
Calendar day2 = (Calendar) day1.clone();
|
final Calendar day2 = (Calendar) day1.clone();
|
||||||
day2.set(Calendar.MINUTE, day2Minute);
|
day2.set(Calendar.MINUTE, day2Minute);
|
||||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||||
|
|||||||
+4
-4
@@ -150,7 +150,7 @@ public class BalokWarzone extends AbstractInstance
|
|||||||
case "stage_last_send_minions":
|
case "stage_last_send_minions":
|
||||||
{
|
{
|
||||||
|
|
||||||
Npc minion = _minionList.get(Rnd.get(_minionList.size()));
|
final Npc minion = _minionList.get(Rnd.get(_minionList.size()));
|
||||||
if (minion != null)
|
if (minion != null)
|
||||||
{
|
{
|
||||||
minion.setRunning();
|
minion.setRunning();
|
||||||
@@ -183,14 +183,14 @@ public class BalokWarzone extends AbstractInstance
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
Npc disciple = addSpawn(HELL_DISCIPLE, npc.getX(), npc.getY(), npc.getZ(), 0, true, 600000, false, world.getId());
|
final Npc disciple = addSpawn(HELL_DISCIPLE, npc.getX(), npc.getY(), npc.getZ(), 0, true, 600000, false, world.getId());
|
||||||
addAttackPlayerDesire(disciple, player);
|
addAttackPlayerDesire(disciple, player);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "imprission_minions":
|
case "imprission_minions":
|
||||||
{
|
{
|
||||||
int[] randomJail = PRISONS_SPAWN[Rnd.get(PRISONS_SPAWN.length)]; // Random jail
|
final int[] randomJail = PRISONS_SPAWN[Rnd.get(PRISONS_SPAWN.length)]; // Random jail
|
||||||
player.teleToLocation(randomJail[0], randomJail[1], randomJail[2]);
|
player.teleToLocation(randomJail[0], randomJail[1], randomJail[2]);
|
||||||
world.broadcastPacket(new ExShowScreenMessage("$s1, locked away in the prison.".replace("$s1", player.getName()), 5000));
|
world.broadcastPacket(new ExShowScreenMessage("$s1, locked away in the prison.".replace("$s1", player.getName()), 5000));
|
||||||
break;
|
break;
|
||||||
@@ -209,7 +209,7 @@ public class BalokWarzone extends AbstractInstance
|
|||||||
{
|
{
|
||||||
for (int[] a : MINION_SPAWN)
|
for (int[] a : MINION_SPAWN)
|
||||||
{
|
{
|
||||||
Npc minion = addSpawn(MINION, a[0], a[1], a[2], a[3], false, 0, false, world.getId());
|
final Npc minion = addSpawn(MINION, a[0], a[1], a[2], a[3], false, 0, false, world.getId());
|
||||||
_minionList.add(minion);
|
_minionList.add(minion);
|
||||||
INVINCIBILITY_ACTIVATION.getSkill().applyEffects(minion, minion);
|
INVINCIBILITY_ACTIVATION.getSkill().applyEffects(minion, minion);
|
||||||
world.setStatus(2);
|
world.setStatus(2);
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ public class Lilith extends AbstractNpcAI
|
|||||||
randomSpawn = _spawns.get(Rnd.get(_spawns.size()));
|
randomSpawn = _spawns.get(Rnd.get(_spawns.size()));
|
||||||
if (randomSpawn != null)
|
if (randomSpawn != null)
|
||||||
{
|
{
|
||||||
Npc remnant = addSpawn(REMNANT, randomSpawn.getX(), randomSpawn.getY(), randomSpawn.getZ(), randomSpawn.getHeading(), true, 0, false, 0);
|
final Npc remnant = addSpawn(REMNANT, randomSpawn.getX(), randomSpawn.getY(), randomSpawn.getZ(), randomSpawn.getHeading(), true, 0, false, 0);
|
||||||
_remnants.add(remnant);
|
_remnants.add(remnant);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -452,13 +452,13 @@ public class Lilith extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "cancel_timers":
|
case "cancel_timers":
|
||||||
{
|
{
|
||||||
QuestTimer activityTimer = getQuestTimer("check_activity_task", null, null);
|
final QuestTimer activityTimer = getQuestTimer("check_activity_task", null, null);
|
||||||
if (activityTimer != null)
|
if (activityTimer != null)
|
||||||
{
|
{
|
||||||
activityTimer.cancel();
|
activityTimer.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
QuestTimer forceEnd = getQuestTimer("end_lilith", null, null);
|
final QuestTimer forceEnd = getQuestTimer("end_lilith", null, null);
|
||||||
if (forceEnd != null)
|
if (forceEnd != null)
|
||||||
{
|
{
|
||||||
forceEnd.cancel();
|
forceEnd.cancel();
|
||||||
@@ -604,7 +604,7 @@ public class Lilith extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
if (!BOSS_ZONE.isInsideZone(npc)) // Npc moved out of the zone
|
if (!BOSS_ZONE.isInsideZone(npc)) // Npc moved out of the zone
|
||||||
{
|
{
|
||||||
Spawn spawn = npc.getSpawn();
|
final Spawn spawn = npc.getSpawn();
|
||||||
if (spawn != null)
|
if (spawn != null)
|
||||||
{
|
{
|
||||||
npc.teleToLocation(spawn.getX(), spawn.getY(), spawn.getZ());
|
npc.teleToLocation(spawn.getX(), spawn.getY(), spawn.getZ());
|
||||||
@@ -677,13 +677,13 @@ public class Lilith extends AbstractNpcAI
|
|||||||
|
|
||||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||||
{
|
{
|
||||||
Calendar now = Calendar.getInstance();
|
final Calendar now = Calendar.getInstance();
|
||||||
Calendar day1 = (Calendar) now.clone();
|
final Calendar day1 = (Calendar) now.clone();
|
||||||
day1.set(Calendar.MINUTE, day1Minute);
|
day1.set(Calendar.MINUTE, day1Minute);
|
||||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||||
|
|
||||||
Calendar day2 = (Calendar) day1.clone();
|
final Calendar day2 = (Calendar) day1.clone();
|
||||||
day2.set(Calendar.MINUTE, day2Minute);
|
day2.set(Calendar.MINUTE, day2Minute);
|
||||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||||
|
|||||||
+5
-5
@@ -279,7 +279,7 @@ public class Lindvior extends AbstractNpcAI
|
|||||||
LOGGER.warning(getName() + ": Character: " + attacker.getName() + " attacked: " + npc.getName() + " wich is out of the boss zone!");
|
LOGGER.warning(getName() + ": Character: " + attacker.getName() + " attacked: " + npc.getName() + " wich is out of the boss zone!");
|
||||||
}
|
}
|
||||||
|
|
||||||
double percent = ((npc.getCurrentHp() - damage) / npc.getMaxHp()) * 100;
|
final double percent = ((npc.getCurrentHp() - damage) / npc.getMaxHp()) * 100;
|
||||||
if ((percent <= 80) && (_status == 0))
|
if ((percent <= 80) && (_status == 0))
|
||||||
{
|
{
|
||||||
_zoneLair.broadcastPacket(new OnEventTrigger(RED_ZONE_EFFECT, true));
|
_zoneLair.broadcastPacket(new OnEventTrigger(RED_ZONE_EFFECT, true));
|
||||||
@@ -466,7 +466,7 @@ public class Lindvior extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
synchronized (_chargedValues)
|
synchronized (_chargedValues)
|
||||||
{
|
{
|
||||||
int index = npc.getScriptValue();
|
final int index = npc.getScriptValue();
|
||||||
if (!hasFlag(_chargedMask, 1 << index))
|
if (!hasFlag(_chargedMask, 1 << index))
|
||||||
{
|
{
|
||||||
_chargedValues[index] += caster.isGM() ? (30 / 4) + 2 : (1 / 4) + 2;
|
_chargedValues[index] += caster.isGM() ? (30 / 4) + 2 : (1 / 4) + 2;
|
||||||
@@ -707,7 +707,7 @@ public class Lindvior extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
case "stage_1_activate_generator":
|
case "stage_1_activate_generator":
|
||||||
{
|
{
|
||||||
int index = npc.getScriptValue();
|
final int index = npc.getScriptValue();
|
||||||
if (!hasFlag(_activeMask, 1 << index))
|
if (!hasFlag(_activeMask, 1 << index))
|
||||||
{
|
{
|
||||||
_activeMask |= 1 << index;
|
_activeMask |= 1 << index;
|
||||||
@@ -740,7 +740,7 @@ public class Lindvior extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
_skillCastTask = ThreadPool.scheduleAtFixedRate(() -> _generatorSpawn.forEach(generators ->
|
_skillCastTask = ThreadPool.scheduleAtFixedRate(() -> _generatorSpawn.forEach(generators ->
|
||||||
{
|
{
|
||||||
int index = generators.getScriptValue();
|
final int index = generators.getScriptValue();
|
||||||
if (!generators.isCastingNow() && (generators.getEffectList().getBuffInfoBySkillId(SKILL_RECHARGE_POSIBLE.getSkillId()) == null) && !hasFlag(_chargedMask, 1 << index))
|
if (!generators.isCastingNow() && (generators.getEffectList().getBuffInfoBySkillId(SKILL_RECHARGE_POSIBLE.getSkillId()) == null) && !hasFlag(_chargedMask, 1 << index))
|
||||||
{
|
{
|
||||||
// TODO Need core implemented combo skill packet.
|
// TODO Need core implemented combo skill packet.
|
||||||
@@ -878,7 +878,7 @@ public class Lindvior extends AbstractNpcAI
|
|||||||
|
|
||||||
private void sendEventTrigger(boolean status, int... triggers)
|
private void sendEventTrigger(boolean status, int... triggers)
|
||||||
{
|
{
|
||||||
IClientOutgoingPacket[] pakets = new IClientOutgoingPacket[triggers.length];
|
final IClientOutgoingPacket[] pakets = new IClientOutgoingPacket[triggers.length];
|
||||||
for (int i = 0; i < triggers.length; i++)
|
for (int i = 0; i < triggers.length; i++)
|
||||||
{
|
{
|
||||||
pakets[i] = new OnEventTrigger(triggers[i], status);
|
pakets[i] = new OnEventTrigger(triggers[i], status);
|
||||||
|
|||||||
+1
-1
@@ -68,7 +68,7 @@ public class LindviorBoss extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||||
{
|
{
|
||||||
double percent = ((npc.getCurrentHp() - damage) / npc.getMaxHp()) * 100;
|
final double percent = ((npc.getCurrentHp() - damage) / npc.getMaxHp()) * 100;
|
||||||
final int chance = getRandom(100);
|
final int chance = getRandom(100);
|
||||||
switch (npc.getId())
|
switch (npc.getId())
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -296,7 +296,7 @@ public class Trasken extends AbstractNpcAI
|
|||||||
super();
|
super();
|
||||||
_zoneLair = ZoneManager.getInstance().getZoneById(ZONE_ID, NoSummonFriendZone.class);
|
_zoneLair = ZoneManager.getInstance().getZoneById(ZONE_ID, NoSummonFriendZone.class);
|
||||||
_zoneLair2 = ZoneManager.getInstance().getZoneById(ZONE_ID_HEART, NoSummonFriendZone.class);
|
_zoneLair2 = ZoneManager.getInstance().getZoneById(ZONE_ID_HEART, NoSummonFriendZone.class);
|
||||||
int[] creature = new int[]
|
final int[] creature = new int[]
|
||||||
{
|
{
|
||||||
TRASKEN,
|
TRASKEN,
|
||||||
TIE,
|
TIE,
|
||||||
@@ -344,7 +344,7 @@ public class Trasken extends AbstractNpcAI
|
|||||||
|
|
||||||
private void init()
|
private void init()
|
||||||
{
|
{
|
||||||
int size = _zoneLair.getPlayersInside().size();
|
final int size = _zoneLair.getPlayersInside().size();
|
||||||
if ((size >= 14) && (size <= 28))
|
if ((size >= 14) && (size <= 28))
|
||||||
{
|
{
|
||||||
_playersToEnter = 7;
|
_playersToEnter = 7;
|
||||||
|
|||||||
+2
-2
@@ -73,7 +73,7 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
|
|||||||
public boolean useBypass(String command, PlayerInstance player, Creature target)
|
public boolean useBypass(String command, PlayerInstance player, Creature target)
|
||||||
{
|
{
|
||||||
String cmd = "";
|
String cmd = "";
|
||||||
StringBuilder params = new StringBuilder();
|
final StringBuilder params = new StringBuilder();
|
||||||
final StringTokenizer st = new StringTokenizer(command, " ");
|
final StringTokenizer st = new StringTokenizer(command, " ");
|
||||||
|
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
@@ -130,7 +130,7 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
StringBuilder title = new StringBuilder();
|
final StringBuilder title = new StringBuilder();
|
||||||
title.append("BUFF SELL: ");
|
title.append("BUFF SELL: ");
|
||||||
final StringTokenizer st = new StringTokenizer(params, " ");
|
final StringTokenizer st = new StringTokenizer(params, " ");
|
||||||
while (st.hasMoreTokens())
|
while (st.hasMoreTokens())
|
||||||
|
|||||||
Vendored
+1
-1
@@ -65,7 +65,7 @@ public class RudolphsBlessing extends LongTimeEvent
|
|||||||
if (takeItems(player, ITEM_REQUIREMENT.getId(), ITEM_REQUIREMENT.getCount()))
|
if (takeItems(player, ITEM_REQUIREMENT.getId(), ITEM_REQUIREMENT.getCount()))
|
||||||
{
|
{
|
||||||
SkillCaster.triggerCast(player, player, RUDOLPH_TRYUCK.getSkill());
|
SkillCaster.triggerCast(player, player, RUDOLPH_TRYUCK.getSkill());
|
||||||
Skill rudolphsBlessing = SkillData.getInstance().getSkill(23297, 1);
|
final Skill rudolphsBlessing = SkillData.getInstance().getSkill(23297, 1);
|
||||||
rudolphsBlessing.applyEffects(player, player);
|
rudolphsBlessing.applyEffects(player, player);
|
||||||
}
|
}
|
||||||
startQuestTimer("rudolph_eat", 10 * 60 * 1000, null, player);
|
startQuestTimer("rudolph_eat", 10 * 60 * 1000, null, player);
|
||||||
|
|||||||
+18
-18
@@ -199,7 +199,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int result = pl.getEffectList().getBuffInfoBySkillId(23019).getSkill().getLevel() - skill.getLevel();
|
final int result = pl.getEffectList().getBuffInfoBySkillId(23019).getSkill().getLevel() - skill.getLevel();
|
||||||
|
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
@@ -216,7 +216,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
}
|
}
|
||||||
else if ((result == 1) || (result == -2))
|
else if ((result == 1) || (result == -2))
|
||||||
{
|
{
|
||||||
int level = (pl.isAffectedBySkill(23022) ? (pl.getEffectList().getBuffInfoBySkillId(23022).getSkill().getLevel() + 1) : 1);
|
final int level = (pl.isAffectedBySkill(23022) ? (pl.getEffectList().getBuffInfoBySkillId(23022).getSkill().getLevel() + 1) : 1);
|
||||||
pl.broadcastPacket(new MagicSkillUse(pl, pl, 23022, level, 3000, 1));
|
pl.broadcastPacket(new MagicSkillUse(pl, pl, 23022, level, 3000, 1));
|
||||||
SkillData.getInstance().getSkill(23022, level).applyEffects(pl, pl);
|
SkillData.getInstance().getSkill(23022, level).applyEffects(pl, pl);
|
||||||
|
|
||||||
@@ -324,7 +324,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
{
|
{
|
||||||
if (_rewardedPlayers.containsKey(pl.getAccountName()))
|
if (_rewardedPlayers.containsKey(pl.getAccountName()))
|
||||||
{
|
{
|
||||||
long elapsedTimeSinceLastRewarded = System.currentTimeMillis() - _rewardedPlayers.get(pl.getAccountName());
|
final long elapsedTimeSinceLastRewarded = System.currentTimeMillis() - _rewardedPlayers.get(pl.getAccountName());
|
||||||
if (elapsedTimeSinceLastRewarded < MIN_TIME_BETWEEN_2_REWARDS)
|
if (elapsedTimeSinceLastRewarded < MIN_TIME_BETWEEN_2_REWARDS)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@@ -339,10 +339,10 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int locx = (int) (pl.getX() + (Math.pow(-1, getRandom(1, 2)) * 50));
|
final int locx = (int) (pl.getX() + (Math.pow(-1, getRandom(1, 2)) * 50));
|
||||||
int locy = (int) (pl.getY() + (Math.pow(-1, getRandom(1, 2)) * 50));
|
final int locy = (int) (pl.getY() + (Math.pow(-1, getRandom(1, 2)) * 50));
|
||||||
int heading = Util.calculateHeadingFrom(locx, locy, pl.getX(), pl.getY());
|
final int heading = Util.calculateHeadingFrom(locx, locy, pl.getX(), pl.getY());
|
||||||
Npc santa = addSpawn(HOLIDAY_SANTA_ID, locx, locy, pl.getZ(), heading, false, 30000);
|
final Npc santa = addSpawn(HOLIDAY_SANTA_ID, locx, locy, pl.getZ(), heading, false, 30000);
|
||||||
_rewardedPlayers.put(pl.getAccountName(), System.currentTimeMillis());
|
_rewardedPlayers.put(pl.getAccountName(), System.currentTimeMillis());
|
||||||
player.getVariables().set("LAST_SANTA_REWARD", System.currentTimeMillis());
|
player.getVariables().set("LAST_SANTA_REWARD", System.currentTimeMillis());
|
||||||
startQuestTimer("SantaRewarding0", 500, santa, pl);
|
startQuestTimer("SantaRewarding0", 500, santa, pl);
|
||||||
@@ -446,7 +446,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
{
|
{
|
||||||
if (_blessedPlayers.containsKey(plb.getAccountName()))
|
if (_blessedPlayers.containsKey(plb.getAccountName()))
|
||||||
{
|
{
|
||||||
long elapsedTimeSinceLastBlessed = currentTime - _blessedPlayers.get(plb.getAccountName());
|
final long elapsedTimeSinceLastBlessed = currentTime - _blessedPlayers.get(plb.getAccountName());
|
||||||
if (elapsedTimeSinceLastBlessed < MIN_TIME_BETWEEN_2_BLESSINGS)
|
if (elapsedTimeSinceLastBlessed < MIN_TIME_BETWEEN_2_BLESSINGS)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@@ -504,12 +504,12 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
{
|
{
|
||||||
for (PlayerInstance playerr : World.getInstance().getVisibleObjects(tree, PlayerInstance.class))
|
for (PlayerInstance playerr : World.getInstance().getVisibleObjects(tree, PlayerInstance.class))
|
||||||
{
|
{
|
||||||
int xxMin = tree.getX() - 60;
|
final int xxMin = tree.getX() - 60;
|
||||||
int yyMin = tree.getY() - 60;
|
final int yyMin = tree.getY() - 60;
|
||||||
int xxMax = tree.getX() + 60;
|
final int xxMax = tree.getX() + 60;
|
||||||
int yyMax = tree.getY() + 60;
|
final int yyMax = tree.getY() + 60;
|
||||||
int playerX = playerr.getX();
|
final int playerX = playerr.getX();
|
||||||
int playerY = playerr.getY();
|
final int playerY = playerr.getY();
|
||||||
|
|
||||||
if ((playerX > xxMin) && (playerX < xxMax) && (playerY > yyMin) && (playerY < yyMax))
|
if ((playerX > xxMin) && (playerX < xxMax) && (playerY > yyMin) && (playerY < yyMax))
|
||||||
{
|
{
|
||||||
@@ -528,7 +528,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
|
|
||||||
for (ItemHolder item : TREE_REQUIRED_ITEMS)
|
for (ItemHolder item : TREE_REQUIRED_ITEMS)
|
||||||
{
|
{
|
||||||
long pieceCount = player.getInventory().getInventoryItemCount(item.getId(), -1);
|
final long pieceCount = player.getInventory().getInventoryItemCount(item.getId(), -1);
|
||||||
if (pieceCount >= item.getCount())
|
if (pieceCount >= item.getCount())
|
||||||
{
|
{
|
||||||
itemsOk = itemsOk + 1;
|
itemsOk = itemsOk + 1;
|
||||||
@@ -573,7 +573,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
else if (event.equalsIgnoreCase("SpecialTree"))
|
else if (event.equalsIgnoreCase("SpecialTree"))
|
||||||
{
|
{
|
||||||
htmltext = "<html><title>Christmas Event</title><body><br><br><table width=260><tr><td></td><td width=40></td><td width=40></td></tr><tr><td><font color=LEVEL>Special Christmas Tree</font></td><td width=40><img src=\"Icon.etc_x_mas_tree_i00\" width=32 height=32></td><td width=40></td></tr></table><br><br><table width=260>";
|
htmltext = "<html><title>Christmas Event</title><body><br><br><table width=260><tr><td></td><td width=40></td><td width=40></td></tr><tr><td><font color=LEVEL>Special Christmas Tree</font></td><td width=40><img src=\"Icon.etc_x_mas_tree_i00\" width=32 height=32></td><td width=40></td></tr></table><br><br><table width=260>";
|
||||||
long pieceCount = player.getInventory().getInventoryItemCount(X_MAS_TREE1, -1);
|
final long pieceCount = player.getInventory().getInventoryItemCount(X_MAS_TREE1, -1);
|
||||||
int itemsOk = 0;
|
int itemsOk = 0;
|
||||||
|
|
||||||
if (pieceCount >= 10)
|
if (pieceCount >= 10)
|
||||||
@@ -613,7 +613,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
else if (event.equalsIgnoreCase("SantaHat"))
|
else if (event.equalsIgnoreCase("SantaHat"))
|
||||||
{
|
{
|
||||||
htmltext = "<html><title>Christmas Event</title><body><br><br><table width=260><tr><td></td><td width=40></td><td width=40></td></tr><tr><td><font color=LEVEL>Santa's Hat</font></td><td width=40><img src=\"Icon.Accessory_santas_cap_i00\" width=32 height=32></td><td width=40></td></tr></table><br><br><table width=260>";
|
htmltext = "<html><title>Christmas Event</title><body><br><br><table width=260><tr><td></td><td width=40></td><td width=40></td></tr><tr><td><font color=LEVEL>Santa's Hat</font></td><td width=40><img src=\"Icon.Accessory_santas_cap_i00\" width=32 height=32></td><td width=40></td></tr></table><br><br><table width=260>";
|
||||||
long pieceCount = player.getInventory().getInventoryItemCount(X_MAS_TREE1, -1);
|
final long pieceCount = player.getInventory().getInventoryItemCount(X_MAS_TREE1, -1);
|
||||||
int itemsOk = 0;
|
int itemsOk = 0;
|
||||||
|
|
||||||
if (pieceCount >= 10)
|
if (pieceCount >= 10)
|
||||||
@@ -651,7 +651,7 @@ public class SavingSanta extends LongTimeEvent
|
|||||||
else if (event.equalsIgnoreCase("SavingSantaHat"))
|
else if (event.equalsIgnoreCase("SavingSantaHat"))
|
||||||
{
|
{
|
||||||
htmltext = "<html><title>Christmas Event</title><body><br><br><table width=260><tr><td></td><td width=40></td><td width=40></td></tr><tr><td><font color=LEVEL>Saving Santa's Hat</font></td><td width=40><img src=\"Icon.Accessory_santas_cap_i00\" width=32 height=32></td><td width=40></td></tr></table><br><br><table width=260>";
|
htmltext = "<html><title>Christmas Event</title><body><br><br><table width=260><tr><td></td><td width=40></td><td width=40></td></tr><tr><td><font color=LEVEL>Saving Santa's Hat</font></td><td width=40><img src=\"Icon.Accessory_santas_cap_i00\" width=32 height=32></td><td width=40></td></tr></table><br><br><table width=260>";
|
||||||
long pieceCount = player.getInventory().getAdena();
|
final long pieceCount = player.getInventory().getAdena();
|
||||||
int itemsOk = 0;
|
int itemsOk = 0;
|
||||||
|
|
||||||
if (pieceCount >= 50000)
|
if (pieceCount >= 50000)
|
||||||
|
|||||||
+2
-2
@@ -86,9 +86,9 @@ public class SkillTransfer extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int pomanderId = PORMANDERS[index].getId();
|
final int pomanderId = PORMANDERS[index].getId();
|
||||||
// remove unsused HolyPomander
|
// remove unsused HolyPomander
|
||||||
PlayerInventory inv = player.getInventory();
|
final PlayerInventory inv = player.getInventory();
|
||||||
for (ItemInstance itemI : inv.getAllItemsByItemId(pomanderId))
|
for (ItemInstance itemI : inv.getAllItemsByItemId(pomanderId))
|
||||||
{
|
{
|
||||||
inv.destroyItem("[HolyPomander - remove]", itemI, player, null);
|
inv.destroyItem("[HolyPomander - remove]", itemI, player, null);
|
||||||
|
|||||||
@@ -730,7 +730,6 @@ public class MasterHandler
|
|||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.WARNING, "Failed loading handler: " + c.getSimpleName(), e);
|
LOGGER.log(Level.WARNING, "Failed loading handler: " + c.getSimpleName(), e);
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+4
-2
@@ -176,9 +176,9 @@ public class AdminBuffs implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
StringTokenizer st = new StringTokenizer(command, " ");
|
final StringTokenizer st = new StringTokenizer(command, " ");
|
||||||
st.nextToken();
|
st.nextToken();
|
||||||
int objectId = Integer.parseInt(st.nextToken());
|
final int objectId = Integer.parseInt(st.nextToken());
|
||||||
viewBlockedEffects(activeChar, objectId);
|
viewBlockedEffects(activeChar, objectId);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -362,6 +362,7 @@ public class AdminBuffs implements IAdminCommandHandler
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
// Checked bellow.
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((target != null) && (skillId > 0))
|
if ((target != null) && (skillId > 0))
|
||||||
@@ -389,6 +390,7 @@ public class AdminBuffs implements IAdminCommandHandler
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
// Checked bellow.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target != null)
|
if (target != null)
|
||||||
|
|||||||
Vendored
+1
-1
@@ -120,7 +120,7 @@ public class AdminInstanceZone implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
int hours = 0;
|
int hours = 0;
|
||||||
int minutes = 0;
|
int minutes = 0;
|
||||||
int id = entry.getKey();
|
final int id = entry.getKey();
|
||||||
final long remainingTime = (entry.getValue() - System.currentTimeMillis()) / 1000;
|
final long remainingTime = (entry.getValue() - System.currentTimeMillis()) / 1000;
|
||||||
if (remainingTime > 0)
|
if (remainingTime > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -30,8 +30,8 @@ import org.l2jmobius.gameserver.network.SystemMessageId;
|
|||||||
import org.l2jmobius.gameserver.util.BuilderUtil;
|
import org.l2jmobius.gameserver.util.BuilderUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class handles following admin commands: - kill = kills target Creature - kill_monster = kills target non-player - kill <radius> = If radius is specified, then ALL players only in that radius will be killed. - kill_monster <radius> = If radius is specified, then ALL non-players only in
|
* This class handles following admin commands: - kill = kills target Creature - kill_monster = kills target non-player - kill <radius> = If radius is specified, then ALL players only in that radius will be killed. - kill_monster <radius> = If radius is specified, then ALL non-players only in that
|
||||||
* that radius will be killed.
|
* radius will be killed.
|
||||||
* @version $Revision: 1.2.4.5 $ $Date: 2007/07/31 10:06:06 $
|
* @version $Revision: 1.2.4.5 $ $Date: 2007/07/31 10:06:06 $
|
||||||
*/
|
*/
|
||||||
public class AdminKill implements IAdminCommandHandler
|
public class AdminKill implements IAdminCommandHandler
|
||||||
|
|||||||
Vendored
+2
-2
@@ -316,7 +316,7 @@ public class AdminQuest implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (n.isDirectory())
|
if (n.isDirectory())
|
||||||
{
|
{
|
||||||
sb.append("<a action=\"bypass -h admin_script_dir " + c + "\">" + c + "</a><br1>");
|
sb.append("<a action=\"bypass -h admin_script_dir " + c + "\">" + c + "</a><br1>");
|
||||||
}
|
}
|
||||||
@@ -348,7 +348,7 @@ public class AdminQuest implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (n.isDirectory())
|
if (n.isDirectory())
|
||||||
{
|
{
|
||||||
sb.append("<a action=\"bypass -h admin_script_dir " + currentPath + "/" + c + "\">" + (questReducedNames ? getQuestName(c) : c) + "</a><br1>");
|
sb.append("<a action=\"bypass -h admin_script_dir " + currentPath + "/" + c + "\">" + (questReducedNames ? getQuestName(c) : c) + "</a><br1>");
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -69,7 +69,7 @@ public class AdminShop implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int listId = Integer.parseInt(command.substring(16).trim());
|
final int listId = Integer.parseInt(command.substring(16).trim());
|
||||||
MultisellData.getInstance().separateAndSend(listId, activeChar, null, false);
|
MultisellData.getInstance().separateAndSend(listId, activeChar, null, false);
|
||||||
}
|
}
|
||||||
catch (NumberFormatException | IndexOutOfBoundsException e)
|
catch (NumberFormatException | IndexOutOfBoundsException e)
|
||||||
@@ -81,7 +81,7 @@ public class AdminShop implements IAdminCommandHandler
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int listId = Integer.parseInt(command.substring(20).trim());
|
final int listId = Integer.parseInt(command.substring(20).trim());
|
||||||
MultisellData.getInstance().separateAndSend(listId, activeChar, null, true);
|
MultisellData.getInstance().separateAndSend(listId, activeChar, null, true);
|
||||||
}
|
}
|
||||||
catch (NumberFormatException | IndexOutOfBoundsException e)
|
catch (NumberFormatException | IndexOutOfBoundsException e)
|
||||||
|
|||||||
Vendored
+2
@@ -101,6 +101,7 @@ public class AdminSkill implements IAdminCommandHandler
|
|||||||
}
|
}
|
||||||
catch (StringIndexOutOfBoundsException e)
|
catch (StringIndexOutOfBoundsException e)
|
||||||
{
|
{
|
||||||
|
// Not important.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (command.startsWith("admin_skill_list"))
|
else if (command.startsWith("admin_skill_list"))
|
||||||
@@ -116,6 +117,7 @@ public class AdminSkill implements IAdminCommandHandler
|
|||||||
}
|
}
|
||||||
catch (StringIndexOutOfBoundsException e)
|
catch (StringIndexOutOfBoundsException e)
|
||||||
{
|
{
|
||||||
|
// Not important.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (command.startsWith("admin_add_skill"))
|
else if (command.startsWith("admin_add_skill"))
|
||||||
|
|||||||
+1
-1
@@ -84,7 +84,7 @@ public class FindPvP implements IBypassHandler
|
|||||||
// Check if the player's clan is already outnumbering the PvP
|
// Check if the player's clan is already outnumbering the PvP
|
||||||
if (player.getClan() != null)
|
if (player.getClan() != null)
|
||||||
{
|
{
|
||||||
Map<Integer, Integer> clanNumbers = new HashMap<>();
|
final Map<Integer, Integer> clanNumbers = new HashMap<>();
|
||||||
int allyId = player.getAllyId();
|
int allyId = player.getAllyId();
|
||||||
if (allyId == 0)
|
if (allyId == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -33,7 +33,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ExItemAuctionInfoPacket;
|
|||||||
|
|
||||||
public class ItemAuctionLink implements IBypassHandler
|
public class ItemAuctionLink implements IBypassHandler
|
||||||
{
|
{
|
||||||
private static final SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss dd.MM.yyyy");
|
private static final SimpleDateFormat SDF = new SimpleDateFormat("HH:mm:ss dd.MM.yyyy");
|
||||||
|
|
||||||
private static final String[] COMMANDS =
|
private static final String[] COMMANDS =
|
||||||
{
|
{
|
||||||
@@ -91,7 +91,7 @@ public class ItemAuctionLink implements IBypassHandler
|
|||||||
|
|
||||||
if (nextAuction != null)
|
if (nextAuction != null)
|
||||||
{
|
{
|
||||||
player.sendMessage("The next auction will begin on the " + fmt.format(new Date(nextAuction.getStartingTime())) + ".");
|
player.sendMessage("The next auction will begin on the " + SDF.format(new Date(nextAuction.getStartingTime())) + ".");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -408,7 +408,7 @@ public class NpcViewMod implements IBypassHandler
|
|||||||
{
|
{
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
int height = 64;
|
final int height = 64;
|
||||||
final DropHolder dropItem = dropList.get(i);
|
final DropHolder dropItem = dropList.get(i);
|
||||||
final Item item = ItemTable.getInstance().getTemplate(dropItem.getItemId());
|
final Item item = ItemTable.getInstance().getTemplate(dropItem.getItemId());
|
||||||
|
|
||||||
|
|||||||
+1
-4
@@ -38,9 +38,7 @@ public class ChatPartyRoomAll implements IChatHandler
|
|||||||
@Override
|
@Override
|
||||||
public void handleChat(ChatType type, PlayerInstance activeChar, String target, String text)
|
public void handleChat(ChatType type, PlayerInstance activeChar, String target, String text)
|
||||||
{
|
{
|
||||||
if (activeChar.isInParty())
|
if (activeChar.isInParty() && activeChar.getParty().isInCommandChannel() && activeChar.getParty().isLeader(activeChar))
|
||||||
{
|
|
||||||
if (activeChar.getParty().isInCommandChannel() && activeChar.getParty().isLeader(activeChar))
|
|
||||||
{
|
{
|
||||||
if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
|
if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
|
||||||
{
|
{
|
||||||
@@ -55,7 +53,6 @@ public class ChatPartyRoomAll implements IChatHandler
|
|||||||
activeChar.getParty().getCommandChannel().broadcastCreatureSay(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
|
activeChar.getParty().getCommandChannel().broadcastCreatureSay(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChatType[] getChatTypeList()
|
public ChatType[] getChatTypeList()
|
||||||
|
|||||||
Vendored
+1
-4
@@ -38,9 +38,7 @@ public class ChatPartyRoomCommander implements IChatHandler
|
|||||||
@Override
|
@Override
|
||||||
public void handleChat(ChatType type, PlayerInstance activeChar, String target, String text)
|
public void handleChat(ChatType type, PlayerInstance activeChar, String target, String text)
|
||||||
{
|
{
|
||||||
if (activeChar.isInParty())
|
if (activeChar.isInParty() && activeChar.getParty().isInCommandChannel() && activeChar.getParty().getCommandChannel().getLeader().equals(activeChar))
|
||||||
{
|
|
||||||
if (activeChar.getParty().isInCommandChannel() && activeChar.getParty().getCommandChannel().getLeader().equals(activeChar))
|
|
||||||
{
|
{
|
||||||
if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
|
if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
|
||||||
{
|
{
|
||||||
@@ -55,7 +53,6 @@ public class ChatPartyRoomCommander implements IChatHandler
|
|||||||
activeChar.getParty().getCommandChannel().broadcastCreatureSay(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
|
activeChar.getParty().getCommandChannel().broadcastCreatureSay(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChatType[] getChatTypeList()
|
public ChatType[] getChatTypeList()
|
||||||
|
|||||||
+16
-16
@@ -143,38 +143,38 @@ public class DropSearchBoard implements IParseBoardHandler
|
|||||||
public boolean parseCommunityBoardCommand(String command, PlayerInstance player)
|
public boolean parseCommunityBoardCommand(String command, PlayerInstance player)
|
||||||
{
|
{
|
||||||
final String navigation = HtmCache.getInstance().getHtm(player, NAVIGATION_PATH);
|
final String navigation = HtmCache.getInstance().getHtm(player, NAVIGATION_PATH);
|
||||||
String[] params = command.split(" ");
|
final String[] params = command.split(" ");
|
||||||
String html = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/dropsearch/main.html");
|
String html = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/dropsearch/main.html");
|
||||||
switch (params[0])
|
switch (params[0])
|
||||||
{
|
{
|
||||||
case "_bbs_search_item":
|
case "_bbs_search_item":
|
||||||
{
|
{
|
||||||
String itemName = buildItemName(params);
|
final String itemName = buildItemName(params);
|
||||||
String result = buildItemSearchResult(itemName);
|
final String result = buildItemSearchResult(itemName);
|
||||||
html = html.replace("%searchResult%", result);
|
html = html.replace("%searchResult%", result);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "_bbs_search_drop":
|
case "_bbs_search_drop":
|
||||||
{
|
{
|
||||||
final DecimalFormat chanceFormat = new DecimalFormat("0.00##");
|
final DecimalFormat chanceFormat = new DecimalFormat("0.00##");
|
||||||
int itemId = Integer.parseInt(params[1]);
|
final int itemId = Integer.parseInt(params[1]);
|
||||||
int page = Integer.parseInt(params[2]);
|
int page = Integer.parseInt(params[2]);
|
||||||
List<CBDropHolder> list = DROP_INDEX_CACHE.get(itemId);
|
final List<CBDropHolder> list = DROP_INDEX_CACHE.get(itemId);
|
||||||
int pages = list.size() / 14;
|
int pages = list.size() / 14;
|
||||||
if (pages == 0)
|
if (pages == 0)
|
||||||
{
|
{
|
||||||
pages++;
|
pages++;
|
||||||
}
|
}
|
||||||
|
|
||||||
int start = (page - 1) * 14;
|
final int start = (page - 1) * 14;
|
||||||
int end = Math.min(list.size() - 1, start + 14);
|
final int end = Math.min(list.size() - 1, start + 14);
|
||||||
StringBuilder builder = new StringBuilder();
|
final StringBuilder builder = new StringBuilder();
|
||||||
final double dropAmountEffectBonus = player.getStat().getValue(Stats.BONUS_DROP_AMOUNT, 1);
|
final double dropAmountEffectBonus = player.getStat().getValue(Stats.BONUS_DROP_AMOUNT, 1);
|
||||||
final double dropRateEffectBonus = player.getStat().getValue(Stats.BONUS_DROP_RATE, 1);
|
final double dropRateEffectBonus = player.getStat().getValue(Stats.BONUS_DROP_RATE, 1);
|
||||||
final double spoilRateEffectBonus = player.getStat().getValue(Stats.BONUS_SPOIL_RATE, 1);
|
final double spoilRateEffectBonus = player.getStat().getValue(Stats.BONUS_SPOIL_RATE, 1);
|
||||||
for (int index = start; index <= end; index++)
|
for (int index = start; index <= end; index++)
|
||||||
{
|
{
|
||||||
CBDropHolder cbDropHolder = list.get(index);
|
final CBDropHolder cbDropHolder = list.get(index);
|
||||||
|
|
||||||
// real time server rate calculations
|
// real time server rate calculations
|
||||||
double rateChance = 1;
|
double rateChance = 1;
|
||||||
@@ -299,15 +299,15 @@ public class DropSearchBoard implements IParseBoardHandler
|
|||||||
}
|
}
|
||||||
case "_bbs_npc_trace":
|
case "_bbs_npc_trace":
|
||||||
{
|
{
|
||||||
int npcId = Integer.parseInt(params[1]);
|
final int npcId = Integer.parseInt(params[1]);
|
||||||
List<NpcSpawnTemplate> spawnList = SpawnsData.getInstance().getNpcSpawns(npc -> npc.getId() == npcId);
|
final List<NpcSpawnTemplate> spawnList = SpawnsData.getInstance().getNpcSpawns(npc -> npc.getId() == npcId);
|
||||||
if (spawnList.isEmpty())
|
if (spawnList.isEmpty())
|
||||||
{
|
{
|
||||||
player.sendMessage("Cannot find any spawn. Maybe dropped by a boss or instance monster.");
|
player.sendMessage("Cannot find any spawn. Maybe dropped by a boss or instance monster.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
NpcSpawnTemplate spawn = spawnList.get(Rnd.get(spawnList.size()));
|
final NpcSpawnTemplate spawn = spawnList.get(Rnd.get(spawnList.size()));
|
||||||
player.getRadar().addMarker(spawn.getSpawnLocation().getX(), spawn.getSpawnLocation().getY(), spawn.getSpawnLocation().getZ());
|
player.getRadar().addMarker(spawn.getSpawnLocation().getX(), spawn.getSpawnLocation().getY(), spawn.getSpawnLocation().getZ());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -330,8 +330,8 @@ public class DropSearchBoard implements IParseBoardHandler
|
|||||||
private String buildItemSearchResult(String itemName)
|
private String buildItemSearchResult(String itemName)
|
||||||
{
|
{
|
||||||
int limit = 0;
|
int limit = 0;
|
||||||
Set<Integer> existInDropData = DROP_INDEX_CACHE.keySet();
|
final Set<Integer> existInDropData = DROP_INDEX_CACHE.keySet();
|
||||||
List<Item> items = new ArrayList<>();
|
final List<Item> items = new ArrayList<>();
|
||||||
for (Item item : ItemTable.getInstance().getAllItems())
|
for (Item item : ItemTable.getInstance().getAllItems())
|
||||||
{
|
{
|
||||||
if (item == null)
|
if (item == null)
|
||||||
@@ -363,7 +363,7 @@ public class DropSearchBoard implements IParseBoardHandler
|
|||||||
|
|
||||||
int line = 0;
|
int line = 0;
|
||||||
|
|
||||||
StringBuilder builder = new StringBuilder(items.size() * 28);
|
final StringBuilder builder = new StringBuilder(items.size() * 28);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (Item item : items)
|
for (Item item : items)
|
||||||
{
|
{
|
||||||
@@ -416,7 +416,7 @@ public class DropSearchBoard implements IParseBoardHandler
|
|||||||
*/
|
*/
|
||||||
private String buildItemName(String[] params)
|
private String buildItemName(String[] params)
|
||||||
{
|
{
|
||||||
StringJoiner joiner = new StringJoiner(" ");
|
final StringJoiner joiner = new StringJoiner(" ");
|
||||||
for (int i = 1; i < params.length; i++)
|
for (int i = 1; i < params.length; i++)
|
||||||
{
|
{
|
||||||
joiner.add(params[i]);
|
joiner.add(params[i]);
|
||||||
|
|||||||
+2
-2
@@ -102,7 +102,7 @@ public class HomeBoard implements IParseBoardHandler
|
|||||||
@Override
|
@Override
|
||||||
public String[] getCommunityBoardCommands()
|
public String[] getCommunityBoardCommands()
|
||||||
{
|
{
|
||||||
List<String> commands = new ArrayList<>();
|
final List<String> commands = new ArrayList<>();
|
||||||
commands.addAll(Arrays.asList(COMMANDS));
|
commands.addAll(Arrays.asList(COMMANDS));
|
||||||
commands.addAll(Arrays.asList(CUSTOM_COMMANDS));
|
commands.addAll(Arrays.asList(CUSTOM_COMMANDS));
|
||||||
return commands.stream().filter(Objects::nonNull).toArray(String[]::new);
|
return commands.stream().filter(Objects::nonNull).toArray(String[]::new);
|
||||||
@@ -204,7 +204,7 @@ public class HomeBoard implements IParseBoardHandler
|
|||||||
{
|
{
|
||||||
player.destroyItemByItemId("CB_Buff", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_BUFF_PRICE * buffCount, player, true);
|
player.destroyItemByItemId("CB_Buff", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_BUFF_PRICE * buffCount, player, true);
|
||||||
final PetInstance pet = player.getPet();
|
final PetInstance pet = player.getPet();
|
||||||
List<Creature> targets = new ArrayList<>(4);
|
final List<Creature> targets = new ArrayList<>(4);
|
||||||
targets.add(player);
|
targets.add(player);
|
||||||
if (pet != null)
|
if (pet != null)
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ public class DisableSkill extends AbstractEffect
|
|||||||
|
|
||||||
public DisableSkill(StatsSet params)
|
public DisableSkill(StatsSet params)
|
||||||
{
|
{
|
||||||
String disable = params.getString("disable");
|
final String disable = params.getString("disable");
|
||||||
if ((disable != null) && !disable.isEmpty())
|
if ((disable != null) && !disable.isEmpty())
|
||||||
{
|
{
|
||||||
disableSkills = new HashSet<>();
|
disableSkills = new HashSet<>();
|
||||||
|
|||||||
Vendored
+1
-1
@@ -38,7 +38,7 @@ public class DispelBySlotMyself extends AbstractEffect
|
|||||||
|
|
||||||
public DispelBySlotMyself(StatsSet params)
|
public DispelBySlotMyself(StatsSet params)
|
||||||
{
|
{
|
||||||
String dispel = params.getString("dispel");
|
final String dispel = params.getString("dispel");
|
||||||
if ((dispel != null) && !dispel.isEmpty())
|
if ((dispel != null) && !dispel.isEmpty())
|
||||||
{
|
{
|
||||||
_dispelAbnormals = new HashSet<>();
|
_dispelAbnormals = new HashSet<>();
|
||||||
|
|||||||
+1
-1
@@ -51,7 +51,7 @@ public class FatalBlow extends AbstractEffect
|
|||||||
_criticalChance = params.getDouble("criticalChance", 0);
|
_criticalChance = params.getDouble("criticalChance", 0);
|
||||||
_overHit = params.getBoolean("overHit", false);
|
_overHit = params.getBoolean("overHit", false);
|
||||||
|
|
||||||
String abnormals = params.getString("abnormalType", null);
|
final String abnormals = params.getString("abnormalType", null);
|
||||||
if ((abnormals != null) && !abnormals.isEmpty())
|
if ((abnormals != null) && !abnormals.isEmpty())
|
||||||
{
|
{
|
||||||
_abnormals = new HashSet<>();
|
_abnormals = new HashSet<>();
|
||||||
|
|||||||
+1
-1
@@ -87,7 +87,7 @@ public class RebalanceHP extends AbstractEffect
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double percentHP = currentHPs / fullHP;
|
final double percentHP = currentHPs / fullHP;
|
||||||
for (PlayerInstance member : party.getMembers())
|
for (PlayerInstance member : party.getMembers())
|
||||||
{
|
{
|
||||||
if (!member.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, member, true))
|
if (!member.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, member, true))
|
||||||
|
|||||||
Vendored
+1
-1
@@ -70,7 +70,7 @@ public class RebalanceHPSummon extends AbstractEffect
|
|||||||
fullHP += effector.getMaxHp();
|
fullHP += effector.getMaxHp();
|
||||||
currentHPs += effector.getCurrentHp();
|
currentHPs += effector.getCurrentHp();
|
||||||
|
|
||||||
double percentHP = currentHPs / fullHP;
|
final double percentHP = currentHPs / fullHP;
|
||||||
for (Summon summon : effector.getServitors().values())
|
for (Summon summon : effector.getServitors().values())
|
||||||
{
|
{
|
||||||
if (!summon.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true))
|
if (!summon.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true))
|
||||||
|
|||||||
Vendored
+1
-1
@@ -109,7 +109,7 @@ public class RestorationRandom extends AbstractEffect
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
long itemCount = (long) (createdItem.getCount() * Config.RATE_EXTRACTABLE);
|
final long itemCount = (long) (createdItem.getCount() * Config.RATE_EXTRACTABLE);
|
||||||
final ItemInstance newItem = player.addItem("Extract", createdItem.getId(), itemCount, effector, false);
|
final ItemInstance newItem = player.addItem("Extract", createdItem.getId(), itemCount, effector, false);
|
||||||
|
|
||||||
if (createdItem.getMaxEnchant() > 0)
|
if (createdItem.getMaxEnchant() > 0)
|
||||||
|
|||||||
+2
-2
@@ -279,7 +279,7 @@ public class AltarOfShilen extends AbstractInstance
|
|||||||
final Instance world = npc.getInstanceWorld();
|
final Instance world = npc.getInstanceWorld();
|
||||||
if (world != null)
|
if (world != null)
|
||||||
{
|
{
|
||||||
int npcId = npc.getId();
|
final int npcId = npc.getId();
|
||||||
if (!killedMonsters.containsKey(npcId))
|
if (!killedMonsters.containsKey(npcId))
|
||||||
{
|
{
|
||||||
killedMonsters.put(npcId, 1);
|
killedMonsters.put(npcId, 1);
|
||||||
@@ -412,7 +412,7 @@ public class AltarOfShilen extends AbstractInstance
|
|||||||
public String onFirstTalk(Npc npc, PlayerInstance player)
|
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||||
{
|
{
|
||||||
final Instance world = npc.getInstanceWorld();
|
final Instance world = npc.getInstanceWorld();
|
||||||
String htmltext = null;
|
final String htmltext = null;
|
||||||
if (isInInstance(world))
|
if (isInInstance(world))
|
||||||
{
|
{
|
||||||
switch (npc.getId())
|
switch (npc.getId())
|
||||||
|
|||||||
+2
-2
@@ -103,13 +103,13 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
|
|||||||
{
|
{
|
||||||
case "HP_REGEN_TIMER":
|
case "HP_REGEN_TIMER":
|
||||||
{
|
{
|
||||||
int value = ((baseId == 5) || (baseId == 6)) ? 5 : baseId;
|
final int value = ((baseId == 5) || (baseId == 6)) ? 5 : baseId;
|
||||||
npc.getStat().addFixedValue(Stats.REGENERATE_HP_RATE, Double.valueOf(value * 1000));
|
npc.getStat().addFixedValue(Stats.REGENERATE_HP_RATE, Double.valueOf(value * 1000));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SUPPORT_SPAWN_TIMER":
|
case "SUPPORT_SPAWN_TIMER":
|
||||||
{
|
{
|
||||||
int supportVal = npcVars.getInt("SUPPORT_VALUE", 0);
|
final int supportVal = npcVars.getInt("SUPPORT_VALUE", 0);
|
||||||
|
|
||||||
if (supportVal > 3)
|
if (supportVal > 3)
|
||||||
{
|
{
|
||||||
|
|||||||
Vendored
+3
-3
@@ -166,7 +166,7 @@ public class KartiaHelperElise extends AbstractNpcAI
|
|||||||
final Map<WorldObject, Integer> hpMap = new HashMap<>();
|
final Map<WorldObject, Integer> hpMap = new HashMap<>();
|
||||||
instance.getAliveNpcs(KARTIA_FRIENDS).forEach(friend -> hpMap.put(friend, friend != null ? friend.getCurrentHpPercent() : 100));
|
instance.getAliveNpcs(KARTIA_FRIENDS).forEach(friend -> hpMap.put(friend, friend != null ? friend.getCurrentHpPercent() : 100));
|
||||||
hpMap.put(plr, plr != null ? plr.getCurrentHpPercent() : 100);
|
hpMap.put(plr, plr != null ? plr.getCurrentHpPercent() : 100);
|
||||||
Map<WorldObject, Integer> sortedHpMap = Util.sortByValue(hpMap, false);
|
final Map<WorldObject, Integer> sortedHpMap = Util.sortByValue(hpMap, false);
|
||||||
|
|
||||||
// See if any friends are below 80% HP and add to list of people to heal.
|
// See if any friends are below 80% HP and add to list of people to heal.
|
||||||
final List<WorldObject> peopleToHeal = new ArrayList<>();
|
final List<WorldObject> peopleToHeal = new ArrayList<>();
|
||||||
@@ -195,12 +195,12 @@ public class KartiaHelperElise extends AbstractNpcAI
|
|||||||
{
|
{
|
||||||
if (personToHeal.getInstanceType() == InstanceType.PlayerInstance)
|
if (personToHeal.getInstanceType() == InstanceType.PlayerInstance)
|
||||||
{
|
{
|
||||||
PlayerInstance thePlayer = (PlayerInstance) personToHeal;
|
final PlayerInstance thePlayer = (PlayerInstance) personToHeal;
|
||||||
thePlayer.setCurrentHp((thePlayer.getMaxHp() * .20) + thePlayer.getCurrentHp());
|
thePlayer.setCurrentHp((thePlayer.getMaxHp() * .20) + thePlayer.getCurrentHp());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Npc npcToHeal = (Npc) personToHeal;
|
final Npc npcToHeal = (Npc) personToHeal;
|
||||||
npcToHeal.setCurrentHp((npcToHeal.getMaxHp() * .20) + npcToHeal.getCurrentHp());
|
npcToHeal.setCurrentHp((npcToHeal.getMaxHp() * .20) + npcToHeal.getCurrentHp());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -81,7 +81,7 @@ public class Q00245_ComeToMe extends Quest
|
|||||||
{
|
{
|
||||||
if (player.isMentor() && event.equals("30847-13.html"))
|
if (player.isMentor() && event.equals("30847-13.html"))
|
||||||
{
|
{
|
||||||
PlayerInstance mentee = getCurrentMentee(player);
|
final PlayerInstance mentee = getCurrentMentee(player);
|
||||||
if (mentee != null)
|
if (mentee != null)
|
||||||
{
|
{
|
||||||
if (player.destroyItemByItemId("quest_245", CRYSTAL_A, 100, npc, true))
|
if (player.destroyItemByItemId("quest_245", CRYSTAL_A, 100, npc, true))
|
||||||
@@ -94,7 +94,7 @@ public class Q00245_ComeToMe extends Quest
|
|||||||
return "30847-12.html";
|
return "30847-12.html";
|
||||||
}
|
}
|
||||||
|
|
||||||
QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if (qs == null)
|
if (qs == null)
|
||||||
{
|
{
|
||||||
return event;
|
return event;
|
||||||
@@ -151,7 +151,7 @@ public class Q00245_ComeToMe extends Quest
|
|||||||
}
|
}
|
||||||
else if (player.isMentee())
|
else if (player.isMentee())
|
||||||
{
|
{
|
||||||
PlayerInstance mentor = MentorManager.getInstance().getMentor(player.getObjectId()).getPlayerInstance();
|
final PlayerInstance mentor = MentorManager.getInstance().getMentor(player.getObjectId()).getPlayerInstance();
|
||||||
if ((mentor != null) && mentor.isOnline() && Util.checkIfInRange(200, npc, mentor, true))
|
if ((mentor != null) && mentor.isOnline() && Util.checkIfInRange(200, npc, mentor, true))
|
||||||
{
|
{
|
||||||
htmltext = "30847-10.html";
|
htmltext = "30847-10.html";
|
||||||
@@ -239,7 +239,7 @@ public class Q00245_ComeToMe extends Quest
|
|||||||
{
|
{
|
||||||
if (killer.isMentee())
|
if (killer.isMentee())
|
||||||
{
|
{
|
||||||
PlayerInstance mentor = MentorManager.getInstance().getMentor(killer.getObjectId()).getPlayerInstance();
|
final PlayerInstance mentor = MentorManager.getInstance().getMentor(killer.getObjectId()).getPlayerInstance();
|
||||||
if ((mentor != null) && Util.checkIfInRange(500, killer, mentor, false))
|
if ((mentor != null) && Util.checkIfInRange(500, killer, mentor, false))
|
||||||
{
|
{
|
||||||
giveItems(killer, CRYSTALS_OF_EXPERIENCE, 1);
|
giveItems(killer, CRYSTALS_OF_EXPERIENCE, 1);
|
||||||
|
|||||||
Vendored
+78
-77
@@ -221,6 +221,7 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
{
|
{
|
||||||
return "30702-02a.html";
|
return "30702-02a.html";
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
case WAREHOUSE_KEEPER_SORINT:
|
case WAREHOUSE_KEEPER_SORINT:
|
||||||
{
|
{
|
||||||
@@ -1345,28 +1346,28 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
* @param npcId
|
* @param npcId
|
||||||
* @param weightPoint
|
* @param weightPoint
|
||||||
* @param base
|
* @param base
|
||||||
* @param ITEM_1_1
|
* @param item1a
|
||||||
* @param ITEM_1_2
|
* @param item1b
|
||||||
* @param ITEM_1_MUL
|
* @param item1Mul
|
||||||
* @param ITEM_2
|
* @param item2
|
||||||
* @param ITEM_3
|
* @param item3
|
||||||
* @param ITEM_4
|
* @param item4
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String shortFirstSteps(QuestState qs, int npcId, int weightPoint, int base, int ITEM_1_1, int ITEM_1_2, int ITEM_1_MUL, int ITEM_2, int ITEM_3, int ITEM_4)
|
private String shortFirstSteps(QuestState qs, int npcId, int weightPoint, int base, int item1a, int item1b, int item1Mul, int item2, int item3, int item4)
|
||||||
{
|
{
|
||||||
final PlayerInstance player = qs.getPlayer();
|
final PlayerInstance player = qs.getPlayer();
|
||||||
switch (qs.getInt(PARAM_2))
|
switch (qs.getInt(PARAM_2))
|
||||||
{
|
{
|
||||||
case 42:
|
case 42:
|
||||||
{
|
{
|
||||||
if ((getQuestItemsCount(player, ITEM_1_1) >= (base * ITEM_1_MUL)) && ((ITEM_1_2 == 0) || (getQuestItemsCount(player, ITEM_1_2) >= base)))
|
if ((getQuestItemsCount(player, item1a) >= (base * item1Mul)) && ((item1b == 0) || (getQuestItemsCount(player, item1b) >= base)))
|
||||||
{
|
{
|
||||||
qs.set(FLAG, 1);
|
qs.set(FLAG, 1);
|
||||||
takeItems(player, ITEM_1_1, base * ITEM_1_MUL);
|
takeItems(player, item1a, base * item1Mul);
|
||||||
if (ITEM_1_2 > 0)
|
if (item1b > 0)
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_1_2, base);
|
takeItems(player, item1b, base);
|
||||||
}
|
}
|
||||||
qs.set(WEIGHT_POINT, weightPoint);
|
qs.set(WEIGHT_POINT, weightPoint);
|
||||||
int param1 = getRandom(3) + 1;
|
int param1 = getRandom(3) + 1;
|
||||||
@@ -1379,10 +1380,10 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 31:
|
case 31:
|
||||||
{
|
{
|
||||||
if (getQuestItemsCount(player, ITEM_2) >= base)
|
if (getQuestItemsCount(player, item2) >= base)
|
||||||
{
|
{
|
||||||
qs.set(FLAG, 1);
|
qs.set(FLAG, 1);
|
||||||
takeItems(player, ITEM_2, base);
|
takeItems(player, item2, base);
|
||||||
qs.set(WEIGHT_POINT, weightPoint);
|
qs.set(WEIGHT_POINT, weightPoint);
|
||||||
int param1 = getRandom(3) + 1;
|
int param1 = getRandom(3) + 1;
|
||||||
param1 += (getRandom(3) + 1) * 4;
|
param1 += (getRandom(3) + 1) * 4;
|
||||||
@@ -1394,10 +1395,10 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 21:
|
case 21:
|
||||||
{
|
{
|
||||||
if (getQuestItemsCount(player, ITEM_3) >= base)
|
if (getQuestItemsCount(player, item3) >= base)
|
||||||
{
|
{
|
||||||
qs.set(FLAG, 1);
|
qs.set(FLAG, 1);
|
||||||
takeItems(player, ITEM_3, base);
|
takeItems(player, item3, base);
|
||||||
qs.set(WEIGHT_POINT, weightPoint);
|
qs.set(WEIGHT_POINT, weightPoint);
|
||||||
int param1 = getRandom(3) + 1;
|
int param1 = getRandom(3) + 1;
|
||||||
param1 += (getRandom(3) + 1) * 4;
|
param1 += (getRandom(3) + 1) * 4;
|
||||||
@@ -1409,10 +1410,10 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 11:
|
case 11:
|
||||||
{
|
{
|
||||||
if (getQuestItemsCount(player, ITEM_4) >= base)
|
if (getQuestItemsCount(player, item4) >= base)
|
||||||
{
|
{
|
||||||
qs.set(FLAG, 1);
|
qs.set(FLAG, 1);
|
||||||
takeItems(player, ITEM_4, base);
|
takeItems(player, item4, base);
|
||||||
qs.set(WEIGHT_POINT, weightPoint);
|
qs.set(WEIGHT_POINT, weightPoint);
|
||||||
int param1 = getRandom(3) + 1;
|
int param1 = getRandom(3) + 1;
|
||||||
param1 += (getRandom(3) + 1) * 4;
|
param1 += (getRandom(3) + 1) * 4;
|
||||||
@@ -1430,28 +1431,28 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
* @param qs
|
* @param qs
|
||||||
* @param npcId
|
* @param npcId
|
||||||
* @param mul
|
* @param mul
|
||||||
* @param ITEM_1
|
* @param item1
|
||||||
* @param ITEM_1_MUL
|
* @param item1Mul
|
||||||
* @param REWARD_1
|
* @param reward1
|
||||||
* @param ITEM_2
|
* @param item2
|
||||||
* @param REWARD_2
|
* @param reward2
|
||||||
* @param ITEM_3
|
* @param item3
|
||||||
* @param REWARD_3
|
* @param reward3
|
||||||
* @param ITEM_4
|
* @param item4
|
||||||
* @param REWARD_4
|
* @param reward4
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String shortSecondStepOneItem(QuestState qs, int npcId, int mul, int ITEM_1, int ITEM_1_MUL, int REWARD_1, int ITEM_2, int REWARD_2, int ITEM_3, int REWARD_3, int ITEM_4, int REWARD_4)
|
private String shortSecondStepOneItem(QuestState qs, int npcId, int mul, int item1, int item1Mul, int reward1, int item2, int reward2, int item3, int reward3, int item4, int reward4)
|
||||||
{
|
{
|
||||||
final PlayerInstance player = qs.getPlayer();
|
final PlayerInstance player = qs.getPlayer();
|
||||||
switch (qs.getInt(PARAM_2))
|
switch (qs.getInt(PARAM_2))
|
||||||
{
|
{
|
||||||
case 42:
|
case 42:
|
||||||
{
|
{
|
||||||
if (getQuestItemsCount(player, ITEM_1) >= (10 * mul * ITEM_1_MUL))
|
if (getQuestItemsCount(player, item1) >= (10 * mul * item1Mul))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_1, 10 * mul * ITEM_1_MUL);
|
takeItems(player, item1, 10 * mul * item1Mul);
|
||||||
giveItems(player, REWARD_1, 1 * mul);
|
giveItems(player, reward1, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1459,10 +1460,10 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 31:
|
case 31:
|
||||||
{
|
{
|
||||||
if (getQuestItemsCount(player, ITEM_2) >= (5 * mul))
|
if (getQuestItemsCount(player, item2) >= (5 * mul))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_2, 5 * mul);
|
takeItems(player, item2, 5 * mul);
|
||||||
giveItems(player, REWARD_2, 1 * mul);
|
giveItems(player, reward2, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1470,10 +1471,10 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 21:
|
case 21:
|
||||||
{
|
{
|
||||||
if (getQuestItemsCount(player, ITEM_3) >= (5 * mul))
|
if (getQuestItemsCount(player, item3) >= (5 * mul))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_3, 5 * mul);
|
takeItems(player, item3, 5 * mul);
|
||||||
giveItems(player, REWARD_3, 1 * mul);
|
giveItems(player, reward3, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1481,10 +1482,10 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 11:
|
case 11:
|
||||||
{
|
{
|
||||||
if (getQuestItemsCount(player, ITEM_4) >= (5 * mul))
|
if (getQuestItemsCount(player, item4) >= (5 * mul))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_4, 5 * mul);
|
takeItems(player, item4, 5 * mul);
|
||||||
giveItems(player, REWARD_4, 1 * mul);
|
giveItems(player, reward4, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1498,32 +1499,32 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
* @param qs
|
* @param qs
|
||||||
* @param npcId
|
* @param npcId
|
||||||
* @param mul
|
* @param mul
|
||||||
* @param ITEM_1_1
|
* @param item1a
|
||||||
* @param ITEM_1_2
|
* @param item1b
|
||||||
* @param REWARD_1
|
* @param reward1
|
||||||
* @param ITEM_2_1
|
* @param item2a
|
||||||
* @param ITEM_2_2
|
* @param item2b
|
||||||
* @param REWARD_2
|
* @param reward2
|
||||||
* @param ITEM_3_1
|
* @param item3a
|
||||||
* @param ITEM_3_2
|
* @param item3b
|
||||||
* @param REWARD_3
|
* @param reward3
|
||||||
* @param ITEM_4_1
|
* @param item4a
|
||||||
* @param ITEM_4_2
|
* @param item4b
|
||||||
* @param REWARD_4
|
* @param reward4
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String shortSecondStepTwoItems(QuestState qs, int npcId, int mul, int ITEM_1_1, int ITEM_1_2, int REWARD_1, int ITEM_2_1, int ITEM_2_2, int REWARD_2, int ITEM_3_1, int ITEM_3_2, int REWARD_3, int ITEM_4_1, int ITEM_4_2, int REWARD_4)
|
private String shortSecondStepTwoItems(QuestState qs, int npcId, int mul, int item1a, int item1b, int reward1, int item2a, int item2b, int reward2, int item3a, int item3b, int reward3, int item4a, int item4b, int reward4)
|
||||||
{
|
{
|
||||||
final PlayerInstance player = qs.getPlayer();
|
final PlayerInstance player = qs.getPlayer();
|
||||||
switch (qs.getInt(PARAM_2))
|
switch (qs.getInt(PARAM_2))
|
||||||
{
|
{
|
||||||
case 42:
|
case 42:
|
||||||
{
|
{
|
||||||
if ((getQuestItemsCount(player, ITEM_1_1) >= (10 * mul)) && (getQuestItemsCount(player, ITEM_1_2) >= (10 * mul)))
|
if ((getQuestItemsCount(player, item1a) >= (10 * mul)) && (getQuestItemsCount(player, item1b) >= (10 * mul)))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_1_1, 10 * mul);
|
takeItems(player, item1a, 10 * mul);
|
||||||
takeItems(player, ITEM_1_2, 10 * mul);
|
takeItems(player, item1b, 10 * mul);
|
||||||
giveItems(player, REWARD_1, 1 * mul);
|
giveItems(player, reward1, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1531,11 +1532,11 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 31:
|
case 31:
|
||||||
{
|
{
|
||||||
if ((getQuestItemsCount(player, ITEM_2_1) >= (5 * mul)) && (getQuestItemsCount(player, ITEM_2_2) >= (5 * mul)))
|
if ((getQuestItemsCount(player, item2a) >= (5 * mul)) && (getQuestItemsCount(player, item2b) >= (5 * mul)))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_2_1, 5 * mul);
|
takeItems(player, item2a, 5 * mul);
|
||||||
takeItems(player, ITEM_2_2, 5 * mul);
|
takeItems(player, item2b, 5 * mul);
|
||||||
giveItems(player, REWARD_2, 1 * mul);
|
giveItems(player, reward2, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1543,11 +1544,11 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 21:
|
case 21:
|
||||||
{
|
{
|
||||||
if ((getQuestItemsCount(player, ITEM_3_1) >= (5 * mul)) && (getQuestItemsCount(player, ITEM_3_2) >= (5 * mul)))
|
if ((getQuestItemsCount(player, item3a) >= (5 * mul)) && (getQuestItemsCount(player, item3b) >= (5 * mul)))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_3_1, 5 * mul);
|
takeItems(player, item3a, 5 * mul);
|
||||||
takeItems(player, ITEM_3_2, 5 * mul);
|
takeItems(player, item3b, 5 * mul);
|
||||||
giveItems(player, REWARD_3, 1 * mul);
|
giveItems(player, reward3, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1555,11 +1556,11 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
}
|
}
|
||||||
case 11:
|
case 11:
|
||||||
{
|
{
|
||||||
if ((getQuestItemsCount(player, ITEM_4_1) >= (5 * mul)) && (getQuestItemsCount(player, ITEM_4_2) >= (5 * mul)))
|
if ((getQuestItemsCount(player, item4a) >= (5 * mul)) && (getQuestItemsCount(player, item4b) >= (5 * mul)))
|
||||||
{
|
{
|
||||||
takeItems(player, ITEM_4_1, 5 * mul);
|
takeItems(player, item4a, 5 * mul);
|
||||||
takeItems(player, ITEM_4_2, 5 * mul);
|
takeItems(player, item4b, 5 * mul);
|
||||||
giveItems(player, REWARD_4, 1 * mul);
|
giveItems(player, reward4, 1 * mul);
|
||||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||||
return npcId + "-07.html";
|
return npcId + "-07.html";
|
||||||
}
|
}
|
||||||
@@ -1573,13 +1574,13 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
* @param qs
|
* @param qs
|
||||||
* @param npcId
|
* @param npcId
|
||||||
* @param flag
|
* @param flag
|
||||||
* @param ITEM_1
|
* @param item1
|
||||||
* @param ITEM_2
|
* @param item2
|
||||||
* @param ITEM_3
|
* @param item3
|
||||||
* @param ITEM_4
|
* @param item4
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String shortThirdStep(QuestState qs, int npcId, int flag, int ITEM_1, int ITEM_2, int ITEM_3, int ITEM_4)
|
private String shortThirdStep(QuestState qs, int npcId, int flag, int item1, int item2, int item3, int item4)
|
||||||
{
|
{
|
||||||
final PlayerInstance player = qs.getPlayer();
|
final PlayerInstance player = qs.getPlayer();
|
||||||
qs.set(PARAM_3, 0);
|
qs.set(PARAM_3, 0);
|
||||||
@@ -1591,22 +1592,22 @@ public class Q00336_CoinsOfMagic extends Quest
|
|||||||
{
|
{
|
||||||
case 42:
|
case 42:
|
||||||
{
|
{
|
||||||
giveItems(player, ITEM_1, 1);
|
giveItems(player, item1, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 31:
|
case 31:
|
||||||
{
|
{
|
||||||
giveItems(player, ITEM_2, 1);
|
giveItems(player, item2, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 21:
|
case 21:
|
||||||
{
|
{
|
||||||
giveItems(player, ITEM_3, 1);
|
giveItems(player, item3, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 11:
|
case 11:
|
||||||
{
|
{
|
||||||
giveItems(player, ITEM_4, 1);
|
giveItems(player, item4, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-29
@@ -149,8 +149,8 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
{
|
{
|
||||||
String htmltext = event;
|
final String htmltext = event;
|
||||||
QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if (event.endsWith("-04.htm"))
|
if (event.endsWith("-04.htm"))
|
||||||
{
|
{
|
||||||
qs.startQuest();
|
qs.startQuest();
|
||||||
@@ -257,7 +257,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
if (Item != null)
|
if (Item != null)
|
||||||
{
|
{
|
||||||
// Prepare inventory update packet
|
// Prepare inventory update packet
|
||||||
InventoryUpdate playerIU = new InventoryUpdate();
|
final InventoryUpdate playerIU = new InventoryUpdate();
|
||||||
playerIU.addRemovedItem(Item);
|
playerIU.addRemovedItem(Item);
|
||||||
|
|
||||||
// Add new crystal to the killer's inventory
|
// Add new crystal to the killer's inventory
|
||||||
@@ -275,7 +275,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Send system message
|
// Send system message
|
||||||
SystemMessage sms = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
final SystemMessage sms = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
||||||
sms.addItemName(giveid);
|
sms.addItemName(giveid);
|
||||||
player.sendPacket(sms);
|
player.sendPacket(sms);
|
||||||
|
|
||||||
@@ -295,7 +295,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
SoulCrystal ret = null;
|
SoulCrystal ret = null;
|
||||||
for (ItemInstance item : player.getInventory().getItems())
|
for (ItemInstance item : player.getInventory().getItems())
|
||||||
{
|
{
|
||||||
int itemId = item.getId();
|
final int itemId = item.getId();
|
||||||
if (!SOUL_CRYSTALS.containsKey(itemId))
|
if (!SOUL_CRYSTALS.containsKey(itemId))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@@ -360,7 +360,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<PlayerInstance, SoulCrystal> players = new HashMap<>();
|
final Map<PlayerInstance, SoulCrystal> players = new HashMap<>();
|
||||||
int maxSCLevel = 0;
|
int maxSCLevel = 0;
|
||||||
|
|
||||||
// TODO: what if mob support last_hit + party?
|
// TODO: what if mob support last_hit + party?
|
||||||
@@ -374,7 +374,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
SoulCrystal sc = getSCForPlayer(pl);
|
final SoulCrystal sc = getSCForPlayer(pl);
|
||||||
if (sc == null)
|
if (sc == null)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@@ -389,7 +389,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SoulCrystal sc = getSCForPlayer(killer);
|
final SoulCrystal sc = getSCForPlayer(killer);
|
||||||
if (sc != null)
|
if (sc != null)
|
||||||
{
|
{
|
||||||
players.put(killer, sc);
|
players.put(killer, sc);
|
||||||
@@ -400,7 +400,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Init some useful vars
|
// Init some useful vars
|
||||||
LevelingInfo mainlvlInfo = NPC_LEVELING_INFO.get(mob.getId()).get(maxSCLevel);
|
final LevelingInfo mainlvlInfo = NPC_LEVELING_INFO.get(mob.getId()).get(maxSCLevel);
|
||||||
|
|
||||||
if (mainlvlInfo == null)
|
if (mainlvlInfo == null)
|
||||||
{
|
{
|
||||||
@@ -419,7 +419,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Fail if the killer isn't in the _absorbersList of this Attackable and mob is not boss
|
// Fail if the killer isn't in the _absorbersList of this Attackable and mob is not boss
|
||||||
AbsorberInfo ai = mob.getAbsorbersList().get(killer.getObjectId());
|
final AbsorberInfo ai = mob.getAbsorbersList().get(killer.getObjectId());
|
||||||
boolean isSuccess = true;
|
boolean isSuccess = true;
|
||||||
if ((ai == null) || (ai.getObjectId() != killer.getObjectId()))
|
if ((ai == null) || (ai.getObjectId() != killer.getObjectId()))
|
||||||
{
|
{
|
||||||
@@ -448,7 +448,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
// among those who have crystals, only. However, this might actually be correct (same as retail).
|
// among those who have crystals, only. However, this might actually be correct (same as retail).
|
||||||
if (killer.getParty() != null)
|
if (killer.getParty() != null)
|
||||||
{
|
{
|
||||||
PlayerInstance lucky = killer.getParty().getMembers().get(getRandom(killer.getParty().getMemberCount()));
|
final PlayerInstance lucky = killer.getParty().getMembers().get(getRandom(killer.getParty().getMemberCount()));
|
||||||
levelCrystal(lucky, players.get(lucky), mob);
|
levelCrystal(lucky, players.get(lucky), mob);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -461,11 +461,11 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
{
|
{
|
||||||
if (killer.getParty() != null)
|
if (killer.getParty() != null)
|
||||||
{
|
{
|
||||||
List<PlayerInstance> luckyParty = new ArrayList<>();
|
final List<PlayerInstance> luckyParty = new ArrayList<>();
|
||||||
luckyParty.addAll(killer.getParty().getMembers());
|
luckyParty.addAll(killer.getParty().getMembers());
|
||||||
while ((getRandom(100) < 33) && !luckyParty.isEmpty())
|
while ((getRandom(100) < 33) && !luckyParty.isEmpty())
|
||||||
{
|
{
|
||||||
PlayerInstance lucky = luckyParty.remove(getRandom(luckyParty.size()));
|
final PlayerInstance lucky = luckyParty.remove(getRandom(luckyParty.size()));
|
||||||
if (players.containsKey(lucky))
|
if (players.containsKey(lucky))
|
||||||
{
|
{
|
||||||
levelCrystal(lucky, players.get(lucky), mob);
|
levelCrystal(lucky, players.get(lucky), mob);
|
||||||
@@ -508,19 +508,19 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||||
factory.setValidating(false);
|
factory.setValidating(false);
|
||||||
factory.setIgnoringComments(true);
|
factory.setIgnoringComments(true);
|
||||||
|
|
||||||
File file = new File(Config.DATAPACK_ROOT, "data/LevelUpCrystalData.xml");
|
final File file = new File(Config.DATAPACK_ROOT, "data/LevelUpCrystalData.xml");
|
||||||
if (!file.exists())
|
if (!file.exists())
|
||||||
{
|
{
|
||||||
LOGGER.severe("[EnhanceYourWeapon] Missing LevelUpCrystalData.xml. The quest wont work without it!");
|
LOGGER.severe("[EnhanceYourWeapon] Missing LevelUpCrystalData.xml. The quest wont work without it!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Document doc = factory.newDocumentBuilder().parse(file);
|
final Document doc = factory.newDocumentBuilder().parse(file);
|
||||||
Node first = doc.getFirstChild();
|
final Node first = doc.getFirstChild();
|
||||||
if ((first != null) && "list".equalsIgnoreCase(first.getNodeName()))
|
if ((first != null) && "list".equalsIgnoreCase(first.getNodeName()))
|
||||||
{
|
{
|
||||||
for (Node n = first.getFirstChild(); n != null; n = n.getNextSibling())
|
for (Node n = first.getFirstChild(); n != null; n = n.getNextSibling())
|
||||||
@@ -531,14 +531,14 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
{
|
{
|
||||||
if ("item".equalsIgnoreCase(d.getNodeName()))
|
if ("item".equalsIgnoreCase(d.getNodeName()))
|
||||||
{
|
{
|
||||||
NamedNodeMap attrs = d.getAttributes();
|
final NamedNodeMap attrs = d.getAttributes();
|
||||||
Node att = attrs.getNamedItem("itemId");
|
Node att = attrs.getNamedItem("itemId");
|
||||||
if (att == null)
|
if (att == null)
|
||||||
{
|
{
|
||||||
LOGGER.severe("[EnhanceYourWeapon] Missing itemId in Crystal List, skipping");
|
LOGGER.severe("[EnhanceYourWeapon] Missing itemId in Crystal List, skipping");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int itemId = Integer.parseInt(attrs.getNamedItem("itemId").getNodeValue());
|
final int itemId = Integer.parseInt(attrs.getNamedItem("itemId").getNodeValue());
|
||||||
|
|
||||||
att = attrs.getNamedItem("level");
|
att = attrs.getNamedItem("level");
|
||||||
if (att == null)
|
if (att == null)
|
||||||
@@ -546,7 +546,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
LOGGER.severe("[EnhanceYourWeapon] Missing level in Crystal List itemId: " + itemId + ", skipping");
|
LOGGER.severe("[EnhanceYourWeapon] Missing level in Crystal List itemId: " + itemId + ", skipping");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int level = Integer.parseInt(attrs.getNamedItem("level").getNodeValue());
|
final int level = Integer.parseInt(attrs.getNamedItem("level").getNodeValue());
|
||||||
|
|
||||||
att = attrs.getNamedItem("leveledItemId");
|
att = attrs.getNamedItem("leveledItemId");
|
||||||
if (att == null)
|
if (att == null)
|
||||||
@@ -554,7 +554,7 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
LOGGER.severe("[EnhanceYourWeapon] Missing leveledItemId in Crystal List itemId: " + itemId + ", skipping");
|
LOGGER.severe("[EnhanceYourWeapon] Missing leveledItemId in Crystal List itemId: " + itemId + ", skipping");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int leveledItemId = Integer.parseInt(attrs.getNamedItem("leveledItemId").getNodeValue());
|
final int leveledItemId = Integer.parseInt(attrs.getNamedItem("leveledItemId").getNodeValue());
|
||||||
|
|
||||||
SOUL_CRYSTALS.put(itemId, new SoulCrystal(level, itemId, leveledItemId));
|
SOUL_CRYSTALS.put(itemId, new SoulCrystal(level, itemId, leveledItemId));
|
||||||
}
|
}
|
||||||
@@ -574,8 +574,8 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int npcId = Integer.parseInt(att.getNodeValue());
|
final int npcId = Integer.parseInt(att.getNodeValue());
|
||||||
Map<Integer, LevelingInfo> temp = new HashMap<>();
|
final Map<Integer, LevelingInfo> temp = new HashMap<>();
|
||||||
for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
|
for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
|
||||||
{
|
{
|
||||||
boolean isSkillNeeded = false;
|
boolean isSkillNeeded = false;
|
||||||
@@ -604,17 +604,17 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
isSkillNeeded = Boolean.parseBoolean(att.getNodeValue());
|
isSkillNeeded = Boolean.parseBoolean(att.getNodeValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
Node att1 = attrs.getNamedItem("maxLevel");
|
final Node att1 = attrs.getNamedItem("maxLevel");
|
||||||
Node att2 = attrs.getNamedItem("levelList");
|
final Node att2 = attrs.getNamedItem("levelList");
|
||||||
if ((att1 == null) && (att2 == null))
|
if ((att1 == null) && (att2 == null))
|
||||||
{
|
{
|
||||||
LOGGER.severe("[EnhanceYourWeapon] Missing maxlevel/levelList in NPC List npcId: " + npcId + ", skipping");
|
LOGGER.severe("[EnhanceYourWeapon] Missing maxlevel/levelList in NPC List npcId: " + npcId + ", skipping");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
LevelingInfo info = new LevelingInfo(absorbType, isSkillNeeded, chance);
|
final LevelingInfo info = new LevelingInfo(absorbType, isSkillNeeded, chance);
|
||||||
if (att1 != null)
|
if (att1 != null)
|
||||||
{
|
{
|
||||||
int maxLevel = Integer.parseInt(att1.getNodeValue());
|
final int maxLevel = Integer.parseInt(att1.getNodeValue());
|
||||||
for (int i = 0; i <= maxLevel; i++)
|
for (int i = 0; i <= maxLevel; i++)
|
||||||
{
|
{
|
||||||
temp.put(i, info);
|
temp.put(i, info);
|
||||||
@@ -622,8 +622,8 @@ public class Q00350_EnhanceYourWeapon extends Quest
|
|||||||
}
|
}
|
||||||
else if (att2 != null)
|
else if (att2 != null)
|
||||||
{
|
{
|
||||||
StringTokenizer st = new StringTokenizer(att2.getNodeValue(), ",");
|
final StringTokenizer st = new StringTokenizer(att2.getNodeValue(), ",");
|
||||||
int tokenCount = st.countTokens();
|
final int tokenCount = st.countTokens();
|
||||||
for (int i = 0; i < tokenCount; i++)
|
for (int i = 0; i < tokenCount; i++)
|
||||||
{
|
{
|
||||||
Integer value = Integer.decode(st.nextToken().trim());
|
Integer value = Integer.decode(st.nextToken().trim());
|
||||||
|
|||||||
+2
-1
@@ -35,7 +35,8 @@ public class Q00357_WarehouseKeepersAmbition extends Quest
|
|||||||
// Item
|
// Item
|
||||||
private static final int JADE_CRYSTAL = 5867;
|
private static final int JADE_CRYSTAL = 5867;
|
||||||
// Monsters
|
// Monsters
|
||||||
private final Map<Integer, Double> DROP_DATA = new HashMap<>();
|
private static final Map<Integer, Double> DROP_DATA = new HashMap<>();
|
||||||
|
static
|
||||||
{
|
{
|
||||||
DROP_DATA.put(20594, 0.577); // Forest Runner
|
DROP_DATA.put(20594, 0.577); // Forest Runner
|
||||||
DROP_DATA.put(20595, 0.6); // Fline Elder
|
DROP_DATA.put(20595, 0.6); // Fline Elder
|
||||||
|
|||||||
+1
-1
@@ -90,7 +90,7 @@ public class Q00454_CompletelyLost extends Quest
|
|||||||
final PlayerInstance leader = npc.getVariables().getObject("leader", PlayerInstance.class);
|
final PlayerInstance leader = npc.getVariables().getObject("leader", PlayerInstance.class);
|
||||||
if (leader != null)
|
if (leader != null)
|
||||||
{
|
{
|
||||||
double dist = Util.calculateDistance(npc, leader, false, false);
|
final double dist = Util.calculateDistance(npc, leader, false, false);
|
||||||
if (dist > 1000)
|
if (dist > 1000)
|
||||||
{
|
{
|
||||||
if (((dist > 5000) && (dist < 6900)) || ((dist > 31000) && (dist < 32000)))
|
if (((dist > 5000) && (dist < 6900)) || ((dist > 31000) && (dist < 32000)))
|
||||||
|
|||||||
Vendored
+1
-1
@@ -205,7 +205,7 @@ public class Q00457_LostAndFound extends Quest
|
|||||||
public String onTalk(Npc npc, PlayerInstance player)
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
{
|
{
|
||||||
String htmltext = getNoQuestMsg(player);
|
String htmltext = getNoQuestMsg(player);
|
||||||
QuestState qs = getQuestState(player, true);
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
|
||||||
switch (qs.getState())
|
switch (qs.getState())
|
||||||
{
|
{
|
||||||
|
|||||||
+3
-3
@@ -307,10 +307,10 @@ public class Q00482_RecertificationOfValue extends Quest
|
|||||||
final QuestState qs = getQuestState(killer, false);
|
final QuestState qs = getQuestState(killer, false);
|
||||||
if ((qs != null) && qs.isCond(1))
|
if ((qs != null) && qs.isCond(1))
|
||||||
{
|
{
|
||||||
int npcId = npc.getId();
|
final int npcId = npc.getId();
|
||||||
|
|
||||||
String variable = String.valueOf(npcId); // i3
|
final String variable = String.valueOf(npcId); // i3
|
||||||
int currentValue = qs.getInt(variable);
|
final int currentValue = qs.getInt(variable);
|
||||||
if (currentValue < 10)
|
if (currentValue < 10)
|
||||||
{
|
{
|
||||||
qs.set(variable, String.valueOf(currentValue + 1)); // IncreaseNPCLogByID
|
qs.set(variable, String.valueOf(currentValue + 1)); // IncreaseNPCLogByID
|
||||||
|
|||||||
+3
-3
@@ -95,7 +95,7 @@ public class Q00625_TheFinestIngredientsPart2 extends Quest
|
|||||||
{
|
{
|
||||||
if (hasItem(player, SPECIAL_YETI_MEAT))
|
if (hasItem(player, SPECIAL_YETI_MEAT))
|
||||||
{
|
{
|
||||||
int random = getRandom(1000);
|
final int random = getRandom(1000);
|
||||||
if (random < 167)
|
if (random < 167)
|
||||||
{
|
{
|
||||||
rewardItems(player, GREATER_DYE_OF_STR_1);
|
rewardItems(player, GREATER_DYE_OF_STR_1);
|
||||||
@@ -141,7 +141,7 @@ public class Q00625_TheFinestIngredientsPart2 extends Quest
|
|||||||
{
|
{
|
||||||
qs.setCond(2, true);
|
qs.setCond(2, true);
|
||||||
takeItem(player, FOOD_FOR_BUMBALUMP);
|
takeItem(player, FOOD_FOR_BUMBALUMP);
|
||||||
Npc umpaloopa = addSpawn(ICICLE_EMPEROR_BUMBALUMP, ICICLE_EMPEROR_BUMBALUMP_LOC);
|
final Npc umpaloopa = addSpawn(ICICLE_EMPEROR_BUMBALUMP, ICICLE_EMPEROR_BUMBALUMP_LOC);
|
||||||
umpaloopa.setSummoner(player);
|
umpaloopa.setSummoner(player);
|
||||||
htmltext = event;
|
htmltext = event;
|
||||||
}
|
}
|
||||||
@@ -232,7 +232,7 @@ public class Q00625_TheFinestIngredientsPart2 extends Quest
|
|||||||
{
|
{
|
||||||
if (!isBumbalumpSpawned())
|
if (!isBumbalumpSpawned())
|
||||||
{
|
{
|
||||||
Npc umpaloopa = addSpawn(ICICLE_EMPEROR_BUMBALUMP, ICICLE_EMPEROR_BUMBALUMP_LOC);
|
final Npc umpaloopa = addSpawn(ICICLE_EMPEROR_BUMBALUMP, ICICLE_EMPEROR_BUMBALUMP_LOC);
|
||||||
umpaloopa.setSummoner(talker);
|
umpaloopa.setSummoner(talker);
|
||||||
htmltext = "31542-02.html";
|
htmltext = "31542-02.html";
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -103,7 +103,8 @@ public class Q00699_GuardianOfTheSkies extends Quest
|
|||||||
{
|
{
|
||||||
if (npc.getId() == VALDSTONE)
|
if (npc.getId() == VALDSTONE)
|
||||||
{
|
{
|
||||||
int amount = 0, chance = getRandom(1000);
|
int amount = 0;
|
||||||
|
final int chance = getRandom(1000);
|
||||||
if (chance < 215)
|
if (chance < 215)
|
||||||
{
|
{
|
||||||
amount = getRandom(10) + 90;
|
amount = getRandom(10) + 90;
|
||||||
|
|||||||
Vendored
+6
-6
@@ -124,10 +124,10 @@ public class Q00700_CursedLife extends Quest
|
|||||||
}
|
}
|
||||||
case State.STARTED:
|
case State.STARTED:
|
||||||
{
|
{
|
||||||
long bones = getQuestItemsCount(player, SWALLOWED_BONES);
|
final long bones = getQuestItemsCount(player, SWALLOWED_BONES);
|
||||||
long ribs = getQuestItemsCount(player, SWALLOWED_STERNUM);
|
final long ribs = getQuestItemsCount(player, SWALLOWED_STERNUM);
|
||||||
long skulls = getQuestItemsCount(player, SWALLOWED_SKULL);
|
final long skulls = getQuestItemsCount(player, SWALLOWED_SKULL);
|
||||||
long sum = bones + ribs + skulls;
|
final long sum = bones + ribs + skulls;
|
||||||
if (sum > 0)
|
if (sum > 0)
|
||||||
{
|
{
|
||||||
giveAdena(player, ((bones * SWALLOWED_BONES_ADENA) + (ribs * SWALLOWED_STERNUM_ADENA) + (skulls * SWALLOWED_SKULL_ADENA) + (sum >= 10 ? BONUS : 0)), true);
|
giveAdena(player, ((bones * SWALLOWED_BONES_ADENA) + (ribs * SWALLOWED_STERNUM_ADENA) + (skulls * SWALLOWED_SKULL_ADENA) + (sum >= 10 ? BONUS : 0)), true);
|
||||||
@@ -242,8 +242,8 @@ public class Q00700_CursedLife extends Quest
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Integer[] chances = MONSTERS.get(npc.getId());
|
final Integer[] chances = MONSTERS.get(npc.getId());
|
||||||
int chance = getRandom(1000);
|
final int chance = getRandom(1000);
|
||||||
if (chance < chances[0])
|
if (chance < chances[0])
|
||||||
{
|
{
|
||||||
giveItems(player, SWALLOWED_BONES, 1);
|
giveItems(player, SWALLOWED_BONES, 1);
|
||||||
|
|||||||
+4
-2
@@ -160,8 +160,8 @@ public class Q00702_ATrapForRevenge extends Quest
|
|||||||
}
|
}
|
||||||
else if (event.equalsIgnoreCase("32555-15.html"))
|
else if (event.equalsIgnoreCase("32555-15.html"))
|
||||||
{
|
{
|
||||||
int i0 = getRandom(1000);
|
final int i0 = getRandom(1000);
|
||||||
int i1 = getRandom(1000);
|
final int i1 = getRandom(1000);
|
||||||
|
|
||||||
if ((i0 >= 500) && (i1 >= 600))
|
if ((i0 >= 500) && (i1 >= 600))
|
||||||
{
|
{
|
||||||
@@ -194,6 +194,7 @@ public class Q00702_ATrapForRevenge extends Quest
|
|||||||
giveAdena(player, getRandom(49917) + 125000, false);
|
giveAdena(player, getRandom(49917) + 125000, false);
|
||||||
if (i1 < 210)
|
if (i1 < 210)
|
||||||
{
|
{
|
||||||
|
// Do nothing.
|
||||||
}
|
}
|
||||||
else if (i1 < 340)
|
else if (i1 < 340)
|
||||||
{
|
{
|
||||||
@@ -241,6 +242,7 @@ public class Q00702_ATrapForRevenge extends Quest
|
|||||||
giveAdena(player, getRandom(49917) + 25000, false);
|
giveAdena(player, getRandom(49917) + 25000, false);
|
||||||
if (i1 < 210)
|
if (i1 < 210)
|
||||||
{
|
{
|
||||||
|
// Do nothing.
|
||||||
}
|
}
|
||||||
else if (i1 < 340)
|
else if (i1 < 340)
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@ public class Q10274_CollectingInTheAir extends Quest
|
|||||||
private static final int BLUE = 13859;
|
private static final int BLUE = 13859;
|
||||||
private static final int GREEN = 13860;
|
private static final int GREEN = 13860;
|
||||||
// Monsters
|
// Monsters
|
||||||
private static final int MOBS[] =
|
private static final int[] MOBS =
|
||||||
{
|
{
|
||||||
18684, // Red Star Stone
|
18684, // Red Star Stone
|
||||||
18685, // Red Star Stone
|
18685, // Red Star Stone
|
||||||
|
|||||||
+2
-2
@@ -183,8 +183,8 @@ public class Q10304_ForForgottenHeroes extends Quest
|
|||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if (qs != null)
|
if (qs != null)
|
||||||
{
|
{
|
||||||
int cond = qs.getCond();
|
final int cond = qs.getCond();
|
||||||
int npcId = npc.getId();
|
final int npcId = npc.getId();
|
||||||
if (player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
if (player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||||
{
|
{
|
||||||
if ((npcId == YUI) && (cond == 2))
|
if ((npcId == YUI) && (cond == 2))
|
||||||
|
|||||||
+1
-1
@@ -120,7 +120,7 @@ public class Q10377_TheInvadedExecutionGrounds extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onFirstTalk(Npc npc, PlayerInstance player)
|
public String onFirstTalk(Npc npc, PlayerInstance player)
|
||||||
{
|
{
|
||||||
QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
if (qs != null)
|
if (qs != null)
|
||||||
{
|
{
|
||||||
switch (npc.getId())
|
switch (npc.getId())
|
||||||
|
|||||||
+1
-1
@@ -135,7 +135,7 @@ public class Q10462_TemperARustingBlade extends Quest
|
|||||||
{
|
{
|
||||||
final PlayerInstance player = event.getPlayer();
|
final PlayerInstance player = event.getPlayer();
|
||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
ItemInstance item = qs.getPlayer().getInventory().getItemByItemId(PRACTICE_WEAPON);
|
final ItemInstance item = qs.getPlayer().getInventory().getItemByItemId(PRACTICE_WEAPON);
|
||||||
if ((item != null) && qs.isCond(1) && item.isAugmented())
|
if ((item != null) && qs.isCond(1) && item.isAugmented())
|
||||||
{
|
{
|
||||||
qs.setCond(2, true);
|
qs.setCond(2, true);
|
||||||
|
|||||||
+1
-1
@@ -549,7 +549,7 @@ public class Q10751_WindsOfFateEncounters extends Quest
|
|||||||
final PlayerInstance player = event.getPlayer();
|
final PlayerInstance player = event.getPlayer();
|
||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
|
||||||
if ((qs == null) && player.getRace() == Race.ERTHEIA && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.FIRST_CLASS_GROUP)))
|
if ((qs == null) && (player.getRace() == Race.ERTHEIA) && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.FIRST_CLASS_GROUP)))
|
||||||
{
|
{
|
||||||
showOnScreenMsg(player, NpcStringId.QUEEN_NAVARI_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
showOnScreenMsg(player, NpcStringId.QUEEN_NAVARI_HAS_SENT_A_LETTER_NCLICK_THE_QUESTION_MARK_ICON_TO_READ, ExShowScreenMessage.TOP_CENTER, 10000);
|
||||||
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
player.sendPacket(new TutorialShowQuestionMark(getId()));
|
||||||
|
|||||||
+1
-1
@@ -572,7 +572,7 @@ public class Q10752_WindsOfFateAPromise extends Quest
|
|||||||
final PlayerInstance player = event.getPlayer();
|
final PlayerInstance player = event.getPlayer();
|
||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
|
||||||
if ((qs == null) && player.getRace() == Race.ERTHEIA && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.THIRD_CLASS_GROUP)))
|
if ((qs == null) && (player.getRace() == Race.ERTHEIA) && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.THIRD_CLASS_GROUP)))
|
||||||
{
|
{
|
||||||
if (player.isMageClass())
|
if (player.isMageClass())
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -835,7 +835,7 @@ public class Q10753_WindsOfFateChoices extends Quest
|
|||||||
final PlayerInstance player = event.getPlayer();
|
final PlayerInstance player = event.getPlayer();
|
||||||
final QuestState qs = getQuestState(player, false);
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
|
||||||
if ((qs == null) && player.getRace() == Race.ERTHEIA && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP)))
|
if ((qs == null) && (player.getRace() == Race.ERTHEIA) && (player.getLevel() >= MIN_LEVEL) && (player.isInCategory(CategoryType.FOURTH_CLASS_GROUP)))
|
||||||
{
|
{
|
||||||
if (player.isMageClass())
|
if (player.isMageClass())
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -64,7 +64,7 @@ public class Q10755_LettersFromTheQueenWindyHill extends LetterQuest
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
String htmltext = event;
|
final String htmltext = event;
|
||||||
switch (event)
|
switch (event)
|
||||||
{
|
{
|
||||||
case "30037-02.html":
|
case "30037-02.html":
|
||||||
|
|||||||
+1
-1
@@ -64,7 +64,7 @@ public class Q10760_LettersFromTheQueenOrcBarracks extends LetterQuest
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
String htmltext = event;
|
final String htmltext = event;
|
||||||
switch (event)
|
switch (event)
|
||||||
{
|
{
|
||||||
case "30037-02.html":
|
case "30037-02.html":
|
||||||
|
|||||||
+1
-1
@@ -55,7 +55,7 @@ public class Q10796_TheEyeThatDefiedTheGods extends Quest
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String htmltext = event;
|
final String htmltext = event;
|
||||||
switch (event)
|
switch (event)
|
||||||
{
|
{
|
||||||
case "31616-02.htm":
|
case "31616-02.htm":
|
||||||
|
|||||||
Vendored
+1
-1
@@ -60,7 +60,7 @@ public class Q10797_CrossingFate extends Quest
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String htmltext = event;
|
final String htmltext = event;
|
||||||
switch (event)
|
switch (event)
|
||||||
{
|
{
|
||||||
case "31683-02.htm":
|
case "31683-02.htm":
|
||||||
|
|||||||
+1
-1
@@ -131,7 +131,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
{
|
{
|
||||||
Party party = killer.getParty();
|
final Party party = killer.getParty();
|
||||||
if (party != null)
|
if (party != null)
|
||||||
{
|
{
|
||||||
party.getMembers().forEach(p -> onKill(npc, p));
|
party.getMembers().forEach(p -> onKill(npc, p));
|
||||||
|
|||||||
+1
-1
@@ -131,7 +131,7 @@ public class Q10802_TheDimensionalWarpPart2 extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
{
|
{
|
||||||
Party party = killer.getParty();
|
final Party party = killer.getParty();
|
||||||
if (party != null)
|
if (party != null)
|
||||||
{
|
{
|
||||||
party.getMembers().forEach(p -> onKill(npc, p));
|
party.getMembers().forEach(p -> onKill(npc, p));
|
||||||
|
|||||||
+1
-1
@@ -133,7 +133,7 @@ public class Q10803_TheDimensionalWarpPart3 extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
{
|
{
|
||||||
Party party = killer.getParty();
|
final Party party = killer.getParty();
|
||||||
if (party != null)
|
if (party != null)
|
||||||
{
|
{
|
||||||
party.getMembers().forEach(p -> onKill(npc, p));
|
party.getMembers().forEach(p -> onKill(npc, p));
|
||||||
|
|||||||
+1
-1
@@ -133,7 +133,7 @@ public class Q10804_TheDimensionalWarpPart4 extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
{
|
{
|
||||||
Party party = killer.getParty();
|
final Party party = killer.getParty();
|
||||||
if (party != null)
|
if (party != null)
|
||||||
{
|
{
|
||||||
party.getMembers().forEach(p -> onKill(npc, p));
|
party.getMembers().forEach(p -> onKill(npc, p));
|
||||||
|
|||||||
+1
-1
@@ -133,7 +133,7 @@ public class Q10805_TheDimensionalWarpPart5 extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
{
|
{
|
||||||
Party party = killer.getParty();
|
final Party party = killer.getParty();
|
||||||
if (party != null)
|
if (party != null)
|
||||||
{
|
{
|
||||||
party.getMembers().forEach(p -> onKill(npc, p));
|
party.getMembers().forEach(p -> onKill(npc, p));
|
||||||
|
|||||||
+1
-1
@@ -131,7 +131,7 @@ public class Q10806_TheDimensionalWarpPart6 extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
{
|
{
|
||||||
Party party = killer.getParty();
|
final Party party = killer.getParty();
|
||||||
if (party != null)
|
if (party != null)
|
||||||
{
|
{
|
||||||
party.getMembers().forEach(p -> onKill(npc, p));
|
party.getMembers().forEach(p -> onKill(npc, p));
|
||||||
|
|||||||
+1
-1
@@ -131,7 +131,7 @@ public class Q10807_TheDimensionalWarpPart7 extends Quest
|
|||||||
@Override
|
@Override
|
||||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
{
|
{
|
||||||
Party party = killer.getParty();
|
final Party party = killer.getParty();
|
||||||
if (party != null)
|
if (party != null)
|
||||||
{
|
{
|
||||||
party.getMembers().forEach(p -> onKill(npc, p));
|
party.getMembers().forEach(p -> onKill(npc, p));
|
||||||
|
|||||||
+3
-12
@@ -276,9 +276,7 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
@Override
|
@Override
|
||||||
public String onEnterZone(Creature creature, ZoneType zone)
|
public String onEnterZone(Creature creature, ZoneType zone)
|
||||||
{
|
{
|
||||||
if (creature instanceof ControllableAirShipInstance)
|
if ((creature instanceof ControllableAirShipInstance) && (_dockedShip == null))
|
||||||
{
|
|
||||||
if (_dockedShip == null)
|
|
||||||
{
|
{
|
||||||
_dockedShip = (ControllableAirShipInstance) creature;
|
_dockedShip = (ControllableAirShipInstance) creature;
|
||||||
_dockedShip.setInDock(_dockZone);
|
_dockedShip.setInDock(_dockZone);
|
||||||
@@ -299,16 +297,13 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
_departSchedule = ThreadPool.schedule(_departTask, DEPART_INTERVAL);
|
_departSchedule = ThreadPool.schedule(_departTask, DEPART_INTERVAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String onExitZone(Creature creature, ZoneType zone)
|
public String onExitZone(Creature creature, ZoneType zone)
|
||||||
{
|
{
|
||||||
if (creature instanceof ControllableAirShipInstance)
|
if ((creature instanceof ControllableAirShipInstance) && creature.equals(_dockedShip))
|
||||||
{
|
|
||||||
if (creature.equals(_dockedShip))
|
|
||||||
{
|
{
|
||||||
if (_departSchedule != null)
|
if (_departSchedule != null)
|
||||||
{
|
{
|
||||||
@@ -320,7 +315,6 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
_dockedShip = null;
|
_dockedShip = null;
|
||||||
_isBusy = false;
|
_isBusy = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,15 +352,12 @@ public abstract class AirShipController extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_arrivalPath == null)
|
else if (!ZoneManager.getInstance().getZoneById(_dockZone, ScriptZone.class).isInsideZone(_shipSpawnX, _shipSpawnY, _shipSpawnZ))
|
||||||
{
|
|
||||||
if (!ZoneManager.getInstance().getZoneById(_dockZone, ScriptZone.class).isInsideZone(_shipSpawnX, _shipSpawnY, _shipSpawnZ))
|
|
||||||
{
|
{
|
||||||
LOGGER.warning(getName() + ": Arrival path is null and spawn point not in zone " + _dockZone + ", controller disabled");
|
LOGGER.warning(getName() + ": Arrival path is null and spawn point not in zone " + _dockZone + ", controller disabled");
|
||||||
_isBusy = true;
|
_isBusy = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (_departPath != null)
|
if (_departPath != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1755,7 +1755,7 @@ public class Config
|
|||||||
}
|
}
|
||||||
Arrays.sort(ENCHANT_BLACKLIST);
|
Arrays.sort(ENCHANT_BLACKLIST);
|
||||||
DISABLE_OVER_ENCHANTING = Character.getBoolean("DisableOverEnchanting", true);
|
DISABLE_OVER_ENCHANTING = Character.getBoolean("DisableOverEnchanting", true);
|
||||||
String[] array = Character.getString("AugmentationBlackList", "6656,6657,6658,6659,6660,6661,6662,8191,10170,10314,13740,13741,13742,13743,13744,13745,13746,13747,13748,14592,14593,14594,14595,14596,14597,14598,14599,14600,14664,14665,14666,14667,14668,14669,14670,14671,14672,14801,14802,14803,14804,14805,14806,14807,14808,14809,15282,15283,15284,15285,15286,15287,15288,15289,15290,15291,15292,15293,15294,15295,15296,15297,15298,15299,16025,16026,21712,22173,22174,22175").split(",");
|
final String[] array = Character.getString("AugmentationBlackList", "6656,6657,6658,6659,6660,6661,6662,8191,10170,10314,13740,13741,13742,13743,13744,13745,13746,13747,13748,14592,14593,14594,14595,14596,14597,14598,14599,14600,14664,14665,14666,14667,14668,14669,14670,14671,14672,14801,14802,14803,14804,14805,14806,14807,14808,14809,15282,15283,15284,15285,15286,15287,15288,15289,15290,15291,15292,15293,15294,15295,15296,15297,15298,15299,16025,16026,21712,22173,22174,22175").split(",");
|
||||||
AUGMENTATION_BLACKLIST = new int[array.length];
|
AUGMENTATION_BLACKLIST = new int[array.length];
|
||||||
|
|
||||||
for (int i = 0; i < array.length; i++)
|
for (int i = 0; i < array.length; i++)
|
||||||
@@ -3400,11 +3400,11 @@ public class Config
|
|||||||
NETWORK_SERVER_LINK = VoteReward.getString("NetworkServerLink", "");
|
NETWORK_SERVER_LINK = VoteReward.getString("NetworkServerLink", "");
|
||||||
NETWORK_VOTES_DIFFERENCE = VoteReward.getInt("NetworkVotesDifference", 5);
|
NETWORK_VOTES_DIFFERENCE = VoteReward.getInt("NetworkVotesDifference", 5);
|
||||||
NETWORK_REWARD_CHECK_TIME = VoteReward.getInt("NetworkRewardCheckTime", 5);
|
NETWORK_REWARD_CHECK_TIME = VoteReward.getInt("NetworkRewardCheckTime", 5);
|
||||||
String NETWORK_SMALL_REWARD_VALUE = VoteReward.getString("NetworkReward", "57,100000000;");
|
final String NETWORK_SMALL_REWARD_VALUE = VoteReward.getString("NetworkReward", "57,100000000;");
|
||||||
String[] NETWORK_small_reward_splitted_1 = NETWORK_SMALL_REWARD_VALUE.split(";");
|
final String[] NETWORK_small_reward_splitted_1 = NETWORK_SMALL_REWARD_VALUE.split(";");
|
||||||
for (String i : NETWORK_small_reward_splitted_1)
|
for (String i : NETWORK_small_reward_splitted_1)
|
||||||
{
|
{
|
||||||
String[] NETWORK_small_reward_splitted_2 = i.split(",");
|
final String[] NETWORK_small_reward_splitted_2 = i.split(",");
|
||||||
NETWORK_REWARD.put(Integer.parseInt(NETWORK_small_reward_splitted_2[0]), Integer.parseInt(NETWORK_small_reward_splitted_2[1]));
|
NETWORK_REWARD.put(Integer.parseInt(NETWORK_small_reward_splitted_2[0]), Integer.parseInt(NETWORK_small_reward_splitted_2[1]));
|
||||||
}
|
}
|
||||||
NETWORK_DUALBOXES_ALLOWED = VoteReward.getInt("NetworkDualboxesAllowed", 1);
|
NETWORK_DUALBOXES_ALLOWED = VoteReward.getInt("NetworkDualboxesAllowed", 1);
|
||||||
@@ -3413,11 +3413,11 @@ public class Config
|
|||||||
TOPZONE_SERVER_LINK = VoteReward.getString("TopzoneServerLink", "");
|
TOPZONE_SERVER_LINK = VoteReward.getString("TopzoneServerLink", "");
|
||||||
TOPZONE_VOTES_DIFFERENCE = VoteReward.getInt("TopzoneVotesDifference", 5);
|
TOPZONE_VOTES_DIFFERENCE = VoteReward.getInt("TopzoneVotesDifference", 5);
|
||||||
TOPZONE_REWARD_CHECK_TIME = VoteReward.getInt("TopzoneRewardCheckTime", 5);
|
TOPZONE_REWARD_CHECK_TIME = VoteReward.getInt("TopzoneRewardCheckTime", 5);
|
||||||
String TOPZONE_SMALL_REWARD_VALUE = VoteReward.getString("TopzoneReward", "57,100000000;");
|
final String TOPZONE_SMALL_REWARD_VALUE = VoteReward.getString("TopzoneReward", "57,100000000;");
|
||||||
String[] topzone_small_reward_splitted_1 = TOPZONE_SMALL_REWARD_VALUE.split(";");
|
final String[] topzone_small_reward_splitted_1 = TOPZONE_SMALL_REWARD_VALUE.split(";");
|
||||||
for (String i : topzone_small_reward_splitted_1)
|
for (String i : topzone_small_reward_splitted_1)
|
||||||
{
|
{
|
||||||
String[] topzone_small_reward_splitted_2 = i.split(",");
|
final String[] topzone_small_reward_splitted_2 = i.split(",");
|
||||||
TOPZONE_REWARD.put(Integer.parseInt(topzone_small_reward_splitted_2[0]), Integer.parseInt(topzone_small_reward_splitted_2[1]));
|
TOPZONE_REWARD.put(Integer.parseInt(topzone_small_reward_splitted_2[0]), Integer.parseInt(topzone_small_reward_splitted_2[1]));
|
||||||
}
|
}
|
||||||
TOPZONE_DUALBOXES_ALLOWED = VoteReward.getInt("TopzoneDualboxesAllowed", 1);
|
TOPZONE_DUALBOXES_ALLOWED = VoteReward.getInt("TopzoneDualboxesAllowed", 1);
|
||||||
@@ -3426,11 +3426,11 @@ public class Config
|
|||||||
HOPZONE_SERVER_LINK = VoteReward.getString("HopzoneServerLink", "");
|
HOPZONE_SERVER_LINK = VoteReward.getString("HopzoneServerLink", "");
|
||||||
HOPZONE_VOTES_DIFFERENCE = VoteReward.getInt("HopzoneVotesDifference", 5);
|
HOPZONE_VOTES_DIFFERENCE = VoteReward.getInt("HopzoneVotesDifference", 5);
|
||||||
HOPZONE_REWARD_CHECK_TIME = VoteReward.getInt("HopzoneRewardCheckTime", 5);
|
HOPZONE_REWARD_CHECK_TIME = VoteReward.getInt("HopzoneRewardCheckTime", 5);
|
||||||
String HOPZONE_SMALL_REWARD_VALUE = VoteReward.getString("HopzoneReward", "57,100000000;");
|
final String HOPZONE_SMALL_REWARD_VALUE = VoteReward.getString("HopzoneReward", "57,100000000;");
|
||||||
String[] hopzone_small_reward_splitted_1 = HOPZONE_SMALL_REWARD_VALUE.split(";");
|
final String[] hopzone_small_reward_splitted_1 = HOPZONE_SMALL_REWARD_VALUE.split(";");
|
||||||
for (String i : hopzone_small_reward_splitted_1)
|
for (String i : hopzone_small_reward_splitted_1)
|
||||||
{
|
{
|
||||||
String[] hopzone_small_reward_splitted_2 = i.split(",");
|
final String[] hopzone_small_reward_splitted_2 = i.split(",");
|
||||||
HOPZONE_REWARD.put(Integer.parseInt(hopzone_small_reward_splitted_2[0]), Integer.parseInt(hopzone_small_reward_splitted_2[1]));
|
HOPZONE_REWARD.put(Integer.parseInt(hopzone_small_reward_splitted_2[0]), Integer.parseInt(hopzone_small_reward_splitted_2[1]));
|
||||||
}
|
}
|
||||||
HOPZONE_DUALBOXES_ALLOWED = VoteReward.getInt("HopzoneDualboxesAllowed", 1);
|
HOPZONE_DUALBOXES_ALLOWED = VoteReward.getInt("HopzoneDualboxesAllowed", 1);
|
||||||
|
|||||||
+8
-8
@@ -71,7 +71,7 @@ public class LimitLinesDocumentListener implements DocumentListener
|
|||||||
{
|
{
|
||||||
if (maximumLines < 1)
|
if (maximumLines < 1)
|
||||||
{
|
{
|
||||||
String message = "Maximum lines must be greater than 0";
|
final String message = "Maximum lines must be greater than 0";
|
||||||
throw new IllegalArgumentException(message);
|
throw new IllegalArgumentException(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,8 +106,8 @@ public class LimitLinesDocumentListener implements DocumentListener
|
|||||||
private void removeLines(DocumentEvent e)
|
private void removeLines(DocumentEvent e)
|
||||||
{
|
{
|
||||||
// The root Element of the Document will tell us the total number of line in the Document.
|
// The root Element of the Document will tell us the total number of line in the Document.
|
||||||
Document document = e.getDocument();
|
final Document document = e.getDocument();
|
||||||
Element root = document.getDefaultRootElement();
|
final Element root = document.getDefaultRootElement();
|
||||||
|
|
||||||
while (root.getElementCount() > _maximumLines)
|
while (root.getElementCount() > _maximumLines)
|
||||||
{
|
{
|
||||||
@@ -127,8 +127,8 @@ public class LimitLinesDocumentListener implements DocumentListener
|
|||||||
*/
|
*/
|
||||||
private void removeFromStart(Document document, Element root)
|
private void removeFromStart(Document document, Element root)
|
||||||
{
|
{
|
||||||
Element line = root.getElement(0);
|
final Element line = root.getElement(0);
|
||||||
int end = line.getEndOffset();
|
final int end = line.getEndOffset();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -147,9 +147,9 @@ public class LimitLinesDocumentListener implements DocumentListener
|
|||||||
{
|
{
|
||||||
// We use start minus 1 to make sure we remove the newline character of the previous line.
|
// We use start minus 1 to make sure we remove the newline character of the previous line.
|
||||||
|
|
||||||
Element line = root.getElement(root.getElementCount() - 1);
|
final Element line = root.getElement(root.getElementCount() - 1);
|
||||||
int start = line.getStartOffset();
|
final int start = line.getStartOffset();
|
||||||
int end = line.getEndOffset();
|
final int end = line.getEndOffset();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class SplashScreen extends JWindow
|
|||||||
{
|
{
|
||||||
setBackground(new Color(0, 255, 0, 0)); // Transparency.
|
setBackground(new Color(0, 255, 0, 0)); // Transparency.
|
||||||
image = Toolkit.getDefaultToolkit().getImage(path);
|
image = Toolkit.getDefaultToolkit().getImage(path);
|
||||||
ImageIcon imageIcon = new ImageIcon(image);
|
final ImageIcon imageIcon = new ImageIcon(image);
|
||||||
setSize(imageIcon.getIconWidth(), imageIcon.getIconHeight());
|
setSize(imageIcon.getIconWidth(), imageIcon.getIconHeight());
|
||||||
setLocationRelativeTo(null);
|
setLocationRelativeTo(null);
|
||||||
setAlwaysOnTop(true);
|
setAlwaysOnTop(true);
|
||||||
|
|||||||
@@ -366,8 +366,9 @@ public class RecipeController
|
|||||||
{
|
{
|
||||||
Thread.sleep(_delay);
|
Thread.sleep(_delay);
|
||||||
}
|
}
|
||||||
catch (InterruptedException e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
// Ignore.
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ public class HtmCache
|
|||||||
BufferedInputStream bis = new BufferedInputStream(fis))
|
BufferedInputStream bis = new BufferedInputStream(fis))
|
||||||
{
|
{
|
||||||
final int bytes = bis.available();
|
final int bytes = bis.available();
|
||||||
byte[] raw = new byte[bytes];
|
final byte[] raw = new byte[bytes];
|
||||||
|
|
||||||
bis.read(raw);
|
bis.read(raw);
|
||||||
content = new String(raw, StandardCharsets.UTF_8);
|
content = new String(raw, StandardCharsets.UTF_8);
|
||||||
|
|||||||
+28
-28
@@ -60,7 +60,7 @@ public class OfflineTradersTable
|
|||||||
PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE);
|
PreparedStatement stm1 = con.prepareStatement(CLEAR_OFFLINE_TABLE);
|
||||||
PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS);
|
PreparedStatement stm2 = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS);
|
||||||
PreparedStatement stm3 = con.prepareStatement(SAVE_OFFLINE_STATUS);
|
PreparedStatement stm3 = con.prepareStatement(SAVE_OFFLINE_STATUS);
|
||||||
PreparedStatement stm_items = con.prepareStatement(SAVE_ITEMS))
|
PreparedStatement stmItems = con.prepareStatement(SAVE_ITEMS))
|
||||||
{
|
{
|
||||||
stm1.execute();
|
stm1.execute();
|
||||||
stm2.execute();
|
stm2.execute();
|
||||||
@@ -88,12 +88,12 @@ public class OfflineTradersTable
|
|||||||
title = pc.getBuyList().getTitle();
|
title = pc.getBuyList().getTitle();
|
||||||
for (TradeItem i : pc.getBuyList().getItems())
|
for (TradeItem i : pc.getBuyList().getItems())
|
||||||
{
|
{
|
||||||
stm_items.setInt(1, pc.getObjectId());
|
stmItems.setInt(1, pc.getObjectId());
|
||||||
stm_items.setInt(2, i.getItem().getId());
|
stmItems.setInt(2, i.getItem().getId());
|
||||||
stm_items.setLong(3, i.getCount());
|
stmItems.setLong(3, i.getCount());
|
||||||
stm_items.setLong(4, i.getPrice());
|
stmItems.setLong(4, i.getPrice());
|
||||||
stm_items.executeUpdate();
|
stmItems.executeUpdate();
|
||||||
stm_items.clearParameters();
|
stmItems.clearParameters();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -109,24 +109,24 @@ public class OfflineTradersTable
|
|||||||
{
|
{
|
||||||
for (SellBuffHolder holder : pc.getSellingBuffs())
|
for (SellBuffHolder holder : pc.getSellingBuffs())
|
||||||
{
|
{
|
||||||
stm_items.setInt(1, pc.getObjectId());
|
stmItems.setInt(1, pc.getObjectId());
|
||||||
stm_items.setInt(2, holder.getSkillId());
|
stmItems.setInt(2, holder.getSkillId());
|
||||||
stm_items.setLong(3, 0);
|
stmItems.setLong(3, 0);
|
||||||
stm_items.setLong(4, holder.getPrice());
|
stmItems.setLong(4, holder.getPrice());
|
||||||
stm_items.executeUpdate();
|
stmItems.executeUpdate();
|
||||||
stm_items.clearParameters();
|
stmItems.clearParameters();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (TradeItem i : pc.getSellList().getItems())
|
for (TradeItem i : pc.getSellList().getItems())
|
||||||
{
|
{
|
||||||
stm_items.setInt(1, pc.getObjectId());
|
stmItems.setInt(1, pc.getObjectId());
|
||||||
stm_items.setInt(2, i.getObjectId());
|
stmItems.setInt(2, i.getObjectId());
|
||||||
stm_items.setLong(3, i.getCount());
|
stmItems.setLong(3, i.getCount());
|
||||||
stm_items.setLong(4, i.getPrice());
|
stmItems.setLong(4, i.getPrice());
|
||||||
stm_items.executeUpdate();
|
stmItems.executeUpdate();
|
||||||
stm_items.clearParameters();
|
stmItems.clearParameters();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -140,12 +140,12 @@ public class OfflineTradersTable
|
|||||||
title = pc.getStoreName();
|
title = pc.getStoreName();
|
||||||
for (ManufactureItem i : pc.getManufactureItems().values())
|
for (ManufactureItem i : pc.getManufactureItems().values())
|
||||||
{
|
{
|
||||||
stm_items.setInt(1, pc.getObjectId());
|
stmItems.setInt(1, pc.getObjectId());
|
||||||
stm_items.setInt(2, i.getRecipeId());
|
stmItems.setInt(2, i.getRecipeId());
|
||||||
stm_items.setLong(3, 0);
|
stmItems.setLong(3, 0);
|
||||||
stm_items.setLong(4, i.getCost());
|
stmItems.setLong(4, i.getCost());
|
||||||
stm_items.executeUpdate();
|
stmItems.executeUpdate();
|
||||||
stm_items.clearParameters();
|
stmItems.clearParameters();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -231,10 +231,10 @@ public class OfflineTradersTable
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
try (PreparedStatement stm_items = con.prepareStatement(LOAD_OFFLINE_ITEMS))
|
try (PreparedStatement stmItems = con.prepareStatement(LOAD_OFFLINE_ITEMS))
|
||||||
{
|
{
|
||||||
stm_items.setInt(1, player.getObjectId());
|
stmItems.setInt(1, player.getObjectId());
|
||||||
try (ResultSet items = stm_items.executeQuery())
|
try (ResultSet items = stmItems.executeQuery())
|
||||||
{
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
|||||||
+3
-3
@@ -93,7 +93,7 @@ public class ItemCrystallizationData implements IXmlReader
|
|||||||
{
|
{
|
||||||
if ("item".equalsIgnoreCase(c.getNodeName()))
|
if ("item".equalsIgnoreCase(c.getNodeName()))
|
||||||
{
|
{
|
||||||
NamedNodeMap attrs = c.getAttributes();
|
final NamedNodeMap attrs = c.getAttributes();
|
||||||
final int itemId = parseInteger(attrs, "id");
|
final int itemId = parseInteger(attrs, "id");
|
||||||
final long itemCount = parseLong(attrs, "count");
|
final long itemCount = parseLong(attrs, "count");
|
||||||
final double itemChance = parseDouble(attrs, "chance");
|
final double itemChance = parseDouble(attrs, "chance");
|
||||||
@@ -117,7 +117,7 @@ public class ItemCrystallizationData implements IXmlReader
|
|||||||
{
|
{
|
||||||
if ("item".equalsIgnoreCase(c.getNodeName()))
|
if ("item".equalsIgnoreCase(c.getNodeName()))
|
||||||
{
|
{
|
||||||
NamedNodeMap attrs = c.getAttributes();
|
final NamedNodeMap attrs = c.getAttributes();
|
||||||
final int itemId = parseInteger(attrs, "id");
|
final int itemId = parseInteger(attrs, "id");
|
||||||
final long itemCount = parseLong(attrs, "count");
|
final long itemCount = parseLong(attrs, "count");
|
||||||
final double itemChance = parseDouble(attrs, "chance");
|
final double itemChance = parseDouble(attrs, "chance");
|
||||||
@@ -154,7 +154,7 @@ public class ItemCrystallizationData implements IXmlReader
|
|||||||
|
|
||||||
if (chance > 100.)
|
if (chance > 100.)
|
||||||
{
|
{
|
||||||
double countMul = Math.ceil(chance / 100.);
|
final double countMul = Math.ceil(chance / 100.);
|
||||||
chance /= countMul;
|
chance /= countMul;
|
||||||
count *= countMul;
|
count *= countMul;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -175,7 +175,7 @@ public class VariationData implements IXmlReader
|
|||||||
|
|
||||||
for (int item : itemGroup)
|
for (int item : itemGroup)
|
||||||
{
|
{
|
||||||
Map<Integer, VariationFee> fees = _fees.computeIfAbsent(item, k -> new HashMap<>());
|
final Map<Integer, VariationFee> fees = _fees.computeIfAbsent(item, k -> new HashMap<>());
|
||||||
fees.putAll(feeByMinerals);
|
fees.putAll(feeByMinerals);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@@ -206,8 +206,8 @@ public class VariationData implements IXmlReader
|
|||||||
|
|
||||||
private VariationInstance generateRandomVariation(Variation variation, VariationWeaponType weaponType)
|
private VariationInstance generateRandomVariation(Variation variation, VariationWeaponType weaponType)
|
||||||
{
|
{
|
||||||
Options option1 = variation.getRandomEffect(weaponType, 0);
|
final Options option1 = variation.getRandomEffect(weaponType, 0);
|
||||||
Options option2 = variation.getRandomEffect(weaponType, 1);
|
final Options option2 = variation.getRandomEffect(weaponType, 1);
|
||||||
return ((option1 != null) && (option2 != null)) ? new VariationInstance(variation.getMineralId(), option1, option2) : null;
|
return ((option1 != null) && (option2 != null)) ? new VariationInstance(variation.getMineralId(), option1, option2) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -246,7 +246,7 @@ public class VariationData implements IXmlReader
|
|||||||
|
|
||||||
public boolean hasFeeData(int itemId)
|
public boolean hasFeeData(int itemId)
|
||||||
{
|
{
|
||||||
Map<Integer, VariationFee> itemFees = _fees.get(itemId);
|
final Map<Integer, VariationFee> itemFees = _fees.get(itemId);
|
||||||
return (itemFees != null) && !itemFees.isEmpty();
|
return (itemFees != null) && !itemFees.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ public class GeoEngine
|
|||||||
FileChannel fc = raf.getChannel())
|
FileChannel fc = raf.getChannel())
|
||||||
{
|
{
|
||||||
// initialize file buffer
|
// initialize file buffer
|
||||||
MappedByteBuffer buffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()).load();
|
final MappedByteBuffer buffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()).load();
|
||||||
buffer.order(ByteOrder.LITTLE_ENDIAN);
|
buffer.order(ByteOrder.LITTLE_ENDIAN);
|
||||||
|
|
||||||
// get block indexes
|
// get block indexes
|
||||||
@@ -563,7 +563,7 @@ public class GeoEngine
|
|||||||
dirt = 0;
|
dirt = 0;
|
||||||
|
|
||||||
// calculate next point coordinates
|
// calculate next point coordinates
|
||||||
int e2 = 2 * d;
|
final int e2 = 2 * d;
|
||||||
if ((e2 > -dy) && (e2 < dx))
|
if ((e2 > -dy) && (e2 < dx))
|
||||||
{
|
{
|
||||||
// calculate next point XY coordinates
|
// calculate next point XY coordinates
|
||||||
@@ -713,7 +713,7 @@ public class GeoEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
// perform geodata check
|
// perform geodata check
|
||||||
GeoLocation loc = checkMove(gox, goy, goz, gtx, gty, gtz, instance);
|
final GeoLocation loc = checkMove(gox, goy, goz, gtx, gty, gtz, instance);
|
||||||
return (loc.getGeoX() == gtx) && (loc.getGeoY() == gty);
|
return (loc.getGeoX() == gtx) && (loc.getGeoY() == gty);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -843,7 +843,7 @@ public class GeoEngine
|
|||||||
direction = 0;
|
direction = 0;
|
||||||
|
|
||||||
// calculate next point coordinates
|
// calculate next point coordinates
|
||||||
int e2 = 2 * d;
|
final int e2 = 2 * d;
|
||||||
if ((e2 > -dy) && (e2 < dx))
|
if ((e2 > -dy) && (e2 < dx))
|
||||||
{
|
{
|
||||||
d -= dy;
|
d -= dy;
|
||||||
|
|||||||
+15
-15
@@ -40,18 +40,18 @@ final class GeoEnginePathfinding extends GeoEngine
|
|||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
|
||||||
String[] array = Config.PATHFIND_BUFFERS.split(";");
|
final String[] array = Config.PATHFIND_BUFFERS.split(";");
|
||||||
_buffers = new BufferHolder[array.length];
|
_buffers = new BufferHolder[array.length];
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for (int i = 0; i < array.length; i++)
|
for (int i = 0; i < array.length; i++)
|
||||||
{
|
{
|
||||||
String buf = array[i];
|
final String buf = array[i];
|
||||||
String[] args = buf.split("x");
|
final String[] args = buf.split("x");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int size = Integer.parseInt(args[1]);
|
final int size = Integer.parseInt(args[1]);
|
||||||
count += size;
|
count += size;
|
||||||
_buffers[i] = new BufferHolder(Integer.parseInt(args[0]), size);
|
_buffers[i] = new BufferHolder(Integer.parseInt(args[0]), size);
|
||||||
}
|
}
|
||||||
@@ -68,24 +68,24 @@ final class GeoEnginePathfinding extends GeoEngine
|
|||||||
public List<Location> findPath(int ox, int oy, int oz, int tx, int ty, int tz, Instance instance)
|
public List<Location> findPath(int ox, int oy, int oz, int tx, int ty, int tz, Instance instance)
|
||||||
{
|
{
|
||||||
// get origin and check existing geo coords
|
// get origin and check existing geo coords
|
||||||
int gox = getGeoX(ox);
|
final int gox = getGeoX(ox);
|
||||||
int goy = getGeoY(oy);
|
final int goy = getGeoY(oy);
|
||||||
if (!hasGeoPos(gox, goy))
|
if (!hasGeoPos(gox, goy))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
short goz = getHeightNearest(gox, goy, oz);
|
final short goz = getHeightNearest(gox, goy, oz);
|
||||||
|
|
||||||
// get target and check existing geo coords
|
// get target and check existing geo coords
|
||||||
int gtx = getGeoX(tx);
|
final int gtx = getGeoX(tx);
|
||||||
int gty = getGeoY(ty);
|
final int gty = getGeoY(ty);
|
||||||
if (!hasGeoPos(gtx, gty))
|
if (!hasGeoPos(gtx, gty))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
short gtz = getHeightNearest(gtx, gty, tz);
|
final short gtz = getHeightNearest(gtx, gty, tz);
|
||||||
|
|
||||||
// Prepare buffer for pathfinding calculations
|
// Prepare buffer for pathfinding calculations
|
||||||
final NodeBuffer buffer = getBuffer(64 + (2 * Math.max(Math.abs(gox - gtx), Math.abs(goy - gty))));
|
final NodeBuffer buffer = getBuffer(64 + (2 * Math.max(Math.abs(gox - gtx), Math.abs(goy - gty))));
|
||||||
@@ -98,7 +98,7 @@ final class GeoEnginePathfinding extends GeoEngine
|
|||||||
List<Location> path = null;
|
List<Location> path = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Node result = buffer.findPath(gox, goy, goz, gtx, gty, gtz);
|
final Node result = buffer.findPath(gox, goy, goz, gtx, gty, gtz);
|
||||||
|
|
||||||
if (result == null)
|
if (result == null)
|
||||||
{
|
{
|
||||||
@@ -124,7 +124,7 @@ final class GeoEnginePathfinding extends GeoEngine
|
|||||||
}
|
}
|
||||||
|
|
||||||
// get path list iterator
|
// get path list iterator
|
||||||
ListIterator<Location> point = path.listIterator();
|
final ListIterator<Location> point = path.listIterator();
|
||||||
|
|
||||||
// get node A (origin)
|
// get node A (origin)
|
||||||
int nodeAx = gox;
|
int nodeAx = gox;
|
||||||
@@ -139,10 +139,10 @@ final class GeoEnginePathfinding extends GeoEngine
|
|||||||
while (point.hasNext() && (count++ < Config.MAX_ITERATIONS))
|
while (point.hasNext() && (count++ < Config.MAX_ITERATIONS))
|
||||||
{
|
{
|
||||||
// get node C
|
// get node C
|
||||||
GeoLocation nodeC = (GeoLocation) path.get(point.nextIndex());
|
final GeoLocation nodeC = (GeoLocation) path.get(point.nextIndex());
|
||||||
|
|
||||||
// check movement from node A to node C
|
// check movement from node A to node C
|
||||||
GeoLocation loc = checkMove(nodeAx, nodeAy, nodeAz, nodeC.getGeoX(), nodeC.getGeoY(), nodeC.getZ(), instance);
|
final GeoLocation loc = checkMove(nodeAx, nodeAy, nodeAz, nodeC.getGeoX(), nodeC.getGeoY(), nodeC.getZ(), instance);
|
||||||
if ((loc.getGeoX() == nodeC.getGeoX()) && (loc.getGeoY() == nodeC.getGeoY()))
|
if ((loc.getGeoX() == nodeC.getGeoX()) && (loc.getGeoY() == nodeC.getGeoY()))
|
||||||
{
|
{
|
||||||
// can move from node A to node C
|
// can move from node A to node C
|
||||||
@@ -175,7 +175,7 @@ final class GeoEnginePathfinding extends GeoEngine
|
|||||||
private static List<Location> constructPath(Node target)
|
private static List<Location> constructPath(Node target)
|
||||||
{
|
{
|
||||||
// create empty list
|
// create empty list
|
||||||
LinkedList<Location> list = new LinkedList<>();
|
final LinkedList<Location> list = new LinkedList<>();
|
||||||
|
|
||||||
// set direction X/Y
|
// set direction X/Y
|
||||||
int dx = 0;
|
int dx = 0;
|
||||||
|
|||||||
+2
-2
@@ -86,7 +86,7 @@ public class BlockMultilayer extends ABlock
|
|||||||
if (format != GeoFormat.L2D)
|
if (format != GeoFormat.L2D)
|
||||||
{
|
{
|
||||||
// get data
|
// get data
|
||||||
short data = bb.getShort();
|
final short data = bb.getShort();
|
||||||
|
|
||||||
// add nswe and height
|
// add nswe and height
|
||||||
_temp.put((byte) (data & 0x000F));
|
_temp.put((byte) (data & 0x000F));
|
||||||
@@ -453,7 +453,7 @@ public class BlockMultilayer extends ABlock
|
|||||||
for (int i = 0; i < GeoStructure.BLOCK_CELLS; i++)
|
for (int i = 0; i < GeoStructure.BLOCK_CELLS; i++)
|
||||||
{
|
{
|
||||||
// write layers count
|
// write layers count
|
||||||
byte layers = _buffer[index++];
|
final byte layers = _buffer[index++];
|
||||||
stream.write(layers);
|
stream.write(layers);
|
||||||
|
|
||||||
// write cell data
|
// write cell data
|
||||||
|
|||||||
+3
-3
@@ -133,7 +133,7 @@ public class NodeBuffer
|
|||||||
private final void expand()
|
private final void expand()
|
||||||
{
|
{
|
||||||
// can't move anywhere, don't expand
|
// can't move anywhere, don't expand
|
||||||
byte nswe = _current.getLoc().getNSWE();
|
final byte nswe = _current.getLoc().getNSWE();
|
||||||
if (nswe == 0)
|
if (nswe == 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -217,7 +217,7 @@ public class NodeBuffer
|
|||||||
}
|
}
|
||||||
|
|
||||||
// get node
|
// get node
|
||||||
Node result = _buffer[ix][iy];
|
final Node result = _buffer[ix][iy];
|
||||||
|
|
||||||
// check and update
|
// check and update
|
||||||
if (result.getLoc() == null)
|
if (result.getLoc() == null)
|
||||||
@@ -239,7 +239,7 @@ public class NodeBuffer
|
|||||||
private final void addNode(int x, int y, short z, int weight)
|
private final void addNode(int x, int y, short z, int weight)
|
||||||
{
|
{
|
||||||
// get node to be expanded
|
// get node to be expanded
|
||||||
Node node = getNode(x, y, z);
|
final Node node = getNode(x, y, z);
|
||||||
if (node == null)
|
if (node == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|||||||
+1
-1
@@ -403,7 +403,7 @@ public class DBSpawnManager
|
|||||||
{
|
{
|
||||||
for (Entry<Integer, StatsSet> entry : _storedInfo.entrySet())
|
for (Entry<Integer, StatsSet> entry : _storedInfo.entrySet())
|
||||||
{
|
{
|
||||||
Integer npcId = entry.getKey();
|
final Integer npcId = entry.getKey();
|
||||||
if (npcId == null)
|
if (npcId == null)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
+8
-8
@@ -95,7 +95,7 @@ public class PremiumManager
|
|||||||
|
|
||||||
private final Consumer<OnPlayerLogout> playerLogoutEvent = event ->
|
private final Consumer<OnPlayerLogout> playerLogoutEvent = event ->
|
||||||
{
|
{
|
||||||
PlayerInstance player = event.getPlayer();
|
final PlayerInstance player = event.getPlayer();
|
||||||
stopExpireTask(player);
|
stopExpireTask(player);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ public class PremiumManager
|
|||||||
*/
|
*/
|
||||||
private void startExpireTask(PlayerInstance player, long delay)
|
private void startExpireTask(PlayerInstance player, long delay)
|
||||||
{
|
{
|
||||||
ScheduledFuture<?> task = ThreadPool.schedule(new PremiumExpireTask(player), delay);
|
final ScheduledFuture<?> task = ThreadPool.schedule(new PremiumExpireTask(player), delay);
|
||||||
expiretasks.put(player.getAccountName(), task);
|
expiretasks.put(player.getAccountName(), task);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,11 +155,11 @@ public class PremiumManager
|
|||||||
|
|
||||||
public void addPremiumTime(String accountName, int timeValue, TimeUnit timeUnit)
|
public void addPremiumTime(String accountName, int timeValue, TimeUnit timeUnit)
|
||||||
{
|
{
|
||||||
long addTime = timeUnit.toMillis(timeValue);
|
final long addTime = timeUnit.toMillis(timeValue);
|
||||||
long now = System.currentTimeMillis();
|
final long now = System.currentTimeMillis();
|
||||||
// new premium task at least from now
|
// new premium task at least from now
|
||||||
long oldPremiumExpiration = Math.max(now, getPremiumExpiration(accountName));
|
final long oldPremiumExpiration = Math.max(now, getPremiumExpiration(accountName));
|
||||||
long newPremiumExpiration = oldPremiumExpiration + addTime;
|
final long newPremiumExpiration = oldPremiumExpiration + addTime;
|
||||||
|
|
||||||
// UPDATE DATABASE
|
// UPDATE DATABASE
|
||||||
try (Connection con = DatabaseFactory.getConnection();
|
try (Connection con = DatabaseFactory.getConnection();
|
||||||
@@ -178,7 +178,7 @@ public class PremiumManager
|
|||||||
premiumData.put(accountName, newPremiumExpiration);
|
premiumData.put(accountName, newPremiumExpiration);
|
||||||
|
|
||||||
// UPDATE PlAYER PREMIUMSTATUS
|
// UPDATE PlAYER PREMIUMSTATUS
|
||||||
PlayerInstance playerOnline = World.getInstance().getPlayers().stream().filter(p -> accountName.equals(p.getAccountName())).findFirst().orElse(null);
|
final PlayerInstance playerOnline = World.getInstance().getPlayers().stream().filter(p -> accountName.equals(p.getAccountName())).findFirst().orElse(null);
|
||||||
if (playerOnline != null)
|
if (playerOnline != null)
|
||||||
{
|
{
|
||||||
stopExpireTask(playerOnline);
|
stopExpireTask(playerOnline);
|
||||||
@@ -195,7 +195,7 @@ public class PremiumManager
|
|||||||
{
|
{
|
||||||
if (checkOnline)
|
if (checkOnline)
|
||||||
{
|
{
|
||||||
PlayerInstance playerOnline = World.getInstance().getPlayers().stream().filter(p -> accountName.equals(p.getAccountName())).findFirst().orElse(null);
|
final PlayerInstance playerOnline = World.getInstance().getPlayers().stream().filter(p -> accountName.equals(p.getAccountName())).findFirst().orElse(null);
|
||||||
if ((playerOnline != null) && playerOnline.hasPremiumStatus())
|
if ((playerOnline != null) && playerOnline.hasPremiumStatus())
|
||||||
{
|
{
|
||||||
playerOnline.setPremiumStatus(false);
|
playerOnline.setPremiumStatus(false);
|
||||||
|
|||||||
@@ -875,7 +875,7 @@ public class Party extends AbstractPlayerGroup
|
|||||||
|
|
||||||
// Add the XP/SP points to the requested party member
|
// Add the XP/SP points to the requested party member
|
||||||
double exp = member.getStat().getValue(Stats.EXPSP_RATE, xpReward * preCalculation);
|
double exp = member.getStat().getValue(Stats.EXPSP_RATE, xpReward * preCalculation);
|
||||||
double sp = member.getStat().getValue(Stats.EXPSP_RATE, spReward * preCalculation);
|
final double sp = member.getStat().getValue(Stats.EXPSP_RATE, spReward * preCalculation);
|
||||||
|
|
||||||
exp = calculateExpSpPartyCutoff(member.getActingPlayer(), topLvl, exp, sp, target.useVitalityRate());
|
exp = calculateExpSpPartyCutoff(member.getActingPlayer(), topLvl, exp, sp, target.useVitalityRate());
|
||||||
if (exp > 0)
|
if (exp > 0)
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ public class Territory
|
|||||||
int zmin = _zMin;
|
int zmin = _zMin;
|
||||||
for (Point p1 : _points)
|
for (Point p1 : _points)
|
||||||
{
|
{
|
||||||
double distance = Math.hypot(p1._x - x, p1._y - y);
|
final double distance = Math.hypot(p1._x - x, p1._y - y);
|
||||||
if ((curdistance == 0) || (distance < curdistance))
|
if ((curdistance == 0) || (distance < curdistance))
|
||||||
{
|
{
|
||||||
curdistance = distance;
|
curdistance = distance;
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class Attackable extends Npc
|
|||||||
private boolean _isRaidMinion = false;
|
private boolean _isRaidMinion = false;
|
||||||
//
|
//
|
||||||
private boolean _champion = false;
|
private boolean _champion = false;
|
||||||
private volatile Map<Creature, AggroInfo> _aggroList = new ConcurrentHashMap<>();
|
private final Map<Creature, AggroInfo> _aggroList = new ConcurrentHashMap<>();
|
||||||
private boolean _isReturningToSpawnPoint = false;
|
private boolean _isReturningToSpawnPoint = false;
|
||||||
private boolean _canReturnToSpawnPoint = true;
|
private boolean _canReturnToSpawnPoint = true;
|
||||||
private boolean _seeThroughSilentMove = false;
|
private boolean _seeThroughSilentMove = false;
|
||||||
@@ -107,7 +107,7 @@ public class Attackable extends Npc
|
|||||||
private double _overhitDamage;
|
private double _overhitDamage;
|
||||||
private Creature _overhitAttacker;
|
private Creature _overhitAttacker;
|
||||||
// Command channel
|
// Command channel
|
||||||
private volatile CommandChannel _firstCommandChannelAttacked = null;
|
private CommandChannel _firstCommandChannelAttacked = null;
|
||||||
private CommandChannelTimer _commandChannelTimer = null;
|
private CommandChannelTimer _commandChannelTimer = null;
|
||||||
private long _commandChannelLastAttack = 0;
|
private long _commandChannelLastAttack = 0;
|
||||||
// Soul crystal
|
// Soul crystal
|
||||||
|
|||||||
@@ -1249,13 +1249,13 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
int damage = 0;
|
int damage = 0;
|
||||||
byte shld = 0;
|
byte shld = 0;
|
||||||
boolean crit = false;
|
boolean crit = false;
|
||||||
boolean miss = Formulas.calcHitMiss(this, target);
|
final boolean miss = Formulas.calcHitMiss(this, target);
|
||||||
if (!shotConsumed)
|
if (!shotConsumed)
|
||||||
{
|
{
|
||||||
shotConsumed = !miss && unchargeShot(ShotType.SOULSHOTS);
|
shotConsumed = !miss && unchargeShot(ShotType.SOULSHOTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ssGrade = (shotConsumed && (weapon != null)) ? weapon.getItemGrade().ordinal() : 0;
|
final int ssGrade = (shotConsumed && (weapon != null)) ? weapon.getItemGrade().ordinal() : 0;
|
||||||
|
|
||||||
// Check if hit isn't missed
|
// Check if hit isn't missed
|
||||||
if (!miss)
|
if (!miss)
|
||||||
@@ -2956,7 +2956,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
|
|
||||||
final int xPrev = getX();
|
final int xPrev = getX();
|
||||||
final int yPrev = getY();
|
final int yPrev = getY();
|
||||||
int zPrev = getZ(); // the z coordinate may be modified by coordinate synchronizations
|
final int zPrev = getZ(); // the z coordinate may be modified by coordinate synchronizations
|
||||||
|
|
||||||
double dx;
|
double dx;
|
||||||
double dy;
|
double dy;
|
||||||
@@ -4415,7 +4415,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
|
|||||||
int reflectedDamage = 0;
|
int reflectedDamage = 0;
|
||||||
|
|
||||||
// Reduce HP of the target and calculate reflection damage to reduce HP of attacker if necessary
|
// Reduce HP of the target and calculate reflection damage to reduce HP of attacker if necessary
|
||||||
double reflectPercent = target.getStat().getValue(Stats.REFLECT_DAMAGE_PERCENT, 0) - getStat().getValue(Stats.REFLECT_DAMAGE_PERCENT_DEFENSE, 0);
|
final double reflectPercent = target.getStat().getValue(Stats.REFLECT_DAMAGE_PERCENT, 0) - getStat().getValue(Stats.REFLECT_DAMAGE_PERCENT_DEFENSE, 0);
|
||||||
if (reflectPercent > 0)
|
if (reflectPercent > 0)
|
||||||
{
|
{
|
||||||
reflectedDamage = (int) ((reflectPercent / 100.) * damage);
|
reflectedDamage = (int) ((reflectPercent / 100.) * damage);
|
||||||
|
|||||||
@@ -698,7 +698,7 @@ public class Npc extends Creature
|
|||||||
String html = HtmCache.getInstance().getHtm(player, "data/html/" + type + "/" + getId() + "-pk.htm");
|
String html = HtmCache.getInstance().getHtm(player, "data/html/" + type + "/" + getId() + "-pk.htm");
|
||||||
if (html != null)
|
if (html != null)
|
||||||
{
|
{
|
||||||
html = html.replaceAll("%objectId%", String.valueOf(getObjectId()));
|
html = html.replace("%objectId%", String.valueOf(getObjectId()));
|
||||||
player.sendPacket(new NpcHtmlMessage(getObjectId(), html));
|
player.sendPacket(new NpcHtmlMessage(getObjectId(), html));
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return true;
|
return true;
|
||||||
@@ -1551,13 +1551,10 @@ public class Npc extends Creature
|
|||||||
item.dropMe(this, newX, newY, newZ);
|
item.dropMe(this, newX, newY, newZ);
|
||||||
|
|
||||||
// Add drop to auto destroy item task.
|
// Add drop to auto destroy item task.
|
||||||
if (!Config.LIST_PROTECTED_ITEMS.contains(itemId))
|
if (!Config.LIST_PROTECTED_ITEMS.contains(itemId) && (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect())))
|
||||||
{
|
|
||||||
if (((Config.AUTODESTROY_ITEM_AFTER > 0) && !item.getItem().hasExImmediateEffect()) || ((Config.HERB_AUTO_DESTROY_TIME > 0) && item.getItem().hasExImmediateEffect()))
|
|
||||||
{
|
{
|
||||||
ItemsAutoDestroy.getInstance().addItem(item);
|
ItemsAutoDestroy.getInstance().addItem(item);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
item.setProtected(false);
|
item.setProtected(false);
|
||||||
|
|
||||||
// If stackable, end loop as entire count is included in 1 instance of item.
|
// If stackable, end loop as entire count is included in 1 instance of item.
|
||||||
|
|||||||
+1
-1
@@ -59,7 +59,7 @@ public class GuardInstance extends Attackable
|
|||||||
}
|
}
|
||||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_GUARDS_ENABLED && attacker.isPlayable())
|
||||||
{
|
{
|
||||||
PlayerInstance player = attacker.getActingPlayer();
|
final PlayerInstance player = attacker.getActingPlayer();
|
||||||
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
if ((player.isGood() && getTemplate().isClan(Config.FACTION_EVIL_TEAM_NAME)) || (player.isEvil() && getTemplate().isClan(Config.FACTION_GOOD_TEAM_NAME)))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
+59
-152
@@ -461,7 +461,7 @@ public class PlayerInstance extends Playable
|
|||||||
/** The Raidboss points of this PlayerInstance */
|
/** The Raidboss points of this PlayerInstance */
|
||||||
private int _raidbossPoints;
|
private int _raidbossPoints;
|
||||||
|
|
||||||
private volatile ScheduledFuture<?> _teleportWatchdog;
|
private ScheduledFuture<?> _teleportWatchdog;
|
||||||
|
|
||||||
/** The Siege state of the PlayerInstance */
|
/** The Siege state of the PlayerInstance */
|
||||||
private byte _siegeState = 0;
|
private byte _siegeState = 0;
|
||||||
@@ -550,7 +550,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
private TradeList _activeTradeList;
|
private TradeList _activeTradeList;
|
||||||
private ItemContainer _activeWarehouse;
|
private ItemContainer _activeWarehouse;
|
||||||
private volatile Map<Integer, ManufactureItem> _manufactureItems;
|
private Map<Integer, ManufactureItem> _manufactureItems;
|
||||||
private String _storeName = "";
|
private String _storeName = "";
|
||||||
private TradeList _sellList;
|
private TradeList _sellList;
|
||||||
private TradeList _buyList;
|
private TradeList _buyList;
|
||||||
@@ -628,7 +628,7 @@ public class PlayerInstance extends Playable
|
|||||||
private long _clanCreateExpiryTime;
|
private long _clanCreateExpiryTime;
|
||||||
|
|
||||||
private int _powerGrade = 0;
|
private int _powerGrade = 0;
|
||||||
private volatile EnumIntBitmask<ClanPrivilege> _clanPrivileges = new EnumIntBitmask<>(ClanPrivilege.class, false);
|
private EnumIntBitmask<ClanPrivilege> _clanPrivileges = new EnumIntBitmask<>(ClanPrivilege.class, false);
|
||||||
|
|
||||||
/** PlayerInstance's pledge class (knight, Baron, etc.) */
|
/** PlayerInstance's pledge class (knight, Baron, etc.) */
|
||||||
private int _pledgeClass = 0;
|
private int _pledgeClass = 0;
|
||||||
@@ -711,7 +711,7 @@ public class PlayerInstance extends Playable
|
|||||||
private byte _handysBlockCheckerEventArena = -1;
|
private byte _handysBlockCheckerEventArena = -1;
|
||||||
|
|
||||||
/** new race ticket **/
|
/** new race ticket **/
|
||||||
private final int _race[] = new int[2];
|
private final int[] _race = new int[2];
|
||||||
|
|
||||||
private final BlockList _blockList = new BlockList(this);
|
private final BlockList _blockList = new BlockList(this);
|
||||||
|
|
||||||
@@ -1021,11 +1021,9 @@ public class PlayerInstance extends Playable
|
|||||||
result |= RelationChanged.RELATION_ATTACKER;
|
result |= RelationChanged.RELATION_ATTACKER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((clan != null) && (targetClan != null))
|
if ((clan != null) && (targetClan != null) && (target.getPledgeType() != Clan.SUBUNIT_ACADEMY) && (getPledgeType() != Clan.SUBUNIT_ACADEMY))
|
||||||
{
|
{
|
||||||
if ((target.getPledgeType() != Clan.SUBUNIT_ACADEMY) && (getPledgeType() != Clan.SUBUNIT_ACADEMY))
|
final ClanWar war = clan.getWarWith(target.getClan().getId());
|
||||||
{
|
|
||||||
ClanWar war = clan.getWarWith(target.getClan().getId());
|
|
||||||
if (war != null)
|
if (war != null)
|
||||||
{
|
{
|
||||||
switch (war.getState())
|
switch (war.getState())
|
||||||
@@ -1045,7 +1043,6 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (_handysBlockCheckerEventArena != -1)
|
if (_handysBlockCheckerEventArena != -1)
|
||||||
{
|
{
|
||||||
result |= RelationChanged.RELATION_INSIEGE;
|
result |= RelationChanged.RELATION_INSIEGE;
|
||||||
@@ -1485,7 +1482,7 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** List of all QuestState instance that needs to be notified of this PlayerInstance's or its pet's death */
|
/** List of all QuestState instance that needs to be notified of this PlayerInstance's or its pet's death */
|
||||||
private volatile Set<QuestState> _notifyQuestOfDeathList;
|
private Set<QuestState> _notifyQuestOfDeathList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add QuestState instance that is to be notified of PlayerInstance's death.
|
* Add QuestState instance that is to be notified of PlayerInstance's death.
|
||||||
@@ -1643,11 +1640,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
public boolean isRegisteredOnThisSiegeField(int val)
|
public boolean isRegisteredOnThisSiegeField(int val)
|
||||||
{
|
{
|
||||||
if ((_siegeSide != val) && ((_siegeSide < 81) || (_siegeSide > 89)))
|
return (_siegeSide != val) && ((_siegeSide < 81) || (_siegeSide > 89));
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSiegeSide()
|
public int getSiegeSide()
|
||||||
@@ -2065,7 +2058,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the overloaded status of the PlayerInstance.
|
* Update the overloaded status of the PlayerInstance.
|
||||||
* @param broadcast TODO
|
* @param broadcast
|
||||||
*/
|
*/
|
||||||
public void refreshOverloaded(boolean broadcast)
|
public void refreshOverloaded(boolean broadcast)
|
||||||
{
|
{
|
||||||
@@ -2355,9 +2348,9 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the template of the PlayerInstance.
|
* Set the template of the PlayerInstance.
|
||||||
* @param Id The Identifier of the PlayerTemplate to set to the PlayerInstance
|
* @param id The Identifier of the PlayerTemplate to set to the PlayerInstance
|
||||||
*/
|
*/
|
||||||
public void setClassId(int Id)
|
public void setClassId(int id)
|
||||||
{
|
{
|
||||||
if (!_subclassLock.tryLock())
|
if (!_subclassLock.tryLock())
|
||||||
{
|
{
|
||||||
@@ -2366,7 +2359,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if ((getLvlJoinedAcademy() != 0) && (_clan != null) && CategoryData.getInstance().isInCategory(CategoryType.THIRD_CLASS_GROUP, Id))
|
if ((getLvlJoinedAcademy() != 0) && (_clan != null) && CategoryData.getInstance().isInCategory(CategoryType.THIRD_CLASS_GROUP, id))
|
||||||
{
|
{
|
||||||
if (_lvlJoinedAcademy <= 16)
|
if (_lvlJoinedAcademy <= 16)
|
||||||
{
|
{
|
||||||
@@ -2394,11 +2387,11 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
if (isSubClassActive())
|
if (isSubClassActive())
|
||||||
{
|
{
|
||||||
getSubClasses().get(_classIndex).setClassId(Id);
|
getSubClasses().get(_classIndex).setClassId(id);
|
||||||
}
|
}
|
||||||
setTarget(this);
|
setTarget(this);
|
||||||
broadcastPacket(new MagicSkillUse(this, 5103, 1, 1000, 0));
|
broadcastPacket(new MagicSkillUse(this, 5103, 1, 1000, 0));
|
||||||
setClassTemplate(Id);
|
setClassTemplate(id);
|
||||||
if (getClassId().level() == 3)
|
if (getClassId().level() == 3)
|
||||||
{
|
{
|
||||||
sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_YOUR_THIRD_CLASS_TRANSFER_QUEST);
|
sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_YOUR_THIRD_CLASS_TRANSFER_QUEST);
|
||||||
@@ -3292,7 +3285,6 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
CursedWeaponsManager.getInstance().activate(this, newitem);
|
CursedWeaponsManager.getInstance().activate(this, newitem);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Combat Flag
|
// Combat Flag
|
||||||
else if (FortSiegeManager.getInstance().isCombat(item.getId()))
|
else if (FortSiegeManager.getInstance().isCombat(item.getId()))
|
||||||
{
|
{
|
||||||
@@ -3736,25 +3728,15 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
item.dropMe(this, (getX() + Rnd.get(50)) - 25, (getY() + Rnd.get(50)) - 25, getZ() + 20);
|
item.dropMe(this, (getX() + Rnd.get(50)) - 25, (getY() + Rnd.get(50)) - 25, getZ() + 20);
|
||||||
|
|
||||||
if ((Config.AUTODESTROY_ITEM_AFTER > 0) && Config.DESTROY_DROPPED_PLAYER_ITEM && !Config.LIST_PROTECTED_ITEMS.contains(item.getId()))
|
if ((Config.AUTODESTROY_ITEM_AFTER > 0) && Config.DESTROY_DROPPED_PLAYER_ITEM && !Config.LIST_PROTECTED_ITEMS.contains(item.getId()) && ((item.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM) || !item.isEquipable()))
|
||||||
{
|
|
||||||
if ((item.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM) || !item.isEquipable())
|
|
||||||
{
|
{
|
||||||
ItemsAutoDestroy.getInstance().addItem(item);
|
ItemsAutoDestroy.getInstance().addItem(item);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// protection against auto destroy dropped item
|
// protection against auto destroy dropped item
|
||||||
if (Config.DESTROY_DROPPED_PLAYER_ITEM)
|
if (Config.DESTROY_DROPPED_PLAYER_ITEM)
|
||||||
{
|
{
|
||||||
if (!item.isEquipable() || (item.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM))
|
item.setProtected(item.isEquipable() && (!item.isEquipable() || !Config.DESTROY_EQUIPABLE_PLAYER_ITEM));
|
||||||
{
|
|
||||||
item.setProtected(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
item.setProtected(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3825,23 +3807,13 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
item.dropMe(this, x, y, z);
|
item.dropMe(this, x, y, z);
|
||||||
|
|
||||||
if ((Config.AUTODESTROY_ITEM_AFTER > 0) && Config.DESTROY_DROPPED_PLAYER_ITEM && !Config.LIST_PROTECTED_ITEMS.contains(item.getId()))
|
if ((Config.AUTODESTROY_ITEM_AFTER > 0) && Config.DESTROY_DROPPED_PLAYER_ITEM && !Config.LIST_PROTECTED_ITEMS.contains(item.getId()) && ((item.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM) || !item.isEquipable()))
|
||||||
{
|
|
||||||
if ((item.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM) || !item.isEquipable())
|
|
||||||
{
|
{
|
||||||
ItemsAutoDestroy.getInstance().addItem(item);
|
ItemsAutoDestroy.getInstance().addItem(item);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (Config.DESTROY_DROPPED_PLAYER_ITEM)
|
if (Config.DESTROY_DROPPED_PLAYER_ITEM)
|
||||||
{
|
{
|
||||||
if (!item.isEquipable() || (item.isEquipable() && Config.DESTROY_EQUIPABLE_PLAYER_ITEM))
|
item.setProtected(item.isEquipable() && (!item.isEquipable() || !Config.DESTROY_EQUIPABLE_PLAYER_ITEM));
|
||||||
{
|
|
||||||
item.setProtected(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
item.setProtected(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -4194,7 +4166,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
// Update relation.
|
// Update relation.
|
||||||
final int relation = getRelation(player);
|
final int relation = getRelation(player);
|
||||||
Integer oldrelation = getKnownRelations().get(player.getObjectId());
|
final Integer oldrelation = getKnownRelations().get(player.getObjectId());
|
||||||
if ((oldrelation == null) || (oldrelation != relation))
|
if ((oldrelation == null) || (oldrelation != relation))
|
||||||
{
|
{
|
||||||
final RelationChanged rc = new RelationChanged();
|
final RelationChanged rc = new RelationChanged();
|
||||||
@@ -4489,13 +4461,10 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// You can pickup only 1 combat flag
|
// You can pickup only 1 combat flag
|
||||||
if (FortSiegeManager.getInstance().isCombat(target.getId()))
|
if (FortSiegeManager.getInstance().isCombat(target.getId()) && !FortSiegeManager.getInstance().checkIfCanPickup(this))
|
||||||
{
|
|
||||||
if (!FortSiegeManager.getInstance().checkIfCanPickup(this))
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ((target.getItemLootShedule() != null) && ((target.getOwnerId() == getObjectId()) || isInLooterParty(target.getOwnerId())))
|
if ((target.getItemLootShedule() != null) && ((target.getOwnerId() == getObjectId()) || isInLooterParty(target.getOwnerId())))
|
||||||
{
|
{
|
||||||
@@ -4821,21 +4790,14 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
final ItemInstance legs = getLegsArmorInstance();
|
final ItemInstance legs = getLegsArmorInstance();
|
||||||
final ItemInstance armor = getChestArmorInstance();
|
final ItemInstance armor = getChestArmorInstance();
|
||||||
|
if ((armor != null) && (legs != null) && (legs.getItemType() == ArmorType.HEAVY) && (armor.getItemType() == ArmorType.HEAVY))
|
||||||
if ((armor != null) && (legs != null))
|
|
||||||
{
|
|
||||||
if ((legs.getItemType() == ArmorType.HEAVY) && (armor.getItemType() == ArmorType.HEAVY))
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
if ((armor != null) && ((_inventory.getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == Item.SLOT_FULL_ARMOR) && (armor.getItemType() == ArmorType.HEAVY)))
|
||||||
if (armor != null)
|
|
||||||
{
|
|
||||||
if (((_inventory.getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == Item.SLOT_FULL_ARMOR) && (armor.getItemType() == ArmorType.HEAVY)))
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4843,21 +4805,14 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
final ItemInstance legs = getLegsArmorInstance();
|
final ItemInstance legs = getLegsArmorInstance();
|
||||||
final ItemInstance armor = getChestArmorInstance();
|
final ItemInstance armor = getChestArmorInstance();
|
||||||
|
if ((armor != null) && (legs != null) && (legs.getItemType() == ArmorType.LIGHT) && (armor.getItemType() == ArmorType.LIGHT))
|
||||||
if ((armor != null) && (legs != null))
|
|
||||||
{
|
|
||||||
if ((legs.getItemType() == ArmorType.LIGHT) && (armor.getItemType() == ArmorType.LIGHT))
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
if ((armor != null) && ((_inventory.getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == Item.SLOT_FULL_ARMOR) && (armor.getItemType() == ArmorType.LIGHT)))
|
||||||
if (armor != null)
|
|
||||||
{
|
|
||||||
if (((_inventory.getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == Item.SLOT_FULL_ARMOR) && (armor.getItemType() == ArmorType.LIGHT)))
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4865,21 +4820,14 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
final ItemInstance legs = getLegsArmorInstance();
|
final ItemInstance legs = getLegsArmorInstance();
|
||||||
final ItemInstance armor = getChestArmorInstance();
|
final ItemInstance armor = getChestArmorInstance();
|
||||||
|
if ((armor != null) && (legs != null) && (legs.getItemType() == ArmorType.MAGIC) && (armor.getItemType() == ArmorType.MAGIC))
|
||||||
if ((armor != null) && (legs != null))
|
|
||||||
{
|
|
||||||
if ((legs.getItemType() == ArmorType.MAGIC) && (armor.getItemType() == ArmorType.MAGIC))
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
if ((armor != null) && ((_inventory.getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == Item.SLOT_FULL_ARMOR) && (armor.getItemType() == ArmorType.MAGIC)))
|
||||||
if (armor != null)
|
|
||||||
{
|
|
||||||
if (((_inventory.getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == Item.SLOT_FULL_ARMOR) && (armor.getItemType() == ArmorType.MAGIC)))
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5333,29 +5281,29 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
public void updatePvPStatus(Creature target)
|
public void updatePvPStatus(Creature target)
|
||||||
{
|
{
|
||||||
final PlayerInstance player_target = target.getActingPlayer();
|
final PlayerInstance targetPlayer = target.getActingPlayer();
|
||||||
if (player_target == null)
|
if (targetPlayer == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this == player_target)
|
if (this == targetPlayer)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Config.FACTION_SYSTEM_ENABLED && target.isPlayer() && ((isGood() && player_target.isEvil()) || (isEvil() && player_target.isGood())))
|
if (Config.FACTION_SYSTEM_ENABLED && target.isPlayer() && ((isGood() && targetPlayer.isEvil()) || (isEvil() && targetPlayer.isGood())))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_isInDuel && (player_target.getDuelId() == getDuelId()))
|
if (_isInDuel && (targetPlayer.getDuelId() == getDuelId()))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ((!isInsideZone(ZoneId.PVP) || !player_target.isInsideZone(ZoneId.PVP)) && (player_target.getReputation() >= 0))
|
if ((!isInsideZone(ZoneId.PVP) || !targetPlayer.isInsideZone(ZoneId.PVP)) && (targetPlayer.getReputation() >= 0))
|
||||||
{
|
{
|
||||||
if (checkIfPvP(player_target))
|
if (checkIfPvP(targetPlayer))
|
||||||
{
|
{
|
||||||
setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_PVP_TIME);
|
||||||
}
|
}
|
||||||
@@ -5575,13 +5523,10 @@ public class PlayerInstance extends Playable
|
|||||||
public PlayerInstance getActiveRequester()
|
public PlayerInstance getActiveRequester()
|
||||||
{
|
{
|
||||||
final PlayerInstance requester = _activeRequester;
|
final PlayerInstance requester = _activeRequester;
|
||||||
if (requester != null)
|
if ((requester != null) && requester.isRequestExpired() && (_activeTradeList == null))
|
||||||
{
|
|
||||||
if (requester.isRequestExpired() && (_activeTradeList == null))
|
|
||||||
{
|
{
|
||||||
_activeRequester = null;
|
_activeRequester = null;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return _activeRequester;
|
return _activeRequester;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5625,7 +5570,7 @@ public class PlayerInstance extends Playable
|
|||||||
*/
|
*/
|
||||||
public boolean isRequestExpired()
|
public boolean isRequestExpired()
|
||||||
{
|
{
|
||||||
return !(_requestExpireTime > GameTimeController.getInstance().getGameTicks());
|
return _requestExpireTime <= GameTimeController.getInstance().getGameTicks();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -6695,9 +6640,7 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Restore Subclass Data (cannot be done earlier in function)
|
// Restore Subclass Data (cannot be done earlier in function)
|
||||||
if (restoreSubClassData(player))
|
if (restoreSubClassData(player) && (activeClassId != player.getBaseClass()))
|
||||||
{
|
|
||||||
if (activeClassId != player.getBaseClass())
|
|
||||||
{
|
{
|
||||||
for (SubClass subClass : player.getSubClasses().values())
|
for (SubClass subClass : player.getSubClasses().values())
|
||||||
{
|
{
|
||||||
@@ -6707,7 +6650,6 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if ((player.getClassIndex() == 0) && (activeClassId != player.getBaseClass()))
|
if ((player.getClassIndex() == 0) && (activeClassId != player.getBaseClass()))
|
||||||
{
|
{
|
||||||
// Subclass in use but doesn't exist in DB -
|
// Subclass in use but doesn't exist in DB -
|
||||||
@@ -7288,7 +7230,7 @@ public class PlayerInstance extends Playable
|
|||||||
delete.execute();
|
delete.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
int buff_index = 0;
|
int buffIndex = 0;
|
||||||
final List<Long> storedSkills = new ArrayList<>();
|
final List<Long> storedSkills = new ArrayList<>();
|
||||||
final long currentTime = System.currentTimeMillis();
|
final long currentTime = System.currentTimeMillis();
|
||||||
|
|
||||||
@@ -7355,7 +7297,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
statement.setInt(8, 0); // Store type 0, active buffs/debuffs.
|
statement.setInt(8, 0); // Store type 0, active buffs/debuffs.
|
||||||
statement.setInt(9, _classIndex);
|
statement.setInt(9, _classIndex);
|
||||||
statement.setInt(10, ++buff_index);
|
statement.setInt(10, ++buffIndex);
|
||||||
statement.addBatch();
|
statement.addBatch();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7383,7 +7325,7 @@ public class PlayerInstance extends Playable
|
|||||||
statement.setDouble(7, t.getStamp());
|
statement.setDouble(7, t.getStamp());
|
||||||
statement.setInt(8, 1); // Restore type 1, skill reuse.
|
statement.setInt(8, 1); // Restore type 1, skill reuse.
|
||||||
statement.setInt(9, _classIndex);
|
statement.setInt(9, _classIndex);
|
||||||
statement.setInt(10, ++buff_index);
|
statement.setInt(10, ++buffIndex);
|
||||||
statement.addBatch();
|
statement.addBatch();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7657,9 +7599,7 @@ public class PlayerInstance extends Playable
|
|||||||
// Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature
|
// Add the Skill object to the Creature _skills and its Func objects to the calculator set of the Creature
|
||||||
addSkill(skill);
|
addSkill(skill);
|
||||||
|
|
||||||
if (Config.SKILL_CHECK_ENABLE && (!canOverrideCond(PlayerCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM))
|
if (Config.SKILL_CHECK_ENABLE && (!canOverrideCond(PlayerCondOverride.SKILL_CONDITIONS) || Config.SKILL_CHECK_GM) && !SkillTreesData.getInstance().isSkillAllowed(this, skill))
|
||||||
{
|
|
||||||
if (!SkillTreesData.getInstance().isSkillAllowed(this, skill))
|
|
||||||
{
|
{
|
||||||
Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST);
|
Util.handleIllegalPlayerAction(this, "Player " + getName() + " has invalid skill " + skill.getName() + " (" + skill.getId() + "/" + skill.getLevel() + "), class:" + ClassListData.getInstance().getClass(getClassId()).getClassName(), IllegalActionPunishmentType.BROADCAST);
|
||||||
if (Config.SKILL_CHECK_REMOVE)
|
if (Config.SKILL_CHECK_REMOVE)
|
||||||
@@ -7670,7 +7610,6 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.WARNING, "Could not restore character " + this + " skills: " + e.getMessage(), e);
|
LOGGER.log(Level.WARNING, "Could not restore character " + this + " skills: " + e.getMessage(), e);
|
||||||
@@ -8259,11 +8198,7 @@ public class PlayerInstance extends Playable
|
|||||||
// Check if the attacker is in olympia and olympia start
|
// Check if the attacker is in olympia and olympia start
|
||||||
if (attacker.isPlayer() && attacker.getActingPlayer().isInOlympiadMode())
|
if (attacker.isPlayer() && attacker.getActingPlayer().isInOlympiadMode())
|
||||||
{
|
{
|
||||||
if (_inOlympiadMode && _OlympiadStart && (((PlayerInstance) attacker).getOlympiadGameId() == getOlympiadGameId()))
|
return _inOlympiadMode && _OlympiadStart && (((PlayerInstance) attacker).getOlympiadGameId() == getOlympiadGameId());
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_isOnCustomEvent && (getTeam() == attacker.getTeam()))
|
if (_isOnCustomEvent && (getTeam() == attacker.getTeam()))
|
||||||
@@ -8349,14 +8284,11 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (attacker instanceof DefenderInstance)
|
if ((attacker instanceof DefenderInstance) && (_clan != null))
|
||||||
{
|
|
||||||
if (_clan != null)
|
|
||||||
{
|
{
|
||||||
final Siege siege = SiegeManager.getInstance().getSiege(this);
|
final Siege siege = SiegeManager.getInstance().getSiege(this);
|
||||||
return ((siege != null) && siege.checkIsAttacker(_clan));
|
return ((siege != null) && siege.checkIsAttacker(_clan));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (attacker instanceof GuardInstance)
|
if (attacker instanceof GuardInstance)
|
||||||
{
|
{
|
||||||
@@ -8561,9 +8493,7 @@ public class PlayerInstance extends Playable
|
|||||||
sendPacket(ActionFailed.STATIC_PACKET);
|
sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
|
|
||||||
// Upon failed conditions, next action is called.
|
// Upon failed conditions, next action is called.
|
||||||
if ((skill.getNextAction() != NextActionType.NONE) && (target != this) && target.isAutoAttackable(this))
|
if ((skill.getNextAction() != NextActionType.NONE) && (target != this) && target.isAutoAttackable(this) && ((getAI().getNextIntention() == null) || (getAI().getNextIntention().getCtrlIntention() != CtrlIntention.AI_INTENTION_MOVE_TO)))
|
||||||
{
|
|
||||||
if ((getAI().getNextIntention() == null) || (getAI().getNextIntention().getCtrlIntention() != CtrlIntention.AI_INTENTION_MOVE_TO))
|
|
||||||
{
|
{
|
||||||
if (skill.getNextAction() == NextActionType.ATTACK)
|
if (skill.getNextAction() == NextActionType.ATTACK)
|
||||||
{
|
{
|
||||||
@@ -8574,7 +8504,6 @@ public class PlayerInstance extends Playable
|
|||||||
getAI().setIntention(CtrlIntention.AI_INTENTION_CAST, skill, target, item, false, false);
|
getAI().setIntention(CtrlIntention.AI_INTENTION_CAST, skill, target, item, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -8605,9 +8534,9 @@ public class PlayerInstance extends Playable
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInLooterParty(int LooterId)
|
public boolean isInLooterParty(int looterId)
|
||||||
{
|
{
|
||||||
final PlayerInstance looter = World.getInstance().getPlayer(LooterId);
|
final PlayerInstance looter = World.getInstance().getPlayer(looterId);
|
||||||
|
|
||||||
// if PlayerInstance is in a CommandChannel
|
// if PlayerInstance is in a CommandChannel
|
||||||
if (isInParty() && _party.isInCommandChannel() && (looter != null))
|
if (isInParty() && _party.isInCommandChannel() && (looter != null))
|
||||||
@@ -9023,9 +8952,9 @@ public class PlayerInstance extends Playable
|
|||||||
return _apprentice;
|
return _apprentice;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setApprentice(int apprentice_id)
|
public void setApprentice(int apprenticeId)
|
||||||
{
|
{
|
||||||
_apprentice = apprentice_id;
|
_apprentice = apprenticeId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSponsor()
|
public int getSponsor()
|
||||||
@@ -9033,9 +8962,9 @@ public class PlayerInstance extends Playable
|
|||||||
return _sponsor;
|
return _sponsor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSponsor(int sponsor_id)
|
public void setSponsor(int sponsorId)
|
||||||
{
|
{
|
||||||
_sponsor = sponsor_id;
|
_sponsor = sponsorId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getBookMarkSlot()
|
public int getBookMarkSlot()
|
||||||
@@ -10087,12 +10016,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
public boolean isRentedPet()
|
public boolean isRentedPet()
|
||||||
{
|
{
|
||||||
if (_taskRentPet != null)
|
return _taskRentPet != null;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopWaterTask()
|
public void stopWaterTask()
|
||||||
@@ -10118,12 +10042,7 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
public boolean isInWater()
|
public boolean isInWater()
|
||||||
{
|
{
|
||||||
if (_taskWater != null)
|
return _taskWater != null;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkWaterState()
|
public void checkWaterState()
|
||||||
@@ -10549,12 +10468,11 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void broadcastSnoop(ChatType type, String name, String _text)
|
public void broadcastSnoop(ChatType type, String name, String text)
|
||||||
{
|
{
|
||||||
if (!_snoopListener.isEmpty())
|
if (!_snoopListener.isEmpty())
|
||||||
{
|
{
|
||||||
final Snoop sn = new Snoop(getObjectId(), getName(), type, name, _text);
|
final Snoop sn = new Snoop(getObjectId(), getName(), type, name, text);
|
||||||
|
|
||||||
for (PlayerInstance pci : _snoopListener)
|
for (PlayerInstance pci : _snoopListener)
|
||||||
{
|
{
|
||||||
if (pci != null)
|
if (pci != null)
|
||||||
@@ -11802,9 +11720,7 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
Collection<Skill> currentSkills = getAllSkills();
|
Collection<Skill> currentSkills = getAllSkills();
|
||||||
|
|
||||||
if (isTransformed())
|
if (isTransformed() && !_transformSkills.isEmpty())
|
||||||
{
|
|
||||||
if (!_transformSkills.isEmpty())
|
|
||||||
{
|
{
|
||||||
// Include transformation skills and those skills that are allowed during transformation.
|
// Include transformation skills and those skills that are allowed during transformation.
|
||||||
currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList());
|
currentSkills = currentSkills.stream().filter(Skill::allowOnTransform).collect(Collectors.toList());
|
||||||
@@ -11839,7 +11755,6 @@ public class PlayerInstance extends Playable
|
|||||||
// Include transformation skills.
|
// Include transformation skills.
|
||||||
currentSkills.addAll(_transformSkills.values());
|
currentSkills.addAll(_transformSkills.values());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
return currentSkills.stream()
|
return currentSkills.stream()
|
||||||
@@ -12303,6 +12218,11 @@ public class PlayerInstance extends Playable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Collection<TeleportBookmark> getTeleportBookmarks()
|
||||||
|
{
|
||||||
|
return _tpbookmarks.values();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendInfo(PlayerInstance player)
|
public void sendInfo(PlayerInstance player)
|
||||||
{
|
{
|
||||||
@@ -12936,19 +12856,6 @@ public class PlayerInstance extends Playable
|
|||||||
return _multiSocialTarget;
|
return _multiSocialTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Collection<TeleportBookmark> getTeleportBookmarks()
|
|
||||||
{
|
|
||||||
return _tpbookmarks.values();
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getBookmarkslot()
|
|
||||||
{
|
|
||||||
return _bookmarkslot;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public int getQuestInventoryLimit()
|
public int getQuestInventoryLimit()
|
||||||
{
|
{
|
||||||
return Config.INVENTORY_MAXIMUM_QUEST_ITEMS;
|
return Config.INVENTORY_MAXIMUM_QUEST_ITEMS;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class PetStat extends SummonStat
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_PET_GAINED_S1_XP);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_PET_GAINED_S1_XP);
|
||||||
sm.addLong(finalExp);
|
sm.addLong(finalExp);
|
||||||
getActiveChar().updateAndBroadcastStatus(1);
|
getActiveChar().updateAndBroadcastStatus(1);
|
||||||
getActiveChar().sendPacket(sm);
|
getActiveChar().sendPacket(sm);
|
||||||
|
|||||||
@@ -998,7 +998,7 @@ public class Duel
|
|||||||
|
|
||||||
if (_partyDuel)
|
if (_partyDuel)
|
||||||
{
|
{
|
||||||
boolean teamdefeated = player.getParty().getMembers().stream().anyMatch(member -> member.getDuelState() == DUELSTATE_DUELLING);
|
final boolean teamdefeated = player.getParty().getMembers().stream().anyMatch(member -> member.getDuelState() == DUELSTATE_DUELLING);
|
||||||
|
|
||||||
if (teamdefeated)
|
if (teamdefeated)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -382,13 +382,13 @@ public class Fishing
|
|||||||
// calculate a position in front of the player with a random distance
|
// calculate a position in front of the player with a random distance
|
||||||
final int distMin = FishingData.getInstance().getBaitDistanceMin();
|
final int distMin = FishingData.getInstance().getBaitDistanceMin();
|
||||||
final int distMax = FishingData.getInstance().getBaitDistanceMax();
|
final int distMax = FishingData.getInstance().getBaitDistanceMax();
|
||||||
int distance = Rnd.get(distMin, distMax);
|
final int distance = Rnd.get(distMin, distMax);
|
||||||
final double angle = Util.convertHeadingToDegree(_player.getHeading());
|
final double angle = Util.convertHeadingToDegree(_player.getHeading());
|
||||||
final double radian = Math.toRadians(angle);
|
final double radian = Math.toRadians(angle);
|
||||||
final double sin = Math.sin(radian);
|
final double sin = Math.sin(radian);
|
||||||
final double cos = Math.cos(radian);
|
final double cos = Math.cos(radian);
|
||||||
int baitX = (int) (_player.getX() + (cos * distance));
|
final int baitX = (int) (_player.getX() + (cos * distance));
|
||||||
int baitY = (int) (_player.getY() + (sin * distance));
|
final int baitY = (int) (_player.getY() + (sin * distance));
|
||||||
|
|
||||||
// search for fishing zone
|
// search for fishing zone
|
||||||
FishingZone fishingZone = null;
|
FishingZone fishingZone = null;
|
||||||
@@ -411,7 +411,7 @@ public class Fishing
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int baitZ = computeBaitZ(_player, baitX, baitY, fishingZone, waterZone);
|
final int baitZ = computeBaitZ(_player, baitX, baitY, fishingZone, waterZone);
|
||||||
if (baitZ == Integer.MIN_VALUE)
|
if (baitZ == Integer.MIN_VALUE)
|
||||||
{
|
{
|
||||||
_player.sendPacket(SystemMessageId.YOU_CAN_T_FISH_HERE);
|
_player.sendPacket(SystemMessageId.YOU_CAN_T_FISH_HERE);
|
||||||
|
|||||||
+1
-1
@@ -636,7 +636,7 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl
|
|||||||
// player < party < command channel
|
// player < party < command channel
|
||||||
for (GroupType t : GroupType.values())
|
for (GroupType t : GroupType.values())
|
||||||
{
|
{
|
||||||
if (t != playerGroup && groupMaskContains(t))
|
if ((t != playerGroup) && groupMaskContains(t))
|
||||||
{
|
{
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-27
@@ -323,11 +323,10 @@ public abstract class Inventory extends ItemContainer
|
|||||||
|
|
||||||
it.forEachSkill(ItemSkillType.NORMAL, holder ->
|
it.forEachSkill(ItemSkillType.NORMAL, holder ->
|
||||||
{
|
{
|
||||||
final Skill Skill = holder.getSkill();
|
final Skill skill = holder.getSkill();
|
||||||
|
if (skill != null)
|
||||||
if (Skill != null)
|
|
||||||
{
|
{
|
||||||
player.removeSkill(Skill, false, Skill.isPassive());
|
player.removeSkill(skill, false, skill.isPassive());
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -356,10 +355,7 @@ public abstract class Inventory extends ItemContainer
|
|||||||
if (skill != null)
|
if (skill != null)
|
||||||
{
|
{
|
||||||
player.addSkill(skill, false);
|
player.addSkill(skill, false);
|
||||||
|
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
|
||||||
if (skill.isActive())
|
|
||||||
{
|
|
||||||
if (!player.hasSkillReuse(skill.getReuseHashCode()))
|
|
||||||
{
|
{
|
||||||
final int equipDelay = item.getEquipReuseDelay();
|
final int equipDelay = item.getEquipReuseDelay();
|
||||||
if (equipDelay > 0)
|
if (equipDelay > 0)
|
||||||
@@ -369,7 +365,6 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
updateTimestamp.compareAndSet(false, true);
|
updateTimestamp.compareAndSet(false, true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -470,10 +465,7 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.addSkill(skill, false);
|
player.addSkill(skill, false);
|
||||||
|
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
|
||||||
if (skill.isActive())
|
|
||||||
{
|
|
||||||
if (!player.hasSkillReuse(skill.getReuseHashCode()))
|
|
||||||
{
|
{
|
||||||
final int equipDelay = item.getEquipReuseDelay();
|
final int equipDelay = item.getEquipReuseDelay();
|
||||||
if (equipDelay > 0)
|
if (equipDelay > 0)
|
||||||
@@ -483,7 +475,6 @@ public abstract class Inventory extends ItemContainer
|
|||||||
}
|
}
|
||||||
updateTimestamp.compareAndSet(false, true);
|
updateTimestamp.compareAndSet(false, true);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
update.compareAndSet(false, true);
|
update.compareAndSet(false, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -557,14 +548,11 @@ public abstract class Inventory extends ItemContainer
|
|||||||
if (itemVisualId > 0)
|
if (itemVisualId > 0)
|
||||||
{
|
{
|
||||||
final AppearanceStone stone = AppearanceItemData.getInstance().getStone(itemVisualId);
|
final AppearanceStone stone = AppearanceItemData.getInstance().getStone(itemVisualId);
|
||||||
if (stone != null)
|
if ((stone != null) && (stone.getType() == AppearanceType.FIXED) && verifyAndApply(player, item, ItemInstance::getVisualId))
|
||||||
{
|
|
||||||
if ((stone.getType() == AppearanceType.FIXED) && verifyAndApply(player, item, ItemInstance::getVisualId))
|
|
||||||
{
|
{
|
||||||
update = true;
|
update = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (update)
|
if (update)
|
||||||
{
|
{
|
||||||
@@ -1540,13 +1528,10 @@ public abstract class Inventory extends ItemContainer
|
|||||||
if (pdollSlot >= 0)
|
if (pdollSlot >= 0)
|
||||||
{
|
{
|
||||||
final ItemInstance old = setPaperdollItem(pdollSlot, null);
|
final ItemInstance old = setPaperdollItem(pdollSlot, null);
|
||||||
if (old != null)
|
if ((old != null) && getOwner().isPlayer())
|
||||||
{
|
|
||||||
if (getOwner().isPlayer())
|
|
||||||
{
|
{
|
||||||
((PlayerInstance) getOwner()).refreshExpertisePenalty();
|
((PlayerInstance) getOwner()).refreshExpertisePenalty();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -1973,16 +1958,13 @@ public abstract class Inventory extends ItemContainer
|
|||||||
// find same (or incompatible) talisman type
|
// find same (or incompatible) talisman type
|
||||||
for (int i = PAPERDOLL_DECO1; i < (PAPERDOLL_DECO1 + getTalismanSlots()); i++)
|
for (int i = PAPERDOLL_DECO1; i < (PAPERDOLL_DECO1 + getTalismanSlots()); i++)
|
||||||
{
|
{
|
||||||
if (_paperdoll[i] != null)
|
if ((_paperdoll[i] != null) && (getPaperdollItemId(i) == item.getId()))
|
||||||
{
|
{
|
||||||
if (getPaperdollItemId(i) == item.getId())
|
// overwrite
|
||||||
{
|
|
||||||
// overwtite
|
|
||||||
setPaperdollItem(i, item);
|
setPaperdollItem(i, item);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// no free slot found - put on first free
|
// no free slot found - put on first free
|
||||||
for (int i = PAPERDOLL_DECO1; i < (PAPERDOLL_DECO1 + getTalismanSlots()); i++)
|
for (int i = PAPERDOLL_DECO1; i < (PAPERDOLL_DECO1 + getTalismanSlots()); i++)
|
||||||
|
|||||||
+1
-1
@@ -200,7 +200,7 @@ public class EnchantScroll extends AbstractEnchantItem
|
|||||||
final double finalChance = Math.min(chance + bonusRate + supportBonusRate, 100);
|
final double finalChance = Math.min(chance + bonusRate + supportBonusRate, 100);
|
||||||
|
|
||||||
final double random = 100 * Rnd.nextDouble();
|
final double random = 100 * Rnd.nextDouble();
|
||||||
boolean success = (random < finalChance) || player.tryLuck();
|
final boolean success = (random < finalChance) || player.tryLuck();
|
||||||
|
|
||||||
return success ? EnchantResultType.SUCCESS : EnchantResultType.FAILURE;
|
return success ? EnchantResultType.SUCCESS : EnchantResultType.FAILURE;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -1020,9 +1020,9 @@ public class ItemInstance extends WorldObject
|
|||||||
{
|
{
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
{
|
{
|
||||||
int mineralId = rs.getInt("mineralId");
|
final int mineralId = rs.getInt("mineralId");
|
||||||
int option1 = rs.getInt("option1");
|
final int option1 = rs.getInt("option1");
|
||||||
int option2 = rs.getInt("option2");
|
final int option2 = rs.getInt("option2");
|
||||||
if ((option1 != -1) && (option2 != -1))
|
if ((option1 != -1) && (option2 != -1))
|
||||||
{
|
{
|
||||||
_augmentation = new VariationInstance(mineralId, option1, option2);
|
_augmentation = new VariationInstance(mineralId, option1, option2);
|
||||||
@@ -1779,7 +1779,7 @@ public class ItemInstance extends WorldObject
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Creature owner = getActingPlayer();
|
final Creature owner = getActingPlayer();
|
||||||
if (owner != null)
|
if (owner != null)
|
||||||
{
|
{
|
||||||
for (Condition condition : _item.getConditions())
|
for (Condition condition : _item.getConditions())
|
||||||
|
|||||||
@@ -640,13 +640,13 @@ public class Olympiad extends ListenersContainer
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Calendar currentTime = Calendar.getInstance();
|
final Calendar currentTime = Calendar.getInstance();
|
||||||
currentTime.set(Calendar.AM_PM, Calendar.AM);
|
currentTime.set(Calendar.AM_PM, Calendar.AM);
|
||||||
currentTime.set(Calendar.HOUR, 12);
|
currentTime.set(Calendar.HOUR, 12);
|
||||||
currentTime.set(Calendar.MINUTE, 0);
|
currentTime.set(Calendar.MINUTE, 0);
|
||||||
currentTime.set(Calendar.SECOND, 0);
|
currentTime.set(Calendar.SECOND, 0);
|
||||||
|
|
||||||
Calendar nextChange = Calendar.getInstance();
|
final Calendar nextChange = Calendar.getInstance();
|
||||||
|
|
||||||
switch (Config.ALT_OLY_PERIOD)
|
switch (Config.ALT_OLY_PERIOD)
|
||||||
{
|
{
|
||||||
@@ -999,8 +999,6 @@ public class Olympiad extends ListenersContainer
|
|||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NOBLES != null)
|
|
||||||
{
|
|
||||||
LOGGER_OLYMPIAD.info("Noble,charid,classid,compDone,points");
|
LOGGER_OLYMPIAD.info("Noble,charid,classid,compDone,points");
|
||||||
StatsSet nobleInfo;
|
StatsSet nobleInfo;
|
||||||
for (Entry<Integer, StatsSet> entry : NOBLES.entrySet())
|
for (Entry<Integer, StatsSet> entry : NOBLES.entrySet())
|
||||||
@@ -1019,7 +1017,6 @@ public class Olympiad extends ListenersContainer
|
|||||||
|
|
||||||
LOGGER_OLYMPIAD.info(charName + "," + charId + "," + classId + "," + compDone + "," + points);
|
LOGGER_OLYMPIAD.info(charName + "," + charId + "," + classId + "," + compDone + "," + points);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
final List<StatsSet> heroesToBe = new LinkedList<>();
|
final List<StatsSet> heroesToBe = new LinkedList<>();
|
||||||
|
|
||||||
@@ -1181,7 +1178,7 @@ public class Olympiad extends ListenersContainer
|
|||||||
|
|
||||||
public int getCompetitionDone(int objId)
|
public int getCompetitionDone(int objId)
|
||||||
{
|
{
|
||||||
if ((NOBLES == null) || !NOBLES.containsKey(objId))
|
if (!NOBLES.containsKey(objId))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1190,7 +1187,7 @@ public class Olympiad extends ListenersContainer
|
|||||||
|
|
||||||
public int getCompetitionWon(int objId)
|
public int getCompetitionWon(int objId)
|
||||||
{
|
{
|
||||||
if ((NOBLES == null) || !NOBLES.containsKey(objId))
|
if (!NOBLES.containsKey(objId))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1199,7 +1196,7 @@ public class Olympiad extends ListenersContainer
|
|||||||
|
|
||||||
public int getCompetitionLost(int objId)
|
public int getCompetitionLost(int objId)
|
||||||
{
|
{
|
||||||
if ((NOBLES == null) || !NOBLES.containsKey(objId))
|
if (!NOBLES.containsKey(objId))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1213,7 +1210,7 @@ public class Olympiad extends ListenersContainer
|
|||||||
*/
|
*/
|
||||||
public int getCompetitionDoneWeek(int objId)
|
public int getCompetitionDoneWeek(int objId)
|
||||||
{
|
{
|
||||||
if ((NOBLES == null) || !NOBLES.containsKey(objId))
|
if (!NOBLES.containsKey(objId))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ public class Options
|
|||||||
|
|
||||||
public List<OptionsSkillHolder> getActivationsSkills(OptionsSkillType type)
|
public List<OptionsSkillHolder> getActivationsSkills(OptionsSkillType type)
|
||||||
{
|
{
|
||||||
List<OptionsSkillHolder> temp = new ArrayList<>();
|
final List<OptionsSkillHolder> temp = new ArrayList<>();
|
||||||
if (_activationSkills != null)
|
if (_activationSkills != null)
|
||||||
{
|
{
|
||||||
for (OptionsSkillHolder holder : _activationSkills)
|
for (OptionsSkillHolder holder : _activationSkills)
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class Variation
|
|||||||
|
|
||||||
public Options getRandomEffect(VariationWeaponType type, int order)
|
public Options getRandomEffect(VariationWeaponType type, int order)
|
||||||
{
|
{
|
||||||
OptionDataGroup[] effects = _effects.get(type);
|
final OptionDataGroup[] effects = _effects.get(type);
|
||||||
if ((effects == null) || (effects[order] == null))
|
if ((effects == null) || (effects[order] == null))
|
||||||
{
|
{
|
||||||
LOGGER.warning("Null effect: " + type + ", " + order);
|
LOGGER.warning("Null effect: " + type + ", " + order);
|
||||||
|
|||||||
+1
-1
@@ -237,7 +237,7 @@ public class PunishmentTask implements Runnable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_type == PunishmentType.CHAT_BAN && _affect == PunishmentAffect.CHARACTER)
|
if ((_type == PunishmentType.CHAT_BAN) && (_affect == PunishmentAffect.CHARACTER))
|
||||||
{
|
{
|
||||||
final PlayerInstance player = World.getInstance().getPlayer(Integer.parseInt(_key));
|
final PlayerInstance player = World.getInstance().getPlayer(Integer.parseInt(_key));
|
||||||
if (player != null)
|
if (player != null)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user