Перейти к содержанию

BadStealth

Пользователи
  • Публикаций

    88
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1
  • Отзывы

    0%

Весь контент BadStealth

  1. А можно написать проще? Без вызова метода? Мне просто надо чтобы если this._name_ru == null то тогда выводил _name_ru Переключение языка мне не надо. У меня просто _name --->выводит английские названия this._name_ru --->русские названия ---просто я их еще не все перевел- и вот чтобы пустоты не было чтобы если нет this._name_ru подставлялось _name! Пробовал так- но выводит только Русские названия а анг не показывает! public final String getName() { if(this._name_ru == null) return _name; else return this._name_ru; }
  2. Ребят вопрос! Сделал для названий скилов русские названия- но еще не все прописал как написать формулу- чтобы если нет русских названий то выводит англ? public final String getName_ru() { return this._name_ru; } public final String getName() { return _name; }
  3. Спасибо теперь все работает. Вот никогда бы не догадался! Ато я уже в стопор встал)
  4. Добавил строки в L2Skills.java _icon = set.getString("icon", ""); protected String _icon; public String getIcon() { return this._icon; } Все компилиться но вот иконки так и не показывает. Хотя s.getIcon() теперь ошибок не дает. Где сама формула прописывается для ICON чтобы брать иконки скилов?
  5. В дроплисте тоже не показывает иконки- уже сам ставил True на показ в скрипте- не показывает и все!
  6. Вы не поняли у меня кажется вообще нет каласса getIcon для вывода иконок скилов. Пытался добавить класс в L2Skills.java public String getIcon() { return this._icon; } Но начинает ругаться что [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\model\L2Skill.java:2834: error: cannot find symbol [javac] return this._icon; [javac] ^ [javac] symbol: variable _icon Вообще ума не приложу куда и что надо добавить чтобы можно было выводить иконки для скиллов! Менял на просто this.icon толку нет!
  7. Ребят столкнулся с траблом. Вобщем сделал вывод скилов в картинках. Т.е. чтобы при нажатии на моба показывало его скилы и иконку скила. Все прописал, но у меня как-будто вообще нет функции getIcon. Вопрос в следующем- что и куда нужно добавить чтобы функция getIcon начала выводить иконки скилов! Вот часть кода Collection<L2Skill> list = npc.getAllSkills(); if(list != null && !list.isEmpty()) { for(L2Skill s : list) { if(s.isActive()) { dialog.append("<tr><td width=\"32\"><img src=\"").append(s.getIcon()).append("\" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(s.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(s.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(s.getId()).append("]</td></tr>"); } } dialog.append("</table><table><tr><td valign=\"top\" align=\"center\"><br><br><center><img src=\"L2UI.SquareWhite\" width=\"275\" height=\"1\"></center><table bgcolor=\"333333\" width=\"275\"><tr><td width=\"275\"><center><font color=\"FFFF00\">").append(player.isLangRus() ? "Пассивные Умения" : "Passive Skills").append("</font></center></td></tr></table><center><img src=\"L2UI.SquareWhite\" width=\"275\" height=\"1\"></center></td></tr></table><table>"); for(L2Skill s : list) { if(!s.isActive()) { dialog.append("<tr><td width=\"32\"><img src=\"").append("s.getIcon()").append("\" width=\"32\" height=\"32\"></td><td width=\"238\"><br><font color=\"LEVEL\">").append(s.getName()).append("</font><br1>[<font color=\"b09979\">").append(player.isLangRus() ? "Уровень: " : "Level: ").append("</font>").append(s.getLevel()).append("][<font color=\"b09979\">Id: </font>").append(s.getId()).append("]</td></tr>"); } } }
  8. Посмотрел как сделано в другой сборке. Вобщем в файл NpcHtmlMessage.java добавил код после 151 строчки if (player.isGM()) { Functions.sendDebugMessage(player, "HTML: " + this._file); } В файл Functions.java добавил код public static void sendDebugMessage(L2Player player, String message) { if (!player.isGM()) { return; } player.sendMessage(message); } Все теперь работает- показывает пути и названия самих HTML с диалогами, но вот пути и названия файлов с квестами не показывает! Можно ли как-то доработать данный код? Квесты у меня находятся в датапаке по пути data\scripts\quests\папка с кветом\сами файлы квестов.htm
  9. Добавил строчку с таким кодом import l2p.extensions.scripts.Functions; Вот лог ошибок [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\serverpackets\NpcHtmlMessage.java:113: error: non-static variable _file cannot be referenced from a static context [javac] Functions.sendMessage("HTML: " + _file ); [javac] ^ [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\serverpackets\NpcHtmlMessage.java:113: error: no suitable method found for sendMessage(String) [javac] Functions.sendMessage("HTML: " + _file ); [javac] ^ [javac] method Functions.sendMessage(CustomMessage,L2Player) is not applicable [javac] (actual and formal argument lists differ in length) [javac] method Functions.sendMessage(String,L2Player) is not applicable [javac] (actual and formal argument lists differ in length) Не компилиться, кстате посмотрел файл Functions у меня там даже упомянания нет для sendDebugMessage!
  10. Вот лог ошибок [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\serverpackets\NpcHtmlMessage.java:104: error: non-static variable _file cannot be referenced from a static context [javac] Functions.sendMessage("HTML: " + _file ); [javac] ^ [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\serverpackets\NpcHtmlMessage.java:104: error: cannot find symbol [javac] Functions.sendMessage("HTML: " + _file ); [javac] ^ [javac] symbol: variable Functions [javac] location: class NpcHtmlMessage [javac] 2 errors [javac] 64 warnings BUILD FAILED O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\build.xml:39: Compile failed; see the compiler error output for details. Total time: 17 seconds
  11. Суть не в том Error или Warning! Суть в том что не компилируется! Сразу куча Ошибок! А как их называть ваше право! Вы если можете помочь- то буду признателен. Ато критика есть, а помощи нет, кроме как от Расторгуев!
  12. Может я не туда вставлял, но при компиле куча ошибок получается. В результате не компилиться. Если вам не сложно напишите куда вставить в какой строчке. JAVA пока не мой конек! Вот часть Ошибок [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\serverpackets\WrappedMessage.java:11: warning: [rawtypes] found raw type: MMOConnection [javac] public WrappedMessage(byte[] data, MMOConnection con) [javac] ^ [javac] missing type arguments for generic class MMOConnection<T> [javac] where T is a type-variable: [javac] T extends MMOClient declared in class MMOConnection [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\skills\funcs\FuncEnchant.java:102: warning: [rawtypes] found raw type: Enum [javac] Enum itemType = item.getItemType(); [javac] ^ [javac] missing type arguments for generic class Enum<E> [javac] where E is a type-variable: [javac] E extends Enum<E> declared in class Enum [javac] O:\Lineage 2\Сервера\Сервера Gracia Epilogue\Исходники\voron-jloopchief_epilogue\java\l2p\gameserver\tables\NpcTable.java:54: warning: [rawtypes] found raw type: GArray [javac] _npcsByLevel = new GArray[100];
  13. Ребят помогите реализовать вывод в чат названия открытой HTML. Т.е. когда говоришь с НПЦ или открываешь Админку и т.д. - в чате показывало путь до HTML с открытым диалогом! Чтобы не копаться постоянно в файлах. Желательно чтобы показывало только Админу, а не всем игрокам! В JAVA я еще пока 0, но хорошо разбираюсь в HTML. Хочу правельно РУССИФИЦИРОВАТЬ Диалоги! Почитав форум понял что надо прописать значения в файл NpcHtmlMessage.java Исходный Код Voron.dev Epilogue Last + Наработки Jloopchief Код NpcHtmlMessage.java package l2p.gameserver.serverpackets; import java.util.regex.Matcher; import java.util.regex.Pattern; import l2p.extensions.scripts.ScriptManager; import l2p.extensions.scripts.ScriptManager.ScriptClassAndMethod; import l2p.gameserver.model.L2ObjectsStorage; import l2p.gameserver.model.L2Player; import l2p.gameserver.model.entity.SevenSignsFestival.SevenSignsFestival; import l2p.gameserver.model.instances.L2NpcInstance; import l2p.util.Files; import l2p.util.GArray; import l2p.util.Strings; import l2p.util.Util; public class NpcHtmlMessage extends L2GameServerPacket { private int _npcObjId, _questId; private String _html; private String _file = null; private GArray<String> _replaces = new GArray<String>(); private int item_id = 0; private boolean have_appends = false; private final StackTraceElement[] ceatedFrom; //TODO убрать отладку public NpcHtmlMessage(L2Player player, L2NpcInstance npc, String filename, int val) { _npcObjId = npc.getObjectId(); player.setLastNpc(npc); GArray<ScriptClassAndMethod> appends = ScriptManager.dialogAppends.get(npc.getNpcId()); if(appends != null && appends.size() > 0) { have_appends = true; if(filename != null && filename.equalsIgnoreCase("data/html/npcdefault.htm")) { setHtml(""); // контент задается скриптами через DialogAppend_ } else { setFile(filename); } String replaces = ""; // Добавить в конец странички текст, определенный в скриптах. Object[] script_args = new Object[] {new Integer(val)}; for(ScriptClassAndMethod append : appends) { Object obj = player.callScripts(append.scriptClass, append.method, script_args); if(obj != null) { replaces += obj; } } if(!replaces.equals("")) { replace("</body>", "\n" + Strings.bbParse(replaces) + "</body>"); } } else { setFile(filename); } replace("%npcId%", String.valueOf(npc.getNpcId())); replace("%npcname%", npc.getName()); replace("%festivalMins%", SevenSignsFestival.getInstance().getTimeToNextFestivalStr()); ceatedFrom = Thread.currentThread().getStackTrace(); } public NpcHtmlMessage(L2Player player, L2NpcInstance npc) { if(npc == null) { _npcObjId = 5; player.setLastNpc(null); } else { _npcObjId = npc.getObjectId(); player.setLastNpc(npc); } ceatedFrom = Thread.currentThread().getStackTrace(); } public NpcHtmlMessage(int npcObjId) { _npcObjId = npcObjId; // TODO player.setLastNpc(null); ceatedFrom = Thread.currentThread().getStackTrace(); } public final NpcHtmlMessage setHtml(String text) { if(!text.contains("<html>")) { text = "<html><body>" + text + "</body></html>"; } //<title>Message:</title> <br><br><br> _html = text; return this; } public final NpcHtmlMessage setFile(String file) { _file = file; return this; } /** * WTF is this? Never used. */ public final NpcHtmlMessage setItemId(int _item_id) { item_id = _item_id; return this; } public void setQuest(int quest) { _questId = quest; } protected String html_load(String name, String lang) { String content = Files.read(name, lang); if(content == null) { content = "Can't find file'" + name + "'"; } return content; } public NpcHtmlMessage replace(String pattern, String value) { _replaces.add(pattern); _replaces.add(value); return this; } private static final Pattern objectId = Pattern.compile("%objectId%"); private static final Pattern playername = Pattern.compile("%playername%"); @Override protected final void writeImpl() { L2Player player = getClient().getActiveChar(); if(player == null) { return; } if(_file != null) //TODO может быть не очень хорошо сдесь это делать... { String content = Files.read(_file, player); if(content == null) { setHtml(have_appends && _file.endsWith(".htm") ? "" : _file); } else { setHtml(content); } } for(int i = 0; i < _replaces.size(); i += 2) { _html = _html.replaceAll(_replaces.get(i), _replaces.get(i + 1)); } if(objectId == null) { System.out.println("objectId == null"); Thread.dumpStack(); } if(_html == null) { L2NpcInstance npc = L2ObjectsStorage.getNpc(_npcObjId); System.out.println("[WARNING] NpcHtmlMessage, _html == null, npc: " + npc.toString()); for(StackTraceElement e : ceatedFrom) { System.out.println("\t" + e); } System.out.println(Util.dumpObject(this, true, false, true)); return; } Matcher m = objectId.matcher(_html); if(m != null) { _html = m.replaceAll(String.valueOf(_npcObjId)); } _html = playername.matcher(_html).replaceAll(player.getName()); player.cleanBypasses(false); if(_questId > 0) { writeC(EXTENDED_PACKET); writeH(0x8d); writeD(_npcObjId); writeS(_html); writeD(_questId); } else { writeC(0x19); writeD(_npcObjId); writeS(_html); writeD(item_id); } } } Приношу извенения за столь длинный вставленный код- но так и не понял как это все спрятать под сполер!
×
×
  • Создать...