欢迎光临散文网 会员登陆 & 注册

【思路】免穷举网易我的世界可选、可多人同时使用的雪球互相传送

2023-01-12 22:05 作者:冇2103  | 我要投稿

           


好,做一个互传,但现在我们的思路是白茫茫的一片,我们得想想,互传的原理是什么,无非就是,把一个人传送到另一个人思路结束,随后思考传送由谁发起,由谁接受,确定好了之后,互传不就有了吗,执行把发起者传送到接收者就结束了。我想你已经会做了


【申明】   

        此为网易版

        计分板snow设置为执行扔雪球后加分,平常为0,在执行选择玩家时可以到

                10、11、12、13、14、15、16、17、18、19、20【10用于发起一次执行,使ID重新分配最新ID】

        计分板ID执行分配ID,如我分配10人玩家依次为1、2、3、4、5、6、7、8、9、10

        计分板项目直接跟数字表示分数,如snow10,表示计分板snow,分数10;

                按照玩家的使用习惯区分抬头为【确认】,低头为【拒绝】,

           


 


        【拿该如何将自己与对方联系起来呢?】

 

 

        【计分板snow11..20代表执行发起传送的玩家,以下简称【发起】】

        【计分板ID1..10代表接受传送的玩家,以下简称【接受】】




        当【接受】于snow10处执行分配ID(即,刷新功能),从snow11开始对应ID1,snow12对应ID2,以此类推。。。。。。我们即可得到一种映射状态,

        在数学里,映射是个术语,指两个元素的集之间元素相互“对应”的关系,为名词。映射,或者射影



(引用:百度百科词条解释)
        这样,我们就可以将【发起】与服务器的每一位玩家创建起联系,通过扔雪球进行【接受】的选择;举个例子,当我们【发起】通过雪球移动到snow11时,我们进行的抬头,低头一系列的视角移动即可通过选择器(rx,rxm,ry,rym)进行检测,以达到我们【发起】要通知对方的意图,此时【接受】即可操作对方的传送请求。





         【问题解疑】
          同时,新的问题又诞生了,如何防止串线呢?


                  即【发起】发起传送后,有另一名玩家进入了接受系统,想要截胡【发起】的传送,但这是不现实的,在snow与ID建立映射(一对一)的情况下,ID与sonw也同时建立了(一对一)链接;我们再举个例子,也就是说,我们设计的传送功能在snow11发起后,只能由ID1来接受,杜绝了截胡的风险。


          如何防止ID1【第三者,滑稽】在【发起】想要到达snow12状态下发起传送至ID2【接受】不被截胡呢?


                  我们可以设置【发起】在选择【接受】时,增加一个标签,那在什么情况下增加标签呢?当然是在【发起】抬头时增加标签,此时标签就表示【发起】已选定,在【发起】已选定后【接受】才会有效果即可



          【部分功能指令】


                分配ID:

scoreboard objectives add ID dummy/*激活一次*/
scoreboard players set @a ID -1/*循环,无条件,保持开启*/
scoreboard players operation @a[scores={ID=-1}] ID -= @a ID/*连锁,有条件,保持开启*/

#负负得正分配ID
/*上述三条指令可以达到从0分配至最大人数减1*/
execute @a[scores={ID=0}] ~~~ scoreboard piayers add @a ID 1/*连锁,有条件,保持开启*/
/*第四条指令可以让ID从1分配至最大人数*/
        



                显示指令,

titleraw @a title/subtitle/actionbar {"rawtext":[{"text":"文本"}]}
json有score-selector-text-translate(以及配套使用的with)




                显示所有人

execute @a[scores={snow=10}] ~~~ title @s actionbar

§6抬头刷新,请在刷新后使用

§7      §3 @a[scores={ID=1}]

§7      §3 @a[scores={ID=2}]

§7      §3 @a[scores={ID=3}]

§7      §3 @a[scores={ID=4}]

§7      §3 @a[scores={ID=5}]

§7      §3 @a[scores={ID=6}]

§7      §3 @a[scores={ID=7}]

§7      §3 @a[scores={ID=8}]

§7      §3 @a[scores={ID=9}]

§7      §3 @a[scores={ID=10}]

/*循环,无条件,保持开启*/

 



                文本颜色有

  §0 黑 #000000-§1 深蓝 #000054-§2 绿 #005400-§3 碧绿 #005454-

§4 红 #540000-§5 粉 #540054-§6 橙 #7F5400-§7 灰 #545454-

§8 深灰 #2A2A2A-§9 淡蓝 #2A2A7F等等

 



 


【思路】免穷举网易我的世界可选、可多人同时使用的雪球互相传送的评论 (共 条)

分享到微博请遵守国家法律