NPC/Mob slotting work.

This commit is contained in:
2023-07-21 12:50:52 -04:00
parent 1260d7cfa3
commit 90c324b363
2 changed files with 16 additions and 7 deletions
@@ -548,6 +548,7 @@ public enum BuildingManager {
return true;
}
if (contract.getContractID() == 910) {
//guard dog
mob = Mob.createMob(contract.getMobbaseID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), true, zone, building, contract.getContractID(), pirateName, rank);
@@ -558,6 +559,7 @@ public enum BuildingManager {
return true;
}
npc = NPC.createNPC(pirateName, contract.getObjectUUID(), Vector3fImmutable.ZERO, contractOwner.getGuild(), false, zone, (short) rank, building);
if (npc == null)
+14 -7
View File
@@ -569,14 +569,22 @@ public class NPC extends AbstractCharacter {
npcWithoutID.setLevel(level);
if (npcWithoutID.mobBase == null) {
if (npcWithoutID.mobBase == null)
return null;
}
if (parent != null) {
npcWithoutID.setRelPos(parent, spawn.x - parent.absX, spawn.y - parent.absY, spawn.z - parent.absZ);
}
npcWithoutID.setLoc(new Vector3fImmutable(npcWithoutID.statLat,npcWithoutID.statAlt,npcWithoutID.statLon));
// Parent zone is required by dbhandler. Can likely
// refactor that out and just use the id.
npcWithoutID.parentZone = parent;
npcWithoutID.parentZoneID = parent.getObjectUUID();
// NPC in a Building derives position from slot
if (npcWithoutID.building != null)
npcWithoutID.bindLoc = Vector3fImmutable.ZERO;
NPC npc;
try {
npc = DbManager.NPCQueries.ADD_NPC(npcWithoutID, isMob);
npc.setObjectTypeMask(MBServerStatics.MASK_NPC);
@@ -585,7 +593,6 @@ public class NPC extends AbstractCharacter {
npc = null;
}
return npc;
}