Рейтинг темы:
  • 2 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 6)
531 - это линдвиор, последний протокол, в котором еще не началось все это извращение с динамическими структурами пакетов.
Influence Написал:Странно, скачал клиент руофа, старенький, там 531 протокол, скачал релиз NA (Valiance тот что), там 580

Возможно и 580.

У корейцев началась творческая импотенция и креативный маразм, кароч кретинизм в названиях хроник и веток процветает:
Lineage II: The Chaotic Throne 3: Goddess of Destruction: Lindvior: Epeisodion / Valiance

обновление, обновления, обновления, обновления Big Grin

Заманали...
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm
Да корейцы вообще обнаглели. :redlol:
А вообще, хотя бы структуру оставили в энджине. А то сиди то ли разбирай, то ли ожидай, пока кто-то разберет :redlol:
Поделитесь пожалуйста пакетом userinfo
jorjge Написал:Поделитесь пожалуйста пакетом userinfo

Lindvior
[SRC="java"]package l2next.gameserver.network.serverpackets;

import l2next.commons.collections.GArray;
import l2next.gameserver.Config;
import l2next.gameserver.data.xml.holder.NpcHolder;
import l2next.gameserver.instancemanager.CursedWeaponsManager;
import l2next.gameserver.model.Player;
import l2next.gameserver.model.Skill;
import l2next.gameserver.model.Zone;
import l2next.gameserver.model.base.Element;
import l2next.gameserver.model.base.Experience;
import l2next.gameserver.model.base.TeamType;
import l2next.gameserver.model.entity.events.GlobalEvent;
import l2next.gameserver.model.items.Inventory;
import l2next.gameserver.model.items.PcInventory;
import l2next.gameserver.model.matching.MatchingRoom;
import l2next.gameserver.model.pledge.Alliance;
import l2next.gameserver.model.pledge.Clan;
import l2next.gameserver.skills.AbnormalEffect;
import l2next.gameserver.skills.effects.EffectCubic;
import l2next.gameserver.templates.player.PlayerTemplate;
import l2next.gameserver.utils.Location;

