Crap, i spent ages working on this, changing the places, etc...
all get this error:
Code:
Exception in thread "Thread-0" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at EventManager.run(EventManager.java:77)
at java.lang.Thread.run(Unknown Source)
In server.java:
Code:
public static void vestaSpecHit(int ID) {
client = ID;
EventManager.getSingleton().addEvent(new Event() {
public void execute(EventContainer c) {
client X = (client) server.playerHandler.players[client];
client AttackingOn2 = (client) server.playerHandler.players[X.AttackingOn];
if (AttackingOn2.currentHealth > 1) {
X.VestaSpecHit();
}
c.stop(); // stops the event from running
}
}, 5000);
};
in client.java:
Code:
EventManager.getSingleton().addEvent(
new Event() {
public void execute(EventContainer C) {
client AttackingOn2 = (client) server.playerHandler.players[AttackingOn];
if (AttackingOn2.currentHealth > 1) {
VestaSpecHit();
}
C.stop(); // stops the event from running
}
}, 2000);
What i want to do is forsee a hit then go to this void:
Code:
public void VestaSpecHit() {
client AttackingOn2 = (client) server.playerHandler.players[AttackingOn];
int clawed = misc.random(playerMaxHit + (misc.random(15)));
if(AttackingOn2 != null) {
if(AttackingOn2.currentHealth <= 0) {
return;
} else {
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
if(misc.random(3) != 1) {
PlayerHandler.players[AttackingOn].dealDamage(clawed);
PlayerHandler.players[AttackingOn].hitDiff = clawed;
AttackingOn2.specGFX(4);
} else {
PlayerHandler.players[AttackingOn].dealDamage(misc.random(15));
PlayerHandler.players[AttackingOn].hitDiff = 0;
AttackingOn2.specGFX(6);
}
PlayerHandler.players[AttackingOn].killers[playerId] += hitDiff;
PlayerHandler.players[AttackingOn].KilledBy[playerId] += hitDiff;
}
}
}