底比斯天堂
瘋天堂私服發佈網站廣告欄位!
害怕天堂私服倒閉嗎?快使用天堂分析師!
天堂私服抽獎扭蛋物品及機率測試器
天堂私服稱號顏色製造器
瘋天堂私服發佈網站教您註冊推文收藏私服!
天堂私服血量魔力計算器
瘋天堂私服發布網站廣告贊助及爆料私服客服
教您如何不用註冊也可以推文天堂私服!
天堂私服270怪物查詢掉落資料庫
天堂私服盟徽製造器
test0428
2008-02-21 17:03

天堂怪物強化系統的java寫法!

前言:
此系統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
此系統已經做基本測試,測試後沒有問題...

資料來源:日方系統



上一篇文章:天堂大量刪除DB資料的語法!
下一篇文章:天堂線上一段時間給獲得經驗的java寫法!

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