close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

에바팩에 디아 시스템 추가

2019.11.14 22:26

스크래치 조회 수:101

1j.server.server.storage.CharactersItemStorage.java
-------------------------------------------------------------------------
public static CharactersItemStorage create() { //검색후 윗줄에 추가

public abstract void updateItemUhp(L1ItemInstance item)
throws Exception;

public abstract void updateItemUmp(L1ItemInstance item)
throws Exception;

public abstract void updateItemUhpr(L1ItemInstance item)
throws Exception;

public abstract void updateItemUmpr(L1ItemInstance item)
throws Exception;

public abstract void updateItemUmd(L1ItemInstance item)
throws Exception;

public abstract void updateItemUmxd(L1ItemInstance item)
throws Exception;

public abstract void updateItemUdmg(L1ItemInstance item)
throws Exception;

public abstract void updateItemUhit(L1ItemInstance item)
throws Exception;

-------------------------------------------------------------------------

l1j.server.server.model.L1PcInventory.java

-------------------------------------------------------------------------
public static final int COL_REMAINING_TIME = 256; //검색후 윗줄에 추가
public static final int COL_UHIT = 2097152;

public static final int COL_UDMG = 1048576;

public static final int COL_UMXD = 524288;

public static final int COL_UMD = 262144;

public static final int COL_UMPR = 131072;

public static final int COL_UHPR = 65536;

public static final int COL_UMP = 32768;

public static final int COL_UHP = 16384;

//이부분 추가하실때 장식 속성 소스 적용안되신분은 마지막 숫자의 2의배수로 숫자 넣어주시면 됩니다.
-------------------------------------------------------------------------
public void updateItem(L1ItemInstance item, int column) { //검색
if (column >= COL_UHP) { 
_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UHP;
}

if (column >= COL_UMP) { 
_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UMP;
}

if (column >= COL_UHPR) { 
_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UHPR;
}

if (column >= COL_UMPR) { 
_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UMPR;
}

if (column >= COL_UMD) { 

_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UMD;
}

if (column >= COL_UMXD) { 
_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UMXD;
}

if (column >= COL_UDMG) { 
_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UDMG;
}

if (column >= COL_UHIT) { 
_owner.sendPackets(new S_ItemStatus(item));
column -= COL_UHIT;
}
-------------------------------------------------------------------------
public void saveItem(L1ItemInstance item, int column) {
if (column == 0) {
return;
}

try {
CharactersItemStorage storage = CharactersItemStorage.create(); //검색

if (column >= COL_UHP) { 
storage.updateItemUhp(item);
column -= COL_UHP;
}

if (column >= COL_UMP) { 
storage.updateItemUmp(item);
column -= COL_UMP;
}

if (column >= COL_UHPR) { 
storage.updateItemUhpr(item);
column -= COL_UHPR;
}

if (column >= COL_UMPR) { 
storage.updateItemUmpr(item);
column -= COL_UMPR;
}

if (column >= COL_UMD) { 
storage.updateItemUmd(item);
column -= COL_UMD;
}

if (column >= COL_UMXD) { 
storage.updateItemUmxd(item);
column -= COL_UMXD;
}

if (column >= COL_UDMG) { 
storage.updateItemUdmg(item);
column -= COL_UDMG;
}

if (column >= COL_UHIT) { 
storage.updateItemUhit(item);
column -= COL_UHIT;
}

-------------------------------------------------------------------------

l1j.server.server.model.Instance.L1ItemInstance.java

-------------------------------------------------------------------------
private L1PcInstance _pc; //검색
private int _uhp;

private int _ump;

private int _uhpr;

private int _umpr;

private int _umd;

private int _umxd;

private int _udmg;

private int _uhit;
-------------------------------------------------------------------------
public L1ItemInstance() {
_count = 1;
_enchantLevel = 0; //검색

_uhp = 0;
_ump = 0;
_uhpr = 0;
_umpr = 0;
_umd = 0;
_umxd = 0;
_udmg = 0;
_uhit = 0;
-------------------------------------------------------------------------
public void setEnchantLevel(int enchantLevel) {
_enchantLevel = enchantLevel;
} //검색
public int getUhp() {
return _uhp;
}

public void setUhp(int uhp) {
_uhp = uhp;
}

public int getUmp() {
return _ump;
}

public void setUmp(int ump) {
_ump = ump;
}

public int getUhpr() {
return _uhpr;
}

public void setUhpr(int uhpr) {
_uhpr = uhpr;
}

public int getUmpr() {
return _umpr;
}

public void setUmpr(int umpr) {
_umpr = umpr;
}
public int getUmd() {
return _umd;
}

public void setUmd(int umd) {
_umd = umd;
}

public int getUmxd() {
return _umxd;
}

public void setUmxd(int umxd) {
_umxd = umxd;
}

public int getUdmg() {
return _udmg;
}

public void setUdmg(int udmg) {
_udmg = udmg;
}

public int getUhit() {
return _uhit;
}

public void setUhit(int uhit) {
_uhit = uhit;
}
-------------------------------------------------------------------------
public int remainingTime; //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
public int uhp;

public int ump;

public int uhpr;

public int umpr;

public int umd;

public int umxd;

public int udmg;

public int uhit;
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
remainingTime = getRemainingTime(); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
uhp = getUhp();
ump = getUmp();
uhpr = getUhpr();
umpr = getUmpr();
umd = getUmd();
umxd = getUmxd();
udmg = getUdmg();
uhit = getUhit();
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
public void updateEnchantLevel() {
enchantLevel = getEnchantLevel();
} //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
public void updateUhp() {
uhp = getUhp();
}

public void updateUmp() {
ump = getUmp();
}

public void updateUhpr() {
uhpr = getUhpr();
}

public void updateUmpr() {
umpr = getUmpr();
}

public void updateUmd() {
umd = getUmd();
}

public void updateUmxd() {
umxd = getUmxd();
}

public void updateUdmg() {
udmg = getUdmg();
}

public void updateUhit() {
uhit = getUhit();
}
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
if (getEnchantLevel() != _lastStatus.enchantLevel) {
column += L1PcInventory.COL_ENCHANTLVL;
} //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
if (getUhp() != _lastStatus.uhp) {
column += L1PcInventory.COL_UHP;
}

if (getUmp() != _lastStatus.ump) {
column += L1PcInventory.COL_UMP;
}

if (getUhpr() != _lastStatus.uhpr) {
column += L1PcInventory.COL_UHPR;
}

if (getUmpr() != _lastStatus.umpr) {
column += L1PcInventory.COL_UMPR;
}

if (getUmd() != _lastStatus.umd) {
column += L1PcInventory.COL_UMD;
}

if (getUmxd() != _lastStatus.umxd) {
column += L1PcInventory.COL_UMXD;
}

if (getUdmg() != _lastStatus.udmg) {
column += L1PcInventory.COL_UDMG;
}

if (getUhit() != _lastStatus.uhit) {
column += L1PcInventory.COL_UHIT;
}
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
if (getItem().get_addhp() != 0 || getUpacse() != 0 || getUhp() != 0) {
os.writeC(14);
os.writeH(getItem().get_addhp() + (getUpacse() * 2) + getUhp());
}
if (getItem().get_addmp() != 0 || getUpacse() != 0 || getUmp() != 0) {
os.writeC(32);
os.writeC(getItem().get_addmp() + getUpacse() + getUmp());
}
// ■■■■■■ 디아블로 소스 ■■■■■■

// 장식 속성 소스 안하신분은 if (getItem().get_addhp() != 0 검색하세요
-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
if (getItem().getDmgModifier() != 0 || getUdmg() != 0) {
os.writeC(6);
os.writeC(getItem().getDmgModifier() + getUdmg());
}
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
if (getItem().getHitModifier() != 0 || getUhit() != 0) {
os.writeC(5);
os.writeC(getItem().getHitModifier() + getUhit());
}
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
if (itemType2 == 1 || getUmd() != 0 || getUmxd() != 0) { // weapon
// 타격치
os.writeC(1);
os.writeC(getItem().getDmgSmall() + getUmd());
os.writeC(getItem().getDmgLarge() + getUmxd());
os.writeC(getItem().getMaterial());
os.writeD(getWeight());
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.storage.mysql.MySqlCharactersItemStorage.java

-------------------------------------------------------------------------
item.setLastUsed(rs.getTimestamp("last_used")); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
item.setUhp(rs.getInt("uhp"));
item.setUmp(rs.getInt("ump"));
item.setUhpr(rs.getInt("uhpr"));
item.setUmpr(rs.getInt("umpr"));
item.setUmd(rs.getInt("umd"));
item.setUmxd(rs.getInt("umxd"));
item.setUdmg(rs.getInt("udmg"));
item.setUhit(rs.getInt("uhit"));
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
.prepareStatement("INSERT INTO character_items SET id = ?, item_id = ?, char_id = ?, item_name = ?, count = ?, is_equipped = 0, enchantlvl = ?, is_id = ?, durability = ?, charge_count = ?, remaining_time = ?, last_used = ?, upacse = ?, upearth = ?, upwind = ?, upfire = ?, upwater = ?, uhp = ?, ump = ?, uhpr = ?, umpr = ?, umd = ?, umxd = ?, udmg = ?, uhit = ? ");
// 속성소스안한분은 , upacse = ?, upearth = ?, upwind = ?, upfire = ?, upwater = ? <- 없음

-------------------------------------------------------------------------
pstm.setTimestamp(11, item.getLastUsed()); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
pstm.setInt(17, item.getUhp());
pstm.setInt(18, item.getUmp());
pstm.setInt(19, item.getUhpr());
pstm.setInt(20, item.getUmpr());
pstm.setInt(21, item.getUmd());
pstm.setInt(22, item.getUmxd());
pstm.setInt(23, item.getUdmg());
pstm.setInt(24, item.getUhit());
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
@Override
public void updateItemDelayEffect(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET last_used = ? WHERE id = ?", item
.getLastUsed());
item.getLastStatus().updateLastUsed();
} //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
@Override
public void updateItemUhp(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET uhp = ? WHERE id = ?", item
.getUhp());
item.getLastStatus().updateUhp();
}

@Override
public void updateItemUmp(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET ump = ? WHERE id = ?", item
.getUmp());
item.getLastStatus().updateUmp();
}

@Override
public void updateItemUhpr(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET uhpr = ? WHERE id = ?", item
.getUhpr());
item.getLastStatus().updateUhpr();
}

@Override
public void updateItemUmpr(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET umpr = ? WHERE id = ?", item
.getUmpr());
item.getLastStatus().updateUmpr();
}

@Override
public void updateItemUmd(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET umd = ? WHERE id = ?", item
.getUmd());
item.getLastStatus().updateUmd();
}

