Originally Posted by
Metorrite
post giveLife() and applyDead() method from PlayerAssistant or w/e it is for you.
givelife
Code:
public void giveLife() {
c.isFullHelm = Item.isFullHelm(c.playerEquipment[c.playerHat]);
c.isFullMask = Item.isFullMask(c.playerEquipment[c.playerHat]);
c.isFullBody = Item.isFullBody(c.playerEquipment[c.playerChest]);
c.isDead = false;
c.faceUpdate(-1);
c.freezeTimer = 1;
if (!c.inDuelArena() && !c.inClanWars() && !Boundary.isIn(c, Boundary.DUEL_ARENAS) && !Boundary.isIn(c, Boundary.FIGHT_CAVE)) {
if (!Boundary.isIn(c, PestControl.GAME_BOUNDARY) && !c.inSafemode() && !c.isKilledByZombie() && !Boundary.isIn(c, Zulrah.BOUNDARY)) {
for (int itemId : Config.DROP_AND_DELETE_ON_DEATH) {
if (c.getItems().isWearingItem(itemId)) {
int slot = c.getItems().getItemSlot(itemId);
if (slot != -1) {
c.getItems().removeItem(itemId, slot);
}
}
if (c.getItems().playerHasItem(itemId)) {
c.getItems().deleteItem2(itemId, c.getItems().getItemAmount(itemId));
}
}
c.getItems().resetKeepItems();
if (!c.isSkulled) { // what items to keep
c.getItems().keepItem(0, true);
c.getItems().keepItem(1, true);
c.getItems().keepItem(2, true);
}
if (c.prayerActive[10] && c.lastProtItem.elapsed(700)) {
c.getItems().keepItem(3, true);
}
for (int item = 0; item < Config.ITEMS_KEPT_ON_DEATH.length; item++) {
int itemId = Config.ITEMS_KEPT_ON_DEATH[item];
int itemAmount = c.getItems().getItemAmount(itemId) + c.getItems().getWornItemAmount(itemId);
if (c.getItems().playerHasItem(itemId) || c.getItems().isWearingItem(itemId)) {
c.getItems().sendItemToAnyTab(itemId, itemAmount);
}
}
c.getItems().dropAllItems(); // drop all items
c.getItems().deleteAllItems(); // delete all items
if (!c.isSkulled) { // add the kept items once we finish
// deleting and dropping them
for (int i1 = 0; i1 < 3; i1++) {
if (c.itemKeptId[i1] > 0) {
c.getItems().addItem(c.itemKeptId[i1], 1);
}
}
}
if (c.prayerActive[10]) {
if (c.itemKeptId[3] > 0) {
c.getItems().addItem(c.itemKeptId[3], 1);
}
}
c.getItems().resetKeepItems();
} else if (Boundary.isIn(c, Boundary.PEST_CONTROL_AREA)) {
c.getPA().movePlayer(2657, 2639, 0);
}
}
c.getCombat().resetPrayers();
for (int i = 0; i < 20; i++) {
c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
c.getPA().refreshSkill(i);
}
if (Boundary.isIn(c, PestControl.GAME_BOUNDARY)) {
c.getPA().movePlayer(2656 + Misc.random(2), 2614 - Misc.random(3), 0);
} else if (Boundary.isIn(c, Zulrah.BOUNDARY)) {
c.getPA().movePlayer(3092, 3494, 0);
InstancedArea instance = c.getZulrahEvent().getInstancedZulrah();
if (instance != null) {
InstancedAreaManager.getSingleton().disposeOf(instance);
}
c.getLostItems().store();
c.talkingNpc = 2040;
c.getDH().sendNpcChat("You have lost!", "I'll give you your items back for 5 PKP.");
} else if (Boundary.isIn(c, Boundary.DUEL_ARENAS)) {
DuelSession duelSession = (DuelSession) Server.getMultiplayerSessionListener().getMultiplayerSession(c, MultiplayerSessionType.DUEL);
if (Objects.nonNull(duelSession) && duelSession.getStage().getStage() == MultiplayerSessionStage.FURTHER_INTERACTION) {
Player opponent = duelSession.getWinner().get();
if (opponent != null) {
opponent.getPA().createPlayerHints(10, -1);
duelSession.finish(MultiplayerSessionFinalizeType.GIVE_ITEMS);
}
}
} else if (Boundary.isIn(c, Boundary.FIGHT_CAVE)) {
c.getFightCave().handleDeath();
} else {
movePlayer(Config.RESPAWN_X, Config.RESPAWN_Y, 0);
c.isSkulled = false;
c.skullTimer = 0;
c.attackedPlayers.clear();
removeAllWindows();
closeAllWindows();
}
PlayerSave.saveGame(c);
c.resetDamageReceived();
c.getCombat().resetPlayerAttack();
resetAnimation();
c.startAnimation(65535);
frame1();
resetTb();
c.isSkulled = false;
c.attackedPlayers.clear();
c.headIconPk = -1;
c.skullTimer = -1;
requestUpdates();
c.tradeResetNeeded = true;
c.setKiller(null);
c.setKilledByZombie(false);
}
/**
* Location change for digging, levers etc
**/
public void changeLocation() {
switch (c.newLocation) {
case 1:
sendFrame99(2);
movePlayer(3578, 9706, -1);
break;
case 2:
sendFrame99(2);
movePlayer(3568, 9683, -1);
break;
case 3:
sendFrame99(2);
movePlayer(3557, 9703, -1);
break;
case 4:
sendFrame99(2);
movePlayer(3556, 9718, -1);
break;
case 5:
sendFrame99(2);
movePlayer(3534, 9704, -1);
break;
case 6:
sendFrame99(2);
movePlayer(3546, 9684, -1);
break;
}
c.newLocation = 0;
}
applydead
Code:
public void applyDead() {
if (c.getItems().playerHasItem(12926) || c.getItems().isWearingItem(12926)) {
c.setToxicBlowpipeCharge(0);
c.setToxicBlowpipeAmmo(0);
c.setToxicBlowpipeAmmoAmount(0);
c.sendMessage("<col=255>You have lost your blow pipes charges & ammo!");
}
if (c.getItems().playerHasItem(12931) || c.getItems().isWearingItem(12931)) {
c.setSerpentineHelmCharge(0);
c.sendMessage("<col=255>You have lost your helms charges!");
}
if (c.getItems().playerHasItem(12904) || c.getItems().isWearingItem(12904)) {
c.setToxicStaffOfDeadCharge(0);
c.sendMessage("<col=255>You have lost your staffs charges!");
}
c.isFullHelm = Item.isFullHelm(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.freezeTimer = 1;
c.recoilHits = 0;
DuelSession duelSession = (DuelSession) Server.getMultiplayerSessionListener().getMultiplayerSession(c, MultiplayerSessionType.DUEL);
if (Objects.nonNull(duelSession) && duelSession.getStage().getStage() < MultiplayerSessionStage.FURTHER_INTERACTION) {
duelSession = null;
}
if (Objects.isNull(duelSession)) {
c.setKiller(c.getPlayerKiller());
Player o = PlayerHandler.getPlayer(c.getKiller());
if (c.getKiller() != null && o != null && !c.isKilledByZombie()) {
c.killerId = o.playerId;
if (c.killerId != c.playerId)
if (c.inWild() || c.inCamWild()) {
if (HolidayController.HALLOWEEN.isActive()) {
CycleEventHandler.getSingleton().addEvent(c, new HalloweenDeathCycleEvent(c, o), 6);
}
if (!o.getPlayerKills().killedRecently(c.connectedFrom) && !o.getMacAddress().equals(c.getMacAddress())) {
o.getPlayerKills().add(c.connectedFrom);
Achievements.increase(o, AchievementType.KILL_PLAYER, 1);
c.DC++;
o.KC++;
c.getLogs().playerKills();
if (Config.BOUNTY_HUNTER_ACTIVE) {
c.getBH().dropPlayerEmblem(o);
if (c.getBH().hasTarget() && c.getBH().getTarget().getName().equalsIgnoreCase(o.playerName) && o.getBH().hasTarget()
&& o.getBH().getTarget().getName().equalsIgnoreCase(c.playerName)) {
o.getBH().setCurrentHunterKills(o.getBH().getCurrentHunterKills() + 1);
if (o.getBH().getCurrentHunterKills() > o.getBH().getRecordHunterKills()) {
o.getBH().setRecordHunterKills(o.getBH().getCurrentHunterKills());
}
o.getKillstreak().increase(Killstreak.Type.HUNTER);
o.getBH().upgradePlayerEmblem();
o.getBH().setTotalHunterKills(o.getBH().getTotalHunterKills() + 1);
o.getBH().removeTarget();
c.getBH().removeTarget();
o.getBH().setTargetState(TargetState.RECENT_TARGET_KILL);
o.sendMessage("<col=255>You have killed your target: " + c.playerName + ".");
} else {
o.getKillstreak().increase(Killstreak.Type.ROGUE);
o.getBH().setCurrentRogueKills(o.getBH().getCurrentRogueKills() + 1);
o.getBH().setTotalRogueKills(o.getBH().getTotalRogueKills() + 1);
if (o.getBH().getCurrentRogueKills() > o.getBH().getRecordRogueKills()) {
o.getBH().setRecordRogueKills(o.getBH().getCurrentRogueKills());
}
}
o.getBH().updateStatisticsUI();
o.getBH().updateTargetUI();
}
int opponentKillstreak = c.getKillstreak().getAmount(Killstreak.Type.ROGUE);
if (opponentKillstreak > 1) {
o.sendMessage("You receive an additional 5 PK tickets, your opponent had a killstreak of " + opponentKillstreak + ".");
PlayerHandler.executeGlobalMessage("<col=CC0000>" + WordUtils.capitalize(o.playerName) + "</col><col=255>"
+ " has ended </col><col=CC0000>" + WordUtils.capitalize(c.playerName) + "</col><col=255>'s"
+ " rogue killstreak of " + opponentKillstreak + ".");
PlayerHandler.executeGlobalMessage("<col=255>They have been awarded " + opponentKillstreak + " pk tickets.");
o.getItems().addItemUnderAnyCircumstance(2996, opponentKillstreak);
}
opponentKillstreak = c.getKillstreak().getAmount(Killstreak.Type.HUNTER);
if (opponentKillstreak > 1) {
o.sendMessage("You receive an additional 5 PK tickets, your opponent had a killstreak of " + opponentKillstreak + ".");
PlayerHandler.executeGlobalMessage("<col=CC0000>" + WordUtils.capitalize(o.playerName) + "</col><col=255>"
+ " has ended </col><col=CC0000>" + WordUtils.capitalize(c.playerName) + "</col><col=255>'s"
+ " hunter killstreak of " + opponentKillstreak + ".");
o.getItems().addItemUnderAnyCircumstance(2996, 5);
}
if (o.getRights().getValue() == 5) {
o.pkp += 1;
}
if (o.getRights().getValue() == 6) {
o.pkp += 1;
}
if (o.getRights().getValue() == 7) {
o.pkp += 2;
}
if (o.getRights().getValue() == 8) {
o.pkp += 2;
}
if (o.getRights().getValue() == 9) {
o.pkp += 3;
}
o.pkp += Config.BONUS_WEEKEND ? 5 : 3;
c.getKillstreak().resetAll();
c.getItems().dropPVP();
c.getPA().loadQuests();
o.getPA().loadQuests();
} else {
o.sendMessage("You do not get any PK Points as you have recently defeated @blu@" + Misc.optimizeText(c.playerName)
+ "@bla@.");
// return;
}
}
c.playerKilled = c.playerId;
PlayerSave.saveGame(c);
PlayerSave.saveGame(o);
}
c.sendMessage("Oh dear you are dead!");
c.setPoisonDamage((byte) 0);
}
if (Config.BOUNTY_HUNTER_ACTIVE) {
c.getBH().setCurrentHunterKills(0);
c.getBH().setCurrentRogueKills(0);
c.getBH().updateStatisticsUI();
c.getBH().updateTargetUI();
}
c.faceUpdate(0);
c.stopMovement();
if (duelSession != null && duelSession.getStage().getStage() == MultiplayerSessionStage.FURTHER_INTERACTION) {
if (!duelSession.getWinner().isPresent()) {
c.sendMessage("You have lost the duel!");
Player opponent = duelSession.getOther(c);
opponent.logoutDelay.reset();
if (!duelSession.getWinner().isPresent()) {
duelSession.setWinner(opponent);
}
PlayerSave.saveGame(opponent);
} else {
c.sendMessage("Congratulations, you have won the duel.");
}
c.logoutDelay.reset();
}
PlayerSave.saveGame(c);
c.specAmount = 10;
c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
c.lastVeng.reset();
c.startAnimation(2304);
c.vengOn = false;
resetFollowers();
c.attackTimer = 10;
c.tradeResetNeeded = true;
c.doubleHit = false;
removeAllWindows();
closeAllWindows();
}
public void resetTb() {
c.teleBlockLength = 0;
c.teleBlockDelay = 0;
}
public void resetFollowers() {
for (int j = 0; j < PlayerHandler.players.length; j++) {
if (PlayerHandler.players[j] != null) {
if (PlayerHandler.players[j].followId == c.playerId) {
Player c = PlayerHandler.players[j];
c.getPA().resetFollow();
}
}
}
}