PlayerRemake玩家重生装备物品赋予插件
PlayerRemake 使用说明 一、概述 本插件为 Survivalcraft 联机版服务端插件,用于 自定义玩家出生时的物品、装备和坐骑 。玩家初次进服和每次重生都会自动套用预设的出生包。 工作原理 监听游戏 OnPlayerSpawned 事件,该事件在玩家 初次进入服务器 和 每次重生 时均触发 触发时从配置文件读取当前生效的出生包,将物品写入背包、装备穿上身体、坐骑生成在玩家身旁 支持保存多套出生包,随时切换当前生效的那一套 权限 插件使用游戏原版 ServerManager 标记区分权限,不依赖 XCGM 超管名单: 身份 标识方式 可用命令 管理员 PlayerData.ServerManager == true (游戏原版 /op 设置) 所有 /spawnkit 子命令 普通玩家 无 仅 /spawnkit list 和 /spawnkit help 控制台 服务器终端 除 addthis / addthisa 外的所有命令(采集必须在游戏内执行) 配置文件 文件 说明 PluginsData/PlayerRemake/SpawnKits.json 全局出生包配置(所有世界共用一份) 服务器运行时可手动编辑该文件,编辑完成后在游戏内执行 /spawnkit reload 重新加载。 二、命令速查 所有命令均以 /spawnkit 为前缀。 命令 说明 权限 /spawnkit 显示帮助 无 /spawnkit help 显示帮助 无 /spawnkit list 列出所有出生包 无 /spawnkit on 开启总开关 管 /spawnkit off 关闭总开关(关闭后玩家出生不被干预) 管 /spawnkit addthis 保存出生包(仅物品+装备+合成台, 不含坐骑 ) 管 /spawnkit addthisa 保存出生包(物品+装备+合成台+ 坐骑 ) 管 /spawnkit rm 删除指定名称的出生包 管 /spawnkit use 设置当前生效的出生包 管 /spawnkit clear 清空所有出生包 管 /spawnkit reload 重新加载配置文件 管 三、命令详解 /spawnkit list 列出所有出生包的概要信息,所有玩家可用。输出示例: 总开关:开启,当前生效:unit1,出生包数量:2 [0] unit1 [当前生效] | 衣物:有 背包:3 合成台:0 坐骑:骑(Donkey Saddled) [1] unit2 | 衣物:无 背包:0 合成台:0 坐骑:无 /spawnkit on / /spawnkit off 开启/关闭总开关。关闭后插件完全不干预玩家出生(即使有出生包也不套用)。 /spawnkit addthis 以 当前玩家身上 的物品、装备、合成台内容保存为一个出生包。 不采集坐骑 ,保存出的包 ToMount=false 。 同名出生包会被覆盖 第一个保存的包自动设为当前生效 合成台只采集前 4 格 /spawnkit addthisa 同 addthis ,但 额外采集坐骑 : 优先检测玩家当前骑乘的坐骑( ComponentRider.Mount ) 若未骑乘,检测玩家身旁 2.5 格内的可骑乘实体( FindNearestMount() ) 找到则记录坐骑模板名, ToMount=true 找不到则 ToMount=false ,并提示"未找到可骑乘坐骑" /spawnkit rm 删除指定名称的出生包。若删除的是当前生效的包,自动改用列表中的第一个包(若有)。 /spawnkit use 切换当前生效的出生包。切换后立即生效,下一位出生的玩家就会套用新包。 /spawnkit clear 清空所有出生包并重置 ActiveKitName 。 /spawnkit reload 重新从磁盘加载 SpawnKits.json 。手动编辑配置文件后执行此命令生效。 四、配置文件说明 文件路径: PluginsData/PlayerRemake/SpawnKits.json 字段说明 字段 类型 说明 Enabled bool 总开关, false 时插件不干预玩家出生 ActiveKitName string 当前生效的包名,需与 Kits 中某个 Name 完全一致;为空或未匹配时默认用第一个包 Kits array 所有出生包列表 Kits[].Name string 包名称, /spawnkit use 切换时用 Kits[].Action.ToMount bool 是否在玩家出生时生成坐骑 Kits[].Action.MountEntityName string 坐骑实体模板名,如 Donkey Saddled (鞍驴) Kits[].Action.Clothes.Head int[] 头部衣物 ID 列表(可多层叠加,按顺序穿戴) Kits[].Action.Clothes.Torso int[] 躯干衣物 ID 列表 Kits[].Action.Clothes.Legs int[] 腿部衣物 ID 列表 Kits[].Action.Clothes.Feet int[] 脚部衣物 ID 列表 Kits[].Action.Inventory[i] object 背包第 i 个槽位, Value =物品ID, Count =数量 Kits[].Action.CraftingTable[i] object 合成台第 i 个槽位(默认 4 格),同上 Value=0, Count=0 表示空槽。 配置示例 { " comment": "玩家出生包配置:Enabled=总开关,ActiveKitName=当前生效的包名,Kits=所有出生包列表。初次进服和重生均套用当前生效的包。物品ID参考游戏内 /give 命令的数值。", "Enabled": true, "ActiveKitName": "unit1", "Kits": [ { "Name": "unit1", "Action": { "ToMount": true, "MountEntityName": "Donkey Saddled", "Clothes": { "Head": [ 268 ], "Torso": [ 269 ], "Legs": [ 270 ], "Feet": [ 271 ] }, "Inventory": [ { "Value": 280, "Count": 1 }, { "Value": 0, "Count": 0 }, { "Value": 11, "Count": 10 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 } ], "CraftingTable": [ { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 }, { "Value": 0, "Count": 0 } ] } }, { "Name": "unit2", "Action": { "ToMount": false, "MountEntityName": "Donkey Saddled", "Clothes": { "Head": [], "Torso": [], "Legs": [], "Feet": [] }, "Inventory": [], "CraftingTable": [] } } ] } 示例中的物品 ID(如 280 铁剑、 268 铁头盔)仅为占位, 实际 ID 以游戏内 /give 命令或 /spawnkit addthis 采集到的为准 。手写 JSON 容易写错 ID,优先用 addthis 命令采集。 五、使用流程 推荐方式(命令采集,不用手写 JSON) 服主在游戏内执行 /op 设为管理员 穿上想要的装备、把物品放进背包、合成台放好材料 若要带坐骑:骑上坐骑(或身旁 2.5 格内有可骑乘实体) 执行 /spawnkit addthisa unit1 (带坐骑)或 /spawnkit addthis unit1 (不带坐骑) 第一个保存的包自动生效,之后玩家进服/重生即套用 多套出生包切换 重复上述步骤保存多个包,如 unit1 、 unit2 /spawnkit list 查看所有包 /spawnkit use unit2 切换当前生效的包 手动编辑配置 服务器运行中可直接编辑 PluginsData/PlayerRemake/SpawnKits.json 执行 /spawnkit reload 生效 临时关闭 /spawnkit off 关闭总开关,玩家出生不被干预,配置保留 /spawnkit on 重新开启 六、注意事项 触发时机 :玩家 初次进服 和 每次重生 都会套用。若只想初次进服给装备、重生不给,请用 /spawnkit off 在合适时机手动控制 坐骑生成位置 :坐骑生成在玩家身旁上方一个身位,朝向 45 度, 不强制玩家骑上 ——玩家靠近后由游戏自身机制自动骑乘 背包覆盖 :套用时 覆盖 玩家背包前 N 个槽位(N = min(玩家槽位数, 配置槽位数)),不会清空其他槽位。如需完全控制背包,配置时把所有槽位都写满 合成台格数 :采集时只存前 4 格,手动编辑也只需写 4 个。多写不会出错(按 Math.Min 截断),但无意义 物品 ID 查询 :游戏内 /give 命令的数值就是物品 ID,可直接用于配置文件 配置文件损坏恢复 :插件保存采用"先写 .tmp 再替换"模式,若服务器在保存时崩溃,可能残留 .tmp 文件,删除即可,原配置不受影响