Когда вышло на ПТС 2 обновление - попробовал поднять пакетку до уровня создал-вошел
База, которая бралась для поднятия - Чистая папка system для 447 протокола
можнаJava:if (entry.getKey().getClientId() == StatusUpdateType.CUR_HP.getClientId() || entry.getKey().getClientId() == StatusUpdateType.MAX_HP.getClientId()) { writeLong(entry.getValue()); } else { writeInt(entry.getValue()); }
А покрасивее можно? Посмотреть вложение 74433
for (Entry<StatusUpdateType, Integer> entry : _updates.entrySet())
{
writeByte(entry.getKey().getClientId());
switch (entry.getKey())
{
case CUR_HP:
case MAX_HP:
{
writeLong(entry.getValue());
break;
}
default:
{
writeInt(entry.getValue());
}
}
}
Все еще длинное, учитываяможна
Java:for (Entry<StatusUpdateType, Integer> entry : _updates.entrySet()) { writeByte(entry.getKey().getClientId()); switch (entry.getKey()) { case CUR_HP: case MAX_HP: { writeLong(entry.getValue()); break; } default: { writeInt(entry.getValue()); } } }
<fail unless="JDK17.present" message="Java 17 is required. But your version is Java ${ant.java.version} and probably JDK is not installed." />
Все еще длинное, учитывая
XML:<fail unless="JDK17.present" message="Java 17 is required. But your version is Java ${ant.java.version} and probably JDK is not installed." />
for (Entry<StatusUpdateType, Integer> entry : _updates.entrySet())
{
writeByte(entry.getKey().getClientId());
switch (entry.getKey())
{
case CUR_HP:
case MAX_HP:
{
writeLong(entry.getValue());
continue;
}
}
writeInt(entry.getValue());
}
private final Collection<IAttribute> _attributes;
public interface IAttribute {
void write(ByteBuffer buf);
}
public void addAttribute(CharParamType id, int value) {
_attributes.add(new Attribute(id, value));
}
public void addAttribute64(CharParamType id, long value) {
_attributes.add(new Attribute64(id, value));
}
@Override
protected void writeImpl(GameClient client, ByteBuffer buf) {
writeD(buf, _objectId);
writeD(buf, _attackObjectId);
writeC(buf, _visible.ordinal());
writeC(buf, _attributes.size());
for (IAttribute temp : _attributes)
temp.write(buf);
}
record Attribute(CharParamType id, int value) implements IAttribute {
public void write(ByteBuffer buf) {
writeC(buf, id.ordinal());
writeD(buf, value);
}
}
record Attribute64(CharParamType id, long value) implements IAttribute {
public void write(ByteBuffer buf) {
writeC(buf, id.ordinal());
writeQ(buf, value);
}
}
а, ну это древний код мобиуса, который он говорит "избавляет от гавнокода лыжи"только вот зачем тут мапа и в ней Integer который уйдет в минус для хп боссов.
в копилку как можно сделать нормально.
Java:private final Collection<IAttribute> _attributes; public interface IAttribute { void write(ByteBuffer buf); } public void addAttribute(CharParamType id, int value) { _attributes.add(new Attribute(id, value)); } public void addAttribute64(CharParamType id, long value) { _attributes.add(new Attribute64(id, value)); } @Override protected void writeImpl(GameClient client, ByteBuffer buf) { writeD(buf, _objectId); writeD(buf, _attackObjectId); writeC(buf, _visible.ordinal()); writeC(buf, _attributes.size()); for (IAttribute temp : _attributes) temp.write(buf); } record Attribute(CharParamType id, int value) implements IAttribute { public void write(ByteBuffer buf) { writeC(buf, id.ordinal()); writeD(buf, value); } } record Attribute64(CharParamType id, long value) implements IAttribute { public void write(ByteBuffer buf) { writeC(buf, id.ordinal()); writeQ(buf, value); } }
а можно просто значение в мапе сделать longтолько вот зачем тут мапа и в ней Integer который уйдет в минус для хп боссов.
в копилку как можно сделать нормально.
Java:private final Collection<IAttribute> _attributes; public interface IAttribute { void write(ByteBuffer buf); } public void addAttribute(CharParamType id, int value) { _attributes.add(new Attribute(id, value)); } public void addAttribute64(CharParamType id, long value) { _attributes.add(new Attribute64(id, value)); } @Override protected void writeImpl(GameClient client, ByteBuffer buf) { writeD(buf, _objectId); writeD(buf, _attackObjectId); writeC(buf, _visible.ordinal()); writeC(buf, _attributes.size()); for (IAttribute temp : _attributes) temp.write(buf); } record Attribute(CharParamType id, int value) implements IAttribute { public void write(ByteBuffer buf) { writeC(buf, id.ordinal()); writeD(buf, value); } } record Attribute64(CharParamType id, long value) implements IAttribute { public void write(ByteBuffer buf) { writeC(buf, id.ordinal()); writeQ(buf, value); } }
для аж целых двух значенийа можно просто значение в мапе сделать long
live? :0 Awakening with 130+ level?Live version maybe? XD
where you can download system and Client thanksMrKirill1232 added a new resource:
[Essence 464] High Elves [Char Creation / Enter World] - Raised resources based on l2jmobius from protocol 447 to 464
Find out more about this resource...
это не Ева и не кинжал.Так. Что-то немного не понял это Проэкт Ева или Острие Кинжала?
создавать XML файлы и заполнять их используя информацию с клиента/дат.а что делать если сервер не видит скилы ?) как это исправить можете подсказать ?
you can compare this source files withU remember the files u edit to support this new protocol?
Your source is working for log in LIVE, i just dont know what files i have to change to remove the image in front, when i try with my own source
Посмотреть вложение 74461
by using WinMerge and fill the differences in your server.База, которая бралась для поднятия - Чистая папка system для 447 протокола
если не трудно можешь подсказать с какого файла в клиент дат брать информацию или прикрепить ссылку на манул, спасибоэто не Ева и не кинжал.
Ева это грубо говоря ессенс с другим датапаком.
Сейчас существует 2 версии ессенса:
- High Elves;
- Project Eva;
Но, а это просто ессенс 447 на 464 протоколе.
создавать XML файлы и заполнять их используя информацию с клиента/дат.
Повторюсь - это сервер, на котором просто поднята пакетка, тут ничего не сделано на 464 кроме возможности создания расы и входа в мир с корректным отображением некоторых элементов.
Поддержка ни со стороны мобиус, ни с моей стороны этого чуда не будет осуществляться.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?