查看: 3524|回复: 12

點石成金卷軸

[复制链接]

10

主题

60

帖子

459

积分

中级会员

Rank: 3Rank: 3

积分
459
发表于 2019-8-9 22:44:19 | 显示全部楼层 |阅读模式
天堂java技術教學-點石成金卷軸
    卷軸介紹:
        使用限制:
           1.只對武器有效.
           2.該武器有祝福才可以使用.
        使用成功:
          例:白色的騎士范德之劍的ID(59),會變成祝福的騎士范德之劍ID(100059),對詛咒的物品也可以使用
          使用後會保留原武器的強化等級,屬性(火、地、風、水)

1、核心代碼增加
代碼增加位置:
1). 類位置:com/lineage/server/module/item/etcitem/reel
2).新增加類名字:MIEEctWeaponBless
3).將編譯過的 MIEEctWeaponBless.class文件放入Server_Game.jar中
4).下面是核心代碼
  • package com.lineage.server.module.item.etcitem.reel;
  • import main.clientCheck.C_ItemName;
  • import com.lineage.server.datatables.readonly.DTItem;
  • import com.lineage.server.datatables.readwrite.DTCharItem;
  • import com.lineage.server.identity.message.IDServerMsg;
  • import com.lineage.server.interaction.net.packet.server.SPItemStatus;
  • import com.lineage.server.interaction.net.packet.server.msg.SPMsgServer;
  • import com.lineage.server.model.Instance.L1ItemInstance;
  • import com.lineage.server.model.Instance.L1PcInstance;
  • import com.lineage.server.module.MClsExecutorItem;
  • import com.lineage.server.templates.TMPItem;
  • import com.lineage.server.utils.UCirculateItem;
  • public class MIEEctWeaponBless extends MClsExecutorItem {
  •         private MIEEctWeaponBless() {
  •         }
  •         public static MClsExecutorItem get() {
  •                 return new MIEEctWeaponBless();
  •         }
  •         /**
  •          * 道具物件執行
  •          *
  •          * @param data
  •          *            參數
  •          * @param pc
  •          *            執行者
  •          * @param item
  •          *            物件
  •          */
  •         @Override
  •         public void execute(final int[] data, final L1PcInstance pc, final L1ItemInstance item) {
  •                 final int targObjId = data[0]; // 對象OBJID
  •                 final L1ItemInstance tgItem = pc.getInventory().getItem(targObjId); // 目標物品
  •                 if (tgItem == null) {
  •                         return;
  •                 }
  •                 final int bless = tgItem.getItem().get_bless();
  •                 boolean isErr = false;
  •                 // 取得物件觸發事件
  •                 final int use_type = tgItem.getItem().get_useType();
  •                 switch (use_type) {
  •                 case 1:// 武器
  •                         if (bless == 0) {
  •                                 isErr = true;
  •                         }
  •                         break;
  •                 default:
  •                         isErr = true;
  •                         break;
  •                 }
  •                 if (isErr) {
  •                         pc.sendPacket(new SPMsgServer(79));// 没有任何事发生
  •                         return;
  •                 }
  •                 // 防盜狀態
  •                 if (pc.get_other().get_burglarTmp()) {
  •                         // 3064 目前人物背包為防盜狀態,物品無法轉移、無法刪除、無法強化。
  •                         pc.sendPacket(new SPMsgServer(IDServerMsg.BAG_READONLY));
  •                         return;
  •                 }
  •                 int blessId = 0;
  •                 if (bless == 1) { // 一般武器 ID前面加1
  •                         String s = "0";
  •                         switch (String.valueOf(tgItem.getItemId()).length()) {
  •                         case 1:
  •                                 s = "10000";
  •                                 break;
  •                         case 2:
  •                                 s = "1000";
  •                                 break;
  •                         case 3:
  •                                 s = "100";
  •                                 break;
  •                         case 4:
  •                                 s = "10";
  •                                 break;
  •                         case 5:
  •                                 s = "1";
  •                                 break;
  •                         }
  •                         blessId = Integer.parseInt(s + String.valueOf(tgItem.getItemId()));
  •                 } else if (bless == 2) { // 詛咒武器 ID前面2換成1
  •                         String str = String.valueOf(tgItem.getItemId());
  •                         blessId = Integer.parseInt("1" + str.substring(1));
  •                 }
  •                 final TMPItem blessItem = DTItem.get().getTemplate(blessId);
  •                 if (blessItem == null) {
  •                         pc.sendPacket(new SPMsgServer(79));// 没有任何事发生
  •                         return;
  •                 }
  •                 pc.getInventory().removeItem(item, 1);
  •                 pc.getInventory().removeItem(tgItem, 1);
  •                 L1ItemInstance targeItem = DTItem.get().createItem(blessId);
  •                 targeItem.setEnchantLevel(tgItem.getEnchantLevel());
  •                 targeItem.setAttrEnchantLevel(tgItem.getAttrEnchantLevel());
  •                 targeItem.setAttrEnchantKind(tgItem.getAttrEnchantKind());
  •                 targeItem.setColor(tgItem.getColor());
  •                 targeItem = UCirculateItem.storeItem(pc.getInventory(), targeItem);
  •                 pc.sendPacket(new C_ItemName(targeItem));
  •                 pc.sendPacket(new SPItemStatus(targeItem));
  •                 try {
  •                         new DTCharItem().updateItemColor(targeItem);
  •                 } catch (Exception e) {
  •                         // ...
  •                 }
  •         }
  • }


[color=rgb(15, 167, 255) !important]複製代碼


回复

使用道具 举报

4

主题

23

帖子

31

积分

注册会员

Rank: 2

积分
31
QQ
发表于 2019-8-16 12:21:21 | 显示全部楼层
感 谢 分 享
回复

使用道具 举报

2

主题

39

帖子

221

积分

中级会员

Rank: 3Rank: 3

积分
221
发表于 2019-11-8 16:07:31 | 显示全部楼层
感謝大大分享
回复 支持 反对

使用道具 举报

0

主题

152

帖子

175

积分

中级会员

Rank: 3Rank: 3

积分
175
发表于 2019-11-9 23:46:07 | 显示全部楼层
6666666666666666666
回复 支持 反对

使用道具 举报

1

主题

121

帖子

114

积分

中级会员

Rank: 3Rank: 3

积分
114
发表于 2019-11-29 16:35:33 | 显示全部楼层
厉害厉害厉害厉害厉害
回复 支持 反对

使用道具 举报

1

主题

37

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2019-12-7 14:04:23 | 显示全部楼层
       这个可以的
回复 支持 反对

使用道具 举报

1

主题

135

帖子

1530

积分

金牌会员

Rank: 6Rank: 6

积分
1530
发表于 2019-12-31 19:14:03 | 显示全部楼层
我只会打6666666
回复 支持 反对

使用道具 举报

0

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2020-6-28 19:59:34 | 显示全部楼层
謝謝分享哦
回复 支持 反对

使用道具 举报

0

主题

85

帖子

138

积分

中级会员

Rank: 3Rank: 3

积分
138
发表于 2021-2-22 21:48:56 | 显示全部楼层
感谢大佬分享
回复 支持 反对

使用道具 举报

0

主题

185

帖子

185

积分

中级会员

Rank: 3Rank: 3

积分
185
发表于 2021-12-20 16:12:57 | 显示全部楼层
感谢分享 学习中
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表