DNF90 服务端与启动器完整源码(含 GM 工具功能增强)
服务端(Go): - GM 塞背包/带属性装备发放:在线角色推送 op14 增量物品行,背包实时刷新,无需回角色选择界面 - GM 改金币/改等级:去掉在线拒绝,落库后推送 op14 钱包/op37 等级状态,在线实时刷新 - 等级端点统一切换到新版 GMSetCharacterLevel(自带在线刷新) - 无限/锁死疲劳模式 + 燃烧疲劳:每房间消耗 2 点、打怪与通关经验双倍 - 燃烧疲劳开关时给所有在线角色推送系统提示(op12 mode 0) - 深渊史诗掉率:GM 全局倍率 + 城镇增益药剂窗口倍率,真实接入掉落结算 启动器(Python/JS): - 标题栏自绘、窗口 1204x717、禁止拖拽改大小、仅最小化/关闭 - GM 工具:疲劳与燃烧、深渊史诗掉率、拍卖行上架(单一定价对齐) - 拍卖行上架前端对齐服务端单一价格语义,修复 400 报错
This commit is contained in:
commit
645b64fe21
4388 files changed
+1405457
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,198 @@
|
||||
{
|
||||
"version": 1,
|
||||
"name": "系统内置",
|
||||
"groups": [
|
||||
{
|
||||
"id": "builtin-list",
|
||||
"name": "列表",
|
||||
"groups": [
|
||||
{
|
||||
"id": "bookmark-group-1",
|
||||
"name": "技能",
|
||||
"entries": [
|
||||
{
|
||||
"path": "skill/atfighterskill.lst",
|
||||
"name": "格斗家·男"
|
||||
},
|
||||
{
|
||||
"path": "skill/atgunnerskill.lst",
|
||||
"name": "神枪手·女"
|
||||
},
|
||||
{
|
||||
"path": "skill/atmageskill.lst",
|
||||
"name": "魔法师·男"
|
||||
},
|
||||
{
|
||||
"path": "skill/atpriestskill.lst",
|
||||
"name": "圣职者·女"
|
||||
},
|
||||
{
|
||||
"path": "skill/atswordmanskill.lst",
|
||||
"name": "鬼剑士·女"
|
||||
},
|
||||
{
|
||||
"path": "skill/creatormageskill.lst",
|
||||
"name": "缔造者"
|
||||
},
|
||||
{
|
||||
"path": "skill/demoniclancerskill.lst",
|
||||
"name": "魔枪士"
|
||||
},
|
||||
{
|
||||
"path": "skill/dsswordmanskill.lst",
|
||||
"name": "黑暗武士"
|
||||
},
|
||||
{
|
||||
"path": "skill/fighterskill.lst",
|
||||
"name": "格斗家·女"
|
||||
},
|
||||
{
|
||||
"path": "skill/gunnerskill.lst",
|
||||
"name": "神枪手·男"
|
||||
},
|
||||
{
|
||||
"path": "skill/mageskill.lst",
|
||||
"name": "魔法师·女"
|
||||
},
|
||||
{
|
||||
"path": "skill/priestskill.lst",
|
||||
"name": "圣职者·男"
|
||||
},
|
||||
{
|
||||
"path": "skill/swordmanskill.lst",
|
||||
"name": "鬼剑士·男"
|
||||
},
|
||||
{
|
||||
"path": "skill/thiefskill.lst",
|
||||
"name": "暗夜使者"
|
||||
},
|
||||
{
|
||||
"path": "skill/knight.lst",
|
||||
"name": "守护者"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"path": "equipment/equipment.lst",
|
||||
"name": "装备"
|
||||
},
|
||||
{
|
||||
"path": "stackable/stackable.lst",
|
||||
"name": "道具"
|
||||
},
|
||||
{
|
||||
"path": "appendage/appendage.lst",
|
||||
"name": "apd"
|
||||
},
|
||||
{
|
||||
"path": "character/character.lst",
|
||||
"name": "职业"
|
||||
},
|
||||
{
|
||||
"path": "creature/creature.lst",
|
||||
"name": "宠物"
|
||||
},
|
||||
{
|
||||
"path": "dungeon/dungeon.lst",
|
||||
"name": "地下城"
|
||||
},
|
||||
{
|
||||
"path": "itemshop/itemshop.lst",
|
||||
"name": "商店"
|
||||
},
|
||||
{
|
||||
"path": "map/map.lst",
|
||||
"name": "map"
|
||||
},
|
||||
{
|
||||
"path": "monster/monster.lst",
|
||||
"name": "怪物"
|
||||
},
|
||||
{
|
||||
"path": "n_quest/quest.lst",
|
||||
"name": "任务"
|
||||
},
|
||||
{
|
||||
"path": "npc/npc.lst",
|
||||
"name": "npc"
|
||||
},
|
||||
{
|
||||
"path": "passiveobject/passiveobject.lst",
|
||||
"name": "被动对象"
|
||||
},
|
||||
{
|
||||
"path": "region/region.lst",
|
||||
"name": "区域"
|
||||
},
|
||||
{
|
||||
"path": "town/town.lst",
|
||||
"name": "城镇"
|
||||
},
|
||||
{
|
||||
"path": "worldmap/worldmap.lst",
|
||||
"name": "副本接口"
|
||||
},
|
||||
{
|
||||
"path": "etc/equipmentpartset.etc",
|
||||
"name": "套装"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bookmark-group-2",
|
||||
"name": "掉落",
|
||||
"entries": [
|
||||
{
|
||||
"path": "etc/itemdropinfo_monster_hell.etc",
|
||||
"name": "深渊掉落"
|
||||
},
|
||||
{
|
||||
"path": "etc/itemdropinfo_clearreward.etc",
|
||||
"name": "翻牌掉落"
|
||||
},
|
||||
{
|
||||
"path": "etc/itemdropinfo_monseter.etc",
|
||||
"name": "怪物掉落"
|
||||
},
|
||||
{
|
||||
"path": "etc/itemdropinfo_monseter_extra.etc",
|
||||
"name": "精英掉落"
|
||||
},
|
||||
{
|
||||
"path": "etc/worlddrop.etc",
|
||||
"name": "全局掉率"
|
||||
},
|
||||
{
|
||||
"path": "etc/independent_drop.etc",
|
||||
"name": "独立掉落"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bookmark-group-3",
|
||||
"name": "常用道具",
|
||||
"entries": [
|
||||
{
|
||||
"path": "stackable/consumption_1254.stk",
|
||||
"name": "红气息"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"path": "etc/disjoint.etc",
|
||||
"name": "分解装备"
|
||||
},
|
||||
{
|
||||
"path": "etc/pcroom.vm",
|
||||
"name": "黑钻抽奖机"
|
||||
},
|
||||
{
|
||||
"path": "etc/pcroom4.vm",
|
||||
"name": "高级黑钻抽奖机"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package config
|
||||
|
||||
import _ "embed"
|
||||
|
||||
//go:embed annotations.json
|
||||
var AnnotationsJSON []byte
|
||||
|
||||
//go:embed paths.json
|
||||
var PathsJSON []byte
|
||||
|
||||
//go:embed sections.json
|
||||
var SectionsJSON []byte
|
||||
|
||||
//go:embed rendering.json
|
||||
var RenderingJSON []byte
|
||||
|
||||
//go:embed lists.json
|
||||
var ListsJSON []byte
|
||||
|
||||
//go:embed bookmarks.json
|
||||
var BookmarksJSON []byte
|
||||
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"version": 1,
|
||||
"description": "pvfine built-in list and relation indexes",
|
||||
"relations": {
|
||||
"装备": {
|
||||
"listPath": "equipment/equipment.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"道具": {
|
||||
"listPath": "stackable/stackable.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"apd": {
|
||||
"listPath": "appendage/appendage.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"职业": {
|
||||
"listPath": "character/character.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"宠物": {
|
||||
"listPath": "creature/creature.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"地下城": {
|
||||
"listPath": "dungeon/dungeon.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"商店": {
|
||||
"listPath": "itemshop/itemshop.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"map": {
|
||||
"listPath": "map/map.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"怪物": {
|
||||
"listPath": "monster/monster.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"任务": {
|
||||
"listPath": "n_quest/quest.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"npc": {
|
||||
"listPath": "npc/npc.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"被动对象": {
|
||||
"listPath": "passiveobject/passiveobject.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"区域": {
|
||||
"listPath": "region/region.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"城镇": {
|
||||
"listPath": "town/town.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"副本接口": {
|
||||
"listPath": "worldmap/worldmap.lst",
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name"
|
||||
},
|
||||
"物品": {
|
||||
"kind": "union",
|
||||
"relations": ["装备", "道具"]
|
||||
},
|
||||
"技能": {
|
||||
"kind": "contextual",
|
||||
"contextToken": 0,
|
||||
"idToken": 0,
|
||||
"pathToken": 1,
|
||||
"recordTokens": 2,
|
||||
"nameSection": "name",
|
||||
"contextPaths": {
|
||||
"[swordman]": "skill/swordmanskill.lst",
|
||||
"[at swordman]": "skill/atswordmanskill.lst",
|
||||
"[fighter]": "skill/fighterskill.lst",
|
||||
"[at fighter]": "skill/atfighterskill.lst",
|
||||
"[gunner]": "skill/gunnerskill.lst",
|
||||
"[at gunner]": "skill/atgunnerskill.lst",
|
||||
"[mage]": "skill/mageskill.lst",
|
||||
"[at mage]": "skill/atmageskill.lst",
|
||||
"[priest]": "skill/priestskill.lst",
|
||||
"[at priest]": "skill/atpriestskill.lst",
|
||||
"[thief]": "skill/thiefskill.lst",
|
||||
"[creator mage]": "skill/creatormageskill.lst",
|
||||
"[knight]": "skill/knight.lst",
|
||||
"[demonic swordman]": "skill/dsswordmanskill.lst",
|
||||
"[demonic lancer]": "skill/demoniclancerskill.lst"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+249140
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,438 @@
|
||||
{
|
||||
"version": 1,
|
||||
"description": "pvfine built-in script rendering rules",
|
||||
"rules": [
|
||||
{
|
||||
"id": "file.lst",
|
||||
"match": {
|
||||
"extensions": [
|
||||
".lst"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"kind": "file"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.world-drop",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "world drop"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 2,
|
||||
"standaloneValues": [
|
||||
-1
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.independent-drop",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "independent drop"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 17,
|
||||
"nestedSections": [
|
||||
"list"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.list",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "list"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.skill-data-up",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "skill data up"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 7
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.skill-levelup",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "skill levelup"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.skill",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "skill"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 7,
|
||||
"offset": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.level info",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "level info"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 1,
|
||||
"offset": 1,
|
||||
"tokensPerLineIndex": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.input item",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "input item"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.output item",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "output item"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.basis of rarity dicision.hell",
|
||||
"match": {
|
||||
"glob": "etc/itemdropinfo_monster_hell.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "basis of rarity dicision"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 7,
|
||||
"tokensPerLineByVersion": {
|
||||
"90US": 7,
|
||||
"90CN": 7,
|
||||
"TW": 6,
|
||||
"100CN": 8,
|
||||
"110US": 9,
|
||||
"115CN": 9
|
||||
},
|
||||
"offset": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.basis of rarity dicision",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "basis of rarity dicision"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 7,
|
||||
"tokensPerLineByVersion": {
|
||||
"90US": 7,
|
||||
"90CN": 7,
|
||||
"TW": 6,
|
||||
"100CN": 8,
|
||||
"110US": 9,
|
||||
"115CN": 9
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "section.equipment part set",
|
||||
"match": {},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "equipment part set"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 4,
|
||||
"offset": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.upgrade.table",
|
||||
"match": {
|
||||
"glob": "etc/upgrade.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "table"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 17
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.upgrade.table-type",
|
||||
"match": {
|
||||
"glob": "etc/upgrade.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "table type"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 24,
|
||||
"offset": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.upgrade.safe-upgrade",
|
||||
"match": {
|
||||
"glob": "etc/upgrade.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "safe upgrade"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.amplify.table",
|
||||
"match": {
|
||||
"glob": "etc/amplifyupgrade.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "table"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 17
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.amplify.table-type",
|
||||
"match": {
|
||||
"glob": "etc/amplifyupgrade.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "table type"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 24,
|
||||
"offset": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.amplify.safe-upgrade",
|
||||
"match": {
|
||||
"glob": "etc/amplifyupgrade.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "safe upgrade"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.table",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "table"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 4,
|
||||
"tokensPerLineByVersion": {
|
||||
"115CN": 6
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.item-weights-by-grade",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "item weights by grade"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.item-weights-by-grade-100lv",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "item weights by grade 100lv"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.item-weights-by-rarity",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "item weights by rarity"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 9
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.item-weights-by-rarity-100lv",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "item weights by rarity 100lv"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 9
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.stat-weights-by-rarity",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "stat weights by rarity"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 9
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.separate-upgrade-effect",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "separate upgrade effect"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.activestatus-upgrade-dungeon",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "activestatus upgrade dungeon"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.activestatus-upgrade-pvp",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "activestatus upgrade pvp"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.anti-evil-upgrade",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "anti evil upgrade"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "etc.forge.genuine-buffer-option-apply-weapon",
|
||||
"match": {
|
||||
"glob": "etc/upgrade_separate.etc"
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "genuine buffer option apply weapon"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 9
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "user.rule.aaf15bba-9653-41ae-b16c-17f4fb640e66",
|
||||
"match": {
|
||||
"extensions": [
|
||||
".stk"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "cera"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 3,
|
||||
"offset": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "user.rule.1d7969fe-999b-4129-87bd-161e033bbcb0",
|
||||
"match": {
|
||||
"extensions": [
|
||||
".vm"
|
||||
]
|
||||
},
|
||||
"target": {
|
||||
"kind": "section",
|
||||
"section": "output"
|
||||
},
|
||||
"format": {
|
||||
"tokensPerLine": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user