瘋天堂私服發佈網站廣告欄位!
瘋天堂私服發佈網站您最佳的選擇!
免費曝光天堂私服的方式!
害怕天堂私服倒閉嗎?快使用天堂分析師!
天堂私服抽獎扭蛋物品及機率測試器
天堂私服稱號顏色製造器
瘋天堂私服發佈網站教您註冊推文收藏私服!
天堂私服血量魔力計算器
瘋天堂私服發布網站廣告贊助及爆料私服客服
教您如何不用註冊也可以推文天堂私服!
天堂私服270怪物查詢掉落資料庫
天堂私服盟徽製造器
test0428
2007-12-27 03:24

天堂裝備附加能力的java教學!

\RevXXXX\src\l1j\server\server\model\Instance\L1ItemInstance <===檔案位置

在此以追加體質做說明(設定裝備內衣)

第一步驟

新增以下程式碼...

public byte getcon(){//追加體質(T)
byte getcon = 0;
byte conup = 0;
if((getItemId() >= 20001 && getItemId() <= 22000)
|| (getItemId() >= 120001 && getItemId() <= 122000)
|| (getItemId() >= 220001 && getItemId() <= 222000)){
if(getItem().getType() == 3 ){//(T)
if(getEnchantLevel()<= getItem().get_safeenchant()){
getcon = 0;
return getcon;
}
if(getEnchantLevel()> getItem().get_safeenchant()+3){
getcon = 0;
conup = (byte) (getEnchantLevel() - (getItem().get_safeenchant()+2));
getcon += 1 + (conup /2);
return getcon;
}
if(getEnchantLevel()> getItem().get_safeenchant()){
getcon = 1;
return getcon;
}
}else{
getcon = 0;
return getcon;
}
}
getcon = 0;
return getcon;
}


===================================================
第二步驟

找到以下地方.

if (getItem().get_addstr() != 0 || getstr()!= 0) {
os.writeC(8);//str力量
os.writeC(getItem().get_addstr()+ getstr());
}
if (getItem().get_adddex() != 0 || getdex()!= 0) {
os.writeC(9);//dex敏捷
os.writeC(getItem().get_adddex()+ getdex());
}
if (getItem().get_addcon() != 0 || getcon()!= 0) {
os.writeC(10);//con體質
os.writeC(getItem().get_addcon()+ getcon());
}
if (getItem().get_addwis() != 0 || getwis()!= 0) {
os.writeC(11);//wis精神
os.writeC(getItem().get_addwis()+ getwis());
}
if (getItem().get_addint() != 0 || getint()!= 0) {
os.writeC(12);//int智力
os.writeC(getItem().get_addint()+ getint());
}

將這些原本的程式碼.
if (getItem().get_addcon() != 0) {
os.writeC(10);
os.writeC(getItem().get_addcon());

修改成這樣.
if (getItem().get_addcon() != 0 || getcon()!= 0) {
os.writeC(10);//con體質
os.writeC(getItem().get_addcon()+ getcon());

完成以上的步驟.裝備過安定值後就會增加所設定的體質(上面設定的裝備是內衣)

不過目前只是好看用.需再修改以下的程式碼.讓能力有實裝.

=====================================================

第三步驟

修改以下的程式碼

\RevXXXX\src\l1j\server\server\model\L1EquipmentSlot <===檔案位置

裝備時追加能力.

增加<====所標示的程式碼.

public void set(L1ItemInstance equipment) {
L1Item item = equipment.getItem();
if (item.getType2() == 0) {
return;
}

if (item.get_addhp() != 0) {
_owner.addMaxHp(item.get_addhp());
}
if (item.get_addmp() != 0) {
_owner.addMaxMp(item.get_addmp());
} //追加武防捲能力
_owner.addStr(item.get_addstr()+ equipment.getstr());<====要修改的位置
_owner.addCon(item.get_addcon()+ equipment.getcon());<====要修改的位置
_owner.addDex(item.get_adddex()+ equipment.getdex());<====要修改的位置
_owner.addInt(item.get_addint()+ equipment.getint());<====要修改的位置
_owner.addWis(item.get_addwis()+ equipment.getwis());<====要修改的位置
if (item.get_addwis() != 0) {
_owner.resetBaseMr();
}
_owner.addCha(item.get_addcha()+ equipment.getcha());

int addMr = 0;

=============================================================
第四步驟

修改以下的程式碼


移除時扣除能力.

增加<====所標示的程式碼.

public void remove(L1ItemInstance equipment) {
L1Item item = equipment.getItem();
if (item.getType2() == 0) {
return;
}

if (item.get_addhp() != 0) {
_owner.addMaxHp(-item.get_addhp());
}
if (item.get_addmp() != 0) {
_owner.addMaxMp(-item.get_addmp());
} //追加武防捲能力
_owner.addStr((byte) -(item.get_addstr()+ equipment.getstr()));
_owner.addCon((byte) -(item.get_addcon()+ equipment.getcon()));
_owner.addDex((byte) -(item.get_adddex()+ equipment.getdex()));
_owner.addInt((byte) -(item.get_addint()+ equipment.getint()));
_owner.addWis((byte) -(item.get_addwis()+ equipment.getwis()));
if (item.get_addwis() != 0) {
_owner.resetBaseMr();
}
_owner.addCha((byte) -(item.get_addcha()+ equipment.getcha()));

int addMr = 0;
addMr -= equipment.getMr();

修改完成後..
編譯放入核心即完成..

以上的設定有個小BUG
防具裝在身上時.加防捲過安定值後.沒有即時更新能力(在此並沒有寫這些)
卸裝時會減少能力.
重新登入即可解決..(看不過去想修正也行..請便)

=========================================================================

第一步驟說明..

public byte getcon(){//追加體質(T)
byte getcon = 0;
byte conup = 0;
判斷裝備是否是防具類型.
if((getItemId() >= 20001 && getItemId() <= 22000)
|| (getItemId() >= 120001 && getItemId() <= 122000)
|| (getItemId() >= 220001 && getItemId() <= 222000)){
判斷類型2.哪一種防具.
1.頭 2.盔甲 3.T 4.鬥篷 5.手套 6.靴 7.盾 8.護身符 9.戒指
10.腰帶 11.戒指2 12.耳環
if(getItem().getType() == 3 ){//(T)
安定值內不加能力
if(getEnchantLevel()<= getItem().get_safeenchant()){
getcon = 0;
return getcon;
}
超過安定值3後.每過2會+1能力
if(getEnchantLevel()> getItem().get_safeenchant()+3){
getcon = 0;
conup = (byte) (getEnchantLevel() - (getItem().get_safeenchant()+2));
getcon += 1 + (conup /2);
return getcon;
}
過安定值體質+1
if(getEnchantLevel()> getItem().get_safeenchant()){
getcon = 1;
return getcon;
}
}else{
getcon = 0;
return getcon;
}
}
getcon = 0;
return getcon;
}


建議能力設定不要加太多..
人物本身太強.敵人就需要做修改.多此一舉..
適當就好了.



上一篇文章:天堂衝暈機率設定的java教學!
下一篇文章:天堂屠龍副本惡搞版的java教學!

分享文章:分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!