Akiflola 8 Опубликовано 20 мая, 2014 (изменено) Уважаемые знатоки , за ранее извиняюсь если создал тему не в том разделе, я не специально. Суть вопроса в том что я не могу разобраться с проблемой. Есть NPC , при диалоге с которым показывает иконки разных скилов. И при нажатии на скил следующее действие приводит в SkillList , вот код. " td align=center><button action="bypass -h npc_%objectId%_SkillList" width=32 height=32 back="symbol.icon108" fore="icon.skill0231"></td> " Я понимаю что SkillList это когда все скилы вместе , а я бы хотел что бы вместо "SkillList" прописать (путь или как это называется) к определенному скилу. Что бы при нажатии на иконку скила можно было учить скил! Буду благодарен кто ответить очень доходчиво, так как не могу понять что дальше прописать. С меня много плюсов) Изменено 20 мая, 2014 пользователем Akiflola Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ClockMaker 18 Опубликовано 20 мая, 2014 Уважаемые знатоки , за ранее извиняюсь если создал тему не в том разделе, я не специально. Суть вопроса в том что я не могу разобраться с проблемой. Есть NPC , при диалоге с которым показывает иконки разных скилов. И при нажатии на скил следующее действие приводит в SkillList , вот код. " td align=center><button action="bypass -h npc_%objectId%_SkillList" width=32 height=32 back="symbol.icon108" fore="icon.skill0231"></td> " Я понимаю что SkillList это когда все скилы вместе , а я бы хотел что бы вместо "SkillList" прописать (путь или как это называется) к определенному скилу. Что бы при нажатии на иконку скила можно было учить скил! Буду благодарен кто ответить очень доходчиво, так как не могу понять что дальше прописать. С меня много плюсов) Как для логики: Открой тот самый SkillList, и там будут коды каждого скила, и так прописывай. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 20 мая, 2014 (изменено) SkillList это есть SkillTrees. А что за код в SkillTrees я не могу понять. Там тока класс id,скил id, левел скила. Например если скил id 100 то что тут прописать " bypass -h npc_%objectId%_SkillList " ? Изменено 20 мая, 2014 пользователем Akiflola Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 21 мая, 2014 Это байпасс. Смотришь инстанс нпц, который вписан для этого нпц. В нём, в коде, смотришь где вызывается SkillList, и делаешь там же как тебе нужно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 21 мая, 2014 Это байпасс. Смотришь инстанс нпц, который вписан для этого нпц. В нём, в коде, смотришь где вызывается SkillList, и делаешь там же как тебе нужно пытался понять что ты написал.. но не получилось. что ты имеешь ввиду? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 21 мая, 2014 Смотришь Статы НПЦ который даёт это диалог. У него, допустим <set name="type" value="Trader" /> Отсюда смотрим его инстанс, допустим data/scripts/model/npc/TraderInstance.java В нём в коде смотрим байпасс SkillList и смотрим, что он исполняет. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 21 мая, 2014 Смотришь Статы НПЦ который даёт это диалог. У него, допустим <set name="type" value="Trader" /> Отсюда смотрим его инстанс, допустим data/scripts/model/npc/TraderInstance.java В нём в коде смотрим байпасс SkillList и смотрим, что он исполняет. Если есть возможность и желание помочь в скайпе. вот мой скайп farruh159. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 21 мая, 2014 (изменено) Смотришь Статы НПЦ который даёт это диалог. У него, допустим <set name="type" value="Trader" /> Отсюда смотрим его инстанс, допустим data/scripts/model/npc/TraderInstance.java В нём в коде смотрим байпасс SkillList и смотрим, что он исполняет. package net.sf.l2j.gameserver.model.actor.instance; import net.sf.l2j.gameserver.templates.L2NpcTemplate; /** * This class ... * * @version $Revision: 1.5.4.8 $ $Date: 2005/04/02 15:57:52 $ */ public final class L2TrainerInstance extends L2FolkInstance { /** * @param template */ public L2TrainerInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public String getHtmlPath(int npcId, int val) { String pom = ""; if (val == 0) { pom = "" + npcId; } else { pom = npcId + "-" + val; } return "data/html/trainer/" + pom + ".htm"; } } вот инстант этого нпц. какой тут код? Изменено 21 мая, 2014 пользователем Akiflola Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 21 мая, 2014 Смотри в NpcInstance Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 21 мая, 2014 { setTarget(player); L2Skill skill = SkillTable.getInstance().getInfo(5182, 1); if (skill != null) doCast(skill); } это тот код? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 21 мая, 2014 Нет. У меня например в NpcInstance command.equalsIgnoreCase("SkillList")) { showSkillList(player); } Который ведет к public void showSkillList(Player player) И уже в этом методе всё описывается. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 21 мая, 2014 Нет. У меня например в NpcInstance command.equalsIgnoreCase("SkillList")) { showSkillList(player); } Который ведет к public void showSkillList(Player player) И уже в этом методе всё описывается. можешь в скайпе ответить плиз. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 21 мая, 2014 (изменено) Нет. У меня например в NpcInstance command.equalsIgnoreCase("SkillList")) { showSkillList(player); } Который ведет к public void showSkillList(Player player) И уже в этом методе всё описывается. else if (command.equalsIgnoreCase("TerritoryStatus")) { NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); { if (getCastle().getOwnerId() > 0) { html.setFile("data/html/territorystatus.htm"); L2Clan clan = ClanTable.getInstance().getClan(getCastle().getOwnerId()); html.replace("%clanname%", clan.getName()); html.replace("%clanleadername%", clan.getLeaderName()); } вот что у меня. Кстати я поискал и понял что код с началом "else if (command.equalsIgnoreCase" у меня тока один. тот что выше . это как понять? Изменено 21 мая, 2014 пользователем Akiflola Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 1 июня, 2014 ребята кто может помочь? я таки не решил проблему. я вот думаю может в NpcInstan вписать public void addSkill(int id, int level, boolean passive) { _skills.add(new Skill(id, level, passive)); } protected final void writeImpl() { writeC(88); writeD(_skills.size()); for (int i = 0; i < _skills.size(); i++) { Skill temp = (Skill)_skills.get(i); writeD(temp.passive ? 1 : 0); writeD(temp.level); writeD(temp.id); writeC(0); } } ка думаете будет работать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 1 июня, 2014 Конечно будет :D Интересно, чем определены writeD,writeC для NpcInstance? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 1 июня, 2014 Конечно будет :D Интересно, чем определены writeD,writeC для NpcInstance? я не знаю. а что на что то он влияет!? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 1 июня, 2014 Ну как бы это поля для пакетных данных Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 3 июня, 2014 Ну как бы это поля для пакетных данных AwakenDev ты можешь в скайпе ответить? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mizuwokiru 181 Опубликовано 5 июня, 2014 ооох, открываешь папку gameserver/data/scripts/npc/model, там у тебя выбьет кучу java-файлов с окончанием -Instance (FrintezzaInstance.java к примеру). Там ищешь нужный инстанс, а в нем bypass. Если там нет, то поройся по всему каталогу scripts, В крайнем случае ищешь в ядре и скриптах "SkillList" (с кавычками) с помощью Notepad++(Ctrl+F). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 7 июня, 2014 вот bypass с L2NpcInstans: @Override public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("SkillList")) { player.setSkillLearningClassId(player.getClassId()); showSkillList(player, player.getCurrentFolkNPC(), player.getClassId()); } else if (command.startsWith("EnchantSkillList")) showEnchantSkillList(player, player.getCurrentFolkNPC(), player.getClassId()); else if (command.startsWith("GiveBlessing")) giveBlessingSupport(player); else super.onBypassFeedback(player, command); } } Кто скажет чем это поможет моей проблеме? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 7 июня, 2014 тебе пока поможет только учебник по яве ибо ты даже самые основы языка походу не знаешь... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akiflola 8 Опубликовано 8 июня, 2014 тебе пока поможет только учебник по яве ибо ты даже самые основы языка походу не знаешь... буду учить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты