Browse Source

Code moved to runafterload.

master
MagicBot 1 year ago
parent
commit
9adb03a845
  1. 85
      src/engine/objects/NPC.java

85
src/engine/objects/NPC.java

@ -18,7 +18,6 @@ import engine.job.JobContainer;
import engine.job.JobScheduler; import engine.job.JobScheduler;
import engine.jobs.UpgradeNPCJob; import engine.jobs.UpgradeNPCJob;
import engine.math.Bounds; import engine.math.Bounds;
import engine.math.Quaternion;
import engine.math.Vector3f; import engine.math.Vector3f;
import engine.math.Vector3fImmutable; import engine.math.Vector3fImmutable;
import engine.net.ByteBufferWriter; import engine.net.ByteBufferWriter;
@ -108,7 +107,6 @@ public class NPC extends AbstractCharacter {
this.parentZone = parent; this.parentZone = parent;
this.parentZoneID = parent.getObjectUUID(); this.parentZoneID = parent.getObjectUUID();
clearStatic();
this.dbID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET; this.dbID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET;
this.currentID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET; this.currentID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET;
@ -139,9 +137,6 @@ public class NPC extends AbstractCharacter {
this.parentZone = parent; this.parentZone = parent;
this.dbID = newUUID; this.dbID = newUUID;
this.currentID = newUUID; this.currentID = newUUID;
initializeNPC();
clearStatic();
} }
/** /**
@ -246,12 +241,6 @@ public class NPC extends AbstractCharacter {
e.printStackTrace(); e.printStackTrace();
} }
try {
initializeNPC();
} catch (Exception e) {
Logger.error("NPC: " + this.dbID + " :" + e);
}
} }
public static boolean ISWallArcher(Contract contract) { public static boolean ISWallArcher(Contract contract) {
@ -750,19 +739,8 @@ public class NPC extends AbstractCharacter {
return currentID; return currentID;
} }
private void clearStatic() {
this.parentZone = null;
this.statLat = 0f;
this.statLon = 0f;
this.statAlt = 0f;
}
private void initializeNPC() { private void initializeNPC() {
int slot;
Vector3fImmutable slotLocation;
Quaternion slotRotation;
if (ConfigManager.serverType.equals(ServerType.LOGINSERVER)) if (ConfigManager.serverType.equals(ServerType.LOGINSERVER))
return; return;
@ -841,10 +819,6 @@ public class NPC extends AbstractCharacter {
return this.contract; return this.contract;
} }
/*
* Serialization
*/
public int getContractID() { public int getContractID() {
if (this.contract != null) if (this.contract != null)
@ -1107,14 +1081,65 @@ public class NPC extends AbstractCharacter {
if (ConfigManager.serverType.equals(ServerType.LOGINSERVER)) if (ConfigManager.serverType.equals(ServerType.LOGINSERVER))
return; return;
try { // Configure parent zone adding this NPC to the
// zone collection
this.equip = loadEquipmentSet(this.equipmentSetID); this.parentZone = ZoneManager.getZoneByUUID(this.parentZoneID);
this.parentZone.zoneNPCSet.remove(this);
this.parentZone.zoneNPCSet.add(this);
} catch (Exception e) { // Setup location for this NPC
Logger.error(e.getMessage());
this.bindLoc = new Vector3fImmutable(this.statLat, this.statAlt, this.statLon);
this.bindLoc = this.parentZone.getLoc().add(this.bindLoc);
this.loc = new Vector3fImmutable(bindLoc);
// Handle NPCs within buildings
if (this.building != null)
NPCManager.slotCharacterInBuilding(this);
if (this.contract != null) {
this.symbol = this.contract.getIconID();
this.modTypeTable = this.contract.getNPCModTypeTable();
this.modSuffixTable = this.contract.getNpcModSuffixTable();
this.itemModTable = this.contract.getItemModTable();
int VID = this.contract.getVendorID();
if (VID != 0)
this.vendorID = VID;
else
this.vendorID = 1; //no vendor items
} }
if (this.mobBase != null) {
this.healthMax = this.mobBase.getHealthMax();
this.manaMax = 0;
this.staminaMax = 0;
this.setHealth(this.healthMax);
this.mana.set(this.manaMax);
this.stamina.set(this.staminaMax);
}
if (this.parentZone.isPlayerCity())
if (NPC.GetNPCProfits(this) == null)
NPCProfits.CreateProfits(this);
//TODO set these correctly later
this.rangeHandOne = 8;
this.rangeHandTwo = -1;
this.minDamageHandOne = 1;
this.maxDamageHandOne = 4;
this.minDamageHandTwo = 1;
this.maxDamageHandTwo = 4;
this.atrHandOne = 300;
this.defenseRating = 200;
this.isActive = true;
this.charItemManager.load();
this.equip = loadEquipmentSet(this.equipmentSetID);
if (this.equip == null) if (this.equip == null)
this.equip = new HashMap<>(); this.equip = new HashMap<>();

Loading…
Cancel
Save