Подсветка таргета, начиная GOD и выше

Otto-Dix

Путник
Пользователь
Сообщения
28
Розыгрыши
0
Репутация
0
Реакции
2
Баллы
0
Подскажите с свечением подсветки таргета. Поднимал HF, но так и не могу понять где шлется оно. Пакеты по таргетам все перелопатил. Shot00029.gif
 
Последнее редактирование:
А по какой причине тогда ее может не быть?
 
Не клиент 100%, в другой сборке все в порядке.
 
Тогда смотрите в сторону клиент пакетов и укажите хронику
 
Но вам сказал разработчик, который работает на год+ хрониках и сам поднимал.
это чисто клиентская плюшка, сервер за это не отвечает
Так что да возможно, что то с клиентом возможно
 
Да в клиенте она. Сколько уже шар было на эту тему, и все в клиенте менялись. Скорее всего это текстура, и систем особой роли не играет.
 
Ну например в GOD и выше есть текстура телепортов и квестов которая прописывается в NpcInstance

public void showTeleportList(Player player, TeleportLocation[] list)
{
StringBuilder sb = new StringBuilder();
sb.append("&$556;").append("<br><br>");

if ((list != null) && player.getPlayerAccess().UseTeleport)
{
for (TeleportLocation tl : list)
{
if (tl.getItem().getItemId() == ItemTemplate.ITEM_ID_ADENA)
{
double pricemod = player.getLevel() <= Config.GATEKEEPER_FREE ? 0. : Config.GATEKEEPER_MODIFIER;

if ((tl.getPrice() > 0) && (pricemod > 0))
{
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);

if (((day == Calendar.SUNDAY) || (day == Calendar.SATURDAY)) && ((hour >= 20) && (hour <= 12)))
{
pricemod /= 2;
}
}

sb.append("<Button ALIGN=LEFT ICON=\"TELEPORT\" action=\"bypass -h scripts_Util:Gatekeeper ").append(tl.getX()).append(' ').append(tl.getY()).append(' ').append(tl.getZ());

if (tl.getCastleId() != 0)
{
sb.append(' ').append(tl.getCastleId());
}

sb.append(' ').append((long) (tl.getPrice() * pricemod)).append(" @811;F;").append(tl.getName()).append("\">").append(HtmlUtils.htmlNpcString(tl.getName()));

if ((tl.getPrice() * pricemod) > 0)
{
sb.append(" - ").append((long) (tl.getPrice() * pricemod)).append(' ').append(HtmlUtils.htmlItemName(ItemTemplate.ITEM_ID_ADENA));
}

sb.append("</Button>");
}
else
{
sb.append("<Button ALIGN=LEFT ICON=\"TELEPORT\" action=\"bypass -h scripts_Util:Gatekeeper ").append(tl.getX()).append(' ').append(tl.getY()).append(' ').append(tl.getZ()).append(' ').append(tl.getPrice()).append(' ').append(tl.getItem().getItemId()).append(" @811;F;\">").append(HtmlUtils.htmlNpcString(tl.getName())).append(" - ").append(tl.getPrice()).append(' ').append(HtmlUtils.htmlItemName(tl.getItem().getItemId())).append("</Button>");
}
}
}
else
{
sb.append("No teleports available for you.");
}

NpcHtmlMessage html = new NpcHtmlMessage(player, this);
html.setHtml(Strings.bbParse(sb.toString()));
player.sendPacket(html);
}

Тогда вопрос другой, так называется текстура и в каком паке она?

Предпологаю что тут аналогично и с таргетом.
 
Ну например в GOD и выше есть текстура телепортов и квестов которая прописывается в NpcInstance

