Browse Source

added default behaviourType to "Simple" for mobs. added respawn logic

master
FatBoy-DOTC 2 years ago
parent
commit
f9205eb4e2
  1. 12
      src/engine/ai/MobileFSM.java
  2. 8
      src/engine/objects/Mob.java

12
src/engine/ai/MobileFSM.java

@ -678,7 +678,9 @@ public class MobileFSM { @@ -678,7 +678,9 @@ public class MobileFSM {
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_WITH_LOOT) {
aiAgent.despawn();
//update time of death after mob despawns so respawn time happens after mob despawns.
aiAgent.setDeathTime(System.currentTimeMillis());
if(aiAgent.deathTime != 0) {
aiAgent.setDeathTime(System.currentTimeMillis());
}
respawn(aiAgent);
}
@ -689,7 +691,9 @@ public class MobileFSM { @@ -689,7 +691,9 @@ public class MobileFSM {
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER_ONCE_LOOTED) {
aiAgent.despawn();
//update time of death after mob despawns so respawn time happens after mob despawns.
aiAgent.setDeathTime(System.currentTimeMillis());
if(aiAgent.deathTime != 0) {
aiAgent.setDeathTime(System.currentTimeMillis());
}
respawn(aiAgent);
}
//Mob never had Loot.
@ -697,7 +701,9 @@ public class MobileFSM { @@ -697,7 +701,9 @@ public class MobileFSM {
if (System.currentTimeMillis() > aiAgent.deathTime + MBServerStatics.DESPAWN_TIMER) {
aiAgent.despawn();
//update time of death after mob despawns so respawn time happens after mob despawns.
aiAgent.setDeathTime(System.currentTimeMillis());
if(aiAgent.deathTime != 0) {
aiAgent.setDeathTime(System.currentTimeMillis());
}
respawn(aiAgent);
}
}

8
src/engine/objects/Mob.java

@ -293,7 +293,11 @@ public class Mob extends AbstractIntelligenceAgent { @@ -293,7 +293,11 @@ public class Mob extends AbstractIntelligenceAgent {
this.equipmentSetID = this.contract.getEquipmentSet();
this.nameOverride = rs.getString("mob_name");
this.BehaviourType = MobileFSM.MobBehaviourType.valueOf(rs.getString("fsm"));
if(rs.getString("fsm").length() > 1) {
this.BehaviourType = MobileFSM.MobBehaviourType.valueOf(rs.getString("fsm"));
} else{
this.BehaviourType = MobileFSM.MobBehaviourType.Simple;
}
} catch (Exception e) {
Logger.error(currentID + "");
}
@ -1299,7 +1303,7 @@ public class Mob extends AbstractIntelligenceAgent { @@ -1299,7 +1303,7 @@ public class Mob extends AbstractIntelligenceAgent {
this.walkMode = true;
this.combatTarget = null;
this.isAlive.set(true);
this.deathTime = 0;
this.lastBindLoc = this.bindLoc;
this.bindLoc = this.lastBindLoc;
this.setLoc(this.lastBindLoc);

Loading…
Cancel
Save