CVTweaks

CVTweaks

为Cubeville服务器提供的海量QOL功能

社交

CVTweaks 是一个功能集合,旨在提升在 Cubeville 我的世界服务器(cubeville.org)上的游戏效率。

CVTweaks 与 Cubeville 没有任何关联,这是一个非官方的、由玩家制作的模组,并未获得 Cubeville 的认可。

功能:

  • RegionScript - 一种简单的脚本语言,允许你让特定区域执行不同的操作,例如显示标题、播放音乐和创建基础小游戏,所有操作都在客户端完成。
  • 切换游戏模式快捷键 - (默认按键为 Y)让你只需按下按键即可快速切换你的创造模式游戏模式。
  • 飞行速度调节器 - 使用 - 和 + 键来增加或减少你的创造模式飞行速度,你也可以同时按下两个键将其重置为默认速度。
  • /cvwiki <搜索内容> - 允许你在非官方的 Cubeville 维基上搜索任何主题并获取其链接。
  • AutoHome - 当通过 /autohome <开/关> 启用时,它会在你生命值较低时自动在生存世界设置你的家,以便你死亡后可以轻松传送回来。
  • WCSafety - 当通过 /wcsafety 切换时,如果你在群聊或私聊中聊天,之后在全局频道发送消息,它会要求你发送两次以确认你是否真的想在全局发送。
  • 传送菜单 - (默认按键为 H)在创造世界按下时,会弹出一个菜单,允许你快速输入任何人的用户名以传送到他们的地块。
  • /ignore <添加/移除/列表> - 允许你忽略玩家,隐藏他们发送的所有全局消息(不会隐藏私聊消息!如果你在私聊中遇到问题,是时候去找管理员了)。
  • 频道切换 - 你可以使用 /group 或 /global 来切换是否只在群聊或全局聊天频道中聊天,而无需在消息前输入 /p 或 /y。
  • 最近传送点 - 你可以使用命令 /nearestdrop [坐标] 来获取距离该坐标最近的传送点或可传送位置。
  • 还有更多功能待后续添加!

RegionScript

RegionScript 是一种自定义编写的、极其基础的脚本语言,你可以通过使用欢迎消息将其应用于区域或子区域。 例如: /rg flag AllergenX greeting !showTitle welcome to my plot | 1 | !showActionBar 1 second after wow 当玩家进入我的地块时,会在玩家屏幕上显示一个标题,等待1秒,然后也会在操作栏显示一条消息。

你还可以使用大量其他命令。

RegionScript 命令:

  • !playsong - 从网址播放声音(url 必须是 mp3 文件的直接链接!)
  • !stopall - 停止所有来自 !playsong 的正在播放的声音
  • !showtitle <文本> - 显示一个标题
  • !showactionbar <文本> - 在操作栏(玩家快捷栏上方区域)显示一条消息
  • !showsubtitle <文本> - 显示一个副标题
  • !gotohome <用户名> - 前往玩家的创造地块
  • !showtimer <时长> - 显示一个计时器,显示在玩家的操作栏中,并根据时长以秒为单位倒计时
  • !toggle <选项> <开/关> - 允许你切换特定选项,例如 timer_death,当计时器归零时杀死玩家
  • !shake <强度> <持续时间(单位:刻)> - 震动镜头(持续1秒,时间单位是刻,应设为20)
  • !popup <文本> - 在玩家屏幕上显示一个带“确定”按钮的弹出窗口
  • 更多功能即将推出!

RegionScript 2 Lua 脚本

RegionScript 2 允许你直接在客户端中运行自定义的 Lua 脚本。脚本从 Pastebin 加载并在沙盒环境中运行。

开始使用

  1. 编写你的 Lua 脚本并上传到 Pastebin。
  2. 获取你粘贴内容的原始链接。
  3. 在游戏中,输入 !script <url> 来加载并运行你的代码。
  4. 在做出更改后,输入 !reloadlua 来重新加载脚本。
  5. 要停止所有脚本和音频,请输入 !stopall。

如果你的代码需要每秒重复运行 20 次,则必须包含一个 tick() 函数。

玩家对象

你可以通过 player 表来访问玩家数据。

  • player.getX(), player.getY(), player.getZ(): 返回当前坐标。
  • player.isSprinting(): 如果正在疾跑,返回 true。
  • player.isSneaking(): 如果正在潜行,返回 true。
  • player.isOnGround(): 如果在地面上,返回 true。
  • player.getVelocityX(), player.getVelocityY(), player.getVelocityZ(): 返回当前速度值。
  • player.getGameMode(): 以字符串形式返回当前游戏模式。
  • player.kill(): 杀死玩家(需要创造模式)。
  • player.getHeldItem(): 返回主手物品的字符串 ID。
  • player.getInventorySlot(slot): 返回特定库存槽位(0-8 为快捷栏)中物品的字符串 ID。

全局函数

聊天与界面

  • chat(message): 向你的聊天框发送一条消息。使用 % 表示颜色代码(例如,chat("%aHello") 会显示为绿色)。
  • setActionBar(text): 设置快捷栏上方的文本。
  • showTitle(title, subtitle): 在屏幕上显示标题和副标题。

世界与方块

  • getBlock(x, y, z): 返回坐标处的方块 ID(例如 "minecraft:stone")。
  • fillGhostBlocks(x1, y1, z1, x2, y2, z2, blockId): 在指定立方体区域内创建客户端幽灵方块。坐标之间的范围不能超过 64 个方块。
  • setTime(ticks): 设置客户端的世界时间。
  • setWeather(type): 设置天气。使用 "clear"、"rain" 或 "thunder"。

音频与粒子

  • playSong(url): 从 URL 流式播放 MP3。
  • playSound(soundId, volume, pitch): 播放一个 Minecraft 音效(例如 "minecraft:entity.experience_orb.pickup")。
  • spawnParticle(id, x, y, z, dx, dy, dz): 在指定位置生成一个粒子。

示例脚本

function tick()
    local x = player.getX()
    local y = player.getY()
    local z = player.getZ()

    -- 在操作栏显示你的位置
    setActionBar("位置: " .. math.floor(x) .. ", " .. math.floor(y) .. ", " .. math.floor(z))
end