forked from MagicBane/Server
mob respawn fix actual
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -679,7 +679,7 @@ public class MBServerStatics {
|
|||||||
public static final int LEVEL_CON_WHITE = 7;
|
public static final int LEVEL_CON_WHITE = 7;
|
||||||
public static final int RESPAWN_TIMER = 90 * 1000;
|
public static final int RESPAWN_TIMER = 90 * 1000;
|
||||||
public static final int DESPAWN_TIMER = 12 * 1000;
|
public static final int DESPAWN_TIMER = 12 * 1000;
|
||||||
public static final int DESPAWN_TIMER_WITH_LOOT = 90 * 1000;
|
public static final int DESPAWN_TIMER_WITH_LOOT = 60 * 1000;
|
||||||
public static final int DESPAWN_TIMER_ONCE_LOOTED = 5 * 1000;
|
public static final int DESPAWN_TIMER_ONCE_LOOTED = 5 * 1000;
|
||||||
public static final int MAX_COMBAT_HITBOX_RADIUS = 80;
|
public static final int MAX_COMBAT_HITBOX_RADIUS = 80;
|
||||||
public static final int PROC_CHANCE = 5; // %chance to proc
|
public static final int PROC_CHANCE = 5; // %chance to proc
|
||||||
|
|||||||
Reference in New Issue
Block a user