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

Rolo

Постоялец
  • Публикаций

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

  • Посещение

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

    51
  • Отзывы

    N/A

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

  1. C Вашего разрешения добавлю: Хроники: Lineage 2 Epic Tale of Aden Episode 2.5 Underground (Hymn of Soul) Суть ТЗ по большому счету скомпилить, ибо сама реализация это изменить таймер в StatusWnd с 300 на 0.
  2. За скрин отдельный лайк.
  3. Поскольку ссылка на видео ViRus ` a, к сожалению, мертва, мне поступила просьба объяснить как это работает. Возможно информация пригодится кому-то еще, потому отвечаю здесь, а не в привате. Итак, прежде всего нам нужно раздобыть "кадры" нашей анимации, т.к. сама собой она представляет ряд быстро (или не очень) прокручивающихся по кругу текстур, такой себе зацикленный мини-мультик. Когда текстуры уже готовы, грузим их в UE2 (предполагается, что Вы это умеете, раз задались целью сделать свой анимированный логотип). Важная инфа: Давайте текстурам названия с нумeрацией, это значительно упростит Вам жизнь при сборке текстур в анимацию. При этом учтите, UE прежде поставит файл с названием texture_11, нежели texture_2. Другими словами, сортирует он по совпадающим символам, и не считывает Вашу нумeрацию. Единица идет раньше двойки, следовательно будь там хоть 100 миллионов, текстура будет впереди текстуры с двойкой. Открываем правой кнопкой нашу первую текстуру, клацаем Properties, во всплывшем окне открываем блок Animation, и смотрим: 1 - следующая текстура в нашей анимации. 2 - количество кадров в секунду (скорость прокрутки анимации). 3 - общее количество текстур в анимации. Важная инфа: Строго соблюдайте порядок добавления анимаций. Ваша цель - в строке AnimNext (сейчас будет неожиданно) указать следующую текстуру в анимации. Таким образом в Properties первой текстуры AnimNext стоит вторая текстура; В Properties второй текстуры AnimNext стоит третья текстура; В Properties третьей текстуры AnimNext стоит первая текстура; Не менее важная инфа: Не нужно в каждой текстуре казывать количество и скорость воспроизведения текстур, это делается только в первой текстуре! Все последующие должны содержать только ссылку на следующую текстуру. Есть небольшой нюанс добавления следующей текстуры, скопировать в строку название следующей текстуры - очевидный, но не верный ход. Делается это следующим образом: Выбираем текстуру, открываем ее Properties, теперь отодвигаем всплывшее окно, клацаем на следующую текстуру, и в Properties первой текстуры, в строке AnimNext клацаем use. Именно таким образом добавляем все текстуры в цепь анимации. Когда мы зациклим последнюю текстуру на первой, и перейдем в Properties первой текстуры, мы увидим саму анимацию, если ее нет, что-то дергается/пропадает - вероятнее всего, Вы пропустили какую-то текстуру, либо плохо скомпоновали ряд текстур, либо не соблюдён порядок, либо Вы изобрели новый способ все запороть с чем я Вас поздравляю и сочувствую одновременно. А на этом все, дальше сохраняйте как обычную текстуру, в HTML вставляется название самой первой текстуры, где задается количество и частота обновления кадров.
  4. Та не за что. ) Я в обновлениях этого ресурса прикрепил HTML-ку с примером таблицы, она кривая и поплывшая ибо выдрал неаккуратно с другого шаблона, но для примера сойдет. )
  5. Просмотр файла Анимированная кнопка Для использования: back="Rolo_animButtons.Rolo_anim_Button_down" fore="Rolo_animButtons.Rolo_anim_Button" Добавил Rolo Добавлено 02/06/21 Категория Серверные дополнения Автор Rolo Хроники Для всех хроник  
  6. Версия 1.0.0

    77 раз скачали

    Для использования: back="Rolo_animButtons.Rolo_anim_Button_down" fore="Rolo_animButtons.Rolo_anim_Button"

    Бесплатный

  7. Что касается интерфейса, там все проще. В хдат прямо можно задать насколько сильно нужно стянуть иконку, чтобы не рисовать 10 разных размеров, и там же можно легко сразу поверх основной кнопки натянуть прокликиваемую текстурку, выглядит так: <Texture file="Rolo_EffectPanel.yellow_panel" uSize="32" vSize="32" Alpha="-9999" isAnimTex="-1" layer="Normal"> <DefaultProperties name="ToggleCP" parentElement="AutoPotionsWnd" alwaysOnTop="True" alwaysOnBack="False" Virtual="True"> <Size Absolute="True" width="23" height="23"/> <Position relativeTo="BoxCP" offsetX="-1" offsetY="-1" relativePoint="CenterCenter" anchorPoint="CenterCenter" anchored="True" /> </DefaultProperties> </Texture> Просто "якорим" текстуру к нужной кнопке relativeTo="BoxCP", задаем параметр виртуальности Virtual="True", чтобы не пряталась после клика по кнопке - вытягиваем ее наверх на постоянной основе alwaysOnTop="True", не забываем указать реальный размер uSize="32" vSize="32", и до какого она будет ужата: <Size Absolute="True" width="23" height="23"/>, и все, готово. Куда быстрее и приятнее, чем HTML-ки интерлюдовские.
  8. Конечно, я изначально их себе для АЦП сделал. Я - интерлюд-боец, и страдания наши велики, ибо интерлюд не понимает что такое бекграунд текстуры (в хдат понимает, в хтмлках - нет), потому извращаемся как можем. В общих чертах выглядит так: делаем таблицу с конфигурациями cellspacing, cellpadding, в ней вешаем рамки, затем под нее мостим таблицу с такими же параметрами, и уже с основными иконками. При этом все выравнивания через <center> пойдут нафиг, и в арсенале останется только отступы в стиле <td width=40></td>, но привести к порядку можно.
  9. Смотря где именно, одно дело - в HTML-ке, и другое дело через интерфейс. Вас какой именно вариант интересует?
  10. Просмотр файла Анимированные иконки панелей В архиве 9 разных панелек. Вот их названия для вставки: Выглядят "в движении" вот так: Добавил Rolo Добавлено 02/05/21 Категория Клиентские дополнения Автор Rolo Хроники Для всех хроник
  11. Версия 1.0.0 с примером HTML под ИЛ

    187 раз скачали

    В архиве 9 разных панелек. Вот их названия для вставки: Выглядят "в движении" вот так:

    Бесплатный

  12. Rolo

    Краски ПВ софт

    На всякий случай, может кому-то пригодится, дублирую суть с ТГ: ТСу нужно было вместо +1 стр добавить сразу +1% п атак, аналогично по другим статам, краски должны увеличивать не базовые характеристики, а уже конкретные статы. Ответ в pwsoft\src\net\sf\l2j\gameserver\skills\Formulas.java в блоках: static class FuncHennaDEX extends Func { static final FuncHennaDEX _fh_instance = new FuncHennaDEX(); static Func getInstance() { return _fh_instance; } private FuncHennaDEX() { super(Stats.STAT_DEX, 0x10, null); } @Override public void calc(Env env) { env.value += env.cha.getHennaStatDEX(); } }
  13. Rolo

    Краски ПВ софт

    А что конкретно имеется ввиду: - Каким профам какие краски можно ставить? (в БД henna_trees) - Где хранятся статы красок? (в БД henna) - Где в ядре считывается инфа с БД? (в классе pwsoft\src\net\sf\l2j\gameserver\datatables\HennaTable.java и C:\L2Refren\pwsoft\src\net\sf\l2j\gameserver\datatables\HennaTreeTable.java соответственно) - Где регистрируются таблицы? (неизменно - в ГС: import net.sf.l2j.gameserver.datatables.HennaTable; import net.sf.l2j.gameserver.datatables.HennaTreeTable;) Статы в pwsoft\src\net\sf\l2j\gameserver\model\actor\instance\L2PcInstance.java; Проверки: pwsoft\src\net\sf\l2j\gameserver\network\clientpackets\RequestHennaItemInfo.java pwsoft\src\net\sf\l2j\gameserver\network\clientpackets\RequestHennaEquip.java Сами функции красок в pwsoft\src\net\sf\l2j\gameserver\skills\Formulas.java Искать по статам, например: static class FuncHennaDEX extends Func Определение что есть стат инт, а что стр в pwsoft\src\net\sf\l2j\gameserver\templates\L2Henna.java public int getStatINT()
  14. Rolo

    Клиент ХФ

    Включите логирование клиента, чтобы получить точный ответ, подозреваю что может какой-то текстуры нехватать (отображение языка в окошке чата, или вроде того) и из-за этого клиент критует.
  15. Значит такой метод уже есть, нужно просто его найти и посмотреть какие там проверки, и добавить туда нужные Вам скиллы, это явно в ядро нужно лезть смотреть.
  16. Мне кажется, если такой механики нет изначально, то в ядре нужно допилить, в самом эффекте владения умениями сделать дополнительную проверку. Статик реюз - это влияние статов на откат скилла, а скилл мастери - это отдельная механика, потому как с Избавлением Эйнахасад не выйдет, скорее всего оно не откатывается, потому что это предметное умение.
  17. swat809, не видел подобных мануалов. В целом нужно понимание как сборка построена, и джаву тоже понимать, иначе такое лучше самому не делать, я не в том даже ключе, что наугад не получится, - может и получиться, может даже все будет хорошо, но есть вероятность наплодить багов/загрузить систему, особенно если речь о вычислении шанса дропа на каждый удар. ) Если есть представления о джаве и что как работает, посмотрите в ядре, в классе l2PcInstance как устроены промахи/попадания по цели, например, или как вешается дебаф, когда бьешь РБ слишком лоу лвла, это все как раз чекается на каждый удар.
  18. swat809, в таком случае нужно метод onHit юзать, а не при смерти чекать.
  19. Cibo, это похоже на проблемы с геодвигом/геодатой, лучше работать непосредственно с проблемой, чем заниматься кучей ненужной работы, это же не комплексная проблема, чтобы прям все механики/пакеты перелопачивать, выйдет банально дешевле и быстрее, мне кажется. А насчет того, насколько этот вопрос решен в платных сборках - попросите разработчиков дать доступ к тестовым серверам и проверьте сами,.
  20. Насколько я знаю, Адвексы ПТС с эпилога до ИЛа опустили таким образом, а насчет джава сборок не знаю таких прецедентов даже.
  21. Cibo, правильно ли я понимаю: Вы ищите сборку ХФа, в который вырезан весь контент ХФа, вернуты все механики ИЛа, вся пакетка опущена до ИЛа?
  22. Не знаю, указанный Вами проект, но суть, кажется уловил. На самом деле, на что фантазии хватит. Но мне кажется, лучше спавнить как НПС, как Вы и сказали, сделал бы метод, проверяющий, что там на игроке надето как-то так, например: public int getItemEquipped(int loc) { return getPlayer().getInventory().getPaperdollItemId(loc); } Сделал бы проверку НПС по ид, если есть совпадения, чекал бы getItemEquipped(), если есть совпадение - тогда идет расчет шанса дропа и вся остальная магия.
  23. Совсем забыл об этой теме. и так, исправление бага с отображением заточки, может кому-то пригодится еще: Вводим локальную переменную: local int CrystalChap; В блоке ITEM_WEAPON определяем ее: CrystalChap = Item.CrystalType; if (Item.CrystalType > 5) { CrystalChap = 5; } В тултипах физ/маг атаки заменяем Item.CrystalType на CrystalChap , получается что-то такое: //Physical Damage AddTooltipItemOption(94, String(GetPhysicalDamage(Item.WeaponType, Item.SlotBitType, CrystalChap, Item.Enchanted, Item.PhysicalDamage)), true, true, false); //Masical Damage AddTooltipItemOption(98, String(GetMagicalDamage(Item.WeaponType, Item.SlotBitType, CrystalChap, Item.Enchanted, Item.MagicalDamage)), true, true, false); Готово.
  24. Инфа более актуальна для ИЛа, но подойдет и для хроник выше. По данному примеру забиндить можно все что угодно, от вызова окна вставки ЛСа и релога без окна подтверждения, до байпассов с админ командами для отладки (зачем такое делать - не знаю, просто привожу примеры ). Первым делом идем в xdat, Interface\Shortcuts\GamingStateShortcutи выбираем клавишу/сочетание клавиш, например вот так: <ShortcutItem Key="IK_Space">SelfTarget</ShortcutItem> Таким образом мы забиндим на пробел взятие себя в таргет. Или так: <ShortcutItem Key="IK_Space" SubKey1="IK_Alt">SelfTarget</ShortcutItem> Теперь нужно для селф таргета нужно зажать альт и клацнуть пробел (а удобно-то как будет, рекомендую). Коды клавиш иногда очевидны ( IK_F1, IK_B, IK_Enter), а иногда не очень, на всякий случай: Далее нужно описать саму команду "SelfTarget". Самый простой вариант - залезть в скрипты Interface\Classes\Shortcut найти там function HandleShortcutCommand( String a_Param ) и добавить: case "SelfTarget": RequestSelfTarget(); break; Но, разумеется, вставить команду можно в любой класс, но тогда Вам придется создать в нем: function OnEvent( int a_EventID, String a_Param ) { switch( a_EventID ) { case EV_ShortcutCommand: HandleShortcutCommand( a_Param ); break; } } а так же сам хэндлер: function HandleShortcutCommand( String a_Param ) { local String Command; if( ParseString( a_Param, "Command", Command ) ) { switch( Command ) { case "SelfTarget": RequestSelfTarget(); break; } } }
  25. Как гордый колупатель именно этого сурса, заявляю, что разница таки есть, с квестами беда, тадапаком тоже, мобы фиг пойми где заспавнены, особенно в некрополях - половина за текстурами или в коридорах, мелких неприятностей даже для 4 человек там хватает. )
×
×
  • Создать...