跳到正文

守望先锋地图工坊 · OverPy

写地图工坊,​心里有数。

服务器负载的隐患在哪,不用再靠猜。Wright 静态分析地图工坊和 OverPy 代码,把每个问题指到具体一行。

curl -fsSL https://install.wrightkit.dev/wright/install.sh | bash
终端
$ wright lint rules.txtWARN lint  2 finding(s) across 6 rule(s)warning[min-wait-loop]: loop body waits at the workshop minimum rate; the loop runs at maximum frequency  --> rules.txt:18:3info[expensive-loop-check]: geometry predicate evaluated inside a loop body may be expensive per iteration  --> rules.txt:20:4

复制,保存,检查。

  1. 1

    从游戏复制

    像平时分享代码那样,复制规则或整套设置。

  2. 2

    粘贴成文件

    存成文本文件,比如 rules.txt。中英文客户端的代码都可以。

  3. 3

    运行 Wright

    每条结果都指向文件里的具体行。改好后粘回游戏。

    wright lint rules.txt

能查出什么。

  • 写错名字

    动作或值的名字写错了,粘回游戏前就能发现。

    治愈(事件玩家, 空, 10);

    error[unknown-action]: unknown action spelling '治愈'

  • 没有等待的 While

    循环一直不停,容易让服务器过载。

    While(存活(事件玩家));
    	治疗(事件玩家, 空, 10);
    End;

    warning[while-without-wait]: loop body contains no wait call

  • 只等 0.016 秒

    循环会以游戏允许的最快速度运行。

    While(存活(事件玩家));
    	等待(0.016, 无视条件);
    	治疗(事件玩家, 空, 10);
    End;

    warning[min-wait-loop]: loop body waits at the workshop minimum rate

  • 循环里做视线检测

    每一轮都算一次几何检测,开销可能很大。

    While(存活(事件玩家));
    	等待(0.25, 无视条件);
    	If(在视线内(事件玩家, 矢量(0, 0, 0), 屏障不会阻挡视线));
    		治疗(事件玩家, 空, 10);
    	End;
    End;

    info[expensive-loop-check]: geometry predicate evaluated inside a loop body

更多工具。

  • 分析

    找出最复杂的规则,以及被最多规则共用的变量。

    wright analyze
  • 结构

    项目里所有规则、变量和引用。

    wright inspect
  • 编辑器

    在支持语言服务器的编辑器里边写边报错,还能跳转、补全和重命名。VS Code 扩展暂时还没有。

    wright-lsp
  • CI

    在 GitHub Actions 中运行,问题直接标在 PR 上。

    wright lint

地图工坊、OverPy 和 OSTW。

  • 地图工坊

    已支持

    完整支持原生语法,英文和简体中文客户端的代码都能直接检查。

    workshop-rs
  • OverPy

    部分支持

    照常写 .opy。Wright 负责检查,并编译成地图工坊代码,结果以原版 OverPy 编译器为准。

    opy-rs
  • OSTW

    开发中

    deltin-rs 开发中,之后接入 Wright。

    deltin-rs

AI 编程助手,​也能用。

  • JSON 输出

    任何命令加上 --format json。统一格式,带版本号。

  • 固定编号

    诊断编号、规则 ID 和退出码固定不变,助手可以放心判断。

  • Agent Skill

    装上 wrightkit/skills 里的 wright skill,助手就会用 Wright。

即将推出
  • 从需求到改动
  • 修改先校验
  • 项目查询
  • 开销评估

获取 Wright。

一次安装,wright 和 wright-lsp 都有。

Homebrew

Apple 芯片与 Intel
brew install wrightkit/tap/wright

安装已发布的 wright 和 wright-lsp 可执行文件。

安装脚本

curl -fsSL https://install.wrightkit.dev/wright/install.sh | bash

各平台的发布包和校验和都在 GitHub Releases 页面。