
每日登录奖励
这个模组增加了为玩家每日登录提供奖励的功能。
概述
本模组新增了向玩家发放每日登录奖励的功能。
玩家使用方法
玩家登录服务器时,如果存在可领取的奖励,将会收到提示信息
玩家可通过输入 /daily_reward claim 或 /daily claim 或 /daily c 来领取每日奖励
服务器使用方法
模组首次运行时,会在 {服务器根目录}/config/KatsiLib/DailyLoginRewards.json 生成配置文件,该文件包含控制本模组的所有相关信息。
以下是默认配置(含注释):
{
"login_rewards": [
{
"items": { # <-- 每个登录奖励都有一个"items"字段,用于直接向玩家发放物品。
"Tool_Pickaxe_Crude": 1.0, # <-- 可指定游戏内任意物品,包括模组物品。
"Tool_Hatchet_Crude": 1.0 # <-- 数字代表玩家将获得的物品数量。
},
"reward_box_keys": { # <-- 每个登录奖励也有"reward_box_keys"字段,用于-
# - 指定玩家将获得哪些奖励箱(我的另一个模组)的钥匙。
"ExampleRewardBox": 1.0 # <-- 箱子名称及玩家应获得的钥匙数量。
}
},
{
"items": {
"Tool_Hatchet_Copper": 1.0,
"Tool_Pickaxe_Copper": 1.0
},
"reward_box_keys": {} # <-- 如果不想赠送奖励箱钥匙,保持为空即可!
},
{
"items": {
"Tool_Hatchet_Iron": 1.0,
"Tool_Pickaxe_Iron": 1.0
},
"reward_box_keys": {}
},
{
"items": {}, # <-- 也可以仅赠送奖励箱钥匙,甚至可以让两个字段都为空来设置空白奖励日。
"reward_box_keys": {
"ExampleRewardBox": 5.0
}
}
],
"map": { # <-- 文件这部分用于在服务器重启时持久保存数据,存储相关玩家信息。如有需要可以编辑...
"6bdc927f-b163-41e4-954b-b8f04e4db561": { # <-- 玩家的UUID(通用唯一标识符)。可通过"/whoami <玩家名>"获取
"last_login_epoch": 20471, # <-- 玩家上次登录的纪元日数值。简而言之:该值+1为前进一天,-1为后退一天。
"login_streak": 0.0 # <-- 玩家当前的连续登录天数。
}
}
}
注意事项:
- 未领取的奖励不会保存,如果不领取登录奖励则会失去连续登录记录。
- 配置中"login_rewards"的顺序对应玩家领取奖励的天数
- 示例:第0天 -> 第一个物品,第1天 -> 第二个物品。
- 可以将某天的物品设置为0个以作为有效配置。这可用于在奖励日之间插入空白间隔。
- 为节省文件体积,地图对象不会永久保存。失去连续登录记录的玩家数据可能会从文件中移除。
核心价值
此模组旨在展示其他模组如何利用奖励箱模组,因此包含了一些高质量的有效代码 :)
具体代码:
IEventDispatcher<GrantRollEvent, GrantRollEvent> dispatcher = HytaleServer.get().getEventBus().dispatchFor(GrantRollEvent.class);
if (dispatcher.hasListener()) {
GrantRollEvent event = new GrantRollEvent(playerRef, reward_box, num_keys_to_give);
dispatcher.dispatch(event);
}
以上代码展示了如何分发'GrantRollEvent'事件,该事件会通知奖励箱模组向目标玩家发放钥匙。
GrantRollEvent需要3个参数 -> <PlayerRef = 目标玩家> <RewardBox名称 = 奖励箱名称> <num_keys_to_give = 默认为1,可省略>
奖励箱模组中包含的另一个事件是'ConsumeRollEvent',它接受与上述命令相同的参数,并为玩家抽取奖励箱。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。