/**
* @Optimized & correct: WoWan-SM
* @date: 15.2.2014
*/
public class UserInfo extends L2GameServerPacket {
private final boolean can_writeImpl;
private final boolean partyRoom;
private final int _runSpd;
private final int _walkSpd;
private final int _swimRunSpd;
private final int _swimWalkSpd;
private final int _flRunSpd;
private final int _flWalkSpd;
private final int _flyRunSpd;
private final int _flyWalkSpd;
private final double move_speed;
private final double attack_speed;
private final double col_radius;
private final double col_height;
private final int[][] _inv;
private final Location _loc;
private final Location _fishLoc;
private final int obj_id;
private final int vehicle_obj_id;
private final int _race;
private final int sex;
private final int base_class;
private final int level;
private final int curCp;
private final int maxCp;
private final int _enchant;
private final int _weaponFlag;
private final long _exp;
private final int curHp;
private final int maxHp;
private final int curMp;
private final int maxMp;
private final int curLoad;
private final int maxLoad;
private final int rec_left;
private final int rec_have;
private final int _str;
private final int _con;
private final int _dex;
private final int _int;
private final int _wit;
private final int _men;
private final int _sp;
private final int ClanPrivs;
private final int InventoryLimit;
private final int _patk;
private final int _patkspd;
private final int _pdef;
private final int evasion;
private final int accuracy;
private final int crit;
private final int _matk;
private final int _matkspd;
private final int _mevasion;
private final int _maccuracy;
private final int _mCritRate;
private final int _mdef;
private final int pvp_flag;
private final int karma;
private final int hair_style;
private final int hair_color;
private final int face;
private final int gm_commands;
private final int fame;
private final int vitality;
private final int clan_crest_id;
private final int ally_crest_id;
private final int large_clan_crest_id;
private final int private_store;
private final int can_crystalize;
private final int pk_kills;
private final int pvp_kills;
private final int class_id;
private final int agathion;
private final int noble;
private final int hero;
private final int mount_id;
private final int cw_level;
private final int name_color;
private final int running;
private final int pledge_class;
private final int pledge_type;
private final int title_color;
private final int transformation;
private final int defenceFire;
private final int defenceWater;
private final int defenceWind;
private final int defenceEarth;
private final int defenceHoly;
private final int defenceUnholy;
private final int mount_type;
private final String _name;
private final EffectCubic[] cubics;
private final Element attackElement;
private final int attackElementValue;
private final boolean isFlying;
private final boolean _allowMap;
private final int talismans;
private final boolean openCloak;
private final double _expPercent;
private final TeamType _team;
private final GArray<AbnormalEffect> _abnormalEffect;
private final PcInventory inv;
private int _relation;
private int clan_id;
private int ally_id;
private int fishing;
private String title;

public UserInfo(final Player player) {
if (player.getTransformationName() != null) {
_name = player.getTransformationName();
title = "";
clan_crest_id = 0;
ally_crest_id = 0;
large_clan_crest_id = 0;
cw_level = CursedWeaponsManager.getInstance().getLevel(player.getCursedWeaponEquippedId());
} else {
_name = player.getName();

final Clan clan = player.getClan();
final Alliance alliance = clan == null ? null : clan.getAlliance();
//
clan_id = clan == null ? 0 : clan.getClanId();
clan_crest_id = clan == null ? 0 : clan.getCrestId();
large_clan_crest_id = clan == null ? 0 : clan.getCrestLargeId();
//
ally_id = alliance == null ? 0 : alliance.getAllyId();
ally_crest_id = alliance == null ? 0 : alliance.getAllyCrestId();

cw_level = 0;
title = player.getTitle();
}

if (player.getPlayerAccess().GodMode && player.isInvisible()) {
title += "[I]";
}
if (player.isPolymorphed()) {
if (NpcHolder.getInstance().getTemplate(player.getPolyId()) != null) {
title += " - " + NpcHolder.getInstance().getTemplate(player.getPolyId()).name;
} else {
title += " - Polymorphed";
}
}

if (player.isMounted()) {
_enchant = 0;
mount_id = player.getMountNpcId() + 1000000;
mount_type = player.getMountType();
} else {
_enchant = player.getEnchantEffect();
mount_id = 0;
mount_type = 0;
}

_weaponFlag = player.getActiveWeaponInstance() == null ? 0x14 : 0x28;

move_speed = player.getMovementSpeedMultiplier();
_runSpd = (int) (player.getRunSpeed() / move_speed);
_walkSpd = (int) (player.getWalkSpeed() / move_speed);

final PlayerTemplate playerTemplate = player.getTemplate();
_flRunSpd = (int) playerTemplate.getBaseFlyRunSpd();
_flWalkSpd = (int) playerTemplate.getBaseFlyWalkSpd();

if (player.isFlying()) {
_flyRunSpd = _runSpd;
_flyWalkSpd = _walkSpd;
} else {
_flyRunSpd = 0;
_flyWalkSpd = 0;
}

_swimRunSpd = player.getSwimRunSpeed();
_swimWalkSpd = player.getSwimWalkSpeed();

_inv = new int[Inventory.PAPERDOLL_MAX][3];
for (final int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) {
final PcInventory playerInventory = player.getInventory();
_inv[PAPERDOLL_ID][0] = playerInventory.getPaperdollObjectId(PAPERDOLL_ID);
_inv[PAPERDOLL_ID][1] = playerInventory.getPaperdollItemId(PAPERDOLL_ID);
_inv[PAPERDOLL_ID][2] = playerInventory.getPaperdollAugmentationId(PAPERDOLL_ID);
}

_relation = player.isClanLeader() ? 0x40 : 0;
for (final GlobalEvent e : player.getEvents()) {
_relation = e.getUserRelation(player, _relation);
}

_loc = player.getLoc();
obj_id = player.getObjectId();
vehicle_obj_id = player.isInBoat() ? player.getBoat().getObjectId() : 0x00;
_race = player.getRace().ordinal();
sex = player.getSex();
base_class = player.getBaseClassId();
level = player.getLevel();
_exp = player.getExp();
_expPercent = Experience.getExpPercent(player.getLevel(), player.getExp());
_str = player.getSTR();
_dex = player.getDEX();
_con = player.getCON();
_int = player.getINT();
_wit = player.getWIT();
_men = player.getMEN();
curHp = (int) player.getCurrentHp();
maxHp = player.getMaxHp();
curMp = (int) player.getCurrentMp();
maxMp = player.getMaxMp();
curLoad = player.getCurrentLoad();
maxLoad = player.getMaxLoad();
_sp = player.getIntSp();
_patk = player.getPAtk(null);
_patkspd = player.getPAtkSpd();
_pdef = player.getPDef(null);
evasion = player.getEvasionRate(null);
_mevasion = player.getMEvasionRate(null);
_maccuracy = player.getMAccuracy();
_mCritRate = (int) player.getMagicCriticalRate(null, null);
accuracy = player.getAccuracy();
crit = player.getCriticalHit(null, null);
_matk = player.getMAtk(null, null);
_matkspd = player.getMAtkSpd();
_mdef = player.getMDef(null, null);

// 0=white, 1=purple, 2=purpleblink
pvp_flag = player.getPvpFlag();

karma = player.getKarma();
attack_speed = player.getAttackSpeedMultiplier();
col_radius = player.getColRadius();
col_height = player.getColHeight();
hair_style = player.getHairStyle();
hair_color = player.getHairColor();
face = player.getFace();

// builder level активирует в клиенте админские команды
gm_commands = player.isGM() || player.getPlayerAccess().CanUseGMCommand ? 1 : 0;

clan_id = player.getClanId();
ally_id = player.getAllyId();
private_store = player.getPrivateStoreType();
can_crystalize = player.getSkillLevel(Skill.SKILL_CRYSTALLIZE) > 0 ? 1 : 0;
pk_kills = player.getPkKills();
pvp_kills = player.getPvpKills();
cubics = player.getCubics().toArray(new EffectCubic[player.getCubics().size()]);
_abnormalEffect = player.getAbnormalEffects();
ClanPrivs = player.getClanPrivileges();

// c2 recommendations remaining
rec_left = player.getRecomLeft();

// c2 recommendations received
rec_have = player.getRecomHave();

InventoryLimit = player.getInventoryLimit();
class_id = player.getClassId().getId();
maxCp = player.getMaxCp();
curCp = (int) player.getCurrentCp();
_team = player.getTeam();

// 0x01: symbol on char menu ctrl+I
noble = player.isNoble() || player.isGM() && Config.GM_HERO_AURA ? 1 : 0;

// 0x01: Hero Aura and symbol
hero = player.isHero() || player.isGM() && Config.GM_HERO_AURA ? 1 : 0;

// Fishing Mode
fishing = player.isFishing() ? 1 : 0;

_fishLoc = player.getFishLoc();
name_color = player.getNameColor();

// changes the Speed display on Status Window
running = player.isRunning() ? 0x01 : 0x00;

pledge_class = player.getPledgeClass();
pledge_type = player.getPledgeType();
title_color = player.getTitleColor();
transformation = player.getTransformation();
attackElement = player.getAttackElement();
attackElementValue = player.getAttack(attackElement);
defenceFire = player.getDefence(Element.FIRE);
defenceWater = player.getDefence(Element.WATER);
defenceWind = player.getDefence(Element.WIND);
defenceEarth = player.getDefence(Element.EARTH);
defenceHoly = player.getDefence(Element.HOLY);
defenceUnholy = player.getDefence(Element.UNHOLY);
agathion = player.getAgathionId();
fame = player.getFame();
vitality = player.getVitality().getPoints();
partyRoom = player.getMatchingRoom() != null && player.getMatchingRoom().getType() == MatchingRoom.PARTY_MATCHING && player.getMatchingRoom().getLeader() == player;
isFlying = player.isInFlyingTransform();
talismans = player.getTalismanCount();
openCloak = player.getOpenCloak();
_allowMap = player.isActionBlocked(Zone.BLOCKED_ACTION_MINIMAP);

// Fishing Mode
fishing = player.isFishing() ? 1 : 0;

inv = player.getInventory();

can_writeImpl = true;
}

@Override
protected void writeImpl() {
if (!can_writeImpl) {
return;
}

writeD(_loc.x);
writeD(_loc.y);
writeD(_loc.z + Config.CLIENT_Z_SHIFT);
writeD(vehicle_obj_id);
writeD(obj_id);
writeS(_name);
writeD(_race);
writeD(sex);
writeD(base_class);
writeD(level);
writeQ(_exp);
writeF(_expPercent);
writeD(_str);
writeD(_dex);
writeD(_con);
writeD(_int);
writeD(_wit);
writeD(_men);
writeD(maxHp);
writeD(curHp);
writeD(maxMp);
writeD(curMp);
writeD(_sp);
writeD(curLoad);
writeD(maxLoad);
writeD(_weaponFlag);

for (final int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) {
writeD(_inv[PAPERDOLL_ID][0]);
}

for (final int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) {
writeD(_inv[PAPERDOLL_ID][1]);
}

for (final int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER) {
writeD(_inv[PAPERDOLL_ID][2]);
}

writeD(talismans);
writeD(openCloak ? 0x01 : 0x00);

writeD(inv.getVisualItemId(Inventory.PAPERDOLL_RHAND)); // Tauti
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_LHAND)); // Tauti
writeD(0); // Tauti
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_GLOVES)); // Tauti
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_CHEST)); // Tauti
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_LEGS)); // Tauti
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_FEET)); // Tauti
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_HAIR)); // Tauti
writeD(inv.getVisualItemId(Inventory.PAPERDOLL_DHAIR)); // Tauti

