Can you tell me which source file and which client file I can modify this option?MrKirill1232 добавил(а) новый ресурс:
[Essence 464] High Elves [Char Creation / Enter World] - Поднятые с шары сурсы на базе l2jmobius с 447 до 464 протокола
Узнать больше об этом ресурсе...
Interface.uCan you tell me which source file and which client file I can modify this option?
Посмотреть вложение 74495
java\org\l2jmobius\gameserver\network\clientpackets\classchange
Compound does not workingMrKirill1232 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...
Compound does not working
Подскажи плез, призыв дерева(16013) у духа через саммон+аи как на мейне у альгизов? я сделал так,но на дереве нет абнормала+при спавне просадка на 1-2 сек до 1 фпсMrKirill1232 добавил(а) новый ресурс:
[Essence 464] High Elves [Char Creation / Enter World] - Поднятые с шары сурсы на базе l2jmobius с 447 до 464 протокола
Узнать больше об этом ресурсе...
Не знаю. Знаю только что там 3 деревца.Подскажи плез, призыв дерева(16013) у духа через саммон+аи как на мейне у альгизов? я сделал так,но на дереве нет абнормала+при спавне просадка на 1-2 сек до 1 фпс
I'm stuck on this part, can anyone really help me? I've done everything...Can you tell me which source file and which client file I can modify this option?
Посмотреть вложение 74495
number вместо инта решил бы ситуацию с итерацией мапы инт/лонг.только вот зачем тут мапа и в ней 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); } }
record не чем не отличается от класса. Мапа для хранения создает их больше ( класс Map.Entry на каждый ключ/ значение + объектnumber вместо инта решил бы ситуацию с итерацией мапы инт/лонг.
сейчас бы рекорды на каждый шаг итерации создавать, еще и в таком интенсивном обмене как этот пакет
--- java/org/l2jmobius/Config.java Sun Mar 17 13:15:49 2024
+++ java/org/l2jmobius/Config.java Sat May 11 14:36:20 2024
@@ -1217,50 +1217,65 @@
public static int NAME_COLOR_FOR_PVP_AMOUNT5;
public static String TITLE_FOR_PVP_AMOUNT1;
public static String TITLE_FOR_PVP_AMOUNT2;
public static String TITLE_FOR_PVP_AMOUNT3;
public static String TITLE_FOR_PVP_AMOUNT4;
public static String TITLE_FOR_PVP_AMOUNT5;
public static boolean CHAT_ADMIN;
- public static float[] PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_MAGICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_MAGICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_ATTACK_CRITICAL_CHANCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_ATTACK_CRITICAL_CHANCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_PHYSICAL_ATTACK_CRITICAL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_PHYSICAL_ATTACK_CRITICAL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_BLOW_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_BLOW_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_ENERGY_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_ENERGY_SKILL_DAMAGE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVE_ENERGY_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PVP_ENERGY_SKILL_DEFENCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] PLAYER_HEALING_SKILL_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] SKILL_MASTERY_CHANCE_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] EXP_AMOUNT_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
- public static float[] SP_AMOUNT_MULTIPLIERS = new float[ClassId.MAX_CLASS_ID + 1];
+ private static int CLASS_ID_MAX_CLASS;
+
+ static
+ {
+ try
+ {
+ Class.forName("org.l2jmobius.gameserver.enums.ClassId");
+ CLASS_ID_MAX_CLASS = ClassId.MAX_CLASS_ID + 1;
+ }
+ catch (ClassNotFoundException e)
+ {
+ CLASS_ID_MAX_CLASS = 0;
+ }
+ }
+
+ public static float[] PVE_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_MAGICAL_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_MAGICAL_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_MAGICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_MAGICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_MAGICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_SKILL_CRITICAL_CHANCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_SKILL_CRITICAL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_ATTACK_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_ATTACK_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_ATTACK_CRITICAL_CHANCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_ATTACK_CRITICAL_CHANCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_PHYSICAL_ATTACK_CRITICAL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_PHYSICAL_ATTACK_CRITICAL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_BLOW_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_BLOW_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_ENERGY_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_ENERGY_SKILL_DAMAGE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVE_ENERGY_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PVP_ENERGY_SKILL_DEFENCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] PLAYER_HEALING_SKILL_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] SKILL_MASTERY_CHANCE_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] EXP_AMOUNT_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
+ public static float[] SP_AMOUNT_MULTIPLIERS = new float[CLASS_ID_MAX_CLASS];
public static boolean MULTILANG_ENABLE;
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
public static String MULTILANG_DEFAULT;
public static boolean MULTILANG_VOICED_ALLOW;
public static boolean NOBLESS_MASTER_ENABLED;
public static int NOBLESS_MASTER_NPCID;
public static int NOBLESS_MASTER_LEVEL_REQUIREMENT;
Товарищи, я пришел сообщить вам не очень хорошие новости. К сожалению, над этой версией Essence невозможно работать, нам остаётся только дождаться официальной публикации от Высших Эльфов.
На изображении выше — официальный обзор L2J Mobius Essence 8.1 High Elves.
Восхитительно
Datapack error, inside ur gameserver/data search for CategoryData.xml, u need to add the highelf to the parametersПосмотреть вложение 75241
I came across an error when changing HighElf's class and I can't solve it... can anyone shed some light?
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?