66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
|
|
## 在线泡点 (贡献者: 邪神)
|
|||
|
|
|
|||
|
|
> 首先我们先在dp_s文件夹中建立一个项目文件夹 MyProject 方便管理
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
> 然后我们建立一个新文件 在线泡点.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");
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
> 至此一个简单的在线泡点的逻辑就写完了
|