writeD(_patk);
writeD(_patkspd);
writeD(_pdef);
writeD(evasion);
writeD(accuracy);
writeD(crit);
writeD(_matk);
writeD(_matkspd);
writeD(_patkspd);
writeD(_mdef);
writeD(_mevasion);
writeD(_maccuracy);
writeD(_mCritRate);
writeD(pvp_flag);
writeD(karma);
writeD(_runSpd);
writeD(_walkSpd);
writeD(_swimRunSpd); // swimspeed
writeD(_swimWalkSpd); // swimspeed
writeD(_flRunSpd);
writeD(_flWalkSpd);
writeD(_flyRunSpd);
writeD(_flyWalkSpd);
writeF(move_speed);
writeF(attack_speed);
writeF(col_radius);
writeF(col_height);
writeD(hair_style);
writeD(hair_color);
writeD(face);
writeD(gm_commands);
writeS(title);
writeD(clan_id);
writeD(clan_crest_id);
writeD(ally_id);
writeD(ally_crest_id);
// 0x40 leader rights
// siege flags: attacker - 0x180 sword over name, defender - 0x80
// shield, 0xC0 crown (|leader), 0x1C0 flag (|leader)
writeD(_relation);
writeC(mount_type); // mount type
writeC(private_store);
writeC(can_crystalize);
writeD(pk_kills);
writeD(pvp_kills);
writeH(cubics.length);
for (final EffectCubic cubic : cubics) {
writeH(cubic == null ? 0 : cubic.getId());
}
writeC(partyRoom ? 0x01 : 0x00); // 1-find party members
writeC(isFlying ? 0x02 : 0x00);
writeD(ClanPrivs);
writeH(rec_left);
writeH(rec_have);
writeD(mount_id);
writeH(InventoryLimit);
writeD(class_id);
writeD(0x00);
writeD(maxCp);
writeD(curCp);
writeC(_enchant);
writeC(_team.ordinal());
writeD(large_clan_crest_id);
writeC(noble);
writeC(hero);
writeC(fishing);
writeD(_fishLoc.x);
writeD(_fishLoc.y);
writeD(_fishLoc.z);
writeD(name_color);
writeC(running);
writeD(pledge_class);
writeD(pledge_type);
writeD(title_color);
writeD(cw_level);
writeD(transformation); // Transformation id

