Сообщений: 102
Тем: 6
Зарегистрирован: Jun 2012
Репутация:
116
Gaikotsu Написал:хм, я обхожусь одним NpcInfo, просто в нем еще дополнительно шлется инфа о том, с какого объекта поблизости брать внешность и т.д. - с хозяина клона т.е.
это d следущее сразу за полем с флагом режима полета (isFlying)
притом для самого владельца клонов, клоны будут черно-белые (видимо чтобы хозяин сам себя среди клонов не потерял), а для других игроков от владельца никак отличаться не будут.
Ну это для линдвиора. Elastic распиливает эртею
Сообщений: 199
Тем: 0
Зарегистрирован: Jul 2013
Репутация:
348
BoneBreaker Написал:Ну это для линдвиора. Elastic распиливает эртею
elastic Написал:Не соглашусь. В пакете NpcInfo есть тип призываемого Npc. 1 - decoy, 2 - клон ножа. К тому же на офе, если выделить decoy в таргет, то там будет показываться хп, в CharInfo не передаются данные о хп. Но, как я уже написал, с decoy в этом плане у меня все отлично, а клоны "морозятся".
Или стоп: может NpcInfo должен отправляться только для призывателя, а для остальных CharInfo?
Ну значит либо проблема в флагах либо в нпцId
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
09-13-2014, 04:52 PM
(Сообщение последний раз редактировалось: 09-13-2014, 06:55 PM elastic.)
Gaikotsu Написал:хм, я обхожусь одним NpcInfo, просто в нем еще дополнительно шлется инфа о том, с какого объекта поблизости брать внешность и т.д. - с хозяина клона т.е.
это d следущее сразу за полем с флагом режима полета (isFlying)
притом для самого владельца клонов, клоны будут черно-белые (видимо чтобы хозяин сам себя среди клонов не потерял), а для других игроков от владельца никак отличаться не будут. По-началу все шло нормально, а потом...
Вот как раз-таки я сначала отправлял NpcInfo всем о клонах. Да, у меня они серые, все супер, но у других вот это:
У призывателя:
Что делать - ума не приложу. Приманка (decoy) работает на ура, с пакетом NpcInfo.
Добавлено через 44 секунды
BoneBreaker Написал:Ну это для линдвиора. Elastic распиливает эртею Основную работу я веду по линдвиору. Эртея так, параллельно, когда время позволяет.
Спасибо мелкору, у меня npcId равняется нулю :<
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
Народ сталкивался ли кто с проблемой когда меню клана полностью не активно, хоть я КЛ, вся инфа о клане выводиться нормально, Уровень\Название\Замок и тд.
Кому интересно пакеты Абилок(Епизодион):
RequestAcquireAbilityList
[SRC="java"]public class RequestAcquireAbilityList extends L2GameClientPacket
{
private List<SkillHolder> _skills;
@Override
protected void readImpl()
{
_skills = new ArrayList<>();
readD(); // Total size
for(int i = 0; i < 3; i++)
{
int size = readD();
for (int j = 0; j < size; j++) {
_skills.add(new SkillHolder(readD(), readD()));
}
}
}
@Override
protected void runImpl()
{
L2PcInstance player = getClient().getActiveChar();
if(player != null)
{
for(SkillHolder holder : _skills)
{
L2SkillLearn learn = SkillTreesData.getInstance().getAbilitySkill(holder.getSkillId(), holder.getSkillLvl());
if(learn == null)
{
_log.warn("SkillLearn " + holder.getSkillId() + "(" + holder.getSkillLvl() + ") not found!");
player.sendActionFailed();
break;
}
L2Skill skill = holder.getSkill();
if(skill == null)
{
_log.warn("SkillLearn " + holder.getSkillId() + "(" + holder.getSkillLvl() + ") not found!");
player.sendActionFailed();
break;
}
player.addSkill(skill, true);
}
player.sendPacket(new ExAcquireAPSkillList(player));
}
}
@Override
public String getType()
{
return "[C] D0:E9 RequestAcquireAbilityList";
}
}[/SRC]
ExAcquireAPSkillList
[SRC="java"]
public class ExAcquireAPSkillList extends L2GameServerPacket
{
public static final int LIMIT_POINTS = 16;
public static final long RESET_PRICE = 10000000;
public static final long POINT_PRICE = 250000000;
private long _price;
private int _ap, _points;
private boolean _enable;
private List<L2Skill> _skills;
public ExAcquireAPSkillList(L2PcInstance activeChar)
{
_ap = activeChar.getAp();
_price = (int) Math.ceil(_ap / 4D) * POINT_PRICE;
_points = activeChar.getUsedAbilityPoints();
_skills = activeChar.getAbilitySkills();
_enable = !activeChar.isSubClassActive() && activeChar.getLevel() >= 99 && activeChar.isNoble(); // TODO: Доделать проверки
}
@Override
protected void writeImpl()
{
writeD(_enable); // Неизвестно(возможно флаг активности)
writeQ(RESET_PRICE); // Цена сброса очков
writeQ(_price); // Цена покупки очков
writeD(LIMIT_POINTS); // Максимальное количество очков
writeD(_ap); // Текущее количество очков
writeD(_points); // Сколько очков использовано
writeD(_skills.size());
for (L2Skill skill : _skills)
{
writeD(skill.getId()); // выученый скилл
writeD(skill.getLevel()); // выученый уровень
}
}
}
[/SRC]
Сообщений: 199
Тем: 0
Зарегистрирован: Jul 2013
Репутация:
348
Mifesto Написал:Народ сталкивался ли кто с проблемой когда меню клана полностью не активно, хоть я КЛ, вся инфа о клане выводиться нормально, Уровень\Название\Замок и тд.
Кому интересно пакеты Абилок(Епизодион):
RequestAcquireAbilityList
[SRC="java"]public class RequestAcquireAbilityList extends L2GameClientPacket
{
private List<SkillHolder> _skills;
@Override
protected void readImpl()
{
_skills = new ArrayList<>();
readD(); // Total size
for(int i = 0; i < 3; i++)
{
int size = readD();
for (int j = 0; j < size; j++) {
_skills.add(new SkillHolder(readD(), readD()));
}
}
}
@Override
protected void runImpl()
{
L2PcInstance player = getClient().getActiveChar();
if(player != null)
{
for(SkillHolder holder : _skills)
{
L2SkillLearn learn = SkillTreesData.getInstance().getAbilitySkill(holder.getSkillId(), holder.getSkillLvl());
if(learn == null)
{
_log.warn("SkillLearn " + holder.getSkillId() + "(" + holder.getSkillLvl() + ") not found!");
player.sendActionFailed();
break;
}
L2Skill skill = holder.getSkill();
if(skill == null)
{
_log.warn("SkillLearn " + holder.getSkillId() + "(" + holder.getSkillLvl() + ") not found!");
player.sendActionFailed();
break;
}
player.addSkill(skill, true);
}
player.sendPacket(new ExAcquireAPSkillList(player));
}
}
@Override
public String getType()
{
return "[C] D0:E9 RequestAcquireAbilityList";
}
}[/SRC]
ExAcquireAPSkillList
[SRC="java"]
public class ExAcquireAPSkillList extends L2GameServerPacket
{
public static final int LIMIT_POINTS = 16;
public static final long RESET_PRICE = 10000000;
public static final long POINT_PRICE = 250000000;
private long _price;
private int _ap, _points;
private boolean _enable;
private List<L2Skill> _skills;
public ExAcquireAPSkillList(L2PcInstance activeChar)
{
_ap = activeChar.getAp();
_price = (int) Math.ceil(_ap / 4D) * POINT_PRICE;
_points = activeChar.getUsedAbilityPoints();
_skills = activeChar.getAbilitySkills();
_enable = !activeChar.isSubClassActive() && activeChar.getLevel() >= 99 && activeChar.isNoble(); // TODO: Доделать проверки
}
@Override
protected void writeImpl()
{
writeD(_enable); // Неизвестно(возможно флаг активности)
writeQ(RESET_PRICE); // Цена сброса очков
writeQ(_price); // Цена покупки очков
writeD(LIMIT_POINTS); // Максимальное количество очков
writeD(_ap); // Текущее количество очков
writeD(_points); // Сколько очков использовано
writeD(_skills.size());
for (L2Skill skill : _skills)
{
writeD(skill.getId()); // выученый скилл
writeD(skill.getLevel()); // выученый уровень
}
}
}
[/SRC]
DSetup - проблема там (клиент)
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
09-15-2014, 09:44 AM
(Сообщение последний раз редактировалось: 09-15-2014, 12:19 PM Mifesto.)
Melcor Написал:DSetup - проблема там (клиент)
Спасибо все работает на ура, а я грешил на права клана.
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
Mifesto Написал:Спасибо все работает на ура, а я грешил на права клана. А не подскажете, как сделать активной кнопку новых абилок? Имеется ввиду кнопка, которая в окне статуса персонажа.
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
elastic Написал:А не подскажете, как сделать активной кнопку новых абилок? Имеется ввиду кнопка, которая в окне статуса персонажа.
Нужен 99 лвл и статус Дворянина. Клиент сам проверяет, нужно ли разблокировать кнопку абилок.
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
Warencense Написал:Нужен 99 лвл и статус Дворянина. Клиент сам проверяет, нужно ли разблокировать кнопку абилок. Интересно, спасибо
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
Если кому не сложно, скиньте стринг-дамп Engine 21 протокола (Infinite Odyssey) или растемиженный Engine.dll, а то на 8-ке фиг снимешь ее.
|