当前位置: 我的世界 > 游戏攻略 > 正文

大佬教大家在游戏中有偿召唤其他玩家

小编:铅笔时间:2017-10-01 08:15回到游戏园首页

  今天小编为大家带来我的世界命令方块教程,教大家在游戏中有偿召唤其他玩家,那么这个功能怎么实现呢?一起来看看吧!

  作者:翔翼之刃

  先介绍一下要实现的功能:

  大召唤术:耗费5金币使用(金币为游戏内管理员自行设定的通货,金币不足则提示无法使用)

  使用后除使用者以外的人在聊天框可以看到召唤信息。

  在大召唤术被使用的10秒内,若其他人点击召唤信息则回被传送到使用者位置,并扣除5金币(若金币<5则提示金币不足并取消传送)

  这里为了避免召唤混乱或重复使用,限定当大召唤术触发期间任何人不能重复使用大召唤术。

  另外,如果大召唤术被使用超过10秒,或使用者中途退出游戏,则传送者点击聊天框命令将无任何提示,且不会传送,但也不会扣除金币。

  布置如图(也可以考虑做成竖向的):

  使用的计分板目标:

  zh(召唤,类型为trigger)

  cs(传送,类型为trigger)

  zhtrue(标记正在使用大召唤术的玩家,类型为dummy)

  tptime(大召唤术剩余时间,类型为dummy)

  jb(金币,类型为dummy)

  前置命令:

  /gamerule commandBlockOutput false //取消命令方块在聊天框的输出

  /gamerule sendCommandFeedback false //取消所有命令结果在聊天框的输出,但有潜在安全隐患,慎用

  /scoreboard objectives add zh trigger

  /scoreboard objectives add cs trigger

  /scoreboard objectives add zhtrue dummy

  /scoreboard objectives add tptime dummy

  /scoreboard objectives add jb dummy

  /scoreboard players set tptime tptime 0 //初始化tptime

  【计时器(tptime)】

  scoreboard players test tptime tptime 1 200 //(循环)检测tptime是否>=1

  scoreboard players remove tptime tptime 1 //(条件制约)tptime减1

  scoreboard players test tptime tptime 0 0 //(条件制约)检测tptime是否为0

  scoreboard players set * zhtrue 0 //(条件制约)将所有人的zhtrue设置为0

  【被传送者】

  tellraw @a[score_cs=1,score_cs_min=1,score_jb=4] {"text":"金币不足,无法传送!"} //(循环)(若cs=1的人jb<5)提示金币不足

  tp @a[score_cs=1,score_cs_min=1,score_jb_min=5,score_zhtrue=0] @a[score_zhtrue_min=1] //将cs=1,jb>=5,zhtrue=0的人传送到zhtrue=1的人处

  tellraw @a[score_cs=1,score_cs_min=1,score_jb_min=5] {"text":"传送成功!"} //(条件制约)对cs=1,jb>=5的人显示成功信息

  scoreboard players remove @a[score_cs=1,score_cs_min=1,score_jb_min=5] jb 5 //(条件制约)将cs=1,jb>=5的人的jb减5

  scoreboard players set @a[score_cs_min=1] cs 0 //将cs=1的人的cs分数设置为0

  【使用大召唤术(含条件检测)】

  tellraw @a[score_zh=1,score_zh_min=1,score_jb=4] {"text":"金币不足,无法使用大召唤术!"} //(循环)(若zh=1的人jb<5)提示金币不足

  scoreboard players test tptime tptime 1 200 //检测tptime是否不为0

  tellraw @a[score_zh=1,score_zh_min=1,score_jb_min=5] {"text":"当前有人正在使用大召唤术,请稍后使用!"}

  //(条件制约)对zh=1,jb>=5的人显示提示信息

  scoreboard players test tptime tptime 0 0 //检测tptime是否为0

  scoreboard players set @a zhtrue 0 //(条件制约)将所有人的zhtrue设置为0

  scoreboard players set @p[score_zh=1,score_zh_min=1,score_jb_min=5] zhtrue 1 //(条件制约)将zh=1,jb>=5的人的zhtrue设置为1

  tellraw @a[score_zhtrue_min=1] {"text":"成功使用大召唤术!"} //(条件制约)对zhtrue=1的人显示对应信息

  scoreboard players remove @a[score_zhtrue_min=1] jb 5 //(条件制约)将zhtrue=1的人的jb减5

  scoreboard players set tptime tptime 200 //(条件制约)tptime设为200(10秒)

  tellraw @a[score_zhtrue=0] ["",{"selector":"@a[score_zhtrue_min=1]"},{"text":"花费5金币开启了大召唤术!请在10秒内","color":"green"},{"text":"点击传送","underlined":true,"color":"red","clickEvent":{"action":"run_command","value":"/trigger cs set 1"}},{"text":"到ta身边吧!","color":"green"}]

  //(条件制约)对使用者以外的人在聊天框显示传送指令

  scoreboard players set @a[score_zh=1,score_zh_min=1] zh 0 //将zh=1的人的zh分数设置为0

  【允许触发器可用】

  scoreboard players enable @a cs //(循环)启用cs

  scoreboard players enable @a zh //(循环)启用zh

  触发大召唤术的方法:任何玩家使用命令/trigger zh set 1(可以将命令编入工具书中,玩家点击书中文字触发大召唤术)

  注意事项:所有的循环命令方块要设置成“保持开启”,并且所有的连锁命令方块的“条件制约”设定要严格按照上文所述,有几个连锁命令方块要设置成“不受制约”,否则可能无法正常运行。

  目前这套装置已经在租赁服测试过可以正常使用。当然如果大家感兴趣的话也可以在自己的租赁服或者局域网做一个,帮忙测试下有没有bug。

  下一步计划加入大传送术发起者的“接受/拒绝”功能。

  对本文内容有任何建议欢迎回复和指正!

分享到:更多

游戏信息

我的世界
我的世界类型:休闲娱乐平台:PC,iOS,安卓电脑版下载
  • 游戏大礼包
  • 手游开测表