PDA

Просмотр полной версии : UserInfo charinfo npcinfo


semiromid
02.04.2014, 15:15
Здравствуйте ув. программисты .Подскажите пожалуйста . У меня не отпределяюся пакеты - userInfo, charinfo ,npcinfo , исходя из этого, я предполагаю что мне необходимо прописать данные пакеты в скиллах l2phx.3.5.34.176\settings\packets.ini\god\serverpa ckets.
Где можно найти структура пакетов "Epeisodion / Valiance" или "Lindvior".
Или как сделать ее самому ?

Спасибо.

Добавлено через 48 минут
Вот пакет - CharInfo . По моему эпизодион. Как раз то что нужно. Что с ним дальше делать?) Или это не то ?

packet id="31" name="CharInfo">
<part name="x" type="d"/>
<part name="y" type="d"/>
<part name="z" type="d"/>
<part name="clan-ship-object-id" type="d"/>
<part name="obj_id" type="d"/>
<part name="name" type="S"/>
<part name="race" type="h"/>
<part name="sex" type="c"/>
<part name="base_class" type="d"/>
<part name="under-itemId" type="d"/>
<part name="head-itemId" type="d"/>
<part name="rhand-itemId" type="d"/>
<part name="lhand-itemId" type="d"/>
<part name="gloves-itemId" type="d"/>
<part name="chest-itemId" type="d"/>
<part name="legs-itemId" type="d"/>
<part name="feet-itemId" type="d"/>
<part name="back-itemId" type="d"/>
<part name="lrhand-itemId" type="d"/>
<part name="hair-itemId" type="d"/>
<part name="dhair-itemId" type="d"/>
<part name="rbracelet-itemId" type="d"/>
<part name="lbracelet-itemId" type="d"/>
<part name="deco1-itemId" type="d"/>
<part name="deco2-itemId" type="d"/>
<part name="deco3-itemId" type="d"/>
<part name="deco4-itemId" type="d"/>
<part name="deco5-itemId" type="d"/>
<part name="deco6-itemId" type="d"/>
<part name="belt-itemId" type="d"/>
<part name="under-augId" type="h"/>
<part name="?" type="h"/>
<part name="head-augId" type="h"/>
<part name="?" type="h"/>
<part name="rhand-augId" type="h"/>
<part name="?" type="h"/>
<part name="lhand-augId" type="h"/>
<part name="?" type="h"/>
<part name="gloves-augId" type="h"/>
<part name="?" type="h"/>
<part name="chest-augId" type="h"/>
<part name="?" type="h"/>
<part name="legs-augId" type="h"/>
<part name="?" type="h"/>
<part name="feet-augId" type="h"/>
<part name="?" type="h"/>
<part name="back-augId" type="h"/>
<part name="?" type="h"/>
<part name="lrhand-augId" type="h"/>
<part name="?" type="h"/>
<part name="hair-augId" type="h"/>
<part name="?" type="h"/>
<part name="dhair-augId" type="h"/>
<part name="?" type="h"/>
<part name="rbracelet-augId" type="h"/>
<part name="?" type="h"/>
<part name="lbracelet-augId" type="h"/>
<part name="?" type="h"/>
<part name="deco1-augId" type="h"/>
<part name="?" type="h"/>
<part name="deco2-augId" type="h"/>
<part name="?" type="h"/>
<part name="deco3-augId" type="h"/>
<part name="?" type="h"/>
<part name="deco4-augId" type="h"/>
<part name="?" type="h"/>
<part name="deco5-augId" type="h"/>
<part name="?" type="h"/>
<part name="deco6-augId" type="h"/>
<part name="?" type="h"/>
<part name="belt-augId" type="h"/>
<part name="?" type="h"/>

<part name="talismanCount" type="c"/>
<part name="activeCloak" type="c"/>
<part name="?" type="c"/>

