YuraAAA1 13 Опубликовано 19 февраля, 2014 Добрый день. Прошу совета опытных людей. Есть задача добавить новый грейд. Со стороны сервера вроде нет особых проблем (Добавил crystall type, Soulshots, BSS). Вопрос таков. 1. Как добавить expertise (grade penalty). Я вижу, что это скилл 239, но не могу найти на каком лвле он даётся. 2. Как добавить новый грейд в клиент (значёк). Буду рад любой помощи, спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 19 февраля, 2014 (изменено) 1. плохо смотрел - обычно скилл экспертизы прописан в базовых классах персонажей (хуман файтер, хуман маг и т.д.). разве что авторы сборки сделали очередной изврат и выдают экспертизу хардкодом в ядре. 2. новый грейд в клиент ты не добавишь никак, ну как минимум правкой dat-ников и добавлением новой иконки не обойтись - требуются изменения в клиенте на более глубоком уровне (dll-файлы, u-файлы). Изменено 19 февраля, 2014 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 19 февраля, 2014 замени иконку ng,d,c,b,a на мега пвп он ине используются, я так нделал, но народ не оценил , даже не заметили походу 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VREDNbIi 145 Опубликовано 19 февраля, 2014 2. новый грейд в клиент ты не добавишь никак, ну как минимум правкой dat-ников и добавлением новой иконки не обойтись - требуются изменения в клиенте на более глубоком уровне (dll-файлы, u-файлы). Вы не правы, новый грейд спокойно можно добавить, правка нескольких строк кода в ядре, расширить ур скила, добавить новые иконки в общем исходник + dat правка... усе Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
YuraAAA1 13 Опубликовано 19 февраля, 2014 (изменено) По поводу ядра. L2PcInstance содержит массив экспертиз SkillTreeTable.getInstance().getExpertiseLevel(0), // NONE SkillTreeTable.getInstance().getExpertiseLevel(1), // D SkillTreeTable.getInstance().getExpertiseLevel(2), // C SkillTreeTable.getInstance().getExpertiseLevel(3), // B SkillTreeTable.getInstance().getExpertiseLevel(4), // A SkillTreeTable.getInstance().getExpertiseLevel(5), // S SkillTreeTable.getInstance().getExpertiseLevel(6) - добавляем новый. Используются они getExpertiseLevel(int grade) в SkillTreeTable Скилы берутся у палладина (? ) Map<Integer, L2SkillLearn> learnMap = _skillTrees.get(ClassId.paladin); int skillHashCode = SkillTable.getSkillHashCode(239, grade); И если скилл не найден, то получаем: _log.error("Expertise not found for grade " + grade); <skill id="239" levels="6" name="Expertise M"> Ошибок ГС нет, но я не могу понять по каким лвлам они даются P.S. кроме 239 есть ещё <skill id="240" levels="1" name="Expertise C Deleted"> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="PASSIVE"/> <set name="operateType" val="OP_PASSIVE"/> </skill> <skill id="241" levels="1" name="Expertise B Deleted"> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="PASSIVE"/> <set name="operateType" val="OP_PASSIVE"/> </skill> <skill id="242" levels="1" name="Expertise A Deleted"> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="PASSIVE"/> <set name="operateType" val="OP_PASSIVE"/> </skill> <skill id="243" levels="1" name="Expertise S Deleted"> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="PASSIVE"/> <set name="operateType" val="OP_PASSIVE"/> </skill> Изменено 19 февраля, 2014 пользователем YuraAAA1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 19 февраля, 2014 Вы не правы, новый грейд спокойно можно добавить, правка нескольких строк кода в ядре, расширить ур скила, добавить новые иконки в общем исходник + dat правка... усе а, ну флаг вам в руки.погляжу я как вы таким методом будете к примеру вещи нового грейда вводить, ид которого клиент не знает и не будет в курсе какую иконку грейда для него показывать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
YuraAAA1 13 Опубликовано 19 февраля, 2014 а, ну флаг вам в руки. погляжу я как вы таким методом будете к примеру вещи нового грейда вводить, ид которого клиент не знает и не будет в курсе какую иконку грейда для него показывать. Но ведь, по идее, должно быть какое-то соответствие между ID и grade Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 19 февраля, 2014 Но ведь, по идее, должно быть какое-то соответствие между ID и grade это клиент посылает ид грейда, в арморгруп Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VREDNbIi 145 Опубликовано 19 февраля, 2014 а, ну флаг вам в руки. погляжу я как вы таким методом будете к примеру вещи нового грейда вводить, ид которого клиент не знает и не будет в курсе какую иконку грейда для него показывать. Указать в бд новый грейд так тяжко? ну да.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VREDNbIi 145 Опубликовано 19 февраля, 2014 подсказка.... класс L2Skill имеет тоже информацию о скиллах грейда, удачи =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
YuraAAA1 13 Опубликовано 19 февраля, 2014 подсказка.... класс L2Skill имеет тоже информацию о скиллах грейда, удачи =) Может на каких-нибудь сборках да, но на этой нет) и в skilltree xml я тоже не нашёл этого Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 19 февраля, 2014 Указать в бд новый грейд так тяжко? ну да.... читай внимательно - я про клиентскую сторону вобще-то говорю, а не серверную Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 19 февраля, 2014 это клиент посылает ид грейда, в арморгруп нифига, клиент с сервером никакой информацией о грейде вещи не обмениваются - клиент ее сам смотрит из *grp.dat, руководствуясь только ид предмета, который и прислал сервер. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 19 февраля, 2014 нифига, клиент с сервером никакой информацией о грейде вещи не обмениваются - клиент ее сам смотрит из *grp.dat, руководствуясь только ид предмета, который и прислал сервер. ну я это и написал Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VREDNbIi 145 Опубликовано 20 февраля, 2014 читай внимательно - я про клиентскую сторону вобще-то говорю, а не серверную так забавно смотреть на человека упертого в стенуесли бы я этого не реализовывал уже ( года 2 назад еще аж но ) то не писал бы ничего..... а так ты забавно смотришься со своими "медальками форума"... и пишешь подобное ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
YuraAAA1 13 Опубликовано 20 февраля, 2014 подсказка.... класс L2Skill имеет тоже информацию о скиллах грейда, удачи =) Большое спасибо, с сервером разобрался, почему-то проглядел skilltree. Подскажите, где находятся сами текстуры иконок грейда? Не могу найти. Спасибо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vokforever 1 Опубликовано 20 февраля, 2014 где находятся сами текстуры иконок грейда? В свое время все перерыл так и не нашел. Тоже интересно, где же собака зарыта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 20 февраля, 2014 В свое время все перерыл так и не нашел. Тоже интересно, где же собака зарыта. а какая разница где, если вы новую иконку добавляете, но ладноsymbolname-e.dat 101 a,grades\0 a,symbol.grade_s\0 1 102 a,gradea\0 a,symbol.grade_a\0 1 103 a,gradeb\0 a,symbol.grade_b\0 1 104 a,gradec\0 a,symbol.grade_c\0 1 105 a,graded\0 a,symbol.grade_d\0 1 если сделаете новый грейд не изменяя старый прошу скрины в тему Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vokforever 1 Опубликовано 20 февраля, 2014 (изменено) Не совсем ясно как клиент выбирает ID для грейда. ведь грейды идут по нарастанию 0-NG 5-S а тут наоборот. а по идее должно быть 105 a,grades\0 a,symbol.grade_s\0 1 или я добавляю к примеру 106 a,grades\0 a,sdfgsd.grade_L\0 1 и клиент обрабатывает crystal_type="L" ? Изменено 20 февраля, 2014 пользователем vokforever Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vokforever 1 Опубликовано 20 февраля, 2014 (изменено) 106 grades80 zicons.grade_s80 1 107 gradeg zicons.grade_g 1 такая ситуация не сработала, иконки не добавились у ы80 "" , у g '/' вместо иконки 106 grades80 symbol.grade_s 1 Тоже не показывает стандартный икон. Куда направляются данные 101-106 ? ведь в *grp.dat приходят "5" - s а тут "101" Изменено 20 февраля, 2014 пользователем vokforever Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 20 февраля, 2014 так забавно смотреть на человека упертого в стену если бы я этого не реализовывал уже ( года 2 назад еще аж но ) то не писал бы ничего..... а так ты забавно смотришься со своими "медальками форума"... и пишешь подобное ) ну на словах тут многие "это делали уже N лет назад без всяких проблем", но только на словах - как-то при просьбе показать "сделанное", внезапно с этим начинаются разные проблемы. продемонстрируй как ты ограничиваясь только правкой датников клиента (ну еще может добавлением новой иконки грейда) добавляешь в него этот самый новый грейд, а не просто меняешь название и иконку существующего. и добавляешь так чтобы ничего в клиенте в итоге не глючило. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vokforever 1 Опубликовано 20 февраля, 2014 продемонстрируй как ты ограничиваясь только правкой датников клиента (ну еще может добавлением новой иконки грейда) добавляешь в него этот самый новый грейд, а не просто меняешь название и иконку существующего. и добавляешь так чтобы ничего в клиенте в итоге не глючило. Если вопрос ко мне, то я не ограничиваюсь только правкой датников клиента ,со стороны сервера все есть и в ядре и в классах, скиллах (239). Осталось только разобраться с клиентом. Кто-то может подсказать по выше заданным вопросам ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 20 февраля, 2014 (изменено) Если вопрос ко мне, то я не ограничиваюсь только правкой датников клиента ,со стороны сервера все есть и в ядре и в классах, скиллах (239). Осталось только разобраться с клиентом. Кто-то может подсказать по выше заданным вопросам ? ну дак вон VREDNbIi утверждает что он это "делал еще 2 года назад" - так что видимо он тебе и может помочь. Изменено 20 февраля, 2014 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты