dp-s_doc/Start/Example/12.md

66 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 在线泡点 (贡献者: 邪神)
> 首先我们先在dp_s文件夹中建立一个项目文件夹 MyProject 方便管理
![Alt text](../../image/6.png)
> 然后我们建立一个新文件 在线泡点.nut 用于编写我们的代码
> 然后我们在在线泡点.nut中写入以下代码
```
//贡献者: 邪神
//tips发放点券或代表可在配置中填写数值如两个选项都填写大于0的数值则点券代币都会发放如填写0则不会发放
RewardCera <- 0; // 每分钟XX点券
RewardCeraPoint <- 10; // 每分钟XX代币
total_cera_reward <- {}; // 存储每个玩家的累计点券奖励
total_ceraPoint_reward <- {}; // 存储每个玩家的累计代币奖励
function Online_rewards() {
local OnlinePlayerList = World.GetOnlinePlayer();
foreach(SUser in OnlinePlayerList) {
// 点券奖励处理
if (RewardCera > 0) {
if (!(SUser.GetUID() in total_cera_reward)) {
total_cera_reward[SUser.GetUID()] <- 0;
}
total_cera_reward[SUser.GetUID()] += RewardCera;
SUser.SendNotiPacketMessage("活跃奖励获得: " + RewardCera + "点券, 累计获得: " + total_cera_reward[SUser.GetUID()] + "点券", 14);
SUser.RechargeCera(RewardCera);
}
// 代币奖励处理
if (RewardCeraPoint > 0) {
if (!(SUser.GetUID() in total_ceraPoint_reward)) {
total_ceraPoint_reward[SUser.GetUID()] <- 0;
}
total_ceraPoint_reward[SUser.GetUID()] += RewardCeraPoint;
SUser.SendNotiPacketMessage("活跃奖励获得: " + RewardCeraPoint + "代币, 累计获得: " + total_ceraPoint_reward[SUser.GetUID()] + "代币", 14);
SUser.RechargeCeraPoint(RewardCeraPoint);
}
}
}
//默认为1分钟发放一次泡点
Timer.SetCronTask(function() {
Online_rewards();
}, "/1 * * * *");
```
> 最后我们回到dp_s文件夹中打开Main.nut 加载我们刚才编写的逻辑
```
sq_RunScript("MyProject/在线泡点.nut");
```
> 至此一个简单的在线泡点的逻辑就写完了