Code:
package server.event.impl;
import server.event.CycleEvent;
import server.event.CycleEventContainer;
import server.model.players.Client;
/**
* Handles task for the timer to remove the player kill skull
* @author Karma
*
*/
public class PKSkullEvent extends CycleEvent {
/**
* Creates an instance of the client
*/
private Client client;
/**
* Constructs the class for the client
* @param client
* the client
*/
public PKSkullEvent(Client client) {
this.client = client;
}
@Override
public void execute(CycleEventContainer container) {
client.sendMessage(""+client.skullTimer);
if (client.skullTimer == 0
|| client.skullTimer == -1) {
container.stop();
}
if (client.skullTimer > 0) {
client.skullTimer--;
if (client.skullTimer == 1) {
client.isSkulled = false;
client.attackedPlayers.clear();
client.headIconPk = -1;
client.skullTimer = -1;
client.getPA().requestUpdates();
}
}
}
@Override
public void stop() {
client.skullTimer = 0;
}
}
now again, similar to my teletimer snippet, find all the places that declares your skullTimer more than 0 and declare
CycleEventHandler.getSingleton().addEvent(null, new PKSkullEvent(c), 1);
example:
in combatassistants, you'll find
Code:
if (c.duelStatus != 5 && !c.inPits && c.championWar.team == 0) {
if (!c.attackedPlayers.contains(c.playerIndex)
&& !PlayerHandler.players[c.playerIndex].attackedPlayers
.contains(c.playerId)) {
c.attackedPlayers.add(c.playerIndex);
c.isSkulled = true;
c.skullTimer = Config.SKULL_TIMER;
CycleEventHandler.getSingleton().addEvent(null, new PKSkullEvent(c), 1);
c.headIconPk = 0;
c.getPA().requestUpdates();
}
}
in your attackPlayer method