Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Есть этот пакетреализуй C_EX_UPGRADE_PROB / EX_UPGRADE_PROB
package org.l2jmobius.gameserver.network.clientpackets.equipmentupgrade;
import org.l2jmobius.gameserver.data.holders.EquipmentUpgradeHolder;
import org.l2jmobius.gameserver.data.xml.EquipmentUpgradeData;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
import org.l2jmobius.gameserver.network.serverpackets.equipmentupgrade.ExUpgradeProb;
/**
* @author Lonely
*/
public class RequestUpgradeProb extends ClientPacket
{
private int _upgradeId;
@Override
protected void readImpl()
{
_upgradeId = readInt();
}
@Override
protected void runImpl()
{
final Player player = getPlayer();
if (player == null)
{
return;
}
final EquipmentUpgradeHolder holder = EquipmentUpgradeData.getInstance().getUpgrade(_upgradeId);
if (holder == null)
{
return;
}
player.sendPacket(new ExUpgradeProb(_upgradeId, 100));
}
}
Добавь дополнительно логированиеЕсть этот пакет
Java:package org.l2jmobius.gameserver.network.clientpackets.equipmentupgrade; import org.l2jmobius.gameserver.data.holders.EquipmentUpgradeHolder; import org.l2jmobius.gameserver.data.xml.EquipmentUpgradeData; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.equipmentupgrade.ExUpgradeProb; /** * @author Lonely */ public class RequestUpgradeProb extends ClientPacket { private int _upgradeId; @Override protected void readImpl() { _upgradeId = readInt(); } @Override protected void runImpl() { final Player player = getPlayer(); if (player == null) { return; } final EquipmentUpgradeHolder holder = EquipmentUpgradeData.getInstance().getUpgrade(_upgradeId); if (holder == null) { return; } player.sendPacket(new ExUpgradeProb(_upgradeId, 100)); } }
EX_UPGRADE_PROB(0x2D6, RequestUpgradeProb::new, ConnectionState.IN_GAME),
добавил логер в RequestUpgradeProb перед отсылки сервер пакетаДобавь дополнительно логирование
А в датке что?добавил логер в RequestUpgradeProb перед отсылки сервер пакета
LOGGER.warning(player.getName() + ": ID send successful = " + _upgradeId);
player.sendPacket(new ExUpgradeProb(_upgradeId, 100));
получил значение 1
DarkSummoner: ID send successful = 1
По идее он должен подстовлят ид процесса с хмл, для конкретного случая что на картинке, показывает правильноА в датке что?
package org.l2jmobius.gameserver.network.serverpackets.equipmentupgrade;
import org.l2jmobius.commons.network.WritableBuffer;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.ServerPackets;
import org.l2jmobius.gameserver.network.serverpackets.ServerPacket;
/**
* @author Lonely
*/
public class ExUpgradeProb extends ServerPacket
{
private final int _upgradeId;
private final double _probability;
public ExUpgradeProb(int upgradeId, double probability)
{
_upgradeId = upgradeId;
_probability = probability;
}
@Override
public void writeImpl(GameClient client, WritableBuffer buffer)
{
ServerPackets.EX_UPGRADE_PROB.writeId(this, buffer);
buffer.writeInt(_upgradeId);
buffer.writeInt((int) Math.floor(_probability * 10000));
}
}
это больше для работы без НПСа вроде, по доступу с инвентаряВ EnterWorld посылай
activeChar.sendPacket(new ExShowUpgradeSystemNormal(0, 1)); оно инициализирует апгрейды в клиенте, так и на оффе судя по сниффам.
Нее, не помогает.В EnterWorld посылай
activeChar.sendPacket(new ExShowUpgradeSystemNormal(0, 1)); оно инициализирует апгрейды в клиенте, так и на оффе судя по сниффам.
EX_USER_RESTART_DEFAULT_STATUS(0xFE, 0x3BF),
EX_AGATHION_CHANGE_SHAPE(0xFE, 0x3C0),
EX_MATCHINGINZONE_TEAMBATTLE_PVPVE_ITEMINFO(0xFE, 0x3C1),
EX_CHARACTER_STYLE_UNREGIST(0xFE, 0x3C2),
EX_UPGRADE_PROB(0xFE, 0x3C3),
EX_PARTY_MATCHING_LIST_OUST(0xFE, 0x3C4),
EX_DAMAGE_POPUP_MULTI_HIT(0xFE, 0x3C5),
EX_ALLIANCE_CREATE(0xFE, 0x3C6),
EX_PROB_CONSUME_SKILL_LIST(0xFE, 0x3C7),
EX_MAX(0xFE, 0x3C8);
Проверь опкод у серверного пакета
Код:EX_USER_RESTART_DEFAULT_STATUS(0xFE, 0x3BF), EX_AGATHION_CHANGE_SHAPE(0xFE, 0x3C0), EX_MATCHINGINZONE_TEAMBATTLE_PVPVE_ITEMINFO(0xFE, 0x3C1), EX_CHARACTER_STYLE_UNREGIST(0xFE, 0x3C2), EX_UPGRADE_PROB(0xFE, 0x3C3), EX_PARTY_MATCHING_LIST_OUST(0xFE, 0x3C4), EX_DAMAGE_POPUP_MULTI_HIT(0xFE, 0x3C5), EX_ALLIANCE_CREATE(0xFE, 0x3C6), EX_PROB_CONSUME_SKILL_LIST(0xFE, 0x3C7), EX_MAX(0xFE, 0x3C8);
// 541
EX_USER_RESTART_DEFAULT_STATUS(0xFE, 0x3BF),
EX_AGATHION_CHANGE_SHAPE(0xFE, 0x3C0),
EX_MATCHINGINZONE_TEAMBATTLE_PVPVE_ITEMINFO(0xFE, 0x3C1),
EX_CHARACTER_STYLE_UNREGIST(0xFE, 0x3C2),
EX_UPGRADE_PROB(0xFE, 0x3C3),
EX_PARTY_MATCHING_LIST_OUST(0xFE, 0x3C4),
EX_DAMAGE_POPUP_MULTI_HIT(0xFE, 0x3C5),
EX_ALLIANCE_CREATE(0xFE, 0x3C6),
EX_PROB_CONSUME_SKILL_LIST(0xFE, 0x3C7),
EX_MAX(0xFE, 0x3C8);
Также всё
Код:// 541 EX_USER_RESTART_DEFAULT_STATUS(0xFE, 0x3BF), EX_AGATHION_CHANGE_SHAPE(0xFE, 0x3C0), EX_MATCHINGINZONE_TEAMBATTLE_PVPVE_ITEMINFO(0xFE, 0x3C1), EX_CHARACTER_STYLE_UNREGIST(0xFE, 0x3C2), EX_UPGRADE_PROB(0xFE, 0x3C3), EX_PARTY_MATCHING_LIST_OUST(0xFE, 0x3C4), EX_DAMAGE_POPUP_MULTI_HIT(0xFE, 0x3C5), EX_ALLIANCE_CREATE(0xFE, 0x3C6), EX_PROB_CONSUME_SKILL_LIST(0xFE, 0x3C7), EX_MAX(0xFE, 0x3C8);
Если перевести эти значения в hexdecimal получаются совсем другие пакеты или я что то туплю (это точно из меин версии)
На мейне к примеру, датка выглядит вот так (прикрепил txt)Если перевести эти значения в hexdecimal получаются совсем другие пакеты или я что то туплю (это точно из меин версии)
к примеру
EX_UPGRADE_PROB = 1221 получается EX_UPGRADE_PROB(0xFE, 0x4C5) <-- с этим тоже не работает
Потом включил дебагер пакетов при клике на итем трогает тоько эти 2 пакета
[08/04 22:25:53] [C EX] RequestUpgradeProb
[08/04 22:25:53] [S EX] ExUpgradeProb
[08/04 22:25:53] [C EX] RequestUpgradeProb
[08/04 22:25:53] [S EX] ExUpgradeProb
ex пакеты вот так:Если перевести эти значения в hexdecimal получаются совсем другие пакеты или я что то туплю (это точно из меин версии)
к примеру
EX_UPGRADE_PROB = 1221 получается EX_UPGRADE_PROB(0xFE, 0x4C5) <-- с этим тоже не работает
В пакетах нет различия, что у вас что у меняНа мейне к примеру, датка выглядит вот так (прикрепил txt)
Сообщение объединено:ex пакеты вот так:
Сообщение объединено:Gigi прикрепил еще датку UpgradeSystem_Normal_ClassicAden.dat
можно в структуре убрать форматирование по енумерации или в редакторе выключить замену по енумерацииВ пакетах нет различия, что у вас что у меня
Может и в правда в датнике дело?
заметил только одно расхождение, при сохранении датника UpgradeSystem
мой эдитор запоминает так
в место applycountry={0;3;8;9;12;14;1;4}
переводит applycountry={kr;tw;ru;eu;pl;es;e;cn}
можно с вашим датником UpgradeSystem.dat попробовать
Отключилможно в структуре убрать форматирование по енумерации или в редакторе выключить замену по енумерации
У тебя неправильный опкод, если судить по названию темы, у тебя 542 протокол, а тут 541, там был сдвиг после нескольких патчейТакже всё
Код:// 541 EX_USER_RESTART_DEFAULT_STATUS(0xFE, 0x3BF), EX_AGATHION_CHANGE_SHAPE(0xFE, 0x3C0), EX_MATCHINGINZONE_TEAMBATTLE_PVPVE_ITEMINFO(0xFE, 0x3C1), EX_CHARACTER_STYLE_UNREGIST(0xFE, 0x3C2), EX_UPGRADE_PROB(0xFE, 0x3C3), EX_PARTY_MATCHING_LIST_OUST(0xFE, 0x3C4), EX_DAMAGE_POPUP_MULTI_HIT(0xFE, 0x3C5), EX_ALLIANCE_CREATE(0xFE, 0x3C6), EX_PROB_CONSUME_SKILL_LIST(0xFE, 0x3C7), EX_MAX(0xFE, 0x3C8);