public static void giveLife(Client c) {
c.isDead = false;
c.faceUpdate(-1);
c.freezeTimer = 0;
if (c.duelStatus <= 4) { // if we are not in a duel we must be in wildy
// so remove items
if (!c.inFightCaves()) {
c.getItems().resetKeepItems();
if ((c.playerRights != 2 && !Config.ADMIN_DROP_ITEMS)) {
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.curseActive[0]
&& System.currentTimeMillis() - c.lastProtItem > 700) {
c.getItems().keepItem(3, true);
//c.getItems().dropAllItemsPVP();
}
if (c.trade11 < 1 && !c.inRFD() && !c.isInFala()
&& !c.isInArd() && c.inTower()) {
c.getItems().dropAllItems(); // drop all items
c.getItems().deleteAllItems(); // delete all items
//TODO: so the problem is the dro all items method..
//c.sendMessage("Hey super ur in the tower.");
}
if (c.inRFD()) {
c.getItems().deleteAllItems(); // delete all items
}
c.getPA().ResetGWKC();
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 we have protect items
if (c.itemKeptId[3] > 0) {
c.getItems().addItem(c.itemKeptId[3], 1);
}
}
}
c.getItems().resetKeepItems();
} else if (c.inPits) {
Server.fightPits.removePlayerFromPits(c.playerId);
c.pitsStatus = 1;
}
}
c.getCombat().resetPrayers();
for (int i = 0; i < 20; i++) {
c.playerLevel[i] = c.getPA().getLevelForXP(c.playerXP[i]);
c.getPA().refreshSkill(i);
}
if (c.pitsStatus == 1) {
c.getPA().movePlayer(2399, 5173, 0);
} else if (c.duelStatus <= 4) { // if we are not in a duel repawn to
// wildy
c.getPA().movePlayer(Config.RESPAWN_X, Config.RESPAWN_Y, 0);
c.isSkulled = false;
c.skullTimer = 0;
c.attackedPlayers.clear();
} else if (c.inFightCaves()) {
c.getPA().resetTzhaar();
} else if (c.inRFD()) {
c.getPA().resetRFD();
} else { // we are in a duel, respawn outside of arena
Client o = (Client) PlayerHandler.players[c.duelingWith];
if (o != null) {
o.getPA().createPlayerHints(10, -1);
if (o.duelStatus == 6) {
o.getTradeAndDuel().duelVictory();
// o.pcPoints += 1;
// o.sendMessage("You have gained 1 Soul Split Points for winning a duel");
}
}
c.getPA().movePlayer(Config.DUELING_RESPAWN_X + (Misc.random(Config.RANDOM_DUELING_RESPAWN)),
Config.DUELING_RESPAWN_Y
+ (Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);
if (c.duelStatus != 6) { // if we have won but have died, don't
// reset the duel status.
c.getTradeAndDuel().resetDuel();
}
}