Originally Posted by
RspsLife
If I am not mistaken this is pi? Have a look at how Exotic duel arena is set out and it might give you an idea on what to do?
Abit confusing, I understand what part it is but how would i implement this
Code:
public void applyDead() {
c.getPA().sendFrame126(":quicks:off", -1);
c.isFullHelm = Item.isFullHat(c.playerEquipment[c.playerHat]);
c.isFullMask = Item.isFullMask(c.playerEquipment[c.playerHat]);
c.isFullBody = Item.isFullBody(c.playerEquipment[c.playerChest]);
c.getPA().requestUpdates();
c.respawnTimer = 15;
c.isDead = false;
c.graceSum = 0;
c.freezeTimer = 1;
c.recoilHits = 0;
DuelSession duelSession = (DuelSession) Server.getMultiplayerSessionListener().getMultiplayerSession(c, MultiplayerSessionType.DUEL);
if (Objects.nonNull(duelSession) && duelSession.getStage().getStage() < MultiplayerSessionStage.FURTHER_INTERATION) {
duelSession = null;
}
if (c.inClanWars() || c.inClanWarsSafe() || Boundary.isIn(c, Boundary.SAFEPKSAFE)) {
resetDeath();
}
if(c.getSlayer().superiorSpawned) {
c.getSlayer().superiorSpawned = false;
}
if (Objects.isNull(duelSession)) {
Entity killer = c.calculateKiller();
if (killer != null) {
c.setKiller(killer);
if (killer instanceof Player) {
Player playerKiller = (Player) killer;
c.killerId = killer.getIndex();
if (c.killerId != c.getIndex()) {
if (c.inWild()) {
if (HolidayController.HALLOWEEN.isActive()) {
CycleEventHandler.getSingleton().addEvent(c, new HalloweenDeathCycleEvent(c, playerKiller), 6);
}
if (!Boundary.isIn(c, Boundary.SAFEPK)) {
if (c.getItems().playerHasItem(11941)) {
c.getLootingBag().onDeath(c, "PVP");
}
if (c.getItems().playerHasItem(12791)) {
c.getRunePouch().onDeath(c, "PVP");
}
if (c.getItems().playerHasItem(13226)) {
c.getHerbSack().onDeath(c, "PVP");
}
if (c.getItems().playerHasItem(12020)) {
c.getGemBag().onDeath(c, "PVP");
}
}
if (playerKiller.inClanWars()) {
playerKiller.getItems().addSpecialBar(playerKiller.playerEquipment[playerKiller.playerWeapon]);
playerKiller.specAmount = 10;
}
if (!playerKiller.getPlayerKills().killedRecently(c.connectedFrom) && !playerKiller.getMacAddress().equals(c.getMacAddress())) {
playerKiller.getPlayerKills().add(c.connectedFrom);
c.deathcount++;
playerKiller.killcount++;
playerKiller.refreshQuestTab(0);
playerKiller.refreshQuestTab(7);
playerKiller.getPA().sendFrame126(
"@or1@Hunter KS: @gre@" + playerKiller.getKillstreak().getAmount(Killstreak.Type.HUNTER) + "@or1@, " + "Rogue KS: @gre@"
+ playerKiller.getKillstreak().getAmount(Killstreak.Type.ROGUE), 29165);
/*
Killing targets
*/
if (Config.BOUNTY_HUNTER_ACTIVE && !Boundary.isIn(c, Boundary.SAFEPKSAFE)) {
c.getBH().dropPlayerEmblem(playerKiller);
if (c.getBH().hasTarget() && c.getBH().getTarget().getName().equalsIgnoreCase(playerKiller.playerName) && playerKiller.getBH().hasTarget()
&& playerKiller.getBH().getTarget().getName().equalsIgnoreCase(c.playerName)) {
playerKiller.getBH().setCurrentHunterKills(playerKiller.getBH().getCurrentHunterKills() + 1);
if (playerKiller.getBH().getCurrentHunterKills() > playerKiller.getBH().getRecordHunterKills()) {
playerKiller.getBH().setRecordHunterKills(playerKiller.getBH().getCurrentHunterKills());
}
playerKiller.getKillstreak().increase(Killstreak.Type.HUNTER);
playerKiller.getBH().upgradePlayerEmblem();
playerKiller.getBH().setTotalHunterKills(playerKiller.getBH().getTotalHunterKills() + 1);
playerKiller.getBH().removeTarget();
c.getBH().removeTarget();
playerKiller.getBH().setTargetState(TargetState.RECENT_TARGET_KILL);
playerKiller.sendMessage("<col=255>You have killed your target: " + c.playerName + ".");
} else {
playerKiller.getKillstreak().increase(Killstreak.Type.ROGUE);
playerKiller.getBH().setCurrentRogueKills(playerKiller.getBH().getCurrentRogueKills() + 1);
playerKiller.getBH().setTotalRogueKills(playerKiller.getBH().getTotalRogueKills() + 1);
if (playerKiller.getBH().getCurrentRogueKills() > playerKiller.getBH().getRecordRogueKills()) {
playerKiller.getBH().setRecordRogueKills(playerKiller.getBH().getCurrentRogueKills());
}
}
playerKiller.getBH().updateStatisticsUI();
playerKiller.getBH().updateTargetUI();
}
int opponentKillstreak = c.getKillstreak().getAmount(Killstreak.Type.HUNTER);
if (Boundary.isIn(c, Boundary.SAFEPK)) {
playerKiller.pkp += Config.BONUS_WEEKEND && !Config.DOUBLE_PKP ? 3 : Config.DOUBLE_PKP ? 4 : 2;
playerKiller.refreshQuestTab(0);
} else {
if (opponentKillstreak > 1) {
playerKiller.sendMessage("You receive an additional 5 PK tickets, your opponent had a killstreak of " + opponentKillstreak + ".");
PlayerHandler.executeGlobalMessage("<col=CC0000>" + WordUtils.capitalize(playerKiller.playerName) + "</col><col=255>" + " has ended </col><col=CC0000>" + WordUtils.capitalize(c.playerName) + "</col><col=255>'s" + " hunter killstreak of " + opponentKillstreak + ".");
playerKiller.getItems().addItemUnderAnyCircumstance(2996, Config.DOUBLE_PKP ? 10 : 5);
}
if (playerKiller.inClanWars()) {
if (!playerKiller.getItems().addItem(13307, 5)) {
Server.itemHandler.createGroundItem(playerKiller, 13307, playerKiller.getX(), playerKiller.getY(), playerKiller.heightLevel, 5);
}
} else {
playerKiller.pkp += Config.BONUS_WEEKEND && !Config.DOUBLE_PKP ? 6 : Config.DOUBLE_PKP ? 8 : 4;
playerKiller.refreshQuestTab(0);
}
}
c.getKillstreak().resetAll();
c.getPA().loadQuests();
playerKiller.getPA().loadQuests();
} else {
if (playerKiller.inClanWars() || playerKiller.inClanWarsSafe()) {
playerKiller.sendMessage("You do not get any blood money as you have recently defeated @blu@" + Misc.optimizeText(c.playerName) + "@bla@.");
} else {
playerKiller.sendMessage("You do not get any PK Points as you have recently defeated @blu@" + Misc.optimizeText(c.playerName) + "@bla@.");
}
}
}
PlayerSave.saveGame(playerKiller);
}
} else if (killer instanceof NPC) {
if (!Boundary.isIn(c, Boundary.FIGHT_CAVE) && !Boundary.isIn(c, Zulrah.BOUNDARY)
&& !Boundary.isIn(c, Boundary.KRAKEN_CAVE) && !Boundary.isIn(c, Boundary.RFD)
&& !Boundary.isIn(c, Boundary.LIGHTHOUSE) && !Boundary.isIn(c, Boundary.CERBERUS_BOSSROOMS) && !Boundary.isIn(c, Boundary.SKOTIZO_BOSSROOM)) {
if (c.getItems().playerHasItem(11941)) {
c.getLootingBag().onDeath(c, "MOB");
}
if (c.getItems().playerHasItem(12791)) {
c.getRunePouch().onDeath(c, "MOB");
}
if (c.getItems().playerHasItem(13226)) {
c.getHerbSack().onDeath(c, "MOB");
}
if (c.getItems().playerHasItem(12020)) {
c.getGemBag().onDeath(c, "MOB");
}
}
}
c.sendMessage("Oh dear you are dead!");
}
}
/*
Reset bounty hunter statistics
*/
if (Config.BOUNTY_HUNTER_ACTIVE) {
c.getBH().setCurrentHunterKills(0);
c.getBH().setCurrentRogueKills(0);
c.getBH().updateStatisticsUI();
c.getBH().updateTargetUI();
}
c.faceUpdate(0);
c.stopMovement();
/*
Death within the duel arena
*/
if (duelSession != null && duelSession.getStage().getStage() == MultiplayerSessionStage.FURTHER_INTERATION) {
if (!duelSession.getWinner().isPresent()) {
c.sendMessage("You have lost the duel!");
c.setDuelLossCounter(c.getDuelLossCounter() + 1);
c.sendMessage("You have now lost a total of @blu@" + c.getDuelLossCounter() + " @bla@ duels.");
Player opponent = duelSession.getOther(c);
opponent.logoutDelay = System.currentTimeMillis();
if (!duelSession.getWinner().isPresent()) {
duelSession.setWinner(opponent);
}
PlayerSave.saveGame(opponent);
} else {
c.sendMessage("Congratulations, you have won the duel.");
}
c.logoutDelay = System.currentTimeMillis();
}
c.startAnimation(2304);
resetDeath();
}