\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;
}
建議能力設定不要加太多..
人物本身太強.敵人就需要做修改.多此一舉..
適當就好了.
沒有留言:
張貼留言