Rolo 279 Опубликовано 3 декабря, 2020 (изменено) Чтобы научить клиент Интерлюда видеть ЛСы там, где их быть не должно, нужно немного подшаманить в скриптах Interface.U. На примере Бижутерии и Головных уборов: для начала ищем в Interface\Classes\ToolTip: Спойлер // 3. ACCESSARY case ITEM_ACCESSARY: bLargeWidth = true; //Slot Type if (Len(SlotString)>0) AddTooltipItemOption(0, SlotString, false, true, false); //Masical Defense AddTooltipItemOption(99, String(GetMagicalDefense(Item.CrystalType, Item.Enchanted, Item.MagicalDefense)), true, true, false); //Weight AddTooltipItemOption(52, String(Item.Weight), true, true, false); break; Здесь нам нужно сделать вывод ЛСов, аналогично ITEM_WEAPON, получится что-то такое: Спойлер // 3. ACCESSARY case ITEM_ACCESSARY: bLargeWidth = true; if (Item.RefineryOp1 != 0 || Item.RefineryOp2 != 0) { //??? AddTooltipItemBlank(12); //"[????]" AddTooltipItemOption(1490, "", true, false, false); SetTooltipItemColor(255, 255, 255, 0); //??? ?? if (Item.RefineryOp2 != 0) { Quality = class'UIDATA_REFINERYOPTION'.static.GetQuality( Item.RefineryOp2 ); GetRefineryColor(Quality, ColorR, ColorG, ColorB); } if (Item.RefineryOp1 != 0) { strDesc1 = ""; strDesc2 = ""; strDesc3 = ""; if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp1, strDesc1, strDesc2, strDesc3 )) { if (Len(strDesc1)>0) { AddTooltipItemOption(0, strDesc1, false, true, false); SetTooltipItemColor(ColorR, ColorG, ColorB, 0); } if (Len(strDesc2)>0) { AddTooltipItemOption(0, strDesc2, false, true, false); SetTooltipItemColor(ColorR, ColorG, ColorB, 0); } if (Len(strDesc3)>0) { AddTooltipItemOption(0, strDesc3, false, true, false); SetTooltipItemColor(ColorR, ColorG, ColorB, 0); } } } if (Item.RefineryOp2 != 0) { strDesc1 = ""; strDesc2 = ""; strDesc3 = ""; if (class'UIDATA_REFINERYOPTION'.static.GetOptionDescription( Item.RefineryOp2, strDesc1, strDesc2, strDesc3 )) { if (Len(strDesc1)>0) { AddTooltipItemOption(0, strDesc1, false, true, false); SetTooltipItemColor(ColorR, ColorG, ColorB, 0); } if (Len(strDesc2)>0) { AddTooltipItemOption(0, strDesc2, false, true, false); SetTooltipItemColor(ColorR, ColorG, ColorB, 0); } if (Len(strDesc3)>0) { AddTooltipItemOption(0, strDesc3, false, true, false); SetTooltipItemColor(ColorR, ColorG, ColorB, 0); } } } //"??/?? ??" AddTooltipItemOption(1491, "", true, false, false); SetTooltipItemColor(ColorR, ColorG, ColorB, 0); //??? if (Len(Item.Description)>0) { AddTooltipItemBlank(12); } } //Slot Type if (Len(SlotString)>0) AddTooltipItemOption(0, SlotString, false, true, false); //Masical Defense AddTooltipItemOption(99, String(GetMagicalDefense(Item.CrystalType, Item.Enchanted, Item.MagicalDefense)), true, true, false); //Weight AddTooltipItemOption(52, String(Item.Weight), true, true, false); break;[/CODE] После этих изменений клиент начнет видеть ЛСы в биже и шапках, аналогичное можно проделать и для ITEM_ARMOR, чтобы ЛСы отображались и в броне. Со стороны же сервера нужно в первую очередь разрешить аугументацию не только оружия. На примере PW Soft, делается это вот здесь: pwsoft\src\net\sf\l2j\gameserver\model\L2ItemInstance Ищем public boolean canBeAugmented() и заменяем на нужное нам условие, на примере возможности вставки ЛС в бижу и шапки, например вот так: Спойлер if (getItem().getItemGrade() < L2Item.CRYSTAL_C || (getItem().getType2() != L2Item.TYPE2_WEAPON && getItem().getType2() != L2Item.TYPE2_ACCESSORY)) { return false; } Аналогично и с броней, можно разрешить/запретить вставку в определенные части брони, например, только в верх. Разумеется, дальше Вам нужно будет настроить какие ЛСы и куда вставляются, при какие условия вставки и снятия ЛСа и тд, но это уже совсем другая история, цель была указать где это делается в клиенте, ибо на стороне сервера все зависит от сборки. Изменено 3 декабря, 2020 пользователем Rolo 3 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
m4sc0t 0 Опубликовано 18 декабря, 2020 Привет, пытаюсь найти ITEM_ACCESSARY: в Interface\Classes\ToolTip: Но ничего такого нет. Может я делаю что-то не так или не там ищу? Сборка под интерлюд. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rolo 279 Опубликовано 18 декабря, 2020 (изменено) Вопрос решили в привате, если кто-то столкнется с таким же, то во-первых: был не дефолтный интерфейс, во-вторых: нужные строки таки нашлись, проблема заключалась в ошибках после декомпила, которые не позволили по поиску найти нужные блоки. Спойлер 584 строка - аксессуары. Пример отображения ЛСа выдирать с 462 строки. Изменено 18 декабря, 2020 пользователем Rolo 1 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты