masone 298 Опубликовано 22 августа, 2016 Это извращенство=))) знаю,но это один вариант из множества,так в половине l2p\r сборок Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
hodor 1 Опубликовано 23 августа, 2016 Все немного проще. В строке if (Integer.parseInt(Config.CLASS_MASTERS_PRICE_LIST[jobLevel]) > 0) Нужно было немного пошаманить и дописать if (Integer.parseInt(Config.CLASS_MASTERS_PRICE_LIST[jobLevel - 1]) > 0) Вариантов фикса множество. Не вижу куда свои скрипты закидывать, подскажи пожалуйста Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 23 августа, 2016 Не вижу куда свои скрипты закидывать, подскажи пожалуйста Можно в ДП, а можно сразу со скриптами компилить в папке скриптс. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 23 августа, 2016 Если тут простейшее сломано, то я уже боюсь подумать о том, что всплывет дальше и сколько времени понадобится на фиксы... Смысл было выкладывать сурцы? Я данные сурсы покупал в Naik-a, за год много чего переделал, работает всё идеально, стоял на рабочем проекте не однократно, онлайн был 900-1000+ живой бес окон и. т. д кому нужно могу попозже запустить тест данной сборки, в контакты отпишите протестируете. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 23 августа, 2016 знаю,но это один вариант из множества,так в половине l2p\r сборок Это как как вариант ещё в Config.java фиксануть типа: CLASS_MASTERS_PRICE = servicesSettings.getProperty("ClassMastersPrice", "0,0,0"); if (CLASS_MASTERS_PRICE.length() >= 5) { int level = 1; for (String id : CLASS_MASTERS_PRICE.split(",")) { CLASS_MASTERS_PRICE_LIST[level] = Integer.parseInt(id); level++; } } Это уже как L2jLovely=))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
hodor 1 Опубликовано 23 августа, 2016 Можно в ДП, а можно сразу со скриптами компилить в папке скриптс. Создавал я папку /data/scripts и потом в ней создал еще одну папку AgumentShop и туда уже закинул java скрипт, но он не подгрузил на старте ГСа, даже ошибок не было в гс, хотя в скрипте явные косяки были.... Я данные сурсы покупал в Naik-a, за год много чего переделал, работает всё идеально, стоял на рабочем проекте не однократно, онлайн был 900-1000+ живой бес окон и. т. д кому нужно могу попозже запустить тест данной сборки, в контакты отпишите протестируете. Лучше бы сам сурс залил с фиксами, а не тест данной сборки Сборка то хорошая и так понятно.. Ребзи, помогите исправить пару ошибок... Я и так кучу уже исправил, а вот в этих не могу понять, что он хочет (хочу добавить AgumentShop): package services.AugmentShop; import Essence.gameserver.model.instances.L2NpcInstance; import Essence.gameserver.model.Player; import Essence.gameserver.model.quest.Quest; import Essence.gameserver.scripts.ScriptFile; import Essence.gameserver.model.quest.QuestState; import Essence.gameserver.model.inventory.Inventory; import java.sql.PreparedStatement; import java.sql.Statement; import java.sql.Connection; import Essence.gameserver.database.DatabaseFactory; import Essence.commons.dbutils.DbUtils; import Essence.gameserver.model.items.L2ItemInstance; public class AugmentShop extends Quest { private final static int ITEM_ID = 57; private final static int ITEM_COUNT = 1; private final static String qn = "AugmentShop"; private final static int NPC = 31860; public AugmentShop(int questId, String name, String descr) { super(questId, name, descr); addFirstTalkId(NPC); addStartNpc(NPC); addTalkId(NPC); } @Override public String onAdvEvent(String event, L2NpcInstance npc, Player player) { String htmltext = ""; if (event.equalsIgnoreCase("active")) { htmltext = "active.htm"; } else if (event.equalsIgnoreCase("passive")) { htmltext = "passive.htm"; } else if (event.equalsIgnoreCase("ls")) { htmltext = "ls.htm"; } else if (event.equalsIgnoreCase("main")) { htmltext = "main.htm"; } else if (event.equalsIgnoreCase("chance")) { htmltext = "chance.htm"; } else { updateAugment(player, Integer.parseInt(event.substring(0,5)), Integer.parseInt(event.substring(6,10)), Integer.parseInt(event.substring(11,13))); } return htmltext; } @Override public String onFirstTalk(L2NpcInstance npc, Player player) { String htmltext = ""; QuestState qs = player.getQuestState(getName()); if (qs == null) qs = newQuestState(player, Quest.COMPLETED); htmltext = "mainll.htm"; return htmltext; } public static void main(String[] args) { new AugmentShop(-1, qn, "AugmentShop"); } private static void updateAugment(Player player, int attribute, int skill, int level) { L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) == null) { player.sendMessage("Для зачарования, Вы должны одеть нужное оружие."); return; } if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isAugmented()) { player.sendMessage("Повторно оружие зачаровать нельзя."); return; } if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isHeroItem()) { player.sendMessage("Героическое оружие зачаровать нельзя."); return; } if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < ITEM_COUNT) { player.sendMessage("У Вас не хватает монет для зачарования."); return; } Connection con = null; PreparedStatement statement = null; try { player.getInventory().destroyItemByItemId("Consume", ITEM_ID, ITEM_COUNT, player, true); con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("REPLACE INTO augmentations VALUES(?,?,?,?)"); statement.setInt(1, item.getObjectId()); statement.setInt(2, attribute*65536+1); statement.setInt(3, skill); statement.setInt(4, level); statement.executeUpdate(); player.sendMessage("Успешно зачаровано, сделайте рестарт."); statement.close(); } catch (Exception e) { DbUtils.closeQuietly(con, statement); } } } [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:26: error: no suitable constructor found for Quest(int,String,String) [javac] super(questId, name, descr); [javac] ^ [javac] constructor Quest.Quest(String,int) is not applicable [javac] (actual and formal argument lists differ in length) [javac] constructor Quest.Quest(String,boolean) is not applicable [javac] (actual and formal argument lists differ in length) [javac] constructor Quest.Quest(int) is not applicable [javac] (actual and formal argument lists differ in length) [javac] constructor Quest.Quest(boolean) is not applicable [javac] (actual and formal argument lists differ in length) [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:32: error: method does not override or implement a method from a supertype [javac] @Override [javac] ^ [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:105: error: cannot find symbol [javac] if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isHeroItem()) [javac] ^ [javac] symbol: method isHeroItem() [javac] location: class L2ItemInstance [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:111: error: cannot find symbol [javac] if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < ITEM_COUNT) [javac] ^ [javac] symbol: method getInventoryItemCount(int,int) [javac] location: class PcInventory [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:121: error: method destroyItemByItemId in class Inventory cannot be applied to given types; [javac] player.getInventory().destroyItemByItemId("Consume", ITEM_ID, ITEM_COUNT, player, true); [javac] ^ [javac] required: int,long,boolean [javac] found: String,int,int,Player,boolean [javac] reason: actual and formal argument lists differ in length [javac] 5 errors [javac] 42 warnings Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 23 августа, 2016 Создавал я папку /data/scripts и потом в ней создал еще одну папку AgumentShop и туда уже закинул java скрипт, но он не подгрузил на старте ГСа, даже ошибок не было в гс, хотя в скрипте явные косяки были.... Лучше бы сам сурс залил с фиксами, а не тест данной сборки Сборка то хорошая и так понятно.. Ребзи, помогите исправить пару ошибок... Я и так кучу уже исправил, а вот в этих не могу понять, что он хочет (хочу добавить AgumentShop): package services.AugmentShop; import Essence.gameserver.model.instances.L2NpcInstance; import Essence.gameserver.model.Player; import Essence.gameserver.model.quest.Quest; import Essence.gameserver.scripts.ScriptFile; import Essence.gameserver.model.quest.QuestState; import Essence.gameserver.model.inventory.Inventory; import java.sql.PreparedStatement; import java.sql.Statement; import java.sql.Connection; import Essence.gameserver.database.DatabaseFactory; import Essence.commons.dbutils.DbUtils; import Essence.gameserver.model.items.L2ItemInstance; public class AugmentShop extends Quest { private final static int ITEM_ID = 57; private final static int ITEM_COUNT = 1; private final static String qn = "AugmentShop"; private final static int NPC = 31860; public AugmentShop(int questId, String name, String descr) { super(questId, name, descr); addFirstTalkId(NPC); addStartNpc(NPC); addTalkId(NPC); } @Override public String onAdvEvent(String event, L2NpcInstance npc, Player player) { String htmltext = ""; if (event.equalsIgnoreCase("active")) { htmltext = "active.htm"; } else if (event.equalsIgnoreCase("passive")) { htmltext = "passive.htm"; } else if (event.equalsIgnoreCase("ls")) { htmltext = "ls.htm"; } else if (event.equalsIgnoreCase("main")) { htmltext = "main.htm"; } else if (event.equalsIgnoreCase("chance")) { htmltext = "chance.htm"; } else { updateAugment(player, Integer.parseInt(event.substring(0,5)), Integer.parseInt(event.substring(6,10)), Integer.parseInt(event.substring(11,13))); } return htmltext; } @Override public String onFirstTalk(L2NpcInstance npc, Player player) { String htmltext = ""; QuestState qs = player.getQuestState(getName()); if (qs == null) qs = newQuestState(player, Quest.COMPLETED); htmltext = "mainll.htm"; return htmltext; } public static void main(String[] args) { new AugmentShop(-1, qn, "AugmentShop"); } private static void updateAugment(Player player, int attribute, int skill, int level) { L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) == null) { player.sendMessage("Для зачарования, Вы должны одеть нужное оружие."); return; } if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isAugmented()) { player.sendMessage("Повторно оружие зачаровать нельзя."); return; } if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isHeroItem()) { player.sendMessage("Героическое оружие зачаровать нельзя."); return; } if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < ITEM_COUNT) { player.sendMessage("У Вас не хватает монет для зачарования."); return; } Connection con = null; PreparedStatement statement = null; try { player.getInventory().destroyItemByItemId("Consume", ITEM_ID, ITEM_COUNT, player, true); con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("REPLACE INTO augmentations VALUES(?,?,?,?)"); statement.setInt(1, item.getObjectId()); statement.setInt(2, attribute*65536+1); statement.setInt(3, skill); statement.setInt(4, level); statement.executeUpdate(); player.sendMessage("Успешно зачаровано, сделайте рестарт."); statement.close(); } catch (Exception e) { DbUtils.closeQuietly(con, statement); } } } [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:26: error: no suitable constructor found for Quest(int,String,String) [javac] super(questId, name, descr); [javac] ^ [javac] constructor Quest.Quest(String,int) is not applicable [javac] (actual and formal argument lists differ in length) [javac] constructor Quest.Quest(String,boolean) is not applicable [javac] (actual and formal argument lists differ in length) [javac] constructor Quest.Quest(int) is not applicable [javac] (actual and formal argument lists differ in length) [javac] constructor Quest.Quest(boolean) is not applicable [javac] (actual and formal argument lists differ in length) [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:32: error: method does not override or implement a method from a supertype [javac] @Override [javac] ^ [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:105: error: cannot find symbol [javac] if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isHeroItem()) [javac] ^ [javac] symbol: method isHeroItem() [javac] location: class L2ItemInstance [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:111: error: cannot find symbol [javac] if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < ITEM_COUNT) [javac] ^ [javac] symbol: method getInventoryItemCount(int,int) [javac] location: class PcInventory [javac] C:\Source\Essence\scripts\src\main\java\scripts\services\AgumentShop\AugmentShop.java:121: error: method destroyItemByItemId in class Inventory cannot be applied to given types; [javac] player.getInventory().destroyItemByItemId("Consume", ITEM_ID, ITEM_COUNT, player, true); [javac] ^ [javac] required: int,long,boolean [javac] found: String,int,int,Player,boolean [javac] reason: actual and formal argument lists differ in length [javac] 5 errors [javac] 42 warnings ага, зафикси и выложи нам, вам итак сурсы выложили нужно просто немного включить голову... но вы и этого не можете Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
hodor 1 Опубликовано 23 августа, 2016 ага, зафикси и выложи нам, вам итак сурсы выложили нужно просто немного включить голову... но вы и этого не можете Вставил 5-ть копеек - молодец. Ступай дальше Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Energy 263 Опубликовано 23 августа, 2016 Вставил 5-ть копеек - молодец. Ступай дальше я ответил по факту, а вы даже критику не смогли здраво принять, прискорбно )) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RetZs 71 Опубликовано 23 августа, 2016 ага, зафикси и выложи нам, вам итак сурсы выложили нужно просто немного включить голову... но вы и этого не можете Hodor, Забей просто на него) он на форуме сидит, лишь бы чушь написать, а сам 0, во всем) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Player 0 Опубликовано 30 августа, 2016 Скажите плж есть где найти мануальчик чтобы подпилить клиент под всё это дело. В смысле какие файлецы править в system Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 31 августа, 2016 Скажите плж есть где найти мануальчик чтобы подпилить клиент под всё это дело. В смысле какие файлецы править в system Как для любой сборки. В l2.ini менять ип и закинуть клиент патч из сборки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Player 0 Опубликовано 1 сентября, 2016 Как для любой сборки. В l2.ini менять ип и закинуть клиент патч из сборки. Ммм у меня просто стародревний клиент далёкого 2007 года, и всегда когда играл где то - перезаливал System из патча и всё было ок. Здесь же после билда в клиент-патче есть только 2 файла L2.exe и nProtect. Вот ещё кстати вопрос, так и должно быть? При замене имеющегося l2.exe выдаёт не информативную(для меня) ошибку. Эту проблему я решил жутко нехрошим образом) Скачал патч левого "Живого" сервачка с 12 люДями онлайн, взял оттуда папку System и там в l2.ini запилил ServAddr и всё ок зашло. Находил мануал как убивать gg в Core.dll и еще с файлами типа .dat там что то нужно творить + редактировать сам l2.exe/l2.bat что вроде бы одно и то же. Что именно не пишут, а предлагают скачать exe-шку которая всё сделает за меня) Вот боюсь что она и есть за меня будет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 1 сентября, 2016 Ммм у меня просто стародревний клиент далёкого 2007 года, и всегда когда играл где то - перезаливал System из патча и всё было ок. Здесь же после билда в клиент-патче есть только 2 файла L2.exe и nProtect. Вот ещё кстати вопрос, так и должно быть? При замене имеющегося l2.exe выдаёт не информативную(для меня) ошибку. Эту проблему я решил жутко нехрошим образом) Скачал патч левого "Живого" сервачка с 12 люДями онлайн, взял оттуда папку System и там в l2.ini запилил ServAddr и всё ок зашло. Находил мануал как убивать gg в Core.dll и еще с файлами типа .dat там что то нужно творить + редактировать сам l2.exe/l2.bat что вроде бы одно и то же. Что именно не пишут, а предлагают скачать exe-шку которая всё сделает за меня) Вот боюсь что она и есть за меня будет. Просто качаете чистый патч с убитым гг, меняете файлы из патча на файлы из сборки и редактируете l2.ini. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Player 0 Опубликовано 10 сентября, 2016 Насчёт сборки вопросик. 1. У всех ли при заточке оружия не меняются статы ф-атаки у персонажа? урон по мобам так же остаётся прежним. При заточке брони статы меняются. 2. В фикс листе указано что ЛСы теперь как я понимаю не в 1 стопку в инвентаре, но при покупке через ADM_SHOP всё равно выскакивает окошко с просьбой ввести количество ЛСов для покупки, если ввести > 1, то ничего не происходит 3. Не вызывается страйдер, волк итд, каст скила идёт и всё. 4. При попытке сделать нубл ТП от гк при нажатии на Noblesse Only teleport ==> Teleport to Hunting Grounds после этого окно закрывается и ничего не происходит Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
masone 298 Опубликовано 10 сентября, 2016 Насчёт сборки вопросик. 1. У всех ли при заточке оружия не меняются статы ф-атаки у персонажа? урон по мобам так же остаётся прежним. При заточке брони статы меняются. 2. В фикс листе указано что ЛСы теперь как я понимаю не в 1 стопку в инвентаре, но при покупке через ADM_SHOP всё равно выскакивает окошко с просьбой ввести количество ЛСов для покупки, если ввести > 1, то ничего не происходит 3. Не вызывается страйдер, волк итд, каст скила идёт и всё. 4. При попытке сделать нубл ТП от гк при нажатии на Noblesse Only teleport ==> Teleport to Hunting Grounds после этого окно закрывается и ничего не происходит 4. сделайте себе html 1. попробуйте снимите оружие и оденьте обратно,может у вас комп не успевает слать статусапдейт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Player 0 Опубликовано 10 сентября, 2016 Pentium 3. Ну да, думаю нужно бы мне уже сменить железо, а то мб правда не успевает)))А статус апдейт по разному работает для оружия и брони? А то как я уже писал выыыыше броня при заточке увеличивает статы .Я понимаю что можно лезть в логику взаимодействия и смотреть, но было написано что все критические фиксы были сделаны и фикс лист огроменный, Видимо заточка оружия в л2 это некритично. Понапридумывали кореяки ненужного овна... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Naik 419 Опубликовано 10 сентября, 2016 Pentium 3. Ну да, думаю нужно бы мне уже сменить железо, а то мб правда не успевает))) А статус апдейт по разному работает для оружия и брони? А то как я уже писал выыыыше броня при заточке увеличивает статы . Я понимаю что можно лезть в логику взаимодействия и смотреть, но было написано что все критические фиксы были сделаны и фикс лист огроменный, Видимо заточка оружия в л2 это некритично. Понапридумывали кореяки ненужного овна... Возьмите люцеру или ацис, там заточка работает, это же самое важно для убИрмИгаПивиПиписькамерства и делайте свои сервера с "уникальным" контентом и "неповторимым" геймплеем. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Player 0 Опубликовано 10 сентября, 2016 Возьмите люцеру или ацис, там заточка работает, это же самое важно для убИрмИгаПивиПиписькамерства и делайте свои сервера с "уникальным" контентом и "неповторимым" геймплеем. Обидеть не хотел. Код чистый и читается отлично. Я хотел узнать у меня ли только такая проблема, думал мб при билде что то пошло не так. Вы считаете что заточка в л2 это не критично? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dmitnev 0 Опубликовано 16 сентября, 2016 (изменено) Подскажите в чем может быть дело? где копать? взял папку систем с убитым гг, поставил ваш патч и выдает ошибку : без вашего патча не пускает на сервер, отказано в доступе. чет мне кажеться это защита.. вообщем прошу вашей помощи Изменено 16 сентября, 2016 пользователем dmitnev Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Player 0 Опубликовано 17 сентября, 2016 (изменено) На самом деле тоже интересно было бы узнать куда именно смотрит эта "защита" и что ИМЕННО в клиенте нужно подредачить или поставить чтобы работало корректно. Я делал жутко тупую штуку - качал с рабочих серваков патчи и в них менял IP )) это сработало и заморачиваться с этим не стал, но это подход явно не администратора сервера... А клиент для меня тёмный лес и хотелось бы это исправить)) Изменено 17 сентября, 2016 пользователем Player Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dmitnev 0 Опубликовано 17 сентября, 2016 Проблему решил установкой чистого офф клиента и в ручную отключение ГГ, после поставил ваш патч и вуаля все гуд) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Howrang 9 Опубликовано 3 июня, 2018 (изменено) Привет ребят, сорри за АП мамонта. Суть проблемы такая, что то с котами в этом патче не так, и с другими патчами тоже, ошибка l2.exe Unnable to attach lineage process 3. Без патча логин сервер не пускает! В конфигах отключил котов, не помогло, в исходе удалил котов, Логин сервер все так же не пускает. Даже на localhoste(127.0.0.1). Ткните, куда копать? Видно что коннект между серверами есть. Изменено 3 июня, 2018 пользователем Howrang Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maxwell 53 Опубликовано 11 июля, 2018 Найк привет, сто лет тебя не видел, сажи пожалуйста, сурс у тебя ещё есть? дай покопать пожалуйста, а то по ссылке чтот нет ничего Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DJone 1 Опубликовано 21 декабря, 2018 Стоит брать эти сурсы как за основу? Или лучше L2JLovely? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты