1111
This commit is contained in:
96
Start/Example/6.md
Normal file
96
Start/Example/6.md
Normal file
@@ -0,0 +1,96 @@
|
||||
## 史诗掉落奖励 (贡献者: 凌众)
|
||||
|
||||
> 首先我们先在dp_s文件夹中建立一个项目文件夹 MyProject 方便管理
|
||||
|
||||

|
||||
|
||||
> 然后我们建立一个新文件 史诗掉落奖励.nut 用于编写我们的代码
|
||||
|
||||

|
||||
|
||||
> 然后我们在史诗掉落奖励.nut中写入以下代码
|
||||
|
||||
```
|
||||
//本例子由 凌众 提供
|
||||
//单次副本累计掉落史诗奖励
|
||||
rewardAmountMap <- {
|
||||
"4": 3000,
|
||||
"5": 5000,
|
||||
"6": 20000
|
||||
}
|
||||
//掉落特定史诗奖励 比如涂鸦笔和无影剑 顺便发全服公告 参数为 物品id ,奖励的点券,公告,公告类型
|
||||
rewardAmountOnId <- {
|
||||
"34253": [3000, "恭喜玩家[%s]在地下城深渊挑战中获得了[%s] 让我们恭喜这个b", 14],
|
||||
"27098": [5000, "恭喜玩家[%s]在地下城深渊挑战中获得了[%s] 让我们恭喜这个b", 14],
|
||||
}
|
||||
|
||||
userCounters <- {}
|
||||
dgnname <- {}
|
||||
|
||||
//离开副本
|
||||
Cb_History_DungeonLeave_Func.RindroSSDL <- function(SUser, Data) {
|
||||
local num = userCounters[SUser.GetCID()];
|
||||
local rewardAmount = 0;
|
||||
local numS = num.tostring();
|
||||
if (numS in rewardAmountMap) {
|
||||
rewardAmount = rewardAmountMap[numS]
|
||||
}
|
||||
|
||||
if (rewardAmount == 0) return;
|
||||
World.SendNotiPacketMessage("玩家" + SUser.GetCharacName() + "在" + Data[14] + "中获得了" + userCounters[SUser.GetCID()].tostring() + "件史诗装备 奖励" + rewardAmount + "点券", 14);
|
||||
|
||||
SUser.RechargeCera(rewardAmount)
|
||||
userCounters[SUser.GetCID()] <- 0;
|
||||
}
|
||||
|
||||
|
||||
//进入副本
|
||||
Cb_History_DungeonEnter_Func.RindroSSDL <- function(SUser, Data) {
|
||||
|
||||
userCounters[SUser.GetCID()] <- 0;
|
||||
|
||||
dgnname[SUser.GetCID()] <- Data[14];
|
||||
|
||||
}
|
||||
|
||||
|
||||
//拾取道具
|
||||
Cb_User_Get_Item_Leave_Func.RindroSSDL <- function(args) {
|
||||
local itemId = args[2];
|
||||
|
||||
local SUser = User(args[1]);
|
||||
local pvfitem = PvfItem.GetPvfItemById(itemId);
|
||||
|
||||
|
||||
local itemids = itemId.tostring();
|
||||
//这里发放特定道具的奖励
|
||||
if (itemids in rewardAmountOnId) {
|
||||
local rewardAmount = rewardAmountOnId[itemids][0];
|
||||
local msg = format(rewardAmountOnId[itemids][1], SUser.GetCharacName(), pvfitem.GetName());
|
||||
World.SendNotiPacketMessage(msg, 14);
|
||||
SUser.RechargeCera(rewardAmount)
|
||||
}
|
||||
|
||||
|
||||
if (!pvfitem.IsStackable() == 0) return;
|
||||
|
||||
local rarity = pvfitem.GetRarity();
|
||||
local level = pvfitem.GetUsableLevel();
|
||||
if (pvfitem == 4 && level > 10) {
|
||||
userCounters[SUser.GetCID()]++;
|
||||
}
|
||||
userCounters[SUser.GetCID()]++;
|
||||
return null;
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
> 最后我们回到dp_s文件夹中,打开Main.nut 加载我们刚才编写的逻辑
|
||||
|
||||
```
|
||||
sq_RunScript("MyProject/史诗掉落奖励.nut");
|
||||
```
|
||||
|
||||
> 至此一个简单的史诗掉落奖励的逻辑就写完了
|
||||
Reference in New Issue
Block a user