/** * Method SetAwakingId. * * @param player Player */ public void SetAwakingId(Player player) { int _oldId = player.getClassId().getId(); player.broadcastPacket(new SocialAction(player.getObjectId(), 20)); if (Config .ALT_DELETE_SKILL_PROF) // its important part of correct skill assignment this If sentence, // removed from player.java { onTransferOnlyRemoveSkills(player); } getRaceSkill(player); player.setClassId(_CA.get(_oldId), false, false); player.broadcastUserInfo(); giveItems(player, _oldId, _CA.get(_oldId)); giveItemsChaosPomander(player); giveItemsChaosEssence(player); giveGiantEssences(player, false); }
/** * Method endOfLife. * * @param cw CursedWeapon */ public void endOfLife(CursedWeapon cw) { if (cw.isActivated()) { Player player = cw.getOnlineOwner(); if (player != null) { _log.info( "CursedWeaponsManager: " + cw.getName() + " being removed online from " + player + "."); player.abortAttack(true, true); player.setKarma(cw.getPlayerKarma()); player.setPkKills(cw.getPlayerPkKills()); player.setCursedWeaponEquippedId(0); player.setTransformation(0); player.setTransformationName(null); player.removeSkill( SkillTable.getInstance() .getInfo(cw.getSkillId(), player.getSkillLevel(cw.getSkillId())), false); player.getInventory().destroyItemByItemId(cw.getItemId(), 1L); player.broadcastCharInfo(); } else { _log.info("CursedWeaponsManager: " + cw.getName() + " being removed offline."); Connection con = null; PreparedStatement statement = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("DELETE FROM items WHERE owner_id=? AND item_id=?"); statement.setInt(1, cw.getPlayerId()); statement.setInt(2, cw.getItemId()); statement.executeUpdate(); DbUtils.close(statement); statement = con.prepareStatement( "DELETE FROM character_skills WHERE char_obj_id=? AND skill_id=?"); statement.setInt(1, cw.getPlayerId()); statement.setInt(2, cw.getSkillId()); statement.executeUpdate(); DbUtils.close(statement); statement = con.prepareStatement("UPDATE characters SET karma=?, pkkills=? WHERE obj_Id=?"); statement.setInt(1, cw.getPlayerKarma()); statement.setInt(2, cw.getPlayerPkKills()); statement.setInt(3, cw.getPlayerId()); statement.executeUpdate(); } catch (SQLException e) { _log.warn("CursedWeaponsManager: Could not delete : " + e); } finally { DbUtils.closeQuietly(con, statement); } } } else if ((cw.getPlayer() != null) && (cw.getPlayer().getInventory().getItemByItemId(cw.getItemId()) != null)) { Player player = cw.getPlayer(); if (!cw.getPlayer().getInventory().destroyItemByItemId(cw.getItemId(), 1)) { _log.info("CursedWeaponsManager[453]: Error! Cursed weapon not found!!!"); } player.sendChanges(); player.broadcastUserInfo(); } else if (cw.getItem() != null) { cw.getItem().deleteMe(); cw.getItem().delete(); _log.info("CursedWeaponsManager: " + cw.getName() + " item has been removed from World."); } cw.initWeapon(); removeFromDb(cw.getItemId()); announce(new SystemMessage(SystemMessage.S1_HAS_DISAPPEARED_CW).addString(cw.getName())); }