Scarecrow.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 Scarecrow extends L2Transformation
  6. {
  7. private static final int[] SKILLS = {940,942,5437,619};
  8. public Scarecrow()
  9. {
  10. // id, colRadius, colHeight
  11. super(115, 13, 30);
  12. }
  13. @Override
  14. public void onTransform()
  15. {
  16. if (getPlayer().getTransformationId() != 115 || getPlayer().isCursedWeaponEquipped())
  17. return;
  18. transformedSkills();
  19. }
  20. public void transformedSkills()
  21. {
  22. // Fake Attack
  23. getPlayer().addSkill(SkillTable.getInstance().getInfo(940, 1), false);
  24. // Special Motion
  25. getPlayer().addSkill(SkillTable.getInstance().getInfo(942, 1), false);
  26. // Dissonance
  27. getPlayer().addSkill(SkillTable.getInstance().getInfo(5437, 2), false);
  28. // Transform Dispel
  29. getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);
  30. getPlayer().setTransformAllowedSkills(SKILLS);
  31. }
  32. @Override
  33. public void onUntransform()
  34. {
  35. removeSkills();
  36. }
  37. public void removeSkills()
  38. {
  39. // Fake Attack
  40. getPlayer().removeSkill(SkillTable.getInstance().getInfo(940, 1), false);
  41. // Special Motion
  42. getPlayer().removeSkill(SkillTable.getInstance().getInfo(942, 1), false);
  43. // Dissonance
  44. getPlayer().removeSkill(SkillTable.getInstance().getInfo(5437, 2), false);
  45. // Transform Dispel
  46. getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);
  47. getPlayer().setTransformAllowedSkills(EMPTY_ARRAY);
  48. }
  49. public static void main(String[] args)
  50. {
  51. TransformationManager.getInstance().registerTransformation(new Scarecrow());
  52. }
  53. }