fixed #337 and removed some lock contention

This commit is contained in:
Light2
2014-03-31 01:18:52 +02:00
parent ba3b423ea6
commit dc03c31276
4 changed files with 22 additions and 16 deletions
@@ -1225,9 +1225,9 @@ public class CreatureObject extends TangibleObject implements IPersistent {
setHamListCounter(getHamListCounter() + 1);
delta = messageBuilder.buildHealthDelta(health);
notifyObservers(delta, true);
this.health = health;
}
notifyObservers(delta, true);
}
@@ -1249,9 +1249,10 @@ public class CreatureObject extends TangibleObject implements IPersistent {
}
setHamListCounter(getHamListCounter() + 1);
delta = messageBuilder.buildActionDelta(action);
notifyObservers(delta, true);
this.action = action;
}
}
notifyObservers(delta, true);
}
public int getHamListCounter() {
+7 -11
View File
@@ -123,21 +123,17 @@ public class PlayerService implements INetworkDispatch {
}, 30, 30, TimeUnit.SECONDS);
scheduler.scheduleAtFixedRate(() -> {
synchronized(creature.getMutex()) {
if(creature.getAction() < creature.getMaxAction() && creature.getPosture() != 14) {
if(creature.getCombatFlag() == 0)
creature.setAction(creature.getAction() + (15 + creature.getLevel() * 5));
else
creature.setAction(creature.getAction() + ((15 + creature.getLevel() * 5) / 2));
}
if(creature.getAction() < creature.getMaxAction() && creature.getPosture() != 14) {
if(creature.getCombatFlag() == 0)
creature.setAction(creature.getAction() + (15 + creature.getLevel() * 5));
else
creature.setAction(creature.getAction() + ((15 + creature.getLevel() * 5) / 2));
}
}, 0, 1000, TimeUnit.MILLISECONDS);
scheduler.scheduleAtFixedRate(() -> {
synchronized(creature.getMutex()) {
if(creature.getHealth() < creature.getMaxHealth() && creature.getCombatFlag() == 0 && creature.getPosture() != 13 && creature.getPosture() != 14)
creature.setHealth(creature.getHealth() + (36 + creature.getLevel() * 4));
}
if(creature.getHealth() < creature.getMaxHealth() && creature.getCombatFlag() == 0 && creature.getPosture() != 13 && creature.getPosture() != 14)
creature.setHealth(creature.getHealth() + (36 + creature.getLevel() * 4));
}, 0, 1000, TimeUnit.MILLISECONDS);
/*final PlayerObject ghost = (PlayerObject) creature.getSlottedObject("ghost");