<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="visualId" type="d"/>
<part name="?" type="c"/>
<part name="?" type="d"/>
<part name="mAttackSpeed" type="d"/>
<part name="pAtttackSpeed" type="d"/>
<part name="?" type="d"/>
<part name="runSpeed" type="h"/>
<part name="walkSpeed" type="h"/>
<part name="sweemRunSpeed" type="h"/>
<part name="sweemWalkSpeed" type="h"/>
<part name="flyRunSpeed" type="h"/>
<part name="flyWalkSpeed" type="h"/>
<part name="flyRunSpeed" type="h"/>
<part name="flyWalkSpeed" type="h"/>
<part name="moveMulti" type="D"/>
<part name="attackMulti" type="D"/>
<part name="colRadius" type="D"/>
<part name="colHeight" type="D"/>
<part name="hairStyle" type="d"/>
<part name="hairColor" type="d"/>
<part name="face" type="d"/>
<part name="title" type="S"/>
<part name="clan_id" type="d"/>
<part name="clan_crest_id" type="d"/>
<part name="ally_id" type="d"/>
<part name="ally_crest_id" type="d"/>
<part name="sit" type="c"/>
<part name="run" type="c"/>
<part name="combat" type="c"/>
<part name="dead" type="c"/>
<part name="invis" type="c"/>
<part name="mount_type" type="c"/>
<part name="private_store" type="c"/>
<part name="cubic_size" type="h" id="0"/>
<for id="0">
<part name="cubicId" type="h"/>
</for>
<part name="_isFlying" type="c"/>
<part name="rec_have" type="h"/>
<part name="mount_id" type="d"/>
<part name="class_Id" type="d"/>
<part name="?" type="d"/>
<part name="enchant" type="c"/>
<part name="large_crest_id" type="d"/>
<part name="noble" type="c"/>
<part name="hero" type="c"/>
<part name="fishing" type="c"/>
<part name="fish-x" type="d"/>
<part name="fish-y" type="d"/>
<part name="fish-z" type="d"/>
<part name="?" type="c"/>
<part name="?" type="h"/>
<part name="?" type="d"/>
<part name="?" type="c"/>
<part name="cw_level" type="d"/>
<part name="clan_reputation" type="d"/>
<part name="transformation" type="d"/>
<part name="agathion" type="d"/>
<part name="blocked-fame" type="d"/>
<part name="plg_class" type="d"/>

<part name="?" type="d"/>
<part name="?" type="d"/>
<part name="current_cp" type="d"/>
<part name="current_hp" type="d"/>
<part name="max_hp" type="d"/>
<part name="current_mp" type="d"/>
<part name="max_mp" type="d"/>
<part name="?" type="d"/>
<part name="?" type="h"/>
<macro id="abnormal-macro"/>
<part name="?" type="c"/>
<part name="?" type="c"/>
</packet>
Помогите плз

semiromid
02.04.2014, 15:48
Вот еще
writeD(_loc.x);
writeD(_loc.y);
writeD(_loc.z + Config.CLIENT_Z_SHIFT);
writeD(_clanBoatObjectId);
writeD(_objId);

writeS(_name);
writeH(_race);
writeC(_sex);
writeD(base_class);

for (int PAPERDOLL_ID : PAPERDOLL_INTEND)
{
writeD(_inv[PAPERDOLL_ID][0]);
}

for (int PAPERDOLL_ID : PAPERDOLL_INTEND)
{
writeD(_inv[PAPERDOLL_ID][1]);
}

writeC(0x01);// TODO talisman
writeC(0x01);// TODO cloak
writeC(0x01);//unk

writeD(inv.getVisualItemId(Inventory.PAPERDOLL_RHA ND));
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_LHA ND));
writeD(0);
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_GLO VES));
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_CHE ST));
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_LEG S));
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_FEE T));
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_HAI R));
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_DHA IR));
//#================================================= =========== До этого места всё правильно ================================================== ======================================#//
writeC(pvp_flag);// мб флаг, т.к. имеет позицию 0-1
writeD(karma);
//#================================================= =========== C этого места всё правильно ================================================== ======================================#//
writeD(_mAtkSpd);
writeD(_pAtkSpd);

writeD(0x01);

writeH(_runSpd);
writeH(_walkSpd);
writeH(_swimSpd);
writeH(_swimSpd);
writeH(_flRunSpd);
writeH(_flWalkSpd);
writeH(_flyRunSpd);
writeH(_flyWalkSpd);

writeF(speed_move);
writeF(speed_atack);

writeF(col_radius);
writeF(col_height);

writeD(hair_style);
writeD(hair_color);
writeD(face);

writeS(_title);
writeD(clan_id);
writeD(clan_crest_id);
writeD(ally_id);
writeD(ally_crest_id);

