Files
CreateE_SpaceCCL/CreateE_Server.py
2026-01-25 13:51:15 +08:00

189 lines
8.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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("<CreateE_Server> 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》 和 其作者 TermiNexusMXYYSH1的大力支持")
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()