Browse Source

NPC/Mob slotting work.

master
MagicBot 1 year ago
parent
commit
90c324b363
  1. 2
      src/engine/gameManager/BuildingManager.java
  2. 21
      src/engine/objects/NPC.java

2
src/engine/gameManager/BuildingManager.java

@ -548,6 +548,7 @@ public enum BuildingManager { @@ -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 { @@ -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)

21
src/engine/objects/NPC.java

@ -569,14 +569,22 @@ public class NPC extends AbstractCharacter { @@ -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 { @@ -585,7 +593,6 @@ public class NPC extends AbstractCharacter {
npc = null;
}
return npc;
}

Loading…
Cancel
Save