@Override
public void updateItemUmxd(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET umxd = ? WHERE id = ?", item
.getUmxd());
item.getLastStatus().updateUmxd();
}

@Override
public void updateItemUdmg(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET udmg = ? WHERE id = ?", item
.getUdmg());
item.getLastStatus().updateUdmg();
}

@Override
public void updateItemUhit(L1ItemInstance item) throws Exception {
executeUpdate(item.getId(),
"UPDATE character_items SET uhit = ? WHERE id = ?", item
.getUhit());
item.getLastStatus().updateUhit();
}
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.model.L1Inventory.java

-------------------------------------------------------------------------
carryItem.setLastUsed(item.getLastUsed()); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
carryItem.setUhp(item.getUhp());
carryItem.setUmp(item.getUmp());
carryItem.setUhpr(item.getUhpr());
carryItem.setUmpr(item.getUmpr());
carryItem.setUmd(item.getUmd());
carryItem.setUmxd(item.getUmxd());
carryItem.setUdmg(item.getUdmg());
carryItem.setUhit(item.getUhit());
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.model.L1DwarfForClanInventory.java

-----------------------------------------------------------------------------
item.setLastUsed(rs.getTimestamp("last_used")); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
item.setUhp(rs.getInt("uhp"));
item.setUmp(rs.getInt("ump"));
item.setUhpr(rs.getInt("uhpr"));
item.setUmpr(rs.getInt("umpr"));
item.setUmd(rs.getInt("umd"));
item.setUmxd(rs.getInt("umxd"));
item.setUdmg(rs.getInt("udmg"));
item.setUhit(rs.getInt("uhit"));
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
.prepareStatement("INSERT INTO clan_warehouse SET id = ?, clan_name = ?, item_id = ?, item_name = ?, count = ?, is_equipped=0, enchantlvl = ?, is_id= ?, durability = ?, charge_count = ?, remaining_time = ?, last_used = ?, upacse = ?, upearth = ?, upwind = ?, upfire = ?, upwater = ?, uhp = ?, ump = ?, uhpr = ?, umpr = ?, umd = ?, umxd = ?, udmg = ?, uhit = ? ");
-------------------------------------------------------------------------
pstm.setTimestamp(11, item.getLastUsed()); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
pstm.setInt(17, item.getUhp());
pstm.setInt(18, item.getUmp());
pstm.setInt(19, item.getUhpr());
pstm.setInt(20, item.getUmpr());
pstm.setInt(21, item.getUmd());
pstm.setInt(22, item.getUmxd());
pstm.setInt(23, item.getUdmg());
pstm.setInt(24, item.getUhit());
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.model.L1DwarfForElfInventory.java