public void showTeleportList(Player player, TeleportLocation[] list)
{
StringBuilder sb = new StringBuilder();
sb.append("&$556;").append("<br><br>");

if ((list != null) && player.getPlayerAccess().UseTeleport)
{
for (TeleportLocation tl : list)
{
if (tl.getItem().getItemId() == ItemTemplate.ITEM_ID_ADENA)
{
double pricemod = player.getLevel() <= Config.GATEKEEPER_FREE ? 0. : Config.GATEKEEPER_MODIFIER;

if ((tl.getPrice() > 0) && (pricemod > 0))
{
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);

if (((day == Calendar.SUNDAY) || (day == Calendar.SATURDAY)) && ((hour >= 20) && (hour <= 12)))
{
pricemod /= 2;
}
}

sb.append("<Button ALIGN=LEFT ICON=\"TELEPORT\" action=\"bypass -h scripts_Util:Gatekeeper ").append(tl.getX()).append(' ').append(tl.getY()).append(' ').append(tl.getZ());

if (tl.getCastleId() != 0)
{
sb.append(' ').append(tl.getCastleId());
}

sb.append(' ').append((long) (tl.getPrice() * pricemod)).append(" @811;F;").append(tl.getName()).append("\">").append(HtmlUtils.htmlNpcString(tl.getName()));

if ((tl.getPrice() * pricemod) > 0)
{
sb.append(" - ").append((long) (tl.getPrice() * pricemod)).append(' ').append(HtmlUtils.htmlItemName(ItemTemplate.ITEM_ID_ADENA));
}

sb.append("</Button>");
}
else
{
sb.append("<Button ALIGN=LEFT ICON=\"TELEPORT\" action=\"bypass -h scripts_Util:Gatekeeper ").append(tl.getX()).append(' ').append(tl.getY()).append(' ').append(tl.getZ()).append(' ').append(tl.getPrice()).append(' ').append(tl.getItem().getItemId()).append(" @811;F;\">").append(HtmlUtils.htmlNpcString(tl.getName())).append(" - ").append(tl.getPrice()).append(' ').append(HtmlUtils.htmlItemName(tl.getItem().getItemId())).append("</Button>");
}
}
}
else
{
sb.append("No teleports available for you.");
}

NpcHtmlMessage html = new NpcHtmlMessage(player, this);
html.setHtml(Strings.bbParse(sb.toString()));
player.sendPacket(html);
}

Тогда вопрос другой, так называется текстура и в каком паке она?

Предпологаю что тут аналогично и с таргетом.
К телепортерам вы добавили иконки и всё, так же можно сделать и ниже, а вообще данный участок кода стоит переписать весь и выпилить из ядра
 
Смотрим в функцию установки таргета, там изменён или порядок пакетов, или структура одного из них...чес слово не помню) в общем перелопатить установку таргета на объект.
 
Спасибо, действительно в player изменилось.

Не актуально сделал.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
  • Мне нравится
Реакции: kick
Ну например в GOD и выше есть текстура телепортов и квестов которая прописывается в NpcInstance
это просто новый вид ссылок-кнопок ввели с доп параметром для показа иконки перед текстом ссылки.
и не просто в ГоД, а в этрее и выше (в эпизодионе вроде еще не было)
и принимаются там всего 4 варианта для значков - NORMAL, TELEPORT, QUEST, RETURN
 
Вот так всегда "Сделал"
Решение в студию (не будь "слоупоком")

Player.java
@Override
public void setTarget(GameObject newTarget) {
// Check if the new target is visible
if ((newTarget != null) && !newTarget.isVisible()) {
newTarget = null;
}

Party party = getParty();



GameObject oldTarget = getTarget();

if (oldTarget != null) {
if (oldTarget.equals(newTarget)) {
return;
}

// Remove the L2Player from the _statusListener of the old target if it was a L2Character
if (oldTarget.isCreature()) {
((Creature) oldTarget).removeStatusListener(this);
}

broadcastPacket(new TargetUnselected(this));
}

if (newTarget != null) {
// Add the L2Player to the _statusListener of the new target if it's a L2Character
if (newTarget.isCreature()) {
((Creature) newTarget).addStatusListener(this);
}
sendPacket(new MyTargetSelected(newTarget.getObjectId(), 0));
broadcastPacket(new TargetSelected(getObjectId(), newTarget.getObjectId(), getLoc()));
}

super.setTarget(newTarget);
}
 
Последнее редактирование:
это просто новый вид ссылок-кнопок ввели с доп параметром для показа иконки перед текстом ссылки.
и не просто в ГоД, а в этрее и выше (в эпизодионе вроде еще не было)
и принимаются там всего 4 варианта для значков - NORMAL, TELEPORT, QUEST, RETURN
Я про это знаю, просто привел пример. Как раз в эпизоде это добавили, в линде небыло.
 
ну я хз когда точно, т.к. сам с линда сразу на этрею перескочил в плане ковыряния сервера.
 
  • Мне нравится
Реакции: kick
MyTargetSelected пакет s2c (если кому интересно).
 
Назад
Сверху Снизу