[2.0]나비켓에서 피흡 적용하면 서버에서 아이템정보가 깨지는데 어디 수정해야될까요?
컨텐츠 정보
- 337 조회
- 10 댓글
- 목록
본문
-
등록일 2026.08.18
-
등록일 2026.08.17
-
등록일 2026.08.15
-
등록일 2026.08.152.0 이것저것 본섭지향으로 수정해봣는데..댓글 18
관련자료
댓글 10
웁뜨님의 댓글의 댓글
protected void toWeapon(Item item, ItemInstance weapon, int durability, int enlevel, int weight, int bless) {
ItemSetoption setoption = Lineage.server_version >= 250 ? ItemSetoptionDatabase.find(item.getSetId()) : null;
ItemInstance temp = null;
temp = ItemDatabase.newInstance(item);
if(temp != null){
temp.setEnLevel(enlevel);
temp.setBless(bless);
temp.checkOption();
}
writeC(getOptionSize(item, weapon instanceof Arrow ? weapon : (ItemWeaponInstance) weapon, durability, enlevel,
setoption, bless, 0, 0));
writeC(0x01);
writeC(item.getSmallDmg());
writeC(item.getBigDmg());
writeC(item.getMaterial());
writeD(weight);
if (enlevel != 0) {
writeC(0x02);
writeC(enlevel);
}
if (durability != 0) {
writeC(3);
writeC(durability);
}
int type = item.getRoyal() != 1 ? 0 : 1;
type += item.getKnight() != 1 ? 0 : 2;
type += item.getElf() != 1 ? 0 : 4;
type += item.getWizard() != 1 ? 0 : 8;
type += item.getDarkElf() != 1 ? 0 : 16;
type += item.getDragonKnight() != 1 ? 0 : 32;
type += item.getBlackWizard() != 1 ? 0 : 64;
writeC(7);
writeC(type);
if (item.isTohand())
writeC(4);
if (item.getAddDmg() != 0 || temp.getTollTipDmg() != 0){;
writeC(6);
writeC(item.getAddDmg() + temp.getTollTipDmg());
}
if (item.getAddHit() != 0 || temp.getTollTipHit() != 0) {
writeC(5);
writeC(item.getAddHit() + temp.getTollTipHit());
}
if (item.getAddStr() != 0) {
writeC(8);
writeC(item.getAddStr());
}
if (item.getAddDex() != 0) {
writeC(9);
writeC(item.getAddDex());
}
if (item.getAddCon() != 0) {
writeC(10);
writeC(item.getAddCon());
}
if (item.getAddWis() != 0) {
writeC(11);
writeC(item.getAddWis());
}
if (item.getAddInt() != 0) {
writeC(12);
writeC(item.getAddInt());
}
if (item.getAddCha() != 0) {
writeC(13);
writeC(item.getAddCha());
}
if (item.getAddSp() != 0 || temp.getTollTipSp() != 0) {
writeC(17);
writeC(item.getAddSp() + temp.getTollTipSp());
}
if (item.getAddHp() != 0 || temp.getTollTipHp() != 0) {
writeC(14);
writeH(item.getAddHp() + temp.getTollTipHp());
}
if (item.getAddMr() != 0 || temp.getTollTipMr() != 0) {
writeC(15);
writeH(item.getAddMr() + temp.getTollTipMr());
}
if (item.getStealMp() != 0) {
writeC(16);
}
if (item.getStealHp() != 0) {
writeC(34);
}
if (setoption != null && (setoption.isBrave() || setoption.isHaste()))
writeC(18);
if (item.getAddMp() != 0 || temp.getTollTipMp() != 0) {
writeC(24);
writeC(item.getAddMp() + temp.getTollTipMp());
}
if (item.getAddReduction() != 0 || temp.getTollTipReduction() != 0) {
writeC(20);
writeC(item.getAddReduction() + temp.getTollTipReduction());
}
if(temp != null)
ItemDatabase.setPool(temp);
}
ItemSetoption setoption = Lineage.server_version >= 250 ? ItemSetoptionDatabase.find(item.getSetId()) : null;
ItemInstance temp = null;
temp = ItemDatabase.newInstance(item);
if(temp != null){
temp.setEnLevel(enlevel);
temp.setBless(bless);
temp.checkOption();
}
writeC(getOptionSize(item, weapon instanceof Arrow ? weapon : (ItemWeaponInstance) weapon, durability, enlevel,
setoption, bless, 0, 0));
writeC(0x01);
writeC(item.getSmallDmg());
writeC(item.getBigDmg());
writeC(item.getMaterial());
writeD(weight);
if (enlevel != 0) {
writeC(0x02);
writeC(enlevel);
}
if (durability != 0) {
writeC(3);
writeC(durability);
}
int type = item.getRoyal() != 1 ? 0 : 1;
type += item.getKnight() != 1 ? 0 : 2;
type += item.getElf() != 1 ? 0 : 4;
type += item.getWizard() != 1 ? 0 : 8;
type += item.getDarkElf() != 1 ? 0 : 16;
type += item.getDragonKnight() != 1 ? 0 : 32;
type += item.getBlackWizard() != 1 ? 0 : 64;
writeC(7);
writeC(type);
if (item.isTohand())
writeC(4);
if (item.getAddDmg() != 0 || temp.getTollTipDmg() != 0){;
writeC(6);
writeC(item.getAddDmg() + temp.getTollTipDmg());
}
if (item.getAddHit() != 0 || temp.getTollTipHit() != 0) {
writeC(5);
writeC(item.getAddHit() + temp.getTollTipHit());
}
if (item.getAddStr() != 0) {
writeC(8);
writeC(item.getAddStr());
}
if (item.getAddDex() != 0) {
writeC(9);
writeC(item.getAddDex());
}
if (item.getAddCon() != 0) {
writeC(10);
writeC(item.getAddCon());
}
if (item.getAddWis() != 0) {
writeC(11);
writeC(item.getAddWis());
}
if (item.getAddInt() != 0) {
writeC(12);
writeC(item.getAddInt());
}
if (item.getAddCha() != 0) {
writeC(13);
writeC(item.getAddCha());
}
if (item.getAddSp() != 0 || temp.getTollTipSp() != 0) {
writeC(17);
writeC(item.getAddSp() + temp.getTollTipSp());
}
if (item.getAddHp() != 0 || temp.getTollTipHp() != 0) {
writeC(14);
writeH(item.getAddHp() + temp.getTollTipHp());
}
if (item.getAddMr() != 0 || temp.getTollTipMr() != 0) {
writeC(15);
writeH(item.getAddMr() + temp.getTollTipMr());
}
if (item.getStealMp() != 0) {
writeC(16);
}
if (item.getStealHp() != 0) {
writeC(34);
}
if (setoption != null && (setoption.isBrave() || setoption.isHaste()))
writeC(18);
if (item.getAddMp() != 0 || temp.getTollTipMp() != 0) {
writeC(24);
writeC(item.getAddMp() + temp.getTollTipMp());
}
if (item.getAddReduction() != 0 || temp.getTollTipReduction() != 0) {
writeC(20);
writeC(item.getAddReduction() + temp.getTollTipReduction());
}
if(temp != null)
ItemDatabase.setPool(temp);
}
웁뜨님의 댓글
서버 열어둘게용 여러분 놀러오세용
디스코드: https://discord.gg/QrftsZVzXy
클라이언트 접속기 다운로드: https://drive.google.com/drive/folders/16HAryFSERL7dhM_KXX3aGwCgUXfUW1Nl?usp=sharing
디스코드: https://discord.gg/QrftsZVzXy
클라이언트 접속기 다운로드: https://drive.google.com/drive/folders/16HAryFSERL7dhM_KXX3aGwCgUXfUW1Nl?usp=sharing
