------------------------------------------------------------------------------
item.setLastUsed(rs.getTimestamp("last_used")); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
item.setUhp(rs.getInt("uhp"));
item.setUmp(rs.getInt("ump"));
item.setUhpr(rs.getInt("uhpr"));
item.setUmpr(rs.getInt("umpr"));
item.setUmd(rs.getInt("umd"));
item.setUmxd(rs.getInt("umxd"));
item.setUdmg(rs.getInt("udmg"));
item.setUhit(rs.getInt("uhit"));
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
.prepareStatement("INSERT INTO character_elf_warehouse SET id = ?, account_name = ?, item_id = ?, item_name = ?, count = ?, is_equipped=0, enchantlvl = ?, is_id = ?, durability = ?, charge_count = ?, remaining_time = ?, last_used = ?, upacse = ?,upearth = ?, upwind = ?, upfire = ?, upwater = ?, uhp = ?, ump = ?, uhpr = ?, umpr = ?, umd = ?, umxd = ?, udmg = ?, uhit = ? ");
-------------------------------------------------------------------------
pstm.setTimestamp(11, item.getLastUsed()); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
pstm.setInt(17, item.getUhp());
pstm.setInt(18, item.getUmp());
pstm.setInt(19, item.getUhpr());
pstm.setInt(20, item.getUmpr());
pstm.setInt(21, item.getUmd());
pstm.setInt(22, item.getUmxd());
pstm.setInt(23, item.getUdmg());
pstm.setInt(24, item.getUhit());
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.model.L1DwarfInventory.java

