跳转至

开始

前言

RWPP自1.4.0开始支持扩展功能,你可以通过扩展来添加你自己想要的机制,包括但不限于自定义UI,自定义玩法,自定义主题等

加入测试

RWPP开发者交流群 1004399208

开始

利用 Kotlin 编写扩展 (推荐)

  • 利用Kotlin编写扩展,将完全享受注解处理器ksp所带来的便利,以及无障碍编写基于compose的ui.
  • 详情请看Kotlin示例扩展

使用lua编写扩展

导入扩展

  • 如果是Windows用户,在你的RW根目录中创建extension文件夹,将扩展(.rwext)放入其中即可
  • 如果是Android用户,在你的RW根目录下(通常为/storage/emulated/0/rustedWarfare/)创建extension文件夹,然后放入即可

编写扩展

结构

  • 扩展的目录结构如下:

    icon.png
    info.toml
    scripts/
    ├── main.lua
    └──...
    
  • 每个扩展文件都以.rwext为后缀,文件名即为扩展的名称

  • 扩展中的scripts可以包含多个lua文件,其中将默认加载main.lua,使用其它lua文件则需要使用模块系统

info.toml

  • 扩展的配置文件,包含以下字段:

    id = "" # 扩展的唯一标识符,通常为英文名
    version = "1.0.0" # 扩展的版本号
    author = "" # 扩展的作者
    displayName = "" # 扩展的显示名称
    icon = "" # 扩展的图标路径, e.g. "icon.png"
    description = "" # 扩展的描述
    hasResource = false # 是否包含资源文件
    dependencies = [] # 扩展的依赖,依赖的扩展必须先安装才能运行
    

main.lua

  • 扩展的入口文件,在游戏启动时被加载,一般用于注册事件监听,初始化扩展功能等

示例

  • 编写一个扩展,在玩家进入时发送一条提示信息
id = "my_extension"
displayName = "提示信息"
version = "1.0"
author = "作者"
description = "显示一个提示信息"
filterEvents('PlayerJoinEvent', function(event)
    local player = event:getPlayer()
    reply(player, "欢迎来到RWPP")
end)
  • 保存为my_extension.rwext,放入扩展目录中,启动RWPP,在游戏中点击“扩展”按钮,选择“提示信息”扩展应用并重启,游戏将在玩家为房主时,向任何刚加入房间的玩家发送一条消息

Tips

也可以通过直接在扩展目录中新建文件夹来导入扩展

注意事项

  • 扩展功能仍在测试中,可能存在一些bug,欢迎任何的反馈