writeC(_sit);
writeC(_run);
writeC(_combat);
writeC(_dead);
writeC(0x00);
writeC(mount_type);
writeC(private_store);

writeH(cubics.length);
for (EffectCubic cubic : cubics)
{
writeH(cubic == null ? 0 : cubic.getId());
}

writeC(_isPartyRoomLeader ? 0x01 : 0x00);
//#================================================= =========== До этого места всё правильно ================================================== ======================================#//
//ASCII "hd"
writeH(11);//возможно
writeD(unknown());// not done
//ASCII "ddc"
writeD(unknown());// not done
writeD(unknown());// not done//
writeC(0x05);// not done
//ASCII "dcc"
writeD(large_clan_crest_id);// not done//
writeC(0x01);// not done
writeC(0x01);// not done
//#================================================= =========== C этого места всё правильно ================================================== ======================================#//
//ASCII "cddd"
writeC(_fishing);// возможно
writeD(_fishLoc.x);// возможно
writeD(_fishLoc.y);// возможно
writeD(_fishLoc.z);// возможно
//#================================================= =========== До этого места всё правильно ================================================== ======================================#//
//ASCII "ch"
writeC(0x01); // not done
writeH(0x01);// not done
//#================================================= =========== C этого места всё правильно ================================================== ======================================#//
writeD(_title_color);// возможно
//#================================================= =========== До этого места всё правильно ================================================== ======================================#//
//ASCII "cd"
writeC(0x01);// not done
writeD(unknown());// not done//
//#================================================= =========== C этого места всё правильно ================================================== ======================================#//
writeD(_nameColor);// возможно
//#================================================= =========== До этого места всё правильно ================================================== ======================================#//
//ASCII "dddd"
writeD(unknown());// not done
writeD(unknown());// not done
writeD(unknown());// not done
writeD(unknown());// not done
//unk
writeD(unknown());//unk
writeD(unknown());//unk
writeD(curCP);
writeD(curHP);
writeD(maxHP);
writeD(curMP);
writeD(maxMP);
writeD(unknown());
writeC(0x01);
writeC(0x01);

Добавлено через 26 минут
Вот начал потихоньку разбираться . Правильно ли я начал писать структуру CharInfo ?
protected final void writeImpl()
{
if (!can_writeImpl) {
return;
}
L2Player activeChar = ((L2GameClient)getClient()).getActiveChar();
if (activeChar == null) {
return;
}
if (activeChar.equals(cha))
{
_log.severe("You cant send CharInfo about his character to active user!!!");
Thread.dumpStack();
return;
}
writeC(49); //-----Не знаю что делать
writeD(x);
writeD(y);
writeD(z);
writeD(clan-ship-object-id);
writeD(obj_id);
writeS(name);
writeH(race);
writeC(sex);
writeD(base_class);

NLObP
02.04.2014, 23:18
Вот пакет - CharInfo . По моему эпизодион. Как раз то что нужно. Что с ним дальше делать?

Посмотри эту (http://coderx.ru/showthread.php?t=7955) и эту (http://coderx.ru/showthread.php?t=8731&highlight=writeImpl&page=2) тему, может поможет.

Добавлено через 4 минуты
Где можно найти структура пакетов "Epeisodion / Valiance" или "Lindvior".

Надо найти эмулятор java сервера для этих хроник и взять там исходники пакетов. Например здесь (http://makeserv.net/).

Ниже прикрепил самописную программу на Дэлфи для работы с пакетами для Айон. В итоге делает PacketsAionxx.ini. Можно попробовать для Линейки сделать, там исходники очень похожи по формату.

semiromid
03.04.2014, 05:33
буду пробовать , пытаться , спасибо)

Добавлено через 2 часа 0 минут
Посмотрите какой ужас пишут.
Lindvior протокол 532
Вы не видите привычного юзеринфо в снифе то привет, часть пакетов теперь в наглухо не сдампиь т.к. Собирается пакет теперь по кусочкам в зависимости от состояния игрока т.е. Динамически. 1раз может придти структура ddddssdffd.... В другой раз ddsfsddc и таких вариантов море.
Все правильно сделали. надоело в лагах стоять.
Сейчас нет пакетов UserInfo/CharInfo , они приходят по части
Так что , собирать Packets.ini бессмысленно?

Добавлено через 3 часа 26 минут
Пока ищу исходники с версией протокола 532+.