• 200金粒签到奖励和周年纪念勋章(4/5/6/7周年)销售将于 4月13日晚结束,不要错过噢!【点我去看看】

教程 轻量化插件开发教程:用 Skript 实现传送主城、钟表菜单及更多!

📖 介绍篇

关于 Skript
Skript 是一款易于使用的 Minecraft 插件,允许服务器管理员轻松创建独特功能,无需编程经验(仍需一定的逻辑思维),并且它是开源且免费的。
支持的 Minecraft 版本:1.13,1.14,1.15,1.16,1.17,1.18,1.19,1.20,1.20.6,1.21​



🤔 这个帖子能帮助你实现哪些功能?

  • 传送主城
  • 钟表菜单
你还需要哪些功能请告诉我,这个帖子会实时更新

📖 正文

安装指南(Skript Resource, 2024)
  • 安装
    插件地址下载最新稳定版本并放入服务器的插件文件夹,重启服务器即可使用。预发布版本可在 GitHub 发布页面 找到。

    脚本
    创建新脚本,在 Skript 的脚本文件夹中(forge\plugins\Skript\scripts)创建 .sk 文件。放入同一文件夹后,重启服务器或使用 /sk reload <文件名称> 加载脚本。

📖 示例

使用示例新手钟表菜单
  • 在 Skript 的脚本文件夹中(forge\plugins\Skript\scripts)创建 give_clock.sk 文件,填入以下脚本并执行 skript reload scripts

INI:
#脚本概述 give_clock.sk
#    首次加入:当玩家第一次加入时,给予他们一个特殊的时钟物品,并发送欢迎信息。
#    每次加入:每次玩家加入时,如果他们没有时钟,将再次给予。
#    时钟命令:当玩家右键点击时钟时,触发一个命令以打开菜单。
    
# 首次加入
on first join:
    give 1 clock named "&e新手钟" with lore "&7右键打开菜单" to player
    send "&a欢迎 &e%player%&a 来到服务器!这是你的新手钟。" to player

# 每次加入
on join:
    if player does not have a clock:
        give 1 clock named "&e新手钟" with lore "&7右键打开菜单" to player
        send "&e你没有钟,现在已经补发给你了!" to player

# 时钟命令
on rightclick with clock:
    execute player command "dm open default_menu"

INI:
menu_title: "时钟菜单"  # 菜单标题
open_command: "时钟菜单"  # 打开菜单命令 /时钟菜单
size: 9   # 菜单大小,必须是9的倍数(9, 18, 27, 36, 45, 54)

items:
  # 项目 1 - 多世界传送门
  portal:
    display_name: "&e多世界传送门"
    material: "PLAYER_HEAD"
    skull-owner: "hdb-48783"
    slot: 3
    lore:
      - "&7它可以打开一个菜单,将你传送到地皮或者其他世界!"
    left_click_commands:
      - "[console] title %player_name% title {\"text\":\"请修改对应菜单脚本!\",\"color\":\"gold\"}"
      - "[close]"
      - "[message] &e正在为:%player_name% 打开传送面板"
      
  # 项目 2 - 交易商城
  transaction:
    display_name: "&e交易商城"
    material: "PLAYER_HEAD"
    skull-owner: "hdb-1660"
    slot: 4
    lore:
      - "&e购买物品,这里有很多不同的商品,很多很多"
    left_click_commands:
      - "[console] title %player_name% title {\"text\":\"请修改对应菜单脚本!\",\"color\":\"gold\"}"
      - "[close]"
      - "[message] &e正在为:%player_name% 打开基础商城"


  # 项目 3 - 回归主城
  sethome:
    display_name: "&e回归主城"
    material: "PLAYER_HEAD"
    skull-owner: "hdb-38094"
    slot: 5
    lore:
      - "&7这里有很多基础设施,也可以在周边购买房产!"
    left_click_commands:
      - "[console] title %player_name% title {\"text\":\"请修改对应菜单脚本!\",\"color\":\"gold\"}"
      - "[close]"
      - "[message] &e正在传送至主城,请勿移动!"

使用示例延迟传送
  • 在 Skript 的脚本文件夹中(forge\plugins\Skript\scripts)创建 delayed_teleport.sk 文件,填入以下脚本并执行 skript reload scripts

INI:
command /delayedtp world <player>:
    trigger:
        set {_player} to arg-1
        set {_nameWorld} to "world" # 设置需要传送到哪个世界
        set {_radius} to 3  # 设置半径,单位为块
        # 关闭玩家的物品栏
        close {_player}'s inventory
        # 为指定玩家设置短暂权限,允许在 5 秒内传送到 world
        execute console command "lp user %{_player}% permission settemp multiverse.teleport.%{_nameWorld}%  true 10s"

        # 记录玩家的初始位置
        set {_initialPos} to location of {_player}


        # 显示倒计时,开始显示为 5 秒
        loop 5 times:
            set {_counter} to 6 - loop-number
            send title "&4&l距离传送还有 %{_counter}% 秒" to arg-1
            wait 1 second
            
            # 检查玩家是否移动
            if distance between location of {_player} and {_initialPos} > {_radius}:
                # 取消传送,提示玩家
                send "&c你在倒计时期间移动了,传送已取消!" to arg-1
                # 清除权限
                execute console command "lp user %{_player}% permission unset multiverse.teleport.%{_nameWorld}% "
                stop  # 结束命令
        # 执行传送命令,将玩家传送到 world
        execute console command "mv tp %{_player}% %{_nameWorld}% "
常见问题解答(FAQ)
  • 在新创建脚本时老脚本部分功能怎么失效了?答:再不重启服务器情况下重载一次失效脚本文件即可 /sk reload <失效脚本名称>
  • Unknoun command. Type”/help" for help.?答:在执行时钟命令”dm open default_menu“ 没有安装 DeluxeMenus 插件,需要将其转为你自己服务器想打开的菜单。






2024. Accessed November 1. https://www.spigotmc.org/resources/skript.114544/.​

 
内容版权许可
CC0 1.0 版权共享

在线会员

  • 卡比兽好饿
  • umaru
  • NetK
  • 1832767678
  • Ez4p1xEL
  • ASAqw
  • 蟹蒙老鸽
  • 赤_焰
  • 一位随缘玩家
  • XBen
  • minglaoban666
  • 没钱的山海
后退
顶部 底部