|
|
|
@ -219,99 +219,4 @@ public class dbMobHandler extends dbHandlerBase {
@@ -219,99 +219,4 @@ public class dbMobHandler extends dbHandlerBase {
|
|
|
|
|
return getResult(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static boolean COPY_ZONE_MOBILES(PlayerCharacter pc, Zone sourceZone, Zone targetZone) { |
|
|
|
|
|
|
|
|
|
ArrayList<Mob> sourceMobList; |
|
|
|
|
Vector3fImmutable worldDelta; |
|
|
|
|
Mob newMobile; |
|
|
|
|
|
|
|
|
|
// Sanity check. Can't copy a non existent zone
|
|
|
|
|
|
|
|
|
|
if ((sourceZone == null) || (targetZone == null)) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
// Generate collections for all buildings in each zone
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Mob mobile : sourceZone.zoneMobSet) { |
|
|
|
|
|
|
|
|
|
// Calculate world coordinate offset between zones
|
|
|
|
|
|
|
|
|
|
worldDelta = new Vector3fImmutable(targetZone.getAbsX(), targetZone.getAbsY(), targetZone.getAbsZ()); |
|
|
|
|
worldDelta = worldDelta.subtract(new Vector3fImmutable(sourceZone.getAbsX(), sourceZone.getAbsY(), sourceZone.getAbsZ())); |
|
|
|
|
|
|
|
|
|
newMobile = Mob.createMob(mobile.getLoadID(), |
|
|
|
|
mobile.getLoc().add(worldDelta), null, true, targetZone, mobile.building, 0); |
|
|
|
|
|
|
|
|
|
if (newMobile != null) { |
|
|
|
|
newMobile.updateDatabase(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void LOAD_RUNES_FOR_FIDELITY_MOBS() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
prepareCallable("SELECT static_zone_npc.npcID,static_zone_npc.loadNum, static_zone_npc.classID, static_zone_npc.professionID, static_zone_npc.extraRune, static_zone_npc.extraRune2 FROM static_zone_npc ; "); |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
ResultSet rs = executeQuery(); |
|
|
|
|
|
|
|
|
|
while (rs.next()) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int loadNum = rs.getInt("loadNum"); |
|
|
|
|
int fidelityID = rs.getInt("npcID"); |
|
|
|
|
int classID = rs.getInt("classID"); |
|
|
|
|
int professionID = rs.getInt("professionID"); |
|
|
|
|
int extraRune = rs.getInt("extraRune"); |
|
|
|
|
int extraRune2 = rs.getInt("extraRune2"); |
|
|
|
|
|
|
|
|
|
if (WorldServer.ZoneFidelityMobRunes.get(loadNum) == null) |
|
|
|
|
WorldServer.ZoneFidelityMobRunes.put(loadNum, new HashMap<>()); |
|
|
|
|
ArrayList<Integer> runeList; |
|
|
|
|
if (WorldServer.ZoneFidelityMobRunes.get(loadNum).get(fidelityID) == null){ |
|
|
|
|
runeList = new ArrayList<>(4); |
|
|
|
|
}else |
|
|
|
|
runeList = WorldServer.ZoneFidelityMobRunes.get(loadNum).get(fidelityID); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (classID != 0) |
|
|
|
|
runeList.add(classID); |
|
|
|
|
if (professionID != 0) |
|
|
|
|
runeList.add(professionID); |
|
|
|
|
if(extraRune != 0) |
|
|
|
|
runeList.add(extraRune); |
|
|
|
|
|
|
|
|
|
if (extraRune2 != 0) |
|
|
|
|
runeList.add(extraRune2); |
|
|
|
|
|
|
|
|
|
WorldServer.ZoneFidelityMobRunes.get(loadNum).put(fidelityID, runeList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
rs.close(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
Logger.error( e.toString()); |
|
|
|
|
} finally { |
|
|
|
|
closeCallable(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|