Guest User

For EternalChaos /Mxc/

a guest
Dec 22nd, 2012
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.58 KB | None | 0 0
  1. */
  2. package net.sf.l2j.gameserver.model.actor.instance;
  3.  
  4. -import java.util.Collection;
  5. +
  6. +
  7. +import javolution.text.TextBuilder;
  8. import net.sf.l2j.Config;
  9. -import net.sf.l2j.gameserver.ai.CtrlIntention;
  10. import net.sf.l2j.gameserver.datatables.CharTemplateTable;
  11. +import net.sf.l2j.gameserver.datatables.NpcTable;
  12. +import net.sf.l2j.gameserver.model.L2World;
  13. import net.sf.l2j.gameserver.model.base.ClassId;
  14. import net.sf.l2j.gameserver.model.base.ClassLevel;
  15. import net.sf.l2j.gameserver.model.base.PlayerClass;
  16. import net.sf.l2j.gameserver.model.quest.Quest;
  17. import net.sf.l2j.gameserver.network.SystemMessageId;
  18. import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
  19. -import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
  20. +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  21. import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
  22. import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
  23. -import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
  24. import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;
  25. import net.sf.l2j.gameserver.util.StringUtil;
  26.  
  27. @@ -46,10 +48,22 @@
  28. private static final int[] SECOND_CLASS_IDS = {2, 3, 5, 6, 9, 8, 12, 13,
  29. 14, 16, 17, 20, 21, 23, 24, 27, 28, 30, 33, 34, 36, 37, 40, 41,
  30. 43, 46, 48, 51, 52, 55, 57};
  31. + public static L2ClassMasterInstance ClassMaster = new L2ClassMasterInstance(31228, NpcTable.getInstance().getTemplate(31228));
  32. + static
  33. + {
  34. + L2World.getInstance().storeObject(ClassMaster);
  35. + }
  36. private static final int[] THIRD_CLASS_IDS = {88, 89, 90, 91, 92, 93,
  37. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  38. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118};
  39.  
  40. +
  41. +
  42. + static
  43. + {
  44. + L2World.getInstance().storeObject(ClassMaster);
  45. + }
  46. +
  47. /**
  48. * @param template
  49. */
  50. @@ -57,130 +71,341 @@
  51. {
  52. super(objectId, template);
  53. }
  54. -
  55. +
  56. @Override
  57. public void onAction(L2PcInstance player)
  58. {
  59. - if (!canTarget(player)) return;
  60. + if (Config.DEBUG)
  61. + _log.fine("ClassMaster activated");
  62.  
  63. - // Check if the L2PcInstance already target the L2NpcInstance
  64. - if (getObjectId() != player.getTargetId())
  65. - {
  66. - // Set the target of the L2PcInstance player
  67. - player.setTarget(this);
  68. + ClassId classId = player.getClassId();
  69.  
  70. - // Send a Server->Client packet MyTargetSelected to the L2PcInstance player
  71. - player.sendPacket(new MyTargetSelected(getObjectId(), 0));
  72. -
  73. - // Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client
  74. - player.sendPacket(new ValidateLocation(this));
  75. + int jobLevel = 0;
  76. + int level = player.getLevel();
  77. + ClassLevel lvl = PlayerClass.values()[classId.getId()].getLevel();
  78. + switch (lvl)
  79. + {
  80. + case First:
  81. + jobLevel = 1;
  82. + break;
  83. + case Second:
  84. + jobLevel = 2;
  85. + break;
  86. + case Third:
  87. + jobLevel = 3;
  88. + break;
  89. + default:
  90. + jobLevel = 4;
  91. }
  92. - else
  93. +
  94. + if (!Config.ALLOW_CLASS_MASTERS)
  95. + jobLevel = 3;
  96. +
  97. + if(player.isGM())
  98. {
  99. - if (!canInteract(player))
  100. + showChatWindowChooseClass(player);
  101. + }
  102. + else if (((level >= 20 && jobLevel == 1 ) ||
  103. + (level >= 40 && jobLevel == 2 )) && Config.ALLOW_CLASS_MASTERS)
  104. + {
  105. + TextBuilder village = new TextBuilder("<html><body>");
  106. + village.append("<center><table width=\"270\" border=\"0\" bgcolor=\"111111\">");
  107. + village.append("<tr><td width=\"170\"><font color=\"5772d6\">L</font><font color=\"5772d6\">2</font><font color=\"5772d6\">R</font><font color=\"5772d6\">e</font><font color=\"5772d6\">a</font><font color=\"5772d6\">c</font><font color=\"5772d6\">t</font><font color=\"5772d6\">i</font><font color=\"5772d6\">o</font><font color=\"5772d6\">n</font></td>");
  108. + village.append("<td width=\"100\" align=\"center\"><font color=\"5772d6\">Players</font><font color=\"5772d6\">:</font><font color=\"5772d6\"> " +L2World.getInstance().getAllPlayers().size()+ "</font></font></td></tr>");
  109. + village.append("</table><table width=\"270\" border=\"0\">");
  110. + village.append("</table>");
  111. + village.append("<br></br>");
  112. + village.append("<tr><td><center>Server Name</center></td></tr>");
  113. + village.append("<br></br>");
  114. + village.append("<tr><td><font color=\"00FF00\">Class Master</font></td></tr>");
  115. + village.append("<br></br>");
  116. + village.append("<tr><td><font color=\"00FF00\">---------------------------------------------------</font></td></tr>");
  117. + if (player.getClassId() == ClassId.fighter)
  118. + {
  119. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 1\">Advance to "+CharTemplateTable.getInstance().getClassNameById(1)+"</a></font></center><br>");
  120. + village.append("<br></br>");
  121. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 4\">Advance to "+CharTemplateTable.getInstance().getClassNameById(4)+"</a></font></center><br>");
  122. + village.append("<br></br>");
  123. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 7\">Advance to "+CharTemplateTable.getInstance().getClassNameById(7)+"</a></font></center><br>");
  124. + }
  125. + if (player.getClassId() == ClassId.warrior)
  126. + {
  127. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 2\">Advance to "+CharTemplateTable.getInstance().getClassNameById(2)+"</a></font></center><br>");
  128. + village.append("<br></br>");
  129. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 3\">Advance to "+CharTemplateTable.getInstance().getClassNameById(3)+"</a></font></center><br>");
  130. + }
  131. + if (player.getClassId() == ClassId.knight)
  132. + {
  133. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 5\">Advance to "+CharTemplateTable.getInstance().getClassNameById(5)+"</a></font></center><br>");
  134. + village.append("<br></br>");
  135. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 6\">Advance to "+CharTemplateTable.getInstance().getClassNameById(6)+"</a></font></center><br>");
  136. + }
  137. + if (player.getClassId() == ClassId.rogue)
  138. + {
  139. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 8\">Advance to "+CharTemplateTable.getInstance().getClassNameById(8)+"</a></font></center><br>");
  140. + village.append("<br></br>");
  141. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 9\">Advance to "+CharTemplateTable.getInstance().getClassNameById(9)+"</a></font></center><br>");
  142. + }
  143. + if (player.getClassId() == ClassId.mage)
  144. + {
  145. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 11\">Advance to "+CharTemplateTable.getInstance().getClassNameById(11)+"</a></font></center><br>");
  146. + village.append("<br></br>");
  147. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 15\">Advance to "+CharTemplateTable.getInstance().getClassNameById(15)+"</a></font></center><br>");
  148. + }
  149. + if (player.getClassId() == ClassId.wizard)
  150. + {
  151. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 12\">Advance to "+CharTemplateTable.getInstance().getClassNameById(12)+"</a></font></center><br>");
  152. + village.append("<br></br>");
  153. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 13\">Advance to "+CharTemplateTable.getInstance().getClassNameById(13)+"</a></font></center><br>");
  154. + village.append("<br></br>");
  155. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 14\">Advance to "+CharTemplateTable.getInstance().getClassNameById(14)+"</a></font></center><br>");
  156. + }
  157. + if (player.getClassId() == ClassId.cleric)
  158. + {
  159. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 16\">Advance to "+CharTemplateTable.getInstance().getClassNameById(16)+"</a></font></center><br>");
  160. + village.append("<br></br>");
  161. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 17\">Advance to "+CharTemplateTable.getInstance().getClassNameById(17)+"</a></font></center><br>");
  162. + }
  163. + if (player.getClassId() == ClassId.elvenFighter)
  164. + {
  165. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 19\">Advance to "+CharTemplateTable.getInstance().getClassNameById(19)+"</a></font></center><br>");
  166. + village.append("<br></br>");
  167. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 22\">Advance to "+CharTemplateTable.getInstance().getClassNameById(22)+"</a></font></center><br>");
  168. + }
  169. + if (player.getClassId() == ClassId.elvenKnight)
  170. + {
  171. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 20\">Advance to "+CharTemplateTable.getInstance().getClassNameById(20)+"</a></font></center><br>");
  172. + village.append("<br></br>");
  173. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 21\">Advance to "+CharTemplateTable.getInstance().getClassNameById(21)+"</a></font></center><br>");
  174. + }
  175. + if (player.getClassId() == ClassId.elvenScout)
  176. + {
  177. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 23\">Advance to "+CharTemplateTable.getInstance().getClassNameById(23)+"</a></font></center><br>");
  178. + village.append("<br></br>");
  179. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 24\">Advance to "+CharTemplateTable.getInstance().getClassNameById(24)+"</a></font></center><br>");
  180. + }
  181. + if (player.getClassId() == ClassId.elvenMage)
  182. + {
  183. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 26\">Advance to "+CharTemplateTable.getInstance().getClassNameById(26)+"</a></font></center><br>");
  184. + village.append("<br></br>");
  185. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 29\">Advance to "+CharTemplateTable.getInstance().getClassNameById(29)+"</a></font></center><br>");
  186. + }
  187. + if (player.getClassId() == ClassId.elvenWizard)
  188. + {
  189. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 27\">Advance to "+CharTemplateTable.getInstance().getClassNameById(27)+"</a></font></center><br>");
  190. + village.append("<br></br>");
  191. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 28\">Advance to "+CharTemplateTable.getInstance().getClassNameById(28)+"</a></font></center><br>");
  192. + }
  193. + if (player.getClassId() == ClassId.oracle)
  194. + {
  195. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 30\">Advance to "+CharTemplateTable.getInstance().getClassNameById(30)+"</a></font></center><br>");
  196. + }
  197. +
  198. + if (player.getClassId() == ClassId.darkFighter)
  199. + {
  200. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 32\">Advance to "+CharTemplateTable.getInstance().getClassNameById(32)+"</a></font></center><br>");
  201. + village.append("<br></br>");
  202. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 35\">Advance to "+CharTemplateTable.getInstance().getClassNameById(35)+"</a></font></center><br>");
  203. + }
  204. + if (player.getClassId() == ClassId.palusKnight)
  205. + {
  206. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 34\">Advance to "+CharTemplateTable.getInstance().getClassNameById(34)+"</a></font></center><br>");
  207. + village.append("<br></br>");
  208. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 33\">Advance to "+CharTemplateTable.getInstance().getClassNameById(33)+"</a></font></center><br>");
  209. + }
  210. + if (player.getClassId() == ClassId.assassin)
  211. + {
  212. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 36\">Advance to "+CharTemplateTable.getInstance().getClassNameById(36)+"</a></font></center><br>");
  213. + village.append("<br></br>");
  214. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 37\">Advance to "+CharTemplateTable.getInstance().getClassNameById(37)+"</a></font></center><br>");
  215. + }
  216. + if (player.getClassId() == ClassId.darkMage)
  217. + {
  218. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 39\">Advance to "+CharTemplateTable.getInstance().getClassNameById(39)+"</a></font></center><br>");
  219. + village.append("<br></br>");
  220. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 42\">Advance to "+CharTemplateTable.getInstance().getClassNameById(42)+"</a></font></center><br>");
  221. + }
  222. + if (player.getClassId() == ClassId.darkWizard)
  223. + {
  224. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 40\">Advance to "+CharTemplateTable.getInstance().getClassNameById(40)+"</a></font></center><br>");
  225. + village.append("<br></br>");
  226. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 41\">Advance to "+CharTemplateTable.getInstance().getClassNameById(41)+"</a></font></center><br>");
  227. + }
  228. + if (player.getClassId() == ClassId.shillienOracle)
  229. + {
  230. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 43\">Advance to "+CharTemplateTable.getInstance().getClassNameById(43)+"</a></font></center><br>");
  231. +
  232. + }
  233. + if (player.getClassId() == ClassId.orcFighter)
  234. + {
  235. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 45\">Advance to "+CharTemplateTable.getInstance().getClassNameById(45)+"</a></font></center><br>");
  236. + village.append("<br></br>");
  237. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 47\">Advance to "+CharTemplateTable.getInstance().getClassNameById(47)+"</a></font></center><br>");
  238. + }
  239. + if (player.getClassId() == ClassId.orcRaider)
  240. + {
  241. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 46\">Advance to "+CharTemplateTable.getInstance().getClassNameById(46)+"</a></font></center><br>");
  242. +
  243. + }
  244. + if (player.getClassId() == ClassId.elvenFighter)
  245. + {
  246. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 19\">Advance to "+CharTemplateTable.getInstance().getClassNameById(19)+"</a></font></center><br>");
  247. + village.append("<br></br>");
  248. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 22\">Advance to "+CharTemplateTable.getInstance().getClassNameById(22)+"</a></font></center><br>");
  249. + }
  250. + if (player.getClassId() == ClassId.orcMonk)
  251. + {
  252. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 48\">Advance to "+CharTemplateTable.getInstance().getClassNameById(48)+"</a></font></center><br>");
  253. +
  254. + }
  255. + if (player.getClassId() == ClassId.orcMage)
  256. + {
  257. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 50\">Advance to "+CharTemplateTable.getInstance().getClassNameById(50)+"</a></font></center><br>");
  258. +
  259. + }
  260. + if (player.getClassId() == ClassId.orcShaman)
  261. + {
  262. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 51\">Advance to "+CharTemplateTable.getInstance().getClassNameById(51)+"</a></font></center><br>");
  263. + village.append("<br></br>");
  264. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 52\">Advance to "+CharTemplateTable.getInstance().getClassNameById(52)+"</a></font></center><br>");
  265. + }
  266. + if (player.getClassId() == ClassId.dwarvenFighter)
  267. + {
  268. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 54\">Advance to "+CharTemplateTable.getInstance().getClassNameById(54)+"</a></font></center><br>");
  269. + village.append("<br></br>");
  270. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 56\">Advance to "+CharTemplateTable.getInstance().getClassNameById(56)+"</a></font></center><br>");
  271. + }
  272. + if (player.getClassId() == ClassId.scavenger)
  273. + {
  274. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 55\">Advance to "+CharTemplateTable.getInstance().getClassNameById(55)+"</a></font></center><br>");
  275. +
  276. + }
  277. + if (player.getClassId() == ClassId.artisan)
  278. + {
  279. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 57\">Advance to "+CharTemplateTable.getInstance().getClassNameById(57)+"</a></font></center><br>");
  280. +
  281. + }
  282. + if (player.getClassId() == ClassId.maleSoldier)
  283. + {
  284. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 125\">Advance to "+CharTemplateTable.getInstance().getClassNameById(125)+"</a></font></center><br>");
  285. +
  286. + }
  287. + if (player.getClassId() == ClassId.femaleSoldier)
  288. + {
  289. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 126\">Advance to "+CharTemplateTable.getInstance().getClassNameById(126)+"</a></font></center><br>");
  290. +
  291. + }
  292. +
  293. + if (player.getClassId() == ClassId.trooper)
  294. + {
  295. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 127\">Advance to "+CharTemplateTable.getInstance().getClassNameById(127)+"</a></font></center><br>");
  296. + village.append("<br></br>");
  297. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 128\">Advance to "+CharTemplateTable.getInstance().getClassNameById(128)+"</a></font></center><br>");
  298. + }
  299. + if (player.getClassId() == ClassId.warder)
  300. + {
  301. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 129\">Advance to "+CharTemplateTable.getInstance().getClassNameById(129)+"</a></font></center><br>");
  302. + village.append("<br></br>");
  303. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 130\">Advance to "+CharTemplateTable.getInstance().getClassNameById(130)+"</a></font></center><br>");
  304. + }
  305. + if (player.getClassId() == ClassId.berserker)
  306. + {
  307. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 131\">Advance to "+CharTemplateTable.getInstance().getClassNameById(131)+"</a></font></center><br>");
  308. +
  309. + }
  310. + if (player.getClassId() == ClassId.femaleSoulbreaker || player.getClassId() == ClassId.maleSoulbreaker)
  311. + {
  312. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 132\">Advance to "+CharTemplateTable.getInstance().getClassNameById(132)+"</a></font></center><br>");
  313. +
  314. + }
  315. + if (player.getClassId() == ClassId.arbalester)
  316. + {
  317. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 134\">Advance to "+CharTemplateTable.getInstance().getClassNameById(134)+"</a></font></center><br>");
  318. +
  319. + }
  320. + if (player.getClassId() == ClassId.inspector)
  321. + {
  322. + village.append("<center><font color=\"CCFF00\"><a action=\"bypass -h npc_"+getObjectId()+"_change_class 136\">Advance to "+CharTemplateTable.getInstance().getClassNameById(136)+"</a></font></center><br>");
  323. +
  324. + }
  325. + village.append("<br></br>");
  326. + village.append("<tr><td><center><font color=\"0000ff\">MaxCheaters </font></td></center></tr>");
  327. + village.append("<br></br>");
  328. + village.append("<tr><td><font color=\"00FF00\">---------------------------------------------------</font></td></tr>");
  329. + village.append("</html></body>");
  330. + NpcHtmlMessage l2reaction = new NpcHtmlMessage(0);
  331. + l2reaction.setHtml(village.toString());
  332. + player.sendPacket(l2reaction);
  333. + }
  334. + else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && classId.getId() < 88)
  335. + {
  336. + for (int i = 0; i < SECOND_CLASS_IDS.length; i++)
  337. +
  338. {
  339. - player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
  340. - return;
  341. - }
  342. + if (classId.getId() == SECOND_CLASS_IDS[i])
  343. +
  344. + {
  345. + TextBuilder village = new TextBuilder("<html><body>");
  346. + village.append("<center><table width=\"270\" border=\"0\" bgcolor=\"111111\">");
  347. + village.append("<tr><td width=\"170\"><font color=\"5772d6\">L</font><font color=\"5772d6\">2</font><font color=\"5772d6\">R</font><font color=\"5772d6\">e</font><font color=\"5772d6\">a</font><font color=\"5772d6\">c</font><font color=\"5772d6\">t</font><font color=\"5772d6\">i</font><font color=\"5772d6\">o</font><font color=\"5772d6\">n</font></td>");
  348. + village.append("<td width=\"100\" align=\"center\"><font color=\"5772d6\">Players</font><font color=\"5772d6\">:</font><font color=\"5772d6\"> " +L2World.getInstance().getAllPlayers().size()+ "</font></font></td></tr>");
  349. + village.append("</table><table width=\"270\" border=\"0\">");
  350. + village.append("</table>");
  351. + village.append("<br></br>");
  352. + village.append("<tr><td><center>L2Reaction</center></td></tr>");
  353. + village.append("<br></br>");
  354. + village.append("<tr><td><font color=\"00FF00\">MaxCheaters Class Master</font></td></tr>");
  355. + village.append("<br></br>");
  356. + village.append("<tr><td><font color=\"00FF00\">---------------------------------------------------</font></td></tr>");
  357. + village.append("<br></br>");
  358. + village.append("<center><a action=\"bypass -h npc_"+getObjectId()+"_change_class "+(88+i)+"\">Advance to "+CharTemplateTable.getInstance().getClassNameById(88+i)+"</a></center><br>");
  359. + village.append("<br></br>");
  360. + village.append("<tr><td><center><font color=\"CCFF00\">MaxCheaters</font></td></center></tr>");
  361. + village.append("<br></br>");
  362. + village.append("<tr><td><font color=\"00FF00\">---------------------------------------------------</font></td></tr>");
  363. + village.append("</html></body>");
  364. + NpcHtmlMessage l2reaction = new NpcHtmlMessage(0);
  365. + l2reaction.setHtml(village.toString());
  366. + player.sendPacket(l2reaction);
  367.  
  368. - if (Config.DEBUG)
  369. - _log.fine("ClassMaster activated");
  370.  
  371. - ClassId classId = player.getClassId();
  372. + break;
  373. + }
  374. + }
  375.  
  376. - int jobLevel = 0;
  377. - int level = player.getLevel();
  378. - ClassLevel lvl = PlayerClass.values()[classId.getId()].getLevel();
  379. - switch (lvl)
  380. - {
  381. - case First:
  382. - jobLevel = 1;
  383. + }
  384. + else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && ((classId.getId() >= 123 && classId.getId() < 131 ) || classId.getId() == 135)) // this is for Kamael Race 3rd Transfer
  385. + {
  386. + showChatWindow(player, classId.getId());
  387. + }
  388. + else
  389. + {
  390. + NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  391. + TextBuilder sb = new TextBuilder();
  392. + sb.append("<html><title>Class Change</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
  393. + switch (jobLevel)
  394. + {
  395. + case 1:
  396. + sb.append("Come back here when you reach level 20 to change your class.<br>");
  397. break;
  398. - case Second:
  399. - jobLevel = 2;
  400. + case 2:
  401. + sb.append("Come back here when you reach level 40 to change your class.<br>");
  402. break;
  403. - default:
  404. - jobLevel = 3;
  405. + case 3:
  406. + sb.append("Come back here when you reach level 76 to change your class.<br>");
  407. + break;
  408. + case 4:
  409. + sb.append("There are no more class changes for you.<br>");
  410. + break;
  411. }
  412.  
  413. - if (!Config.ALLOW_CLASS_MASTERS)
  414. - jobLevel = 3;
  415. + for (Quest q : Quest.findAllEvents())
  416. + sb.append("Event: <a action=\"bypass -h Quest "+q.getName()+"\">"+q.getDescr()+"</a><br>");
  417.  
  418. - if(player.isGM())
  419. - {
  420. - showChatWindowChooseClass(player);
  421. - }
  422. - else if (((level >= 20 && jobLevel == 1 ) ||
  423. - (level >= 40 && jobLevel == 2 )) && Config.ALLOW_CLASS_MASTERS)
  424. - {
  425. - showChatWindow(player, classId.getId());
  426. - }
  427. - else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && classId.getId() < 88)
  428. - {
  429. - for (int i = 0; i < SECOND_CLASS_IDS.length; i++)
  430. - {
  431. - if (classId.getId() == SECOND_CLASS_IDS[i])
  432. - {
  433. - NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  434. - final String sb = StringUtil.concat(
  435. - "<html><body<table width=200>" +
  436. - "<tr><td><center>",
  437. - String.valueOf(CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId())),
  438. - " Class Master:</center></td></tr>" +
  439. - "<tr><td><br></td></tr>" +
  440. - "<tr><td><a action=\"bypass -h npc_",
  441. - String.valueOf(getObjectId()),
  442. - "_change_class ",
  443. - String.valueOf(88+i),
  444. - "\">Advance to ",
  445. - CharTemplateTable.getInstance().getClassNameById(88+i),
  446. - "</a></td></tr>" +
  447. - "<tr><td><br></td></tr>" +
  448. - "</table></body></html>"
  449. - );
  450. - html.setHtml(sb);
  451. - player.sendPacket(html);
  452. - break;
  453. - }
  454. - }
  455. - }
  456. - else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && ((classId.getId() >= 123 && classId.getId() < 131 ) || classId.getId() == 135)) // this is for Kamael Race 3rd Transfer
  457. - {
  458. - showChatWindow(player, classId.getId());
  459. - }
  460. - else
  461. - {
  462. - NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  463. - final Collection<Quest> quests = Quest.findAllEvents();
  464. - final StringBuilder sb = new StringBuilder(30 + 50 + quests.size() * 50);
  465. - sb.append("<html><body>");
  466. - switch (jobLevel)
  467. - {
  468. - case 1:
  469. - sb.append("Come back here when you reach level 20 to change your class.<br>");
  470. - break;
  471. - case 2:
  472. - sb.append("Come back here when you reach level 40 to change your class.<br>");
  473. - break;
  474. - case 3:
  475. - sb.append("There are no more class changes for you.<br>");
  476. - break;
  477. - }
  478. -
  479. - for (Quest q : quests) {
  480. - StringUtil.append(sb,
  481. - "Event: <a action=\"bypass -h Quest ",
  482. - q.getName(),
  483. - "\">",
  484. - q.getDescr(),
  485. - "</a><br>"
  486. - );
  487. - }
  488. -
  489. - sb.append("</body></html>");
  490. - html.setHtml(sb.toString());
  491. - player.sendPacket(html);
  492. - }
  493. + sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><font color=808080>L2 Reaction</font></center></body></html>");
  494. + html.setHtml(sb.toString());
  495. + player.sendPacket(html);
  496. +
  497. }
  498. player.sendPacket(ActionFailed.STATIC_PACKET);
  499. }
  500. @@ -243,16 +468,8 @@
  501. else
  502. player.sendPacket(new SystemMessage(SystemMessageId.CLASS_TRANSFER)); // system sound for 1st and 2nd occupation
  503.  
  504. - NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  505. - final String sb = StringUtil.concat(
  506. - "<html><body>" +
  507. - "You have now become a <font color=\"LEVEL\">",
  508. - CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId()),
  509. - "</font>." +
  510. - "</body></html>"
  511. - );
  512. - html.setHtml(sb);
  513. - player.sendPacket(html);
  514. + ExShowScreenMessage welcomemessage = new ExShowScreenMessage("Your New Class " + CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId())+"!",7000);
  515. + player.sendPacket(welcomemessage);
  516. return;
  517. }
  518. switch (lvlnow)
  519. @@ -306,16 +523,8 @@
  520.  
  521. player.rewardSkills();
  522.  
  523. - NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  524. - final String sb = StringUtil.concat(
  525. - "<html><body>" +
  526. - "You have now become a <font color=\"LEVEL\">",
  527. - CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId()),
  528. - "</font>." +
  529. - "</body></html>"
  530. - );
  531. - html.setHtml(sb);
  532. - player.sendPacket(html);
  533. + ExShowScreenMessage welcomemessage = new ExShowScreenMessage("Your New Class " + CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId())+"!",7000);
  534. + player.sendPacket(welcomemessage);
  535. }
  536. else
  537. {
Advertisement
Add Comment
Please, Sign In to add comment