前言:
此系統Idea來源是某天無聊在逛某些伺服器論壇的時候,看到某伺服器有此功能,想說還不錯,我想各遊戲應該都有這種問題,就是遊戲玩到最後boss都變得跟垃圾一樣,寫這個讓遊戲能夠平衡一些,不過強化部分只有加入「修改力量」而已,其餘部分請自行參考,進行修改,由於困難度會隨著怪物不斷死亡而強化,所以,可以再延伸出,提高物品掉落率的設定等等。
修改核心檔案:L1Npc / L1NpcInstance / L1MonsterInstance / NpcTable
修改資料庫檔案:npc
--------------------------------------------以下為教學-------------------------------------------
L1Npc.Java
在最下面加入
//怪物強化
private int _dcenhance;
public int get_dc_Enhance() {
return _dcenhance;
}
public void set_dc_Enhance(int i) {
_dcenhance = i;
}
private int _currentdc;
public int get_current_dc() {
return _currentdc;
}
public void set_current_dc(int i) {
_currentdc = i;
}
//怪物強化
L1NpcInstance.Java
在最下面加入
//怪物強化
public int getDcEnhance() {
return _npcTemplate.get_dc_Enhance();
}
public void setDcEnhance(int i) {
_npcTemplate.set_dc_Enhance(i);
}
public int getCurrentDc() {
return _npcTemplate.get_current_dc();
}
public void setCurrentDc(int i) {
_npcTemplate.set_current_dc(i);
}
public void setStr(byte i) {
_npcTemplate.set_str(i);
}
//怪物強化
NpcTable.Java
搜尋
npc.setCantResurrect(rs.getBoolean("cant_resurrect"));
在下面加入
//怪物強化
npc.set_current_dc(rs.getInt("current_dc"));
npc.set_dc_Enhance(rs.getInt("dc_enhance"));
//怪物強化
在最下面加入
//怪物強化
public static void save(L1MonsterInstance mon) {
Connection con = null;
PreparedStatement pstm = null;
try {
con = L1DatabaseFactory.getInstance().getConnection();
pstm = con.prepareStatement("UPDATE npc SET lvl= ?"
+ ", str= ?, current_dc= ? WHERE npcid=?");
pstm.setInt(1, mon.getLevel());
pstm.setInt(2, mon.getStr());
pstm.setInt(3, mon.getCurrentDc());
pstm.setInt(4, mon.getNpcId());
pstm.execute();
}
catch (Exception e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
finally {
SQLUtil.close(pstm);
SQLUtil.close(con);
}
}
//怪物強化
L1MonsterInstance.Java
搜尋第一次
if (isDead()) {
下面加入
//怪物強化
if (getDcEnhance() != 0 && (getCurrentDc()%getDcEnhance()) == 0 && getCurrentDc() != 0) {
L1World.getInstance().broadcastPacketToAll(new S_SystemMessage(getName()+" 因被打死太多次,努力練功,現在變強了!!!"));
setStr((byte)(getStr()+100));
}
this.setCurrentDc(getCurrentDc()+1);
NpcTable.save(this);
//怪物強化
以上為Java修改
以下為資料庫修改
進入npc資料表 -> 設計資料表 -> 在最下面新增
current_dc int 11 0 不打勾 預設值0
dc_enhance int 11 0 不打勾 預設值0
-------------------------------------------以上為教學-------------------------------------------
使用方法: 資料表npc的dc_enhance欄位是設定死幾次就強化一次,適合使用在boss
此系統已經做基本測試,測試後沒有問題...
資料來源:日方系統