|
|
@ -453,30 +453,30 @@ public class MobileFSM { |
|
|
|
} |
|
|
|
} |
|
|
|
//handles checking for respawn of dead mobs even when no players have mob loaded
|
|
|
|
//handles checking for respawn of dead mobs even when no players have mob loaded
|
|
|
|
//Despawn Timer with Loot currently in inventory.
|
|
|
|
//Despawn Timer with Loot currently in inventory.
|
|
|
|
if (aiAgent.getCharItemManager().getInventoryCount() > 0) { |
|
|
|
if(aiAgent.despawned == false) { |
|
|
|
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_WITH_LOOT) { |
|
|
|
if (aiAgent.getCharItemManager().getInventoryCount() > 0) { |
|
|
|
aiAgent.despawn(); |
|
|
|
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_WITH_LOOT) { |
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//No items in inventory.
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
//Mob's Loot has been looted.
|
|
|
|
|
|
|
|
if (aiAgent.isHasLoot()) { |
|
|
|
|
|
|
|
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_ONCE_LOOTED) { |
|
|
|
|
|
|
|
aiAgent.despawn(); |
|
|
|
aiAgent.despawn(); |
|
|
|
return; |
|
|
|
aiAgent.deathTime = System.currentTimeMillis(); |
|
|
|
} |
|
|
|
} |
|
|
|
//Mob never had Loot.
|
|
|
|
//No items in inventory.
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER) { |
|
|
|
//Mob's Loot has been looted.
|
|
|
|
aiAgent.despawn(); |
|
|
|
if (aiAgent.isHasLoot()) { |
|
|
|
return; |
|
|
|
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_ONCE_LOOTED) { |
|
|
|
|
|
|
|
aiAgent.despawn(); |
|
|
|
|
|
|
|
aiAgent.deathTime = System.currentTimeMillis(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//Mob never had Loot.
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER) { |
|
|
|
|
|
|
|
aiAgent.despawn(); |
|
|
|
|
|
|
|
aiAgent.deathTime = System.currentTimeMillis(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}else if (System.currentTimeMillis() > aiAgent.deathTime + (aiAgent.spawnTime * 1000)) { |
|
|
|
if (System.currentTimeMillis() > aiAgent.deathTime + (aiAgent.spawnTime * 1000)) { |
|
|
|
aiAgent.respawn(); |
|
|
|
aiAgent.despawn(); |
|
|
|
|
|
|
|
aiAgent.respawn(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
public static void CheckForAttack(Mob mob) { |
|
|
|
public static void CheckForAttack(Mob mob) { |
|
|
|