2013年6月6日 星期四

【Java教學】道具融合系統

參考 p.r大大發佈的測試版本中,對DB內容介紹說明的 道具合成系統
參考威廉道具召喚系統


使用上有任何的疑問或問題點,歡迎提出來,小弟會盡量去解決..
這個系統,很多東西都是拼貼的。歡迎高手對此系統作精進


功能說明
融合道具(主) 點兩下,依照條件進行融合,產生新道具。


必須注意
附件中也有要加入的語法,請注意如下,
打開C_itemUSE.javA
找個地方插入即可,像新增物品一樣
  1.                                         //副業合成BLEND系統
  2.                         }else if (itemId == L1Blend.checkItemId(itemId)){
  3.                                         L1Blend.getItemBlend(pc, l1iteminstance, itemId);
  4.                                 }
复制代码
打開 L1PcInventory 
收尋 public int checkAddItem
在這段的上面補上
  1.         //香 武器進化 增加強化值
  2.         public int checkAddItem_LV(L1ItemInstance item, int count, int EnchantLevel) {
  3.                 return checkAddItem_LV(item, count, EnchantLevel, true);
  4.         }

  5.         public int checkAddItem_LV(L1ItemInstance item, int count, int EnchantLevel, boolean 

  6. message) {
  7.                 if (item == null) {
  8.                         return -1;
  9.                 }
  10.                 if (getSize() > MAX_SIZE
  11.                                 || (getSize() == MAX_SIZE && (!item.isStackable() || !

  12. checkItem(item
  13.                                                 .getItem().getItemId())))) { // 容量確認
  14.                         if (message) {
  15.                                 sendOverMessage(263); // 一人最多攜帶180個物品
  16.                         }
  17.                         return SIZE_OVER;
  18.                 }

  19.                 int weight = getWeight() + item.getItem().getWeight() * count / 1000 + 1;
  20.                 if (weight < 0 || (item.getItem().getWeight() * count / 1000) < 0) {
  21.                         if (message) {
  22.                                 sendOverMessage(82); // 重量高於負荷
  23.                         }
  24.                         return WEIGHT_OVER;
  25.                 }
  26.                 if (calcWeight240(weight) >= 240) {
  27.                         if (message) {
  28.                                 sendOverMessage(82); // 攜帶重量超過上限
  29.                         }
  30.                         return WEIGHT_OVER;
  31.                 }

  32.                 L1ItemInstance itemExist = findItemId(item.getItemId());
  33.                 if (itemExist != null && (itemExist.getCount() + count) > MAX_AMOUNT) {
  34.                         if (message) {
  35.                                 getOwner().sendPackets(new S_ServerMessage(166,
  36.                                                 "所持有的金幣",
  37.                                                 "超過2,000,000,000。")); // \f1%0%4%1%3%2
  38.                         }
  39.                         return AMOUNT_OVER;
  40.                 }
  41.                 
  42.                 return OK;
  43.         }
  44.     //香 武器進化 增加強化值
复制代码
1.合成成功給予的道具數量(如果是不能疊加的物品,請設定1,不然會出錯)

2.W_message,必須搭配william_system_message。若輸入為0,會自動讀取系統內預設的對話。

3.系統說明-william_system_message,若是編號與db原本的衝突,請記得核心也要更正。

4.item_Html,為融合物品條件清單,當條件不足且item_Html設定為1時,會跳出。

5.DB的etcitem裡的item_type,沒限制。

1005修正問題點,修改L1Blend.java 的融合語法公式
  1. 將 DB中 new_item_Enchantlvl 新物品強化值欄位,必須設定為1以上的錯誤
  2. 修改為 new_item_Enchantlvl 新物品強化值欄位,可設定 "0"的判斷。
  3. 重新下載1005-5更版本,請將版本中的L1Blend.java檔覆蓋即可。
复制代码
道具合成系統-db欄位說明
  1. 道具合成系統-kinlin_itemblend

  2. item_id                    物品編號
  3. name                    道具名稱        
  4. checkClass            判定職業 (0 = 不判斷、1 = 王族、2 = 騎士、3 = 法師、4 = 妖精、5 = 黑妖、6 = 龍騎士、7 = 幻術士)        
  5. checkLevel            判定等級
  6. rnd                    合成機率        
  7. checkItem            觸發融合的道具
  8. hpConsume            判斷扣損血量
  9. mpConsume            判斷扣損魔力
  10. material                              合成需要媒介
  11. material_count            合成需要媒介數量
  12. material_2            合成需要媒介2
  13. material_2_count            合成需要媒介數量2
  14. material_3            合成需要媒介3
  15. material_3_count            合成需要媒介數量3
  16. new_item                              合成成功給予的道具
  17. new_item_counts            合成成功給予的道具數量(如果是不能疊加的物品,請設定1,不然會出錯)
  18. new_Enchantlvl_SW    新道具(武器或防具)強化值是否隨機的開關   隨機:1 固定:0        
  19. new_item_Enchantlvl   新道具的強化值                
  20. removeItem            判斷是否刪除物品       是:1 否:0
  21. W_message            設定顯示對話輸入william_system_message數值即可,EX:1178
  22. item_Html                       判斷融合條件不足時,是否開啟融合條件清單   開啟:1 不開啟:0
复制代码

沒有留言:

張貼留言