Некоторые вопросы о Summon

Статус
В этой теме нельзя размещать новые ответы.

database

Пляшущий с бубном
Участник
Сообщения
54
Розыгрыши
0
Решения
1
Репутация
0
Реакции
7
Баллы
210
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
l2j
Всем привет ребята. У меня несколько вопросов, по поводу саммонеров. Есть некоторые ошибки, которые не могу понять как исправить.

Вопрос 1: Полоска при вызове саммонеров. Где она обрабатывается? Потому что если я вызываю саммонера, полоска есть, а при вызове петов - нет. (хотя должна быть)

Вопрос 2: Окошко с информацией о саммонере и ошибка HP и MP (можно посмотреть в скриншоте). Я уже создавал тему об этой ошибке, но мне привели пример с PTS. Окошко например у петов нормально отображается с HP и MP, а вот у саммонеров - нет. Пологаю, что еще может быть проблема в самом клиенте, но не точно.

Не бейте меня сильно, правда. Возможно это исправить не трудно, но если кто знает, помогите пожалуйста. Заранее благодарен за помощь.

P.S - Делаю чисто для себя, как хобби.
 

Вложения

  • summon.webp
    summon.webp
    32,7 КБ · Просмотры: 24
  • PetWindow.webp
    PetWindow.webp
    12,9 КБ · Просмотры: 24
ну по хпмп я скидывал код интерфейса, который обрабатывает информацию от сервера:

C#:
const NPET_SMALLBARSIZE = 85;
const NPET_BARHEIGHT = 12;

//HP바 갱신
function UpdateHPBar(int Value, int MaxValue)
{
    local int Size;
    Size = 0;
    if (MaxValue>0)
    {
        Size = NPET_SMALLBARSIZE;
        if (Value<MaxValue)
        {
            Size = NPET_SMALLBARSIZE* Value / MaxValue;
        }
    }
    class'UIAPI_WINDOW'.static.SetWindowSize("PetWnd.texHP", Size, NPET_BARHEIGHT);
}

Есть константа 85 - это дефолтный размер полоски в пикселях, показывающий 100%. Предположим, что в функцию пришло 2 цифры 2476 (текущее) 3287 (максимальное). Что происходит дальше?

C#:
if(2476 < 3287)
{
    Size = 85 * 2476 / 3287; //64.0274 (64)
}

по формуле разница между 85 и 64 - 32%
равно как и между 3287 и 2476 - тоже 32%.
Следовательно текстура полоски сожмётся от исходного размера в 85px до 64px, что будет означать разницу в 32% между текущим и максимальным значением

Всё доступно, всё логично, всё работает. Интерфейс интерлюдика стар как дерьмо мамонта, вокруг тысячи серверов где всё работает корректно. Изучайте проблему, у вас она явно есть.
 
  • Мне нравится
Реакции: kick
Благодарю, а что по поводу полоски вызова саммона. У саммонов при вызове она есть, а у петов нет. Тоже явно проблема.
 
Благодарю, а что по поводу полоски вызова саммона. У саммонов при вызове она есть, а у петов нет. Тоже явно проблема.
сложно сходу сказать
но все полоски над башкой для клиентов уровня интерлюдика - это захардкоренная в dll логика, в новых хоть в каком то виде есть headdisplay в xdat

но очевидно одно - триггерится от пакета с сервера, работает думаю +- аналогично любой шкале: cur\max value и в путь, показывать скока чего осталось
 
Последнее редактирование:
  • Мне нравится
Реакции: kick
В случае с петом скорее всего пакет SetupGauge не шлется с сервера - он эту полоску показывает
 
  • Мне нравится
Реакции: kick
Решение
Большое спасибо за помощь. Действительно не был прописан пакет SetupGauge
 
  • Мне нравится
Реакции: kick
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Назад
Сверху Снизу