respawn work

This commit is contained in:
2023-05-27 19:11:17 -05:00
parent 56d6efc4e4
commit a07ee7903b
+6 -19
View File
@@ -299,31 +299,18 @@ public class MobileFSM {
public static void DetermineAction(Mob mob) { public static void DetermineAction(Mob mob) {
if (mob == null) if (mob == null)
return; return;
if (mob.despawned && mob.getMobBase().getLoadID() == 13171) { if(mob.despawned || !mob.isAlive()) {
//trebuchet spawn handler if (mob.BehaviourType.ordinal() == Enum.MobBehaviourType.GuardMinion.ordinal()) {
CheckForRespawn(mob); if (mob.npcOwner.isAlive() == false || ((Mob) mob.npcOwner).despawned == true) {
return;
}
if (mob.despawned && mob.isPlayerGuard) {
//override for guards
if(mob.BehaviourType.ordinal() == Enum.MobBehaviourType.GuardMinion.ordinal()){
if(mob.npcOwner.isAlive() == false || ((Mob)mob.npcOwner).despawned == true){
//minions don't respawn while guard captain is dead //minions don't respawn while guard captain is dead
if(mob.isAlive() == false) { if (mob.isAlive() == false) {
mob.deathTime = System.currentTimeMillis(); mob.deathTime = System.currentTimeMillis();
return; return;
} }
} }
CheckForRespawn(mob);
return;
} }
CheckForRespawn(mob);
//check to send mob home for player guards to prevent exploit of dragging guards away and then teleporting
CheckToSendMobHome(mob);
return;
}
if (!mob.isAlive()) {
//no need to continue if mob is dead, check for respawn and move on
CheckForRespawn(mob);
return;
} }
if (mob.playerAgroMap.isEmpty() && mob.isPlayerGuard == false) if (mob.playerAgroMap.isEmpty() && mob.isPlayerGuard == false)
//no players loaded, no need to proceed //no players loaded, no need to proceed