Guest User

Untitled

a guest
Oct 22nd, 2016
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. package ai.custom1;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.GregorianCalendar;
  7.  
  8. import l2f.gameserver.ThreadPoolManager;
  9. import l2f.gameserver.ai.DefaultAI;
  10. import l2f.gameserver.model.Player;
  11. import l2f.gameserver.model.World;
  12. import l2f.gameserver.model.instances.NpcInstance;
  13. import l2f.gameserver.tables.SkillTable;
  14.  
  15. public class custom extends DefaultAI
  16. {
  17. private int SKILL_ID_1 = 555;
  18. private int i = 1;
  19. private final long MINIMUM_DELAY = i;
  20. private String TASK_NAME = "skill reuse";
  21.  
  22. public custom(NpcInstance actor)
  23. {
  24. super(actor);
  25. }
  26.  
  27.  
  28.  
  29. protected boolean thinkActive()
  30. {
  31. NpcInstance actor = getActor();
  32. if (actor == null)
  33. {
  34. return true;
  35. }
  36. int skillId = SKILL_ID_1;
  37. for (Player player : World.getAroundPlayers(actor, 200, 200))
  38. {
  39. if ((player != null) && (player.isInAnonymousZone()))
  40. {
  41. while (i < 10)
  42. {
  43. actor.doCast(SkillTable.getInstance().getInfo(skillId, 1), player, true);
  44.  
  45. skillusedelay();
  46. i = i + 1;
  47. }
  48. }
  49. }
  50. return false;
  51. }
  52.  
  53. public void skillusedelay()
  54. {
  55. long[] timeTable = new long[]{
  56. calcDelay(MINIMUM_DELAY),
  57. };
  58. Arrays.sort(timeTable);
  59. final long delay = timeTable[0] - System.currentTimeMillis();
  60.  
  61. ThreadPoolManager.getInstance().schedule(new Runnable()
  62. {
  63.  
  64. @Override
  65. public void run() {
  66. NpcInstance actor = getActor();
  67. int skillId = SKILL_ID_1;
  68. for (Player player : World.getAroundPlayers(actor, 200, 200))
  69. {
  70. actor.doCast(SkillTable.getInstance().getInfo(skillId, 1), player, true);
  71. }
  72. }
  73. }, delay);
  74.  
  75. System.out.println(TASK_NAME + ": Scheduled " + new Date(timeTable[0]).toString());
  76. }
  77.  
  78.  
  79. private long calcDelay(long minimumDelay)
  80. {
  81. long now = System.currentTimeMillis();
  82. GregorianCalendar reset = new GregorianCalendar();
  83. reset.setTimeInMillis(now);
  84. reset.set(Calendar.MILLISECOND, 0);
  85. reset.set(Calendar.SECOND, 0);
  86. reset.set(Calendar.MINUTE, i);
  87. return reset.getTimeInMillis();
  88. }
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment