Jump to content

DafuQ

Members
  • Posts

    8
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

About DafuQ

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

DafuQ's Achievements

Newbie

Newbie (1/16)

  • Week One Done Rare
  • One Month Later Rare
  • One Year In Rare

Recent Badges

0

Reputation

  1. Well ok but where should i add then?if is missing...
  2. @Bleadd yes but i dont know how to fix it thats why i'm posting here... @Tryskell cant get what u mean sorry ;x
  3. 1 - yes i read 2 - i need for gracia final
  4. Well most of these lines on the code i dont found so i dont know exaclty where to add but having this error when i try to compile... [javac] C:\Documents and Settings\Lucas\Gracia_Final\L2jLive_CORE\java\com\l2jlive\gameserver\model\actor\instance\L2NpcInstance.java:54: error: variable _mxcModel might not have been initialized [javac] } [javac] ^ [javac] 1 error [javac] 1 warning here my l2npcinstance /* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package com.l2jlive.gameserver.model.actor.instance; import com.l2jlive.Config; import com.l2jlive.gameserver.cache.HtmCache; import com.l2jlive.gameserver.datatables.CharTemplateTable; import com.l2jlive.gameserver.datatables.MaxCheatersTable; import com.l2jlive.gameserver.datatables.SkillTable; import com.l2jlive.gameserver.datatables.SkillTreeTable; import com.l2jlive.gameserver.model.L2Effect; import com.l2jlive.gameserver.model.L2EnchantSkillLearn; import com.l2jlive.gameserver.model.L2MaxPolyModel; import com.l2jlive.gameserver.model.L2Skill; import com.l2jlive.gameserver.model.L2SkillLearn; import com.l2jlive.gameserver.model.actor.L2Npc; import com.l2jlive.gameserver.model.actor.status.FolkStatus; import com.l2jlive.gameserver.model.base.ClassId; import com.l2jlive.gameserver.network.SystemMessageId; import com.l2jlive.gameserver.network.serverpackets.AcquireSkillList; import com.l2jlive.gameserver.network.serverpackets.ActionFailed; import com.l2jlive.gameserver.network.serverpackets.ExEnchantSkillList; import com.l2jlive.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jlive.gameserver.network.serverpackets.SystemMessage; import com.l2jlive.gameserver.network.serverpackets.ExEnchantSkillList.EnchantSkillType; import com.l2jlive.gameserver.skills.effects.EffectBuff; import com.l2jlive.gameserver.skills.effects.EffectDebuff; import com.l2jlive.gameserver.templates.chars.L2NpcTemplate; import com.l2jlive.gameserver.util.StringUtil; public class L2NpcInstance extends L2Npc { private final L2MaxPolyModel _mxcModel; private final ClassId[] _classesToTeach; public L2NpcInstance(int objectId, L2NpcTemplate template) { super(objectId, template); setIsInvul(false); _classesToTeach = template.getTeachInfo(); } @Override public void onAction(L2PcInstance player) { super.onAction(player); } @Override public FolkStatus getStatus() { return (FolkStatus)super.getStatus(); } @Override public void initCharStatus() { setStatus(new FolkStatus(this)); } @Override public void addEffect(L2Effect newEffect) { if (newEffect instanceof EffectDebuff || newEffect instanceof EffectBuff) super.addEffect(newEffect); else if (newEffect != null) newEffect.stopEffectTask(); } /** * this displays SkillList to the player. * @param player */ public void showSkillList(L2PcInstance player, ClassId classId) { if (Config.DEBUG) _log.fine("SkillList activated on: "+getObjectId()); int npcId = getTemplate().npcId; if (npcId == 32611) { L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSpecialSkills(player); AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.Special); int counts = 0; for (L2SkillLearn s : skills) { L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel()); if (sk == null) continue; counts++; asl.addSkill(s.getId(), s.getLevel(), s.getLevel(), 0, 1); } if (counts == 0) // No more skills to learn, come back when you level. player.sendPacket(new SystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN)); else player.sendPacket(asl); player.sendPacket(ActionFailed.STATIC_PACKET); return; } if (_classesToTeach == null) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); final String sb = StringUtil.concat( "<html><body>" + "I cannot teach you. My class list is empty.<br> Ask admin to fix it. Need add my npcid and classes to skill_learn.sql.<br>NpcId:", String.valueOf(npcId), ", Your classId:", String.valueOf(player.getClassId().getId()), "<br>" + "</body></html>" ); html.setHtml(sb); player.sendPacket(html); return; } if (!getTemplate().canTeach(classId)) { showNoTeachHtml(player); return; } L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(player, classId); AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.Usual); int counts = 0; for (L2SkillLearn s: skills) { L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel()); if (sk == null) continue; int cost = SkillTreeTable.getInstance().getSkillCost(player, sk); counts++; asl.addSkill(s.getId(), s.getLevel(), s.getLevel(), cost, 0); } if (counts == 0) { int minlevel = SkillTreeTable.getInstance().getMinLevelForNewSkill(player, classId); if (minlevel > 0) { SystemMessage sm = new SystemMessage(SystemMessageId.DO_NOT_HAVE_FURTHER_SKILLS_TO_LEARN); sm.addNumber(minlevel); player.sendPacket(sm); } else player.sendPacket(new SystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN)); } else player.sendPacket(asl); player.sendPacket(ActionFailed.STATIC_PACKET); } /** * this displays EnchantSkillList to the player. * @param player */ public void showEnchantSkillList(L2PcInstance player, boolean isSafeEnchant) { if (Config.DEBUG) _log.fine("EnchantSkillList activated on: "+getObjectId()); int npcId = getTemplate().npcId; if (_classesToTeach == null) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); final String sb = StringUtil.concat( "<html><body>" + "I cannot teach you. My class list is empty.<br> Ask admin to fix it. Need add my npcid and classes to skill_learn.sql.<br>NpcId:", String.valueOf(npcId), ", Your classId:", String.valueOf(player.getClassId().getId()), "<br>" + "</body></html>" ); html.setHtml(sb); player.sendPacket(html); return; } if (!getTemplate().canTeach(player.getClassId())) { showNoTeachHtml(player); return; } if (player.getClassId().level() < 3) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setHtml( "<html><body>Enchant A Skill:<br>" + "Only characters who have changed their occupation three times are allowed to enchant a skill." + "</body></html>"); player.sendPacket(html); return; } int playerLevel = player.getLevel(); if (playerLevel >= 76) { ExEnchantSkillList esl = new ExEnchantSkillList(isSafeEnchant ? EnchantSkillType.SAFE : EnchantSkillType.NORMAL); L2Skill[] charSkills = player.getAllSkills(); int counts = 0; for (L2Skill skill : charSkills) { L2EnchantSkillLearn enchantLearn = SkillTreeTable.getInstance().getSkillEnchantmentForSkill(skill); if (enchantLearn != null) { esl.addSkill(skill.getId(), skill.getLevel()); counts++; } } if (counts == 0) player.sendPacket(new SystemMessage(SystemMessageId.THERE_IS_NO_SKILL_THAT_ENABLES_ENCHANT)); else player.sendPacket(esl); } else player.sendPacket(new SystemMessage(SystemMessageId.THERE_IS_NO_SKILL_THAT_ENABLES_ENCHANT)); player.sendPacket(ActionFailed.STATIC_PACKET); } /** * Show the list of enchanted skills for changing enchantment route * * @param player * @param classId */ public void showEnchantChangeSkillList(L2PcInstance player) { if (Config.DEBUG) _log.fine("Enchanted Skill List activated on: "+getObjectId()); int npcId = getTemplate().npcId; if (_classesToTeach == null) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); final String sb = StringUtil.concat( "<html><body>" + "I cannot teach you. My class list is empty.<br> Ask admin to fix it. Need add my npcid and classes to skill_learn.sql.<br>NpcId:", String.valueOf(npcId), ", Your classId:", String.valueOf(player.getClassId().getId()), "<br>" + "</body></html>" ); html.setHtml(sb); player.sendPacket(html); return; } if (!getTemplate().canTeach(player.getClassId())) { showNoTeachHtml(player); return; } if (player.getClassId().level() < 3) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setHtml( "<html><body>Enchant A Skill:<br>" + "Only characters who have changed their occupation three times are allowed to enchant a skill." + "</body></html>"); player.sendPacket(html); return; } int playerLevel = player.getLevel(); if (playerLevel >= 76) { ExEnchantSkillList esl = new ExEnchantSkillList(EnchantSkillType.CHANGE_ROUTE); L2Skill[] charSkills = player.getAllSkills(); for (L2Skill skill : charSkills) { // is enchanted? if (skill.getLevel() > 100) esl.addSkill(skill.getId(), skill.getLevel()); } player.sendPacket(esl); } else player.sendPacket(new SystemMessage(SystemMessageId.THERE_IS_NO_SKILL_THAT_ENABLES_ENCHANT)); player.sendPacket(ActionFailed.STATIC_PACKET); } /** * Show the list of enchanted skills for untraining * * @param player * @param classId */ public void showEnchantUntrainSkillList(L2PcInstance player, ClassId classId) { if (Config.DEBUG) _log.fine("Enchanted Skill List activated on: "+getObjectId()); int npcId = getTemplate().npcId; if (_classesToTeach == null) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); final String sb = StringUtil.concat( "<html><body>" + "I cannot teach you. My class list is empty.<br> Ask admin to fix it. Need add my npcid and classes to skill_learn.sql.<br>NpcId:", String.valueOf(npcId), ", Your classId:", String.valueOf(player.getClassId().getId()), "<br>" + "</body></html>" ); html.setHtml(sb); player.sendPacket(html); return; } if (!getTemplate().canTeach(classId)) { showNoTeachHtml(player); return; } if (player.getClassId().level() < 3) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setHtml( "<html><body>Enchant A Skill:<br>" + "Only characters who have changed their occupation three times are allowed to enchant a skill." + "</body></html>"); player.sendPacket(html); return; } int playerLevel = player.getLevel(); if (playerLevel >= 76) { ExEnchantSkillList esl = new ExEnchantSkillList(EnchantSkillType.UNTRAIN); L2Skill[] charSkills = player.getAllSkills(); for (L2Skill skill : charSkills) { // is enchanted? if (skill.getLevel() > 100) esl.addSkill(skill.getId(), skill.getLevel()); } player.sendPacket(esl); } else player.sendPacket(new SystemMessage(SystemMessageId.THERE_IS_NO_SKILL_THAT_ENABLES_ENCHANT)); player.sendPacket(ActionFailed.STATIC_PACKET); } @Override public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("SkillList")) { if (Config.ALT_GAME_SKILL_LEARN) { String id = command.substring(9).trim(); if (id.length() != 0) { player.setSkillLearningClassId(ClassId.values()[integer.parseInt(id)]); showSkillList(player, ClassId.values()[integer.parseInt(id)]); } else { boolean own_class = false; if (_classesToTeach != null) { for (ClassId cid : _classesToTeach) { if (cid.equalsOrChildOf(player.getClassId())) { own_class = true; break; } } } String text = "<html><body><center>Skill learning:</center><br>"; if (!own_class) { String charType = player.getClassId().isMage() ? "fighter" : "mage"; text += "Skills of your class are the easiest to learn.<br>"+ "Skills of another class of your race are a little harder.<br>"+ "Skills for classes of another race are extremely difficult.<br>"+ "But the hardest of all to learn are the "+ charType +"skills!<br>"; } // make a list of classes if (_classesToTeach != null) { int count = 0; ClassId classCheck = player.getClassId(); while ((count == 0) && (classCheck != null)) { for (ClassId cid : _classesToTeach) { if (cid.level() > classCheck.level()) continue; if (SkillTreeTable.getInstance().getAvailableSkills(player, cid).length == 0) continue; text += "<a action=\"bypass -h npc_%objectId%_SkillList "+cid.getId()+"\">Learn "+cid+"'s class Skills</a><br>\n"; count++; } classCheck = classCheck.getParent(); } classCheck = null; } else text += "No Skills.<br>"; text += "</body></html>"; insertObjectIdAndShowChatWindow(player, text); player.sendPacket(ActionFailed.STATIC_PACKET); } } else { player.setSkillLearningClassId(player.getClassId()); showSkillList(player, player.getClassId()); } } else if (command.startsWith("EnchantSkillList")) showEnchantSkillList(player, false); else if (command.startsWith("SafeEnchantSkillList")) showEnchantSkillList(player, true); else if (command.startsWith("ChangeEnchantSkillList")) showEnchantChangeSkillList(player); else if (command.startsWith("UntrainEnchantSkillList")) showEnchantUntrainSkillList(player, player.getClassId()); else { // this class dont know any other commands, let forward // the command to the parent class super.onBypassFeedback(player, command); } } private void showNoTeachHtml(L2PcInstance player) { int npcId = getNpcId(); String html = ""; if (this instanceof L2WarehouseInstance) html = HtmCache.getInstance().getHtm("data/html/warehouse/" + npcId + "-noteach.htm"); else if (this instanceof L2TrainerInstance) html = HtmCache.getInstance().getHtm("data/html/trainer/" + npcId + "-noteach.htm"); if (html == null) { _log.warning("Npc " + npcId + " missing noTeach html!"); NpcHtmlMessage msg = new NpcHtmlMessage(getObjectId()); final String sb = StringUtil.concat( "<html><body>" + "I cannot teach you any skills.<br>You must find your current class teachers.", "</body></html>" ); msg.setHtml(sb); player.sendPacket(msg); return; } else { NpcHtmlMessage noTeachMsg = new NpcHtmlMessage(getObjectId()); noTeachMsg.setHtml(html); noTeachMsg.replace("%objectId%", String.valueOf(getObjectId())); player.sendPacket(noTeachMsg); } } public L2MaxPolyModel getMxcPoly() { return _mxcModel; } } thanks
  5. Hi i need to adapt this code for L2jLive Gracia Final i'm having many errors if some1 could adapt for me... http://pastebin.com/YAat39nG thanks
×
×
  • Create New...