// AttackElement (0 - Fire, 1 - Water, 2 - Wind, 3 - Earth, 4 - Holy, 5
// - Dark, -2 - None)
writeH(attackElement.getId());
writeH(attackElementValue); // AttackElementValue
writeH(defenceFire); // DefAttrFire
writeH(defenceWater); // DefAttrWater
writeH(defenceWind); // DefAttrWind
writeH(defenceEarth); // DefAttrEarth
writeH(defenceHoly); // DefAttrHoly
writeH(defenceUnholy); // DefAttrUnholy

writeD(agathion);

// T2 Starts
writeD(fame); // Fame
writeD(_allowMap ? 1 : 0); // Minimap on Hellbound
writeD(vitality); // Vitality Points

writeD(0x00);// Unknown GOD
writeD(0x00);// Unknown GOD (1 - Party searching?)
writeC(0x00);// Unknown GOD
writeD(0x00);// Unknown GOD

writeD(_abnormalEffect.size());
for (final AbnormalEffect ae : _abnormalEffect) {
writeD(ae.getMask());
}

writeC(0); // Tauti
}
}[/SRC]
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm
Спасибо, забыл уточнить, что просил под артею :-)

Добавлено через 2 часа 14 минут
И ещё, почему то иногда новые чары не создаются, нет реакции при нажатии на СОЗДАТЬ ПЕРСОНАЖА, в каком направлении копать?
ну вы даете информацию хранить в тайне нужно ГВ в этом вообще умнички , бонукс сделай милость не шарь пакеты!!!
Amaranthe Написал:ну вы даете информацию хранить в тайне нужно ГВ в этом вообще умнички , бонукс сделай милость не шарь пакеты!!!

