Advertisement
Guest User

Untitled

a guest
Aug 30th, 2015
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. private synchronized void storeEffect()
  2. {
  3. if (!Config.STORE_SKILL_COOLTIME)
  4. return;
  5.  
  6. Connection con = null;
  7.  
  8. try
  9. {
  10. con = L2DatabaseFactory.getInstance().getConnection(con);
  11.  
  12. PreparedStatement statement = con.prepareStatement(DELETE_SKILL_SAVE);
  13. statement.setInt(1, getObjectId());
  14. statement.setInt(2, getClassIndex());
  15. statement.execute();
  16. statement.close();
  17.  
  18. int buff_index = 0;
  19.  
  20. statement = con.prepareStatement(ADD_SKILL_SAVE);
  21.  
  22. Set<Integer> storedSkills = new HashSet<>();
  23.  
  24. for (L2Effect effect : getAllEffects())
  25. if (effect != null && !effect.isHerbEffect() && effect.getInUse() && !effect.getSkill().isToggle())
  26. {
  27. if (effect instanceof EffectFusion)
  28. {
  29. continue;
  30. }
  31. int skillId = effect.getSkill().getId();
  32. if (!storedSkills.add(skillId))
  33. {
  34. continue;
  35. }
  36.  
  37. statement.setInt(1, getObjectId());
  38. statement.setInt(2, skillId);
  39. statement.setInt(3, effect.getSkill().getLevel());
  40. statement.setInt(4, effect.getCount());
  41. statement.setInt(5, effect.getTime());
  42. if (_reuseTimeStamps.containsKey(skillId))
  43. {
  44. TimeStamp t = _reuseTimeStamps.get(skillId);
  45. statement.setLong(6, t.hasNotPassed() ? t.getReuse() : 0);
  46. statement.setLong(7, t.hasNotPassed() ? t.getStamp() : 0);
  47. }
  48. else
  49. {
  50. statement.setLong(6, 0);
  51. statement.setLong(7, 0);
  52. }
  53. statement.setInt(8, 0);
  54. statement.setInt(9, getClassIndex());
  55. statement.setInt(10, ++buff_index);
  56. statement.execute();
  57. }
  58. for (TimeStamp t : _reuseTimeStamps.values())
  59. if (t.hasNotPassed())
  60. {
  61. int skillId = t.getSkill();
  62. if (!storedSkills.add(skillId))
  63. {
  64. continue;
  65. }
  66.  
  67. statement.setInt(1, getObjectId());
  68. statement.setInt(2, skillId);
  69. statement.setInt(3, -1);
  70. statement.setInt(4, -1);
  71. statement.setInt(5, -1);
  72. statement.setLong(6, t.getReuse());
  73. statement.setLong(7, t.getStamp());
  74. statement.setInt(8, 1);
  75. statement.setInt(9, getClassIndex());
  76. statement.setInt(10, ++buff_index);
  77. statement.execute();
  78. }
  79. statement.close();
  80. }
  81. catch (Exception e)
  82. {
  83. _log.error("Could not store char effect data: ", e);
  84. }
  85. finally
  86. {
  87. L2DatabaseFactory.close(con);
  88. }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement