Msure 发表于 2018-6-11 20:14:46

签到系统【连续签到天数/未签到天数显示、自动重置校准时间、连续签到奖励】

本帖最后由 Msure 于 2019-2-1 19:22 编辑

今天给大家带来的是签到系统一般租赁服里的签到系统都是每天计时(通过每秒20gt)重置一次但是一般其他游戏里都会有显示连续签到天数之类的所以这次带来了类似功能的签到系统如图:可以显示连续签到天数,并达到一定天数给予额外奖励若数天不签到,再次签到时会显示未签到天数
原理:(1)重置和校准        和计时重置不同,计时重置会由于卡顿造成时间偏差,还需要手动设置当前时间。       受到素学姐丢人钟的原理启发,使用testforblock来读取现实中的时间。       (执行命令时返回信息前会有一个时间,通过testforblock来检测命令方块的时间是否到达某时间点,再执行命令)(2)连续签到天数和未签到天数       创建了一个day记分板来记录当前天数,每天24点重置时都会给这个记分板分数+1。当玩家签到时,会把当前天数和上次签到时记录的天数相减,通过差值来判断玩家是否每天连续签到。同时: 差值=未签到天数+1即可得到未签到天数。
两个签到版本:为了照顾服务器资源,做了两个签到,一个低配版(乞丐版),一个正常版。      低配版没有显示连续签到、未签到天数、给予连续签到奖励的功能,只能每天让玩家签到一次,给予固定的签到奖励。但是命令较少,占用资源少。      正常版功能如开始的展示图所示,所有功能一应俱全。正常版的连续签到奖励只写了第7天的,需要更多天数的可插入命令方块自己添加(插入位置命令方块内有文字说明)。
指令:rcb:/scoreboard players enable @a click
/give @a diamond 1 0
/execute @a ~ ~ ~ scoreboard players operation @p day1 = @p day
/execute @a ~ ~ ~ scoreboard players operation @p day1 -= @p day2
/scoreboard players set @a day3 0
/scoreboard players add @a day3 1
/scoreboard players remove @a day1 1
/execute @a ~ ~ ~ tellraw @p {"text":"","extra":[{"text":"签到成功!您之前有 ","color":"gold","bold":true},{"score":{"name":"@p","objective":"day1"},"color":"red","bold":true},{"text":" 天未签到。","color":"gold","bold":true}]}
/execute @a ~ ~ ~ tellraw @p {"text":"","extra":[{"text":"签到成功!您已经连续签到 ","color":"gold","bold":true},{"score":{"name":"@p","objective":"day3"},"color":"green","bold":true},{"text":" 天。","color":"gold","bold":true}]}
/execute @a ~ ~ ~ tellraw @p {"text":"","extra":[{"text":"今天已经签过到了!当前连续签到天数: ","color":"red","bold":true},{"score":{"name":"@p","objective":"day3"},"color":"green","bold":true},{"text":" 天。","color":"red","bold":true}]}
/give @a diamond_block 1 0
/give @a 15天签到奖励,可在此继续插入命令方块自定义连续签到奖励
/execute @a ~ ~ ~ scoreboard players operation @p day2 = @p day
/scoreboard players set @a sign 1
/scoreboard players set @a click 0
/gamemode
/testforblock ~ ~-1 ~ chain_command_block 1 {LastOutput:"{\"extra\":[{\"color\":\"red\",\"translate\":\"commands.generic.usage\",\"with\":[{\"translate\":\"commands.gamemode.usage\"}]}],\"text\":\" \"}"}
cond:/scoreboard players set * sign 0
cond:/setblock ~ ~4 ~ minecraft:redstone_block
/testforblock ~ ~-4 ~ chain_command_block 1 {LastOutput:"{\"extra\":[{\"color\":\"red\",\"translate\":\"commands.generic.usage\",\"with\":[{\"translate\":\"commands.gamemode.usage\"}]}],\"text\":\" \"}"}
cond:/setblock ~ ~2 ~ minecraft:air
icb:/scoreboard players add * day 1/summon falling_block ~ ~1.5 ~ {Time:1,Block:"minecraft:redstone_block",Motion:,Passengers:[{id:falling_block,Time:1,Block:"minecraft:activator_rail",Passengers:[{id:commandblock_minecart,Command:"blockdata ~ ~-2 ~ {auto:0b,Command:\"\"}"},{id:commandblock_minecart,Command:"/scoreboard objectives add day dummy"},{id:commandblock_minecart,Command:"/scoreboard objectives add day1 dummy"},{id:commandblock_minecart,Command:"/scoreboard objectives add day2 dummy"},{id:commandblock_minecart,Command:"/scoreboard objectives add day3 dummy"},{id:commandblock_minecart,Command:"/scoreboard objectives add sign dummy"},{id:commandblock_minecart,Command:"/scoreboard objectives add click trigger"},{id:commandblock_minecart,Command:"setblock ~2 ~3 ~0 chain_command_block 1 replace {Command:\"/scoreboard players tag @a add sign\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~2 ~0 chain_command_block 1 replace {Command:\"/scoreboard players add @a sign 0\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~1 ~0 chain_command_block 1 replace {Command:\"/scoreboard players add @a day3 0\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~0 ~0 chain_command_block 1 replace {Command:\"/scoreboard players add @a day2 0\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~-1 ~0 chain_command_block 1 replace {Command:\"/scoreboard players add @a day1 0\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~2 ~-2 ~0 repeating_command_block 1 replace {Command:\"/scoreboard players set @a day 1\",auto:1b}"},{id:commandblock_minecart,Command:"setblock ~ ~1 ~ command_block 0 replace {auto:1b,Command:\"fill ~ ~ ~ ~ ~-2 ~ air\"}"},{id:commandblock_minecart,Command:"kill @e"}]}]}
OOC:回复后查看原网页及ooc**** Hidden Message ******请在网页论坛浏览*
各位看官给个赞吧!




