nkr 1 Опубликовано 7 января, 2014 Ребята всем привет! Помогите! У меня на сборке нету анимации при получение проффы! Где она пишется ? В L2ClassMasterInstance? Помогите исправить данный баг! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lovely 307 Опубликовано 7 января, 2014 l2pcinstance 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nkr 1 Опубликовано 7 января, 2014 (изменено) l2pcinstance А если не сложно, тыкните меня прямо именно туда где эта функция Что нужно добавить! Изменено 7 января, 2014 пользователем nkr Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nkr 1 Опубликовано 7 января, 2014 (изменено) /* * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.src.gameserver.model.actor.instance; import javolution.text.TextBuilder; import com.src.Config; import com.src.gameserver.ai.CtrlIntention; import com.src.gameserver.datatables.CharTemplateTable; import com.src.gameserver.model.base.ClassId; import com.src.gameserver.model.base.ClassLevel; import com.src.gameserver.model.base.PlayerClass; import com.src.gameserver.model.quest.Quest; import com.src.gameserver.serverpackets.ActionFailed; import com.src.gameserver.serverpackets.MyTargetSelected; import com.src.gameserver.serverpackets.NpcHtmlMessage; import com.src.gameserver.serverpackets.SystemMessage; import com.src.gameserver.serverpackets.ValidateLocation; import com.src.gameserver.templates.L2NpcTemplate; /** * This class ... * * @version $Revision: 1.4.2.1.2.7 $ $Date: 2005/03/27 15:29:32 $ */ public final class L2ClassMasterInstance extends L2FolkInstance { private static int[] _secondClassIds = { 2,3,5,6,9,8,12,13,14,16,17,20,21,23,24,27, 28,30,33,34,36,37,40,41,43,46,48,51,52,55,57 }; /** * @param template */ public L2ClassMasterInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } public void onAction(L2PcInstance player) { if (!canTarget(player)) return; player.setLastFolkNPC(this); if (getObjectId() != player.getTargetId()) { // Set the target of the L2PcInstance player player.setTarget(this); // Send a Server->Client packet MyTargetSelected to the L2PcInstance player player.sendPacket(new MyTargetSelected(getObjectId(), 0)); // Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client player.sendPacket(new ValidateLocation(this)); } else { if (!canInteract(player)) { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); return; } showClassMasterWindow(player, Config.ALLOW_CLASS_MASTERS); } player.sendPacket(new ActionFailed()); } public static void showClassMasterWindow(L2PcInstance player, boolean isAllowed) { NpcHtmlMessage html = new NpcHtmlMessage(0); TextBuilder sb = new TextBuilder(); if (isAllowed) { if (Config.DEBUG) _log.fine("ClassMaster activated"); ClassId classId = player.getClassId(); int jobLevel = 0; int level = player.getLevel(); ClassLevel lvl = PlayerClass.values()[classId.getId()].getLevel(); switch (lvl) { case First: jobLevel = 1; break; case Second: jobLevel = 2; break; case Third: jobLevel = 3; break; default: jobLevel = 4; break; } if ((Config.ALLOW_FIRST_CLASS && level >= 20 && jobLevel == 1) || (Config.ALLOW_SECOND_CLASS && level >= 40 && jobLevel == 2)) html.setFile("data/html/classmaster/" + classId.getId() + ".htm"); else if (Config.ALLOW_THIRD_CLASS && level >= 76 && jobLevel == 3) { for (int i = 0; i < _secondClassIds.length; i++) { if (classId.getId() == _secondClassIds) { sb.append("<html><body<center>"); sb.append("<img src=\"L2UI_CH3.herotower_deco\" width=256 height=32>"); sb.append("<br><br><table width=200>"); sb.append("<tr><td>"+CharTemplateTable.getClassNameById(classId.getId())+" Class Master:</td></tr>"); sb.append("<tr><td><br></td></tr>"); sb.append("<tr><td><a action=\"bypass -h change_class "+(88+i)+"\">Advance to "+CharTemplateTable.getClassNameById(88+i)+"</a></td></tr>"); sb.append("<tr><td><br></td></tr></table><br><br>"); sb.append("<img src=\"L2UI_CH3.herotower_deco\" width=256 height=32>"); sb.append("</center></body></html>"); html.setHtml(sb.toString()); } } } else { sb.append("<html><head><body>"); switch (jobLevel) { case 1: if (Config.ALLOW_FIRST_CLASS) sb.append("<br>Come back here when you reach level 20 to change your class."); else sb.append("<br>You have to complete First Class Transfer on your own."); break; case 2: if (Config.ALLOW_SECOND_CLASS) sb.append("<br>Come back here when you reach level 40 to change your class."); else sb.append("<br>You have to complete Second Class Transfer on your own."); break; case 3: if (Config.ALLOW_THIRD_CLASS) sb.append("<br>Come back here when you reach level 76 to change your class."); else sb.append("<br>You have to complete Third Class Transfer on your own."); break; default: sb.append("<br>There are no more classes available for you."); break; } for (Quest q : Quest.findAllEvents()) sb.append("Event: <a action=\"bypass -h Quest "+q.getName()+"\">"+q.getDescr()+"</a><br>"); sb.append("</body></html>"); html.setHtml(sb.toString()); } } else { sb.append("<html><head><body>"); sb.append("<br><center>Class Master is deactivated.</center>"); sb.append("</body></html>"); html.setHtml(sb.toString()); } player.sendPacket(html); } public static void changeClass(L2PcInstance player, String command) { int val = Integer.parseInt(command.substring(13)); // Exploit prevention ClassId classId = player.getClassId(); int level = player.getLevel(); int jobLevel = 0; int newJobLevel = 0; // some protection checks, just to be sure ClassLevel lvlnow = PlayerClass.values()[classId.getId()].getLevel(); switch (lvlnow) { case First: if (!Config.ALLOW_FIRST_CLASS) return; jobLevel = 1; break; case Second: if (!Config.ALLOW_SECOND_CLASS) return; jobLevel = 2; break; case Third: if (!Config.ALLOW_THIRD_CLASS) return; jobLevel = 3; break; default: jobLevel = 4; break; } if (jobLevel == 4) return; // no more job changes ClassLevel lvlnext = PlayerClass.values()[val].getLevel(); switch (lvlnext) { case First: newJobLevel = 1; break; case Second: newJobLevel = 2; break; case Third: newJobLevel = 3; break; default: newJobLevel = 4; break; } // prevents changing between same level jobs if (newJobLevel != jobLevel + 1) return; if (level < 20 && newJobLevel > 1) return; if (level < 40 && newJobLevel > 2) return; if (level < 76 && newJobLevel > 3) return; // -- prevention ends if (Config.DEBUG) _log.fine("Changing class to ClassId:"+val); player.setClassId(val); if (player.isSubClassActive()) player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); else player.setBaseClass(player.getActiveClass()); player.broadcastUserInfo(); if (val >= 88) player.sendPacket(new SystemMessage(1606)); // system sound 3rd occupation else player.sendPacket(new SystemMessage(1308)); // system sound for 1st and 2nd occupation } } Изменено 7 января, 2014 пользователем nkr Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lovely 307 Опубликовано 7 января, 2014 setClassId 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nkr 1 Опубликовано 7 января, 2014 Блин ссори, я только не понял где исправлять нужно тык Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nkr 1 Опубликовано 7 января, 2014 Мне бы только узнать что и куда подставить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
baern9528 149 Опубликовано 7 января, 2014 Тебе уже все написали, сам додумай! 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nkr 1 Опубликовано 7 января, 2014 Просто пожалуйста скажите что и куда добавить с меня ++++ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nkr 1 Опубликовано 8 января, 2014 Тебе уже все написали, сам додумай! Помоги пожалуйста! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WoWan-SM 51 Опубликовано 8 января, 2014 Ребята всем привет! Помогите! У меня на сборке нету анимации при получение проффы! Где она пишется ? В L2ClassMasterInstance? Помогите исправить данный баг! В Player.java находишь этот метод: public synchronized void setClassId(final int id, boolean noban, boolean fromQuest) И в самом его конце добавляешь это: sendPacket(new ExSubjobInfo(this, true)); 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nkr 1 Опубликовано 8 января, 2014 В Player.java находишь этот метод: public synchronized void setClassId(final int id, boolean noban, boolean fromQuest) И в самом его конце добавляешь это: sendPacket(new ExSubjobInfo(this, true)); А если нету Player.java и вообще такой строки Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты