Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Npc hp_bar
#1
Как реализовать что бы для одних игроков нпц был автоатакейбл > хп полоска была, а для других просто как нпц.
Проблема заключается в том, что если в клиенте включить отображение hp у нпц, то игрокам которые должны видеть без полоски хп, полоска будет но пустая (серая). На пару проектах видел уже такое, и там явно клиент не трогали, а как-то серверно решили.
Есть идеи?
Ответ
#2
В пакете NpcInfo.
[Изображение: UmFAIVnGT4CYqKPERfM7yQ.png]

Скорее всего в твоей сборке тоже самое.
Посмотри метод isAutoAttackable в модельке NPC.
Чет похожее будет:
[Изображение: ud6SrhuQQ9qJAwkyDg0nIA.png]
Ответ
#3
moveton Написал:В пакете NpcInfo.
[Изображение: UmFAIVnGT4CYqKPERfM7yQ.png]

Скорее всего в твоей сборке тоже самое.
Посмотри метод isAutoAttackable в модельке NPC.
Чет похожее будет:
[Изображение: ud6SrhuQQ9qJAwkyDg0nIA.png]
Про это в курсе, но вот как раз когда false, то игроки (защита) видят
[Изображение: e94a74409c.png]
То есть class_lim_? включён поэтому полоску всё равно показывает, а хотелось бы что бы чисто было, без вот этой пустой полоски для одних, и с полоской для других (атака).
Ответ
#4
Вариантов нету?
Ответ
#5
Shell Написал:Про это в курсе, но вот как раз когда false, то игроки (защита) видят
[Изображение: e94a74409c.png]
То есть class_lim_? включён поэтому полоску всё равно показывает, а хотелось бы что бы чисто было, без вот этой пустой полоски для одних, и с полоской для других (атака).

При false должен отображаться как обычный НПС и при клике вызываться стандартное меню диалога.
Ответ
#6
flopix Написал:При false должен отображаться как обычный НПС и при клике вызываться стандартное меню диалога.
Всё так и работает, полочка есть у других хп, а у других как нпц при клике и тд. Но вот полоска эта всё равно есть(
Ответ
#7
Нужно редактировать interface.u в клиенте

В моем например есть такие строки:
PHP код:
<?php 
//if ((info.bNpc && !info.bPet && info.bCanBeAttacked ) ||
if ((info.bNpc && !info.bPet && bIsHPShowableNPC) ||
(
PlayerID>0 && m_TargetID == PlayerID) ||
(
info.bNpc && info.bPet && m_TargetID == PetID) ||
(
info.bNpc && bIsHPShowableNPC) )
{
Если одно из этих условий сработает то ниже вызывается
"bShowHPBar = true;"

Обратите внимение на закоментированную строку
"//if ((info.bNpc && !info.bPet && info.bCanBeAttacked ) ||"

Если вторую строку
"if ((info.bNpc && !info.bPet && bIsHPShowableNPC)"
заменить на нее то скорее всего будет так как вам нужно, то есть отображать HP бар только для НПС для которых поднят флаг "bCanBeAttacked".

Но тогда нужно в dat файле выставить для этого НПС значение 0 для "class_lim_?"
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)