01总览
EUP XML Refit 是一个 IDE 式项目制 XML 配置编辑器:把「一套 LSPDFR 配置」当作一个项目管理,图形化编辑,告别手写。
- 保真优先:文件的一切内容(注释、未知标签、顺序、缩进、自闭合形态、实体)导入导出不变,序列化输出 LSPDFR 兼容格式。
- 单树双视图:可视化表单与 XML 源码共享同一棵解析树,随时切换,两边改动实时同步。
- 纯本地运行:数据不离开本机(AI 对话除外,按你的配置发送到所选服务商)。
02三大配置集与文件识别
| 配置集 | 类数 | 覆盖文件 |
|---|---|---|
| LSPDFR 原版 | 7 类 | outfits / agency / backup / regions / inventory / stations / duty_selection |
| Ultimate Backup | 3 类 | CustomRegions / DefaultRegions / SpecialUnits |
| Policing Redefined | 9 类 | CustomRegions / CustomUnitNames / DefaultRegions / SpecialUnits / Loadouts / PatDownItems / Questions / TrafficStopQuestions / VehicleSearchItems |
打开文件夹后,软件按五级规则自动识别每个文件该用哪个编辑器:
- 精确文件名:
regions.xml、outfits.xml、customregions.xml等固定名。 - 前缀规则:
outfits_*、agency_*、backup_*、inventory_*、stations_*、duty_selection_*、customregions_*、defaultregions_*、specialunits_*等。 - 目录分流:路径含
policingredefined\plugins\lspdfr\policingredefined\时按 PR 类型处理(容忍_backup重名后缀);UB 同名文件靠文件名区分。 - 根元素兜底:按
<Outfits>等根元素判断(UB/PR 根元素同名时仅用于展示)。 - 扩展名兜底:
.md / .txt / .json / .ini / .cfg / .log / .yml / .csv / .html / .py / .ts等 20+ 后缀 → 纯文本编辑器。
默认目录约定:LSPDFR 原版文件在
lspdfr\data\custom\(regions.xml 固定名放 lspdfr\data\);UB 在 UltimateBackup\Plugins\LSPDFR\UltimateBackup\;PR 在 PolicingRedefined\Plugins\LSPDFR\PolicingRedefined\(Backup 相关 4 个文件在 \Backup\ 子目录)。按约定放文件,打开即自动识别。
03编辑器体系
打开文件后按类型分发到三种编辑模式:
- 19 类 XML → 专属可视化编辑器:每个文件类型有专门的表单界面,字段、枚举、格式约束全部内置。
- 未识别 XML → 通用树编辑器:树行点击编辑,改名 / 改属性 / 改文本 / 增删子元素。
- 纯文本 → CodeMirror 纯文本编辑器:行号、当前行高亮、搜索、撤销重做。
每个标签页都能随时切换到 XML 源码视图(共享同一棵树;解析失败时强制进入源码视图修复)。数据流上,保真的 XML 树是唯一事实源,所有编辑都是「就地改树」——缩进、属性顺序、自闭合形态原样保留,只有改过的地方变化。
04LSPDFR 原版 · 7 类编辑器
4.1 Outfits 服装编辑器(outfits_*.xml / outfits.xml)
- Outfit 树管理:Outfit → Variation 的新增、复制(ScriptName 自动加
_copy后缀)、上移下移、删除。 - 变体字段:Name、ScriptName(输入联想 + 文件内去重提示)、Gender(male / female 骨架)。
- Base 继承:子变体可引用同文件其他变体作为 Base;未显式配置的槽位显示虚线「Inherited 继承」卡片,一键「启用」转成显式配置。
- 组件表:10 个 Component 槽位(id 1/3/4/5/6/7/8/9/10/11,中文名),drawable / texture 双输入,新槽位按 id 数值顺序插入,兼容
Item标签。 - 道具表:4 个 Prop 槽位(0 帽子 / 1 眼镜 / 2 耳环 / 6 手表)。
- 智能默认:新增 Outfit 默认带 1 个 male 主变体(全槽位 0:0 写全);新增子变体自动取主项 ScriptName 为 Base、Gender 自动跟随。
4.2 Agency 机构编辑器(agency_*.xml / agency.xml)
- Agency 列表:Name / ScriptName / 可选字段(Inventory / BadgeModel / TextureDictionary / TextureName,留空不输出)。
- Parent 子机构:Parent 有值即为子机构,下拉候选来自已打开文件中无 Parent 的主机构 ScriptName。
- Loadout 子表(可多个):name / chance;Vehicles(模型 + chance + Livery / Weapon / Extra_1-15);Peds(模型枚举 mp_m / mp_f_freemode_01 + 高级属性);Flags 可增删(内置旗标枚举)。
- 跨文件引用自动联想:outfit / inventory 输入即弹候选——来自已打开文档 + 项目预解析缓存,没打开的文件也能检测到。
4.3 Regions 区域编辑器(regions.xml)
- 内置 Region 保护:6 个 LSPDFR 内置 Region 固定存在(Builtin 徽章)不可删;自定义 Region 可新增、重命名、删除。
- Zone 选择网格:GTA V 全地区目录(简称 + 中文翻译,主条目按别名去重),点击即启用 / 停用——启用写入
<Zone>,停用直接删除。 - 目录外已存在的代码会保留显示(未知标记),可手动删除,绝不静默丢弃。
4.4 Inventory 武器库编辑器(inventory_*.xml / inventory.xml)
- Inventory 列表:Name / ScriptName / Armor(0-100)/ StunWeapon 专属电击枪位。
- 武器弹窗选择器:左侧分类栏(近战 / 杂项 / 投掷物 / 手枪 / 冲锋枪 / 霰弹枪 / 突击步枪 / 机枪 / 狙击步枪 / 重型武器),右侧网格带图片、中英名、模型名和搜索,支持自定义武器。
- 配件选择器:列出当前武器全部可用配件(模型名 + 中英名,按 hash 匹配,支持十进制哈希)。
- Weapon chance 0-100;目录外模型显示红色未知标记;输入空串即移除属性。
4.5 Backup 增援编辑器(backup_*.xml / backup.xml)
- 内置分类保护:8 个内置分类(LocalPatrol…Firetruck)固定存在不可删除,支持折叠和右键批量折叠。
- 两种添加方式:按区域(候选 = regions.xml 内置 6 Region.Name + 已打开文档的自定义区域);按地区(GTA V 辖区目录全量,含 HIGHWAY / YANKTON 附加区,可手输)。
- Zone 内追加 Agency:候选来自已打开 agency 文件 ScriptName,chip 内联编辑;Zone 支持上下排序。
4.6 Stations 警局编辑器(stations_*.xml / stations.xml)
- Station 卡片列表:Name / Agency(自动检测下拉)/ ScriptName。
- 向量字段分量编辑:Position / Heading 等坐标拆分 x / y / z 单独输入,统一补
f后缀;Garage* 为x,y,z; h格式;可选字段缺失时「添加字段」一键补建,清空即移除。 - AmbientSpawns 刷点:SpawnPoint 子表(chance 0-100 / position / heading / type vehicle | ped)→ Vehicle(模型文本,可多个)/ Ped(模型 select + outfit 双下拉:前缀或 前缀.变体)。
4.7 DutySelection 执勤编辑器(duty_selection_*.xml / duty_selection.xml)
- 三个固定区块(缺失自动补建):Peds / Vehicles 的
<Agency>多选列表(机构 ScriptName 自动检测联想)+ VehicleDescriptions 的<Description>键值对表(name / fullName / agencyRef,文本即车辆模型代码)。
05Ultimate Backup · 3 类编辑器
5.1 DefaultRegions(默认地区)
- 层级结构:14 种内置备份类型(不可删)→ 4 个默认地区(LosSantosCity / County / BlaineCounty / NorthYankton,标签右侧注释可编辑)→ VehicleSet(spawn_distance / chance / no_handgun / no_firearm / k9_*)。
- 五个武器 / 人员子组:
- Vehicles / Vehicle:模型 + chance / livery / pax / pax_chance / color
- Peds / Ped:前置注释 + 模型 + chance / random_props / rain_outfit / snow_outfit(TriBool 三态)+ 14 对服装属性(prop_hats / glasses / ears / watches + comp_beard / shirtoverlay / shirt / decals / accessories / pants / shoes / eyes / tasks / hands)
- NonLethals(近战 / 电击枪 / 杂项 / 投掷物)、HandGuns(手枪不含电击枪,chance + comp_1..6 配件槽)、LongGuns(冲锋枪 / 霰弹枪 / 突击步枪 / 机枪 / 狙击步枪 / 重型武器)
- K9 专属:K9LocalPatrol / StatePatrol 类型额外显示 k9_model(5 犬种:CHOP / HUSKY / SHEPHERD / ROTTWEILER / RETRIEVER)+ k9_tex_* 属性。
- 武器选择复用弹窗选择器;支持 wardrobe.ini 转换新增 Ped(UB 槽位语法)。
5.2 CustomRegions(自定义地区)
- 14 备份类型(内置不可删)→ CustomRegion(增删,label 菜单名可改,Zones 可增删)→ VehicleSet(复用)。
- UB 区域目录网格(89 项):code / en / zh 三栏,官方误写已修正,点击启用 / 停用;目录外代码保留显示可删。
5.3 SpecialUnits(特殊单位)
- SpecialUnit(增删):name + role(cop / medic / fireman 三值下拉)+ 五个响应旗标(code2 / code3 / pursuit / traffic_stop / felony_stop,缺省不显示,true 写入、false 移除)→ 4 默认地区(VehicleSet 可增删)→ CustomRegion(复用卡片)。
06Policing Redefined · 9 类编辑器
PR 全部文件均内置不可删的 xmlns:xsd / xmlns:xsi 命名空间,编辑器自动维护。
6.1 DefaultRegions(默认地区)
- 18 个内置部门(LocalPatrol / LocalFemalePatrol / StatePatrol / StateFemalePatrol / LocalSWAT / NooseSWAT / LocalK9Patrol / StateK9Patrol / LocalAir / NooseAir / PoliceTransport / Ambulance / FireDepartment / Coroner / 三种拖车 / AnimalControl),不可删、缺失自动补齐 → 5 个默认地区(含 CayoPerico)→ VehicleDivision(spawn_distance / chance / name_list_id 联想自 CustomUnitNames;K9 部门另有 k9_model / k9_tex_*)。
- 子组:Peds(前置注释 + 模型 + chance / rain_outfit / snow_outfit / has_mask / add_armor + 14 对服装属性)/ Vehicles(chance / color / pax / pax_chance / livery / extra_1..12)/ LongGuns / HandGuns / NonLethals。
- ExtraData:AnimalControl / FlatbedTowTruck 部门的 Vehicle 可编辑内嵌 ExtraData(AnimalControlData / TowTruckData);支持 wardrobe 转换。
6.2 CustomRegions(自定义地区)
- 18 部门 → CustomRegion(增删,name 属性可改;简称 + 中文仅展示不写回)→ Zones 辖区(PR 目录 90 个区域,比 UB 多 PROL 序章)+ VehicleDivisions。
6.3 SpecialUnits(特殊单位)
- SpecialUnit(增删):name + role(cop / swat / medic / firefighter)+ 7 个开关属性(code_1 / 2 / 3 / pursuit / traffic_stop / felony_stop / has_k9:true 写属性、false 移除)→ 5 默认地区 → CustomRegions 容器。
6.4 Loadouts(武器配装)
- AllLoadouts → Loadout(增删,LoadoutName / IsDefaultLoadout 开关)→ LoadoutWeapons(每 Loadout 唯一,缺失自动创建)→ LoadoutWeapon:WeaponHash(弹窗选择器)/ StartingAmmoCount / WeaponTintIndex(不填不显示)/ IsVehicleWeapon / UseRackingAnimation(开关)/ WeaponLocation(FrontDoors / Trunk / Any,不选不显示)/ WeaponDisplayName + WeaponComponents(ComponentHash 自闭合,配件选择器添加)。
6.5 搜身表 / 车辆搜查表(PatDownItems / VehicleSearchItems)
- RedItems / YellowItems / GreenItems 三区段(容器缺失自动创建)→ Item:文本描述 + Chance(语义化枚举 VeryRare / Rare / Normal / Often / VeryOften)+ xsi:type(普通 / Firearm[+FirearmState 状态、IsStolen / IsVisible、WeaponModelId] / Weapon[+近战武器] / Drug[+DrugType 毒品枚举 4 组 21 种,分组 + 搜索选择器])。
- ItemLocation(仅车辆搜查表):Anywhere / DriverSeat / PassengerSeat / BackLeftSeat / BackRightSeat / Trunk。
- 切换类型自动清理:不适用该类型的属性自动移除,不会残留脏数据。
6.6 问话组(Questions / TrafficStopQuestions)
- QuestionGroup(增删)→ Question → Answer(增删):文本 + PedMood(Neutral / Nervous / Mad / Sad / Sovereign)+ 状态条件 IsDrunk / IsHigh(true 写入、false 移除,组合精确匹配提示条)。
6.7 呼叫词(CustomUnitNames)
- CustomNameList(增删,id 唯一非空校验,重复红框报错)→ Name:三段式输入(可选数字前缀 → 词 → 可选数字编号;词来自内置 34 个呼叫词网格单选 + 搜索,可自由输入),行尾实时预览实际 XML 文本。
07wardrobe.ini 一键转换
老玩家手里的一堆 wardrobe.ini 段落,不用手工重建:
- 入口:Outfits 编辑器工具栏「粘贴转换」弹窗,或变体右键菜单;粘贴任意
[M-xxx]/[F-xxx]段落 → 实时预览(名称 / 建议 ScriptName / 槽位解析)→ 应用。 - 解析规则:section 名
[M-LSPD-POI/II-A]= 性别 + 机构 + 职位 + 套装后缀;槽位Key=d:text;非标准 section 名跳过并警告。 - Outfits 槽位映射:Mask→Component 1 / UpperSkin→3 / Pants→4 / Parachute→5 / Shoes→6 / Accessories→7 / UnderCoat→8 / Armor→9 / Decal→10 / Top→11;Hat→Prop 0 / Glasses→1 / Ear→2 / Watch→6;任意槽位
0:0不输出。 - 三个落点:① 新建 Outfit(auto)② 追加到指定 Outfit 的主变体 ③ 追加子变体——只写与主项不同的差异槽位(显示 written / skipped 计数),主项只写实际槽位。
- UB 编辑器内同样支持 Ped 服装的 wardrobe 转换新增(UB 槽位语法,14 对服装属性输出顺序即转换顺序)。
- 转换结果直接进入编辑器,可继续手工调整。
08XML 源码编辑器(CodeMirror 6)
- XML 语法高亮、行号 / 折叠 gutter / 缩进线 / 行列状态栏;主题跟随应用主题。
- schema 驱动上下文补全:输入
<提示父元素合法子标签(Tab 接受);属性名按元素过滤;属性值枚举带中文说明;文本位置字母即弹补全;补全可开关(不重建编辑器);悬停提示 TagName 说明 + 子元素。 - 输入
>自动闭合标签;Enter 上下文缩进;Ctrl+Shift+F 格式化(缩进宽度随设置 2 / 4 空格或 Tab);Ctrl+F 搜索面板;撤销 / 重做。 - lint 波浪线:解析诊断 VSCode 式 squiggle + 行号标记可点击跳转;配对标签高亮;标签名联动编辑——改开始标签,配对标签实时跟随。
- 右键菜单:问 AI / 格式化 / 撤销 / 重做 / 查找 / 全选。
- AI 行内补全(ghost text):Ctrl+Enter 触发 / Tab 接受 / Esc 拒绝(光标前 12k 文本作为上下文);AI 整文件替换先弹 diff 预览确认,确认后备份
.bak再应用。 - 500ms 防抖解析提交;保存钩子保证防抖窗口内不丢修改。
09纯文本与通用编辑器
- 纯文本编辑器(.md / .txt / .json / .ini / .cfg / .log 等):CodeMirror 行号、当前行高亮、搜索、撤销重做;数据走独立纯文本路径保存。
- 通用 XML 树编辑器(未识别 XML 兜底):树行点击 → 右侧详情面板编辑(改名 / 改属性 / 改文本 / 添加子元素);行内 hover 复制 / 上移 / 下移 / 删除;注释只读展示;与源码视图共享同一棵树。
10校验与检查器(Inspector)
两个 Tab:校验 / 历史快照。
校验规则(对 Outfits 文件生效,规则文案按错误码本地化)
| 规则 | 级别 |
|---|---|
| Outfit ScriptName 为空 | warning |
| Outfit ScriptName 重复 | error |
| 同 Outfit 内变体 ScriptName 重复 | warning |
| 变体 Gender 非法(合法 m / f / male / female) | warning |
| 组件 / 道具槽位 id 不在已知槽位表 | warning |
- XML 解析失败 → error issue(可点击定位);解析成功 → 显示 Outfits 统计 + 语义问题列表。
- 校验失败提供「让 AI 修」按钮(直接送入 AI 面板)。
- 历史快照 Tab:当前文件的保存时快照清单(时间戳备份,与 AI 动作备份共用同一池),可恢复 / 删除。
- 状态栏实时显示打开文件的错误数。
11预览面板
- IDE「Markdown 预览」心智:顶部下拉切换预览文件(跟随活动文件 / 固定某个已打开文件)。
- Outfits 文件:渲染 Outfit 卡片(名称 / ScriptName / 变体数 / 性别 / 槽位摘要),点击展开变体明细。
- 其他 XML:递归元素树(可折叠),标签高亮 + 属性 + 文本摘要。
- 实时刷新:订阅树版本号,可视化 / 源码编辑即时更新;右键菜单:刷新 / 复制路径 / 在资源管理器显示 / 关闭。
12跨文件搜索
- 侧边栏搜索视图:大小写敏感 / 全词匹配 / 正则 三种开关(非法正则报错)。
- 对项目内全部文件搜索:已打开且有 XML 树 → 序列化当前树(未保存修改参与搜索);否则读磁盘。
- 结果按文件分组(行号 + 行内位置 + 一行多处展开);点击结果 → 打开文件并定位高亮到行。
13AI 助手
对话与入口
- 右侧 AI 面板(默认打开,可拖宽 300-520px);Ctrl+Shift+A 唤起并聚焦;命令面板可打开;输入框
/斜杠命令(fix / explain / optimize / refactor / translate / summarize / review)。 - XML 编辑器右键「问 AI」(fix / explain / optimize / review,选区或光标行注入
<selection>块);Inspector 解析失败「让 AI 修」。 #文件引用补全;从资源管理器拖文件进输入框。
模型与配置
- 提供商:OpenAI / Anthropic / DeepSeek / OpenRouter / 自定义(openai / anthropic 两种 API 格式),支持流式对话。
- 内置 20 家服务商目录(DeepSeek、OpenAI、火山引擎×3、MiniMax CN / Global、Bigmodel×2、阿里云×2、小米 MIMO×2、硅基流动、Z.ai×2、OpenRouter、Kimi×2、BytePlus×2),每家含 baseUrl、密钥获取链接、官方模型清单(contextWindow / 视觉支持标记)。
- 模型管理:添加 / 编辑 / 删除 / 启停 / 逐模型测试连接;Auto Mode(自动选列表第一个)/ MAX Mode(深度思考)/ 直接选模型。
- 密钥经 Electron safeStorage 加密存主进程(无钥匙串环境回退明文;旧版配置自动迁移),渲染层拿不到未解密密钥。
- 高级配置:展示名 / 上下文窗口 / 工具轮次 / 知识库开关 + 详略度(compact / detailed,带 token 预估);temperature(0-2);自定义 system prompt。
上下文构造(每次发送按序组装)
- system:代理模式指示(agent / plan / debug / multitask / ask 五档)+ 自定义或内置系统提示
- 当前编辑场景:激活文件路径 + 类型 + 编辑模式对应的回答风格
- 23 类文件格式知识库全量注入(LSPDFR 7 + UB 3 + PR 9 + 纯文本 4)
- 文件操作能力说明 → 历史最近 20 条 → 注入块(
<project>项目上下文 /<selection>选区块 ≤8000 字符 /<log>日志块 /<websearch>搜索块) #引用文件内容(每文件 ≤24000 字符,token 去重)→ 回复语言约束
文件操作能力(结构化动作块)
- 四种动作:create-file / apply-edit(带 old-text 只替换第一处匹配)/ delete-file / rename-file。
- 安全机制:路径必须落在项目根内(防越界);执行前自动备份
<file>.<timestamp>.bak(保留最近 20 份);动作卡片显示 pending / success / failed / rolled-back 状态 + 一键回滚(rename 回滚同时删除新路径,回滚后同步文件树 / 标签 / 解析缓存);目标文件有未保存编辑时显示警告。 - AI 回答中的 XML 代码块可一键插入(光标处 / 替换选中 / 整文件覆盖三种落点,整文件覆盖带 diff 预览)。
其他能力
- 联网搜索:DuckDuckGo 免费无密钥,主进程抓取,最多 8 条结果注入
<websearch>块。 - 日志分析:选择 RagePluginHook.log 等(主进程只读末尾 200KB)注入对话。
- 图片理解:≤5MB 粘贴截图入队(仅视觉模型可用,OpenAI / Anthropic 两种格式)。
- thinking 块:DeepSeek-R1 / Qwen3 / GLM-Z1 / Claude 推理增量单独通道,折叠显示。
- 流式输出、错误卡片可重试、撤回(回填输入框)、重新生成、会话管理(新建 / 双击重命名 / 删除 / 导出 Markdown)。
- Composer:∞ 深度思考、模型菜单、+ 菜单(插入当前文件 / 联网 / 日志 / 图片)、上下文用量 gauge(hover 显示输入 / 文件 / 项目 / 历史四类 token 明细)、回复语言、输入上限 5000 字符。
- 面板全部偏好 localStorage 持久化(不含密钥)。
14设置
设置页在欢迎页与工作区均可进入,工作区内以「设置标签」形式常驻标签栏,可定位分组:通用 / AI / 关于。
| 设置项 | 选项 / 范围 | 默认 |
|---|---|---|
| 主题 | 深色 / 浅色 / 跟随系统(auto 实时跟随系统切换) | 深色 |
| 语言 | auto / zh / zh-tw / en / de / fr / es / pt / ru / ko / tr | auto |
| 保存前自动格式化 XML | 开 / 关 | 开 |
| 格式化缩进宽度 | 2 空格 / 4 空格 / Tab | 2 |
| 自动保存 | 编辑后 1.5s 防抖写盘 | 关 |
| 保存前备份快照 | 原文件复制为时间戳快照(保留最近 N 份) | 开 |
| 启动时打开最近项目 | 开 / 关 | 关 |
| 最近项目条数 | 3-20 | 8 |
| 编辑器字号 | 12-18px | 13 |
| XML 代码补全 | 开 / 关 | 开 |
| 桌面右键菜单「通过 EUP XML Refit 打开」 | 开 / 关(主进程写注册表) | 开 |
关于页:版本 / 本地运行声明 / 快照说明。
15数据安全
- 保存流程:保存钩子提交编辑器防抖缓冲 → 序列化树 → 备份快照(设置开启时)→ 写盘 → 清脏标记 → 更新解析缓存。
- 自动保存:1.5s 防抖;会话恢复:dirty 文档 300ms 防抖全量写 localStorage,窗口销毁前兜底落盘——跨窗口恢复未保存修改,会话只存脏文档。
- 保存前备份快照与 AI 动作备份共用同一备份池(时间戳命名、保留 20 份、冲突加 -1 / -2),检查器历史 Tab 可恢复。
- 纯本地运行,数据不离开本机(AI 对话除外,按你的配置发送到所选服务商)。
16多语言
- 10 种语言:简体中文 / 繁体中文 / 英语 / 德语 / 法语 / 西班牙语 / 葡萄牙语 / 俄语 / 韩语 / 土耳其语 + 跟随系统。
- 领域本地化:武器、配件、Zone 区域等专业名词按语言表翻译(de / fr / es / pt / ru / ko / tr 覆盖),缺失回退英文。
- 系统语言感知对话框标题(主进程按系统语言切换中英)。
17系统集成
- 桌面右键菜单:Windows 注册表写入
*\shell\EUPXMLRefit+ Directory + DesktopBackground(「通过 EUP XML Refit 打开」,命令带 "%1",幂等免管理员,可设置开关;启动时自动重写自愈)。 - 桌面快捷方式:首次启动询问创建(PowerShell 生成,兼容 OneDrive 桌面重定向)。
- 外部文件 / 文件夹拖放打开;编辑窗口可多开。
- 窗口体系:欢迎窗口(1000×640 无边框自绘标题栏)→ 打开项目 → 编辑窗口(1280×800,可多开)→ 关闭后回欢迎页;欢迎页首次启动询问创建桌面快捷方式(拒绝后不再打扰)。
- 欢迎页顶部 Tab:项目 | 帮助;帮助页含快速上手引导、快捷键列表、支持范围、版本信息。