--------------------------------------------------------------------------------
item.setLastUsed(rs.getTimestamp("last_used")); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
item.setUhp(rs.getInt("uhp"));
item.setUmp(rs.getInt("ump"));
item.setUhpr(rs.getInt("uhpr"));
item.setUmpr(rs.getInt("umpr"));
item.setUmd(rs.getInt("umd"));
item.setUmxd(rs.getInt("umxd"));
item.setUdmg(rs.getInt("udmg"));
item.setUhit(rs.getInt("uhit"));
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
.prepareStatement("INSERT INTO character_warehouse SET id = ?, account_name = ?, item_id = ?, item_name = ?, count = ?, is_equipped=0, enchantlvl = ?, is_id = ?, durability = ?, charge_count = ?, remaining_time = ?, last_used = ?, upacse = ?, upearth = ?, upwind = ?, upfire = ?, upwater = ?, uhp = ?, ump = ?, uhpr = ?, umpr = ?, umd = ?, umxd = ?, udmg = ?, uhit = ? ");
-------------------------------------------------------------------------
pstm.setTimestamp(11, item.getLastUsed()); //검색
// ■■■■■■ 디아블로 소스 ■■■■■■
pstm.setInt(17, item.getUhp());
pstm.setInt(18, item.getUmp());
pstm.setInt(19, item.getUhpr());
pstm.setInt(20, item.getUmpr());
pstm.setInt(21, item.getUmd());
pstm.setInt(22, item.getUmxd());
pstm.setInt(23, item.getUdmg());
pstm.setInt(24, item.getUhit());
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.model.L1Attack.java

