SaberToothTiger.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package transformations;
  2. import com.l2jserver.gameserver.datatables.SkillTable;
  3. import com.l2jserver.gameserver.instancemanager.TransformationManager;
  4. import com.l2jserver.gameserver.model.L2Transformation;
  5. public class SaberToothTiger extends L2Transformation
  6. {
  7. private static final int[] SKILLS = {746,747,748,5491,619};
  8. public SaberToothTiger()
  9. {
  10. // id, colRadius, colHeight
  11. super(5, 34, 28);
  12. }
  13. @Override
  14. public void onTransform()
  15. {
  16. if (getPlayer().getTransformationId() != 5 || getPlayer().isCursedWeaponEquipped())
  17. return;
  18. transformedSkills();
  19. }
  20. public void transformedSkills()
  21. {
  22. if (getPlayer().getLevel() >= 76)
  23. {
  24. // Saber Tooth Tiger Bite (up to 3 levels)
  25. getPlayer().addSkill(SkillTable.getInstance().getInfo(746, 3), false);
  26. // Saber Tooth Tiger Fear (up to 3 levels)
  27. getPlayer().addSkill(SkillTable.getInstance().getInfo(747, 3), false);
  28. }
  29. else if (getPlayer().getLevel() >= 73)
  30. {
  31. // Saber Tooth Tiger Bite (up to 3 levels)
  32. getPlayer().addSkill(SkillTable.getInstance().getInfo(746, 2), false);
  33. // Saber Tooth Tiger Fear (up to 3 levels)
  34. getPlayer().addSkill(SkillTable.getInstance().getInfo(747, 2), false);
  35. }
  36. else if (getPlayer().getLevel() >= 70)
  37. {
  38. // Saber Tooth Tiger Bite (up to 3 levels)
  39. getPlayer().addSkill(SkillTable.getInstance().getInfo(746, 1), false);
  40. // Saber Tooth Tiger Fear (up to 3 levels)
  41. getPlayer().addSkill(SkillTable.getInstance().getInfo(747, 1), false);
  42. }
  43. // Saber Tooth Tiger Sprint
  44. getPlayer().addSkill(SkillTable.getInstance().getInfo(748, 1), false);
  45. // Decrease Bow/Crossbow Attack Speed
  46. getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  47. // Transform Dispel
  48. getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);
  49. getPlayer().setTransformAllowedSkills(SKILLS);
  50. }
  51. @Override
  52. public void onUntransform()
  53. {
  54. removeSkills();
  55. }
  56. public void removeSkills()
  57. {
  58. if (getPlayer().getLevel() >= 76)
  59. {
  60. // Saber Tooth Tiger Bite (up to 3 levels)
  61. getPlayer().removeSkill(SkillTable.getInstance().getInfo(746, 3), false);
  62. // Saber Tooth Tiger Fear (up to 3 levels)
  63. getPlayer().removeSkill(SkillTable.getInstance().getInfo(747, 3), false);
  64. }
  65. else if (getPlayer().getLevel() >= 73)
  66. {
  67. // Saber Tooth Tiger Bite (up to 3 levels)
  68. getPlayer().removeSkill(SkillTable.getInstance().getInfo(746, 2), false);
  69. // Saber Tooth Tiger Fear (up to 3 levels)
  70. getPlayer().removeSkill(SkillTable.getInstance().getInfo(747, 2), false);
  71. }
  72. else
  73. {
  74. // Saber Tooth Tiger Bite (up to 3 levels)
  75. getPlayer().removeSkill(SkillTable.getInstance().getInfo(746, 1), false);
  76. // Saber Tooth Tiger Fear (up to 3 levels)
  77. getPlayer().removeSkill(SkillTable.getInstance().getInfo(747, 1), false);
  78. }
  79. // Saber Tooth Tiger Sprint
  80. getPlayer().removeSkill(SkillTable.getInstance().getInfo(748, 1), false, false);
  81. // Decrease Bow/Crossbow Attack Speed
  82. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  83. // Transform Dispel
  84. getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);
  85. getPlayer().setTransformAllowedSkills(EMPTY_ARRAY);
  86. }
  87. public static void main(String[] args)
  88. {
  89. TransformationManager.getInstance().registerTransformation(new SaberToothTiger());
  90. }
  91. }