А собсно в чем проблема noName?вы хоть свою лепту вносили в развитие новых хроник? Я думаю нет, я больше чем уверен, что Bonux пошлет вас и будет делать как захочет!
TonsFun Написал:А собсно в чем проблема noName?вы хоть свою лепту вносили в развитие новых хроник? Я думаю нет, я больше чем уверен, что Bonux пошлет вас и будет делать как захочет!
Лоол ты меня отлично знаеш , да и толку мне вносить свою лепту ?Самому себе противоречить логики не вижу . ( В данном случае прошу не чего не шарить а ты пытаешся из меня что то да выманить ).Кстати в секунду твою личность раскрою если что Big Grin
TonsFun Написал:А собсно в чем проблема noName?вы хоть свою лепту вносили в развитие новых хроник? Я думаю нет, я больше чем уверен, что Bonux пошлет вас и будет делать как захочет!


Добавлено через 1 минуту
Amaranthe Написал:Лоол ты меня отлично знаеш , да и толку мне вносить свою лепту ?Самому себе противоречить логики не вижу . ( В данном случае прошу не чего не шарить а ты пытаешся из меня что то да выманить ).Кстати в секунду твою личность раскрою если что Big Grin

А вам уважаемый, рекомендую поубавить свои порывы, иначе придется их поубавить с помощью карточек, красных.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Работа над Goddess of Destruction (part 7) n3k0nation 459 174,290 03-21-2022, 04:21 PM
Последний пост: TieLay
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,380 10-01-2021, 02:40 PM
Последний пост: tenor
  Работа с камерой и Энтер чат FriendlyGhost 0 1,301 04-29-2018, 06:07 AM
Последний пост: FriendlyGhost
  Goddess of Destruction ( новая ветка от NcSoft ) Bacek 180 59,011 08-22-2017, 12:32 PM
Последний пост: BadStealth
  EmuRT Gracia part 2 ? knaif 3 1,622 02-08-2016, 01:19 PM
Последний пост: knaif
  Gracia Part 1 от l2emu исходы TFH 6 1,964 10-05-2015, 07:53 PM
Последний пост: G1ta0
  Ищу исходы L2-Dream gracia part 2 knaif 1 1,385 10-05-2015, 07:51 PM
Последний пост: G1ta0
  Оплачиваемая работа Grek1993 1 1,349 08-01-2015, 11:29 AM
Последний пост: ztaecz
  Работа с мультиселлом Evencelance 11 2,446 09-19-2014, 12:43 PM
Последний пост: Evencelance
  Работа над Goddess of Destruction (part 5) Ozzy 980 339,177 10-09-2013, 09:13 AM
Последний пост: Ashe

Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)