58 lines
1.4 KiB
Markdown
58 lines
1.4 KiB
Markdown
## 分解券 (贡献者: 凌众)
|
||
|
||
> 首先我们先在dp_s文件夹中建立一个项目文件夹 MyProject 方便管理
|
||
|
||

|
||
|
||
> 然后我们建立一个新文件 分解券.nut 用于编写我们的代码
|
||
|
||

|
||
|
||
> 然后我们在分解券.nut中写入以下代码
|
||
|
||
```
|
||
//本例子由凌众提供
|
||
|
||
//分解券
|
||
Cb_Use_Item_Sp_Func[7577] <- function(SUser, ItemId) {
|
||
SUser.GiveItem(ItemId, 1);
|
||
|
||
local is = SUser.GetCurCharacExpertJob();
|
||
if (!is) {
|
||
SUser.SendNotiPacketMessage("未开启分解机", 8);
|
||
return;
|
||
}
|
||
local inven = SUser.GetInven();
|
||
|
||
for (local i = 9; i <= 48; i++) //<=16为一行 以此类推+8多一行
|
||
{
|
||
local itemObj = inven.GetSlot(1, i);
|
||
local itemid = itemObj.GetIndex();
|
||
|
||
//如果这个位置有道具
|
||
if (itemid != 0) {
|
||
|
||
local pvfitem = PvfItem.GetPvfItemById(itemid);
|
||
|
||
local rarity = pvfitem.GetRarity();
|
||
if (rarity <= 3) {
|
||
SUser.DisPatcher_DisJointItem_disjoint(i);
|
||
}
|
||
}
|
||
SUser.SendItemSpace(0);
|
||
|
||
}
|
||
|
||
};
|
||
|
||
```
|
||
|
||
|
||
|
||
> 最后我们回到dp_s文件夹中,打开Main.nut 加载我们刚才编写的逻辑
|
||
|
||
```
|
||
sq_RunScript("MyProject/分解券.nut");
|
||
```
|
||
|
||
> 至此一个简单的分解券的逻辑就写完了,这样其他公会的人也能互相看到了 |