MC_Show.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. /*
  2. * This program is free software: you can redistribute it and/or modify it under
  3. * the terms of the GNU General Public License as published by the Free Software
  4. * Foundation, either version 3 of the License, or (at your option) any later
  5. * version.
  6. *
  7. * This program is distributed in the hope that it will be useful, but WITHOUT
  8. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9. * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10. * details.
  11. *
  12. * You should have received a copy of the GNU General Public License along with
  13. * this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. package ai.fantasy_isle;
  16. import java.text.SimpleDateFormat;
  17. import java.util.Map;
  18. import javolution.util.FastMap;
  19. import com.l2jserver.Config;
  20. import com.l2jserver.gameserver.GameTimeController;
  21. import com.l2jserver.gameserver.ThreadPoolManager;
  22. import com.l2jserver.gameserver.ai.CtrlIntention;
  23. import com.l2jserver.gameserver.model.L2CharPosition;
  24. import com.l2jserver.gameserver.model.actor.L2Npc;
  25. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  26. import com.l2jserver.gameserver.model.quest.Quest;
  27. import com.l2jserver.gameserver.network.serverpackets.NpcSay;
  28. import com.l2jserver.gameserver.network.serverpackets.PlaySound;
  29. import com.l2jserver.gameserver.network.serverpackets.SocialAction;
  30. /**
  31. * MC show script
  32. * @author Kerberos
  33. */
  34. public class MC_Show extends Quest
  35. {
  36. private static int mc = 32433;
  37. private static int[] singers = {32431,32432};
  38. private static int[] circus = {32442,32443,32444,32445,32446};
  39. private static int[] individuals = {32439,32440,32441};
  40. private static int[] showstuff = {32424,32425,32426,32427,32428};
  41. private static boolean isStarted = false;
  42. private static int[] messages = {
  43. 1800105, // How come people are not here... We are about to start the show.. Hmm
  44. 1800082, // Ugh, I have butterflies in my stomach.. The show starts soon...
  45. 1800083, // Thank you all for coming here tonight.
  46. 1800084, // It is an honor to have the special show today.
  47. 1800085, // Our Fantasy Isle is fully committed to your happiness.
  48. 1800086, // Now I'd like to introduce the most beautiful singer in Aden. Please welcome Leyla Mira!
  49. 1800087, // Here she comes!
  50. 1800088, // Thank you very much, Leyla!
  51. // 1800089 Now we're in for a real treat.
  52. 1800090, // Just back from their world tourÅput your hands together for the Fantasy Isle Circus!
  53. 1800091, // Come on ~ everyone
  54. 1800092, // Did you like it? That was so amazing.
  55. 1800093, // Now we also invited individuals with special talents.
  56. 1800094, // Let's welcome the first person here!
  57. 1800095, // ;;;;;;Oh
  58. 1800096, // Okay, now here comes the next person. Come on up please.
  59. 1800097, // Oh, it looks like something great is going to happen, right?
  60. 1800098, // Oh, my ;;;;
  61. 1800099, // That's g- .. great. Now, here comes the last person.
  62. 1800100, // Now this is the end of today's show.
  63. 1800101, // How was it? I am not sure if you really enjoyed it.
  64. 1800102, // Please remember that Fantasy Isle is always planning a lot of great shows for you.
  65. 1800103, // Well, I wish I could continue all night long, but this is it for today. Thank you.
  66. 1800104 // We love you
  67. };
  68. private static Map<String, Object[]> talks = new FastMap<String, Object[]>();
  69. private static Map<String, Object[]> walks = new FastMap<String, Object[]>();
  70. private void load()
  71. {
  72. talks.put("1", new Object[]{messages[1],"2",1000});
  73. talks.put("2", new Object[]{messages[2],"3",6000});
  74. talks.put("3", new Object[]{messages[3],"4",4000});
  75. talks.put("4", new Object[]{messages[4],"5",5000});
  76. talks.put("5", new Object[]{messages[5],"6",3000});
  77. talks.put("8", new Object[]{messages[8],"9",5000});
  78. talks.put("9", new Object[]{messages[9],"10",5000});
  79. talks.put("12", new Object[]{messages[11],"13",5000});
  80. talks.put("13", new Object[]{messages[12],"14",5000});
  81. talks.put("15", new Object[]{messages[13],"16",5000});
  82. talks.put("16", new Object[]{messages[14],"17",5000});
  83. talks.put("18", new Object[]{messages[16],"19",5000});
  84. talks.put("19", new Object[]{messages[17],"20",5000});
  85. talks.put("21", new Object[]{messages[18],"22",5000});
  86. talks.put("22", new Object[]{messages[19],"23",400});
  87. talks.put("25", new Object[]{messages[20],"26",5000});
  88. talks.put("26", new Object[]{messages[21],"27",5400});
  89. walks.put("npc1_1" , new Object[]{-56546,-56384,-2008,"npc1_2",1200});
  90. walks.put("npc1_2" , new Object[]{-56597,-56384,-2008,"npc1_3",1200});
  91. walks.put("npc1_3" , new Object[]{-56596,-56428,-2008,"npc1_4",1200});
  92. walks.put("npc1_4" , new Object[]{-56593,-56474,-2008,"npc1_5",1000});
  93. walks.put("npc1_5" , new Object[]{-56542,-56474,-2008,"npc1_6",1000});
  94. walks.put("npc1_6" , new Object[]{-56493,-56473,-2008,"npc1_7",2000});
  95. walks.put("npc1_7" , new Object[]{-56495,-56425,-2008,"npc1_1",4000});
  96. walks.put("npc2_1" , new Object[]{-56550,-56291,-2008,"npc2_2",1200});
  97. walks.put("npc2_2" , new Object[]{-56601,-56293,-2008,"npc2_3",1200});
  98. walks.put("npc2_3" , new Object[]{-56603,-56247,-2008,"npc2_4",1200});
  99. walks.put("npc2_4" , new Object[]{-56605,-56203,-2008,"npc2_5",1000});
  100. walks.put("npc2_5" , new Object[]{-56553,-56202,-2008,"npc2_6",1100});
  101. walks.put("npc2_6" , new Object[]{-56504,-56200,-2008,"npc2_7",2000});
  102. walks.put("npc2_7" , new Object[]{-56503,-56243,-2008,"npc2_1",4000});
  103. walks.put("npc3_1" , new Object[]{-56500,-56290,-2008,"npc3_2",1200});
  104. walks.put("npc3_2" , new Object[]{-56551,-56313,-2008,"npc3_3",1200});
  105. walks.put("npc3_3" , new Object[]{-56601,-56293,-2008,"npc3_4",1200});
  106. walks.put("npc3_4" , new Object[]{-56651,-56294,-2008,"npc3_5",1200});
  107. walks.put("npc3_5" , new Object[]{-56653,-56250,-2008,"npc3_6",1200});
  108. walks.put("npc3_6" , new Object[]{-56654,-56204,-2008,"npc3_7",1200});
  109. walks.put("npc3_7" , new Object[]{-56605,-56203,-2008,"npc3_8",1200});
  110. walks.put("npc3_8" , new Object[]{-56554,-56202,-2008,"npc3_9",1200});
  111. walks.put("npc3_9" , new Object[]{-56503,-56200,-2008,"npc3_10",1200});
  112. walks.put("npc3_10", new Object[]{-56502,-56244,-2008,"npc3_1",900});
  113. walks.put("npc4_1" , new Object[]{-56495,-56381,-2008,"npc4_2",1200});
  114. walks.put("npc4_2" , new Object[]{-56548,-56383,-2008,"npc4_3",1200});
  115. walks.put("npc4_3" , new Object[]{-56597,-56383,-2008,"npc4_4",1200});
  116. walks.put("npc4_4" , new Object[]{-56643,-56385,-2008,"npc4_5",1200});
  117. walks.put("npc4_5" , new Object[]{-56639,-56436,-2008,"npc4_6",1200});
  118. walks.put("npc4_6" , new Object[]{-56639,-56473,-2008,"npc4_7",1200});
  119. walks.put("npc4_7" , new Object[]{-56589,-56473,-2008,"npc4_8",1200});
  120. walks.put("npc4_8" , new Object[]{-56541,-56473,-2008,"npc4_9",1200});
  121. walks.put("npc4_9" , new Object[]{-56496,-56473,-2008,"npc4_10",1200});
  122. walks.put("npc4_10", new Object[]{-56496,-56429,-2008,"npc4_1",900});
  123. walks.put("npc5_1" , new Object[]{-56549,-56335,-2008,"npc5_2",1000});
  124. walks.put("npc5_2" , new Object[]{-56599,-56337,-2008,"npc5_3",2000});
  125. walks.put("npc5_3" , new Object[]{-56649,-56341,-2008,"npc5_4",26000});
  126. walks.put("npc5_4" , new Object[]{-56600,-56341,-2008,"npc5_5",1000});
  127. walks.put("npc5_5" , new Object[]{-56553,-56341,-2008,"npc5_6",1000});
  128. walks.put("npc5_6" , new Object[]{-56508,-56331,-2008,"npc5_2",8000});
  129. walks.put("npc6_1" , new Object[]{-56595,-56428,-2008,"npc6_2",1000});
  130. walks.put("npc6_2" , new Object[]{-56596,-56383,-2008,"npc6_3",1000});
  131. walks.put("npc6_3" , new Object[]{-56648,-56384,-2008,"npc6_4",1000});
  132. walks.put("npc6_4" , new Object[]{-56645,-56429,-2008,"npc6_5",1000});
  133. walks.put("npc6_5" , new Object[]{-56644,-56475,-2008,"npc6_6",1000});
  134. walks.put("npc6_6" , new Object[]{-56595,-56473,-2008,"npc6_7",1000});
  135. walks.put("npc6_7" , new Object[]{-56542,-56473,-2008,"npc6_8",1000});
  136. walks.put("npc6_8" , new Object[]{-56492,-56472,-2008,"npc6_9",1200});
  137. walks.put("npc6_9" , new Object[]{-56495,-56426,-2008,"npc6_10",2000});
  138. walks.put("npc6_10", new Object[]{-56540,-56426,-2008,"npc6_1",3000});
  139. walks.put("npc7_1" , new Object[]{-56603,-56249,-2008,"npc7_2",1000});
  140. walks.put("npc7_2" , new Object[]{-56601,-56294,-2008,"npc7_3",1000});
  141. walks.put("npc7_3" , new Object[]{-56651,-56295,-2008,"npc7_4",1000});
  142. walks.put("npc7_4" , new Object[]{-56653,-56248,-2008,"npc7_5",1000});
  143. walks.put("npc7_5" , new Object[]{-56605,-56203,-2008,"npc7_6",1000});
  144. walks.put("npc7_6" , new Object[]{-56554,-56202,-2008,"npc7_7",1000});
  145. walks.put("npc7_7" , new Object[]{-56504,-56201,-2008,"npc7_8",1000});
  146. walks.put("npc7_8" , new Object[]{-56502,-56247,-2008,"npc7_9",1200});
  147. walks.put("npc7_9" , new Object[]{-56549,-56248,-2008,"npc7_10",2000});
  148. walks.put("npc7_10", new Object[]{-56549,-56248,-2008,"npc7_1",3000});
  149. walks.put("npc8_1" , new Object[]{-56493,-56426,-2008,"npc8_2",1000});
  150. walks.put("npc8_2" , new Object[]{-56497,-56381,-2008,"npc8_3",1200});
  151. walks.put("npc8_3" , new Object[]{-56544,-56381,-2008,"npc8_4",1200});
  152. walks.put("npc8_4" , new Object[]{-56596,-56383,-2008,"npc8_5",1200});
  153. walks.put("npc8_5" , new Object[]{-56594,-56428,-2008,"npc8_6",900});
  154. walks.put("npc8_6" , new Object[]{-56645,-56429,-2008,"npc8_7",1200});
  155. walks.put("npc8_7" , new Object[]{-56647,-56384,-2008,"npc8_8",1200});
  156. walks.put("npc8_8" , new Object[]{-56649,-56362,-2008,"npc8_9",9200});
  157. walks.put("npc8_9" , new Object[]{-56654,-56429,-2008,"npc8_10",1200});
  158. walks.put("npc8_10", new Object[]{-56644,-56474,-2008,"npc8_11",900});
  159. walks.put("npc8_11", new Object[]{-56593,-56473,-2008,"npc8_12",1100});
  160. walks.put("npc8_12", new Object[]{-56543,-56472,-2008,"npc8_13",1200});
  161. walks.put("npc8_13", new Object[]{-56491,-56471,-2008,"npc8_1",1200});
  162. walks.put("npc9_1" , new Object[]{-56505,-56246,-2008,"npc9_2",1000});
  163. walks.put("npc9_2" , new Object[]{-56504,-56291,-2008,"npc9_3",1200});
  164. walks.put("npc9_3" , new Object[]{-56550,-56291,-2008,"npc9_4",1200});
  165. walks.put("npc9_4" , new Object[]{-56600,-56292,-2008,"npc9_5",1200});
  166. walks.put("npc9_5" , new Object[]{-56603,-56248,-2008,"npc9_6",900});
  167. walks.put("npc9_6" , new Object[]{-56653,-56249,-2008,"npc9_7",1200});
  168. walks.put("npc9_7" , new Object[]{-56651,-56294,-2008,"npc9_8",1200});
  169. walks.put("npc9_8" , new Object[]{-56650,-56316,-2008,"npc9_9",9200});
  170. walks.put("npc9_9" , new Object[]{-56660,-56250,-2008,"npc9_10",1200});
  171. walks.put("npc9_10", new Object[]{-56656,-56205,-2008,"npc9_11",900});
  172. walks.put("npc9_11", new Object[]{-56606,-56204,-2008,"npc9_12",1100});
  173. walks.put("npc9_12", new Object[]{-56554,-56203,-2008,"npc9_13",1200});
  174. walks.put("npc9_13", new Object[]{-56506,-56203,-2008,"npc9_1",1200});
  175. walks.put("24" , new Object[]{-56730,-56340,-2008,"25",1800});
  176. walks.put("27" , new Object[]{-56702,-56340,-2008,"29",1800});
  177. }
  178. public MC_Show(int id,String name,String descr)
  179. {
  180. super(id,name,descr);
  181. addEventId(32433, Quest.QuestEventType.ON_SPAWN);
  182. addEventId(32431, Quest.QuestEventType.ON_SPAWN);
  183. addEventId(32432, Quest.QuestEventType.ON_SPAWN);
  184. addEventId(32442, Quest.QuestEventType.ON_SPAWN);
  185. addEventId(32443, Quest.QuestEventType.ON_SPAWN);
  186. addEventId(32444, Quest.QuestEventType.ON_SPAWN);
  187. addEventId(32445, Quest.QuestEventType.ON_SPAWN);
  188. addEventId(32446, Quest.QuestEventType.ON_SPAWN);
  189. addEventId(32424, Quest.QuestEventType.ON_SPAWN);
  190. addEventId(32425, Quest.QuestEventType.ON_SPAWN);
  191. addEventId(32426, Quest.QuestEventType.ON_SPAWN);
  192. addEventId(32427, Quest.QuestEventType.ON_SPAWN);
  193. addEventId(32428, Quest.QuestEventType.ON_SPAWN);
  194. load();
  195. scheduleTimer();
  196. }
  197. private int getGameTime()
  198. {
  199. return GameTimeController.getInstance().getGameTime();
  200. }
  201. private void scheduleTimer()
  202. {
  203. int gameTime = getGameTime();
  204. int hours = (gameTime/60)%24;
  205. int minutes = gameTime%60;
  206. int hourDiff, minDiff;
  207. hourDiff = (20 - hours);
  208. if (hourDiff < 0)
  209. hourDiff = 24-(hourDiff*=-1);
  210. minDiff = (30 - minutes);
  211. if (minDiff < 0)
  212. minDiff = 60-(minDiff*=-1);
  213. long diff;
  214. hourDiff*=60*60*1000;
  215. minDiff*=60*1000;
  216. diff = hourDiff+minDiff;
  217. if (Config.DEBUG)
  218. {
  219. SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
  220. _log.info("Fantasy Isle: MC show script starting at " + format.format(System.currentTimeMillis()+diff)+ " and is scheduled each next 4 hours.");
  221. }
  222. ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new StartMCShow(), diff, 14400000L);
  223. }
  224. private void autoChat(L2Npc npc, int stringId, int type)
  225. {
  226. npc.broadcastPacket(new NpcSay(npc.getObjectId(), type, npc.getNpcId(), stringId));
  227. }
  228. @Override
  229. public String onSpawn(L2Npc npc)
  230. {
  231. if (isStarted)
  232. {
  233. switch (npc.getNpcId())
  234. {
  235. case 32433:
  236. autoChat(npc,messages[0],1);
  237. startQuestTimer("1",30000, npc, null);
  238. break;
  239. case 32431:
  240. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56657,-56338,-2008,33102));
  241. startQuestTimer("social1",6000, npc, null, true);
  242. startQuestTimer("7",215000, npc, null);
  243. break;
  244. case 32432:
  245. startQuestTimer("social1",6000, npc, null, true);
  246. startQuestTimer("7",215000, npc, null);
  247. break;
  248. case 32442:
  249. case 32443:
  250. case 32444:
  251. case 32445:
  252. case 32446:
  253. startQuestTimer("11",100000, npc, null);
  254. break;
  255. case 32424:
  256. case 32425:
  257. case 32426:
  258. case 32427:
  259. case 32428:
  260. startQuestTimer("social1",5500, npc, null);
  261. startQuestTimer("social1",12500, npc, null);
  262. startQuestTimer("28",19700, npc, null);
  263. break;
  264. }
  265. }
  266. return super.onSpawn(npc);
  267. }
  268. @Override
  269. public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
  270. {
  271. if (event.equalsIgnoreCase("Start"))
  272. {
  273. isStarted = true;
  274. addSpawn(mc,-56698,-56430,-2008,32768,false,0);
  275. }
  276. else if (npc != null && isStarted)
  277. {
  278. if (event.equalsIgnoreCase("6"))
  279. {
  280. autoChat(npc,messages[6],1);
  281. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(-56511,-56647,-2008,36863));
  282. npc.broadcastPacket(new PlaySound(1, "NS22_F", 0, 0, 0, 0, 0));
  283. addSpawn(singers[0],-56344,-56328,-2008,32768,false,224000);
  284. addSpawn(singers[1],-56552,-56245,-2008,36863,false,224000);
  285. addSpawn(singers[1],-56546,-56426,-2008,28672,false,224000);
  286. addSpawn(singers[1],-56570,-56473,-2008,28672,false,224000);
  287. addSpawn(singers[1],-56594,-56516,-2008,28672,false,224000);
  288. addSpawn(singers[1],-56580,-56203,-2008,36863,false,224000);
  289. addSpawn(singers[1],-56606,-56157,-2008,36863,false,224000);
  290. startQuestTimer("7",215000, npc, null);
  291. }
  292. else if (event.equalsIgnoreCase("7"))
  293. {
  294. switch (npc.getNpcId())
  295. {
  296. case 32433:
  297. autoChat(npc,messages[7],1);
  298. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56698,-56430,-2008,32768));
  299. startQuestTimer("8",12000, npc, null);
  300. break;
  301. default:
  302. cancelQuestTimer("social1", npc, null);
  303. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56594,-56064,-2008,32768));
  304. break;
  305. }
  306. }
  307. else if (event.equalsIgnoreCase("10"))
  308. {
  309. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56483,-56665,-2034,32768));
  310. npc.broadcastPacket(new PlaySound(1, "TP05_F", 0, 0, 0, 0, 0));
  311. startQuestTimer("npc1_1",3000, addSpawn(circus[0],-56495,-56375,-2008,32768,false,101000), null);
  312. startQuestTimer("npc2_1",3000, addSpawn(circus[0],-56491,-56289,-2008,32768,false,101000), null);
  313. startQuestTimer("npc3_1",3000, addSpawn(circus[1],-56502,-56246,-2008,32768,false,101000), null);
  314. startQuestTimer("npc4_1",3000, addSpawn(circus[1],-56496,-56429,-2008,32768,false,101000), null);
  315. startQuestTimer("npc5_1",3500, addSpawn(circus[2],-56505,-56334,-2008,32768,false,101000), null);
  316. startQuestTimer("npc6_1",4000, addSpawn(circus[3],-56545,-56427,-2008,32768,false,101000), null);
  317. startQuestTimer("npc7_1",4000, addSpawn(circus[3],-56552,-56248,-2008,32768,false,101000), null);
  318. startQuestTimer("npc8_1",3000, addSpawn(circus[4],-56493,-56473,-2008,32768,false,101000), null);
  319. startQuestTimer("npc9_1",3000, addSpawn(circus[4],-56504,-56201,-2008,32768,false,101000), null);
  320. startQuestTimer("11",100000, npc, null);
  321. }
  322. else if (event.equalsIgnoreCase("11"))
  323. {
  324. switch (npc.getNpcId())
  325. {
  326. case 32433:
  327. autoChat(npc,messages[10],1);
  328. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56698,-56430,-2008,32768));
  329. startQuestTimer("12",5000, npc, null);
  330. break;
  331. default:
  332. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56343,-56330,-2008,32768));
  333. break;
  334. }
  335. }
  336. else if (event.equalsIgnoreCase("14"))
  337. {
  338. startQuestTimer("social1",2000, addSpawn(individuals[0],-56700,-56385,-2008,32768,false,49000), null);
  339. startQuestTimer("15",7000, npc, null);
  340. }
  341. else if (event.equalsIgnoreCase("17"))
  342. {
  343. autoChat(npc,messages[15],1);
  344. startQuestTimer("social1",2000,addSpawn(individuals[1],-56700,-56340,-2008,32768,false,32000), null);
  345. startQuestTimer("18",9000, npc, null);
  346. }
  347. else if (event.equalsIgnoreCase("20"))
  348. {
  349. startQuestTimer("social1",2000, addSpawn(individuals[2],-56703,-56296,-2008,32768,false,13000), null);
  350. startQuestTimer("21",8000, npc, null);
  351. }
  352. else if (event.equalsIgnoreCase("23"))
  353. {
  354. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56702,-56340,-2008,32768));
  355. startQuestTimer("24",2800, npc, null);
  356. addSpawn(showstuff[0],-56672,-56406,-2000,32768,false,20900);
  357. addSpawn(showstuff[1],-56648,-56368,-2000,32768,false,20900);
  358. addSpawn(showstuff[2],-56608,-56338,-2000,32768,false,20900);
  359. addSpawn(showstuff[3],-56652,-56307,-2000,32768,false,20900);
  360. addSpawn(showstuff[4],-56672,-56272,-2000,32768,false,20900);
  361. }
  362. else if (event.equalsIgnoreCase("28"))
  363. {
  364. autoChat(npc,messages[22],0);
  365. startQuestTimer("social1",1, npc, null);
  366. }
  367. else if (event.equalsIgnoreCase("29"))
  368. {
  369. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(-56730,-56340,-2008,32768));
  370. startQuestTimer("clean_npc",4100, npc, null);
  371. startQuestTimer("timer_check",60000, null, null, true);
  372. }
  373. else if (event.equalsIgnoreCase("social1"))
  374. npc.broadcastPacket(new SocialAction(npc,1));
  375. else if (event.equalsIgnoreCase("clean_npc"))
  376. {
  377. isStarted = false;
  378. npc.deleteMe();
  379. }
  380. else
  381. {
  382. if (talks.containsKey(event))
  383. {
  384. int stringId = (Integer) talks.get(event)[0];
  385. String nextEvent = (String) talks.get(event)[1];
  386. int time = (Integer) talks.get(event)[2];
  387. autoChat(npc,stringId,1);
  388. startQuestTimer(nextEvent,time, npc, null);
  389. }
  390. else if (walks.containsKey(event))
  391. {
  392. int x = (Integer) walks.get(event)[0];
  393. int y = (Integer) walks.get(event)[1];
  394. int z = (Integer) walks.get(event)[2];
  395. String nextEvent = (String) walks.get(event)[3];
  396. int time = (Integer) walks.get(event)[4];
  397. npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO,new L2CharPosition(x,y,z,0));
  398. startQuestTimer(nextEvent,time, npc, null);
  399. }
  400. }
  401. }
  402. return null;
  403. }
  404. public static void main(String[] args)
  405. {
  406. // now call the constructor (starts up the ai)
  407. new MC_Show(-1,"MC_Show","fantasy_isle");
  408. }
  409. }