Teleporter2.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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 Teleporter2 extends L2Transformation
  6. {
  7. private static final int[] SKILLS = {5656,5657,5658,5491,8248};
  8. public Teleporter2()
  9. {
  10. // id, colRadius, colHeight
  11. super(107, 8, 25);
  12. }
  13. @Override
  14. public void onTransform()
  15. {
  16. if (getPlayer().getTransformationId() != 107 || getPlayer().isCursedWeaponEquipped())
  17. return;
  18. transformedSkills();
  19. }
  20. public void transformedSkills()
  21. {
  22. /*
  23. Commented out until we figure out how to remove the skills properly.
  24. What happens if a player transforms at level 40, gets the level 40 version of the skill, then somehow levels up?
  25. Then when we untransform, the script will look for the level 41 version of the skill, right?
  26. Or will it still remove the level 40 skill? Needs to be tested.
  27. // Gatekeeper Aura Flare
  28. getPlayer().addSkill(SkillTable.getInstance().getInfo(5656, getPlayer().getLevel()), false);
  29. // Gatekeeper Prominence
  30. getPlayer().addSkill(SkillTable.getInstance().getInfo(5657, getPlayer().getLevel()), false);
  31. // Gatekeeper Flame Strike
  32. getPlayer().addSkill(SkillTable.getInstance().getInfo(5658, getPlayer().getLevel()), false);
  33. // Gatekeeper Berserker Spirit (there are two levels, when do players get access to level 2?)
  34. getPlayer().addSkill(SkillTable.getInstance().getInfo(5659, 1), false);
  35. */
  36. // Decrease Bow/Crossbow Attack Speed
  37. getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  38. // Cancel Gatekeeper Transformation
  39. getPlayer().addSkill(SkillTable.getInstance().getInfo(8248, 1), false);
  40. getPlayer().setTransformAllowedSkills(SKILLS);
  41. }
  42. @Override
  43. public void onUntransform()
  44. {
  45. removeSkills();
  46. }
  47. public void removeSkills()
  48. {
  49. /*
  50. Commented out until we figure out how to remove the skills properly.
  51. What happens if a player transforms at level 40, gets the level 40 version of the skill, then somehow levels up?
  52. Then when we untransform, the script will look for the level 41 version of the skill, right?
  53. Or will it still remove the level 40 skill? Needs to be tested.
  54. // Gatekeeper Aura Flare
  55. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5656, getPlayer().getLevel()), false);
  56. // Gatekeeper Prominence
  57. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5657, getPlayer().getLevel()), false);
  58. // Gatekeeper Flame Strike
  59. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5658, getPlayer().getLevel()), false);
  60. // Gatekeeper Berserker Spirit (there are two levels, when do players get access to level 2?)
  61. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5659, 1), false);
  62. */
  63. // Decrease Bow/Crossbow Attack Speed
  64. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);
  65. // Cancel Gatekeeper Transformation
  66. getPlayer().removeSkill(SkillTable.getInstance().getInfo(8248, 1), false);
  67. getPlayer().setTransformAllowedSkills(EMPTY_ARRAY);
  68. }
  69. public static void main(String[] args)
  70. {
  71. TransformationManager.getInstance().registerTransformation(new Teleporter2());
  72. }
  73. }