dnf python自动搬砖定制脚本
import time
from direct_nbt.nbt import NBTFile
from direct_nbt.nbt_protocol import NBTProtocol
def custom_brick_placement(world_path, x, y, z, block_type):
"""
自定义砖块放置函数
:param world_path: 世界文件路径
:param x: X坐标
:param y: Y坐标
:param z: Z坐标
:param block_type: 砖块类型
"""
with NBTFile(world_path, 'r+') as world:
for chunk in world.root['Level']['Chunks'].values():
for section in chunk['Level']['Sections']:
if y // 16 in section['Add']:
y_index = y % 16
section['Blocks'][y_index] = block_type
section.dirty = True
def main():
# 设置服务器IP和端口
server_ip = '127.0.0.1'
server_port = 19132
# 连接到服务器
connection = NBTProtocol(server_ip, server_port)
connection.connect()
# 设置世界文件路径
world_path = 'D:/DNF/Worlds/World1/world_the_end_1.mca'
# 设置砖块类型
brick_type = 1 # 1代表石砖
# 设置起始坐标和结束坐标
start_x, start_y, start_z = 0, 1, 0
end_x, end_y, end_z = 15, 2, 15
# 开始自动搬砖
for x in range(start_x, end_x + 1):
for y in range(start_y, end_y + 1):
for z in range(start_z, end_z + 1):
custom_brick_placement(world_path, x, y, z, brick_type)
time.sleep(0.1) # 暂停一段时间,避免服务器压力
# 操作完成后断开连接
connection.disconnect()
if __name__ == '__main__':
main()
这段代码使用了direct_nbt
库来直接操作Minecraft的世界文件.mca
。它定义了一个自定义的砖块放置函数custom_brick_placement
,该函数可以将世界中指定坐标的砖块更改为指定类型。在main
函数中,它连接到服务器,设置起始和结束坐标,调用自定义函数进行砖块放置,并在操作后断开连接。这个脚本可以作为自动搬砖的基础,用户可以根据需要调整参数。
评论已关闭