此生6666666 发表于 2018-6-12 10:36:54

666

DHK 发表于 2018-6-12 10:37:03

现在帖子审核要这么久的吗,这竟然是昨天发的帖子#152
丢人钟#127
要不要前几天突然提起,我都忘了还有这玩意
另外不放个原帖地址吗

时空植物星 发表于 2018-6-12 10:40:49

本帖最后由 时空植物星 于 2018-6-12 11:01 编辑

前排QWQ,手写OOC好麻烦QWQ

时空植物星 发表于 2018-6-12 10:48:55

路过支持一下QWQ

小红娘QwQ 发表于 2018-6-12 10:59:38

本帖最后由 小红娘QwQ 于 2018-6-12 16:08 编辑

=w=支持支持!

时空植物星 发表于 2018-6-12 11:00:52

小红娘QwQ 发表于 2018-6-12 10:59
=w=支持支持!QAQ我的地图也在制作中啦=3=各位慢慢期待吧...
《巨人城废墟-MC》超还原!叫上你的好朋友一起 ...

纯属植入qwq#152

Msure 发表于 2018-6-12 11:02:15

DHK 发表于 2018-6-12 10:37
现在帖子审核要这么久的吗,这竟然是昨天发的帖子
丢人钟
要不要前几天突然提起,我都忘了还有这 ...

放链接怕被和谐呀
审核时间实在太长了懒得编辑了
在此隔空感谢一下大佬吧

农民 发表于 2018-6-12 11:55:27

很好用 直接读取系统时间 厉害了\( ̄︶ ̄)/

Msure 发表于 2018-6-12 12:12:20

时空植物星 发表于 2018-6-12 10:40
前排QWQ,手写OOC好麻烦QWQ

所以都改用pcb了

红石”凶“ 发表于 2018-6-12 12:26:23

围观dalao

雾周 发表于 2018-6-12 13:14:57

有了这个,雾周论坛签到是不是就不会断了,滑稽

小白丶Mratin 发表于 2018-6-12 16:24:32

一个简单的签到非要用execute来实现

Msure 发表于 2018-6-12 16:44:55

小白丶Mratin 发表于 2018-6-12 16:24
一个简单的签到非要用execute来实现

我这是为了显示出连续签到天数不得不做分数运算

梓凌墨白 发表于 2018-6-12 16:45:18

0.0
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 签到系统【连续签到天数/未签到天数显示、自动重置校准时间、连续签到奖励】