добавить свою обработку воскрешения и перемещения в пакет RequestRestartPoint
ну или сделать проще - если игрок в режиме участия в пвп-эвенте, то вобще игнорировать от него запросы на воскрешение, а просто ресать самому с определенной задержкой.
вот к примеру у меня в эвенте Team DeathMatch так сделано
@Override
public void onKill(Creature actor, Creature victim)
{
if (actor == null || victim == null || getStatus() != EventStatus.BATTLE || actor.getPlayer() == null || !victim.isPlayer())
return;
EventMember killer = getMember(actor.getPlayer());
EventMember killed = getMember(victim.getPlayer());
if (killer == null || killed == null || killer == killed || killer.getPlayer() == null || killed.getPlayer() == null || killer.getTeam() == killed.getTeam())
return;
if (killer.getTeam() == TeamType.RED)
{
incScore(TeamType.RED, getConfig().getPointsGive());
decScore(TeamType.BLUE, getConfig().getPointsLose());
}
else
{
incScore(TeamType.BLUE, getConfig().getPointsGive());
decScore(TeamType.RED, getConfig().getPointsLose());
}
addRewards(killer.getPlayer(), ActionType.KILL);
ThreadPoolManager.getInstance().schedule(new PvPEventTasks.ActionTask(this, killed.getPlayer(), ActionTaskType.REVIVE_AND_BUFF), getConfig().getTimeToRevive() * 1000L);
showMessage(killed.getPlayer(), "Вас убили. Через несколько секунд вы будете возрождены.");
if (getConfig().getPointsCount() > 0 && (getScore(TeamType.RED) >= getConfig().getPointsCount() || getScore(TeamType.BLUE) >= getConfig().getPointsCount()))
endBattle();
}
вот эта строчка
ThreadPoolManager.getInstance().schedule(new PvPEventTasks.ActionTask(this, killed.getPlayer(), ActionTaskType.REVIVE_AND_BUFF), getConfig().getTimeToRevive() * 1000L);
указывает что надо через определенное время после смерти воскресить (с перемещением в заданную точку) и бафнуть
З.Ы. onKill - это из листенера OnKillListener, так что само собой надо этот листенер объявлять и регистрировать у участников в начале боя, а в конце убирать обратно.