import Mil import random import time import os class CreateE_Server(Mil.MCROCN): def __init__(self, host, password, port, debug=True): super().__init__(host, password, port, debug=debug) CreateE_User=CreateE_Server(host="mc.gvsds.com", password="1Qq@1Qq@190*", port=25567) if not CreateE_User.Connect(): exit() #CreateE_User.Speak(f"{"="*5} Welcome to use CreateE_Server SYSTEM {"="*5}", "green") #CreateE_User.Speak(" The Python program has connected to the RCON port at 25566") # CreateE_User.SetTitle("@a", "CreateE Server") #print(CreateE_User.Execute("as", "@a", "at", "@s", "run", CreateE_User.Particle("minecraft:lava", RelativePos(), Delta(), 1, 100, "force", "@a", astext=True), astext=False)) #while True: # CreateE_User.Execute("as", "MXYYSH2", "at", "@s", "run", CreateE_User.Particle("minecraft:end_rod", RelativePos(f"~", f"~", f"~"), Delta(), 0, 1, "force", "@a", astext=True)) # 参数设置 #num_points = 1000 # 点数 #theta_max = 2 * np.pi # 旋转角度范围 #height_max = 20 # 最大高度 # 生成参数t从0到1 #t = np.linspace(0, 1, num_points) # 计算螺旋线坐标 #theta = theta_max * t # 角度 #z = height_max * t # 高度线性增加 #r = z # 半径随高度增加而增加(锥形螺旋) #x = r * np.cos(theta) #y = r * np.sin(theta) # 将坐标组合成数组 #spiral_points = np.column_stack((x, y, z)) # 打印前10个点 #for i in range(1000): # _=spiral_points[i] # x, y, z=_[0], _[1], _[2] # print(CreateE_User.Execute("as", "MXYYSH1", "at", "@s", "run", CreateE_User.Particle("minecraft:end_rod", RelativePos(f"~{x}", f"~{y+20}", f"~{z}"), Delta(), 0, 1, "force", "@a", astext=True), astext=False)) #print(CreateE_User.Execute("as", "yrzd6", "at", "@s", "run", CreateE_User.Particle("minecraft:end_rod", Mil.RelativePos(f"~", f"~", f"~"), Mil.Delta(), 10, 10000, "force", "@a", astext=True), astext=False)) #user="@a" #for i in range(500, -1, -1): # if i % 2 == 0: CreateE_User.SetTitle(user, "I SEE U", "red") # CreateE_User.SetSubTitle(user, f"I'm Looking For U, So Hide Well! Count {i}", "red") # time.sleep(0.2) #time.sleep(1) #CreateE_User.SetTitle(user, "0", "red") #CreateE_User.SetSubTitle(user, "0", "red") #time.sleep(5) #CreateE_User.Execute("as", "@a", "at", "@s", "run", "tp @s ~ ~100 ~") #time.sleep(5) #CreateE_User.Execute("as", "@a", "at", "@s", "run", "kill @s") #_=CreateE_User.Data("get", "entity", "MXYYSH1") #CreateE_User.Gamemode("creative") #201 68 -275 #201 68 -237 #for i in range(2369, 2750): # CreateE_User.Particle("minecraft:lava", Mil.RelativePos(f"201", f"66", f"-{i/10}"), Mil.Delta(), 1, 100, "force", "@a", astext=False) #CreateE_User.Weather("clear") #215 81 -368 #200 90 -373 #198 69 -362 #256 66 -174 #254 62 -183 #s=Mil.Milib._Pos1ToPos2WithPoints(600, 0, # Mil.Milib.RelativePos(276, 83, -175), # Mil.Milib.RelativePos(218, 63, -189), # Mil.Milib.RelativePos(189, 73, -161) # ) #s=Mil.Milib._Pos1ToPos2WithPoints(50, 0, # Mil.Milib.RelativePos(256, 66, -174), # Mil.Milib.RelativePos(254, 62, -183), # ) #print(s) #for i in s: # print(i.x, i.y, i.z) # CreateE_User.Particle("minecraft:end_rod", Mil.Milib.RelativePos(f"{i.x}", f"{i.y}", f"{i.z}"), Mil.Milib.Delta(), 0, 150, "force", "@a", astext=False) #for i in range(3000): # CreateE_User.Execute("as", "yrzd6", "at", "@s", "facing", Mil.Milib.LocalCoordinatesPos("^1", "^", "^"), "run", CreateE_User.Tp(Mil.Milib.RelativePos(), astext=True)) #while True: # CreateE_User.Kill("@e[type=tnt]") #s=CreateE_User.Data("get", "entity", "MXYYSH1") summon_pos=[ Mil.Milib.RelativePos(95, 81, 3), Mil.Milib.RelativePos(146, 81, 15), Mil.Milib.RelativePos(96, 81, 38), Mil.Milib.RelativePos(65, 81, -1), ] # NV_NUMBER = 1000 GC_NUMBER = 10000 ''' CreateE_User.SbSpeakRaw("赛方", [{"text":"========== 本次 ", "color":"green"}, {"text":"1v300女巫大赛", "color":"red"}, {"text":" 即将开始 ==========", "color":"green"}]) time.sleep(5) CreateE_User.SbSpeak("赛方", "请各位稍安勿躁。") time.sleep(5) CreateE_User.SbSpeak("赛方", "本次比赛由选手 zhui_er 和 300 只女巫进行比拼。") time.sleep(5) CreateE_User.SbSpeak("赛方", f"胜利后每人可获得 { GC_NUMBER } GC(游戏货币),用于购买游戏商店内的优质物品。") time.sleep(6) CreateE_User.SbSpeak("赛方", "失败后每人可获得 50 + 250 * 波数 GC(游戏货币),用于购买游戏商店内的优质物品。") time.sleep(6) CreateE_User.SbSpeak("赛方", "允许使用药水、盾牌等,不允许使用飞行、作弊、挖掘、放置、TNT等明显破坏平衡性的功能。") time.sleep(7) CreateE_User.SbSpeak("赛方", "如果死亡不可复活。") time.sleep(5) CreateE_User.SbSpeak("赛方", "女巫总共有6波,每波50只女巫,每波会随机生成十小波,每小波女巫有5只女巫间隔随机时间 0-10 秒生成,每波间隔三分钟。") time.sleep(5) CreateE_User.SbSpeak("赛方", "本页面程序由 CreateE 《 基于 Python 的 我的世界 RCON 核心支持库(Mil Minecraft RCON Core Library For Python)》 和 其作者 TermiNexus(MXYYSH1)的大力支持") time.sleep(10) CreateE_User.SbSpeak("赛方", "我宣布,本次比赛正式开始,十秒后开始生成") CreateE_User.Bossbar("add", "minecraft:1", '[{"text":"==","color":"red"},{"text":"====","obfuscated":true,"color":"red"},{"text":"==","color":"red"},{"text":" 1","color":"blue"},{"text":"v","color":"yellow"},{"text":"300","color":"red"},{"text":" \u5973\u5deb","color":"dark_red"},{"text":"\u5927\u8d5b","color":"dark_green"},{"text":" \u751f\u6210","color":"gold"},{"text":"\u8fdb\u5ea6","color":"green"},{"text":" ==","color":"red"},{"text":"====","obfuscated":true,"color":"red"},{"text":"==","color":"red"}]') CreateE_User.Bossbar("set", "minecraft:1", "color", "red") CreateE_User.Bossbar("set", "minecraft:1", "max", "300") CreateE_User.Bossbar("set", "minecraft:1", "style", "notched_20") CreateE_User.Bossbar("set", "minecraft:1", "players", "@a") CreateE_User.Bossbar("set", "minecraft:1", "visible", "true") for _ in range(10, -1, -1): CreateE_User.SbSpeak("赛方", f"{_} 秒后开始生成") time.sleep(1)''' CreateE_User.Bossbar("add", "minecraft:1", '[{"text":"==","color":"red"},{"text":"====","obfuscated":true,"color":"red"},{"text":"==","color":"red"},{"text":" 1","color":"blue"},{"text":"v","color":"yellow"},{"text":"300","color":"red"},{"text":" \u5973\u5deb","color":"dark_red"},{"text":"\u5927\u8d5b","color":"dark_green"},{"text":" \u751f\u6210","color":"gold"},{"text":"\u8fdb\u5ea6","color":"green"},{"text":" ==","color":"red"},{"text":"====","obfuscated":true,"color":"red"},{"text":"==","color":"red"}]') CreateE_User.Bossbar("set", "minecraft:1", "color", "red") CreateE_User.Bossbar("set", "minecraft:1", "max", "300") CreateE_User.Bossbar("set", "minecraft:1", "style", "notched_20") CreateE_User.Bossbar("set", "minecraft:1", "players", "@a") CreateE_User.Bossbar("set", "minecraft:1", "visible", "true") B=1 SummonCount=(B-1)*10 for i in range(B, 6+1): CreateE_User.SbSpeak("赛方", f"开始生成第 {i} 波女巫,请选手准备迎敌!") CreateE_User.SetTitle("@a", f"第 {i} 波!", "red") StartRandomTime=random.uniform(0.0, 2.0) LastRandomTime=StartRandomTime + random.uniform(0, 10.0) for _ in range(5): RPos = random.choice(summon_pos) CreateE_User.SbSpeak("赛方", f"有一小波女巫生成在了 {RPos}") for _ in range(5): CreateE_User._RunCommand(f"execute in myid:1 run summon minecraft:witch {RPos}") SummonCount+=1 CreateE_User.Bossbar("set", "minecraft:1", "value", f"{SummonCount}") time.sleep(random.uniform(StartRandomTime, LastRandomTime)) CreateE_User.SbSpeak("赛方", f"第 {i} 波女巫生成已结束,{"本次比赛已结束" if i == 20 else ("开始 300 秒 中场休息" if i == 10 else "开始 90 秒休息。")}") time.sleep(0 if i == 20 else (270 if i == 10 else 70)) if i != 20: CreateE_User.SbSpeak("赛方", "还有30秒。") time.sleep(20) CreateE_User.SbSpeak("赛方", "最后10秒,做好准备!") time.sleep(10) CreateE_User.SbSpeak("赛方", "生成已结束!请迅速解决剩余残孽。") CreateE_User.SetTitle("@a", "生成完毕!", "green") com=input("OK?> ") if com == "Y": CreateE_User.SbSpeak("赛方", "恭喜各位完成本次比赛!!!") time.sleep(5) CreateE_User.SbSpeak("赛方", f"诸位凭借自己的实力赢得了 {GC_NUMBER} GC!") else: CreateE_User.SbSpeakRaw("赛方", "对不起,你们失败了!", "red") time.sleep(5) CreateE_User.SbSpeak("赛方", "我们下次再见!") time.sleep(5) CreateE_User.SbSpeak("赛方", "我正式宣布比赛结束!") CreateE_User.disconnect()