Отоброжение статуса земель

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

Оливьешка

Путник
Пользователь
Сообщения
9
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
0
Хроники
  1. The 2nd Throne: Gracia
Исходники
Присутствуют
Сборка
L2jdev
Приветствую. Проблема такая, не отображает статус земель. Если захватить замок, тогда показывает только захваченный замок, остальные также. ГС загружается без ошибок. В чем может быть проблема?

26111

пс. сори за ошибку в названии темы.
 
В пакете отправляет только инфу о замках с имеющимися владельцами.
Хочешь чтобы показывало все - правь то что шлется в пакете ExReplyDominionInfo
Если конечно есть исходники от сборки и хватит познаний в яве.
 
  • Мне нравится
Реакции: kick
у замка должен быть владелец,что бы он попадал в лист флагов
если захвачено,допустим,только 2 замка - будет 2 замка с флагами
это нормально
 
Есть тег CODE!
у замка должен быть владелец,что бы он попадал в лист флагов
если захвачено,допустим,только 2 замка - будет 2 замка с флагами
это нормально
Никогда не замечал на серверах такое. Обычно всегда показывает и без владельцев, по крайней мере где я играл.

В пакете отправляет только инфу о замках с имеющимися владельцами.
Хочешь чтобы показывало все - правь то что шлется в пакете ExReplyDominionInfo
Если конечно есть исходники от сборки и хватит познаний в яве.
Исходники есть, знаний в java нисколько, но я быстро учусь.

package l2p.gameserver.serverpackets;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import l2p.gameserver.data.xml.holder.ResidenceHolder;
import l2p.gameserver.model.entity.residence.Dominion;

public class ExReplyDominionInfo extends L2GameServerPacket {

private List<TerritoryInfo> _dominionList = Collections.emptyList();

public ExReplyDominionInfo() {
List<Dominion> dominions = ResidenceHolder.getInstance().getResidenceList(Dominion.class);
_dominionList = new ArrayList<TerritoryInfo>(dominions.size());

for (Dominion dominion : dominions) {
if (dominion.getSiegeDate().getTimeInMillis() == 0) {
continue;
}

_dominionList.add(new TerritoryInfo(dominion.getId(), dominion.getName(), dominion.getOwner().getName(),
dominion.getFlags(), (int) (dominion.getSiegeDate().getTimeInMillis() / 1000L)));
}
}

@Override
protected void writeImpl() {
writeEx(0x92);
writeD(_dominionList.size());
for (TerritoryInfo cf : _dominionList) {
writeD(cf.id);
writeS(cf.terr);
writeS(cf.clan);
writeD(cf.flags.length);
for (int f : cf.flags) {
writeD(f);
}
writeD(cf.startTime);
}
}

private class TerritoryInfo {

public int id;
public String terr;
public String clan;
public int[] flags;
public int startTime;

public TerritoryInfo(int id, String terr, String clan, int[] flags, int startTime) {
this.id = id;
this.terr = terr;
this.clan = clan;
this.flags = flags;
this.startTime = startTime;
}
}
}
 
Ну вот по сути причина в этом
Java:
if (dominion.getSiegeDate().getTimeInMillis() == 0)
    continue;
пока замок не захватили - дата соответствующей осады территории не выставляется и равна 0.
а такие данные этим условием отбрасываются.
 
  • Мне нравится
Реакции: kick

    kick

    Баллов: 30
    30
Ну вот по сути причина в этом
Java:
if (dominion.getSiegeDate().getTimeInMillis() == 0)
    continue;
пока замок не захватили - дата соответствующей осады территории не выставляется и равна 0.
а такие данные этим условием отбрасываются.
Спасибо!
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

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