73 lines
2.6 KiB
Markdown
73 lines
2.6 KiB
Markdown
|
|
> 首先我们先在dp_s文件夹中建立一个项目文件夹 MyProject 方便管理
|
|||
|
|
|
|||
|
|

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

|
|||
|
|
|
|||
|
|
> 然后我们在ForgeEnhancement.nut中写入以下代码
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ForgingEnhancementStr1 <- "装备栏1号位没有装备.."
|
|||
|
|
ForgingEnhancementStr2 <- "锻造成功,当前武器锻造[+%d]"
|
|||
|
|
ForgingEnhancementStr3 <- "锻造失败,当前武器锻造[+%d]"
|
|||
|
|
ForgingEnhancementStr4 <- "装备锻造等级已为最高等级,无法继续锻造.."
|
|||
|
|
ForgingEnhancementMaxForgingLevel <- 31
|
|||
|
|
Cb_Use_Item_Sp_Func[7577] <- function(SUser, ItemId) {
|
|||
|
|
//定义锻造成功率
|
|||
|
|
local DLevel = 60;
|
|||
|
|
//获取玩家背包
|
|||
|
|
local InvenObj = SUser.GetInven();
|
|||
|
|
//如果背包存在
|
|||
|
|
if (InvenObj) {
|
|||
|
|
//获取玩家背包类型1的第9个格子
|
|||
|
|
local ItemObj = InvenObj.GetSlot(1, 9);
|
|||
|
|
//空装备
|
|||
|
|
if (ItemObj.IsEmpty) {
|
|||
|
|
//发送通知
|
|||
|
|
SUser.SendNotiPacketMessage(ForgingEnhancementStr1, 8);
|
|||
|
|
//返还消耗的道具
|
|||
|
|
SUser.GiveItem(ItemId, 1);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
//获取原装备的锻造等级
|
|||
|
|
local OldLevel = ItemObj.GetForging();
|
|||
|
|
//判断锻造等级是否大于设定的最大等级
|
|||
|
|
if (OldLevel >= ForgingEnhancementMaxForgingLevel) {
|
|||
|
|
//发送通知
|
|||
|
|
SUser.SendNotiPacketMessage(ForgingEnhancementStr4, 8);
|
|||
|
|
//返还消耗的道具
|
|||
|
|
SUser.GiveItem(ItemId, 1);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
//获得0-100的随机数
|
|||
|
|
local RandNum = MathClass.Rand(0, 100);
|
|||
|
|
//判断随机数是否小于设定的几率
|
|||
|
|
if (RandNum <= DLevel) {
|
|||
|
|
//将装备的锻造等级+1
|
|||
|
|
ItemObj.SetForging(OldLevel + 1);
|
|||
|
|
//刷写装备
|
|||
|
|
ItemObj.Flush();
|
|||
|
|
//刷新玩家背包
|
|||
|
|
SUser.SendUpdateItemList(1, 0, 9);
|
|||
|
|
//发送通知
|
|||
|
|
SUser.SendNotiPacketMessage(format(ForgingEnhancementStr2, (OldLevel + 1)), 8);
|
|||
|
|
} else {
|
|||
|
|
//发送通知
|
|||
|
|
SUser.SendNotiPacketMessage(format(ForgingEnhancementStr3, OldLevel), 8);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
> 最后我们回到dp_s文件夹中,打开Main.nut 加载我们刚才编写的逻辑
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
sq_RunScript("MyProject/ForgingEnhancement.nut");
|
|||
|
|
```
|
|||
|
|

|
|||
|
|
|
|||
|
|
> 至此一个简单的锻造提升卷的逻辑就写完了,然后我们就可以在游戏中使用道具来提升武器锻造等级了
|