[MAYDAY] Decoy и отображение хп.

Elastic Heart

Путник
Пользователь
За заслуги перед форумом
Преподаватель
За веру и верность форуму
Разработчик
За знание датапака
За знание ядра
Сообщения
216
Розыгрыши
0
Репутация
717
Реакции
112
Баллы
0
Всем добрый вечер. Собсно, тема касается больше год-девелоперов.
На зг очень давно проскакивала инфа от гайки, что клоны ножа и приманка арб\луков - это нпс, и отправлять для них нужно не CharInfo а NpcInfo (ExNpcInfo в моем случае), в котором шлется тип клона и object_id призывателя. Тогда я эту тему сразу же и запилил, но ОЧЕНЬ долго трахался с отображением хп у этого дермеца. В конечном итоге у клонов ножей мне удалось вывести хп:
image.png
Но с приманкой происходит просто п*здец!
image.png
Как я только не шаманил и не танцевал с бубном - все безуспешно. Есть у кого какие-нибудь идеи?

p.s. Совсем забыл: овероподобная основа.
 
Давно с этим не возился, но мб дело в curHP и maxHP? Еще как вариант, сравнить клонов ножей и обычного нпц. Ну и естественно изменения зафиксировать и методом перебора со здравым смыслом (яснопонятно, что дело не в цвете титула :D). Эпизодка?
 
Давно с этим не возился, но мб дело в curHP и maxHP? Еще как вариант, сравнить клонов ножей и обычного нпц. Ну и естественно изменения зафиксировать и методом перебора со здравым смыслом (яснопонятно, что дело не в цвете титула :D). Эпизодка?
Линдвиорчик 558.
Да я все пробовал. В клонах у меня отдельный объект для них, который наследует Playable, соответственно в этом классе я, помнится, наследовал makeStatusUpdate и все стало нормально. А для декоя используется залупа DecoyInstance которая наследует NpcInstance (в общем наркомания полная), че только не делал - х*й! :Stressed:
 
Линдвиорчик 558.
Да я все пробовал. В клонах у меня отдельный объект для них, который наследует Playable, соответственно в этом классе я, помнится, наследовал makeStatusUpdate и все стало нормально. А для декоя используется залупа DecoyInstance которая наследует NpcInstance (в общем наркомания полная), че только не делал - х*й! :Stressed:
Проще будет объединить их в один класс и просто определять тип клона как Decoy и DefaultClone (например).
Ну или отлови снифаком работающий и неработающий пакеты, либо, если не хочется возиться с ним, продебаж все write в лог.
 
Нр не хочет показывать так?
В наследнике от Playble все нормально так? И пакет нпсов там отправляется все норм ?
Да. Но я пробовал делать, чтобы DecoyInstance наследовал Playable, туда-сюда - никак.
 
Проще будет объединить их в один класс и просто определять тип клона как Decoy и DefaultClone (например).
Ну или отлови снифаком работающий и неработающий пакеты, либо, если не хочется возиться с ним, продебаж все write в лог.
Что-то в голову это не пришло, нужно попробовать.
 
Линдвиорчик 558.
Да я все пробовал. В клонах у меня отдельный объект для них, который наследует Playable, соответственно в этом классе я, помнится, наследовал makeStatusUpdate и все стало нормально. А для декоя используется залупа DecoyInstance которая наследует NpcInstance (в общем наркомания полная), че только не делал - х*й! :Stressed:
Дык просто переопредели отправку статуса и броадкасты на нужные, плюс лапшекод на вызовах. Быстрый и немного костыльный способ.
Еще можешь сделать так. Вынести всю работу с пакеткой (все бекэнд броадкасты) нафиг из классов моделей. Во-первых, так правильнее ИМХО, а во-вторых, там ты уже можешь плясать, как хочешь, при этом одной строчкой добиться нужного эффекта, и конструировать любые пакеты, включая с контролем отслеживания частоты отправки и т.д.
У меня, к примеру, в l2character, определены базовые методы контроля броадкаста:
Код:
  private FlowController<? extends L2Character> flowController;
   public FlowController<? extends L2Character> getFlowController() {
     if(flowController == null) {
       flowController = createFlowController();
     }
     return flowController;
   }
   
   protected FlowController<? extends L2Character> createFlowController() {
     FlowController<L2Character> flowController = new FlowController<>(this);
     flowController.add(new ActorStatusUpdateController<>(this));
     flowController.add(new ActorInfoController<>(this));
     return flowController;
   }

В наследниках, они могут переопределяться (игроки, суммоны). А в самом контроллере, просто есть методы для перебора уже конкретных реализаций броадкастеров (ActorStatusUpdateController, ActorInfoController, etc), которые следят за частотой броадкаста и изменении информации.
Если интересно, то отпиши в скуп, скину, как у меня сделана эта вся хрень.
 
Дык просто переопредели отправку статуса и броадкасты на нужные, плюс лапшекод на вызовах. Быстрый и немного костыльный способ.
Еще можешь сделать так. Вынести всю работу с пакеткой (все бекэнд броадкасты) нафиг из классов моделей. Во-первых, так правильнее ИМХО, а во-вторых, там ты уже можешь плясать, как хочешь, при этом одной строчкой добиться нужного эффекта, и конструировать любые пакеты, включая с контролем отслеживания частоты отправки и т.д.
У меня, к примеру, в l2character, определены базовые методы контроля броадкаста:
Код:
  private FlowController<? extends L2Character> flowController;
   public FlowController<? extends L2Character> getFlowController() {
     if(flowController == null) {
       flowController = createFlowController();
     }
     return flowController;
   }
  
   protected FlowController<? extends L2Character> createFlowController() {
     FlowController<L2Character> flowController = new FlowController<>(this);
     flowController.add(new ActorStatusUpdateController<>(this));
     flowController.add(new ActorInfoController<>(this));
     return flowController;
   }

В наследниках, они могут переопределяться (игроки, суммоны). А в самом контроллере, просто есть методы для перебора уже конкретных реализаций броадкастеров (ActorStatusUpdateController, ActorInfoController, etc), которые следят за частотой броадкаста и изменении информации.
Если интересно, то отпиши в скуп, скину, как у меня сделана эта вся хрень.
Да, интересно. Хочу разобраться в этом, утонуть по-глубже. )
 
Всем спасибо, решил проблему. Был не подходящий нпс: воткнул нпс от клона и все работает :Stressed:
Полный бред, короче.
image.png
 
Последнее редактирование:
Назад
Сверху Снизу