-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
weapon = _pc.getWeapon();
if (weapon != null) {
_weaponId = weapon.getItem().getItemId();
_weaponType = weapon.getItem().getType1();
_weaponAddHit = weapon.getItem().getHitModifier()
+ weapon.getHitByMagic() + (weapon.getUhit());
_weaponAddDmg = weapon.getItem().getDmgModifier() + (weapon.getUdmg());
_weaponSmall = weapon.getItem().getDmgSmall() + (weapon.getUmd());
_weaponLarge = weapon.getItem().getDmgLarge() + (weapon.getUmxd());
_weaponBless = weapon.getItem().getBless();
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.model.L1PcInventory.java

-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
public int hpRegenPerTick() {
int hpr = 0;
for (Object itemObject : _items) {
L1ItemInstance item = (L1ItemInstance) itemObject;
if (item.isEquipped()) {
hpr += item.getItem().get_addhpr() + item.getUhpr();
}
}
return hpr;
}
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
public int mpRegenPerTick() {
int mpr = 0;
for (Object itemObject : _items) {
L1ItemInstance item = (L1ItemInstance) itemObject;
if (item.isEquipped()) {
mpr += item.getItem().get_addmpr() + item.getUmpr();
}
}
return mpr;
}
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.clientpackets.C_ItemUSe.java

---------------------------------------------------------------------------
} else if (itemId == 40126 || itemId == 40098) { // 확인 스크롤
if (!l1iteminstance1.isIdentified()) {
l1iteminstance1.setIdentified(true);
pc.getInventory().updateItem(l1iteminstance1,
L1PcInventory.COL_IS_ID); //검색후 아래에 추가
// ■■■■■■ 디아블로 소스 ■■■■■■ 랜덤옵션부여부분
pc.sendPackets(new S_ItemName(l1iteminstance1));
Random random = new Random();
int c1 = random.nextInt(25) + 5; //hp <- hp옵션부여 5-29범위
int c2 = random.nextInt(25) + 5; //mp <- mp옵션부여 5-29범위
int c3 = random.nextInt(5) + 1; //hpr <- hpr옵션부여 1-5범위
int c4 = random.nextInt(5) + 1; //mpr <- mpr옵션부여 1-5범위
int c5 = random.nextInt(5) + 1; //md <- 작은몹뎀추가 1-5범위
int c6 = random.nextInt(5) + 1; //mxd <- 큰몹뎀추가 1-5범위
int c7 = random.nextInt(5) + 1; // dmg<- 추공 1-5범위
int c8 = random.nextInt(5) + 1; //hit <- 공성 1-5범위
for (int j = 0; j < random.nextInt(5) + 1; j++) //최소1에서 최대5 가지의 옵션이 부여됨
switch (random.nextInt(8) + 1 ) { //case 범위 1-8까지중에 램덤으로 한가지 선택(중복가능)
case 1: // hp

int z1 = random.nextInt(10) + 1; //50%확율로 -값부여 6을 낮추면 확율이 낮아집니다. 
if (z1 < 6) { 
c1 = -c1;
}

int newuhp = l1iteminstance1.getUhp() + c1;
l1iteminstance1.setUhp(newuhp);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UHP);
break;
case 2: //mp

int z2 = random.nextInt(10) + 1;

if (z2 < 6) { 
c2 = -c2;
}

int newump = l1iteminstance1.getUmp() + c2; 
l1iteminstance1.setUmp(newump);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UMP);
break;
case 3: //hpr

int z3 = random.nextInt(10) + 1;

if (z3 < 6) { 
c3 = -c3;
}

int newuhpr = l1iteminstance1.getUhpr() + c3; 
l1iteminstance1.setUhpr(newuhpr);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UHPR);
break;
case 4: //mpr

int z4 = random.nextInt(10) + 1;

if (z4 < 6) { 
c4 = -c4;
}

int newumpr = l1iteminstance1.getUmpr() + c4; 
l1iteminstance1.setUmpr(newumpr);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UMPR);
break;
case 5: //min dmg

int z5 = random.nextInt(10) + 1;

if (z5 < 6) { 
c5 = -c5;
}

int newumd = l1iteminstance1.getUmd() + c5; 
l1iteminstance1.setUmd(newumd);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UMD);
break;
case 6: //max dmg

int z6 = random.nextInt(10) + 1;

if (z6 < 6) { 
c6 = -c6;
}

int newumxd = l1iteminstance1.getUmxd() + c6; 
l1iteminstance1.setUmxd(newumxd);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UMXD);
break;
case 7: //max dmg

int z7 = random.nextInt(10) + 1;

if (z7 < 6) { 
c7 = -c7;
}

int newudmg = l1iteminstance1.getUdmg() + c7; 
l1iteminstance1.setUdmg(newudmg);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UDMG);
break;
case 8: //max dmg

int z8 = random.nextInt(10) + 1;

if (z8 < 6) { 
c8 = -c8;
}

int newuhit = l1iteminstance1.getUhit() + c8; 
l1iteminstance1.setUhit(newuhit);
client.getActiveChar().getInventory().updateItem(l1iteminstance1,L1PcInventory.COL_UHIT);
break;
}

// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

l1j.server.server.model.L1EquipmentSlot.java

-----------------------------------------------------------------------------
_owner.addMaxHp(-(item.get_addhp() + (equipment.getUpacse() * 2) + equipment.getUhp()));
_owner.addMaxMp(-(item.get_addmp() + equipment.getUpacse() + equipment.getUmp()));
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------
// ■■■■■■ 디아블로 소스 ■■■■■■
_owner.addMaxHp(item.get_addhp() + (equipment.getUpacse() * 2) + equipment.getUhp());
_owner.addMaxMp(item.get_addmp() + equipment.getUpacse() + equipment.getUmp());
// ■■■■■■ 디아블로 소스 ■■■■■■
-------------------------------------------------------------------------

테이블 설계

character_elf_warehouse , character_items , character_warehouse , clan_warehouse 

위 4개의 테이블에 필드 추가 

필드명 : uhp , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■

필드명 : ump , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■

필드명 : uhpr , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■

필드명 : umpr , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■

필드명 : umd , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■ 

필드명 : umxd , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■

필드명 : udmg , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■

필드명 : uhit , 타입 : int , 길이 : 11 , 십진법 : 0 , 제로허용 : ■

-------------------------------------------------------------------------------