## 装备继承卷 (贡献者: X) > 首先我们先在dp_s文件夹中建立一个项目文件夹 MyProject 方便管理 ![Alt text](../../image/6.png) > 然后我们建立一个新文件 装备继承卷.nut 用于编写我们的代码 ![Alt text](../../image/20.png) > 然后我们在装备继承卷.nut中写入以下代码 ``` //本例子由X提供 //提示弹窗需配合233.dll插件(插件在群文件内)。不用233插件请将此方法SUser.SendNotiBox("这里写提示文字",1);修改为SUser.SendNotiPacketMessage("这里写提示文字", 8); Cb_Use_Item_Sp_Func[2023629246] <- function(SUser, ItemId) { local InvenObj = SUser.GetInven(); if (InvenObj) { //获取玩家背包类型1的第9个格子 local ItemObj1 = InvenObj.GetSlot(1, 9); local ItemObj2 = InvenObj.GetSlot(1, 10); //空装备 if (ItemObj1.IsEmpty || ItemObj2.IsEmpty) { //发送通知 SUser.SendNotiBox("请将已强化/增幅/锻造的装备放到\n[装备栏] 的第一格,要继承的装备放到第二格。", 1); //返还消耗的道具 SUser.GiveItem(ItemId, 1); return; } //获取物品ID local ItemId1 = ItemObj1.GetIndex(); local ItemId2 = ItemObj2.GetIndex(); //限制类型 10=武器;称号=11;16=腰带;15=鞋子;14=下装;13=护肩;12=上衣;项链=17;手镯=18;戒指=19;魔法石=21;辅助装备=20; local itemType1 = PvfItem.GetPvfData(ItemId1).add(141 * 4).readU32(); local itemType2 = PvfItem.GetPvfData(ItemId2).add(141 * 4).readU32(); if (itemType1 == 11 || itemType2 == 11) { SUser.SendNotiBox("继承或要继承的装备不能是称号!", 1); SUser.GiveItem(ItemId, 1); return; } if (itemType1 == 10) { if (itemType1 == itemType2) { jc(SUser, ItemId, ItemObj1, ItemObj2); } else { SUser.SendNotiBox("继承失败!\n[武器]\n只能继承至:\n[武器]", 1); SUser.GiveItem(ItemId, 1); return; } return; } if (itemType1 == 17 || itemType1 == 18 || itemType1 == 19) { if (itemType2 == 17 || itemType2 == 18 || itemType2 == 19) { jc(SUser, ItemId, ItemObj1, ItemObj2); } else { SUser.SendNotiBox("继承失败!\n[首饰]\n只能继承至:\n[首饰]", 1); SUser.GiveItem(ItemId, 1); } return; } if (itemType1 == 21 || itemType1 == 20) { if (itemType2 == 21 || itemType2 == 20) { jc(SUser, ItemId, ItemObj1, ItemObj2); } else { SUser.SendNotiBox("继承失败!\n[魔法石、辅助装备]只能继承至:\n[魔法石或辅助装备]", 1); SUser.GiveItem(ItemId, 1); return; } return; } if (itemType1 == 12 || itemType1 == 13 || itemType1 == 14 || itemType1 == 15 || itemType1 == 16) { if (itemType2 == 12 || itemType2 == 13 || itemType2 == 14 || itemType2 == 15 || itemType2 == 16) { jc(SUser, ItemId, ItemObj1, ItemObj2); } else { SUser.SendNotiBox("继承失败!\n[护肩、上衣、下装、腰带、鞋]\n只能继承至:\n[护肩、上衣、下装、腰带、鞋]", 1); SUser.GiveItem(ItemId, 1); return; } return; } } else { SUser.GiveItem(ItemId, 1); SUser.SendNotiBox("遇到错误,暂无法继承。", 1); } } function jc(SUser, ItemId, ItemObj1, ItemObj2) { SUser.SendNotiPacketMessage("开始继承了", 8); //获取物品ID local ItemId1 = ItemObj1.GetIndex(); local ItemId2 = ItemObj2.GetIndex(); //获得pvf中物品 local PvfItem1 = PvfItem.GetPvfItemById(ItemId1); local PvfItem2 = PvfItem.GetPvfItemById(ItemId2); //获取装备名称 local itemName1 = PvfItem1.GetName(); local itemName2 = PvfItem2.GetName(); //获取物品1和2的等级与品级 local itemLevel1 = PvfItem1.GetUsableLevel(); local itemLevel2 = PvfItem2.GetUsableLevel(); //限制继承装备的级别 if (itemLevel1< 60 || itemLevel2< 60) { SUser.SendNotiBox("只有大于或者等于 【60级】 的装备才可以继承。", 1); SUser.GiveItem(ItemId, 1); return; } //获取品级 local itemRarity1 = PvfItem1.GetRarity(); local itemRarity2 = PvfItem2.GetRarity(); //限制品级 if (itemRarity1< 3 || itemRarity2< 3) { SUser.SendNotiBox("只有 【神器】 以上的品级才能继承。", 1); SUser.GiveItem(ItemId, 1); return; } //获取物品1的属性 local itemType1 = PvfItem.GetPvfData(ItemId1).add(141 * 4).readU32(); local itemType2 = PvfItem.GetPvfData(ItemId2).add(141 * 4).readU32(); local forging = ItemObj1.GetForging(); //锻造 local upgrade = ItemObj1.GetUpgrade(); //强化 local amplification = ItemObj1.GetAmplification(); //增幅 local enchanting = ItemObj1.GetEnchanting(); //附魔 if (itemType1 == 10 && itemType2 == 10 && forging > 0) { ItemObj2.SetForging(forging); } if (upgrade > 0) { ItemObj2.SetUpgrade(upgrade); } if (amplification != 0) { ItemObj2.SetAmplification(amplification); } ItemObj2.SetEnchanting(enchanting); //删除原武器,若不删除就把原武器的属性清掉。 ItemObj1.Delete(); //刷新背包 SUser.SendUpdateItemList(1, 0, 9); ItemObj2.Flush(); SUser.SendUpdateItemList(1, 0, 10); SUser.SendNotiBox("装备继承成功!\n获得:\n[+" + upgrade + " " + itemName2 + "]", 1); return; } ``` ![Alt text](../../image/21.png) > 最后我们回到dp_s文件夹中,打开Main.nut 加载我们刚才编写的逻辑 ``` sq_RunScript("MyProject/装备继承卷.nut"); ``` ![Alt text](../../image/22.png) > 至此一个简单的装备继承卷的逻辑就写完了,然后我们就可以在游戏中使用道具7577来融合了