diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2019-11-22 23:26:32 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2019-11-22 23:26:32 +0800 |
commit | d0ff66c9abe9d6abbca12fd811e0c3cb69c1033a (patch) | |
tree | bb34518d70b85de7656dbdbe958dfa221a3ff3b3 /script | |
parent | 0a2c2ad15e1ec359171fb0dd4c72e57c5b66e9ba (diff) | |
download | lua-language-server-d0ff66c9abe9d6abbca12fd811e0c3cb69c1033a.zip |
整理一下目录结构
Diffstat (limited to 'script')
185 files changed, 58206 insertions, 0 deletions
diff --git a/script/build_package.lua b/script/build_package.lua new file mode 100644 index 00000000..402cea14 --- /dev/null +++ b/script/build_package.lua @@ -0,0 +1,329 @@ +local json = require 'json' +local diagDefault = require 'constant.DiagnosticDefaultSeverity' + +local VERSION = "0.14.2" + +local package = { + name = "lua", + displayName = "Lua", + description = "Lua Language Server coded by Lua", + author = "sumneko", + icon = "images/logo.png", + license = "MIT", + repository = { + type = "git", + url = "https://github.com/sumneko/lua-language-server" + }, + publisher = "sumneko", + categories = { + "Linters", + "Programming Languages", + "Snippets" + }, + keywords = { + "Lua", + "LSP", + "GoTo Definition", + "IntelliSense" + }, + engines = { + vscode = "^1.23.0" + }, + activationEvents = { + "onLanguage:lua" + }, + main = "./client/out/extension", + contributes = { + configuration = { + type = "object", + title = "Lua", + properties = { + ["Lua.runtime.version"] = { + scope = "resource", + type = "string", + default = "Lua 5.3", + enum = { + "Lua 5.1", + "Lua 5.2", + "Lua 5.3", + "Lua 5.4", + "LuaJIT" + }, + markdownDescription = "%config.runtime.version%" + }, + ["Lua.runtime.path"] = { + scope = "resource", + type = "array", + items = { + type = 'string', + }, + markdownDescription = "%config.runtime.path%", + default = { + "?.lua", + "?/init.lua", + "?/?.lua" + } + }, + ["Lua.diagnostics.enable"] = { + scope = 'resource', + type = 'boolean', + default = true, + markdownDescription = "%config.diagnostics.enable%" + }, + ["Lua.diagnostics.disable"] = { + scope = "resource", + type = "array", + items = { + type = 'string', + }, + markdownDescription = "%config.diagnostics.disable%" + }, + ["Lua.diagnostics.globals"] = { + scope = "resource", + type = "array", + items = { + type = 'string', + }, + markdownDescription = "%config.diagnostics.globals%" + }, + ["Lua.diagnostics.severity"] = { + scope = "resource", + type = 'object', + markdownDescription = "%config.diagnostics.severity%", + title = "severity", + properties = {} + }, + ["Lua.workspace.ignoreDir"] = { + scope = "resource", + type = "array", + items = { + type = 'string', + }, + markdownDescription = "%config.workspace.ignoreDir%", + default = { + ".vscode", + }, + }, + ["Lua.workspace.ignoreSubmodules"] = { + scope = "resource", + type = "boolean", + default = true, + markdownDescription = "%config.workspace.ignoreSubmodules%" + }, + ["Lua.workspace.useGitIgnore"] = { + scope = "resource", + type = "boolean", + default = true, + markdownDescription = "%config.workspace.useGitIgnore%" + }, + ["Lua.workspace.maxPreload"] = { + scope = "resource", + type = "integer", + default = 300, + markdownDescription = "%config.workspace.maxPreload%" + }, + ["Lua.workspace.preloadFileSize"] = { + scope = "resource", + type = "integer", + default = 100, + markdownDescription = "%config.workspace.preloadFileSize%" + }, + ["Lua.workspace.library"] = { + scope = 'resource', + type = 'object', + markdownDescription = "%config.workspace.library%" + }, + ["Lua.completion.enable"] = { + scope = "resource", + type = "boolean", + default = true, + markdownDescription = "%config.completion.enable%" + }, + ["Lua.completion.callSnippet"] = { + scope = "resource", + type = "string", + default = "Disable", + enum = { + "Disable", + "Both", + "Replace", + }, + markdownEnumDescriptions = { + "%config.completion.callSnippet.Disable%", + "%config.completion.callSnippet.Both%", + "%config.completion.callSnippet.Replace%", + }, + markdownDescription = "%config.completion.callSnippet%" + }, + ["Lua.completion.keywordSnippet"] = { + scope = "resource", + type = "string", + default = "Replace", + enum = { + "Disable", + "Both", + "Replace", + }, + markdownEnumDescriptions = { + "%config.completion.keywordSnippet.Disable%", + "%config.completion.keywordSnippet.Both%", + "%config.completion.keywordSnippet.Replace%", + }, + markdownDescription = "%config.completion.keywordSnippet%" + }, + --["Lua.plugin.enable"] = { + -- scope = "resource", + -- type = "boolean", + -- default = false, + -- markdownDescription = "%config.plugin.enable%" + --}, + --["Lua.plugin.path"] = { + -- scope = "resource", + -- type = "string", + -- default = ".vscode/lua-plugin/*.lua", + -- markdownDescription = "%config.plugin.path%" + --}, + ["Lua.zzzzzz.cat"] = { + scope = "resource", + type = "boolean", + default = false, + markdownDescription = "%config.zzzzzz.cat%" + }, + } + }, + grammars = { + { + language = "lua", + scopeName = "source.lua", + path = "./syntaxes/lua.tmLanguage.json" + } + } + }, + __metadata = { + id = "3a15b5a7-be12-47e3-8445-88ee3eabc8b2", + publisherDisplayName = "sumneko", + publisherId = "fb626675-24cf-4881-8c13-b465f29bec2f", + }, +} + +local DiagSeverity = package.contributes.configuration.properties["Lua.diagnostics.severity"].properties +for name, level in pairs(diagDefault) do + DiagSeverity[name] = { + scope = 'resource', + type = 'string', + default = level, + enum = { + 'Error', + 'Warning', + 'Information', + 'Hint', + } + } +end + +package.version = VERSION + +io.save(ROOT:parent_path() / 'package.json', json.encode(package)) + +local example = { + library = [[ +```json +"Lua.workspace.library": { + "C:/lua": true, + "../lib": [ + "temp/*" + ] +} +``` +]], + disable = [[ +```json +"Lua.diagnostics.disable" : [ + "unused-local", + "lowercase-global" +] +``` +]], + globals = [[ +```json +"Lua.diagnostics.globals" : [ + "GLOBAL1", + "GLOBAL2" +] +``` +]], + severity = [[ +```json +"Lua.diagnostics.severity" : { + "redefined-local" : "Warning", + "emmy-lua" : "Hint" +} +``` +]], + ignoreDir = [[ +```json +"Lua.workspace.ignoreDir" : [ + "temp/*.*", + "!temp/*.lua" +] +``` +]] +} + +io.save(ROOT:parent_path() / 'package.nls.json', json.encode { + ["config.runtime.version"] = "Lua runtime version.", + ["config.runtime.path"] = "`package.path`", + ["config.diagnostics.enable"] = "Enable diagnostics.", + ["config.diagnostics.disable"] = "Disabled diagnostic (Use code in hover brackets).\n" .. example.disable, + ["config.diagnostics.globals"] = "Defined global variables.\n" .. example.globals, + ["config.diagnostics.severity"] = "Modified diagnostic severity.\n" .. example.severity, + ["config.workspace.ignoreDir"] = "Ignored directories (Use `.gitignore` grammar).\n" .. example.ignoreDir, + ["config.workspace.ignoreSubmodules"] = "Ignore submodules.", + ["config.workspace.useGitIgnore"] = "Ignore files list in `.gitignore` .", + ["config.workspace.maxPreload"] = "Max preloaded files.", + ["config.workspace.preloadFileSize"] = "Skip files larger than this value (KB) when preloading.", + ["config.workspace.library"] = [[ +Load external library. +This feature can load external Lua files, which can be used for definition, automatic completion and other functions. Note that the language server does not monitor changes in external files and needs to restart if the external files are modified. +The following example shows loaded files in `C:/lua` and `../lib` ,exclude `../lib/temp`. +]] .. example.library, + ['config.completion.enable'] = 'Enable completion.', + ['config.completion.callSnippet'] = 'Shows function call snippets.', + ['config.completion.callSnippet.Disable'] = "Only shows `function name`.", + ['config.completion.callSnippet.Both'] = "Shows `function name` and `call snippet`.", + ['config.completion.callSnippet.Replace'] = "Only shows `call snippet.`", + ['config.completion.keywordSnippet'] = 'Shows keyword syntax snippets.', + ['config.completion.keywordSnippet.Disable'] = "Only shows `keyword`.", + ['config.completion.keywordSnippet.Both'] = "Shows `keyword` and `syntax snippet`.", + ['config.completion.keywordSnippet.Replace'] = "Only shows `syntax snippet`.", + ['config.zzzzzz.cat'] = 'DO NOT TOUCH ME, LET ME SLEEP >_<\n\n(This will enable beta version, which are still in the early stages of development, and all features will fail after enabling this setting.)', +}) + +io.save(ROOT:parent_path() / 'package.nls.zh-cn.json', json.encode { + ["config.runtime.version"] = "Lua运行版本。", + ["config.runtime.path"] = "`package.path`", + ["config.diagnostics.enable"] = "启用诊断。", + ["config.diagnostics.disable"] = "禁用的诊断(使用浮框括号内的代码)。\n" .. example.disable, + ["config.diagnostics.globals"] = "已定义的全局变量。\n" .. example.globals, + ["config.diagnostics.severity"] = "修改诊断等级。\n" .. example.severity, + ["config.workspace.ignoreDir"] = "忽略的目录(使用 `.gitignore` 语法)。\n" .. example.ignoreDir, + ["config.workspace.ignoreSubmodules"] = "忽略子模块。", + ["config.workspace.useGitIgnore"] = "忽略 `.gitignore` 中列举的文件。", + ["config.workspace.maxPreload"] = "最大预加载文件数。", + ["config.workspace.preloadFileSize"] = "预加载时跳过大小大于该值(KB)的文件。", + ["config.workspace.library"] = [[ +加载外部函数库。 +该功能可以加载外部的Lua文件,用于函数定义、自动完成等功能。注意,语言服务不会监视外部文件的变化,如果修改了外部文件需要重启。 +下面这个例子表示加载`C:/lua`与`../lib`中的所有文件,但不加载`../lib/temp`中的文件。 +]] .. example.library, + ['config.completion.enable'] = '启用自动完成。', + ['config.completion.callSnippet'] = '显示函数调用片段。', + ['config.completion.callSnippet.Disable'] = "只显示 `函数名`。", + ['config.completion.callSnippet.Both'] = "显示 `函数名` 与 `调用片段`。", + ['config.completion.callSnippet.Replace'] = "只显示 `调用片段`。", + ['config.completion.keywordSnippet'] = '显示关键字语法片段', + ['config.completion.keywordSnippet.Disable'] = "只显示 `关键字`。", + ['config.completion.keywordSnippet.Both'] = "显示 `关键字` 与 `语法片段`。", + ['config.completion.keywordSnippet.Replace'] = "只显示 `语法片段`。", + ['config.zzzzzz.cat'] = 'DO NOT TOUCH ME, LET ME SLEEP >_<\n\n(这会启用还处于早期开发阶段的beta版,开启后所有的功能都会失效)', +}) diff --git a/script/debugger.lua b/script/debugger.lua new file mode 100644 index 00000000..79b2931d --- /dev/null +++ b/script/debugger.lua @@ -0,0 +1,52 @@ +local fs = require 'bee.filesystem' +local extensionPath = fs.path(os.getenv 'USERPROFILE') / '.vscode' / 'extensions' +log.debug('Search extensions at:', extensionPath:string()) +if not fs.is_directory(extensionPath) then + log.debug('Extension path is not a directory.') + return +end + +local luaDebugs = {} +for path in extensionPath:list_directory() do + if fs.is_directory(path) then + local name = path:filename():string() + if name:find('actboy168.lua-debug-', 1, true) then + luaDebugs[#luaDebugs+1] = name + end + end +end + +if #luaDebugs == 0 then + log.debug('Cant find "actboy168.lua-debug"') + return +end + +local function getVer(filename) + local a, b, c = filename:match('(%d+)%.(%d+)%.(%d+)$') + if not a then + return 0 + end + return a * 1000000 + b * 1000 + c +end + +table.sort(luaDebugs, function (a, b) + return getVer(a) > getVer(b) +end) + +local debugPath = extensionPath / luaDebugs[1] +local cpath = "/runtime/win64/lua54/?.dll" +local path = "/script/?.lua" + +local function tryDebugger() + local entry = assert(package.searchpath('debugger', debugPath:string() .. path)) + local root = debugPath:string() + local port = '11411' + local addr = "127.0.0.1:" .. port + local dbg = loadfile(entry)('windows', root) + dbg:start(addr) + dbg:wait() + log.debug('Debugger startup, listen port:', port) + log.debug('Debugger args:', addr, root, path, cpath) +end + +xpcall(tryDebugger, log.debug) diff --git a/script/main.lua b/script/main.lua new file mode 100644 index 00000000..afb32f03 --- /dev/null +++ b/script/main.lua @@ -0,0 +1,23 @@ +local currentPath = debug.getinfo(1, 'S').source:sub(2) +local rootPath = currentPath:gsub('[/\\]*[^/\\]-$', '') +dofile(rootPath .. '/platform.lua') +local fs = require 'bee.filesystem' +ROOT = fs.current_path() / rootPath +LANG = LANG or 'en-US' + +--collectgarbage('generational') +collectgarbage("setpause", 100) +collectgarbage("setstepmul", 1000) + +log = require 'log' +log.init(ROOT, ROOT / 'log' / 'service.log') +log.info('Lua Lsp startup, root: ', ROOT) +log.debug('ROOT:', ROOT:string()) +ac = {} + +--xpcall(dofile, log.debug, rootPath .. '/debugger.lua') +require 'utility' +local service = require 'service' +local session = service() + +session:listen() diff --git a/script/meta/Lua 5.4/basic.lua b/script/meta/Lua 5.4/basic.lua new file mode 100644 index 00000000..54f74a5c --- /dev/null +++ b/script/meta/Lua 5.4/basic.lua @@ -0,0 +1,145 @@ +--- 独立版Lua的启动参数。 +arg = {} + +--- 如果其参数 `v` 的值为假,它就调用 `error`。 +---@overload fun(v:any):any +---@param v any +---@param message any {optional = 'self'} +---@return any +function assert(v, message) end + +---@overload fun() +---@overload fun(opt:GCOption):any +---@param opt GCOption {optional = 'after'} +---@param arg integer {optional = 'self'} +---@return any +function collectgarbage(opt, arg) end + +--- 打开该名字的文件,并执行文件中的 Lua 代码块。 +---@overload fun():any +---@param filename string {optional = 'self', special = 'dofile:1'} +---@return any +function dofile(filename) end + +--- 中止上一次保护函数调用,将错误对象 `message` 返回。 +---@overload fun(message:any) +---@param message any +---@param level integer {optional = 'self'} +function error(message, level) end + +--- 内部储存有全局环境。 +_G = {} + +--- 返回该对象的元表。 +---@param object any +---@return table {name = 'metatable'} +function getmetatable(object) end + +--- 能迭代表 `t` 中序列的键值对。 +---|```lua +---|for i, v in ipairs(t) do +---| -- body +---|end +---|``` +---@param t table +---@return {name = 'iterator'} +---@return table {name = 't'} +---@return integer {name = 'i'} +function ipairs(t) + --- 返回该键的下一个键及其关联的值。 + ---@overload fun(t:table):integer,any + ---@param t table + ---@param index any {optional = 'self'} + ---@return integer {name = 'index'} + ---@return any {name = 'value'} + local function iterator(t, index) end + + return iterator, t, nil +end + +--- 加载一个代码块。 +---@overload fun():function,string +---@overload fun(chunk:string|function):function,string +---@overload fun(chunk:string|function, chunkname:string):function,string +---@overload fun(chunk:string|function, chunkname:string, mode:loadOption):function,string +---@param chunk string|function +---@param chunkname string {optional = 'after'} +---@param mode loadOption {optional = 'after'} +---@param env table {optional = 'self'} +---@return {name = 'init'} +---@return string {name = 'errMessage', optional = 'self'} +function load(chunk, chunkname, mode, env) + return function (...) end +end + +--- 从文件中获取代码块。 +---@overload fun():function,string +---@overload fun(filename:string):function,string +---@overload fun(filename:string, mode:loadOption):function,string +---@param filename string {optional = 'after', special = 'loadfile:1'} +---@param mode loadOption {optional = 'after'} +---@param env table {optional = 'self'} +---@return {name = 'init'} +---@return string {name = 'errMessage', optional = 'self'} +function loadfile(filename, mode, env) + return function (...) end +end + +--- 返回该键的下一个键及其关联的值。 +---@overload fun(t:table):any, any +---@param t table +---@param index any {optional = 'self'} +---@return any {name = 'key'} +---@return any {name = 'value'} +function next(t, index) end + +--- 能迭代表 `t` 中的所有键值对。 +---|```lua +---|for k, v in pairs(t) do +---| -- body +---|end +---|``` +---@param t table +---@return {name = 'next'} +---@return table {name = 't'} +---@return any {name = 'key'} +function pairs(t) + --- 返回该键的下一个键及其关联的值。 + ---@overload fun(t:table):any, any + ---@param t table + ---@param index any {optional = 'self'} + ---@return any {name = 'key'} + ---@return any {name = 'value'} + local function next(t, index) end + + return next, t, nil +end + +--- 传入参数,以 *保护模式* 调用函数 `f` 。 +---@param f function {special = 'pcall:1'} +---@param arg1 any {optional = 'after'} +---@return boolean {name = 'success'} +---@return {name = 'result'} +function pcall(f, arg1, ...) +end + +--- 接收任意数量的参数,并将它们的值打印到 `stdout`。 +function print(...) +end + +--- 在不触发任何元方法的情况下 检查 `v1` 是否和 `v2` 相等。 +---@param v1 any +---@param v2 any +---@return boolean +function rawequal(v1, v2) +end + +--- 加载一个模块,返回该模块的返回值(`nil`时为`true`)。 +---@param modname string {special = 'require:1'} +---@return any +---@return {name = 'loaderdata'} +function require(modname) +end + +--- 当前解释器版本号。 +_VERSION = 'Lua 5.4' diff --git a/script/meta/Lua 5.4/meta.lua b/script/meta/Lua 5.4/meta.lua new file mode 100644 index 00000000..4fe28af2 --- /dev/null +++ b/script/meta/Lua 5.4/meta.lua @@ -0,0 +1,27 @@ +---@class any +---@class string any +---@class number any +---@class integer number +---@class boolean any +---@class table any +---@class function any +---@class nil any +---@class userdata any +---@class thread any + +---@alias GCOption string +---| > '"collect"' # 做一次完整的垃圾收集循环。 +---| '"stop"' # 停止垃圾收集器的运行。 +---| '"restart"' # 重启垃圾收集器的自动运行。 +---| '"count"' # 以 K 字节数为单位返回 Lua 使用的总内存数。 +---| '"step"' # 单步运行垃圾收集器。 +---| '"setpause"' # 设置收集器的 `间歇率`。 +---| '"setstepmul"' # 设置收集器的 `步进倍率`。 +---| '"incremental"' # 改变收集器模式为增量模式。 +---| '"generational"' # 改变收集器模式为分代模式。 +---| '"isrunning"' # 返回表示收集器是否在工作的布尔值。 + +---@alias loadOption string +---| "'b'" # 只能是二进制代码块。 +---| "'t'" # 只能是文本代码块。 +---| > "'bt'" # 可以是二进制也可以是文本。 diff --git a/script/platform.lua b/script/platform.lua new file mode 100644 index 00000000..5384ad3d --- /dev/null +++ b/script/platform.lua @@ -0,0 +1,26 @@ +local currentPath = debug.getinfo(1, 'S').source:sub(2) +local rootPath = currentPath:gsub('[^/\\]-$', '') +if package.loadlib(rootPath .. 'Windows/bin/bee.dll', 'luaopen_bee_platform') then + if rootPath == '' then + rootPath = '.\\' + end + package.cpath = rootPath .. 'Windows\\bin\\?.dll' + package.path = rootPath .. 'src\\?.lua' + .. ';' .. rootPath .. 'src\\?\\init.lua' +elseif package.loadlib(rootPath .. 'macOS/bin/bee.so', 'luaopen_bee_platform') then + if rootPath == '' then + rootPath = './' + end + package.cpath = rootPath .. 'macOS/bin/?.so' + package.path = rootPath .. 'src/?.lua' + .. ';' .. rootPath .. 'src/?/init.lua' +elseif package.loadlib(rootPath .. 'Linux/bin/bee.so', 'luaopen_bee_platform') then + if rootPath == '' then + rootPath = './' + end + package.cpath = rootPath .. 'Linux/bin/?.so' + package.path = rootPath .. 'src/?.lua' + .. ';' .. rootPath .. 'src/?/init.lua' +else + error([[It doesn't seem to support your OS, please let me know at https://github.com/sumneko/lua-language-server/issues]]) +end diff --git a/script/publish.lua b/script/publish.lua new file mode 100644 index 00000000..7d0321aa --- /dev/null +++ b/script/publish.lua @@ -0,0 +1,189 @@ +local currentPath = debug.getinfo(1, 'S').source:sub(2) +local rootPath = currentPath:gsub('[^/\\]-$', '') +if rootPath == '' then + rootPath = './' +end +dofile(rootPath .. 'platform.lua') +local fs = require 'bee.filesystem' +local subprocess = require 'bee.subprocess' +local platform = require 'bee.platform' +ROOT = fs.absolute(fs.path(rootPath):parent_path()) +EXTENSION = ROOT:parent_path() + +require 'utility' +local json = require 'json' + +local function loadPackage() + local buf = io.load(EXTENSION / 'package.json') + if not buf then + error(ROOT:string() .. '|' .. EXTENSION:string()) + end + local package = json.decode(buf) + return package.version +end + +local function updateNodeModules(out, postinstall) + local current = fs.current_path() + fs.current_path(out) + local cmd = io.popen(postinstall) + for line in cmd:lines 'l' do + print(line) + end + local suc = cmd:close() + if not suc then + error('更新NodeModules失败!') + end + fs.current_path(current) +end + +local function createDirectory(version) + local out = EXTENSION / 'publish' / version + fs.create_directories(out) + return out +end + +local function copyFiles(root, out) + return function (dirs) + local count = 0 + local function copy(relative, mode) + local source = root / relative + local target = out / relative + if not fs.exists(source) then + return + end + if fs.is_directory(source) then + fs.create_directory(target) + if mode == true then + for path in source:list_directory() do + copy(relative / path:filename(), true) + end + else + for name, v in pairs(mode) do + copy(relative / name, v) + end + end + else + fs.copy_file(source, target) + count = count + 1 + end + end + + copy(fs.path '', dirs) + return count + end +end + +local function runTest(root) + local ext = platform.OS == 'Windows' and '.exe' or '' + local exe = root / platform.OS / 'bin' / 'lua-language-server' .. ext + local test = root / 'test.lua' + local lua = subprocess.spawn { + exe, + test, + '-E', + cwd = root, + stdout = true, + stderr = true, + } + for line in lua.stdout:lines 'l' do + print(line) + end + lua:wait() + local err = lua.stderr:read 'a' + if err ~= '' then + error(err) + end +end + +local function removeFiles(out) + return function (dirs) + local function remove(relative, mode) + local target = out / relative + if not fs.exists(target) then + return + end + if fs.is_directory(target) then + if mode == true then + for path in target:list_directory() do + remove(relative / path:filename(), true) + end + fs.remove(target) + else + for name, v in pairs(mode) do + remove(relative / name, v) + end + end + else + fs.remove(target) + end + end + + remove(fs.path '', dirs) + end +end + +local version = loadPackage() +print('版本号为:' .. version) + +local out = createDirectory(version) + +print('清理目录...') +removeFiles(out)(true) + +print('开始复制文件...') +local count = copyFiles(EXTENSION , out) { + ['client'] = { + ['node_modules'] = true, + ['out'] = true, + ['package-lock.json'] = true, + ['package.json'] = true, + ['tsconfig.json'] = true, + }, + ['server'] = { + ['Windows'] = true, + ['macOS'] = true, + ['Linux'] = true, + ['libs'] = true, + ['locale'] = true, + ['src'] = true, + ['test'] = true, + ['main.lua'] = true, + ['platform.lua'] = true, + ['test.lua'] = true, + ['build_package.lua'] = true, + }, + ['images'] = { + ['logo.png'] = true, + }, + ['syntaxes'] = true, + ['package-lock.json'] = true, + ['package.json'] = true, + ['README.md'] = true, + ['tsconfig.json'] = true, + ['package.nls.json'] = true, + ['package.nls.zh-cn.json'] = true, +} +print(('复制了[%d]个文件'):format(count)) + +print('开始测试...') +runTest(out / 'server') + +print('删除多余文件...') +removeFiles(out) { + ['server'] = { + ['log'] = true, + ['test'] = true, + ['test.lua'] = true, + ['build_package.lua'] = true, + }, +} + +local path = EXTENSION / 'publish' / 'lua' +print('清理发布目录...') +removeFiles(path)(true) + +print('复制到发布目录...') +local count = copyFiles(out, path)(true) +print(('复制了[%d]个文件'):format(count)) + +print('完成') diff --git a/script/src/3rd/lua-uri/uri.lua b/script/src/3rd/lua-uri/uri.lua new file mode 100644 index 00000000..395edcd9 --- /dev/null +++ b/script/src/3rd/lua-uri/uri.lua @@ -0,0 +1,504 @@ +local M = { _NAME = "uri", VERSION = "1.0" } +M.__index = M + +local Util = require "uri._util" + +local _UNRESERVED = "A-Za-z0-9%-._~" +local _GEN_DELIMS = ":/?#%[%]@" +local _SUB_DELIMS = "!$&'()*+,;=" +local _RESERVED = _GEN_DELIMS .. _SUB_DELIMS +local _USERINFO = "^[" .. _UNRESERVED .. "%%" .. _SUB_DELIMS .. ":]*$" +local _REG_NAME = "^[" .. _UNRESERVED .. "%%" .. _SUB_DELIMS .. "]*$" +local _IP_FUTURE_LITERAL = "^v[0-9A-Fa-f]+%." .. + "[" .. _UNRESERVED .. _SUB_DELIMS .. "]+$" +local _QUERY_OR_FRAG = "^[" .. _UNRESERVED .. "%%" .. _SUB_DELIMS .. ":@/?]*$" +local _PATH_CHARS = "^[" .. _UNRESERVED .. "%%" .. _SUB_DELIMS .. ":@/]*$" + +local function _normalize_percent_encoding (s) + if s:find("%%$") or s:find("%%.$") then + error("unfinished percent encoding at end of URI '" .. s .. "'") + end + + return s:gsub("%%(..)", function (hex) + if not hex:find("^[0-9A-Fa-f][0-9A-Fa-f]$") then + error("invalid percent encoding '%" .. hex .. + "' in URI '" .. s .. "'") + end + + -- Never percent-encode unreserved characters, and always use uppercase + -- hexadecimal for percent encoding. RFC 3986 section 6.2.2.2. + local char = string.char(tonumber("0x" .. hex)) + return char:find("^[" .. _UNRESERVED .. "]") and char or "%" .. hex:upper() + end) +end + +local function _is_ip4_literal (s) + if not s:find("^[0-9]+%.[0-9]+%.[0-9]+%.[0-9]+$") then return false end + + for dec_octet in s:gmatch("[0-9]+") do + if dec_octet:len() > 3 or dec_octet:find("^0.") or + tonumber(dec_octet) > 255 then + return false + end + end + + return true +end + +local function _is_ip6_literal (s) + local had_elipsis = false -- true when '::' found + local num_chunks = 0 + while s ~= "" do + num_chunks = num_chunks + 1 + local p1, p2 = s:find("::?") + local chunk + if p1 then + chunk = s:sub(1, p1 - 1) + s = s:sub(p2 + 1) + if p2 ~= p1 then -- found '::' + if had_elipsis then return false end -- two of '::' + had_elipsis = true + if chunk == "" then num_chunks = num_chunks - 1 end + else + if chunk == "" then return false end -- ':' at start + if s == "" then return false end -- ':' at end + end + else + chunk = s + s = "" + end + + -- Chunk is neither 4-digit hex num, nor IPv4address in last chunk. + if (not chunk:find("^[0-9a-f]+$") or chunk:len() > 4) and + (s ~= "" or not _is_ip4_literal(chunk)) and + chunk ~= "" then + return false + end + + -- IPv4address in last position counts for two chunks of hex digits. + if chunk:len() > 4 then num_chunks = num_chunks + 1 end + end + + if had_elipsis then + if num_chunks > 7 then return false end + else + if num_chunks ~= 8 then return false end + end + + return true +end + +local function _is_valid_host (host) + if host:find("^%[.*%]$") then + local ip_literal = host:sub(2, -2) + if ip_literal:find("^v") then + if not ip_literal:find(_IP_FUTURE_LITERAL) then + return "invalid IPvFuture literal '" .. ip_literal .. "'" + end + else + if not _is_ip6_literal(ip_literal) then + return "invalid IPv6 address '" .. ip_literal .. "'" + end + end + elseif not _is_ip4_literal(host) and not host:find(_REG_NAME) then + return "invalid host value '" .. host .. "'" + end + + return nil +end + +local function _normalize_and_check_path (s, normalize) + if not s:find(_PATH_CHARS) then return false end + if not normalize then return s end + + -- Remove unnecessary percent encoding for path values. + -- TODO - I think this should be HTTP-specific (probably file also). + --s = Util.uri_decode(s, _SUB_DELIMS .. ":@") + + return Util.remove_dot_segments(s) +end + +function M.new (class, uri, base) + if not uri then error("usage: URI:new(uristring, [baseuri])") end + if type(uri) ~= "string" then uri = tostring(uri) end + + if base then + local uri, err = M.new(class, uri) + if not uri then return nil, err end + if type(base) ~= "table" then + base, err = M.new(class, base) + if not base then return nil, "error parsing base URI: " .. err end + end + if base:is_relative() then return nil, "base URI must be absolute" end + local ok, err = pcall(uri.resolve, uri, base) + if not ok then return nil, err end + return uri + end + + local s = _normalize_percent_encoding(uri) + + local _, p + local scheme, authority, userinfo, host, port, path, query, fragment + + _, p, scheme = s:find("^([a-zA-Z][-+.a-zA-Z0-9]*):") + if scheme then + scheme = scheme:lower() + s = s:sub(p + 1) + end + + _, p, authority = s:find("^//([^/?#]*)") + if authority then + s = s:sub(p + 1) + + _, p, userinfo = authority:find("^([^@]*)@") + if userinfo then + if not userinfo:find(_USERINFO) then + return nil, "invalid userinfo value '" .. userinfo .. "'" + end + authority = authority:sub(p + 1) + end + + p, _, port = authority:find(":([0-9]*)$") + if port then + port = (port ~= "") and tonumber(port) or nil + authority = authority:sub(1, p - 1) + end + + host = authority:lower() + local err = _is_valid_host(host) + if err then return nil, err end + end + + _, p, path = s:find("^([^?#]*)") + if path ~= "" then + local normpath = _normalize_and_check_path(path, scheme) + if not normpath then return nil, "invalid path '" .. path .. "'" end + path = normpath + s = s:sub(p + 1) + end + + _, p, query = s:find("^%?([^#]*)") + if query then + s = s:sub(p + 1) + if not query:find(_QUERY_OR_FRAG) then + return nil, "invalid query value '?" .. query .. "'" + end + end + + _, p, fragment = s:find("^#(.*)") + if fragment then + if not fragment:find(_QUERY_OR_FRAG) then + return nil, "invalid fragment value '#" .. fragment .. "'" + end + end + + local o = { + _scheme = scheme, + _userinfo = userinfo, + _host = host, + _port = port, + _path = path, + _query = query, + _fragment = fragment, + } + setmetatable(o, scheme and class or (require "uri._relative")) + + return o:init() +end + +function M.uri (self, ...) + local uri = self._uri + + if not uri then + local scheme = self:scheme() + if scheme then + uri = scheme .. ":" + else + uri = "" + end + + local host, port, userinfo = self:host(), self._port, self:userinfo() + if host or port or userinfo then + uri = uri .. "//" + if userinfo then uri = uri .. userinfo .. "@" end + if host then uri = uri .. host end + if port then uri = uri .. ":" .. port end + end + + local path = self:path() + if uri == "" and path:find("^[^/]*:") then + path = "./" .. path + end + + uri = uri .. path + if self:query() then uri = uri .. "?" .. self:query() end + if self:fragment() then uri = uri .. "#" .. self:fragment() end + + self._uri = uri -- cache + end + + if select("#", ...) > 0 then + local new = ... + if not new then error("URI can't be set to nil") end + local newuri, err = M:new(new) + if not newuri then + error("new URI string is invalid (" .. err .. ")") + end + setmetatable(self, getmetatable(newuri)) + for k in pairs(self) do self[k] = nil end + for k, v in pairs(newuri) do self[k] = v end + end + + return uri +end + +function M.__tostring (self) return self:uri() end + +function M.eq (a, b) + if type(a) == "string" then a = assert(M:new(a)) end + if type(b) == "string" then b = assert(M:new(b)) end + return a:uri() == b:uri() +end + +function M.scheme (self, ...) + local old = self._scheme + + if select("#", ...) > 0 then + local new = ... + if not new then error("can't remove scheme from absolute URI") end + if type(new) ~= "string" then new = tostring(new) end + if not new:find("^[a-zA-Z][-+.a-zA-Z0-9]*$") then + error("invalid scheme '" .. new .. "'") + end + Util.do_class_changing_change(self, M, "scheme", new, + function (uri, new) uri._scheme = new end) + end + + return old +end + +function M.userinfo (self, ...) + local old = self._userinfo + + if select("#", ...) > 0 then + local new = ... + if new then + if not new:find(_USERINFO) then + error("invalid userinfo value '" .. new .. "'") + end + new = _normalize_percent_encoding(new) + end + self._userinfo = new + if new and not self._host then self._host = "" end + self._uri = nil + end + + return old +end + +function M.host (self, ...) + local old = self._host + + if select("#", ...) > 0 then + local new = ... + if new then + new = tostring(new):lower() + local err = _is_valid_host(new) + if err then error(err) end + else + if self._userinfo or self._port then + error("there must be a host if there is a userinfo or port," .. + " although it can be the empty string") + end + end + self._host = new + self._uri = nil + end + + return old +end + +function M.port (self, ...) + local old = self._port or self:default_port() + + if select("#", ...) > 0 then + local new = ... + if new then + if type(new) == "string" then new = tonumber(new) end + if new < 0 then error("port number must not be negative") end + local newint = new - new % 1 + if newint ~= new then error("port number not integer") end + if new == self:default_port() then new = nil end + end + self._port = new + if new and not self._host then self._host = "" end + self._uri = nil + end + + return old +end + +function M.path (self, ...) + local old = self._path + + if select("#", ...) > 0 then + local new = ... or "" + new = _normalize_percent_encoding(new) + new = Util.uri_encode(new, "^A-Za-z0-9%-._~%%!$&'()*+,;=:@/") + if self._host then + if new ~= "" and not new:find("^/") then + error("path must begin with '/' when there is an authority") + end + else + if new:find("^//") then new = "/%2F" .. new:sub(3) end + end + self._path = new + self._uri = nil + end + + return old +end + +function M.query (self, ...) + local old = self._query + + if select("#", ...) > 0 then + local new = ... + if new then + new = Util.uri_encode(new, "^" .. _UNRESERVED .. "%%" .. _SUB_DELIMS .. ":@/?") + end + self._query = new + self._uri = nil + end + + return old +end + +function M.fragment (self, ...) + local old = self._fragment + + if select("#", ...) > 0 then + local new = ... + if new then + new = Util.uri_encode(new, "^" .. _UNRESERVED .. "%%" .. _SUB_DELIMS .. ":@/?") + end + self._fragment = new + self._uri = nil + end + + return old +end + +function M.init (self) + local scheme_class + = Util.attempt_require("uri." .. self._scheme:gsub("[-+.]", "_")) + if scheme_class then + setmetatable(self, scheme_class) + if self._port and self._port == self:default_port() then + self._port = nil + end + -- Call the subclass 'init' method, if it has its own. + if scheme_class ~= M and self.init ~= M.init then + return self:init() + end + end + return self +end + +function M.default_port () return nil end +function M.is_relative () return false end +function M.resolve () end -- only does anything in uri._relative + +-- TODO - there should probably be an option or something allowing you to +-- choose between making a link relative whenever possible (always using a +-- relative path if the scheme and authority are the same as the base URI) or +-- just using a relative reference to make the link as small as possible, which +-- might meaning using a path of '/' instead if '../../../' or whatever. +-- This method's algorithm is loosely based on the one described here: +-- http://lists.w3.org/Archives/Public/uri/2007Sep/0003.html +function M.relativize (self, base) + if type(base) == "string" then base = assert(M:new(base)) end + + -- Leave it alone if we can't a relative URI, or if it would be a network + -- path reference. + if self._scheme ~= base._scheme or self._host ~= base._host or + self._port ~= base._port or self._userinfo ~= base._userinfo then + return + end + + local basepath = base._path + local oldpath = self._path + -- This is to avoid trying to make a URN or something relative, which + -- is likely to lead to grief. + if not basepath:find("^/") or not oldpath:find("^/") then return end + + -- Turn it into a relative reference. + self._uri = nil + self._scheme = nil + self._host = nil + self._port = nil + self._userinfo = nil + setmetatable(self, require "uri._relative") + + -- Use empty path if the path in the base URI is already correct. + if oldpath == basepath then + if self._query or not base._query then + self._path = "" + else + -- An empty URI reference leaves the query string in the base URI + -- unchanged, so to get a result with no query part we have to + -- have something in the relative path. + local _, _, lastseg = oldpath:find("/([^/]+)$") + if lastseg and lastseg:find(":") then lastseg = "./" .. lastseg end + self._path = lastseg or "." + end + return + end + + if oldpath == "/" or basepath == "/" then return end + + local basesegs = Util.split("/", basepath:sub(2)) + local oldsegs = Util.split("/", oldpath:sub(2)) + + if oldsegs[1] ~= basesegs[1] then return end + + table.remove(basesegs) + + while #oldsegs > 1 and #basesegs > 0 and oldsegs[1] == basesegs[1] do + table.remove(oldsegs, 1) + table.remove(basesegs, 1) + end + + local path_naked = true + local newpath = "" + while #basesegs > 0 do + table.remove(basesegs, 1) + newpath = newpath .. "../" + path_naked = false + end + + if path_naked and #oldsegs == 1 and oldsegs[1] == "" then + newpath = "./" + table.remove(oldsegs) + end + + while #oldsegs > 0 do + if path_naked then + if oldsegs[1]:find(":") then + newpath = newpath .. "./" + elseif #oldsegs > 1 and oldsegs[1] == "" and oldsegs[2] == "" then + newpath = newpath .. "/." + end + end + + newpath = newpath .. oldsegs[1] + path_naked = false + table.remove(oldsegs, 1) + if #oldsegs > 0 then newpath = newpath .. "/" end + end + + self._path = newpath +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/_login.lua b/script/src/3rd/lua-uri/uri/_login.lua new file mode 100644 index 00000000..4e9e6844 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/_login.lua @@ -0,0 +1,96 @@ +local M = { _NAME = "uri._login" } +local Util = require "uri._util" +local URI = require "uri" +Util.subclass_of(M, URI) + +-- Generic terminal logins. This is used as a base class for 'telnet' and +-- 'ftp' URL schemes. + +local function _valid_userinfo (userinfo) + if userinfo then + local colon = userinfo:find(":") + if colon and userinfo:find(":", colon + 1) then + return nil, "only one colon allowed in userinfo" + end + end + return true +end + +-- TODO - this is a bit of a hack because currently subclasses are required +-- to know whether their superclass has one of these that needs calling. +-- It should be called from 'init' before anything more specific is done, +-- and it has the same calling convention. +-- According to RFC 1738 there should be at most one colon in the userinfo. +-- I apply that restriction for schemes where it's used for a username/password +-- pair. +function M.init_base (self) + local host = self:host() + if not host or host == "" then + return nil, "host missing from login URI" + end + + local ok, err = _valid_userinfo(self:userinfo()) + if not ok then return nil, err end + + return self +end + +function M.userinfo (self, ...) + if select("#", ...) > 0 then + local ok, err = _valid_userinfo(...) + if not ok then error("invalid userinfo value (" .. err .. ")") end + end + return M._SUPER.userinfo(self, ...) +end + +function M.username (self, ...) + local info = M._SUPER.userinfo(self) + local old, colon + if info then + local colon = info and info:find(":") + old = colon and info:sub(1, colon - 1) or info + old = Util.uri_decode(old) + end + + if select('#', ...) > 0 then + local pass = colon and info:sub(colon) or "" -- includes colon + local new = ... + if not new then + M._SUPER.userinfo(self, nil) + else + -- Escape anything that's not allowed in a userinfo, and also + -- colon, because that indicates the end of the username. + new = Util.uri_encode(new, "^A-Za-z0-9%-._~!$&'()*+,;=") + M._SUPER.userinfo(self, new .. pass) + end + end + + return old +end + +function M.password (self, ...) + local info = M._SUPER.userinfo(self) + local old, colon + if info then + colon = info and info:find(":") + old = colon and info:sub(colon + 1) or nil + if old then old = Util.uri_decode(old) end + end + + if select('#', ...) > 0 then + local new = ... + local user = colon and info:sub(1, colon - 1) or info + if not new then + M._SUPER.userinfo(self, user) + else + if not user then user = "" end + new = Util.uri_encode(new, "^A-Za-z0-9%-._~!$&'()*+,;=") + M._SUPER.userinfo(self, user .. ":" .. new) + end + end + + return old +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/_relative.lua b/script/src/3rd/lua-uri/uri/_relative.lua new file mode 100644 index 00000000..8cd53ca7 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/_relative.lua @@ -0,0 +1,81 @@ +local M = { _NAME = "uri._relative" } +local Util = require "uri._util" +local URI = require "uri" +Util.subclass_of(M, URI) + +-- There needs to be an 'init' method in this class, to because the base-class +-- one expects there to be a 'scheme' value. +function M.init (self) + return self +end + +function M.scheme (self, ...) + if select("#", ...) > 0 then + error("relative URI references can't have a scheme, perhaps you" .. + " need to resolve this against an absolute URI instead") + end + return nil +end + +function M.is_relative () return true end + +-- This implements the algorithm from RFC 3986 section 5.2.3 +-- Note that this takes an additional argument which appears to be required +-- by the algorithm, but isn't shown when it is used in the RFC. +local function _merge_paths (base, r, base_has_auth) + if base_has_auth and base == "" then + return "/" .. r + end + + return base:gsub("[^/]+$", "", 1) .. r +end + +local function _do_resolve (self, base) + if type(base) == "string" then base = assert(URI:new(base)) end + setmetatable(self, URI) + + if self:host() or self:userinfo() or self:port() then + -- network path reference, just needs a scheme + self:path(Util.remove_dot_segments(self:path())) + self:scheme(base:scheme()) + return + end + + local path = self:path() + if path == "" then + self:path(base:path()) + if not self:query() then self:query(base:query()) end + else + if path:find("^/") then + self:path(Util.remove_dot_segments(path)) + else + local base_has_auth = base:host() or base:userinfo() or base:port() + local merged = _merge_paths(base:path(), path, base_has_auth) + self:path(Util.remove_dot_segments(merged)) + end + end + self:host(base:host()) + self:userinfo(base:userinfo()) + self:port(base:port()) + self:scheme(base:scheme()) +end + +function M.resolve (self, base) + local orig = tostring(self) + local ok, result = pcall(_do_resolve, self, base) + if ok then return end + + -- If the resolving causes an exception, it means that the resulting URI + -- would be invalid, so we restore self to its original state and rethrow + -- the exception. + local restored = assert(URI:new(orig)) + for k in pairs(self) do self[k] = nil end + for k, v in pairs(restored) do self[k] = v end + setmetatable(self, getmetatable(restored)) + error("resolved URI reference would be invalid: " .. result) +end + +function M.relativize (self, base) end -- already relative + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/_util.lua b/script/src/3rd/lua-uri/uri/_util.lua new file mode 100644 index 00000000..16a3b289 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/_util.lua @@ -0,0 +1,128 @@ +local M = { _NAME = "uri._util" } + +-- Build a char->hex map +local escapes = {} +for i = 0, 255 do + escapes[string.char(i)] = string.format("%%%02X", i) +end + +function M.uri_encode (text, patn) + if not text then return end + if not patn then + -- Default unsafe characters. RFC 2732 ^(uric - reserved) + -- TODO - this should be updated to the latest RFC. + patn = "^A-Za-z0-9%-_.!~*'()" + end + return (text:gsub("([" .. patn .. "])", + function (chr) return escapes[chr] end)) +end + +function M.uri_decode (str, patn) + -- Note from RFC1630: "Sequences which start with a percent sign + -- but are not followed by two hexadecimal characters are reserved + -- for future extension" + if not str then return end + if patn then patn = "[" .. patn .. "]" end + return (str:gsub("%%(%x%x)", function (hex) + local char = string.char(tonumber(hex, 16)) + return (patn and not char:find(patn)) and "%" .. hex or char + end)) +end + +-- This is the remove_dot_segments algorithm from RFC 3986 section 5.2.4. +-- The input buffer is 's', the output buffer 'path'. +function M.remove_dot_segments (s) + local path = "" + + while s ~= "" do + if s:find("^%.%.?/") then -- A + s = s:gsub("^%.%.?/", "", 1) + elseif s:find("^/%./") or s == "/." then -- B + s = s:gsub("^/%./?", "/", 1) + elseif s:find("^/%.%./") or s == "/.." then -- C + s = s:gsub("^/%.%./?", "/", 1) + if path:find("/") then + path = path:gsub("/[^/]*$", "", 1) + else + path = "" + end + elseif s == "." or s == ".." then -- D + s = "" + else -- E + local _, p, seg = s:find("^(/?[^/]*)") + s = s:sub(p + 1) + path = path .. seg + end + end + + return path +end + +-- TODO - wouldn't this be better as a method on string? s:split(patn) +function M.split (patn, s, max) + if s == "" then return {} end + + local i, j = 1, string.find(s, patn) + if not j then return { s } end + + local list = {} + while true do + if #list + 1 == max then list[max] = s:sub(i); return list end + list[#list + 1] = s:sub(i, j - 1) + i = j + 1 + j = string.find(s, patn, i) + if not j then + list[#list + 1] = s:sub(i) + break + end + end + return list +end + +function M.attempt_require (modname) + local ok, result = pcall(require, modname) + if ok then + return result + elseif type(result) == "string" and + result:find("module '.*' not found") then + return nil + else + error(result) + end +end + +function M.subclass_of (class, baseclass) + class.__index = class + class.__tostring = baseclass.__tostring + class._SUPER = baseclass + setmetatable(class, baseclass) +end + +function M.do_class_changing_change (uri, baseclass, changedesc, newvalue, + changefunc) + local tmpuri = {} + setmetatable(tmpuri, baseclass) + for k, v in pairs(uri) do tmpuri[k] = v end + changefunc(tmpuri, newvalue) + tmpuri._uri = nil + + local foo, err = tmpuri:init() + if not foo then + error("URI not valid after " .. changedesc .. " changed to '" .. + newvalue .. "': " .. err) + end + + setmetatable(uri, getmetatable(tmpuri)) + for k in pairs(uri) do uri[k] = nil end + for k, v in pairs(tmpuri) do uri[k] = v end +end + +function M.uri_part_not_allowed (class, method) + class[method] = function (self, new) + if new then error(method .. " not allowed on this kind of URI") end + return self["_" .. method] + end +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/data.lua b/script/src/3rd/lua-uri/uri/data.lua new file mode 100644 index 00000000..c425621a --- /dev/null +++ b/script/src/3rd/lua-uri/uri/data.lua @@ -0,0 +1,116 @@ +local M = { _NAME = "uri.data" } +local Util = require "uri._util" +local URI = require "uri" +Util.subclass_of(M, URI) + +-- This implements the 'data' scheme defined in RFC 2397. + +local Filter = Util.attempt_require("datafilter") + +local function _valid_base64 (data) return data:find("^[0-9a-zA-Z/+]*$") end + +local function _split_path (path) + local _, _, mediatype, data = path:find("^([^,]*),(.*)") + if not mediatype then return "must have comma in path" end + local base64 = false + if mediatype:find(";base64$") then + base64 = true + mediatype = mediatype:sub(1, -8) + end + if base64 and not _valid_base64(data) then + return "illegal character in base64 encoding" + end + return nil, mediatype, base64, data +end + +function M.init (self) + if M._SUPER.host(self) then + return nil, "data URIs may not have authority parts" + end + local err, mediatype, base64, data = _split_path(M._SUPER.path(self)) + if err then return nil, "invalid data URI (" .. err .. ")" end + return self +end + +function M.data_media_type (self, ...) + local _, old, base64, data = _split_path(M._SUPER.path(self)) + + if select('#', ...) > 0 then + local new = ... or "" + new = Util.uri_encode(new, "^A-Za-z0-9%-._~!$&'()*+;=:@/") + if base64 then new = new .. ";base64" end + M._SUPER.path(self, new .. "," .. data) + end + + if old ~= "" then + if old:find("^;") then old = "text/plain" .. old end + return Util.uri_decode(old) + else + return "text/plain;charset=US-ASCII" -- default type + end +end + +local function _urienc_len (s) + local num_unsafe_chars = s:gsub("[A-Za-z0-9%-._~!$&'()*+,;=:@/]", ""):len() + local num_safe_chars = s:len() - num_unsafe_chars + return num_safe_chars + num_unsafe_chars * 3 +end + +local function _base64_len (s) + local num_blocks = (s:len() + 2) / 3 + num_blocks = num_blocks - num_blocks % 1 + return num_blocks * 4 + + 7 -- because of ";base64" marker +end + +local function _do_filter (algorithm, input) + return Filter[algorithm](input) +end + +function M.data_bytes (self, ...) + local _, mediatype, base64, old = _split_path(M._SUPER.path(self)) + if base64 then + if not Filter then + error("'datafilter' Lua module required to decode base64 data") + end + old = _do_filter("base64_decode", old) + else + old = Util.uri_decode(old) + end + + if select('#', ...) > 0 then + local new = ... or "" + local urienc_len = _urienc_len(new) + local base64_len = _base64_len(new) + if base64_len < urienc_len and Filter then + mediatype = mediatype .. ";base64" + new = _do_filter("base64_encode", new) + else + new = new:gsub("%%", "%%25") + end + M._SUPER.path(self, mediatype .. "," .. new) + end + + return old +end + +function M.path (self, ...) + local old = M._SUPER.path(self) + + if select('#', ...) > 0 then + local new = ... + if not new then error("there must be a path in a data URI") end + local err = _split_path(new) + if err then error("invalid data URI (" .. err .. ")") end + M._SUPER.path(self, new) + end + + return old +end + +Util.uri_part_not_allowed(M, "userinfo") +Util.uri_part_not_allowed(M, "host") +Util.uri_part_not_allowed(M, "port") + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/file.lua b/script/src/3rd/lua-uri/uri/file.lua new file mode 100644 index 00000000..271cb3ed --- /dev/null +++ b/script/src/3rd/lua-uri/uri/file.lua @@ -0,0 +1,72 @@ +local M = { _NAME = "uri.file" } +local Util = require "uri._util" +local URI = require "uri" +Util.subclass_of(M, URI) + +function M.init (self) + if self:userinfo() or self:port() then + return nil, "usernames and passwords are not allowed in HTTP URIs" + end + + local host = self:host() + local path = self:path() + if host then + if host:lower() == "localhost" then self:host("") end + else + if not path:find("^/") then + return nil, "file URIs must contain a host, even if it's empty" + end + self:host("") + end + + if path == "" then self:path("/") end + + return self +end + +function M.host (self, ...) + local old = M._SUPER.host(self) + + if select('#', ...) > 0 then + local new = ... + if not new then error("file URIs must have an authority part") end + if new:lower() == "localhost" then new = "" end + M._SUPER.host(self, new) + end + + return old +end + +function M.path (self, ...) + local old = M._SUPER.path(self) + + if select('#', ...) > 0 then + local new = ... + if not new or new == "" then new = "/" end + M._SUPER.path(self, new) + end + + return old +end + +local function _os_implementation (os) + local FileImpl = Util.attempt_require("uri.file." .. os:lower()) + if not FileImpl then + error("no file URI implementation for operating system " .. os) + end + return FileImpl +end + +function M.filesystem_path (self, os) + return _os_implementation(os).filesystem_path(self) +end + +function M.make_file_uri (path, os) + return _os_implementation(os).make_file_uri(path) +end + +Util.uri_part_not_allowed(M, "userinfo") +Util.uri_part_not_allowed(M, "port") + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/file/unix.lua b/script/src/3rd/lua-uri/uri/file/unix.lua new file mode 100644 index 00000000..8bd4c942 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/file/unix.lua @@ -0,0 +1,26 @@ +local M = { _NAME = "uri.file.unix" } +local URI = require "uri" +local Util = require "uri._util" + +function M.filesystem_path (uri) + if uri:host() ~= "" then + error("a file URI with a host name can't be converted to a Unix path") + end + local path = uri:path() + if path:find("%%00") or path:find("%%2F") then + error("Unix paths cannot contain encoded null bytes or slashes") + end + return Util.uri_decode(path) +end + +function M.make_file_uri (path) + if not path:find("^/") then + error("Unix relative paths can't be converted to file URIs") + end + path = path:gsub("//+", "/") + path = Util.uri_encode(path, "^A-Za-z0-9%-._~!$&'()*+,;=@/") + return assert(URI:new("file://" .. path)) +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/file/win32.lua b/script/src/3rd/lua-uri/uri/file/win32.lua new file mode 100644 index 00000000..d4e40243 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/file/win32.lua @@ -0,0 +1,34 @@ +local M = { _NAME = "uri.file.win32" } +local URI = require "uri" +local Util = require "uri._util" + +function M.filesystem_path (uri) + local host = uri:host() + local path = Util.uri_decode(uri:path()) + if host ~= "" then path = "//" .. host .. path end + if path:find("^/[A-Za-z]|/") or path:find("^/[A-Za-z]|$") then + path = path:gsub("|", ":", 1) + end + if path:find("^/[A-Za-z]:/") then + path = path:sub(2) + elseif path:find("^/[A-Za-z]:$") then + path = path:sub(2) .. "/" + end + path = path:gsub("/", "\\") + return path +end + +function M.make_file_uri (path) + path = path:gsub("\\", "/") + if path:find("^[A-Za-z]:$") then path = path .. "/" end + local _, _, host, hostpath = path:find("^//([A-Za-z0-9.]+)/(.*)$") + host = host or "" + hostpath = hostpath or path + hostpath = hostpath:gsub("//+", "/") + hostpath = Util.uri_encode(hostpath, "^A-Za-z0-9%-._~!$&'()*+,;=@/") + if not hostpath:find("^/") then hostpath = "/" .. hostpath end + return assert(URI:new("file://" .. host .. hostpath)) +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/ftp.lua b/script/src/3rd/lua-uri/uri/ftp.lua new file mode 100644 index 00000000..2d9e3f6c --- /dev/null +++ b/script/src/3rd/lua-uri/uri/ftp.lua @@ -0,0 +1,53 @@ +local M = { _NAME = "uri.ftp" } +local Util = require "uri._util" +local LoginURI = require "uri._login" +Util.subclass_of(M, LoginURI) + +function M.default_port () return 21 end + +function M.init (self) + self, err = M._SUPER.init_base(self) + if not self then return nil, err end + + local host = self:host() + if not host or host == "" then + return nil, "FTP URIs must have a hostname" + end + + -- I don't think there's any distinction in FTP URIs between empty path + -- and the root directory, so probably best to normalize as we do for HTTP. + if self:path() == "" then self:path("/") end + + return self +end + +function M.path (self, ...) + local old = M._SUPER.path(self) + + if select("#", ...) > 0 then + local new = ... + if not new or new == "" then new = "/" end + M._SUPER.path(self, new) + end + + return old +end + +function M.ftp_typecode (self, ...) + local path = M._SUPER.path(self) + local _, _, withouttype, old = path:find("^(.*);type=(.*)$") + if not withouttype then withouttype = path end + if old == "" then old = nil end + + if select("#", ...) > 0 then + local new = ... + if not new then new = "" end + if new ~= "" then new = ";type=" .. new end + M._SUPER.path(self, withouttype .. new) + end + + return old +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/http.lua b/script/src/3rd/lua-uri/uri/http.lua new file mode 100644 index 00000000..91f7a57f --- /dev/null +++ b/script/src/3rd/lua-uri/uri/http.lua @@ -0,0 +1,32 @@ +local M = { _NAME = "uri.http" } +local Util = require "uri._util" +local URI = require "uri" +Util.subclass_of(M, URI) + +-- This implementation is based on RFC 2616 section 3.2 and RFC 1738 +-- section 3.3. +-- +-- An HTTP URI with a 'userinfo' field is considered invalid, because it isn't +-- shown in the syntax given in RFC 2616, and is explicitly disallowed by +-- RFC 1738. + +function M.default_port () return 80 end + +function M.init (self) + if self:userinfo() then + return nil, "usernames and passwords are not allowed in HTTP URIs" + end + + -- RFC 2616 section 3.2.3 says that this is OK, but not that using the + -- redundant slash is canonical. I'm adding it because browsers tend to + -- treat the version with the extra slash as the normalized form, and + -- the initial slash is always present in an HTTP GET request. + if self:path() == "" then self:path("/") end + + return self +end + +Util.uri_part_not_allowed(M, "userinfo") + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/https.lua b/script/src/3rd/lua-uri/uri/https.lua new file mode 100644 index 00000000..0c4c8bc3 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/https.lua @@ -0,0 +1,9 @@ +local M = { _NAME = "uri.https" } +local Util = require "uri._util" +local Http = require "uri.http" +Util.subclass_of(M, Http) + +function M.default_port () return 443 end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/pop.lua b/script/src/3rd/lua-uri/uri/pop.lua new file mode 100644 index 00000000..e42d9d41 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/pop.lua @@ -0,0 +1,111 @@ +local M = { _NAME = "uri.pop" } +local URI = require "uri" +local Util = require "uri._util" +Util.subclass_of(M, URI) + +-- This is the set of characters must be encoded in a POP userinfo, which +-- unlike for other schemes includes the ';' character. +local _POP_USERINFO_ENCODE = "^A-Za-z0-9%-._~%%!$&'()*+,=:" + +function M.default_port () return 110 end + +local function _update_userinfo (self, old, new) + if new then + local _, _, user, auth = new:find("^(.*);[Aa][Uu][Tt][Hh]=(.*)$") + if not user then user = new end + if user == "" then return "pop user name must not be empty" end + user = Util.uri_encode(user, _POP_USERINFO_ENCODE) + if auth then + if auth == "" then return "pop auth type must not be empty" end + if auth == "*" then auth = nil end + auth = Util.uri_encode(auth, _POP_USERINFO_ENCODE) + end + new = user .. (auth and ";auth=" .. auth or "") + end + + if new ~= old then M._SUPER.userinfo(self, new) end + return nil +end + +function M.init (self) + if M._SUPER.path(self) ~= "" then + return nil, "pop URIs must have an empty path" + end + + local userinfo = M._SUPER.userinfo(self) + local err = _update_userinfo(self, userinfo, userinfo) + if err then return nil, err end + + return self +end + +function M.userinfo (self, ...) + local old = M._SUPER.userinfo(self) + + if select('#', ...) > 0 then + local new = ... + local err = _update_userinfo(self, old, new) + if err then error(err) end + end + + return old +end + +function M.path (self, new) + if new and new ~= "" then error("POP URIs must have an empty path") end + return "" +end + +local function _decode_userinfo (self) + local old = M._SUPER.userinfo(self) + if not old then return nil, nil end + local _, _, old_user, old_auth = old:find("^(.*);auth=(.*)$") + if not old_user then old_user = old end + return old_user, old_auth +end + +function M.pop_user (self, ...) + local old_user, old_auth = _decode_userinfo(self) + + if select('#', ...) > 0 then + local new = ... + if new == "" then error("pop user name must not be empty") end + if not new and old_auth then + error("pop user name required when an auth type is specified") + end + if new then + new = Util.uri_encode(new, _POP_USERINFO_ENCODE) + if old_auth then new = new .. ";auth=" .. old_auth end + end + M._SUPER.userinfo(self, new) + end + + return Util.uri_decode(old_user) +end + +function M.pop_auth (self, ...) + local old_user, old_auth = _decode_userinfo(self) + + if select('#', ...) > 0 then + local new = ... + if not new or new == "" + then error("pop auth type must not be empty") + end + if new == "*" then new = nil end + if new and not old_user then + error("pop auth type can't be specified without user name") + end + if new then + new = old_user .. ";auth=" .. + Util.uri_encode(new, _POP_USERINFO_ENCODE) + else + new = old_user + end + M._SUPER.userinfo(self, new) + end + + return old_auth and Util.uri_decode(old_auth) or "*" +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/rtsp.lua b/script/src/3rd/lua-uri/uri/rtsp.lua new file mode 100644 index 00000000..03c71485 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/rtsp.lua @@ -0,0 +1,9 @@ +local M = { _NAME = "uri.rtsp" } +local Util = require "uri._util" +local HttpURI = require "uri.http" +Util.subclass_of(M, HttpURI) + +function M.default_port () return 554 end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/rtspu.lua b/script/src/3rd/lua-uri/uri/rtspu.lua new file mode 100644 index 00000000..16f5e3ee --- /dev/null +++ b/script/src/3rd/lua-uri/uri/rtspu.lua @@ -0,0 +1,7 @@ +local M = { _NAME = "uri.rtspu" } +local Util = require "uri._util" +local RtspURI = require "uri.rtsp" +Util.subclass_of(M, RtspURI) + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/telnet.lua b/script/src/3rd/lua-uri/uri/telnet.lua new file mode 100644 index 00000000..339e21ee --- /dev/null +++ b/script/src/3rd/lua-uri/uri/telnet.lua @@ -0,0 +1,38 @@ +local M = { _NAME = "uri.telnet" } +local Util = require "uri._util" +local LoginURI = require "uri._login" +Util.subclass_of(M, LoginURI) + +function M.default_port () return 23 end + +function M.init (self) + self, err = M._SUPER.init_base(self) + if not self then return nil, err end + + -- RFC 4248 does not discuss what a path longer than '/' might mean, and + -- there are no examples with anything significant in the path, so I'm + -- assuming that extra information in the path is not allowed. + local path = M._SUPER.path(self) + if path ~= "" and path ~= "/" then + return nil, "superfluous information in path of telnet URI" + end + + -- RFC 4248 section 2 says that the '/' can be omitted. I chose to + -- normalize to having it there, since the example shown in the RFC has + -- it, and this is consistent with the way I treat HTTP URIs. + if path == "" then self:path("/") end + + return self +end + +-- The path is always '/', so setting it won't do anything, but we do throw +-- an exception on an attempt to set it to anything invalid. +function M.path (self, new) + if new and new ~= "" and new ~= "/" then + error("invalid path for telnet URI") + end + return "/" +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/urn.lua b/script/src/3rd/lua-uri/uri/urn.lua new file mode 100644 index 00000000..aa4b1776 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/urn.lua @@ -0,0 +1,131 @@ +local M = { _NAME = "uri.urn" } +local Util = require "uri._util" +local URI = require "uri" +Util.subclass_of(M, URI) + +-- This implements RFC 2141, and attempts to change the class of the URI object +-- to one of its subclasses for further validation and normalization of the +-- namespace-specific string. + +-- Check NID syntax matches RFC 2141 section 2.1. +local function _valid_nid (nid) + if nid == "" then return nil, "missing completely" end + if nid:len() > 32 then return nil, "too long" end + if not nid:find("^[A-Za-z0-9][-A-Za-z0-9]*$") then + return nil, "contains illegal character" + end + if nid:lower() == "urn" then return nil, "'urn' is reserved" end + return true +end + +-- Check NSS syntax matches RFC 2141 section 2.2. +local function _valid_nss (nss) + if nss == "" then return nil, "can't be empty" end + if nss:find("[^A-Za-z0-9()+,%-.:=@;$_!*'/%%]") then + return nil, "contains illegal character" + end + return true +end + +local function _validate_and_normalize_path (path) + local _, _, nid, nss = path:find("^([^:]+):(.*)$") + if not nid then return nil, "illegal path syntax for URN" end + + local ok, msg = _valid_nid(nid) + if not ok then + return nil, "invalid namespace identifier (" .. msg .. ")" + end + ok, msg = _valid_nss(nss) + if not ok then + return nil, "invalid namespace specific string (" .. msg .. ")" + end + + return nid:lower() .. ":" .. nss +end + +-- TODO - this should check that percent-encoded bytes are valid UTF-8 +function M.init (self) + if M._SUPER.query(self) then + return nil, "URNs may not have query parts" + end + if M._SUPER.host(self) then + return nil, "URNs may not have authority parts" + end + + local path, msg = _validate_and_normalize_path(self:path()) + if not path then return nil, msg end + M._SUPER.path(self, path) + + local nid_class + = Util.attempt_require("uri.urn." .. self:nid():gsub("%-", "_")) + if nid_class then + setmetatable(self, nid_class) + if self.init ~= M.init then return self:init() end + end + + return self +end + +function M.nid (self, new) + local _, _, old = self:path():find("^([^:]+)") + + if new then + new = new:lower() + if new ~= old then + local ok, msg = _valid_nid(new) + if not ok then + error("invalid namespace identifier (" .. msg .. ")") + end + end + Util.do_class_changing_change(self, M, "NID", new, function (uri, new) + M._SUPER.path(uri, new .. ":" .. uri:nss()) + end) + end + + return old +end + +function M.nss (self, new) + local _, _, old = self:path():find(":(.*)") + + if new and new ~= old then + local ok, msg = _valid_nss(new) + if not ok then + error("invalid namespace specific string (" .. msg .. ")") + end + M._SUPER.path(self, self:nid() .. ":" .. new) + end + + return old +end + +function M.path (self, new) + local old = M._SUPER.path(self) + + if new and new ~= old then + local path, msg = _validate_and_normalize_path(new) + if not path then + error("invalid path for URN '" .. new .. "' (" ..msg .. ")") + end + local _, _, newnid, newnss = path:find("^([^:]+):(.*)") + if not newnid then error("bad path for URN, no NID part found") end + local ok, msg = _valid_nid(newnid) + if not ok then error("invalid namespace identifier (" .. msg .. ")") end + if newnid:lower() == self:nid() then + self:nss(newnss) + else + Util.do_class_changing_change(self, M, "path", path, + function (uri, new) M._SUPER.path(uri, new) end) + end + end + + return old +end + +Util.uri_part_not_allowed(M, "userinfo") +Util.uri_part_not_allowed(M, "host") +Util.uri_part_not_allowed(M, "port") +Util.uri_part_not_allowed(M, "query") + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/urn/isbn.lua b/script/src/3rd/lua-uri/uri/urn/isbn.lua new file mode 100644 index 00000000..5f0bdb69 --- /dev/null +++ b/script/src/3rd/lua-uri/uri/urn/isbn.lua @@ -0,0 +1,67 @@ +local M = { _NAME = "uri.urn.isbn" } +local Util = require "uri._util" +local URN = require "uri.urn" +Util.subclass_of(M, URN) + +-- This implements the 'isbn' NID defined in RFC 3187, and is consistent +-- with the same NID suggested in RFC 2288. + +local function _valid_isbn (isbn) + if not isbn:find("^[-%d]+[%dXx]$") then return nil, "invalid character" end + local ISBN = Util.attempt_require("isbn") + if ISBN then return ISBN:new(isbn) end + return isbn +end + +local function _normalize_isbn (isbn) + isbn = isbn:gsub("%-", ""):upper() + local ISBN = Util.attempt_require("isbn") + if ISBN then return tostring(ISBN:new(isbn)) end + return isbn +end + +function M.init (self) + local nss = self:nss() + local ok, msg = _valid_isbn(nss) + if not ok then return nil, "invalid ISBN value (" .. msg .. ")" end + self:nss(_normalize_isbn(nss)) + return self +end + +function M.nss (self, new) + local old = M._SUPER.nss(self) + + if new then + local ok, msg = _valid_isbn(new) + if not ok then + error("bad ISBN value '" .. new .. "' (" .. msg .. ")") + end + M._SUPER.nss(self, _normalize_isbn(new)) + end + + return old +end + +function M.isbn_digits (self, new) + local old = self:nss():gsub("%-", "") + + if new then + local ok, msg = _valid_isbn(new) + if not ok then + error("bad ISBN value '" .. new .. "' (" .. msg .. ")") + end + self._SUPER.nss(self, _normalize_isbn(new)) + end + + return old +end + +function M.isbn (self, new) + local ISBN = require "isbn" + local old = ISBN:new(self:nss()) + if new then self:nss(tostring(new)) end + return old +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/urn/issn.lua b/script/src/3rd/lua-uri/uri/urn/issn.lua new file mode 100644 index 00000000..c5f37f8c --- /dev/null +++ b/script/src/3rd/lua-uri/uri/urn/issn.lua @@ -0,0 +1,65 @@ +local M = { _NAME = "uri.urn.issn" } +local Util = require "uri._util" +local URN = require "uri.urn" +Util.subclass_of(M, URN) + +local function _parse_issn (issn) + local _, _, nums1, nums2, checksum + = issn:find("^(%d%d%d%d)-?(%d%d%d)([%dxX])$") + if checksum == "x" then checksum = "X" end + return nums1, nums2, checksum +end + +local function _valid_issn (issn) + local nums1, nums2, actual_checksum = _parse_issn(issn) + if not nums1 then return nil, "invalid ISSN syntax" end + local nums = nums1 .. nums2 + + local expected_checksum = 0 + for i = 1, 7 do + expected_checksum = expected_checksum + tonumber(nums:sub(i, i)) * (9 - i) + end + expected_checksum = (11 - expected_checksum % 11) % 11 + expected_checksum = (expected_checksum == 10) and "X" + or tostring(expected_checksum) + if actual_checksum ~= expected_checksum then + return nil, "wrong checksum, expected " .. expected_checksum + end + + return true +end + +local function _normalize_issn (issn) + local nums1, nums2, checksum = _parse_issn(issn) + return nums1 .. "-" .. nums2 .. checksum +end + +function M.init (self) + local nss = self:nss() + local ok, msg = _valid_issn(nss) + if not ok then return nil, "bad NSS value for ISSN URI (" .. msg .. ")" end + M._SUPER.nss(self, _normalize_issn(nss)) + return self +end + +function M.nss (self, new) + local old = M._SUPER.nss(self) + + if new then + local ok, msg = _valid_issn(new) + if not ok then + error("bad ISSN value '" .. new .. "' (" .. msg .. ")") + end + M._SUPER.nss(self, _normalize_issn(new)) + end + + return old +end + +function M.issn_digits (self, new) + local old = self:nss(new) + return old:sub(1, 4) .. old:sub(6, 9) +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/3rd/lua-uri/uri/urn/oid.lua b/script/src/3rd/lua-uri/uri/urn/oid.lua new file mode 100644 index 00000000..37110cda --- /dev/null +++ b/script/src/3rd/lua-uri/uri/urn/oid.lua @@ -0,0 +1,62 @@ +local M = { _NAME = "uri.urn.oid" } +local Util = require "uri._util" +local URN = require "uri.urn" +Util.subclass_of(M, URN) + +-- This implements RFC 3061. + +local function _valid_oid (oid) + if oid == "" then return nil, "OID can't be zero-length" end + if not oid:find("^[.0-9]*$") then return nil, "bad character in OID" end + if oid:find("%.%.") then return nil, "missing number in OID" end + if oid:find("^0[^.]") or oid:find("%.0[^.]") then + return nil, "OID numbers shouldn't have leading zeros" + end + return true +end + +function M.init (self) + local nss = self:nss() + local ok, msg = _valid_oid(nss) + if not ok then return nil, "bad NSS value for OID URI (" .. msg .. ")" end + return self +end + +function M.nss (self, new) + local old = M._SUPER.nss(self) + + if new then + local ok, msg = _valid_oid(new) + if not ok then + error("bad OID value '" .. new .. "' (" .. msg .. ")") + end + M._SUPER.nss(self, new) + end + + return old +end + +function M.oid_numbers (self, new) + local old = Util.split("%.", self:nss()) + for i = 1, #old do old[i] = tonumber(old[i]) end + + if new then + if type(new) ~= "table" then error("expected array of numbers") end + local nss = "" + for _, n in ipairs(new) do + if type(n) == "string" and n:find("^%d+$") then n = tonumber(n) end + if type(n) ~= "number" then error("bad type for number in OID") end + n = n - n % 1 + if n < 0 then error("negative numbers not allowed in OID") end + if nss ~= "" then nss = nss .. "." end + nss = nss .. n + end + if nss == "" then error("no numbers in new OID value") end + self:nss(nss) + end + + return old +end + +return M +-- vi:ts=4 sw=4 expandtab diff --git a/script/src/async/async.lua b/script/src/async/async.lua new file mode 100644 index 00000000..34716502 --- /dev/null +++ b/script/src/async/async.lua @@ -0,0 +1,126 @@ +local thread = require 'bee.thread' +local errlog = thread.channel 'errlog' + +local TaskId = 0 +local IdlePool = {} +local RunningList = {} +local GCInfo = {} + +thread.newchannel 'gc' + +local function createTask(name) + TaskId = TaskId + 1 + GCInfo[TaskId] = false + local id = TaskId + local requestName = 'request' .. tostring(id) + local responseName = 'response' .. tostring(id) + thread.newchannel(requestName) + thread.newchannel(responseName) + local buf = ([[ +ID = %d +package.cpath = %q +package.path = %q +local thread = require 'bee.thread' +local request = thread.channel(%q) +local response = thread.channel(%q) +local errlog = thread.channel 'errlog' +local gc = thread.channel 'gc' + +local function task() + local dump, arg = request:bpop() + local env = setmetatable({ + IN = request, + OUT = response, + ERR = errlog, + GC = gc, + }, { __index = _ENV }) + local f, err = load(dump, '=task', 't', env) + if not f then + errlog:push(err .. '\n' .. dump) + return + end + local result = f(arg) + response:push(result) +end + +while true do + local ok, result = xpcall(task, debug.traceback) + if not ok then + errlog:push(result) + end + collectgarbage() + gc:push(ID, collectgarbage 'count') +end +]]):format(id, package.cpath, package.path, requestName, responseName) + log.debug('Create thread, id: ', id, 'task: ', name) + return { + id = id, + thread = thread.thread(buf), + request = thread.channel(requestName), + response = thread.channel(responseName), + } +end + +local function run(name, arg, callback) + local dump = io.load(ROOT / 'src' / 'async' / (name .. '.lua')) + if not dump then + error(('找不到[%s]'):format(name)) + end + local task = table.remove(IdlePool) + if not task then + task = createTask(name) + end + RunningList[task.id] = { + task = task, + callback = callback, + } + task.request:push(dump, arg) + -- TODO 线程回收后禁止外部再使用通道 + return task.request, task.response +end + +local function callback(id, running) + if running.callback then + while true do + local results = table.pack(running.task.response:pop()) + if not results[1] then + break + end + -- TODO 封装成对象 + local suc, destroy = xpcall(running.callback, log.error, table.unpack(results, 2)) + if not suc or destroy then + RunningList[id] = nil + IdlePool[#IdlePool+1] = running.task + break + end + end + end +end + +local function checkGC() + local gc = thread.channel 'gc' + while true do + local ok, id, count = gc:pop() + if not ok then + break + end + GCInfo[id] = count + end +end + +local function onTick() + local ok, msg = errlog:pop() + if ok then + log.error(msg) + end + for id, running in pairs(RunningList) do + callback(id, running) + end + checkGC() +end + +return { + onTick = onTick, + run = run, + info = GCInfo, +} diff --git a/script/src/async/init.lua b/script/src/async/init.lua new file mode 100644 index 00000000..3d75a720 --- /dev/null +++ b/script/src/async/init.lua @@ -0,0 +1 @@ +return require 'async.async' diff --git a/script/src/async/loadfile.lua b/script/src/async/loadfile.lua new file mode 100644 index 00000000..b9d0f41c --- /dev/null +++ b/script/src/async/loadfile.lua @@ -0,0 +1,13 @@ +require 'utility' +local fs = require 'bee.filesystem' + +while true do + local filename, mode = IN:bpop() + local buf = io.load(fs.path(filename)) + if buf then + OUT:push(filename, mode, buf) + else + ERR:push('Load failed:' .. filename) + end + GC:push(ID, collectgarbage 'count') +end diff --git a/script/src/async/proto.lua b/script/src/async/proto.lua new file mode 100644 index 00000000..3e7fcc60 --- /dev/null +++ b/script/src/async/proto.lua @@ -0,0 +1,57 @@ +local json = require 'json' + +local function pushError(...) + local t = table.pack(...) + for i = 1, t.n do + t[i] = tostring(t[i]) + end + local buf = table.concat(t, '\t') + ERR:push(buf) +end + +local function readProtoHeader() + local header = io.read 'l' + if header:sub(1, #'Content-Length') == 'Content-Length' then + return header + elseif header:sub(1, #'Content-Type') == 'Content-Type' then + return nil + else + pushError('Proto header error:', header) + return nil + end +end + +local function readProtoContent(header) + local len = tonumber(header:match('%d+')) + if not len then + pushError('Proto header error:', header) + return nil + end + local buf = io.read(len+2) + if not buf then + return nil + end + local suc, res = pcall(json.decode, buf) + if not suc then + pushError('Proto error:', buf) + return nil + end + return res +end + +local function readProto() + local header = readProtoHeader() + if not header then + return + end + local data = readProtoContent(header) + if not data then + return + end + OUT:push(data) +end + +while true do + readProto() + GC:push(ID, collectgarbage 'count') +end diff --git a/script/src/async/scanfiles.lua b/script/src/async/scanfiles.lua new file mode 100644 index 00000000..f5249c8e --- /dev/null +++ b/script/src/async/scanfiles.lua @@ -0,0 +1,55 @@ +local args = ... + +require 'utility' +local fs = require 'bee.filesystem' +local glob = require 'glob' + +local function scan(mode, root, pattern, options) + OUT:push('log', 'Scanning:', root:string()) + OUT:push('log', 'Scan pattern:', table.dump(pattern)) + OUT:push('log', 'Scan options:', table.dump(options)) + local session = glob.gitignore(pattern, options) + + session:setInterface('type', function (path) + local fullpath = root / path + if not fs.exists(fullpath) then + return nil + end + if fs.is_directory(fullpath) then + return 'directory' + else + return 'file' + end + return nil + end) + session:setInterface('list', function (path) + local fullpath = root / path + if not fs.exists(fullpath) then + return nil + end + local list = {} + for child in fullpath:list_directory() do + list[#list+1] = child:string() + end + return list + end) + + session:scan(function (path) + local ok, msg = IN:pop() + if ok and msg == 'stop' then + OUT:push 'stop' + return + end + OUT:push(mode, fs.absolute(root / path):string()) + end) +end + +for _, data in ipairs(args) do + local root = fs.path(data.root) + local suc, err = xpcall(scan, debug.traceback, data.mode, root, data.pattern, data.options) + if not suc then + ERR:push(err) + end +end + +OUT:push 'ok' diff --git a/script/src/capability/completion.lua b/script/src/capability/completion.lua new file mode 100644 index 00000000..28a6036c --- /dev/null +++ b/script/src/capability/completion.lua @@ -0,0 +1,53 @@ +local rpc = require 'rpc' + +local isEnable = false + +local function allWords() + local str = [[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.:('"[,#*@| ]] + local list = {} + for c in str:gmatch '.' do + list[#list+1] = c + end + return list +end + +local function enable() + if isEnable then + return + end + isEnable = true + log.debug('Enable completion.') + rpc:request('client/registerCapability', { + registrations = { + { + id = 'completion', + method = 'textDocument/completion', + registerOptions = { + resolveProvider = false, + triggerCharacters = allWords(), + }, + }, + } + }) +end + +local function disable() + if not isEnable then + return + end + isEnable = false + log.debug('Disable completion.') + rpc:request('client/unregisterCapability', { + unregisterations = { + { + id = 'completion', + method = 'textDocument/completion', + }, + } + }) +end + +return { + enable = enable, + disable = disable, +} diff --git a/script/src/capability/init.lua b/script/src/capability/init.lua new file mode 100644 index 00000000..09eb6a09 --- /dev/null +++ b/script/src/capability/init.lua @@ -0,0 +1,3 @@ +return { + completion = require 'capability.completion', +} diff --git a/script/src/config.lua b/script/src/config.lua new file mode 100644 index 00000000..f58df498 --- /dev/null +++ b/script/src/config.lua @@ -0,0 +1,194 @@ +local DiagnosticDefaultSeverity = require 'constant.DiagnosticDefaultSeverity' + +local function Boolean(v) + if type(v) == 'boolean' then + return true, v + end + return false +end + +local function Integer(v) + if type(v) == 'number' then + return true, math.floor(v) + end + return false +end + +local function String(v) + return true, tostring(v) +end + +local function Str2Hash(sep) + return function (v) + if type(v) == 'string' then + local t = {} + for s in v:gmatch('[^'..sep..']+') do + t[s] = true + end + return true, t + end + if type(v) == 'table' then + local t = {} + for _, s in ipairs(v) do + if type(s) == 'string' then + t[s] = true + end + end + return true, t + end + return false + end +end + +local function Array(checker) + return function (tbl) + if type(tbl) ~= 'table' then + return false + end + local t = {} + for _, v in ipairs(tbl) do + local ok, result = checker(v) + if ok then + t[#t+1] = result + end + end + return true, t + end +end + +local function Hash(keyChecker, valueChecker) + return function (tbl) + if type(tbl) ~= 'table' then + return false + end + local t = {} + for k, v in pairs(tbl) do + local ok1, key = keyChecker(k) + local ok2, value = valueChecker(v) + if ok1 and ok2 then + t[key] = value + end + end + if not next(t) then + return false + end + return true, t + end +end + +local function Or(...) + local checkers = {...} + return function (obj) + for _, checker in ipairs(checkers) do + local suc, res = checker(obj) + if suc then + return true, res + end + end + return false + end +end + +local ConfigTemplate = { + runtime = { + version = {'Lua 5.3', String}, + library = {{}, Str2Hash ';'}, + path = {{ + "?.lua", + "?/init.lua", + "?/?.lua" + }, Array(String)}, + }, + diagnostics = { + enable = {true, Boolean}, + globals = {{}, Str2Hash ';'}, + disable = {{}, Str2Hash ';'}, + severity = { + table.deepCopy(DiagnosticDefaultSeverity), + Hash(String, String), + }, + }, + workspace = { + ignoreDir = {{}, Str2Hash ';'}, + ignoreSubmodules= {true, Boolean}, + useGitIgnore = {true, Boolean}, + maxPreload = {300, Integer}, + preloadFileSize = {100, Integer}, + library = {{}, Hash( + String, + Or(Boolean, Array(String)) + )} + }, + completion = { + enable = {true, Boolean}, + callSnippet = {'Both', String}, + keywordSnippet = {'Both', String}, + }, + plugin = { + enable = {false, Boolean}, + path = {'.vscode/lua-plugin/*.lua', String}, + }, +} + +local OtherTemplate = { + associations = {{}, Hash(String, String)}, + exclude = {{}, Hash(String, Boolean)}, +} + +local Config, Other + +local function init() + if Config then + return + end + + Config = {} + for c, t in pairs(ConfigTemplate) do + Config[c] = {} + for k, info in pairs(t) do + Config[c][k] = info[1] + end + end + + Other = {} + for k, info in pairs(OtherTemplate) do + Other[k] = info[1] + end +end + +local function setConfig(self, config, other) + xpcall(function () + for c, t in pairs(config) do + for k, v in pairs(t) do + local region = ConfigTemplate[c] + if region then + local info = region[k] + local suc, v = info[2](v) + if suc then + Config[c][k] = v + else + Config[c][k] = info[1] + end + end + end + end + for k, v in pairs(other) do + local info = OtherTemplate[k] + local suc, v = info[2](v) + if suc then + Other[k] = v + else + Other[k] = info[1] + end + end + log.debug('Config update: ', table.dump(Config), table.dump(Other)) + end, log.error) +end + +init() + +return { + setConfig = setConfig, + config = Config, + other = Other, +} diff --git a/script/src/constant/DiagnosticDefaultSeverity.lua b/script/src/constant/DiagnosticDefaultSeverity.lua new file mode 100644 index 00000000..b7f07f63 --- /dev/null +++ b/script/src/constant/DiagnosticDefaultSeverity.lua @@ -0,0 +1,22 @@ +return { + ['unused-local'] = 'Hint', + ['unused-function'] = 'Hint', + ['undefined-global'] = 'Warning', + ['global-in-nil-env'] = 'Warning', + ['unused-label'] = 'Hint', + ['unused-vararg'] = 'Hint', + ['trailing-space'] = 'Hint', + ['redefined-local'] = 'Hint', + ['newline-call'] = 'Information', + ['newfield-call'] = 'Warning', + ['redundant-parameter'] = 'Hint', + ['ambiguity-1'] = 'Warning', + ['lowercase-global'] = 'Information', + ['undefined-env-child'] = 'Information', + ['duplicate-index'] = 'Warning', + ['duplicate-method'] = 'Warning', + ['empty-block'] = 'Hint', + ['redundant-value'] = 'Hint', + ['emmy-lua'] = 'Warning', + ['set-const'] = 'Error', +} diff --git a/script/src/constant/DiagnosticSeverity.lua b/script/src/constant/DiagnosticSeverity.lua new file mode 100644 index 00000000..05bd3659 --- /dev/null +++ b/script/src/constant/DiagnosticSeverity.lua @@ -0,0 +1,6 @@ +return { + Error = 1, + Warning = 2, + Information = 3, + Hint = 4, +} diff --git a/script/src/constant/DiagnosticTag.lua b/script/src/constant/DiagnosticTag.lua new file mode 100644 index 00000000..918b7bad --- /dev/null +++ b/script/src/constant/DiagnosticTag.lua @@ -0,0 +1,4 @@ +return { + Unnecessary = 1, + Deprecated = 2, +} diff --git a/script/src/core/code_action.lua b/script/src/core/code_action.lua new file mode 100644 index 00000000..2c1fb14d --- /dev/null +++ b/script/src/core/code_action.lua @@ -0,0 +1,410 @@ +local lang = require 'language' +local library = require 'core.library' + +local function disableDiagnostic(lsp, uri, data, callback) + callback { + title = lang.script('ACTION_DISABLE_DIAG', data.code), + kind = 'quickfix', + command = { + title = lang.script.COMMAND_DISABLE_DIAG, + command = 'config', + arguments = { + { + key = {'diagnostics', 'disable'}, + action = 'add', + value = data.code, + } + } + } + } +end + +local function addGlobal(name, callback) + callback { + title = lang.script('ACTION_MARK_GLOBAL', name), + kind = 'quickfix', + command = { + title = lang.script.COMMAND_MARK_GLOBAL, + command = 'config', + arguments = { + { + key = {'diagnostics', 'globals'}, + action = 'add', + value = name, + } + } + }, + } +end + +local function changeVersion(version, callback) + callback { + title = lang.script('ACTION_RUNTIME_VERSION', version), + kind = 'quickfix', + command = { + title = lang.script.COMMAND_RUNTIME_VERSION, + command = 'config', + arguments = { + { + key = {'runtime', 'version'}, + action = 'set', + value = version, + } + } + }, + } +end + +local function openCustomLibrary(libName, callback) + callback { + title = lang.script('ACTION_OPEN_LIBRARY', libName), + kind = 'quickfix', + command = { + title = lang.script.COMMAND_OPEN_LIBRARY, + command = 'config', + arguments = { + { + key = {'runtime', 'library'}, + action = 'add', + value = libName, + } + } + }, + } +end + +local function solveUndefinedGlobal(lsp, uri, data, callback) + local vm, lines, text = lsp:getVM(uri) + if not vm then + return + end + local start = lines:position(data.range.start.line + 1, data.range.start.character + 1) + local finish = lines:position(data.range['end'].line + 1, data.range['end'].character) + local name = text:sub(start, finish) + if #name < 0 or name:find('[^%w_]') then + return + end + addGlobal(name, callback) + local otherVersion = library.other[name] + if otherVersion then + for _, version in ipairs(otherVersion) do + changeVersion(version, callback) + end + end + + local customLibrary = library.custom[name] + if customLibrary then + for _, libName in ipairs(customLibrary) do + openCustomLibrary(libName, callback) + end + end +end + +local function solveLowercaseGlobal(lsp, uri, data, callback) + local vm, lines, text = lsp:getVM(uri) + if not vm then + return + end + local start = lines:position(data.range.start.line + 1, data.range.start.character + 1) + local finish = lines:position(data.range['end'].line + 1, data.range['end'].character) + local name = text:sub(start, finish) + if #name < 0 or name:find('[^%w_]') then + return + end + addGlobal(name, callback) +end + +local function solveTrailingSpace(lsp, uri, data, callback) + callback { + title = lang.script.ACTION_REMOVE_SPACE, + kind = 'quickfix', + command = { + title = lang.script.COMMAND_REMOVE_SPACE, + command = 'removeSpace', + arguments = { + { + uri = uri, + } + } + }, + } +end + +local function solveNewlineCall(lsp, uri, data, callback) + callback { + title = lang.script.ACTION_ADD_SEMICOLON, + kind = 'quickfix', + edit = { + changes = { + [uri] = { + { + range = { + start = data.range.start, + ['end'] = data.range.start, + }, + newText = ';', + } + } + } + } + } +end + +local function solveAmbiguity1(lsp, uri, data, callback) + callback { + title = lang.script.ACTION_ADD_BRACKETS, + kind = 'quickfix', + command = { + title = lang.script.COMMAND_ADD_BRACKETS, + command = 'solve', + arguments = { + { + name = 'ambiguity-1', + uri = uri, + range = data.range, + } + } + }, + } +end + +local function findSyntax(astErr, lines, data) + local start = lines:position(data.range.start.line + 1, data.range.start.character + 1) + local finish = lines:position(data.range['end'].line + 1, data.range['end'].character) + for _, err in ipairs(astErr) do + if err.start == start and err.finish == finish then + return err + end + end + return nil +end + +local function solveSyntaxByChangeVersion(err, callback) + if type(err.version) == 'table' then + for _, version in ipairs(err.version) do + changeVersion(version, callback) + end + else + changeVersion(err.version, callback) + end +end + +local function solveSyntaxByAddDoEnd(uri, data, callback) + callback { + title = lang.script.ACTION_ADD_DO_END, + kind = 'quickfix', + edit = { + changes = { + [uri] = { + { + range = { + start = data.range.start, + ['end'] = data.range.start, + }, + newText = 'do ', + }, + { + range = { + start = data.range['end'], + ['end'] = data.range['end'], + }, + newText = ' end', + } + } + } + } + } +end + +local function solveSyntaxByFix(uri, err, lines, callback) + local changes = {} + for _, e in ipairs(err.fix) do + local start_row, start_col = lines:rowcol(e.start) + local finish_row, finish_col = lines:rowcol(e.finish) + changes[#changes+1] = { + range = { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + character = finish_col, + }, + }, + newText = e.text, + } + end + callback { + title = lang.script['ACTION_' .. err.fix.title], + kind = 'quickfix', + edit = { + changes = { + [uri] = changes, + } + } + } +end + +local function findEndPosition(lines, row, endrow) + if endrow == row then + return { + newText = ' end', + range = { + start = { + line = row - 1, + character = 999999, + }, + ['end'] = { + line = row - 1, + character = 999999, + } + } + } + else + local l = lines[row] + return { + newText = ('\t'):rep(l.tab) .. (' '):rep(l.sp) .. 'end\n', + range = { + start = { + line = endrow, + character = 0, + }, + ['end'] = { + line = endrow, + character = 0, + } + } + } + end +end + +local function isIfPart(id, lines, i) + if id ~= 'if' then + return false + end + local buf = lines:line(i) + local first = buf:match '^[%s\t]*([%w]+)' + if first == 'else' or first == 'elseif' then + return true + end + return false +end + +local function solveSyntaxByAddEnd(uri, start, finish, lines, callback) + local row = lines:rowcol(start) + local line = lines[row] + if not line then + return nil + end + local id = lines.buf:sub(start, finish) + local sp = line.sp + line.tab * 4 + for i = row + 1, #lines do + local nl = lines[i] + local lsp = nl.sp + nl.tab * 4 + if lsp <= sp and not isIfPart(id, lines, i) then + callback { + title = lang.script['ACTION_ADD_END'], + kind = 'quickfix', + edit = { + changes = { + [uri] = { + findEndPosition(lines, row, i - 1) + } + } + } + } + return + end + end + return nil +end + +---@param lsp LSP +---@param uri uri +---@param data table +---@param callback function +local function solveSyntax(lsp, uri, data, callback) + local file = lsp:getFile(uri) + if not file then + return + end + local astErr, lines = file:getAstErr(), file:getLines() + if not astErr or not lines then + return + end + local err = findSyntax(astErr, lines, data) + if not err then + return nil + end + if err.version then + solveSyntaxByChangeVersion(err, callback) + end + if err.type == 'ACTION_AFTER_BREAK' or err.type == 'ACTION_AFTER_RETURN' then + solveSyntaxByAddDoEnd(uri, data, callback) + end + if err.type == 'MISS_END' then + solveSyntaxByAddEnd(uri, err.start, err.finish, lines, callback) + end + if err.type == 'MISS_SYMBOL' and err.info.symbol == 'end' then + solveSyntaxByAddEnd(uri, err.info.related[1], err.info.related[2], lines, callback) + end + if err.fix then + solveSyntaxByFix(uri, err, lines, callback) + end +end + +local function solveDiagnostic(lsp, uri, data, callback) + if data.source == lang.script.DIAG_SYNTAX_CHECK then + solveSyntax(lsp, uri, data, callback) + end + if not data.code then + return + end + if data.code == 'undefined-global' then + solveUndefinedGlobal(lsp, uri, data, callback) + end + if data.code == 'trailing-space' then + solveTrailingSpace(lsp, uri, data, callback) + end + if data.code == 'newline-call' then + solveNewlineCall(lsp, uri, data, callback) + end + if data.code == 'ambiguity-1' then + solveAmbiguity1(lsp, uri, data, callback) + end + if data.code == 'lowercase-global' then + solveLowercaseGlobal(lsp, uri, data, callback) + end + disableDiagnostic(lsp, uri, data, callback) +end + +local function rangeContain(a, b) + if a.start.line > b.start.line then + return false + end + if a.start.character > b.start.character then + return false + end + if a['end'].line < b['end'].line then + return false + end + if a['end'].character < b['end'].character then + return false + end + return true +end + +return function (lsp, uri, diagnostics, range) + local results = {} + + for _, data in ipairs(diagnostics) do + if rangeContain(data.range, range) then + solveDiagnostic(lsp, uri, data, function (result) + results[#results+1] = result + end) + end + end + + return results +end diff --git a/script/src/core/completion.lua b/script/src/core/completion.lua new file mode 100644 index 00000000..756f136b --- /dev/null +++ b/script/src/core/completion.lua @@ -0,0 +1,1079 @@ +local findSource = require 'core.find_source' +local getFunctionHover = require 'core.hover.function' +local getFunctionHoverAsLib = require 'core.hover.lib_function' +local getFunctionHoverAsEmmy = require 'core.hover.emmy_function' +local sourceMgr = require 'vm.source' +local config = require 'config' +local matchKey = require 'core.matchKey' +local parser = require 'parser' +local lang = require 'language' +local snippet = require 'core.snippet' +local State + +local CompletionItemKind = { + Text = 1, + Method = 2, + Function = 3, + Constructor = 4, + Field = 5, + Variable = 6, + Class = 7, + Interface = 8, + Module = 9, + Property = 10, + Unit = 11, + Value = 12, + Enum = 13, + Keyword = 14, + Snippet = 15, + Color = 16, + File = 17, + Reference = 18, + Folder = 19, + EnumMember = 20, + Constant = 21, + Struct = 22, + Event = 23, + Operator = 24, + TypeParameter = 25, +} + +local KEYS = {'and', 'break', 'do', 'else', 'elseif', 'end', 'false', 'for', 'function', 'goto', 'if', 'in', 'local', 'nil', 'not', 'or', 'repeat', 'return', 'then', 'true', 'until', 'while'} +local KEYMAP = {} +for _, k in ipairs(KEYS) do + KEYMAP[k] = true +end + +local EMMY_KEYWORD = {'class', 'type', 'alias', 'param', 'return', 'field', 'generic', 'vararg', 'language', 'see', 'overload'} + +local function getDucumentation(name, value) + if value:getType() == 'function' then + local lib = value:getLib() + local hover + if lib then + hover = getFunctionHoverAsLib(name, lib) + else + local emmy = value:getEmmy() + if emmy and emmy.type == 'emmy.functionType' then + hover = getFunctionHoverAsEmmy(name, emmy) + else + hover = getFunctionHover(name, value:getFunction()) + end + end + if not hover then + return nil + end + local text = ([[ +```lua +%s +``` +%s +```lua +%s +``` +%s +]]):format(hover.label or '', hover.description or '', hover.enum or '', hover.doc or '') + return { + kind = 'markdown', + value = text, + } + end + local lib = value:getLib() + if lib then + return { + kind = 'markdown', + value = lib.description, + } + end + local comment = value:getComment() + if comment then + return { + kind = 'markdown', + value = comment, + } + end + return nil +end + +local function getDetail(value) + local literal = value:getLiteral() + local tp = type(literal) + local detals = {} + if value:getType() ~= 'any' then + detals[#detals+1] = ('(%s)'):format(value:getType()) + end + if tp == 'boolean' then + detals[#detals+1] = (' = %q'):format(literal) + elseif tp == 'string' then + detals[#detals+1] = (' = %q'):format(literal) + elseif tp == 'number' then + if math.type(literal) == 'integer' then + detals[#detals+1] = (' = %q'):format(literal) + else + local str = (' = %.16f'):format(literal) + local dot = str:find('.', 1, true) + local suffix = str:find('[0]+$', dot + 2) + if suffix then + detals[#detals+1] = str:sub(1, suffix - 1) + else + detals[#detals+1] = str + end + end + end + if value:getType() == 'function' then + ---@type emmyFunction + local func = value:getFunction() + local overLoads = func and func:getEmmyOverLoads() + if overLoads then + detals[#detals+1] = lang.script('HOVER_MULTI_PROTOTYPE', #overLoads + 1) + end + end + if #detals == 0 then + return nil + end + return table.concat(detals) +end + +local function getKind(cata, value) + if value:getType() == 'function' then + local func = value:getFunction() + if func and func:getObject() then + return CompletionItemKind.Method + else + return CompletionItemKind.Function + end + end + if cata == 'field' then + local literal = value:getLiteral() + local tp = type(literal) + if tp == 'number' or tp == 'integer' or tp == 'string' then + return CompletionItemKind.Enum + end + end + return nil +end + +local function buildSnipArgs(args, enums) + local t = {} + for i, arg in ipairs(args) do + local name = arg:match '^[^:]+' + local enum = enums and enums[name] + if enum and #enum > 0 then + t[i] = ('${%d|%s|}'):format(i, table.concat(enum, ',')) + else + t[i] = ('${%d:%s}'):format(i, arg) + end + end + return table.concat(t, ', ') +end + +local function getFunctionSnip(name, value, source) + if value:getType() ~= 'function' then + return + end + local lib = value:getLib() + local object = source:get 'object' + local hover + if lib then + hover = getFunctionHoverAsLib(name, lib, object) + else + local emmy = value:getEmmy() + if emmy and emmy.type == 'emmy.functionType' then + hover = getFunctionHoverAsEmmy(name, emmy, object) + else + hover = getFunctionHover(name, value:getFunction(), object) + end + end + if not hover then + return ('%s()'):format(name) + end + if not hover.args then + return ('%s()'):format(name) + end + return ('%s(%s)'):format(name, buildSnipArgs(hover.args, hover.rawEnum)) +end + +local function getValueData(cata, name, value, pos, source) + local data = { + documentation = getDucumentation(name, value), + detail = getDetail(value), + kind = getKind(cata, value), + snip = getFunctionSnip(name, value, source), + } + if cata == 'field' then + if not parser:grammar(name, 'Name') then + if source:get 'simple' and source:get 'simple' [1] ~= source then + data.textEdit = { + start = pos + 1, + finish = pos, + newText = ('[%q]'):format(name), + } + data.additionalTextEdits = { + { + start = pos, + finish = pos, + newText = '', + } + } + else + data.textEdit = { + start = pos + 1, + finish = pos, + newText = ('_ENV[%q]'):format(name), + } + data.additionalTextEdits = { + { + start = pos, + finish = pos, + newText = '', + } + } + end + end + end + return data +end + +local function searchLocals(vm, source, word, callback, pos) + vm:eachSource(function (src) + local loc = src:bindLocal() + if not loc then + return + end + + if src.start <= source.start + and loc:close() >= source.finish + and matchKey(word, loc:getName()) + then + callback(loc:getName(), src, CompletionItemKind.Variable, getValueData('local', loc:getName(), loc:getValue(), pos, source)) + end + end) +end + +local function sortPairs(t) + local keys = {} + for k in pairs(t) do + keys[#keys+1] = k + end + table.sort(keys) + local i = 0 + return function () + i = i + 1 + local k = keys[i] + return k, t[k] + end +end + +local function searchFieldsByInfo(parent, word, source, map) + parent:eachInfo(function (info, src) + local k = info[1] + if src == source then + return + end + if map[k] then + return + end + if KEYMAP[k] then + return + end + if info.type ~= 'set child' and info.type ~= 'get child' then + return + end + if type(k) ~= 'string' then + return + end + local v = parent:getChild(k) + if not v then + return + end + if source:get 'object' and v:getType() ~= 'function' then + return + end + if matchKey(word, k) then + map[k] = v + end + end) +end + +local function searchFieldsByChild(parent, word, source, map) + parent:eachChild(function (k, v) + if map[k] then + return + end + if KEYMAP[k] then + return + end + if not v:getLib() then + return + end + if type(k) ~= 'string' then + return + end + if source:get 'object' and v:getType() ~= 'function' then + return + end + if matchKey(word, k) then + map[k] = v + end + end) +end + +---@param vm VM +local function searchFields(vm, source, word, callback, pos) + local parent = source:get 'parent' or vm.env:getValue() + if not parent then + return + end + local map = {} + local current = parent + for _ = 1, 3 do + searchFieldsByInfo(current, word, source, map) + current = current:getMetaMethod('__index') + if not current then + break + end + end + searchFieldsByChild(parent, word, source, map) + for k, v in sortPairs(map) do + callback(k, nil, CompletionItemKind.Field, getValueData('field', k, v, pos, source)) + end +end + +local function searchIndex(vm, source, word, callback) + vm:eachSource(function (src) + if src:get 'table index' then + if matchKey(word, src[1]) then + callback(src[1], src, CompletionItemKind.Property) + end + end + end) +end + +local function searchCloseGlobal(vm, start, finish, word, callback) + vm:eachSource(function (src) + if (src:get 'global' or src:bindLocal()) + and src.start >= start + and src.finish <= finish + then + if matchKey(word, src[1]) then + callback(src[1], src, CompletionItemKind.Variable) + end + end + end) +end + +local function searchParams(vm, source, func, word, callback) + if not func then + return + end + ---@type emmyFunction + local emmyParams = func:getEmmyParams() + if not emmyParams then + return + end + if #emmyParams > 1 then + if not func.args + or not func.args[1] + or func.args[1]:getSource() == source then + if matchKey(word, source and source[1] or '') then + local names = {} + for _, param in ipairs(emmyParams) do + local name = param:getName() + names[#names+1] = name + end + callback(table.concat(names, ', '), nil, CompletionItemKind.Snippet) + end + end + end + for _, param in ipairs(emmyParams) do + local name = param:getName() + if matchKey(word, name) then + callback(name, param:getSource(), CompletionItemKind.Interface) + end + end +end + +local function searchKeyWords(vm, source, word, callback) + local snipType = config.config.completion.keywordSnippet + for _, key in ipairs(KEYS) do + if matchKey(word, key) then + if snippet.key[key] then + if snipType ~= 'Replace' + or key == 'local' + or key == 'return' then + callback(key, nil, CompletionItemKind.Keyword) + end + if snipType ~= 'Disable' then + for _, data in ipairs(snippet.key[key]) do + callback(data.label, nil, CompletionItemKind.Snippet, { + insertText = data.text, + }) + end + end + else + callback(key, nil, CompletionItemKind.Keyword) + end + end + end +end + +local function searchGlobals(vm, source, word, callback, pos) + local global = vm.env:getValue() + local map = {} + local current = global + for _ = 1, 3 do + searchFieldsByInfo(current, word, source, map) + current = current:getMetaMethod('__index') + if not current then + break + end + end + searchFieldsByChild(global, word, source, map) + for k, v in sortPairs(map) do + callback(k, nil, CompletionItemKind.Field, getValueData('field', k, v, pos, source)) + end +end + +local function searchAsGlobal(vm, source, word, callback, pos) + if word == '' then + return + end + searchLocals(vm, source, word, callback, pos) + searchFields(vm, source, word, callback, pos) + searchKeyWords(vm, source, word, callback) +end + +local function searchAsKeyowrd(vm, source, word, callback, pos) + searchLocals(vm, source, word, callback, pos) + searchGlobals(vm, source, word, callback, pos) + searchKeyWords(vm, source, word, callback) +end + +local function searchAsSuffix(vm, source, word, callback, pos) + searchFields(vm, source, word, callback, pos) +end + +local function searchAsIndex(vm, source, word, callback, pos) + searchLocals(vm, source, word, callback, pos) + searchIndex(vm, source, word, callback) + searchFields(vm, source, word, callback, pos) +end + +local function searchAsLocal(vm, source, word, callback) + local loc = source:bindLocal() + if not loc then + return + end + local close = loc:close() + -- 因为闭包的关系落在局部变量finish到close范围内的全局变量一定能访问到该局部变量 + searchCloseGlobal(vm, source.finish, close, word, callback) + -- 特殊支持 local function + if matchKey(word, 'function') then + callback('function', nil, CompletionItemKind.Keyword) + -- TODO 需要有更优美的实现方式 + local data = snippet.key['function'][1] + callback(data.label, nil, CompletionItemKind.Snippet, { + insertText = data.text, + }) + end +end + +local function searchAsArg(vm, source, word, callback) + searchParams(vm, source, source:get 'arg', word, callback) + + local loc = source:bindLocal() + if loc then + local close = loc:close() + -- 因为闭包的关系落在局部变量finish到close范围内的全局变量一定能访问到该局部变量 + searchCloseGlobal(vm, source.finish, close, word, callback) + return + end +end + +local function searchFunction(vm, source, word, pos, callback) + if pos >= source.argStart and pos <= source.argFinish then + searchParams(vm, nil, source:bindFunction():getFunction(), word, callback) + searchCloseGlobal(vm, source.argFinish, source.finish, word, callback) + end +end + +local function searchEmmyKeyword(vm, source, word, callback) + for _, kw in ipairs(EMMY_KEYWORD) do + if matchKey(word, kw) then + callback(kw, nil, CompletionItemKind.Keyword) + end + end +end + +local function searchEmmyClass(vm, source, word, callback) + local classes = {} + vm.emmyMgr:eachClass(function (class) + if class.type == 'emmy.class' or class.type == 'emmy.alias' then + if matchKey(word, class:getName()) then + classes[#classes+1] = class + end + end + end) + table.sort(classes, function (a, b) + return a:getName() < b:getName() + end) + for _, class in ipairs(classes) do + callback(class:getName(), class:getSource(), CompletionItemKind.Class) + end +end + +local function searchEmmyFunctionParam(vm, source, word, callback) + local func = source:get 'emmy function' + if not func.args then + return + end + if #func.args > 1 and matchKey(word, func.args[1].name) then + local list = {} + local args = {} + for i, arg in ipairs(func.args) do + if func:getObject() and i == 1 then + goto NEXT + end + args[#args+1] = arg.name + if #list == 0 then + list[#list+1] = ('%s any'):format(arg.name) + else + list[#list+1] = ('---@param %s any'):format(arg.name) + end + :: NEXT :: + end + callback(('%s'):format(table.concat(args, ', ')), nil, CompletionItemKind.Snippet, { + insertText = table.concat(list, '\n') + }) + end + for i, arg in ipairs(func.args) do + if func:getObject() and i == 1 then + goto NEXT + end + if matchKey(word, arg.name) then + callback(arg.name, nil, CompletionItemKind.Interface) + end + :: NEXT :: + end +end + +local function searchSource(vm, source, word, callback, pos) + if source.type == 'keyword' then + searchAsKeyowrd(vm, source, word, callback, pos) + return + end + if source:get 'table index' then + searchAsIndex(vm, source, word, callback, pos) + return + end + if source:get 'arg' then + searchAsArg(vm, source, word, callback) + return + end + if source:get 'global' then + searchAsGlobal(vm, source, word, callback, pos) + return + end + if source:action() == 'local' then + searchAsLocal(vm, source, word, callback) + return + end + if source:bindLocal() then + searchAsGlobal(vm, source, word, callback, pos) + return + end + if source:get 'simple' + and (source.type == 'name' or source.type == '.' or source.type == ':') then + searchAsSuffix(vm, source, word, callback, pos) + return + end + if source:bindFunction() then + searchFunction(vm, source, word, pos, callback) + return + end + if source.type == 'emmyIncomplete' then + searchEmmyKeyword(vm, source, word, callback) + State.ignoreText = true + return + end + if source:get 'emmy class' then + searchEmmyClass(vm, source, word, callback) + State.ignoreText = true + return + end + if source:get 'emmy function' then + searchEmmyFunctionParam(vm, source, word, callback) + State.ignoreText = true + return + end +end + +local function buildTextEdit(start, finish, str, quo) + local text, lquo, rquo, label, filterText + if quo == nil then + local text = str:gsub('\r', '\\r'):gsub('\n', '\\n'):gsub('"', '\\"') + return { + label = '"' .. text .. '"' + } + end + if quo == '"' then + label = str + filterText = str + text = str:gsub('\r', '\\r'):gsub('\n', '\\n'):gsub('"', '\\"') + lquo = quo + rquo = quo + elseif quo == "'" then + label = str + filterText = str + text = str:gsub('\r', '\\r'):gsub('\n', '\\n'):gsub("'", "\\'") + lquo = quo + rquo = quo + else + label = str + filterText = str + lquo = quo + rquo = ']' .. lquo:sub(2, -2) .. ']' + while str:find(rquo, 1, true) do + lquo = '[=' .. quo:sub(2) + rquo = ']' .. lquo:sub(2, -2) .. ']' + end + text = str + end + return { + label = label, + filterText = filterText, + textEdit = { + start = start + #quo, + finish = finish - #quo, + newText = text, + }, + additionalTextEdits = { + { + start = start, + finish = start + #quo - 1, + newText = lquo, + }, + { + start = finish - #quo + 1, + finish = finish, + newText = rquo, + }, + } + } +end + +local function searchInRequire(vm, source, callback) + if not vm.lsp or not vm.lsp.workspace then + return + end + if source.type ~= 'string' then + return + end + local list, map = vm.lsp.workspace:matchPath(vm.uri, source[1]) + if not list then + return + end + for _, str in ipairs(list) do + local data = buildTextEdit(source.start, source.finish, str, source[2]) + data.documentation = map[str] + callback(str, nil, CompletionItemKind.Reference, data) + end +end + +local function searchEnumAsLib(vm, source, word, callback, pos, args, lib) + local select = #args + 1 + for i, arg in ipairs(args) do + if arg.start <= pos and arg.finish >= pos then + select = i + break + end + end + + -- 根据参数位置找枚举值 + if lib.args and lib.enums then + local arg = lib.args[select] + local name = arg and arg.name + for _, enum in ipairs(lib.enums) do + if enum.name and enum.name == name and enum.enum then + if matchKey(word, enum.enum) then + local strSource = parser:parse(tostring(enum.enum), 'String') + if strSource then + if source.type == 'string' then + local data = buildTextEdit(source.start, source.finish, strSource[1], source[2]) + data.documentation = enum.description + callback(enum.enum, nil, CompletionItemKind.EnumMember, data) + else + callback(enum.enum, nil, CompletionItemKind.EnumMember, { + documentation = enum.description + }) + end + end + else + callback(enum.enum, nil, CompletionItemKind.EnumMember, { + documentation = enum.description + }) + end + end + end + end + + -- 搜索特殊函数 + if lib.special == 'require' then + if select == 1 then + searchInRequire(vm, source, callback) + end + end +end + +local function buildEmmyEnumComment(enum, data) + if not enum.comment then + return data + end + if not data then + data = {} + end + data.documentation = tostring(enum.comment) + return data +end + +local function searchEnumAsEmmyParams(vm, source, word, callback, pos, args, func) + local select = #args + 1 + for i, arg in ipairs(args) do + if arg.start <= pos and arg.finish >= pos then + select = i + break + end + end + + local param = func:findEmmyParamByIndex(select) + if not param then + return + end + + param:eachEnum(function (enum) + local str = enum[1] + if matchKey(word, str) then + local strSource = parser:parse(tostring(str), 'String') + if strSource then + if source.type == 'string' then + local data = buildTextEdit(source.start, source.finish, strSource[1], source[2]) + callback(str, nil, CompletionItemKind.EnumMember, buildEmmyEnumComment(enum, data)) + else + callback(str, nil, CompletionItemKind.EnumMember, buildEmmyEnumComment(enum)) + end + else + callback(str, nil, CompletionItemKind.EnumMember, buildEmmyEnumComment(enum)) + end + end + end) + + local option = param:getOption() + if option and option.special == 'require:1' then + searchInRequire(vm, source, callback) + end +end + +local function getSelect(args, pos) + if not args then + return 1 + end + for i, arg in ipairs(args) do + if arg.start <= pos and arg.finish >= pos - 1 then + return i + end + end + return #args + 1 +end + +local function isInFunctionOrTable(call, pos) + local args = call:bindCall() + if not args then + return false + end + local select = getSelect(args, pos) + local arg = args[select] + if not arg then + return false + end + if arg.type == 'function' or arg.type == 'table' then + return true + end + return false +end + +local function searchCallArg(vm, source, word, callback, pos) + local results = {} + vm:eachSource(function (src) + if src.type == 'call' + and src.start <= pos + and src.finish >= pos + then + results[#results+1] = src + end + end) + if #results == 0 then + return nil + end + -- 可能处于 'func1(func2(' 的嵌套中,将最近的call放到最前面 + table.sort(results, function (a, b) + return a.start > b.start + end) + local call = results[1] + if isInFunctionOrTable(call, pos) then + return + end + + local args = call:bindCall() + if not args then + return + end + + local value = call:findCallFunction() + if not value then + return + end + + local lib = value:getLib() + if lib then + searchEnumAsLib(vm, source, word, callback, pos, args, lib) + return + end + + ---@type emmyFunction + local func = value:getFunction() + if func then + searchEnumAsEmmyParams(vm, source, word, callback, pos, args, func) + return + end +end + +local function searchAllWords(vm, source, word, callback, pos) + if word == '' then + return + end + if source.type == 'string' then + return + end + vm:eachSource(function (src) + if src.type == 'name' + and not (src.start <= pos and src.finish >= pos) + and matchKey(word, src[1]) + then + callback(src[1], src, CompletionItemKind.Text) + end + end) +end + +local function searchSpecialHashSign(vm, pos, text, callback) + -- 尝试 XXX[#XXX+1] + -- 1. 搜索 [] + local index + vm:eachSource(function (src) + if src.type == 'index' + and src.start <= pos + and src.finish >= pos + then + index = src + return true + end + end) + if not index then + return nil + end + -- 2. [] 内部只能有一个 # + local inside = index[1] + if not inside then + return nil + end + if inside.op ~= '#' then + return nil + end + -- 3. [] 左侧必须是 simple ,且index 是 simple 的最后一项 + local simple = index:get 'simple' + if not simple then + return nil + end + if simple[#simple] ~= index then + return nil + end + local chars = text:sub(simple.start, simple[#simple-1].finish) + -- 4. 创建代码片段 + if simple:get 'as action' then + local label = chars .. '+1' + callback(label, nil, CompletionItemKind.Snippet, { + textEdit = { + start = inside.start + 1, + finish = index.finish, + newText = ('%s] = '):format(label), + }, + }) + else + local label = chars + callback(label, nil, CompletionItemKind.Snippet, { + textEdit = { + start = inside.start + 1, + finish = index.finish, + newText = ('%s]'):format(label), + }, + }) + end +end + +local function searchSpecial(vm, source, word, callback, pos, text) + searchSpecialHashSign(vm, pos, text, callback) +end + +local function makeList(source, pos, word) + local list = {} + local mark = {} + return function (name, src, kind, data) + if src == source then + return + end + if word == name then + if src and src.start <= pos and src.finish >= pos then + return + end + end + if mark[name] then + return + end + mark[name] = true + if not data then + data = {} + end + if not data.label then + data.label = name + end + if not data.kind then + data.kind = kind + end + list[#list+1] = data + if data.snip then + local snipType = config.config.completion.callSnippet + if snipType ~= 'Disable' then + local snipData = table.deepCopy(data) + snipData.insertText = data.snip + snipData.kind = CompletionItemKind.Snippet + snipData.label = snipData.label .. '()' + snipData.snip = nil + if snipType == 'Both' then + list[#list+1] = snipData + elseif snipType == 'Replace' then + list[#list] = snipData + end + end + data.snip = nil + end + end, list +end + +local function keywordSource(vm, word, pos) + if not KEYMAP[word] then + return nil + end + return vm:instantSource { + type = 'keyword', + start = pos, + finish = pos + #word - 1, + [1] = word, + } +end + +local function findStartPos(pos, buf) + local res = nil + for i = pos, 1, -1 do + local c = buf:sub(i, i) + if c:find '[%w_]' then + res = i + else + break + end + end + if not res then + for i = pos, 1, -1 do + local c = buf:sub(i, i) + if c == '.' or c == ':' or c == '|' or c == '(' then + res = i + break + elseif c == '#' or c == '@' then + res = i + 1 + break + elseif c:find '[%s%c]' then + else + break + end + end + end + if not res then + return pos + end + return res +end + +local function findWord(position, text) + local word = text + for i = position, 1, -1 do + local c = text:sub(i, i) + if not c:find '[%w_]' then + word = text:sub(i+1, position) + break + end + end + return word:match('^([%w_]*)') +end + +local function getSource(vm, pos, text, filter) + local word = findWord(pos, text) + local source = keywordSource(vm, word, pos) + if source then + return source, pos, word + end + source = findSource(vm, pos, filter) + if source then + return source, pos, word + end + pos = findStartPos(pos, text) + source = findSource(vm, pos, filter) or findSource(vm, pos-1, filter) + return source, pos, word +end + +return function (vm, text, pos, oldText) + local filter = { + ['name'] = true, + ['string'] = true, + ['.'] = true, + [':'] = true, + ['emmyName'] = true, + ['emmyIncomplete'] = true, + ['call'] = true, + ['function'] = true, + ['localfunction'] = true, + } + local source, pos, word = getSource(vm, pos, text, filter) + if not source then + return nil + end + if oldText then + local oldWord = oldText:sub(source.start, source.finish) + if word:sub(1, #oldWord) ~= oldWord then + return nil + end + end + State = {} + local callback, list = makeList(source, pos, word) + searchSpecial(vm, source, word, callback, pos, text) + searchCallArg(vm, source, word, callback, pos) + searchSource(vm, source, word, callback, pos) + if not oldText or #list > 0 then + if not State.ignoreText then + searchAllWords(vm, source, word, callback, pos) + end + end + + if #list == 0 then + return nil + end + + return list +end diff --git a/script/src/core/definition.lua b/script/src/core/definition.lua new file mode 100644 index 00000000..8680a29b --- /dev/null +++ b/script/src/core/definition.lua @@ -0,0 +1,296 @@ +local findSource = require 'core.find_source' +local Mode + +local function parseValueSimily(callback, vm, source) + local key = source[1] + if not key then + return nil + end + vm:eachSource(function (other) + if other == source then + goto CONTINUE + end + if other[1] == key + and not other:bindLocal() + and other:bindValue() + and source:bindValue() ~= other:bindValue() + then + if Mode == 'definition' then + if other:action() == 'set' then + callback(other) + end + elseif Mode == 'reference' then + if other:action() == 'set' or other:action() == 'get' then + callback(other) + end + end + end + :: CONTINUE :: + end) +end + +local function parseLocal(callback, vm, source) + ---@type Local + local loc = source:bindLocal() + callback(loc:getSource()) + loc:eachInfo(function (info, src) + if Mode == 'definition' then + if info.type == 'set' or info.type == 'local' then + if vm.uri == src:getUri() then + if source.id >= src.id then + callback(src) + end + end + end + elseif Mode == 'reference' then + if info.type == 'set' or info.type == 'local' or info.type == 'return' or info.type == 'get' then + callback(src) + end + end + end) +end + +local function parseValueByValue(callback, vm, source, value) + if not source then + return + end + local mark = { [vm] = true } + local list = {} + for _ = 1, 5 do + value:eachInfo(function (info, src) + if Mode == 'definition' then + if info.type == 'local' then + if vm.uri == src:getUri() then + if source.id >= src.id then + callback(src) + end + end + end + if info.type == 'set' then + if vm.uri == src:getUri() then + if source.id >= src.id then + callback(src) + end + else + callback(src) + end + end + if info.type == 'return' then + if (src.type ~= 'simple' or src[#src].type == 'call') + and src.type ~= 'name' + then + callback(src) + end + if vm.lsp then + local destVM = vm.lsp:getVM(src:getUri()) + if destVM and not mark[destVM] then + mark[destVM] = true + list[#list+1] = { destVM, src } + end + end + end + elseif Mode == 'reference' then + if info.type == 'set' or info.type == 'local' or info.type == 'return' or info.type == 'get' then + callback(src) + end + end + end) + local nextData = table.remove(list, 1) + if nextData then + vm, source = nextData[1], nextData[2] + end + end +end + +local function parseValue(callback, vm, source) + local value = source:bindValue() + local isGlobal + if value then + isGlobal = value:isGlobal() + parseValueByValue(callback, vm, source, value) + local emmy = value:getEmmy() + if emmy and emmy.type == 'emmy.type' then + ---@type EmmyType + local emmyType = emmy + emmyType:eachClass(function (class) + if class and class:getValue() then + local emmyVM = vm + if vm.lsp then + local destVM = vm.lsp:getVM(class:getSource():getUri()) + if destVM then + emmyVM = destVM + end + end + parseValueByValue(callback, emmyVM, class:getValue():getSource(), class:getValue()) + end + end) + end + end + local parent = source:get 'parent' + for _ = 1, 3 do + if parent then + local ok = parent:eachInfo(function (info, src) + if Mode == 'definition' then + if info.type == 'set child' and info[1] == source[1] then + callback(src) + return true + end + elseif Mode == 'reference' then + if (info.type == 'set child' or info.type == 'get child') and info[1] == source[1] then + callback(src) + return true + end + end + end) + if ok then + break + end + parent = parent:getMetaMethod('__index') + end + end + return isGlobal +end + +local function parseLabel(callback, vm, label) + label:eachInfo(function (info, src) + if Mode == 'definition' then + if info.type == 'set' then + callback(src) + end + elseif Mode == 'reference' then + if info.type == 'set' or info.type == 'get' then + callback(src) + end + end + end) +end + +local function jumpUri(callback, vm, source) + local uri = source:get 'target uri' + callback { + start = 0, + finish = 0, + uri = uri + } +end + +local function parseClass(callback, vm, source) + local className = source:get 'emmy class' + vm.emmyMgr:eachClass(className, function (class) + if Mode == 'definition' then + if class.type == 'emmy.class' or class.type == 'emmy.alias' then + local src = class:getSource() + callback(src) + end + elseif Mode == 'reference' then + if class.type == 'emmy.class' or class.type == 'emmy.alias' or class.type == 'emmy.typeUnit' then + local src = class:getSource() + callback(src) + end + end + end) +end + +local function parseSee(callback, vm, source) + local see = source:get 'emmy see' + local className = see[1][1] + local childName = see[2][1] + vm.emmyMgr:eachClass(className, function (class) + ---@type value + local value = class:getValue() + local child = value:getChild(childName) + parseValueByValue(callback, vm, source, child) + end) +end + +local function parseFunction(callback, vm, source) + if Mode == 'definition' then + callback(source:bindFunction():getSource()) + source:bindFunction():eachInfo(function (info, src) + if info.type == 'set' or info.type == 'local' then + if vm.uri == src:getUri() then + if source.id >= src.id then + callback(src) + end + else + callback(src) + end + end + end) + elseif Mode == 'reference' then + callback(source:bindFunction():getSource()) + source:bindFunction():eachInfo(function (info, src) + if info.type == 'set' or info.type == 'local' or info.type == 'get' then + callback(src) + end + end) + end +end + +local function makeList(source) + local list = {} + local mark = {} + return list, function (src) + if mark[src] then + return + end + mark[src] = true + list[#list+1] = { + src.start, + src.finish, + src.uri + } + end +end + +return function (vm, pos, mode) + local filter = { + ['name'] = true, + ['string'] = true, + ['number'] = true, + ['boolean'] = true, + ['label'] = true, + ['goto'] = true, + ['function'] = true, + ['...'] = true, + ['emmyName'] = true, + ['emmyIncomplete'] = true, + } + local source = findSource(vm, pos, filter) + if not source then + return nil + end + Mode = mode + local list, callback = makeList(source) + local isGlobal + if source:bindLocal() then + parseLocal(callback, vm, source) + end + if source:bindValue() then + isGlobal = parseValue(callback, vm, source) + end + if source:bindLabel() then + parseLabel(callback, vm, source:bindLabel()) + end + if source:bindFunction() then + parseFunction(callback, vm, source) + end + if source:get 'target uri' then + jumpUri(callback, vm, source) + end + if source:get 'in index' then + isGlobal = parseValue(callback, vm, source) + end + if source:get 'emmy class' then + parseClass(callback, vm, source) + end + if source:get 'emmy see' then + parseSee(callback, vm, source) + end + + if #list == 0 then + parseValueSimily(callback, vm, source) + end + + return list, isGlobal +end diff --git a/script/src/core/diagnostics.lua b/script/src/core/diagnostics.lua new file mode 100644 index 00000000..3b11b818 --- /dev/null +++ b/script/src/core/diagnostics.lua @@ -0,0 +1,1042 @@ +local lang = require 'language' +local config = require 'config' +local library = require 'core.library' +local buildGlobal = require 'vm.global' +local DiagnosticSeverity = require 'constant.DiagnosticSeverity' +local DiagnosticDefaultSeverity = require 'constant.DiagnosticDefaultSeverity' +local DiagnosticTag = require 'constant.DiagnosticTag' + +local mt = {} +mt.__index = mt + +local function isContainPos(obj, start, finish) + if obj.start <= start and obj.finish >= finish then + return true + end + return false +end + +function mt:searchUnusedLocals(callback) + self.vm:eachSource(function (source) + local loc = source:bindLocal() + if not loc then + return + end + if loc:get 'emmy arg' then + return + end + local name = loc:getName() + if name == '_' or name == '_ENV' or name == '' then + return + end + if source:action() ~= 'local' then + return + end + if loc:get 'hide' then + return + end + local used = loc:eachInfo(function (info) + if info.type == 'get' then + return true + end + end) + if not used then + callback(source.start, source.finish, name) + end + end) +end + +function mt:searchUnusedFunctions(callback) + self.vm:eachSource(function (source) + local loc = source:bindLocal() + if not loc then + return + end + if loc:get 'emmy arg' then + return + end + if source:action() ~= 'local' then + return + end + if loc:get 'hide' then + return + end + local used = loc:eachInfo(function (info) + if info.type == 'get' then + return true + end + end) + if used then + return + end + loc:eachInfo(function (info, src) + if info.type == 'set' or info.type == 'local' then + local v = src:bindValue() + local func = v and v:getFunction() + if func and func:getSource().uri == self.vm.uri then + callback(func:getSource().start, func:getSource().finish) + end + end + end) + end) +end + +function mt:searchUndefinedGlobal(callback) + local definedGlobal = {} + for name in pairs(config.config.diagnostics.globals) do + definedGlobal[name] = true + end + local envValue = buildGlobal(self.vm.lsp) + envValue:eachInfo(function (info) + if info.type == 'set child' then + local name = info[1] + definedGlobal[name] = true + end + end) + self.vm:eachSource(function (source) + if not source:get 'global' then + return + end + local name = source:getName() + if name == '' then + return + end + local parent = source:get 'parent' + if not parent then + return + end + if not parent:get 'ENV' and not source:get 'in index' then + return + end + if definedGlobal[name] then + return + end + if type(name) ~= 'string' then + return + end + callback(source.start, source.finish, name) + end) +end + +function mt:searchUnusedLabel(callback) + self.vm:eachSource(function (source) + local label = source:bindLabel() + if not label then + return + end + if source:action() ~= 'set' then + return + end + local used = label:eachInfo(function (info) + if info.type == 'get' then + return true + end + end) + if not used then + callback(source.start, source.finish, label:getName()) + end + end) +end + +function mt:searchUnusedVararg(callback) + self.vm:eachSource(function (source) + local value = source:bindFunction() + if not value then + return + end + local func = value:getFunction() + if not func then + return + end + if func._dotsSource and not func._dotsLoad then + callback(func._dotsSource.start, func._dotsSource.finish) + end + end) +end + +local function isInString(vm, start, finish) + return vm:eachSource(function (source) + if source.type == 'string' and isContainPos(source, start, finish) then + return true + end + end) +end + +function mt:searchSpaces(callback) + local vm = self.vm + local lines = self.lines + for i = 1, #lines do + local line = lines:line(i) + + if line:find '^[ \t]+$' then + local start, finish = lines:range(i) + if isInString(vm, start, finish) then + goto NEXT_LINE + end + callback(start, finish, lang.script.DIAG_LINE_ONLY_SPACE) + goto NEXT_LINE + end + + local pos = line:find '[ \t]+$' + if pos then + local start, finish = lines:range(i) + start = start + pos - 1 + if isInString(vm, start, finish) then + goto NEXT_LINE + end + callback(start, finish, lang.script.DIAG_LINE_POST_SPACE) + goto NEXT_LINE + end + + ::NEXT_LINE:: + end +end + +function mt:searchRedefinition(callback) + local used = {} + local uri = self.uri + self.vm:eachSource(function (source) + local loc = source:bindLocal() + if not loc then + return + end + local shadow = loc:shadow() + if not shadow then + return + end + if used[shadow] then + return + end + used[shadow] = true + if loc:get 'hide' then + return + end + local name = loc:getName() + if name == '_' or name == '_ENV' or name == '' then + return + end + local related = {} + for i = 1, #shadow do + related[i] = { + start = shadow[i]:getSource().start, + finish = shadow[i]:getSource().finish, + uri = uri, + } + end + for i = 2, #shadow do + callback(shadow[i]:getSource().start, shadow[i]:getSource().finish, name, related) + end + end) +end + +function mt:searchNewLineCall(callback) + local lines = self.lines + self.vm:eachSource(function (source) + if source.type ~= 'simple' then + return + end + for i = 1, #source - 1 do + local callSource = source[i] + local funcSource = source[i-1] + if callSource.type ~= 'call' then + goto CONTINUE + end + local callLine = lines:rowcol(callSource.start) + local funcLine = lines:rowcol(funcSource.finish) + if callLine > funcLine then + callback(callSource.start, callSource.finish) + end + :: CONTINUE :: + end + end) +end + +function mt:searchNewFieldCall(callback) + local lines = self.lines + self.vm:eachSource(function (source) + if source.type ~= 'table' then + return + end + for i = 1, #source do + local field = source[i] + if field.type == 'simple' then + local callSource = field[#field] + local funcSource = field[#field-1] + local callLine = lines:rowcol(callSource.start) + local funcLine = lines:rowcol(funcSource.finish) + if callLine > funcLine then + callback(funcSource.start, callSource.finish + , lines.buf:sub(funcSource.start, funcSource.finish) + , lines.buf:sub(callSource.start, callSource.finish) + ) + end + end + end + end) +end + +function mt:searchRedundantParameters(callback) + self.vm:eachSource(function (source) + local args = source:bindCall() + if not args then + return + end + + -- 回调函数不检查 + local simple = source:get 'simple' + if simple and simple[2] == source then + local loc = simple[1]:bindLocal() + if loc then + local source = loc:getSource() + if source:get 'arg' then + return + end + end + end + + local value = source:findCallFunction() + if not value then + return + end + + local func = value:getFunction() + -- 参数中有 ... ,不用再检查了 + if func:hasDots() then + return + end + local max = #func.args + local passed = #args + -- function m.open() end + -- m:open() + -- 这种写法不算错 + if passed == 1 and source:get 'has object' then + return + end + for i = max + 1, passed do + local extra = args[i] + callback(extra.start, extra.finish, max, passed) + end + end) +end + +local opMap = { + ['+'] = true, + ['-'] = true, + ['*'] = true, + ['/'] = true, + ['//'] = true, + ['^'] = true, + ['<<'] = true, + ['>>'] = true, + ['&'] = true, + ['|'] = true, + ['~'] = true, + ['..'] = true, +} + +local literalMap = { + ['number'] = true, + ['boolean'] = true, + ['string'] = true, + ['table'] = true, +} + +function mt:searchAmbiguity1(callback) + self.vm:eachSource(function (source) + if source.op ~= 'or' then + return + end + local first = source[1] + local second = source[2] + -- a + (b or 0) --> (a + b) or 0 + do + if opMap[first.op] + and first.type ~= 'unary' + and not second.op + and literalMap[second.type] + and not first.brackets + then + callback(source.start, source.finish, first.start, first.finish) + end + end + -- (a or 0) + c --> a or (0 + c) + do + if opMap[second.op] + and second.type ~= 'unary' + and not first.op + and literalMap[second[1].type] + and not second.brackets + then + callback(source.start, source.finish, second.start, second.finish) + end + end + end) +end + +function mt:searchLowercaseGlobal(callback) + local definedGlobal = {} + for name in pairs(config.config.diagnostics.globals) do + definedGlobal[name] = true + end + for name in pairs(library.global) do + definedGlobal[name] = true + end + self.vm:eachSource(function (source) + if source.type == 'name' + and source:get 'parent' + and not source:get 'simple' + and not source:get 'table index' + and source:action() == 'set' + then + local name = source[1] + if definedGlobal[name] then + return + end + local first = name:match '%w' + if not first then + return + end + if first:match '%l' then + callback(source.start, source.finish) + end + end + end) +end + +function mt:searchDuplicateIndex(callback) + self.vm:eachSource(function (source) + if source.type ~= 'table' then + return + end + local mark = {} + for _, obj in ipairs(source) do + if obj.type == 'pair' then + local key = obj[1] + local name + if key.index then + if key.type == 'string' then + name = key[1] + end + elseif key.type == 'name' then + name = key[1] + end + if name then + if mark[name] then + mark[name][#mark[name]+1] = obj + else + mark[name] = { obj } + end + end + end + end + for name, defs in pairs(mark) do + if #defs > 1 then + local related = {} + for i = 1, #defs do + related[i] = { + start = defs[i][1].start, + finish = defs[i][2].finish, + uri = self.uri, + } + end + for i = 1, #defs - 1 do + callback(defs[i][1].start, defs[i][2].finish, name, related, 'unused') + end + for i = #defs, #defs do + callback(defs[i][1].start, defs[i][1].finish, name, related, 'duplicate') + end + end + end + end) +end + +function mt:searchDuplicateMethod(callback) + local uri = self.uri + local mark = {} + local map = {} + self.vm:eachSource(function (source) + local parent = source:get 'parent' + if not parent then + return + end + if mark[parent] then + return + end + mark[parent] = true + local relates = {} + parent:eachInfo(function (info, src) + local k = info[1] + if info.type ~= 'set child' then + return + end + if type(k) ~= 'string' then + return + end + if src.start == 0 then + return + end + if not src:get 'object' then + return + end + if map[src] then + return + end + if not relates[k] then + relates[k] = map[src] or { + name = k, + } + end + map[src] = relates[k] + relates[k][#relates[k]+1] = { + start = src.start, + finish = src.finish, + uri = src.uri + } + end) + end) + for src, relate in pairs(map) do + if #relate > 1 and src.uri == uri then + callback(src.start, src.finish, relate.name, relate) + end + end +end + +function mt:searchEmptyBlock(callback) + self.vm:eachSource(function (source) + -- 认为空repeat与空while是合法的 + -- 要去vm中激活source + if source.type == 'if' then + for _, block in ipairs(source) do + if #block > 0 then + return + end + end + callback(source.start, source.finish) + return + end + if source.type == 'loop' + or source.type == 'in' + then + if #source == 0 then + callback(source.start, source.finish) + end + return + end + end) +end + +function mt:searchRedundantValue(callback) + self.vm:eachSource(function (source) + if source.type == 'set' or source.type == 'local' then + local args = source[1] + local values = source[2] + if not source[2] then + return + end + local argCount, valueCount + if args.type == 'list' then + argCount = #args + else + argCount = 1 + end + if values.type == 'list' then + valueCount = #values + else + valueCount = 1 + end + for i = argCount + 1, valueCount do + local value = values[i] + callback(value.start, value.finish, argCount, valueCount) + end + end + end) +end + +function mt:searchUndefinedEnvChild(callback) + self.vm:eachSource(function (source) + if not source:get 'global' then + return + end + local name = source:getName() + if name == '' then + return + end + if source:get 'in index' then + return + end + local parent = source:get 'parent' + if parent:get 'ENV' then + return + end + local value = source:bindValue() + if not value then + return + end + if value:getSource() == source then + callback(source.start, source.finish, name) + end + return + end) +end + +function mt:searchGlobalInNilEnv(callback) + self.vm:eachSource(function (source) + if not source:get 'global' then + return + end + local name = source:getName() + if name == '' then + return + end + local parentSource = source:get 'parent' :getSource() + if parentSource and parentSource.type == 'nil' then + callback(source.start, source.finish, { + { + start = parentSource.start, + finish = parentSource.finish, + uri = self.uri, + } + }) + end + return + end) +end + +function mt:checkEmmyClass(source, callback) + local class = source:get 'emmy.class' + if not class then + return + end + -- class重复定义 + local name = class:getName() + local related = {} + self.vm.emmyMgr:eachClass(name, function (class) + if class.type ~= 'emmy.class' and class.type ~= 'emmy.alias' then + return + end + local src = class:getSource() + if src ~= source then + related[#related+1] = { + start = src.start, + finish = src.finish, + uri = src.uri, + } + end + end) + if #related > 0 then + callback(source.start, source.finish, lang.script.DIAG_DUPLICATE_CLASS ,related) + end + -- 继承不存在的class + local extends = class.extends + if not extends then + return + end + local parent = self.vm.emmyMgr:eachClass(extends, function (parent) + if parent.type == 'emmy.class' then + return parent + end + end) + if not parent then + callback(source[2].start, source[2].finish, lang.script.DIAG_UNDEFINED_CLASS) + return + end + + -- class循环继承 + local related = {} + local current = class + for _ = 1, 10 do + local extends = current.extends + if not extends then + break + end + related[#related+1] = { + start = current:getSource().start, + finish = current:getSource().finish, + uri = current:getSource().uri, + } + current = self.vm.emmyMgr:eachClass(extends, function (parent) + if parent.type == 'emmy.class' then + return parent + end + end) + if not current then + break + end + if current:getName() == class:getName() then + callback(source.start, source.finish, lang.script.DIAG_CYCLIC_EXTENDS, related) + break + end + end +end + +function mt:checkEmmyType(source, callback) + for _, tpsource in ipairs(source) do + local name = tpsource[1] + local class = self.vm.emmyMgr:eachClass(name, function (class) + if class.type == 'emmy.class' or class.type == 'emmy.alias' then + return class + end + end) + if not class then + callback(tpsource.start, tpsource.finish, lang.script.DIAG_UNDEFINED_CLASS) + end + end +end + +function mt:checkEmmyAlias(source, callback) + local class = source:get 'emmy.alias' + if not class then + return + end + -- class重复定义 + local name = class:getName() + local related = {} + self.vm.emmyMgr:eachClass(name, function (class) + if class.type ~= 'emmy.class' and class.type ~= 'emmy.alias' then + return + end + local src = class:getSource() + if src ~= source then + related[#related+1] = { + start = src.start, + finish = src.finish, + uri = src.uri, + } + end + end) + if #related > 0 then + callback(source.start, source.finish, lang.script.DIAG_DUPLICATE_CLASS ,related) + end +end + +function mt:checkEmmyParam(source, callback, mark) + local func = source:get 'emmy function' + if not func then + return + end + if mark[func] then + return + end + mark[func] = true + + -- 检查不存在的参数 + local emmyParams = func:getEmmyParams() + local funcParams = {} + if func.args then + for _, arg in ipairs(func.args) do + funcParams[arg.name] = true + end + end + for _, param in ipairs(emmyParams) do + local name = param:getName() + if not funcParams[name] then + callback(param:getSource()[1].start, param:getSource()[1].finish, lang.script.DIAG_INEXISTENT_PARAM) + end + end + + -- 检查重复的param + local lists = {} + for _, param in ipairs(emmyParams) do + local name = param:getName() + if not lists[name] then + lists[name] = {} + end + lists[name][#lists[name]+1] = param:getSource()[1] + end + for _, list in pairs(lists) do + if #list > 1 then + local related = {} + for _, src in ipairs(list) do + related[#related+1] = { + src.start, + src.finish, + src.uri, + } + callback(src.start, src.finish, lang.script.DIAG_DUPLICATE_PARAM) + end + end + end +end + +function mt:checkEmmyField(source, callback, mark) + ---@type EmmyClass + local class = source:get 'target class' + -- 必须写在 class 的后面 + if not class then + callback(source.start, source.finish, lang.script.DIAG_NEED_CLASS) + end + + -- 检查重复的 field + if class and not mark[class] then + mark[class] = true + local lists = {} + class:eachField(function (field) + local name = field:getName() + if not lists[name] then + lists[name] = {} + end + lists[name][#lists[name]+1] = field:getSource()[2] + end) + for _, list in pairs(lists) do + if #list > 1 then + local related = {} + for _, src in ipairs(list) do + related[#related+1] = { + src.start, + src.finish, + src.uri, + } + callback(src.start, src.finish, lang.script.DIAG_DUPLICATE_FIELD) + end + end + end + end +end + +function mt:searchEmmyLua(callback) + local mark = {} + self.vm:eachSource(function (source) + if source.type == 'emmyClass' then + self:checkEmmyClass(source, callback) + elseif source.type == 'emmyType' then + self:checkEmmyType(source, callback) + elseif source.type == 'emmyAlias' then + self:checkEmmyAlias(source, callback) + elseif source.type == 'emmyParam' then + self:checkEmmyParam(source, callback, mark) + elseif source.type == 'emmyField' then + self:checkEmmyField(source, callback, mark) + end + end) +end + +function mt:searchSetConstLocal(callback) + local mark = {} + self.vm:eachSource(function (source) + local loc = source:bindLocal() + if not loc then + return + end + if mark[loc] then + return + end + mark[loc] = true + if not loc.tags then + return + end + local const + for _, tag in ipairs(loc.tags) do + if tag[1] == 'const' then + const = true + break + end + end + if not const then + return + end + loc:eachInfo(function (info, src) + if info.type == 'set' then + callback(src.start, src.finish) + end + end) + end) +end + +function mt:doDiagnostics(func, code, callback) + if config.config.diagnostics.disable[code] then + return + end + local level = config.config.diagnostics.severity[code] + if not DiagnosticSeverity[level] then + level = DiagnosticDefaultSeverity[code] + end + func(self, function (start, finish, ...) + local data = callback(...) + data.code = code + data.start = start + data.finish = finish + data.level = data.level or DiagnosticSeverity[level] + self.datas[#self.datas+1] = data + end) + if coroutine.isyieldable() then + if self.vm:isRemoved() then + coroutine.yield('stop') + else + coroutine.yield() + end + end +end + +return function (vm, lines, uri) + local session = setmetatable({ + vm = vm, + lines = lines, + uri = uri, + datas = {}, + }, mt) + + -- 未使用的局部变量 + session:doDiagnostics(session.searchUnusedLocals, 'unused-local', function (key) + return { + message = lang.script('DIAG_UNUSED_LOCAL', key), + tags = {DiagnosticTag.Unnecessary}, + } + end) + -- 未使用的函数 + session:doDiagnostics(session.searchUnusedFunctions, 'unused-function', function () + return { + message = lang.script.DIAG_UNUSED_FUNCTION, + tags = {DiagnosticTag.Unnecessary}, + } + end) + -- 读取未定义全局变量 + session:doDiagnostics(session.searchUndefinedGlobal, 'undefined-global', function (key) + local message = lang.script('DIAG_UNDEF_GLOBAL', key) + local otherVersion = library.other[key] + local customLib = library.custom[key] + if otherVersion then + message = ('%s(%s)'):format(message, lang.script('DIAG_DEFINED_VERSION', table.concat(otherVersion, '/'), config.config.runtime.version)) + end + if customLib then + message = ('%s(%s)'):format(message, lang.script('DIAG_DEFINED_CUSTOM', table.concat(customLib, '/'))) + end + return { + message = message, + } + end) + -- 未使用的Label + session:doDiagnostics(session.searchUnusedLabel, 'unused-label', function (key) + return { + message = lang.script('DIAG_UNUSED_LABEL', key), + tags = {DiagnosticTag.Unnecessary}, + } + end) + -- 未使用的不定参数 + session:doDiagnostics(session.searchUnusedVararg, 'unused-vararg', function () + return { + message = lang.script.DIAG_UNUSED_VARARG, + tags = {DiagnosticTag.Unnecessary}, + } + end) + -- 只有空格与制表符的行,以及后置空格 + session:doDiagnostics(session.searchSpaces, 'trailing-space', function (message) + return { + message = message, + } + end) + -- 重定义局部变量 + session:doDiagnostics(session.searchRedefinition, 'redefined-local', function (key, related) + return { + message = lang.script('DIAG_REDEFINED_LOCAL', key), + related = related, + } + end) + -- 以括号开始的一行(可能被误解析为了上一行的call) + session:doDiagnostics(session.searchNewLineCall, 'newline-call', function () + return { + message = lang.script.DIAG_PREVIOUS_CALL, + } + end) + -- 以字符串开始的field(可能被误解析为了上一行的call) + session:doDiagnostics(session.searchNewFieldCall, 'newfield-call', function (func, call) + return { + message = lang.script('DIAG_PREFIELD_CALL', func, call), + } + end) + -- 调用函数时的参数数量是否超过函数的接收数量 + session:doDiagnostics(session.searchRedundantParameters, 'redundant-parameter', function (max, passed) + return { + message = lang.script('DIAG_OVER_MAX_ARGS', max, passed), + tags = {DiagnosticTag.Unnecessary}, + } + end) + -- x or 0 + 1 + session:doDiagnostics(session.searchAmbiguity1, 'ambiguity-1', function (start, finish) + return { + message = lang.script('DIAG_AMBIGUITY_1', lines.buf:sub(start, finish)), + } + end) + -- 不允许定义首字母小写的全局变量(很可能是拼错或者漏删) + session:doDiagnostics(session.searchLowercaseGlobal, 'lowercase-global', function () + return { + message = lang.script.DIAG_LOWERCASE_GLOBAL, + } + end) + -- 未定义的变量(重载了 `_ENV`) + session:doDiagnostics(session.searchUndefinedEnvChild, 'undefined-env-child', function (key) + if vm.envType == '_ENV' then + return { + message = lang.script('DIAG_UNDEF_ENV_CHILD', key), + } + else + return { + message = lang.script('DIAG_UNDEF_FENV_CHILD', key), + } + end + end) + -- 全局变量不可用(置空了 `_ENV`) + session:doDiagnostics(session.searchGlobalInNilEnv, 'global-in-nil-env', function (related) + if vm.envType == '_ENV' then + return { + message = lang.script.DIAG_GLOBAL_IN_NIL_ENV, + related = related, + } + else + return { + message = lang.script.DIAG_GLOBAL_IN_NIL_FENV, + related = related, + } + end + end) + -- 构建表时重复定义field + session:doDiagnostics(session.searchDuplicateIndex, 'duplicate-index', function (key, related, type) + if type == 'unused' then + return { + message = lang.script('DIAG_DUPLICATE_INDEX', key), + related = related, + level = DiagnosticSeverity.Hint, + tags = {DiagnosticTag.Unnecessary}, + } + else + return { + message = lang.script('DIAG_DUPLICATE_INDEX', key), + related = related, + } + end + end) + -- 往表里面塞重复的method + --session:doDiagnostics(session.searchDuplicateMethod, 'duplicate-method', function (key, related) + -- return { + -- message = lang.script('DIAG_DUPLICATE_METHOD', key), + -- related = related, + -- } + --end) + -- 空代码块 + session:doDiagnostics(session.searchEmptyBlock, 'empty-block', function () + return { + message = lang.script.DIAG_EMPTY_BLOCK, + tags = {DiagnosticTag.Unnecessary}, + } + end) + -- 多余的赋值 + session:doDiagnostics(session.searchRedundantValue, 'redundant-value', function (max, passed) + return { + message = lang.script('DIAG_OVER_MAX_VALUES', max, passed), + tags = {DiagnosticTag.Unnecessary}, + } + end) + -- Emmy相关的检查 + session:doDiagnostics(session.searchEmmyLua, 'emmy-lua', function (message, related) + return { + message = message, + related = related, + } + end) + -- 检查给const变量赋值 + session:doDiagnostics(session.searchSetConstLocal, 'set-const', function () + return { + message = lang.script.DIAG_SET_CONST + } + end) + return session.datas +end diff --git a/script/src/core/document_symbol.lua b/script/src/core/document_symbol.lua new file mode 100644 index 00000000..48e01332 --- /dev/null +++ b/script/src/core/document_symbol.lua @@ -0,0 +1,260 @@ +local hoverFunction = require 'core.hover.function' +local getName = require 'core.name' +local hover = require 'core.hover' + +local SymbolKind = { + File = 1, + Module = 2, + Namespace = 3, + Package = 4, + Class = 5, + Method = 6, + Property = 7, + Field = 8, + Constructor = 9, + Enum = 10, + Interface = 11, + Function = 12, + Variable = 13, + Constant = 14, + String = 15, + Number = 16, + Boolean = 17, + Array = 18, + Object = 19, + Key = 20, + Null = 21, + EnumMember = 22, + Struct = 23, + Event = 24, + Operator = 25, + TypeParameter = 26, +} + +local function buildLocal(vm, source, used, callback) + local vars = source[1] + local exps = source[2] + if vars.type ~= 'list' then + vars = {vars} + end + if not exps or exps.type ~= 'list' then + exps = {exps} + end + for i, var in ipairs(vars) do + local exp = exps[i] + local data = {} + local loc = var:bindLocal() + data.name = loc:getName() + data.range = { var.start, var.finish } + data.selectionRange = { var.start, var.finish } + if exp then + local hvr = hover(var) + if exp.type == 'function' then + data.kind = SymbolKind.Function + else + data.kind = SymbolKind.Variable + end + data.detail = hvr.label:gsub('[\r\n]', '') + data.valueRange = { exp.start, exp.finish } + used[exp] = true + else + data.kind = SymbolKind.Variable + data.detail = '' + data.valueRange = { var.start, var.finish } + end + callback(data) + end +end + +local function buildSet(vm, source, used, callback) + local vars = source[1] + local exps = source[2] + if vars.type ~= 'list' then + vars = {vars} + end + if not exps or exps.type ~= 'list' then + exps = {exps} + end + for i, var in ipairs(vars) do + if var:bindLocal() then + goto CONTINUE + end + local exp = exps[i] + local data = {} + data.name = getName(var) + data.range = { var.start, var.finish } + data.selectionRange = { var.start, var.finish } + if exp then + local hvr = hover(var) + if not hvr then + goto CONTINUE + end + if exp.type == 'function' then + data.kind = SymbolKind.Function + else + data.kind = SymbolKind.Property + end + data.detail = hvr.label:gsub('[\r\n]', '') + data.valueRange = { exp.start, exp.finish } + used[exp] = true + else + data.kind = SymbolKind.Property + data.detail = '' + data.valueRange = { var.start, var.finish } + end + callback(data) + :: CONTINUE :: + end +end + +local function buildPair(vm, source, used, callback) + local var = source[1] + local exp = source[2] + local data = {} + data.name = getName(var) + data.range = { var.start, var.finish } + data.selectionRange = { var.start, var.finish } + if exp then + local hvr = hover(var) + if not hvr then + return + end + if exp.type == 'function' then + data.kind = SymbolKind.Function + else + data.kind = SymbolKind.Class + end + data.detail = hvr.label:gsub('[\r\n]', '') + data.valueRange = { exp.start, exp.finish } + used[exp] = true + else + data.kind = SymbolKind.Class + data.detail = '' + data.valueRange = { var.start, var.finish } + end + callback(data) +end + +local function buildLocalFunction(vm, source, used, callback) + local value = source:bindFunction() + if not value then + return + end + local name = getName(source.name) + local hvr = hoverFunction(name, value:getFunction()) + if not hvr then + return + end + local kind = SymbolKind.Function + callback { + name = name, + detail = hvr.label:gsub('[\r\n]', ''), + kind = kind, + range = { source.start, source.finish }, + selectionRange = { source.name.start, source.name.finish }, + valueRange = { source.start, source.finish }, + } +end + + +local function buildFunction(vm, source, used, callback) + if used[source] then + return + end + local value = source:bindFunction() + if not value then + return + end + local name = getName(source.name) + local func = value:getFunction() + if not func then + return + end + local hvr = hoverFunction(name, func, func:getObject()) + if not hvr then + return + end + local data = {} + data.name = name + data.detail = hvr.label:gsub('[\r\n]', '') + data.range = { source.start, source.finish } + data.valueRange = { source.start, source.finish } + if source.name then + data.selectionRange = { source.name.start, source.name.finish } + else + data.selectionRange = { source.start, source.start } + end + if func:getObject() then + data.kind = SymbolKind.Field + else + data.kind = SymbolKind.Function + end + callback(data) +end + +local function buildSource(vm, source, used, callback) + if source.type == 'local' then + buildLocal(vm, source, used, callback) + return + end + if source.type == 'set' then + buildSet(vm, source, used, callback) + return + end + if source.type == 'pair' then + buildPair(vm, source, used, callback) + return + end + if source.type == 'localfunction' then + buildLocalFunction(vm, source, used, callback) + return + end + if source.type == 'function' then + buildFunction(vm, source, used, callback) + return + end +end + +local function packChild(symbols, finish, kind) + local t + while true do + local symbol = symbols[#symbols] + if not symbol then + break + end + if symbol.valueRange[1] > finish then + break + end + symbols[#symbols] = nil + symbol.children = packChild(symbols, symbol.valueRange[2], symbol.kind) + if not t then + t = {} + end + t[#t+1] = symbol + end + return t +end + +local function packSymbols(symbols) + -- 按照start位置反向排序 + table.sort(symbols, function (a, b) + return a.range[1] > b.range[1] + end) + -- 处理嵌套 + return packChild(symbols, math.maxinteger, SymbolKind.Function) +end + +return function (vm) + local symbols = {} + local used = {} + + vm:eachSource(function (source) + buildSource(vm, source, used, function (data) + symbols[#symbols+1] = data + end) + end) + + local packedSymbols = packSymbols(symbols) + + return packedSymbols +end diff --git a/script/src/core/find_lib.lua b/script/src/core/find_lib.lua new file mode 100644 index 00000000..e76549a8 --- /dev/null +++ b/script/src/core/find_lib.lua @@ -0,0 +1,65 @@ +local hoverName = require 'core.hover.name' + +local function getParentName(lib, isObject) + for _, parent in ipairs(lib.parent) do + if isObject then + if parent.type == 'object' then + return parent.nick or parent.name + end + else + if parent.type ~= 'object' then + return parent.nick or parent.name + end + end + end + return '' +end + +local function findLib(source) + local value = source:bindValue() + local lib = value:getLib() + if not lib then + return nil + end + if lib.parent then + if source:get 'object' then + -- *string:sub + local fullKey = ('*%s:%s'):format(getParentName(lib, true), lib.name) + return lib, fullKey + else + local parentValue = source:get 'parent' + if parentValue and parentValue:getType() == 'string' then + -- *string.sub + local fullKey = ('*%s.%s'):format(getParentName(lib, false), lib.name) + return lib, fullKey + else + -- string.sub + local fullKey = ('%s.%s'):format(getParentName(lib, false), lib.name) + return lib, fullKey + end + end + else + local name = hoverName(source) + local libName = lib.nick or lib.name + if name == libName or not libName then + return lib, name + elseif name == '' then + return lib, libName + else + return lib, ('%s<%s>'):format(name, libName) + end + end +end + +return function (source) + if source:bindValue() then + local lib, fullKey = findLib(source) + return lib, fullKey + end + if source:get 'in index' then + source = source:get 'in index' + local lib, fullKey = findLib(source) + return lib, fullKey + end + return nil +end diff --git a/script/src/core/find_source.lua b/script/src/core/find_source.lua new file mode 100644 index 00000000..a64a047e --- /dev/null +++ b/script/src/core/find_source.lua @@ -0,0 +1,59 @@ +local function isContainPos(obj, pos) + if obj.start <= pos and obj.finish >= pos then + return true + end + return false +end + +local function isValidSource(source) + return source.start ~= nil and source.start ~= 0 +end + +local function matchFilter(source, filter) + if not filter then + return true + end + return filter[source.type] +end + +local function findAtPos(vm, pos, filter) + local res = {} + vm:eachSource(function (source) + if isValidSource(source) + and isContainPos(source, pos) + and matchFilter(source, filter) + then + res[#res+1] = source + end + end) + if #res == 0 then + return nil + end + table.sort(res, function (a, b) + if a == b then + return false + end + local rangeA = a.finish - a.start + local rangeB = b.finish - b.start + -- 特殊处理:func 'str' 的情况下,list与string的范围会完全相同,此时取string + if rangeA == rangeB then + if b.type == 'call' and #b == 1 and b[1] == a then + return true + elseif a.type == 'call' and #a == 1 and a[1] == b then + return false + else + return a.id < b.id + end + end + return rangeA < rangeB + end) + local source = res[1] + if not source then + return nil + end + return source +end + +return function (vm, pos, filter) + return findAtPos(vm, pos, filter) +end diff --git a/script/src/core/folding_range.lua b/script/src/core/folding_range.lua new file mode 100644 index 00000000..e94d1ffe --- /dev/null +++ b/script/src/core/folding_range.lua @@ -0,0 +1,73 @@ +local foldingType = { + ['function'] = {'region', 'end', }, + ['localfunction'] = {'region', 'end', }, + ['do'] = {'region', 'end', }, + ['if'] = {'region', 'end', }, + ['loop'] = {'region', 'end', }, + ['in'] = {'region', 'end', }, + ['while'] = {'region', 'end', }, + ['repeat'] = {'region', 'until',}, + ['table'] = {'region', '}', }, + ['string'] = {'regtion', ']', }, +} + +return function (vm, comments) + local result = {} + vm:eachSource(function (source) + local tp = source.type + local data = foldingType[tp] + if not data then + return + end + local start = source.start + local finish = source.finish + if tp == 'repeat' then + if #source > 0 then + finish = source[#source].finish + else + finish = start + #'repeat' + end + finish = vm.text:find('until', finish, true) or finish + result[#result+1] = { + start = start, + finish = finish, + kind = data[1], + } + elseif tp == 'if' then + for i = 1, #source do + local block = source[i] + local nblock = source[i+1] + result[#result+1] = { + start = block.start, + finish = nblock and nblock.start or finish, + kind = data[1], + } + end + elseif tp == 'string' then + result[#result+1] = { + start = start, + finish = finish, + kind = data[1], + } + elseif data[1] == 'region' then + result[#result+1] = { + start = start, + finish = finish, + kind = data[1], + } + end + end) + if comments then + for _, comment in ipairs(comments) do + result[#result+1] = { + start = comment.start, + finish = comment.finish, + kind = 'comment', + } + end + end + if #result == 0 then + return nil + end + return result +end diff --git a/script/src/core/global.lua b/script/src/core/global.lua new file mode 100644 index 00000000..961ad304 --- /dev/null +++ b/script/src/core/global.lua @@ -0,0 +1,49 @@ +local mt = {} +mt.__index = mt + +function mt:markSet(uri) + if not uri then + return + end + self.set[uri] = true +end + +function mt:markGet(uri) + if not uri then + return + end + self.get[uri] = true +end + +function mt:clearGlobal(uri) + self.set[uri] = nil + self.get[uri] = nil +end + +function mt:getAllUris() + local uris = {} + for uri in pairs(self.set) do + uris[#uris+1] = uri + end + for uri in pairs(self.get) do + if not self.set[uri] then + uris[#uris+1] = uri + end + end + return uris +end + +function mt:hasSetGlobal(uri) + return self.set[uri] ~= nil +end + +function mt:remove() +end + +return function (lsp) + return setmetatable({ + get = {}, + set = {}, + lsp = lsp, + }, mt) +end diff --git a/script/src/core/highlight.lua b/script/src/core/highlight.lua new file mode 100644 index 00000000..2073573d --- /dev/null +++ b/script/src/core/highlight.lua @@ -0,0 +1,54 @@ +local findSource = require 'core.find_source' +local parser = require 'parser' + +local DocumentHighlightKind = { + Text = 1, + Read = 2, + Write = 3, +} + +local function parseResult(source) + local positions = {} + if source:bindLabel() then + source:bindLabel():eachInfo(function (info, src) + positions[#positions+1] = { src.start, src.finish, DocumentHighlightKind.Text } + end) + return positions + end + if source:bindLocal() then + local loc = source:bindLocal() + local mark = {} + loc:eachInfo(function (info, src) + if not mark[src] then + mark[src] = info + positions[#positions+1] = { src.start, src.finish, DocumentHighlightKind.Text } + end + end) + return positions + end + if source:bindValue() and source:get 'parent' then + local parent = source:get 'parent' + local mark = {} + parent:eachInfo(function (info, src) + if not mark[src] and source.uri == src.uri then + mark[src] = info + if info.type == 'get child' or info.type == 'set child' then + if info[1] == source[1] then + positions[#positions+1] = {src.start, src.finish, DocumentHighlightKind.Text} + end + end + end + end) + return positions + end + return nil +end + +return function (vm, pos) + local source = findSource(vm, pos) + if not source then + return nil + end + local positions = parseResult(source) + return positions +end diff --git a/script/src/core/hover/emmy_function.lua b/script/src/core/hover/emmy_function.lua new file mode 100644 index 00000000..7c87954e --- /dev/null +++ b/script/src/core/hover/emmy_function.lua @@ -0,0 +1,143 @@ +---@param emmy EmmyFunctionType +local function buildEmmyArgs(emmy, object, select) + local start + if object then + start = 2 + else + start = 1 + end + local strs = {} + local args = {} + local i = 0 + emmy:eachParam(function (name, typeObj) + i = i + 1 + if i < start then + return + end + if i > start then + strs[#strs+1] = ', ' + end + if i == select then + strs[#strs+1] = '@ARG' + end + strs[#strs+1] = name .. ': ' .. typeObj:getType() + args[#args+1] = strs[#strs] + if i == select then + strs[#strs+1] = '@ARG' + end + end) + local text = table.concat(strs) + local argLabel = {} + for i = 1, 2 do + local pos = text:find('@ARG', 1, true) + if pos then + if i == 1 then + argLabel[i] = pos + else + argLabel[i] = pos - 1 + end + text = text:sub(1, pos-1) .. text:sub(pos+4) + end + end + if #argLabel == 0 then + argLabel = nil + end + return text, argLabel, args +end + +local function buildEmmyReturns(emmy) + local rtns = {} + local i = 0 + emmy:eachReturn(function (rtn) + i = i + 1 + if i > 1 then + rtns[#rtns+1] = ('\n% 3d. '):format(i) + end + rtns[#rtns+1] = rtn:getType() + end) + if #rtns == 0 then + return '\n -> ' .. 'any' + else + return '\n -> ' .. table.concat(rtns) + end +end + +local function buildEnum(lib) + if not lib.enums then + return '' + end + local container = table.container() + for _, enum in ipairs(lib.enums) do + if not enum.name or (not enum.enum and not enum.code) then + goto NEXT_ENUM + end + if not container[enum.name] then + container[enum.name] = {} + if lib.args then + for _, arg in ipairs(lib.args) do + if arg.name == enum.name then + container[enum.name].type = arg.type + break + end + end + end + if lib.returns then + for _, rtn in ipairs(lib.returns) do + if rtn.name == enum.name then + container[enum.name].type = rtn.type + break + end + end + end + end + table.insert(container[enum.name], enum) + ::NEXT_ENUM:: + end + local strs = {} + local raw = {} + for name, enums in pairs(container) do + local tp + if type(enums.type) == 'table' then + tp = table.concat(enums.type, '/') + else + tp = enums.type + end + raw[name] = {} + strs[#strs+1] = ('\n%s: %s'):format(name, tp or 'any') + for _, enum in ipairs(enums) do + if enum.default then + strs[#strs+1] = '\n -> ' + else + strs[#strs+1] = '\n | ' + end + if enum.code then + strs[#strs+1] = tostring(enum.code) + else + strs[#strs+1] = ('%q'):format(enum.enum) + end + raw[name][#raw[name]+1] = strs[#strs] + if enum.description then + strs[#strs+1] = ' -- ' .. enum.description + end + end + end + return table.concat(strs), raw +end + +return function (name, emmy, object, select) + local argStr, argLabel, args = buildEmmyArgs(emmy, object, select) + local returns = buildEmmyReturns(emmy) + local enum, rawEnum = buildEnum(emmy) + local tip = emmy.description + return { + label = ('function %s(%s)%s'):format(name, argStr, returns), + name = name, + argStr = argStr, + returns = returns, + description = tip, + enum = enum, + rawEnum = rawEnum, + argLabel = argLabel, + args = args, + } +end diff --git a/script/src/core/hover/function.lua b/script/src/core/hover/function.lua new file mode 100644 index 00000000..3865f602 --- /dev/null +++ b/script/src/core/hover/function.lua @@ -0,0 +1,243 @@ +local emmyFunction = require 'core.hover.emmy_function' + +local function buildValueArgs(func, object, select) + if not func then + return '', nil + end + local names = {} + local values = {} + local options = {} + if func.argValues then + for i, value in ipairs(func.argValues) do + values[i] = value:getType() + end + end + if func.args then + for i, arg in ipairs(func.args) do + names[#names+1] = arg:getName() + local param = func:findEmmyParamByName(arg:getName()) + if param then + values[i] = param:getType() + options[i] = param:getOption() + end + end + end + local strs = {} + local start = 1 + if object then + start = 2 + end + local max + if func:getSource() then + max = #names + else + max = math.max(#names, #values) + end + local args = {} + for i = start, max do + local name = names[i] + local value = values[i] or 'any' + local option = options[i] + if option and option.optional then + if i > start then + strs[#strs+1] = ' [' + else + strs[#strs+1] = '[' + end + end + if i > start then + strs[#strs+1] = ', ' + end + + if i == select then + strs[#strs+1] = '@ARG' + end + if name then + strs[#strs+1] = name .. ': ' .. value + else + strs[#strs+1] = value + end + args[#args+1] = strs[#strs] + if i == select then + strs[#strs+1] = '@ARG' + end + + if option and option.optional == 'self' then + strs[#strs+1] = ']' + end + end + if func:hasDots() then + if max > 0 then + strs[#strs+1] = ', ' + end + strs[#strs+1] = '...' + end + + if options then + for _, option in pairs(options) do + if option.optional == 'after' then + strs[#strs+1] = ']' + end + end + end + + local text = table.concat(strs) + local argLabel = {} + for i = 1, 2 do + local pos = text:find('@ARG', 1, true) + if pos then + if i == 1 then + argLabel[i] = pos + else + argLabel[i] = pos - 1 + end + text = text:sub(1, pos-1) .. text:sub(pos+4) + end + end + if #argLabel == 0 then + argLabel = nil + end + return text, argLabel, args +end + +local function buildValueReturns(func) + if not func then + return '\n -> any' + end + if not func:get 'hasReturn' then + return '' + end + local strs = {} + local emmys = {} + local n = 0 + func:eachEmmyReturn(function (emmy) + n = n + 1 + emmys[n] = emmy + end) + if func.returns then + for i, rtn in ipairs(func.returns) do + local emmy = emmys[i] + local option = emmy and emmy.option + if option and option.optional then + if i > 1 then + strs[#strs+1] = ' [' + else + strs[#strs+1] = '[' + end + end + if i > 1 then + strs[#strs+1] = ('\n% 3d. '):format(i) + end + if emmy and emmy.name then + strs[#strs+1] = ('%s: '):format(emmy.name) + elseif option and option.name then + strs[#strs+1] = ('%s: '):format(option.name) + end + strs[#strs+1] = rtn:getType() + if option and option.optional == 'self' then + strs[#strs+1] = ']' + end + end + for i = 1, #func.returns do + local emmy = emmys[i] + if emmy and emmy.option and emmy.option.optional == 'after' then + strs[#strs+1] = ']' + end + end + end + if #strs == 0 then + strs[1] = 'any' + end + return '\n -> ' .. table.concat(strs) +end + +---@param func emmyFunction +local function buildEnum(func) + if not func then + return nil + end + local params = func:getEmmyParams() + if not params then + return nil + end + local strs = {} + local raw = {} + for _, param in ipairs(params) do + local first = true + local name = param:getName() + raw[name] = {} + param:eachEnum(function (enum) + if first then + first = false + strs[#strs+1] = ('\n%s: %s'):format(param:getName(), param:getType()) + end + if enum.default then + strs[#strs+1] = ('\n |>%s'):format(enum[1]) + else + strs[#strs+1] = ('\n | %s'):format(enum[1]) + end + if enum.comment then + strs[#strs+1] = ' -- ' .. enum.comment + end + raw[name][#raw[name]+1] = enum[1] + end) + end + if #strs == 0 then + return nil + end + return table.concat(strs), raw +end + +local function getComment(func) + if not func then + return nil + end + local comments = {} + local params = func:getEmmyParams() + if params then + for _, param in ipairs(params) do + local option = param:getOption() + if option and option.comment then + comments[#comments+1] = ('+ `%s`*(%s)*: %s'):format(param:getName(), param:getType(), option.comment) + end + end + end + comments[#comments+1] = func:getComment() + if #comments == 0 then + return nil + end + return table.concat(comments, '\n\n') +end + +local function getOverLoads(name, func, object, select) + local overloads = func and func:getEmmyOverLoads() + if not overloads then + return nil + end + local list = {} + for _, ol in ipairs(overloads) do + local hover = emmyFunction(name, ol, object, select) + list[#list+1] = hover.label + end + return table.concat(list, '\n') +end + +return function (name, func, object, select) + local argStr, argLabel, args = buildValueArgs(func, object, select) + local returns = buildValueReturns(func) + local enum, rawEnum = buildEnum(func) + local comment = getComment(func) + local overloads = getOverLoads(name, func, object, select) + return { + label = ('function %s(%s)%s'):format(name, argStr, returns), + name = name, + argStr = argStr, + returns = returns, + description = comment, + enum = enum, + rawEnum = rawEnum, + argLabel = argLabel, + overloads = overloads, + args = args, + } +end diff --git a/script/src/core/hover/hover.lua b/script/src/core/hover/hover.lua new file mode 100644 index 00000000..2ee5cf46 --- /dev/null +++ b/script/src/core/hover/hover.lua @@ -0,0 +1,326 @@ +local findLib = require 'core.find_lib' +local getFunctionHover = require 'core.hover.function' +local getFunctionHoverAsLib = require 'core.hover.lib_function' +local getFunctionHoverAsEmmy = require 'core.hover.emmy_function' +local buildValueName = require 'core.hover.name' + +local OriginTypes = { + ['any'] = true, + ['nil'] = true, + ['integer'] = true, + ['number'] = true, + ['boolean'] = true, + ['string'] = true, + ['thread'] = true, + ['userdata'] = true, + ['table'] = true, + ['function'] = true, +} + +local function longString(str) + for i = 0, 10 do + local finish = ']' .. ('='):rep(i) .. ']' + if not str:find(finish, 1, true) then + return ('[%s[\n%s%s'):format(('='):rep(i), str, finish) + end + end + return ('%q'):format(str) +end + +local function formatString(str) + if #str > 1000 then + str = str:sub(1000) + end + if str:find('[\r\n]') then + str = str:gsub('[\000-\008\011-\012\014-\031\127]', '') + return longString(str) + else + str = str:gsub('[\000-\008\011-\012\014-\031\127]', function (char) + return ('\\%03d'):format(char:byte()) + end) + local single = str:find("'", 1, true) + local double = str:find('"', 1, true) + if single and double then + return longString(str) + elseif double then + return ("'%s'"):format(str) + else + return ('"%s"'):format(str) + end + end +end + +local function formatLiteral(v) + if math.type(v) == 'float' then + return ('%.10f'):format(v):gsub('[0]*$', ''):gsub('%.$', '.0') + elseif type(v) == 'string' then + return formatString(v) + else + return ('%q'):format(v) + end +end + +local function findClass(value) + -- 检查是否有emmy + local emmy = value:getEmmy() + if emmy then + return emmy:getType() + end + -- 检查对象元表 + local metaValue = value:getMetaTable() + if not metaValue then + return nil + end + -- 检查元表中的 __name + local metaName = metaValue:rawGet('__name') + if metaName and type(metaName:getLiteral()) == 'string' then + return metaName:getLiteral() + end + -- 检查元表的 __index + local indexValue = metaValue:rawGet('__index') + if not indexValue then + return nil + end + -- 查找index方法中的以下字段: type name class + -- 允许多重继承 + return indexValue:eachChild(function (k, v) + -- 键值类型必须均为字符串 + if type(k) ~= 'string' then + return + end + if type(v:getLiteral()) ~= 'string' then + return + end + local lKey = k:lower() + if lKey == 'type' + or lKey == 'name' + or lKey == 'class' + then + -- 必须只有过一次赋值 + local hasSet = false + local ok = v:eachInfo(function (info) + if info.type == 'set' then + if hasSet then + return false + else + hasSet = true + end + end + end) + if ok == false then + return false + end + return v:getLiteral() + end + end) +end + +local function formatKey(key) + local kType = type(key) + if kType == 'table' then + key = ('[*%s]'):format(key:getType()) + elseif math.type(key) == 'integer' then + key = ('[%03d]'):format(key) + elseif kType == 'string' then + if key:find '^%d' or key:find '[^%w_]' then + key = ('[%s]'):format(formatString(key)) + end + elseif key == '' then + key = '[*any]' + else + key = ('[%s]'):format(key) + end + return key +end + +local function unpackTable(value) + local lines = {} + value:eachChild(function (key, child) + key = formatKey(key) + + local vType = type(child:getLiteral()) + if vType == 'boolean' + or vType == 'integer' + or vType == 'number' + or vType == 'string' + then + lines[#lines+1] = ('%s: %s = %s'):format(key, child:getType(), formatLiteral(child:getLiteral())) + else + lines[#lines+1] = ('%s: %s'):format(key, child:getType()) + end + end) + local emmy = value:getEmmy() + if emmy then + if emmy.type == 'emmy.arrayType' then + lines[#lines+1] = ('[*integer]: %s'):format(emmy:getName()) + elseif emmy.type == 'emmy.tableType' then + lines[#lines+1] = ('[*%s]: %s'):format(emmy:getKeyType():getType(), emmy:getValueType():getType()) + end + end + if #lines == 0 then + return '{}' + end + + -- 整理一下表 + local cleaned = {} + local used = {} + for _, line in ipairs(lines) do + if used[line] then + goto CONTINUE + end + used[line] = true + if line == '[*any]: any' then + goto CONTINUE + end + cleaned[#cleaned+1] = ' ' .. line .. ',' + :: CONTINUE :: + end + + table.sort(cleaned) + table.insert(cleaned, 1, '{') + cleaned[#cleaned+1] = '}' + return table.concat(cleaned, '\r\n') +end + +local function getValueHover(source, name, value, lib) + local valueType = value:getType() + local class = findClass(value) + + if class then + valueType = class + lib = nil + end + + if not OriginTypes[valueType] then + valueType = '*' .. valueType + end + + local tips = {} + local literal + if lib then + literal = lib.code or (lib.value and formatLiteral(lib.value)) + tips[#tips+1] = lib.description + else + literal = value:getLiteral() and formatLiteral(value:getLiteral()) + end + + tips[#tips+1] = value:getComment() + + local tp + if source:bindLocal() then + tp = 'local' + local loc = source:bindLocal() + if loc.tags then + local mark = {} + local tagBufs = {} + for _, tag in ipairs(loc.tags) do + local tagName = tag[1] + if not mark[tagName] then + mark[tagName] = true + tagBufs[#tagBufs+1] = ('<%s>'):format(tagName) + end + end + name = name .. ' ' .. table.concat(tagBufs, ' ') + end + tips[#tips+1] = loc:getComment() + elseif source:get 'global' then + tp = 'global' + elseif source:get 'simple' then + local simple = source:get 'simple' + if simple[1]:get 'global' then + tp = 'global' + else + tp = 'field' + end + else + tp = 'field' + end + + local text + if valueType == 'table' then + text = ('%s %s: %s'):format(tp, name, unpackTable(value)) + else + if literal == nil then + if class and not OriginTypes[class] then + text = ('%s %s: %s %s'):format(tp, name, valueType, unpackTable(value)) + else + text = ('%s %s: %s'):format(tp, name, valueType) + end + else + text = ('%s %s: %s = %s'):format(tp, name, valueType, literal) + end + end + + local tip + if #tips > 0 then + tip = table.concat(tips, '\n\n-------------\n\n') + end + return { + label = text, + description = tip, + } +end + +local function hoverAsValue(source, lsp, select) + local lib, fullkey = findLib(source) + ---@type value + local value = source:findValue() + local name = fullkey or buildValueName(source) + + local hover + if value:getType() == 'function' then + local object = source:get 'object' + if lib then + hover = getFunctionHoverAsLib(name, lib, object, select) + else + local emmy = value:getEmmy() + if emmy and emmy.type == 'emmy.functionType' then + hover = getFunctionHoverAsEmmy(name, emmy, object, select) + else + local func = value:getFunction() + hover = getFunctionHover(name, func, object, select) + end + end + else + hover = getValueHover(source, name, value, lib) + end + + if not hover then + return nil + end + hover.name = name + return hover +end + +local function hoverAsTargetUri(source, lsp) + local uri = source:get 'target uri' + if not lsp or not lsp.workspace then + return nil + end + local path = lsp.workspace:relativePathByUri(uri) + if not path then + return nil + end + return { + description = ('[%s](%s)'):format(path:string(), uri), + } +end + +return function (source, lsp, select) + if not source then + return nil + end + if source:get 'target uri' then + return hoverAsTargetUri(source, lsp) + end + if source.type == 'name' and source:bindValue() then + return hoverAsValue(source, lsp, select) + end + if source.type == 'simple' then + source = source[#source] + if source.type == 'name' and source:bindValue() then + return hoverAsValue(source, lsp, select) + end + end + return nil +end diff --git a/script/src/core/hover/init.lua b/script/src/core/hover/init.lua new file mode 100644 index 00000000..be5b5632 --- /dev/null +++ b/script/src/core/hover/init.lua @@ -0,0 +1 @@ +return require 'core.hover.hover' diff --git a/script/src/core/hover/lib_function.lua b/script/src/core/hover/lib_function.lua new file mode 100644 index 00000000..06087312 --- /dev/null +++ b/script/src/core/hover/lib_function.lua @@ -0,0 +1,222 @@ +local lang = require 'language' +local config = require 'config' +local function buildLibArgs(lib, object, select) + if not lib.args then + return '' + end + local start + if object then + start = 2 + else + start = 1 + end + local strs = {} + local args = {} + for i = start, #lib.args do + local arg = lib.args[i] + if arg.optional then + if i > start then + strs[#strs+1] = ' [' + else + strs[#strs+1] = '[' + end + end + if i > start then + strs[#strs+1] = ', ' + end + + local argStr = {} + if i == select then + argStr[#argStr+1] = '@ARG' + end + local name = '' + if arg.name then + name = ('%s: '):format(arg.name) + end + if type(arg.type) == 'table' then + name = name .. table.concat(arg.type, '/') + else + name = name .. (arg.type or 'any') + end + argStr[#argStr+1] = name + args[#args+1] = name + if arg.default then + argStr[#argStr+1] = ('(%q)'):format(arg.default) + end + if i == select then + argStr[#argStr+1] = '@ARG' + end + + for _, str in ipairs(argStr) do + strs[#strs+1] = str + end + if arg.optional == 'self' then + strs[#strs+1] = ']' + end + end + for _, arg in ipairs(lib.args) do + if arg.optional == 'after' then + strs[#strs+1] = ']' + end + end + local text = table.concat(strs) + local argLabel = {} + for i = 1, 2 do + local pos = text:find('@ARG', 1, true) + if pos then + if i == 1 then + argLabel[i] = pos + else + argLabel[i] = pos - 1 + end + text = text:sub(1, pos-1) .. text:sub(pos+4) + end + end + if #argLabel == 0 then + argLabel = nil + end + return text, argLabel, args +end + +local function buildLibReturns(lib) + if not lib.returns then + return '' + end + local strs = {} + for i, rtn in ipairs(lib.returns) do + if rtn.optional then + if i > 1 then + strs[#strs+1] = ' [' + else + strs[#strs+1] = '[' + end + end + if i > 1 then + strs[#strs+1] = ('\n% 3d. '):format(i) + end + if rtn.name then + strs[#strs+1] = ('%s: '):format(rtn.name) + end + if type(rtn.type) == 'table' then + strs[#strs+1] = table.concat(rtn.type, '/') + else + strs[#strs+1] = rtn.type or 'any' + end + if rtn.default then + strs[#strs+1] = ('(%q)'):format(rtn.default) + end + if rtn.optional == 'self' then + strs[#strs+1] = ']' + end + end + for _, rtn in ipairs(lib.returns) do + if rtn.optional == 'after' then + strs[#strs+1] = ']' + end + end + return '\n -> ' .. table.concat(strs) +end + +local function buildEnum(lib) + if not lib.enums then + return '' + end + local container = table.container() + for _, enum in ipairs(lib.enums) do + if not enum.name or (not enum.enum and not enum.code) then + goto NEXT_ENUM + end + if not container[enum.name] then + container[enum.name] = {} + if lib.args then + for _, arg in ipairs(lib.args) do + if arg.name == enum.name then + container[enum.name].type = arg.type + break + end + end + end + if lib.returns then + for _, rtn in ipairs(lib.returns) do + if rtn.name == enum.name then + container[enum.name].type = rtn.type + break + end + end + end + end + table.insert(container[enum.name], enum) + ::NEXT_ENUM:: + end + local strs = {} + local raw = {} + for name, enums in pairs(container) do + local tp + if type(enums.type) == 'table' then + tp = table.concat(enums.type, '/') + else + tp = enums.type + end + strs[#strs+1] = ('\n%s: %s'):format(name, tp or 'any') + raw[name] = {} + for _, enum in ipairs(enums) do + if enum.default then + strs[#strs+1] = '\n -> ' + else + strs[#strs+1] = '\n | ' + end + if enum.code then + strs[#strs+1] = tostring(enum.code) + else + strs[#strs+1] = tostring(enum.enum) + end + raw[name][#raw[name]+1] = strs[#strs] + if enum.description then + strs[#strs+1] = ' -- ' .. enum.description + end + end + end + return table.concat(strs), raw +end + +local function buildDoc(lib) + local doc = lib.doc + if not doc then + return + end + if lib.web then + return lang.script(lib.web, doc) + end + local version = config.config.runtime.version + if version == 'Lua 5.1' then + return lang.script('HOVER_DOCUMENT_LUA51', doc) + elseif version == 'Lua 5.2' then + return lang.script('HOVER_DOCUMENT_LUA52', doc) + elseif version == 'Lua 5.3' then + return lang.script('HOVER_DOCUMENT_LUA53', doc) + elseif version == 'Lua 5.4' then + return lang.script('HOVER_DOCUMENT_LUA54', doc) + elseif version == 'LuaJIT' then + return lang.script('HOVER_DOCUMENT_LUAJIT', doc) + end +end + +return function (name, lib, object, select) + local argStr, argLabel, args = buildLibArgs(lib, object, select) + local returns = buildLibReturns(lib) + local enum, rawEnum = buildEnum(lib) + local tip = lib.description + local doc = buildDoc(lib) + return { + label = ('function %s(%s)%s'):format(name, argStr, returns), + name = name, + argStr = argStr, + returns = returns, + description = tip, + enum = enum, + rawEnum = rawEnum, + argLabel = argLabel, + doc = doc, + args = args, + } +end diff --git a/script/src/core/hover/name.lua b/script/src/core/hover/name.lua new file mode 100644 index 00000000..763083b9 --- /dev/null +++ b/script/src/core/hover/name.lua @@ -0,0 +1,38 @@ +local getName = require 'core.name' + +return function (source) + if not source then + return '' + end + local value = source:bindValue() + if not value then + return '' + end + local func = value:getFunction() + local declarat + if func and func:getSource() then + declarat = func:getSource().name + else + declarat = source + end + if not declarat then + -- 如果声明者没有给名字,则找一个合适的名字 + local names = {} + value:eachInfo(function (info, src) + if info.type == 'local' or info.type == 'set' or info.type == 'return' then + if src.type == 'name' and src.uri == value.uri then + names[#names+1] = src + end + end + end) + if #names == 0 then + return '' + end + table.sort(names, function (a, b) + return a.id < b.id + end) + return names[1][1] or '' + end + + return getName(declarat, source) +end diff --git a/script/src/core/implementation.lua b/script/src/core/implementation.lua new file mode 100644 index 00000000..f51a97ca --- /dev/null +++ b/script/src/core/implementation.lua @@ -0,0 +1,204 @@ +local function parseValueSimily(vm, source, lsp) + local key = source[1] + if not key then + return nil + end + local positions = {} + vm:eachSource(function (other) + if other == source then + return + end + if other[1] == key + and not other:bindLocal() + and other:bindValue() + and other:action() == 'set' + and source:bindValue() ~= other:bindValue() + then + positions[#positions+1] = { + other.start, + other.finish, + } + end + end) + if #positions == 0 then + return nil + end + return positions +end + +local function parseValueCrossFile(vm, source, lsp) + local value = source:bindValue() + local positions = {} + value:eachInfo(function (info, src) + if info.type == 'local' and src.uri == value.uri then + positions[#positions+1] = { + src.start, + src.finish, + value.uri, + } + return true + end + end) + if #positions > 0 then + return positions + end + + value:eachInfo(function (info, src) + if info.type == 'set' and src.uri == value.uri then + positions[#positions+1] = { + src.start, + src.finish, + value.uri, + } + end + end) + if #positions > 0 then + return positions + end + + value:eachInfo(function (info, src) + if info.type == 'return' and src.uri == value.uri then + positions[#positions+1] = { + src.start, + src.finish, + value.uri, + } + end + end) + if #positions > 0 then + return positions + end + + local destVM = lsp:getVM(value.uri) + if not destVM then + positions[#positions+1] = { + 0, 0, value.uri, + } + return positions + end + + local result = parseValueSimily(destVM, source, lsp) + if result then + for _, position in ipairs(result) do + positions[#positions+1] = position + position[3] = value.uri + end + end + if #positions > 0 then + return positions + end + + return positions +end + +local function parseValue(vm, source, lsp) + local positions = {} + local mark = {} + + local function callback(src) + if source == src then + return + end + if mark[src] then + return + end + mark[src] = true + if src.start == 0 then + return + end + local uri = src.uri + if uri == '' then + uri = nil + end + positions[#positions+1] = { + src.start, + src.finish, + uri, + } + end + + if source:bindValue() then + source:bindValue():eachInfo(function (info, src) + if info.type == 'set' or info.type == 'local' or info.type == 'return' then + callback(src) + return true + end + end) + end + local parent = source:get 'parent' + if parent then + parent:eachInfo(function (info, src) + if info[1] == source[1] then + if info.type == 'set child' then + callback(src) + end + end + end) + end + if #positions == 0 then + return nil + end + return positions +end + +local function parseLabel(vm, label, lsp) + local positions = {} + label:eachInfo(function (info, src) + if info.type == 'set' then + positions[#positions+1] = { + src.start, + src.finish, + } + end + end) + if #positions == 0 then + return nil + end + return positions +end + +local function jumpUri(vm, source, lsp) + local uri = source:get 'target uri' + local positions = {} + positions[#positions+1] = { + 0, 0, uri, + } + return positions +end + +local function parseClass(vm, source) + local className = source:get 'emmy class' + local positions = {} + vm.emmyMgr:eachClass(className, function (class) + local src = class:getSource() + positions[#positions+1] = { + src.start, + src.finish, + src.uri, + } + end) + return positions +end + +return function (vm, source, lsp) + if not source then + return nil + end + if source:bindValue() then + return parseValue(vm, source, lsp) + or parseValueSimily(vm, source, lsp) + end + if source:bindLabel() then + return parseLabel(vm, source:bindLabel(), lsp) + end + if source:get 'target uri' then + return jumpUri(vm, source, lsp) + end + if source:get 'in index' then + return parseValue(vm, source, lsp) + or parseValueSimily(vm, source, lsp) + end + if source:get 'emmy class' then + return parseClass(vm, source) + end +end diff --git a/script/src/core/init.lua b/script/src/core/init.lua new file mode 100644 index 00000000..213dbaca --- /dev/null +++ b/script/src/core/init.lua @@ -0,0 +1,19 @@ +local api = { + definition = require 'core.definition', + implementation = require 'core.implementation', + references = require 'core.references', + rename = require 'core.rename', + hover = require 'core.hover', + diagnostics = require 'core.diagnostics', + findSource = require 'core.find_source', + findLib = require 'core.find_lib', + completion = require 'core.completion', + signature = require 'core.signature', + documentSymbol = require 'core.document_symbol', + global = require 'core.global', + highlight = require 'core.highlight', + codeAction = require 'core.code_action', + foldingRange = require 'core.folding_range', +} + +return api diff --git a/script/src/core/library.lua b/script/src/core/library.lua new file mode 100644 index 00000000..d5edad66 --- /dev/null +++ b/script/src/core/library.lua @@ -0,0 +1,296 @@ +local lni = require 'lni' +local fs = require 'bee.filesystem' +local config = require 'config' + +local Library = {} + +local function mergeEnum(lib, locale) + if not lib or not locale then + return + end + local pack = {} + for _, enum in ipairs(lib) do + if enum.enum then + pack[enum.enum] = enum + end + if enum.code then + pack[enum.code] = enum + end + end + for _, enum in ipairs(locale) do + if pack[enum.enum] then + if enum.description then + pack[enum.enum].description = enum.description + end + end + if pack[enum.code] then + if enum.description then + pack[enum.code].description = enum.description + end + end + end +end + +local function mergeField(lib, locale) + if not lib or not locale then + return + end + local pack = {} + for _, field in ipairs(lib) do + if field.field then + pack[field.field] = field + end + end + for _, field in ipairs(locale) do + if pack[field.field] then + if field.description then + pack[field.field].description = field.description + end + end + end +end + +local function mergeLocale(libs, locale) + if not libs or not locale then + return + end + for name in pairs(locale) do + if libs[name] then + if locale[name].description then + libs[name].description = locale[name].description + end + mergeEnum(libs[name].enums, locale[name].enums) + mergeField(libs[name].fields, locale[name].fields) + end + end +end + +local function isMatchVersion(version) + if not version then + return true + end + local runtimeVersion = config.config.runtime.version + if type(version) == 'table' then + for i = 1, #version do + if version[i] == runtimeVersion then + return true + end + end + else + if version == runtimeVersion then + return true + end + end + return false +end + +local function insertGlobal(tbl, key, value) + if not isMatchVersion(value.version) then + return false + end + if not value.doc then + value.doc = key + end + tbl[key] = value + return true +end + +local function insertOther(tbl, key, value) + if not value.version then + return + end + if not tbl[key] then + tbl[key] = {} + end + if type(value.version) == 'string' then + tbl[key][#tbl[key]+1] = value.version + elseif type(value.version) == 'table' then + for _, version in ipairs(value.version) do + if type(version) == 'string' then + tbl[key][#tbl[key]+1] = version + end + end + end + table.sort(tbl[key]) +end + +local function insertCustom(tbl, key, value, libName) + if not tbl[key] then + tbl[key] = {} + end + tbl[key][#tbl[key]+1] = libName + table.sort(tbl[key]) +end + +local function isEnableGlobal(libName) + if config.config.runtime.library[libName] then + return true + end + if libName:sub(1, 1) == '@' then + return true + end + return false +end + +local function mergeSource(alllibs, name, lib, libName) + if not lib.source then + if isEnableGlobal(libName) then + local suc = insertGlobal(alllibs.global, name, lib) + if not suc then + insertOther(alllibs.other, name, lib) + end + else + insertCustom(alllibs.custom, name, lib, libName) + end + return + end + for _, source in ipairs(lib.source) do + local sourceName = source.name or name + if source.type == 'global' then + if isEnableGlobal(libName) then + local suc = insertGlobal(alllibs.global, sourceName, lib) + if not suc then + insertOther(alllibs.other, sourceName, lib) + end + else + insertCustom(alllibs.custom, sourceName, lib, libName) + end + elseif source.type == 'library' then + insertGlobal(alllibs.library, sourceName, lib) + elseif source.type == 'object' then + insertGlobal(alllibs.object, sourceName, lib) + end + end +end + +local function copy(t) + local new = {} + for k, v in pairs(t) do + new[k] = v + end + return new +end + +local function insertChild(tbl, name, key, value) + if not name or not key then + return + end + if not isMatchVersion(value.version) then + return + end + if not value.doc then + value.doc = ('%s.%s'):format(name, key) + end + if not tbl[name] then + tbl[name] = { + type = name, + name = name, + child = {}, + } + end + tbl[name].child[key] = copy(value) +end + +local function mergeParent(alllibs, name, lib, libName) + for _, parent in ipairs(lib.parent) do + if parent.type == 'global' then + if isEnableGlobal(libName) then + insertChild(alllibs.global, parent.name, name, lib) + end + elseif parent.type == 'library' then + insertChild(alllibs.library, parent.name, name, lib) + elseif parent.type == 'object' then + insertChild(alllibs.object, parent.name, name, lib) + end + end +end + +local function mergeLibs(alllibs, libs, libName) + if not libs then + return + end + for _, lib in pairs(libs) do + if lib.parent then + mergeParent(alllibs, lib.name, lib, libName) + else + mergeSource(alllibs, lib.name, lib, libName) + end + end +end + +local function loadLocale(language, relative) + local localePath = ROOT / 'locale' / language / relative + local localeBuf = io.load(localePath) + if localeBuf then + local locale = table.container() + xpcall(lni, log.error, localeBuf, localePath:string(), {locale}) + return locale + end + return nil +end + +local function fix(libs) + for name, lib in pairs(libs) do + lib.name = lib.name or name + lib.child = {} + end +end + +local function scan(path) + local result = {path} + local i = 0 + return function () + i = i + 1 + local current = result[i] + if not current then + return nil + end + if fs.is_directory(current) then + for path in current:list_directory() do + result[#result+1] = path + end + end + return current + end +end + +local function init() + local lang = require 'language' + local id = lang.id + Library.global = table.container() + Library.library = table.container() + Library.object = table.container() + Library.other = table.container() + Library.custom = table.container() + + for libPath in (ROOT / 'libs'):list_directory() do + local enableGlobal + local libName = libPath:filename():string() + for path in scan(libPath) do + local libs + local buf = io.load(path) + if buf then + libs = table.container() + xpcall(lni, log.error, buf, path:string(), {libs}) + fix(libs) + end + local relative = fs.relative(path, ROOT) + + local locale = loadLocale('en-US', relative) + mergeLocale(libs, locale) + if id ~= 'en-US' then + locale = loadLocale(id, relative) + mergeLocale(libs, locale) + end + mergeLibs(Library, libs, libName) + end + end +end + +function Library.reload() + init() +end + +init() + +return Library diff --git a/script/src/core/matchKey.lua b/script/src/core/matchKey.lua new file mode 100644 index 00000000..b46250cb --- /dev/null +++ b/script/src/core/matchKey.lua @@ -0,0 +1,30 @@ +return function (me, other) + if me == other then + return true + end + if me == '' then + return true + end + if #me > #other then + return false + end + local lMe = me:lower() + local lOther = other:lower() + if lMe == lOther:sub(1, #lMe) then + return true + end + local chars = {} + for i = 1, #lOther do + local c = lOther:sub(i, i) + chars[c] = (chars[c] or 0) + 1 + end + for i = 1, #lMe do + local c = lMe:sub(i, i) + if chars[c] and chars[c] > 0 then + chars[c] = chars[c] - 1 + else + return false + end + end + return true +end diff --git a/script/src/core/name.lua b/script/src/core/name.lua new file mode 100644 index 00000000..54947974 --- /dev/null +++ b/script/src/core/name.lua @@ -0,0 +1,70 @@ +return function (source, caller) + if not source then + return '' + end + local key + if source:get 'simple' then + local simple = source:get 'simple' + local chars = {} + for i, obj in ipairs(simple) do + if obj.type == 'name' then + chars[i] = obj[1] + elseif obj.type == 'index' then + chars[i] = '[?]' + elseif obj.type == 'call' then + chars[i] = '(?)' + elseif obj.type == ':' then + chars[i] = ':' + elseif obj.type == '.' then + chars[i] = '.' + else + chars[i] = '*' .. obj.type + end + if obj == source then + break + end + end + key = table.concat(chars) + elseif source.type == 'name' then + key = source[1] + elseif source.type == 'string' then + key = ('%q'):format(source[1]) + elseif source.type == 'number' or source.type == 'boolean' then + key = tostring(source[1]) + elseif source.type == 'simple' then + local chars = {} + for i, obj in ipairs(source) do + if obj.type == 'name' then + chars[i] = obj[1] + elseif obj.type == 'index' then + chars[i] = '[?]' + elseif obj.type == 'call' then + chars[i] = '(?)' + elseif obj.type == ':' then + chars[i] = ':' + elseif obj.type == '.' then + chars[i] = '.' + else + chars[i] = '*' .. obj.type + end + end + -- 这里有个特殊处理 + -- function mt:func() 以 mt.func 的形式调用时 + -- hover 显示为 mt.func(self) + if caller then + if chars[#chars-1] == ':' then + if not caller:get 'object' then + chars[#chars-1] = '.' + end + elseif chars[#chars-1] == '.' then + if caller:get 'object' then + chars[#chars-1] = ':' + end + end + end + key = table.concat(chars) + else + key = '' + end + return key +end diff --git a/script/src/core/references.lua b/script/src/core/references.lua new file mode 100644 index 00000000..33b38fec --- /dev/null +++ b/script/src/core/references.lua @@ -0,0 +1,91 @@ +local findSource = require 'core.find_source' + +local function parseResult(vm, source, declarat, callback) + local isGlobal + if source:bindLabel() then + source:bindLabel():eachInfo(function (info, src) + if (declarat and info.type == 'set') or info.type == 'get' then + callback(src) + end + end) + end + if source:bindLocal() then + local loc = source:bindLocal() + callback(loc:getSource()) + loc:eachInfo(function (info, src) + if (declarat and info.type == 'set') or info.type == 'get' then + callback(src) + end + end) + loc:getValue():eachInfo(function (info, src) + if (declarat and (info.type == 'set' or info.type == 'local' or info.type == 'return')) or info.type == 'get' then + callback(src) + end + end) + end + if source:bindFunction() then + if declarat then + callback(source:bindFunction():getSource()) + end + source:bindFunction():eachInfo(function (info, src) + if (declarat and (info.type == 'set' or info.type == 'local')) or info.type == 'get' then + callback(src) + end + end) + end + if source:bindValue() then + source:bindValue():eachInfo(function (info, src) + if (declarat and (info.type == 'set' or info.type == 'local')) or info.type == 'get' then + callback(src) + end + end) + if source:bindValue():isGlobal() then + isGlobal = true + end + end + local parent = source:get 'parent' + if parent then + parent:eachInfo(function (info, src) + if info[1] == source[1] then + if (declarat and info.type == 'set child') or info.type == 'get child' then + callback(src) + end + end + end) + end + --local emmy = source:getEmmy() + --if emmy then + -- if emmy.type == 'emmy.class' or emmy.type == 'emmy.type' --then +-- + -- end + --end + return isGlobal +end + +return function (vm, pos, declarat) + local source = findSource(vm, pos) + if not source then + return nil + end + local positions = {} + local mark = {} + local isGlobal = parseResult(vm, source, declarat, function (src) + if mark[src] then + return + end + mark[src] = true + if src.start == 0 then + return + end + local uri = src.uri + if uri == '' then + uri = nil + end + positions[#positions+1] = { + src.start, + src.finish, + uri, + } + end) + return positions, isGlobal +end diff --git a/script/src/core/rename.lua b/script/src/core/rename.lua new file mode 100644 index 00000000..3a2e8532 --- /dev/null +++ b/script/src/core/rename.lua @@ -0,0 +1,72 @@ +local findSource = require 'core.find_source' +local parser = require 'parser' + +local function parseResult(source, newName) + local positions = {} + if source:bindLabel() then + if not parser:grammar(newName, 'Name') then + return nil + end + source:bindLabel():eachInfo(function (info, src) + positions[#positions+1] = { src.start, src.finish, src:getUri() } + end) + return positions + end + if source:bindLocal() then + local loc = source:bindLocal() + if loc:get 'hide' then + return nil + end + if source:get 'in index' then + if not parser:grammar(newName, 'Exp') then + return positions + end + else + if not parser:grammar(newName, 'Name') then + return positions + end + end + local mark = {} + loc:eachInfo(function (info, src) + if not mark[src] then + mark[src] = info + positions[#positions+1] = { src.start, src.finish, src:getUri() } + end + end) + return positions + end + if source:bindValue() and source:get 'parent' then + if source:get 'in index' then + if not parser:grammar(newName, 'Exp') then + return positions + end + else + if not parser:grammar(newName, 'Name') then + return positions + end + end + local parent = source:get 'parent' + local mark = {} + parent:eachInfo(function (info, src) + if not mark[src] then + mark[src] = info + if info.type == 'get child' or info.type == 'set child' then + if info[1] == source[1] then + positions[#positions+1] = {src.start, src.finish, src:getUri()} + end + end + end + end) + return positions + end + return nil +end + +return function (vm, pos, newName) + local source = findSource(vm, pos) + if not source then + return nil + end + local positions = parseResult(source, newName) + return positions +end diff --git a/script/src/core/signature.lua b/script/src/core/signature.lua new file mode 100644 index 00000000..bbe35ffa --- /dev/null +++ b/script/src/core/signature.lua @@ -0,0 +1,133 @@ +local getFunctionHover = require 'core.hover.function' +local getFunctionHoverAsLib = require 'core.hover.lib_function' +local getFunctionHoverAsEmmy = require 'core.hover.emmy_function' +local findLib = require 'core.find_lib' +local buildValueName = require 'core.hover.name' +local findSource = require 'core.find_source' + +local function findCall(vm, pos) + local results = {} + vm:eachSource(function (src) + if src.type == 'call' + and src.start <= pos + and src.finish >= pos + then + results[#results+1] = src + end + end) + if #results == 0 then + return nil + end + -- 可能处于 'func1(func2(' 的嵌套中,将最近的call放到最前面 + table.sort(results, function (a, b) + return a.start > b.start + end) + return results +end + +local function getSelect(args, pos) + if not args then + return 1 + end + for i, arg in ipairs(args) do + if arg.start <= pos and arg.finish >= pos - 1 then + return i + end + end + return #args + 1 +end + +local function getFunctionSource(call) + local simple = call:get 'simple' + for i, source in ipairs(simple) do + if source == call then + return simple[i-1] + end + end + return nil +end + +local function getHover(call, pos) + local args = call:bindCall() + if not args then + return nil + end + + local value = call:findCallFunction() + if not value then + return nil + end + + local select = getSelect(args, pos) + local source = getFunctionSource(call) + local object = source:get 'object' + local lib, fullkey = findLib(source) + local name = fullkey or buildValueName(source) + local hover + if lib then + hover = getFunctionHoverAsLib(name, lib, object, select) + else + local emmy = value:getEmmy() + if emmy and emmy.type == 'emmy.functionType' then + hover = getFunctionHoverAsEmmy(name, emmy, object, select) + else + ---@type emmyFunction + local func = value:getFunction() + hover = getFunctionHover(name, func, object, select) + local overLoads = func and func:getEmmyOverLoads() + if overLoads then + for _, ol in ipairs(overLoads) do + hover = getFunctionHoverAsEmmy(name, ol, object, select) + end + end + end + end + return hover +end + +local function isInFunctionOrTable(call, pos) + local args = call:bindCall() + if not args then + return false + end + local select = getSelect(args, pos) + local arg = args[select] + if not arg then + return false + end + if arg.type == 'function' or arg.type == 'table' then + return true + end + return false +end + +return function (vm, pos) + local source = findSource(vm, pos) or findSource(vm, pos-1) + if not source or source.type == 'string' then + return + end + local calls = findCall(vm, pos) + if not calls or #calls == 0 then + return nil + end + + local nearCall = calls[1] + if isInFunctionOrTable(nearCall, pos) then + return nil + end + + local hover = getHover(nearCall, pos) + if not hover then + return nil + end + + -- skip `name(` + local head = #hover.name + 1 + hover.label = ('%s(%s)'):format(hover.name, hover.argStr) + if hover.argLabel then + hover.argLabel[1] = hover.argLabel[1] + head + hover.argLabel[2] = hover.argLabel[2] + head + end + + return { hover } +end diff --git a/script/src/core/snippet.lua b/script/src/core/snippet.lua new file mode 100644 index 00000000..7532ce9b --- /dev/null +++ b/script/src/core/snippet.lua @@ -0,0 +1,64 @@ +local snippet = {} + +local function add(cate, key, label) + return function (text) + if not snippet[cate] then + snippet[cate] = {} + end + if not snippet[cate][key] then + snippet[cate][key] = {} + end + snippet[cate][key][#snippet[cate][key]+1] = { + label = label, + text = text, + } + end +end + +add('key', 'do', 'do .. end') [[ +do + $0 +end]] + +add('key', 'elseif', 'elseif .. then') +[[elseif ${1:true} then]] + +add('key', 'for', 'for .. in') [[ +for ${1:key, value} in ${2:pairs(t)} do + $0 +end]] + +add('key', 'for', 'for i = ..') [[ +for ${1:i} = ${2:1}, ${3:10, 2} do + $0 +end]] + +add('key', 'function', 'function ()') [[ +function $1(${2:arg1, arg2, arg3}) + $0 +end]] + +add('key', 'local', 'local function') [[ +local function ${1:name}(${2:arg1, arg2, arg3}) + $0 +end]] + +add('key', 'if', 'if .. then') [[ +if ${1:true} then + $0 +end]] + +add('key', 'repeat', 'repeat .. until') [[ +repeat + $0 +until ${1:true}]] + +add('key', 'while', 'while .. do') [[ +while ${1:true} do + $0 +end]] + +add('key', 'return', 'do return end') +[[do return ${1:true} end]] + +return snippet diff --git a/script/src/emmy/alias.lua b/script/src/emmy/alias.lua new file mode 100644 index 00000000..be47cb4f --- /dev/null +++ b/script/src/emmy/alias.lua @@ -0,0 +1,42 @@ +local listMgr = require 'vm.list' + +---@class EmmyAlias +local mt = {} +mt.__index = mt +mt.type = 'emmy.alias' + +function mt:getName() + return self.name +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:bindType(type) + if type then + self._bindType = type + else + return self._bindType + end +end + +function mt:addEnum(enum) + self._enum[#self._enum+1] = enum +end + +function mt:eachEnum(callback) + for _, enum in ipairs(self._enum) do + callback(enum) + end +end + +return function (manager, source) + local self = setmetatable({ + name = source[1][1], + source = source.id, + _manager = manager, + _enum = {}, + }, mt) + return self +end diff --git a/script/src/emmy/arrayType.lua b/script/src/emmy/arrayType.lua new file mode 100644 index 00000000..c5d73500 --- /dev/null +++ b/script/src/emmy/arrayType.lua @@ -0,0 +1,37 @@ +local listMgr = require 'vm.list' + +---@class EmmyArrayType +local mt = {} +mt.__index = mt +mt.type = 'emmy.arrayType' + +function mt:getType() + return 'table' +end + +function mt:getName() + return self.name +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:setValue(value) + self.value = value + self._child:setValue(value) +end + +function mt:getValue() + return self.value +end + +return function (manager, source, child) + local self = setmetatable({ + name = child:getName(), + source = source.id, + _child = child, + _manager = manager, + }, mt) + return self +end diff --git a/script/src/emmy/class.lua b/script/src/emmy/class.lua new file mode 100644 index 00000000..6728e2c4 --- /dev/null +++ b/script/src/emmy/class.lua @@ -0,0 +1,61 @@ +local listMgr = require 'vm.list' + +---@class EmmyClass +local mt = {} +mt.__index = mt +mt.type = 'emmy.class' + +function mt:getType() + return self.name +end + +function mt:getName() + return self.name +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:setValue(value) + self.value = value +end + +function mt:getValue() + return self.value +end + +function mt:eachChild(callback) + self._manager:eachClass(self.name, function (obj) + if obj.type == 'emmy.typeUnit' then + callback(obj) + end + end) +end + +function mt:addField(field) + if not self._fields then + self._fields = {} + end + self._fields[#self._fields+1] = field +end + +function mt:eachField(callback) + if not self._fields then + return + end + ---@param field EmmyField + for _, field in ipairs(self._fields) do + callback(field) + end +end + +return function (manager, name, extends, source) + local self = setmetatable({ + name = name, + source = source.id, + extends = extends, + _manager = manager, + }, mt) + return self +end diff --git a/script/src/emmy/field.lua b/script/src/emmy/field.lua new file mode 100644 index 00000000..f9e9cbf6 --- /dev/null +++ b/script/src/emmy/field.lua @@ -0,0 +1,45 @@ +local listMgr = require 'vm.list' + +---@class EmmyField +local mt = {} +mt.__index = mt +mt.type = 'emmy.field' + +function mt:getName() + return self.name +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:bindType(type) + if type then + self._bindType = type + else + return self._bindType + end +end + +function mt:bindValue(value) + if value then + self._bindValue = value + else + if self._bindValue then + if not self._bindValue:getSource() then + self._bindValue = nil + end + end + return self._bindValue + end +end + +return function (manager, source) + local self = setmetatable({ + name = source[2][1], + source = source.id, + visible = source[1], + _manager = manager, + }, mt) + return self +end diff --git a/script/src/emmy/funcType.lua b/script/src/emmy/funcType.lua new file mode 100644 index 00000000..2c073fe2 --- /dev/null +++ b/script/src/emmy/funcType.lua @@ -0,0 +1,64 @@ +local listMgr = require 'vm.list' + +---@class EmmyFunctionType +local mt = {} +mt.__index = mt +mt.type = 'emmy.functionType' + +function mt:getType() + return 'function' +end + +function mt:getName() + return 'function' +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:setValue(value) + self.value = value +end + +function mt:getValue() + return self.value +end + +function mt:addParam(name, type) + self._params[#self._params+1] = { name, type } +end + +function mt:addReturn(type) + self._returns[#self._returns+1] = type +end + +function mt:eachParam(callback) + for _, data in ipairs(self._params) do + callback(data[1], data[2]) + end +end + +function mt:eachReturn(callback) + for _, rtn in ipairs(self._returns) do + callback(rtn) + end +end + +function mt:bindFunction(func) + if func then + self._bindFunction = func + else + return self._bindFunction + end +end + +return function (manager, source) + local self = setmetatable({ + source = source.id, + _params = {}, + _returns = {}, + _manager = manager, + }, mt) + return self +end diff --git a/script/src/emmy/generic.lua b/script/src/emmy/generic.lua new file mode 100644 index 00000000..82fd0c4b --- /dev/null +++ b/script/src/emmy/generic.lua @@ -0,0 +1,27 @@ +local listMgr = require 'vm.list' + +---@class EmmyGeneric +local mt = {} +mt.__index = mt +mt.type = 'emmy.generic' + +function mt:getName() + return self.name:getName() +end + +function mt:setValue(value) + self._value = value +end + +function mt:getValue() + return self._value +end + +return function (manager, defs) + for _, def in ipairs(defs) do + setmetatable(def, mt) + def._manager = manager + def._binds = {} + end + return defs +end diff --git a/script/src/emmy/init.lua b/script/src/emmy/init.lua new file mode 100644 index 00000000..769c9e05 --- /dev/null +++ b/script/src/emmy/init.lua @@ -0,0 +1 @@ +return require 'vm.emmy.emmy' diff --git a/script/src/emmy/manager.lua b/script/src/emmy/manager.lua new file mode 100644 index 00000000..c80e05df --- /dev/null +++ b/script/src/emmy/manager.lua @@ -0,0 +1,221 @@ +local listMgr = require 'vm.list' +local sourceMgr = require 'vm.source' +local newClass = require 'emmy.class' +local newType = require 'emmy.type' +local newTypeUnit = require 'emmy.typeUnit' +local newAlias = require 'emmy.alias' +local newParam = require 'emmy.param' +local newReturn = require 'emmy.return' +local newField = require 'emmy.field' +local newGeneric = require 'emmy.generic' +local newArrayType = require 'emmy.arrayType' +local newTableType = require 'emmy.tableType' +local newFuncType = require 'emmy.funcType' + +local mt = {} +mt.__index = mt +mt.__name = 'emmyMgr' + +function mt:flushClass(name) + local list = self._class[name] + if not list then + return + end + local version = listMgr.getVersion() + if version == list.version then + return + end + for srcId in pairs(list) do + if not listMgr.get(srcId) then + list[srcId] = nil + end + end + if not next(list) then + self._class[name] = nil + return + end + list.version = version +end + +function mt:eachClassByName(name, callback) + self:flushClass(name) + local list = self._class[name] + if not list then + return + end + for k, class in pairs(list) do + if k ~= 'version' then + local res = callback(class) + if res ~= nil then + return res + end + end + end +end + +function mt:eachClass(...) + local n = select('#', ...) + if n == 1 then + local callback = ... + for name in pairs(self._class) do + local res = self:eachClassByName(name, callback) + if res ~= nil then + return res + end + end + else + local name, callback = ... + return self:eachClassByName(name, callback) + end +end + +function mt:getClass(name) + self:flushClass(name) + local list = self._class[name] + local version = listMgr.getVersion() + if not list then + list = { + version = version, + } + self._class[name] = list + end + return list +end + +function mt:newClass(name, extends, source) + local list = self:getClass(name) + list[source.id] = newClass(self, name, extends, source) + return list[source.id] +end + +function mt:addClass(source) + local className = source[1][1] + local extends = source[2] and source[2][1] + local class = self:newClass(className, extends, source) + return class +end + +function mt:addType(source) + local typeObj = newType(self, source) + for i, obj in ipairs(source) do + local typeUnit = newTypeUnit(self, obj) + local className = obj[1] + if className then + local list = self:getClass(className) + list[source.id] = typeUnit + end + typeUnit:setParent(typeObj) + typeObj._childs[i] = typeUnit + obj:set('emmy.typeUnit', typeUnit) + end + return typeObj +end + +function mt:addArrayType(source) + local typeObj = self:addType(source) + local arrayTypeObj = newArrayType(self, source, typeObj) + return arrayTypeObj +end + +function mt:addTableType(source, keyType, valueType) + local typeObj = newTableType(self, source, keyType, valueType) + return typeObj +end + +function mt:addFunctionType(source) + local typeObj = newFuncType(self, source) + return typeObj +end + +function mt:addAlias(source, typeObj) + local aliasName = source[1][1] + local aliasObj = newAlias(self, source) + aliasObj:bindType(typeObj) + local list = self:getClass(aliasName) + list[source.id] = aliasObj + for i = 3, #source do + aliasObj:addEnum(source[i]) + end + return aliasObj +end + +function mt:addParam(source, bind) + local paramObj = newParam(self, source) + if bind.type == 'emmy.generic' then + paramObj:bindGeneric(bind) + else + paramObj:bindType(bind) + self:eachClass(bind:getType(), function (class) + if class.type == 'emmy.alias' then + class:eachEnum(function (enum) + paramObj:addEnum(enum) + end) + end + end) + end + for i = 3, #source do + paramObj:addEnum(source[i]) + end + paramObj:setOption(source.option) + return paramObj +end + +function mt:addReturn(source, bind, name) + local returnObj = newReturn(self, source, name) + if bind then + if bind.type == 'emmy.generic' then + returnObj:bindGeneric(bind) + else + returnObj:bindType(bind) + end + end + return returnObj +end + +function mt:addField(source, typeObj, value) + local fieldObj = newField(self, source) + fieldObj:bindType(typeObj) + fieldObj:bindValue(value) + return fieldObj +end + +function mt:addGeneric(defs) + local genericObj = newGeneric(self, defs) + return genericObj +end + +function mt:remove() +end + +function mt:count() + local count = 0 + for _, list in pairs(self._class) do + for k in pairs(list) do + if k ~= 'version' then + count = count + 1 + end + end + end + return count +end + +return function () + ---@class emmyMgr + local self = setmetatable({ + _class = {}, + }, mt) + + local source = sourceMgr.dummy() + self:newClass('any', nil, source) + self:newClass('string', 'any', source) + self:newClass('number', 'any', source) + self:newClass('integer', 'number', source) + self:newClass('boolean', 'any', source) + self:newClass('table', 'any', source) + self:newClass('function', 'any', source) + self:newClass('nil', 'any', source) + self:newClass('userdata', 'any', source) + self:newClass('thread', 'any', source) + + return self +end diff --git a/script/src/emmy/param.lua b/script/src/emmy/param.lua new file mode 100644 index 00000000..12ac0633 --- /dev/null +++ b/script/src/emmy/param.lua @@ -0,0 +1,70 @@ +local listMgr = require 'vm.list' + +---@class EmmyParam +local mt = {} +mt.__index = mt +mt.type = 'emmy.param' + +function mt:getName() + return self.name +end + +function mt:getType() + if self._bindType then + return self._bindType:getType() + else + return 'any' + end +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:bindType(type) + if type then + self._bindType = type + else + return self._bindType + end +end + +function mt:bindGeneric(generic) + if generic then + self._bindGeneric = generic + else + return self._bindGeneric + end +end + +function mt:addEnum(enum) + self._enum[#self._enum+1] = enum +end + +function mt:eachEnum(callback) + for _, enum in ipairs(self._enum) do + callback(enum) + end +end + +function mt:setOption(option) + self._option = option +end + +function mt:getOption() + return self._option +end + +return function (manager, source) + local self = setmetatable({ + source = source.id, + _manager = manager, + _enum = {}, + }, mt) + if source.type == 'emmyParam' then + self.name = source[1][1] + elseif source.type == 'emmyVararg' then + self.name = '...' + end + return self +end diff --git a/script/src/emmy/return.lua b/script/src/emmy/return.lua new file mode 100644 index 00000000..1fc97923 --- /dev/null +++ b/script/src/emmy/return.lua @@ -0,0 +1,36 @@ +local listMgr = require 'vm.list' + +---@class EmmyReturn +local mt = {} +mt.__index = mt +mt.type = 'emmy.return' + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:bindType(type) + if type then + self._bindType = type + else + return self._bindType + end +end + +function mt:bindGeneric(generic) + if generic then + self._bindGeneric = generic + else + return self._bindGeneric + end +end + +return function (manager, source, name) + local self = setmetatable({ + source = source.id, + name = name and name[1], + option = source.option, + _manager = manager, + }, mt) + return self +end diff --git a/script/src/emmy/tableType.lua b/script/src/emmy/tableType.lua new file mode 100644 index 00000000..3882cd61 --- /dev/null +++ b/script/src/emmy/tableType.lua @@ -0,0 +1,40 @@ +local listMgr = require 'vm.list' + +---@class EmmyTableType +local mt = {} +mt.__index = mt +mt.type = 'emmy.tableType' + +function mt:getType() + return 'table' +end + +function mt:getKeyType() + return self.keyType +end + +function mt:getValueType() + return self.valueType +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:setValue(value) + self.value = value +end + +function mt:getValue() + return self.value +end + +return function (manager, source, keyType, valueType) + local self = setmetatable({ + source = source.id, + keyType = keyType, + valueType = valueType, + _manager = manager, + }, mt) + return self +end diff --git a/script/src/emmy/type.lua b/script/src/emmy/type.lua new file mode 100644 index 00000000..b7e451b2 --- /dev/null +++ b/script/src/emmy/type.lua @@ -0,0 +1,55 @@ +local listMgr = require 'vm.list' + +local function buildName(source) + local names = {} + for i, type in ipairs(source) do + names[i] = type[1] + end + return table.concat(names, '|') +end + +---@class EmmyType +local mt = {} +mt.__index = mt +mt.type = 'emmy.type' + +function mt:getType() + return self.name +end + +function mt:getName() + return self.name +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:eachClass(callback) + for _, typeUnit in ipairs(self._childs) do + ---@type EmmyTypeUnit + local emmyTypeUnit = typeUnit + emmyTypeUnit:getClass(callback) + end +end + +function mt:setValue(value) + self.value = value + for _, typeUnit in ipairs(self._childs) do + typeUnit:setValue(value) + end +end + +function mt:getValue() + return self.value +end + +return function (manager, source) + local self = setmetatable({ + name = buildName(source), + source = source.id, + _manager = manager, + _childs = {}, + }, mt) + return self +end diff --git a/script/src/emmy/typeUnit.lua b/script/src/emmy/typeUnit.lua new file mode 100644 index 00000000..73d7ea6b --- /dev/null +++ b/script/src/emmy/typeUnit.lua @@ -0,0 +1,51 @@ +local listMgr = require 'vm.list' + +---@class EmmyTypeUnit +local mt = {} +mt.__index = mt +mt.type = 'emmy.typeUnit' + +function mt:getType() + return self.name +end + +function mt:getName() + return self.name +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:getClass(callback) + self._manager:eachClass(self:getName(), function (class) + if class.type == 'emmy.class' then + callback(class) + end + end) +end + +function mt:setValue(value) + self.value = value +end + +function mt:getValue() + return self.value +end + +function mt:setParent(parent) + self.parent = parent +end + +function mt:getParent() + return self.parent +end + +return function (manager, source) + local self = setmetatable({ + name = source[1], + source = source.id, + _manager = manager, + }, mt) + return self +end diff --git a/script/src/files/file.lua b/script/src/files/file.lua new file mode 100644 index 00000000..81aabba5 --- /dev/null +++ b/script/src/files/file.lua @@ -0,0 +1,158 @@ +---@class file +local mt = {} +mt.__index = mt +mt.type = 'file' +mt._uri = '' +mt._oldText = '' +mt._text = '' +mt._version = -1 +mt._vmCost = 0.0 +mt._lineCost = 0.0 + +---@param buf string +function mt:setText(buf) + self._oldText = self._text + self._text = buf +end + +---@return string +function mt:getText() + return self._text +end + +---@return string +function mt:getOldText() + return self._oldText +end + +function mt:clearOldText() + self._oldText = nil +end + +---@param version integer +function mt:setVersion(version) + self._version = version +end + +---@return integer +function mt:getVersion() + return self._version +end + +function mt:remove() + if self._removed then + return + end + self._removed = true + self._text = nil + self._version = nil + if self._vm then + self._vm:remove() + end +end + +---@return boolean +function mt:isRemoved() + return self._removed == true +end + +---@param vm VM +---@param version integer +---@param cost number +function mt:saveVM(vm, version, cost) + if self._vm then + self._vm:remove() + end + self._vm = vm + if vm then + vm:setVersion(version) + end + self._vmCost = cost +end + +---@return VM +function mt:getVM() + return self._vm +end + +---@return number +function mt:getVMCost() + return self._vmCost +end + +function mt:removeVM() + if not self._vm then + return + end + self._vm:remove() + self._vm = nil +end + +---@param lines table +---@param cost number +function mt:saveLines(lines, cost) + self._lines = lines + self._lineCost = cost +end + +---@return table +function mt:getLines() + return self._lines +end + +function mt:getComments() + return self.comments +end + +---@return file +function mt:getParent() + return self._parent +end + +---@param uri uri +function mt:addChild(uri) + self._child[uri] = true +end + +---@param uri uri +function mt:removeChild(uri) + self._child[uri] = nil +end + +---@param uri uri +function mt:addParent(uri) + self._parent[uri] = true +end + +---@param uri uri +function mt:removeParent(uri) + self._parent[uri] = nil +end + +function mt:eachChild() + return pairs(self._child) +end + +function mt:eachParent() + return pairs(self._parent) +end + +---@param err table +function mt:setAstErr(err) + self._astErr = err +end + +---@return table +function mt:getAstErr() + return self._astErr +end + +---@param uri string +return function (uri) + local self = setmetatable({ + _uri = uri, + _parent = {}, + _child = {}, + }, mt) + return self +end diff --git a/script/src/files/files.lua b/script/src/files/files.lua new file mode 100644 index 00000000..88ff7444 --- /dev/null +++ b/script/src/files/files.lua @@ -0,0 +1,115 @@ +local file = require 'files.file' + +---@class files +local mt = {} +mt.__index = mt +mt.type = 'files' +mt._fileCount = 0 +---@type table<uri, file> +mt._files = nil + +---@param uri uri +---@param text string +function mt:save(uri, text, version) + local f = self._files[uri] + if not f then + f = file(uri) + self._files[uri] = f + self._fileCount = self._fileCount + 1 + end + f:setText(text) + f:setVersion(version) +end + +---@param uri uri +function mt:remove(uri) + local f = self._files[uri] + if not f then + return + end + + f:remove() + self._files[uri] = nil + self._fileCount = self._fileCount - 1 +end + +---@param uri uri +function mt:open(uri, text) + self._open[uri] = text +end + +---@param uri uri +function mt:close(uri) + self._open[uri] = nil +end + +---@param uri uri +---@return boolean +function mt:isOpen(uri) + return self._open[uri] ~= nil +end + +---@param uri uri +function mt:setLibrary(uri) + self._library[uri] = true +end + +---@param uri uri +---@return uri +function mt:isLibrary(uri) + return self._library[uri] == true +end + +---@param uri uri +function mt:isDead(uri) + local f = self._files[uri] + if not f then + return true + end + if f:isRemoved() then + return true + end + return f:getVersion() == -1 +end + +---@param uri uri +---@return file +function mt:get(uri) + return self._files[uri] +end + +function mt:clear() + for _, f in pairs(self._files) do + f:remove() + end + self._files = {} + self._library = {} + self._fileCount = nil +end + +function mt:clearVM() + for _, f in pairs(self._files) do + f:removeVM() + end +end + +function mt:eachFile() + return pairs(self._files) +end + +function mt:eachOpened() + return pairs(self._open) +end + +function mt:count() + return self._fileCount +end + +return function () + local self = setmetatable({ + _files = {}, + _open = {}, + _library = {}, + }, mt) + return self +end diff --git a/script/src/files/init.lua b/script/src/files/init.lua new file mode 100644 index 00000000..e090874d --- /dev/null +++ b/script/src/files/init.lua @@ -0,0 +1 @@ +return require 'files.files' diff --git a/script/src/glob/gitignore.lua b/script/src/glob/gitignore.lua new file mode 100644 index 00000000..f96aa627 --- /dev/null +++ b/script/src/glob/gitignore.lua @@ -0,0 +1,222 @@ +local m = require 'lpeglabel' +local matcher = require 'glob.matcher' + +local function prop(name, pat) + return m.Cg(m.Cc(true), name) * pat +end + +local function object(type, pat) + return m.Ct( + m.Cg(m.Cc(type), 'type') * + m.Cg(pat, 'value') + ) +end + +local function expect(p, err) + return p + m.T(err) +end + +local parser = m.P { + 'Main', + ['Sp'] = m.S(' \t')^0, + ['Slash'] = m.S('/\\')^1, + ['Main'] = m.Ct(m.V'Sp' * m.P'{' * m.V'Pattern' * (',' * expect(m.V'Pattern', 'Miss exp after ","'))^0 * m.P'}') + + m.Ct(m.V'Pattern') + + m.T'Main Failed' + , + ['Pattern'] = m.Ct(m.V'Sp' * prop('neg', m.P'!') * expect(m.V'Unit', 'Miss exp after "!"')) + + m.Ct(m.V'Unit') + , + ['NeedRoot'] = prop('root', (m.P'.' * m.V'Slash' + m.V'Slash')), + ['Unit'] = m.V'Sp' * m.V'NeedRoot'^-1 * expect(m.V'Exp', 'Miss exp') * m.V'Sp', + ['Exp'] = m.V'Sp' * (m.V'FSymbol' + object('/', m.V'Slash') + m.V'Word')^0 * m.V'Sp', + ['Word'] = object('word', m.Ct((m.V'CSymbol' + m.V'Char' - m.V'FSymbol')^1)), + ['CSymbol'] = object('*', m.P'*') + + object('?', m.P'?') + + object('[]', m.V'Range') + , + ['Char'] = object('char', (1 - m.S',{}[]*?/\\')^1), + ['FSymbol'] = object('**', m.P'**'), + ['Range'] = m.P'[' * m.Ct(m.V'RangeUnit'^0) * m.P']'^-1, + ['RangeUnit'] = m.Ct(- m.P']' * m.C(m.P(1)) * (m.P'-' * - m.P']' * m.C(m.P(1)))^-1), +} + +---@class gitignore +local mt = {} +mt.__index = mt +mt.__name = 'gitignore' + +function mt:addPattern(pat) + if type(pat) ~= 'string' then + return + end + self.pattern[#self.pattern+1] = pat + if self.options.ignoreCase then + pat = pat:lower() + end + local states, err = parser:match(pat) + if not states then + self.errors[#self.errors+1] = { + pattern = pat, + message = err + } + return + end + for _, state in ipairs(states) do + self.matcher[#self.matcher+1] = matcher(state) + end +end + +function mt:setOption(op, val) + if val == nil then + val = true + end + self.options[op] = val +end + +---@param key string | "'type'" | "'list'" +---@param func function | "function (path) end" +function mt:setInterface(key, func) + if type(func) ~= 'function' then + return + end + self.interface[key] = func +end + +function mt:callInterface(name, ...) + local func = self.interface[name] + return func(...) +end + +function mt:hasInterface(name) + return self.interface[name] ~= nil +end + +function mt:checkDirectory(catch, path, matcher) + if not self:hasInterface 'type' then + return true + end + if not matcher:isNeedDirectory() then + return true + end + if #catch < #path then + -- if path is 'a/b/c' and catch is 'a/b' + -- then the catch must be a directory + return true + else + return self:callInterface('type', path) == 'directory' + end +end + +function mt:simpleMatch(path) + for i = #self.matcher, 1, -1 do + local matcher = self.matcher[i] + local catch = matcher(path) + if catch and self:checkDirectory(catch, path, matcher) then + if matcher:isNegative() then + return false + else + return true + end + end + end + return nil +end + +function mt:finishMatch(path) + local paths = {} + for filename in path:gmatch '[^/\\]+' do + paths[#paths+1] = filename + end + for i = 1, #paths do + local newPath = table.concat(paths, '/', 1, i) + local passed = self:simpleMatch(newPath) + if passed == true then + return true + elseif passed == false then + return false + end + end + return false +end + +function mt:scan(callback) + local files = {} + if type(callback) ~= 'function' then + callback = nil + end + local list = {} + local result = self:callInterface('list', '') + if type(result) ~= 'table' then + return files + end + for _, path in ipairs(result) do + list[#list+1] = path:match '([^/\\]+)[/\\]*$' + end + while #list > 0 do + local current = list[#list] + if not current then + break + end + list[#list] = nil + if not self:simpleMatch(current) then + local fileType = self:callInterface('type', current) + if fileType == 'file' then + if callback then + callback(current) + end + files[#files+1] = current + elseif fileType == 'directory' then + local result = self:callInterface('list', current) + if type(result) == 'table' then + for _, path in ipairs(result) do + local filename = path:match '([^/\\]+)[/\\]*$' + if filename then + list[#list+1] = current .. '/' .. filename + end + end + end + end + end + end + return files +end + +function mt:__call(path) + if self.options.ignoreCase then + path = path:lower() + end + return self:finishMatch(path) +end + +return function (pattern, options, interface) + local self = setmetatable({ + pattern = {}, + options = {}, + matcher = {}, + errors = {}, + interface = {}, + }, mt) + + if type(pattern) == 'table' then + for _, pat in ipairs(pattern) do + self:addPattern(pat) + end + else + self:addPattern(pattern) + end + + if type(options) == 'table' then + for op, val in pairs(options) do + self:setOption(op, val) + end + end + + if type(interface) == 'table' then + for key, func in pairs(interface) do + self:setInterface(key, func) + end + end + + return self +end diff --git a/script/src/glob/glob.lua b/script/src/glob/glob.lua new file mode 100644 index 00000000..aa8923f3 --- /dev/null +++ b/script/src/glob/glob.lua @@ -0,0 +1,122 @@ +local m = require 'lpeglabel' +local matcher = require 'glob.matcher' + +local function prop(name, pat) + return m.Cg(m.Cc(true), name) * pat +end + +local function object(type, pat) + return m.Ct( + m.Cg(m.Cc(type), 'type') * + m.Cg(pat, 'value') + ) +end + +local function expect(p, err) + return p + m.T(err) +end + +local parser = m.P { + 'Main', + ['Sp'] = m.S(' \t')^0, + ['Slash'] = m.S('/\\')^1, + ['Main'] = m.Ct(m.V'Sp' * m.P'{' * m.V'Pattern' * (',' * expect(m.V'Pattern', 'Miss exp after ","'))^0 * m.P'}') + + m.Ct(m.V'Pattern') + + m.T'Main Failed' + , + ['Pattern'] = m.Ct(m.V'Sp' * prop('neg', m.P'!') * expect(m.V'Unit', 'Miss exp after "!"')) + + m.Ct(m.V'Unit') + , + ['NeedRoot'] = prop('root', (m.P'.' * m.V'Slash' + m.V'Slash')), + ['Unit'] = m.V'Sp' * m.V'NeedRoot'^-1 * expect(m.V'Exp', 'Miss exp') * m.V'Sp', + ['Exp'] = m.V'Sp' * (m.V'FSymbol' + object('/', m.V'Slash') + m.V'Word')^0 * m.V'Sp', + ['Word'] = object('word', m.Ct((m.V'CSymbol' + m.V'Char' - m.V'FSymbol')^1)), + ['CSymbol'] = object('*', m.P'*') + + object('?', m.P'?') + + object('[]', m.V'Range') + , + ['Char'] = object('char', (1 - m.S',{}[]*?/\\')^1), + ['FSymbol'] = object('**', m.P'**'), + ['RangeWord'] = 1 - m.P']', + ['Range'] = m.P'[' * m.Ct(m.V'RangeUnit'^0) * m.P']'^-1, + ['RangeUnit'] = m.Ct(m.C(m.V'RangeWord') * m.P'-' * m.C(m.V'RangeWord')) + + m.V'RangeWord', +} + +local mt = {} +mt.__index = mt +mt.__name = 'glob' + +function mt:addPattern(pat) + if type(pat) ~= 'string' then + return + end + self.pattern[#self.pattern+1] = pat + if self.options.ignoreCase then + pat = pat:lower() + end + local states, err = parser:match(pat) + if not states then + self.errors[#self.errors+1] = { + pattern = pat, + message = err + } + return + end + for _, state in ipairs(states) do + if state.neg then + self.refused[#self.refused+1] = matcher(state) + else + self.passed[#self.passed+1] = matcher(state) + end + end +end + +function mt:setOption(op, val) + if val == nil then + val = true + end + self.options[op] = val +end + +function mt:__call(path) + if self.options.ignoreCase then + path = path:lower() + end + for _, refused in ipairs(self.refused) do + if refused(path) then + return false + end + end + for _, passed in ipairs(self.passed) do + if passed(path) then + return true + end + end + return false +end + +return function (pattern, options) + local self = setmetatable({ + pattern = {}, + options = {}, + passed = {}, + refused = {}, + errors = {}, + }, mt) + + if type(pattern) == 'table' then + for _, pat in ipairs(pattern) do + self:addPattern(pat) + end + else + self:addPattern(pattern) + end + + if type(options) == 'table' then + for op, val in pairs(options) do + self:setOption(op, val) + end + end + return self +end diff --git a/script/src/glob/init.lua b/script/src/glob/init.lua new file mode 100644 index 00000000..6578a0d4 --- /dev/null +++ b/script/src/glob/init.lua @@ -0,0 +1,4 @@ +return { + glob = require 'glob.glob', + gitignore = require 'glob.gitignore', +} diff --git a/script/src/glob/matcher.lua b/script/src/glob/matcher.lua new file mode 100644 index 00000000..f4c2b12c --- /dev/null +++ b/script/src/glob/matcher.lua @@ -0,0 +1,151 @@ +local m = require 'lpeglabel' + +local Slash = m.S('/\\')^1 +local Symbol = m.S',{}[]*?/\\' +local Char = 1 - Symbol +local Path = Char^1 * Slash +local NoWord = #(m.P(-1) + Symbol) +local function whatHappened() + return m.Cmt(m.P(1)^1, function (...) + print(...) + end) +end + +local mt = {} +mt.__index = mt +mt.__name = 'matcher' + +function mt:exp(state, index) + local exp = state[index] + if not exp then + return + end + if exp.type == 'word' then + return self:word(exp, state, index + 1) + elseif exp.type == 'char' then + return self:char(exp, state, index + 1) + elseif exp.type == '**' then + return self:anyPath(exp, state, index + 1) + elseif exp.type == '*' then + return self:anyChar(exp, state, index + 1) + elseif exp.type == '?' then + return self:oneChar(exp, state, index + 1) + elseif exp.type == '[]' then + return self:range(exp, state, index + 1) + elseif exp.type == '/' then + return self:slash(exp, state, index + 1) + end +end + +function mt:word(exp, state, index) + local current = self:exp(exp.value, 1) + local after = self:exp(state, index) + if after then + return current * Slash * after + else + return current + end +end + +function mt:char(exp, state, index) + local current = m.P(exp.value) + local after = self:exp(state, index) + if after then + return current * after * NoWord + else + return current * NoWord + end +end + +function mt:anyPath(_, state, index) + local after = self:exp(state, index) + if after then + return m.P { + 'Main', + Main = after + + Path * m.V'Main' + } + else + return Path^0 + end +end + +function mt:anyChar(_, state, index) + local after = self:exp(state, index) + if after then + return m.P { + 'Main', + Main = after + + Char * m.V'Main' + } + else + return Char^0 + end +end + +function mt:oneChar(_, state, index) + local after = self:exp(state, index) + if after then + return Char * after + else + return Char + end +end + +function mt:range(exp, state, index) + local after = self:exp(state, index) + local ranges = {} + local selects = {} + for _, range in ipairs(exp.value) do + if #range == 1 then + selects[#selects+1] = range[1] + elseif #range == 2 then + ranges[#ranges+1] = range[1] .. range[2] + end + end + local current = m.S(table.concat(selects)) + m.R(table.unpack(ranges)) + if after then + return current * after + else + return current + end +end + +function mt:slash(_, state, index) + local after = self:exp(state, index) + if after then + return after + else + self.needDirectory = true + return nil + end +end + +function mt:pattern(state) + if state.root then + return m.C(self:exp(state, 1)) + else + return m.C(self:anyPath(nil, state, 1)) + end +end + +function mt:isNeedDirectory() + return self.needDirectory == true +end + +function mt:isNegative() + return self.state.neg == true +end + +function mt:__call(path) + return self.matcher:match(path) +end + +return function (state, options) + local self = setmetatable({ + options = options, + state = state, + }, mt) + self.matcher = self:pattern(state) + return self +end diff --git a/script/src/json/decode.lua b/script/src/json/decode.lua new file mode 100644 index 00000000..36f8aa54 --- /dev/null +++ b/script/src/json/decode.lua @@ -0,0 +1,153 @@ +local lpeg = require 'lpeglabel' +local tablePack = table.pack +local rawset = rawset +local tointeger = math.tointeger +local tonumber = tonumber +local setmetatable = setmetatable +local stringChar = string.char +local error = error + +_ENV = nil + +local SaveSort +local P = lpeg.P +local S = lpeg.S +local R = lpeg.R +local V = lpeg.V +local C = lpeg.C +local Ct = lpeg.Ct +local Cc = lpeg.Cc +local Cp = lpeg.Cp +local Cs = lpeg.Cs + +local EscMap = { + ['t'] = '\t', + ['r'] = '\r', + ['n'] = '\n', + ['"'] = '"', + ['\\'] = '\\', +} +local BoolMap = { + ['true'] = true, + ['false'] = false, +} + +local hashmt = { + __pairs = function (self) + local i = 1 + local function next() + i = i + 1 + local k = self[i] + if k == nil then + return + end + local v = self[k] + if v == nil then + return next() + end + return k, v + end + return next + end, + __newindex = function (self, k, v) + local i = 2 + while self[i] do + i = i + 1 + end + rawset(self, i, k) + rawset(self, k, v) + end, +} + +----------------------------------------------------------------------------- +-- JSON4Lua: JSON encoding / decoding support for the Lua language. +-- json Module. +-- Author: Craig Mason-Jones +-- Homepage: http://github.com/craigmj/json4lua/ +-- Version: 1.0.0 +-- This module is released under the MIT License (MIT). +-- Please see LICENCE.txt for details. +-- +local function Utf8(str) + local n = tonumber(str, 16) + -- math.floor(x/2^y) == lazy right shift + -- a % 2^b == bitwise_and(a, (2^b)-1) + -- 64 = 2^6 + -- 4096 = 2^12 (or 2^6 * 2^6) + local x + if n < 0x80 then + x = stringChar(n % 0x80) + elseif n < 0x800 then + -- [110x xxxx] [10xx xxxx] + x = stringChar(0xC0 + ((n // 64) % 0x20), 0x80 + (n % 0x40)) + else + -- [1110 xxxx] [10xx xxxx] [10xx xxxx] + x = stringChar(0xE0 + ((n // 4096) % 0x10), 0x80 + ((n // 64) % 0x40), 0x80 + (n % 0x40)) + end + return x +end + +local function HashTable(patt) + return C(patt) / function (_, ...) + local hash = tablePack(...) + local n = hash.n + hash.n = nil + if SaveSort then + local max = n // 2 + for i = 1, max do + local key, value = hash[2*i-1], hash[2*i] + hash[key] = value + hash[i+1] = key + end + hash[1] = nil + for i = max+2, max*2 do + hash[i] = nil + end + return setmetatable(hash, hashmt) + else + local max = n // 2 + for i = 1, max do + local a = 2*i-1 + local b = 2*i + local key, value = hash[a], hash[b] + hash[key] = value + hash[a] = nil + hash[b] = nil + end + return hash + end + end +end + +local Token = P +{ + V'Value' * Cp(), + Nl = P'\r\n' + S'\r\n', + Sp = S' \t' + '//' * (1-V'Nl')^0, + Spnl = (V'Sp' + V'Nl')^0, + Bool = C(P'true' + P'false') / BoolMap, + Int = C('0' + (P'-'^-1 * R'19' * R'09'^0)) / tointeger, + Float = C(P'-'^-1 * ('0' + R'19' * R'09'^0) * '.' * R'09'^0) / tonumber, + Null = P'null' * Cc(nil), + String = '"' * Cs(V'Char'^0) * '"', + Char = V'Esc' + V'Utf8' + (1 - P'"' - P'\t' - V'Nl'), + Esc = P'\\' * C(S'tnr"\\') / EscMap, + Utf8 = P'\\u' * C(P(4)) / Utf8, + Hash = V'Spnl' * '{' * V'Spnl' * HashTable((V'Object' + P',' * V'Spnl')^0) * V'Spnl' * P'}' * V'Spnl', + Array = V'Spnl' * '[' * V'Spnl' * Ct((V'Value' * V'Spnl' + P',' * V'Spnl')^0) * V'Spnl' * P']' * V'Spnl', + Object = V'Spnl' * V'Key' * V'Spnl' * V'Value' * V'Spnl', + Key = V'String' * V'Spnl' * ':', + Value = V'Hash' + V'Array' + V'Bool' + V'Null' + V'String' + V'Float' + V'Int', +} + +return function (str, save_sort_) + SaveSort = save_sort_ + local table, res, pos = Token:match(str) + if not table then + if not pos or pos <= #str then + pos = pos or 1 + error(('没匹配完[%s][%s]\n%s'):format(pos, res, str:sub(pos, pos+100))) + end + end + return table +end diff --git a/script/src/json/encode.lua b/script/src/json/encode.lua new file mode 100644 index 00000000..97a1680b --- /dev/null +++ b/script/src/json/encode.lua @@ -0,0 +1,135 @@ + +local rep = string.rep +local format = string.format +local gsub = string.gsub +local sub = string.sub +local sort = table.sort +local find = string.find +local tostring = tostring +local getmetatable = debug.getmetatable +local type = type +local next = next +local ipairs = ipairs + +local index +local lines +local n = -1 +local tabs = {} + +local esc_map = { + ['\\'] = '\\\\', + ['\r'] = '\\r', + ['\n'] = '\\n', + ['\t'] = '\\t', + ['"'] = '\\"', +} + +local function encode(data, key) + n = n + 1 + if not tabs[n] then + tabs[n] = rep(' ', n) + end + local tp = type(data) + if tp == 'table' then + if not data[1] and next(data) then + -- 认为这个是哈希表 + if key then + index=index+1;lines[index] = tabs[n] .. '"' .. gsub(key, '[\\\r\n\t"]', esc_map) .. '": {\r\n' + else + index=index+1;lines[index] = tabs[n] .. '{\r\n' + end + local meta = getmetatable(data) + local sep + if meta and meta.__pairs then + for k, v in meta.__pairs(data), data do + if encode(v, k) then + index=index+1;lines[index] = ',\r\n' + sep = true + end + end + else + local list = {} + local i = 0 + for k in next, data do + i=i+1;list[i] = k + end + sort(list) + for j = 1, i do + local k = list[j] + if encode(data[k], k) then + index=index+1;lines[index] = ',\r\n' + sep = true + end + end + end + if sep then + lines[index] = '\r\n' + end + index=index+1;lines[index] = tabs[n] .. '}' + else + -- 认为这个是数组 + if key then + index=index+1;lines[index] = tabs[n] .. '"' .. gsub(key, '[\\\r\n\t"]', esc_map) .. '": [\r\n' + else + index=index+1;lines[index] = tabs[n] .. '[\r\n' + end + local sep + for k, v in pairs(data) do + if encode(v) then + index=index+1;lines[index] = ',\r\n' + sep = true + end + end + if sep then + lines[index] = '\r\n' + end + index=index+1;lines[index] = tabs[n] .. ']' + end + elseif tp == 'number' then + data = tostring(data) + -- 判断 inf -inf -nan(ind) 1.#INF -1.#INF -1.#IND + if find(data, '%a') then + data = '0' + end + if key then + index=index+1;lines[index] = tabs[n] .. '"' .. gsub(key, '[\\\r\n\t"]', esc_map) .. '": ' .. data + else + index=index+1;lines[index] = tabs[n] .. data + end + elseif tp == 'boolean' then + if key then + index=index+1;lines[index] = tabs[n] .. '"' .. gsub(key, '[\\\r\n\t"]', esc_map) .. '": ' .. tostring(data) + else + index=index+1;lines[index] = tabs[n] .. tostring(data) + end + elseif tp == 'nil' then + if key then + index=index+1;lines[index] = tabs[n] .. '"' .. gsub(key, '[\\\r\n\t"]', esc_map) .. '": null' + else + index=index+1;lines[index] = tabs[n] .. 'null' + end + elseif tp == 'string' then + local str = gsub(data, '[\\\r\n\t"]', esc_map) + if key then + index=index+1;lines[index] = tabs[n] .. '"' .. gsub(key, '[\\\r\n\t"]', esc_map) .. '": "' .. str .. '"' + else + index=index+1;lines[index] = tabs[n] .. '"' .. str .. '"' + end + else + n = n - 1 + return false + end + n = n - 1 + return true +end + +local function json(t) + lines = {} + index = 0 + + encode(t) + + return table.concat(lines) +end + +return json diff --git a/script/src/json/init.lua b/script/src/json/init.lua new file mode 100644 index 00000000..c28e7aed --- /dev/null +++ b/script/src/json/init.lua @@ -0,0 +1,6 @@ +local api = { + decode = require 'json.decode', + encode = require 'json.encode', +} + +return api diff --git a/script/src/language.lua b/script/src/language.lua new file mode 100644 index 00000000..3294c5b2 --- /dev/null +++ b/script/src/language.lua @@ -0,0 +1,136 @@ +local fs = require 'bee.filesystem' +local lni = require 'lni' + +local function supportLanguage() + local list = {} + for path in (ROOT / 'locale'):list_directory() do + if fs.is_directory(path) then + list[#list+1] = path:filename():string():lower() + end + end + return list +end + +local function osLanguage() + return LANG:lower() +end + +local function getLanguage(id) + local support = supportLanguage() + -- 检查是否支持语言 + if support[id] then + return id + end + -- 根据语言的前2个字母来找近似语言 + for _, lang in ipairs(support) do + if lang:sub(1, 2) == id:sub(1, 2) then + return lang + end + end + -- 使用英文 + return 'enUS' +end + +local function loadFileByLanguage(name, language) + local path = ROOT / 'locale' / language / (name .. '.lni') + local buf = io.load(path) + if not buf then + return {} + end + local suc, tbl = xpcall(lni, log.error, buf, path:string()) + if not suc then + return {} + end + return tbl +end + +local function formatAsArray(str, ...) + local index = 0 + local args = {...} + return str:gsub('%{(.-)%}', function (pat) + local id, fmt + local pos = pat:find(':', 1, true) + if pos then + id = pat:sub(1, pos-1) + fmt = pat:sub(pos+1) + else + id = pat + fmt = 's' + end + id = tonumber(id) + if not id then + index = index + 1 + id = index + end + return ('%'..fmt):format(args[id]) + end) +end + +local function formatAsTable(str, ...) + local args = ... + return str:gsub('%{(.-)%}', function (pat) + local id, fmt + local pos = pat:find(':', 1, true) + if pos then + id = pat:sub(1, pos-1) + fmt = pat:sub(pos+1) + else + id = pat + fmt = 's' + end + if not id then + return + end + return ('%'..fmt):format(args[id]) + end) +end + +local function loadLang(name, language) + local tbl = loadFileByLanguage(name, 'en-US') + if language ~= 'en-US' then + local other = loadFileByLanguage(name, language) + for k, v in pairs(other) do + tbl[k] = v + end + end + return setmetatable(tbl, { + __index = function (self, key) + self[key] = key + return key + end, + __call = function (self, key, ...) + local str = self[key] + local suc, res + if type(...) == 'table' then + suc, res = pcall(formatAsTable, str, ...) + else + suc, res = pcall(formatAsArray, str, ...) + end + if suc then + return res + else + -- 这里不能使用翻译,以免死循环 + log.warn(('[%s][%s-%s] formated error: %s'):format( + language, name, key, str + )) + return str + end + end, + }) +end + +local function init() + local id = osLanguage() + local language = getLanguage(id) + log.info(('VSC language: %s'):format(id)) + log.info(('LS language: %s'):format(language)) + return setmetatable({ id = language }, { + __index = function (self, name) + local tbl = loadLang(name, language) + self[name] = tbl + return tbl + end, + }) +end + +return init() diff --git a/script/src/log.lua b/script/src/log.lua new file mode 100644 index 00000000..d8e782c0 --- /dev/null +++ b/script/src/log.lua @@ -0,0 +1,116 @@ +local fs = require 'bee.filesystem' + +local log = {} + +log.file = nil +log.start_time = os.time() - os.clock() +log.size = 0 +log.max_size = 100 * 1024 * 1024 + +local function trim_src(src) + src = src:sub(log.prefix_len + 3, -5) + src = src:gsub('^[/\\]+', '') + src = src:gsub('[\\/]+', '.') + return src +end + +local function init_log_file() + if not log.file then + log.file = io.open(log.path, 'w') + if not log.file then + return + end + log.file:write('') + log.file:close() + log.file = io.open(log.path, 'ab') + if not log.file then + return + end + log.file:setvbuf 'no' + end +end + +local function push_log(level, ...) + if not log.path then + return + end + if log.size > log.max_size then + return + end + local t = table.pack(...) + for i = 1, t.n do + t[i] = tostring(t[i]) + end + local str = table.concat(t, '\t', 1, t.n) + if level == 'error' then + str = str .. '\n' .. debug.traceback(nil, 3) + io.stderr:write(str .. '\n') + end + init_log_file() + if not log.file then + return + end + local sec, ms = math.modf(log.start_time + os.clock()) + local timestr = os.date('%Y-%m-%d %H:%M:%S', sec) + local info = debug.getinfo(3, 'Sl') + local buf + if info and info.currentline > 0 then + buf = ('[%s.%03.f][%s]: [%s:%s]%s\n'):format(timestr, ms * 1000, level, trim_src(info.source), info.currentline, str) + else + buf = ('[%s.%03.f][%s]: %s\n'):format(timestr, ms * 1000, level, str) + end + log.file:write(buf) + log.size = log.size + #buf + if log.size > log.max_size then + log.file:write('[REACH MAX SIZE]') + end + return str +end + +function log.info(...) + push_log('info', ...) +end + +function log.debug(...) + push_log('debug', ...) +end + +function log.trace(...) + push_log('trace', ...) +end + +function log.warn(...) + push_log('warn', ...) +end + +function log.error(...) + return push_log('error', ...) +end + +function log.init(root, path) + local lastBuf + if log.file then + log.file:close() + log.file = nil + local file = io.open(log.path, 'rb') + if file then + lastBuf = file:read 'a' + file:close() + end + end + log.path = path:string() + log.prefix_len = #root:string() + log.size = 0 + if not fs.exists(path:parent_path()) then + fs.create_directories(path:parent_path()) + end + if lastBuf then + init_log_file() + if log.file then + log.file:write(lastBuf) + log.size = log.size + #lastBuf + end + end +end + +return log diff --git a/script/src/meta/type.lua b/script/src/meta/type.lua new file mode 100644 index 00000000..9b47d5bc --- /dev/null +++ b/script/src/meta/type.lua @@ -0,0 +1,4 @@ +---@class uri string +---@class path + +"This is syntax error, due to `workspace.library`, this error never shows." diff --git a/script/src/method/exit.lua b/script/src/method/exit.lua new file mode 100644 index 00000000..fa550243 --- /dev/null +++ b/script/src/method/exit.lua @@ -0,0 +1,4 @@ +return function () + log.info('Server exited.') + os.exit(true) +end diff --git a/script/src/method/init.lua b/script/src/method/init.lua new file mode 100644 index 00000000..8827768b --- /dev/null +++ b/script/src/method/init.lua @@ -0,0 +1,32 @@ +local method = {} + +local function init(name) + method[name] = require('method.' .. name:gsub('/', '.')) +end + +init 'exit' +init 'initialize' +init 'initialized' +init 'shutdown' +init 'textDocument/codeAction' +init 'textDocument/completion' +init 'textDocument/definition' +init 'textDocument/didOpen' +init 'textDocument/didChange' +init 'textDocument/didClose' +init 'textDocument/documentHighlight' +init 'textDocument/documentSymbol' +init 'textDocument/foldingRange' +init 'textDocument/hover' +init 'textDocument/implementation' +init 'textDocument/onTypeFormatting' +init 'textDocument/publishDiagnostics' +init 'textDocument/rename' +init 'textDocument/references' +init 'textDocument/signatureHelp' +init 'workspace/didChangeConfiguration' +init 'workspace/didChangeWatchedFiles' +init 'workspace/didChangeWorkspaceFolders' +init 'workspace/executeCommand' + +return method diff --git a/script/src/method/initialize.lua b/script/src/method/initialize.lua new file mode 100644 index 00000000..02a96695 --- /dev/null +++ b/script/src/method/initialize.lua @@ -0,0 +1,50 @@ +local function allWords() + local str = [[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.:('"[,#*@| ]] + local list = {} + for c in str:gmatch '.' do + list[#list+1] = c + end + return list +end + +return function (lsp) + lsp._inited = true + return { + capabilities = { + hoverProvider = true, + definitionProvider = true, + referencesProvider = true, + renameProvider = true, + documentSymbolProvider = true, + documentHighlightProvider = true, + codeActionProvider = true, + foldingRangeProvider = true, + signatureHelpProvider = { + triggerCharacters = { '(', ',' }, + }, + -- 文本同步方式 + textDocumentSync = { + -- 打开关闭文本时通知 + openClose = true, + -- 文本改变时完全通知 TODO 支持差量更新(2) + change = 1, + }, + workspace = { + workspaceFolders = { + supported = true, + changeNotifications = true, + } + }, + documentOnTypeFormattingProvider = { + firstTriggerCharacter = '}', + }, + executeCommandProvider = { + commands = { + 'config', + 'removeSpace', + 'solve', + }, + }, + } + } +end diff --git a/script/src/method/initialized.lua b/script/src/method/initialized.lua new file mode 100644 index 00000000..d84a2159 --- /dev/null +++ b/script/src/method/initialized.lua @@ -0,0 +1,69 @@ +local rpc = require 'rpc' +local workspace = require 'workspace' + +local function initAfterConfig(lsp, firstScope) + if firstScope then + lsp.workspace = workspace(lsp, firstScope.name) + lsp.workspace:init(firstScope.uri) + end + -- 必须动态注册的事件: + rpc:request('client/registerCapability', { + registrations = { + -- 监视文件变化 + { + id = '0', + method = 'workspace/didChangeWatchedFiles', + registerOptions = { + watchers = { + { + globPattern = '**/', + kind = 1 | 2 | 4, + } + }, + }, + }, + -- 配置变化 + { + id = '1', + method = 'workspace/didChangeConfiguration', + } + } + }, function () + log.debug('client/registerCapability Success!') + end) +end + +return function (lsp) + -- 请求工作目录 + rpc:request('workspace/workspaceFolders', nil, function (folders) + local firstScope + if folders then + firstScope = folders[1] + end + local uri = firstScope and firstScope.uri + -- 请求配置 + rpc:request('workspace/configuration', { + items = { + { + scopeUri = uri, + section = 'Lua', + }, + { + scopeUri = uri, + section = 'files.associations', + }, + { + scopeUri = uri, + section = 'files.exclude', + } + }, + }, function (configs) + lsp:onUpdateConfig(configs[1], { + associations = configs[2], + exclude = configs[3], + }) + initAfterConfig(lsp, firstScope) + end) + end) + return true +end diff --git a/script/src/method/shutdown.lua b/script/src/method/shutdown.lua new file mode 100644 index 00000000..bb81306e --- /dev/null +++ b/script/src/method/shutdown.lua @@ -0,0 +1,4 @@ +return function () + log.info('Server shutdown.') + return true +end diff --git a/script/src/method/textDocument/codeAction.lua b/script/src/method/textDocument/codeAction.lua new file mode 100644 index 00000000..3c6e8d49 --- /dev/null +++ b/script/src/method/textDocument/codeAction.lua @@ -0,0 +1,23 @@ +local core = require 'core' + +return function (lsp, params) + local uri = params.textDocument.uri + local vm, lines = lsp:getVM(uri) + if not vm then + return + end + local diagnostics = params.context.diagnostics + local range = params.range + + local results = core.codeAction(lsp + , uri + , diagnostics + , range + ) + + if #results == 0 then + return nil + end + + return results +end diff --git a/script/src/method/textDocument/completion.lua b/script/src/method/textDocument/completion.lua new file mode 100644 index 00000000..4c7581df --- /dev/null +++ b/script/src/method/textDocument/completion.lua @@ -0,0 +1,104 @@ +local core = require 'core' +local parser = require 'parser' + +local function posToRange(lines, start, finish) + local start_row, start_col = lines:rowcol(start) + local finish_row, finish_col = lines:rowcol(finish) + return { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + character = finish_col, + }, + } +end + +local function fastCompletion(lsp, params, lines) + local uri = params.textDocument.uri + local text, oldText = lsp:getText(uri) + -- lua是从1开始的,因此都要+1 + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + + local vm = lsp:getVM(uri) + if not vm then + vm = lsp:loadVM(uri) + if not vm then + return nil + end + end + + local items = core.completion(vm, text, position, oldText) + if not items or #items == 0 then + vm = lsp:loadVM(uri) + if not vm then + return nil + end + items = core.completion(vm, text, position) + if not items or #items == 0 then + return nil + end + end + + return items +end + +local function finishCompletion(lsp, params, lines) + local uri = params.textDocument.uri + local text = lsp:getText(uri) + -- lua是从1开始的,因此都要+1 + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + + local vm = lsp:loadVM(uri) + if not vm then + return nil + end + + local items = core.completion(vm, text, position) + if not items or #items == 0 then + return nil + end + + return items +end + +return function (lsp, params) + local uri = params.textDocument.uri + local text, oldText = lsp:getText(uri) + if not text then + return nil + end + + local lines = parser:lines(text, 'utf8') + local items = fastCompletion(lsp, params, lines) + --local items = finishCompletion(lsp, params, lines) + if not items then + return nil + end + + for i, item in ipairs(items) do + item.sortText = ('%04d'):format(i) + item.insertTextFormat = 2 + item.insertText = item.insertText or item.label + if item.textEdit then + item.textEdit.range = posToRange(lines, item.textEdit.start, item.textEdit.finish) + item.textEdit.start = nil + item.textEdit.finish = nil + end + if item.additionalTextEdits then + for _, textEdit in ipairs(item.additionalTextEdits) do + textEdit.range = posToRange(lines, textEdit.start, textEdit.finish) + textEdit.start = nil + textEdit.finish = nil + end + end + end + + local response = { + isIncomplete = true, + items = items, + } + return response +end diff --git a/script/src/method/textDocument/definition.lua b/script/src/method/textDocument/definition.lua new file mode 100644 index 00000000..dbf9e41c --- /dev/null +++ b/script/src/method/textDocument/definition.lua @@ -0,0 +1,88 @@ +local core = require 'core' + +local function findResult(lsp, uri, position) + local vm = lsp:getVM(uri) + + local positions, isGlobal = core.definition(vm, position, 'definition') + if not positions then + return nil, isGlobal + end + + local locations = {} + for i, position in ipairs(positions) do + local start, finish, valueUri = position[1], position[2], (position[3] or uri) + local vm, valueLines = lsp:getVM(valueUri) + if valueLines then + local start_row, start_col = valueLines:rowcol(start) + local finish_row, finish_col = valueLines:rowcol(finish) + locations[#locations+1] = { + uri = valueUri, + range = { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + -- 这里不用-1,因为前端期待的是匹配完成后的位置 + character = finish_col, + }, + } + } + elseif vm then + locations[#locations+1] = { + uri = valueUri, + range = { + start = { + line = 0, + character = 0, + }, + ['end'] = { + line = 0, + character = 0, + }, + } + } + end + end + + if #locations == 0 then + return nil, isGlobal + end + + return locations, isGlobal +end + +local LastTask + +---@param lsp LSP +---@param params table +return function (lsp, params) + local uri = params.textDocument.uri + local vm, lines = lsp:loadVM(uri) + if not vm then + return nil + end + + if LastTask then + LastTask:remove() + LastTask = nil + end + + -- lua是从1开始的,因此都要+1 + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + + return function (response) + local clock = os.clock() + LastTask = ac.loop(0.1, function () + local result, isGlobal = findResult(lsp, uri, position) + if isGlobal and lsp:isWaitingCompile() and os.clock() - clock < 1 then + return + end + response(result) + LastTask:remove() + LastTask = nil + end) + LastTask:onTimer() + end +end diff --git a/script/src/method/textDocument/didChange.lua b/script/src/method/textDocument/didChange.lua new file mode 100644 index 00000000..82e6c096 --- /dev/null +++ b/script/src/method/textDocument/didChange.lua @@ -0,0 +1,16 @@ +return function (lsp, params) + local doc = params.textDocument + local change = params.contentChanges + if lsp.workspace then + local path = lsp.workspace:relativePathByUri(doc.uri) + if not path or not lsp.workspace:isLuaFile(path) then + return + end + if not lsp:isOpen(doc.uri) and lsp.workspace.gitignore(path:string()) then + return + end + end + -- TODO 支持差量更新 + lsp:saveText(doc.uri, doc.version, change[1].text) + return true +end diff --git a/script/src/method/textDocument/didClose.lua b/script/src/method/textDocument/didClose.lua new file mode 100644 index 00000000..589b212f --- /dev/null +++ b/script/src/method/textDocument/didClose.lua @@ -0,0 +1,5 @@ +return function (lsp, params) + local doc = params.textDocument + lsp:close(doc.uri) + return true +end diff --git a/script/src/method/textDocument/didOpen.lua b/script/src/method/textDocument/didOpen.lua new file mode 100644 index 00000000..e2a67fd2 --- /dev/null +++ b/script/src/method/textDocument/didOpen.lua @@ -0,0 +1,5 @@ +return function (lsp, params) + local doc = params.textDocument + lsp:open(doc.uri, doc.version, doc.text) + return true +end diff --git a/script/src/method/textDocument/documentHighlight.lua b/script/src/method/textDocument/documentHighlight.lua new file mode 100644 index 00000000..377ffcdf --- /dev/null +++ b/script/src/method/textDocument/documentHighlight.lua @@ -0,0 +1,37 @@ +local core = require 'core' + +return function (lsp, params) + local uri = params.textDocument.uri + local vm, lines = lsp:loadVM(uri) + if not vm then + return nil + end + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + local positions = core.highlight(vm, position) + if not positions then + return nil + end + + local result = {} + for i, position in ipairs(positions) do + local start, finish = position[1], position[2] + local start_row, start_col = lines:rowcol(start) + local finish_row, finish_col = lines:rowcol(finish) + result[i] = { + range = { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + -- 这里不用-1,因为前端期待的是匹配完成后的位置 + character = finish_col, + }, + }, + kind = position[3], + } + end + + return result +end diff --git a/script/src/method/textDocument/documentSymbol.lua b/script/src/method/textDocument/documentSymbol.lua new file mode 100644 index 00000000..a4b0c3b7 --- /dev/null +++ b/script/src/method/textDocument/documentSymbol.lua @@ -0,0 +1,72 @@ +local core = require 'core' +local lang = require 'language' + +local timerCache = {} + +local function posToRange(lines, start, finish) + local start_row, start_col = lines:rowcol(start) + local finish_row, finish_col = lines:rowcol(finish) + return { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + character = finish_col, + }, + } +end + +local function convertRange(lines, symbol) + symbol.range = posToRange(lines, symbol.range[1], symbol.range[2]) + symbol.selectionRange = posToRange(lines, symbol.selectionRange[1], symbol.selectionRange[2]) + if symbol.name == '' then + symbol.name = lang.script.SYMBOL_ANONYMOUS + end + + if symbol.children then + for _, child in ipairs(symbol.children) do + convertRange(lines, child) + end + end +end + +return function (lsp, params) + local uri = params.textDocument.uri + + if timerCache[uri] then + timerCache[uri]:remove() + timerCache[uri] = nil + end + + return function (response) + local clock = os.clock() + timerCache[uri] = ac.loop(0.1, function (t) + local vm, lines = lsp:getVM(uri) + if not vm then + if os.clock() - clock > 10 then + t:remove() + timerCache[uri] = nil + response(nil) + end + return + end + + t:remove() + timerCache[uri] = nil + + local symbols = core.documentSymbol(vm) + if not symbols then + response(nil) + return + end + + for _, symbol in ipairs(symbols) do + convertRange(lines, symbol) + end + + response(symbols) + end) + end +end diff --git a/script/src/method/textDocument/foldingRange.lua b/script/src/method/textDocument/foldingRange.lua new file mode 100644 index 00000000..0320b422 --- /dev/null +++ b/script/src/method/textDocument/foldingRange.lua @@ -0,0 +1,57 @@ +local core = require 'core' + +local timerCache = {} + +local function convertRange(lines, range) + local start_row, start_col = lines:rowcol(range.start) + local finish_row, finish_col = lines:rowcol(range.finish) + local result = { + startLine = start_row - 1, + endLine = finish_row - 2, + kind = range.kind, + } + if result.startLine >= result.endLine then + return nil + end + return result +end + +return function (lsp, params) + local uri = params.textDocument.uri + if timerCache[uri] then + timerCache[uri]:remove() + timerCache[uri] = nil + end + + return function (response) + local clock = os.clock() + timerCache[uri] = ac.loop(0.1, function (t) + local vm, lines = lsp:getVM(uri) + if not vm then + if os.clock() - clock > 10 then + t:remove() + timerCache[uri] = nil + response(nil) + end + return + end + + t:remove() + timerCache[uri] = nil + + local comments = lsp:getComments(uri) + local ranges = core.foldingRange(vm, comments) + if not ranges then + response(nil) + return + end + + local results = {} + for _, range in ipairs(ranges) do + results[#results+1] = convertRange(lines, range) + end + + response(results) + end) + end +end diff --git a/script/src/method/textDocument/hover.lua b/script/src/method/textDocument/hover.lua new file mode 100644 index 00000000..f8dba27c --- /dev/null +++ b/script/src/method/textDocument/hover.lua @@ -0,0 +1,44 @@ +local core = require 'core' + +return function (lsp, params) + local uri = params.textDocument.uri + local vm, lines = lsp:loadVM(uri) + if not vm then + return nil + end + -- lua是从1开始的,因此都要+1 + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + + local source = core.findSource(vm, position) + if not source then + return nil + end + + local hover = core.hover(source, lsp) + if not hover then + return nil + end + + local text = ([[ +```lua +%s +``` +```lua +%s +``` +%s +```lua +%s +``` +%s +]]):format(hover.label or '', hover.overloads or '', hover.description or '', hover.enum or '', hover.doc or '') + + local response = { + contents = { + value = text:gsub("```lua\n\n```", ""), + kind = 'markdown', + } + } + + return response +end diff --git a/script/src/method/textDocument/implementation.lua b/script/src/method/textDocument/implementation.lua new file mode 100644 index 00000000..14e2f24c --- /dev/null +++ b/script/src/method/textDocument/implementation.lua @@ -0,0 +1,108 @@ +local core = require 'core' + +local function checkWorkSpaceComplete(lsp, source) + if not source:bindValue() then + return + end + if not source:bindValue():get 'cross file' then + return + end + lsp:checkWorkSpaceComplete() +end + +local function findResult(lsp, params) + local uri = params.textDocument.uri + local vm, lines = lsp:loadVM(uri) + if not vm then + return nil + end + -- lua是从1开始的,因此都要+1 + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + local source = core.findSource(vm, position) + if not source then + return nil + end + + checkWorkSpaceComplete(lsp, source) + + local positions = core.implementation(vm, source, lsp) + if not positions then + return nil + end + + local locations = {} + for i, position in ipairs(positions) do + local start, finish, valueUri = position[1], position[2], (position[3] or uri) + local _, valueLines = lsp:loadVM(valueUri) + if valueLines then + local start_row, start_col = valueLines:rowcol(start) + local finish_row, finish_col = valueLines:rowcol(finish) + locations[#locations+1] = { + uri = valueUri, + range = { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + -- 这里不用-1,因为前端期待的是匹配完成后的位置 + character = finish_col, + }, + } + } + else + locations[#locations+1] = { + uri = valueUri, + range = { + start = { + line = 0, + character = 0, + }, + ['end'] = { + line = 0, + character = 0, + }, + } + } + end + end + + if #locations == 0 then + return nil + end + + return locations +end + +local LastTask + +return function (lsp, params) + if LastTask then + LastTask:remove() + LastTask = nil + end + local result = findResult(lsp, params) + if result then + return result + end + return function (response) + local count = 0 + LastTask = ac.loop(0.1, function () + local result = findResult(lsp, params) + if result then + LastTask:remove() + LastTask = nil + response(result) + return + end + count = count + 1 + if lsp:isWaitingCompile() and count < 10 then + return + end + LastTask:remove() + LastTask = nil + response(nil) + end) + end +end diff --git a/script/src/method/textDocument/onTypeFormatting.lua b/script/src/method/textDocument/onTypeFormatting.lua new file mode 100644 index 00000000..fc9cbdc9 --- /dev/null +++ b/script/src/method/textDocument/onTypeFormatting.lua @@ -0,0 +1,14 @@ +return function (lsp, params) + local uri = params.textDocument.uri + local vm, lines = lsp:loadVM(uri) + --log.debug(table.dump(params)) + if not vm then + return nil + end + local position = lines:position(params.position.line + 1, params.position.character) + local ch = params.ch + local options = params.options + local tabSize = options.tabSize + local insertSpaces = options.insertSpaces + return nil +end diff --git a/script/src/method/textDocument/publishDiagnostics.lua b/script/src/method/textDocument/publishDiagnostics.lua new file mode 100644 index 00000000..c767e934 --- /dev/null +++ b/script/src/method/textDocument/publishDiagnostics.lua @@ -0,0 +1,163 @@ +local core = require 'core' +local lang = require 'language' +local config = require 'config' + +local DiagnosticSeverity = { + Error = 1, + Warning = 2, + Information = 3, + Hint = 4, +} + +--[[ +/** + * Represents a related message and source code location for a diagnostic. This should be + * used to point to code locations that cause or related to a diagnostics, e.g when duplicating + * a symbol in a scope. + */ +export interface DiagnosticRelatedInformation { + /** + * The location of this related diagnostic information. + */ + location: Location; + + /** + * The message of this related diagnostic information. + */ + message: string; +} +]]-- + +local function getRange(start, finish, lines) + local start_row, start_col = lines:rowcol(start) + local finish_row, finish_col = lines:rowcol(finish) + return { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + -- 这里不用-1,因为前端期待的是匹配完成后的位置 + character = finish_col, + }, + } +end + +local function createInfo(lsp, data, lines) + local diagnostic = { + source = lang.script.DIAG_DIAGNOSTICS, + range = getRange(data.start, data.finish, lines), + severity = data.level, + message = data.message, + code = data.code, + tags = data.tags, + } + if data.related then + local related = {} + for _, info in ipairs(data.related) do + local _, lines = lsp:getVM(info.uri) + if lines then + local message = info.message + if not message then + local start_line = lines:rowcol(info.start) + local finish_line = lines:rowcol(info.finish) + local chars = {} + for n = start_line, finish_line do + chars[#chars+1] = lines:line(n) + end + message = table.concat(chars, '\n') + end + related[#related+1] = { + message = message, + location = { + uri = info.uri, + range = getRange(info.start, info.finish, lines), + } + } + end + end + diagnostic.relatedInformation = related + end + return diagnostic +end + +local function buildError(err, lines, uri) + local diagnostic = { + source = lang.script.DIAG_SYNTAX_CHECK, + message = lang.script('PARSER_'..err.type, err.info) + } + if err.version then + local currentVersion = err.info and err.info.version or config.config.runtime.version + if type(err.version) == 'table' then + diagnostic.message = ('%s(%s)'):format(diagnostic.message, lang.script('DIAG_NEED_VERSION', table.concat(err.version, '/'), currentVersion)) + else + diagnostic.message = ('%s(%s)'):format(diagnostic.message, lang.script('DIAG_NEED_VERSION', err.version, currentVersion)) + end + end + if err.level == 'error' then + diagnostic.severity = DiagnosticSeverity.Error + else + diagnostic.severity = DiagnosticSeverity.Warning + end + local startrow, startcol = lines:rowcol(err.start) + local endrow, endcol = lines:rowcol(err.finish) + if err.type == 'UNKNOWN' then + local _, max = lines:range(endrow) + endcol = max + end + local range = { + start = { + line = startrow - 1, + character = startcol - 1, + }, + ['end'] = { + line = endrow - 1, + character = endcol, + }, + } + diagnostic.range = range + + local related = err.info and err.info.related + if related then + local start_line = lines:rowcol(related[1]) + local finish_line = lines:rowcol(related[2]) + local chars = {} + for n = start_line, finish_line do + chars[#chars+1] = lines:line(n) + end + local message = table.concat(chars, '\n') + diagnostic.relatedInformation = { + { + message = message, + location = { + uri = uri, + range = getRange(related[1], related[2], lines), + } + } + } + end + return diagnostic +end + +return function (lsp, params) + local vm = params.vm + local lines = params.lines + local uri = params.uri + local errs = lsp:getAstErrors(uri) + + local diagnostics = {} + if vm then + local datas = core.diagnostics(vm, lines, uri) + for _, data in ipairs(datas) do + diagnostics[#diagnostics+1] = createInfo(lsp, data, lines) + end + end + if errs then + for _, err in ipairs(errs) do + diagnostics[#diagnostics+1] = buildError(err, lines, uri) + end + end + + return diagnostics +end diff --git a/script/src/method/textDocument/references.lua b/script/src/method/textDocument/references.lua new file mode 100644 index 00000000..0a198323 --- /dev/null +++ b/script/src/method/textDocument/references.lua @@ -0,0 +1,86 @@ +local core = require 'core' +local LastTask + +local function findReferences(lsp, uri, position) + local vm = lsp:getVM(uri) + + local positions, isGlobal = core.definition(vm, position, 'reference') + if not positions then + return nil, isGlobal + end + + local locations = {} + for i, position in ipairs(positions) do + local start, finish, valueUri = position[1], position[2], (position[3] or uri) + local vm, valueLines = lsp:getVM(valueUri) + if valueLines then + local start_row, start_col = valueLines:rowcol(start) + local finish_row, finish_col = valueLines:rowcol(finish) + locations[#locations+1] = { + uri = valueUri, + range = { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + -- 这里不用-1,因为前端期待的是匹配完成后的位置 + character = finish_col, + }, + } + } + elseif vm then + locations[#locations+1] = { + uri = valueUri, + range = { + start = { + line = 0, + character = 0, + }, + ['end'] = { + line = 0, + character = 0, + }, + } + } + end + end + + if #locations == 0 then + return nil, isGlobal + end + + return locations, isGlobal +end + +return function (lsp, params) + local uri = params.textDocument.uri + local declarat = params.context.includeDeclaration + local vm, lines = lsp:loadVM(uri) + if not vm then + return nil + end + + if LastTask then + LastTask:remove() + LastTask = nil + end + + -- lua是从1开始的,因此都要+1 + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + + return function (response) + local clock = os.clock() + LastTask = ac.loop(0.1, function () + local positions, isGlobal = findReferences(lsp, uri, position) + if isGlobal and lsp:isWaitingCompile() and os.clock() - clock < 5 then + return + end + response(positions) + LastTask:remove() + LastTask = nil + end) + LastTask:onTimer() + end +end diff --git a/script/src/method/textDocument/rename.lua b/script/src/method/textDocument/rename.lua new file mode 100644 index 00000000..6da9c721 --- /dev/null +++ b/script/src/method/textDocument/rename.lua @@ -0,0 +1,50 @@ +local core = require 'core' + +return function (lsp, params) + local uri = params.textDocument.uri + local newName = params.newName + local vm, lines = lsp:loadVM(uri) + if not vm then + return {} + end + local position = lines:positionAsChar(params.position.line + 1, params.position.character) + local positions = core.rename(vm, position, newName) + if not positions then + return {} + end + + local changes = {} + for _, position in ipairs(positions) do + local start, finish, uri = position[1], position[2], position[3] + local _, lines = lsp:getVM(uri) + if not lines then + goto CONTINUE + end + local start_row, start_col = lines:rowcol(start) + local finish_row, finish_col = lines:rowcol(finish) + if not changes[uri] then + changes[uri] = {} + end + changes[uri][#changes[uri]+1] = { + newText = newName, + range = { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + -- 这里不用-1,因为前端期待的是匹配完成后的位置 + character = finish_col, + }, + } + } + ::CONTINUE:: + end + + local response = { + changes = changes, + } + + return response +end diff --git a/script/src/method/textDocument/signatureHelp.lua b/script/src/method/textDocument/signatureHelp.lua new file mode 100644 index 00000000..01d6289d --- /dev/null +++ b/script/src/method/textDocument/signatureHelp.lua @@ -0,0 +1,50 @@ +local core = require 'core' + +return function (lsp, params) + local uri = params.textDocument.uri + local vm, lines = lsp:loadVM(uri) + if not vm then + return + end + local position = lines:position(params.position.line + 1, params.position.character + 1) + local hovers = core.signature(vm, position) + if not hovers then + return + end + + local hover = hovers[1] + local desc = {} + desc[#desc+1] = hover.description + local active + local signatures = {} + for i, hover in ipairs(hovers) do + local signature = { + label = hover.label, + documentation = { + kind = 'markdown', + value = table.concat(desc, '\n'), + }, + } + if hover.argLabel then + if not active then + active = i + end + signature.parameters = { + { + label = { + hover.argLabel[1] - 1, + hover.argLabel[2], + } + } + } + end + signatures[i] = signature + end + + local response = { + signatures = signatures, + activeSignature = active and active - 1 or 0, + } + + return response +end diff --git a/script/src/method/workspace/didChangeConfiguration.lua b/script/src/method/workspace/didChangeConfiguration.lua new file mode 100644 index 00000000..ecaa9182 --- /dev/null +++ b/script/src/method/workspace/didChangeConfiguration.lua @@ -0,0 +1,27 @@ +local rpc = require 'rpc' + +return function (lsp) + local uri = lsp.workspace and lsp.workspace.uri + -- 请求配置 + rpc:request('workspace/configuration', { + items = { + { + scopeUri = uri, + section = 'Lua', + }, + { + scopeUri = uri, + section = 'files.associations', + }, + { + scopeUri = uri, + section = 'files.exclude', + } + }, + }, function (configs) + lsp:onUpdateConfig(configs[1], { + associations = configs[2], + exclude = configs[3], + }) + end) +end diff --git a/script/src/method/workspace/didChangeWatchedFiles.lua b/script/src/method/workspace/didChangeWatchedFiles.lua new file mode 100644 index 00000000..3ce68924 --- /dev/null +++ b/script/src/method/workspace/didChangeWatchedFiles.lua @@ -0,0 +1,44 @@ +local fs = require 'bee.filesystem' +local uric = require 'uri' + +local FileChangeType = { + Created = 1, + Changed = 2, + Deleted = 3, +} + +return function (lsp, params) + if not lsp.workspace then + return + end + local needReset + for _, change in ipairs(params.changes) do + local path = uric.decode(change.uri) + if not path then + goto CONTINUE + end + if change.type == FileChangeType.Created then + lsp.workspace:addFile(path) + if lsp:getVM(change.uri) then + needReset = true + end + elseif change.type == FileChangeType.Deleted then + lsp.workspace:removeFile(path) + if lsp:getVM(change.uri) then + needReset = true + end + end + -- 排除类文件发生更改需要重新扫描 + local filename = path:filename():string() + if lsp.workspace:fileNameEq(filename, '.gitignore') + or lsp.workspace:fileNameEq(filename, '.gitmodules') + then + lsp:reScanFiles() + end + ::CONTINUE:: + end + -- 缓存过的文件发生变化后,重新计算 + if needReset then + lsp.workspace:reset() + end +end diff --git a/script/src/method/workspace/didChangeWorkspaceFolders.lua b/script/src/method/workspace/didChangeWorkspaceFolders.lua new file mode 100644 index 00000000..01a28abd --- /dev/null +++ b/script/src/method/workspace/didChangeWorkspaceFolders.lua @@ -0,0 +1,20 @@ +local rpc = require 'rpc' +local lang = require 'language' + +return function () + -- 暂不支持多个工作目录,因此当工作目录切换时,暴力结束服务,让前端重启服务 + rpc:requestWait('window/showMessageRequest', { + type = 3, + message = lang.script('MWS_NOT_SUPPORT', '[Lua]'), + actions = { + { + title = lang.script.MWS_RESTART, + } + } + }, function () + os.exit(true) + end) + ac.wait(5, function () + os.exit(true) + end) +end diff --git a/script/src/method/workspace/executeCommand.lua b/script/src/method/workspace/executeCommand.lua new file mode 100644 index 00000000..cfa4023e --- /dev/null +++ b/script/src/method/workspace/executeCommand.lua @@ -0,0 +1,258 @@ +local fs = require 'bee.filesystem' +local json = require 'json' +local config = require 'config' +local rpc = require 'rpc' +local lang = require 'language' +local platform = require 'bee.platform' + +local command = {} + +local function isContainPos(obj, start, finish) + if obj.start <= start and obj.finish >= finish then + return true + end + return false +end + +local function isInString(vm, start, finish) + return vm:eachSource(function (source) + if source.type == 'string' and isContainPos(source, start, finish) then + return true + end + end) +end + +local function posToRange(lines, start, finish) + local start_row, start_col = lines:rowcol(start) + local finish_row, finish_col = lines:rowcol(finish) + return { + start = { + line = start_row - 1, + character = start_col - 1, + }, + ['end'] = { + line = finish_row - 1, + character = finish_col, + }, + } +end + +function command.config(lsp, data) + local def = config.config + for _, k in ipairs(data.key) do + def = def[k] + if not def then + return + end + end + if data.action == 'add' then + if type(def) ~= 'table' then + return + end + end + + local vscodePath + local mode + if lsp.workspace then + vscodePath = lsp.workspace.root / '.vscode' + mode = 'workspace' + else + if platform.OS == 'Windows' then + vscodePath = fs.path(os.getenv 'USERPROFILE') / 'AppData' / 'Roaming' / 'Code' / 'User' + else + vscodePath = fs.path(os.getenv 'HOME') / '.vscode-server' / 'data' / 'Machine' + end + mode = 'user' + if not fs.exists(vscodePath) then + rpc:notify('window/showMessage', { + type = 3, + message = lang.script.MWS_UCONFIG_FAILED, + }) + return + end + end + + local settingBuf = io.load(vscodePath / 'settings.json') + if not settingBuf then + fs.create_directories(vscodePath) + end + + local setting = json.decode(settingBuf or '', true) or {} + local key = 'Lua.' .. table.concat(data.key, '.') + local attr = setting[key] + + if data.action == 'add' then + if attr == nil then + attr = {} + elseif type(attr) == 'string' then + attr = {} + for str in attr:gmatch '[^;]+' do + attr[#attr+1] = str + end + elseif type(attr) == 'table' then + else + return + end + + attr[#attr+1] = data.value + setting[key] = attr + elseif data.action == 'set' then + setting[key] = data.value + end + + io.save(vscodePath / 'settings.json', json.encode(setting) .. '\r\n') + + if mode == 'workspace' then + rpc:notify('window/showMessage', { + type = 3, + message = lang.script.MWS_WCONFIG_UPDATED, + }) + elseif mode == 'user' then + rpc:notify('window/showMessage', { + type = 3, + message = lang.script.MWS_UCONFIG_UPDATED, + }) + end +end + +function command.removeSpace(lsp, data) + local uri = data.uri + local vm, lines = lsp:getVM(uri) + if not vm then + return + end + + local textEdit = {} + for i = 1, #lines do + local line = lines:line(i) + local pos = line:find '[ \t]+$' + if pos then + local start, finish = lines:range(i) + start = start + pos - 1 + if isInString(vm, start, finish) then + goto NEXT_LINE + end + textEdit[#textEdit+1] = { + range = posToRange(lines, start, finish), + newText = '', + } + goto NEXT_LINE + end + + ::NEXT_LINE:: + end + + if #textEdit == 0 then + return + end + + rpc:request('workspace/applyEdit', { + label = lang.script.COMMAND_REMOVE_SPACE, + edit = { + changes = { + [uri] = textEdit, + } + }, + }) +end + +local opMap = { + ['+'] = true, + ['-'] = true, + ['*'] = true, + ['/'] = true, + ['//'] = true, + ['^'] = true, + ['<<'] = true, + ['>>'] = true, + ['&'] = true, + ['|'] = true, + ['~'] = true, + ['..'] = true, +} + +local literalMap = { + ['number'] = true, + ['boolean'] = true, + ['string'] = true, + ['table'] = true, +} + +function command.solve(lsp, data) + local uri = data.uri + local vm, lines = lsp:getVM(uri) + if not vm then + return + end + + local start = lines:position(data.range.start.line + 1, data.range.start.character + 1) + local finish = lines:position(data.range['end'].line + 1, data.range['end'].character) + + local result = vm:eachSource(function (source) + if not isContainPos(source, start, finish) then + return + end + if source.op ~= 'or' then + return + end + local first = source[1] + local second = source[2] + -- (a + b) or 0 --> a + (b or 0) + do + if opMap[first.op] + and first.type ~= 'unary' + and not second.op + and literalMap[second.type] + then + return { + start = source[1][2].start, + finish = source[2].finish, + } + end + end + -- a or (b + c) --> (a or b) + c + do + if opMap[second.op] + and second.type ~= 'unary' + and not first.op + and literalMap[second[1].type] + then + return { + start = source[1].start, + finish = source[2][1].finish, + } + end + end + end) + + if not result then + return + end + + rpc:request('workspace/applyEdit', { + label = lang.script.COMMAND_ADD_BRACKETS, + edit = { + changes = { + [uri] = { + { + range = posToRange(lines, result.start, result.start - 1), + newText = '(', + }, + { + range = posToRange(lines, result.finish + 1, result.finish), + newText = ')', + }, + } + } + }, + }) +end + +return function (lsp, params) + local name = params.command + if not command[name] then + return + end + local result = command[name](lsp, params.arguments[1]) + return result +end diff --git a/script/src/parser/ast.lua b/script/src/parser/ast.lua new file mode 100644 index 00000000..38cd8576 --- /dev/null +++ b/script/src/parser/ast.lua @@ -0,0 +1,1912 @@ +local tonumber = tonumber +local string_char = string.char +local utf8_char = utf8.char +local type = type +local table = table + +local Errs +local State +local function pushError(err) + if err.finish < err.start then + err.finish = err.start + end + local last = Errs[#Errs] + if last then + if last.start <= err.start and last.finish >= err.finish then + return + end + end + err.level = err.level or 'error' + Errs[#Errs+1] = err + return err +end + +-- goto 单独处理 +local RESERVED = { + ['and'] = true, + ['break'] = true, + ['do'] = true, + ['else'] = true, + ['elseif'] = true, + ['end'] = true, + ['false'] = true, + ['for'] = true, + ['function'] = true, + ['if'] = true, + ['in'] = true, + ['local'] = true, + ['nil'] = true, + ['not'] = true, + ['or'] = true, + ['repeat'] = true, + ['return'] = true, + ['then'] = true, + ['true'] = true, + ['until'] = true, + ['while'] = true, +} + +local VersionOp = { + ['&'] = {'Lua 5.3', 'Lua 5.4'}, + ['~'] = {'Lua 5.3', 'Lua 5.4'}, + ['|'] = {'Lua 5.3', 'Lua 5.4'}, + ['<<'] = {'Lua 5.3', 'Lua 5.4'}, + ['>>'] = {'Lua 5.3', 'Lua 5.4'}, + ['//'] = {'Lua 5.3', 'Lua 5.4'}, +} + +local function checkOpVersion(op, start) + local versions = VersionOp[op] + if not versions then + return + end + for i = 1, #versions do + if versions[i] == State.Version then + return + end + end + pushError { + type = 'UNSUPPORT_SYMBOL', + start = start, + finish = start + #op - 1, + version = versions, + info = { + version = State.Version, + } + } +end + +local Exp + +local function expSplit(list, start, finish, level) + if start == finish then + return list[start] + end + local info = Exp[level] + if not info then + return + end + local func = info[1] + return func(list, start, finish, level) +end + +local function binaryForward(list, start, finish, level) + local info = Exp[level] + for i = finish-1, start+2, -1 do + local op = list[i] + if info[op] then + local e1 = expSplit(list, start, i-2, level) + if not e1 then + goto CONTINUE + end + local e2 = expSplit(list, i+1, finish, level+1) + if not e2 then + goto CONTINUE + end + checkOpVersion(op, list[i-1]) + return { + type = 'binary', + op = op, + start = e1.start, + finish = e2.finish, + [1] = e1, + [2] = e2, + } + end + ::CONTINUE:: + end + return expSplit(list, start, finish, level+1) +end + +local function binaryBackward(list, start, finish, level) + local info = Exp[level] + for i = start+2, finish-1 do + local op = list[i] + if info[op] then + local e1 = expSplit(list, start, i-2, level+1) + if not e1 then + goto CONTINUE + end + local e2 = expSplit(list, i+1, finish, level) + if not e2 then + goto CONTINUE + end + checkOpVersion(op, list[i-1]) + return { + type = 'binary', + op = op, + start = e1.start, + finish = e2.finish, + [1] = e1, + [2] = e2, + } + end + ::CONTINUE:: + end + return expSplit(list, start, finish, level+1) +end + +local function unary(list, start, finish, level) + local info = Exp[level] + local op = list[start+1] + if info[op] then + local e1 = expSplit(list, start+2, finish, level) + if e1 then + checkOpVersion(op, list[start]) + return { + type = 'unary', + op = op, + start = list[start], + finish = e1.finish, + [1] = e1, + } + end + end + return expSplit(list, start, finish, level+1) +end + +local function checkMissEnd(start) + if not State.MissEndErr then + return + end + local err = State.MissEndErr + State.MissEndErr = nil + local _, finish = State.Lua:find('[%w_]+', start) + if not finish then + return + end + err.info.related = { start, finish } + pushError { + type = 'MISS_END', + start = start, + finish = finish, + } +end + +Exp = { + { + ['or'] = true, + binaryForward, + }, + { + ['and'] = true, + binaryForward, + }, + { + ['<='] = true, + ['>='] = true, + ['<'] = true, + ['>'] = true, + ['~='] = true, + ['=='] = true, + binaryForward, + }, + { + ['|'] = true, + binaryForward, + }, + { + ['~'] = true, + binaryForward, + }, + { + ['&'] = true, + binaryForward, + }, + { + ['<<'] = true, + ['>>'] = true, + binaryForward, + }, + { + ['..'] = true, + binaryBackward, + }, + { + ['+'] = true, + ['-'] = true, + binaryForward, + }, + { + ['*'] = true, + ['//'] = true, + ['/'] = true, + ['%'] = true, + binaryForward, + }, + { + ['^'] = true, + binaryBackward, + }, + { + ['not'] = true, + ['#'] = true, + ['~'] = true, + ['-'] = true, + unary, + }, +} + +local Defs = { + Nil = function (pos) + return { + type = 'nil', + start = pos, + finish = pos + 2, + } + end, + True = function (pos) + return { + type = 'boolean', + start = pos, + finish = pos + 3, + [1] = true, + } + end, + False = function (pos) + return { + type = 'boolean', + start = pos, + finish = pos + 4, + [1] = false, + } + end, + LongComment = function (beforeEq, afterEq, str, finish, missPos) + State.Comments[#State.Comments+1] = { + start = beforeEq, + finish = finish, + } + if missPos then + local endSymbol = ']' .. ('='):rep(afterEq-beforeEq) .. ']' + local s, _, w = str:find('(%][%=]*%])[%c%s]*$') + if s then + pushError { + type = 'ERR_LCOMMENT_END', + start = missPos - #str + s - 1, + finish = missPos - #str + s + #w - 2, + info = { + symbol = endSymbol, + }, + fix = { + title = 'FIX_LCOMMENT_END', + { + start = missPos - #str + s - 1, + finish = missPos - #str + s + #w - 2, + text = endSymbol, + } + }, + } + end + pushError { + type = 'MISS_SYMBOL', + start = missPos, + finish = missPos, + info = { + symbol = endSymbol, + }, + fix = { + title = 'ADD_LCOMMENT_END', + { + start = missPos, + finish = missPos, + text = endSymbol, + } + }, + } + end + end, + CLongComment = function (start1, finish1, start2, finish2) + pushError { + type = 'ERR_C_LONG_COMMENT', + start = start1, + finish = finish2 - 1, + fix = { + title = 'FIX_C_LONG_COMMENT', + { + start = start1, + finish = finish1 - 1, + text = '--[[', + }, + { + start = start2, + finish = finish2 - 1, + text = '--]]' + }, + } + } + end, + CCommentPrefix = function (start, finish) + pushError { + type = 'ERR_COMMENT_PREFIX', + start = start, + finish = finish - 1, + fix = { + title = 'FIX_COMMENT_PREFIX', + { + start = start, + finish = finish - 1, + text = '--', + }, + } + } + return false + end, + String = function (start, quote, str, finish) + return { + type = 'string', + start = start, + finish = finish - 1, + [1] = str, + [2] = quote, + } + end, + LongString = function (beforeEq, afterEq, str, missPos) + if missPos then + local endSymbol = ']' .. ('='):rep(afterEq-beforeEq) .. ']' + local s, _, w = str:find('(%][%=]*%])[%c%s]*$') + if s then + pushError { + type = 'ERR_LSTRING_END', + start = missPos - #str + s - 1, + finish = missPos - #str + s + #w - 2, + info = { + symbol = endSymbol, + }, + fix = { + title = 'FIX_LSTRING_END', + { + start = missPos - #str + s - 1, + finish = missPos - #str + s + #w - 2, + text = endSymbol, + } + }, + } + end + pushError { + type = 'MISS_SYMBOL', + start = missPos, + finish = missPos, + info = { + symbol = endSymbol, + }, + fix = { + title = 'ADD_LSTRING_END', + { + start = missPos, + finish = missPos, + text = endSymbol, + } + }, + } + end + return '[' .. ('='):rep(afterEq-beforeEq) .. '[', str + end, + Char10 = function (char) + char = tonumber(char) + if not char or char < 0 or char > 255 then + return '' + end + return string_char(char) + end, + Char16 = function (pos, char) + if State.Version == 'Lua 5.1' then + pushError { + type = 'ERR_ESC', + start = pos-1, + finish = pos, + version = {'Lua 5.2', 'Lua 5.3', 'Lua 5.4', 'LuaJIT'}, + info = { + version = State.Version, + } + } + return char + end + return string_char(tonumber(char, 16)) + end, + CharUtf8 = function (pos, char) + if State.Version ~= 'Lua 5.3' + and State.Version ~= 'Lua 5.4' + and State.Version ~= 'LuaJIT' + then + pushError { + type = 'ERR_ESC', + start = pos-3, + finish = pos-2, + version = {'Lua 5.3', 'Lua 5.4', 'LuaJIT'}, + info = { + version = State.Version, + } + } + return char + end + if #char == 0 then + pushError { + type = 'UTF8_SMALL', + start = pos-3, + finish = pos, + } + return '' + end + local v = tonumber(char, 16) + if not v then + for i = 1, #char do + if not tonumber(char:sub(i, i), 16) then + pushError { + type = 'MUST_X16', + start = pos + i - 1, + finish = pos + i - 1, + } + end + end + return '' + end + if State.Version == 'Lua 5.4' then + if v < 0 or v > 0x7FFFFFFF then + pushError { + type = 'UTF8_MAX', + start = pos-3, + finish = pos+#char, + info = { + min = '00000000', + max = '7FFFFFFF', + } + } + end + else + if v < 0 or v > 0x10FFFF then + pushError { + type = 'UTF8_MAX', + start = pos-3, + finish = pos+#char, + version = v <= 0x7FFFFFFF and 'Lua 5.4' or nil, + info = { + min = '000000', + max = '10FFFF', + } + } + end + end + if v >= 0 and v <= 0x10FFFF then + return utf8_char(v) + end + return '' + end, + Number = function (start, number, finish) + local n = tonumber(number) + if n then + State.LastNumber = { + type = 'number', + start = start, + finish = finish - 1, + [1] = n, + } + return State.LastNumber + else + pushError { + type = 'MALFORMED_NUMBER', + start = start, + finish = finish - 1, + } + State.LastNumber = { + type = 'number', + start = start, + finish = finish - 1, + [1] = 0, + } + return State.LastNumber + end + end, + FFINumber = function (start, symbol) + if math.type(State.LastNumber[1]) == 'float' then + pushError { + type = 'UNKNOWN_SYMBOL', + start = start, + finish = start + #symbol - 1, + info = { + symbol = symbol, + } + } + State.LastNumber[1] = 0 + return + end + if State.Version ~= 'LuaJIT' then + pushError { + type = 'UNSUPPORT_SYMBOL', + start = start, + finish = start + #symbol - 1, + version = 'LuaJIT', + info = { + version = State.Version, + } + } + State.LastNumber[1] = 0 + end + end, + ImaginaryNumber = function (start, symbol) + if State.Version ~= 'LuaJIT' then + pushError { + type = 'UNSUPPORT_SYMBOL', + start = start, + finish = start + #symbol - 1, + version = 'LuaJIT', + info = { + version = State.Version, + } + } + end + State.LastNumber[1] = 0 + end, + Name = function (start, str, finish) + local isKeyWord + if RESERVED[str] then + isKeyWord = true + elseif str == 'goto' then + if State.Version ~= 'Lua 5.1' and State.Version ~= 'LuaJIT' then + isKeyWord = true + end + end + if isKeyWord then + pushError { + type = 'KEYWORD', + start = start, + finish = finish - 1, + } + end + return { + type = 'name', + start = start, + finish = finish - 1, + [1] = str, + } + end, + Simple = function (first, ...) + if ... then + local obj = { + type = 'simple', + start = first.start, + first, ..., + } + local last = obj[#obj] + obj.finish = last.finish + return obj + elseif first == '' then + return nil + else + return first + end + end, + SimpleCall = function (simple) + if not simple then + return nil + end + if simple.type ~= 'simple' then + pushError { + type = 'EXP_IN_ACTION', + start = simple.start, + finish = simple.finish, + } + return simple + end + local last = simple[#simple] + if last.type == 'call' then + return simple + end + local colon = simple[#simple-1] + if colon and colon.type == ':' then + -- 型如 `obj:method`,将错误让给MISS_SYMBOL + return simple + end + pushError { + type = 'EXP_IN_ACTION', + start = simple[1].start, + finish = last.finish, + } + return simple + end, + Exp = function (first, ...) + if not ... then + return first + end + local list = {first, ...} + return expSplit(list, 1, #list, 1) + end, + Prefix = function (start, exp, finish) + exp.brackets = true + return exp + end, + Index = function (start, exp, finish) + return { + type = 'index', + start = start, + finish = finish - 1, + [1] = exp, + } + end, + Call = function (start, arg, finish) + if arg == nil then + return { + type = 'call', + start = start, + finish = finish - 1, + } + end + if arg.type == 'list' then + arg.type = 'call' + arg.start = start + arg.finish = finish - 1 + return arg + end + local obj = { + type = 'call', + start = start, + finish = finish - 1, + [1] = arg, + } + return obj + end, + DOTS = function (start) + return { + type = '...', + start = start, + finish = start + 2, + } + end, + DotsAsArg = function (obj) + State.Dots[#State.Dots] = true + return obj + end, + DotsAsExp = function (obj) + if not State.Dots[#State.Dots] then + pushError { + type = 'UNEXPECT_DOTS', + start = obj.start, + finish = obj.finish, + } + end + return obj + end, + COLON = function (start) + return { + type = ':', + start = start, + finish = start, + } + end, + DOT = function (start) + return { + type = '.', + start = start, + finish = start, + } + end, + Function = function (start, argStart, arg, argFinish, ...) + local obj = { + type = 'function', + start = start, + arg = arg, + argStart = argStart - 1, + argFinish = argFinish, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj[max] = nil + if obj.argFinish > obj.finish then + obj.argFinish = obj.finish + end + checkMissEnd(start) + return obj + end, + NamedFunction = function (start, name, argStart, arg, argFinish, ...) + local obj = { + type = 'function', + start = start, + name = name, + arg = arg, + argStart = argStart - 1, + argFinish = argFinish, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj[max] = nil + if obj.argFinish > obj.finish then + obj.argFinish = obj.finish + end + checkMissEnd(start) + return obj + end, + LocalFunction = function (start, name, argStart, arg, argFinish, ...) + local obj = { + type = 'localfunction', + start = start, + name = name, + arg = arg, + argStart = argStart - 1, + argFinish = argFinish, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj[max] = nil + if obj.argFinish > obj.finish then + obj.argFinish = obj.finish + end + + if name.type ~= 'name' then + pushError { + type = 'UNEXPECT_LFUNC_NAME', + start = name.start, + finish = name.finish, + } + end + + checkMissEnd(start) + return obj + end, + Table = function (start, ...) + local args = {...} + local max = #args + local finish = args[max] - 1 + local table = { + type = 'table', + start = start, + finish = finish + } + start = start + 1 + local wantField = true + for i = 1, max-1 do + local arg = args[i] + local isField = type(arg) == 'table' + local isEmmy = isField and arg.type:sub(1, 4) == 'emmy' + if wantField and not isField then + pushError { + type = 'MISS_EXP', + start = start, + finish = arg - 1, + } + elseif not wantField and isField and not isEmmy then + pushError { + type = 'MISS_SEP_IN_TABLE', + start = start, + finish = arg.start-1, + } + end + if isField then + table[#table+1] = arg + if not isEmmy then + wantField = false + start = arg.finish + 1 + end + else + wantField = true + start = arg + end + end + return table + end, + NewField = function (key, value) + return { + type = 'pair', + start = key.start, + finish = value.finish, + key, value, + } + end, + NewIndex = function (key, value) + return { + type = 'pair', + start = key.start, + finish = value.finish, + key, value, + } + end, + List = function (first, second, ...) + if second then + local list = { + type = 'list', + start = first.start, + first, second, ... + } + local last = list[#list] + list.finish = last.finish + return list + elseif type(first) == 'table' then + return first + else + return nil + end + end, + ArgList = function (...) + if ... == '' then + return nil + end + local args = table.pack(...) + local list = {} + local max = args.n + args.n = nil + local wantName = true + for i = 1, max do + local obj = args[i] + if type(obj) == 'number' then + if wantName then + pushError { + type = 'MISS_NAME', + start = obj, + finish = obj, + } + end + wantName = true + else + if not wantName then + pushError { + type = 'MISS_SYMBOL', + start = obj.start-1, + finish = obj.start-1, + info = { + symbol = ',', + } + } + end + wantName = false + list[#list+1] = obj + if obj.type == '...' then + if i < max then + local a = args[i+1] + local b = args[max] + pushError { + type = 'ARGS_AFTER_DOTS', + start = type(a) == 'number' and a or a.start, + finish = type(b) == 'number' and b or b.finish, + } + end + break + end + end + end + if wantName then + local last = args[max] + pushError { + type = 'MISS_NAME', + start = last+1, + finish = last+1, + } + end + if #list == 0 then + return nil + elseif #list == 1 then + return list[1] + else + list.type = 'list' + list.start = list[1].start + list.finish = list[#list].finish + return list + end + end, + CallArgList = function (start, ...) + local args = {...} + local max = #args + local finish = args[max] - 1 + local exps = { + type = 'list', + start = start, + finish = finish, + } + local wantExp = true + for i = 1, max-1 do + local arg = args[i] + local isExp = type(arg) == 'table' + if wantExp and not isExp then + pushError { + type = 'MISS_EXP', + start = start, + finish = arg - 1, + } + elseif not wantExp and isExp then + pushError { + type = 'MISS_SYMBOL', + start = start, + finish = arg.start-1, + info = { + symbol = ',', + } + } + end + if isExp then + exps[#exps+1] = arg + wantExp = false + start = arg.finish + 1 + else + wantExp = true + start = arg + end + end + if wantExp then + pushError { + type = 'MISS_EXP', + start = start, + finish = finish, + } + end + if #exps == 0 then + return nil + elseif #exps == 1 then + return exps[1] + else + return exps + end + end, + Nothing = function () + return nil + end, + None = function() + return + end, + Skip = function () + return false + end, + Set = function (keys, values) + return { + type = 'set', + keys, values, + } + end, + LocalTag = function (...) + if not ... or ... == '' then + return nil + end + local tags = {...} + for i, tag in ipairs(tags) do + if State.Version ~= 'Lua 5.4' then + pushError { + type = 'UNSUPPORT_SYMBOL', + start = tag.start, + finish = tag.finish, + version = 'Lua 5.4', + info = { + version = State.Version, + } + } + elseif tag[1] ~= 'const' and tag[1] ~= 'close' then + pushError { + type = 'UNKNOWN_TAG', + start = tag.start, + finish = tag.finish, + info = { + tag = tag[1], + } + } + elseif i > 1 then + pushError { + type = 'MULTI_TAG', + start = tag.start, + finish = tag.finish, + info = { + tag = tag[1], + } + } + end + end + return tags + end, + LocalName = function (name, tags) + name.tags = tags + return name + end, + Local = function (keys, values) + return { + type = 'local', + keys, values, + } + end, + DoBody = function (...) + if ... == '' then + return { + type = 'do', + } + else + return { + type = 'do', + ... + } + end + end, + Do = function (start, action, finish) + action.start = start + action.finish = finish - 1 + checkMissEnd(start) + return action + end, + Break = function (finish, ...) + if State.Break > 0 then + local breakChunk = { + type = 'break', + } + if not ... then + return breakChunk + end + local action = select(-1, ...) + if not action then + return breakChunk + end + if State.Version == 'Lua 5.1' or State.Version == 'LuaJIT' then + pushError { + type = 'ACTION_AFTER_BREAK', + start = finish - #'break', + finish = finish - 1, + } + end + return breakChunk, action + else + pushError { + type = 'BREAK_OUTSIDE', + start = finish - #'break', + finish = finish - 1, + } + if not ... then + return false + end + local action = select(-1, ...) + if not action then + return false + end + return action + end + end, + BreakStart = function () + State.Break = State.Break + 1 + end, + BreakEnd = function () + State.Break = State.Break - 1 + end, + Return = function (start, exp, finish) + if not finish then + finish = exp + exp = { + type = 'return', + start = start, + finish = finish - 1, + } + else + if exp.type == 'list' then + exp.type = 'return' + exp.start = start + exp.finish = finish - 1 + else + exp = { + type = 'return', + start = start, + finish = finish - 1, + [1] = exp, + } + end + end + return exp + end, + Label = function (start, name, finish) + if State.Version == 'Lua 5.1' then + pushError { + type = 'UNSUPPORT_SYMBOL', + start = start, + finish = finish - 1, + version = {'Lua 5.2', 'Lua 5.3', 'Lua 5.4', 'LuaJIT'}, + info = { + version = State.Version, + } + } + return false + end + name.type = 'label' + local labels = State.Label[#State.Label] + local str = name[1] + if labels[str] then + --pushError { + -- type = 'REDEFINE_LABEL', + -- start = name.start, + -- finish = name.finish, + -- info = { + -- label = str, + -- related = {labels[str].start, labels[str].finish}, + -- } + --} + else + labels[str] = name + end + return name + end, + GoTo = function (start, name, finish) + if State.Version == 'Lua 5.1' then + pushError { + type = 'UNSUPPORT_SYMBOL', + start = start, + finish = finish - 1, + version = {'Lua 5.2', 'Lua 5.3', 'Lua 5.4', 'LuaJIT'}, + info = { + version = State.Version, + } + } + return false + end + name.type = 'goto' + local labels = State.Label[#State.Label] + labels[#labels+1] = name + return name + end, + -- TODO 这里的检查不完整,但是完整的检查比较复杂,开销比较高 + -- 不能jump到另一个局部变量的作用域 + -- 函数会切断goto与label + -- 不能从block外jump到block内,但是可以从block内jump到block外 + BlockStart = function () + State.Label[#State.Label+1] = {} + State.Dots[#State.Dots+1] = false + end, + BlockEnd = function () + local labels = State.Label[#State.Label] + State.Label[#State.Label] = nil + State.Dots[#State.Dots] = nil + for i = 1, #labels do + local name = labels[i] + local str = name[1] + if not labels[str] then + pushError { + type = 'NO_VISIBLE_LABEL', + start = name.start, + finish = name.finish, + info = { + label = str, + } + } + end + end + end, + IfBlock = function (exp, start, ...) + local obj = { + filter = exp, + start = start, + ... + } + local max = #obj + obj.finish = obj[max] + obj[max] = nil + return obj + end, + ElseIfBlock = function (exp, start, ...) + local obj = { + filter = exp, + start = start, + ... + } + local max = #obj + obj.finish = obj[max] + obj[max] = nil + return obj + end, + ElseBlock = function (start, ...) + local obj = { + start = start, + ... + } + local max = #obj + obj.finish = obj[max] + obj[max] = nil + return obj + end, + If = function (start, ...) + local obj = { + type = 'if', + start = start, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj[max] = nil + checkMissEnd(start) + return obj + end, + Loop = function (start, arg, min, max, step, ...) + local obj = { + type = 'loop', + start = start, + arg = arg, + min = min, + max = max, + step = step, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj[max] = nil + checkMissEnd(start) + return obj + end, + In = function (start, arg, exp, ...) + local obj = { + type = 'in', + start = start, + arg = arg, + exp = exp, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj[max] = nil + checkMissEnd(start) + return obj + end, + While = function (start, filter, ...) + local obj = { + type = 'while', + start = start, + filter = filter, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj[max] = nil + checkMissEnd(start) + return obj + end, + Repeat = function (start, ...) + local obj = { + type = 'repeat', + start = start, + ... + } + local max = #obj + obj.finish = obj[max] - 1 + obj.filter = obj[max-1] + obj[max] = nil + obj[max-1] = nil + return obj + end, + Lua = function (...) + if ... == '' then + return {} + end + return {...} + end, + + -- EmmyLua 支持 + EmmyName = function (start, str) + return { + type = 'emmyName', + start = start, + finish = start + #str - 1, + [1] = str, + } + end, + DirtyEmmyName = function (pos) + pushError { + type = 'MISS_NAME', + level = 'warning', + start = pos, + finish = pos, + } + return { + type = 'emmyName', + start = pos-1, + finish = pos-1, + [1] = '' + } + end, + EmmyClass = function (class, startPos, extends) + if extends and extends[1] == '' then + extends.start = startPos + end + return { + type = 'emmyClass', + start = class.start, + finish = (extends or class).finish, + [1] = class, + [2] = extends, + } + end, + EmmyType = function (typeDef) + return typeDef + end, + EmmyCommonType = function (...) + local result = { + type = 'emmyType', + ... + } + for i = 1, #result // 2 do + local startPos = result[i * 2] + local emmyName = result[i * 2 + 1] + if emmyName[1] == '' then + emmyName.start = startPos + end + result[i + 1] = emmyName + end + for i = #result // 2 + 2, #result do + result[i] = nil + end + result.start = result[1].start + result.finish = result[#result].finish + return result + end, + EmmyArrayType = function (start, emmy, _, finish) + emmy.type = 'emmyArrayType' + emmy.start = start + emmy.finish = finish - 1 + return emmy + end, + EmmyTableType = function (start, keyType, valueType, finish) + return { + type = 'emmyTableType', + start = start, + finish = finish - 1, + [1] = keyType, + [2] = valueType, + } + end, + EmmyFunctionType = function (start, args, returns, finish) + local result = { + start = start, + finish = finish - 1, + type = 'emmyFunctionType', + args = args, + returns = returns, + } + return result + end, + EmmyFunctionRtns = function (...) + return {...} + end, + EmmyFunctionArgs = function (...) + local args = {...} + args[#args] = nil + return args + end, + EmmyAlias = function (name, emmyName, ...) + return { + type = 'emmyAlias', + start = name.start, + finish = emmyName.finish, + name, + emmyName, + ... + } + end, + EmmyParam = function (argName, emmyName, option, ...) + local emmy = { + type = 'emmyParam', + option = option, + argName, + emmyName, + ... + } + emmy.start = emmy[1].start + emmy.finish = emmy[#emmy].finish + return emmy + end, + EmmyReturn = function (start, type, name, finish, option) + local emmy = { + type = 'emmyReturn', + option = option, + start = start, + finish = finish - 1, + [1] = type, + [2] = name, + } + return emmy + end, + EmmyField = function (access, fieldName, ...) + local obj = { + type = 'emmyField', + access, fieldName, + ... + } + obj.start = obj[2].start + obj.finish = obj[3].finish + return obj + end, + EmmyGenericBlock = function (genericName, parentName) + return { + start = genericName.start, + finish = parentName and parentName.finish or genericName.finish, + genericName, + parentName, + } + end, + EmmyGeneric = function (...) + local emmy = { + type = 'emmyGeneric', + ... + } + emmy.start = emmy[1].start + emmy.finish = emmy[#emmy].finish + return emmy + end, + EmmyVararg = function (typeName) + return { + type = 'emmyVararg', + start = typeName.start, + finish = typeName.finish, + typeName, + } + end, + EmmyLanguage = function (language) + return { + type = 'emmyLanguage', + start = language.start, + finish = language.finish, + language, + } + end, + EmmySee = function (start, className, methodName, finish) + return { + type = 'emmySee', + start = start, + finish = finish - 1, + className, methodName + } + end, + EmmyOverLoad = function (EmmyFunctionType) + EmmyFunctionType.type = 'emmyOverLoad' + return EmmyFunctionType + end, + EmmyIncomplete = function (emmyName) + emmyName.type = 'emmyIncomplete' + return emmyName + end, + EmmyComment = function (...) + local lines = {...} + for i = 2, #lines do + local line = lines[i] + if line:sub(1, 1) == '|' then + lines[i] = '\n' .. line:sub(2) + end + end + return { + type = 'emmyComment', + [1] = table.concat(lines, '\n'), + } + end, + EmmyOption = function (options) + if not options or options == '' then + return nil + end + local option = {} + for _, pair in ipairs(options) do + if pair.type == 'pair' then + local key = pair[1] + local value = pair[2] + if key.type == 'name' then + option[key[1]] = value[1] + end + end + end + return option + end, + EmmyTypeEnum = function (default, enum, comment) + enum.type = 'emmyEnum' + if default ~= '' then + enum.default = true + end + enum.comment = comment + return enum + end, + + -- 捕获错误 + UnknownSymbol = function (start, symbol) + pushError { + type = 'UNKNOWN_SYMBOL', + start = start, + finish = start + #symbol - 1, + info = { + symbol = symbol, + } + } + return + end, + UnknownAction = function (start, symbol) + pushError { + type = 'UNKNOWN_SYMBOL', + start = start, + finish = start + #symbol - 1, + info = { + symbol = symbol, + } + } + return false + end, + DirtyName = function (pos) + pushError { + type = 'MISS_NAME', + start = pos, + finish = pos, + } + return { + type = 'name', + start = pos-1, + finish = pos-1, + [1] = '' + } + end, + DirtyExp = function (pos) + pushError { + type = 'MISS_EXP', + start = pos, + finish = pos, + } + return { + type = 'name', + start = pos, + finish = pos, + [1] = '' + } + end, + MissExp = function (pos) + pushError { + type = 'MISS_EXP', + start = pos, + finish = pos, + } + end, + MissExponent = function (start, finish) + pushError { + type = 'MISS_EXPONENT', + start = start, + finish = finish - 1, + } + end, + MissQuote1 = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = '"' + } + } + end, + MissQuote2 = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = "'" + } + } + end, + MissEscX = function (pos) + pushError { + type = 'MISS_ESC_X', + start = pos-2, + finish = pos+1, + } + end, + MissTL = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = '{', + } + } + end, + MissTR = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = '}', + } + } + return pos + 1 + end, + MissBR = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = ']', + } + } + return pos + 1 + end, + MissPL = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = '(', + } + } + end, + DirtyPR = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = ')', + } + } + return pos + 1 + end, + MissPR = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = ')', + } + } + end, + ErrEsc = function (pos) + pushError { + type = 'ERR_ESC', + start = pos-1, + finish = pos, + } + end, + MustX16 = function (pos, str) + pushError { + type = 'MUST_X16', + start = pos, + finish = pos + #str - 1, + } + end, + MissAssign = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = '=', + } + } + end, + MissTableSep = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = ',' + } + } + end, + MissField = function (pos) + pushError { + type = 'MISS_FIELD', + start = pos, + finish = pos, + } + end, + MissMethod = function (pos) + pushError { + type = 'MISS_METHOD', + start = pos, + finish = pos, + } + end, + MissLabel = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = '::', + } + } + end, + MissEnd = function (pos) + State.MissEndErr = pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = 'end', + } + } + end, + MissDo = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = 'do', + } + } + end, + MissComma = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = ',', + } + } + end, + MissIn = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = 'in', + } + } + end, + MissUntil = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = 'until', + } + } + end, + MissThen = function (pos) + pushError { + type = 'MISS_SYMBOL', + start = pos, + finish = pos, + info = { + symbol = 'then', + } + } + end, + ExpInAction = function (start, exp, finish) + pushError { + type = 'EXP_IN_ACTION', + start = start, + finish = finish - 1, + } + return exp + end, + AfterReturn = function (rtn, ...) + if not ... then + return rtn + end + local action = select(-1, ...) + if not action then + return rtn + end + pushError { + type = 'ACTION_AFTER_RETURN', + start = rtn.start, + finish = rtn.finish, + } + return rtn, action + end, + MissIf = function (start, block) + pushError { + type = 'MISS_SYMBOL', + start = start, + finish = start, + info = { + symbol = 'if', + } + } + return block + end, + MissGT = function (start) + pushError { + type = 'MISS_SYMBOL', + start = start, + finish = start, + info = { + symbol = '>' + } + } + end, + ErrAssign = function (start, finish) + pushError { + type = 'ERR_ASSIGN_AS_EQ', + start = start, + finish = finish - 1, + fix = { + title = 'FIX_ASSIGN_AS_EQ', + { + start = start, + finish = finish - 1, + text = '=', + } + } + } + end, + ErrEQ = function (start, finish) + pushError { + type = 'ERR_EQ_AS_ASSIGN', + start = start, + finish = finish - 1, + fix = { + title = 'FIX_EQ_AS_ASSIGN', + { + start = start, + finish = finish - 1, + text = '==', + } + } + } + return '==' + end, + ErrUEQ = function (start, finish) + pushError { + type = 'ERR_UEQ', + start = start, + finish = finish - 1, + fix = { + title = 'FIX_UEQ', + { + start = start, + finish = finish - 1, + text = '~=', + } + } + } + return '==' + end, + ErrThen = function (start, finish) + pushError { + type = 'ERR_THEN_AS_DO', + start = start, + finish = finish - 1, + fix = { + title = 'FIX_THEN_AS_DO', + { + start = start, + finish = finish - 1, + text = 'then', + } + } + } + end, + ErrDo = function (start, finish) + pushError { + type = 'ERR_DO_AS_THEN', + start = start, + finish = finish - 1, + fix = { + title = 'FIX_DO_AS_THEN', + { + start = start, + finish = finish - 1, + text = 'do', + } + } + } + end, +} + +local function init(state, errs) + State = state + Errs = errs +end + +return { + defs = Defs, + init = init, +} diff --git a/script/src/parser/calcline.lua b/script/src/parser/calcline.lua new file mode 100644 index 00000000..26f475d9 --- /dev/null +++ b/script/src/parser/calcline.lua @@ -0,0 +1,93 @@ +local m = require 'lpeglabel' + +local row +local fl +local NL = (m.P'\r\n' + m.S'\r\n') * m.Cp() / function (pos) + row = row + 1 + fl = pos +end +local ROWCOL = (NL + m.P(1))^0 +local function rowcol(str, n) + row = 1 + fl = 1 + ROWCOL:match(str:sub(1, n)) + local col = n - fl + 1 + return row, col +end + +local function rowcol_utf8(str, n) + row = 1 + fl = 1 + ROWCOL:match(str:sub(1, n)) + return row, utf8.len(str, fl, n) +end + +local function position(str, _row, _col) + local cur = 1 + local row = 1 + while true do + if row == _row then + return cur + _col - 1 + elseif row > _row then + return cur - 1 + end + local pos = str:find('[\r\n]', cur) + if not pos then + return #str + end + row = row + 1 + if str:sub(pos, pos+1) == '\r\n' then + cur = pos + 2 + else + cur = pos + 1 + end + end +end + +local function position_utf8(str, _row, _col) + local cur = 1 + local row = 1 + while true do + if row == _row then + return utf8.offset(str, _col, cur) + elseif row > _row then + return cur - 1 + end + local pos = str:find('[\r\n]', cur) + if not pos then + return #str + end + row = row + 1 + if str:sub(pos, pos+1) == '\r\n' then + cur = pos + 2 + else + cur = pos + 1 + end + end +end + +local NL = m.P'\r\n' + m.S'\r\n' + +local function line(str, row) + local count = 0 + local res + local LINE = m.Cmt((1 - NL)^0, function (_, _, c) + count = count + 1 + if count == row then + res = c + return false + end + return true + end) + local MATCH = (LINE * NL)^0 * LINE + MATCH:match(str) + return res +end + +return { + rowcol = rowcol, + rowcol_utf8 = rowcol_utf8, + position = position, + position_utf8 = position_utf8, + line = line, +} diff --git a/script/src/parser/grammar.lua b/script/src/parser/grammar.lua new file mode 100644 index 00000000..568b8544 --- /dev/null +++ b/script/src/parser/grammar.lua @@ -0,0 +1,630 @@ +local re = require 'parser.relabel' +local m = require 'lpeglabel' +local ast = require 'parser.ast' + +local scriptBuf = '' +local compiled = {} +local parser +local defs = ast.defs + +-- goto 可以作为名字,合法性之后处理 +local RESERVED = { + ['and'] = true, + ['break'] = true, + ['do'] = true, + ['else'] = true, + ['elseif'] = true, + ['end'] = true, + ['false'] = true, + ['for'] = true, + ['function'] = true, + ['if'] = true, + ['in'] = true, + ['local'] = true, + ['nil'] = true, + ['not'] = true, + ['or'] = true, + ['repeat'] = true, + ['return'] = true, + ['then'] = true, + ['true'] = true, + ['until'] = true, + ['while'] = true, +} + +defs.nl = (m.P'\r\n' + m.S'\r\n') +defs.s = m.S' \t' +defs.S = - defs.s +defs.ea = '\a' +defs.eb = '\b' +defs.ef = '\f' +defs.en = '\n' +defs.er = '\r' +defs.et = '\t' +defs.ev = '\v' +defs['nil'] = m.Cp() / function () return nil end +defs['false'] = m.Cp() / function () return false end +defs.NotReserved = function (_, _, str) + if RESERVED[str] then + return false + end + return true +end +defs.Reserved = function (_, _, str) + if RESERVED[str] then + return true + end + return false +end +defs.None = function () end +defs.np = m.Cp() / function (n) return n+1 end + +m.setmaxstack(1000) + +local eof = re.compile '!. / %{SYNTAX_ERROR}' + +local function grammar(tag) + return function (script) + scriptBuf = script .. '\r\n' .. scriptBuf + compiled[tag] = re.compile(scriptBuf, defs) * eof + end +end + +local function errorpos(pos, err) + return { + type = 'UNKNOWN', + start = pos or 0, + finish = pos or 0, + err = err, + } +end + +grammar 'Comment' [[ +Comment <- LongComment / '--' ShortComment +LongComment <- ('--[' {} {:eq: '='* :} {} '[' + {(!CommentClose .)*} + (CommentClose {} / {} {})) + -> LongComment + / ( + {} '/*' {} + (!'*/' .)* + {} '*/' {} + ) + -> CLongComment +CommentClose <- ']' =eq ']' +ShortComment <- (!%nl .)* +]] + +grammar 'Sp' [[ +Sp <- (Comment / %nl / %s)* +Sps <- (Comment / %nl / %s)+ +]] + +grammar 'Common' [[ +Word <- [a-zA-Z0-9_] +Cut <- !Word +X16 <- [a-fA-F0-9] +Rest <- (!%nl .)* + +AND <- Sp {'and'} Cut +BREAK <- Sp 'break' Cut +DO <- Sp 'do' Cut + / Sp ({} 'then' Cut {}) -> ErrDo +ELSE <- Sp 'else' Cut +ELSEIF <- Sp 'elseif' Cut +END <- Sp 'end' Cut +FALSE <- Sp 'false' Cut +FOR <- Sp 'for' Cut +FUNCTION <- Sp 'function' Cut +GOTO <- Sp 'goto' Cut +IF <- Sp 'if' Cut +IN <- Sp 'in' Cut +LOCAL <- Sp 'local' Cut +NIL <- Sp 'nil' Cut +NOT <- Sp 'not' Cut +OR <- Sp {'or'} Cut +REPEAT <- Sp 'repeat' Cut +RETURN <- Sp 'return' Cut +THEN <- Sp 'then' Cut + / Sp ({} 'do' Cut {}) -> ErrThen +TRUE <- Sp 'true' Cut +UNTIL <- Sp 'until' Cut +WHILE <- Sp 'while' Cut + +Esc <- '\' -> '' + EChar +EChar <- 'a' -> ea + / 'b' -> eb + / 'f' -> ef + / 'n' -> en + / 'r' -> er + / 't' -> et + / 'v' -> ev + / '\' + / '"' + / "'" + / %nl + / ('z' (%nl / %s)*) -> '' + / ({} 'x' {X16 X16}) -> Char16 + / ([0-9] [0-9]? [0-9]?) -> Char10 + / ('u{' {} {Word*} '}') -> CharUtf8 + -- 错误处理 + / 'x' {} -> MissEscX + / 'u' !'{' {} -> MissTL + / 'u{' Word* !'}' {} -> MissTR + / {} -> ErrEsc + +BOR <- Sp {'|'} +BXOR <- Sp {'~'} !'=' +BAND <- Sp {'&'} +Bshift <- Sp {BshiftList} +BshiftList <- '<<' + / '>>' +Concat <- Sp {'..'} +Adds <- Sp {AddsList} +AddsList <- '+' + / '-' +Muls <- Sp {MulsList} +MulsList <- '*' + / '//' + / '/' + / '%' +Unary <- Sp {} {UnaryList} +UnaryList <- NOT + / '#' + / '-' + / '~' !'=' +POWER <- Sp {'^'} + +BinaryOp <- Sp {} {'or'} Cut + / Sp {} {'and'} Cut + / Sp {} {'<=' / '>=' / '<'!'<' / '>'!'>' / '~=' / '=='} + / Sp {} ({} '=' {}) -> ErrEQ + / Sp {} ({} '!=' {}) -> ErrUEQ + / Sp {} {'|'} + / Sp {} {'~'} + / Sp {} {'&'} + / Sp {} {'<<' / '>>'} + / Sp {} {'..'} !'.' + / Sp {} {'+' / '-'} + / Sp {} {'*' / '//' / '/' / '%'} + / Sp {} {'^'} +UnaryOp <- Sp {} {'not' Cut / '#' / '~' !'=' / '-' !'-'} + +PL <- Sp '(' +PR <- Sp ')' +BL <- Sp '[' !'[' !'=' +BR <- Sp ']' +TL <- Sp '{' +TR <- Sp '}' +COMMA <- Sp ',' +SEMICOLON <- Sp ';' +DOTS <- Sp ({} '...') -> DOTS +DOT <- Sp ({} '.' !'.') -> DOT +COLON <- Sp ({} ':' !':') -> COLON +LABEL <- Sp '::' +ASSIGN <- Sp '=' !'=' +AssignOrEQ <- Sp ({} '==' {}) -> ErrAssign + / Sp '=' + +Nothing <- {} -> Nothing + +DirtyBR <- BR {} / {} -> MissBR +DirtyTR <- TR {} / {} -> MissTR +DirtyPR <- PR {} / {} -> DirtyPR +DirtyLabel <- LABEL / {} -> MissLabel +NeedPR <- PR / {} -> MissPR +NeedEnd <- END / {} -> MissEnd +NeedDo <- DO / {} -> MissDo +NeedAssign <- ASSIGN / {} -> MissAssign +NeedComma <- COMMA / {} -> MissComma +NeedIn <- IN / {} -> MissIn +NeedUntil <- UNTIL / {} -> MissUntil +]] + +grammar 'Nil' [[ +Nil <- Sp ({} -> Nil) NIL +]] + +grammar 'Boolean' [[ +Boolean <- Sp ({} -> True) TRUE + / Sp ({} -> False) FALSE +]] + +grammar 'String' [[ +String <- Sp ({} StringDef {}) + -> String +StringDef <- {'"'} + {~(Esc / !%nl !'"' .)*~} -> 1 + ('"' / {} -> MissQuote1) + / {"'"} + {~(Esc / !%nl !"'" .)*~} -> 1 + ("'" / {} -> MissQuote2) + / ('[' {} {:eq: '='* :} {} '[' %nl? + {(!StringClose .)*} -> 1 + (StringClose / {})) + -> LongString +StringClose <- ']' =eq ']' +]] + +grammar 'Number' [[ +Number <- Sp ({} {NumberDef} {}) -> Number + NumberSuffix? + ErrNumber? +NumberDef <- Number16 / Number10 +NumberSuffix<- ({} {[uU]? [lL] [lL]}) -> FFINumber + / ({} {[iI]}) -> ImaginaryNumber +ErrNumber <- ({} {([0-9a-zA-Z] / '.')+}) -> UnknownSymbol + +Number10 <- Float10 Float10Exp? + / Integer10 Float10? Float10Exp? +Integer10 <- [0-9]+ ('.' [0-9]*)? +Float10 <- '.' [0-9]+ +Float10Exp <- [eE] [+-]? [0-9]+ + / ({} [eE] [+-]? {}) -> MissExponent + +Number16 <- '0' [xX] Float16 Float16Exp? + / '0' [xX] Integer16 Float16? Float16Exp? +Integer16 <- X16+ ('.' X16*)? + / ({} {Word*}) -> MustX16 +Float16 <- '.' X16+ + / '.' ({} {Word*}) -> MustX16 +Float16Exp <- [pP] [+-]? [0-9]+ + / ({} [pP] [+-]? {}) -> MissExponent +]] + +grammar 'Name' [[ +Name <- Sp ({} NameBody {}) + -> Name +NameBody <- {[a-zA-Z_] [a-zA-Z0-9_]*} +FreeName <- Sp ({} {NameBody=>NotReserved} {}) + -> Name +MustName <- Name / DirtyName +DirtyName <- {} -> DirtyName +]] + +grammar 'Exp' [[ +Exp <- (UnUnit (BinaryOp (UnUnit / {} -> DirtyExp))*) + -> Exp +UnUnit <- ExpUnit + / UnaryOp+ (ExpUnit / {} -> DirtyExp) +ExpUnit <- Nil + / Boolean + / String + / Number + / DOTS -> DotsAsExp + / Table + / Function + / Simple + +Simple <- (Prefix (Sp Suffix)*) + -> Simple +Prefix <- Sp ({} PL DirtyExp DirtyPR) + -> Prefix + / FreeName +Index <- ({} BL DirtyExp DirtyBR) -> Index +Suffix <- DOT Name / DOT {} -> MissField + / Method (!(Sp CallStart) {} -> MissPL)? + / ({} Table {}) -> Call + / ({} String {}) -> Call + / Index + / ({} PL CallArgList DirtyPR) -> Call +Method <- COLON Name / COLON {} -> MissMethod +CallStart <- PL + / TL + / '"' + / "'" + / '[' '='* '[' + +DirtyExp <- Exp + / {} -> DirtyExp +MaybeExp <- Exp / MissExp +MissExp <- {} -> MissExp +ExpList <- Sp (MaybeExp (COMMA (MaybeExp))*) + -> List +MustExpList <- Sp (Exp (COMMA (MaybeExp))*) + -> List +CallArgList <- Sp ({} (COMMA {} / Exp)+ {}) + -> CallArgList + / %nil +NameList <- (MustName (COMMA MustName)*) + -> List + +ArgList <- (DOTS -> DotsAsArg / Name / Sp {} COMMA)* + -> ArgList + +Table <- Sp ({} TL TableFields? DirtyTR) + -> Table +TableFields <- (Emmy / TableSep {} / TableField)+ +TableSep <- COMMA / SEMICOLON +TableField <- NewIndex / NewField / Exp +NewIndex <- Sp (Index NeedAssign DirtyExp) + -> NewIndex +NewField <- (MustName ASSIGN DirtyExp) + -> NewField + +Function <- Sp ({} FunctionBody {}) + -> Function +FuncArg <- PL {} ArgList {} NeedPR + / {} {} -> MissPL Nothing {} +FunctionBody<- FUNCTION BlockStart FuncArg + (Emmy / !END Action)* + BlockEnd + NeedEnd + +BlockStart <- {} -> BlockStart +BlockEnd <- {} -> BlockEnd + +-- 纯占位,修改了 `relabel.lua` 使重复定义不抛错 +Action <- !END . +Set <- END +Emmy <- '---@' +]] + +grammar 'Action' [[ +Action <- Sp (CrtAction / UnkAction) +CrtAction <- Semicolon + / Do + / Break + / Return + / Label + / GoTo + / If + / For + / While + / Repeat + / NamedFunction + / LocalFunction + / Local + / Set + / Call + / ExpInAction +UnkAction <- ({} {Word+}) + -> UnknownAction + / ({} '//' {} (LongComment / ShortComment)) + -> CCommentPrefix + / ({} {. (!Sps !CrtAction .)*}) + -> UnknownAction +ExpInAction <- Sp ({} Exp {}) + -> ExpInAction + +Semicolon <- SEMICOLON + -> Skip +SimpleList <- (Simple (COMMA Simple)*) + -> List + +Do <- Sp ({} 'do' Cut DoBody NeedEnd {}) + -> Do +DoBody <- (Emmy / !END Action)* + -> DoBody + +Break <- BREAK ({} Semicolon* AfterBreak?) + -> Break +AfterBreak <- Sp !END !UNTIL !ELSEIF !ELSE Action +BreakStart <- {} -> BreakStart +BreakEnd <- {} -> BreakEnd + +Return <- (ReturnBody Semicolon* AfterReturn?) + -> AfterReturn +ReturnBody <- Sp ({} RETURN MustExpList? {}) + -> Return +AfterReturn <- Sp !END !UNTIL !ELSEIF !ELSE Action + +Label <- Sp ({} LABEL MustName DirtyLabel {}) -> Label + +GoTo <- Sp ({} GOTO MustName {}) -> GoTo + +If <- Sp ({} IfBody {}) + -> If +IfHead <- (IfPart -> IfBlock) + / ({} ElseIfPart -> ElseIfBlock) + -> MissIf + / ({} ElsePart -> ElseBlock) + -> MissIf +IfBody <- IfHead + (ElseIfPart -> ElseIfBlock)* + (ElsePart -> ElseBlock)? + NeedEnd +IfPart <- IF DirtyExp THEN + {} (Emmy / !ELSEIF !ELSE !END Action)* {} + / IF DirtyExp {}->MissThen + {} {} +ElseIfPart <- ELSEIF DirtyExp THEN + {} (Emmy / !ELSE !ELSEIF !END Action)* {} + / ELSEIF DirtyExp {}->MissThen + {} {} +ElsePart <- ELSE + {} (Emmy / !END Action)* {} + +For <- Loop / In + / FOR + +Loop <- Sp ({} LoopBody {}) + -> Loop +LoopBody <- FOR LoopStart LoopFinish LoopStep NeedDo + BreakStart + (Emmy / !END Action)* + BreakEnd + NeedEnd +LoopStart <- MustName AssignOrEQ DirtyExp +LoopFinish <- NeedComma DirtyExp +LoopStep <- COMMA DirtyExp + / NeedComma Exp + / Nothing + +In <- Sp ({} InBody {}) + -> In +InBody <- FOR InNameList NeedIn ExpList NeedDo + BreakStart + (Emmy / !END Action)* + BreakEnd + NeedEnd +InNameList <- &IN DirtyName + / NameList + +While <- Sp ({} WhileBody {}) + -> While +WhileBody <- WHILE DirtyExp NeedDo + BreakStart + (Emmy / !END Action)* + BreakEnd + NeedEnd + +Repeat <- Sp ({} RepeatBody {}) + -> Repeat +RepeatBody <- REPEAT + BreakStart + (Emmy / !UNTIL Action)* + BreakEnd + NeedUntil DirtyExp + +LocalTag <- (Sp '<' Sp MustName Sp LocalTagEnd)* + -> LocalTag +LocalTagEnd <- '>' / {} -> MissGT +Local <- (LOCAL LocalNameList (AssignOrEQ ExpList)?) + -> Local +Set <- (SimpleList AssignOrEQ ExpList?) + -> Set +LocalNameList + <- (LocalName (COMMA LocalName)*) + -> List +LocalName <- (MustName LocalTag) + -> LocalName + +Call <- Simple + -> SimpleCall + +LocalFunction + <- Sp ({} LOCAL FunctionNamedBody {}) + -> LocalFunction + +NamedFunction + <- Sp ({} FunctionNamedBody {}) + -> NamedFunction +FunctionNamedBody + <- FUNCTION FuncName BlockStart FuncArg + (Emmy / !END Action)* + BlockEnd + NeedEnd +FuncName <- (MustName (DOT MustName)* FuncMethod?) + -> Simple +FuncMethod <- COLON Name / COLON {} -> MissMethod + +-- 占位 +Emmy <- '---@' +]] + +grammar 'Emmy' [[ +Emmy <- EmmyAction + / EmmyComments +EmmyAction <- EmmySp '---' %s* '@' EmmyBody ShortComment +EmmySp <- (!'---' Comment / %s / %nl)* +EmmyComments <- EmmyComment+ + -> EmmyComment +EmmyComment <- EmmySp '---' %s* !'@' {(!%nl .)*} +EmmyBody <- 'class' %s+ EmmyClass -> EmmyClass + / 'type' %s+ EmmyType -> EmmyType + / 'alias' %s+ EmmyAlias -> EmmyAlias + / 'param' %s+ EmmyParam -> EmmyParam + / 'return' %s+ EmmyReturn -> EmmyReturn + / 'field' %s+ EmmyField -> EmmyField + / 'generic' %s+ EmmyGeneric -> EmmyGeneric + / 'vararg' %s+ EmmyVararg -> EmmyVararg + / 'language' %s+ EmmyLanguage -> EmmyLanguage + / 'see' %s+ EmmySee -> EmmySee + / 'overload' %s+ EmmyOverLoad -> EmmyOverLoad + / EmmyIncomplete + +EmmyName <- ({} {[a-zA-Z_] [a-zA-Z0-9_]*}) + -> EmmyName +MustEmmyName <- EmmyName / DirtyEmmyName +DirtyEmmyName <- {} -> DirtyEmmyName +EmmyLongName <- ({} {(!%nl .)+}) + -> EmmyName +EmmyIncomplete <- MustEmmyName + -> EmmyIncomplete + +EmmyClass <- (MustEmmyName EmmyParentClass?) +EmmyParentClass <- %s* {} ':' %s* MustEmmyName + +EmmyType <- EmmyFunctionType + / EmmyTableType + / EmmyArrayType + / EmmyCommonType +EmmyCommonType <- EmmyTypeNames + -> EmmyCommonType +EmmyTypeNames <- EmmyTypeName (%s* {} '|' %s* !String EmmyTypeName)* +EmmyTypeName <- EmmyFunctionType + / EmmyTableType + / EmmyArrayType + / MustEmmyName +EmmyTypeEnum <- %s* (%nl %s* '---')? '|' EmmyEnum + -> EmmyTypeEnum +EmmyEnum <- %s* {'>'?} %s* String (EmmyEnumComment / (!%nl !'|' .)*) +EmmyEnumComment <- %s* '#' %s* {(!%nl .)*} + +EmmyAlias <- MustEmmyName %s* EmmyType EmmyTypeEnum* + +EmmyParam <- MustEmmyName %s* EmmyType %s* EmmyOption %s* EmmyTypeEnum* +EmmyOption <- Table? + -> EmmyOption + +EmmyReturn <- {} %nil %nil {} Table -> EmmyOption + / {} EmmyType (%s* EmmyName/%nil) {} EmmyOption + +EmmyField <- (EmmyFieldAccess MustEmmyName %s* EmmyType) +EmmyFieldAccess <- ({'public'} Cut %s*) + / ({'protected'} Cut %s*) + / ({'private'} Cut %s*) + / {} -> 'public' + +EmmyGeneric <- EmmyGenericBlock + (%s* ',' %s* EmmyGenericBlock)* +EmmyGenericBlock<- (MustEmmyName %s* (':' %s* EmmyType)?) + -> EmmyGenericBlock + +EmmyVararg <- EmmyType + +EmmyLanguage <- MustEmmyName + +EmmyArrayType <- ({} MustEmmyName -> EmmyCommonType {} '[' DirtyBR) + -> EmmyArrayType + / ({} PL EmmyCommonType DirtyPR '[' DirtyBR) + -> EmmyArrayType + +EmmyTableType <- ({} 'table' Cut '<' %s* EmmyType %s* ',' %s* EmmyType %s* '>' {}) + -> EmmyTableType + +EmmyFunctionType<- ({} 'fun' Cut %s* EmmyFunctionArgs %s* EmmyFunctionRtns {}) + -> EmmyFunctionType +EmmyFunctionArgs<- ('(' %s* EmmyFunctionArg %s* (',' %s* EmmyFunctionArg %s*)* DirtyPR) + -> EmmyFunctionArgs + / '(' %nil DirtyPR -> None + / %nil +EmmyFunctionRtns<- (':' %s* EmmyType (%s* ',' %s* EmmyType)*) + -> EmmyFunctionRtns + / %nil +EmmyFunctionArg <- MustEmmyName %s* ':' %s* EmmyType + +EmmySee <- {} MustEmmyName %s* '#' %s* MustEmmyName {} +EmmyOverLoad <- EmmyFunctionType +]] + +grammar 'Lua' [[ +Lua <- Head? + (Emmy / Action)* -> Lua + BlockEnd + Sp +Head <- '#' (!%nl .)* +]] + +return function (self, lua, mode) + local gram = compiled[mode] or compiled['Lua'] + local r, _, pos = gram:match(lua) + if not r then + local err = errorpos(pos) + return nil, err + end + + return r +end diff --git a/script/src/parser/init.lua b/script/src/parser/init.lua new file mode 100644 index 00000000..30596dbe --- /dev/null +++ b/script/src/parser/init.lua @@ -0,0 +1,9 @@ +local api = { + grammar = require 'parser.grammar', + parse = require 'parser.parse', + split = require 'parser.split', + calcline = require 'parser.calcline', + lines = require 'parser.lines', +} + +return api diff --git a/script/src/parser/lines.lua b/script/src/parser/lines.lua new file mode 100644 index 00000000..f2f076e1 --- /dev/null +++ b/script/src/parser/lines.lua @@ -0,0 +1,187 @@ +local m = require 'lpeglabel' + +local function utf8_len(buf, start, finish) + local len, pos = utf8.len(buf, start, finish) + if len then + return len + end + return 1 + utf8_len(buf, start, pos-1) + utf8_len(buf, pos+1, finish) +end + +local function Line(start, line, finish) + line.start = start + line.finish = finish - 1 + return line +end + +local function Space(...) + local line = {...} + local sp = 0 + local tab = 0 + for i = 1, #line do + if line[i] == ' ' then + sp = sp + 1 + elseif line[i] == '\t' then + tab = tab + 1 + end + line[i] = nil + end + line.sp = sp + line.tab = tab + return line +end + +local parser = m.P{ +'Lines', +Lines = m.Ct(m.V'Line'^0 * m.V'LastLine'), +Line = m.Cp() * m.V'Indent' * (1 - m.V'Nl')^0 * m.Cp() * m.V'Nl' / Line, +LastLine= m.Cp() * m.V'Indent' * (1 - m.V'Nl')^0 * m.Cp() / Line, +Nl = m.P'\r\n' + m.S'\r\n', +Indent = m.C(m.S' \t')^0 / Space, +} + +local mt = {} +mt.__index = mt + +function mt:position(row, col, code) + if row < 1 then + return 1 + end + code = code or self.code + if row > #self then + if code == 'utf8' then + return utf8_len(self.buf) + 1 + else + return #self.buf + 1 + end + end + local line = self[row] + local next_line = self[row+1] + local start = line.start + local finish + if next_line then + finish = next_line.start - 1 + else + finish = #self.buf + 1 + end + local pos + if code == 'utf8' then + pos = utf8.offset(self.buf, col, start) or finish + else + pos = start + col - 1 + end + if pos < start then + pos = start + elseif pos > finish then + pos = finish + end + return pos +end + +local function isCharByte(byte) + if not byte then + return false + end + -- [0-9] + if byte >= 48 and byte <= 57 then + return true + end + -- [A-Z] + if byte >= 65 and byte <= 90 then + return true + end + -- [a-z] + if byte >= 97 and byte <= 122 then + return true + end + -- <utf8> + if byte >= 128 then + return true + end + return false +end + +function mt:positionAsChar(row, col, code) + local pos = self:position(row, col, code) + if isCharByte(self.buf:byte(pos, pos)) then + return pos + elseif isCharByte(self.buf:byte(pos+1, pos+1)) then + return pos + 1 + end + return pos +end + +function mt:rowcol(pos, code) + if pos < 1 then + return 1, 1 + end + code = code or self.code + if pos >= #self.buf + 1 then + local start = self[#self].start + if code == 'utf8' then + return #self, utf8_len(self.buf, start) + 1 + else + return #self, #self.buf - start + 2 + end + end + local min = 1 + local max = #self + for _ = 1, 100 do + if max == min then + local start = self[min].start + if code == 'utf8' then + return min, utf8_len(self.buf, start, pos) + else + return min, pos - start + 1 + end + end + local row = (max - min) // 2 + min + local start = self[row].start + if pos < start then + max = row + elseif pos > start then + local next_start = self[row + 1].start + if pos < next_start then + if code == 'utf8' then + return row, utf8_len(self.buf, start, pos) + else + return row, pos - start + 1 + end + elseif pos > next_start then + min = row + 1 + else + return row + 1, 1 + end + else + return row, 1 + end + end + error('rowcol failed!') +end + +function mt:line(i) + local start, finish = self:range(i) + return self.buf:sub(start, finish) +end + +function mt:range(i) + if i < 1 or i > #self then + return 0, 0 + end + return self[i].start, self[i].finish +end + +function mt:set_code(code) + self.code = code +end + +return function (self, buf, code) + local lines, err = parser:match(buf) + if not lines then + return nil, err + end + lines.buf = buf + lines.code = code + + return setmetatable(lines, mt) +end diff --git a/script/src/parser/parse.lua b/script/src/parser/parse.lua new file mode 100644 index 00000000..6ad79d9b --- /dev/null +++ b/script/src/parser/parse.lua @@ -0,0 +1,41 @@ +local ast = require 'parser.ast' + +local Errs +local State + +local function pushError(err) + if err.finish < err.start then + err.finish = err.start + end + local last = Errs[#Errs] + if last then + if last.start <= err.start and last.finish >= err.finish then + return + end + end + err.level = err.level or 'error' + Errs[#Errs+1] = err + return err +end + +return function (self, lua, mode, version) + Errs = {} + State= { + Break = 0, + Label = {{}}, + Dots = {true}, + Version = version, + Comments = {}, + Lua = lua, + } + ast.init(State, Errs) + local suc, res, err = xpcall(self.grammar, debug.traceback, self, lua, mode) + if not suc then + return nil, res + end + if not res then + pushError(err) + return nil, Errs + end + return res, Errs, State.Comments +end diff --git a/script/src/parser/relabel.lua b/script/src/parser/relabel.lua new file mode 100644 index 00000000..ac902403 --- /dev/null +++ b/script/src/parser/relabel.lua @@ -0,0 +1,361 @@ +-- $Id: re.lua,v 1.44 2013/03/26 20:11:40 roberto Exp $ + +-- imported functions and modules +local tonumber, type, print, error = tonumber, type, print, error +local pcall = pcall +local setmetatable = setmetatable +local tinsert, concat = table.insert, table.concat +local rep = string.rep +local m = require"lpeglabel" + +-- 'm' will be used to parse expressions, and 'mm' will be used to +-- create expressions; that is, 're' runs on 'm', creating patterns +-- on 'mm' +local mm = m + +-- pattern's metatable +local mt = getmetatable(mm.P(0)) + + + +-- No more global accesses after this point +_ENV = nil + + +local any = m.P(1) +local dummy = mm.P(false) + + +local errinfo = { + NoPatt = "no pattern found", + ExtraChars = "unexpected characters after the pattern", + + ExpPatt1 = "expected a pattern after '/'", + + ExpPatt2 = "expected a pattern after '&'", + ExpPatt3 = "expected a pattern after '!'", + + ExpPatt4 = "expected a pattern after '('", + ExpPatt5 = "expected a pattern after ':'", + ExpPatt6 = "expected a pattern after '{~'", + ExpPatt7 = "expected a pattern after '{|'", + + ExpPatt8 = "expected a pattern after '<-'", + + ExpPattOrClose = "expected a pattern or closing '}' after '{'", + + ExpNumName = "expected a number, '+', '-' or a name (no space) after '^'", + ExpCap = "expected a string, number, '{}' or name after '->'", + + ExpName1 = "expected the name of a rule after '=>'", + ExpName2 = "expected the name of a rule after '=' (no space)", + ExpName3 = "expected the name of a rule after '<' (no space)", + + ExpLab1 = "expected a label after '{'", + + ExpNameOrLab = "expected a name or label after '%' (no space)", + + ExpItem = "expected at least one item after '[' or '^'", + + MisClose1 = "missing closing ')'", + MisClose2 = "missing closing ':}'", + MisClose3 = "missing closing '~}'", + MisClose4 = "missing closing '|}'", + MisClose5 = "missing closing '}'", -- for the captures + + MisClose6 = "missing closing '>'", + MisClose7 = "missing closing '}'", -- for the labels + + MisClose8 = "missing closing ']'", + + MisTerm1 = "missing terminating single quote", + MisTerm2 = "missing terminating double quote", +} + +local function expect (pattern, label) + return pattern + m.T(label) +end + + +-- Pre-defined names +local Predef = { nl = m.P"\n" } + + +local mem +local fmem +local gmem + + +local function updatelocale () + mm.locale(Predef) + Predef.a = Predef.alpha + Predef.c = Predef.cntrl + Predef.d = Predef.digit + Predef.g = Predef.graph + Predef.l = Predef.lower + Predef.p = Predef.punct + Predef.s = Predef.space + Predef.u = Predef.upper + Predef.w = Predef.alnum + Predef.x = Predef.xdigit + Predef.A = any - Predef.a + Predef.C = any - Predef.c + Predef.D = any - Predef.d + Predef.G = any - Predef.g + Predef.L = any - Predef.l + Predef.P = any - Predef.p + Predef.S = any - Predef.s + Predef.U = any - Predef.u + Predef.W = any - Predef.w + Predef.X = any - Predef.x + mem = {} -- restart memoization + fmem = {} + gmem = {} + local mt = {__mode = "v"} + setmetatable(mem, mt) + setmetatable(fmem, mt) + setmetatable(gmem, mt) +end + + +updatelocale() + + + +local I = m.P(function (s,i) print(i, s:sub(1, i-1)); return i end) + + +local function getdef (id, defs) + local c = defs and defs[id] + if not c then + error("undefined name: " .. id) + end + return c +end + + +local function mult (p, n) + local np = mm.P(true) + while n >= 1 do + if n%2 >= 1 then np = np * p end + p = p * p + n = n/2 + end + return np +end + +local function equalcap (s, i, c) + if type(c) ~= "string" then return nil end + local e = #c + i + if s:sub(i, e - 1) == c then return e else return nil end +end + + +local S = (Predef.space + "--" * (any - Predef.nl)^0)^0 + +local name = m.C(m.R("AZ", "az", "__") * m.R("AZ", "az", "__", "09")^0) + +local arrow = S * "<-" + +-- a defined name only have meaning in a given environment +local Def = name * m.Carg(1) + +local num = m.C(m.R"09"^1) * S / tonumber + +local String = "'" * m.C((any - "'" - m.P"\n")^0) * expect("'", "MisTerm1") + + '"' * m.C((any - '"' - m.P"\n")^0) * expect('"', "MisTerm2") + + +local defined = "%" * Def / function (c,Defs) + local cat = Defs and Defs[c] or Predef[c] + if not cat then + error("name '" .. c .. "' undefined") + end + return cat +end + +local Range = m.Cs(any * (m.P"-"/"") * (any - "]")) / mm.R + +local item = defined + Range + m.C(any - m.P"\n") + +local Class = + "[" + * (m.C(m.P"^"^-1)) -- optional complement symbol + * m.Cf(expect(item, "ExpItem") * (item - "]")^0, mt.__add) + / function (c, p) return c == "^" and any - p or p end + * expect("]", "MisClose8") + +local function adddef (t, k, exp) + if t[k] then + -- TODO 改了一下这里的代码,重复定义不会抛错 + --error("'"..k.."' already defined as a rule") + else + t[k] = exp + end + return t +end + +local function firstdef (n, r) return adddef({n}, n, r) end + + +local function NT (n, b) + if not b then + error("rule '"..n.."' used outside a grammar") + else return mm.V(n) + end +end + + +local exp = m.P{ "Exp", + Exp = S * ( m.V"Grammar" + + m.Cf(m.V"Seq" * (S * "/" * expect(S * m.V"Seq", "ExpPatt1"))^0, mt.__add) ); + Seq = m.Cf(m.Cc(m.P"") * m.V"Prefix" * (S * m.V"Prefix")^0, mt.__mul); + Prefix = "&" * expect(S * m.V"Prefix", "ExpPatt2") / mt.__len + + "!" * expect(S * m.V"Prefix", "ExpPatt3") / mt.__unm + + m.V"Suffix"; + Suffix = m.Cf(m.V"Primary" * + ( S * ( m.P"+" * m.Cc(1, mt.__pow) + + m.P"*" * m.Cc(0, mt.__pow) + + m.P"?" * m.Cc(-1, mt.__pow) + + "^" * expect( m.Cg(num * m.Cc(mult)) + + m.Cg(m.C(m.S"+-" * m.R"09"^1) * m.Cc(mt.__pow) + + name * m.Cc"lab" + ), + "ExpNumName") + + "->" * expect(S * ( m.Cg((String + num) * m.Cc(mt.__div)) + + m.P"{}" * m.Cc(nil, m.Ct) + + m.Cg(Def / getdef * m.Cc(mt.__div)) + ), + "ExpCap") + + "=>" * expect(S * m.Cg(Def / getdef * m.Cc(m.Cmt)), + "ExpName1") + ) + )^0, function (a,b,f) if f == "lab" then return a + mm.T(b) else return f(a,b) end end ); + Primary = "(" * expect(m.V"Exp", "ExpPatt4") * expect(S * ")", "MisClose1") + + String / mm.P + + Class + + defined + + "%" * expect(m.P"{", "ExpNameOrLab") + * expect(S * m.V"Label", "ExpLab1") + * expect(S * "}", "MisClose7") / mm.T + + "{:" * (name * ":" + m.Cc(nil)) * expect(m.V"Exp", "ExpPatt5") + * expect(S * ":}", "MisClose2") + / function (n, p) return mm.Cg(p, n) end + + "=" * expect(name, "ExpName2") + / function (n) return mm.Cmt(mm.Cb(n), equalcap) end + + m.P"{}" / mm.Cp + + "{~" * expect(m.V"Exp", "ExpPatt6") + * expect(S * "~}", "MisClose3") / mm.Cs + + "{|" * expect(m.V"Exp", "ExpPatt7") + * expect(S * "|}", "MisClose4") / mm.Ct + + "{" * expect(m.V"Exp", "ExpPattOrClose") + * expect(S * "}", "MisClose5") / mm.C + + m.P"." * m.Cc(any) + + (name * -arrow + "<" * expect(name, "ExpName3") + * expect(">", "MisClose6")) * m.Cb("G") / NT; + Label = num + name; + Definition = name * arrow * expect(m.V"Exp", "ExpPatt8"); + Grammar = m.Cg(m.Cc(true), "G") + * m.Cf(m.V"Definition" / firstdef * (S * m.Cg(m.V"Definition"))^0, + adddef) / mm.P; +} + +local pattern = S * m.Cg(m.Cc(false), "G") * expect(exp, "NoPatt") / mm.P + * S * expect(-any, "ExtraChars") + +local function lineno (s, i) + if i == 1 then return 1, 1 end + local adjustment = 0 + -- report the current line if at end of line, not the next + if s:sub(i,i) == '\n' then + i = i-1 + adjustment = 1 + end + local rest, num = s:sub(1,i):gsub("[^\n]*\n", "") + local r = #rest + return 1 + num, (r ~= 0 and r or 1) + adjustment +end + +local function calcline (s, i) + if i == 1 then return 1, 1 end + local rest, line = s:sub(1,i):gsub("[^\n]*\n", "") + local col = #rest + return 1 + line, col ~= 0 and col or 1 +end + + +local function splitlines(str) + local t = {} + local function helper(line) tinsert(t, line) return "" end + helper((str:gsub("(.-)\r?\n", helper))) + return t +end + +local function compile (p, defs) + if mm.type(p) == "pattern" then return p end -- already compiled + p = p .. " " -- for better reporting of column numbers in errors when at EOF + local ok, cp, label, poserr = pcall(function() return pattern:match(p, 1, defs) end) + if not ok and cp then + if type(cp) == "string" then + cp = cp:gsub("^[^:]+:[^:]+: ", "") + end + error(cp, 3) + end + if not cp then + local lines = splitlines(p) + local line, col = lineno(p, poserr) + local err = {} + tinsert(err, "L" .. line .. ":C" .. col .. ": " .. errinfo[label]) + tinsert(err, lines[line]) + tinsert(err, rep(" ", col-1) .. "^") + error("syntax error(s) in pattern\n" .. concat(err, "\n"), 3) + end + return cp +end + +local function match (s, p, i) + local cp = mem[p] + if not cp then + cp = compile(p) + mem[p] = cp + end + return cp:match(s, i or 1) +end + +local function find (s, p, i) + local cp = fmem[p] + if not cp then + cp = compile(p) / 0 + cp = mm.P{ mm.Cp() * cp * mm.Cp() + 1 * mm.V(1) } + fmem[p] = cp + end + local i, e = cp:match(s, i or 1) + if i then return i, e - 1 + else return i + end +end + +local function gsub (s, p, rep) + local g = gmem[p] or {} -- ensure gmem[p] is not collected while here + gmem[p] = g + local cp = g[rep] + if not cp then + cp = compile(p) + cp = mm.Cs((cp / rep + 1)^0) + g[rep] = cp + end + return cp:match(s) +end + + +-- exported names +local re = { + compile = compile, + match = match, + find = find, + gsub = gsub, + updatelocale = updatelocale, + calcline = calcline +} + +return re diff --git a/script/src/parser/split.lua b/script/src/parser/split.lua new file mode 100644 index 00000000..6ce4a4e7 --- /dev/null +++ b/script/src/parser/split.lua @@ -0,0 +1,9 @@ +local m = require 'lpeglabel' + +local NL = m.P'\r\n' + m.S'\r\n' +local LINE = m.C(1 - NL) + +return function (str) + local MATCH = m.Ct((LINE * NL)^0 * LINE) + return MATCH:match(str) +end diff --git a/script/src/plugin.lua b/script/src/plugin.lua new file mode 100644 index 00000000..eba224d6 --- /dev/null +++ b/script/src/plugin.lua @@ -0,0 +1,98 @@ +local fs = require 'bee.filesystem' +local rpc = require 'rpc' +local config = require 'config' +local glob = require 'glob' +local platform = require 'bee.platform' +local sandbox = require 'sandbox' + +local Plugins + +local function showError(msg) + local traceback = log.error(msg) + rpc:notify('window/showMessage', { + type = 3, + message = traceback, + }) + return traceback +end + +local function showWarn(msg) + log.warn(msg) + rpc:notify('window/showMessage', { + type = 3, + message = msg, + }) + return msg +end + +local function scan(path, callback) + if fs.is_directory(path) then + for p in path:list_directory() do + scan(p, callback) + end + else + callback(path) + end +end + +local function loadPluginFrom(path, root) + log.info('Load plugin from:', path:string()) + local env = setmetatable({}, { __index = _G }) + sandbox(path:filename():string(), root:string(), io.open, package.loaded, env) + Plugins[#Plugins+1] = env +end + +local function load(workspace) + Plugins = nil + + if not config.config.plugin.enable then + return + end + local suc, path = xpcall(fs.path, showWarn, config.config.plugin.path) + if not suc then + return + end + + Plugins = {} + local pluginPath + if workspace then + pluginPath = fs.absolute(workspace.root / path) + else + pluginPath = fs.absolute(path) + end + if not fs.is_directory(pluginPath) then + pluginPath = pluginPath:parent_path() + end + + local pattern = {config.config.plugin.path} + local options = { + ignoreCase = platform.OS == 'Windows' + } + local parser = glob.glob(pattern, options) + + scan(pluginPath:parent_path(), function (filePath) + if parser(filePath:string()) then + loadPluginFrom(filePath, pluginPath) + end + end) +end + +local function call(name, ...) + if not Plugins then + return nil + end + for _, plugin in ipairs(Plugins) do + if type(plugin[name]) == 'function' then + local suc, res = xpcall(plugin[name], showError, ...) + if suc and res ~= nil then + return res + end + end + end + return nil +end + +return { + load = load, + call = call, +} diff --git a/script/src/rpc.lua b/script/src/rpc.lua new file mode 100644 index 00000000..4a495695 --- /dev/null +++ b/script/src/rpc.lua @@ -0,0 +1,91 @@ +local json = require 'json' + +local TIMEOUT = 600.0 + +local ID = 0 +local BUF = {} + +local function notify(self, method, params) + local pack = { + jsonrpc = '2.0', + method = method, + params = params, + } + local content = json.encode(pack) + local buf = ('Content-Length: %d\r\n\r\n%s'):format(#content, content) + io.write(buf) +end + +local function request(self, method, params, callback) + ID = ID + 1 + local pack = { + jsonrpc = '2.0', + id = ID, + method = method, + params = params, + } + local content = json.encode(pack) + local buf = ('Content-Length: %d\r\n\r\n%s'):format(#content, content) + BUF[ID] = { + callback = callback, + timeout = os.clock() + TIMEOUT, + } + io.write(buf) +end + +local function requestWait(self, method, params, callback) + ID = ID + 1 + local pack = { + jsonrpc = '2.0', + id = ID, + method = method, + params = params, + } + local content = json.encode(pack) + local buf = ('Content-Length: %d\r\n\r\n%s'):format(#content, content) + BUF[ID] = { + callback = callback, + } + io.write(buf) +end + +local function response(self, id, data) + data.jsonrpc = '2.0' + data.id = id + local content = json.encode(data) + local buf = ('Content-Length: %d\r\n\r\n%s'):format(#content, content) + io.write(buf) +end + +local function recieve(self, proto) + local id = proto.id + local data = BUF[id] + if not data then + log.warn('Recieve id not found: ', table.dump(proto)) + return + end + BUF[id] = nil + if data.timeout and os.clock() > data.timeout then + log.warn('Recieve timeout: ', table.dump(proto)) + if data.callback then + local info = debug.getinfo(data.callback, 'S') + log.warn('Call back info: ', info.source, info.linedefined) + end + return + end + if proto.error then + log.warn('Recieve: ', table.dump(proto.error)) + return + end + if data.callback then + data.callback(proto.result) + end +end + +return { + notify = notify, + request = request, + requestWait = requestWait, + response = response, + recieve = recieve, +} diff --git a/script/src/sandbox.lua b/script/src/sandbox.lua new file mode 100644 index 00000000..6b2f2a32 --- /dev/null +++ b/script/src/sandbox.lua @@ -0,0 +1,167 @@ +local function standard(loaded, env) + local r = env or {} + for _, s in ipairs { + --'package', + 'coroutine', + 'table', + --'io', + 'os', + 'string', + 'math', + 'utf8', + 'debug', + } do + r[s] = _G[s] + loaded[s] = _G[s] + end + for _, s in ipairs { + 'assert', + 'collectgarbage', + --'dofile', + 'error', + 'getmetatable', + 'ipairs', + --'loadfile', + 'load', + 'next', + 'pairs', + 'pcall', + 'print', + 'rawequal', + 'rawlen', + 'rawget', + 'rawset', + 'select', + 'setmetatable', + 'tonumber', + 'tostring', + 'type', + 'xpcall', + '_VERSION', + --'require', + } do + r[s] = _G[s] + end + return r +end + +local function sandbox_env(loadlua, openfile, loaded, env) + local _LOADED = loaded or {} + local _E = standard(_LOADED, env) + local _PRELOAD = {} + + _E.io = { + open = openfile, + } + + local function searchpath(name, path) + local err = '' + name = string.gsub(name, '%.', '/') + for c in string.gmatch(path, '[^;]+') do + local filename = string.gsub(c, '%?', name) + local f = openfile(filename) + if f then + f:close() + return filename + end + err = err .. ("\n\tno file '%s'"):format(filename) + end + return nil, err + end + + local function searcher_preload(name) + assert(type(_PRELOAD) == "table", "'package.preload' must be a table") + if _PRELOAD[name] == nil then + return ("\n\tno field package.preload['%s']"):format(name) + end + return _PRELOAD[name] + end + + local function searcher_lua(name) + assert(type(_E.package.path) == "string", "'package.path' must be a string") + local filename, err = searchpath(name, _E.package.path) + if not filename then + return err + end + local f, err = loadlua(filename) + if not f then + error(("error loading module '%s' from file '%s':\n\t%s"):format(name, filename, err)) + end + return f, filename + end + + local function require_load(name) + local msg = '' + local _SEARCHERS = _E.package.searchers + assert(type(_SEARCHERS) == "table", "'package.searchers' must be a table") + for _, searcher in ipairs(_SEARCHERS) do + local f, extra = searcher(name) + if type(f) == 'function' then + return f, extra + elseif type(f) == 'string' then + msg = msg .. f + end + end + error(("module '%s' not found:%s"):format(name, msg)) + end + + _E.require = function(name) + assert(type(name) == "string", ("bad argument #1 to 'require' (string expected, got %s)"):format(type(name))) + local p = _LOADED[name] + if p ~= nil then + return p + end + local init, extra = require_load(name) + if debug.getupvalue(init, 1) == '_ENV' then + debug.setupvalue(init, 1, _E) + end + local res = init(name, extra) + if res ~= nil then + _LOADED[name] = res + end + if _LOADED[name] == nil then + _LOADED[name] = true + end + return _LOADED[name] + end + _E.package = { + config = [[ + \ + ; + ? + ! + - + ]], + loaded = _LOADED, + path = '?.lua', + preload = _PRELOAD, + searchers = { searcher_preload, searcher_lua }, + searchpath = searchpath + } + return _E +end + +return function(name, root, io_open, loaded, env) + if not root:sub(-1):find '[/\\]' then + root = root .. '/' + end + local function openfile(name, mode) + return io_open(root .. name, mode) + end + local function loadlua(name) + local f = openfile(name, 'r') + if f then + local str = f:read 'a' + f:close() + return load(str, '@' .. root .. name) + end + end + local init = loadlua(name) + if not init then + return + end + if debug.getupvalue(init, 1) == '_ENV' then + debug.setupvalue(init, 1, sandbox_env(loadlua, openfile, loaded, env)) + end + return init() +end diff --git a/script/src/service.lua b/script/src/service.lua new file mode 100644 index 00000000..2d8a3e64 --- /dev/null +++ b/script/src/service.lua @@ -0,0 +1,1023 @@ +local subprocess = require 'bee.subprocess' +local method = require 'method' +local thread = require 'bee.thread' +local async = require 'async' +local rpc = require 'rpc' +local parser = require 'parser' +local core = require 'core' +local lang = require 'language' +local updateTimer= require 'timer' +local buildVM = require 'vm' +local sourceMgr = require 'vm.source' +local localMgr = require 'vm.local' +local valueMgr = require 'vm.value' +local chainMgr = require 'vm.chain' +local functionMgr= require 'vm.function' +local listMgr = require 'vm.list' +local emmyMgr = require 'emmy.manager' +local config = require 'config' +local task = require 'task' +local files = require 'files' +local uric = require 'uri' +local capability = require 'capability' +local plugin = require 'plugin' + +local ErrorCodes = { + -- Defined by JSON RPC + ParseError = -32700, + InvalidRequest = -32600, + MethodNotFound = -32601, + InvalidParams = -32602, + InternalError = -32603, + serverErrorStart = -32099, + serverErrorEnd = -32000, + ServerNotInitialized = -32002, + UnknownErrorCode = -32001, + + -- Defined by the protocol. + RequestCancelled = -32800, +} + +local CachedVM = setmetatable({}, {__mode = 'kv'}) + +---@class LSP +local mt = {} +mt.__index = mt +---@type files +mt._files = nil + +function mt:_callMethod(name, params) + local optional + if name:sub(1, 2) == '$/' then + name = name:sub(3) + optional = true + end + local f = method[name] + if f then + local clock = os.clock() + local suc, res = xpcall(f, debug.traceback, self, params) + local passed = os.clock() - clock + if passed > 0.2 then + log.debug(('Task [%s] takes [%.3f]sec.'):format(name, passed)) + end + if suc then + return res + else + local ok, r = pcall(table.dump, params) + local dump = ok and r or '<Cyclic table>' + log.debug(('Task [%s] failed, params: %s'):format( + name, dump + )) + log.error(res) + if res:find 'not enough memory' then + self:restartDueToMemoryLeak() + end + return nil, { + code = ErrorCodes.InternalError, + message = r .. '\n' .. res, + } + end + end + if optional then + return nil + else + return nil, { + code = ErrorCodes.MethodNotFound, + message = 'MethodNotFound', + } + end +end + +function mt:responseProto(id, response, err) + local container = table.container() + if err then + container.error = err + else + container.result = response + end + rpc:response(id, container) +end + +function mt:_doProto(proto) + local id = proto.id + local name = proto.method + local params = proto.params + local response, err = self:_callMethod(name, params) + if not id then + return + end + if type(response) == 'function' then + response(function (final) + self:responseProto(id, final) + end) + else + self:responseProto(id, response, err) + end +end + +function mt:clearDiagnostics(uri) + rpc:notify('textDocument/publishDiagnostics', { + uri = uri, + diagnostics = {}, + }) + self._needDiagnostics[uri] = nil +end + +---@param uri uri +---@param compiled table +---@param mode string +---@return boolean +function mt:needCompile(uri, compiled, mode) + self._needDiagnostics[uri] = true + if self._needCompile[uri] then + return false + end + if not compiled then + compiled = {} + end + if compiled[uri] then + return false + end + self._needCompile[uri] = compiled + if mode == 'child' then + table.insert(self._needCompile, uri) + else + table.insert(self._needCompile, 1, uri) + end + return true +end + +function mt:isNeedCompile(uri) + return self._needCompile[uri] +end + +function mt:isWaitingCompile() + if self._needCompile[1] then + return true + else + return false + end +end + +---@param uri uri +---@param version integer +---@param text string +function mt:saveText(uri, version, text) + self._lastLoadedVM = uri + self._files:save(uri, text, version) + self:needCompile(uri) +end + +---@param uri uri +function mt:isDeadText(uri) + return self._files:isDead(uri) +end + +---@param uri uri +---@return boolean +function mt:isLua(uri) + if not self.workspace then + return true + end + local path = self.workspace:absolutePathByUri(uri) + if not path then + return false + end + if self.workspace:isLuaFile(path) then + return true + end + return false +end + +function mt:isIgnored(uri) + if not self.workspace then + return true + end + if not self.workspace.gitignore then + return true + end + local path = self.workspace:relativePathByUri(uri) + if not path then + return true + end + if self.workspace.gitignore(path:string()) then + return true + end + return false +end + +---@param uri uri +---@param version integer +---@param text string +function mt:open(uri, version, text) + if not self:isLua(uri) then + return + end + self:saveText(uri, version, text) + self._files:open(uri, text) +end + +---@param uri uri +function mt:close(uri) + self._files:close(uri) + if self._files:isLibrary(uri) then + return + end + if not self:isLua(uri) or self:isIgnored(uri) then + self:removeText(uri) + end +end + +---@param uri uri +---@return boolean +function mt:isOpen(uri) + return self._files:isOpen(uri) +end + +---@param uri uri +---@param path path +---@param text string +function mt:checkReadFile(uri, path, text) + if not text then + log.debug('No file: ', path) + return false + end + local size = #text / 1000.0 + if size > config.config.workspace.preloadFileSize then + log.info(('Skip large file, size: %.3f KB: %s'):format(size, uri)) + return false + end + if self:getCachedFileCount() >= config.config.workspace.maxPreload then + if not self._hasShowHitMaxPreload then + self._hasShowHitMaxPreload = true + rpc:notify('window/showMessage', { + type = 3, + message = lang.script('MWS_MAX_PRELOAD', config.config.workspace.maxPreload), + }) + end + return false + end + return true +end + +---@param uri uri +---@param path path +---@param buf string +---@param compiled table +function mt:readText(uri, path, buf, compiled) + if self._files:get(uri) then + log.debug('Read failed due to duplicate:', uri) + return + end + if not self:isLua(uri) then + log.debug('Read failed due to not lua:', uri) + return + end + if not self._files:isOpen() and self:isIgnored(uri) then + log.debug('Read failed due to ignored:', uri) + return + end + local text = buf or io.load(path) + if not self._files:isOpen() and not self:checkReadFile(uri, path, text) then + log.debug('Read failed due to check failed:', uri) + return + end + self._files:save(uri, text, 0) + self:needCompile(uri, compiled) +end + +---@param uri uri +---@param path path +---@param buf string +---@param compiled table +function mt:readLibrary(uri, path, buf, compiled) + if not self:isLua(uri) then + return + end + if not self:checkReadFile(uri, path, buf) then + return + end + self._files:save(uri, buf, 0) + self._files:setLibrary(uri) + self:needCompile(uri, compiled) + self:clearDiagnostics(uri) +end + +---@param uri uri +function mt:removeText(uri) + self._files:remove(uri) + self:compileVM(uri) +end + +function mt:getCachedFileCount() + return self._files:count() +end + +function mt:reCompile() + if self.global then + self.global:remove() + end + if self.chain then + self.chain:remove() + end + if self.emmy then + self.emmy:remove() + end + + local compiled = {} + self._files:clearVM() + + for _, obj in pairs(listMgr.list) do + if obj.type == 'source' or obj.type == 'function' then + obj:kill() + end + end + + self.global = core.global(self) + self.chain = chainMgr() + self.emmy = emmyMgr() + self.globalValue = nil + self._compileTask:remove() + self._needCompile = {} + local n = 0 + for uri in self._files:eachFile() do + self:needCompile(uri, compiled) + n = n + 1 + end + log.debug('reCompile:', n, self._files:count()) + + self:_testMemory('skip') +end + +function mt:reDiagnostic() + for uri in self._files:eachFile() do + self:clearDiagnostics(uri) + self._needDiagnostics[uri] = true + end +end + +function mt:clearAllFiles() + for uri in self._files:eachFile() do + self:clearDiagnostics(uri) + end + self._files:clear() +end + +---@param uri uri +function mt:loadVM(uri) + local file = self._files:get(uri) + if not file then + return nil + end + if uri ~= self._lastLoadedVM then + self:needCompile(uri) + end + if self._compileTask + and not self._compileTask:isRemoved() + and self._compileTask:get 'uri' == uri + then + self._compileTask:fastForward() + else + self:compileVM(uri) + end + if file:getVM() then + self._lastLoadedVM = uri + end + return file:getVM(), file:getLines() +end + +function mt:_markCompiled(uri, compiled) + local newCompiled = self._needCompile[uri] + if newCompiled then + newCompiled[uri] = true + self._needCompile[uri] = nil + end + for i, u in ipairs(self._needCompile) do + if u == uri then + table.remove(self._needCompile, i) + break + end + end + if newCompiled == compiled then + return compiled + end + if not compiled then + compiled = {} + end + for k, v in pairs(newCompiled) do + compiled[k] = v + end + return compiled +end + +---@param file file +---@return table +function mt:compileAst(file) + local ast, err, comments = parser:parse(file:getText(), 'lua', config.config.runtime.version) + file.comments = comments + if ast then + file:setAstErr(err) + else + if type(err) == 'string' then + local message = lang.script('PARSER_CRASH', err) + log.debug(message) + rpc:notify('window/showMessage', { + type = 3, + message = lang.script('PARSER_CRASH', err:match '%.lua%:%d+%:(.+)' or err), + }) + if message:find 'not enough memory' then + self:restartDueToMemoryLeak() + end + end + end + return ast +end + +---@param file file +---@param uri uri +function mt:_clearChainNode(file, uri) + for pUri in file:eachParent() do + local parent = self._files:get(pUri) + if parent then + parent:removeChild(uri) + end + end +end + +---@param file file +---@param compiled table +function mt:_compileChain(file, compiled) + if not compiled then + compiled = {} + end + for uri in file:eachChild() do + self:needCompile(uri, compiled, 'child') + end + for uri in file:eachParent() do + self:needCompile(uri, compiled, 'parent') + end +end + +function mt:_compileGlobal(compiled) + local uris = self.global:getAllUris() + for _, uri in ipairs(uris) do + self:needCompile(uri, compiled, 'global') + end +end + +function mt:_clearGlobal(uri) + self.global:clearGlobal(uri) +end + +function mt:_hasSetGlobal(uri) + return self.global:hasSetGlobal(uri) +end + +---@param uri uri +function mt:compileVM(uri) + local file = self._files:get(uri) + if not file then + self:_markCompiled(uri) + return nil + end + local compiled = self._needCompile[uri] + if not compiled then + return nil + end + file:removeVM() + + local clock = os.clock() + local ast = self:compileAst(file) + local version = file:getVersion() + local astCost = os.clock() - clock + if astCost > 0.1 then + log.warn(('Compile Ast[%s] takes [%.3f] sec, size [%.3f]kb'):format(uri, astCost, #file:getText() / 1000)) + end + file:clearOldText() + + self:_clearChainNode(file, uri) + self:_clearGlobal(uri) + + local clock = os.clock() + local vm, err = buildVM(ast, self, uri, file:getText()) + if vm then + CachedVM[vm] = true + end + if self:isDeadText(uri) + or file:isRemoved() + or version ~= file:getVersion() + then + if vm then + vm:remove() + end + return nil + end + if self._needCompile[uri] then + self:_markCompiled(uri, compiled) + self._needDiagnostics[uri] = true + else + if vm then + vm:remove() + end + return nil + end + file:saveVM(vm, version, os.clock() - clock) + + local clock = os.clock() + local lines = parser:lines(file:getText(), 'utf8') + local lineCost = os.clock() - clock + file:saveLines(lines, lineCost) + + if file:getVMCost() > 0.2 then + log.debug(('Compile VM[%s] takes: %.3f sec'):format(uri, file:getVMCost())) + end + if not vm then + error(err) + end + + self:_compileChain(file, compiled) + if self:_hasSetGlobal(uri) then + self:_compileGlobal(compiled) + end + + return file +end + +---@param uri uri +function mt:doDiagnostics(uri) + if not config.config.diagnostics.enable then + self._needDiagnostics[uri] = nil + return + end + if not self._needDiagnostics[uri] then + return + end + local name = 'textDocument/publishDiagnostics' + local file = self._files:get(uri) + if not file + or file:isRemoved() + or not file:getVM() + or file:getVM():isRemoved() + or self._files:isLibrary(uri) + then + self._needDiagnostics[uri] = nil + self:clearDiagnostics(uri) + return + end + local data = { + uri = uri, + vm = file:getVM(), + lines = file:getLines(), + version = file:getVM():getVersion(), + } + local res = self:_callMethod(name, data) + if self:isDeadText(uri) then + return + end + if file:getVM():getVersion() ~= data.version then + return + end + if self._needDiagnostics[uri] then + self._needDiagnostics[uri] = nil + else + return + end + if res then + rpc:notify(name, { + uri = uri, + diagnostics = res, + }) + else + self:clearDiagnostics(uri) + end +end + +---@param uri uri +---@return file +function mt:getFile(uri) + return self._files:get(uri) +end + +---@param uri uri +---@return VM +---@return table +---@return string +function mt:getVM(uri) + local file = self._files:get(uri) + if not file then + return nil + end + return file:getVM(), file:getLines(), file:getText() +end + +---@param uri uri +---@return string +---@return string +function mt:getText(uri) + local file = self._files:get(uri) + if not file then + return nil + end + return file:getText(), file:getOldText() +end + +function mt:getComments(uri) + local file = self._files:get(uri) + if not file then + return nil + end + return file:getComments() +end + +---@param uri uri +---@return table +function mt:getAstErrors(uri) + local file = self._files:get(uri) + if not file then + return nil + end + return file:getAstErr() +end + +---@param child uri +---@param parent uri +function mt:compileChain(child, parent) + local parentFile = self._files:get(parent) + local childFile = self._files:get(child) + + if not parentFile or not childFile then + return + end + if parentFile == childFile then + return + end + + parentFile:addChild(child) + childFile:addParent(parent) +end + +function mt:checkWorkSpaceComplete() + if self._hasCheckedWorkSpaceComplete then + return + end + self._hasCheckedWorkSpaceComplete = true + if self.workspace:isComplete() then + return + end + self._needShowComplete = true + rpc:notify('window/showMessage', { + type = 3, + message = lang.script.MWS_NOT_COMPLETE, + }) +end + +function mt:_createCompileTask() + if not self:isWaitingCompile() and not next(self._needDiagnostics) then + if self._needShowComplete then + self._needShowComplete = nil + rpc:notify('window/showMessage', { + type = 3, + message = lang.script.MWS_COMPLETE, + }) + end + end + self._compileTask = task(function () + self:doDiagnostics(self._lastLoadedVM) + local uri = self._needCompile[1] + if uri then + self._compileTask:set('uri', uri) + pcall(function () self:compileVM(uri) end) + else + uri = next(self._needDiagnostics) + if uri then + self:doDiagnostics(uri) + end + end + end) +end + +function mt:_doCompileTask() + if not self._compileTask or self._compileTask:isRemoved() then + self:_createCompileTask() + end + while true do + local res = self._compileTask:step() + if res == 'stop' then + self._compileTask:remove() + break + end + if self._compileTask:isRemoved() then + break + end + end + self:_loadProto() +end + +function mt:_loadProto() + while true do + local ok, proto = self._proto:pop() + if not ok then + break + end + if proto.method then + self:_doProto(proto) + else + rpc:recieve(proto) + end + end +end + +function mt:restartDueToMemoryLeak() + rpc:requestWait('window/showMessageRequest', { + type = 3, + message = lang.script('DEBUG_MEMORY_LEAK', '[Lua]'), + actions = { + { + title = lang.script.DEBUG_RESTART_NOW, + } + } + }, function () + os.exit(true) + end) + ac.wait(5, function () + os.exit(true) + end) +end + +function mt:reScanFiles() + if not self.workspace then + return + end + log.debug('reScanFiles') + self:clearAllFiles() + self.workspace:scanFiles() +end + +function mt:onUpdateConfig(updated, other) + local oldConfig = table.deepCopy(config.config) + local oldOther = table.deepCopy(config.other) + config:setConfig(updated, other) + local newConfig = config.config + local newOther = config.other + if not table.equal(oldConfig.runtime, newConfig.runtime) then + local library = require 'core.library' + library.reload() + self:reCompile() + end + if not table.equal(oldConfig.diagnostics, newConfig.diagnostics) then + log.debug('reDiagnostic') + self:reDiagnostic() + end + if newConfig.completion.enable then + capability.completion.enable() + else + capability.completion.disable() + end + if not table.equal(oldConfig.plugin, newConfig.plugin) then + plugin.load(self.workspace) + end + if not table.equal(oldConfig.workspace, newConfig.workspace) + or not table.equal(oldConfig.plugin, newConfig.plugin) + or not table.equal(oldOther.associations, newOther.associations) + or not table.equal(oldOther.exclude, newOther.exclude) + then + self:reScanFiles() + end +end + +function mt:_testMemory(skipDead) + local clock = os.clock() + collectgarbage() + log.debug('collectgarbage: ', ('%.3f'):format(os.clock() - clock)) + + local clock = os.clock() + local cachedVM = 0 + local cachedSource = 0 + local cachedFunction = 0 + for _, file in self._files:eachFile() do + local vm = file:getVM() + if vm and not vm:isRemoved() then + cachedVM = cachedVM + 1 + cachedSource = cachedSource + #vm.sources + cachedFunction = cachedFunction + #vm.funcs + end + end + local aliveVM = 0 + local deadVM = 0 + for vm in pairs(CachedVM) do + if vm:isRemoved() then + deadVM = deadVM + 1 + else + aliveVM = aliveVM + 1 + end + end + + local alivedSource = 0 + local deadSource = 0 + for _, id in pairs(sourceMgr.watch) do + if listMgr.get(id) then + alivedSource = alivedSource + 1 + else + deadSource = deadSource + 1 + end + end + + local alivedFunction = 0 + local deadFunction = 0 + for _, id in pairs(functionMgr.watch) do + if listMgr.get(id) then + alivedFunction = alivedFunction + 1 + else + deadFunction = deadFunction + 1 + end + end + + local totalLocal = 0 + for _ in pairs(localMgr.watch) do + totalLocal = totalLocal + 1 + end + + local totalValue = 0 + local deadValue = 0 + for value in pairs(valueMgr.watch) do + totalValue = totalValue + 1 + if not value:getSource() then + deadValue = deadValue + 1 + end + end + + local totalEmmy = self.emmy:count() + + local mem = collectgarbage 'count' + local threadInfo = async.info + local threadBuf = {} + for i, count in ipairs(threadInfo) do + if count then + threadBuf[i] = ('#%03d Mem: [%.3f]kb'):format(i, count) + else + threadBuf[i] = ('#%03d Mem: <Unknown>'):format(i) + end + end + + log.debug(('\n\z + State\n\z + Main Mem: [%.3f]kb\n\z + %s\n\z +-------------------\n\z + CachedVM: [%d]\n\z + AlivedVM: [%d]\n\z + DeadVM: [%d]\n\z +-------------------\n\z + CachedSrc: [%d]\n\z + AlivedSrc: [%d]\n\z + DeadSrc: [%d]\n\z +-------------------\n\z + CachedFunc:[%d]\n\z + AlivedFunc:[%d]\n\z + DeadFunc: [%d]\n\z +-------------------\n\z + TotalVal: [%d]\n\z + DeadVal: [%d]\n\z +-------------------\n\z + TotalLoc: [%d]\n\z + TotalEmmy: [%d]\n\z'):format( + mem, + table.concat(threadBuf, '\n'), + + cachedVM, + aliveVM, + deadVM, + + cachedSource, + alivedSource, + deadSource, + + cachedFunction, + alivedFunction, + deadFunction, + + totalValue, + deadValue, + totalLocal, + totalEmmy + )) + log.debug('test memory: ', ('%.3f'):format(os.clock() - clock)) + + if deadValue / totalValue >= 0.5 and not skipDead then + self:_testFindDeadValues() + end +end + +function mt:_testFindDeadValues() + if self._testHasFoundDeadValues then + return + end + self._testHasFoundDeadValues = true + + log.debug('Start find dead values, may takes few seconds...') + + local mark = {} + local stack = {} + local count = 0 + local clock = os.clock() + local function push(info) + stack[#stack+1] = info + end + local function pop() + stack[#stack] = nil + end + local function showStack(uri) + count = count + 1 + log.debug(uri, table.concat(stack, '->')) + end + local function scan(name, tbl) + if count > 100 or os.clock() - clock > 5.0 then + return + end + if type(tbl) ~= 'table' then + return + end + if mark[tbl] then + return + end + mark[tbl] = true + if tbl.type then + push(('%s<%s>'):format(name, tbl.type)) + else + push(name) + end + if tbl.type == 'value' then + if not tbl:getSource() then + showStack(tbl.uri) + end + elseif tbl.type == 'files' then + for k, v in tbl:eachFile() do + scan(k, v) + end + else + for k, v in pairs(tbl) do + scan(k, v) + end + end + pop() + end + scan('root', self._files) + log.debug('Finish...') +end + +function mt:onTick() + self:_loadProto() + self:_doCompileTask() + if (os.clock() - self._clock >= 60 and not self:isWaitingCompile()) + or (os.clock() - self._clock >= 300) + then + self._clock = os.clock() + self:_testMemory() + end +end + +function mt:listen() + subprocess.filemode(io.stdin, 'b') + subprocess.filemode(io.stdout, 'b') + io.stdin:setvbuf 'no' + io.stdout:setvbuf 'no' + + local _, out = async.run 'proto' + self._proto = out + + local timerClock = 0.0 + while true do + local startClock = os.clock() + async.onTick() + self:onTick() + + local delta = os.clock() - timerClock + local suc, err = xpcall(updateTimer, log.error, delta) + if not suc then + io.stderr:write(err) + io.stderr:flush() + end + timerClock = os.clock() + + local passedClock = os.clock() - startClock + if passedClock > 0.1 then + thread.sleep(0.0) + else + thread.sleep(0.001) + end + end +end + +return function () + local session = setmetatable({ + _needCompile = {}, + _needDiagnostics = {}, + _clock = -100, + _version = 0, + _files = files(), + }, mt) + session.global = core.global(session) + session.chain = chainMgr() + session.emmy = emmyMgr() + return session +end diff --git a/script/src/task.lua b/script/src/task.lua new file mode 100644 index 00000000..bb1a7922 --- /dev/null +++ b/script/src/task.lua @@ -0,0 +1,64 @@ +local mt = {} +mt.__index = mt +mt.type = 'task' + +function mt:remove() + if self._removed then + return + end + self._removed = true + coroutine.close(self.task) +end + +function mt:isRemoved() + return self._removed +end + +function mt:step() + if self._removed then + return + end + local suc, res = coroutine.resume(self.task) + if not suc then + self:remove() + log.error(debug.traceback(self.task, res)) + return + end + if coroutine.status(self.task) == 'dead' then + self:remove() + end + return res +end + +function mt:fastForward() + if self._removed then + return + end + while true do + local suc = coroutine.resume(self.task) + if not suc then + self:remove() + break + end + if coroutine.status(self.task) == 'dead' then + self:remove() + break + end + end +end + +function mt:set(key, value) + self.data[key] = value +end + +function mt:get(key) + return self.data[key] +end + +return function (callback) + local self = setmetatable({ + data = {}, + task = coroutine.create(callback), + }, mt) + return self +end diff --git a/script/src/timer.lua b/script/src/timer.lua new file mode 100644 index 00000000..dc36e6a0 --- /dev/null +++ b/script/src/timer.lua @@ -0,0 +1,276 @@ +local setmetatable = setmetatable +local pairs = pairs +local tableInsert = table.insert +local mathMax = math.max +local mathFloor = math.floor + +local curFrame = 0 +local maxFrame = 0 +local curIndex = 0 +local freeQueue = {} +local timer = {} + +local function allocQueue() + local n = #freeQueue + if n > 0 then + local r = freeQueue[n] + freeQueue[n] = nil + return r + else + return {} + end +end + +local function mTimeout(self, timeout) + if self._pauseRemaining or self._running then + return + end + local ti = curFrame + timeout + local q = timer[ti] + if q == nil then + q = allocQueue() + timer[ti] = q + end + self._timeoutFrame = ti + self._running = true + q[#q + 1] = self +end + +local function mWakeup(self) + if self._removed then + return + end + self._running = false + if self._onTimer then + xpcall(self._onTimer, log.error, self) + end + if self._removed then + return + end + if self._timerCount then + if self._timerCount > 1 then + self._timerCount = self._timerCount - 1 + mTimeout(self, self._timeout) + else + self._removed = true + end + else + mTimeout(self, self._timeout) + end +end + +local function getRemaining(self) + if self._removed then + return 0 + end + if self._pauseRemaining then + return self._pauseRemaining + end + if self._timeoutFrame == curFrame then + return self._timeout or 0 + end + return self._timeoutFrame - curFrame +end + +local function onTick() + local q = timer[curFrame] + if q == nil then + curIndex = 0 + return + end + for i = curIndex + 1, #q do + local callback = q[i] + curIndex = i + q[i] = nil + if callback then + mWakeup(callback) + end + end + curIndex = 0 + timer[curFrame] = nil + freeQueue[#freeQueue + 1] = q +end + +function ac.clock() + return curFrame / 1000.0 +end + +function ac.timer_size() + local n = 0 + for _, ts in pairs(timer) do + n = n + #ts + end + return n +end + +function ac.timer_all() + local tbl = {} + for _, ts in pairs(timer) do + for i, t in ipairs(ts) do + if t then + tbl[#tbl + 1] = t + end + end + end + return tbl +end + +local function update(delta) + if curIndex ~= 0 then + curFrame = curFrame - 1 + end + maxFrame = maxFrame + delta * 1000.0 + while curFrame < maxFrame do + curFrame = curFrame + 1 + onTick() + end +end + +local mt = {} +mt.__index = mt +mt.type = 'timer' + +function mt:__tostring() + return '[table:timer]' +end + +function mt:__call() + if self._onTimer then + self:_onTimer() + end +end + +function mt:remove() + self._removed = true +end + +function mt:pause() + if self._removed or self._pauseRemaining then + return + end + self._pauseRemaining = getRemaining(self) + self._running = false + local ti = self._timeoutFrame + local q = timer[ti] + if q then + for i = #q, 1, -1 do + if q[i] == self then + q[i] = false + return + end + end + end +end + +function mt:resume() + if self._removed or not self._pauseRemaining then + return + end + local timeout = self._pauseRemaining + self._pauseRemaining = nil + mTimeout(self, timeout) +end + +function mt:restart() + if self._removed or self._pauseRemaining or not self._running then + return + end + local ti = self._timeoutFrame + local q = timer[ti] + if q then + for i = #q, 1, -1 do + if q[i] == self then + q[i] = false + break + end + end + end + self._running = false + mTimeout(self, self._timeout) +end + +function mt:remaining() + return getRemaining(self) / 1000.0 +end + +function mt:onTimer() + self:_onTimer() +end + +function ac.wait(timeout, onTimer) + local t = setmetatable({ + ['_timeout'] = mathMax(mathFloor(timeout * 1000.0), 1), + ['_onTimer'] = onTimer, + ['_timerCount'] = 1, + }, mt) + mTimeout(t, t._timeout) + return t +end + +function ac.loop(timeout, onTimer) + local t = setmetatable({ + ['_timeout'] = mathFloor(timeout * 1000.0), + ['_onTimer'] = onTimer, + }, mt) + mTimeout(t, t._timeout) + return t +end + +function ac.timer(timeout, count, onTimer) + if count == 0 then + return ac.loop(timeout, onTimer) + end + local t = setmetatable({ + ['_timeout'] = mathFloor(timeout * 1000.0), + ['_onTimer'] = onTimer, + ['_timerCount'] = count, + }, mt) + mTimeout(t, t._timeout) + return t +end + +local function utimer_initialize(u) + if not u._timers then + u._timers = {} + end + if #u._timers > 0 then + return + end + u._timers[1] = ac.loop(0.01, function() + local timers = u._timers + for i = #timers, 2, -1 do + if timers[i]._removed then + local len = #timers + timers[i] = timers[len] + timers[len] = nil + end + end + if #timers == 1 then + timers[1]:remove() + timers[1] = nil + end + end) +end + +function ac.uwait(u, timeout, onTimer) + utimer_initialize(u) + local t = ac.wait(timeout, onTimer) + tableInsert(u._timers, t) + return t +end + +function ac.uloop(u, timeout, onTimer) + utimer_initialize(u) + local t = ac.loop(timeout, onTimer) + tableInsert(u._timers, t) + return t +end + +function ac.utimer(u, timeout, count, onTimer) + utimer_initialize(u) + local t = ac.timer(timeout, count, onTimer) + tableInsert(u._timers, t) + return t +end + +return update diff --git a/script/src/uri.lua b/script/src/uri.lua new file mode 100644 index 00000000..9053447c --- /dev/null +++ b/script/src/uri.lua @@ -0,0 +1,29 @@ +local fs = require 'bee.filesystem' +local platform = require 'bee.platform' +local sandbox = require 'sandbox' +local luaUriPath = (ROOT / 'src' / '3rd' / 'lua-uri'):string() +local URI = sandbox('uri.lua', luaUriPath, io.open) +local URI_FILE = sandbox('uri/file.lua', luaUriPath, io.open) +local OS = platform.OS == 'Windows' and 'win32' or 'unix' + +local function decode(uri) + local obj = URI:new(uri) + if not obj.filesystem_path then + return nil + end + local fullPath = obj:filesystem_path(OS) + local path = fs.path(fullPath) + return path +end + +local function encode(path) + local fullPath = fs.absolute(ROOT / path) + local obj = URI_FILE.make_file_uri(fullPath:string(), OS) + local uri = obj:uri() + return uri +end + +return { + encode = encode, + decode = decode, +} diff --git a/script/src/utility.lua b/script/src/utility.lua new file mode 100644 index 00000000..d7fc9dde --- /dev/null +++ b/script/src/utility.lua @@ -0,0 +1,234 @@ +local fs = require 'bee.filesystem' + +local table_sort = table.sort +local stringRep = string.rep +local type = type +local pairs = pairs +local ipairs = ipairs +local math_type = math.type +local next = next +local rawset = rawset +local move = table.move +local setmetatable = setmetatable +local tableSort = table.sort +local mathType = math.type + +local function formatNumber(n) + local str = ('%.10f'):format(n) + str = str:gsub('%.?0*$', '') + return str +end + +local TAB = setmetatable({}, { __index = function (self, n) + self[n] = stringRep('\t', n) + return self[n] +end}) + +local RESERVED = { + ['and'] = true, + ['break'] = true, + ['do'] = true, + ['else'] = true, + ['elseif'] = true, + ['end'] = true, + ['false'] = true, + ['for'] = true, + ['function'] = true, + ['goto'] = true, + ['if'] = true, + ['in'] = true, + ['local'] = true, + ['nil'] = true, + ['not'] = true, + ['or'] = true, + ['repeat'] = true, + ['return'] = true, + ['then'] = true, + ['true'] = true, + ['until'] = true, + ['while'] = true, +} + +function table.dump(tbl) + if type(tbl) ~= 'table' then + return ('%q'):format(tbl) + end + local lines = {} + local mark = {} + lines[#lines+1] = '{' + local function unpack(tbl, tab) + if mark[tbl] and mark[tbl] > 0 then + lines[#lines+1] = TAB[tab+1] .. '"<Loop>"' + return + end + if #lines > 10000 then + lines[#lines+1] = TAB[tab+1] .. '"<Large>"' + return + end + mark[tbl] = (mark[tbl] or 0) + 1 + local keys = {} + local keymap = {} + local integerFormat = '[%d]' + if #tbl >= 10 then + local width = math.log(#tbl, 10) + integerFormat = ('[%%0%dd]'):format(math.ceil(width)) + end + for key in pairs(tbl) do + if type(key) == 'string' then + if not key:match('^[%a_][%w_]*$') + or #key >= 32 + or RESERVED[key] + then + keymap[key] = ('[%q]'):format(key) + else + keymap[key] = key + end + elseif mathType(key) == 'integer' then + keymap[key] = integerFormat:format(key) + else + keymap[key] = ('["<%s>"]'):format(key) + end + keys[#keys+1] = key + end + local mt = getmetatable(tbl) + if not mt or not mt.__pairs then + tableSort(keys, function (a, b) + return keymap[a] < keymap[b] + end) + end + for _, key in ipairs(keys) do + local value = tbl[key] + local tp = type(value) + if tp == 'table' then + lines[#lines+1] = ('%s%s = {'):format(TAB[tab+1], keymap[key]) + unpack(value, tab+1) + lines[#lines+1] = ('%s},'):format(TAB[tab+1]) + elseif tp == 'string' or tp == 'boolean' then + lines[#lines+1] = ('%s%s = %q,'):format(TAB[tab+1], keymap[key], value) + elseif tp == 'number' then + lines[#lines+1] = ('%s%s = %s,'):format(TAB[tab+1], keymap[key], formatNumber(value)) + elseif tp == 'nil' then + else + lines[#lines+1] = ('%s%s = %s,'):format(TAB[tab+1], keymap[key], tostring(value)) + end + end + mark[tbl] = mark[tbl] - 1 + end + unpack(tbl, 0) + lines[#lines+1] = '}' + return table.concat(lines, '\r\n') +end + +local function sort_table(tbl) + if not tbl then + tbl = {} + end + local mt = {} + local keys = {} + local mark = {} + local n = 0 + for key in next, tbl do + n=n+1;keys[n] = key + mark[key] = true + end + table_sort(keys) + function mt:__newindex(key, value) + rawset(self, key, value) + n=n+1;keys[n] = key + mark[key] = true + if type(value) == 'table' then + sort_table(value) + end + end + function mt:__pairs() + local list = {} + local m = 0 + for key in next, self do + if not mark[key] then + m=m+1;list[m] = key + end + end + if m > 0 then + move(keys, 1, n, m+1) + table_sort(list) + for i = 1, m do + local key = list[i] + keys[i] = key + mark[key] = true + end + n = n + m + end + local i = 0 + return function () + i = i + 1 + local key = keys[i] + return key, self[key] + end + end + + return setmetatable(tbl, mt) +end + +function table.container(tbl) + return sort_table(tbl) +end + +function table.equal(a, b) + local tp1, tp2 = type(a), type(b) + if tp1 ~= tp2 then + return false + end + if tp1 == 'table' then + local mark = {} + for k in pairs(a) do + if not table.equal(a[k], b[k]) then + return false + end + mark[k] = true + end + for k in pairs(b) do + if not mark[k] then + return false + end + end + return true + end + return a == b +end + +function table.deepCopy(a) + local t = {} + for k, v in pairs(a) do + if type(v) == 'table' then + t[k] = table.deepCopy(v) + else + t[k] = v + end + end + return t +end + +function io.load(file_path) + local f, e = io.open(file_path:string(), 'rb') + if not f then + return nil, e + end + if f:read(3) ~= '\xEF\xBB\xBF' then + f:seek("set") + end + local buf = f:read 'a' + f:close() + return buf +end + +function io.save(file_path, content) + local f, e = io.open(file_path:string(), "wb") + + if f then + f:write(content) + f:close() + return true + else + return false, e + end +end diff --git a/script/src/vm/chain.lua b/script/src/vm/chain.lua new file mode 100644 index 00000000..6e7c6ac7 --- /dev/null +++ b/script/src/vm/chain.lua @@ -0,0 +1,65 @@ +local valueMgr = require 'vm.value' +local sourceMgr = require 'vm.source' + +local mt = {} +mt.__index = mt +mt.type = 'chain' + +mt.min = 100 +mt.max = 100 +mt.count = 0 + +function mt:clearCache() + if self.count <= self.max then + return + end + local clock = os.clock() + local n = 0 + for uri, value in pairs(self.cache) do + local ok = value:eachInfo(function () + return true + end) + if ok then + n = n + 1 + else + value:getSource():kill() + self.cache[uri] = nil + end + end + self.count = n + self.max = self.count * 1.1 + 10 + if self.max < self.min then + self.max = self.min + end + local passed = os.clock() - clock + if passed > 0.1 then + log.warn(('chain:clearCache takes: [%.3f]sec, self.count: %d'):format(passed, self.count)) + end +end + +function mt:get(uri) + if not self.cache[uri] then + self.count = self.count + 1 + self:clearCache() + self.cache[uri] = valueMgr.create('any', sourceMgr.dummy()) + self.cache[uri]:markGlobal() + self.cache[uri].uri = uri + end + return self.cache[uri] +end + +function mt:remove() + if self.removed then + return + end + self.removed = true + for _, value in pairs(self.cache) do + value:getSource():kill() + end +end + +return function () + return setmetatable({ + cache = {}, + }, mt) +end diff --git a/script/src/vm/emmy.lua b/script/src/vm/emmy.lua new file mode 100644 index 00000000..9342a851 --- /dev/null +++ b/script/src/vm/emmy.lua @@ -0,0 +1,372 @@ +local functionMgr = require 'vm.function' +local library = require 'vm.library' +local mt = require 'vm.manager' + +function mt:clearEmmy() + self._emmy = nil + self._emmyParams = nil + self._emmyReturns = nil + self._emmyGeneric = nil + self._emmyComment = nil + self._emmyOverLoads = nil +end + +function mt:doEmmy(action) + local tp = action.type + if tp == 'emmyClass' then + self:doEmmyClass(action) + elseif tp == 'emmyType' then + self:doEmmyType(action) + elseif tp == 'emmyAlias' then + self:doEmmyAlias(action) + elseif tp == 'emmyParam' then + self:doEmmyParam(action) + elseif tp == 'emmyReturn' then + self:doEmmyReturn(action) + elseif tp == 'emmyField' then + self:doEmmyField(action) + elseif tp == 'emmyGeneric' then + self:doEmmyGeneric(action) + elseif tp == 'emmyVararg' then + self:doEmmyVararg(action) + elseif tp == 'emmyLanguage' then + elseif tp == 'emmyArrayType' then + self:doEmmyArrayType(action) + elseif tp == 'emmyTableType' then + self:doEmmyTableType(action) + elseif tp == 'emmyFunctionType' then + self:doEmmyFunctionType(action) + elseif tp == 'emmySee' then + self:doEmmySee(action) + elseif tp == 'emmyOverLoad' then + self:doEmmyOverLoad(action) + elseif tp == 'emmyIncomplete' then + self:doEmmyIncomplete(action) + elseif tp == 'emmyComment' then + self:doEmmyComment(action) + end +end + +function mt:getEmmy() + local emmy = self._emmy + self._emmy = nil + return emmy +end + +function mt:addEmmyParam(param) + if not self._emmyParams then + self._emmyParams = {} + end + self._emmyParams[#self._emmyParams+1] = param +end + +function mt:addEmmyReturn(rtn) + if not self._emmyReturns then + self._emmyReturns = {} + end + self._emmyReturns[#self._emmyReturns+1] = rtn +end + +function mt:addEmmyOverLoad(funcObj) + if not self._emmyOverLoads then + self._emmyOverLoads = {} + end + self._emmyOverLoads[#self._emmyOverLoads+1] = funcObj +end + +function mt:getEmmyParams() + local params = self._emmyParams + self._emmyParams = nil + return params +end + +function mt:getEmmyReturns() + local returns = self._emmyReturns + self._emmyReturns = nil + return returns +end + +function mt:getEmmyOverLoads() + local overLoads = self._emmyOverLoads + self._emmyOverLoads = nil + return overLoads +end + +function mt:getEmmyGeneric() + local generic = self._emmyGeneric + self._emmyGeneric = nil + return generic +end + +---@return string +function mt:getEmmyComment() + local comment = self._emmyComment + self._emmyComment = nil + return comment +end + +function mt:doEmmyClass(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + self:instantSource(action[1]) + local class = emmyMgr:addClass(action) + action:set('emmy class', class:getName()) + action[1]:set('emmy class', class:getName()) + local extends = action[2] + if extends then + self:instantSource(extends) + extends:set('emmy class', extends[1]) + end + self._emmy = class + action:set('emmy.class', class) + if self.lsp then + self.lsp.global:markSet(self:getUri()) + end +end + +function mt:buildEmmyType(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + for _, obj in ipairs(action) do + self:instantSource(obj) + obj:set('emmy class', obj[1]) + end + local type = emmyMgr:addType(action) + return type +end + +function mt:doEmmyType(action) + local type = self:buildEmmyType(action) + self._emmy = type + if self.lsp then + self.lsp.global:markGet(self:getUri()) + end + return type +end + +function mt:doEmmyAlias(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + self:instantSource(action[1]) + local type = self:buildEmmyAnyType(action[2]) + local alias = emmyMgr:addAlias(action, type) + action:set('emmy.alias', alias) + action[1]:set('emmy class', alias:getName()) + self._emmy = type + if self.lsp then + self.lsp.global:markSet(self:getUri()) + end +end + +function mt:getGenericByType(type) + local generics = self._emmyGeneric + if not generics then + return + end + if #type > 1 then + return + end + local name = type[1][1] + for _, generic in ipairs(generics) do + if generic:getName() == name then + return generic + end + end + return nil +end + +function mt:doEmmyParam(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + self:instantSource(action[1]) + local type = self:getGenericByType(action[2]) or self:buildEmmyAnyType(action[2]) + local param = emmyMgr:addParam(action, type) + action:set('emmy.param', param) + self:addEmmyParam(param) + if self.lsp then + self.lsp.global:markGet(self:getUri()) + end +end + +function mt:doEmmyReturn(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + local type = action[1] and (self:getGenericByType(action[1]) or self:buildEmmyAnyType(action[1])) + local name = action[2] + local rtn = emmyMgr:addReturn(action, type, name) + action:set('emmy.return', rtn) + self:addEmmyReturn(rtn) + if self.lsp then + self.lsp.global:markGet(self:getUri()) + end +end + +function mt:doEmmyField(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + self:instantSource(action[2]) + local type = self:buildEmmyAnyType(action[3]) + local value = self:createValue('nil', action[2]) + local field = emmyMgr:addField(action, type, value) + value:setEmmy(type) + action:set('emmy.field', field) + + local class = self._emmy + if not self._emmy or self._emmy.type ~= 'emmy.class' then + return + end + class:addField(field) + action:set('target class', class) +end + +function mt:doEmmyGeneric(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + + local defs = {} + for i, obj in ipairs(action) do + defs[i] = {} + defs[i].name = self:instantSource(obj[1]) + if obj[2] then + defs[i].type = self:buildEmmyAnyType(obj[2]) + end + end + + local generic = emmyMgr:addGeneric(defs) + self._emmyGeneric = generic +end + +function mt:doEmmyVararg(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + local type = self:getGenericByType(action[1]) or self:buildEmmyAnyType(action[1]) + local param = emmyMgr:addParam(action, type) + action:set('emmy.param', param) + self:addEmmyParam(param) + if self.lsp then + self.lsp.global:markGet(self:getUri()) + end +end + +function mt:buildEmmyArrayType(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + for _, obj in ipairs(action) do + self:instantSource(obj) + action:set('emmy class', obj[1]) + end + local type = emmyMgr:addArrayType(action) + return type +end + +function mt:doEmmyArrayType(action) + local type = self:buildEmmyArrayType(action) + self._emmy = type + if self.lsp then + self.lsp.global:markGet(self:getUri()) + end + return type +end + +function mt:buildEmmyTableType(action) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(action) + local keyType = self:buildEmmyAnyType(action[1]) + local valueType = self:buildEmmyAnyType(action[2]) + local type = emmyMgr:addTableType(action, keyType, valueType) + return type +end + +function mt:doEmmyTableType(action) + local type = self:buildEmmyTableType(action) + self._emmy = type + if self.lsp then + self.lsp.global:markGet(self:getUri()) + end + return type +end + +function mt:buildEmmyFunctionType(source) + ---@type emmyMgr + local emmyMgr = self.emmyMgr + self:instantSource(source) + local funcObj = emmyMgr:addFunctionType(source) + ---@type emmyFunction + local func = functionMgr.create(source) + local args = source.args + if args then + for i = 1, #args // 2 do + local nameSource = args[i*2-1] + local typeSource = args[i*2] + local paramType = self:buildEmmyAnyType(typeSource) + funcObj:addParam(nameSource[1], paramType) + local value = self:createValue(paramType:getType(), typeSource) + value:setEmmy(paramType) + self:instantSource(nameSource) + local arg = func:addArg(nameSource[1], nameSource, value) + arg:set('emmy arg', true) + end + end + local returns = source.returns + if returns then + for i = 1, #returns do + local returnSource = returns[i] + local returnType = self:buildEmmyAnyType(returnSource) + funcObj:addReturn(returnType) + local value = self:createValue(returnType:getType(), returnSource) + value:setEmmy(returnType) + func:setReturn(i, value) + end + end + funcObj:bindFunction(func) + return funcObj +end + +function mt:doEmmyFunctionType(action) + local funcObj = self:buildEmmyFunctionType(action) + self._emmy = funcObj + return funcObj +end + +function mt:buildEmmyAnyType(source) + if source.type == 'emmyType' then + return self:buildEmmyType(source) + elseif source.type == 'emmyArrayType' then + return self:buildEmmyArrayType(source) + elseif source.type == 'emmyTableType' then + return self:buildEmmyTableType(source) + elseif source.type == 'emmyFunctionType' then + return self:buildEmmyFunctionType(source) + else + error('Unknown emmy type: ' .. table.dump(source)) + end +end + +function mt:doEmmyIncomplete(action) + self:instantSource(action) +end + +function mt:doEmmyComment(action) + self._emmyComment = action[1] +end + +function mt:doEmmySee(action) + self:instantSource(action) + self:instantSource(action[2]) + action[2]:set('emmy see', action) +end + +function mt:doEmmyOverLoad(action) + local funcObj = self:buildEmmyFunctionType(action) + self:addEmmyOverLoad(funcObj) +end diff --git a/script/src/vm/function.lua b/script/src/vm/function.lua new file mode 100644 index 00000000..1ba01363 --- /dev/null +++ b/script/src/vm/function.lua @@ -0,0 +1,551 @@ +local createMulti = require 'vm.multi' +local valueMgr = require 'vm.value' +local localMgr = require 'vm.local' +local sourceMgr = require 'vm.source' +local listMgr = require 'vm.list' + +local Watch = setmetatable({}, {__mode = 'kv'}) + +---@class emmyFunction +local mt = {} +mt.__index = mt +mt.type = 'function' +mt._runed = 0 +mt._top = 0 + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:getUri() + local source = self:getSource() + return source and source.uri or '' +end + +function mt:push(source, ischunk) + if self._removed then + return + end + self._top = self._top + 1 + self.locals[self._top] = {} + self.finishs[self._top] = source and source.finish or math.maxinteger +end + +function mt:markChunk() + self.chunk[self._top] = true +end + +function mt:pop() + if self._removed then + return + end + local closed = self.finishs[self._top] + local closedLocals = self.locals[self._top] + self.locals[self._top] = nil + self.chunk[self._top] = nil + for _, loc in pairs(closedLocals) do + loc:close(closed) + end + self._top = self._top - 1 +end + +function mt:saveLocal(name, loc) + if self._removed then + return + end + if loc.type ~= 'local' then + error('saveLocal必须是local') + end + if not loc:getSource() then + return + end + local old = self:loadLocal(name) + if old then + loc:shadow(old) + end + self.locals[self._top][name] = loc +end + +function mt:saveUpvalue(name, loc) + if self._removed then + return + end + if loc.type ~= 'local' then + error('saveLocal必须是local') + end + self.upvalues[name] = loc +end + +function mt:loadLocal(name) + for i = self._top, 1, -1 do + local locals = self.locals[i] + local loc = locals[name] + if loc then + return loc + end + if self.chunk[i] then + break + end + end + local uv = self.upvalues[name] + if uv then + return uv + end + return nil +end + +function mt:eachLocal(callback) + local mark = {} + for i = self._top, 1, -1 do + local locals = self.locals[i] + for name, loc in pairs(locals) do + if not mark[name] then + mark[name] = true + local res = callback(name, loc) + if res ~= nil then + return res + end + end + end + if self.chunk[i] then + break + end + end + for name, loc in pairs(self.upvalues) do + if not mark[name] then + mark[name] = true + local res = callback(name, loc) + if res ~= nil then + return res + end + end + end + return nil +end + +function mt:saveLabel(label) + if self._removed then + return + end + if not self._label then + self._label = {} + end + self._label[#self._label+1] = label +end + +function mt:loadLabel(name) + if not self._label then + return nil + end + for _, label in ipairs(self._label) do + if label:getName() == name then + return label + end + end + return nil +end + +function mt:rawSetReturn(index, value) + if self._removed then + return + end + self:set('hasReturn', true) + if not self.returns then + self.returns = createMulti() + end + if value then + self.returns:set(index, value) + if self._global then + value:markGlobal() + end + end +end + +function mt:setReturn(index, value) + local emmy = self._emmyReturns and self._emmyReturns[index] + if emmy then + if emmy:bindType() or emmy:bindGeneric() then + return + end + end + return self:rawSetReturn(index, value) +end + +function mt:mergeReturn(index, value) + if self._removed then + return + end + local emmy = self._emmyReturns and self._emmyReturns[index] + if emmy then + if emmy:bindType() or emmy:bindGeneric() then + return + end + end + self:set('hasReturn', true) + if not self.returns then + self.returns = createMulti() + end + if value then + if self.returns[index] then + self.returns[index]:mergeValue(value) + self.returns[index] = value + else + self.returns:set(index, value) + end + end + if self._global then + value:markGlobal() + end +end + +function mt:getReturn(index) + if self._removed then + return nil + end + if self.maxReturns and index and self.maxReturns < index then + return nil + end + if not self.returns then + self.returns = createMulti() + end + if index then + return self.returns:get(index) + else + return self.returns + end +end + +function mt:returnDots(index) + if not self.returns then + self.returns = createMulti() + end + --self.returns[index] = createMulti() +end + +function mt:loadDots() + if not self._dots then + self._dots = createMulti() + end + self._dotsLoad = true + return self._dots +end + +function mt:setObject(value, source) + self._objectValue = value + self._objectSource = source +end + +function mt:getObject() + return self._objectSource, self._objectValue +end + +function mt:hasRuned() + return self._runed > 0 +end + +function mt:needSkip() + return self._runed > 3 +end + +---@param vm VM +function mt:run(vm) + if self._removed then + return + end + if not self:getSource() then + return + end + + self._runed = self._runed + 1 + + -- 第一次运行函数时,创建函数的参数 + if self._runed == 1 then + -- 如果是面向对象形式的函数,创建隐藏的参数self + if self._objectSource then + local loc = localMgr.create('self', vm:instantSource(self._objectSource), self._objectValue) + loc:set('hide', true) + loc:set('start', self:getSource().start) + loc:close(self:getSource().finish) + self:saveUpvalue('self', loc) + self.args[#self.args+1] = loc + end + + -- 显性声明的参数 + self:createArgs(vm) + end + + if self:needSkip() then + return + end + + -- 向局部变量中填充参数 + for i, loc in ipairs(self.args) do + loc:setValue(self.argValues[i]) + local emmyParam = self:findEmmyParamByName(loc:getName()) + if emmyParam then + local typeObj = emmyParam:bindType() + if typeObj then + loc:getValue():setEmmy(typeObj) + end + local genericObj = emmyParam:bindGeneric() + if genericObj then + genericObj:setValue(loc:getValue()) + end + end + end + if self._dots then + local emmyParam = self:findEmmyParamByName('...') + self._dots = createMulti() + for i = #self.args + 1, #self.argValues do + local value = self.argValues[i] + self._dots:push(value) + if emmyParam then + local typeObj = emmyParam:bindType() + if typeObj then + value:setEmmy(typeObj) + end + local genericObj = emmyParam:bindGeneric() + if genericObj then + genericObj:setValue(value) + end + end + end + if emmyParam then + local typeObj = emmyParam:bindType() + if typeObj then + self._dots:setEmmy(typeObj) + end + local genericObj = emmyParam:bindGeneric() + if genericObj then + local value = self._dots:first() + if value then + genericObj:setValue(value) + end + end + end + end + + -- 填充返回值 + if self._emmyReturns then + for i, rtn in ipairs(self._emmyReturns) do + local value = vm:createValue('nil', rtn:getSource()) + local typeObj = rtn:bindType() + if typeObj then + value:setEmmy(typeObj) + end + local genericObj = rtn:bindGeneric() + if genericObj then + local destValue = genericObj:getValue() + if destValue then + value:mergeType(destValue) + end + end + self:rawSetReturn(i, value) + end + end +end + +function mt:eachEmmyReturn(callback) + if not self._emmyReturns then + return + end + for _, rtn in ipairs(self._emmyReturns) do + callback(rtn) + end +end + +function mt:setArgs(values) + for i = 1, #self.argValues do + self.argValues[i] = nil + end + for i = 1, #values do + self.argValues[i] = values[i] + end +end + +function mt:findEmmyParamByName(name) + local params = self._emmyParams + if not params then + return nil + end + for i = #params, 1, -1 do + local param = params[i] + if param:getName() == name then + return param + end + end + return nil +end + +function mt:findEmmyParamByIndex(index) + local arg = self.args[index] + if not arg then + return nil + end + local name = arg:getName() + return self:findEmmyParamByName(name) +end + +function mt:addArg(name, source, value, close) + local loc = localMgr.create(name, source, value) + loc:close(close) + self:saveUpvalue(name, loc) + self.args[#self.args+1] = loc + return loc +end + +function mt:createArg(vm, arg, close) + vm:instantSource(arg) + arg:set('arg', self) + if arg.type == 'name' then + vm:instantSource(arg) + local value = valueMgr.create('nil', arg) + self:addArg(arg[1], arg, value, close) + elseif arg.type == '...' then + self._dots = createMulti() + self._dotsSource = arg + end +end + +function mt:createLibArg(arg, source) + if arg.type == '...' then + self._dots = createMulti() + else + local name = arg.name or '_' + local loc = localMgr.create(name, source, valueMgr.create('any', source)) + self:saveUpvalue(name, loc) + self.args[#self.args+1] = loc + end +end + +function mt:hasDots() + return self._dots ~= nil +end + +function mt:createArgs(vm) + if not self:getSource() then + return + end + local args = self:getSource().arg + if not args then + return + end + local close = self:getSource().finish + if args.type == 'list' then + for _, arg in ipairs(args) do + self:createArg(vm, arg, close) + end + else + self:createArg(vm, args, close) + end +end + +function mt:set(name, v) + if not self._flag then + self._flag = {} + end + self._flag[name] = v +end + +function mt:get(name) + if not self._flag then + return nil + end + return self._flag[name] +end + +function mt:getSource() + if self._removed then + return nil + end + return listMgr.get(self.source) +end + +function mt:kill() + if self._removed then + return + end + self._removed = true + listMgr.clear(self.id) +end + +function mt:markGlobal() + if self._global then + return + end + self._global = true + if self.returns then + self.returns:eachValue(function (_, v) + v:markGlobal() + end) + end +end + +function mt:setEmmy(params, returns, overLoads) + if params then + self._emmyParams = params + for _, param in ipairs(params) do + param:getSource():set('emmy function', self) + param:getSource()[1]:set('emmy function', self) + end + end + if returns then + self._emmyReturns = returns + for _, rtn in ipairs(returns) do + rtn:getSource():set('emmy function', self) + end + end + if overLoads then + self._emmyOverLoads = overLoads + for _, ol in ipairs(overLoads) do + ol:getSource():set('emmy function', self) + end + end +end + +---@param comment string +function mt:setComment(comment) + self._comment = comment +end + +---@return string +function mt:getComment() + return self._comment +end + +function mt:getEmmyParams() + return self._emmyParams +end + +function mt:getEmmyOverLoads() + return self._emmyOverLoads +end + +local function create(source) + if not source then + error('Function need source') + end + local id = source.id + if not id then + error('Not instanted source') + end + local self = setmetatable({ + source = id, + locals = {}, + upvalues = {}, + chunk = {}, + finishs = {}, + args = {}, + argValues = {}, + }, mt) + + local id = listMgr.add(self) + self.id = id + Watch[self] = id + return self +end + +return { + create = create, + watch = Watch, +} diff --git a/script/src/vm/global.lua b/script/src/vm/global.lua new file mode 100644 index 00000000..af30ffdd --- /dev/null +++ b/script/src/vm/global.lua @@ -0,0 +1,25 @@ +local library = require 'core.library' +local libraryBuilder = require 'vm.library' +local sourceMgr = require 'vm.source' + +return function (lsp) + local global = lsp and lsp.globalValue + if not global then + libraryBuilder.clear() + local t = {} + for name, lib in pairs(library.global) do + t[name] = libraryBuilder.value(lib) + end + + global = t._G + global:markGlobal() + global:set('ENV', true) + for k, v in pairs(t) do + global:setChild(k, v, sourceMgr.dummy()) + end + end + if lsp then + lsp.globalValue = global + end + return global +end diff --git a/script/src/vm/init.lua b/script/src/vm/init.lua new file mode 100644 index 00000000..87576ba5 --- /dev/null +++ b/script/src/vm/init.lua @@ -0,0 +1 @@ +return require 'vm.vm' diff --git a/script/src/vm/ipairs.lua b/script/src/vm/ipairs.lua new file mode 100644 index 00000000..cb8356da --- /dev/null +++ b/script/src/vm/ipairs.lua @@ -0,0 +1,51 @@ +local mt = require 'vm.manager' +local library = require 'vm.library' + +---@param func emmyFunction +function mt:callIpairs(func, values, source) + local tbl = values[1] + func:setReturn(1, library.special['@ipairs']) + func:setReturn(2, tbl) +end + +---@param func emmyFunction +function mt:callAtIpairs(func, values, source) + local tbl = values[1] + if tbl then + local emmy = tbl:getEmmy() + if emmy then + if emmy.type == 'emmy.arrayType' then + local value = self:createValue(emmy:getName(), source) + func:setReturn(2, value) + end + end + end +end + +---@param func emmyFunction +function mt:callPairs(func, values, source) + local tbl = values[1] + func:setReturn(1, library.special['next']) + func:setReturn(2, tbl) +end + +---@param func emmyFunction +function mt:callNext(func, values, source) + local tbl = values[1] + if tbl then + local emmy = tbl:getEmmy() + if emmy then + if emmy.type == 'emmy.arrayType' then + local key = self:createValue('integer', source) + local value = self:createValue(emmy:getName(), source) + func:setReturn(1, key) + func:setReturn(2, value) + elseif emmy.type == 'emmy.tableType' then + local key = self:createValue(emmy:getKeyType():getType(), source) + local value = self:createValue(emmy:getValueType():getType(), source) + func:setReturn(1, key) + func:setReturn(2, value) + end + end + end +end diff --git a/script/src/vm/label.lua b/script/src/vm/label.lua new file mode 100644 index 00000000..c0e0dfb8 --- /dev/null +++ b/script/src/vm/label.lua @@ -0,0 +1,75 @@ +local listMgr = require 'vm.list' + +local Sort = 0 + +local mt = {} +mt.__index = mt +mt.type = 'label' + +function mt:getName() + return self.name +end + +function mt:addInfo(tp, source) + if not source then + error('No source') + end + local id = source.id + if not id then + error('Not instanted source') + end + if self._info[id] then + return + end + Sort = Sort + 1 + local info = { + type = tp, + source = id, + _sort = Sort, + } + + self._info[id] = info +end + +function mt:eachInfo(callback) + local list = {} + for srcId, info in pairs(self._info) do + local src = listMgr.get(srcId) + if src then + list[#list+1] = info + else + self._info[srcId] = nil + end + end + table.sort(list, function (a, b) + return a._sort < b._sort + end) + for i = 1, #list do + local info = list[i] + local res = callback(info, listMgr.get(info.source)) + if res ~= nil then + return res + end + end + return nil +end + +function mt:getSource() + return listMgr.get(self.source) +end + +return function (name, source) + if not source then + error('No source') + end + local id = source.id + if not id then + error('Not instanted source') + end + local self = setmetatable({ + name = name, + source = id, + _info = {}, + }, mt) + return self +end diff --git a/script/src/vm/library.lua b/script/src/vm/library.lua new file mode 100644 index 00000000..018d69f3 --- /dev/null +++ b/script/src/vm/library.lua @@ -0,0 +1,112 @@ +local sourceMgr = require 'vm.source' + +local valueMgr +local functionMgr + +local CHILD_CACHE = {} +local VALUE_CACHE = {} +local Special = {} + +local buildLibValue +local buildLibChild + +function buildLibValue(lib) + if VALUE_CACHE[lib] then + return VALUE_CACHE[lib] + end + if not valueMgr then + valueMgr = require 'vm.value' + functionMgr = require 'vm.function' + end + local tp = lib.type + local value + if tp == 'table' then + value = valueMgr.create('table', sourceMgr.dummy()) + elseif tp == 'function' then + local dummySource = sourceMgr.dummy() + value = valueMgr.create('function', dummySource) + local func = functionMgr.create(dummySource) + value:setFunction(func) + if lib.args then + for _, arg in ipairs(lib.args) do + func:createLibArg(arg, sourceMgr.dummy()) + end + end + if lib.returns then + for i, rtn in ipairs(lib.returns) do + if rtn.type == '...' then + func:returnDots(i) + else + func:setReturn(i, buildLibValue(rtn)) + end + end + if lib.special == 'pairs' then + func:setReturn(1, Special['next']) + end + if lib.special == 'ipairs' then + func:setReturn(1, Special['@ipairs']) + end + end + elseif tp == 'string' then + value = valueMgr.create('string', sourceMgr.dummy()) + elseif tp == 'boolean' then + value = valueMgr.create('boolean', sourceMgr.dummy()) + elseif tp == 'number' then + value = valueMgr.create('number', sourceMgr.dummy()) + elseif tp == 'integer' then + value = valueMgr.create('integer', sourceMgr.dummy()) + elseif tp == 'nil' then + value = valueMgr.create('nil', sourceMgr.dummy()) + else + value = valueMgr.create(tp or 'any', sourceMgr.dummy()) + end + value:setLib(lib) + VALUE_CACHE[lib] = value + + if lib.child then + for fName, fLib in pairs(lib.child) do + local fValue = buildLibValue(fLib) + value:rawSet(fName, fValue) + value:addInfo('set child', sourceMgr.dummy(), fName, fValue) + end + end + + if lib.special == 'next' then + Special['next'] = value + end + if lib.special == '@ipairs' then + Special['@ipairs'] = value + return nil + end + + return value +end + +function buildLibChild(lib) + if not valueMgr then + valueMgr = require 'vm.value' + functionMgr = require 'vm.function' + end + if CHILD_CACHE[lib] then + return CHILD_CACHE[lib] + end + local child = {} + for fName, fLib in pairs(lib.child) do + local fValue = buildLibValue(fLib) + child[fName] = fValue + end + CHILD_CACHE[lib] = child + return child +end + +local function clearCache() + CHILD_CACHE = {} + VALUE_CACHE = {} +end + +return { + value = buildLibValue, + child = buildLibChild, + clear = clearCache, + special = Special, +} diff --git a/script/src/vm/list.lua b/script/src/vm/list.lua new file mode 100644 index 00000000..234f241f --- /dev/null +++ b/script/src/vm/list.lua @@ -0,0 +1,30 @@ +local Id = 0 +local Version = 0 +local List = {} + +local function get(id) + return List[id] +end + +local function add(obj) + Id = Id + 1 + List[Id] = obj + return Id +end + +local function clear(id) + List[id] = nil + Version = Version + 1 +end + +local function getVersion() + return Version +end + +return { + get = get, + add = add, + clear = clear, + list = List, + getVersion = getVersion, +} diff --git a/script/src/vm/local.lua b/script/src/vm/local.lua new file mode 100644 index 00000000..7e8af0f1 --- /dev/null +++ b/script/src/vm/local.lua @@ -0,0 +1,191 @@ +local listMgr = require 'vm.list' + +local Sort = 0 +local Watch = setmetatable({}, {__mode = 'kv'}) + +---@class Local +local mt = {} +mt.__index = mt +mt.type = 'local' +mt._close = math.maxinteger + +function mt:setValue(value) + if not value then + return + end + if self.value then + --self.value:mergeValue(value) + self.value:mergeType(value) + self.value = value + else + self.value = value + end + if self._emmy then + self.value:setEmmy(self._emmy) + end + return value +end + +function mt:getValue() + return self.value +end + +function mt:addInfo(tp, source) + if not source then + error('No source') + end + local id = source.id + if not id then + error('Not instanted source') + end + if self._info[id] then + return + end + Sort = Sort + 1 + local info = { + type = tp, + source = id, + _sort = Sort, + } + + self._info[id] = info +end + +function mt:eachInfo(callback) + local list = {} + for srcId, info in pairs(self._info) do + local src = listMgr.get(srcId) + if src then + list[#list+1] = info + else + self._info[srcId] = nil + end + end + table.sort(list, function (a, b) + return a._sort < b._sort + end) + for i = 1, #list do + local info = list[i] + local res = callback(info, listMgr.get(info.source)) + if res ~= nil then + return res + end + end + return nil +end + +function mt:set(name, v) + if not self._flag then + self._flag = {} + end + self._flag[name] = v +end + +function mt:get(name) + if not self._flag then + return nil + end + return self._flag[name] +end + +function mt:getName() + return self.name +end + +function mt:shadow(old) + if not old then + if not self._shadow then + return nil + end + for i = #self._shadow, 1, -1 do + local loc = self._shadow[i] + if not loc:getSource() then + table.remove(self._shadow, i) + end + end + return self._shadow + end + local group = old._shadow + if not group then + group = {} + group[#group+1] = old + end + group[#group+1] = self + self._shadow = group + + if not self:getSource() then + log.error('local no source') + return + end + + old:close(self:getSource().start - 1) +end + +function mt:close(pos) + if pos then + if pos <= 0 then + pos = math.maxinteger + end + self._close = pos + else + return self._close + end +end + +function mt:getSource() + return listMgr.get(self.source) +end + +local EMMY_TYPE = { + ['emmy.class'] = true, + ['emmy.type'] = true, + ['emmy.arrayType'] = true, + ['emmy.tableType'] = true, + ['emmy.functionType'] = true, +} + +function mt:setEmmy(emmy) + if not emmy then + return + end + if self.value and EMMY_TYPE[emmy.type] then + self.value:setEmmy(emmy) + end +end + +---@param comment string +function mt:setComment(comment) + self._comment = comment +end + +---@return string +function mt:getComment() + return self._comment +end + +local function create(name, source, value, tags) + if not value then + error('Local must has a value') + end + if not source then + error('No source') + end + local id = source.id + if not id then + error('Not instanted source') + end + local self = setmetatable({ + name = name, + source = id, + value = value, + tags = tags, + _info = {}, + }, mt) + Watch[self] = true + return self +end + +return { + create = create, + watch = Watch, +} diff --git a/script/src/vm/manager.lua b/script/src/vm/manager.lua new file mode 100644 index 00000000..b9762d2e --- /dev/null +++ b/script/src/vm/manager.lua @@ -0,0 +1,17 @@ +---@class VM +local mt = {} +mt.__index = mt +mt.type = 'vm' +mt._version = -1 + +---@param version integer +function mt:setVersion(version) + self._version = version +end + +---@return integer +function mt:getVersion() + return self._version +end + +return mt diff --git a/script/src/vm/module.lua b/script/src/vm/module.lua new file mode 100644 index 00000000..60191bf3 --- /dev/null +++ b/script/src/vm/module.lua @@ -0,0 +1,56 @@ +local mt = require 'vm.manager' +local createMulti = require 'vm.multi' + +--[[ +function module(name, ...) + local env = {} + for _, opt in ipairs {...} do + opt(env) + end + @ENV = env +end +--]] +function mt:callModuel(func, values) + local envLoc = self:loadLocal('@ENV') + if not envLoc then + return + end + local source = self:getDefaultSource() + local newEnvValue = self:createValue('table', source) + local args = createMulti() + + args:push(newEnvValue) + + for i = 2, #values do + local value = values[i] + -- opt(env) + self:call(value, args, source) + end + + -- @ENV = env + envLoc:setValue(newEnvValue) +end + +--[[ +function package.seeall(env) + setmetatable(env, { __index = @ENV }) +end +--]] +function mt:callSeeAll(func, values) + local newEnv = values[1] + if not newEnv then + return + end + local envLoc = self:loadLocal('@ENV') + if not envLoc then + return + end + local oldEnv = envLoc:getValue() + if not oldEnv then + return + end + local source = self:getDefaultSource() + local meta = self:createValue('table', source) + meta:setChild('__index', oldEnv, source) + newEnv:setMetaTable(meta) +end diff --git a/script/src/vm/multi.lua b/script/src/vm/multi.lua new file mode 100644 index 00000000..4b27b8cf --- /dev/null +++ b/script/src/vm/multi.lua @@ -0,0 +1,83 @@ +local mt = {} +mt.__index = mt +mt.type = 'multi' +mt.len = 0 + +function mt:push(value, isLast) + if value and value.type == 'list' then + if isLast then + for _, v in ipairs(value) do + self.len = self.len + 1 + self[self.len] = v + end + else + self.len = self.len + 1 + self[self.len] = value[1] + end + else + self.len = self.len + 1 + self[self.len] = value + end +end + +function mt:get(index) + return self[index] +end + +function mt:set(index, value) + if index > self.len then + self.len = index + end + self[index] = value +end + +function mt:first() + local value = self[1] + if not value then + return nil + end + if value.type == 'multi' then + return value:first() + else + return value + end +end + +function mt:eachValue(callback) + local i = 0 + for n, value in ipairs(self) do + if value.type == 'multi' then + if n == self.len then + value:eachValue(function (_, nvalue) + i = i + 1 + callback(i, nvalue) + end) + else + i = i + 1 + value:first() + end + else + i = i + 1 + callback(i, value) + end + end +end + +function mt:merge(other) + other:eachValue(function (_, value) + self:push(value) + end) +end + +function mt:setEmmy(emmy) + self._emmy = emmy +end + +function mt:getEmmy() + return self._emmy +end + +return function () + local self = setmetatable({}, mt) + return self +end diff --git a/script/src/vm/pcall.lua b/script/src/vm/pcall.lua new file mode 100644 index 00000000..e5d1e26f --- /dev/null +++ b/script/src/vm/pcall.lua @@ -0,0 +1,50 @@ +local mt = require 'vm.manager' +local multi = require 'vm.multi' + +function mt:callPcall(func, values, source) + local funcValue = values:first() + if not funcValue then + return + end + local realFunc = funcValue:getFunction() + if not realFunc then + return + end + local argList = multi() + values:eachValue(function (i, v) + if i >= 2 then + argList:push(v) + end + end) + self:call(funcValue, argList, source) + if realFunc ~= func then + func:setReturn(1, self:createValue('boolean', source)) + realFunc:getReturn():eachValue(function (i, v) + func:setReturn(i + 1, v) + end) + end +end + +function mt:callXpcall(func, values, source) + local funcValue = values:first() + if not funcValue then + return + end + local realFunc = funcValue:getFunction() + if not realFunc then + return + end + local argList = multi() + values:eachValue(function (i, v) + if i >= 3 then + argList:push(v) + end + end) + self:call(funcValue, argList, source) + if realFunc ~= func then + func:setReturn(1, self:createValue('boolean', source)) + realFunc:getReturn():eachValue(function (i, v) + func:setReturn(i + 1, v) + end) + end +end diff --git a/script/src/vm/raw.lua b/script/src/vm/raw.lua new file mode 100644 index 00000000..f8c35734 --- /dev/null +++ b/script/src/vm/raw.lua @@ -0,0 +1,30 @@ +local mt = require 'vm.manager' + +function mt:callRawSet(func, values, source) + local tbl = values[1] + local index = values[2] + local value = values[3] + if not tbl or not index or not value then + return + end + if index:getLiteral() then + index = index:getLiteral() + end + tbl:addInfo('set child', source, index) + tbl:rawSet(index, value, source) + func:setReturn(1, tbl) +end + +function mt:callRawGet(func, values, source) + local tbl = values[1] + local index = values[2] + if not tbl or not index then + return + end + if index:getLiteral() then + index = index:getLiteral() + end + tbl:addInfo('get child', source, index) + local value = tbl:rawGet(index) + func:setReturn(1, value) +end diff --git a/script/src/vm/source.lua b/script/src/vm/source.lua new file mode 100644 index 00000000..7a10a38e --- /dev/null +++ b/script/src/vm/source.lua @@ -0,0 +1,183 @@ +local listMgr = require 'vm.list' + +---@class source +local mt = {} +mt.__index = mt +mt.type = 'source' +mt.uri = '' +mt.start = 0 +mt.finish = 0 +mt.id = 0 + +local Watch = setmetatable({}, {__mode = 'k'}) + +function mt:bindLocal(loc, action) + if loc then + self._bindLocal = loc + self._bindValue = loc:getValue() + self._action = action + loc:addInfo(action, self) + else + if not self._bindLocal then + return nil + end + if not self._bindLocal:getSource() then + self._bindLocal = nil + return nil + end + return self._bindLocal + end +end + +function mt:bindLabel(label, action) + if label then + self._bindLabel = label + self._action = action + label:addInfo(action, self) + else + return self._bindLabel + end +end + +function mt:bindFunction(func) + if func then + self._bindFunction = func + else + return self._bindFunction + end +end + +function mt:bindValue(value, action) + if value then + self._bindValue = value + self._action = action + value:addInfo(action, self) + else + return self._bindValue + end +end + +function mt:bindCall(args) + if args then + self._bindCallArgs = args + else + return self._bindCallArgs + end +end + +function mt:bindMetatable(meta) + if meta then + self._bindMetatable = meta + else + return self._bindMetatable + end +end + +function mt:action() + return self._action +end + +function mt:setUri(uri) + self.uri = uri +end + +function mt:getUri() + return self.uri +end + +function mt:set(name, v) + if not self._flag then + self._flag = {} + end + self._flag[name] = v +end + +function mt:get(name) + if not self._flag then + return nil + end + return self._flag[name] +end + +function mt:getName() + return self[1] +end + +function mt:kill() + self._dead = true + listMgr.clear(self.id) +end + +function mt:isDead() + return self._dead +end + +function mt:findValue() + local value = self:bindValue() + if not value then + return nil + end + if not value:isGlobal() then + return value + end + if self.type ~= 'name' then + return value + end + local parent = self:get 'parent' + if not parent then + return value + end + local name = self[1] + if type(name) ~= 'string' then + return value + end + return parent:getChild(name) or value +end + +function mt:findCallFunction() + local simple = self:get 'simple' + if not simple then + return nil + end + local source + for i = 1, #simple do + if simple[i] == self then + source = simple[i-1] + end + end + if not source then + return nil + end + local value = source:bindValue() + if value and value:getFunction() then + return value + end + value = source:findValue() + if value and value:getFunction() then + return value + end + return nil +end + +local function instant(source) + if source.id then + return false + end + local id = listMgr.add(source) + source.id = id + Watch[source] = id + setmetatable(source, mt) + return true +end + +local function dummy() + local src = {} + instant(src) + return src +end + +return { + instant = instant, + watch = Watch, + dummy = dummy, +} diff --git a/script/src/vm/special.lua b/script/src/vm/special.lua new file mode 100644 index 00000000..e93c4445 --- /dev/null +++ b/script/src/vm/special.lua @@ -0,0 +1,130 @@ +local mt = require 'vm.manager' +local multi = require 'vm.multi' +local library = require 'core.library' +local libraryBuilder = require 'vm.library' +local plugin = require 'plugin' + +---@param func emmyFunction +---@param values table +function mt:callEmmySpecial(func, values, source) + local emmyParams = func:getEmmyParams() + for index, param in ipairs(emmyParams) do + local option = param:getOption() + if option and type(option.special) == 'string' then + self:checkEmmyParam(func, values, index, option.special, source) + end + end +end + +---@param func emmyFunction +---@param values table +---@param index integer +---@param special string +function mt:checkEmmyParam(func, values, index, special, source) + if special == 'dofile:1' then + self:callEmmyDoFile(func, values, index) + elseif special == 'loadfile:1' then + self:callEmmyLoadFile(func, values, index) + elseif special == 'pcall:1' then + self:callEmmyPCall(func, values, index, source) + elseif special == 'require:1' then + self:callEmmyRequire(func, values, index) + end +end + +---@param func emmyFunction +---@param values table +---@param index integer +function mt:callEmmyDoFile(func, values, index) + if not values[index] then + values[index] = self:createValue('any', self:getDefaultSource()) + end + local str = values[index]:getLiteral() + if type(str) ~= 'string' then + return + end + local requireValue = self:tryRequireOne(str, values[index], 'dofile') + if not requireValue then + requireValue = self:createValue('any', self:getDefaultSource()) + requireValue.isRequire = true + end + func:setReturn(1, requireValue) +end + +---@param func emmyFunction +---@param values table +---@param index integer +function mt:callEmmyLoadFile(func, values, index) + if not values[index] then + values[index] = self:createValue('any', self:getDefaultSource()) + end + local str = values[index]:getLiteral() + if type(str) ~= 'string' then + return + end + local requireValue = self:tryRequireOne(str, values[index], 'loadfile') + if not requireValue then + requireValue = self:createValue('any', self:getDefaultSource()) + requireValue:set('cross file', true) + end + func:setReturn(1, requireValue) +end + +---@param func emmyFunction +---@param values table +---@param index integer +---@param source source +function mt:callEmmyPCall(func, values, index, source) + local funcValue = values[index] + if not funcValue then + return + end + local realFunc = funcValue:getFunction() + if not realFunc then + return + end + local argList = multi() + values:eachValue(function (i, v) + if i > index then + argList:push(v) + end + end) + self:call(funcValue, argList, source) + if realFunc ~= func then + func:setReturn(1, self:createValue('boolean', source)) + realFunc:getReturn():eachValue(function (i, v) + func:setReturn(i + 1, v) + end) + end +end + +---@param func emmyFunction +---@param values table +---@param index integer +function mt:callEmmyRequire(func, values, index) + if not values[index] then + values[index] = self:createValue('any', self:getDefaultSource()) + end + local strValue = values[index] + local strSource = strValue:getSource() + if not strSource then + return nil + end + local str = strValue:getLiteral() + local raw = self.text:sub(strSource.start, strSource.finish) + str = plugin.call('OnRequirePath', str, raw) or str + local lib = library.library[str] + if lib then + local value = libraryBuilder.value(lib) + value:markGlobal() + func:setReturn(1, value) + return + else + local requireValue = self:tryRequireOne(str, strValue, 'require') + if not requireValue then + requireValue = self:createValue('any', self:getDefaultSource()) + requireValue:set('cross file', true) + end + func:setReturn(1, requireValue) + end +end diff --git a/script/src/vm/value.lua b/script/src/vm/value.lua new file mode 100644 index 00000000..5de0d8e8 --- /dev/null +++ b/script/src/vm/value.lua @@ -0,0 +1,634 @@ +local libraryBuilder = require 'vm.library' +local library = require 'core.library' +local listMgr = require 'vm.list' +local config = require 'config' + +local Sort = 0 +local Watch = setmetatable({}, {__mode = 'kv'}) +local TypeLevel = { + ['table'] = 1.0, + ['function'] = 0.9, + ['string'] = 0.8, + ['integer'] = 0.7, + ['number'] = 0.6, +} + +---@class value +local mt = {} +mt.__index = mt +mt.type = 'value' +mt.uri = '' +mt._global = false + +local function create (tp, source, literal) + if tp == '...' then + error('Value type cant be ...') + end + if not source then + error('No source') + end + local id = source.id + if not id then + error('Not instanted source') + end + local self = setmetatable({ + source = id, + _type = {}, + _literal = literal, + _info = {}, + }, mt) + if type(tp) == 'table' then + for i = 1, #tp do + self:setType(tp[i], 1.0 / #tp) + end + else + self:setType(tp, 1.0) + end + Watch[self] = true + return self +end + +function mt:setType(tp, rate) + if type(tp) == 'table' then + for _, ctp in ipairs(tp) do + self:setType(ctp, rate) + end + return + end + if tp == '...' then + error('Value type cant be ...') + end + if not tp then + tp = 'nil' + end + if tp == 'any' or tp == 'nil' then + rate = 0.0 + end + if tp == 'integer' then + local version = config.config.runtime.version + if version ~= 'Lua 5.3' and version ~= 'Lua 5.4' then + tp = 'number' + end + end + local current = self._type[tp] or 0.0 + if rate > current then + self._type[tp] = rate + end +end + +function mt:getType() + if self:getEmmy() then + return self:getEmmy():getType(), 1.0 + end + if not self._type then + return 'nil', 0.0 + end + local mRate = 0.0 + local mType + for tp, rate in pairs(self._type) do + if rate > mRate then + mRate = rate + mType = tp + elseif rate == mRate then + local level1 = TypeLevel[tp] or 0.0 + local level2 = TypeLevel[mType] or 0.0 + if level1 > level2 then + mRate = rate + mType = tp + end + end + end + return mType or 'any', mRate +end + +function mt:rawSet(index, value, source) + if index == nil then + return + end + if not self._child then + self._child = {} + end + if self._child[index] then + if self._global then + self._child[index]:mergeValue(value) + else + self._child[index]:mergeType(value) + self._child[index]:mergeInfo(value) + end + self._child[index] = value + else + self._child[index] = value + end + self:addInfo('set child', source, index, self._child[index]) + if self._global then + self._child[index]:markGlobal() + end +end + +function mt:rawGet(index) + if not self._child then + return nil + end + self:flushChild() + local child = self._child[index] + if not child then + return nil + end + return child +end + +function mt:setChild(index, value, source) + if index == nil then + return + end + self:setType('table', 0.5) + self:rawSet(index, value, source) + return value +end + +function mt:getLibChild(index) + local tp = self:getType() + local lib = library.object[tp] + if lib then + local childs = libraryBuilder.child(lib) + return childs[index] + end + return nil +end + +function mt:eachLibChild(callback) + local tp = self:getType() + local lib = library.object[tp] + if lib then + local childs = libraryBuilder.child(lib) + for k, v in pairs(childs) do + callback(k, v) + end + end +end + +function mt:getChild(index, source) + self:setType('table', 0.5) + local parent = self + local value + -- 最多检查3层 __index + for _ = 1, 3 do + value = parent:rawGet(index) + if value then + break + end + local method = parent:getMetaMethod('__index') + if not method then + value = parent:getLibChild(index) + break + end + parent = method + end + if not value and source then + local emmy = self:getEmmy() + if emmy then + if emmy.type == 'emmy.arrayType' then + if type(index) == 'number' then + value = create(emmy:getName(), source) + end + elseif emmy.type == 'emmy.tableType' then + value = create(emmy:getValueType():getType(), source) + end + end + if not value then + value = create('any', source) + end + self:setChild(index, value) + value.uri = self.uri + end + return value +end + +function mt:setMetaTable(metatable) + local source = metatable:getSource() + if not source then + return + end + source:bindMetatable(metatable) + self._meta = metatable.source +end + +function mt:getMetaTable() + if not self._meta then + return nil + end + local metaSource = listMgr.get(self._meta) + if not metaSource then + self._meta = nil + return nil + end + return metaSource:bindMetatable() +end + +function mt:getMetaMethod(name) + local meta = self:getMetaTable() + if not meta then + return nil + end + return meta:rawGet(name) +end + +function mt:flushChild() + if not self._child then + return nil + end + -- 非全局值不会出现dead child + if not self._global then + return + end + local listVersion = listMgr.getVersion() + if self._flushVersion == listVersion then + return + end + self._flushVersion = listVersion + local alived = {} + local infos = self._info + local count = 0 + for srcId, info in pairs(infos) do + local src = listMgr.get(srcId) + if src then + if info.type == 'set child' or info.type == 'get child' then + if info[1] then + alived[info[1]] = true + end + end + count = count + 1 + else + infos[srcId] = nil + end + end + infos._count = count + infos._limit = count * 1.1 + 10 + infos._version = listMgr.getVersion() + for index in pairs(self._child) do + if not alived[index] then + self._child[index] = nil + end + end +end + +function mt:rawEach(callback, mark) + if not self._child then + return nil + end + self:flushChild() + for index, value in pairs(self._child) do + if mark then + if mark[index] then + goto CONTINUE + end + mark[index] = true + end + local res = callback(index, value) + if res ~= nil then + return res + end + ::CONTINUE:: + end + return nil +end + +function mt:eachChild(callback) + local mark = {} + local parent = self + -- 最多检查3层 __index + for _ = 1, 3 do + local res = parent:rawEach(callback, mark) + if res ~= nil then + return res + end + local method = parent:getMetaMethod('__index') + if not method then + return parent:eachLibChild(callback) + end + parent = method + end +end + +function mt:mergeType(value) + if self == value then + return + end + if not value then + return + end + if self._emmy and not value._emmy then + value._emmy = self._emmy + return + elseif not self._emmy and value._emmy then + self._emmy = value._emmy + return + end + if value._type then + for tp, rate in pairs(value._type) do + self:setType(tp, rate) + end + end + value._type = self._type +end + +function mt:mergeInfo(value) + if self == value then + return + end + if not value then + return + end + local infos = self._info + for srcId, info in pairs(value._info) do + local src = listMgr.get(srcId) + if src and not infos[srcId] then + infos[srcId] = info + infos._count = (infos._count or 0) + 1 + end + end + value._info = infos +end + +function mt:mergeValue(value) + if self == value then + return + end + if not value then + return + end + local list = {self, value} + local pos = 1 + while true do + local a, b = list[pos], list[pos+1] + if not a then + break + end + pos = pos + 2 + list[a] = true + list[b] = true + a:mergeType(b) + a:mergeInfo(b) + + a:flushChild() + b:flushChild() + local global = a._global or b._global + if b._child then + if not a._child then + a._child = {} + end + for k, bc in pairs(b._child) do + local ac = a._child[k] + if ac and ac ~= bc and global then + if list[ac] and list[bc] then + else + list[#list+1] = ac + list[#list+1] = bc + end + end + a._child[k] = bc + end + end + b._child = a._child + if global then + a:markGlobal() + b:markGlobal() + end + + if b._meta then + a._meta = b._meta + end + if b._func then + a._func = b._func + end + if b._lib then + a._lib = b._lib + end + if b.uri then + a.uri = b.uri + end + end +end + +function mt:addInfo(tp, source, ...) + if not source then + return + end + if not source.start then + error('Miss start: ' .. table.dump(source)) + end + local id = source.id + if not id then + error('Not instanted source') + end + if not tp then + error('Miss info type') + end + + local infos = self._info + if infos[id] then + return + end + Sort = Sort + 1 + local info = { + type = tp, + source = id, + _sort = Sort, + ... + } + infos[id] = info + infos._count = (infos._count or 0) + 1 + local version = listMgr.getVersion() + -- 只有全局值需要压缩info + if self._global and infos._count > (infos._limit or 10) and infos._version ~= version then + local count = 0 + for srcId in pairs(infos) do + local src = listMgr.get(srcId) + if src then + count = count + 1 + else + infos[srcId] = nil + end + end + infos._count = count + infos._limit = count * 1.1 + 10 + infos._version = version + end +end + +function mt:eachInfo(callback) + local clock = os.clock() + local infos = self._info + local list = {} + for srcId, info in pairs(infos) do + local src = listMgr.get(srcId) + if src then + list[#list+1] = info + else + infos[srcId] = nil + end + end + infos._count = #list + infos._limit = infos._count * 1.1 + 10 + infos._version = listMgr.getVersion() + --local clock2 = os.clock() + --table.sort(list, function (a, b) + -- return a._sort < b._sort + --end) + local passed = os.clock() - clock + if passed > 0.1 then + log.warn(('eachInfo takes: [%.3f]sec, #list: %d'):format(passed, #list)) + end + for i = 1, #list do + local info = list[i] + local res = callback(info, listMgr.get(info.source)) + if res ~= nil then + return res + end + end + return nil +end + +function mt:setFunction(func) + self._func = func.id + if self._global then + func:markGlobal() + end +end + +function mt:getFunction() + local id = self._func + local func = listMgr.get(id) + if not func then + return nil + end + if func._removed then + return nil + end + if not func:getSource() then + func = nil + listMgr.clear(id) + end + return func +end + +function mt:setLib(lib) + self._lib = lib +end + +function mt:getLib() + return self._lib +end + +function mt:getLiteral() + return self._literal +end + +function mt:set(name, v) + if not self._flag then + self._flag = {} + end + self._flag[name] = v +end + +function mt:get(name) + if not self._flag then + return nil + end + return self._flag[name] +end + +function mt:getSource() + return listMgr.get(self.source) +end + +function mt:markGlobal() + if self._global then + return + end + self._global = true + self:rawEach(function (index, value) + value:markGlobal() + end) + local func = self:getFunction() + if func then + func:markGlobal() + end +end + +function mt:isGlobal() + return self._global +end + +function mt:setEmmy(emmy) + if not emmy then + return + end + if emmy.type == 'emmy.class' then + ---@type EmmyClass + local emmyClass = emmy + emmyClass:setValue(self) + emmyClass:eachChild(function (obj) + local value = obj:getValue() + if value then + value:mergeValue(self) + end + end) + emmyClass:eachField(function (field) + local name = field:getName() + local value = field:bindValue() + self:setChild(name, value, field:getSource()) + end) + elseif emmy.type == 'emmy.type' then + ---@type EmmyType + local emmyType = emmy + emmyType:setValue(self) + emmyType:eachClass(function (class) + if class then + self:mergeValue(class:getValue()) + end + end) + elseif emmy.type == 'emmy.arrayType' then + ---@type EmmyArrayType + local emmyArrayType = emmy + emmyArrayType:setValue(self) + elseif emmy.type == 'emmy.tableType' then + ---@type EmmyTableType + local emmyTableType = emmy + emmyTableType:setValue(self) + elseif emmy.type == 'emmy.functionType' then + ---@type EmmyFunctionType + local emmyFuncType = emmy + emmyFuncType:setValue(self) + self:setFunction(emmyFuncType:bindFunction()) + else + return + end + self._emmy = emmy + self:markGlobal() +end + +function mt:getEmmy() + if not self._emmy then + return nil + end + local source = self._emmy.source + if not listMgr.get(source) then + self._emmy = nil + return nil + end + return self._emmy +end + +function mt:setComment(comment) + self._comment = comment +end + +function mt:getComment(comment) + return self._comment +end + +return { + create = create, + watch = Watch, +} diff --git a/script/src/vm/vm.lua b/script/src/vm/vm.lua new file mode 100644 index 00000000..36ad78c9 --- /dev/null +++ b/script/src/vm/vm.lua @@ -0,0 +1,1334 @@ +local library = require 'core.library' +local valueMgr = require 'vm.value' +local localMgr = require 'vm.local' +local createLabel = require 'vm.label' +local functionMgr = require 'vm.function' +local sourceMgr = require 'vm.source' +local buildGlobal = require 'vm.global' +local createMulti = require 'vm.multi' +local libraryBuilder = require 'vm.library' +local emmyMgr = require 'emmy.manager' +local config = require 'config' +local mt = require 'vm.manager' +local plugin = require 'plugin' + +require 'vm.module' +require 'vm.raw' +require 'vm.pcall' +require 'vm.ipairs' +require 'vm.emmy' +require 'vm.special' + +-- TODO source测试 +--rawset(_G, 'CachedSource', setmetatable({}, { __mode = 'kv' })) + +function mt:getDefaultSource() + return self:instantSource { + start = 0, + finish = 0, + } +end + +function mt:scopePush(source) + self.currentFunction:push(source) +end + +function mt:scopePop() + self.currentFunction:pop() +end + +function mt:buildTable(source) + local tbl = self:createValue('table', source) + if not source then + return tbl + end + local n = 0 + for index, obj in ipairs(source) do + local emmy = self:getEmmy() + if obj.type == 'pair' then + local value = self:getFirstInMulti(self:getExp(obj[2])) + if value then + local key = obj[1] + self:instantSource(obj) + self:instantSource(key) + key:bindValue(value, 'set') + value:setEmmy(emmy) + if key.type == 'index' then + local index = self:getIndex(key) + key:set('parent', tbl) + tbl:setChild(index, value, key) + else + if key.type == 'name' then + key:set('parent', tbl) + key:set('table index', true) + tbl:setChild(key[1], value, key) + end + end + end + elseif obj.type:sub(1, 4) == 'emmy' then + self:doEmmy(obj) + else + local value = self:getExp(obj) + if value.type == 'multi' then + if index == #source then + value:eachValue(function (_, v) + n = n + 1 + tbl:setChild(n, v, obj) + end) + else + n = n + 1 + local v = self:getFirstInMulti(value) + tbl:setChild(n, v, obj) + end + else + n = n + 1 + tbl:setChild(n, value, obj) + end + -- 处理写了一半的 key = value,把name类的数组元素视为哈希键 + if obj.type == 'name' then + obj:set('table index', true) + end + end + end + return tbl +end + +function mt:runFunction(func) + func:run(self) + + if not func:getSource() then + return + end + + if func:needSkip() then + return + end + + -- 暂时使用这种方式激活参数的source + for _, arg in ipairs(func.args) do + if arg:getSource() ~= func:getObject() then + self:bindLocal(arg:getSource(), arg, 'local') + end + end + + local originFunction = self:getCurrentFunction() + self:setCurrentFunction(func) + func:push(func:getSource()) + func:markChunk() + + self:doActions(func:getSource()) + + func:pop() + self:setCurrentFunction(originFunction) +end + +function mt:buildFunction(exp) + if exp and exp:bindFunction() then + return exp:bindFunction() + end + + local value = self:createFunction(exp) + + if not exp then + return value + end + + exp:bindFunction(value) + local func = value:getFunction() + + self:eachLocal(function (name, loc) + func:saveUpvalue(name, loc) + end) + + return value +end + +function mt:forList(list, callback) + if not list then + return + end + if list.type == 'list' then + for i = 1, #list do + callback(list[i]) + end + else + callback(list) + end +end + +function mt:callSetMetaTable(func, values, source) + if not values[1] then + values[1] = self:createValue('any', self:getDefaultSource()) + end + if not values[2] then + values[2] = self:createValue('any', self:getDefaultSource()) + end + func:setReturn(1, values[1]) + values[1]:setMetaTable(values[2]) +end + +function mt:tryRequireOne(str, strValue, mode) + if not self.lsp or not self.lsp.workspace then + return nil + end + local strSource = strValue:getSource() + if not strSource then + return nil + end + if type(str) == 'string' then + -- 支持 require 'xxx' 的转到定义 + self:instantSource(strSource) + local uri + if mode == 'require' then + uri = self.lsp.workspace:searchPath(self:getUri(), str) + elseif mode == 'loadfile' then + uri = self.lsp.workspace:loadPath(self:getUri(), str) + elseif mode == 'dofile' then + uri = self.lsp.workspace:loadPath(self:getUri(), str) + end + if not uri then + return nil + end + + strSource:set('target uri', uri) + self.lsp:compileChain(self:getUri(), uri) + return self.lsp.chain:get(uri) + end + return nil +end + +function mt:callRequire(func, values) + if not values[1] then + values[1] = self:createValue('any', self:getDefaultSource()) + end + local strValue = values[1] + local strSource = strValue:getSource() + if not strSource then + return nil + end + local str = strValue:getLiteral() + local raw = self.text:sub(strSource.start, strSource.finish) + str = plugin.call('OnRequirePath', str, raw) or str + local lib = library.library[str] + if lib then + local value = libraryBuilder.value(lib) + value:markGlobal() + func:setReturn(1, value) + return + else + local requireValue = self:tryRequireOne(str, values[1], 'require') + if not requireValue then + requireValue = self:createValue('any', self:getDefaultSource()) + requireValue:set('cross file', true) + end + func:setReturn(1, requireValue) + end +end + +function mt:callLoadFile(func, values) + if not values[1] then + values[1] = self:createValue('any', self:getDefaultSource()) + end + local strValue = values[1] + local requireValue = self:tryRequireOne(strValue:getLiteral(), values[1], 'loadfile') + if not requireValue then + requireValue = self:createValue('any', self:getDefaultSource()) + requireValue:set('cross file', true) + end + func:setReturn(1, requireValue) +end + +function mt:callDoFile(func, values) + if not values[1] then + values[1] = self:createValue('any', self:getDefaultSource()) + end + local strValue = values[1] + local requireValue = self:tryRequireOne(strValue:getLiteral(), values[1], 'dofile') + if not requireValue then + requireValue = self:createValue('any', self:getDefaultSource()) + requireValue.isRequire = true + end + func:setReturn(1, requireValue) +end + +function mt:callLibrary(func, values, source, lib) + if lib.args then + for i, arg in ipairs(lib.args) do + local value = values[i] + if value and arg.type ~= '...' then + value:setType(arg.type, 0.6) + end + end + end + if lib.returns then + for i, rtn in ipairs(lib.returns) do + if rtn.type == '...' then + --func:getReturn(i):setType('any', 0.0) + else + if rtn.type == 'boolean' or rtn.type == 'number' or rtn.type == 'integer' or rtn.type == 'string' then + func:setReturn(i, self:createValue(rtn.type, self:getDefaultSource())) + end + local value = func:getReturn(i) + if value then + value:setType(rtn.type or 'any', 0.6) + end + end + end + end + if lib.special then + if lib.special == 'setmetatable' then + self:callSetMetaTable(func, values, source) + elseif lib.special == 'require' then + self:callRequire(func, values) + elseif lib.special == 'loadfile' then + self:callLoadFile(func, values) + elseif lib.special == 'dofile' then + self:callDoFile(func, values) + elseif lib.special == 'module' then + self:callModuel(func, values) + elseif lib.special == 'seeall' then + self:callSeeAll(func, values) + elseif lib.special == 'rawset' then + self:callRawSet(func, values, source) + elseif lib.special == 'rawget' then + self:callRawGet(func, values, source) + elseif lib.special == 'pcall' then + self:callPcall(func, values, source) + elseif lib.special == 'xpcall' then + self:callXpcall(func, values, source) + elseif lib.special == 'ipairs' then + self:callIpairs(func, values, source) + elseif lib.special == '@ipairs' then + self:callAtIpairs(func, values, source) + elseif lib.special == 'pairs' then + self:callPairs(func, values, source) + elseif lib.special == 'next' then + self:callNext(func, values, source) + end + else + -- 如果lib的参数中有function,则立即执行function + if lib.args then + local args + for i = 1, #lib.args do + local value = values[i] + if value and value:getFunction() then + if not args then + args = createMulti() + end + self:call(value, args, source) + end + end + end + end +end + +function mt:call(value, values, source) + local lib = value:getLib() + ---@type emmyFunction + local func = value:getFunction() + value:setType('function', 0.5) + if not func then + return + end + self:instantSource(source) + if lib then + self:callLibrary(func, values, source, lib) + else + if func:getSource() then + if not source:get 'called' then + source:set('called', true) + func:setArgs(values) + self:runFunction(func) + end + else + func:mergeReturn(1, self:createValue('any', source)) + end + if func:getEmmyParams() then + self:callEmmySpecial(func, values, source) + end + end + + return func:getReturn() +end + +function mt:createValue(tp, source, literal) + local value = valueMgr.create(tp, source, literal) + value.uri = self:getUri() + return value +end + +function mt:getName(name, source) + if source then + self:instantSource(source) + if source:bindLocal() then + local loc = source:bindLocal() + return loc:getValue() + end + end + local loc = self:loadLocal(name) + if loc then + source:bindLocal(loc, 'get') + return loc:getValue() + end + local global = source:bindValue() + if global then + return global + end + local ENV + if self.envType == '_ENV' then + ENV = self:loadLocal('_ENV') + else + ENV = self:loadLocal('@ENV') + end + local ENVValue = ENV:getValue() + ENVValue:addInfo('get child', source, name) + global = ENVValue:getChild(name, source) + source:bindValue(global, 'get') + source:set('global', true) + source:set('parent', ENVValue) + if not global:getLib() then + if self.lsp then + self.lsp.global:markGet(self:getUri()) + end + end + return global +end + +function mt:setName(name, source, value) + self:instantSource(source) + local loc = self:loadLocal(name) + if loc then + loc:setValue(value) + source:bindLocal(loc, 'set') + return + end + local global = source:bindValue() + if global then + return global + end + local ENV + if self.envType == '_ENV' then + ENV = self:loadLocal('_ENV') + else + ENV = self:loadLocal('@ENV') + end + local ENVValue = ENV:getValue() + source:bindValue(value, 'set') + ENVValue:setChild(name, value, source) + source:set('global', true) + source:set('parent', ENVValue) + if self.lsp then + self.lsp.global:markSet(self:getUri()) + end +end + +function mt:getIndex(source) + local child = source[1] + if child.type == 'name' then + local value = self:getName(child[1], child) + child:set('in index', source) + return value + elseif child.type == 'string' or child.type == 'number' or child.type == 'boolean' then + self:instantSource(child) + child:set('in index', source) + return child[1] + else + local index = self:getExp(child) + return self:getFirstInMulti(index) + end +end + +function mt:unpackList(list) + local values = createMulti() + local exps = createMulti() + if not list then + return values + end + if list.type == 'list' or list.type == 'call' or list.type == 'return' then + for i, exp in ipairs(list) do + self:instantSource(exp) + exps:push(exp) + if exp.type == '...' then + values:merge(self:loadDots()) + break + end + local value = self:getExp(exp) + if value.type == 'multi' then + if i == #list then + value:eachValue(function (_, v) + values:push(v) + end) + else + values:push(self:getFirstInMulti(value)) + end + else + values:push(value) + end + end + elseif list.type == '...' then + self:instantSource(list) + exps:push(list) + values:merge(self:loadDots()) + else + self:instantSource(list) + exps:push(list) + local value = self:getExp(list) + if value.type == 'multi' then + value:eachValue(function (_, v) + values:push(v) + end) + else + values:push(value) + end + end + return values, exps +end + +function mt:getFirstInMulti(multi) + if not multi then + return multi + end + if multi.type == 'multi' then + return self:getFirstInMulti(multi[1]) + else + return multi + end +end + +function mt:getSimple(simple, max) + self:instantSource(simple) + local first = simple[1] + self:instantSource(first) + local value = self:getExp(first) + value = self:getFirstInMulti(value) or valueMgr.create('nil', self:getDefaultSource()) + first:bindValue(value, 'get') + if not max then + max = #simple + elseif max < 0 then + max = #simple + 1 + max + end + local object + for i = 2, max do + local source = simple[i] + self:instantSource(source) + source:set('simple', simple) + value = self:getFirstInMulti(value) or valueMgr.create('nil', self:getDefaultSource()) + + if source.type == 'call' then + local values, args = self:unpackList(source) + local func = value + if object then + table.insert(values, 1, object) + table.insert(args, 1, simple[i-3]) + source:set('has object', true) + end + object = nil + source:bindCall(args) + value = self:call(func, values, source) or valueMgr.create('any', self:getDefaultSource()) + elseif source.type == 'index' then + local child = source[1] + local index = self:getIndex(source) + child:set('parent', value) + value:addInfo('get child', source, index) + value = value:getChild(index, source) + source:bindValue(value, 'get') + elseif source.type == 'name' then + source:set('parent', value) + source:set('object', object) + value:addInfo('get child', source, source[1]) + value = value:getChild(source[1], source) + source:bindValue(value, 'get') + elseif source.type == ':' then + object = value + source:set('parent', value) + source:set('object', object) + elseif source.type == '.' then + source:set('parent', value) + end + end + return value +end + +function mt:isTrue(v) + if v:getType() == 'nil' then + return false + end + if v:getType() == 'boolean' and not v:getLiteral() then + return false + end + return true +end + +function mt:getBinary(exp) + self:instantSource(exp) + local v1 = self:getExp(exp[1]) + local v2 = self:getExp(exp[2]) + v1 = self:getFirstInMulti(v1) or valueMgr.create('nil', exp[1]) + v2 = self:getFirstInMulti(v2) or valueMgr.create('nil', exp[2]) + local op = exp.op + -- TODO 搜索元方法 + if op == 'or' then + if self:isTrue(v1) then + return v1 + else + return v2 + end + elseif op == 'and' then + if self:isTrue(v1) then + return v2 + else + return v1 + end + elseif op == '<=' + or op == '>=' + or op == '<' + or op == '>' + then + v1:setType('number', 0.5) + v2:setType('number', 0.5) + v1:setType('string', 0.1) + v2:setType('string', 0.1) + return self:createValue('boolean', exp) + elseif op == '~=' + or op == '==' + then + return self:createValue('boolean', exp) + elseif op == '|' + or op == '~' + or op == '&' + or op == '<<' + or op == '>>' + then + v1:setType('integer', 0.5) + v2:setType('integer', 0.5) + v1:setType('number', 0.5) + v2:setType('number', 0.5) + v1:setType('string', 0.1) + v2:setType('string', 0.1) + if math.type(v1:getLiteral()) == 'integer' and math.type(v2:getLiteral()) == 'integer' then + if op == '|' then + return self:createValue('integer', exp, v1:getLiteral() | v2:getLiteral()) + elseif op == '~' then + return self:createValue('integer', exp, v1:getLiteral() ~ v2:getLiteral()) + elseif op == '&' then + return self:createValue('integer', exp, v1:getLiteral() &v2:getLiteral()) + elseif op == '<<' then + return self:createValue('integer', exp, v1:getLiteral() << v2:getLiteral()) + elseif op == '>>' then + return self:createValue('integer', exp, v1:getLiteral() >> v2:getLiteral()) + end + end + return self:createValue('integer', exp) + elseif op == '..' then + v1:setType('string', 0.5) + v2:setType('string', 0.5) + v1:setType('number', 0.1) + v2:setType('number', 0.1) + if type(v1:getLiteral()) == 'string' and type(v2:getLiteral()) == 'string' then + return self:createValue('string', exp, v1:getLiteral() .. v2:getLiteral()) + end + return self:createValue('string', exp) + elseif op == '+' + or op == '-' + or op == '*' + or op == '/' + or op == '^' + or op == '%' + or op == '//' + then + v1:setType('number', 0.5) + v2:setType('number', 0.5) + if type(v1:getLiteral()) == 'number' and type(v2:getLiteral()) == 'number' then + if op == '+' then + return self:createValue('number', exp, v1:getLiteral() + v2:getLiteral()) + elseif op == '-' then + return self:createValue('number', exp, v1:getLiteral() - v2:getLiteral()) + elseif op == '*' then + return self:createValue('number', exp, v1:getLiteral() * v2:getLiteral()) + elseif op == '/' then + if v2:getLiteral() ~= 0 then + return self:createValue('number', exp, v1:getLiteral() / v2:getLiteral()) + end + elseif op == '^' then + return self:createValue('number', exp, v1:getLiteral() ^ v2:getLiteral()) + elseif op == '%' then + if v2:getLiteral() ~= 0 then + return self:createValue('number', exp, v1:getLiteral() % v2:getLiteral()) + end + elseif op == '//' then + if v2:getLiteral() ~= 0 then + return self:createValue('number', exp, v1:getLiteral() // v2:getLiteral()) + end + end + end + return self:createValue('number', exp) + end + return nil +end + +function mt:getUnary(exp) + self:instantSource(exp) + local v1 = self:getExp(exp[1]) + v1 = self:getFirstInMulti(v1) or self:createValue('nil', exp[1]) + local op = exp.op + -- TODO 搜索元方法 + if op == 'not' then + return self:createValue('boolean', exp) + elseif op == '#' then + v1:setType('table', 0.5) + v1:setType('string', 0.5) + if type(v1:getLiteral()) == 'string' then + return self:createValue('integer', exp, #v1:getLiteral()) + end + return self:createValue('integer', exp) + elseif op == '-' then + v1:setType('number', 0.5) + if type(v1:getLiteral()) == 'number' then + return self:createValue('number', exp, -v1:getLiteral()) + end + return self:createValue('number', exp) + elseif op == '~' then + v1:setType('integer', 0.5) + if math.type(v1:getLiteral()) == 'integer' then + return self:createValue('integer', exp, ~v1:getLiteral()) + end + return self:createValue('integer', exp) + end + return nil +end + +function mt:getExp(exp) + self:instantSource(exp) + local tp = exp.type + if tp == 'nil' then + return self:createValue('nil', exp) + elseif tp == 'string' then + return self:createValue('string', exp, exp[1]) + elseif tp == 'boolean' then + return self:createValue('boolean', exp, exp[1]) + elseif tp == 'number' then + return self:createValue('number', exp, exp[1]) + elseif tp == 'name' then + local value = self:getName(exp[1], exp) + return value + elseif tp == 'simple' then + return self:getSimple(exp) + elseif tp == 'index' then + return self:getIndex(exp) + elseif tp == 'binary' then + return self:getBinary(exp) + elseif tp == 'unary' then + return self:getUnary(exp) + elseif tp == 'function' then + return self:buildFunction(exp) + elseif tp == 'table' then + return self:buildTable(exp) + elseif tp == '...' then + return self:loadDots() + elseif tp == 'list' then + return self:getMultiByList(exp) + end + error('Unkown exp type: ' .. tostring(tp)) +end + +function mt:getMultiByList(list) + local multi = createMulti() + for i, exp in ipairs(list) do + multi:push(self:getExp(exp), i == #list) + end + return multi +end + +function mt:doDo(action) + self:instantSource(action) + self:scopePush(action) + self:doActions(action) + self:scopePop() +end + +function mt:doReturn(action) + if #action == 0 then + return + end + self:instantSource(action) + local values = self:unpackList(action) + local func = self:getCurrentFunction() + values:eachValue(function (n, value) + value.uri = self:getUri() + func:mergeReturn(n, value) + local source = action[n] or value:getSource() + if not source or source.start == 0 then + source = self:getDefaultSource() + end + value:addInfo('return', source) + end) +end + +function mt:doLabel(source) + local name = source[1] + local label = self:loadLabel(name) + if label then + self:bindLabel(source, label, 'set') + else + label = self:createLabel(name, source, 'set') + end +end + +function mt:createLabel(name, source, action) + local label = self:bindLabel(source) + if label then + self:saveLabel(label) + return label + end + + label = createLabel(name, source) + self:saveLabel(label) + self:bindLabel(source, label, action) + return label +end + +function mt:doGoTo(source) + local name = source[1] + local label = self:loadLabel(name) + if label then + self:bindLabel(source, label, 'get') + else + label = self:createLabel(name, source, 'get') + end +end + +function mt:setOne(var, value, emmy, comment) + if not value then + value = valueMgr.create('nil', self:getDefaultSource()) + end + value:setEmmy(emmy) + value:setComment(comment) + self:instantSource(var) + if var.type == 'name' then + self:setName(var[1], var, value) + elseif var.type == 'simple' then + local parent = self:getSimple(var, -2) + parent = self:getFirstInMulti(parent) + local key = var[#var] + self:instantSource(key) + key:set('simple', var) + if key.type == 'index' then + local index = self:getIndex(key) + key[1]:set('parent', parent) + parent:setChild(index, value, key[1]) + elseif key.type == 'name' then + local index = key[1] + key:set('parent', parent) + parent:setChild(index, value, key) + end + key:bindValue(value, 'set') + end +end + +function mt:doSet(action) + local emmy = self:getEmmy() + local comment = self:getEmmyComment() + if not action[2] then + return + end + self:instantSource(action) + -- 要先计算值 + local vars = action[1] + local exps = action[2] + local value = self:getExp(exps) + local values = {} + if value.type == 'multi' then + if not emmy then + emmy = value:getEmmy() + end + value:eachValue(function (i, v) + values[i] = v + end) + else + values[1] = value + end + local i = 0 + self:forList(vars, function (var) + i = i + 1 + self:setOne(var, values[i], emmy, comment) + end) +end + +function mt:doLocal(action) + local emmy = self:getEmmy() + local comment = self:getEmmyComment() + self:instantSource(action) + local vars = action[1] + local exps = action[2] + local values + if exps then + local value = self:getExp(exps) + values = {} + if value.type == 'multi' then + if not emmy then + emmy = value:getEmmy() + end + value:eachValue(function (i, v) + values[i] = v + end) + else + values[1] = value + end + end + local i = 0 + self:forList(vars, function (key) + i = i + 1 + local value + if values then + value = values[i] + end + self:createLocal(key[1], key, value, emmy, comment) + end) +end + +function mt:doIf(action) + self:instantSource(action) + for _, block in ipairs(action) do + if block.filter then + self:getExp(block.filter) + end + + self:scopePush(block) + self:doActions(block) + self:scopePop() + end +end + +function mt:doLoop(action) + self:instantSource(action) + local min = self:getFirstInMulti(self:getExp(action.min)) + self:getExp(action.max) + if action.step then + self:getExp(action.step) + end + + self:scopePush(action) + self:createLocal(action.arg[1], action.arg, min) + self:doActions(action) + self:scopePop() +end + +function mt:doIn(action) + local emmyParams = self:getEmmyParams() + self:instantSource(action) + local args = self:unpackList(action.exp) + + self:scopePush(action) + local func = table.remove(args, 1) or valueMgr.create('any', self:getDefaultSource()) + local values = self:call(func, args, action) or createMulti() + self:forList(action.arg, function (arg) + self:instantSource(arg) + local value = table.remove(values, 1) or self:createValue('nil', arg) + if emmyParams then + for i = #emmyParams, 1, -1 do + local emmyParam = emmyParams[i] + if emmyParam and emmyParam:getName() == arg[1] then + value:setEmmy(emmyParam:bindType()) + end + end + end + self:createLocal(arg[1], arg, value) + end) + + self:doActions(action) + + self:scopePop() +end + +function mt:doWhile(action) + self:instantSource(action) + self:getExp(action.filter) + + self:scopePush(action) + self:doActions(action) + self:scopePop() +end + +function mt:doRepeat(action) + self:instantSource(action) + self:scopePush(action) + self:doActions(action) + self:getExp(action.filter) + self:scopePop() +end + +function mt:doFunction(action) + self:instantSource(action) + local name = action.name + if name then + self:instantSource(name) + if name.type == 'simple' then + local parent = self:getSimple(name, -2) + if name[#name-1].type == ':' then + local value = self:buildFunction(action) + local source = name[#name] + self:instantSource(source) + source:set('simple', name) + source:set('parent', parent) + source:set('object', parent) + if source.type == 'index' then + local index = self:getIndex(source) + parent:setChild(index, value, source[1]) + elseif source.type == 'name' then + local index = source[1] + parent:setChild(index, value, source) + end + source:bindValue(value, 'set') + + local func = value:getFunction() + if func then + if #name == 3 then + -- function x:b() + local loc = self:loadLocal(name[1][1]) + if loc then + func:setObject(parent, loc:getSource()) + else + func:setObject(parent, name[#name-2]) + end + else + func:setObject(parent, name[#name-2]) + end + end + else + local value = self:buildFunction(action) + local source = name[#name] + self:instantSource(source) + source:set('simple', name) + source:set('parent', parent) + if source.type == 'index' then + local index = self:getIndex(source) + parent:setChild(index, value, source[1]) + elseif source.type == 'name' then + local index = source[1] + parent:setChild(index, value, source) + end + source:bindValue(value, 'set') + end + else + local value = self:buildFunction(action) + self:setName(name[1], name, value) + end + else + self:buildFunction(action) + end +end + +function mt:doLocalFunction(action) + self:instantSource(action) + local name = action.name + if name then + self:instantSource(name) + if name.type == 'simple' then + self:doFunction(action) + else + local loc = self:createLocal(name[1], name) + local func = self:buildFunction(action) + func:addInfo('local', name) + loc:setValue(func) + name:bindValue(func, 'local') + end + end +end + +function mt:doAction(action) + if not action then + -- Skip + return + end + if coroutine.isyieldable() then + if self.lsp:isNeedCompile(self.uri) then + coroutine.yield() + if self._removed then + coroutine.yield('stop') + return + end + else + self:remove() + coroutine.yield('stop') + return + end + end + local tp = action.type + if tp:sub(1, 4) == 'emmy' then + self:doEmmy(action) + return + end + if tp == 'do' then + self:doDo(action) + elseif tp == 'break' then + elseif tp == 'return' then + self:doReturn(action) + elseif tp == 'label' then + self:doLabel(action) + elseif tp == 'goto' then + self:doGoTo(action) + elseif tp == 'set' then + self:doSet(action) + elseif tp == 'local' then + self:doLocal(action) + elseif tp == 'simple' then + -- call + self:getSimple(action) + action:set('as action', true) + elseif tp == 'if' then + self:doIf(action) + elseif tp == 'loop' then + self:doLoop(action) + elseif tp == 'in' then + self:doIn(action) + elseif tp == 'while' then + self:doWhile(action) + elseif tp == 'repeat' then + self:doRepeat(action) + elseif tp == 'function' then + self:doFunction(action) + elseif tp == 'localfunction' then + self:doLocalFunction(action) + else + self:getExp(action) + action:set('as action', true) + end + self:clearEmmy() +end + +function mt:doActions(actions) + for _, action in ipairs(actions) do + self:doAction(action) + end +end + +function mt:createFunction(source) + local value = self:createValue('function', source) + local func = functionMgr.create(source) + func:setEmmy(self:getEmmyParams(), self:getEmmyReturns(), self:getEmmyOverLoads()) + func:setComment(self:getEmmyComment()) + value:setFunction(func) + value:setType('function', 1.0) + if source:getUri() == self.uri then + self.funcs[#self.funcs+1] = func + end + return value +end + +function mt:callLeftFuncions() + for _, func in ipairs(self.funcs) do + if not func:hasRuned() then + self:runFunction(func) + end + end +end + +function mt:setCurrentFunction(func) + self.currentFunction = func +end + +function mt:getCurrentFunction() + return self.currentFunction +end + +function mt:saveLocal(name, loc) + self.currentFunction:saveLocal(name, loc) +end + +function mt:saveUpvalue(name, loc) + self.currentFunction:saveUpvalue(name, loc) +end + +function mt:loadLocal(name) + return self.currentFunction:loadLocal(name) +end + +function mt:eachLocal(callback) + return self.currentFunction:eachLocal(callback) +end + +function mt:saveLabel(label) + self.currentFunction:saveLabel(label) +end + +function mt:loadLabel(name) + return self.currentFunction:loadLabel(name) +end + +function mt:loadDots() + return self.currentFunction:loadDots() +end + +function mt:getUri() + return self.currentFunction and self.currentFunction:getUri() or self.uri +end + +function mt:instantSource(source) + if self:isRemoved() then + error('dead vm') + return nil + end + if sourceMgr.instant(source) then + source:setUri(self:getUri()) + self.sources[#self.sources+1] = source + --CachedSource[source] = true + end + return source +end + +function mt:bindLocal(source, loc, action) + if not source then + return + end + self:instantSource(source) + if loc then + source:bindLocal(loc, action) + else + return source:bindLocal() + end +end + +function mt:bindLabel(source, label, action) + self:instantSource(source) + if label then + source:bindLabel(label, action) + else + return source:bindLabel() + end +end + +function mt:createLocal(key, source, value, emmy, comment) + local loc = self:bindLocal(source) + if not value then + value = self:createValue('nil', source) + end + if loc then + loc:setValue(value) + loc:setEmmy(emmy) + self:saveLocal(key, loc) + return loc + end + + loc = localMgr.create(key, source, value, source.tags) + loc:setEmmy(emmy) + loc:setComment(comment) + self:saveLocal(key, loc) + self:bindLocal(source, loc, 'local') + loc:close(self:getCurrentFunction():getSource().finish) + value:addInfo('local', source) + return loc +end + +function mt:createUpvalue(key, source, value) + local loc = self:bindLocal(source) + if not value then + value = self:createValue('nil', source) + end + if loc then + loc:setValue(value) + self:saveUpvalue(key, loc) + return loc + end + + loc = localMgr.create(key, source, value) + self:saveUpvalue(key, loc) + self:bindLocal(source, loc, 'local') + value:addInfo('local', source) + return loc +end + +function mt:createEnvironment(ast) + -- 整个文件是一个函数 + self.main = self:createFunction(ast) + self:setCurrentFunction(self.main:getFunction()) + if self.lsp then + self.main:getFunction():mergeReturn(1, self.lsp.chain:get(self.uri)) + end + -- 全局变量`_G` + local global = buildGlobal(self.lsp) + local env + if self.envType == '_ENV' then + -- 隐藏的上值`_ENV` + env = self:createUpvalue('_ENV', self:getDefaultSource(), global) + else + -- 为了实现方便,fenv也使用隐藏上值来实现 + -- 使用了非法标识符保证用户无法访问 + env = self:createUpvalue('@ENV', self:getDefaultSource(), global) + end + env:set('hide', true) + self.env = env +end + +function mt:eachSource(callback) + if self._removed then + return + end + local sources = self.sources + for i = 1, #sources do + local res = callback(sources[i]) + if res ~= nil then + return res + end + end +end + +function mt:isRemoved() + return self._removed == true +end + +function mt:remove() + if self._removed then + return + end + self._removed = true + for _, source in ipairs(self.sources) do + source:kill() + end + self.sources = nil + for _, func in ipairs(self.funcs) do + func:kill() + end + self.funcs = nil +end + +local function compile(vm, ast, lsp, uri) + -- 创建初始环境 + ast.uri = vm.uri + -- 根据运行版本决定环境实现方式 + if config.config.runtime.version == 'Lua 5.1' or config.config.runtime.version == 'LuaJIT' then + vm.envType = 'fenv' + else + vm.envType = '_ENV' + end + vm:instantSource(ast) + vm:createEnvironment(ast) + + -- 检查所有没有调用过的函数,调用一遍 + vm:callLeftFuncions() + + return vm +end + +return function (ast, lsp, uri, text) + if not ast then + return nil, 'Ast failed' + end + local vm = setmetatable({ + funcs = {}, + sources = {}, + main = nil, + env = nil, + emmy = nil, + ---@type emmyMgr + emmyMgr = lsp and lsp.emmy or emmyMgr(), + lsp = lsp, + uri = uri or '', + text = text or '', + }, mt) + local suc, res = xpcall(compile, log.error, vm, ast, lsp, uri) + if not suc then + vm:remove() + return nil, res + end + return res +end diff --git a/script/src/workspace.lua b/script/src/workspace.lua new file mode 100644 index 00000000..f9b243ad --- /dev/null +++ b/script/src/workspace.lua @@ -0,0 +1,517 @@ +local fs = require 'bee.filesystem' +local async = require 'async' +local config = require 'config' +local ll = require 'lpeglabel' +local platform = require 'bee.platform' +local glob = require 'glob' +local uric = require 'uri' + +local TrueName = {} + +local function getFileName(path) + local name = path:string() + if platform.OS == 'Windows' then + local lname = name:lower() + TrueName[lname] = name + return lname + else + return name + end +end + +local function getTrueName(name) + return TrueName[name] or name +end + +local function split(str, sep) + local t = {} + for s in str:gmatch('[^' .. sep .. ']+') do + t[#t+1] = s + end + return t +end + +local function similarity(a, b) + local ta = split(a, '/\\') + local tb = split(b, '/\\') + for i = 1, #ta do + if ta[i] ~= tb[i] then + return i - 1 + end + end + return #ta +end + +local mt = {} +mt.__index = mt + +function mt:fileNameEq(a, b) + if platform.OS == 'Windows' then + return a:lower() == b:lower() + else + return a == b + end +end + +function mt:listenLoadFile() + self._loadFileRequest = async.run('loadfile', nil, function (filename, mode, buf) + local path = fs.path(filename) + local name = getFileName(path) + local uri = uric.encode(path) + self.files[name] = uri + if mode == 'workspace' then + self.lsp:readText(uri, path, buf, self._currentScanCompiled) + elseif mode == 'library' then + self.lsp:readLibrary(uri, path, buf, self._currentScanCompiled) + else + error('Unknown mode:' .. tostring(mode)) + end + end) +end + +function mt:buildScanPattern() + local pattern = {} + + -- config.workspace.ignoreDir + for path in pairs(config.config.workspace.ignoreDir) do + pattern[#pattern+1] = path + end + -- config.files.exclude + for path, ignore in pairs(config.other.exclude) do + if ignore then + pattern[#pattern+1] = path + end + end + -- config.workspace.ignoreSubmodules + if config.config.workspace.ignoreSubmodules then + local buf = io.load(self.root / '.gitmodules') + if buf then + for path in buf:gmatch('path = ([^\r\n]+)') do + log.info('忽略子模块:', path) + pattern[#pattern+1] = path + end + end + end + -- config.workspace.useGitIgnore + if config.config.workspace.useGitIgnore then + local buf = io.load(self.root / '.gitignore') + if buf then + for line in buf:gmatch '[^\r\n]+' do + pattern[#pattern+1] = line + end + end + end + -- config.workspace.library + for path in pairs(config.config.workspace.library) do + pattern[#pattern+1] = path + end + + return pattern +end + +---@param options table +function mt:buildLibraryRequests(options) + local requests = {} + for path, pattern in pairs(config.config.workspace.library) do + requests[#requests+1] = { + mode = 'library', + root = fs.absolute(fs.path(path)):string(), + pattern = pattern, + options = options, + } + end + return table.unpack(requests) +end + +function mt:scanFiles() + if self._scanRequest then + log.info('Break scan.') + self._scanRequest:push('stop') + self._scanRequest = nil + self._complete = false + self:reset() + end + + local pattern = self:buildScanPattern() + local options = { + ignoreCase = platform.OS == 'Windows', + } + + self.gitignore = glob.gitignore(pattern, options) + self._currentScanCompiled = {} + local count = 0 + self._scanRequest = async.run('scanfiles', { + { + mode = 'workspace', + root = self.root:string(), + pattern = pattern, + options = options, + }, + self:buildLibraryRequests(options), + }, function (mode, ...) + if mode == 'ok' then + log.info('Scan finish, got', count, 'files.') + self._complete = true + self._scanRequest = nil + self:reset() + return true + elseif mode == 'log' then + log.debug(...) + elseif mode == 'workspace' then + local path = fs.path(...) + if not self:isLuaFile(path) then + return + end + self._loadFileRequest:push(path:string(), 'workspace') + count = count + 1 + elseif mode == 'library' then + local path = fs.path(...) + if not self:isLuaFile(path) then + return + end + self._loadFileRequest:push(path:string(), 'library') + count = count + 1 + elseif mode == 'stop' then + log.info('Scan stoped.') + return false + end + end) +end + +function mt:init(rootUri) + self.root = uric.decode(rootUri) + self.uri = rootUri + if not self.root then + return + end + log.info('Workspace inited, root: ', self.root) + log.info('Workspace inited, uri: ', rootUri) + local logPath = ROOT / 'log' / (rootUri:gsub('[/:]+', '_') .. '.log') + log.info('Log path: ', logPath) + log.init(ROOT, logPath) + + self:scanFiles() +end + +function mt:isComplete() + return self._complete == true +end + +function mt:isLuaFile(path) + local ext = path:extension():string() + for k, v in pairs(config.other.associations) do + if self:fileNameEq(ext, k:match('[^%*]+$')) then + if v == 'lua' then + return true + else + return false + end + end + end + if self:fileNameEq(ext, '.lua') then + return true + end + return false +end + +function mt:addFile(path) + if not self:isLuaFile(path) then + return + end + local name = getFileName(path) + local uri = uric.encode(path) + self.files[name] = uri + self.lsp:readText(uri, path) +end + +function mt:removeFile(path) + local name = getFileName(path) + if not self.files[name] then + return + end + self.files[name] = nil + local uri = uric.encode(path) + self.lsp:removeText(uri) +end + +function mt:findPath(baseUri, searchers) + local results = {} + local basePath = uric.decode(baseUri) + if not basePath then + return nil + end + local baseName = getFileName(basePath) + for filename, uri in pairs(self.files) do + if filename ~= baseName then + for _, searcher in ipairs(searchers) do + if filename:sub(-#searcher) == searcher then + local sep = filename:sub(-#searcher-1, -#searcher-1) + if sep == '/' or sep == '\\' then + results[#results+1] = uri + end + end + end + end + end + + if #results == 0 then + return nil + end + local uri + if #results == 1 then + uri = results[1] + else + table.sort(results, function (a, b) + return similarity(a, baseUri) > similarity(b, baseUri) + end) + uri = results[1] + end + return uri +end + +function mt:createCompiler(str) + local state = { + 'Main', + } + local function push(c) + if state.Main then + state.Main = state.Main * c + else + state.Main = c + end + end + local count = 0 + local function code() + count = count + 1 + local name = 'C' .. tostring(count) + local nextName = 'C' .. tostring(count + 1) + state[name] = ll.P(1) * (#ll.V(nextName) + ll.V(name)) + return ll.V(name) + end + local function static(c) + count = count + 1 + local name = 'C' .. tostring(count) + local nextName = 'C' .. tostring(count + 1) + local catch = #ll.V(nextName) + if platform.OS == 'Windows' then + for i = #c, 1, -1 do + local char = c:sub(i, i) + local u = char:upper() + local l = char:lower() + if u == l then + catch = ll.P(char) * catch + else + catch = (ll.P(u) + ll.P(l)) * catch + end + end + else + catch = ll.P(c) * catch + end + state[name] = catch + return ll.V(name) + end + local function eof() + count = count + 1 + local name = 'C' .. tostring(count) + state[name] = ll.Cmt(ll.P(1) + ll.Cp(), function (_, _, c) + return type(c) == 'number' + end) + return ll.V(name) + end + local isFirstCode = true + local firstCode + local compiler = ll.P { + 'Result', + Result = (ll.V'Code' + ll.V'Static')^1, + Code = ll.P'?' / function () + if isFirstCode then + isFirstCode = false + push(ll.Cmt(ll.C(code()), function (_, pos, code) + firstCode = code + return pos, code + end)) + else + push(ll.Cmt( + ll.C(code()), + function (_, _, me) + return firstCode == me + end + )) + end + end, + Static = (1 - ll.P'?')^1 / function (c) + push(static(c)) + end, + } + compiler:match(str) + push(eof()) + return ll.P(state) +end + +function mt:compileLuaPath() + for i, luapath in ipairs(config.config.runtime.path) do + self.pathMatcher[i] = self:createCompiler(luapath) + end +end + +function mt:convertPathAsRequire(filename, start) + local list + for _, matcher in ipairs(self.pathMatcher) do + local str = matcher:match(filename:sub(start)) + if str then + if not list then + list = {} + end + list[#list+1] = str:gsub('/', '.') + end + end + return list +end + +function mt:matchPath(baseUri, input) + local first = input:match '^[^%.]+' + if not first then + return nil + end + first = first:gsub('%W', '%%%1') + local basePath = uric.decode(baseUri) + if not basePath then + return nil + end + local baseName = getFileName(basePath) + local rootLen = #self.root:string(basePath) + local map = {} + for filename in pairs(self.files) do + if filename ~= baseName then + local trueFilename = getTrueName(filename) + local start + if platform.OS == 'Windows' then + start = filename:find('[/\\]' .. first:lower(), rootLen + 1) + else + start = trueFilename:find('[/\\]' .. first, rootLen + 1) + end + if start then + local list = self:convertPathAsRequire(trueFilename, start + 1) + if list then + for _, str in ipairs(list) do + if #str >= #input and self:fileNameEq(str:sub(1, #input), input) then + if not map[str] then + map[str] = trueFilename + else + local s1 = similarity(trueFilename, baseName) + local s2 = similarity(map[str], baseName) + if s1 > s2 then + map[str] = trueFilename + elseif s1 == s2 then + if trueFilename < map[str] then + map[str] = trueFilename + end + end + end + end + end + end + end + end + end + + local list = {} + for str in pairs(map) do + list[#list+1] = str + map[str] = map[str]:sub(rootLen + 2) + end + if #list == 0 then + return nil + end + table.sort(list, function (a, b) + local sa = similarity(map[a], baseName) + local sb = similarity(map[b], baseName) + if sa == sb then + return a < b + else + return sa > sb + end + end) + return list, map +end + +function mt:searchPath(baseUri, str) + str = getFileName(fs.path(str)) + if self.searched[baseUri] and self.searched[baseUri][str] then + return self.searched[baseUri][str] + end + str = str:gsub('%.', '/') + local searchers = {} + for i, luapath in ipairs(config.config.runtime.path) do + searchers[i] = luapath:gsub('%?', str) + end + + local uri = self:findPath(baseUri, searchers) + if uri then + if not self.searched[baseUri] then + self.searched[baseUri] = {} + end + self.searched[baseUri][str] = uri + end + return uri +end + +function mt:loadPath(baseUri, str) + local ok, relative = pcall(fs.relative, fs.absolute(self.root / str), self.root) + if not ok then + return nil + end + str = getFileName(relative) + if self.loaded[str] then + return self.loaded[str] + end + + local searchers = { str } + + local uri = self:findPath(baseUri, searchers) + if uri then + self.loaded[str] = uri + end + return uri +end + +function mt:reset() + self.searched = {} + self.loaded = {} + self.lsp:reCompile() +end + +---@param uri uri +---@return path +function mt:relativePathByUri(uri) + local path = uric.decode(uri) + if not path then + return nil + end + local relate = fs.relative(path, self.root) + return relate +end + +---@param uri uri +---@return path +function mt:absolutePathByUri(uri) + local path = uric.decode(uri) + if not path then + return nil + end + return fs.absolute(path) +end + +return function (lsp, name) + local workspace = setmetatable({ + lsp = lsp, + name = name, + files = {}, + searched = {}, + loaded = {}, + pathMatcher = {} + }, mt) + workspace:compileLuaPath() + workspace:listenLoadFile() + return workspace +end diff --git a/script/test.lua b/script/test.lua new file mode 100644 index 00000000..5e238049 --- /dev/null +++ b/script/test.lua @@ -0,0 +1,61 @@ +local currentPath = debug.getinfo(1, 'S').source:sub(2) +local rootPath = currentPath:gsub('[^/\\]-$', '') +if rootPath == '' then + rootPath = './' +end +dofile(rootPath .. 'platform.lua') +package.path = package.path + .. ';' .. rootPath .. 'test/?.lua' + .. ';' .. rootPath .. 'test/?/init.lua' +local fs = require 'bee.filesystem' +ROOT = fs.absolute(fs.path(rootPath):parent_path()) +LANG = 'en-US' + +log = require 'log' +log.init(ROOT, ROOT / 'log' / 'test.log') +log.debug('测试开始') +ac = {} + +require 'utility' +dofile((ROOT / 'build_package.lua'):string()) + +local function loadAllLibs() + assert(require 'bee.filesystem') + assert(require 'bee.subprocess') + assert(require 'bee.thread') + assert(require 'bee.socket') + assert(require 'lni') + assert(require 'lpeglabel') +end + +local function main() + local function test(name) + local clock = os.clock() + print(('测试[%s]...'):format(name)) + require(name) + print(('测试[%s]用时[%.3f]'):format(name, os.clock() - clock)) + end + + test 'core' + test 'definition' + test 'rename' + test 'highlight' + test 'references' + test 'diagnostics' + test 'type_inference' + test 'find_lib' + test 'hover' + test 'completion' + test 'signature' + test 'document_symbol' + test 'crossfile' + test 'full' + test 'other' + + print('测试完成') +end + +loadAllLibs() +main() + +log.debug('测试完成') diff --git a/script/test/completion/init.lua b/script/test/completion/init.lua new file mode 100644 index 00000000..76c0d910 --- /dev/null +++ b/script/test/completion/init.lua @@ -0,0 +1,1494 @@ +local core = require 'core' +local parser = require 'parser' +local buildVM = require 'vm' + +local CompletionItemKind = { + Text = 1, + Method = 2, + Function = 3, + Constructor = 4, + Field = 5, + Variable = 6, + Class = 7, + Interface = 8, + Module = 9, + Property = 10, + Unit = 11, + Value = 12, + Enum = 13, + Keyword = 14, + Snippet = 15, + Color = 16, + File = 17, + Reference = 18, + Folder = 19, + EnumMember = 20, + Constant = 21, + Struct = 22, + Event = 23, + Operator = 24, + TypeParameter = 25, +} + +local EXISTS = {'EXISTS'} + +local function eq(a, b) + if a == EXISTS and b ~= nil then + return true + end + local tp1, tp2 = type(a), type(b) + if tp1 ~= tp2 then + return false + end + if tp1 == 'table' then + local mark = {} + for k in pairs(a) do + if not eq(a[k], b[k]) then + return false + end + mark[k] = true + end + for k in pairs(b) do + if not mark[k] then + return false + end + end + return true + end + return a == b +end + +rawset(_G, 'TEST', true) + +function TEST(script) + return function (expect) + local pos = script:find('$', 1, true) - 1 + local new_script = script:gsub('%$', '') + local ast = parser:parse(new_script, 'lua', 'Lua 5.4') + local vm = buildVM(ast) + assert(vm) + local result = core.completion(vm, new_script, pos) + if expect then + assert(result) + assert(eq(expect, result)) + else + assert(result == nil) + end + end +end + +TEST [[ +local zabcde +za$ +]] +{ + { + label = 'zabcde', + kind = CompletionItemKind.Variable, + } +} + +TEST [[ +local zabcdefg +local zabcde +zabcde$ +]] +{ + { + label = 'zabcdefg', + kind = CompletionItemKind.Variable, + }, + { + label = 'zabcde', + kind = CompletionItemKind.Variable, + }, +} + +TEST [[ +local zabcdefg +za$ +local zabcde +]] +{ + { + label = 'zabcdefg', + kind = CompletionItemKind.Variable, + }, + { + label = 'zabcde', + kind = CompletionItemKind.Text, + }, +} + +TEST [[ +local zabcde +zace$ +]] +{ + { + label = 'zabcde', + kind = CompletionItemKind.Variable, + } +} + +TEST [[ +ZABC +local zabc +zac$ +]] +{ + { + label = 'zabc', + kind = CompletionItemKind.Variable, + }, + { + label = 'ZABC', + kind = CompletionItemKind.Field, + }, +} + +TEST [[ +ass$ +]] +{ + { + label = 'assert', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = '(function)', + }, + { + label = 'assert()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + insertText = EXISTS, + detail = '(function)', + }, +} + +TEST [[ +local zabc = 1 +z$ +]] +{ + { + label = 'zabc', + kind = CompletionItemKind.Variable, + detail = '(number) = 1', + } +} + +TEST [[ +local zabc = 1.0 +z$ +]] +{ + { + label = 'zabc', + kind = CompletionItemKind.Variable, + detail = '(number) = 1.0', + } +} + +TEST [[ +local t = { + abc = 1, +} +t.a$ +]] +{ + { + label = 'abc', + kind = CompletionItemKind.Enum, + detail = '(number) = 1', + } +} + +TEST [[ +local mt = {} +function mt:get(a, b) + return 1 +end +mt:g$ +]] +{ + { + label = 'get', + kind = CompletionItemKind.Method, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'get()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + insertText = EXISTS, + detail = EXISTS, + }, +} + +TEST [[ +loc$ +]] +{ + { + label = 'collectgarbage', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'collectgarbage()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, + { + label = 'local', + kind = CompletionItemKind.Keyword, + }, + { + label = 'local function', + kind = CompletionItemKind.Snippet, + insertText = EXISTS, + } +} + +TEST [[ +t.a = {} +t.b = {} +t.$ +]] +{ + { + label = 'a', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, + { + label = 'b', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, +} + +TEST [[ +t.a = {} +t.b = {} +t. $ +]] +{ + { + label = 'a', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, + { + label = 'b', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, +} + +TEST [[ +t.a = {} +function t:b() +end +t:$ +]] +{ + { + label = 'b', + kind = CompletionItemKind.Method, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'b()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, +} + +TEST [[ +local t = { + a = {}, +} +t.$ +xxx() +]] +{ + { + label = 'a', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, + { + label = 'xxx', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'xxx()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, +} + +TEST [[ +(''):$ +]] +(EXISTS) + +TEST 'local s = "a:$"' (nil) + +TEST 'debug.$' +(EXISTS) + +TEST [[ +local xxxx = { + xxyy = 1, + xxzz = 2, +} + +local t = { + x$ +} +]] +{ + { + label = 'xxxx', + kind = CompletionItemKind.Variable, + detail = EXISTS, + }, + { + label = 'xxyy', + kind = CompletionItemKind.Property, + }, + { + label = 'xxzz', + kind = CompletionItemKind.Property, + }, + { + label = 'next', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'next()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, + { + label = 'xpcall', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'xpcall()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, +} + +TEST [[ +print(ff2) +local faa +local f$ +print(fff) +]] +{ + { + label = 'fff', + kind = CompletionItemKind.Variable, + }, + { + label = 'function', + kind = CompletionItemKind.Keyword, + }, + { + label = 'function ()', + kind = CompletionItemKind.Snippet, + insertText = EXISTS, + }, + { + label = 'ff2', + kind = CompletionItemKind.Text, + }, + { + label = 'faa', + kind = CompletionItemKind.Text, + }, +} + +TEST [[ +local function f(ff$) + print(fff) +end +]] +{ + { + label = 'fff', + kind = CompletionItemKind.Variable, + }, +} + +TEST [[ +collectgarbage('$') +]] +{ + { + label = 'collect', + filterText = 'collect', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'stop', + filterText = 'stop', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'restart', + filterText = 'restart', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'count', + filterText = 'count', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'step', + filterText = 'step', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'setpause', + filterText = 'setpause', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'setstepmul', + filterText = 'setstepmul', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'isrunning', + filterText = 'isrunning', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, +} + +TEST [[ +collectgarbage($) +]] +(EXISTS) + +TEST [[ +io.read($) +]] +{ + { + label = '"n"', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + }, + { + label = '"a"', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + }, + { + label = '"l"', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + }, + { + label = '"L"', + kind = CompletionItemKind.EnumMember, + documentation = EXISTS, + }, +} + +TEST [[ +local function f(a, $) +end +]] +(nil) + +TEST [[ +self.results.list[#$] +]] +{ + { + label = 'self.results.list+1', + kind = CompletionItemKind.Snippet, + textEdit = { + start = 20, + finish = 20, + newText = 'self.results.list+1] = ', + }, + }, +} + +TEST [[ +self.results.list[#self.re$] +]] +{ + { + label = 'self.results.list+1', + kind = CompletionItemKind.Snippet, + textEdit = { + start = 20, + finish = 27, + newText = 'self.results.list+1] = ', + }, + }, + { + label = 'results', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, +} + +TEST [[ +fff[#ff$] +]] +{ + { + label = 'fff+1', + kind = CompletionItemKind.Snippet, + textEdit = { + start = 6, + finish = 8, + newText = 'fff+1] = ', + }, + }, + { + label = 'fff', + kind = CompletionItemKind.Field, + detail = EXISTS, + } +} + +TEST [[ +local _ = fff.kkk[#$] +]] +{ + { + label = 'fff.kkk', + kind = CompletionItemKind.Snippet, + textEdit = { + start = 20, + finish = 20, + newText = 'fff.kkk]', + }, + }, +} + +TEST [[ +local t = { + a = 1, +} + +t . $ +]] +(EXISTS) + +TEST [[ +local t = { + a = 1, +} + +t . $ b +]] +(EXISTS) + +TEST [[ +local t = { + a = 1, +} + +t $ +]] +(nil) + +TEST [[ +local t = { + a = 1, +} + +t $. +]] +(nil) + +TEST [[ +local xxxx +xxxx$ +]] +{ + { + label = 'xxxx', + kind = CompletionItemKind.Variable, + }, +} + +TEST [[ +local xxxx +local XXXX +xxxx$ +]] +{ + { + label = 'xxxx', + kind = CompletionItemKind.Variable, + }, + { + label = 'XXXX', + kind = CompletionItemKind.Variable, + }, +} + +TEST [[ +local t = { + xxxxx = 1, +} +xx$ +]] +{ + { + label = 'xxxxx', + kind = CompletionItemKind.Text, + }, +} + +TEST [[ +local index +tbl[ind$] +]] +{ + { + label = 'index', + kind = CompletionItemKind.Variable, + }, +} + +TEST [[ +return function () + local t = { + a = {}, + b = {}, + } + t.$ +end +]] +{ + { + label = 'a', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, + { + label = 'b', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, +} + +TEST [[ +local ast = 1 +local t = 'as$' +local ask = 1 +]] +(nil) + +TEST [[ +local add + +function f(a$) + local _ = add +end +]] +{ + { + label = 'add', + kind = CompletionItemKind.Variable, + }, +} + +TEST [[ +function table.i$ +]] +(EXISTS) + +TEST [[ +do + xx.$ +end +]] +(nil) + +require 'config' .config.runtime.version = 'Lua 5.4' +--TEST [[ +--local $ +--]] +--{ +-- { +-- label = '<toclose>', +-- kind = CompletionItemKind.Keyword, +-- }, +-- { +-- label = '<const>', +-- kind = CompletionItemKind.Keyword, +-- }, +--} +-- +--TEST [[ +--local <toc$ +--]] +--{ +-- { +-- label = '<toclose>', +-- kind = CompletionItemKind.Keyword, +-- } +--} + +TEST [[ +local mt = {} +mt.__index = mt +local t = setmetatable({}, mt) + +t.$ +]] +{ + { + label = '__index', + kind = CompletionItemKind.Field, + detail = EXISTS, + } +} + +TEST [[ +local elseaaa +ELSE = 1 +if a then +else$ +]] +{ + { + label = 'elseaaa', + kind = CompletionItemKind.Variable, + }, + { + label = 'ELSE', + kind = CompletionItemKind.Enum, + detail = EXISTS, + }, + { + label = 'select', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'select()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, + { + label = 'setmetatable', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'setmetatable()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, + { + label = 'else', + kind = CompletionItemKind.Keyword, + }, + { + label = 'elseif', + kind = CompletionItemKind.Keyword, + }, + { + label = 'elseif .. then', + kind = CompletionItemKind.Snippet, + insertText = EXISTS, + } +} + +TEST [[ +local xpcal +xpcal$ +]] +{ + { + label = 'xpcal', + kind = CompletionItemKind.Variable, + }, + { + label = 'xpcall', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'xpcall()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, +} + +TEST [[ +function mt:f(a, b, c) +end + +mt:f$ +]] +{ + { + label = 'f', + kind = CompletionItemKind.Method, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'f()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = 'f(${1:a: any}, ${2:b: any}, ${3:c: any})', + }, +} + +TEST [[ +---@$ +]] +(EXISTS) + +TEST [[ +---@cl$ +]] +{ + { + label = 'class', + kind = CompletionItemKind.Keyword + } +} + +TEST [[ +---@class ZABC +---@class ZBBC : Z$ +]] +{ + { + label = 'ZABC', + kind = CompletionItemKind.Class, + }, + { + label = 'ZBBC', + kind = CompletionItemKind.Class, + }, +} + +TEST [[ +---@class zabc +local abcd +---@type za$ +]] +{ + { + label = 'zabc', + kind = CompletionItemKind.Class, + }, +} + +TEST [[ +---@class abc +local abcd +---@type $ +]] +(EXISTS) + +TEST [[ +---@class zabc +local abcd +---@type zxxx|z$ +]] +{ + { + label = 'zabc', + kind = CompletionItemKind.Class, + } +} + +TEST [[ +---@alias zabc zabb +---@type za$ +]] +{ + { + label = 'zabc', + kind = CompletionItemKind.Class, + }, +} + +TEST [[ +---@class Class +---@param x C$ +]] +{ + { + label = 'Class', + kind = CompletionItemKind.Class, + }, + { + label = 'function', + kind = CompletionItemKind.Class, + }, +} + +TEST [[ +---@param $ +function f(a, b, c) +end +]] +{ + { + label = 'a, b, c', + kind = CompletionItemKind.Snippet, + insertText = [[ +a any +---@param b any +---@param c any]] + }, + { + label = 'a', + kind = CompletionItemKind.Interface, + }, + { + label = 'b', + kind = CompletionItemKind.Interface, + }, + { + label = 'c', + kind = CompletionItemKind.Interface, + }, +} + +TEST [[ +local function f() + ---@param $ + function f(a, b, c) + end +end +]] +{ + { + label = 'a, b, c', + kind = CompletionItemKind.Snippet, + insertText = [[ +a any +---@param b any +---@param c any]] + }, + { + label = 'a', + kind = CompletionItemKind.Interface, + }, + { + label = 'b', + kind = CompletionItemKind.Interface, + }, + { + label = 'c', + kind = CompletionItemKind.Interface, + }, +} + +TEST [[ +---@param $ +function mt:f(a, b, c) +end +]] +{ + { + label = 'a, b, c', + kind = CompletionItemKind.Snippet, + insertText = [[ +a any +---@param b any +---@param c any]] + }, + { + label = 'a', + kind = CompletionItemKind.Interface, + }, + { + label = 'b', + kind = CompletionItemKind.Interface, + }, + { + label = 'c', + kind = CompletionItemKind.Interface, + }, +} + +TEST [[ +---@param xyz Class +---@param xxx Class +function f(x$) +]] +{ + { + label = 'xyz, xxx', + kind = CompletionItemKind.Snippet, + }, + { + label = 'xyz', + kind = CompletionItemKind.Interface, + }, + { + label = 'xxx', + kind = CompletionItemKind.Interface, + }, +} + +TEST [[ +---@param xyz Class +---@param xxx Class +function f($ +]] +{ + { + label = 'xyz, xxx', + kind = CompletionItemKind.Snippet, + }, + { + label = 'xyz', + kind = CompletionItemKind.Interface, + }, + { + label = 'xxx', + kind = CompletionItemKind.Interface, + }, +} + +TEST [[ +---@param xyz Class +---@param xxx Class +function f($) +]] +{ + { + label = 'xyz, xxx', + kind = CompletionItemKind.Snippet, + }, + { + label = 'xyz', + kind = CompletionItemKind.Interface, + }, + { + label = 'xxx', + kind = CompletionItemKind.Interface, + }, +} + +TEST [[ +local function f() + ---@t$ +end +]] +{ + { + label = 'type', + kind = CompletionItemKind.Keyword, + }, + { + label = 'return', + kind = CompletionItemKind.Keyword, + } +} + +TEST [[ +---@class Class +---@field name string +---@field id integer +local mt = {} +mt.$ +]] +{ + { + label = 'id', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, + { + label = 'name', + kind = CompletionItemKind.Field, + detail = EXISTS, + }, +} + +TEST [[ +local function f() + if a then + else$ +end +]] +{ + { + label = 'select', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'select()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, + { + label = 'setmetatable', + kind = CompletionItemKind.Function, + documentation = EXISTS, + detail = EXISTS, + }, + { + label = 'setmetatable()', + kind = CompletionItemKind.Snippet, + documentation = EXISTS, + detail = EXISTS, + insertText = EXISTS, + }, + { + label = 'else', + kind = CompletionItemKind.Keyword, + }, + { + label = 'elseif', + kind = CompletionItemKind.Keyword, + }, + { + label = 'elseif .. then', + kind = CompletionItemKind.Snippet, + insertText = EXISTS, + }, +} + +TEST [[ +---@param x string | "'AAA'" | "'BBB'" | "'CCC'" +function f(y, x) +end + +f(1, $) +]] +{ + { + label = "'AAA'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'BBB'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'CCC'", + kind = CompletionItemKind.EnumMember, + } +} + +TEST [[ +---@param x string | "'AAA'" | "'BBB'" | "'CCC'" +function f(y, x) +end + +f(1,$) +]] +{ + { + label = "'AAA'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'BBB'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'CCC'", + kind = CompletionItemKind.EnumMember, + } +} + +TEST [[ +---@param x string | "'AAA'" | "'BBB'" | "'CCC'" +function f(x) +end + +f($) +]] +{ + { + label = "'AAA'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'BBB'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'CCC'", + kind = CompletionItemKind.EnumMember, + } +} + +TEST [[ +---@alias Option string | "'AAA'" | "'BBB'" | "'CCC'" +---@param x Option +function f(x) +end + +f($) +]] +{ + { + label = "'AAA'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'BBB'", + kind = CompletionItemKind.EnumMember, + }, + { + label = "'CCC'", + kind = CompletionItemKind.EnumMember, + } +} + +TEST [[ +---@param x string | "'AAA'" | "'BBB'" | "'CCC'" +function f(x) +end + +f('$') +]] +{ + { + label = "AAA", + filterText = 'AAA', + kind = CompletionItemKind.EnumMember, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = "BBB", + filterText = 'BBB', + kind = CompletionItemKind.EnumMember, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = "CCC", + filterText = 'CCC', + kind = CompletionItemKind.EnumMember, + textEdit = EXISTS, + additionalTextEdits = EXISTS, + } +} + +TEST [[ +---@param x function | 'function () end' +function f(x) +end + +f(function () + $ +end) +]] +(nil) + +TEST [[ +local t = { + ['a.b.c'] = {} +} + +t.$ +]] +{ + { + label = 'a.b.c', + kind = CompletionItemKind.Field, + detail = EXISTS, + textEdit = { + start = 37, + finish = 36, + newText = '["a.b.c"]', + }, + additionalTextEdits = { + { + start = 36, + finish = 36, + newText = '', + } + } + } +} + +TEST [[ +_ENV['z.b.c'] = {} + +z$ +]] +{ + { + label = 'z.b.c', + kind = CompletionItemKind.Field, + detail = EXISTS, + textEdit = { + start = 22, + finish = 21, + newText = '_ENV["z.b.c"]', + }, + additionalTextEdits = { + { + start = 21, + finish = 21, + newText = '', + } + } + } +} + +TEST [[ +io.close(1, $) +]] +(nil) + +TEST [[ +--- JustTest +---@overload fun(list:table):string +---@overload fun(list:table, sep:string):string +---@overload fun(list:table, sep:string, i:number):string +---@param list table +---@param sep string +---@param i number +---@param j number +---@return string +local function zzzzz(list, sep, i, j) end + +zzz$ +]] +{ + { + label = 'zzzzz', + kind = CompletionItemKind.Function, + detail = '(function)(4 prototypes)', + documentation = { + kind = 'markdown', + value = [[ +```lua +function zzzzz(list: table, sep: string, i: number, j: number) + -> string +``` +JustTest +```lua + +``` + +]] + }, + }, + { + label = 'zzzzz()', + kind = CompletionItemKind.Snippet, + detail = '(function)(4 prototypes)', + insertText = EXISTS, + documentation = EXISTS, + } +} + +TEST [[ +--- abc +zzz = 1 +zz$ +]] +{ + { + label = 'zzz', + kind = CompletionItemKind.Enum, + detail = '(number) = 1', + documentation = { + kind = 'markdown', + value = 'abc', + } + } +} + +TEST [[ +---@param x string +---| "'选项1'" # 注释1 +---| "'选项2'" # 注释2 +function f(x) end + +f($) +]] +{ + { + label = "'选项1'", + kind = CompletionItemKind.EnumMember, + documentation = '注释1', + }, + { + label = "'选项2'", + kind = CompletionItemKind.EnumMember, + documentation = '注释2', + }, +} diff --git a/script/test/crossfile/completion.lua b/script/test/crossfile/completion.lua new file mode 100644 index 00000000..cb9f2f65 --- /dev/null +++ b/script/test/crossfile/completion.lua @@ -0,0 +1,621 @@ +local service = require 'service' +local workspace = require 'workspace' +local fs = require 'bee.filesystem' +local core = require 'core' +local uric = require 'uri' + +rawset(_G, 'TEST', true) + +local CompletionItemKind = { + Text = 1, + Method = 2, + Function = 3, + Constructor = 4, + Field = 5, + Variable = 6, + Class = 7, + Interface = 8, + Module = 9, + Property = 10, + Unit = 11, + Value = 12, + Enum = 13, + Keyword = 14, + Snippet = 15, + Color = 16, + File = 17, + Reference = 18, + Folder = 19, + EnumMember = 20, + Constant = 21, + Struct = 22, + Event = 23, + Operator = 24, + TypeParameter = 25, +} + +local EXISTS = {} + +local function eq(a, b) + if a == EXISTS and b ~= nil then + return true + end + local tp1, tp2 = type(a), type(b) + if tp1 ~= tp2 then + return false + end + if tp1 == 'table' then + local mark = {} + for k in pairs(a) do + if not eq(a[k], b[k]) then + return false + end + mark[k] = true + end + for k in pairs(b) do + if not mark[k] then + return false + end + end + return true + end + return a == b +end + +function TEST(data) + local lsp = service() + local ws = workspace(lsp, 'test') + lsp.workspace = ws + ws.root = ROOT + + local mainUri + local mainBuf + local pos + for _, info in ipairs(data) do + local uri = uric.encode(fs.path(info.path)) + local script = info.content + if info.main then + pos = script:find('$', 1, true) - 1 + script = script:gsub('%$', '') + mainUri = uri + mainBuf = script + end + lsp:saveText(uri, 1, script) + ws:addFile(uric.decode(uri)) + + while lsp._needCompile[1] do + lsp:compileVM(lsp._needCompile[1]) + end + end + + local vm = lsp:loadVM(mainUri) + assert(vm) + local result = core.completion(vm, mainBuf, pos) + local expect = data.completion + if expect then + assert(result) + assert(eq(expect, result)) + else + assert(result == nil) + end +end + +if require'bee.platform'.OS == 'Windows' then + +TEST { + { + path = 'abc.lua', + content = '', + }, + { + path = 'abc/aaa.lua', + content = '', + }, + { + path = 'xxx/abcde.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "a$"', + main = true, + }, + completion = { + { + label = 'abc', + filterText = 'abc', + kind = CompletionItemKind.Reference, + documentation = 'abc.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'abc.aaa', + filterText = 'abc.aaa', + kind = CompletionItemKind.Reference, + documentation = 'abc/aaa.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'abcde', + filterText = 'abcde', + kind = CompletionItemKind.Reference, + documentation = 'xxx/abcde.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'abc.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "A$"', + main = true, + }, + completion = { + { + label = 'abc', + filterText = 'abc', + kind = CompletionItemKind.Reference, + documentation = 'abc.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'abc.lua', + content = '', + }, + { + path = 'ABCD.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "a$"', + main = true, + }, + completion = { + { + label = 'ABCD', + filterText = 'ABCD', + kind = CompletionItemKind.Reference, + documentation = 'ABCD.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'abc', + filterText = 'abc', + kind = CompletionItemKind.Reference, + documentation = 'abc.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +else + +TEST { + { + path = 'abc.lua', + content = '', + }, + { + path = 'ABCD.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "a$"', + main = true, + }, + completion = { + { + label = 'abc', + filterText = 'abc', + kind = CompletionItemKind.Reference, + documentation = 'abc.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +end + +TEST { + { + path = 'abc.lua', + content = '', + }, + { + path = 'abc/init.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "abc$"', + main = true, + }, + completion = { + { + label = 'abc', + filterText = 'abc', + kind = CompletionItemKind.Reference, + documentation = 'abc.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'abc.init', + filterText = 'abc.init', + kind = CompletionItemKind.Reference, + documentation = 'abc/init.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'abc/init.lua', + content = '', + }, + { + path = 'abc/bbc.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "abc$"', + main = true, + }, + completion = { + { + label = 'abc', + filterText = 'abc', + kind = CompletionItemKind.Reference, + documentation = 'abc/init.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'abc.bbc', + filterText = 'abc.bbc', + kind = CompletionItemKind.Reference, + documentation = 'abc/bbc.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'abc.init', + filterText = 'abc.init', + kind = CompletionItemKind.Reference, + documentation = 'abc/init.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'abc.lua', + content = '', + }, + { + path = 'abc/init.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "abc.$"', + main = true, + }, + completion = { + { + label = 'abc.init', + filterText = 'abc.init', + kind = CompletionItemKind.Reference, + documentation = 'abc/init.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'abc.lua', + content = '', + }, + { + path = 'abc/init.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "abc.i$"', + main = true, + }, + completion = { + { + label = 'abc.init', + filterText = 'abc.init', + kind = CompletionItemKind.Reference, + documentation = 'abc/init.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'core/core.lua', + content = '', + }, + { + path = 'core/xxx.lua', + content = '', + }, + { + path = 'test.lua', + content = 'require "core.co$"', + main = true, + }, + completion = { + { + label = 'core.core', + filterText = 'core.core', + kind = CompletionItemKind.Reference, + documentation = 'core/core.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'x000.lua', + content = '', + }, + { + path = 'abc/x111.lua', + content = '', + }, + { + path = 'abc/test.lua', + content = 'require "x$"', + main = true, + }, + completion = { + { + label = 'x000', + filterText = 'x000', + kind = CompletionItemKind.Reference, + documentation = 'x000.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + { + label = 'x111', + filterText = 'x111', + kind = CompletionItemKind.Reference, + documentation = 'abc/x111.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = 'a.lua', + content = [[ + return { + a = 1, + b = 2, + c = 3, + } + ]] + }, + { + path = 'b.lua', + content = [[ + local t = require 'a' + t.$ + ]], + main = true, + }, + completion = { + { + label = 'a', + kind = CompletionItemKind.Enum, + detail = '(number) = 1', + }, + { + label = 'b', + kind = CompletionItemKind.Enum, + detail = '(number) = 2', + }, + { + label = 'c', + kind = CompletionItemKind.Enum, + detail = '(number) = 3', + }, + } +} + +TEST { + { + path = 'a.lua', + content = [[ + zabc = 1 + ]] + }, + { + path = 'a.lua', + content = [[ + zabcd = print + ]] + }, + { + path = 'a.lua', + content = [[ + zabcdef = 1 + ]] + }, + { + path = 'b.lua', + content = [[ + zab$ + ]], + main = true, + }, + completion = { + { + label = 'zabcdef', + kind = CompletionItemKind.Enum, + detail = '(number) = 1', + }, + } +} + +TEST { + { + path = 'init.lua', + content = [[ + setmetatable(_G, {__index = {}}) + ]] + }, + { + path = 'a.lua', + content = [[ + print(zabc) + ]] + }, + { + path = 'a.lua', + content = [[ + zabcdef = 1 + ]] + }, + { + path = 'b.lua', + content = [[ + zab$ + ]], + main = true, + }, + completion = { + { + label = 'zabcdef', + kind = CompletionItemKind.Enum, + detail = '(number) = 1', + }, + } +} + +TEST { + { + path = 'a.lua', + content = [[ + local japi = require 'jass.japi' + japi.xxxaaaaxxxx + ]] + }, + { + path = 'a.lua', + content = [[ + local japi = require 'jass.japi' + japi.xxxaaaax$ + ]], + main = true, + }, +} + +TEST { + { + path = 'xxx.lua', + content = '' + }, + { + path = 'xxxx.lua', + content = [[ + require 'xx$' + ]], + main = true, + }, + completion = { + { + label = 'xxx', + filterText = 'xxx', + kind = CompletionItemKind.Reference, + documentation = 'xxx.lua', + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = [[xx'xx.lua]], + content = '' + }, + { + path = 'main.lua', + content = [[ + require 'xx$' + ]], + main = true, + }, + completion = { + { + label = [[xx'xx]], + filterText = [[xx'xx]], + kind = CompletionItemKind.Reference, + documentation = [[xx'xx.lua]], + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} + +TEST { + { + path = [[xx]=]xx.lua]], + content = '' + }, + { + path = 'main.lua', + content = [[ + require [=[xx$]=]' + ]], + main = true, + }, + completion = { + { + label = [[xx]=]xx]], + filterText = [[xx]=]xx]], + kind = CompletionItemKind.Reference, + documentation = [[xx]=]xx.lua]], + textEdit = EXISTS, + additionalTextEdits = EXISTS, + }, + } +} diff --git a/script/test/crossfile/definition.lua b/script/test/crossfile/definition.lua new file mode 100644 index 00000000..c765d98a --- /dev/null +++ b/script/test/crossfile/definition.lua @@ -0,0 +1,422 @@ +local service = require 'service' +local workspace = require 'workspace' +local fs = require 'bee.filesystem' +local core = require 'core' +local uric = require 'uri' + +rawset(_G, 'TEST', true) + +local function catch_target(script, sep) + local list = {} + local cur = 1 + local cut = 0 + while true do + local start, finish = script:find(('<%%%s.-%%%s>'):format(sep, sep), cur) + if not start then + break + end + list[#list+1] = { start - cut, finish - 4 - cut } + cur = finish + 1 + cut = cut + 4 + end + local new_script = script:gsub(('<%%%s(.-)%%%s>'):format(sep, sep), '%1') + return new_script, list +end + +local function founded(targets, results) + if #targets ~= #results then + return false + end + for _, target in ipairs(targets) do + for _, result in ipairs(results) do + if target[1] == result[1] + and target[2] == result[2] + and target[3] == result[3] + then + goto NEXT + end + end + do return false end + ::NEXT:: + end + return true +end + +function TEST(datas) + local lsp = service() + local ws = workspace(lsp, 'test') + lsp.workspace = ws + + local compiled = {} + local targetList = {} + local sourceList, sourceUri + + for i, data in ipairs(datas) do + local uri = uric.encode(fs.path(data.path)) + local new, list = catch_target(data.content, '!') + if new ~= data.content or data.target then + if data.target then + targetList[#targetList+1] = { + data.target[1], + data.target[2], + uri + } + else + for _, position in ipairs(list) do + targetList[#targetList+1] = { + position[1], + position[2], + uri + } + end + end + data.content = new + end + new, list = catch_target(data.content, '?') + if new ~= data.content then + compiled[i] = new + sourceList = list + sourceUri = uri + data.content = new + end + lsp:saveText(uri, 1, data.content) + ws:addFile(uric.decode(uri)) + end + + while lsp._needCompile[1] do + lsp:compileVM(lsp._needCompile[1]) + end + + local sourceVM = lsp:getVM(sourceUri) + assert(sourceVM) + local sourcePos = (sourceList[1][1] + sourceList[1][2]) // 2 + local positions = core.definition(sourceVM, sourcePos, 'definition') + if positions then + assert(founded(targetList, positions)) + else + assert(#targetList == 0) + end +end + +TEST { + { + path = 'a.lua', + content = '', + target = {0, 0}, + }, + { + path = 'b.lua', + content = 'require <?"a"?>', + }, +} + +TEST { + { + path = 'a.lua', + content = 'local <!t!> = 1; return t', + }, + { + path = 'b.lua', + content = 'local <?t?> = require "a"', + target = {7, 7}, + }, +} + +if require 'bee.platform'.OS == 'Windows' then +TEST { + { + path = 'a.lua', + content = '', + target = {0, 0}, + }, + { + path = 'b.lua', + content = 'require <?"A"?>', + }, +} +end + +TEST { + { + path = 'a.lua', + content = 'local <!t!> = 1; return t', + }, + { + path = 'b.lua', + content = 'local <?t?> = require "a"', + target = {7, 7}, + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + local t = { + <!x!> = 1, + } + return t + ]], + }, + { + path = 'b.lua', + content = [[ + local t = require "a" + t.<?x?>() + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + return { + <!x!> = 1, + } + ]], + }, + { + path = 'b.lua', + content = [[ + local t = require "a" + t.<?x?>() + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + return <!function () + end!> + ]], + }, + { + path = 'b.lua', + content = [[ + local <!f!> = require "a" + <?f?>() + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + return <!a():b():c()!> + ]], + }, + { + path = 'b.lua', + content = [[ + local <?t?> = require 'a' + ]], + target = {19, 19}, + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + <!global!> = 1 + ]], + }, + { + path = 'b.lua', + content = [[ + print(<?global?>) + ]], + } +} + +TEST { + { + path = 'b.lua', + content = [[ + print(<?global?>) + ]], + }, + { + path = 'a.lua', + content = [[ + <!global!> = 1 + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + x = {} + x.<!global!> = 1 + ]], + }, + { + path = 'b.lua', + content = [[ + print(x.<?global?>) + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + x.<!global!> = 1 + ]], + }, + { + path = 'b.lua', + content = [[ + print(x.<?global?>) + ]], + }, + { + path = 'c.lua', + content = [[ + x = {} + ]] + } +} + +TEST { + { + path = 'a.lua', + content = [[ + return function (<!arg!>) + print(<?arg?>) + end + ]], + }, + { + path = 'b.lua', + content = [[ + local f = require 'a' + local v = 1 + f(v) + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + return <!{ + a = 1, + }!> + ]], + }, + { + path = 'b.lua', + content = [[ + local <!t!> = require 'a' + <?t?> + ]], + } +} + +TEST { + { + path = 'a.lua', + content = [[ + return <!function () end!> + ]] + }, + { + path = 'b.lua', + content = [[ + local f = require 'a' + ]] + }, + { + path = 'c.lua', + content = [[ + local <!f!> = require 'a' + <?f?> + ]] + } +} + +TEST { + { + path = 'a.lua', + content = [[ + local function <!f!>() + end + return f + ]] + }, + { + path = 'b.lua', + content = [[ + local f = require 'a' + ]] + }, + { + path = 'c.lua', + content = [[ + local <!f!> = require 'a' + <?f?> + ]] + } +} + +TEST { + { + path = 'a/xxx.lua', + content = [[ + return <!function () end!> + ]] + }, + { + path = 'b/xxx.lua', + content = [[ + local <!f!> = require 'xxx' + <?f?> + return function () end + ]] + } +} + +TEST { + { + path = 'a.lua', + content = [[ + ---@class Class + local <!obj!> + ]] + }, + { + path = 'b.lua', + content = [[ + ---@type Class + local <!obj!> + <?obj?> + ]] + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + ---@type Class + local <!obj!> + <?obj?> + ]] + }, + { + path = 'b.lua', + content = [[ + ---@class Class + local <!obj!> + ]] + }, +} diff --git a/script/test/crossfile/document_symbol.lua b/script/test/crossfile/document_symbol.lua new file mode 100644 index 00000000..997d42c5 --- /dev/null +++ b/script/test/crossfile/document_symbol.lua @@ -0,0 +1,121 @@ +local service = require 'service' +local workspace = require 'workspace' +local fs = require 'bee.filesystem' +local core = require 'core' +local uric = require 'uri' + +local SymbolKind = { + File = 1, + Module = 2, + Namespace = 3, + Package = 4, + Class = 5, + Method = 6, + Property = 7, + Field = 8, + Constructor = 9, + Enum = 10, + Interface = 11, + Function = 12, + Variable = 13, + Constant = 14, + String = 15, + Number = 16, + Boolean = 17, + Array = 18, + Object = 19, + Key = 20, + Null = 21, + EnumMember = 22, + Struct = 23, + Event = 24, + Operator = 25, + TypeParameter = 26, +} + +local EXISTS = {} + +local function eq(a, b) + if a == EXISTS and b ~= nil then + return true + end + local tp1, tp2 = type(a), type(b) + if tp1 ~= tp2 then + return false + end + if tp1 == 'table' then + local mark = {} + for k in pairs(a) do + if not eq(a[k], b[k]) then + return false + end + mark[k] = true + end + for k in pairs(b) do + if not mark[k] then + return false + end + end + return true + end + return a == b +end + +rawset(_G, 'TEST', true) + +function TEST(data) + local lsp = service() + local ws = workspace(lsp, 'test') + lsp.workspace = ws + + local targetUri = uric.encode(fs.path(data[1].path)) + local sourceUri = uric.encode(fs.path(data[2].path)) + + lsp:saveText(sourceUri, 1, data[2].content) + ws:addFile(uric.decode(sourceUri)) + lsp:saveText(targetUri, 1, data[1].content) + ws:addFile(uric.decode(targetUri)) + while lsp._needCompile[1] do + lsp:compileVM(lsp._needCompile[1]) + end + + local sourceVM = lsp:getVM(sourceUri) + assert(sourceVM) + local result = core.documentSymbol(sourceVM) + assert(eq(data.symbol, result)) +end + +TEST { + { + path = 'a.lua', + content = 'return function () end', + }, + { + path = 'b.lua', + content = [[ +local t = { + x = require 'a', +} + ]], + }, + symbol = { + [1] = { + name = 't', + detail = EXISTS, + kind = SymbolKind.Variable, + range = {7, 7}, + selectionRange = {7, 7}, + valueRange = {11, 34}, + children = { + [1] = { + name = 'x', + detail = EXISTS, + kind = SymbolKind.Class, + range = {17, 17}, + selectionRange = {17, 17}, + valueRange = {21, 31}, + }, + } + } + } +} diff --git a/script/test/crossfile/hover.lua b/script/test/crossfile/hover.lua new file mode 100644 index 00000000..b0e5a55f --- /dev/null +++ b/script/test/crossfile/hover.lua @@ -0,0 +1,361 @@ +local service = require 'service' +local workspace = require 'workspace' +local fs = require 'bee.filesystem' +local core = require 'core' +local uric = require 'uri' + +rawset(_G, 'TEST', true) + +local EXISTS = {} + +local function eq(a, b) + if a == EXISTS and b ~= nil then + return true + end + if b == EXISTS and a ~= nil then + return true + end + local tp1, tp2 = type(a), type(b) + if tp1 ~= tp2 then + return false + end + if tp1 == 'table' then + local mark = {} + for k in pairs(a) do + if not eq(a[k], b[k]) then + return false + end + mark[k] = true + end + for k in pairs(b) do + if not mark[k] then + return false + end + end + return true + end + return a == b +end + +local function catch_target(script, sep) + local list = {} + local cur = 1 + local cut = 0 + while true do + local start, finish = script:find(('<%%%s.-%%%s>'):format(sep, sep), cur) + if not start then + break + end + list[#list+1] = { start - cut, finish - 4 - cut } + cur = finish + 1 + cut = cut + 4 + end + local new_script = script:gsub(('<%%%s(.-)%%%s>'):format(sep, sep), '%1') + return new_script, list +end + +function TEST(data) + local lsp = service() + local ws = workspace(lsp, 'test') + lsp.workspace = ws + ws.root = ROOT + + local targetScript = data[1].content + local targetUri = uric.encode(fs.path(data[1].path)) + + local sourceScript, sourceList = catch_target(data[2].content, '?') + local sourceUri = uric.encode(fs.path(data[2].path)) + + lsp:saveText(targetUri, 1, targetScript) + ws:addFile(uric.decode(targetUri)) + lsp:compileVM(targetUri) + lsp:saveText(sourceUri, 1, sourceScript) + ws:addFile(uric.decode(sourceUri)) + lsp:compileVM(sourceUri) + + local sourceVM = lsp:loadVM(sourceUri) + assert(sourceVM) + local sourcePos = (sourceList[1][1] + sourceList[1][2]) // 2 + local source = core.findSource(sourceVM, sourcePos) + local hover = core.hover(source, lsp) + assert(hover) + if data.hover.description then + local uriROOT = uric.encode(ROOT):gsub('%%', '%%%%') + data.hover.description = data.hover.description:gsub('%$ROOT%$', uriROOT) + end + if hover.label then + hover.label = hover.label:gsub('\r\n', '\n') + end + assert(eq(hover, data.hover)) +end + +TEST { + { + path = 'a.lua', + content = '', + }, + { + path = 'b.lua', + content = 'require <?"a"?>', + }, + hover = { + description = [[[a.lua]($ROOT$/a.lua)]], + } +} + +TEST { + { + path = 'a.lua', + content = [[ + local function f(a, b) + end + return f + ]], + }, + { + path = 'b.lua', + content = [[ + local x = require 'a' + <?x?>() + ]] + }, + hover = { + label = 'function f(a: any, b: any)', + name = 'f', + args = EXISTS, + argStr = EXISTS, + returns = EXISTS, + } +} + +TEST { + { + path = 'a.lua', + content = [[ + return function (a, b) + end + ]], + }, + { + path = 'b.lua', + content = [[ + local f = require 'a' + <?f?>() + ]] + }, + hover = { + label = 'function (a: any, b: any)', + name = '', + args = EXISTS, + argStr = EXISTS, + returns = EXISTS, + } +} + +TEST { + { + path = 'a.lua', + content = [[ + local mt = {} + mt.__index = mt + + function mt:add(a, b) + end + + return function () + return setmetatable({}, mt) + end + ]], + }, + { + path = 'b.lua', + content = [[ + local m = require 'a' + local obj = m() + obj:<?add?>() + ]] + }, + hover = { + label = 'function mt:add(a: any, b: any)', + name = 'mt:add', + args = EXISTS, + argStr = EXISTS, + returns = EXISTS, + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + t = { + [{}] = 1, + } + ]], + }, + { + path = 'b.lua', + content = [[ + <?t?>[{}] = 2 + ]] + }, + hover = { + label = [[ +global t: { + [*table]: number = 1, + [*table]: number = 2, +}]], + name = 't', + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + t = { + [{}] = 1, + } + ]], + }, + { + path = 'a.lua', + content = [[ + <?t?>[{}] = 2 + ]] + }, + hover = { + label = [[ +global t: { + [*table]: number = 2, +}]], + name = 't', + }, +} + +TEST { + { + path = 'a.lua', + content = '', + }, + { + path = 'b.lua', + content = [[ + --- abc + ---@param x number + function <?f?>(x) end + ]], + }, + hover = { + label = [[function f(x: number)]], + name = 'f', + description = 'abc', + args = EXISTS, + argStr = EXISTS, + returns = EXISTS, + } +} + +TEST { + { + path = 'a.lua', + content = '', + }, + { + path = 'b.lua', + content = [[ + --- abc + <?x?> = 1 + ]], + }, + hover = { + label = [[global x: number = 1]], + name = 'x', + description = 'abc', + } +} + +TEST { + { + path = 'a.lua', + content = '', + }, + { + path = 'b.lua', + content = [[ + ---@param x string + ---| "'选项1'" # 注释1 + ---| > "'选项2'" # 注释2 + function <?f?>(x) end + ]] + }, + hover = { + label = 'function f(x: string)', + name = 'f', + args = EXISTS, + rawEnum = EXISTS, + argStr = EXISTS, + returns = EXISTS, + enum = [[ + +x: string + | '选项1' -- 注释1 + |>'选项2' -- 注释2]] + } +} + +TEST { + { + path = 'a.lua', + content = '', + }, + { + path = 'b.lua', + content = [[ + ---@alias option + ---| "'选项1'" # 注释1 + ---| > "'选项2'" # 注释2 + ---@param x option + function <?f?>(x) end + ]] + }, + hover = { + label = 'function f(x: option)', + name = 'f', + args = EXISTS, + rawEnum = EXISTS, + argStr = EXISTS, + returns = EXISTS, + enum = [[ + +x: option + | '选项1' -- 注释1 + |>'选项2' -- 注释2]] + } +} + +TEST { + { + path = 'a.lua', + content = '', + }, + { + path = 'b.lua', + content = [[ + ---@param x string {comment = 'aaaa'} + ---@param y string {comment = 'bbbb'} + local function <?f?>(x, y) end + ]] + }, + hover = { + label = 'function f(x: string, y: string)', + name = 'f', + args = EXISTS, + argStr = EXISTS, + returns = EXISTS, + description = [[ ++ `x`*(string)*: aaaa + ++ `y`*(string)*: bbbb]] + } +} diff --git a/script/test/crossfile/init.lua b/script/test/crossfile/init.lua new file mode 100644 index 00000000..96462fa5 --- /dev/null +++ b/script/test/crossfile/init.lua @@ -0,0 +1,5 @@ +require 'crossfile.definition' +require 'crossfile.hover' +require 'crossfile.completion' +require 'crossfile.document_symbol' +require 'crossfile.references' diff --git a/script/test/crossfile/references.lua b/script/test/crossfile/references.lua new file mode 100644 index 00000000..9f81707c --- /dev/null +++ b/script/test/crossfile/references.lua @@ -0,0 +1,215 @@ +local service = require 'service' +local workspace = require 'workspace' +local fs = require 'bee.filesystem' +local core = require 'core' +local uric = require 'uri' + +rawset(_G, 'TEST', true) + +local EXISTS = {} + +local function eq(a, b) + if a == EXISTS and b ~= nil then + return true + end + local tp1, tp2 = type(a), type(b) + if tp1 ~= tp2 then + return false + end + if tp1 == 'table' then + local mark = {} + for k in pairs(a) do + if not eq(a[k], b[k]) then + return false + end + mark[k] = true + end + for k in pairs(b) do + if not mark[k] then + return false + end + end + return true + end + return a == b +end + +local function catch_target(script) + local list = {} + local cur = 1 + while true do + local start, finish = script:find('<[!?].-[!?]>', cur) + if not start then + break + end + list[#list+1] = { start + 2, finish - 2 } + cur = finish + 1 + end + return list +end + +local function founded(targets, results) + if #targets ~= #results then + return false + end + for _, target in ipairs(targets) do + for _, result in ipairs(results) do + if target[1] == result[1] and target[2] == result[2] then + goto NEXT + end + end + do return false end + ::NEXT:: + end + return true +end + +local function compileAll(lsp) + while lsp._needCompile[1] do + lsp:compileVM(lsp._needCompile[1]) + end +end + +function TEST(data) + local lsp = service() + local ws = workspace(lsp, 'test') + lsp.workspace = ws + ws.root = ROOT + + local mainUri + local pos + local expect = {} + for _, info in ipairs(data) do + local uri = uric.encode(fs.path(info.path)) + ws:addFile(uric.decode(uri)) + end + for _, info in ipairs(data) do + local uri = uric.encode(fs.path(info.path)) + local script = info.content + local list = catch_target(script) + for _, location in ipairs(list) do + expect[#expect+1] = { + location[1], + location[2], + uri, + } + end + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + if start then + mainUri = uri + pos = (start + finish) // 2 + 1 + end + local newScript = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + lsp:saveText(uri, 1, newScript) + compileAll(lsp) + end + + local vm = lsp:loadVM(mainUri) + + compileAll(lsp) + + assert(vm) + local result = core.definition(vm, pos, 'reference') + if expect then + assert(result) + assert(founded(expect, result)) + else + assert(result == nil) + end +end + +TEST { + { + path = 'lib.lua', + content = [[ + return <!function () + end!> + ]], + }, + { + path = 'a.lua', + content = [[ + local <?f?> = require 'lib' + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + local <!f!> = require 'lib' + ]], + }, + { + path = 'lib.lua', + content = [[ + return <?function () + end?> + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + <!ROOT!> = 1 + ]], + }, + { + path = 'b.lua', + content = [[ + print(<?ROOT?>) + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + <?ROOT?> = 1 + ]], + }, + { + path = 'b.lua', + content = [[ + print(<!ROOT!>) + ]], + }, +} + +TEST { + { + path = 'a.lua', + content = [[ + return <?function () end?> + ]], + }, + { + path = 'b.lua', + content = [[ + local t = require 'a' + ]], + }, + { + path = 'b.lua', + content = [[ + local t = require 'a' + ]], + }, + { + path = 'b.lua', + content = [[ + local t = require 'a' + ]], + }, + { + path = 'b.lua', + content = [[ + local <!t!> = require 'a' + ]], + }, +} diff --git a/script/test/definition/arg.lua b/script/test/definition/arg.lua new file mode 100644 index 00000000..9e88b2bf --- /dev/null +++ b/script/test/definition/arg.lua @@ -0,0 +1,19 @@ +TEST [[ +local function xx (<!xx!>) + <?xx?>() +end +]] + +TEST [[ +local <!mt!> +function mt:x() + <?self?>() +end +mt:x() +]] + +TEST [[ +function mt:x(<!self!>) + <?self?>() +end +]] diff --git a/script/test/definition/bug.lua b/script/test/definition/bug.lua new file mode 100644 index 00000000..1d3ab02c --- /dev/null +++ b/script/test/definition/bug.lua @@ -0,0 +1,90 @@ +TEST [[ +local <!x!> +function _(x) +end +function _() + <?x?>() +end +]] + +TEST [[ +function _(<!x!>) + do return end + <?x?>() +end +]] + +TEST [[ +local <!a!> +function a:b() + a:b() + <?self?>() +end +]] + +TEST [[ +function _(...) + function _() + print(<?...?>) + end +end +]] + +TEST [[ +local <!a!> +(<?a?> / b)() +]] + +TEST [[ +local <!args!> +io.load(root / <?args?>.source / 'API' / path) +]] + +TEST [[ +obj[#<?obj?>+1] = {} +]] + +TEST [[ +self = { + results = { + <!labels!> = {}, + } +} +self[self.results.<?labels?>] = lbl +]] + +TEST [[ +local mt = {} +function mt:<!x!>() +end +mt:x() +mt:<?x?>() +]] + +TEST [[ +local function func(<!a!>) + x = { + xx(), + <?a?>, + } +end +]] + +TEST [[ +local <!x!> +local t = { + ..., + <?x?>, +} +]] + +TEST [[ +local a +local <!b!> +return f(), <?b?> +]] + +TEST [[ +local a = os.clock() +local <?<!b!>?> = os.clock() +]] diff --git a/script/test/definition/emmy.lua b/script/test/definition/emmy.lua new file mode 100644 index 00000000..ee8fa6a7 --- /dev/null +++ b/script/test/definition/emmy.lua @@ -0,0 +1,91 @@ +TEST [[ +---@class <!A!> +---@class B : <?A?> +]] + +TEST [[ +---@class <!A!> +---@type B|<?A?> +]] + +TEST [[ +---@class A +local mt = {} +function mt:<!cast!>() +end + +---@type A +local obj +obj:<?cast?>() +]] + +TEST [[ +---@class A +local <!mt!> = {} +function mt:cast() +end + +---@type A +local <!obj!> +<?obj?>:cast() +]] + +TEST [[ +---@type A +local <?<!obj!>?> + +---@class A +local <!mt!> +]] + +TEST [[ +---@type A +local obj +obj:<?func?>() + +---@class A +local mt +function mt:<!func!>() +end +]] + +TEST [[ +---@type A +local obj +obj:<?func?>() + +local mt = {} +mt.__index = mt +function mt:<!func!>() +end +---@class A +local obj = setmetatable({}, mt) +]] + +TEST [[ +---@alias <!B A!> +---@type <?B?> +]] + +TEST [[ +---@class <!Class!> +---@param a <?Class?> +]] + +TEST [[ +---@class Class +---@field <!name string!> +---@field id integer +local mt = {} +mt.<?name?> +]] + +TEST [[ +---@class loli +local unit + +function unit:<!pants!>() +end + +---@see loli#<?pants?> +]] diff --git a/script/test/definition/function.lua b/script/test/definition/function.lua new file mode 100644 index 00000000..ce20f50b --- /dev/null +++ b/script/test/definition/function.lua @@ -0,0 +1,24 @@ + +TEST [[ +function <!x!> () end +<?x?>() +]] + +TEST [[ +local function <!x!> () end +<?x?>() +]] + +TEST [[ +local x +local function <!x!> () + <?x?>() +end +]] + +TEST [[ +local <!x!> +function <!x!>() +end +<?x?>() +]] diff --git a/script/test/definition/init.lua b/script/test/definition/init.lua new file mode 100644 index 00000000..022b1d3b --- /dev/null +++ b/script/test/definition/init.lua @@ -0,0 +1,64 @@ +local core = require 'core' +local parser = require 'parser' +local buildVM = require 'vm' + +rawset(_G, 'TEST', true) + +local function catch_target(script) + local list = {} + local cur = 1 + while true do + local start, finish = script:find('<!.-!>', cur) + if not start then + break + end + list[#list+1] = { start + 2, finish - 2 } + cur = finish + 1 + end + return list +end + +local function founded(targets, results) + if #targets ~= #results then + return false + end + for _, target in ipairs(targets) do + for _, result in ipairs(results) do + if target[1] == result[1] and target[2] == result[2] then + goto NEXT + end + end + do return false end + ::NEXT:: + end + return true +end + +function TEST(script) + local target = catch_target(script) + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + local pos = (start + finish) // 2 + 1 + local new_script = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + assert(ast) + local vm = buildVM(ast) + assert(vm) + + local positions = core.definition(vm, pos, 'definition') + if positions then + assert(founded(target, positions)) + else + assert(#target == 0) + end +end + +require 'definition.set' +require 'definition.local' +require 'definition.arg' +require 'definition.function' +require 'definition.table' +require 'definition.method' +require 'definition.label' +require 'definition.bug' +require 'definition.emmy' diff --git a/script/test/definition/label.lua b/script/test/definition/label.lua new file mode 100644 index 00000000..4859d70e --- /dev/null +++ b/script/test/definition/label.lua @@ -0,0 +1,29 @@ +TEST [[ +::<!LABEL!>:: +goto <?LABEL?> +]] + +TEST [[ +goto <?LABEL?> +::<!LABEL!>:: +]] + +TEST [[ +::LABEL:: +function _() + goto <?LABEL?> +end +]] + +TEST [[ +do + goto <?LABEL?> +end +::<!LABEL!>:: +]] + +TEST [[ +::<!LABEL!>:: +goto <?LABEL?> +::<!LABEL!>:: +]] diff --git a/script/test/definition/local.lua b/script/test/definition/local.lua new file mode 100644 index 00000000..4153bfa0 --- /dev/null +++ b/script/test/definition/local.lua @@ -0,0 +1,195 @@ +TEST [[ +local <!x!> +<?x?>() +]] + +TEST [[ +local z, y, <!x!> +<?x?>() +]] + +TEST [[ +local <!x!> = 1 +<?x?>() +]] + +TEST [[ +local z, y, <!x!> = 1 +<?x?>() +]] + +TEST [[ +local x +local <!x!> +<?x?>() +]] + +TEST [[ +local <!x!> +do + <?x?>() +end +]] + +TEST [[ +local <!x!> +do + local x +end +<?x?>() +]] + +TEST [[ +local <!x!> +if <?x?> then + local x +end +]] + +TEST [[ +local <!x!> +if x then + local x +elseif <?x?> then + local x +end +]] + +TEST [[ +local <!x!> +if x then + local x +elseif x then + local x +else + local x +end +<?x?>() +]] + +TEST [[ +local <!x!> +if x then + <?x?>() +elseif x then + local x +else + local x +end +]] + +TEST [[ +local <!x!> +for x = 1, 10 do +end +<?x?>() +]] + +TEST [[ +local x +for <!x!> = 1, 10 do + <?x?>() +end +]] + +TEST [[ +local <!x!> +for x in x do +end +<?x?>() +]] + +TEST [[ +local <!x!> +for x in <?x?> do +end +]] + +TEST [[ +local x +for <!x!> in x do + <?x?>() +end +]] + +TEST [[ +local x +for z, y, <!x!> in x do + <?x?>() +end +]] + +TEST [[ +local <!x!> +while <?x?> do +end +]] + +TEST [[ +local <!x!> +while x do + <?x?>() +end +]] + +TEST [[ +local <!x!> +while x do + local x +end +<?x?>() +]] + +TEST [[ +local <!x!> +repeat + <?x?>() +until true +]] + +TEST [[ +local <!x!> +repeat + local x +until true +<?x?>() +]] + +TEST [[ +local <!x!> +repeat +until <?x?> +]] + +TEST [[ +local x +repeat + local <!x!> +until <?x?> +]] + +TEST [[ +local <!x!> +function _() + local x +end +<?x?>() +]] + +TEST [[ +local <!x!> +return function () + <?x?>() +end +]] + +TEST [[ +local <!x!> +local x = function () + <?x?>() +end +]] + +TEST [[ +local <?<!x!>?> +]] diff --git a/script/test/definition/method.lua b/script/test/definition/method.lua new file mode 100644 index 00000000..08b56f61 --- /dev/null +++ b/script/test/definition/method.lua @@ -0,0 +1,140 @@ +TEST [[ +function mt:<!a!>() +end +function mt:b() + mt:<?a?>() +end +]] + +TEST [[ +function mt:<!m1!>() +end +function mt:m2() + self:<?m1?>() +end +]] + +TEST [[ +function mt:m3() + mt:<?m4?>() +end +function mt:<!m4!>() +end +]] + +TEST [[ +function mt:m3() + self:<?m4?>() +end +function mt:<!m4!>() +end +]] + +TEST [[ +local mt +mt.__index = mt +function mt:<!method1!>() +end + +local obj = setmetatable({}, mt) +obj:<?method1?>() +]] + +TEST [[ +local mt +mt.__index = mt +function mt:<!method1!>() +end + +local obj = setmetatable({}, mt) +obj:<?method1?>() +]] + +TEST [[ +local mt +function mt:<!method1!>() +end + +local obj = setmetatable({}, { __index = mt }) +obj:<?method1?>() +]] + +TEST [[ +local mt +local api +function mt:<!method1!>() +end + +setmetatable(api, { __index = mt }) +api:<?method1?>() +]] + +TEST [[ +local mt +function mt:x() + self.<?init?>() +end + +local obj = setmetatable({}, { __index = mt }) +obj.<!init!> = 1 +obj:x() +]] + +TEST [[ +local mt +function mt:x() + self.<?init?>() +end + +local obj = setmetatable({ <!init!> = 1 }, { __index = mt }) +obj:x() +]] + +TEST [[ +local mt +function mt:x() + self.a.<?out?>() +end + +local obj = setmetatable({ + a = { + <!out!> = 1, + } +}, { __index = mt }) +obj:x() +]] + +TEST [[ +local sm = setmetatable +local mt +mt.__index = mt +function mt:<!method1!>() +end + +local obj = sm({}, mt) +obj:<?method1?>() +]] + +TEST [[ +local mt = {} +function mt:<!x!>() +end + +local obj = setmetatable({}, {__index = mt}) +function obj:x() +end + +mt:<?x?>() +]] + +TEST [[ +local mt = {} +function mt:x() +end + +local obj = setmetatable({}, {__index = mt}) +function obj:<!x!>() +end + +obj:<?x?>() +]] diff --git a/script/test/definition/set.lua b/script/test/definition/set.lua new file mode 100644 index 00000000..44277d33 --- /dev/null +++ b/script/test/definition/set.lua @@ -0,0 +1,50 @@ +TEST [[ +<!x!> = 1 +<?x?>() +]] + +TEST [[ +do + <!global!> = 1 +end +<?global?>() +]] + +TEST [[ +<!x!> = 1 +do + local x = 1 +end +<?x?>() +]] + +TEST [[ +x = 1 +do + local <!x!> = 1 + do + <!x!> = 2 + end + <?x?>() +end +]] + +TEST [[ +<!x!> = 1 +if y then + <!x!> = 2 +else + <!x!> = 3 +end +print(<?x?>) +]] + +TEST [[ +_G.<!x!> = 1 +print(<?x?>) +]] + +TEST [[ +rawset<!(_G, 'x', 1)!> +print(<?x?>) +]] diff --git a/script/test/definition/table.lua b/script/test/definition/table.lua new file mode 100644 index 00000000..90e7926f --- /dev/null +++ b/script/test/definition/table.lua @@ -0,0 +1,114 @@ +TEST [[ +local <!t!> +a = { + <?t?> +} +]] + +TEST [[ +local t +t.<!x!> = 1 +t.<?x?>() +]] + +TEST [[ +t.<!x!> = 1 +t.<?x?>() +]] + +TEST [[ +local <!t!> +t.x = 1 +<?t?>.x = 1 +]] + +TEST [[ +t.<!x!> = 1 +t.<?x?>.y = 1 +]] + +TEST [[ +local t +t.<!x!> = 1 +t.<?x?>() +]] + +TEST [[ +local t +t[<!1!>] = 1 +t[<?1?>]() +]] + +TEST [[ +local t +t[<!true!>] = 1 +t[<?true?>]() +]] + +TEST [[ +local t +t[<!"method"!>] = 1 +t[<?"method"?>]() +]] + +TEST [[ +local t +t[<!"longString"!>] = 1 +t[<?[==[longString]==]?>]() +]] + +TEST [[ +local t +t.<!x!> = 1 +t[<?'x'?>]() +]] + +TEST [[ +local t +t.<!a!> = 1 +t.<?a?>.b() +]] + +TEST [[ +local t +local <!x!> +t[<?x?>]() +]] + +TEST[[ +local <!t!> +local _ = { + _ = <?t?> +} +]] + +TEST[[ +local <!t!> +t { + _ = <?t?>.x +} +]] + +TEST[[ +local t = { + <!insert!> = 1, +} +t.<?insert?>() +]] + +--TEST[[ +--local t = { +-- <!insert!> = 1, +--} +--y.<?insert?>() +--]] + +--TEST[[ +--local t = { +-- <!insert!> = 1, +--} +--local y = { +-- insert = 1, +--} +--t.<?insert?>() +--]] diff --git a/script/test/diagnostics/init.lua b/script/test/diagnostics/init.lua new file mode 100644 index 00000000..eee03d2e --- /dev/null +++ b/script/test/diagnostics/init.lua @@ -0,0 +1,74 @@ +local core = require 'core' +local buildVM = require 'vm' +local parser = require 'parser' +local service = require 'service' +local config = require 'config' + +rawset(_G, 'TEST', true) + +local function catch_target(script, ...) + local list = {} + local function catch(buf) + local cur = 1 + local cut = 0 + while true do + local start, finish = buf:find('<!.-!>', cur) + if not start then + break + end + list[#list+1] = { start - cut, finish - 4 - cut } + cur = finish + 1 + cut = cut + 4 + end + end + catch(script) + if ... then + for _, buf in ipairs {...} do + catch(buf) + end + end + local new_script = script:gsub('<!(.-)!>', '%1') + return new_script, list +end + +local function founded(targets, results) + if #targets ~= #results then + return false + end + for _, target in ipairs(targets) do + for _, result in ipairs(results) do + if target[1] == result[1] and target[2] == result[2] then + goto NEXT + end + end + do return false end + ::NEXT:: + end + return true +end + +function TEST(script, ...) + local new_script, target = catch_target(script, ...) + local lsp = service() + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + assert(ast) + local lines = parser:lines(new_script) + local vm = buildVM(ast, lsp, 'test') + assert(vm) + local datas = core.diagnostics(vm, lines, 'test') + local results = {} + for i, data in ipairs(datas) do + results[i] = { data.start, data.finish } + end + + if results[1] then + if not founded(target, results) then + error(('%s\n%s'):format(table.dump(target), table.dump(results))) + end + else + assert(#target == 0) + end +end + +require 'diagnostics.normal' +require 'diagnostics.syntax' diff --git a/script/test/diagnostics/normal.lua b/script/test/diagnostics/normal.lua new file mode 100644 index 00000000..5fdc3ba8 --- /dev/null +++ b/script/test/diagnostics/normal.lua @@ -0,0 +1,503 @@ +local config = require 'config' + +TEST [[ +local <!x!> +]] + +TEST([[ +<!local function x() +end!> +]], +[[ +local function <!x!>() +end +]] +) + +TEST [[ +local <!x!> = <!function () end!> +]] + +TEST [[ +local <!x!> +x = <!function () end!> +]] + + +TEST [[ +print(<!x!>) +print(<!log!>) +print(<!X!>) +print(<!Log!>) +print(_VERSION) +print(<!y!>) +print(Z) +Z = 1 +]] + +TEST [[ +::<!LABEL!>:: +]] + +TEST [[ +<! !> +]] + +TEST [[ +X = 1<! !> +]] + +TEST [[ +X = [=[ + ]=] +]] + +TEST [[ +local x +print(x) +local <!x!> +print(x) +]] + +TEST [[ +local x +print(x) +local <!x!> +print(x) +local <!x!> +print(x) +]] + +TEST [[ +local _ +print(_) +local _ +print(_) +local _ENV +<!print!>(_ENV) -- 由于重定义了_ENV,因此print变为了未定义全局变量 +]] + +TEST [[ +print(1) +_ENV = nil +]] + +config.config.diagnostics.disable['undefined-env-child'] = true +TEST [[ +_ENV = nil +<!GLOBAL!> = 1 --> _ENV.GLOBAL = 1 +]] + +TEST [[ +_ENV = nil +local _ = <!GLOBAL!> --> local _ = _ENV.GLOBAL +]] + +TEST [[ +_ENV = {} +GLOBAL = 1 --> _ENV.GLOBAL = 1 +]] + +TEST [[ +_ENV = {} +local _ = GLOBAL --> local _ = _ENV.GLOBAL +]] + +config.config.diagnostics.disable['undefined-env-child'] = nil +TEST [[ +print() +<!('string')!>:sub(1, 1) +]] + +TEST [[ +print() +('string') +]] + +TEST [[ +return { + <!print + 'string'!> +} +]] + +TEST [[ +return { + <!print + { + x = 1, + }!> +} +]] + +TEST [[ +print() +'string' +]] + +TEST [[ +print +{ + x = 1, +} +]] + +TEST [[ +local function x(a, b) + return a, b +end +x(1, 2, <!3!>) +]] + +TEST [[ +InstanceName = 1 +Instance = _G[InstanceName] +]] + +TEST [[ +(''):sub(1, 2) +]] + +TEST [=[ +return [[ + +]] +]=] + +TEST [[ +local mt, x +function mt:m() + function x:m() + end +end +]] + +TEST [[ +local mt = {} +function mt:f() +end +]] + +TEST [[ +local function f(<!self!>) +end +f() +]] + +TEST [[ +local function f(<!...!>) +end +f() +]] + +TEST [[ +local function f(var) + print(var) +end +local var +f(var) +]] + +TEST [[ +local function f(a, b) + return a, b +end +f(1, 2, <!3!>, <!4!>) +]] + +TEST [[ +local mt = {} +function mt:f(a, b) + return a, b +end +mt.f(1, 2, 3, <!4!>) +]] + + +TEST [[ +local mt = {} +function mt.f(a, b) + return a, b +end +mt:f(1, <!2!>, <!3!>, <!4!>) +]] + +TEST [[ +local mt = {} +function mt:f(a, b) + return a, b +end +mt:f(1, 2, <!3!>, <!4!>) +]] + +TEST [[ +local function f(a, b, ...) + return a, b, ... +end +f(1, 2, 3, 4) +]] + +TEST [[ +next({}, 1, <!2!>) +print(1, 2, 3, 4, 5) +]] + +TEST [[ +local function f(callback) + callback(1, 2, 3) +end +f(function () end) +]] + +--TEST [[ +--local realTostring = tostring +--tostring = function () end +--tostring(<!1!>) +--tostring = realTostring +--tostring(1) +--]] + +TEST [[ +<!aa!> = 1 +tostring = 1 +ROOT = 1 +_G.bb = 1 +]] + +TEST [[ +local f = load('') +f(1, 2, 3) +]] + +require 'config' .config.runtime.version = 'Lua 5.3' +TEST [[ +<!warn!>(1) +]] + +TEST [[ +X = table[<!x!>] +]] + +TEST [[ +return { + <!x = 1!>, + y = 2, + <!x!> = 3, +} +]] + +TEST [[ +local m = {} +function m.open() +end + +m:open() +]] + +TEST [[ +<!if true then +end!> +]] + +TEST [[ +<!if true then +else +end!> +]] + +TEST [[ +if true then +else + return +end +]] + +TEST [[ +while true do +end +]] + +TEST [[ +<!for _ = 1, 10 do +end!> +]] + +TEST [[ +<!for _ in pairs(_VERSION) do +end!> +]] + +TEST [[ +local _ = 1, <!2!> +]] + +TEST [[ +_ = 1, <!2!> +]] + +TEST [[ +local function x() + do + local k + print(k) + x() + end + local k = 1 + print(k) +end +]] + +TEST [[ +local function x() + local loc + x() + print(loc) +end +]] + +TEST [[ +---@class <!Class!> +---@class <!Class!> +]] + +TEST [[ +---@class A : <!B!> +]] + +TEST [[ +---@class <!A : B!> +---@class <!B : C!> +---@class <!C : D!> +---@class <!D : A!> +]] + +TEST [[ +---@class A : B +---@class B : C +---@class C : D +---@class D +]] + +TEST [[ +---@type <!A!> +]] + +TEST [[ +---@class A +---@type A|<!B!>|<!C!> +]] + +TEST [[ +---@class AAA +---@alias B AAA + +---@type B +]] + +TEST [[ +---@alias B <!AAA!> +]] + +TEST [[ +---@class <!A!> +---@class B +---@alias <!A B!> +]] + +TEST [[ +---@param x <!Class!> +]] + +TEST [[ +---@class Class +---@param <!y!> Class +local function f(x) + return x +end +f() +]] + +TEST [[ +---@class Class +---@param <!y!> Class +function F(x) + return x +end +F() +]] + +TEST [[ +---@class Class +---@param <!x!> Class +---@param y Class +---@param <!x!> Class +local function f(x, y) + return x, y +end +f() +]] + +TEST [[ +---@field <!x Class!> +---@class Class +]] + +TEST [[ +---@class Class +---@field <!x!> Class +---@field <!x!> Class +]] + +TEST [[ +---@class Class : any +]] + +TEST [[ +---@type fun(a: integer) +local f +f() +]] + +TEST [[ +local x +x = <!x or 0 + 1!> +]] + +TEST [[ +local x, y +x = <!x + y or 0!> +]] + +TEST [[ +local x, y, z +x = x and y or '' .. z +]] + +TEST [[ +local x +x = x or -1 +]] + +TEST [[ +local x +x = x or (0 + 1) +]] + +TEST [[ +local x, y +x = (x + y) or 0 +]] + +--TEST [[ +--local t = {} +--function t:<!a!>() +--end +--function t:<!a!>() +--end +--]] + +TEST [[ +local t = {} +t.a = 1 +t.a = 2 +]] diff --git a/script/test/diagnostics/syntax.lua b/script/test/diagnostics/syntax.lua new file mode 100644 index 00000000..887d05f0 --- /dev/null +++ b/script/test/diagnostics/syntax.lua @@ -0,0 +1,8 @@ +local config = require 'config' + +TEST [[ +local x <const> = 1 +<!x!> = 2 +return x +]] + diff --git a/script/test/document_symbol/init.lua b/script/test/document_symbol/init.lua new file mode 100644 index 00000000..f677d857 --- /dev/null +++ b/script/test/document_symbol/init.lua @@ -0,0 +1,478 @@ +local parser = require 'parser' +local core = require 'core' +local buildVM = require 'vm' + +local SymbolKind = { + File = 1, + Module = 2, + Namespace = 3, + Package = 4, + Class = 5, + Method = 6, + Property = 7, + Field = 8, + Constructor = 9, + Enum = 10, + Interface = 11, + Function = 12, + Variable = 13, + Constant = 14, + String = 15, + Number = 16, + Boolean = 17, + Array = 18, + Object = 19, + Key = 20, + Null = 21, + EnumMember = 22, + Struct = 23, + Event = 24, + Operator = 25, + TypeParameter = 26, +} + +rawset(_G, 'TEST', true) + +local EXISTS = {} + +local function eq(a, b) + if a == EXISTS and b ~= nil then + return true + end + local tp1, tp2 = type(a), type(b) + if tp1 ~= tp2 then + return false + end + if tp1 == 'table' then + local mark = {} + for k in pairs(a) do + if not eq(a[k], b[k]) then + return false + end + mark[k] = true + end + for k in pairs(b) do + if not mark[k] then + return false + end + end + return true + end + return a == b +end + +local function checkArcoss(symbols) + local lastFinish = 0 + for _, symbol in ipairs(symbols) do + assert(symbol.range[1] <= symbol.selectionRange[1]) + assert(symbol.range[2] >= symbol.selectionRange[2]) + assert(symbol.range[2] > lastFinish) + lastFinish = symbol.range[2] + if symbol.children then + checkArcoss(symbol.children) + end + end +end + +function TEST(script) + return function (expect) + local ast = parser:parse(script, 'lua', 'Lua 5.3') + local vm = buildVM(ast) + assert(vm) + local result = core.documentSymbol(vm) + assert(eq(expect, result)) + checkArcoss(result) + end +end + +TEST [[ +local function f() +end +]] +{ + [1] = { + name = 'f', + detail = 'function f()', + kind = SymbolKind.Function, + range = {1, 22}, + selectionRange = {16, 16}, + valueRange = {1, 22}, + } +} + +TEST [[ +function f() +end +]] +{ + [1] = { + name = 'f', + detail = 'function f()', + kind = SymbolKind.Function, + range = {1, 16}, + selectionRange = {10, 10}, + valueRange = {1, 16}, + } +} + +TEST [[ +return function () +end +]] +{ + [1] = { + name = '', + detail = 'function ()', + kind = SymbolKind.Function, + range = {8, 22}, + selectionRange = {8, 8}, + valueRange = {8, 22}, + } +} + +TEST [[ +f = function () +end +]] +{ + [1] = { + name = 'f', + detail = 'function f()', + kind = SymbolKind.Function, + range = {1, 1}, + selectionRange = {1, 1}, + valueRange = {5, 19}, + } +} + +TEST [[ +local f = function () +end +]] +{ + [1] = { + name = 'f', + detail = 'function f()', + kind = SymbolKind.Function, + range = {7, 7}, + selectionRange = {7, 7}, + valueRange = {11, 25}, + } +} + +TEST [[ +function mt:add() +end +]] +{ + [1] = { + name = 'mt:add', + detail = 'function mt:add()', + kind = SymbolKind.Field, + range = {1, 21}, + selectionRange = {10, 15}, + valueRange = {1, 21}, + } +} + +TEST [[ +function A() + function A1() + end + function A2() + end +end +function B() +end +]] +{ + [1] = { + name = 'A', + detail = 'function A()', + kind = SymbolKind.Function, + range = {1, 68}, + selectionRange = {10, 10}, + valueRange = {1, 68}, + children = { + [1] = { + name = 'A1', + detail = 'function A1()', + kind = SymbolKind.Function, + range = {18, 38}, + selectionRange = {27, 28}, + valueRange = {18, 38}, + }, + [2] = { + name = 'A2', + detail = 'function A2()', + kind = SymbolKind.Function, + range = {44, 64}, + selectionRange = {53, 54}, + valueRange = {44, 64}, + }, + }, + }, + [2] = { + name = 'B', + detail = 'function B()', + kind = SymbolKind.Function, + range = {70, 85}, + selectionRange = {79, 79}, + valueRange = {70, 85}, + }, +} + +TEST [[ +local x = 1 +local function f() + local x = 'x' + local y = {} + --= 1 +end +local y = true +local z +]] +{ + [1] = { + name = 'x', + detail = 'local x: number = 1', + kind = SymbolKind.Variable, + range = {7, 7}, + selectionRange = {7, 7}, + valueRange = {11, 11}, + }, + [2] = { + name = 'f', + detail = 'function f()', + kind = SymbolKind.Function, + range = {13, 79}, + selectionRange = {28, 28}, + valueRange = {13, 79}, + children = { + [1] = { + name = 'x', + detail = 'local x: string = "x"', + kind = SymbolKind.Variable, + range = {42, 42}, + selectionRange = {42, 42}, + valueRange = {46, 48}, + }, + [2] = { + name = 'y', + detail = 'local y: {}', + kind = SymbolKind.Variable, + range = {60, 60}, + selectionRange = {60, 60}, + valueRange = {64, 65}, + }, + --[3] = { + -- name = 'z', + -- detail = 'global z: number = 1', + -- kind = SymbolKind.Object, + -- range = {71, 71}, + -- selectionRange = {71, 71}, + -- valueRange = {75, 75}, + --}, + }, + }, + [3] = { + name = 'y', + detail = 'local y: boolean = true', + kind = SymbolKind.Variable, + range = {87, 87}, + selectionRange = {87, 87}, + valueRange = {91, 94}, + }, + [4] = { + name = 'z', + detail = '', + kind = SymbolKind.Variable, + range = {102, 102}, + selectionRange = {102, 102}, + valueRange = {102, 102}, + }, +} + +TEST [[ +local t = { + a = 1, + b = 2, + c = 3, +} +]] +{ + [1] = { + name = 't', + detail = EXISTS, + kind = SymbolKind.Variable, + range = {7, 7}, + selectionRange = {7, 7}, + valueRange = {11, 46}, + children = { + [1] = { + name = 'a', + detail = 'field a: number = 1', + kind = SymbolKind.Class, + range = {17, 17}, + selectionRange = {17, 17}, + valueRange = {21, 21}, + }, + [2] = { + name = 'b', + detail = 'field b: number = 2', + kind = SymbolKind.Class, + range = {28, 28}, + selectionRange = {28, 28}, + valueRange = {32, 32}, + }, + [3] = { + name = 'c', + detail = 'field c: number = 3', + kind = SymbolKind.Class, + range = {39, 39}, + selectionRange = {39, 39}, + valueRange = {43, 43}, + }, + } + } +} + +TEST [[ +local t = { + a = { + b = 1, + } +} +]] +{ + [1] = { + name = 't', + detail = EXISTS, + kind = SymbolKind.Variable, + range = {7, 7}, + selectionRange = {7, 7}, + valueRange = {11, 44}, + children = { + [1] = { + name = 'a', + detail = EXISTS, + kind = SymbolKind.Class, + range = {17, 17}, + selectionRange = {17, 17}, + valueRange = {21, 42}, + children = { + [1] = { + name = 'b', + detail = EXISTS, + kind = SymbolKind.Class, + range = {31, 31}, + selectionRange = {31, 31}, + valueRange = {35, 35}, + } + } + }, + } + } +} + +TEST[[ +local function g() +end + +g = 1 +]]{ + [1] = { + name = 'g', + detail = 'function g()', + kind = SymbolKind.Function, + range = {1, 22}, + selectionRange = {16, 16}, + valueRange = {1, 22}, + } +} + +TEST[[ +function f(...) + local x = ... + print(x.a) +end +]]{ + [1] = { + name = 'f', + detail = 'function f(...)', + kind = SymbolKind.Function, + range = {1, 52}, + selectionRange = {10, 10}, + valueRange = {1, 52}, + children = { + [1] = { + name = 'x', + detail = EXISTS, + kind = SymbolKind.Variable, + range = {27, 27}, + selectionRange = {27, 27}, + valueRange = {31, 33}, + } + } + }, +} + +TEST [[ +local t = { + a = 1, + b = 2, +} + +local v = t +]]{ + [1] = { + name = 't', + detail = EXISTS, + kind = SymbolKind.Variable, + range = {7, 7}, + selectionRange = {7, 7}, + valueRange = {11, 35}, + children = EXISTS, + }, + [2] = { + name = 'v', + detail = EXISTS, + kind = SymbolKind.Variable, + range = {44, 44}, + selectionRange = {44, 44}, + valueRange = {48, 48}, + }, +} + +TEST [[ +local x +local function +]]{ + [1] = { + name = 'x', + detail = EXISTS, + kind = SymbolKind.Variable, + range = {7, 7}, + selectionRange = {7, 7}, + valueRange = {7, 7}, + }, + [2] = { + name = '', + detail = EXISTS, + kind = SymbolKind.Function, + range = {9, 22}, + selectionRange = {22, 22}, + valueRange = {9, 22}, + } +} + +-- 临时 +local fs = require 'bee.filesystem' +local function testIfExit(path) + local buf = io.load(fs.path(path)) + if buf then + TEST(buf)(EXISTS) + end +end +testIfExit[[D:\Github\lua\testes\coroutine.lua]] +testIfExit[[D:\Github\War3-lua-map\scripts\game\init.lua]] diff --git a/script/test/example/largeGlobal.txt b/script/test/example/largeGlobal.txt new file mode 100644 index 00000000..23c93d6a --- /dev/null +++ b/script/test/example/largeGlobal.txt @@ -0,0 +1,28101 @@ +--Generated By protoc-gen-lua Do not Edit +local protobuf = require "protobuf.protobuf" +local config_predefine_pb = require("Protol.config_predefine_pb") +module('Protol.config_pb') + +ARENA_DATA_CFG = protobuf.Descriptor(); +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_DURATION_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_DAY_LIST_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_SPAN_TIME_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_MIN_RATIO_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_RATIO_ADDITION_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_MAX_RATIO_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD = protobuf.FieldDescriptor(); +ARENA_DATA_CFGS = protobuf.Descriptor(); +ARENA_DATA_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ARENA_REWARD_CFG = protobuf.Descriptor(); +ARENA_REWARD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ARENA_REWARD_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +ARENA_REWARD_CFG_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD = protobuf.FieldDescriptor(); +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +ARENA_REWARD_CFGS = protobuf.Descriptor(); +ARENA_REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOWINFO_CFG = protobuf.Descriptor(); +BOSS_SHOWINFO_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOWINFO_CFGS = protobuf.Descriptor(); +BOSS_SHOWINFO_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFG = protobuf.Descriptor(); +BOSS_SHOW_UI_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFG_PAINT_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_UI_CFGS = protobuf.Descriptor(); +BOSS_SHOW_UI_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_CAM_CFG = protobuf.Descriptor(); +BOSS_SHOW_CAM_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_CAM_CFG_POS_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_CAM_CFG_DURATION_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_CAM_CFG_ROLL_FIELD = protobuf.FieldDescriptor(); +BOSS_SHOW_CAM_CFGS = protobuf.Descriptor(); +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG = protobuf.Descriptor(); +BUFF_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_NAME_TIPS_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_DESC_TIPS_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_VISUABLE_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_COUNTDOWN_TYPE_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BUFF_TYPE_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_EXIST_TIME_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_ATK_LV_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_AM_BEATEN_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_AM_BEATEN_EFF_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BEATEN_TIME_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BEAT_BACK_TYPE_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BEAT_DIS_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_AM_DEAD_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_DEAD_BACK_TYPE_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_DEAD_DIS_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_CRIT_EFFECT_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BUFF_WORD_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BUFF_IDLE_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BUFF_RUN_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BUFF_EFFECT_FIELD = protobuf.FieldDescriptor(); +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD = protobuf.FieldDescriptor(); +BUFF_CFGS = protobuf.Descriptor(); +BUFF_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BUFF_EFFECT_CFG = protobuf.Descriptor(); +BUFF_EFFECT_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BUFF_EFFECT_CFG_FORMULA_ID_FIELD = protobuf.FieldDescriptor(); +BUFF_EFFECT_CFGS = protobuf.Descriptor(); +BUFF_EFFECT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG = protobuf.Descriptor(); +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_GENDER_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROF_ICON_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROP_STARS_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_POS_DES_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROF_NAME_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROF_RES_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_SKILL_RES_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_IS_OPEN_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_MP_TYPE_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD = protobuf.FieldDescriptor(); +CHAR_DEFAULT_CFGS = protobuf.Descriptor(); +CHAR_DEFAULT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +COOLDOWN_CFG = protobuf.Descriptor(); +COOLDOWN_CFG_ID_FIELD = protobuf.FieldDescriptor(); +COOLDOWN_CFG_TATOL_TIME_FIELD = protobuf.FieldDescriptor(); +COOLDOWN_CFGS = protobuf.Descriptor(); +COOLDOWN_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG = protobuf.Descriptor(); +MONSTER_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_SHOW_NAME_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_SHOW_ICON_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_WHETHER_SHOWNAME_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_MONSTER_DESC_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_CAMP_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_CAMP_RELATION_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_PROPS_ID_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_SKILLS_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_AVATAR_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_AVATAR_SCALE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ACT_IDLE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ACT_MOVE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ACT_BORN_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_BORN_TIME_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ACT_DEAD_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_RANGE_TYPE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_RANGE_PARA1_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_RANGE_PARA2_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_DROP_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_HEAD_PORTRAIT_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_RADIUS_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_MONSTER_TYPE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_LOCK_SIZE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_HALO_SWITCH_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD = protobuf.FieldDescriptor(); +MONSTER_CFGS = protobuf.Descriptor(); +MONSTER_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BUSINESS_ACTIVITY_CFG = protobuf.Descriptor(); +BUSINESS_ACTIVITY_CFG_GUID_FIELD = protobuf.FieldDescriptor(); +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD = protobuf.FieldDescriptor(); +BUSINESS_ACTIVITY_CFGS = protobuf.Descriptor(); +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG = protobuf.Descriptor(); +ACTIVITY_CFG_GUID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_DACTIVITY_NAME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_NEED_LEVEL_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_TOTAL_TIMES_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_ACTIVATION_POINT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_ACTIVATION_MODE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_START_WEEKS_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_SIGNUP_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_BEGIN_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_END_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_DAILY_TYPE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_WHETHER_BATTLE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_DACTIVITY_ICON_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_PARTAKE_MODE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_TICKETITEM_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_FINDING_PATH_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_OPEN_FUNC_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_TIME_SHOW_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_FORM_SHOW_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_TIPS_SHOW_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_ITEMS_SHOW_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_CUE_SHOW_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_CUE_TEXT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_CORRECT_TEXT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFG_NEGATE_TEXT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_CFGS = protobuf.Descriptor(); +ACTIVITY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_CFG = protobuf.Descriptor(); +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_CFG_RESET_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_CFG_DEPOSIT_LV_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_CFGS = protobuf.Descriptor(); +ACTIVATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFG = protobuf.Descriptor(); +ACTIVATION_REWARD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD = protobuf.FieldDescriptor(); +ACTIVATION_REWARD_CFGS = protobuf.Descriptor(); +ACTIVATION_REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRADE_TOP_TABS_CFG = protobuf.Descriptor(); +TRADE_TOP_TABS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +TRADE_TOP_TABS_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +TRADE_TOP_TABS_CFG_TABS_FIELD = protobuf.FieldDescriptor(); +TRADE_TOP_TABS_CFGS = protobuf.Descriptor(); +TRADE_TOP_TABS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG = protobuf.Descriptor(); +TRADE_SUB_TABS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG_RULES_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD = protobuf.FieldDescriptor(); +TRADE_SUB_TABS_CFGS = protobuf.Descriptor(); +TRADE_SUB_TABS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRADE_FILTER_RULES_CFG = protobuf.Descriptor(); +TRADE_FILTER_RULES_CFG_ID_FIELD = protobuf.FieldDescriptor(); +TRADE_FILTER_RULES_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +TRADE_FILTER_RULES_CFG_FIELDS_FIELD = protobuf.FieldDescriptor(); +TRADE_FILTER_RULES_CFG_VALUES_FIELD = protobuf.FieldDescriptor(); +TRADE_FILTER_RULES_CFGS = protobuf.Descriptor(); +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRADE_SORT_RULES_CFG = protobuf.Descriptor(); +TRADE_SORT_RULES_CFG_ID_FIELD = protobuf.FieldDescriptor(); +TRADE_SORT_RULES_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +TRADE_SORT_RULES_CFG_PROP_FIELD = protobuf.FieldDescriptor(); +TRADE_SORT_RULES_CFG_UP_FIELD = protobuf.FieldDescriptor(); +TRADE_SORT_RULES_CFGS = protobuf.Descriptor(); +TRADE_SORT_RULES_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG = protobuf.Descriptor(); +BASE_PROP_CFG_PROF_TYPE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HP_MAX_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_MP_MAX_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ATTACK_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_DEFENSE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HIT_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_DODGE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_CRITICAL_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_CRITICAL_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_CRITICAL_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_XP_MAX_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HIT_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_DODGE_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_CRITICAL_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_DECELERATTE_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_SLEEP_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HOLD_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_CHARM_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_SILENCE_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_SPEED_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HP_SELF_HEAL_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_MP_SELF_HEAL_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HP_HIT_RETURN_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_MP_HIT_RETURN_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_MAUD_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_MIND_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_CONSTITUTION_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_INTENSITY_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_DEADLY_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_BLOCK_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_HP_KILL_RETURN_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_XP_SELF_HEAL_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD = protobuf.FieldDescriptor(); +BASE_PROP_CFGS = protobuf.Descriptor(); +BASE_PROP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG = protobuf.Descriptor(); +LEVEL_EXP_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_NEED_EXP_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_CAMP_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_COMBAT_POINT_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_EXP_MAX_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD = protobuf.FieldDescriptor(); +LEVEL_EXP_CFGS = protobuf.Descriptor(); +LEVEL_EXP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +LANGUAGE_CFG = protobuf.Descriptor(); +LANGUAGE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +LANGUAGE_CFG_TEXT_FIELD = protobuf.FieldDescriptor(); +LANGUAGE_CFGS = protobuf.Descriptor(); +LANGUAGE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG = protobuf.Descriptor(); +MISSION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_GROUPID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_COLOUR_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_NAME_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_TEXT_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_TARGET1_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_TARGET2_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_TARGET3_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_TYPE_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_TARGETTYPE_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_OCCUPATION_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_REPEAT_WHETHER_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_DIRECTACCE_WHETHER_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_AUTO_WHETHER_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_AUTO_COMMIT_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_FRONTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_TRIGGERLV_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_GIVEUP_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSIONNODE_LIST_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_DAILY_TIMES_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_RESET_TIME_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_DURATION_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPT_SCENEID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPT_NPCID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_CONDUCT_SCENEID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_CONDUCT_NPCID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SUBMIT_SCENEID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SUBMIT_NPCID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_KILL_NPCID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_KILL_NPCNUM_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_KILL_NPCDROP_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_TALK_PLOTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_COLLECT_ITEMID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_COLLECT_ITEMNUM_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_COLLECTION_NPCID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_COLLECTION_NPCNUM_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_USED_ITEMID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_INTO_BATTLEID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_TARGET_GRADE_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_FUNCTION_SCRIPT_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPT_PLOTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_CONDUCT_PLOTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SUBMIT_PLOTID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_TRIGGER_BLUR_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPT_BLUR_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_CONDUCT_BLUR_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_REWARD_ITEMID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_FAILED_ITEMID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_DISPLAY_WHETHER_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPT_DELIVERY_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_MISSION_CONVOYS_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_BIAOCHE_MOUNT_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SCENE_IS_COPY_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ALLOW_SHOW_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPTED_SHOW_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_COMMIT_SHOW_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_OPEN_FUNC_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_BTN_NAME_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_EVENT_TYPE_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_KILL_PLAYER_NUM_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_KILL_PLAYER_MAP_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SUPPORT_PAUSE_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_SUBMISSION_HEAD_FIELD = protobuf.FieldDescriptor(); +MISSION_CFG_ROUTE_MARK_ID_FIELD = protobuf.FieldDescriptor(); +MISSION_CFGS = protobuf.Descriptor(); +MISSION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MISSION_GROUP_CFG = protobuf.Descriptor(); +MISSION_GROUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD = protobuf.FieldDescriptor(); +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD = protobuf.FieldDescriptor(); +MISSION_GROUP_CFGS = protobuf.Descriptor(); +MISSION_GROUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG = protobuf.Descriptor(); +NPC_SPAWN_METHOD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD = protobuf.FieldDescriptor(); +NPC_SPAWN_METHOD_CFGS = protobuf.Descriptor(); +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG = protobuf.Descriptor(); +NPC_FUNCTION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG_BUTTONS_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG_CONTENT_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG_FUNCTIONS_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG_FUNC_PARA_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD = protobuf.FieldDescriptor(); +NPC_FUNCTION_CFGS = protobuf.Descriptor(); +NPC_FUNCTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PLAYSCG_CFG = protobuf.Descriptor(); +PLAYSCG_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PLAYSCG_CFG_STATE_FIELD = protobuf.FieldDescriptor(); +PLAYSCG_CFGS = protobuf.Descriptor(); +PLAYSCG_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG = protobuf.Descriptor(); +PLOT_DATA_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_NEXT_PLOT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_CONTENT_ID_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_CAN_SKIP_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_ID_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_IMAGE_ID_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_STAY_TIME_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_AUDIORES_ID_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_POS_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_SCALE_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_SHOW_BG_ID_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFG_INSERT_NAME_FIELD = protobuf.FieldDescriptor(); +PLOT_DATA_CFGS = protobuf.Descriptor(); +PLOT_DATA_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GLOBAL_PARAM_CFG = protobuf.Descriptor(); +GLOBAL_PARAM_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GLOBAL_PARAM_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +GLOBAL_PARAM_CFG_VALUE_FIELD = protobuf.FieldDescriptor(); +GLOBAL_PARAM_CFGS = protobuf.Descriptor(); +GLOBAL_PARAM_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PROP_TYPE_CFG = protobuf.Descriptor(); +PROP_TYPE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PROP_TYPE_CFG_IS_RATE_FIELD = protobuf.FieldDescriptor(); +PROP_TYPE_CFG_ATTRIBUTE_FIELD = protobuf.FieldDescriptor(); +PROP_TYPE_CFGS = protobuf.Descriptor(); +PROP_TYPE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ATTRIBUTE_SHOW_CFG = protobuf.Descriptor(); +ATTRIBUTE_SHOW_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +ATTRIBUTE_SHOW_CFGS = protobuf.Descriptor(); +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RES_PATH_CFG = protobuf.Descriptor(); +RES_PATH_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RES_PATH_CFG_RES_PATH_FIELD = protobuf.FieldDescriptor(); +RES_PATH_CFG_ONE_BUNDLE_FIELD = protobuf.FieldDescriptor(); +RES_PATH_CFGS = protobuf.Descriptor(); +RES_PATH_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG = protobuf.Descriptor(); +SCENE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_MAPID_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_IS_SAME_SCENE_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_SCENE_ROUTE_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_CAMERA_PATH_RES_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_SCENE_RECAST_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_SCENE_LENGTH_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_SCENE_WIDTH_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_REFRESH_TYPE_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_REFRESH_PARAMETER_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_PARTNER_CARRY_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_SHOW_CG_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_RES_PATH_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_BORN_X_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_BORN_Y_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_BORN_Z_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_BORN_ROTATION_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_GOAL_X_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_GOAL_Y_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_GOAL_Z_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_CAN_TEAM_CALL_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_IS_BATTLE_FIELD_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_CAM_OPTIONS_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_CFG_CAN_USE_WORLDMAP_FIELD = protobuf.FieldDescriptor(); +SCENE_CFGS = protobuf.Descriptor(); +SCENE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG = protobuf.Descriptor(); +SKILL_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_NAME_TIP_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_SKILL_LEVEL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_PLAYER_LEVEL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LEVELUP_COST_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_NEXT_LEVEL_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_SKILL_ICON_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_SKILL_PROF_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS_PARA1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS_PARA2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS_PARA3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS_PARA4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS_PARA5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TIPS_PARA6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_NEXT_SKILL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_AUTO_SKILL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_NEXT_SKILL_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_SKILL_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ENERGY_COST_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ENERGY_VALUE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MAX_ENERGY_VALUE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_RET_ENERGY_VALUE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_RET_HP_EFFECT_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_SHOW_PROGRESS_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_PROGRESS_WORD_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_IS_PASSIVE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TRIGGER_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ACCELERATE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_IS_CONCURRENCY_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_IS_CHANNEL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CHANNEL_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CAN_CANCEL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_BASE_POS_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_TARGET_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_WORK_WHEN_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CD_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CD_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CD_NUM_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CAST_DISTANCE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOCKED_BY_SERVER_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_RANGE_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_RANGE_PARA1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_RANGE_PARA2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOCK_MAX_COUNT_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CAST_SWING_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CAST_STIFF_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_HIT_EFFECT_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_HIT_EFFECT_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TYPE8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_POINT8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ADJUST_DISTANCE8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_DISTANCE8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_MOVE_TIME8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_3_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_4_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_5_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_6_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_7_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_8_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_9_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_9_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_9_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_10_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_10_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_10_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_11_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_11_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_11_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TYPE_12_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_TIME_12_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_LOGIC_ID_12_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ART_PARA1_FIELD = protobuf.FieldDescriptor(); +SKILL_CFG_ART_PARA2_FIELD = protobuf.FieldDescriptor(); +SKILL_CFGS = protobuf.Descriptor(); +SKILL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SKILL_ID_CFG = protobuf.Descriptor(); +SKILL_ID_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD = protobuf.FieldDescriptor(); +SKILL_ID_CFGS = protobuf.Descriptor(); +SKILL_ID_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG = protobuf.Descriptor(); +SKILL_CONDITION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_TARGET_NUM_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_RATE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_ATK_LV_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_AM_BEATEN_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BEAT_DIS_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_AM_DEAD_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_DEAD_DIS_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD = protobuf.FieldDescriptor(); +SKILL_CONDITION_CFGS = protobuf.Descriptor(); +SKILL_CONDITION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TEST_CFG = protobuf.Descriptor(); +TEST_CFG_ID_FIELD = protobuf.FieldDescriptor(); +TEST_CFG_TESTSTRUCT1_FIELD = protobuf.FieldDescriptor(); +TEST_CFG_TES_FIELD = protobuf.FieldDescriptor(); +TEST_CFGS = protobuf.Descriptor(); +TEST_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG = protobuf.Descriptor(); +ITEM_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_NAME_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_FORMULA_ID_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_DESC_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_STACK_MAX_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_NEED_LEVEL_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_NEED_PROF_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_TYPE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_SUB_TYPE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_PART_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_DISPLAY_TYPE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_COLOR_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_ICON_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_ITEM_MARK_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_OWN_MAX_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_TRADE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_TRADE_COOLDOWN_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_SELL_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_SELL_COST_TYPE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_SELL_COST_NUM_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_USE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_WINDOWUSE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_WINDOWUSE_MAX_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_SHOW_USE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_USE_DELAY_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_BULK_USE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_CD_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_CD_TIME_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_IN_STORAGE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COULD_OBTAIN_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_OBTAIN_LIST_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT1_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT2_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT3_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT4_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT5_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT6_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT7_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PROP_EFFECT8_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_PRICE_GOLD_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_LUCK_VALUE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_POP_VALUE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COMBAT_POINT_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_EFFECT_TIMELIMITED_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_DROP_ID_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COST_TYPE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_COST_COUNT_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_HOLE_NUM_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_INLAY_TYPE_FIELD = protobuf.FieldDescriptor(); +ITEM_CFG_INLAY_LEVEL_FIELD = protobuf.FieldDescriptor(); +ITEM_CFGS = protobuf.Descriptor(); +ITEM_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFG = protobuf.Descriptor(); +FIGHTCRIME_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFG_VALUE_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFG_COLOR_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFG_IMGBG_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFG_IMGICON_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFG_IMGFRAME_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFG_IMGNUMBER_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_CFGS = protobuf.Descriptor(); +FIGHTCRIME_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FIGHTCIRME_REWARD_CFG = protobuf.Descriptor(); +FIGHTCIRME_REWARD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD = protobuf.FieldDescriptor(); +FIGHTCIRME_REWARD_CFGS = protobuf.Descriptor(); +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_MONSTER_CFG = protobuf.Descriptor(); +FIGHTCRIME_MONSTER_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_MONSTER_CFG_TIME_FIELD = protobuf.FieldDescriptor(); +FIGHTCRIME_MONSTER_CFGS = protobuf.Descriptor(); +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG = protobuf.Descriptor(); +EQUIP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_UPGRADE_ID_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_UPGRADE_MATERIAL_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_REFINE_MATERIAL_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_REFINE_COUNT_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_REFINE_COST_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFG_ACTIVE_COST_FIELD = protobuf.FieldDescriptor(); +EQUIP_CFGS = protobuf.Descriptor(); +EQUIP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_CFG = protobuf.Descriptor(); +EQUIP_SET_CFG_ID_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_CFG_EQUIP_IDS_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_CFG_SET_NAME_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_CFGS = protobuf.Descriptor(); +EQUIP_SET_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_PROP_CFG = protobuf.Descriptor(); +EQUIP_SET_PROP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD = protobuf.FieldDescriptor(); +EQUIP_SET_PROP_CFGS = protobuf.Descriptor(); +EQUIP_SET_PROP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG = protobuf.Descriptor(); +STRENGTHEN_CFG_ID_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_SEG_LIMIT_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_RATE_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_REQ_LEVEL_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_MAT_ID_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_MAT_NUM_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_PROP_EFFECT1_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_PROP_EFFECT2_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_PROP_EFFECT3_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_PROP_EFFECT4_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFG_COMBAT_POINT_FIELD = protobuf.FieldDescriptor(); +STRENGTHEN_CFGS = protobuf.Descriptor(); +STRENGTHEN_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_LIST_CFG = protobuf.Descriptor(); +RUNE_MAKE_LIST_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_LIST_CFG_WEAPON_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_LIST_CFG_HEAD_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_LIST_CFG_SHOES_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_LIST_CFGS = protobuf.Descriptor(); +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG = protobuf.Descriptor(); +RUNE_MAKE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_COST_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_PROP_COUNT_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_SPELL_RATE_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_MAKE_CFGS = protobuf.Descriptor(); +RUNE_MAKE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG = protobuf.Descriptor(); +RUNE_PROP_GROUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_GROUP_CFGS = protobuf.Descriptor(); +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +EQUIP_LIST_CFG = protobuf.Descriptor(); +EQUIP_LIST_CFG_ID_FIELD = protobuf.FieldDescriptor(); +EQUIP_LIST_CFG_EQUIP_LIST_FIELD = protobuf.FieldDescriptor(); +EQUIP_LIST_CFGS = protobuf.Descriptor(); +EQUIP_LIST_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG = protobuf.Descriptor(); +RUNE_SKILL_GROUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_GROUP_CFGS = protobuf.Descriptor(); +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG = protobuf.Descriptor(); +RUNE_DECOMPOSE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_SILVER_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_GOLD_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD = protobuf.FieldDescriptor(); +RUNE_DECOMPOSE_CFGS = protobuf.Descriptor(); +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +JEWELRY_MAKE_CFG = protobuf.Descriptor(); +JEWELRY_MAKE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +JEWELRY_MAKE_CFG_POP_COST_FIELD = protobuf.FieldDescriptor(); +JEWELRY_MAKE_CFG_MONEY_COST_FIELD = protobuf.FieldDescriptor(); +JEWELRY_MAKE_CFGS = protobuf.Descriptor(); +JEWELRY_MAKE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG = protobuf.Descriptor(); +WORLD_MAP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_SCENE_NAME_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_OPEN_LV_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_OPENLV_SHOW_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_LANGUAGE_ID_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFG_SCENE_ICON_FIELD = protobuf.FieldDescriptor(); +WORLD_MAP_CFGS = protobuf.Descriptor(); +WORLD_MAP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_CURRENCY_CFG = protobuf.Descriptor(); +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD = protobuf.FieldDescriptor(); +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_CURRENCY_CFGS = protobuf.Descriptor(); +PARTNER_CURRENCY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG = protobuf.Descriptor(); +PARTNER_ACTIVATION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PLOTID_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_GITS_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD = protobuf.FieldDescriptor(); +PARTNER_ACTIVATION_CFGS = protobuf.Descriptor(); +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_MOOD_CFG = protobuf.Descriptor(); +PARTNER_MOOD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_MOOD_CFG_GIFTID_FIELD = protobuf.FieldDescriptor(); +PARTNER_MOOD_CFG_MOODTEXT_FIELD = protobuf.FieldDescriptor(); +PARTNER_MOOD_CFG_MULTIPLE_FIELD = protobuf.FieldDescriptor(); +PARTNER_MOOD_CFGS = protobuf.Descriptor(); +PARTNER_MOOD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRESSION_CFG = protobuf.Descriptor(); +PARTNER_IMPRESSION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRESSION_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRESSION_CFGS = protobuf.Descriptor(); +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRE_LEVELUP_CFG = protobuf.Descriptor(); +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD = protobuf.FieldDescriptor(); +PARTNER_IMPRE_LEVELUP_CFGS = protobuf.Descriptor(); +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_MULTIPLE_CFG = protobuf.Descriptor(); +PARTNER_MULTIPLE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD = protobuf.FieldDescriptor(); +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD = protobuf.FieldDescriptor(); +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD = protobuf.FieldDescriptor(); +PARTNER_MULTIPLE_CFGS = protobuf.Descriptor(); +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG = protobuf.Descriptor(); +PARTNER_STAR_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STAR_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STUDY_GROUP_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STUDY_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STUDY_ITEM_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STUDY_COST_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STAR_PROP1_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STAR_PROP2_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_STAR_PROP3_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_UPSTAR_COST_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFG_REBUILD_COST_FIELD = protobuf.FieldDescriptor(); +PARTNER_STAR_CFGS = protobuf.Descriptor(); +PARTNER_STAR_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_STUDY_CFG = protobuf.Descriptor(); +PARTNER_STUDY_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD = protobuf.FieldDescriptor(); +PARTNER_STUDY_CFG_STUDY_PROP_FIELD = protobuf.FieldDescriptor(); +PARTNER_STUDY_CFGS = protobuf.Descriptor(); +PARTNER_STUDY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_ITEM_COMPOUND_CFG = protobuf.Descriptor(); +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_ITEM_COMPOUND_CFGS = protobuf.Descriptor(); +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTENR_EXPERIENCE_CFG = protobuf.Descriptor(); +PARTENR_EXPERIENCE_CFG_KEY_FIELD = protobuf.FieldDescriptor(); +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD = protobuf.FieldDescriptor(); +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD = protobuf.FieldDescriptor(); +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD = protobuf.FieldDescriptor(); +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTENR_EXPERIENCE_CFGS = protobuf.Descriptor(); +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG = protobuf.Descriptor(); +PARTNER_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_SHOW_NAME_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_LOCK_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_HEAD_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_DRAW_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_POKEDEX_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_SKILLS_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_AVATAR_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_ACT_IDLE_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_ACT_MOVE_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_ACT_BORN_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_ACT_DEAD_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_RESURRECTION_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_QUALITY_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_GROWTH_CAP_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_END_SKILLS_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_RESOURCES_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_ITEMS_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_RANGE_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_FETTERS_NUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_PARTNER_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_IS_RARE_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD = protobuf.FieldDescriptor(); +PARTNER_BASE_CFGS = protobuf.Descriptor(); +PARTNER_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_ATTRIBUTE_CFG = protobuf.Descriptor(); +PARTNER_ATTRIBUTE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD = protobuf.FieldDescriptor(); +PARTNER_ATTRIBUTE_CFGS = protobuf.Descriptor(); +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG = protobuf.Descriptor(); +PARTNER_PASSIVESKILL_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD = protobuf.FieldDescriptor(); +PARTNER_PASSIVESKILL_CFGS = protobuf.Descriptor(); +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFG = protobuf.Descriptor(); +PARTNER_CHIP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFG_CHIP_NAME_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD = protobuf.FieldDescriptor(); +PARTNER_CHIP_CFGS = protobuf.Descriptor(); +PARTNER_CHIP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FETTER_CFG = protobuf.Descriptor(); +FETTER_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FETTER_CFG_TID_FIELD = protobuf.FieldDescriptor(); +FETTER_CFG_FETTER_NAME_FIELD = protobuf.FieldDescriptor(); +FETTER_CFG_FETTER_DESC_FIELD = protobuf.FieldDescriptor(); +FETTER_CFG_FETTER_OBJECT_FIELD = protobuf.FieldDescriptor(); +FETTER_CFGS = protobuf.Descriptor(); +FETTER_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_EQUIPHECHENG_CFG = protobuf.Descriptor(); +PARTNER_EQUIPHECHENG_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD = protobuf.FieldDescriptor(); +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD = protobuf.FieldDescriptor(); +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD = protobuf.FieldDescriptor(); +PARTNER_EQUIPHECHENG_CFGS = protobuf.Descriptor(); +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +PARTNER_FORMATION_CFG = protobuf.Descriptor(); +PARTNER_FORMATION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD = protobuf.FieldDescriptor(); +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD = protobuf.FieldDescriptor(); +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD = protobuf.FieldDescriptor(); +PARTNER_FORMATION_CFGS = protobuf.Descriptor(); +PARTNER_FORMATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG = protobuf.Descriptor(); +GUILD_MISSION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_CFGS = protobuf.Descriptor(); +GUILD_MISSION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUILD_BUILDING_MISSION_CFG = protobuf.Descriptor(); +GUILD_BUILDING_MISSION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD = protobuf.FieldDescriptor(); +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD = protobuf.FieldDescriptor(); +GUILD_BUILDING_MISSION_CFGS = protobuf.Descriptor(); +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFG = protobuf.Descriptor(); +BUILDING_MISSION_POOL_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD = protobuf.FieldDescriptor(); +BUILDING_MISSION_POOL_CFGS = protobuf.Descriptor(); +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG = protobuf.Descriptor(); +GUILD_MISSION_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD = protobuf.FieldDescriptor(); +GUILD_MISSION_BASE_CFGS = protobuf.Descriptor(); +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG = protobuf.Descriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CONT_CFGS = protobuf.Descriptor(); +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CFG = protobuf.Descriptor(); +GUILD_PRACTICE_GROUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD = protobuf.FieldDescriptor(); +GUILD_PRACTICE_GROUP_CFGS = protobuf.Descriptor(); +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG = protobuf.Descriptor(); +GUILD_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD = protobuf.FieldDescriptor(); +GUILD_BASE_CFGS = protobuf.Descriptor(); +GUILD_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUILD_FLAG_CFG = protobuf.Descriptor(); +GUILD_FLAG_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD = protobuf.FieldDescriptor(); +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD = protobuf.FieldDescriptor(); +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD = protobuf.FieldDescriptor(); +GUILD_FLAG_CFGS = protobuf.Descriptor(); +GUILD_FLAG_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG = protobuf.Descriptor(); +GUIL_POST_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_REMOVE_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_MAIL_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_EXPEL_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_INVITATION_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_APPROVAL_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_TEAM_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_CALL_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_HOSTILE_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFG_GUILD_NOTICE_FIELD = protobuf.FieldDescriptor(); +GUIL_POST_CFGS = protobuf.Descriptor(); +GUIL_POST_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG = protobuf.Descriptor(); +INNER_ALCHEMY_CFG_ID_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_OCCUPATION_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_CFGS = protobuf.Descriptor(); +INNER_ALCHEMY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_GROUP_CFG = protobuf.Descriptor(); +INNER_ALCHEMY_GROUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD = protobuf.FieldDescriptor(); +INNER_ALCHEMY_GROUP_CFGS = protobuf.Descriptor(); +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG = protobuf.Descriptor(); +MEDAL_GROUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_STARLEVEL_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_GROUP_NAME_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_MEMBER_ID_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD = protobuf.FieldDescriptor(); +MEDAL_GROUP_CFGS = protobuf.Descriptor(); +MEDAL_GROUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MEDAL_BASE_CFG = protobuf.Descriptor(); +MEDAL_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MEDAL_BASE_CFG_MEDAL_NAME_FIELD = protobuf.FieldDescriptor(); +MEDAL_BASE_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +MEDAL_BASE_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD = protobuf.FieldDescriptor(); +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD = protobuf.FieldDescriptor(); +MEDAL_BASE_CFGS = protobuf.Descriptor(); +MEDAL_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFG = protobuf.Descriptor(); +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD = protobuf.FieldDescriptor(); +MEDAL_COMPOSITE_ADDITION_CFGS = protobuf.Descriptor(); +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MEDAL_OPEN_LEVEL_CFG = protobuf.Descriptor(); +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +MEDAL_OPEN_LEVEL_CFGS = protobuf.Descriptor(); +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MEDAL_STAR_OPEN_LEVEL_CFG = protobuf.Descriptor(); +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD = protobuf.FieldDescriptor(); +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD = protobuf.FieldDescriptor(); +MEDAL_STAR_OPEN_LEVEL_CFGS = protobuf.Descriptor(); +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FORMULA_CFG = protobuf.Descriptor(); +FORMULA_CFG_FORMULA_ID_FIELD = protobuf.FieldDescriptor(); +FORMULA_CFG_COST_IDS_FIELD = protobuf.FieldDescriptor(); +FORMULA_CFG_COST_COUNTS_FIELD = protobuf.FieldDescriptor(); +FORMULA_CFG_ITEM_IDS_FIELD = protobuf.FieldDescriptor(); +FORMULA_CFG_ITEM_COUNTS_FIELD = protobuf.FieldDescriptor(); +FORMULA_CFGS = protobuf.Descriptor(); +FORMULA_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MALL_ITEM_CFG = protobuf.Descriptor(); +MALL_ITEM_CFG_GUID_FIELD = protobuf.FieldDescriptor(); +MALL_ITEM_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +MALL_ITEM_CFG_REAL_GUID_FIELD = protobuf.FieldDescriptor(); +MALL_ITEM_CFG_COST_TYPE_FIELD = protobuf.FieldDescriptor(); +MALL_ITEM_CFG_COST_ORIGINAL_FIELD = protobuf.FieldDescriptor(); +MALL_ITEM_CFG_COST_CURRENT_FIELD = protobuf.FieldDescriptor(); +MALL_ITEM_CFGS = protobuf.Descriptor(); +MALL_ITEM_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG = protobuf.Descriptor(); +SHOP_TYPE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_SHOP_NAME_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_OPEN_LVL_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_SHOP_TYPE_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_ISTAB_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_TAB_NAME1_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_TAB_NAME2_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_TAB_NAME3_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD = protobuf.FieldDescriptor(); +SHOP_TYPE_CFGS = protobuf.Descriptor(); +SHOP_TYPE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG = protobuf.Descriptor(); +SCENE_EVENT_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_STEP_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_EVENT_TYPE_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_CONDIDITON1_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_CONDIDITON2_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_CONDIDITON3_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_CONDIDITON4_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_RESULT_TYPE_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_RESULT1_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_RESULT2_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_RESULT3_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFG_RESULT4_FIELD = protobuf.FieldDescriptor(); +SCENE_EVENT_CFGS = protobuf.Descriptor(); +SCENE_EVENT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG = protobuf.Descriptor(); +SCENE_PORTAL_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_RADIUS_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_ORIENTATION_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_ENABLED_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFG_RESID_FIELD = protobuf.FieldDescriptor(); +SCENE_PORTAL_CFGS = protobuf.Descriptor(); +SCENE_PORTAL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG = protobuf.Descriptor(); +SCENE_FUNCTION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_RANK_IDS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD = protobuf.FieldDescriptor(); +SCENE_FUNCTION_CFGS = protobuf.Descriptor(); +SCENE_FUNCTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG = protobuf.Descriptor(); +SCENE_AREA_CFG_AREA_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_AREA_TYPE_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_RADIUS_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_WIDTH_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_HEIGHT_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_ACTION_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +SCENE_AREA_CFGS = protobuf.Descriptor(); +SCENE_AREA_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFG = protobuf.Descriptor(); +CLIENT_TRIGGER_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFG_EVENTS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFG_ACTIONS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFG_OPENED_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CFGS = protobuf.Descriptor(); +CLIENT_TRIGGER_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG = protobuf.Descriptor(); +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_EVENT_CFGS = protobuf.Descriptor(); +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG = protobuf.Descriptor(); +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_CONDITION_CFGS = protobuf.Descriptor(); +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG = protobuf.Descriptor(); +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_ACTION_CFGS = protobuf.Descriptor(); +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG = protobuf.Descriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +CLIENT_TRIGGER_VARIABLE_CFGS = protobuf.Descriptor(); +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG = protobuf.Descriptor(); +SCENE_ORGAN_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_MODULE_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_ORIENTATION_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_SKILL_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_ENABLED_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFG_SHOW_NAME_FIELD = protobuf.FieldDescriptor(); +SCENE_ORGAN_CFGS = protobuf.Descriptor(); +SCENE_ORGAN_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG = protobuf.Descriptor(); +MAP_SIGNS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_SUB_TYPE_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_AUTO_ID_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_IS_AUTO_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFG_IS_SHOW_FIELD = protobuf.FieldDescriptor(); +MAP_SIGNS_CFGS = protobuf.Descriptor(); +MAP_SIGNS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_TRIGGER_CFG = protobuf.Descriptor(); +SCENE_TRIGGER_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +SCENE_TRIGGER_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_TRIGGER_CFG_EVENTS_FIELD = protobuf.FieldDescriptor(); +SCENE_TRIGGER_CFG_CONDITIONS_FIELD = protobuf.FieldDescriptor(); +SCENE_TRIGGER_CFG_ACTIONS_FIELD = protobuf.FieldDescriptor(); +SCENE_TRIGGER_CFG_OPENED_FIELD = protobuf.FieldDescriptor(); +SCENE_TRIGGER_CFGS = protobuf.Descriptor(); +SCENE_TRIGGER_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG = protobuf.Descriptor(); +TRIGGER_EVENT_CFG_EVENT_ID_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM6_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM7_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM8_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM9_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFG_PARAM10_FIELD = protobuf.FieldDescriptor(); +TRIGGER_EVENT_CFGS = protobuf.Descriptor(); +TRIGGER_EVENT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG = protobuf.Descriptor(); +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM6_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM7_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM8_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM9_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFG_PARAM10_FIELD = protobuf.FieldDescriptor(); +TRIGGER_CONDITION_CFGS = protobuf.Descriptor(); +TRIGGER_CONDITION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG = protobuf.Descriptor(); +TRIGGER_ACTION_CFG_ACTION_ID_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM6_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM7_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM8_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM9_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFG_PARAM10_FIELD = protobuf.FieldDescriptor(); +TRIGGER_ACTION_CFGS = protobuf.Descriptor(); +TRIGGER_ACTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG = protobuf.Descriptor(); +TRIGGER_VARIABLE_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +TRIGGER_VARIABLE_CFGS = protobuf.Descriptor(); +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG = protobuf.Descriptor(); +SCENE_DOOR_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_WIDTH_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_ORIENTATION_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_OPENED_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFG_RESID_FIELD = protobuf.FieldDescriptor(); +SCENE_DOOR_CFGS = protobuf.Descriptor(); +SCENE_DOOR_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +REVIVE_SHOW_CFG = protobuf.Descriptor(); +REVIVE_SHOW_CFG_ID_FIELD = protobuf.FieldDescriptor(); +REVIVE_SHOW_CFG_INDEX_FIELD = protobuf.FieldDescriptor(); +REVIVE_SHOW_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +REVIVE_SHOW_CFGS = protobuf.Descriptor(); +REVIVE_SHOW_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG = protobuf.Descriptor(); +FASHION_APPRECIATION_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD = protobuf.FieldDescriptor(); +FASHION_APPRECIATION_CFGS = protobuf.Descriptor(); +FASHION_APPRECIATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG = protobuf.Descriptor(); +FASHION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_ID_GROUP_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_FASHION_COST_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_FASHION_TYPE_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_VOCATION_LIMIT_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_FASHION_NAME_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_FASHION_ICON_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_FASHION_PARTS_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_FASHION_COLOUR_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_FASHION_TIPS_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_ATTRIBUTE_TYPE_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_ATTRIBUTE_MODE_FIELD = protobuf.FieldDescriptor(); +FASHION_CFG_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +FASHION_CFGS = protobuf.Descriptor(); +FASHION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG = protobuf.Descriptor(); +FASHION_COST_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_FASHION_TIME_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_FASHION_POINT_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFG_UNLOCK_POWER_FIELD = protobuf.FieldDescriptor(); +FASHION_COST_CFGS = protobuf.Descriptor(); +FASHION_COST_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG = protobuf.Descriptor(); +MOUNTEQUIP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_ITEM_NAME_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_ITEM_DESC_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_ITEM_ICON_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_COULD_TRADE_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD = protobuf.FieldDescriptor(); +MOUNTEQUIP_CFGS = protobuf.Descriptor(); +MOUNTEQUIP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +INDEPENDENT_RANDOM_REWARD_CFG = protobuf.Descriptor(); +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD = protobuf.FieldDescriptor(); +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +INDEPENDENT_RANDOM_REWARD_CFGS = protobuf.Descriptor(); +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFG = protobuf.Descriptor(); +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD = protobuf.FieldDescriptor(); +WEIGHT_RANDOM_REWARD_CFGS = protobuf.Descriptor(); +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG = protobuf.Descriptor(); +REWARD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_SOUL_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_SOUL_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_PARTNER_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD = protobuf.FieldDescriptor(); +REWARD_CFGS = protobuf.Descriptor(); +REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FUNC_TYPE_WEIGHT_CFG = protobuf.Descriptor(); +FUNC_TYPE_WEIGHT_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD = protobuf.FieldDescriptor(); +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD = protobuf.FieldDescriptor(); +FUNC_TYPE_WEIGHT_CFGS = protobuf.Descriptor(); +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ZONE_LOCATION_CFG = protobuf.Descriptor(); +ZONE_LOCATION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD = protobuf.FieldDescriptor(); +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD = protobuf.FieldDescriptor(); +ZONE_LOCATION_CFG_CITY_ID_FIELD = protobuf.FieldDescriptor(); +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD = protobuf.FieldDescriptor(); +ZONE_LOCATION_CFGS = protobuf.Descriptor(); +ZONE_LOCATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GIFT_GIVING_CFG = protobuf.Descriptor(); +GIFT_GIVING_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GIFT_GIVING_CFG_GIFT_TYPE_FIELD = protobuf.FieldDescriptor(); +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD = protobuf.FieldDescriptor(); +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD = protobuf.FieldDescriptor(); +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD = protobuf.FieldDescriptor(); +GIFT_GIVING_CFGS = protobuf.Descriptor(); +GIFT_GIVING_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FRIEND_TITLE_CFG = protobuf.Descriptor(); +FRIEND_TITLE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD = protobuf.FieldDescriptor(); +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD = protobuf.FieldDescriptor(); +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD = protobuf.FieldDescriptor(); +FRIEND_TITLE_CFGS = protobuf.Descriptor(); +FRIEND_TITLE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +FATE_VALUE_REWARD_CFG = protobuf.Descriptor(); +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD = protobuf.FieldDescriptor(); +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD = protobuf.FieldDescriptor(); +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD = protobuf.FieldDescriptor(); +FATE_VALUE_REWARD_CFGS = protobuf.Descriptor(); +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFG = protobuf.Descriptor(); +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFG_RANGE_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_INLAY_CFGS = protobuf.Descriptor(); +GEMSTONE_INLAY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_LIST_CFG = protobuf.Descriptor(); +GEMSTONE_LIST_CFG_GEM_ID_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_LIST_CFG_GEM_PICID_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD = protobuf.FieldDescriptor(); +GEMSTONE_LIST_CFGS = protobuf.Descriptor(); +GEMSTONE_LIST_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG = protobuf.Descriptor(); +CHEST_DROP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_COUNT_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_RES_ID_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_RADIUS_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_SPACE_ROWS_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_SPACE_COLS_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_LIVE_TIME_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFG_REFRESH_TIME_FIELD = protobuf.FieldDescriptor(); +CHEST_DROP_CFGS = protobuf.Descriptor(); +CHEST_DROP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG = protobuf.Descriptor(); +MINIMAP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_WIDTH_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_HEIGHT_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_TEX_WIDTH_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_TEX_HEIGHT_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_RES_ID_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_ROTATION_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFG_MINIMAP_RADIUS_FIELD = protobuf.FieldDescriptor(); +MINIMAP_CFGS = protobuf.Descriptor(); +MINIMAP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TREASURE_ROOMS_CFG = protobuf.Descriptor(); +TREASURE_ROOMS_CFG_GROUPID_FIELD = protobuf.FieldDescriptor(); +TREASURE_ROOMS_CFG_AREA_ID_FIELD = protobuf.FieldDescriptor(); +TREASURE_ROOMS_CFG_RED_NUM_FIELD = protobuf.FieldDescriptor(); +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD = protobuf.FieldDescriptor(); +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD = protobuf.FieldDescriptor(); +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD = protobuf.FieldDescriptor(); +TREASURE_ROOMS_CFGS = protobuf.Descriptor(); +TREASURE_ROOMS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CRUSADE_BASE_CFG = protobuf.Descriptor(); +CRUSADE_BASE_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +CRUSADE_BASE_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +CRUSADE_BASE_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +CRUSADE_BASE_CFG_NPC_ID_FIELD = protobuf.FieldDescriptor(); +CRUSADE_BASE_CFG_GROUP_ID_FIELD = protobuf.FieldDescriptor(); +CRUSADE_BASE_CFGS = protobuf.Descriptor(); +CRUSADE_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG = protobuf.Descriptor(); +CRUSADE_DUNGON_CFG_NPCID_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD = protobuf.FieldDescriptor(); +CRUSADE_DUNGON_CFGS = protobuf.Descriptor(); +CRUSADE_DUNGON_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +STRENGTH_CONVERT_CFG = protobuf.Descriptor(); +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD = protobuf.FieldDescriptor(); +STRENGTH_CONVERT_CFG_FACTOR_FIELD = protobuf.FieldDescriptor(); +STRENGTH_CONVERT_CFGS = protobuf.Descriptor(); +STRENGTH_CONVERT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_NPC_CFG = protobuf.Descriptor(); +SKILL_SUMMONED_NPC_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_NPC_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_NPC_CFGS = protobuf.Descriptor(); +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG = protobuf.Descriptor(); +SKILL_SUMMONED_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_RING_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_SPEED_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EFF_START_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD = protobuf.FieldDescriptor(); +SKILL_SUMMONED_CFGS = protobuf.Descriptor(); +SKILL_SUMMONED_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG = protobuf.Descriptor(); +CLUE_CFG_CLUE_ID_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_POS_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_BOXES_POS_X_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_BOXES_POS_Z_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_COST_ID_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_CORE_COORDINATE_FIELD = protobuf.FieldDescriptor(); +CLUE_CFG_MAP_RANGE_FIELD = protobuf.FieldDescriptor(); +CLUE_CFGS = protobuf.Descriptor(); +CLUE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BOXS_CFG = protobuf.Descriptor(); +BOXS_CFG_BOXES_ID_FIELD = protobuf.FieldDescriptor(); +BOXS_CFG_BOX_ID_FIELD = protobuf.FieldDescriptor(); +BOXS_CFG_BOX_RATE_FIELD = protobuf.FieldDescriptor(); +BOXS_CFGS = protobuf.Descriptor(); +BOXS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFG = protobuf.Descriptor(); +BOX_COLLECT_CFG_BOX_ID_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFG_BOX_RES_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFG_ITEM_TYPE_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFG_ITEM_RATE_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFG_SHOW_TYPE_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFG_MODEL_SCALE_FIELD = protobuf.FieldDescriptor(); +BOX_COLLECT_CFGS = protobuf.Descriptor(); +BOX_COLLECT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG = protobuf.Descriptor(); +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFG_BROAD_FIELD = protobuf.FieldDescriptor(); +DIG_TREASURE_EVENT_CFGS = protobuf.Descriptor(); +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +DROP_POINT_CFG = protobuf.Descriptor(); +DROP_POINT_CFG_ID_FIELD = protobuf.FieldDescriptor(); +DROP_POINT_CFG_MODULE_FIELD = protobuf.FieldDescriptor(); +DROP_POINT_CFG_MINDISTANCE_FIELD = protobuf.FieldDescriptor(); +DROP_POINT_CFG_PICKTYPE_FIELD = protobuf.FieldDescriptor(); +DROP_POINT_CFG_BSHOW_FIELD = protobuf.FieldDescriptor(); +DROP_POINT_CFG_TEXTID_FIELD = protobuf.FieldDescriptor(); +DROP_POINT_CFGS = protobuf.Descriptor(); +DROP_POINT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG = protobuf.Descriptor(); +RANK_FUNCTION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFG_HOST_FIELD_FIELD = protobuf.FieldDescriptor(); +RANK_FUNCTION_CFGS = protobuf.Descriptor(); +RANK_FUNCTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFG = protobuf.Descriptor(); +RANK_FIELD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFG_FIELD_NAME_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFG_CHILD_NAMES_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFG_CHILD_TYPES_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFG_CHILD_VALUES_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFG_HOST_FIELD_FIELD = protobuf.FieldDescriptor(); +RANK_FIELD_CFGS = protobuf.Descriptor(); +RANK_FIELD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +EDN_CFG = protobuf.Descriptor(); +EDN_CFG_LVL_FIELD = protobuf.FieldDescriptor(); +EDN_CFG_LVLUP_EXP_FIELD = protobuf.FieldDescriptor(); +EDN_CFGS = protobuf.Descriptor(); +EDN_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +EDN_SCENE_CFG = protobuf.Descriptor(); +EDN_SCENE_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +EDN_SCENE_CFG_OPEN_LVL_FIELD = protobuf.FieldDescriptor(); +EDN_SCENE_CFG_MAPNAME_ID_FIELD = protobuf.FieldDescriptor(); +EDN_SCENE_CFG_MAP_NAME_FIELD = protobuf.FieldDescriptor(); +EDN_SCENE_CFG_MAP_IMGID_FIELD = protobuf.FieldDescriptor(); +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD = protobuf.FieldDescriptor(); +EDN_SCENE_CFGS = protobuf.Descriptor(); +EDN_SCENE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +EDN_RELIC_CFG = protobuf.Descriptor(); +EDN_RELIC_CFG_ID_FIELD = protobuf.FieldDescriptor(); +EDN_RELIC_CFG_NAME_ID_FIELD = protobuf.FieldDescriptor(); +EDN_RELIC_CFG_NAME_STRING_FIELD = protobuf.FieldDescriptor(); +EDN_RELIC_CFG_IMAGE_ID_FIELD = protobuf.FieldDescriptor(); +EDN_RELIC_CFG_REWARDS_FIELD = protobuf.FieldDescriptor(); +EDN_RELIC_CFG_TIPS_ID_FIELD = protobuf.FieldDescriptor(); +EDN_RELIC_CFGS = protobuf.Descriptor(); +EDN_RELIC_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG = protobuf.Descriptor(); +TOWER_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_RAID_ITEMID_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_MONEYTYPE_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_MONEYCOUNT_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_ITEMID_CROSS_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_EXP_CROSS_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_BIRTH_X_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_BIRTH_Y_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFG_BIRTH_Z_FIELD = protobuf.FieldDescriptor(); +TOWER_BASE_CFGS = protobuf.Descriptor(); +TOWER_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG = protobuf.Descriptor(); +STARSPIRIT_DUNGOEN_CFG_ID_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +STARSPIRIT_DUNGOEN_CFGS = protobuf.Descriptor(); +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_QUALITY_CFG = protobuf.Descriptor(); +RUNE_QUALITY_CFG_RUNE_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD = protobuf.FieldDescriptor(); +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD = protobuf.FieldDescriptor(); +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD = protobuf.FieldDescriptor(); +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD = protobuf.FieldDescriptor(); +RUNE_QUALITY_CFGS = protobuf.Descriptor(); +RUNE_QUALITY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFG = protobuf.Descriptor(); +RUNE_PROP_REFINE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD = protobuf.FieldDescriptor(); +RUNE_PROP_REFINE_CFGS = protobuf.Descriptor(); +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_REFINE_CFG = protobuf.Descriptor(); +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD = protobuf.FieldDescriptor(); +RUNE_SKILL_REFINE_CFGS = protobuf.Descriptor(); +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MONTHCARD_BASE_CFG = protobuf.Descriptor(); +MONTHCARD_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD = protobuf.FieldDescriptor(); +MONTHCARD_BASE_CFG_PRICE_FIELD = protobuf.FieldDescriptor(); +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD = protobuf.FieldDescriptor(); +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD = protobuf.FieldDescriptor(); +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD = protobuf.FieldDescriptor(); +MONTHCARD_BASE_CFGS = protobuf.Descriptor(); +MONTHCARD_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG = protobuf.Descriptor(); +SIGNUP_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD = protobuf.FieldDescriptor(); +SIGNUP_BASE_CFGS = protobuf.Descriptor(); +SIGNUP_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SIGNUP_ACCUMULATION_CFG = protobuf.Descriptor(); +SIGNUP_ACCUMULATION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD = protobuf.FieldDescriptor(); +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD = protobuf.FieldDescriptor(); +SIGNUP_ACCUMULATION_CFGS = protobuf.Descriptor(); +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFG = protobuf.Descriptor(); +SERVICE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFG_SERVICE_ID_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFG_PARAM1_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFG_PARAM2_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFG_PARAM3_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFG_PARAM4_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFG_PARAM5_FIELD = protobuf.FieldDescriptor(); +SERVICE_CFGS = protobuf.Descriptor(); +SERVICE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MATERIAL_ITEM_CFG = protobuf.Descriptor(); +MATERIAL_ITEM_CFG_NUM_FIELD = protobuf.FieldDescriptor(); +MATERIAL_ITEM_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MATERIAL_ITEM_CFG_WEIGHT_FIELD = protobuf.FieldDescriptor(); +MATERIAL_ITEM_CFG_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +MATERIAL_ITEM_CFGS = protobuf.Descriptor(); +MATERIAL_ITEM_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +STATE_CFG = protobuf.Descriptor(); +STATE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +STATE_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +STATE_CFG_ACTIONS_FIELD = protobuf.FieldDescriptor(); +STATE_CFGS = protobuf.Descriptor(); +STATE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG = protobuf.Descriptor(); +CAM_OPTIONS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_MIN_PITCH_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_MAX_PITCH_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_DEF_YAW_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_DEF_PITCH_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_OFFSET_X_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_OFFSET_Y_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_OFFSET_Z_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFG_FOV_FIELD = protobuf.FieldDescriptor(); +CAM_OPTIONS_CFGS = protobuf.Descriptor(); +CAM_OPTIONS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG = protobuf.Descriptor(); +LEVEL_PACKAGE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD = protobuf.FieldDescriptor(); +LEVEL_PACKAGE_CFGS = protobuf.Descriptor(); +LEVEL_PACKAGE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG = protobuf.Descriptor(); +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_INFO_CFGS = protobuf.Descriptor(); +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_ROOMS_CFG = protobuf.Descriptor(); +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD = protobuf.FieldDescriptor(); +BATTLE_CRYSTAL_ROOMS_CFGS = protobuf.Descriptor(); +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BATTLE_COLLECT_CRYSTAL_CFG = protobuf.Descriptor(); +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD = protobuf.FieldDescriptor(); +BATTLE_COLLECT_CRYSTAL_CFGS = protobuf.Descriptor(); +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ELITE_LEVEL_CFG = protobuf.Descriptor(); +ELITE_LEVEL_CFG_LEVEL_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD = protobuf.FieldDescriptor(); +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD = protobuf.FieldDescriptor(); +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD = protobuf.FieldDescriptor(); +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD = protobuf.FieldDescriptor(); +ELITE_LEVEL_CFGS = protobuf.Descriptor(); +ELITE_LEVEL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG = protobuf.Descriptor(); +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_NODE_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_TIME_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_GRADE_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD = protobuf.FieldDescriptor(); +ELITE_COMMON_INFO_CFGS = protobuf.Descriptor(); +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG = protobuf.Descriptor(); +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_GAME_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_NODE_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_TIME_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_GRADE_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD = protobuf.FieldDescriptor(); +ELITE_HELL_INFO_CFGS = protobuf.Descriptor(); +ELITE_HELL_INFO_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ELITE_REWARD_CFG = protobuf.Descriptor(); +ELITE_REWARD_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_REWARD_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +ELITE_REWARD_CFG_ITEM_COUNT_FIELD = protobuf.FieldDescriptor(); +ELITE_REWARD_CFGS = protobuf.Descriptor(); +ELITE_REWARD_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SUBSYS_CFG = protobuf.Descriptor(); +SUBSYS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +SUBSYS_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +SUBSYS_CFG_TITLE_ID_FIELD = protobuf.FieldDescriptor(); +SUBSYS_CFG_DESC_ID_FIELD = protobuf.FieldDescriptor(); +SUBSYS_CFG_UI_STYLE_FIELD = protobuf.FieldDescriptor(); +SUBSYS_CFG_NOTES_FIELD = protobuf.FieldDescriptor(); +SUBSYS_CFGS = protobuf.Descriptor(); +SUBSYS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +BAG_ROUTINE_CFG = protobuf.Descriptor(); +BAG_ROUTINE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +BAG_ROUTINE_CFG_BAG_TYPE_FIELD = protobuf.FieldDescriptor(); +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD = protobuf.FieldDescriptor(); +BAG_ROUTINE_CFG_BAG_MAX_FIELD = protobuf.FieldDescriptor(); +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD = protobuf.FieldDescriptor(); +BAG_ROUTINE_CFGS = protobuf.Descriptor(); +BAG_ROUTINE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +DEPOT_UNLOCK_CFG = protobuf.Descriptor(); +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD = protobuf.FieldDescriptor(); +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD = protobuf.FieldDescriptor(); +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD = protobuf.FieldDescriptor(); +DEPOT_UNLOCK_CFGS = protobuf.Descriptor(); +DEPOT_UNLOCK_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ROLE_PARTS_CFG = protobuf.Descriptor(); +ROLE_PARTS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ROLE_PARTS_CFG_NAME_ID_FIELD = protobuf.FieldDescriptor(); +ROLE_PARTS_CFG_SLOT_FIELD = protobuf.FieldDescriptor(); +ROLE_PARTS_CFG_RES_ID_FIELD = protobuf.FieldDescriptor(); +ROLE_PARTS_CFGS = protobuf.Descriptor(); +ROLE_PARTS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_CFG = protobuf.Descriptor(); +SUPPRESS_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_CFG_FIT_LVL_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_CFG_GROUP_COUNT_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_CFGS = protobuf.Descriptor(); +SUPPRESS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_GROUP_CFG = protobuf.Descriptor(); +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD = protobuf.FieldDescriptor(); +SUPPRESS_GROUP_CFGS = protobuf.Descriptor(); +SUPPRESS_GROUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG = protobuf.Descriptor(); +UI_CONTRIBUTION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_TITLEID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_IMAGEID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_ATLASID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_ICONNAME_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFG_TIPSID_FIELD = protobuf.FieldDescriptor(); +UI_CONTRIBUTION_CFGS = protobuf.Descriptor(); +UI_CONTRIBUTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG = protobuf.Descriptor(); +ACTIVITY_DUNGEON_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_TIMES_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_DUNGEON_CFGS = protobuf.Descriptor(); +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RESOURCE_COMPUND_CFG = protobuf.Descriptor(); +RESOURCE_COMPUND_CFG_ID_FIELD = protobuf.FieldDescriptor(); +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +RESOURCE_COMPUND_CFGS = protobuf.Descriptor(); +RESOURCE_COMPUND_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ROUTE_MARK_CFG = protobuf.Descriptor(); +ROUTE_MARK_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ROUTE_MARK_CFG_MODEL_ID_FIELD = protobuf.FieldDescriptor(); +ROUTE_MARK_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +ROUTE_MARK_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +ROUTE_MARK_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +ROUTE_MARK_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +ROUTE_MARK_CFGS = protobuf.Descriptor(); +ROUTE_MARK_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +JUMP_CFG = protobuf.Descriptor(); +JUMP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +JUMP_CFG_WAY_POINTS_FIELD = protobuf.FieldDescriptor(); +JUMP_CFG_JUMP_ACTION_ID_FIELD = protobuf.FieldDescriptor(); +JUMP_CFGS = protobuf.Descriptor(); +JUMP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +JUMP_ACTION_CFG = protobuf.Descriptor(); +JUMP_ACTION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD = protobuf.FieldDescriptor(); +JUMP_ACTION_CFG_SPLITES_FIELD = protobuf.FieldDescriptor(); +JUMP_ACTION_CFG_DURATION_FIELD = protobuf.FieldDescriptor(); +JUMP_ACTION_CFGS = protobuf.Descriptor(); +JUMP_ACTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG = protobuf.Descriptor(); +MAGIC_ATT_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_RANGE_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_PROP_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_ATT_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_ATT_VALUE_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +MAGIC_ATT_CFGS = protobuf.Descriptor(); +MAGIC_ATT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG = protobuf.Descriptor(); +MAGIC_OSTIOLE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG_POS_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG_RANGE_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD = protobuf.FieldDescriptor(); +MAGIC_OSTIOLE_CFGS = protobuf.Descriptor(); +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG = protobuf.Descriptor(); +MAGIC_LEVELUP_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFG_RANGE_FIELD = protobuf.FieldDescriptor(); +MAGIC_LEVELUP_CFGS = protobuf.Descriptor(); +MAGIC_LEVELUP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG = protobuf.Descriptor(); +MAGIC_COMBINATION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFG_MG_NAME_FIELD = protobuf.FieldDescriptor(); +MAGIC_COMBINATION_CFGS = protobuf.Descriptor(); +MAGIC_COMBINATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG = protobuf.Descriptor(); +CONVOY_BIAOCHE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_CFGS = protobuf.Descriptor(); +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG = protobuf.Descriptor(); +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD = protobuf.FieldDescriptor(); +CONVOY_BIAOCHE_SCENE_CFGS = protobuf.Descriptor(); +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG = protobuf.Descriptor(); +ACTIVITY_INFO_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_START_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_END_TIME_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_TIMES_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_INFO_CFGS = protobuf.Descriptor(); +ACTIVITY_INFO_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_ROOMS_CFG = protobuf.Descriptor(); +ACTIVITY_ROOMS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD = protobuf.FieldDescriptor(); +ACTIVITY_ROOMS_CFGS = protobuf.Descriptor(); +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG = protobuf.Descriptor(); +GROW_POINT_CFG_ID_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_MODULE_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_POS_X_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_POS_Y_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_POS_Z_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_MAX_COUNT_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_SHOW_COUNT_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_QUALITY_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFG_SKILL_INDEX_FIELD = protobuf.FieldDescriptor(); +GROW_POINT_CFGS = protobuf.Descriptor(); +GROW_POINT_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +ERRORCODE_NOTIFY_CFG = protobuf.Descriptor(); +ERRORCODE_NOTIFY_CFG_ID_FIELD = protobuf.FieldDescriptor(); +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD = protobuf.FieldDescriptor(); +ERRORCODE_NOTIFY_CFGS = protobuf.Descriptor(); +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG = protobuf.Descriptor(); +OPEN_RULES_DATA_CFG_ID_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG_END_HOUR_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFG_END_MIN_FIELD = protobuf.FieldDescriptor(); +OPEN_RULES_DATA_CFGS = protobuf.Descriptor(); +OPEN_RULES_DATA_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFG = protobuf.Descriptor(); +CAMPBOSS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFG_NEED_LEVEL_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFG_SCENE_ID_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFG_MAP_ID_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFG_X_POINT_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFG_Y_POINT_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFG_Z_POINT_FIELD = protobuf.FieldDescriptor(); +CAMPBOSS_CFGS = protobuf.Descriptor(); +CAMPBOSS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +TIPS_CFG = protobuf.Descriptor(); +TIPS_CFG_ID_FIELD = protobuf.FieldDescriptor(); +TIPS_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +TIPS_CFG_CONTENT_FIELD = protobuf.FieldDescriptor(); +TIPS_CFGS = protobuf.Descriptor(); +TIPS_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG = protobuf.Descriptor(); +CAMP_RELATION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_SCRIP_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE0_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE1_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE2_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE3_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE4_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE5_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE6_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE7_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE8_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE9_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE10_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE11_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE12_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE13_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE14_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFG_TYPE15_FIELD = protobuf.FieldDescriptor(); +CAMP_RELATION_CFGS = protobuf.Descriptor(); +CAMP_RELATION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +CAMP_CHANGE_COST_CFG = protobuf.Descriptor(); +CAMP_CHANGE_COST_CFG_ID_FIELD = protobuf.FieldDescriptor(); +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD = protobuf.FieldDescriptor(); +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD = protobuf.FieldDescriptor(); +CAMP_CHANGE_COST_CFGS = protobuf.Descriptor(); +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RANDOMMAN_CFG = protobuf.Descriptor(); +RANDOMMAN_CFG_NAME0_FIELD = protobuf.FieldDescriptor(); +RANDOMMAN_CFG_NAME1_FIELD = protobuf.FieldDescriptor(); +RANDOMMAN_CFGS = protobuf.Descriptor(); +RANDOMMAN_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +RANDOMWOMAN_CFG = protobuf.Descriptor(); +RANDOMWOMAN_CFG_NAME0_FIELD = protobuf.FieldDescriptor(); +RANDOMWOMAN_CFG_NAME1_FIELD = protobuf.FieldDescriptor(); +RANDOMWOMAN_CFGS = protobuf.Descriptor(); +RANDOMWOMAN_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG = protobuf.Descriptor(); +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_ATTACK_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_MAXHP_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_HITRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_MAUD_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_MIND_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD = protobuf.FieldDescriptor(); +SOUL_BASE_ATTR_CFGS = protobuf.Descriptor(); +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ATTR_CFG = protobuf.Descriptor(); +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ATTR_CFGS = protobuf.Descriptor(); +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG = protobuf.Descriptor(); +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUITID_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD = protobuf.FieldDescriptor(); +SOUL_SUIT_ATTR_CFGS = protobuf.Descriptor(); +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG = protobuf.Descriptor(); +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD = protobuf.FieldDescriptor(); +SOUL_LEVEL_UP_CFGS = protobuf.Descriptor(); +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG = protobuf.Descriptor(); +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +SOUL_MAGIC_ROCK_CFGS = protobuf.Descriptor(); +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFG = protobuf.Descriptor(); +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFG_COUNT_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFG_ICON_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFG_DESC_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFG_POSITION_FIELD = protobuf.FieldDescriptor(); +SOUL_REFINE_ROCK_CFGS = protobuf.Descriptor(); +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +WIZARD_TASK_CFG = protobuf.Descriptor(); +WIZARD_TASK_CFG_LEVEL_ID_FIELD = protobuf.FieldDescriptor(); +WIZARD_TASK_CFG_LEVEL_MIN_FIELD = protobuf.FieldDescriptor(); +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +WIZARD_TASK_CFGS = protobuf.Descriptor(); +WIZARD_TASK_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +WIZARD_LEVEL_CFG = protobuf.Descriptor(); +WIZARD_LEVEL_CFG_ID_FIELD = protobuf.FieldDescriptor(); +WIZARD_LEVEL_CFG_LEGENDARY_FIELD = protobuf.FieldDescriptor(); +WIZARD_LEVEL_CFG_ICON_ID_FIELD = protobuf.FieldDescriptor(); +WIZARD_LEVEL_CFG_NAME_FIELD = protobuf.FieldDescriptor(); +WIZARD_LEVEL_CFG_REWARD_ID_FIELD = protobuf.FieldDescriptor(); +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD = protobuf.FieldDescriptor(); +WIZARD_LEVEL_CFGS = protobuf.Descriptor(); +WIZARD_LEVEL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +WIZARD_BASE_CFG = protobuf.Descriptor(); +WIZARD_BASE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +WIZARD_BASE_CFG_DATA_FIELD = protobuf.FieldDescriptor(); +WIZARD_BASE_CFGS = protobuf.Descriptor(); +WIZARD_BASE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFG = protobuf.Descriptor(); +MAGIC_DIVINE_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFG_PROP_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFG_PROP_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFG_TIMES_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFG_SECTION_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_DIVINE_CFGS = protobuf.Descriptor(); +MAGIC_DIVINE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG = protobuf.Descriptor(); +DIVINE_SECTION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG_GROUP_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG_GROUP_NAME_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG_SECTION_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG_SECTION_NAME_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG_SECTION_DESC_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG_MISSION_ID_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFG_PARTNER_ID_FIELD = protobuf.FieldDescriptor(); +DIVINE_SECTION_CFGS = protobuf.Descriptor(); +DIVINE_SECTION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +DIVINE_MISSION_CFG = protobuf.Descriptor(); +DIVINE_MISSION_CFG_ID_FIELD = protobuf.FieldDescriptor(); +DIVINE_MISSION_CFG_MISSION_ID_FIELD = protobuf.FieldDescriptor(); +DIVINE_MISSION_CFG_RANGE_FIELD = protobuf.FieldDescriptor(); +DIVINE_MISSION_CFG_QUALITY_FIELD = protobuf.FieldDescriptor(); +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD = protobuf.FieldDescriptor(); +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD = protobuf.FieldDescriptor(); +DIVINE_MISSION_CFGS = protobuf.Descriptor(); +DIVINE_MISSION_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG = protobuf.Descriptor(); +MAGIC_SKILL_CFG_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_LAYERID_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_SKILL_ICON_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_SKILL_NAME_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_CFGS = protobuf.Descriptor(); +MAGIC_SKILL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG = protobuf.Descriptor(); +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_UPLEVEL_CFGS = protobuf.Descriptor(); +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_LAYER_CFG = protobuf.Descriptor(); +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_SKILL_LAYER_CFGS = protobuf.Descriptor(); +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG = protobuf.Descriptor(); +MAGIC_POINT_REFINE_CFG_CONFID_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD = protobuf.FieldDescriptor(); +MAGIC_POINT_REFINE_CFGS = protobuf.Descriptor(); +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD = protobuf.FieldDescriptor(); + +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.name = "activity_level" +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.full_name = ".ftcfg.arena_data_cfg.activity_level" +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.number = 1 +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.index = 0 +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.label = 2 +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.has_default_value = false +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.default_value = 0 +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.type = 5 +ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD.cpp_type = 1 + +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.name = "activity_cycle" +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.full_name = ".ftcfg.arena_data_cfg.activity_cycle" +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.number = 2 +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.index = 1 +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.label = 2 +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.has_default_value = false +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.default_value = 0 +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.type = 5 +ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD.cpp_type = 1 + +ARENA_DATA_CFG_DURATION_FIELD.name = "duration" +ARENA_DATA_CFG_DURATION_FIELD.full_name = ".ftcfg.arena_data_cfg.duration" +ARENA_DATA_CFG_DURATION_FIELD.number = 3 +ARENA_DATA_CFG_DURATION_FIELD.index = 2 +ARENA_DATA_CFG_DURATION_FIELD.label = 2 +ARENA_DATA_CFG_DURATION_FIELD.has_default_value = false +ARENA_DATA_CFG_DURATION_FIELD.default_value = 0 +ARENA_DATA_CFG_DURATION_FIELD.type = 5 +ARENA_DATA_CFG_DURATION_FIELD.cpp_type = 1 + +ARENA_DATA_CFG_DAY_LIST_FIELD.name = "day_list" +ARENA_DATA_CFG_DAY_LIST_FIELD.full_name = ".ftcfg.arena_data_cfg.day_list" +ARENA_DATA_CFG_DAY_LIST_FIELD.number = 4 +ARENA_DATA_CFG_DAY_LIST_FIELD.index = 3 +ARENA_DATA_CFG_DAY_LIST_FIELD.label = 3 +ARENA_DATA_CFG_DAY_LIST_FIELD.has_default_value = false +ARENA_DATA_CFG_DAY_LIST_FIELD.default_value = {} +ARENA_DATA_CFG_DAY_LIST_FIELD.type = 2 +ARENA_DATA_CFG_DAY_LIST_FIELD.cpp_type = 6 + +ARENA_DATA_CFG_MAP_ID_FIELD.name = "map_id" +ARENA_DATA_CFG_MAP_ID_FIELD.full_name = ".ftcfg.arena_data_cfg.map_id" +ARENA_DATA_CFG_MAP_ID_FIELD.number = 5 +ARENA_DATA_CFG_MAP_ID_FIELD.index = 4 +ARENA_DATA_CFG_MAP_ID_FIELD.label = 2 +ARENA_DATA_CFG_MAP_ID_FIELD.has_default_value = false +ARENA_DATA_CFG_MAP_ID_FIELD.default_value = 0 +ARENA_DATA_CFG_MAP_ID_FIELD.type = 5 +ARENA_DATA_CFG_MAP_ID_FIELD.cpp_type = 1 + +ARENA_DATA_CFG_SPAN_TIME_FIELD.name = "span_time" +ARENA_DATA_CFG_SPAN_TIME_FIELD.full_name = ".ftcfg.arena_data_cfg.span_time" +ARENA_DATA_CFG_SPAN_TIME_FIELD.number = 6 +ARENA_DATA_CFG_SPAN_TIME_FIELD.index = 5 +ARENA_DATA_CFG_SPAN_TIME_FIELD.label = 2 +ARENA_DATA_CFG_SPAN_TIME_FIELD.has_default_value = false +ARENA_DATA_CFG_SPAN_TIME_FIELD.default_value = 0 +ARENA_DATA_CFG_SPAN_TIME_FIELD.type = 5 +ARENA_DATA_CFG_SPAN_TIME_FIELD.cpp_type = 1 + +ARENA_DATA_CFG_MIN_RATIO_FIELD.name = "min_ratio" +ARENA_DATA_CFG_MIN_RATIO_FIELD.full_name = ".ftcfg.arena_data_cfg.min_ratio" +ARENA_DATA_CFG_MIN_RATIO_FIELD.number = 7 +ARENA_DATA_CFG_MIN_RATIO_FIELD.index = 6 +ARENA_DATA_CFG_MIN_RATIO_FIELD.label = 2 +ARENA_DATA_CFG_MIN_RATIO_FIELD.has_default_value = false +ARENA_DATA_CFG_MIN_RATIO_FIELD.default_value = 0.0 +ARENA_DATA_CFG_MIN_RATIO_FIELD.type = 2 +ARENA_DATA_CFG_MIN_RATIO_FIELD.cpp_type = 6 + +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.name = "ratio_addition" +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.full_name = ".ftcfg.arena_data_cfg.ratio_addition" +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.number = 8 +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.index = 7 +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.label = 2 +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.has_default_value = false +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.default_value = 0.0 +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.type = 2 +ARENA_DATA_CFG_RATIO_ADDITION_FIELD.cpp_type = 6 + +ARENA_DATA_CFG_MAX_RATIO_FIELD.name = "max_ratio" +ARENA_DATA_CFG_MAX_RATIO_FIELD.full_name = ".ftcfg.arena_data_cfg.max_ratio" +ARENA_DATA_CFG_MAX_RATIO_FIELD.number = 9 +ARENA_DATA_CFG_MAX_RATIO_FIELD.index = 8 +ARENA_DATA_CFG_MAX_RATIO_FIELD.label = 2 +ARENA_DATA_CFG_MAX_RATIO_FIELD.has_default_value = false +ARENA_DATA_CFG_MAX_RATIO_FIELD.default_value = 0.0 +ARENA_DATA_CFG_MAX_RATIO_FIELD.type = 2 +ARENA_DATA_CFG_MAX_RATIO_FIELD.cpp_type = 6 + +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.name = "diff_teammate" +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.full_name = ".ftcfg.arena_data_cfg.diff_teammate" +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.number = 10 +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.index = 9 +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.label = 2 +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.has_default_value = false +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.default_value = 0.0 +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.type = 2 +ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD.cpp_type = 6 + +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.name = "diff_opponent" +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.full_name = ".ftcfg.arena_data_cfg.diff_opponent" +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.number = 11 +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.index = 10 +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.label = 2 +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.has_default_value = false +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.default_value = 0.0 +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.type = 2 +ARENA_DATA_CFG_DIFF_OPPONENT_FIELD.cpp_type = 6 + +ARENA_DATA_CFG.name = "arena_data_cfg" +ARENA_DATA_CFG.full_name = ".ftcfg.arena_data_cfg" +ARENA_DATA_CFG.nested_types = {} +ARENA_DATA_CFG.enum_types = {} +ARENA_DATA_CFG.fields = {ARENA_DATA_CFG_ACTIVITY_LEVEL_FIELD, ARENA_DATA_CFG_ACTIVITY_CYCLE_FIELD, ARENA_DATA_CFG_DURATION_FIELD, ARENA_DATA_CFG_DAY_LIST_FIELD, ARENA_DATA_CFG_MAP_ID_FIELD, ARENA_DATA_CFG_SPAN_TIME_FIELD, ARENA_DATA_CFG_MIN_RATIO_FIELD, ARENA_DATA_CFG_RATIO_ADDITION_FIELD, ARENA_DATA_CFG_MAX_RATIO_FIELD, ARENA_DATA_CFG_DIFF_TEAMMATE_FIELD, ARENA_DATA_CFG_DIFF_OPPONENT_FIELD} +ARENA_DATA_CFG.is_extendable = false +ARENA_DATA_CFG.extensions = {} +ARENA_DATA_CFGS_ITEMS_FIELD.name = "items" +ARENA_DATA_CFGS_ITEMS_FIELD.full_name = ".ftcfg.arena_data_cfgs.items" +ARENA_DATA_CFGS_ITEMS_FIELD.number = 1 +ARENA_DATA_CFGS_ITEMS_FIELD.index = 0 +ARENA_DATA_CFGS_ITEMS_FIELD.label = 3 +ARENA_DATA_CFGS_ITEMS_FIELD.has_default_value = false +ARENA_DATA_CFGS_ITEMS_FIELD.default_value = {} +ARENA_DATA_CFGS_ITEMS_FIELD.message_type = ARENA_DATA_CFG +ARENA_DATA_CFGS_ITEMS_FIELD.type = 11 +ARENA_DATA_CFGS_ITEMS_FIELD.cpp_type = 10 + +ARENA_DATA_CFGS.name = "arena_data_cfgs" +ARENA_DATA_CFGS.full_name = ".ftcfg.arena_data_cfgs" +ARENA_DATA_CFGS.nested_types = {} +ARENA_DATA_CFGS.enum_types = {} +ARENA_DATA_CFGS.fields = {ARENA_DATA_CFGS_ITEMS_FIELD} +ARENA_DATA_CFGS.is_extendable = false +ARENA_DATA_CFGS.extensions = {} +ARENA_REWARD_CFG_ID_FIELD.name = "id" +ARENA_REWARD_CFG_ID_FIELD.full_name = ".ftcfg.arena_reward_cfg.id" +ARENA_REWARD_CFG_ID_FIELD.number = 1 +ARENA_REWARD_CFG_ID_FIELD.index = 0 +ARENA_REWARD_CFG_ID_FIELD.label = 2 +ARENA_REWARD_CFG_ID_FIELD.has_default_value = false +ARENA_REWARD_CFG_ID_FIELD.default_value = 0 +ARENA_REWARD_CFG_ID_FIELD.type = 5 +ARENA_REWARD_CFG_ID_FIELD.cpp_type = 1 + +ARENA_REWARD_CFG_ITEM_ID_FIELD.name = "item_id" +ARENA_REWARD_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.arena_reward_cfg.item_id" +ARENA_REWARD_CFG_ITEM_ID_FIELD.number = 2 +ARENA_REWARD_CFG_ITEM_ID_FIELD.index = 1 +ARENA_REWARD_CFG_ITEM_ID_FIELD.label = 3 +ARENA_REWARD_CFG_ITEM_ID_FIELD.has_default_value = false +ARENA_REWARD_CFG_ITEM_ID_FIELD.default_value = {} +ARENA_REWARD_CFG_ITEM_ID_FIELD.type = 13 +ARENA_REWARD_CFG_ITEM_ID_FIELD.cpp_type = 3 + +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.name = "item_count" +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.full_name = ".ftcfg.arena_reward_cfg.item_count" +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.number = 3 +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.index = 2 +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.label = 3 +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.has_default_value = false +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.default_value = {} +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.type = 5 +ARENA_REWARD_CFG_ITEM_COUNT_FIELD.cpp_type = 1 + +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.name = "attribute_type" +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.full_name = ".ftcfg.arena_reward_cfg.attribute_type" +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.number = 4 +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.index = 3 +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.label = 3 +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.has_default_value = false +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.default_value = {} +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.type = 5 +ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD.cpp_type = 1 + +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.name = "attribute_count" +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.arena_reward_cfg.attribute_count" +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.number = 5 +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.index = 4 +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.label = 3 +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.has_default_value = false +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.default_value = {} +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.type = 5 +ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +ARENA_REWARD_CFG.name = "arena_reward_cfg" +ARENA_REWARD_CFG.full_name = ".ftcfg.arena_reward_cfg" +ARENA_REWARD_CFG.nested_types = {} +ARENA_REWARD_CFG.enum_types = {} +ARENA_REWARD_CFG.fields = {ARENA_REWARD_CFG_ID_FIELD, ARENA_REWARD_CFG_ITEM_ID_FIELD, ARENA_REWARD_CFG_ITEM_COUNT_FIELD, ARENA_REWARD_CFG_ATTRIBUTE_TYPE_FIELD, ARENA_REWARD_CFG_ATTRIBUTE_COUNT_FIELD} +ARENA_REWARD_CFG.is_extendable = false +ARENA_REWARD_CFG.extensions = {} +ARENA_REWARD_CFGS_ITEMS_FIELD.name = "items" +ARENA_REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.arena_reward_cfgs.items" +ARENA_REWARD_CFGS_ITEMS_FIELD.number = 1 +ARENA_REWARD_CFGS_ITEMS_FIELD.index = 0 +ARENA_REWARD_CFGS_ITEMS_FIELD.label = 3 +ARENA_REWARD_CFGS_ITEMS_FIELD.has_default_value = false +ARENA_REWARD_CFGS_ITEMS_FIELD.default_value = {} +ARENA_REWARD_CFGS_ITEMS_FIELD.message_type = ARENA_REWARD_CFG +ARENA_REWARD_CFGS_ITEMS_FIELD.type = 11 +ARENA_REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +ARENA_REWARD_CFGS.name = "arena_reward_cfgs" +ARENA_REWARD_CFGS.full_name = ".ftcfg.arena_reward_cfgs" +ARENA_REWARD_CFGS.nested_types = {} +ARENA_REWARD_CFGS.enum_types = {} +ARENA_REWARD_CFGS.fields = {ARENA_REWARD_CFGS_ITEMS_FIELD} +ARENA_REWARD_CFGS.is_extendable = false +ARENA_REWARD_CFGS.extensions = {} +BOSS_SHOWINFO_CFG_ID_FIELD.name = "id" +BOSS_SHOWINFO_CFG_ID_FIELD.full_name = ".ftcfg.boss_showinfo_cfg.id" +BOSS_SHOWINFO_CFG_ID_FIELD.number = 1 +BOSS_SHOWINFO_CFG_ID_FIELD.index = 0 +BOSS_SHOWINFO_CFG_ID_FIELD.label = 2 +BOSS_SHOWINFO_CFG_ID_FIELD.has_default_value = false +BOSS_SHOWINFO_CFG_ID_FIELD.default_value = 0 +BOSS_SHOWINFO_CFG_ID_FIELD.type = 5 +BOSS_SHOWINFO_CFG_ID_FIELD.cpp_type = 1 + +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.name = "show_equ" +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.full_name = ".ftcfg.boss_showinfo_cfg.show_equ" +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.number = 2 +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.index = 1 +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.label = 3 +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.has_default_value = false +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.default_value = {} +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.type = 9 +BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD.cpp_type = 9 + +BOSS_SHOWINFO_CFG.name = "boss_showinfo_cfg" +BOSS_SHOWINFO_CFG.full_name = ".ftcfg.boss_showinfo_cfg" +BOSS_SHOWINFO_CFG.nested_types = {} +BOSS_SHOWINFO_CFG.enum_types = {} +BOSS_SHOWINFO_CFG.fields = {BOSS_SHOWINFO_CFG_ID_FIELD, BOSS_SHOWINFO_CFG_SHOW_EQU_FIELD} +BOSS_SHOWINFO_CFG.is_extendable = false +BOSS_SHOWINFO_CFG.extensions = {} +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.name = "items" +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.full_name = ".ftcfg.boss_showinfo_cfgs.items" +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.number = 1 +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.index = 0 +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.label = 3 +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.has_default_value = false +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.default_value = {} +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.message_type = BOSS_SHOWINFO_CFG +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.type = 11 +BOSS_SHOWINFO_CFGS_ITEMS_FIELD.cpp_type = 10 + +BOSS_SHOWINFO_CFGS.name = "boss_showinfo_cfgs" +BOSS_SHOWINFO_CFGS.full_name = ".ftcfg.boss_showinfo_cfgs" +BOSS_SHOWINFO_CFGS.nested_types = {} +BOSS_SHOWINFO_CFGS.enum_types = {} +BOSS_SHOWINFO_CFGS.fields = {BOSS_SHOWINFO_CFGS_ITEMS_FIELD} +BOSS_SHOWINFO_CFGS.is_extendable = false +BOSS_SHOWINFO_CFGS.extensions = {} +BOSS_SHOW_UI_CFG_ID_FIELD.name = "id" +BOSS_SHOW_UI_CFG_ID_FIELD.full_name = ".ftcfg.boss_show_ui_cfg.id" +BOSS_SHOW_UI_CFG_ID_FIELD.number = 1 +BOSS_SHOW_UI_CFG_ID_FIELD.index = 0 +BOSS_SHOW_UI_CFG_ID_FIELD.label = 2 +BOSS_SHOW_UI_CFG_ID_FIELD.has_default_value = false +BOSS_SHOW_UI_CFG_ID_FIELD.default_value = 0 +BOSS_SHOW_UI_CFG_ID_FIELD.type = 5 +BOSS_SHOW_UI_CFG_ID_FIELD.cpp_type = 1 + +BOSS_SHOW_UI_CFG_NAME_FIELD.name = "name" +BOSS_SHOW_UI_CFG_NAME_FIELD.full_name = ".ftcfg.boss_show_ui_cfg.name" +BOSS_SHOW_UI_CFG_NAME_FIELD.number = 2 +BOSS_SHOW_UI_CFG_NAME_FIELD.index = 1 +BOSS_SHOW_UI_CFG_NAME_FIELD.label = 2 +BOSS_SHOW_UI_CFG_NAME_FIELD.has_default_value = false +BOSS_SHOW_UI_CFG_NAME_FIELD.default_value = 0 +BOSS_SHOW_UI_CFG_NAME_FIELD.type = 5 +BOSS_SHOW_UI_CFG_NAME_FIELD.cpp_type = 1 + +BOSS_SHOW_UI_CFG_LEVEL_FIELD.name = "level" +BOSS_SHOW_UI_CFG_LEVEL_FIELD.full_name = ".ftcfg.boss_show_ui_cfg.level" +BOSS_SHOW_UI_CFG_LEVEL_FIELD.number = 3 +BOSS_SHOW_UI_CFG_LEVEL_FIELD.index = 2 +BOSS_SHOW_UI_CFG_LEVEL_FIELD.label = 2 +BOSS_SHOW_UI_CFG_LEVEL_FIELD.has_default_value = false +BOSS_SHOW_UI_CFG_LEVEL_FIELD.default_value = 0 +BOSS_SHOW_UI_CFG_LEVEL_FIELD.type = 5 +BOSS_SHOW_UI_CFG_LEVEL_FIELD.cpp_type = 1 + +BOSS_SHOW_UI_CFG_DESC_FIELD.name = "desc" +BOSS_SHOW_UI_CFG_DESC_FIELD.full_name = ".ftcfg.boss_show_ui_cfg.desc" +BOSS_SHOW_UI_CFG_DESC_FIELD.number = 4 +BOSS_SHOW_UI_CFG_DESC_FIELD.index = 3 +BOSS_SHOW_UI_CFG_DESC_FIELD.label = 2 +BOSS_SHOW_UI_CFG_DESC_FIELD.has_default_value = false +BOSS_SHOW_UI_CFG_DESC_FIELD.default_value = 0 +BOSS_SHOW_UI_CFG_DESC_FIELD.type = 5 +BOSS_SHOW_UI_CFG_DESC_FIELD.cpp_type = 1 + +BOSS_SHOW_UI_CFG_PAINT_FIELD.name = "paint" +BOSS_SHOW_UI_CFG_PAINT_FIELD.full_name = ".ftcfg.boss_show_ui_cfg.paint" +BOSS_SHOW_UI_CFG_PAINT_FIELD.number = 5 +BOSS_SHOW_UI_CFG_PAINT_FIELD.index = 4 +BOSS_SHOW_UI_CFG_PAINT_FIELD.label = 2 +BOSS_SHOW_UI_CFG_PAINT_FIELD.has_default_value = false +BOSS_SHOW_UI_CFG_PAINT_FIELD.default_value = 0 +BOSS_SHOW_UI_CFG_PAINT_FIELD.type = 5 +BOSS_SHOW_UI_CFG_PAINT_FIELD.cpp_type = 1 + +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.name = "close_timer" +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.full_name = ".ftcfg.boss_show_ui_cfg.close_timer" +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.number = 6 +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.index = 5 +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.label = 2 +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.has_default_value = false +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.default_value = 0 +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.type = 5 +BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD.cpp_type = 1 + +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.name = "cam_motion" +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.full_name = ".ftcfg.boss_show_ui_cfg.cam_motion" +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.number = 7 +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.index = 6 +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.label = 2 +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.has_default_value = false +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.default_value = 0 +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.type = 5 +BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD.cpp_type = 1 + +BOSS_SHOW_UI_CFG.name = "boss_show_ui_cfg" +BOSS_SHOW_UI_CFG.full_name = ".ftcfg.boss_show_ui_cfg" +BOSS_SHOW_UI_CFG.nested_types = {} +BOSS_SHOW_UI_CFG.enum_types = {} +BOSS_SHOW_UI_CFG.fields = {BOSS_SHOW_UI_CFG_ID_FIELD, BOSS_SHOW_UI_CFG_NAME_FIELD, BOSS_SHOW_UI_CFG_LEVEL_FIELD, BOSS_SHOW_UI_CFG_DESC_FIELD, BOSS_SHOW_UI_CFG_PAINT_FIELD, BOSS_SHOW_UI_CFG_CLOSE_TIMER_FIELD, BOSS_SHOW_UI_CFG_CAM_MOTION_FIELD} +BOSS_SHOW_UI_CFG.is_extendable = false +BOSS_SHOW_UI_CFG.extensions = {} +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.name = "items" +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.full_name = ".ftcfg.boss_show_ui_cfgs.items" +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.number = 1 +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.index = 0 +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.label = 3 +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.has_default_value = false +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.default_value = {} +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.message_type = BOSS_SHOW_UI_CFG +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.type = 11 +BOSS_SHOW_UI_CFGS_ITEMS_FIELD.cpp_type = 10 + +BOSS_SHOW_UI_CFGS.name = "boss_show_ui_cfgs" +BOSS_SHOW_UI_CFGS.full_name = ".ftcfg.boss_show_ui_cfgs" +BOSS_SHOW_UI_CFGS.nested_types = {} +BOSS_SHOW_UI_CFGS.enum_types = {} +BOSS_SHOW_UI_CFGS.fields = {BOSS_SHOW_UI_CFGS_ITEMS_FIELD} +BOSS_SHOW_UI_CFGS.is_extendable = false +BOSS_SHOW_UI_CFGS.extensions = {} +BOSS_SHOW_CAM_CFG_ID_FIELD.name = "id" +BOSS_SHOW_CAM_CFG_ID_FIELD.full_name = ".ftcfg.boss_show_cam_cfg.id" +BOSS_SHOW_CAM_CFG_ID_FIELD.number = 1 +BOSS_SHOW_CAM_CFG_ID_FIELD.index = 0 +BOSS_SHOW_CAM_CFG_ID_FIELD.label = 2 +BOSS_SHOW_CAM_CFG_ID_FIELD.has_default_value = false +BOSS_SHOW_CAM_CFG_ID_FIELD.default_value = 0 +BOSS_SHOW_CAM_CFG_ID_FIELD.type = 5 +BOSS_SHOW_CAM_CFG_ID_FIELD.cpp_type = 1 + +BOSS_SHOW_CAM_CFG_POS_FIELD.name = "pos" +BOSS_SHOW_CAM_CFG_POS_FIELD.full_name = ".ftcfg.boss_show_cam_cfg.pos" +BOSS_SHOW_CAM_CFG_POS_FIELD.number = 2 +BOSS_SHOW_CAM_CFG_POS_FIELD.index = 1 +BOSS_SHOW_CAM_CFG_POS_FIELD.label = 3 +BOSS_SHOW_CAM_CFG_POS_FIELD.has_default_value = false +BOSS_SHOW_CAM_CFG_POS_FIELD.default_value = {} +BOSS_SHOW_CAM_CFG_POS_FIELD.type = 2 +BOSS_SHOW_CAM_CFG_POS_FIELD.cpp_type = 6 + +BOSS_SHOW_CAM_CFG_DURATION_FIELD.name = "duration" +BOSS_SHOW_CAM_CFG_DURATION_FIELD.full_name = ".ftcfg.boss_show_cam_cfg.duration" +BOSS_SHOW_CAM_CFG_DURATION_FIELD.number = 3 +BOSS_SHOW_CAM_CFG_DURATION_FIELD.index = 2 +BOSS_SHOW_CAM_CFG_DURATION_FIELD.label = 2 +BOSS_SHOW_CAM_CFG_DURATION_FIELD.has_default_value = false +BOSS_SHOW_CAM_CFG_DURATION_FIELD.default_value = 0.0 +BOSS_SHOW_CAM_CFG_DURATION_FIELD.type = 2 +BOSS_SHOW_CAM_CFG_DURATION_FIELD.cpp_type = 6 + +BOSS_SHOW_CAM_CFG_ROLL_FIELD.name = "roll" +BOSS_SHOW_CAM_CFG_ROLL_FIELD.full_name = ".ftcfg.boss_show_cam_cfg.roll" +BOSS_SHOW_CAM_CFG_ROLL_FIELD.number = 4 +BOSS_SHOW_CAM_CFG_ROLL_FIELD.index = 3 +BOSS_SHOW_CAM_CFG_ROLL_FIELD.label = 2 +BOSS_SHOW_CAM_CFG_ROLL_FIELD.has_default_value = false +BOSS_SHOW_CAM_CFG_ROLL_FIELD.default_value = 0.0 +BOSS_SHOW_CAM_CFG_ROLL_FIELD.type = 2 +BOSS_SHOW_CAM_CFG_ROLL_FIELD.cpp_type = 6 + +BOSS_SHOW_CAM_CFG.name = "boss_show_cam_cfg" +BOSS_SHOW_CAM_CFG.full_name = ".ftcfg.boss_show_cam_cfg" +BOSS_SHOW_CAM_CFG.nested_types = {} +BOSS_SHOW_CAM_CFG.enum_types = {} +BOSS_SHOW_CAM_CFG.fields = {BOSS_SHOW_CAM_CFG_ID_FIELD, BOSS_SHOW_CAM_CFG_POS_FIELD, BOSS_SHOW_CAM_CFG_DURATION_FIELD, BOSS_SHOW_CAM_CFG_ROLL_FIELD} +BOSS_SHOW_CAM_CFG.is_extendable = false +BOSS_SHOW_CAM_CFG.extensions = {} +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.name = "items" +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.full_name = ".ftcfg.boss_show_cam_cfgs.items" +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.number = 1 +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.index = 0 +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.label = 3 +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.has_default_value = false +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.default_value = {} +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.message_type = BOSS_SHOW_CAM_CFG +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.type = 11 +BOSS_SHOW_CAM_CFGS_ITEMS_FIELD.cpp_type = 10 + +BOSS_SHOW_CAM_CFGS.name = "boss_show_cam_cfgs" +BOSS_SHOW_CAM_CFGS.full_name = ".ftcfg.boss_show_cam_cfgs" +BOSS_SHOW_CAM_CFGS.nested_types = {} +BOSS_SHOW_CAM_CFGS.enum_types = {} +BOSS_SHOW_CAM_CFGS.fields = {BOSS_SHOW_CAM_CFGS_ITEMS_FIELD} +BOSS_SHOW_CAM_CFGS.is_extendable = false +BOSS_SHOW_CAM_CFGS.extensions = {} +BUFF_CFG_ID_FIELD.name = "id" +BUFF_CFG_ID_FIELD.full_name = ".ftcfg.buff_cfg.id" +BUFF_CFG_ID_FIELD.number = 1 +BUFF_CFG_ID_FIELD.index = 0 +BUFF_CFG_ID_FIELD.label = 2 +BUFF_CFG_ID_FIELD.has_default_value = false +BUFF_CFG_ID_FIELD.default_value = 0 +BUFF_CFG_ID_FIELD.type = 5 +BUFF_CFG_ID_FIELD.cpp_type = 1 + +BUFF_CFG_NAME_TIPS_FIELD.name = "name_tips" +BUFF_CFG_NAME_TIPS_FIELD.full_name = ".ftcfg.buff_cfg.name_tips" +BUFF_CFG_NAME_TIPS_FIELD.number = 2 +BUFF_CFG_NAME_TIPS_FIELD.index = 1 +BUFF_CFG_NAME_TIPS_FIELD.label = 2 +BUFF_CFG_NAME_TIPS_FIELD.has_default_value = false +BUFF_CFG_NAME_TIPS_FIELD.default_value = "" +BUFF_CFG_NAME_TIPS_FIELD.type = 9 +BUFF_CFG_NAME_TIPS_FIELD.cpp_type = 9 + +BUFF_CFG_DESC_TIPS_FIELD.name = "desc_tips" +BUFF_CFG_DESC_TIPS_FIELD.full_name = ".ftcfg.buff_cfg.desc_tips" +BUFF_CFG_DESC_TIPS_FIELD.number = 3 +BUFF_CFG_DESC_TIPS_FIELD.index = 2 +BUFF_CFG_DESC_TIPS_FIELD.label = 2 +BUFF_CFG_DESC_TIPS_FIELD.has_default_value = false +BUFF_CFG_DESC_TIPS_FIELD.default_value = "" +BUFF_CFG_DESC_TIPS_FIELD.type = 9 +BUFF_CFG_DESC_TIPS_FIELD.cpp_type = 9 + +BUFF_CFG_NAME_FIELD.name = "name" +BUFF_CFG_NAME_FIELD.full_name = ".ftcfg.buff_cfg.name" +BUFF_CFG_NAME_FIELD.number = 4 +BUFF_CFG_NAME_FIELD.index = 3 +BUFF_CFG_NAME_FIELD.label = 2 +BUFF_CFG_NAME_FIELD.has_default_value = false +BUFF_CFG_NAME_FIELD.default_value = 0 +BUFF_CFG_NAME_FIELD.type = 5 +BUFF_CFG_NAME_FIELD.cpp_type = 1 + +BUFF_CFG_DESC_FIELD.name = "desc" +BUFF_CFG_DESC_FIELD.full_name = ".ftcfg.buff_cfg.desc" +BUFF_CFG_DESC_FIELD.number = 5 +BUFF_CFG_DESC_FIELD.index = 4 +BUFF_CFG_DESC_FIELD.label = 2 +BUFF_CFG_DESC_FIELD.has_default_value = false +BUFF_CFG_DESC_FIELD.default_value = 0 +BUFF_CFG_DESC_FIELD.type = 5 +BUFF_CFG_DESC_FIELD.cpp_type = 1 + +BUFF_CFG_ICON_FIELD.name = "icon" +BUFF_CFG_ICON_FIELD.full_name = ".ftcfg.buff_cfg.icon" +BUFF_CFG_ICON_FIELD.number = 6 +BUFF_CFG_ICON_FIELD.index = 5 +BUFF_CFG_ICON_FIELD.label = 2 +BUFF_CFG_ICON_FIELD.has_default_value = false +BUFF_CFG_ICON_FIELD.default_value = 0 +BUFF_CFG_ICON_FIELD.type = 5 +BUFF_CFG_ICON_FIELD.cpp_type = 1 + +BUFF_CFG_VISUABLE_FIELD.name = "visuable" +BUFF_CFG_VISUABLE_FIELD.full_name = ".ftcfg.buff_cfg.visuable" +BUFF_CFG_VISUABLE_FIELD.number = 7 +BUFF_CFG_VISUABLE_FIELD.index = 6 +BUFF_CFG_VISUABLE_FIELD.label = 2 +BUFF_CFG_VISUABLE_FIELD.has_default_value = false +BUFF_CFG_VISUABLE_FIELD.default_value = false +BUFF_CFG_VISUABLE_FIELD.type = 8 +BUFF_CFG_VISUABLE_FIELD.cpp_type = 7 + +BUFF_CFG_COUNTDOWN_TYPE_FIELD.name = "countdown_type" +BUFF_CFG_COUNTDOWN_TYPE_FIELD.full_name = ".ftcfg.buff_cfg.countdown_type" +BUFF_CFG_COUNTDOWN_TYPE_FIELD.number = 8 +BUFF_CFG_COUNTDOWN_TYPE_FIELD.index = 7 +BUFF_CFG_COUNTDOWN_TYPE_FIELD.label = 2 +BUFF_CFG_COUNTDOWN_TYPE_FIELD.has_default_value = false +BUFF_CFG_COUNTDOWN_TYPE_FIELD.default_value = 0 +BUFF_CFG_COUNTDOWN_TYPE_FIELD.type = 5 +BUFF_CFG_COUNTDOWN_TYPE_FIELD.cpp_type = 1 + +BUFF_CFG_BUFF_TYPE_FIELD.name = "buff_type" +BUFF_CFG_BUFF_TYPE_FIELD.full_name = ".ftcfg.buff_cfg.buff_type" +BUFF_CFG_BUFF_TYPE_FIELD.number = 9 +BUFF_CFG_BUFF_TYPE_FIELD.index = 8 +BUFF_CFG_BUFF_TYPE_FIELD.label = 2 +BUFF_CFG_BUFF_TYPE_FIELD.has_default_value = false +BUFF_CFG_BUFF_TYPE_FIELD.default_value = 0 +BUFF_CFG_BUFF_TYPE_FIELD.type = 5 +BUFF_CFG_BUFF_TYPE_FIELD.cpp_type = 1 + +BUFF_CFG_EXIST_TIME_FIELD.name = "exist_time" +BUFF_CFG_EXIST_TIME_FIELD.full_name = ".ftcfg.buff_cfg.exist_time" +BUFF_CFG_EXIST_TIME_FIELD.number = 10 +BUFF_CFG_EXIST_TIME_FIELD.index = 9 +BUFF_CFG_EXIST_TIME_FIELD.label = 2 +BUFF_CFG_EXIST_TIME_FIELD.has_default_value = false +BUFF_CFG_EXIST_TIME_FIELD.default_value = 0 +BUFF_CFG_EXIST_TIME_FIELD.type = 5 +BUFF_CFG_EXIST_TIME_FIELD.cpp_type = 1 + +BUFF_CFG_ATK_LV_FIELD.name = "atk_lv" +BUFF_CFG_ATK_LV_FIELD.full_name = ".ftcfg.buff_cfg.atk_lv" +BUFF_CFG_ATK_LV_FIELD.number = 11 +BUFF_CFG_ATK_LV_FIELD.index = 10 +BUFF_CFG_ATK_LV_FIELD.label = 2 +BUFF_CFG_ATK_LV_FIELD.has_default_value = false +BUFF_CFG_ATK_LV_FIELD.default_value = 0 +BUFF_CFG_ATK_LV_FIELD.type = 5 +BUFF_CFG_ATK_LV_FIELD.cpp_type = 1 + +BUFF_CFG_AM_BEATEN_FIELD.name = "am_beaten" +BUFF_CFG_AM_BEATEN_FIELD.full_name = ".ftcfg.buff_cfg.am_beaten" +BUFF_CFG_AM_BEATEN_FIELD.number = 12 +BUFF_CFG_AM_BEATEN_FIELD.index = 11 +BUFF_CFG_AM_BEATEN_FIELD.label = 2 +BUFF_CFG_AM_BEATEN_FIELD.has_default_value = false +BUFF_CFG_AM_BEATEN_FIELD.default_value = "" +BUFF_CFG_AM_BEATEN_FIELD.type = 9 +BUFF_CFG_AM_BEATEN_FIELD.cpp_type = 9 + +BUFF_CFG_AM_BEATEN_EFF_FIELD.name = "am_beaten_eff" +BUFF_CFG_AM_BEATEN_EFF_FIELD.full_name = ".ftcfg.buff_cfg.am_beaten_eff" +BUFF_CFG_AM_BEATEN_EFF_FIELD.number = 13 +BUFF_CFG_AM_BEATEN_EFF_FIELD.index = 12 +BUFF_CFG_AM_BEATEN_EFF_FIELD.label = 2 +BUFF_CFG_AM_BEATEN_EFF_FIELD.has_default_value = false +BUFF_CFG_AM_BEATEN_EFF_FIELD.default_value = "" +BUFF_CFG_AM_BEATEN_EFF_FIELD.type = 9 +BUFF_CFG_AM_BEATEN_EFF_FIELD.cpp_type = 9 + +BUFF_CFG_BEATEN_TIME_FIELD.name = "beaten_time" +BUFF_CFG_BEATEN_TIME_FIELD.full_name = ".ftcfg.buff_cfg.beaten_time" +BUFF_CFG_BEATEN_TIME_FIELD.number = 14 +BUFF_CFG_BEATEN_TIME_FIELD.index = 13 +BUFF_CFG_BEATEN_TIME_FIELD.label = 2 +BUFF_CFG_BEATEN_TIME_FIELD.has_default_value = false +BUFF_CFG_BEATEN_TIME_FIELD.default_value = 0 +BUFF_CFG_BEATEN_TIME_FIELD.type = 5 +BUFF_CFG_BEATEN_TIME_FIELD.cpp_type = 1 + +BUFF_CFG_BEAT_BACK_TYPE_FIELD.name = "beat_back_type" +BUFF_CFG_BEAT_BACK_TYPE_FIELD.full_name = ".ftcfg.buff_cfg.beat_back_type" +BUFF_CFG_BEAT_BACK_TYPE_FIELD.number = 15 +BUFF_CFG_BEAT_BACK_TYPE_FIELD.index = 14 +BUFF_CFG_BEAT_BACK_TYPE_FIELD.label = 2 +BUFF_CFG_BEAT_BACK_TYPE_FIELD.has_default_value = false +BUFF_CFG_BEAT_BACK_TYPE_FIELD.default_value = 0 +BUFF_CFG_BEAT_BACK_TYPE_FIELD.type = 5 +BUFF_CFG_BEAT_BACK_TYPE_FIELD.cpp_type = 1 + +BUFF_CFG_BEAT_DIS_FIELD.name = "beat_dis" +BUFF_CFG_BEAT_DIS_FIELD.full_name = ".ftcfg.buff_cfg.beat_dis" +BUFF_CFG_BEAT_DIS_FIELD.number = 16 +BUFF_CFG_BEAT_DIS_FIELD.index = 15 +BUFF_CFG_BEAT_DIS_FIELD.label = 2 +BUFF_CFG_BEAT_DIS_FIELD.has_default_value = false +BUFF_CFG_BEAT_DIS_FIELD.default_value = 0.0 +BUFF_CFG_BEAT_DIS_FIELD.type = 2 +BUFF_CFG_BEAT_DIS_FIELD.cpp_type = 6 + +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.name = "beat_back_move_time" +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.full_name = ".ftcfg.buff_cfg.beat_back_move_time" +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.number = 17 +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.index = 16 +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.label = 2 +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.has_default_value = false +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.default_value = 0 +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.type = 5 +BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD.cpp_type = 1 + +BUFF_CFG_AM_DEAD_FIELD.name = "am_dead" +BUFF_CFG_AM_DEAD_FIELD.full_name = ".ftcfg.buff_cfg.am_dead" +BUFF_CFG_AM_DEAD_FIELD.number = 18 +BUFF_CFG_AM_DEAD_FIELD.index = 17 +BUFF_CFG_AM_DEAD_FIELD.label = 2 +BUFF_CFG_AM_DEAD_FIELD.has_default_value = false +BUFF_CFG_AM_DEAD_FIELD.default_value = 0 +BUFF_CFG_AM_DEAD_FIELD.type = 5 +BUFF_CFG_AM_DEAD_FIELD.cpp_type = 1 + +BUFF_CFG_DEAD_BACK_TYPE_FIELD.name = "dead_back_type" +BUFF_CFG_DEAD_BACK_TYPE_FIELD.full_name = ".ftcfg.buff_cfg.dead_back_type" +BUFF_CFG_DEAD_BACK_TYPE_FIELD.number = 19 +BUFF_CFG_DEAD_BACK_TYPE_FIELD.index = 18 +BUFF_CFG_DEAD_BACK_TYPE_FIELD.label = 2 +BUFF_CFG_DEAD_BACK_TYPE_FIELD.has_default_value = false +BUFF_CFG_DEAD_BACK_TYPE_FIELD.default_value = 0 +BUFF_CFG_DEAD_BACK_TYPE_FIELD.type = 5 +BUFF_CFG_DEAD_BACK_TYPE_FIELD.cpp_type = 1 + +BUFF_CFG_DEAD_DIS_FIELD.name = "dead_dis" +BUFF_CFG_DEAD_DIS_FIELD.full_name = ".ftcfg.buff_cfg.dead_dis" +BUFF_CFG_DEAD_DIS_FIELD.number = 20 +BUFF_CFG_DEAD_DIS_FIELD.index = 19 +BUFF_CFG_DEAD_DIS_FIELD.label = 2 +BUFF_CFG_DEAD_DIS_FIELD.has_default_value = false +BUFF_CFG_DEAD_DIS_FIELD.default_value = 0.0 +BUFF_CFG_DEAD_DIS_FIELD.type = 2 +BUFF_CFG_DEAD_DIS_FIELD.cpp_type = 6 + +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.name = "dead_back_move_time" +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.full_name = ".ftcfg.buff_cfg.dead_back_move_time" +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.number = 21 +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.index = 20 +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.label = 2 +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.has_default_value = false +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.default_value = 0 +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.type = 5 +BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD.cpp_type = 1 + +BUFF_CFG_CRIT_EFFECT_FIELD.name = "crit_effect" +BUFF_CFG_CRIT_EFFECT_FIELD.full_name = ".ftcfg.buff_cfg.crit_effect" +BUFF_CFG_CRIT_EFFECT_FIELD.number = 22 +BUFF_CFG_CRIT_EFFECT_FIELD.index = 21 +BUFF_CFG_CRIT_EFFECT_FIELD.label = 2 +BUFF_CFG_CRIT_EFFECT_FIELD.has_default_value = false +BUFF_CFG_CRIT_EFFECT_FIELD.default_value = 0 +BUFF_CFG_CRIT_EFFECT_FIELD.type = 5 +BUFF_CFG_CRIT_EFFECT_FIELD.cpp_type = 1 + +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.name = "dead_strike_effect" +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.full_name = ".ftcfg.buff_cfg.dead_strike_effect" +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.number = 23 +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.index = 22 +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.label = 2 +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.has_default_value = false +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.default_value = 0 +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.type = 5 +BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD.cpp_type = 1 + +BUFF_CFG_BUFF_WORD_FIELD.name = "buff_word" +BUFF_CFG_BUFF_WORD_FIELD.full_name = ".ftcfg.buff_cfg.buff_word" +BUFF_CFG_BUFF_WORD_FIELD.number = 24 +BUFF_CFG_BUFF_WORD_FIELD.index = 23 +BUFF_CFG_BUFF_WORD_FIELD.label = 2 +BUFF_CFG_BUFF_WORD_FIELD.has_default_value = false +BUFF_CFG_BUFF_WORD_FIELD.default_value = 0 +BUFF_CFG_BUFF_WORD_FIELD.type = 5 +BUFF_CFG_BUFF_WORD_FIELD.cpp_type = 1 + +BUFF_CFG_BUFF_IDLE_FIELD.name = "buff_idle" +BUFF_CFG_BUFF_IDLE_FIELD.full_name = ".ftcfg.buff_cfg.buff_idle" +BUFF_CFG_BUFF_IDLE_FIELD.number = 25 +BUFF_CFG_BUFF_IDLE_FIELD.index = 24 +BUFF_CFG_BUFF_IDLE_FIELD.label = 2 +BUFF_CFG_BUFF_IDLE_FIELD.has_default_value = false +BUFF_CFG_BUFF_IDLE_FIELD.default_value = "" +BUFF_CFG_BUFF_IDLE_FIELD.type = 9 +BUFF_CFG_BUFF_IDLE_FIELD.cpp_type = 9 + +BUFF_CFG_BUFF_RUN_FIELD.name = "buff_run" +BUFF_CFG_BUFF_RUN_FIELD.full_name = ".ftcfg.buff_cfg.buff_run" +BUFF_CFG_BUFF_RUN_FIELD.number = 26 +BUFF_CFG_BUFF_RUN_FIELD.index = 25 +BUFF_CFG_BUFF_RUN_FIELD.label = 2 +BUFF_CFG_BUFF_RUN_FIELD.has_default_value = false +BUFF_CFG_BUFF_RUN_FIELD.default_value = "" +BUFF_CFG_BUFF_RUN_FIELD.type = 9 +BUFF_CFG_BUFF_RUN_FIELD.cpp_type = 9 + +BUFF_CFG_BUFF_EFFECT_FIELD.name = "buff_effect" +BUFF_CFG_BUFF_EFFECT_FIELD.full_name = ".ftcfg.buff_cfg.buff_effect" +BUFF_CFG_BUFF_EFFECT_FIELD.number = 27 +BUFF_CFG_BUFF_EFFECT_FIELD.index = 26 +BUFF_CFG_BUFF_EFFECT_FIELD.label = 2 +BUFF_CFG_BUFF_EFFECT_FIELD.has_default_value = false +BUFF_CFG_BUFF_EFFECT_FIELD.default_value = "" +BUFF_CFG_BUFF_EFFECT_FIELD.type = 9 +BUFF_CFG_BUFF_EFFECT_FIELD.cpp_type = 9 + +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.name = "buff_trigger_effect" +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.full_name = ".ftcfg.buff_cfg.buff_trigger_effect" +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.number = 28 +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.index = 27 +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.label = 2 +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.has_default_value = false +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.default_value = "" +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.type = 9 +BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD.cpp_type = 9 + +BUFF_CFG.name = "buff_cfg" +BUFF_CFG.full_name = ".ftcfg.buff_cfg" +BUFF_CFG.nested_types = {} +BUFF_CFG.enum_types = {} +BUFF_CFG.fields = {BUFF_CFG_ID_FIELD, BUFF_CFG_NAME_TIPS_FIELD, BUFF_CFG_DESC_TIPS_FIELD, BUFF_CFG_NAME_FIELD, BUFF_CFG_DESC_FIELD, BUFF_CFG_ICON_FIELD, BUFF_CFG_VISUABLE_FIELD, BUFF_CFG_COUNTDOWN_TYPE_FIELD, BUFF_CFG_BUFF_TYPE_FIELD, BUFF_CFG_EXIST_TIME_FIELD, BUFF_CFG_ATK_LV_FIELD, BUFF_CFG_AM_BEATEN_FIELD, BUFF_CFG_AM_BEATEN_EFF_FIELD, BUFF_CFG_BEATEN_TIME_FIELD, BUFF_CFG_BEAT_BACK_TYPE_FIELD, BUFF_CFG_BEAT_DIS_FIELD, BUFF_CFG_BEAT_BACK_MOVE_TIME_FIELD, BUFF_CFG_AM_DEAD_FIELD, BUFF_CFG_DEAD_BACK_TYPE_FIELD, BUFF_CFG_DEAD_DIS_FIELD, BUFF_CFG_DEAD_BACK_MOVE_TIME_FIELD, BUFF_CFG_CRIT_EFFECT_FIELD, BUFF_CFG_DEAD_STRIKE_EFFECT_FIELD, BUFF_CFG_BUFF_WORD_FIELD, BUFF_CFG_BUFF_IDLE_FIELD, BUFF_CFG_BUFF_RUN_FIELD, BUFF_CFG_BUFF_EFFECT_FIELD, BUFF_CFG_BUFF_TRIGGER_EFFECT_FIELD} +BUFF_CFG.is_extendable = false +BUFF_CFG.extensions = {} +BUFF_CFGS_ITEMS_FIELD.name = "items" +BUFF_CFGS_ITEMS_FIELD.full_name = ".ftcfg.buff_cfgs.items" +BUFF_CFGS_ITEMS_FIELD.number = 1 +BUFF_CFGS_ITEMS_FIELD.index = 0 +BUFF_CFGS_ITEMS_FIELD.label = 3 +BUFF_CFGS_ITEMS_FIELD.has_default_value = false +BUFF_CFGS_ITEMS_FIELD.default_value = {} +BUFF_CFGS_ITEMS_FIELD.message_type = BUFF_CFG +BUFF_CFGS_ITEMS_FIELD.type = 11 +BUFF_CFGS_ITEMS_FIELD.cpp_type = 10 + +BUFF_CFGS.name = "buff_cfgs" +BUFF_CFGS.full_name = ".ftcfg.buff_cfgs" +BUFF_CFGS.nested_types = {} +BUFF_CFGS.enum_types = {} +BUFF_CFGS.fields = {BUFF_CFGS_ITEMS_FIELD} +BUFF_CFGS.is_extendable = false +BUFF_CFGS.extensions = {} +BUFF_EFFECT_CFG_ID_FIELD.name = "id" +BUFF_EFFECT_CFG_ID_FIELD.full_name = ".ftcfg.buff_effect_cfg.id" +BUFF_EFFECT_CFG_ID_FIELD.number = 1 +BUFF_EFFECT_CFG_ID_FIELD.index = 0 +BUFF_EFFECT_CFG_ID_FIELD.label = 2 +BUFF_EFFECT_CFG_ID_FIELD.has_default_value = false +BUFF_EFFECT_CFG_ID_FIELD.default_value = 0 +BUFF_EFFECT_CFG_ID_FIELD.type = 5 +BUFF_EFFECT_CFG_ID_FIELD.cpp_type = 1 + +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.name = "formula_id" +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.full_name = ".ftcfg.buff_effect_cfg.formula_id" +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.number = 2 +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.index = 1 +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.label = 2 +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.has_default_value = false +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.default_value = nil +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.enum_type = config_predefine_pb.EEFFECTFORMULATYPE +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.type = 14 +BUFF_EFFECT_CFG_FORMULA_ID_FIELD.cpp_type = 8 + +BUFF_EFFECT_CFG.name = "buff_effect_cfg" +BUFF_EFFECT_CFG.full_name = ".ftcfg.buff_effect_cfg" +BUFF_EFFECT_CFG.nested_types = {} +BUFF_EFFECT_CFG.enum_types = {} +BUFF_EFFECT_CFG.fields = {BUFF_EFFECT_CFG_ID_FIELD, BUFF_EFFECT_CFG_FORMULA_ID_FIELD} +BUFF_EFFECT_CFG.is_extendable = false +BUFF_EFFECT_CFG.extensions = {} +BUFF_EFFECT_CFGS_ITEMS_FIELD.name = "items" +BUFF_EFFECT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.buff_effect_cfgs.items" +BUFF_EFFECT_CFGS_ITEMS_FIELD.number = 1 +BUFF_EFFECT_CFGS_ITEMS_FIELD.index = 0 +BUFF_EFFECT_CFGS_ITEMS_FIELD.label = 3 +BUFF_EFFECT_CFGS_ITEMS_FIELD.has_default_value = false +BUFF_EFFECT_CFGS_ITEMS_FIELD.default_value = {} +BUFF_EFFECT_CFGS_ITEMS_FIELD.message_type = BUFF_EFFECT_CFG +BUFF_EFFECT_CFGS_ITEMS_FIELD.type = 11 +BUFF_EFFECT_CFGS_ITEMS_FIELD.cpp_type = 10 + +BUFF_EFFECT_CFGS.name = "buff_effect_cfgs" +BUFF_EFFECT_CFGS.full_name = ".ftcfg.buff_effect_cfgs" +BUFF_EFFECT_CFGS.nested_types = {} +BUFF_EFFECT_CFGS.enum_types = {} +BUFF_EFFECT_CFGS.fields = {BUFF_EFFECT_CFGS_ITEMS_FIELD} +BUFF_EFFECT_CFGS.is_extendable = false +BUFF_EFFECT_CFGS.extensions = {} +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.name = "prof_type" +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.full_name = ".ftcfg.char_default_cfg.prof_type" +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.number = 1 +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.index = 0 +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.default_value = nil +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.enum_type = config_predefine_pb.EPROFTYPE +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.type = 14 +CHAR_DEFAULT_CFG_PROF_TYPE_FIELD.cpp_type = 8 + +CHAR_DEFAULT_CFG_GENDER_FIELD.name = "gender" +CHAR_DEFAULT_CFG_GENDER_FIELD.full_name = ".ftcfg.char_default_cfg.gender" +CHAR_DEFAULT_CFG_GENDER_FIELD.number = 2 +CHAR_DEFAULT_CFG_GENDER_FIELD.index = 1 +CHAR_DEFAULT_CFG_GENDER_FIELD.label = 2 +CHAR_DEFAULT_CFG_GENDER_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_GENDER_FIELD.default_value = nil +CHAR_DEFAULT_CFG_GENDER_FIELD.enum_type = config_predefine_pb.EGENDERTYPE +CHAR_DEFAULT_CFG_GENDER_FIELD.type = 14 +CHAR_DEFAULT_CFG_GENDER_FIELD.cpp_type = 8 + +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.name = "show_index" +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.full_name = ".ftcfg.char_default_cfg.show_index" +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.number = 3 +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.index = 2 +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.label = 2 +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.default_value = 0 +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.type = 5 +CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.name = "prof_icon" +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.full_name = ".ftcfg.char_default_cfg.prof_icon" +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.number = 4 +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.index = 3 +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.default_value = "" +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.type = 9 +CHAR_DEFAULT_CFG_PROF_ICON_FIELD.cpp_type = 9 + +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.name = "model_path" +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.full_name = ".ftcfg.char_default_cfg.model_path" +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.number = 5 +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.index = 4 +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.label = 2 +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.default_value = 0 +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.type = 5 +CHAR_DEFAULT_CFG_MODEL_PATH_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.name = "profname_icon" +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.full_name = ".ftcfg.char_default_cfg.profname_icon" +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.number = 6 +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.index = 5 +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.default_value = "" +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.type = 9 +CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD.cpp_type = 9 + +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.name = "prop_stars" +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.full_name = ".ftcfg.char_default_cfg.prop_stars" +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.number = 7 +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.index = 6 +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.label = 3 +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.default_value = {} +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.type = 5 +CHAR_DEFAULT_CFG_PROP_STARS_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.name = "prof_head" +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.full_name = ".ftcfg.char_default_cfg.prof_head" +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.number = 8 +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.index = 7 +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.default_value = "" +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.type = 9 +CHAR_DEFAULT_CFG_PROF_HEAD_FIELD.cpp_type = 9 + +CHAR_DEFAULT_CFG_POS_DES_FIELD.name = "pos_des" +CHAR_DEFAULT_CFG_POS_DES_FIELD.full_name = ".ftcfg.char_default_cfg.pos_des" +CHAR_DEFAULT_CFG_POS_DES_FIELD.number = 9 +CHAR_DEFAULT_CFG_POS_DES_FIELD.index = 8 +CHAR_DEFAULT_CFG_POS_DES_FIELD.label = 2 +CHAR_DEFAULT_CFG_POS_DES_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_POS_DES_FIELD.default_value = 0 +CHAR_DEFAULT_CFG_POS_DES_FIELD.type = 5 +CHAR_DEFAULT_CFG_POS_DES_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.name = "prof_name" +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.full_name = ".ftcfg.char_default_cfg.prof_name" +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.number = 10 +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.index = 9 +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.default_value = 0 +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.type = 5 +CHAR_DEFAULT_CFG_PROF_NAME_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_PROF_RES_FIELD.name = "prof_res" +CHAR_DEFAULT_CFG_PROF_RES_FIELD.full_name = ".ftcfg.char_default_cfg.prof_res" +CHAR_DEFAULT_CFG_PROF_RES_FIELD.number = 11 +CHAR_DEFAULT_CFG_PROF_RES_FIELD.index = 10 +CHAR_DEFAULT_CFG_PROF_RES_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROF_RES_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROF_RES_FIELD.default_value = 0 +CHAR_DEFAULT_CFG_PROF_RES_FIELD.type = 5 +CHAR_DEFAULT_CFG_PROF_RES_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.name = "prof_anim1" +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.full_name = ".ftcfg.char_default_cfg.prof_anim1" +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.number = 12 +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.index = 11 +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.default_value = "" +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.type = 9 +CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD.cpp_type = 9 + +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.name = "prof_anim2" +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.full_name = ".ftcfg.char_default_cfg.prof_anim2" +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.number = 13 +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.index = 12 +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.label = 2 +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.default_value = "" +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.type = 9 +CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD.cpp_type = 9 + +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.name = "skill_res" +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.full_name = ".ftcfg.char_default_cfg.skill_res" +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.number = 14 +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.index = 13 +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.label = 2 +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.default_value = 0 +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.type = 5 +CHAR_DEFAULT_CFG_SKILL_RES_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.name = "random_cfg" +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.full_name = ".ftcfg.char_default_cfg.random_cfg" +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.number = 15 +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.index = 14 +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.label = 2 +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.default_value = "" +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.type = 9 +CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD.cpp_type = 9 + +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.name = "is_open" +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.full_name = ".ftcfg.char_default_cfg.is_open" +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.number = 16 +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.index = 15 +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.label = 2 +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.default_value = false +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.type = 8 +CHAR_DEFAULT_CFG_IS_OPEN_FIELD.cpp_type = 7 + +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.name = "default_parts" +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.full_name = ".ftcfg.char_default_cfg.default_parts" +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.number = 17 +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.index = 16 +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.label = 3 +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.default_value = {} +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.type = 5 +CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.name = "mp_type" +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.full_name = ".ftcfg.char_default_cfg.mp_type" +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.number = 18 +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.index = 17 +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.label = 2 +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.default_value = 0 +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.type = 5 +CHAR_DEFAULT_CFG_MP_TYPE_FIELD.cpp_type = 1 + +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.name = "is_minister" +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.full_name = ".ftcfg.char_default_cfg.is_minister" +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.number = 19 +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.index = 18 +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.label = 2 +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.has_default_value = false +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.default_value = false +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.type = 8 +CHAR_DEFAULT_CFG_IS_MINISTER_FIELD.cpp_type = 7 + +CHAR_DEFAULT_CFG.name = "char_default_cfg" +CHAR_DEFAULT_CFG.full_name = ".ftcfg.char_default_cfg" +CHAR_DEFAULT_CFG.nested_types = {} +CHAR_DEFAULT_CFG.enum_types = {} +CHAR_DEFAULT_CFG.fields = {CHAR_DEFAULT_CFG_PROF_TYPE_FIELD, CHAR_DEFAULT_CFG_GENDER_FIELD, CHAR_DEFAULT_CFG_SHOW_INDEX_FIELD, CHAR_DEFAULT_CFG_PROF_ICON_FIELD, CHAR_DEFAULT_CFG_MODEL_PATH_FIELD, CHAR_DEFAULT_CFG_PROFNAME_ICON_FIELD, CHAR_DEFAULT_CFG_PROP_STARS_FIELD, CHAR_DEFAULT_CFG_PROF_HEAD_FIELD, CHAR_DEFAULT_CFG_POS_DES_FIELD, CHAR_DEFAULT_CFG_PROF_NAME_FIELD, CHAR_DEFAULT_CFG_PROF_RES_FIELD, CHAR_DEFAULT_CFG_PROF_ANIM1_FIELD, CHAR_DEFAULT_CFG_PROF_ANIM2_FIELD, CHAR_DEFAULT_CFG_SKILL_RES_FIELD, CHAR_DEFAULT_CFG_RANDOM_CFG_FIELD, CHAR_DEFAULT_CFG_IS_OPEN_FIELD, CHAR_DEFAULT_CFG_DEFAULT_PARTS_FIELD, CHAR_DEFAULT_CFG_MP_TYPE_FIELD, CHAR_DEFAULT_CFG_IS_MINISTER_FIELD} +CHAR_DEFAULT_CFG.is_extendable = false +CHAR_DEFAULT_CFG.extensions = {} +CHAR_DEFAULT_CFGS_ITEMS_FIELD.name = "items" +CHAR_DEFAULT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.char_default_cfgs.items" +CHAR_DEFAULT_CFGS_ITEMS_FIELD.number = 1 +CHAR_DEFAULT_CFGS_ITEMS_FIELD.index = 0 +CHAR_DEFAULT_CFGS_ITEMS_FIELD.label = 3 +CHAR_DEFAULT_CFGS_ITEMS_FIELD.has_default_value = false +CHAR_DEFAULT_CFGS_ITEMS_FIELD.default_value = {} +CHAR_DEFAULT_CFGS_ITEMS_FIELD.message_type = CHAR_DEFAULT_CFG +CHAR_DEFAULT_CFGS_ITEMS_FIELD.type = 11 +CHAR_DEFAULT_CFGS_ITEMS_FIELD.cpp_type = 10 + +CHAR_DEFAULT_CFGS.name = "char_default_cfgs" +CHAR_DEFAULT_CFGS.full_name = ".ftcfg.char_default_cfgs" +CHAR_DEFAULT_CFGS.nested_types = {} +CHAR_DEFAULT_CFGS.enum_types = {} +CHAR_DEFAULT_CFGS.fields = {CHAR_DEFAULT_CFGS_ITEMS_FIELD} +CHAR_DEFAULT_CFGS.is_extendable = false +CHAR_DEFAULT_CFGS.extensions = {} +COOLDOWN_CFG_ID_FIELD.name = "id" +COOLDOWN_CFG_ID_FIELD.full_name = ".ftcfg.cooldown_cfg.id" +COOLDOWN_CFG_ID_FIELD.number = 1 +COOLDOWN_CFG_ID_FIELD.index = 0 +COOLDOWN_CFG_ID_FIELD.label = 2 +COOLDOWN_CFG_ID_FIELD.has_default_value = false +COOLDOWN_CFG_ID_FIELD.default_value = 0 +COOLDOWN_CFG_ID_FIELD.type = 5 +COOLDOWN_CFG_ID_FIELD.cpp_type = 1 + +COOLDOWN_CFG_TATOL_TIME_FIELD.name = "tatol_time" +COOLDOWN_CFG_TATOL_TIME_FIELD.full_name = ".ftcfg.cooldown_cfg.tatol_time" +COOLDOWN_CFG_TATOL_TIME_FIELD.number = 2 +COOLDOWN_CFG_TATOL_TIME_FIELD.index = 1 +COOLDOWN_CFG_TATOL_TIME_FIELD.label = 2 +COOLDOWN_CFG_TATOL_TIME_FIELD.has_default_value = false +COOLDOWN_CFG_TATOL_TIME_FIELD.default_value = 0 +COOLDOWN_CFG_TATOL_TIME_FIELD.type = 5 +COOLDOWN_CFG_TATOL_TIME_FIELD.cpp_type = 1 + +COOLDOWN_CFG.name = "cooldown_cfg" +COOLDOWN_CFG.full_name = ".ftcfg.cooldown_cfg" +COOLDOWN_CFG.nested_types = {} +COOLDOWN_CFG.enum_types = {} +COOLDOWN_CFG.fields = {COOLDOWN_CFG_ID_FIELD, COOLDOWN_CFG_TATOL_TIME_FIELD} +COOLDOWN_CFG.is_extendable = false +COOLDOWN_CFG.extensions = {} +COOLDOWN_CFGS_ITEMS_FIELD.name = "items" +COOLDOWN_CFGS_ITEMS_FIELD.full_name = ".ftcfg.cooldown_cfgs.items" +COOLDOWN_CFGS_ITEMS_FIELD.number = 1 +COOLDOWN_CFGS_ITEMS_FIELD.index = 0 +COOLDOWN_CFGS_ITEMS_FIELD.label = 3 +COOLDOWN_CFGS_ITEMS_FIELD.has_default_value = false +COOLDOWN_CFGS_ITEMS_FIELD.default_value = {} +COOLDOWN_CFGS_ITEMS_FIELD.message_type = COOLDOWN_CFG +COOLDOWN_CFGS_ITEMS_FIELD.type = 11 +COOLDOWN_CFGS_ITEMS_FIELD.cpp_type = 10 + +COOLDOWN_CFGS.name = "cooldown_cfgs" +COOLDOWN_CFGS.full_name = ".ftcfg.cooldown_cfgs" +COOLDOWN_CFGS.nested_types = {} +COOLDOWN_CFGS.enum_types = {} +COOLDOWN_CFGS.fields = {COOLDOWN_CFGS_ITEMS_FIELD} +COOLDOWN_CFGS.is_extendable = false +COOLDOWN_CFGS.extensions = {} +MONSTER_CFG_ID_FIELD.name = "id" +MONSTER_CFG_ID_FIELD.full_name = ".ftcfg.monster_cfg.id" +MONSTER_CFG_ID_FIELD.number = 1 +MONSTER_CFG_ID_FIELD.index = 0 +MONSTER_CFG_ID_FIELD.label = 2 +MONSTER_CFG_ID_FIELD.has_default_value = false +MONSTER_CFG_ID_FIELD.default_value = 0 +MONSTER_CFG_ID_FIELD.type = 13 +MONSTER_CFG_ID_FIELD.cpp_type = 3 + +MONSTER_CFG_SHOW_NAME_FIELD.name = "show_name" +MONSTER_CFG_SHOW_NAME_FIELD.full_name = ".ftcfg.monster_cfg.show_name" +MONSTER_CFG_SHOW_NAME_FIELD.number = 2 +MONSTER_CFG_SHOW_NAME_FIELD.index = 1 +MONSTER_CFG_SHOW_NAME_FIELD.label = 2 +MONSTER_CFG_SHOW_NAME_FIELD.has_default_value = false +MONSTER_CFG_SHOW_NAME_FIELD.default_value = 0 +MONSTER_CFG_SHOW_NAME_FIELD.type = 5 +MONSTER_CFG_SHOW_NAME_FIELD.cpp_type = 1 + +MONSTER_CFG_SHOW_ICON_FIELD.name = "show_icon" +MONSTER_CFG_SHOW_ICON_FIELD.full_name = ".ftcfg.monster_cfg.show_icon" +MONSTER_CFG_SHOW_ICON_FIELD.number = 3 +MONSTER_CFG_SHOW_ICON_FIELD.index = 2 +MONSTER_CFG_SHOW_ICON_FIELD.label = 2 +MONSTER_CFG_SHOW_ICON_FIELD.has_default_value = false +MONSTER_CFG_SHOW_ICON_FIELD.default_value = 0 +MONSTER_CFG_SHOW_ICON_FIELD.type = 5 +MONSTER_CFG_SHOW_ICON_FIELD.cpp_type = 1 + +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.name = "whether_showname" +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.full_name = ".ftcfg.monster_cfg.whether_showname" +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.number = 4 +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.index = 3 +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.label = 2 +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.has_default_value = false +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.default_value = 0 +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.type = 5 +MONSTER_CFG_WHETHER_SHOWNAME_FIELD.cpp_type = 1 + +MONSTER_CFG_MONSTER_DESC_FIELD.name = "monster_desc" +MONSTER_CFG_MONSTER_DESC_FIELD.full_name = ".ftcfg.monster_cfg.monster_desc" +MONSTER_CFG_MONSTER_DESC_FIELD.number = 5 +MONSTER_CFG_MONSTER_DESC_FIELD.index = 4 +MONSTER_CFG_MONSTER_DESC_FIELD.label = 2 +MONSTER_CFG_MONSTER_DESC_FIELD.has_default_value = false +MONSTER_CFG_MONSTER_DESC_FIELD.default_value = 0 +MONSTER_CFG_MONSTER_DESC_FIELD.type = 5 +MONSTER_CFG_MONSTER_DESC_FIELD.cpp_type = 1 + +MONSTER_CFG_TYPE_FIELD.name = "type" +MONSTER_CFG_TYPE_FIELD.full_name = ".ftcfg.monster_cfg.type" +MONSTER_CFG_TYPE_FIELD.number = 6 +MONSTER_CFG_TYPE_FIELD.index = 5 +MONSTER_CFG_TYPE_FIELD.label = 2 +MONSTER_CFG_TYPE_FIELD.has_default_value = false +MONSTER_CFG_TYPE_FIELD.default_value = 0 +MONSTER_CFG_TYPE_FIELD.type = 5 +MONSTER_CFG_TYPE_FIELD.cpp_type = 1 + +MONSTER_CFG_CAMP_FIELD.name = "camp" +MONSTER_CFG_CAMP_FIELD.full_name = ".ftcfg.monster_cfg.camp" +MONSTER_CFG_CAMP_FIELD.number = 7 +MONSTER_CFG_CAMP_FIELD.index = 6 +MONSTER_CFG_CAMP_FIELD.label = 2 +MONSTER_CFG_CAMP_FIELD.has_default_value = false +MONSTER_CFG_CAMP_FIELD.default_value = 0 +MONSTER_CFG_CAMP_FIELD.type = 5 +MONSTER_CFG_CAMP_FIELD.cpp_type = 1 + +MONSTER_CFG_CAMP_RELATION_FIELD.name = "camp_relation" +MONSTER_CFG_CAMP_RELATION_FIELD.full_name = ".ftcfg.monster_cfg.camp_relation" +MONSTER_CFG_CAMP_RELATION_FIELD.number = 8 +MONSTER_CFG_CAMP_RELATION_FIELD.index = 7 +MONSTER_CFG_CAMP_RELATION_FIELD.label = 2 +MONSTER_CFG_CAMP_RELATION_FIELD.has_default_value = false +MONSTER_CFG_CAMP_RELATION_FIELD.default_value = 0 +MONSTER_CFG_CAMP_RELATION_FIELD.type = 5 +MONSTER_CFG_CAMP_RELATION_FIELD.cpp_type = 1 + +MONSTER_CFG_PROPS_ID_FIELD.name = "props_id" +MONSTER_CFG_PROPS_ID_FIELD.full_name = ".ftcfg.monster_cfg.props_id" +MONSTER_CFG_PROPS_ID_FIELD.number = 9 +MONSTER_CFG_PROPS_ID_FIELD.index = 8 +MONSTER_CFG_PROPS_ID_FIELD.label = 2 +MONSTER_CFG_PROPS_ID_FIELD.has_default_value = false +MONSTER_CFG_PROPS_ID_FIELD.default_value = 0 +MONSTER_CFG_PROPS_ID_FIELD.type = 5 +MONSTER_CFG_PROPS_ID_FIELD.cpp_type = 1 + +MONSTER_CFG_LEVEL_FIELD.name = "level" +MONSTER_CFG_LEVEL_FIELD.full_name = ".ftcfg.monster_cfg.level" +MONSTER_CFG_LEVEL_FIELD.number = 10 +MONSTER_CFG_LEVEL_FIELD.index = 9 +MONSTER_CFG_LEVEL_FIELD.label = 2 +MONSTER_CFG_LEVEL_FIELD.has_default_value = false +MONSTER_CFG_LEVEL_FIELD.default_value = 0 +MONSTER_CFG_LEVEL_FIELD.type = 5 +MONSTER_CFG_LEVEL_FIELD.cpp_type = 1 + +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.name = "attack_level_limit" +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.full_name = ".ftcfg.monster_cfg.attack_level_limit" +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.number = 11 +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.index = 10 +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.label = 2 +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.has_default_value = false +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.default_value = 0 +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.type = 5 +MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD.cpp_type = 1 + +MONSTER_CFG_SKILLS_FIELD.name = "skills" +MONSTER_CFG_SKILLS_FIELD.full_name = ".ftcfg.monster_cfg.skills" +MONSTER_CFG_SKILLS_FIELD.number = 12 +MONSTER_CFG_SKILLS_FIELD.index = 11 +MONSTER_CFG_SKILLS_FIELD.label = 3 +MONSTER_CFG_SKILLS_FIELD.has_default_value = false +MONSTER_CFG_SKILLS_FIELD.default_value = {} +MONSTER_CFG_SKILLS_FIELD.type = 5 +MONSTER_CFG_SKILLS_FIELD.cpp_type = 1 + +MONSTER_CFG_AVATAR_FIELD.name = "avatar" +MONSTER_CFG_AVATAR_FIELD.full_name = ".ftcfg.monster_cfg.avatar" +MONSTER_CFG_AVATAR_FIELD.number = 13 +MONSTER_CFG_AVATAR_FIELD.index = 12 +MONSTER_CFG_AVATAR_FIELD.label = 2 +MONSTER_CFG_AVATAR_FIELD.has_default_value = false +MONSTER_CFG_AVATAR_FIELD.default_value = 0 +MONSTER_CFG_AVATAR_FIELD.type = 5 +MONSTER_CFG_AVATAR_FIELD.cpp_type = 1 + +MONSTER_CFG_AVATAR_SCALE_FIELD.name = "avatar_scale" +MONSTER_CFG_AVATAR_SCALE_FIELD.full_name = ".ftcfg.monster_cfg.avatar_scale" +MONSTER_CFG_AVATAR_SCALE_FIELD.number = 14 +MONSTER_CFG_AVATAR_SCALE_FIELD.index = 13 +MONSTER_CFG_AVATAR_SCALE_FIELD.label = 2 +MONSTER_CFG_AVATAR_SCALE_FIELD.has_default_value = false +MONSTER_CFG_AVATAR_SCALE_FIELD.default_value = 0.0 +MONSTER_CFG_AVATAR_SCALE_FIELD.type = 2 +MONSTER_CFG_AVATAR_SCALE_FIELD.cpp_type = 6 + +MONSTER_CFG_ACT_IDLE_FIELD.name = "act_idle" +MONSTER_CFG_ACT_IDLE_FIELD.full_name = ".ftcfg.monster_cfg.act_idle" +MONSTER_CFG_ACT_IDLE_FIELD.number = 15 +MONSTER_CFG_ACT_IDLE_FIELD.index = 14 +MONSTER_CFG_ACT_IDLE_FIELD.label = 2 +MONSTER_CFG_ACT_IDLE_FIELD.has_default_value = false +MONSTER_CFG_ACT_IDLE_FIELD.default_value = "" +MONSTER_CFG_ACT_IDLE_FIELD.type = 9 +MONSTER_CFG_ACT_IDLE_FIELD.cpp_type = 9 + +MONSTER_CFG_ACT_MOVE_FIELD.name = "act_move" +MONSTER_CFG_ACT_MOVE_FIELD.full_name = ".ftcfg.monster_cfg.act_move" +MONSTER_CFG_ACT_MOVE_FIELD.number = 16 +MONSTER_CFG_ACT_MOVE_FIELD.index = 15 +MONSTER_CFG_ACT_MOVE_FIELD.label = 2 +MONSTER_CFG_ACT_MOVE_FIELD.has_default_value = false +MONSTER_CFG_ACT_MOVE_FIELD.default_value = "" +MONSTER_CFG_ACT_MOVE_FIELD.type = 9 +MONSTER_CFG_ACT_MOVE_FIELD.cpp_type = 9 + +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.name = "act_idle_battle" +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.full_name = ".ftcfg.monster_cfg.act_idle_battle" +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.number = 17 +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.index = 16 +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.label = 2 +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.has_default_value = false +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.default_value = "" +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.type = 9 +MONSTER_CFG_ACT_IDLE_BATTLE_FIELD.cpp_type = 9 + +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.name = "act_move_battle" +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.full_name = ".ftcfg.monster_cfg.act_move_battle" +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.number = 18 +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.index = 17 +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.label = 2 +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.has_default_value = false +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.default_value = "" +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.type = 9 +MONSTER_CFG_ACT_MOVE_BATTLE_FIELD.cpp_type = 9 + +MONSTER_CFG_ACT_BORN_FIELD.name = "act_born" +MONSTER_CFG_ACT_BORN_FIELD.full_name = ".ftcfg.monster_cfg.act_born" +MONSTER_CFG_ACT_BORN_FIELD.number = 19 +MONSTER_CFG_ACT_BORN_FIELD.index = 18 +MONSTER_CFG_ACT_BORN_FIELD.label = 2 +MONSTER_CFG_ACT_BORN_FIELD.has_default_value = false +MONSTER_CFG_ACT_BORN_FIELD.default_value = "" +MONSTER_CFG_ACT_BORN_FIELD.type = 9 +MONSTER_CFG_ACT_BORN_FIELD.cpp_type = 9 + +MONSTER_CFG_BORN_TIME_FIELD.name = "born_time" +MONSTER_CFG_BORN_TIME_FIELD.full_name = ".ftcfg.monster_cfg.born_time" +MONSTER_CFG_BORN_TIME_FIELD.number = 20 +MONSTER_CFG_BORN_TIME_FIELD.index = 19 +MONSTER_CFG_BORN_TIME_FIELD.label = 2 +MONSTER_CFG_BORN_TIME_FIELD.has_default_value = false +MONSTER_CFG_BORN_TIME_FIELD.default_value = 0.0 +MONSTER_CFG_BORN_TIME_FIELD.type = 1 +MONSTER_CFG_BORN_TIME_FIELD.cpp_type = 5 + +MONSTER_CFG_ACT_DEAD_FIELD.name = "act_dead" +MONSTER_CFG_ACT_DEAD_FIELD.full_name = ".ftcfg.monster_cfg.act_dead" +MONSTER_CFG_ACT_DEAD_FIELD.number = 21 +MONSTER_CFG_ACT_DEAD_FIELD.index = 20 +MONSTER_CFG_ACT_DEAD_FIELD.label = 3 +MONSTER_CFG_ACT_DEAD_FIELD.has_default_value = false +MONSTER_CFG_ACT_DEAD_FIELD.default_value = {} +MONSTER_CFG_ACT_DEAD_FIELD.type = 9 +MONSTER_CFG_ACT_DEAD_FIELD.cpp_type = 9 + +MONSTER_CFG_RANGE_TYPE_FIELD.name = "range_type" +MONSTER_CFG_RANGE_TYPE_FIELD.full_name = ".ftcfg.monster_cfg.range_type" +MONSTER_CFG_RANGE_TYPE_FIELD.number = 22 +MONSTER_CFG_RANGE_TYPE_FIELD.index = 21 +MONSTER_CFG_RANGE_TYPE_FIELD.label = 2 +MONSTER_CFG_RANGE_TYPE_FIELD.has_default_value = false +MONSTER_CFG_RANGE_TYPE_FIELD.default_value = nil +MONSTER_CFG_RANGE_TYPE_FIELD.enum_type = config_predefine_pb.EAREATYPE +MONSTER_CFG_RANGE_TYPE_FIELD.type = 14 +MONSTER_CFG_RANGE_TYPE_FIELD.cpp_type = 8 + +MONSTER_CFG_RANGE_PARA1_FIELD.name = "range_para1" +MONSTER_CFG_RANGE_PARA1_FIELD.full_name = ".ftcfg.monster_cfg.range_para1" +MONSTER_CFG_RANGE_PARA1_FIELD.number = 23 +MONSTER_CFG_RANGE_PARA1_FIELD.index = 22 +MONSTER_CFG_RANGE_PARA1_FIELD.label = 2 +MONSTER_CFG_RANGE_PARA1_FIELD.has_default_value = false +MONSTER_CFG_RANGE_PARA1_FIELD.default_value = 0.0 +MONSTER_CFG_RANGE_PARA1_FIELD.type = 2 +MONSTER_CFG_RANGE_PARA1_FIELD.cpp_type = 6 + +MONSTER_CFG_RANGE_PARA2_FIELD.name = "range_para2" +MONSTER_CFG_RANGE_PARA2_FIELD.full_name = ".ftcfg.monster_cfg.range_para2" +MONSTER_CFG_RANGE_PARA2_FIELD.number = 24 +MONSTER_CFG_RANGE_PARA2_FIELD.index = 23 +MONSTER_CFG_RANGE_PARA2_FIELD.label = 2 +MONSTER_CFG_RANGE_PARA2_FIELD.has_default_value = false +MONSTER_CFG_RANGE_PARA2_FIELD.default_value = 0.0 +MONSTER_CFG_RANGE_PARA2_FIELD.type = 2 +MONSTER_CFG_RANGE_PARA2_FIELD.cpp_type = 6 + +MONSTER_CFG_DROP_FIELD.name = "drop" +MONSTER_CFG_DROP_FIELD.full_name = ".ftcfg.monster_cfg.drop" +MONSTER_CFG_DROP_FIELD.number = 25 +MONSTER_CFG_DROP_FIELD.index = 24 +MONSTER_CFG_DROP_FIELD.label = 2 +MONSTER_CFG_DROP_FIELD.has_default_value = false +MONSTER_CFG_DROP_FIELD.default_value = 0 +MONSTER_CFG_DROP_FIELD.type = 5 +MONSTER_CFG_DROP_FIELD.cpp_type = 1 + +MONSTER_CFG_HEAD_PORTRAIT_FIELD.name = "head_portrait" +MONSTER_CFG_HEAD_PORTRAIT_FIELD.full_name = ".ftcfg.monster_cfg.head_portrait" +MONSTER_CFG_HEAD_PORTRAIT_FIELD.number = 26 +MONSTER_CFG_HEAD_PORTRAIT_FIELD.index = 25 +MONSTER_CFG_HEAD_PORTRAIT_FIELD.label = 2 +MONSTER_CFG_HEAD_PORTRAIT_FIELD.has_default_value = false +MONSTER_CFG_HEAD_PORTRAIT_FIELD.default_value = 0 +MONSTER_CFG_HEAD_PORTRAIT_FIELD.type = 5 +MONSTER_CFG_HEAD_PORTRAIT_FIELD.cpp_type = 1 + +MONSTER_CFG_RADIUS_FIELD.name = "radius" +MONSTER_CFG_RADIUS_FIELD.full_name = ".ftcfg.monster_cfg.radius" +MONSTER_CFG_RADIUS_FIELD.number = 27 +MONSTER_CFG_RADIUS_FIELD.index = 26 +MONSTER_CFG_RADIUS_FIELD.label = 2 +MONSTER_CFG_RADIUS_FIELD.has_default_value = false +MONSTER_CFG_RADIUS_FIELD.default_value = 0.0 +MONSTER_CFG_RADIUS_FIELD.type = 2 +MONSTER_CFG_RADIUS_FIELD.cpp_type = 6 + +MONSTER_CFG_MONSTER_TYPE_FIELD.name = "monster_type" +MONSTER_CFG_MONSTER_TYPE_FIELD.full_name = ".ftcfg.monster_cfg.monster_type" +MONSTER_CFG_MONSTER_TYPE_FIELD.number = 28 +MONSTER_CFG_MONSTER_TYPE_FIELD.index = 27 +MONSTER_CFG_MONSTER_TYPE_FIELD.label = 2 +MONSTER_CFG_MONSTER_TYPE_FIELD.has_default_value = false +MONSTER_CFG_MONSTER_TYPE_FIELD.default_value = 0 +MONSTER_CFG_MONSTER_TYPE_FIELD.type = 5 +MONSTER_CFG_MONSTER_TYPE_FIELD.cpp_type = 1 + +MONSTER_CFG_LOCK_SIZE_FIELD.name = "lock_size" +MONSTER_CFG_LOCK_SIZE_FIELD.full_name = ".ftcfg.monster_cfg.lock_size" +MONSTER_CFG_LOCK_SIZE_FIELD.number = 29 +MONSTER_CFG_LOCK_SIZE_FIELD.index = 28 +MONSTER_CFG_LOCK_SIZE_FIELD.label = 2 +MONSTER_CFG_LOCK_SIZE_FIELD.has_default_value = false +MONSTER_CFG_LOCK_SIZE_FIELD.default_value = 0.0 +MONSTER_CFG_LOCK_SIZE_FIELD.type = 2 +MONSTER_CFG_LOCK_SIZE_FIELD.cpp_type = 6 + +MONSTER_CFG_HALO_SWITCH_FIELD.name = "halo_switch" +MONSTER_CFG_HALO_SWITCH_FIELD.full_name = ".ftcfg.monster_cfg.halo_switch" +MONSTER_CFG_HALO_SWITCH_FIELD.number = 30 +MONSTER_CFG_HALO_SWITCH_FIELD.index = 29 +MONSTER_CFG_HALO_SWITCH_FIELD.label = 2 +MONSTER_CFG_HALO_SWITCH_FIELD.has_default_value = false +MONSTER_CFG_HALO_SWITCH_FIELD.default_value = 0.0 +MONSTER_CFG_HALO_SWITCH_FIELD.type = 2 +MONSTER_CFG_HALO_SWITCH_FIELD.cpp_type = 6 + +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.name = "activity_exclusive" +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.full_name = ".ftcfg.monster_cfg.activity_exclusive" +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.number = 31 +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.index = 30 +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.label = 2 +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.has_default_value = false +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.default_value = 0 +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.type = 5 +MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD.cpp_type = 1 + +MONSTER_CFG.name = "monster_cfg" +MONSTER_CFG.full_name = ".ftcfg.monster_cfg" +MONSTER_CFG.nested_types = {} +MONSTER_CFG.enum_types = {} +MONSTER_CFG.fields = {MONSTER_CFG_ID_FIELD, MONSTER_CFG_SHOW_NAME_FIELD, MONSTER_CFG_SHOW_ICON_FIELD, MONSTER_CFG_WHETHER_SHOWNAME_FIELD, MONSTER_CFG_MONSTER_DESC_FIELD, MONSTER_CFG_TYPE_FIELD, MONSTER_CFG_CAMP_FIELD, MONSTER_CFG_CAMP_RELATION_FIELD, MONSTER_CFG_PROPS_ID_FIELD, MONSTER_CFG_LEVEL_FIELD, MONSTER_CFG_ATTACK_LEVEL_LIMIT_FIELD, MONSTER_CFG_SKILLS_FIELD, MONSTER_CFG_AVATAR_FIELD, MONSTER_CFG_AVATAR_SCALE_FIELD, MONSTER_CFG_ACT_IDLE_FIELD, MONSTER_CFG_ACT_MOVE_FIELD, MONSTER_CFG_ACT_IDLE_BATTLE_FIELD, MONSTER_CFG_ACT_MOVE_BATTLE_FIELD, MONSTER_CFG_ACT_BORN_FIELD, MONSTER_CFG_BORN_TIME_FIELD, MONSTER_CFG_ACT_DEAD_FIELD, MONSTER_CFG_RANGE_TYPE_FIELD, MONSTER_CFG_RANGE_PARA1_FIELD, MONSTER_CFG_RANGE_PARA2_FIELD, MONSTER_CFG_DROP_FIELD, MONSTER_CFG_HEAD_PORTRAIT_FIELD, MONSTER_CFG_RADIUS_FIELD, MONSTER_CFG_MONSTER_TYPE_FIELD, MONSTER_CFG_LOCK_SIZE_FIELD, MONSTER_CFG_HALO_SWITCH_FIELD, MONSTER_CFG_ACTIVITY_EXCLUSIVE_FIELD} +MONSTER_CFG.is_extendable = false +MONSTER_CFG.extensions = {} +MONSTER_CFGS_ITEMS_FIELD.name = "items" +MONSTER_CFGS_ITEMS_FIELD.full_name = ".ftcfg.monster_cfgs.items" +MONSTER_CFGS_ITEMS_FIELD.number = 1 +MONSTER_CFGS_ITEMS_FIELD.index = 0 +MONSTER_CFGS_ITEMS_FIELD.label = 3 +MONSTER_CFGS_ITEMS_FIELD.has_default_value = false +MONSTER_CFGS_ITEMS_FIELD.default_value = {} +MONSTER_CFGS_ITEMS_FIELD.message_type = MONSTER_CFG +MONSTER_CFGS_ITEMS_FIELD.type = 11 +MONSTER_CFGS_ITEMS_FIELD.cpp_type = 10 + +MONSTER_CFGS.name = "monster_cfgs" +MONSTER_CFGS.full_name = ".ftcfg.monster_cfgs" +MONSTER_CFGS.nested_types = {} +MONSTER_CFGS.enum_types = {} +MONSTER_CFGS.fields = {MONSTER_CFGS_ITEMS_FIELD} +MONSTER_CFGS.is_extendable = false +MONSTER_CFGS.extensions = {} +BUSINESS_ACTIVITY_CFG_GUID_FIELD.name = "guid" +BUSINESS_ACTIVITY_CFG_GUID_FIELD.full_name = ".ftcfg.business_activity_cfg.guid" +BUSINESS_ACTIVITY_CFG_GUID_FIELD.number = 1 +BUSINESS_ACTIVITY_CFG_GUID_FIELD.index = 0 +BUSINESS_ACTIVITY_CFG_GUID_FIELD.label = 2 +BUSINESS_ACTIVITY_CFG_GUID_FIELD.has_default_value = false +BUSINESS_ACTIVITY_CFG_GUID_FIELD.default_value = 0 +BUSINESS_ACTIVITY_CFG_GUID_FIELD.type = 13 +BUSINESS_ACTIVITY_CFG_GUID_FIELD.cpp_type = 3 + +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.name = "business_id" +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.full_name = ".ftcfg.business_activity_cfg.business_id" +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.number = 2 +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.index = 1 +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.label = 2 +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.has_default_value = false +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.default_value = 0 +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.type = 13 +BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD.cpp_type = 3 + +BUSINESS_ACTIVITY_CFG.name = "business_activity_cfg" +BUSINESS_ACTIVITY_CFG.full_name = ".ftcfg.business_activity_cfg" +BUSINESS_ACTIVITY_CFG.nested_types = {} +BUSINESS_ACTIVITY_CFG.enum_types = {} +BUSINESS_ACTIVITY_CFG.fields = {BUSINESS_ACTIVITY_CFG_GUID_FIELD, BUSINESS_ACTIVITY_CFG_BUSINESS_ID_FIELD} +BUSINESS_ACTIVITY_CFG.is_extendable = false +BUSINESS_ACTIVITY_CFG.extensions = {} +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.name = "items" +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.business_activity_cfgs.items" +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.number = 1 +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.index = 0 +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.label = 3 +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.has_default_value = false +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.default_value = {} +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.message_type = BUSINESS_ACTIVITY_CFG +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.type = 11 +BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD.cpp_type = 10 + +BUSINESS_ACTIVITY_CFGS.name = "business_activity_cfgs" +BUSINESS_ACTIVITY_CFGS.full_name = ".ftcfg.business_activity_cfgs" +BUSINESS_ACTIVITY_CFGS.nested_types = {} +BUSINESS_ACTIVITY_CFGS.enum_types = {} +BUSINESS_ACTIVITY_CFGS.fields = {BUSINESS_ACTIVITY_CFGS_ITEMS_FIELD} +BUSINESS_ACTIVITY_CFGS.is_extendable = false +BUSINESS_ACTIVITY_CFGS.extensions = {} +ACTIVITY_CFG_GUID_FIELD.name = "guid" +ACTIVITY_CFG_GUID_FIELD.full_name = ".ftcfg.activity_cfg.guid" +ACTIVITY_CFG_GUID_FIELD.number = 1 +ACTIVITY_CFG_GUID_FIELD.index = 0 +ACTIVITY_CFG_GUID_FIELD.label = 2 +ACTIVITY_CFG_GUID_FIELD.has_default_value = false +ACTIVITY_CFG_GUID_FIELD.default_value = 0 +ACTIVITY_CFG_GUID_FIELD.type = 13 +ACTIVITY_CFG_GUID_FIELD.cpp_type = 3 + +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.name = "dactivity_name" +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.full_name = ".ftcfg.activity_cfg.dactivity_name" +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.number = 2 +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.index = 1 +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.label = 2 +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.has_default_value = false +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.default_value = 0 +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.type = 5 +ACTIVITY_CFG_DACTIVITY_NAME_FIELD.cpp_type = 1 + +ACTIVITY_CFG_NAME_FIELD.name = "name" +ACTIVITY_CFG_NAME_FIELD.full_name = ".ftcfg.activity_cfg.name" +ACTIVITY_CFG_NAME_FIELD.number = 3 +ACTIVITY_CFG_NAME_FIELD.index = 2 +ACTIVITY_CFG_NAME_FIELD.label = 2 +ACTIVITY_CFG_NAME_FIELD.has_default_value = false +ACTIVITY_CFG_NAME_FIELD.default_value = "" +ACTIVITY_CFG_NAME_FIELD.type = 9 +ACTIVITY_CFG_NAME_FIELD.cpp_type = 9 + +ACTIVITY_CFG_TYPE_FIELD.name = "type" +ACTIVITY_CFG_TYPE_FIELD.full_name = ".ftcfg.activity_cfg.type" +ACTIVITY_CFG_TYPE_FIELD.number = 4 +ACTIVITY_CFG_TYPE_FIELD.index = 3 +ACTIVITY_CFG_TYPE_FIELD.label = 2 +ACTIVITY_CFG_TYPE_FIELD.has_default_value = false +ACTIVITY_CFG_TYPE_FIELD.default_value = 0 +ACTIVITY_CFG_TYPE_FIELD.type = 13 +ACTIVITY_CFG_TYPE_FIELD.cpp_type = 3 + +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.name = "activity_play" +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.full_name = ".ftcfg.activity_cfg.activity_play" +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.number = 5 +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.index = 4 +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.label = 2 +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.has_default_value = false +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.default_value = 0 +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.type = 13 +ACTIVITY_CFG_ACTIVITY_PLAY_FIELD.cpp_type = 3 + +ACTIVITY_CFG_NEED_LEVEL_FIELD.name = "need_level" +ACTIVITY_CFG_NEED_LEVEL_FIELD.full_name = ".ftcfg.activity_cfg.need_level" +ACTIVITY_CFG_NEED_LEVEL_FIELD.number = 6 +ACTIVITY_CFG_NEED_LEVEL_FIELD.index = 5 +ACTIVITY_CFG_NEED_LEVEL_FIELD.label = 2 +ACTIVITY_CFG_NEED_LEVEL_FIELD.has_default_value = false +ACTIVITY_CFG_NEED_LEVEL_FIELD.default_value = 0 +ACTIVITY_CFG_NEED_LEVEL_FIELD.type = 13 +ACTIVITY_CFG_NEED_LEVEL_FIELD.cpp_type = 3 + +ACTIVITY_CFG_TOTAL_TIMES_FIELD.name = "total_times" +ACTIVITY_CFG_TOTAL_TIMES_FIELD.full_name = ".ftcfg.activity_cfg.total_times" +ACTIVITY_CFG_TOTAL_TIMES_FIELD.number = 7 +ACTIVITY_CFG_TOTAL_TIMES_FIELD.index = 6 +ACTIVITY_CFG_TOTAL_TIMES_FIELD.label = 2 +ACTIVITY_CFG_TOTAL_TIMES_FIELD.has_default_value = false +ACTIVITY_CFG_TOTAL_TIMES_FIELD.default_value = 0 +ACTIVITY_CFG_TOTAL_TIMES_FIELD.type = 13 +ACTIVITY_CFG_TOTAL_TIMES_FIELD.cpp_type = 3 + +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.name = "activation_point" +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.full_name = ".ftcfg.activity_cfg.activation_point" +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.number = 8 +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.index = 7 +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.label = 2 +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.has_default_value = false +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.default_value = 0 +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.type = 13 +ACTIVITY_CFG_ACTIVATION_POINT_FIELD.cpp_type = 3 + +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.name = "activation_toplimit" +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.full_name = ".ftcfg.activity_cfg.activation_toplimit" +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.number = 9 +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.index = 8 +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.label = 2 +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.has_default_value = false +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.default_value = 0 +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.type = 13 +ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD.cpp_type = 3 + +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.name = "activation_mode" +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.full_name = ".ftcfg.activity_cfg.activation_mode" +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.number = 10 +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.index = 9 +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.label = 2 +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.has_default_value = false +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.default_value = 0 +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.type = 13 +ACTIVITY_CFG_ACTIVATION_MODE_FIELD.cpp_type = 3 + +ACTIVITY_CFG_START_WEEKS_FIELD.name = "start_weeks" +ACTIVITY_CFG_START_WEEKS_FIELD.full_name = ".ftcfg.activity_cfg.start_weeks" +ACTIVITY_CFG_START_WEEKS_FIELD.number = 11 +ACTIVITY_CFG_START_WEEKS_FIELD.index = 10 +ACTIVITY_CFG_START_WEEKS_FIELD.label = 3 +ACTIVITY_CFG_START_WEEKS_FIELD.has_default_value = false +ACTIVITY_CFG_START_WEEKS_FIELD.default_value = {} +ACTIVITY_CFG_START_WEEKS_FIELD.type = 13 +ACTIVITY_CFG_START_WEEKS_FIELD.cpp_type = 3 + +ACTIVITY_CFG_SIGNUP_TIME_FIELD.name = "signup_time" +ACTIVITY_CFG_SIGNUP_TIME_FIELD.full_name = ".ftcfg.activity_cfg.signup_time" +ACTIVITY_CFG_SIGNUP_TIME_FIELD.number = 12 +ACTIVITY_CFG_SIGNUP_TIME_FIELD.index = 11 +ACTIVITY_CFG_SIGNUP_TIME_FIELD.label = 3 +ACTIVITY_CFG_SIGNUP_TIME_FIELD.has_default_value = false +ACTIVITY_CFG_SIGNUP_TIME_FIELD.default_value = {} +ACTIVITY_CFG_SIGNUP_TIME_FIELD.type = 9 +ACTIVITY_CFG_SIGNUP_TIME_FIELD.cpp_type = 9 + +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.name = "signdown_time" +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.full_name = ".ftcfg.activity_cfg.signdown_time" +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.number = 13 +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.index = 12 +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.label = 3 +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.has_default_value = false +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.default_value = {} +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.type = 9 +ACTIVITY_CFG_SIGNDOWN_TIME_FIELD.cpp_type = 9 + +ACTIVITY_CFG_BEGIN_TIME_FIELD.name = "begin_time" +ACTIVITY_CFG_BEGIN_TIME_FIELD.full_name = ".ftcfg.activity_cfg.begin_time" +ACTIVITY_CFG_BEGIN_TIME_FIELD.number = 14 +ACTIVITY_CFG_BEGIN_TIME_FIELD.index = 13 +ACTIVITY_CFG_BEGIN_TIME_FIELD.label = 3 +ACTIVITY_CFG_BEGIN_TIME_FIELD.has_default_value = false +ACTIVITY_CFG_BEGIN_TIME_FIELD.default_value = {} +ACTIVITY_CFG_BEGIN_TIME_FIELD.type = 9 +ACTIVITY_CFG_BEGIN_TIME_FIELD.cpp_type = 9 + +ACTIVITY_CFG_END_TIME_FIELD.name = "end_time" +ACTIVITY_CFG_END_TIME_FIELD.full_name = ".ftcfg.activity_cfg.end_time" +ACTIVITY_CFG_END_TIME_FIELD.number = 15 +ACTIVITY_CFG_END_TIME_FIELD.index = 14 +ACTIVITY_CFG_END_TIME_FIELD.label = 3 +ACTIVITY_CFG_END_TIME_FIELD.has_default_value = false +ACTIVITY_CFG_END_TIME_FIELD.default_value = {} +ACTIVITY_CFG_END_TIME_FIELD.type = 9 +ACTIVITY_CFG_END_TIME_FIELD.cpp_type = 9 + +ACTIVITY_CFG_DAILY_TYPE_FIELD.name = "daily_type" +ACTIVITY_CFG_DAILY_TYPE_FIELD.full_name = ".ftcfg.activity_cfg.daily_type" +ACTIVITY_CFG_DAILY_TYPE_FIELD.number = 16 +ACTIVITY_CFG_DAILY_TYPE_FIELD.index = 15 +ACTIVITY_CFG_DAILY_TYPE_FIELD.label = 2 +ACTIVITY_CFG_DAILY_TYPE_FIELD.has_default_value = false +ACTIVITY_CFG_DAILY_TYPE_FIELD.default_value = 0 +ACTIVITY_CFG_DAILY_TYPE_FIELD.type = 5 +ACTIVITY_CFG_DAILY_TYPE_FIELD.cpp_type = 1 + +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.name = "whether_battle" +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.full_name = ".ftcfg.activity_cfg.whether_battle" +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.number = 17 +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.index = 16 +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.label = 2 +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.has_default_value = false +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.default_value = 0 +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.type = 5 +ACTIVITY_CFG_WHETHER_BATTLE_FIELD.cpp_type = 1 + +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.name = "dactivity_icon" +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.full_name = ".ftcfg.activity_cfg.dactivity_icon" +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.number = 18 +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.index = 17 +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.label = 2 +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.has_default_value = false +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.default_value = 0 +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.type = 5 +ACTIVITY_CFG_DACTIVITY_ICON_FIELD.cpp_type = 1 + +ACTIVITY_CFG_PARTAKE_MODE_FIELD.name = "partake_mode" +ACTIVITY_CFG_PARTAKE_MODE_FIELD.full_name = ".ftcfg.activity_cfg.partake_mode" +ACTIVITY_CFG_PARTAKE_MODE_FIELD.number = 19 +ACTIVITY_CFG_PARTAKE_MODE_FIELD.index = 18 +ACTIVITY_CFG_PARTAKE_MODE_FIELD.label = 2 +ACTIVITY_CFG_PARTAKE_MODE_FIELD.has_default_value = false +ACTIVITY_CFG_PARTAKE_MODE_FIELD.default_value = 0 +ACTIVITY_CFG_PARTAKE_MODE_FIELD.type = 5 +ACTIVITY_CFG_PARTAKE_MODE_FIELD.cpp_type = 1 + +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.name = "partake_subtype" +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.full_name = ".ftcfg.activity_cfg.partake_subtype" +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.number = 20 +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.index = 19 +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.label = 2 +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.has_default_value = false +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.default_value = 0 +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.type = 5 +ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD.cpp_type = 1 + +ACTIVITY_CFG_TICKETITEM_ID_FIELD.name = "ticketitem_id" +ACTIVITY_CFG_TICKETITEM_ID_FIELD.full_name = ".ftcfg.activity_cfg.ticketitem_id" +ACTIVITY_CFG_TICKETITEM_ID_FIELD.number = 21 +ACTIVITY_CFG_TICKETITEM_ID_FIELD.index = 20 +ACTIVITY_CFG_TICKETITEM_ID_FIELD.label = 2 +ACTIVITY_CFG_TICKETITEM_ID_FIELD.has_default_value = false +ACTIVITY_CFG_TICKETITEM_ID_FIELD.default_value = 0 +ACTIVITY_CFG_TICKETITEM_ID_FIELD.type = 5 +ACTIVITY_CFG_TICKETITEM_ID_FIELD.cpp_type = 1 + +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.name = "ticketitem_count" +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.full_name = ".ftcfg.activity_cfg.ticketitem_count" +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.number = 22 +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.index = 21 +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.label = 2 +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.has_default_value = false +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.default_value = 0 +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.type = 5 +ACTIVITY_CFG_TICKETITEM_COUNT_FIELD.cpp_type = 1 + +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.name = "conduct_sceneid" +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.full_name = ".ftcfg.activity_cfg.conduct_sceneid" +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.number = 23 +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.index = 22 +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.label = 2 +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.has_default_value = false +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.default_value = 0 +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.type = 5 +ACTIVITY_CFG_CONDUCT_SCENEID_FIELD.cpp_type = 1 + +ACTIVITY_CFG_FINDING_PATH_FIELD.name = "finding_path" +ACTIVITY_CFG_FINDING_PATH_FIELD.full_name = ".ftcfg.activity_cfg.finding_path" +ACTIVITY_CFG_FINDING_PATH_FIELD.number = 24 +ACTIVITY_CFG_FINDING_PATH_FIELD.index = 23 +ACTIVITY_CFG_FINDING_PATH_FIELD.label = 2 +ACTIVITY_CFG_FINDING_PATH_FIELD.has_default_value = false +ACTIVITY_CFG_FINDING_PATH_FIELD.default_value = 0 +ACTIVITY_CFG_FINDING_PATH_FIELD.type = 5 +ACTIVITY_CFG_FINDING_PATH_FIELD.cpp_type = 1 + +ACTIVITY_CFG_OPEN_FUNC_FIELD.name = "open_func" +ACTIVITY_CFG_OPEN_FUNC_FIELD.full_name = ".ftcfg.activity_cfg.open_func" +ACTIVITY_CFG_OPEN_FUNC_FIELD.number = 25 +ACTIVITY_CFG_OPEN_FUNC_FIELD.index = 24 +ACTIVITY_CFG_OPEN_FUNC_FIELD.label = 2 +ACTIVITY_CFG_OPEN_FUNC_FIELD.has_default_value = false +ACTIVITY_CFG_OPEN_FUNC_FIELD.default_value = nil +ACTIVITY_CFG_OPEN_FUNC_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +ACTIVITY_CFG_OPEN_FUNC_FIELD.type = 14 +ACTIVITY_CFG_OPEN_FUNC_FIELD.cpp_type = 8 + +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.name = "open_func_param" +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.full_name = ".ftcfg.activity_cfg.open_func_param" +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.number = 26 +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.index = 25 +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.label = 2 +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.has_default_value = false +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.default_value = 0 +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.type = 5 +ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD.cpp_type = 1 + +ACTIVITY_CFG_ITEM_ID_FIELD.name = "item_id" +ACTIVITY_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.activity_cfg.item_id" +ACTIVITY_CFG_ITEM_ID_FIELD.number = 27 +ACTIVITY_CFG_ITEM_ID_FIELD.index = 26 +ACTIVITY_CFG_ITEM_ID_FIELD.label = 2 +ACTIVITY_CFG_ITEM_ID_FIELD.has_default_value = false +ACTIVITY_CFG_ITEM_ID_FIELD.default_value = 0 +ACTIVITY_CFG_ITEM_ID_FIELD.type = 5 +ACTIVITY_CFG_ITEM_ID_FIELD.cpp_type = 1 + +ACTIVITY_CFG_ITEM_COUNT_FIELD.name = "item_count" +ACTIVITY_CFG_ITEM_COUNT_FIELD.full_name = ".ftcfg.activity_cfg.item_count" +ACTIVITY_CFG_ITEM_COUNT_FIELD.number = 28 +ACTIVITY_CFG_ITEM_COUNT_FIELD.index = 27 +ACTIVITY_CFG_ITEM_COUNT_FIELD.label = 2 +ACTIVITY_CFG_ITEM_COUNT_FIELD.has_default_value = false +ACTIVITY_CFG_ITEM_COUNT_FIELD.default_value = 0 +ACTIVITY_CFG_ITEM_COUNT_FIELD.type = 5 +ACTIVITY_CFG_ITEM_COUNT_FIELD.cpp_type = 1 + +ACTIVITY_CFG_TIME_SHOW_FIELD.name = "time_show" +ACTIVITY_CFG_TIME_SHOW_FIELD.full_name = ".ftcfg.activity_cfg.time_show" +ACTIVITY_CFG_TIME_SHOW_FIELD.number = 29 +ACTIVITY_CFG_TIME_SHOW_FIELD.index = 28 +ACTIVITY_CFG_TIME_SHOW_FIELD.label = 2 +ACTIVITY_CFG_TIME_SHOW_FIELD.has_default_value = false +ACTIVITY_CFG_TIME_SHOW_FIELD.default_value = 0 +ACTIVITY_CFG_TIME_SHOW_FIELD.type = 5 +ACTIVITY_CFG_TIME_SHOW_FIELD.cpp_type = 1 + +ACTIVITY_CFG_FORM_SHOW_FIELD.name = "form_show" +ACTIVITY_CFG_FORM_SHOW_FIELD.full_name = ".ftcfg.activity_cfg.form_show" +ACTIVITY_CFG_FORM_SHOW_FIELD.number = 30 +ACTIVITY_CFG_FORM_SHOW_FIELD.index = 29 +ACTIVITY_CFG_FORM_SHOW_FIELD.label = 2 +ACTIVITY_CFG_FORM_SHOW_FIELD.has_default_value = false +ACTIVITY_CFG_FORM_SHOW_FIELD.default_value = 0 +ACTIVITY_CFG_FORM_SHOW_FIELD.type = 5 +ACTIVITY_CFG_FORM_SHOW_FIELD.cpp_type = 1 + +ACTIVITY_CFG_TIPS_SHOW_FIELD.name = "tips_show" +ACTIVITY_CFG_TIPS_SHOW_FIELD.full_name = ".ftcfg.activity_cfg.tips_show" +ACTIVITY_CFG_TIPS_SHOW_FIELD.number = 31 +ACTIVITY_CFG_TIPS_SHOW_FIELD.index = 30 +ACTIVITY_CFG_TIPS_SHOW_FIELD.label = 2 +ACTIVITY_CFG_TIPS_SHOW_FIELD.has_default_value = false +ACTIVITY_CFG_TIPS_SHOW_FIELD.default_value = 0 +ACTIVITY_CFG_TIPS_SHOW_FIELD.type = 5 +ACTIVITY_CFG_TIPS_SHOW_FIELD.cpp_type = 1 + +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.name = "crystal_show" +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.full_name = ".ftcfg.activity_cfg.crystal_show" +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.number = 32 +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.index = 31 +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.label = 3 +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.has_default_value = false +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.default_value = {} +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.type = 5 +ACTIVITY_CFG_CRYSTAL_SHOW_FIELD.cpp_type = 1 + +ACTIVITY_CFG_ITEMS_SHOW_FIELD.name = "items_show" +ACTIVITY_CFG_ITEMS_SHOW_FIELD.full_name = ".ftcfg.activity_cfg.items_show" +ACTIVITY_CFG_ITEMS_SHOW_FIELD.number = 33 +ACTIVITY_CFG_ITEMS_SHOW_FIELD.index = 32 +ACTIVITY_CFG_ITEMS_SHOW_FIELD.label = 3 +ACTIVITY_CFG_ITEMS_SHOW_FIELD.has_default_value = false +ACTIVITY_CFG_ITEMS_SHOW_FIELD.default_value = {} +ACTIVITY_CFG_ITEMS_SHOW_FIELD.type = 5 +ACTIVITY_CFG_ITEMS_SHOW_FIELD.cpp_type = 1 + +ACTIVITY_CFG_CUE_SHOW_FIELD.name = "cue_show" +ACTIVITY_CFG_CUE_SHOW_FIELD.full_name = ".ftcfg.activity_cfg.cue_show" +ACTIVITY_CFG_CUE_SHOW_FIELD.number = 34 +ACTIVITY_CFG_CUE_SHOW_FIELD.index = 33 +ACTIVITY_CFG_CUE_SHOW_FIELD.label = 2 +ACTIVITY_CFG_CUE_SHOW_FIELD.has_default_value = false +ACTIVITY_CFG_CUE_SHOW_FIELD.default_value = 0 +ACTIVITY_CFG_CUE_SHOW_FIELD.type = 5 +ACTIVITY_CFG_CUE_SHOW_FIELD.cpp_type = 1 + +ACTIVITY_CFG_CUE_TEXT_FIELD.name = "cue_text" +ACTIVITY_CFG_CUE_TEXT_FIELD.full_name = ".ftcfg.activity_cfg.cue_text" +ACTIVITY_CFG_CUE_TEXT_FIELD.number = 35 +ACTIVITY_CFG_CUE_TEXT_FIELD.index = 34 +ACTIVITY_CFG_CUE_TEXT_FIELD.label = 2 +ACTIVITY_CFG_CUE_TEXT_FIELD.has_default_value = false +ACTIVITY_CFG_CUE_TEXT_FIELD.default_value = 0 +ACTIVITY_CFG_CUE_TEXT_FIELD.type = 5 +ACTIVITY_CFG_CUE_TEXT_FIELD.cpp_type = 1 + +ACTIVITY_CFG_CORRECT_TEXT_FIELD.name = "correct_text" +ACTIVITY_CFG_CORRECT_TEXT_FIELD.full_name = ".ftcfg.activity_cfg.correct_text" +ACTIVITY_CFG_CORRECT_TEXT_FIELD.number = 36 +ACTIVITY_CFG_CORRECT_TEXT_FIELD.index = 35 +ACTIVITY_CFG_CORRECT_TEXT_FIELD.label = 2 +ACTIVITY_CFG_CORRECT_TEXT_FIELD.has_default_value = false +ACTIVITY_CFG_CORRECT_TEXT_FIELD.default_value = 0 +ACTIVITY_CFG_CORRECT_TEXT_FIELD.type = 5 +ACTIVITY_CFG_CORRECT_TEXT_FIELD.cpp_type = 1 + +ACTIVITY_CFG_NEGATE_TEXT_FIELD.name = "negate_text" +ACTIVITY_CFG_NEGATE_TEXT_FIELD.full_name = ".ftcfg.activity_cfg.negate_text" +ACTIVITY_CFG_NEGATE_TEXT_FIELD.number = 37 +ACTIVITY_CFG_NEGATE_TEXT_FIELD.index = 36 +ACTIVITY_CFG_NEGATE_TEXT_FIELD.label = 2 +ACTIVITY_CFG_NEGATE_TEXT_FIELD.has_default_value = false +ACTIVITY_CFG_NEGATE_TEXT_FIELD.default_value = 0 +ACTIVITY_CFG_NEGATE_TEXT_FIELD.type = 5 +ACTIVITY_CFG_NEGATE_TEXT_FIELD.cpp_type = 1 + +ACTIVITY_CFG.name = "activity_cfg" +ACTIVITY_CFG.full_name = ".ftcfg.activity_cfg" +ACTIVITY_CFG.nested_types = {} +ACTIVITY_CFG.enum_types = {} +ACTIVITY_CFG.fields = {ACTIVITY_CFG_GUID_FIELD, ACTIVITY_CFG_DACTIVITY_NAME_FIELD, ACTIVITY_CFG_NAME_FIELD, ACTIVITY_CFG_TYPE_FIELD, ACTIVITY_CFG_ACTIVITY_PLAY_FIELD, ACTIVITY_CFG_NEED_LEVEL_FIELD, ACTIVITY_CFG_TOTAL_TIMES_FIELD, ACTIVITY_CFG_ACTIVATION_POINT_FIELD, ACTIVITY_CFG_ACTIVATION_TOPLIMIT_FIELD, ACTIVITY_CFG_ACTIVATION_MODE_FIELD, ACTIVITY_CFG_START_WEEKS_FIELD, ACTIVITY_CFG_SIGNUP_TIME_FIELD, ACTIVITY_CFG_SIGNDOWN_TIME_FIELD, ACTIVITY_CFG_BEGIN_TIME_FIELD, ACTIVITY_CFG_END_TIME_FIELD, ACTIVITY_CFG_DAILY_TYPE_FIELD, ACTIVITY_CFG_WHETHER_BATTLE_FIELD, ACTIVITY_CFG_DACTIVITY_ICON_FIELD, ACTIVITY_CFG_PARTAKE_MODE_FIELD, ACTIVITY_CFG_PARTAKE_SUBTYPE_FIELD, ACTIVITY_CFG_TICKETITEM_ID_FIELD, ACTIVITY_CFG_TICKETITEM_COUNT_FIELD, ACTIVITY_CFG_CONDUCT_SCENEID_FIELD, ACTIVITY_CFG_FINDING_PATH_FIELD, ACTIVITY_CFG_OPEN_FUNC_FIELD, ACTIVITY_CFG_OPEN_FUNC_PARAM_FIELD, ACTIVITY_CFG_ITEM_ID_FIELD, ACTIVITY_CFG_ITEM_COUNT_FIELD, ACTIVITY_CFG_TIME_SHOW_FIELD, ACTIVITY_CFG_FORM_SHOW_FIELD, ACTIVITY_CFG_TIPS_SHOW_FIELD, ACTIVITY_CFG_CRYSTAL_SHOW_FIELD, ACTIVITY_CFG_ITEMS_SHOW_FIELD, ACTIVITY_CFG_CUE_SHOW_FIELD, ACTIVITY_CFG_CUE_TEXT_FIELD, ACTIVITY_CFG_CORRECT_TEXT_FIELD, ACTIVITY_CFG_NEGATE_TEXT_FIELD} +ACTIVITY_CFG.is_extendable = false +ACTIVITY_CFG.extensions = {} +ACTIVITY_CFGS_ITEMS_FIELD.name = "items" +ACTIVITY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.activity_cfgs.items" +ACTIVITY_CFGS_ITEMS_FIELD.number = 1 +ACTIVITY_CFGS_ITEMS_FIELD.index = 0 +ACTIVITY_CFGS_ITEMS_FIELD.label = 3 +ACTIVITY_CFGS_ITEMS_FIELD.has_default_value = false +ACTIVITY_CFGS_ITEMS_FIELD.default_value = {} +ACTIVITY_CFGS_ITEMS_FIELD.message_type = ACTIVITY_CFG +ACTIVITY_CFGS_ITEMS_FIELD.type = 11 +ACTIVITY_CFGS_ITEMS_FIELD.cpp_type = 10 + +ACTIVITY_CFGS.name = "activity_cfgs" +ACTIVITY_CFGS.full_name = ".ftcfg.activity_cfgs" +ACTIVITY_CFGS.nested_types = {} +ACTIVITY_CFGS.enum_types = {} +ACTIVITY_CFGS.fields = {ACTIVITY_CFGS_ITEMS_FIELD} +ACTIVITY_CFGS.is_extendable = false +ACTIVITY_CFGS.extensions = {} +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.name = "everyday_toplimit" +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.full_name = ".ftcfg.activation_cfg.everyday_toplimit" +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.number = 1 +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.index = 0 +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.label = 2 +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.has_default_value = false +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.default_value = 0 +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.type = 13 +ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD.cpp_type = 3 + +ACTIVATION_CFG_RESET_TIME_FIELD.name = "reset_time" +ACTIVATION_CFG_RESET_TIME_FIELD.full_name = ".ftcfg.activation_cfg.reset_time" +ACTIVATION_CFG_RESET_TIME_FIELD.number = 2 +ACTIVATION_CFG_RESET_TIME_FIELD.index = 1 +ACTIVATION_CFG_RESET_TIME_FIELD.label = 3 +ACTIVATION_CFG_RESET_TIME_FIELD.has_default_value = false +ACTIVATION_CFG_RESET_TIME_FIELD.default_value = {} +ACTIVATION_CFG_RESET_TIME_FIELD.type = 9 +ACTIVATION_CFG_RESET_TIME_FIELD.cpp_type = 9 + +ACTIVATION_CFG_DEPOSIT_LV_FIELD.name = "deposit_lv" +ACTIVATION_CFG_DEPOSIT_LV_FIELD.full_name = ".ftcfg.activation_cfg.deposit_lv" +ACTIVATION_CFG_DEPOSIT_LV_FIELD.number = 3 +ACTIVATION_CFG_DEPOSIT_LV_FIELD.index = 2 +ACTIVATION_CFG_DEPOSIT_LV_FIELD.label = 3 +ACTIVATION_CFG_DEPOSIT_LV_FIELD.has_default_value = false +ACTIVATION_CFG_DEPOSIT_LV_FIELD.default_value = {} +ACTIVATION_CFG_DEPOSIT_LV_FIELD.type = 13 +ACTIVATION_CFG_DEPOSIT_LV_FIELD.cpp_type = 3 + +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.name = "deposit_toplimit" +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.full_name = ".ftcfg.activation_cfg.deposit_toplimit" +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.number = 4 +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.index = 3 +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.label = 3 +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.has_default_value = false +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.default_value = {} +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.type = 13 +ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD.cpp_type = 3 + +ACTIVATION_CFG.name = "activation_cfg" +ACTIVATION_CFG.full_name = ".ftcfg.activation_cfg" +ACTIVATION_CFG.nested_types = {} +ACTIVATION_CFG.enum_types = {} +ACTIVATION_CFG.fields = {ACTIVATION_CFG_EVERYDAY_TOPLIMIT_FIELD, ACTIVATION_CFG_RESET_TIME_FIELD, ACTIVATION_CFG_DEPOSIT_LV_FIELD, ACTIVATION_CFG_DEPOSIT_TOPLIMIT_FIELD} +ACTIVATION_CFG.is_extendable = false +ACTIVATION_CFG.extensions = {} +ACTIVATION_CFGS_ITEMS_FIELD.name = "items" +ACTIVATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.activation_cfgs.items" +ACTIVATION_CFGS_ITEMS_FIELD.number = 1 +ACTIVATION_CFGS_ITEMS_FIELD.index = 0 +ACTIVATION_CFGS_ITEMS_FIELD.label = 3 +ACTIVATION_CFGS_ITEMS_FIELD.has_default_value = false +ACTIVATION_CFGS_ITEMS_FIELD.default_value = {} +ACTIVATION_CFGS_ITEMS_FIELD.message_type = ACTIVATION_CFG +ACTIVATION_CFGS_ITEMS_FIELD.type = 11 +ACTIVATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +ACTIVATION_CFGS.name = "activation_cfgs" +ACTIVATION_CFGS.full_name = ".ftcfg.activation_cfgs" +ACTIVATION_CFGS.nested_types = {} +ACTIVATION_CFGS.enum_types = {} +ACTIVATION_CFGS.fields = {ACTIVATION_CFGS_ITEMS_FIELD} +ACTIVATION_CFGS.is_extendable = false +ACTIVATION_CFGS.extensions = {} +ACTIVATION_REWARD_CFG_ID_FIELD.name = "id" +ACTIVATION_REWARD_CFG_ID_FIELD.full_name = ".ftcfg.activation_reward_cfg.id" +ACTIVATION_REWARD_CFG_ID_FIELD.number = 1 +ACTIVATION_REWARD_CFG_ID_FIELD.index = 0 +ACTIVATION_REWARD_CFG_ID_FIELD.label = 2 +ACTIVATION_REWARD_CFG_ID_FIELD.has_default_value = false +ACTIVATION_REWARD_CFG_ID_FIELD.default_value = 0 +ACTIVATION_REWARD_CFG_ID_FIELD.type = 13 +ACTIVATION_REWARD_CFG_ID_FIELD.cpp_type = 3 + +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.name = "activation_stage" +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.full_name = ".ftcfg.activation_reward_cfg.activation_stage" +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.number = 2 +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.index = 1 +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.label = 2 +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.has_default_value = false +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.default_value = 0 +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.type = 13 +ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD.cpp_type = 3 + +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.name = "reward_attribute_id" +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.full_name = ".ftcfg.activation_reward_cfg.reward_attribute_id" +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.number = 3 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.index = 2 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.label = 2 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.has_default_value = false +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.default_value = 0 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.type = 13 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.cpp_type = 3 + +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.name = "reward_attribute_count" +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.activation_reward_cfg.reward_attribute_count" +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.number = 4 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.index = 3 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.label = 2 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = 0 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.type = 13 +ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 3 + +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.name = "reward_item_id" +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.full_name = ".ftcfg.activation_reward_cfg.reward_item_id" +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.number = 5 +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.index = 4 +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.label = 2 +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.has_default_value = false +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.default_value = 0 +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.type = 13 +ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD.cpp_type = 3 + +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.name = "reward_item_count" +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.full_name = ".ftcfg.activation_reward_cfg.reward_item_count" +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.number = 6 +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.index = 5 +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.label = 2 +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.has_default_value = false +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.default_value = 0 +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.type = 13 +ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD.cpp_type = 3 + +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.name = "reward_plus" +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.full_name = ".ftcfg.activation_reward_cfg.reward_plus" +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.number = 7 +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.index = 6 +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.label = 2 +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.has_default_value = false +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.default_value = 0 +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.type = 13 +ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD.cpp_type = 3 + +ACTIVATION_REWARD_CFG.name = "activation_reward_cfg" +ACTIVATION_REWARD_CFG.full_name = ".ftcfg.activation_reward_cfg" +ACTIVATION_REWARD_CFG.nested_types = {} +ACTIVATION_REWARD_CFG.enum_types = {} +ACTIVATION_REWARD_CFG.fields = {ACTIVATION_REWARD_CFG_ID_FIELD, ACTIVATION_REWARD_CFG_ACTIVATION_STAGE_FIELD, ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD, ACTIVATION_REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD, ACTIVATION_REWARD_CFG_REWARD_ITEM_ID_FIELD, ACTIVATION_REWARD_CFG_REWARD_ITEM_COUNT_FIELD, ACTIVATION_REWARD_CFG_REWARD_PLUS_FIELD} +ACTIVATION_REWARD_CFG.is_extendable = false +ACTIVATION_REWARD_CFG.extensions = {} +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.name = "items" +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.activation_reward_cfgs.items" +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.number = 1 +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.index = 0 +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.label = 3 +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.has_default_value = false +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.default_value = {} +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.message_type = ACTIVATION_REWARD_CFG +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.type = 11 +ACTIVATION_REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +ACTIVATION_REWARD_CFGS.name = "activation_reward_cfgs" +ACTIVATION_REWARD_CFGS.full_name = ".ftcfg.activation_reward_cfgs" +ACTIVATION_REWARD_CFGS.nested_types = {} +ACTIVATION_REWARD_CFGS.enum_types = {} +ACTIVATION_REWARD_CFGS.fields = {ACTIVATION_REWARD_CFGS_ITEMS_FIELD} +ACTIVATION_REWARD_CFGS.is_extendable = false +ACTIVATION_REWARD_CFGS.extensions = {} +TRADE_TOP_TABS_CFG_ID_FIELD.name = "id" +TRADE_TOP_TABS_CFG_ID_FIELD.full_name = ".ftcfg.trade_top_tabs_cfg.id" +TRADE_TOP_TABS_CFG_ID_FIELD.number = 1 +TRADE_TOP_TABS_CFG_ID_FIELD.index = 0 +TRADE_TOP_TABS_CFG_ID_FIELD.label = 2 +TRADE_TOP_TABS_CFG_ID_FIELD.has_default_value = false +TRADE_TOP_TABS_CFG_ID_FIELD.default_value = 0 +TRADE_TOP_TABS_CFG_ID_FIELD.type = 5 +TRADE_TOP_TABS_CFG_ID_FIELD.cpp_type = 1 + +TRADE_TOP_TABS_CFG_NAME_FIELD.name = "name" +TRADE_TOP_TABS_CFG_NAME_FIELD.full_name = ".ftcfg.trade_top_tabs_cfg.name" +TRADE_TOP_TABS_CFG_NAME_FIELD.number = 2 +TRADE_TOP_TABS_CFG_NAME_FIELD.index = 1 +TRADE_TOP_TABS_CFG_NAME_FIELD.label = 2 +TRADE_TOP_TABS_CFG_NAME_FIELD.has_default_value = false +TRADE_TOP_TABS_CFG_NAME_FIELD.default_value = "" +TRADE_TOP_TABS_CFG_NAME_FIELD.type = 9 +TRADE_TOP_TABS_CFG_NAME_FIELD.cpp_type = 9 + +TRADE_TOP_TABS_CFG_TABS_FIELD.name = "tabs" +TRADE_TOP_TABS_CFG_TABS_FIELD.full_name = ".ftcfg.trade_top_tabs_cfg.tabs" +TRADE_TOP_TABS_CFG_TABS_FIELD.number = 3 +TRADE_TOP_TABS_CFG_TABS_FIELD.index = 2 +TRADE_TOP_TABS_CFG_TABS_FIELD.label = 3 +TRADE_TOP_TABS_CFG_TABS_FIELD.has_default_value = false +TRADE_TOP_TABS_CFG_TABS_FIELD.default_value = {} +TRADE_TOP_TABS_CFG_TABS_FIELD.type = 5 +TRADE_TOP_TABS_CFG_TABS_FIELD.cpp_type = 1 + +TRADE_TOP_TABS_CFG.name = "trade_top_tabs_cfg" +TRADE_TOP_TABS_CFG.full_name = ".ftcfg.trade_top_tabs_cfg" +TRADE_TOP_TABS_CFG.nested_types = {} +TRADE_TOP_TABS_CFG.enum_types = {} +TRADE_TOP_TABS_CFG.fields = {TRADE_TOP_TABS_CFG_ID_FIELD, TRADE_TOP_TABS_CFG_NAME_FIELD, TRADE_TOP_TABS_CFG_TABS_FIELD} +TRADE_TOP_TABS_CFG.is_extendable = false +TRADE_TOP_TABS_CFG.extensions = {} +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.name = "items" +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trade_top_tabs_cfgs.items" +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.number = 1 +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.index = 0 +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.label = 3 +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.has_default_value = false +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.default_value = {} +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.message_type = TRADE_TOP_TABS_CFG +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.type = 11 +TRADE_TOP_TABS_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRADE_TOP_TABS_CFGS.name = "trade_top_tabs_cfgs" +TRADE_TOP_TABS_CFGS.full_name = ".ftcfg.trade_top_tabs_cfgs" +TRADE_TOP_TABS_CFGS.nested_types = {} +TRADE_TOP_TABS_CFGS.enum_types = {} +TRADE_TOP_TABS_CFGS.fields = {TRADE_TOP_TABS_CFGS_ITEMS_FIELD} +TRADE_TOP_TABS_CFGS.is_extendable = false +TRADE_TOP_TABS_CFGS.extensions = {} +TRADE_SUB_TABS_CFG_ID_FIELD.name = "id" +TRADE_SUB_TABS_CFG_ID_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.id" +TRADE_SUB_TABS_CFG_ID_FIELD.number = 1 +TRADE_SUB_TABS_CFG_ID_FIELD.index = 0 +TRADE_SUB_TABS_CFG_ID_FIELD.label = 2 +TRADE_SUB_TABS_CFG_ID_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_ID_FIELD.default_value = 0 +TRADE_SUB_TABS_CFG_ID_FIELD.type = 5 +TRADE_SUB_TABS_CFG_ID_FIELD.cpp_type = 1 + +TRADE_SUB_TABS_CFG_NAME_FIELD.name = "name" +TRADE_SUB_TABS_CFG_NAME_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.name" +TRADE_SUB_TABS_CFG_NAME_FIELD.number = 2 +TRADE_SUB_TABS_CFG_NAME_FIELD.index = 1 +TRADE_SUB_TABS_CFG_NAME_FIELD.label = 2 +TRADE_SUB_TABS_CFG_NAME_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_NAME_FIELD.default_value = "" +TRADE_SUB_TABS_CFG_NAME_FIELD.type = 9 +TRADE_SUB_TABS_CFG_NAME_FIELD.cpp_type = 9 + +TRADE_SUB_TABS_CFG_RULES_FIELD.name = "rules" +TRADE_SUB_TABS_CFG_RULES_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.rules" +TRADE_SUB_TABS_CFG_RULES_FIELD.number = 3 +TRADE_SUB_TABS_CFG_RULES_FIELD.index = 2 +TRADE_SUB_TABS_CFG_RULES_FIELD.label = 3 +TRADE_SUB_TABS_CFG_RULES_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_RULES_FIELD.default_value = {} +TRADE_SUB_TABS_CFG_RULES_FIELD.type = 5 +TRADE_SUB_TABS_CFG_RULES_FIELD.cpp_type = 1 + +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.name = "filter_rules1" +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.filter_rules1" +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.number = 4 +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.index = 3 +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.label = 3 +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.default_value = {} +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.type = 5 +TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD.cpp_type = 1 + +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.name = "filter_rules2" +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.filter_rules2" +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.number = 5 +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.index = 4 +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.label = 3 +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.default_value = {} +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.type = 5 +TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD.cpp_type = 1 + +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.name = "filter_rules3" +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.filter_rules3" +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.number = 6 +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.index = 5 +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.label = 3 +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.default_value = {} +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.type = 5 +TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD.cpp_type = 1 + +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.name = "filter_rules4" +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.filter_rules4" +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.number = 7 +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.index = 6 +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.label = 3 +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.default_value = {} +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.type = 5 +TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD.cpp_type = 1 + +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.name = "sort_rules" +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfg.sort_rules" +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.number = 8 +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.index = 7 +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.label = 3 +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.has_default_value = false +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.default_value = {} +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.type = 5 +TRADE_SUB_TABS_CFG_SORT_RULES_FIELD.cpp_type = 1 + +TRADE_SUB_TABS_CFG.name = "trade_sub_tabs_cfg" +TRADE_SUB_TABS_CFG.full_name = ".ftcfg.trade_sub_tabs_cfg" +TRADE_SUB_TABS_CFG.nested_types = {} +TRADE_SUB_TABS_CFG.enum_types = {} +TRADE_SUB_TABS_CFG.fields = {TRADE_SUB_TABS_CFG_ID_FIELD, TRADE_SUB_TABS_CFG_NAME_FIELD, TRADE_SUB_TABS_CFG_RULES_FIELD, TRADE_SUB_TABS_CFG_FILTER_RULES1_FIELD, TRADE_SUB_TABS_CFG_FILTER_RULES2_FIELD, TRADE_SUB_TABS_CFG_FILTER_RULES3_FIELD, TRADE_SUB_TABS_CFG_FILTER_RULES4_FIELD, TRADE_SUB_TABS_CFG_SORT_RULES_FIELD} +TRADE_SUB_TABS_CFG.is_extendable = false +TRADE_SUB_TABS_CFG.extensions = {} +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.name = "items" +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trade_sub_tabs_cfgs.items" +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.number = 1 +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.index = 0 +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.label = 3 +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.has_default_value = false +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.default_value = {} +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.message_type = TRADE_SUB_TABS_CFG +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.type = 11 +TRADE_SUB_TABS_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRADE_SUB_TABS_CFGS.name = "trade_sub_tabs_cfgs" +TRADE_SUB_TABS_CFGS.full_name = ".ftcfg.trade_sub_tabs_cfgs" +TRADE_SUB_TABS_CFGS.nested_types = {} +TRADE_SUB_TABS_CFGS.enum_types = {} +TRADE_SUB_TABS_CFGS.fields = {TRADE_SUB_TABS_CFGS_ITEMS_FIELD} +TRADE_SUB_TABS_CFGS.is_extendable = false +TRADE_SUB_TABS_CFGS.extensions = {} +TRADE_FILTER_RULES_CFG_ID_FIELD.name = "id" +TRADE_FILTER_RULES_CFG_ID_FIELD.full_name = ".ftcfg.trade_filter_rules_cfg.id" +TRADE_FILTER_RULES_CFG_ID_FIELD.number = 1 +TRADE_FILTER_RULES_CFG_ID_FIELD.index = 0 +TRADE_FILTER_RULES_CFG_ID_FIELD.label = 2 +TRADE_FILTER_RULES_CFG_ID_FIELD.has_default_value = false +TRADE_FILTER_RULES_CFG_ID_FIELD.default_value = 0 +TRADE_FILTER_RULES_CFG_ID_FIELD.type = 5 +TRADE_FILTER_RULES_CFG_ID_FIELD.cpp_type = 1 + +TRADE_FILTER_RULES_CFG_NAME_FIELD.name = "name" +TRADE_FILTER_RULES_CFG_NAME_FIELD.full_name = ".ftcfg.trade_filter_rules_cfg.name" +TRADE_FILTER_RULES_CFG_NAME_FIELD.number = 2 +TRADE_FILTER_RULES_CFG_NAME_FIELD.index = 1 +TRADE_FILTER_RULES_CFG_NAME_FIELD.label = 2 +TRADE_FILTER_RULES_CFG_NAME_FIELD.has_default_value = false +TRADE_FILTER_RULES_CFG_NAME_FIELD.default_value = "" +TRADE_FILTER_RULES_CFG_NAME_FIELD.type = 9 +TRADE_FILTER_RULES_CFG_NAME_FIELD.cpp_type = 9 + +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.name = "fields" +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.full_name = ".ftcfg.trade_filter_rules_cfg.fields" +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.number = 3 +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.index = 2 +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.label = 3 +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.has_default_value = false +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.default_value = {} +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.type = 9 +TRADE_FILTER_RULES_CFG_FIELDS_FIELD.cpp_type = 9 + +TRADE_FILTER_RULES_CFG_VALUES_FIELD.name = "values" +TRADE_FILTER_RULES_CFG_VALUES_FIELD.full_name = ".ftcfg.trade_filter_rules_cfg.values" +TRADE_FILTER_RULES_CFG_VALUES_FIELD.number = 4 +TRADE_FILTER_RULES_CFG_VALUES_FIELD.index = 3 +TRADE_FILTER_RULES_CFG_VALUES_FIELD.label = 3 +TRADE_FILTER_RULES_CFG_VALUES_FIELD.has_default_value = false +TRADE_FILTER_RULES_CFG_VALUES_FIELD.default_value = {} +TRADE_FILTER_RULES_CFG_VALUES_FIELD.type = 5 +TRADE_FILTER_RULES_CFG_VALUES_FIELD.cpp_type = 1 + +TRADE_FILTER_RULES_CFG.name = "trade_filter_rules_cfg" +TRADE_FILTER_RULES_CFG.full_name = ".ftcfg.trade_filter_rules_cfg" +TRADE_FILTER_RULES_CFG.nested_types = {} +TRADE_FILTER_RULES_CFG.enum_types = {} +TRADE_FILTER_RULES_CFG.fields = {TRADE_FILTER_RULES_CFG_ID_FIELD, TRADE_FILTER_RULES_CFG_NAME_FIELD, TRADE_FILTER_RULES_CFG_FIELDS_FIELD, TRADE_FILTER_RULES_CFG_VALUES_FIELD} +TRADE_FILTER_RULES_CFG.is_extendable = false +TRADE_FILTER_RULES_CFG.extensions = {} +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.name = "items" +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trade_filter_rules_cfgs.items" +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.number = 1 +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.index = 0 +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.label = 3 +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.has_default_value = false +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.default_value = {} +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.message_type = TRADE_FILTER_RULES_CFG +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.type = 11 +TRADE_FILTER_RULES_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRADE_FILTER_RULES_CFGS.name = "trade_filter_rules_cfgs" +TRADE_FILTER_RULES_CFGS.full_name = ".ftcfg.trade_filter_rules_cfgs" +TRADE_FILTER_RULES_CFGS.nested_types = {} +TRADE_FILTER_RULES_CFGS.enum_types = {} +TRADE_FILTER_RULES_CFGS.fields = {TRADE_FILTER_RULES_CFGS_ITEMS_FIELD} +TRADE_FILTER_RULES_CFGS.is_extendable = false +TRADE_FILTER_RULES_CFGS.extensions = {} +TRADE_SORT_RULES_CFG_ID_FIELD.name = "id" +TRADE_SORT_RULES_CFG_ID_FIELD.full_name = ".ftcfg.trade_sort_rules_cfg.id" +TRADE_SORT_RULES_CFG_ID_FIELD.number = 1 +TRADE_SORT_RULES_CFG_ID_FIELD.index = 0 +TRADE_SORT_RULES_CFG_ID_FIELD.label = 2 +TRADE_SORT_RULES_CFG_ID_FIELD.has_default_value = false +TRADE_SORT_RULES_CFG_ID_FIELD.default_value = 0 +TRADE_SORT_RULES_CFG_ID_FIELD.type = 5 +TRADE_SORT_RULES_CFG_ID_FIELD.cpp_type = 1 + +TRADE_SORT_RULES_CFG_NAME_FIELD.name = "name" +TRADE_SORT_RULES_CFG_NAME_FIELD.full_name = ".ftcfg.trade_sort_rules_cfg.name" +TRADE_SORT_RULES_CFG_NAME_FIELD.number = 2 +TRADE_SORT_RULES_CFG_NAME_FIELD.index = 1 +TRADE_SORT_RULES_CFG_NAME_FIELD.label = 2 +TRADE_SORT_RULES_CFG_NAME_FIELD.has_default_value = false +TRADE_SORT_RULES_CFG_NAME_FIELD.default_value = "" +TRADE_SORT_RULES_CFG_NAME_FIELD.type = 9 +TRADE_SORT_RULES_CFG_NAME_FIELD.cpp_type = 9 + +TRADE_SORT_RULES_CFG_PROP_FIELD.name = "prop" +TRADE_SORT_RULES_CFG_PROP_FIELD.full_name = ".ftcfg.trade_sort_rules_cfg.prop" +TRADE_SORT_RULES_CFG_PROP_FIELD.number = 3 +TRADE_SORT_RULES_CFG_PROP_FIELD.index = 2 +TRADE_SORT_RULES_CFG_PROP_FIELD.label = 2 +TRADE_SORT_RULES_CFG_PROP_FIELD.has_default_value = false +TRADE_SORT_RULES_CFG_PROP_FIELD.default_value = 0 +TRADE_SORT_RULES_CFG_PROP_FIELD.type = 5 +TRADE_SORT_RULES_CFG_PROP_FIELD.cpp_type = 1 + +TRADE_SORT_RULES_CFG_UP_FIELD.name = "up" +TRADE_SORT_RULES_CFG_UP_FIELD.full_name = ".ftcfg.trade_sort_rules_cfg.up" +TRADE_SORT_RULES_CFG_UP_FIELD.number = 4 +TRADE_SORT_RULES_CFG_UP_FIELD.index = 3 +TRADE_SORT_RULES_CFG_UP_FIELD.label = 2 +TRADE_SORT_RULES_CFG_UP_FIELD.has_default_value = false +TRADE_SORT_RULES_CFG_UP_FIELD.default_value = false +TRADE_SORT_RULES_CFG_UP_FIELD.type = 8 +TRADE_SORT_RULES_CFG_UP_FIELD.cpp_type = 7 + +TRADE_SORT_RULES_CFG.name = "trade_sort_rules_cfg" +TRADE_SORT_RULES_CFG.full_name = ".ftcfg.trade_sort_rules_cfg" +TRADE_SORT_RULES_CFG.nested_types = {} +TRADE_SORT_RULES_CFG.enum_types = {} +TRADE_SORT_RULES_CFG.fields = {TRADE_SORT_RULES_CFG_ID_FIELD, TRADE_SORT_RULES_CFG_NAME_FIELD, TRADE_SORT_RULES_CFG_PROP_FIELD, TRADE_SORT_RULES_CFG_UP_FIELD} +TRADE_SORT_RULES_CFG.is_extendable = false +TRADE_SORT_RULES_CFG.extensions = {} +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.name = "items" +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trade_sort_rules_cfgs.items" +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.number = 1 +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.index = 0 +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.label = 3 +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.has_default_value = false +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.default_value = {} +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.message_type = TRADE_SORT_RULES_CFG +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.type = 11 +TRADE_SORT_RULES_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRADE_SORT_RULES_CFGS.name = "trade_sort_rules_cfgs" +TRADE_SORT_RULES_CFGS.full_name = ".ftcfg.trade_sort_rules_cfgs" +TRADE_SORT_RULES_CFGS.nested_types = {} +TRADE_SORT_RULES_CFGS.enum_types = {} +TRADE_SORT_RULES_CFGS.fields = {TRADE_SORT_RULES_CFGS_ITEMS_FIELD} +TRADE_SORT_RULES_CFGS.is_extendable = false +TRADE_SORT_RULES_CFGS.extensions = {} +BASE_PROP_CFG_PROF_TYPE_FIELD.name = "prof_type" +BASE_PROP_CFG_PROF_TYPE_FIELD.full_name = ".ftcfg.base_prop_cfg.prof_type" +BASE_PROP_CFG_PROF_TYPE_FIELD.number = 1 +BASE_PROP_CFG_PROF_TYPE_FIELD.index = 0 +BASE_PROP_CFG_PROF_TYPE_FIELD.label = 2 +BASE_PROP_CFG_PROF_TYPE_FIELD.has_default_value = false +BASE_PROP_CFG_PROF_TYPE_FIELD.default_value = nil +BASE_PROP_CFG_PROF_TYPE_FIELD.enum_type = config_predefine_pb.EPROFTYPE +BASE_PROP_CFG_PROF_TYPE_FIELD.type = 14 +BASE_PROP_CFG_PROF_TYPE_FIELD.cpp_type = 8 + +BASE_PROP_CFG_LEVEL_FIELD.name = "level" +BASE_PROP_CFG_LEVEL_FIELD.full_name = ".ftcfg.base_prop_cfg.level" +BASE_PROP_CFG_LEVEL_FIELD.number = 2 +BASE_PROP_CFG_LEVEL_FIELD.index = 1 +BASE_PROP_CFG_LEVEL_FIELD.label = 2 +BASE_PROP_CFG_LEVEL_FIELD.has_default_value = false +BASE_PROP_CFG_LEVEL_FIELD.default_value = 0 +BASE_PROP_CFG_LEVEL_FIELD.type = 5 +BASE_PROP_CFG_LEVEL_FIELD.cpp_type = 1 + +BASE_PROP_CFG_HP_MAX_FIELD.name = "hp_max" +BASE_PROP_CFG_HP_MAX_FIELD.full_name = ".ftcfg.base_prop_cfg.hp_max" +BASE_PROP_CFG_HP_MAX_FIELD.number = 3 +BASE_PROP_CFG_HP_MAX_FIELD.index = 2 +BASE_PROP_CFG_HP_MAX_FIELD.label = 2 +BASE_PROP_CFG_HP_MAX_FIELD.has_default_value = false +BASE_PROP_CFG_HP_MAX_FIELD.default_value = 0.0 +BASE_PROP_CFG_HP_MAX_FIELD.type = 1 +BASE_PROP_CFG_HP_MAX_FIELD.cpp_type = 5 + +BASE_PROP_CFG_MP_MAX_FIELD.name = "mp_max" +BASE_PROP_CFG_MP_MAX_FIELD.full_name = ".ftcfg.base_prop_cfg.mp_max" +BASE_PROP_CFG_MP_MAX_FIELD.number = 4 +BASE_PROP_CFG_MP_MAX_FIELD.index = 3 +BASE_PROP_CFG_MP_MAX_FIELD.label = 2 +BASE_PROP_CFG_MP_MAX_FIELD.has_default_value = false +BASE_PROP_CFG_MP_MAX_FIELD.default_value = 0.0 +BASE_PROP_CFG_MP_MAX_FIELD.type = 1 +BASE_PROP_CFG_MP_MAX_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ATTACK_FIELD.name = "attack" +BASE_PROP_CFG_ATTACK_FIELD.full_name = ".ftcfg.base_prop_cfg.attack" +BASE_PROP_CFG_ATTACK_FIELD.number = 5 +BASE_PROP_CFG_ATTACK_FIELD.index = 4 +BASE_PROP_CFG_ATTACK_FIELD.label = 2 +BASE_PROP_CFG_ATTACK_FIELD.has_default_value = false +BASE_PROP_CFG_ATTACK_FIELD.default_value = 0.0 +BASE_PROP_CFG_ATTACK_FIELD.type = 1 +BASE_PROP_CFG_ATTACK_FIELD.cpp_type = 5 + +BASE_PROP_CFG_DEFENSE_FIELD.name = "defense" +BASE_PROP_CFG_DEFENSE_FIELD.full_name = ".ftcfg.base_prop_cfg.defense" +BASE_PROP_CFG_DEFENSE_FIELD.number = 6 +BASE_PROP_CFG_DEFENSE_FIELD.index = 5 +BASE_PROP_CFG_DEFENSE_FIELD.label = 2 +BASE_PROP_CFG_DEFENSE_FIELD.has_default_value = false +BASE_PROP_CFG_DEFENSE_FIELD.default_value = 0.0 +BASE_PROP_CFG_DEFENSE_FIELD.type = 1 +BASE_PROP_CFG_DEFENSE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_HIT_FIELD.name = "hit" +BASE_PROP_CFG_HIT_FIELD.full_name = ".ftcfg.base_prop_cfg.hit" +BASE_PROP_CFG_HIT_FIELD.number = 7 +BASE_PROP_CFG_HIT_FIELD.index = 6 +BASE_PROP_CFG_HIT_FIELD.label = 2 +BASE_PROP_CFG_HIT_FIELD.has_default_value = false +BASE_PROP_CFG_HIT_FIELD.default_value = 0.0 +BASE_PROP_CFG_HIT_FIELD.type = 1 +BASE_PROP_CFG_HIT_FIELD.cpp_type = 5 + +BASE_PROP_CFG_DODGE_FIELD.name = "dodge" +BASE_PROP_CFG_DODGE_FIELD.full_name = ".ftcfg.base_prop_cfg.dodge" +BASE_PROP_CFG_DODGE_FIELD.number = 8 +BASE_PROP_CFG_DODGE_FIELD.index = 7 +BASE_PROP_CFG_DODGE_FIELD.label = 2 +BASE_PROP_CFG_DODGE_FIELD.has_default_value = false +BASE_PROP_CFG_DODGE_FIELD.default_value = 0.0 +BASE_PROP_CFG_DODGE_FIELD.type = 1 +BASE_PROP_CFG_DODGE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_CRITICAL_FIELD.name = "critical" +BASE_PROP_CFG_CRITICAL_FIELD.full_name = ".ftcfg.base_prop_cfg.critical" +BASE_PROP_CFG_CRITICAL_FIELD.number = 9 +BASE_PROP_CFG_CRITICAL_FIELD.index = 8 +BASE_PROP_CFG_CRITICAL_FIELD.label = 2 +BASE_PROP_CFG_CRITICAL_FIELD.has_default_value = false +BASE_PROP_CFG_CRITICAL_FIELD.default_value = 0.0 +BASE_PROP_CFG_CRITICAL_FIELD.type = 1 +BASE_PROP_CFG_CRITICAL_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.name = "anti_critical" +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_critical" +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.number = 10 +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.index = 9 +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.label = 2 +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.type = 1 +BASE_PROP_CFG_ANTI_CRITICAL_FIELD.cpp_type = 5 + +BASE_PROP_CFG_CRITICAL_POWER_FIELD.name = "critical_power" +BASE_PROP_CFG_CRITICAL_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.critical_power" +BASE_PROP_CFG_CRITICAL_POWER_FIELD.number = 11 +BASE_PROP_CFG_CRITICAL_POWER_FIELD.index = 10 +BASE_PROP_CFG_CRITICAL_POWER_FIELD.label = 2 +BASE_PROP_CFG_CRITICAL_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_CRITICAL_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_CRITICAL_POWER_FIELD.type = 1 +BASE_PROP_CFG_CRITICAL_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.name = "anti_critical_power" +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_critical_power" +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.number = 12 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.index = 11 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.label = 2 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.type = 1 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_XP_MAX_FIELD.name = "xp_max" +BASE_PROP_CFG_XP_MAX_FIELD.full_name = ".ftcfg.base_prop_cfg.xp_max" +BASE_PROP_CFG_XP_MAX_FIELD.number = 13 +BASE_PROP_CFG_XP_MAX_FIELD.index = 12 +BASE_PROP_CFG_XP_MAX_FIELD.label = 2 +BASE_PROP_CFG_XP_MAX_FIELD.has_default_value = false +BASE_PROP_CFG_XP_MAX_FIELD.default_value = 0.0 +BASE_PROP_CFG_XP_MAX_FIELD.type = 1 +BASE_PROP_CFG_XP_MAX_FIELD.cpp_type = 5 + +BASE_PROP_CFG_HIT_RATE_FIELD.name = "hit_rate" +BASE_PROP_CFG_HIT_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.hit_rate" +BASE_PROP_CFG_HIT_RATE_FIELD.number = 14 +BASE_PROP_CFG_HIT_RATE_FIELD.index = 13 +BASE_PROP_CFG_HIT_RATE_FIELD.label = 2 +BASE_PROP_CFG_HIT_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_HIT_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_HIT_RATE_FIELD.type = 1 +BASE_PROP_CFG_HIT_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_DODGE_RATE_FIELD.name = "dodge_rate" +BASE_PROP_CFG_DODGE_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.dodge_rate" +BASE_PROP_CFG_DODGE_RATE_FIELD.number = 15 +BASE_PROP_CFG_DODGE_RATE_FIELD.index = 14 +BASE_PROP_CFG_DODGE_RATE_FIELD.label = 2 +BASE_PROP_CFG_DODGE_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_DODGE_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_DODGE_RATE_FIELD.type = 1 +BASE_PROP_CFG_DODGE_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_CRITICAL_RATE_FIELD.name = "critical_rate" +BASE_PROP_CFG_CRITICAL_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.critical_rate" +BASE_PROP_CFG_CRITICAL_RATE_FIELD.number = 16 +BASE_PROP_CFG_CRITICAL_RATE_FIELD.index = 15 +BASE_PROP_CFG_CRITICAL_RATE_FIELD.label = 2 +BASE_PROP_CFG_CRITICAL_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_CRITICAL_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_CRITICAL_RATE_FIELD.type = 1 +BASE_PROP_CFG_CRITICAL_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.name = "anti_critical_rate" +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_critical_rate" +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.number = 17 +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.index = 16 +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.label = 2 +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.type = 1 +BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.name = "critical_power_rate" +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.critical_power_rate" +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.number = 18 +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.index = 17 +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.label = 2 +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.type = 1 +BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.name = "anti_critical_power_rate" +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_critical_power_rate" +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.number = 19 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.index = 18 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.label = 2 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.type = 1 +BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.name = "deceleratte_power" +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.deceleratte_power" +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.number = 20 +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.index = 19 +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.label = 2 +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.type = 1 +BASE_PROP_CFG_DECELERATTE_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.name = "anti_deceleratte_power" +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_deceleratte_power" +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.number = 21 +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.index = 20 +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.label = 2 +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.type = 1 +BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_SLEEP_POWER_FIELD.name = "sleep_power" +BASE_PROP_CFG_SLEEP_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.sleep_power" +BASE_PROP_CFG_SLEEP_POWER_FIELD.number = 22 +BASE_PROP_CFG_SLEEP_POWER_FIELD.index = 21 +BASE_PROP_CFG_SLEEP_POWER_FIELD.label = 2 +BASE_PROP_CFG_SLEEP_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_SLEEP_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_SLEEP_POWER_FIELD.type = 1 +BASE_PROP_CFG_SLEEP_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.name = "anti_sleep_power" +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_sleep_power" +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.number = 23 +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.index = 22 +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.label = 2 +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.type = 1 +BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_HOLD_POWER_FIELD.name = "hold_power" +BASE_PROP_CFG_HOLD_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.hold_power" +BASE_PROP_CFG_HOLD_POWER_FIELD.number = 24 +BASE_PROP_CFG_HOLD_POWER_FIELD.index = 23 +BASE_PROP_CFG_HOLD_POWER_FIELD.label = 2 +BASE_PROP_CFG_HOLD_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_HOLD_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_HOLD_POWER_FIELD.type = 1 +BASE_PROP_CFG_HOLD_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.name = "anti_hold_power" +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_hold_power" +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.number = 25 +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.index = 24 +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.label = 2 +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.type = 1 +BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_CHARM_POWER_FIELD.name = "charm_power" +BASE_PROP_CFG_CHARM_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.charm_power" +BASE_PROP_CFG_CHARM_POWER_FIELD.number = 26 +BASE_PROP_CFG_CHARM_POWER_FIELD.index = 25 +BASE_PROP_CFG_CHARM_POWER_FIELD.label = 2 +BASE_PROP_CFG_CHARM_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_CHARM_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_CHARM_POWER_FIELD.type = 1 +BASE_PROP_CFG_CHARM_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.name = "anti_charm_power" +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_charm_power" +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.number = 27 +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.index = 26 +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.label = 2 +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.type = 1 +BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_SILENCE_POWER_FIELD.name = "silence_power" +BASE_PROP_CFG_SILENCE_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.silence_power" +BASE_PROP_CFG_SILENCE_POWER_FIELD.number = 28 +BASE_PROP_CFG_SILENCE_POWER_FIELD.index = 27 +BASE_PROP_CFG_SILENCE_POWER_FIELD.label = 2 +BASE_PROP_CFG_SILENCE_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_SILENCE_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_SILENCE_POWER_FIELD.type = 1 +BASE_PROP_CFG_SILENCE_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.name = "anti_silence_power" +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.full_name = ".ftcfg.base_prop_cfg.anti_silence_power" +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.number = 29 +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.index = 28 +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.label = 2 +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.has_default_value = false +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.default_value = 0.0 +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.type = 1 +BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD.cpp_type = 5 + +BASE_PROP_CFG_SPEED_FIELD.name = "speed" +BASE_PROP_CFG_SPEED_FIELD.full_name = ".ftcfg.base_prop_cfg.speed" +BASE_PROP_CFG_SPEED_FIELD.number = 30 +BASE_PROP_CFG_SPEED_FIELD.index = 29 +BASE_PROP_CFG_SPEED_FIELD.label = 2 +BASE_PROP_CFG_SPEED_FIELD.has_default_value = false +BASE_PROP_CFG_SPEED_FIELD.default_value = 0.0 +BASE_PROP_CFG_SPEED_FIELD.type = 1 +BASE_PROP_CFG_SPEED_FIELD.cpp_type = 5 + +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.name = "hp_self_heal" +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.full_name = ".ftcfg.base_prop_cfg.hp_self_heal" +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.number = 31 +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.index = 30 +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.label = 2 +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.has_default_value = false +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.default_value = 0.0 +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.type = 1 +BASE_PROP_CFG_HP_SELF_HEAL_FIELD.cpp_type = 5 + +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.name = "mp_self_heal" +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.full_name = ".ftcfg.base_prop_cfg.mp_self_heal" +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.number = 32 +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.index = 31 +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.label = 2 +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.has_default_value = false +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.default_value = 0.0 +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.type = 1 +BASE_PROP_CFG_MP_SELF_HEAL_FIELD.cpp_type = 5 + +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.name = "hp_hit_return" +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.full_name = ".ftcfg.base_prop_cfg.hp_hit_return" +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.number = 33 +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.index = 32 +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.label = 2 +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.has_default_value = false +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.default_value = 0.0 +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.type = 1 +BASE_PROP_CFG_HP_HIT_RETURN_FIELD.cpp_type = 5 + +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.name = "mp_hit_return" +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.full_name = ".ftcfg.base_prop_cfg.mp_hit_return" +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.number = 34 +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.index = 33 +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.label = 2 +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.has_default_value = false +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.default_value = 0.0 +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.type = 1 +BASE_PROP_CFG_MP_HIT_RETURN_FIELD.cpp_type = 5 + +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.name = "hp_damage_return_rate" +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.hp_damage_return_rate" +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.number = 35 +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.index = 34 +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.label = 2 +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.type = 1 +BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.name = "mp_damage_return_rate" +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.mp_damage_return_rate" +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.number = 36 +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.index = 35 +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.label = 2 +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.type = 1 +BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.name = "extra_damage_rate" +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.extra_damage_rate" +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.number = 37 +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.index = 36 +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.label = 2 +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.type = 1 +BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.name = "reduce_damage_rate" +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.reduce_damage_rate" +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.number = 38 +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.index = 37 +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.label = 2 +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.type = 1 +BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.name = "extra_heal_rate" +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.extra_heal_rate" +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.number = 39 +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.index = 38 +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.label = 2 +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.type = 1 +BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.name = "extra_healed_rate" +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.extra_healed_rate" +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.number = 40 +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.index = 39 +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.label = 2 +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.type = 1 +BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_MAUD_FIELD.name = "maud" +BASE_PROP_CFG_MAUD_FIELD.full_name = ".ftcfg.base_prop_cfg.maud" +BASE_PROP_CFG_MAUD_FIELD.number = 41 +BASE_PROP_CFG_MAUD_FIELD.index = 40 +BASE_PROP_CFG_MAUD_FIELD.label = 2 +BASE_PROP_CFG_MAUD_FIELD.has_default_value = false +BASE_PROP_CFG_MAUD_FIELD.default_value = 0.0 +BASE_PROP_CFG_MAUD_FIELD.type = 1 +BASE_PROP_CFG_MAUD_FIELD.cpp_type = 5 + +BASE_PROP_CFG_MIND_FIELD.name = "mind" +BASE_PROP_CFG_MIND_FIELD.full_name = ".ftcfg.base_prop_cfg.mind" +BASE_PROP_CFG_MIND_FIELD.number = 42 +BASE_PROP_CFG_MIND_FIELD.index = 41 +BASE_PROP_CFG_MIND_FIELD.label = 2 +BASE_PROP_CFG_MIND_FIELD.has_default_value = false +BASE_PROP_CFG_MIND_FIELD.default_value = 0.0 +BASE_PROP_CFG_MIND_FIELD.type = 1 +BASE_PROP_CFG_MIND_FIELD.cpp_type = 5 + +BASE_PROP_CFG_CONSTITUTION_FIELD.name = "constitution" +BASE_PROP_CFG_CONSTITUTION_FIELD.full_name = ".ftcfg.base_prop_cfg.constitution" +BASE_PROP_CFG_CONSTITUTION_FIELD.number = 43 +BASE_PROP_CFG_CONSTITUTION_FIELD.index = 42 +BASE_PROP_CFG_CONSTITUTION_FIELD.label = 2 +BASE_PROP_CFG_CONSTITUTION_FIELD.has_default_value = false +BASE_PROP_CFG_CONSTITUTION_FIELD.default_value = 0.0 +BASE_PROP_CFG_CONSTITUTION_FIELD.type = 1 +BASE_PROP_CFG_CONSTITUTION_FIELD.cpp_type = 5 + +BASE_PROP_CFG_INTENSITY_FIELD.name = "intensity" +BASE_PROP_CFG_INTENSITY_FIELD.full_name = ".ftcfg.base_prop_cfg.intensity" +BASE_PROP_CFG_INTENSITY_FIELD.number = 44 +BASE_PROP_CFG_INTENSITY_FIELD.index = 43 +BASE_PROP_CFG_INTENSITY_FIELD.label = 2 +BASE_PROP_CFG_INTENSITY_FIELD.has_default_value = false +BASE_PROP_CFG_INTENSITY_FIELD.default_value = 0.0 +BASE_PROP_CFG_INTENSITY_FIELD.type = 1 +BASE_PROP_CFG_INTENSITY_FIELD.cpp_type = 5 + +BASE_PROP_CFG_DEADLY_RATE_FIELD.name = "deadly_rate" +BASE_PROP_CFG_DEADLY_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.deadly_rate" +BASE_PROP_CFG_DEADLY_RATE_FIELD.number = 45 +BASE_PROP_CFG_DEADLY_RATE_FIELD.index = 44 +BASE_PROP_CFG_DEADLY_RATE_FIELD.label = 2 +BASE_PROP_CFG_DEADLY_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_DEADLY_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_DEADLY_RATE_FIELD.type = 1 +BASE_PROP_CFG_DEADLY_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.name = "defy_defense_rate" +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.defy_defense_rate" +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.number = 46 +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.index = 45 +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.label = 2 +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.type = 1 +BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_BLOCK_RATE_FIELD.name = "block_rate" +BASE_PROP_CFG_BLOCK_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.block_rate" +BASE_PROP_CFG_BLOCK_RATE_FIELD.number = 47 +BASE_PROP_CFG_BLOCK_RATE_FIELD.index = 46 +BASE_PROP_CFG_BLOCK_RATE_FIELD.label = 2 +BASE_PROP_CFG_BLOCK_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_BLOCK_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_BLOCK_RATE_FIELD.type = 1 +BASE_PROP_CFG_BLOCK_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.name = "defy_block_rate" +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.defy_block_rate" +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.number = 48 +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.index = 47 +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.label = 2 +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.type = 1 +BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.name = "hp_kill_return" +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.full_name = ".ftcfg.base_prop_cfg.hp_kill_return" +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.number = 49 +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.index = 48 +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.label = 2 +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.has_default_value = false +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.default_value = 0.0 +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.type = 1 +BASE_PROP_CFG_HP_KILL_RETURN_FIELD.cpp_type = 5 + +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.name = "exp_kill_return" +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.full_name = ".ftcfg.base_prop_cfg.exp_kill_return" +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.number = 50 +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.index = 49 +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.label = 2 +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.has_default_value = false +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.default_value = 0.0 +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.type = 1 +BASE_PROP_CFG_EXP_KILL_RETURN_FIELD.cpp_type = 5 + +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.name = "reduce_skill_cd" +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.full_name = ".ftcfg.base_prop_cfg.reduce_skill_cd" +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.number = 51 +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.index = 50 +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.label = 2 +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.has_default_value = false +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.default_value = 0.0 +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.type = 1 +BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD.cpp_type = 5 + +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.name = "reduce_skill_cost" +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.full_name = ".ftcfg.base_prop_cfg.reduce_skill_cost" +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.number = 52 +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.index = 51 +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.label = 2 +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.has_default_value = false +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.default_value = 0.0 +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.type = 1 +BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD.cpp_type = 5 + +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.name = "npc_extra_damage" +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.full_name = ".ftcfg.base_prop_cfg.npc_extra_damage" +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.number = 53 +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.index = 52 +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.label = 2 +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.has_default_value = false +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.default_value = 0.0 +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.type = 1 +BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.name = "reduce_npc_damage" +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.full_name = ".ftcfg.base_prop_cfg.reduce_npc_damage" +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.number = 54 +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.index = 53 +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.label = 2 +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.has_default_value = false +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.default_value = 0.0 +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.type = 1 +BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD.cpp_type = 5 + +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.name = "xp_self_heal" +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.full_name = ".ftcfg.base_prop_cfg.xp_self_heal" +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.number = 55 +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.index = 54 +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.label = 2 +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.has_default_value = false +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.default_value = 0.0 +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.type = 1 +BASE_PROP_CFG_XP_SELF_HEAL_FIELD.cpp_type = 5 + +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.name = "logic_repeat3_rate" +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.full_name = ".ftcfg.base_prop_cfg.logic_repeat3_rate" +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.number = 56 +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.index = 55 +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.label = 2 +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.has_default_value = false +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.default_value = 0.0 +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.type = 1 +BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD.cpp_type = 5 + +BASE_PROP_CFG.name = "base_prop_cfg" +BASE_PROP_CFG.full_name = ".ftcfg.base_prop_cfg" +BASE_PROP_CFG.nested_types = {} +BASE_PROP_CFG.enum_types = {} +BASE_PROP_CFG.fields = {BASE_PROP_CFG_PROF_TYPE_FIELD, BASE_PROP_CFG_LEVEL_FIELD, BASE_PROP_CFG_HP_MAX_FIELD, BASE_PROP_CFG_MP_MAX_FIELD, BASE_PROP_CFG_ATTACK_FIELD, BASE_PROP_CFG_DEFENSE_FIELD, BASE_PROP_CFG_HIT_FIELD, BASE_PROP_CFG_DODGE_FIELD, BASE_PROP_CFG_CRITICAL_FIELD, BASE_PROP_CFG_ANTI_CRITICAL_FIELD, BASE_PROP_CFG_CRITICAL_POWER_FIELD, BASE_PROP_CFG_ANTI_CRITICAL_POWER_FIELD, BASE_PROP_CFG_XP_MAX_FIELD, BASE_PROP_CFG_HIT_RATE_FIELD, BASE_PROP_CFG_DODGE_RATE_FIELD, BASE_PROP_CFG_CRITICAL_RATE_FIELD, BASE_PROP_CFG_ANTI_CRITICAL_RATE_FIELD, BASE_PROP_CFG_CRITICAL_POWER_RATE_FIELD, BASE_PROP_CFG_ANTI_CRITICAL_POWER_RATE_FIELD, BASE_PROP_CFG_DECELERATTE_POWER_FIELD, BASE_PROP_CFG_ANTI_DECELERATTE_POWER_FIELD, BASE_PROP_CFG_SLEEP_POWER_FIELD, BASE_PROP_CFG_ANTI_SLEEP_POWER_FIELD, BASE_PROP_CFG_HOLD_POWER_FIELD, BASE_PROP_CFG_ANTI_HOLD_POWER_FIELD, BASE_PROP_CFG_CHARM_POWER_FIELD, BASE_PROP_CFG_ANTI_CHARM_POWER_FIELD, BASE_PROP_CFG_SILENCE_POWER_FIELD, BASE_PROP_CFG_ANTI_SILENCE_POWER_FIELD, BASE_PROP_CFG_SPEED_FIELD, BASE_PROP_CFG_HP_SELF_HEAL_FIELD, BASE_PROP_CFG_MP_SELF_HEAL_FIELD, BASE_PROP_CFG_HP_HIT_RETURN_FIELD, BASE_PROP_CFG_MP_HIT_RETURN_FIELD, BASE_PROP_CFG_HP_DAMAGE_RETURN_RATE_FIELD, BASE_PROP_CFG_MP_DAMAGE_RETURN_RATE_FIELD, BASE_PROP_CFG_EXTRA_DAMAGE_RATE_FIELD, BASE_PROP_CFG_REDUCE_DAMAGE_RATE_FIELD, BASE_PROP_CFG_EXTRA_HEAL_RATE_FIELD, BASE_PROP_CFG_EXTRA_HEALED_RATE_FIELD, BASE_PROP_CFG_MAUD_FIELD, BASE_PROP_CFG_MIND_FIELD, BASE_PROP_CFG_CONSTITUTION_FIELD, BASE_PROP_CFG_INTENSITY_FIELD, BASE_PROP_CFG_DEADLY_RATE_FIELD, BASE_PROP_CFG_DEFY_DEFENSE_RATE_FIELD, BASE_PROP_CFG_BLOCK_RATE_FIELD, BASE_PROP_CFG_DEFY_BLOCK_RATE_FIELD, BASE_PROP_CFG_HP_KILL_RETURN_FIELD, BASE_PROP_CFG_EXP_KILL_RETURN_FIELD, BASE_PROP_CFG_REDUCE_SKILL_CD_FIELD, BASE_PROP_CFG_REDUCE_SKILL_COST_FIELD, BASE_PROP_CFG_NPC_EXTRA_DAMAGE_FIELD, BASE_PROP_CFG_REDUCE_NPC_DAMAGE_FIELD, BASE_PROP_CFG_XP_SELF_HEAL_FIELD, BASE_PROP_CFG_LOGIC_REPEAT3_RATE_FIELD} +BASE_PROP_CFG.is_extendable = false +BASE_PROP_CFG.extensions = {} +BASE_PROP_CFGS_ITEMS_FIELD.name = "items" +BASE_PROP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.base_prop_cfgs.items" +BASE_PROP_CFGS_ITEMS_FIELD.number = 1 +BASE_PROP_CFGS_ITEMS_FIELD.index = 0 +BASE_PROP_CFGS_ITEMS_FIELD.label = 3 +BASE_PROP_CFGS_ITEMS_FIELD.has_default_value = false +BASE_PROP_CFGS_ITEMS_FIELD.default_value = {} +BASE_PROP_CFGS_ITEMS_FIELD.message_type = BASE_PROP_CFG +BASE_PROP_CFGS_ITEMS_FIELD.type = 11 +BASE_PROP_CFGS_ITEMS_FIELD.cpp_type = 10 + +BASE_PROP_CFGS.name = "base_prop_cfgs" +BASE_PROP_CFGS.full_name = ".ftcfg.base_prop_cfgs" +BASE_PROP_CFGS.nested_types = {} +BASE_PROP_CFGS.enum_types = {} +BASE_PROP_CFGS.fields = {BASE_PROP_CFGS_ITEMS_FIELD} +BASE_PROP_CFGS.is_extendable = false +BASE_PROP_CFGS.extensions = {} +LEVEL_EXP_CFG_LEVEL_FIELD.name = "level" +LEVEL_EXP_CFG_LEVEL_FIELD.full_name = ".ftcfg.level_exp_cfg.level" +LEVEL_EXP_CFG_LEVEL_FIELD.number = 1 +LEVEL_EXP_CFG_LEVEL_FIELD.index = 0 +LEVEL_EXP_CFG_LEVEL_FIELD.label = 2 +LEVEL_EXP_CFG_LEVEL_FIELD.has_default_value = false +LEVEL_EXP_CFG_LEVEL_FIELD.default_value = 0 +LEVEL_EXP_CFG_LEVEL_FIELD.type = 5 +LEVEL_EXP_CFG_LEVEL_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_NEED_EXP_FIELD.name = "need_exp" +LEVEL_EXP_CFG_NEED_EXP_FIELD.full_name = ".ftcfg.level_exp_cfg.need_exp" +LEVEL_EXP_CFG_NEED_EXP_FIELD.number = 2 +LEVEL_EXP_CFG_NEED_EXP_FIELD.index = 1 +LEVEL_EXP_CFG_NEED_EXP_FIELD.label = 2 +LEVEL_EXP_CFG_NEED_EXP_FIELD.has_default_value = false +LEVEL_EXP_CFG_NEED_EXP_FIELD.default_value = 0 +LEVEL_EXP_CFG_NEED_EXP_FIELD.type = 5 +LEVEL_EXP_CFG_NEED_EXP_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_CAMP_FIELD.name = "camp" +LEVEL_EXP_CFG_CAMP_FIELD.full_name = ".ftcfg.level_exp_cfg.camp" +LEVEL_EXP_CFG_CAMP_FIELD.number = 3 +LEVEL_EXP_CFG_CAMP_FIELD.index = 2 +LEVEL_EXP_CFG_CAMP_FIELD.label = 2 +LEVEL_EXP_CFG_CAMP_FIELD.has_default_value = false +LEVEL_EXP_CFG_CAMP_FIELD.default_value = 0 +LEVEL_EXP_CFG_CAMP_FIELD.type = 5 +LEVEL_EXP_CFG_CAMP_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.name = "combat_point" +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.full_name = ".ftcfg.level_exp_cfg.combat_point" +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.number = 4 +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.index = 3 +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.label = 2 +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.has_default_value = false +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.default_value = 0 +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.type = 5 +LEVEL_EXP_CFG_COMBAT_POINT_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.name = "kill_popularity_min" +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.full_name = ".ftcfg.level_exp_cfg.kill_popularity_min" +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.number = 5 +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.index = 4 +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.label = 2 +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.has_default_value = false +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.default_value = 0 +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.type = 5 +LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.name = "kill_popularity_max" +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.full_name = ".ftcfg.level_exp_cfg.kill_popularity_max" +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.number = 6 +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.index = 5 +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.label = 2 +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.has_default_value = false +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.default_value = 0 +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.type = 5 +LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.name = "assists_popularity_min" +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.full_name = ".ftcfg.level_exp_cfg.assists_popularity_min" +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.number = 7 +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.index = 6 +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.label = 2 +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.has_default_value = false +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.default_value = 0 +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.type = 5 +LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.name = "gold_coupon_max" +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.full_name = ".ftcfg.level_exp_cfg.gold_coupon_max" +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.number = 8 +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.index = 7 +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.label = 2 +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.has_default_value = false +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.default_value = 0 +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.type = 5 +LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_EXP_MAX_FIELD.name = "exp_max" +LEVEL_EXP_CFG_EXP_MAX_FIELD.full_name = ".ftcfg.level_exp_cfg.exp_max" +LEVEL_EXP_CFG_EXP_MAX_FIELD.number = 9 +LEVEL_EXP_CFG_EXP_MAX_FIELD.index = 8 +LEVEL_EXP_CFG_EXP_MAX_FIELD.label = 2 +LEVEL_EXP_CFG_EXP_MAX_FIELD.has_default_value = false +LEVEL_EXP_CFG_EXP_MAX_FIELD.default_value = 0 +LEVEL_EXP_CFG_EXP_MAX_FIELD.type = 5 +LEVEL_EXP_CFG_EXP_MAX_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.name = "popularity_max" +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.full_name = ".ftcfg.level_exp_cfg.popularity_max" +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.number = 10 +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.index = 9 +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.label = 2 +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.has_default_value = false +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.default_value = 0 +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.type = 5 +LEVEL_EXP_CFG_POPULARITY_MAX_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.name = "bind_popularity_max" +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.full_name = ".ftcfg.level_exp_cfg.bind_popularity_max" +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.number = 11 +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.index = 10 +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.label = 2 +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.has_default_value = false +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.default_value = 0 +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.type = 5 +LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.name = "annihilation_reward" +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.full_name = ".ftcfg.level_exp_cfg.annihilation_reward" +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.number = 12 +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.index = 11 +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.label = 2 +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.has_default_value = false +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.default_value = 0 +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.type = 5 +LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD.cpp_type = 1 + +LEVEL_EXP_CFG.name = "level_exp_cfg" +LEVEL_EXP_CFG.full_name = ".ftcfg.level_exp_cfg" +LEVEL_EXP_CFG.nested_types = {} +LEVEL_EXP_CFG.enum_types = {} +LEVEL_EXP_CFG.fields = {LEVEL_EXP_CFG_LEVEL_FIELD, LEVEL_EXP_CFG_NEED_EXP_FIELD, LEVEL_EXP_CFG_CAMP_FIELD, LEVEL_EXP_CFG_COMBAT_POINT_FIELD, LEVEL_EXP_CFG_KILL_POPULARITY_MIN_FIELD, LEVEL_EXP_CFG_KILL_POPULARITY_MAX_FIELD, LEVEL_EXP_CFG_ASSISTS_POPULARITY_MIN_FIELD, LEVEL_EXP_CFG_GOLD_COUPON_MAX_FIELD, LEVEL_EXP_CFG_EXP_MAX_FIELD, LEVEL_EXP_CFG_POPULARITY_MAX_FIELD, LEVEL_EXP_CFG_BIND_POPULARITY_MAX_FIELD, LEVEL_EXP_CFG_ANNIHILATION_REWARD_FIELD} +LEVEL_EXP_CFG.is_extendable = false +LEVEL_EXP_CFG.extensions = {} +LEVEL_EXP_CFGS_ITEMS_FIELD.name = "items" +LEVEL_EXP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.level_exp_cfgs.items" +LEVEL_EXP_CFGS_ITEMS_FIELD.number = 1 +LEVEL_EXP_CFGS_ITEMS_FIELD.index = 0 +LEVEL_EXP_CFGS_ITEMS_FIELD.label = 3 +LEVEL_EXP_CFGS_ITEMS_FIELD.has_default_value = false +LEVEL_EXP_CFGS_ITEMS_FIELD.default_value = {} +LEVEL_EXP_CFGS_ITEMS_FIELD.message_type = LEVEL_EXP_CFG +LEVEL_EXP_CFGS_ITEMS_FIELD.type = 11 +LEVEL_EXP_CFGS_ITEMS_FIELD.cpp_type = 10 + +LEVEL_EXP_CFGS.name = "level_exp_cfgs" +LEVEL_EXP_CFGS.full_name = ".ftcfg.level_exp_cfgs" +LEVEL_EXP_CFGS.nested_types = {} +LEVEL_EXP_CFGS.enum_types = {} +LEVEL_EXP_CFGS.fields = {LEVEL_EXP_CFGS_ITEMS_FIELD} +LEVEL_EXP_CFGS.is_extendable = false +LEVEL_EXP_CFGS.extensions = {} +LANGUAGE_CFG_ID_FIELD.name = "id" +LANGUAGE_CFG_ID_FIELD.full_name = ".ftcfg.language_cfg.id" +LANGUAGE_CFG_ID_FIELD.number = 1 +LANGUAGE_CFG_ID_FIELD.index = 0 +LANGUAGE_CFG_ID_FIELD.label = 2 +LANGUAGE_CFG_ID_FIELD.has_default_value = false +LANGUAGE_CFG_ID_FIELD.default_value = 0 +LANGUAGE_CFG_ID_FIELD.type = 5 +LANGUAGE_CFG_ID_FIELD.cpp_type = 1 + +LANGUAGE_CFG_TEXT_FIELD.name = "text" +LANGUAGE_CFG_TEXT_FIELD.full_name = ".ftcfg.language_cfg.text" +LANGUAGE_CFG_TEXT_FIELD.number = 2 +LANGUAGE_CFG_TEXT_FIELD.index = 1 +LANGUAGE_CFG_TEXT_FIELD.label = 2 +LANGUAGE_CFG_TEXT_FIELD.has_default_value = false +LANGUAGE_CFG_TEXT_FIELD.default_value = "" +LANGUAGE_CFG_TEXT_FIELD.type = 9 +LANGUAGE_CFG_TEXT_FIELD.cpp_type = 9 + +LANGUAGE_CFG.name = "language_cfg" +LANGUAGE_CFG.full_name = ".ftcfg.language_cfg" +LANGUAGE_CFG.nested_types = {} +LANGUAGE_CFG.enum_types = {} +LANGUAGE_CFG.fields = {LANGUAGE_CFG_ID_FIELD, LANGUAGE_CFG_TEXT_FIELD} +LANGUAGE_CFG.is_extendable = false +LANGUAGE_CFG.extensions = {} +LANGUAGE_CFGS_ITEMS_FIELD.name = "items" +LANGUAGE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.language_cfgs.items" +LANGUAGE_CFGS_ITEMS_FIELD.number = 1 +LANGUAGE_CFGS_ITEMS_FIELD.index = 0 +LANGUAGE_CFGS_ITEMS_FIELD.label = 3 +LANGUAGE_CFGS_ITEMS_FIELD.has_default_value = false +LANGUAGE_CFGS_ITEMS_FIELD.default_value = {} +LANGUAGE_CFGS_ITEMS_FIELD.message_type = LANGUAGE_CFG +LANGUAGE_CFGS_ITEMS_FIELD.type = 11 +LANGUAGE_CFGS_ITEMS_FIELD.cpp_type = 10 + +LANGUAGE_CFGS.name = "language_cfgs" +LANGUAGE_CFGS.full_name = ".ftcfg.language_cfgs" +LANGUAGE_CFGS.nested_types = {} +LANGUAGE_CFGS.enum_types = {} +LANGUAGE_CFGS.fields = {LANGUAGE_CFGS_ITEMS_FIELD} +LANGUAGE_CFGS.is_extendable = false +LANGUAGE_CFGS.extensions = {} +MISSION_CFG_ID_FIELD.name = "id" +MISSION_CFG_ID_FIELD.full_name = ".ftcfg.mission_cfg.id" +MISSION_CFG_ID_FIELD.number = 1 +MISSION_CFG_ID_FIELD.index = 0 +MISSION_CFG_ID_FIELD.label = 2 +MISSION_CFG_ID_FIELD.has_default_value = false +MISSION_CFG_ID_FIELD.default_value = 0 +MISSION_CFG_ID_FIELD.type = 5 +MISSION_CFG_ID_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_GROUPID_FIELD.name = "mission_groupid" +MISSION_CFG_MISSION_GROUPID_FIELD.full_name = ".ftcfg.mission_cfg.mission_groupid" +MISSION_CFG_MISSION_GROUPID_FIELD.number = 2 +MISSION_CFG_MISSION_GROUPID_FIELD.index = 1 +MISSION_CFG_MISSION_GROUPID_FIELD.label = 2 +MISSION_CFG_MISSION_GROUPID_FIELD.has_default_value = false +MISSION_CFG_MISSION_GROUPID_FIELD.default_value = 0 +MISSION_CFG_MISSION_GROUPID_FIELD.type = 5 +MISSION_CFG_MISSION_GROUPID_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_COLOUR_FIELD.name = "mission_colour" +MISSION_CFG_MISSION_COLOUR_FIELD.full_name = ".ftcfg.mission_cfg.mission_colour" +MISSION_CFG_MISSION_COLOUR_FIELD.number = 3 +MISSION_CFG_MISSION_COLOUR_FIELD.index = 2 +MISSION_CFG_MISSION_COLOUR_FIELD.label = 2 +MISSION_CFG_MISSION_COLOUR_FIELD.has_default_value = false +MISSION_CFG_MISSION_COLOUR_FIELD.default_value = 0 +MISSION_CFG_MISSION_COLOUR_FIELD.type = 5 +MISSION_CFG_MISSION_COLOUR_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_NAME_FIELD.name = "mission_name" +MISSION_CFG_MISSION_NAME_FIELD.full_name = ".ftcfg.mission_cfg.mission_name" +MISSION_CFG_MISSION_NAME_FIELD.number = 4 +MISSION_CFG_MISSION_NAME_FIELD.index = 3 +MISSION_CFG_MISSION_NAME_FIELD.label = 2 +MISSION_CFG_MISSION_NAME_FIELD.has_default_value = false +MISSION_CFG_MISSION_NAME_FIELD.default_value = 0 +MISSION_CFG_MISSION_NAME_FIELD.type = 5 +MISSION_CFG_MISSION_NAME_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_TEXT_FIELD.name = "mission_text" +MISSION_CFG_MISSION_TEXT_FIELD.full_name = ".ftcfg.mission_cfg.mission_text" +MISSION_CFG_MISSION_TEXT_FIELD.number = 5 +MISSION_CFG_MISSION_TEXT_FIELD.index = 4 +MISSION_CFG_MISSION_TEXT_FIELD.label = 2 +MISSION_CFG_MISSION_TEXT_FIELD.has_default_value = false +MISSION_CFG_MISSION_TEXT_FIELD.default_value = 0 +MISSION_CFG_MISSION_TEXT_FIELD.type = 5 +MISSION_CFG_MISSION_TEXT_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_TARGET1_FIELD.name = "mission_target1" +MISSION_CFG_MISSION_TARGET1_FIELD.full_name = ".ftcfg.mission_cfg.mission_target1" +MISSION_CFG_MISSION_TARGET1_FIELD.number = 6 +MISSION_CFG_MISSION_TARGET1_FIELD.index = 5 +MISSION_CFG_MISSION_TARGET1_FIELD.label = 2 +MISSION_CFG_MISSION_TARGET1_FIELD.has_default_value = false +MISSION_CFG_MISSION_TARGET1_FIELD.default_value = 0 +MISSION_CFG_MISSION_TARGET1_FIELD.type = 5 +MISSION_CFG_MISSION_TARGET1_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_TARGET2_FIELD.name = "mission_target2" +MISSION_CFG_MISSION_TARGET2_FIELD.full_name = ".ftcfg.mission_cfg.mission_target2" +MISSION_CFG_MISSION_TARGET2_FIELD.number = 7 +MISSION_CFG_MISSION_TARGET2_FIELD.index = 6 +MISSION_CFG_MISSION_TARGET2_FIELD.label = 2 +MISSION_CFG_MISSION_TARGET2_FIELD.has_default_value = false +MISSION_CFG_MISSION_TARGET2_FIELD.default_value = 0 +MISSION_CFG_MISSION_TARGET2_FIELD.type = 5 +MISSION_CFG_MISSION_TARGET2_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_TARGET3_FIELD.name = "mission_target3" +MISSION_CFG_MISSION_TARGET3_FIELD.full_name = ".ftcfg.mission_cfg.mission_target3" +MISSION_CFG_MISSION_TARGET3_FIELD.number = 8 +MISSION_CFG_MISSION_TARGET3_FIELD.index = 7 +MISSION_CFG_MISSION_TARGET3_FIELD.label = 2 +MISSION_CFG_MISSION_TARGET3_FIELD.has_default_value = false +MISSION_CFG_MISSION_TARGET3_FIELD.default_value = 0 +MISSION_CFG_MISSION_TARGET3_FIELD.type = 5 +MISSION_CFG_MISSION_TARGET3_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_TYPE_FIELD.name = "mission_type" +MISSION_CFG_MISSION_TYPE_FIELD.full_name = ".ftcfg.mission_cfg.mission_type" +MISSION_CFG_MISSION_TYPE_FIELD.number = 9 +MISSION_CFG_MISSION_TYPE_FIELD.index = 8 +MISSION_CFG_MISSION_TYPE_FIELD.label = 2 +MISSION_CFG_MISSION_TYPE_FIELD.has_default_value = false +MISSION_CFG_MISSION_TYPE_FIELD.default_value = 0 +MISSION_CFG_MISSION_TYPE_FIELD.type = 5 +MISSION_CFG_MISSION_TYPE_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_TARGETTYPE_FIELD.name = "mission_targettype" +MISSION_CFG_MISSION_TARGETTYPE_FIELD.full_name = ".ftcfg.mission_cfg.mission_targettype" +MISSION_CFG_MISSION_TARGETTYPE_FIELD.number = 10 +MISSION_CFG_MISSION_TARGETTYPE_FIELD.index = 9 +MISSION_CFG_MISSION_TARGETTYPE_FIELD.label = 2 +MISSION_CFG_MISSION_TARGETTYPE_FIELD.has_default_value = false +MISSION_CFG_MISSION_TARGETTYPE_FIELD.default_value = 0 +MISSION_CFG_MISSION_TARGETTYPE_FIELD.type = 5 +MISSION_CFG_MISSION_TARGETTYPE_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_OCCUPATION_FIELD.name = "mission_occupation" +MISSION_CFG_MISSION_OCCUPATION_FIELD.full_name = ".ftcfg.mission_cfg.mission_occupation" +MISSION_CFG_MISSION_OCCUPATION_FIELD.number = 11 +MISSION_CFG_MISSION_OCCUPATION_FIELD.index = 10 +MISSION_CFG_MISSION_OCCUPATION_FIELD.label = 3 +MISSION_CFG_MISSION_OCCUPATION_FIELD.has_default_value = false +MISSION_CFG_MISSION_OCCUPATION_FIELD.default_value = {} +MISSION_CFG_MISSION_OCCUPATION_FIELD.type = 5 +MISSION_CFG_MISSION_OCCUPATION_FIELD.cpp_type = 1 + +MISSION_CFG_REPEAT_WHETHER_FIELD.name = "repeat_whether" +MISSION_CFG_REPEAT_WHETHER_FIELD.full_name = ".ftcfg.mission_cfg.repeat_whether" +MISSION_CFG_REPEAT_WHETHER_FIELD.number = 12 +MISSION_CFG_REPEAT_WHETHER_FIELD.index = 11 +MISSION_CFG_REPEAT_WHETHER_FIELD.label = 2 +MISSION_CFG_REPEAT_WHETHER_FIELD.has_default_value = false +MISSION_CFG_REPEAT_WHETHER_FIELD.default_value = 0 +MISSION_CFG_REPEAT_WHETHER_FIELD.type = 5 +MISSION_CFG_REPEAT_WHETHER_FIELD.cpp_type = 1 + +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.name = "directacce_whether" +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.full_name = ".ftcfg.mission_cfg.directacce_whether" +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.number = 13 +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.index = 12 +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.label = 2 +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.has_default_value = false +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.default_value = 0 +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.type = 5 +MISSION_CFG_DIRECTACCE_WHETHER_FIELD.cpp_type = 1 + +MISSION_CFG_AUTO_WHETHER_FIELD.name = "auto_whether" +MISSION_CFG_AUTO_WHETHER_FIELD.full_name = ".ftcfg.mission_cfg.auto_whether" +MISSION_CFG_AUTO_WHETHER_FIELD.number = 14 +MISSION_CFG_AUTO_WHETHER_FIELD.index = 13 +MISSION_CFG_AUTO_WHETHER_FIELD.label = 2 +MISSION_CFG_AUTO_WHETHER_FIELD.has_default_value = false +MISSION_CFG_AUTO_WHETHER_FIELD.default_value = 0 +MISSION_CFG_AUTO_WHETHER_FIELD.type = 5 +MISSION_CFG_AUTO_WHETHER_FIELD.cpp_type = 1 + +MISSION_CFG_AUTO_COMMIT_FIELD.name = "auto_commit" +MISSION_CFG_AUTO_COMMIT_FIELD.full_name = ".ftcfg.mission_cfg.auto_commit" +MISSION_CFG_AUTO_COMMIT_FIELD.number = 15 +MISSION_CFG_AUTO_COMMIT_FIELD.index = 14 +MISSION_CFG_AUTO_COMMIT_FIELD.label = 2 +MISSION_CFG_AUTO_COMMIT_FIELD.has_default_value = false +MISSION_CFG_AUTO_COMMIT_FIELD.default_value = 0 +MISSION_CFG_AUTO_COMMIT_FIELD.type = 5 +MISSION_CFG_AUTO_COMMIT_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_FRONTID_FIELD.name = "mission_frontid" +MISSION_CFG_MISSION_FRONTID_FIELD.full_name = ".ftcfg.mission_cfg.mission_frontid" +MISSION_CFG_MISSION_FRONTID_FIELD.number = 16 +MISSION_CFG_MISSION_FRONTID_FIELD.index = 15 +MISSION_CFG_MISSION_FRONTID_FIELD.label = 2 +MISSION_CFG_MISSION_FRONTID_FIELD.has_default_value = false +MISSION_CFG_MISSION_FRONTID_FIELD.default_value = 0 +MISSION_CFG_MISSION_FRONTID_FIELD.type = 5 +MISSION_CFG_MISSION_FRONTID_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_TRIGGERLV_FIELD.name = "mission_triggerlv" +MISSION_CFG_MISSION_TRIGGERLV_FIELD.full_name = ".ftcfg.mission_cfg.mission_triggerlv" +MISSION_CFG_MISSION_TRIGGERLV_FIELD.number = 17 +MISSION_CFG_MISSION_TRIGGERLV_FIELD.index = 16 +MISSION_CFG_MISSION_TRIGGERLV_FIELD.label = 2 +MISSION_CFG_MISSION_TRIGGERLV_FIELD.has_default_value = false +MISSION_CFG_MISSION_TRIGGERLV_FIELD.default_value = 0 +MISSION_CFG_MISSION_TRIGGERLV_FIELD.type = 5 +MISSION_CFG_MISSION_TRIGGERLV_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_GIVEUP_FIELD.name = "mission_giveup" +MISSION_CFG_MISSION_GIVEUP_FIELD.full_name = ".ftcfg.mission_cfg.mission_giveup" +MISSION_CFG_MISSION_GIVEUP_FIELD.number = 18 +MISSION_CFG_MISSION_GIVEUP_FIELD.index = 17 +MISSION_CFG_MISSION_GIVEUP_FIELD.label = 2 +MISSION_CFG_MISSION_GIVEUP_FIELD.has_default_value = false +MISSION_CFG_MISSION_GIVEUP_FIELD.default_value = 0 +MISSION_CFG_MISSION_GIVEUP_FIELD.type = 5 +MISSION_CFG_MISSION_GIVEUP_FIELD.cpp_type = 1 + +MISSION_CFG_MISSIONNODE_LIST_FIELD.name = "missionnode_list" +MISSION_CFG_MISSIONNODE_LIST_FIELD.full_name = ".ftcfg.mission_cfg.missionnode_list" +MISSION_CFG_MISSIONNODE_LIST_FIELD.number = 19 +MISSION_CFG_MISSIONNODE_LIST_FIELD.index = 18 +MISSION_CFG_MISSIONNODE_LIST_FIELD.label = 3 +MISSION_CFG_MISSIONNODE_LIST_FIELD.has_default_value = false +MISSION_CFG_MISSIONNODE_LIST_FIELD.default_value = {} +MISSION_CFG_MISSIONNODE_LIST_FIELD.type = 5 +MISSION_CFG_MISSIONNODE_LIST_FIELD.cpp_type = 1 + +MISSION_CFG_DAILY_TIMES_FIELD.name = "daily_times" +MISSION_CFG_DAILY_TIMES_FIELD.full_name = ".ftcfg.mission_cfg.daily_times" +MISSION_CFG_DAILY_TIMES_FIELD.number = 20 +MISSION_CFG_DAILY_TIMES_FIELD.index = 19 +MISSION_CFG_DAILY_TIMES_FIELD.label = 2 +MISSION_CFG_DAILY_TIMES_FIELD.has_default_value = false +MISSION_CFG_DAILY_TIMES_FIELD.default_value = 0 +MISSION_CFG_DAILY_TIMES_FIELD.type = 5 +MISSION_CFG_DAILY_TIMES_FIELD.cpp_type = 1 + +MISSION_CFG_RESET_TIME_FIELD.name = "reset_time" +MISSION_CFG_RESET_TIME_FIELD.full_name = ".ftcfg.mission_cfg.reset_time" +MISSION_CFG_RESET_TIME_FIELD.number = 21 +MISSION_CFG_RESET_TIME_FIELD.index = 20 +MISSION_CFG_RESET_TIME_FIELD.label = 2 +MISSION_CFG_RESET_TIME_FIELD.has_default_value = false +MISSION_CFG_RESET_TIME_FIELD.default_value = 0 +MISSION_CFG_RESET_TIME_FIELD.type = 5 +MISSION_CFG_RESET_TIME_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_DURATION_FIELD.name = "mission_duration" +MISSION_CFG_MISSION_DURATION_FIELD.full_name = ".ftcfg.mission_cfg.mission_duration" +MISSION_CFG_MISSION_DURATION_FIELD.number = 22 +MISSION_CFG_MISSION_DURATION_FIELD.index = 21 +MISSION_CFG_MISSION_DURATION_FIELD.label = 2 +MISSION_CFG_MISSION_DURATION_FIELD.has_default_value = false +MISSION_CFG_MISSION_DURATION_FIELD.default_value = 0 +MISSION_CFG_MISSION_DURATION_FIELD.type = 5 +MISSION_CFG_MISSION_DURATION_FIELD.cpp_type = 1 + +MISSION_CFG_ACCEPT_SCENEID_FIELD.name = "accept_sceneid" +MISSION_CFG_ACCEPT_SCENEID_FIELD.full_name = ".ftcfg.mission_cfg.accept_sceneid" +MISSION_CFG_ACCEPT_SCENEID_FIELD.number = 23 +MISSION_CFG_ACCEPT_SCENEID_FIELD.index = 22 +MISSION_CFG_ACCEPT_SCENEID_FIELD.label = 2 +MISSION_CFG_ACCEPT_SCENEID_FIELD.has_default_value = false +MISSION_CFG_ACCEPT_SCENEID_FIELD.default_value = 0 +MISSION_CFG_ACCEPT_SCENEID_FIELD.type = 5 +MISSION_CFG_ACCEPT_SCENEID_FIELD.cpp_type = 1 + +MISSION_CFG_ACCEPT_NPCID_FIELD.name = "accept_npcid" +MISSION_CFG_ACCEPT_NPCID_FIELD.full_name = ".ftcfg.mission_cfg.accept_npcid" +MISSION_CFG_ACCEPT_NPCID_FIELD.number = 24 +MISSION_CFG_ACCEPT_NPCID_FIELD.index = 23 +MISSION_CFG_ACCEPT_NPCID_FIELD.label = 2 +MISSION_CFG_ACCEPT_NPCID_FIELD.has_default_value = false +MISSION_CFG_ACCEPT_NPCID_FIELD.default_value = 0 +MISSION_CFG_ACCEPT_NPCID_FIELD.type = 5 +MISSION_CFG_ACCEPT_NPCID_FIELD.cpp_type = 1 + +MISSION_CFG_CONDUCT_SCENEID_FIELD.name = "conduct_sceneid" +MISSION_CFG_CONDUCT_SCENEID_FIELD.full_name = ".ftcfg.mission_cfg.conduct_sceneid" +MISSION_CFG_CONDUCT_SCENEID_FIELD.number = 25 +MISSION_CFG_CONDUCT_SCENEID_FIELD.index = 24 +MISSION_CFG_CONDUCT_SCENEID_FIELD.label = 2 +MISSION_CFG_CONDUCT_SCENEID_FIELD.has_default_value = false +MISSION_CFG_CONDUCT_SCENEID_FIELD.default_value = 0 +MISSION_CFG_CONDUCT_SCENEID_FIELD.type = 5 +MISSION_CFG_CONDUCT_SCENEID_FIELD.cpp_type = 1 + +MISSION_CFG_CONDUCT_NPCID_FIELD.name = "conduct_npcid" +MISSION_CFG_CONDUCT_NPCID_FIELD.full_name = ".ftcfg.mission_cfg.conduct_npcid" +MISSION_CFG_CONDUCT_NPCID_FIELD.number = 26 +MISSION_CFG_CONDUCT_NPCID_FIELD.index = 25 +MISSION_CFG_CONDUCT_NPCID_FIELD.label = 2 +MISSION_CFG_CONDUCT_NPCID_FIELD.has_default_value = false +MISSION_CFG_CONDUCT_NPCID_FIELD.default_value = 0 +MISSION_CFG_CONDUCT_NPCID_FIELD.type = 5 +MISSION_CFG_CONDUCT_NPCID_FIELD.cpp_type = 1 + +MISSION_CFG_SUBMIT_SCENEID_FIELD.name = "submit_sceneid" +MISSION_CFG_SUBMIT_SCENEID_FIELD.full_name = ".ftcfg.mission_cfg.submit_sceneid" +MISSION_CFG_SUBMIT_SCENEID_FIELD.number = 27 +MISSION_CFG_SUBMIT_SCENEID_FIELD.index = 26 +MISSION_CFG_SUBMIT_SCENEID_FIELD.label = 2 +MISSION_CFG_SUBMIT_SCENEID_FIELD.has_default_value = false +MISSION_CFG_SUBMIT_SCENEID_FIELD.default_value = 0 +MISSION_CFG_SUBMIT_SCENEID_FIELD.type = 5 +MISSION_CFG_SUBMIT_SCENEID_FIELD.cpp_type = 1 + +MISSION_CFG_SUBMIT_NPCID_FIELD.name = "submit_npcid" +MISSION_CFG_SUBMIT_NPCID_FIELD.full_name = ".ftcfg.mission_cfg.submit_npcid" +MISSION_CFG_SUBMIT_NPCID_FIELD.number = 28 +MISSION_CFG_SUBMIT_NPCID_FIELD.index = 27 +MISSION_CFG_SUBMIT_NPCID_FIELD.label = 2 +MISSION_CFG_SUBMIT_NPCID_FIELD.has_default_value = false +MISSION_CFG_SUBMIT_NPCID_FIELD.default_value = 0 +MISSION_CFG_SUBMIT_NPCID_FIELD.type = 5 +MISSION_CFG_SUBMIT_NPCID_FIELD.cpp_type = 1 + +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.name = "acceptseat_plotid" +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.full_name = ".ftcfg.mission_cfg.acceptseat_plotid" +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.number = 29 +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.index = 28 +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.label = 2 +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.has_default_value = false +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.default_value = 0 +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.type = 5 +MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD.cpp_type = 1 + +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.name = "conductseat_plotid" +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.full_name = ".ftcfg.mission_cfg.conductseat_plotid" +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.number = 30 +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.index = 29 +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.label = 2 +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.has_default_value = false +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.default_value = 0 +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.type = 5 +MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD.cpp_type = 1 + +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.name = "submitseat_plotid" +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.full_name = ".ftcfg.mission_cfg.submitseat_plotid" +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.number = 31 +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.index = 30 +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.label = 2 +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.has_default_value = false +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.default_value = 0 +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.type = 5 +MISSION_CFG_SUBMITSEAT_PLOTID_FIELD.cpp_type = 1 + +MISSION_CFG_KILL_NPCID_FIELD.name = "kill_npcid" +MISSION_CFG_KILL_NPCID_FIELD.full_name = ".ftcfg.mission_cfg.kill_npcid" +MISSION_CFG_KILL_NPCID_FIELD.number = 32 +MISSION_CFG_KILL_NPCID_FIELD.index = 31 +MISSION_CFG_KILL_NPCID_FIELD.label = 3 +MISSION_CFG_KILL_NPCID_FIELD.has_default_value = false +MISSION_CFG_KILL_NPCID_FIELD.default_value = {} +MISSION_CFG_KILL_NPCID_FIELD.type = 5 +MISSION_CFG_KILL_NPCID_FIELD.cpp_type = 1 + +MISSION_CFG_KILL_NPCNUM_FIELD.name = "kill_npcnum" +MISSION_CFG_KILL_NPCNUM_FIELD.full_name = ".ftcfg.mission_cfg.kill_npcnum" +MISSION_CFG_KILL_NPCNUM_FIELD.number = 33 +MISSION_CFG_KILL_NPCNUM_FIELD.index = 32 +MISSION_CFG_KILL_NPCNUM_FIELD.label = 3 +MISSION_CFG_KILL_NPCNUM_FIELD.has_default_value = false +MISSION_CFG_KILL_NPCNUM_FIELD.default_value = {} +MISSION_CFG_KILL_NPCNUM_FIELD.type = 5 +MISSION_CFG_KILL_NPCNUM_FIELD.cpp_type = 1 + +MISSION_CFG_KILL_NPCDROP_FIELD.name = "kill_npcdrop" +MISSION_CFG_KILL_NPCDROP_FIELD.full_name = ".ftcfg.mission_cfg.kill_npcdrop" +MISSION_CFG_KILL_NPCDROP_FIELD.number = 34 +MISSION_CFG_KILL_NPCDROP_FIELD.index = 33 +MISSION_CFG_KILL_NPCDROP_FIELD.label = 3 +MISSION_CFG_KILL_NPCDROP_FIELD.has_default_value = false +MISSION_CFG_KILL_NPCDROP_FIELD.default_value = {} +MISSION_CFG_KILL_NPCDROP_FIELD.type = 5 +MISSION_CFG_KILL_NPCDROP_FIELD.cpp_type = 1 + +MISSION_CFG_TALK_PLOTID_FIELD.name = "talk_plotid" +MISSION_CFG_TALK_PLOTID_FIELD.full_name = ".ftcfg.mission_cfg.talk_plotid" +MISSION_CFG_TALK_PLOTID_FIELD.number = 35 +MISSION_CFG_TALK_PLOTID_FIELD.index = 34 +MISSION_CFG_TALK_PLOTID_FIELD.label = 2 +MISSION_CFG_TALK_PLOTID_FIELD.has_default_value = false +MISSION_CFG_TALK_PLOTID_FIELD.default_value = 0 +MISSION_CFG_TALK_PLOTID_FIELD.type = 5 +MISSION_CFG_TALK_PLOTID_FIELD.cpp_type = 1 + +MISSION_CFG_COLLECT_ITEMID_FIELD.name = "collect_itemid" +MISSION_CFG_COLLECT_ITEMID_FIELD.full_name = ".ftcfg.mission_cfg.collect_itemid" +MISSION_CFG_COLLECT_ITEMID_FIELD.number = 36 +MISSION_CFG_COLLECT_ITEMID_FIELD.index = 35 +MISSION_CFG_COLLECT_ITEMID_FIELD.label = 3 +MISSION_CFG_COLLECT_ITEMID_FIELD.has_default_value = false +MISSION_CFG_COLLECT_ITEMID_FIELD.default_value = {} +MISSION_CFG_COLLECT_ITEMID_FIELD.type = 5 +MISSION_CFG_COLLECT_ITEMID_FIELD.cpp_type = 1 + +MISSION_CFG_COLLECT_ITEMNUM_FIELD.name = "collect_itemnum" +MISSION_CFG_COLLECT_ITEMNUM_FIELD.full_name = ".ftcfg.mission_cfg.collect_itemnum" +MISSION_CFG_COLLECT_ITEMNUM_FIELD.number = 37 +MISSION_CFG_COLLECT_ITEMNUM_FIELD.index = 36 +MISSION_CFG_COLLECT_ITEMNUM_FIELD.label = 3 +MISSION_CFG_COLLECT_ITEMNUM_FIELD.has_default_value = false +MISSION_CFG_COLLECT_ITEMNUM_FIELD.default_value = {} +MISSION_CFG_COLLECT_ITEMNUM_FIELD.type = 5 +MISSION_CFG_COLLECT_ITEMNUM_FIELD.cpp_type = 1 + +MISSION_CFG_SCENE_ID_FIELD.name = "scene_id" +MISSION_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.mission_cfg.scene_id" +MISSION_CFG_SCENE_ID_FIELD.number = 38 +MISSION_CFG_SCENE_ID_FIELD.index = 37 +MISSION_CFG_SCENE_ID_FIELD.label = 2 +MISSION_CFG_SCENE_ID_FIELD.has_default_value = false +MISSION_CFG_SCENE_ID_FIELD.default_value = 0 +MISSION_CFG_SCENE_ID_FIELD.type = 5 +MISSION_CFG_SCENE_ID_FIELD.cpp_type = 1 + +MISSION_CFG_POS_X_FIELD.name = "pos_x" +MISSION_CFG_POS_X_FIELD.full_name = ".ftcfg.mission_cfg.pos_x" +MISSION_CFG_POS_X_FIELD.number = 39 +MISSION_CFG_POS_X_FIELD.index = 38 +MISSION_CFG_POS_X_FIELD.label = 2 +MISSION_CFG_POS_X_FIELD.has_default_value = false +MISSION_CFG_POS_X_FIELD.default_value = 0 +MISSION_CFG_POS_X_FIELD.type = 5 +MISSION_CFG_POS_X_FIELD.cpp_type = 1 + +MISSION_CFG_POS_Z_FIELD.name = "pos_z" +MISSION_CFG_POS_Z_FIELD.full_name = ".ftcfg.mission_cfg.pos_z" +MISSION_CFG_POS_Z_FIELD.number = 40 +MISSION_CFG_POS_Z_FIELD.index = 39 +MISSION_CFG_POS_Z_FIELD.label = 2 +MISSION_CFG_POS_Z_FIELD.has_default_value = false +MISSION_CFG_POS_Z_FIELD.default_value = 0 +MISSION_CFG_POS_Z_FIELD.type = 5 +MISSION_CFG_POS_Z_FIELD.cpp_type = 1 + +MISSION_CFG_COLLECTION_NPCID_FIELD.name = "collection_npcid" +MISSION_CFG_COLLECTION_NPCID_FIELD.full_name = ".ftcfg.mission_cfg.collection_npcid" +MISSION_CFG_COLLECTION_NPCID_FIELD.number = 41 +MISSION_CFG_COLLECTION_NPCID_FIELD.index = 40 +MISSION_CFG_COLLECTION_NPCID_FIELD.label = 3 +MISSION_CFG_COLLECTION_NPCID_FIELD.has_default_value = false +MISSION_CFG_COLLECTION_NPCID_FIELD.default_value = {} +MISSION_CFG_COLLECTION_NPCID_FIELD.type = 5 +MISSION_CFG_COLLECTION_NPCID_FIELD.cpp_type = 1 + +MISSION_CFG_COLLECTION_NPCNUM_FIELD.name = "collection_npcnum" +MISSION_CFG_COLLECTION_NPCNUM_FIELD.full_name = ".ftcfg.mission_cfg.collection_npcnum" +MISSION_CFG_COLLECTION_NPCNUM_FIELD.number = 42 +MISSION_CFG_COLLECTION_NPCNUM_FIELD.index = 41 +MISSION_CFG_COLLECTION_NPCNUM_FIELD.label = 3 +MISSION_CFG_COLLECTION_NPCNUM_FIELD.has_default_value = false +MISSION_CFG_COLLECTION_NPCNUM_FIELD.default_value = {} +MISSION_CFG_COLLECTION_NPCNUM_FIELD.type = 5 +MISSION_CFG_COLLECTION_NPCNUM_FIELD.cpp_type = 1 + +MISSION_CFG_USED_ITEMID_FIELD.name = "used_itemid" +MISSION_CFG_USED_ITEMID_FIELD.full_name = ".ftcfg.mission_cfg.used_itemid" +MISSION_CFG_USED_ITEMID_FIELD.number = 43 +MISSION_CFG_USED_ITEMID_FIELD.index = 42 +MISSION_CFG_USED_ITEMID_FIELD.label = 2 +MISSION_CFG_USED_ITEMID_FIELD.has_default_value = false +MISSION_CFG_USED_ITEMID_FIELD.default_value = 0 +MISSION_CFG_USED_ITEMID_FIELD.type = 5 +MISSION_CFG_USED_ITEMID_FIELD.cpp_type = 1 + +MISSION_CFG_INTO_BATTLEID_FIELD.name = "into_battleid" +MISSION_CFG_INTO_BATTLEID_FIELD.full_name = ".ftcfg.mission_cfg.into_battleid" +MISSION_CFG_INTO_BATTLEID_FIELD.number = 44 +MISSION_CFG_INTO_BATTLEID_FIELD.index = 43 +MISSION_CFG_INTO_BATTLEID_FIELD.label = 2 +MISSION_CFG_INTO_BATTLEID_FIELD.has_default_value = false +MISSION_CFG_INTO_BATTLEID_FIELD.default_value = 0 +MISSION_CFG_INTO_BATTLEID_FIELD.type = 5 +MISSION_CFG_INTO_BATTLEID_FIELD.cpp_type = 1 + +MISSION_CFG_TARGET_GRADE_FIELD.name = "target_grade" +MISSION_CFG_TARGET_GRADE_FIELD.full_name = ".ftcfg.mission_cfg.target_grade" +MISSION_CFG_TARGET_GRADE_FIELD.number = 45 +MISSION_CFG_TARGET_GRADE_FIELD.index = 44 +MISSION_CFG_TARGET_GRADE_FIELD.label = 2 +MISSION_CFG_TARGET_GRADE_FIELD.has_default_value = false +MISSION_CFG_TARGET_GRADE_FIELD.default_value = 0 +MISSION_CFG_TARGET_GRADE_FIELD.type = 5 +MISSION_CFG_TARGET_GRADE_FIELD.cpp_type = 1 + +MISSION_CFG_FUNCTION_SCRIPT_FIELD.name = "function_script" +MISSION_CFG_FUNCTION_SCRIPT_FIELD.full_name = ".ftcfg.mission_cfg.function_script" +MISSION_CFG_FUNCTION_SCRIPT_FIELD.number = 46 +MISSION_CFG_FUNCTION_SCRIPT_FIELD.index = 45 +MISSION_CFG_FUNCTION_SCRIPT_FIELD.label = 2 +MISSION_CFG_FUNCTION_SCRIPT_FIELD.has_default_value = false +MISSION_CFG_FUNCTION_SCRIPT_FIELD.default_value = "" +MISSION_CFG_FUNCTION_SCRIPT_FIELD.type = 9 +MISSION_CFG_FUNCTION_SCRIPT_FIELD.cpp_type = 9 + +MISSION_CFG_ACCEPT_PLOTID_FIELD.name = "accept_plotid" +MISSION_CFG_ACCEPT_PLOTID_FIELD.full_name = ".ftcfg.mission_cfg.accept_plotid" +MISSION_CFG_ACCEPT_PLOTID_FIELD.number = 47 +MISSION_CFG_ACCEPT_PLOTID_FIELD.index = 46 +MISSION_CFG_ACCEPT_PLOTID_FIELD.label = 2 +MISSION_CFG_ACCEPT_PLOTID_FIELD.has_default_value = false +MISSION_CFG_ACCEPT_PLOTID_FIELD.default_value = 0 +MISSION_CFG_ACCEPT_PLOTID_FIELD.type = 5 +MISSION_CFG_ACCEPT_PLOTID_FIELD.cpp_type = 1 + +MISSION_CFG_CONDUCT_PLOTID_FIELD.name = "conduct_plotid" +MISSION_CFG_CONDUCT_PLOTID_FIELD.full_name = ".ftcfg.mission_cfg.conduct_plotid" +MISSION_CFG_CONDUCT_PLOTID_FIELD.number = 48 +MISSION_CFG_CONDUCT_PLOTID_FIELD.index = 47 +MISSION_CFG_CONDUCT_PLOTID_FIELD.label = 2 +MISSION_CFG_CONDUCT_PLOTID_FIELD.has_default_value = false +MISSION_CFG_CONDUCT_PLOTID_FIELD.default_value = 0 +MISSION_CFG_CONDUCT_PLOTID_FIELD.type = 5 +MISSION_CFG_CONDUCT_PLOTID_FIELD.cpp_type = 1 + +MISSION_CFG_SUBMIT_PLOTID_FIELD.name = "submit_plotid" +MISSION_CFG_SUBMIT_PLOTID_FIELD.full_name = ".ftcfg.mission_cfg.submit_plotid" +MISSION_CFG_SUBMIT_PLOTID_FIELD.number = 49 +MISSION_CFG_SUBMIT_PLOTID_FIELD.index = 48 +MISSION_CFG_SUBMIT_PLOTID_FIELD.label = 2 +MISSION_CFG_SUBMIT_PLOTID_FIELD.has_default_value = false +MISSION_CFG_SUBMIT_PLOTID_FIELD.default_value = 0 +MISSION_CFG_SUBMIT_PLOTID_FIELD.type = 5 +MISSION_CFG_SUBMIT_PLOTID_FIELD.cpp_type = 1 + +MISSION_CFG_TRIGGER_BLUR_FIELD.name = "trigger_blur" +MISSION_CFG_TRIGGER_BLUR_FIELD.full_name = ".ftcfg.mission_cfg.trigger_blur" +MISSION_CFG_TRIGGER_BLUR_FIELD.number = 50 +MISSION_CFG_TRIGGER_BLUR_FIELD.index = 49 +MISSION_CFG_TRIGGER_BLUR_FIELD.label = 2 +MISSION_CFG_TRIGGER_BLUR_FIELD.has_default_value = false +MISSION_CFG_TRIGGER_BLUR_FIELD.default_value = 0 +MISSION_CFG_TRIGGER_BLUR_FIELD.type = 5 +MISSION_CFG_TRIGGER_BLUR_FIELD.cpp_type = 1 + +MISSION_CFG_ACCEPT_BLUR_FIELD.name = "accept_blur" +MISSION_CFG_ACCEPT_BLUR_FIELD.full_name = ".ftcfg.mission_cfg.accept_blur" +MISSION_CFG_ACCEPT_BLUR_FIELD.number = 51 +MISSION_CFG_ACCEPT_BLUR_FIELD.index = 50 +MISSION_CFG_ACCEPT_BLUR_FIELD.label = 2 +MISSION_CFG_ACCEPT_BLUR_FIELD.has_default_value = false +MISSION_CFG_ACCEPT_BLUR_FIELD.default_value = 0 +MISSION_CFG_ACCEPT_BLUR_FIELD.type = 5 +MISSION_CFG_ACCEPT_BLUR_FIELD.cpp_type = 1 + +MISSION_CFG_CONDUCT_BLUR_FIELD.name = "conduct_blur" +MISSION_CFG_CONDUCT_BLUR_FIELD.full_name = ".ftcfg.mission_cfg.conduct_blur" +MISSION_CFG_CONDUCT_BLUR_FIELD.number = 52 +MISSION_CFG_CONDUCT_BLUR_FIELD.index = 51 +MISSION_CFG_CONDUCT_BLUR_FIELD.label = 2 +MISSION_CFG_CONDUCT_BLUR_FIELD.has_default_value = false +MISSION_CFG_CONDUCT_BLUR_FIELD.default_value = 0 +MISSION_CFG_CONDUCT_BLUR_FIELD.type = 5 +MISSION_CFG_CONDUCT_BLUR_FIELD.cpp_type = 1 + +MISSION_CFG_REWARD_ITEMID_FIELD.name = "reward_itemid" +MISSION_CFG_REWARD_ITEMID_FIELD.full_name = ".ftcfg.mission_cfg.reward_itemid" +MISSION_CFG_REWARD_ITEMID_FIELD.number = 53 +MISSION_CFG_REWARD_ITEMID_FIELD.index = 52 +MISSION_CFG_REWARD_ITEMID_FIELD.label = 2 +MISSION_CFG_REWARD_ITEMID_FIELD.has_default_value = false +MISSION_CFG_REWARD_ITEMID_FIELD.default_value = 0 +MISSION_CFG_REWARD_ITEMID_FIELD.type = 5 +MISSION_CFG_REWARD_ITEMID_FIELD.cpp_type = 1 + +MISSION_CFG_FAILED_ITEMID_FIELD.name = "failed_itemid" +MISSION_CFG_FAILED_ITEMID_FIELD.full_name = ".ftcfg.mission_cfg.failed_itemid" +MISSION_CFG_FAILED_ITEMID_FIELD.number = 54 +MISSION_CFG_FAILED_ITEMID_FIELD.index = 53 +MISSION_CFG_FAILED_ITEMID_FIELD.label = 2 +MISSION_CFG_FAILED_ITEMID_FIELD.has_default_value = false +MISSION_CFG_FAILED_ITEMID_FIELD.default_value = 0 +MISSION_CFG_FAILED_ITEMID_FIELD.type = 5 +MISSION_CFG_FAILED_ITEMID_FIELD.cpp_type = 1 + +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.name = "exclusive4_itemid" +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.full_name = ".ftcfg.mission_cfg.exclusive4_itemid" +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.number = 55 +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.index = 54 +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.label = 3 +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.has_default_value = false +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.default_value = {} +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.type = 5 +MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD.cpp_type = 1 + +MISSION_CFG_DISPLAY_WHETHER_FIELD.name = "display_whether" +MISSION_CFG_DISPLAY_WHETHER_FIELD.full_name = ".ftcfg.mission_cfg.display_whether" +MISSION_CFG_DISPLAY_WHETHER_FIELD.number = 56 +MISSION_CFG_DISPLAY_WHETHER_FIELD.index = 55 +MISSION_CFG_DISPLAY_WHETHER_FIELD.label = 2 +MISSION_CFG_DISPLAY_WHETHER_FIELD.has_default_value = false +MISSION_CFG_DISPLAY_WHETHER_FIELD.default_value = 0 +MISSION_CFG_DISPLAY_WHETHER_FIELD.type = 5 +MISSION_CFG_DISPLAY_WHETHER_FIELD.cpp_type = 1 + +MISSION_CFG_ACCEPT_DELIVERY_FIELD.name = "accept_delivery" +MISSION_CFG_ACCEPT_DELIVERY_FIELD.full_name = ".ftcfg.mission_cfg.accept_delivery" +MISSION_CFG_ACCEPT_DELIVERY_FIELD.number = 57 +MISSION_CFG_ACCEPT_DELIVERY_FIELD.index = 56 +MISSION_CFG_ACCEPT_DELIVERY_FIELD.label = 3 +MISSION_CFG_ACCEPT_DELIVERY_FIELD.has_default_value = false +MISSION_CFG_ACCEPT_DELIVERY_FIELD.default_value = {} +MISSION_CFG_ACCEPT_DELIVERY_FIELD.type = 5 +MISSION_CFG_ACCEPT_DELIVERY_FIELD.cpp_type = 1 + +MISSION_CFG_MISSION_CONVOYS_FIELD.name = "mission_convoys" +MISSION_CFG_MISSION_CONVOYS_FIELD.full_name = ".ftcfg.mission_cfg.mission_convoys" +MISSION_CFG_MISSION_CONVOYS_FIELD.number = 58 +MISSION_CFG_MISSION_CONVOYS_FIELD.index = 57 +MISSION_CFG_MISSION_CONVOYS_FIELD.label = 3 +MISSION_CFG_MISSION_CONVOYS_FIELD.has_default_value = false +MISSION_CFG_MISSION_CONVOYS_FIELD.default_value = {} +MISSION_CFG_MISSION_CONVOYS_FIELD.type = 5 +MISSION_CFG_MISSION_CONVOYS_FIELD.cpp_type = 1 + +MISSION_CFG_BIAOCHE_MOUNT_FIELD.name = "biaoche_mount" +MISSION_CFG_BIAOCHE_MOUNT_FIELD.full_name = ".ftcfg.mission_cfg.biaoche_mount" +MISSION_CFG_BIAOCHE_MOUNT_FIELD.number = 59 +MISSION_CFG_BIAOCHE_MOUNT_FIELD.index = 58 +MISSION_CFG_BIAOCHE_MOUNT_FIELD.label = 2 +MISSION_CFG_BIAOCHE_MOUNT_FIELD.has_default_value = false +MISSION_CFG_BIAOCHE_MOUNT_FIELD.default_value = 0 +MISSION_CFG_BIAOCHE_MOUNT_FIELD.type = 5 +MISSION_CFG_BIAOCHE_MOUNT_FIELD.cpp_type = 1 + +MISSION_CFG_SCENE_IS_COPY_FIELD.name = "scene_is_copy" +MISSION_CFG_SCENE_IS_COPY_FIELD.full_name = ".ftcfg.mission_cfg.scene_is_copy" +MISSION_CFG_SCENE_IS_COPY_FIELD.number = 60 +MISSION_CFG_SCENE_IS_COPY_FIELD.index = 59 +MISSION_CFG_SCENE_IS_COPY_FIELD.label = 2 +MISSION_CFG_SCENE_IS_COPY_FIELD.has_default_value = false +MISSION_CFG_SCENE_IS_COPY_FIELD.default_value = 0 +MISSION_CFG_SCENE_IS_COPY_FIELD.type = 5 +MISSION_CFG_SCENE_IS_COPY_FIELD.cpp_type = 1 + +MISSION_CFG_ALLOW_SHOW_FIELD.name = "allow_show" +MISSION_CFG_ALLOW_SHOW_FIELD.full_name = ".ftcfg.mission_cfg.allow_show" +MISSION_CFG_ALLOW_SHOW_FIELD.number = 61 +MISSION_CFG_ALLOW_SHOW_FIELD.index = 60 +MISSION_CFG_ALLOW_SHOW_FIELD.label = 2 +MISSION_CFG_ALLOW_SHOW_FIELD.has_default_value = false +MISSION_CFG_ALLOW_SHOW_FIELD.default_value = 0 +MISSION_CFG_ALLOW_SHOW_FIELD.type = 5 +MISSION_CFG_ALLOW_SHOW_FIELD.cpp_type = 1 + +MISSION_CFG_ACCEPTED_SHOW_FIELD.name = "accepted_show" +MISSION_CFG_ACCEPTED_SHOW_FIELD.full_name = ".ftcfg.mission_cfg.accepted_show" +MISSION_CFG_ACCEPTED_SHOW_FIELD.number = 62 +MISSION_CFG_ACCEPTED_SHOW_FIELD.index = 61 +MISSION_CFG_ACCEPTED_SHOW_FIELD.label = 2 +MISSION_CFG_ACCEPTED_SHOW_FIELD.has_default_value = false +MISSION_CFG_ACCEPTED_SHOW_FIELD.default_value = 0 +MISSION_CFG_ACCEPTED_SHOW_FIELD.type = 5 +MISSION_CFG_ACCEPTED_SHOW_FIELD.cpp_type = 1 + +MISSION_CFG_COMMIT_SHOW_FIELD.name = "commit_show" +MISSION_CFG_COMMIT_SHOW_FIELD.full_name = ".ftcfg.mission_cfg.commit_show" +MISSION_CFG_COMMIT_SHOW_FIELD.number = 63 +MISSION_CFG_COMMIT_SHOW_FIELD.index = 62 +MISSION_CFG_COMMIT_SHOW_FIELD.label = 2 +MISSION_CFG_COMMIT_SHOW_FIELD.has_default_value = false +MISSION_CFG_COMMIT_SHOW_FIELD.default_value = 0 +MISSION_CFG_COMMIT_SHOW_FIELD.type = 5 +MISSION_CFG_COMMIT_SHOW_FIELD.cpp_type = 1 + +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.name = "accepted_inexecution" +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.full_name = ".ftcfg.mission_cfg.accepted_inexecution" +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.number = 64 +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.index = 63 +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.label = 2 +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.has_default_value = false +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.default_value = 0 +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.type = 5 +MISSION_CFG_ACCEPTED_INEXECUTION_FIELD.cpp_type = 1 + +MISSION_CFG_OPEN_FUNC_FIELD.name = "open_func" +MISSION_CFG_OPEN_FUNC_FIELD.full_name = ".ftcfg.mission_cfg.open_func" +MISSION_CFG_OPEN_FUNC_FIELD.number = 65 +MISSION_CFG_OPEN_FUNC_FIELD.index = 64 +MISSION_CFG_OPEN_FUNC_FIELD.label = 2 +MISSION_CFG_OPEN_FUNC_FIELD.has_default_value = false +MISSION_CFG_OPEN_FUNC_FIELD.default_value = nil +MISSION_CFG_OPEN_FUNC_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +MISSION_CFG_OPEN_FUNC_FIELD.type = 14 +MISSION_CFG_OPEN_FUNC_FIELD.cpp_type = 8 + +MISSION_CFG_BTN_NAME_FIELD.name = "btn_name" +MISSION_CFG_BTN_NAME_FIELD.full_name = ".ftcfg.mission_cfg.btn_name" +MISSION_CFG_BTN_NAME_FIELD.number = 66 +MISSION_CFG_BTN_NAME_FIELD.index = 65 +MISSION_CFG_BTN_NAME_FIELD.label = 2 +MISSION_CFG_BTN_NAME_FIELD.has_default_value = false +MISSION_CFG_BTN_NAME_FIELD.default_value = 0 +MISSION_CFG_BTN_NAME_FIELD.type = 5 +MISSION_CFG_BTN_NAME_FIELD.cpp_type = 1 + +MISSION_CFG_EVENT_TYPE_FIELD.name = "event_type" +MISSION_CFG_EVENT_TYPE_FIELD.full_name = ".ftcfg.mission_cfg.event_type" +MISSION_CFG_EVENT_TYPE_FIELD.number = 67 +MISSION_CFG_EVENT_TYPE_FIELD.index = 66 +MISSION_CFG_EVENT_TYPE_FIELD.label = 2 +MISSION_CFG_EVENT_TYPE_FIELD.has_default_value = false +MISSION_CFG_EVENT_TYPE_FIELD.default_value = 0 +MISSION_CFG_EVENT_TYPE_FIELD.type = 5 +MISSION_CFG_EVENT_TYPE_FIELD.cpp_type = 1 + +MISSION_CFG_KILL_PLAYER_NUM_FIELD.name = "kill_player_num" +MISSION_CFG_KILL_PLAYER_NUM_FIELD.full_name = ".ftcfg.mission_cfg.kill_player_num" +MISSION_CFG_KILL_PLAYER_NUM_FIELD.number = 68 +MISSION_CFG_KILL_PLAYER_NUM_FIELD.index = 67 +MISSION_CFG_KILL_PLAYER_NUM_FIELD.label = 2 +MISSION_CFG_KILL_PLAYER_NUM_FIELD.has_default_value = false +MISSION_CFG_KILL_PLAYER_NUM_FIELD.default_value = 0 +MISSION_CFG_KILL_PLAYER_NUM_FIELD.type = 5 +MISSION_CFG_KILL_PLAYER_NUM_FIELD.cpp_type = 1 + +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.name = "kill_player_level" +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.full_name = ".ftcfg.mission_cfg.kill_player_level" +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.number = 69 +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.index = 68 +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.label = 2 +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.has_default_value = false +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.default_value = 0 +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.type = 5 +MISSION_CFG_KILL_PLAYER_LEVEL_FIELD.cpp_type = 1 + +MISSION_CFG_KILL_PLAYER_MAP_FIELD.name = "kill_player_map" +MISSION_CFG_KILL_PLAYER_MAP_FIELD.full_name = ".ftcfg.mission_cfg.kill_player_map" +MISSION_CFG_KILL_PLAYER_MAP_FIELD.number = 70 +MISSION_CFG_KILL_PLAYER_MAP_FIELD.index = 69 +MISSION_CFG_KILL_PLAYER_MAP_FIELD.label = 3 +MISSION_CFG_KILL_PLAYER_MAP_FIELD.has_default_value = false +MISSION_CFG_KILL_PLAYER_MAP_FIELD.default_value = {} +MISSION_CFG_KILL_PLAYER_MAP_FIELD.type = 5 +MISSION_CFG_KILL_PLAYER_MAP_FIELD.cpp_type = 1 + +MISSION_CFG_SUPPORT_PAUSE_FIELD.name = "support_pause" +MISSION_CFG_SUPPORT_PAUSE_FIELD.full_name = ".ftcfg.mission_cfg.support_pause" +MISSION_CFG_SUPPORT_PAUSE_FIELD.number = 71 +MISSION_CFG_SUPPORT_PAUSE_FIELD.index = 70 +MISSION_CFG_SUPPORT_PAUSE_FIELD.label = 2 +MISSION_CFG_SUPPORT_PAUSE_FIELD.has_default_value = false +MISSION_CFG_SUPPORT_PAUSE_FIELD.default_value = 0 +MISSION_CFG_SUPPORT_PAUSE_FIELD.type = 5 +MISSION_CFG_SUPPORT_PAUSE_FIELD.cpp_type = 1 + +MISSION_CFG_SUBMISSION_HEAD_FIELD.name = "submission_head" +MISSION_CFG_SUBMISSION_HEAD_FIELD.full_name = ".ftcfg.mission_cfg.submission_head" +MISSION_CFG_SUBMISSION_HEAD_FIELD.number = 72 +MISSION_CFG_SUBMISSION_HEAD_FIELD.index = 71 +MISSION_CFG_SUBMISSION_HEAD_FIELD.label = 2 +MISSION_CFG_SUBMISSION_HEAD_FIELD.has_default_value = false +MISSION_CFG_SUBMISSION_HEAD_FIELD.default_value = 0 +MISSION_CFG_SUBMISSION_HEAD_FIELD.type = 5 +MISSION_CFG_SUBMISSION_HEAD_FIELD.cpp_type = 1 + +MISSION_CFG_ROUTE_MARK_ID_FIELD.name = "route_mark_id" +MISSION_CFG_ROUTE_MARK_ID_FIELD.full_name = ".ftcfg.mission_cfg.route_mark_id" +MISSION_CFG_ROUTE_MARK_ID_FIELD.number = 73 +MISSION_CFG_ROUTE_MARK_ID_FIELD.index = 72 +MISSION_CFG_ROUTE_MARK_ID_FIELD.label = 2 +MISSION_CFG_ROUTE_MARK_ID_FIELD.has_default_value = false +MISSION_CFG_ROUTE_MARK_ID_FIELD.default_value = 0 +MISSION_CFG_ROUTE_MARK_ID_FIELD.type = 5 +MISSION_CFG_ROUTE_MARK_ID_FIELD.cpp_type = 1 + +MISSION_CFG.name = "mission_cfg" +MISSION_CFG.full_name = ".ftcfg.mission_cfg" +MISSION_CFG.nested_types = {} +MISSION_CFG.enum_types = {} +MISSION_CFG.fields = {MISSION_CFG_ID_FIELD, MISSION_CFG_MISSION_GROUPID_FIELD, MISSION_CFG_MISSION_COLOUR_FIELD, MISSION_CFG_MISSION_NAME_FIELD, MISSION_CFG_MISSION_TEXT_FIELD, MISSION_CFG_MISSION_TARGET1_FIELD, MISSION_CFG_MISSION_TARGET2_FIELD, MISSION_CFG_MISSION_TARGET3_FIELD, MISSION_CFG_MISSION_TYPE_FIELD, MISSION_CFG_MISSION_TARGETTYPE_FIELD, MISSION_CFG_MISSION_OCCUPATION_FIELD, MISSION_CFG_REPEAT_WHETHER_FIELD, MISSION_CFG_DIRECTACCE_WHETHER_FIELD, MISSION_CFG_AUTO_WHETHER_FIELD, MISSION_CFG_AUTO_COMMIT_FIELD, MISSION_CFG_MISSION_FRONTID_FIELD, MISSION_CFG_MISSION_TRIGGERLV_FIELD, MISSION_CFG_MISSION_GIVEUP_FIELD, MISSION_CFG_MISSIONNODE_LIST_FIELD, MISSION_CFG_DAILY_TIMES_FIELD, MISSION_CFG_RESET_TIME_FIELD, MISSION_CFG_MISSION_DURATION_FIELD, MISSION_CFG_ACCEPT_SCENEID_FIELD, MISSION_CFG_ACCEPT_NPCID_FIELD, MISSION_CFG_CONDUCT_SCENEID_FIELD, MISSION_CFG_CONDUCT_NPCID_FIELD, MISSION_CFG_SUBMIT_SCENEID_FIELD, MISSION_CFG_SUBMIT_NPCID_FIELD, MISSION_CFG_ACCEPTSEAT_PLOTID_FIELD, MISSION_CFG_CONDUCTSEAT_PLOTID_FIELD, MISSION_CFG_SUBMITSEAT_PLOTID_FIELD, MISSION_CFG_KILL_NPCID_FIELD, MISSION_CFG_KILL_NPCNUM_FIELD, MISSION_CFG_KILL_NPCDROP_FIELD, MISSION_CFG_TALK_PLOTID_FIELD, MISSION_CFG_COLLECT_ITEMID_FIELD, MISSION_CFG_COLLECT_ITEMNUM_FIELD, MISSION_CFG_SCENE_ID_FIELD, MISSION_CFG_POS_X_FIELD, MISSION_CFG_POS_Z_FIELD, MISSION_CFG_COLLECTION_NPCID_FIELD, MISSION_CFG_COLLECTION_NPCNUM_FIELD, MISSION_CFG_USED_ITEMID_FIELD, MISSION_CFG_INTO_BATTLEID_FIELD, MISSION_CFG_TARGET_GRADE_FIELD, MISSION_CFG_FUNCTION_SCRIPT_FIELD, MISSION_CFG_ACCEPT_PLOTID_FIELD, MISSION_CFG_CONDUCT_PLOTID_FIELD, MISSION_CFG_SUBMIT_PLOTID_FIELD, MISSION_CFG_TRIGGER_BLUR_FIELD, MISSION_CFG_ACCEPT_BLUR_FIELD, MISSION_CFG_CONDUCT_BLUR_FIELD, MISSION_CFG_REWARD_ITEMID_FIELD, MISSION_CFG_FAILED_ITEMID_FIELD, MISSION_CFG_EXCLUSIVE4_ITEMID_FIELD, MISSION_CFG_DISPLAY_WHETHER_FIELD, MISSION_CFG_ACCEPT_DELIVERY_FIELD, MISSION_CFG_MISSION_CONVOYS_FIELD, MISSION_CFG_BIAOCHE_MOUNT_FIELD, MISSION_CFG_SCENE_IS_COPY_FIELD, MISSION_CFG_ALLOW_SHOW_FIELD, MISSION_CFG_ACCEPTED_SHOW_FIELD, MISSION_CFG_COMMIT_SHOW_FIELD, MISSION_CFG_ACCEPTED_INEXECUTION_FIELD, MISSION_CFG_OPEN_FUNC_FIELD, MISSION_CFG_BTN_NAME_FIELD, MISSION_CFG_EVENT_TYPE_FIELD, MISSION_CFG_KILL_PLAYER_NUM_FIELD, MISSION_CFG_KILL_PLAYER_LEVEL_FIELD, MISSION_CFG_KILL_PLAYER_MAP_FIELD, MISSION_CFG_SUPPORT_PAUSE_FIELD, MISSION_CFG_SUBMISSION_HEAD_FIELD, MISSION_CFG_ROUTE_MARK_ID_FIELD} +MISSION_CFG.is_extendable = false +MISSION_CFG.extensions = {} +MISSION_CFGS_ITEMS_FIELD.name = "items" +MISSION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.mission_cfgs.items" +MISSION_CFGS_ITEMS_FIELD.number = 1 +MISSION_CFGS_ITEMS_FIELD.index = 0 +MISSION_CFGS_ITEMS_FIELD.label = 3 +MISSION_CFGS_ITEMS_FIELD.has_default_value = false +MISSION_CFGS_ITEMS_FIELD.default_value = {} +MISSION_CFGS_ITEMS_FIELD.message_type = MISSION_CFG +MISSION_CFGS_ITEMS_FIELD.type = 11 +MISSION_CFGS_ITEMS_FIELD.cpp_type = 10 + +MISSION_CFGS.name = "mission_cfgs" +MISSION_CFGS.full_name = ".ftcfg.mission_cfgs" +MISSION_CFGS.nested_types = {} +MISSION_CFGS.enum_types = {} +MISSION_CFGS.fields = {MISSION_CFGS_ITEMS_FIELD} +MISSION_CFGS.is_extendable = false +MISSION_CFGS.extensions = {} +MISSION_GROUP_CFG_ID_FIELD.name = "id" +MISSION_GROUP_CFG_ID_FIELD.full_name = ".ftcfg.mission_group_cfg.id" +MISSION_GROUP_CFG_ID_FIELD.number = 1 +MISSION_GROUP_CFG_ID_FIELD.index = 0 +MISSION_GROUP_CFG_ID_FIELD.label = 2 +MISSION_GROUP_CFG_ID_FIELD.has_default_value = false +MISSION_GROUP_CFG_ID_FIELD.default_value = 0 +MISSION_GROUP_CFG_ID_FIELD.type = 5 +MISSION_GROUP_CFG_ID_FIELD.cpp_type = 1 + +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.name = "quest_groupname" +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.full_name = ".ftcfg.mission_group_cfg.quest_groupname" +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.number = 2 +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.index = 1 +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.label = 2 +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.has_default_value = false +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.default_value = 0 +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.type = 5 +MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD.cpp_type = 1 + +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.name = "quest_grouptips" +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.full_name = ".ftcfg.mission_group_cfg.quest_grouptips" +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.number = 3 +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.index = 2 +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.label = 2 +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.has_default_value = false +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.default_value = 0 +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.type = 5 +MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD.cpp_type = 1 + +MISSION_GROUP_CFG.name = "mission_group_cfg" +MISSION_GROUP_CFG.full_name = ".ftcfg.mission_group_cfg" +MISSION_GROUP_CFG.nested_types = {} +MISSION_GROUP_CFG.enum_types = {} +MISSION_GROUP_CFG.fields = {MISSION_GROUP_CFG_ID_FIELD, MISSION_GROUP_CFG_QUEST_GROUPNAME_FIELD, MISSION_GROUP_CFG_QUEST_GROUPTIPS_FIELD} +MISSION_GROUP_CFG.is_extendable = false +MISSION_GROUP_CFG.extensions = {} +MISSION_GROUP_CFGS_ITEMS_FIELD.name = "items" +MISSION_GROUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.mission_group_cfgs.items" +MISSION_GROUP_CFGS_ITEMS_FIELD.number = 1 +MISSION_GROUP_CFGS_ITEMS_FIELD.index = 0 +MISSION_GROUP_CFGS_ITEMS_FIELD.label = 3 +MISSION_GROUP_CFGS_ITEMS_FIELD.has_default_value = false +MISSION_GROUP_CFGS_ITEMS_FIELD.default_value = {} +MISSION_GROUP_CFGS_ITEMS_FIELD.message_type = MISSION_GROUP_CFG +MISSION_GROUP_CFGS_ITEMS_FIELD.type = 11 +MISSION_GROUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +MISSION_GROUP_CFGS.name = "mission_group_cfgs" +MISSION_GROUP_CFGS.full_name = ".ftcfg.mission_group_cfgs" +MISSION_GROUP_CFGS.nested_types = {} +MISSION_GROUP_CFGS.enum_types = {} +MISSION_GROUP_CFGS.fields = {MISSION_GROUP_CFGS_ITEMS_FIELD} +MISSION_GROUP_CFGS.is_extendable = false +MISSION_GROUP_CFGS.extensions = {} +NPC_SPAWN_METHOD_CFG_ID_FIELD.name = "id" +NPC_SPAWN_METHOD_CFG_ID_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.id" +NPC_SPAWN_METHOD_CFG_ID_FIELD.number = 1 +NPC_SPAWN_METHOD_CFG_ID_FIELD.index = 0 +NPC_SPAWN_METHOD_CFG_ID_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_ID_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_ID_FIELD.default_value = 0 +NPC_SPAWN_METHOD_CFG_ID_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_ID_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.name = "group_id" +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.group_id" +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.number = 2 +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.index = 1 +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.default_value = 0 +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.name = "map_id" +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.map_id" +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.number = 3 +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.index = 2 +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.default_value = 0 +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.name = "npc_id" +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.npc_id" +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.number = 4 +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.index = 3 +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.default_value = 0 +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.name = "pos_x" +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.pos_x" +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.number = 5 +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.index = 4 +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.default_value = 0.0 +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.type = 2 +NPC_SPAWN_METHOD_CFG_POS_X_FIELD.cpp_type = 6 + +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.name = "pos_y" +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.pos_y" +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.number = 6 +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.index = 5 +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.default_value = 0.0 +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.type = 2 +NPC_SPAWN_METHOD_CFG_POS_Y_FIELD.cpp_type = 6 + +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.name = "pos_z" +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.pos_z" +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.number = 7 +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.index = 6 +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.default_value = 0.0 +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.type = 2 +NPC_SPAWN_METHOD_CFG_POS_Z_FIELD.cpp_type = 6 + +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.name = "orientation" +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.orientation" +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.number = 8 +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.index = 7 +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.default_value = 0.0 +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.type = 2 +NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD.cpp_type = 6 + +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.name = "relive_type" +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.relive_type" +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.number = 9 +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.index = 8 +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.default_value = 0 +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.name = "relive_time" +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.relive_time" +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.number = 10 +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.index = 9 +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.default_value = 0 +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.name = "service_list" +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.service_list" +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.number = 11 +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.index = 10 +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.label = 3 +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.default_value = {} +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.name = "npc_type" +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.npc_type" +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.number = 12 +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.index = 11 +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.label = 2 +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.default_value = nil +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.enum_type = config_predefine_pb.EENTITYTYPE +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.type = 14 +NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD.cpp_type = 8 + +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.name = "mission_ids" +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.full_name = ".ftcfg.npc_spawn_method_cfg.mission_ids" +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.number = 13 +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.index = 12 +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.label = 3 +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.default_value = {} +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.type = 5 +NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD.cpp_type = 1 + +NPC_SPAWN_METHOD_CFG.name = "npc_spawn_method_cfg" +NPC_SPAWN_METHOD_CFG.full_name = ".ftcfg.npc_spawn_method_cfg" +NPC_SPAWN_METHOD_CFG.nested_types = {} +NPC_SPAWN_METHOD_CFG.enum_types = {} +NPC_SPAWN_METHOD_CFG.fields = {NPC_SPAWN_METHOD_CFG_ID_FIELD, NPC_SPAWN_METHOD_CFG_GROUP_ID_FIELD, NPC_SPAWN_METHOD_CFG_MAP_ID_FIELD, NPC_SPAWN_METHOD_CFG_NPC_ID_FIELD, NPC_SPAWN_METHOD_CFG_POS_X_FIELD, NPC_SPAWN_METHOD_CFG_POS_Y_FIELD, NPC_SPAWN_METHOD_CFG_POS_Z_FIELD, NPC_SPAWN_METHOD_CFG_ORIENTATION_FIELD, NPC_SPAWN_METHOD_CFG_RELIVE_TYPE_FIELD, NPC_SPAWN_METHOD_CFG_RELIVE_TIME_FIELD, NPC_SPAWN_METHOD_CFG_SERVICE_LIST_FIELD, NPC_SPAWN_METHOD_CFG_NPC_TYPE_FIELD, NPC_SPAWN_METHOD_CFG_MISSION_IDS_FIELD} +NPC_SPAWN_METHOD_CFG.is_extendable = false +NPC_SPAWN_METHOD_CFG.extensions = {} +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.name = "items" +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.npc_spawn_method_cfgs.items" +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.number = 1 +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.index = 0 +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.label = 3 +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.has_default_value = false +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.default_value = {} +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.message_type = NPC_SPAWN_METHOD_CFG +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.type = 11 +NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD.cpp_type = 10 + +NPC_SPAWN_METHOD_CFGS.name = "npc_spawn_method_cfgs" +NPC_SPAWN_METHOD_CFGS.full_name = ".ftcfg.npc_spawn_method_cfgs" +NPC_SPAWN_METHOD_CFGS.nested_types = {} +NPC_SPAWN_METHOD_CFGS.enum_types = {} +NPC_SPAWN_METHOD_CFGS.fields = {NPC_SPAWN_METHOD_CFGS_ITEMS_FIELD} +NPC_SPAWN_METHOD_CFGS.is_extendable = false +NPC_SPAWN_METHOD_CFGS.extensions = {} +NPC_FUNCTION_CFG_ID_FIELD.name = "id" +NPC_FUNCTION_CFG_ID_FIELD.full_name = ".ftcfg.npc_function_cfg.id" +NPC_FUNCTION_CFG_ID_FIELD.number = 1 +NPC_FUNCTION_CFG_ID_FIELD.index = 0 +NPC_FUNCTION_CFG_ID_FIELD.label = 2 +NPC_FUNCTION_CFG_ID_FIELD.has_default_value = false +NPC_FUNCTION_CFG_ID_FIELD.default_value = 0 +NPC_FUNCTION_CFG_ID_FIELD.type = 5 +NPC_FUNCTION_CFG_ID_FIELD.cpp_type = 1 + +NPC_FUNCTION_CFG_SCENE_ID_FIELD.name = "scene_id" +NPC_FUNCTION_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.npc_function_cfg.scene_id" +NPC_FUNCTION_CFG_SCENE_ID_FIELD.number = 2 +NPC_FUNCTION_CFG_SCENE_ID_FIELD.index = 1 +NPC_FUNCTION_CFG_SCENE_ID_FIELD.label = 2 +NPC_FUNCTION_CFG_SCENE_ID_FIELD.has_default_value = false +NPC_FUNCTION_CFG_SCENE_ID_FIELD.default_value = 0 +NPC_FUNCTION_CFG_SCENE_ID_FIELD.type = 5 +NPC_FUNCTION_CFG_SCENE_ID_FIELD.cpp_type = 1 + +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.name = "open_dialog" +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.full_name = ".ftcfg.npc_function_cfg.open_dialog" +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.number = 3 +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.index = 2 +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.label = 2 +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.has_default_value = false +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.default_value = false +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.type = 8 +NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD.cpp_type = 7 + +NPC_FUNCTION_CFG_BUTTONS_FIELD.name = "buttons" +NPC_FUNCTION_CFG_BUTTONS_FIELD.full_name = ".ftcfg.npc_function_cfg.buttons" +NPC_FUNCTION_CFG_BUTTONS_FIELD.number = 4 +NPC_FUNCTION_CFG_BUTTONS_FIELD.index = 3 +NPC_FUNCTION_CFG_BUTTONS_FIELD.label = 3 +NPC_FUNCTION_CFG_BUTTONS_FIELD.has_default_value = false +NPC_FUNCTION_CFG_BUTTONS_FIELD.default_value = {} +NPC_FUNCTION_CFG_BUTTONS_FIELD.type = 5 +NPC_FUNCTION_CFG_BUTTONS_FIELD.cpp_type = 1 + +NPC_FUNCTION_CFG_CONTENT_FIELD.name = "content" +NPC_FUNCTION_CFG_CONTENT_FIELD.full_name = ".ftcfg.npc_function_cfg.content" +NPC_FUNCTION_CFG_CONTENT_FIELD.number = 5 +NPC_FUNCTION_CFG_CONTENT_FIELD.index = 4 +NPC_FUNCTION_CFG_CONTENT_FIELD.label = 2 +NPC_FUNCTION_CFG_CONTENT_FIELD.has_default_value = false +NPC_FUNCTION_CFG_CONTENT_FIELD.default_value = 0 +NPC_FUNCTION_CFG_CONTENT_FIELD.type = 5 +NPC_FUNCTION_CFG_CONTENT_FIELD.cpp_type = 1 + +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.name = "functions" +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.full_name = ".ftcfg.npc_function_cfg.functions" +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.number = 6 +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.index = 5 +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.label = 3 +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.has_default_value = false +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.default_value = {} +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.type = 14 +NPC_FUNCTION_CFG_FUNCTIONS_FIELD.cpp_type = 8 + +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.name = "func_para" +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.full_name = ".ftcfg.npc_function_cfg.func_para" +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.number = 7 +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.index = 6 +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.label = 3 +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.has_default_value = false +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.default_value = {} +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.type = 5 +NPC_FUNCTION_CFG_FUNC_PARA_FIELD.cpp_type = 1 + +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.name = "show_scale" +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.full_name = ".ftcfg.npc_function_cfg.show_scale" +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.number = 8 +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.index = 7 +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.label = 2 +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.has_default_value = false +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.default_value = 0.0 +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.type = 2 +NPC_FUNCTION_CFG_SHOW_SCALE_FIELD.cpp_type = 6 + +NPC_FUNCTION_CFG.name = "npc_function_cfg" +NPC_FUNCTION_CFG.full_name = ".ftcfg.npc_function_cfg" +NPC_FUNCTION_CFG.nested_types = {} +NPC_FUNCTION_CFG.enum_types = {} +NPC_FUNCTION_CFG.fields = {NPC_FUNCTION_CFG_ID_FIELD, NPC_FUNCTION_CFG_SCENE_ID_FIELD, NPC_FUNCTION_CFG_OPEN_DIALOG_FIELD, NPC_FUNCTION_CFG_BUTTONS_FIELD, NPC_FUNCTION_CFG_CONTENT_FIELD, NPC_FUNCTION_CFG_FUNCTIONS_FIELD, NPC_FUNCTION_CFG_FUNC_PARA_FIELD, NPC_FUNCTION_CFG_SHOW_SCALE_FIELD} +NPC_FUNCTION_CFG.is_extendable = false +NPC_FUNCTION_CFG.extensions = {} +NPC_FUNCTION_CFGS_ITEMS_FIELD.name = "items" +NPC_FUNCTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.npc_function_cfgs.items" +NPC_FUNCTION_CFGS_ITEMS_FIELD.number = 1 +NPC_FUNCTION_CFGS_ITEMS_FIELD.index = 0 +NPC_FUNCTION_CFGS_ITEMS_FIELD.label = 3 +NPC_FUNCTION_CFGS_ITEMS_FIELD.has_default_value = false +NPC_FUNCTION_CFGS_ITEMS_FIELD.default_value = {} +NPC_FUNCTION_CFGS_ITEMS_FIELD.message_type = NPC_FUNCTION_CFG +NPC_FUNCTION_CFGS_ITEMS_FIELD.type = 11 +NPC_FUNCTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +NPC_FUNCTION_CFGS.name = "npc_function_cfgs" +NPC_FUNCTION_CFGS.full_name = ".ftcfg.npc_function_cfgs" +NPC_FUNCTION_CFGS.nested_types = {} +NPC_FUNCTION_CFGS.enum_types = {} +NPC_FUNCTION_CFGS.fields = {NPC_FUNCTION_CFGS_ITEMS_FIELD} +NPC_FUNCTION_CFGS.is_extendable = false +NPC_FUNCTION_CFGS.extensions = {} +PLAYSCG_CFG_ID_FIELD.name = "id" +PLAYSCG_CFG_ID_FIELD.full_name = ".ftcfg.playscg_cfg.id" +PLAYSCG_CFG_ID_FIELD.number = 1 +PLAYSCG_CFG_ID_FIELD.index = 0 +PLAYSCG_CFG_ID_FIELD.label = 2 +PLAYSCG_CFG_ID_FIELD.has_default_value = false +PLAYSCG_CFG_ID_FIELD.default_value = 0 +PLAYSCG_CFG_ID_FIELD.type = 5 +PLAYSCG_CFG_ID_FIELD.cpp_type = 1 + +PLAYSCG_CFG_STATE_FIELD.name = "state" +PLAYSCG_CFG_STATE_FIELD.full_name = ".ftcfg.playscg_cfg.state" +PLAYSCG_CFG_STATE_FIELD.number = 2 +PLAYSCG_CFG_STATE_FIELD.index = 1 +PLAYSCG_CFG_STATE_FIELD.label = 2 +PLAYSCG_CFG_STATE_FIELD.has_default_value = false +PLAYSCG_CFG_STATE_FIELD.default_value = 0 +PLAYSCG_CFG_STATE_FIELD.type = 5 +PLAYSCG_CFG_STATE_FIELD.cpp_type = 1 + +PLAYSCG_CFG.name = "playscg_cfg" +PLAYSCG_CFG.full_name = ".ftcfg.playscg_cfg" +PLAYSCG_CFG.nested_types = {} +PLAYSCG_CFG.enum_types = {} +PLAYSCG_CFG.fields = {PLAYSCG_CFG_ID_FIELD, PLAYSCG_CFG_STATE_FIELD} +PLAYSCG_CFG.is_extendable = false +PLAYSCG_CFG.extensions = {} +PLAYSCG_CFGS_ITEMS_FIELD.name = "items" +PLAYSCG_CFGS_ITEMS_FIELD.full_name = ".ftcfg.playscg_cfgs.items" +PLAYSCG_CFGS_ITEMS_FIELD.number = 1 +PLAYSCG_CFGS_ITEMS_FIELD.index = 0 +PLAYSCG_CFGS_ITEMS_FIELD.label = 3 +PLAYSCG_CFGS_ITEMS_FIELD.has_default_value = false +PLAYSCG_CFGS_ITEMS_FIELD.default_value = {} +PLAYSCG_CFGS_ITEMS_FIELD.message_type = PLAYSCG_CFG +PLAYSCG_CFGS_ITEMS_FIELD.type = 11 +PLAYSCG_CFGS_ITEMS_FIELD.cpp_type = 10 + +PLAYSCG_CFGS.name = "playscg_cfgs" +PLAYSCG_CFGS.full_name = ".ftcfg.playscg_cfgs" +PLAYSCG_CFGS.nested_types = {} +PLAYSCG_CFGS.enum_types = {} +PLAYSCG_CFGS.fields = {PLAYSCG_CFGS_ITEMS_FIELD} +PLAYSCG_CFGS.is_extendable = false +PLAYSCG_CFGS.extensions = {} +PLOT_DATA_CFG_ID_FIELD.name = "id" +PLOT_DATA_CFG_ID_FIELD.full_name = ".ftcfg.plot_data_cfg.id" +PLOT_DATA_CFG_ID_FIELD.number = 1 +PLOT_DATA_CFG_ID_FIELD.index = 0 +PLOT_DATA_CFG_ID_FIELD.label = 2 +PLOT_DATA_CFG_ID_FIELD.has_default_value = false +PLOT_DATA_CFG_ID_FIELD.default_value = 0 +PLOT_DATA_CFG_ID_FIELD.type = 5 +PLOT_DATA_CFG_ID_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_TYPE_FIELD.name = "type" +PLOT_DATA_CFG_TYPE_FIELD.full_name = ".ftcfg.plot_data_cfg.type" +PLOT_DATA_CFG_TYPE_FIELD.number = 2 +PLOT_DATA_CFG_TYPE_FIELD.index = 1 +PLOT_DATA_CFG_TYPE_FIELD.label = 2 +PLOT_DATA_CFG_TYPE_FIELD.has_default_value = false +PLOT_DATA_CFG_TYPE_FIELD.default_value = 0 +PLOT_DATA_CFG_TYPE_FIELD.type = 5 +PLOT_DATA_CFG_TYPE_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_NEXT_PLOT_FIELD.name = "next_plot" +PLOT_DATA_CFG_NEXT_PLOT_FIELD.full_name = ".ftcfg.plot_data_cfg.next_plot" +PLOT_DATA_CFG_NEXT_PLOT_FIELD.number = 3 +PLOT_DATA_CFG_NEXT_PLOT_FIELD.index = 2 +PLOT_DATA_CFG_NEXT_PLOT_FIELD.label = 2 +PLOT_DATA_CFG_NEXT_PLOT_FIELD.has_default_value = false +PLOT_DATA_CFG_NEXT_PLOT_FIELD.default_value = 0 +PLOT_DATA_CFG_NEXT_PLOT_FIELD.type = 5 +PLOT_DATA_CFG_NEXT_PLOT_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_CONTENT_ID_FIELD.name = "content_id" +PLOT_DATA_CFG_CONTENT_ID_FIELD.full_name = ".ftcfg.plot_data_cfg.content_id" +PLOT_DATA_CFG_CONTENT_ID_FIELD.number = 4 +PLOT_DATA_CFG_CONTENT_ID_FIELD.index = 3 +PLOT_DATA_CFG_CONTENT_ID_FIELD.label = 2 +PLOT_DATA_CFG_CONTENT_ID_FIELD.has_default_value = false +PLOT_DATA_CFG_CONTENT_ID_FIELD.default_value = 0 +PLOT_DATA_CFG_CONTENT_ID_FIELD.type = 5 +PLOT_DATA_CFG_CONTENT_ID_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_CAN_SKIP_FIELD.name = "can_skip" +PLOT_DATA_CFG_CAN_SKIP_FIELD.full_name = ".ftcfg.plot_data_cfg.can_skip" +PLOT_DATA_CFG_CAN_SKIP_FIELD.number = 5 +PLOT_DATA_CFG_CAN_SKIP_FIELD.index = 4 +PLOT_DATA_CFG_CAN_SKIP_FIELD.label = 2 +PLOT_DATA_CFG_CAN_SKIP_FIELD.has_default_value = false +PLOT_DATA_CFG_CAN_SKIP_FIELD.default_value = false +PLOT_DATA_CFG_CAN_SKIP_FIELD.type = 8 +PLOT_DATA_CFG_CAN_SKIP_FIELD.cpp_type = 7 + +PLOT_DATA_CFG_SHOW_ID_FIELD.name = "show_id" +PLOT_DATA_CFG_SHOW_ID_FIELD.full_name = ".ftcfg.plot_data_cfg.show_id" +PLOT_DATA_CFG_SHOW_ID_FIELD.number = 6 +PLOT_DATA_CFG_SHOW_ID_FIELD.index = 5 +PLOT_DATA_CFG_SHOW_ID_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_ID_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_ID_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_ID_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_ID_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_IMAGE_ID_FIELD.name = "image_id" +PLOT_DATA_CFG_IMAGE_ID_FIELD.full_name = ".ftcfg.plot_data_cfg.image_id" +PLOT_DATA_CFG_IMAGE_ID_FIELD.number = 7 +PLOT_DATA_CFG_IMAGE_ID_FIELD.index = 6 +PLOT_DATA_CFG_IMAGE_ID_FIELD.label = 2 +PLOT_DATA_CFG_IMAGE_ID_FIELD.has_default_value = false +PLOT_DATA_CFG_IMAGE_ID_FIELD.default_value = 0 +PLOT_DATA_CFG_IMAGE_ID_FIELD.type = 5 +PLOT_DATA_CFG_IMAGE_ID_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_STAY_TIME_FIELD.name = "stay_time" +PLOT_DATA_CFG_STAY_TIME_FIELD.full_name = ".ftcfg.plot_data_cfg.stay_time" +PLOT_DATA_CFG_STAY_TIME_FIELD.number = 8 +PLOT_DATA_CFG_STAY_TIME_FIELD.index = 7 +PLOT_DATA_CFG_STAY_TIME_FIELD.label = 2 +PLOT_DATA_CFG_STAY_TIME_FIELD.has_default_value = false +PLOT_DATA_CFG_STAY_TIME_FIELD.default_value = 0.0 +PLOT_DATA_CFG_STAY_TIME_FIELD.type = 2 +PLOT_DATA_CFG_STAY_TIME_FIELD.cpp_type = 6 + +PLOT_DATA_CFG_AUDIORES_ID_FIELD.name = "audiores_id" +PLOT_DATA_CFG_AUDIORES_ID_FIELD.full_name = ".ftcfg.plot_data_cfg.audiores_id" +PLOT_DATA_CFG_AUDIORES_ID_FIELD.number = 9 +PLOT_DATA_CFG_AUDIORES_ID_FIELD.index = 8 +PLOT_DATA_CFG_AUDIORES_ID_FIELD.label = 2 +PLOT_DATA_CFG_AUDIORES_ID_FIELD.has_default_value = false +PLOT_DATA_CFG_AUDIORES_ID_FIELD.default_value = 0 +PLOT_DATA_CFG_AUDIORES_ID_FIELD.type = 5 +PLOT_DATA_CFG_AUDIORES_ID_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_SHOW_POS_FIELD.name = "show_pos" +PLOT_DATA_CFG_SHOW_POS_FIELD.full_name = ".ftcfg.plot_data_cfg.show_pos" +PLOT_DATA_CFG_SHOW_POS_FIELD.number = 10 +PLOT_DATA_CFG_SHOW_POS_FIELD.index = 9 +PLOT_DATA_CFG_SHOW_POS_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_POS_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_POS_FIELD.default_value = 0.0 +PLOT_DATA_CFG_SHOW_POS_FIELD.type = 2 +PLOT_DATA_CFG_SHOW_POS_FIELD.cpp_type = 6 + +PLOT_DATA_CFG_SHOW_SCALE_FIELD.name = "show_scale" +PLOT_DATA_CFG_SHOW_SCALE_FIELD.full_name = ".ftcfg.plot_data_cfg.show_scale" +PLOT_DATA_CFG_SHOW_SCALE_FIELD.number = 11 +PLOT_DATA_CFG_SHOW_SCALE_FIELD.index = 10 +PLOT_DATA_CFG_SHOW_SCALE_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_SCALE_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_SCALE_FIELD.default_value = 0.0 +PLOT_DATA_CFG_SHOW_SCALE_FIELD.type = 2 +PLOT_DATA_CFG_SHOW_SCALE_FIELD.cpp_type = 6 + +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.name = "show_img_left" +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_img_left" +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.number = 12 +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.index = 11 +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.name = "show_name_left" +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_name_left" +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.number = 13 +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.index = 12 +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.name = "show_dark_left" +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_dark_left" +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.number = 14 +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.index = 13 +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.name = "show_zoom_left" +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_zoom_left" +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.number = 15 +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.index = 14 +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.default_value = 0.0 +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.type = 2 +PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD.cpp_type = 6 + +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.name = "show_img_right" +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_img_right" +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.number = 16 +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.index = 15 +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.name = "show_name_right" +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_name_right" +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.number = 17 +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.index = 16 +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.name = "show_dark_right" +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_dark_right" +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.number = 18 +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.index = 17 +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.name = "show_zoom_right" +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.full_name = ".ftcfg.plot_data_cfg.show_zoom_right" +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.number = 19 +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.index = 18 +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.default_value = 0.0 +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.type = 2 +PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD.cpp_type = 6 + +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.name = "show_bg_id" +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.full_name = ".ftcfg.plot_data_cfg.show_bg_id" +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.number = 20 +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.index = 19 +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.label = 2 +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.has_default_value = false +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.default_value = 0 +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.type = 5 +PLOT_DATA_CFG_SHOW_BG_ID_FIELD.cpp_type = 1 + +PLOT_DATA_CFG_INSERT_NAME_FIELD.name = "insert_name" +PLOT_DATA_CFG_INSERT_NAME_FIELD.full_name = ".ftcfg.plot_data_cfg.insert_name" +PLOT_DATA_CFG_INSERT_NAME_FIELD.number = 21 +PLOT_DATA_CFG_INSERT_NAME_FIELD.index = 20 +PLOT_DATA_CFG_INSERT_NAME_FIELD.label = 2 +PLOT_DATA_CFG_INSERT_NAME_FIELD.has_default_value = false +PLOT_DATA_CFG_INSERT_NAME_FIELD.default_value = false +PLOT_DATA_CFG_INSERT_NAME_FIELD.type = 8 +PLOT_DATA_CFG_INSERT_NAME_FIELD.cpp_type = 7 + +PLOT_DATA_CFG.name = "plot_data_cfg" +PLOT_DATA_CFG.full_name = ".ftcfg.plot_data_cfg" +PLOT_DATA_CFG.nested_types = {} +PLOT_DATA_CFG.enum_types = {} +PLOT_DATA_CFG.fields = {PLOT_DATA_CFG_ID_FIELD, PLOT_DATA_CFG_TYPE_FIELD, PLOT_DATA_CFG_NEXT_PLOT_FIELD, PLOT_DATA_CFG_CONTENT_ID_FIELD, PLOT_DATA_CFG_CAN_SKIP_FIELD, PLOT_DATA_CFG_SHOW_ID_FIELD, PLOT_DATA_CFG_IMAGE_ID_FIELD, PLOT_DATA_CFG_STAY_TIME_FIELD, PLOT_DATA_CFG_AUDIORES_ID_FIELD, PLOT_DATA_CFG_SHOW_POS_FIELD, PLOT_DATA_CFG_SHOW_SCALE_FIELD, PLOT_DATA_CFG_SHOW_IMG_LEFT_FIELD, PLOT_DATA_CFG_SHOW_NAME_LEFT_FIELD, PLOT_DATA_CFG_SHOW_DARK_LEFT_FIELD, PLOT_DATA_CFG_SHOW_ZOOM_LEFT_FIELD, PLOT_DATA_CFG_SHOW_IMG_RIGHT_FIELD, PLOT_DATA_CFG_SHOW_NAME_RIGHT_FIELD, PLOT_DATA_CFG_SHOW_DARK_RIGHT_FIELD, PLOT_DATA_CFG_SHOW_ZOOM_RIGHT_FIELD, PLOT_DATA_CFG_SHOW_BG_ID_FIELD, PLOT_DATA_CFG_INSERT_NAME_FIELD} +PLOT_DATA_CFG.is_extendable = false +PLOT_DATA_CFG.extensions = {} +PLOT_DATA_CFGS_ITEMS_FIELD.name = "items" +PLOT_DATA_CFGS_ITEMS_FIELD.full_name = ".ftcfg.plot_data_cfgs.items" +PLOT_DATA_CFGS_ITEMS_FIELD.number = 1 +PLOT_DATA_CFGS_ITEMS_FIELD.index = 0 +PLOT_DATA_CFGS_ITEMS_FIELD.label = 3 +PLOT_DATA_CFGS_ITEMS_FIELD.has_default_value = false +PLOT_DATA_CFGS_ITEMS_FIELD.default_value = {} +PLOT_DATA_CFGS_ITEMS_FIELD.message_type = PLOT_DATA_CFG +PLOT_DATA_CFGS_ITEMS_FIELD.type = 11 +PLOT_DATA_CFGS_ITEMS_FIELD.cpp_type = 10 + +PLOT_DATA_CFGS.name = "plot_data_cfgs" +PLOT_DATA_CFGS.full_name = ".ftcfg.plot_data_cfgs" +PLOT_DATA_CFGS.nested_types = {} +PLOT_DATA_CFGS.enum_types = {} +PLOT_DATA_CFGS.fields = {PLOT_DATA_CFGS_ITEMS_FIELD} +PLOT_DATA_CFGS.is_extendable = false +PLOT_DATA_CFGS.extensions = {} +GLOBAL_PARAM_CFG_ID_FIELD.name = "id" +GLOBAL_PARAM_CFG_ID_FIELD.full_name = ".ftcfg.global_param_cfg.id" +GLOBAL_PARAM_CFG_ID_FIELD.number = 1 +GLOBAL_PARAM_CFG_ID_FIELD.index = 0 +GLOBAL_PARAM_CFG_ID_FIELD.label = 2 +GLOBAL_PARAM_CFG_ID_FIELD.has_default_value = false +GLOBAL_PARAM_CFG_ID_FIELD.default_value = 0 +GLOBAL_PARAM_CFG_ID_FIELD.type = 5 +GLOBAL_PARAM_CFG_ID_FIELD.cpp_type = 1 + +GLOBAL_PARAM_CFG_DESC_FIELD.name = "desc" +GLOBAL_PARAM_CFG_DESC_FIELD.full_name = ".ftcfg.global_param_cfg.desc" +GLOBAL_PARAM_CFG_DESC_FIELD.number = 2 +GLOBAL_PARAM_CFG_DESC_FIELD.index = 1 +GLOBAL_PARAM_CFG_DESC_FIELD.label = 2 +GLOBAL_PARAM_CFG_DESC_FIELD.has_default_value = false +GLOBAL_PARAM_CFG_DESC_FIELD.default_value = "" +GLOBAL_PARAM_CFG_DESC_FIELD.type = 9 +GLOBAL_PARAM_CFG_DESC_FIELD.cpp_type = 9 + +GLOBAL_PARAM_CFG_VALUE_FIELD.name = "value" +GLOBAL_PARAM_CFG_VALUE_FIELD.full_name = ".ftcfg.global_param_cfg.value" +GLOBAL_PARAM_CFG_VALUE_FIELD.number = 3 +GLOBAL_PARAM_CFG_VALUE_FIELD.index = 2 +GLOBAL_PARAM_CFG_VALUE_FIELD.label = 2 +GLOBAL_PARAM_CFG_VALUE_FIELD.has_default_value = false +GLOBAL_PARAM_CFG_VALUE_FIELD.default_value = 0.0 +GLOBAL_PARAM_CFG_VALUE_FIELD.type = 1 +GLOBAL_PARAM_CFG_VALUE_FIELD.cpp_type = 5 + +GLOBAL_PARAM_CFG.name = "global_param_cfg" +GLOBAL_PARAM_CFG.full_name = ".ftcfg.global_param_cfg" +GLOBAL_PARAM_CFG.nested_types = {} +GLOBAL_PARAM_CFG.enum_types = {} +GLOBAL_PARAM_CFG.fields = {GLOBAL_PARAM_CFG_ID_FIELD, GLOBAL_PARAM_CFG_DESC_FIELD, GLOBAL_PARAM_CFG_VALUE_FIELD} +GLOBAL_PARAM_CFG.is_extendable = false +GLOBAL_PARAM_CFG.extensions = {} +GLOBAL_PARAM_CFGS_ITEMS_FIELD.name = "items" +GLOBAL_PARAM_CFGS_ITEMS_FIELD.full_name = ".ftcfg.global_param_cfgs.items" +GLOBAL_PARAM_CFGS_ITEMS_FIELD.number = 1 +GLOBAL_PARAM_CFGS_ITEMS_FIELD.index = 0 +GLOBAL_PARAM_CFGS_ITEMS_FIELD.label = 3 +GLOBAL_PARAM_CFGS_ITEMS_FIELD.has_default_value = false +GLOBAL_PARAM_CFGS_ITEMS_FIELD.default_value = {} +GLOBAL_PARAM_CFGS_ITEMS_FIELD.message_type = GLOBAL_PARAM_CFG +GLOBAL_PARAM_CFGS_ITEMS_FIELD.type = 11 +GLOBAL_PARAM_CFGS_ITEMS_FIELD.cpp_type = 10 + +GLOBAL_PARAM_CFGS.name = "global_param_cfgs" +GLOBAL_PARAM_CFGS.full_name = ".ftcfg.global_param_cfgs" +GLOBAL_PARAM_CFGS.nested_types = {} +GLOBAL_PARAM_CFGS.enum_types = {} +GLOBAL_PARAM_CFGS.fields = {GLOBAL_PARAM_CFGS_ITEMS_FIELD} +GLOBAL_PARAM_CFGS.is_extendable = false +GLOBAL_PARAM_CFGS.extensions = {} +PROP_TYPE_CFG_ID_FIELD.name = "id" +PROP_TYPE_CFG_ID_FIELD.full_name = ".ftcfg.prop_type_cfg.id" +PROP_TYPE_CFG_ID_FIELD.number = 1 +PROP_TYPE_CFG_ID_FIELD.index = 0 +PROP_TYPE_CFG_ID_FIELD.label = 2 +PROP_TYPE_CFG_ID_FIELD.has_default_value = false +PROP_TYPE_CFG_ID_FIELD.default_value = 0 +PROP_TYPE_CFG_ID_FIELD.type = 5 +PROP_TYPE_CFG_ID_FIELD.cpp_type = 1 + +PROP_TYPE_CFG_IS_RATE_FIELD.name = "is_rate" +PROP_TYPE_CFG_IS_RATE_FIELD.full_name = ".ftcfg.prop_type_cfg.is_rate" +PROP_TYPE_CFG_IS_RATE_FIELD.number = 2 +PROP_TYPE_CFG_IS_RATE_FIELD.index = 1 +PROP_TYPE_CFG_IS_RATE_FIELD.label = 2 +PROP_TYPE_CFG_IS_RATE_FIELD.has_default_value = false +PROP_TYPE_CFG_IS_RATE_FIELD.default_value = false +PROP_TYPE_CFG_IS_RATE_FIELD.type = 8 +PROP_TYPE_CFG_IS_RATE_FIELD.cpp_type = 7 + +PROP_TYPE_CFG_ATTRIBUTE_FIELD.name = "attribute" +PROP_TYPE_CFG_ATTRIBUTE_FIELD.full_name = ".ftcfg.prop_type_cfg.attribute" +PROP_TYPE_CFG_ATTRIBUTE_FIELD.number = 3 +PROP_TYPE_CFG_ATTRIBUTE_FIELD.index = 2 +PROP_TYPE_CFG_ATTRIBUTE_FIELD.label = 3 +PROP_TYPE_CFG_ATTRIBUTE_FIELD.has_default_value = false +PROP_TYPE_CFG_ATTRIBUTE_FIELD.default_value = {} +PROP_TYPE_CFG_ATTRIBUTE_FIELD.enum_type = config_predefine_pb.EPROPATTRIBUTETYPE +PROP_TYPE_CFG_ATTRIBUTE_FIELD.type = 14 +PROP_TYPE_CFG_ATTRIBUTE_FIELD.cpp_type = 8 + +PROP_TYPE_CFG.name = "prop_type_cfg" +PROP_TYPE_CFG.full_name = ".ftcfg.prop_type_cfg" +PROP_TYPE_CFG.nested_types = {} +PROP_TYPE_CFG.enum_types = {} +PROP_TYPE_CFG.fields = {PROP_TYPE_CFG_ID_FIELD, PROP_TYPE_CFG_IS_RATE_FIELD, PROP_TYPE_CFG_ATTRIBUTE_FIELD} +PROP_TYPE_CFG.is_extendable = false +PROP_TYPE_CFG.extensions = {} +PROP_TYPE_CFGS_ITEMS_FIELD.name = "items" +PROP_TYPE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.prop_type_cfgs.items" +PROP_TYPE_CFGS_ITEMS_FIELD.number = 1 +PROP_TYPE_CFGS_ITEMS_FIELD.index = 0 +PROP_TYPE_CFGS_ITEMS_FIELD.label = 3 +PROP_TYPE_CFGS_ITEMS_FIELD.has_default_value = false +PROP_TYPE_CFGS_ITEMS_FIELD.default_value = {} +PROP_TYPE_CFGS_ITEMS_FIELD.message_type = PROP_TYPE_CFG +PROP_TYPE_CFGS_ITEMS_FIELD.type = 11 +PROP_TYPE_CFGS_ITEMS_FIELD.cpp_type = 10 + +PROP_TYPE_CFGS.name = "prop_type_cfgs" +PROP_TYPE_CFGS.full_name = ".ftcfg.prop_type_cfgs" +PROP_TYPE_CFGS.nested_types = {} +PROP_TYPE_CFGS.enum_types = {} +PROP_TYPE_CFGS.fields = {PROP_TYPE_CFGS_ITEMS_FIELD} +PROP_TYPE_CFGS.is_extendable = false +PROP_TYPE_CFGS.extensions = {} +ATTRIBUTE_SHOW_CFG_ID_FIELD.name = "id" +ATTRIBUTE_SHOW_CFG_ID_FIELD.full_name = ".ftcfg.attribute_show_cfg.id" +ATTRIBUTE_SHOW_CFG_ID_FIELD.number = 1 +ATTRIBUTE_SHOW_CFG_ID_FIELD.index = 0 +ATTRIBUTE_SHOW_CFG_ID_FIELD.label = 2 +ATTRIBUTE_SHOW_CFG_ID_FIELD.has_default_value = false +ATTRIBUTE_SHOW_CFG_ID_FIELD.default_value = 0 +ATTRIBUTE_SHOW_CFG_ID_FIELD.type = 5 +ATTRIBUTE_SHOW_CFG_ID_FIELD.cpp_type = 1 + +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.name = "item_id" +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.attribute_show_cfg.item_id" +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.number = 2 +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.index = 1 +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.label = 2 +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.has_default_value = false +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.default_value = 0 +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.type = 5 +ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD.cpp_type = 1 + +ATTRIBUTE_SHOW_CFG.name = "attribute_show_cfg" +ATTRIBUTE_SHOW_CFG.full_name = ".ftcfg.attribute_show_cfg" +ATTRIBUTE_SHOW_CFG.nested_types = {} +ATTRIBUTE_SHOW_CFG.enum_types = {} +ATTRIBUTE_SHOW_CFG.fields = {ATTRIBUTE_SHOW_CFG_ID_FIELD, ATTRIBUTE_SHOW_CFG_ITEM_ID_FIELD} +ATTRIBUTE_SHOW_CFG.is_extendable = false +ATTRIBUTE_SHOW_CFG.extensions = {} +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.name = "items" +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.full_name = ".ftcfg.attribute_show_cfgs.items" +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.number = 1 +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.index = 0 +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.label = 3 +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.has_default_value = false +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.default_value = {} +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.message_type = ATTRIBUTE_SHOW_CFG +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.type = 11 +ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD.cpp_type = 10 + +ATTRIBUTE_SHOW_CFGS.name = "attribute_show_cfgs" +ATTRIBUTE_SHOW_CFGS.full_name = ".ftcfg.attribute_show_cfgs" +ATTRIBUTE_SHOW_CFGS.nested_types = {} +ATTRIBUTE_SHOW_CFGS.enum_types = {} +ATTRIBUTE_SHOW_CFGS.fields = {ATTRIBUTE_SHOW_CFGS_ITEMS_FIELD} +ATTRIBUTE_SHOW_CFGS.is_extendable = false +ATTRIBUTE_SHOW_CFGS.extensions = {} +RES_PATH_CFG_ID_FIELD.name = "id" +RES_PATH_CFG_ID_FIELD.full_name = ".ftcfg.res_path_cfg.id" +RES_PATH_CFG_ID_FIELD.number = 1 +RES_PATH_CFG_ID_FIELD.index = 0 +RES_PATH_CFG_ID_FIELD.label = 2 +RES_PATH_CFG_ID_FIELD.has_default_value = false +RES_PATH_CFG_ID_FIELD.default_value = 0 +RES_PATH_CFG_ID_FIELD.type = 5 +RES_PATH_CFG_ID_FIELD.cpp_type = 1 + +RES_PATH_CFG_RES_PATH_FIELD.name = "res_path" +RES_PATH_CFG_RES_PATH_FIELD.full_name = ".ftcfg.res_path_cfg.res_path" +RES_PATH_CFG_RES_PATH_FIELD.number = 2 +RES_PATH_CFG_RES_PATH_FIELD.index = 1 +RES_PATH_CFG_RES_PATH_FIELD.label = 2 +RES_PATH_CFG_RES_PATH_FIELD.has_default_value = false +RES_PATH_CFG_RES_PATH_FIELD.default_value = "" +RES_PATH_CFG_RES_PATH_FIELD.type = 9 +RES_PATH_CFG_RES_PATH_FIELD.cpp_type = 9 + +RES_PATH_CFG_ONE_BUNDLE_FIELD.name = "one_bundle" +RES_PATH_CFG_ONE_BUNDLE_FIELD.full_name = ".ftcfg.res_path_cfg.one_bundle" +RES_PATH_CFG_ONE_BUNDLE_FIELD.number = 3 +RES_PATH_CFG_ONE_BUNDLE_FIELD.index = 2 +RES_PATH_CFG_ONE_BUNDLE_FIELD.label = 2 +RES_PATH_CFG_ONE_BUNDLE_FIELD.has_default_value = false +RES_PATH_CFG_ONE_BUNDLE_FIELD.default_value = 0 +RES_PATH_CFG_ONE_BUNDLE_FIELD.type = 5 +RES_PATH_CFG_ONE_BUNDLE_FIELD.cpp_type = 1 + +RES_PATH_CFG.name = "res_path_cfg" +RES_PATH_CFG.full_name = ".ftcfg.res_path_cfg" +RES_PATH_CFG.nested_types = {} +RES_PATH_CFG.enum_types = {} +RES_PATH_CFG.fields = {RES_PATH_CFG_ID_FIELD, RES_PATH_CFG_RES_PATH_FIELD, RES_PATH_CFG_ONE_BUNDLE_FIELD} +RES_PATH_CFG.is_extendable = false +RES_PATH_CFG.extensions = {} +RES_PATH_CFGS_ITEMS_FIELD.name = "items" +RES_PATH_CFGS_ITEMS_FIELD.full_name = ".ftcfg.res_path_cfgs.items" +RES_PATH_CFGS_ITEMS_FIELD.number = 1 +RES_PATH_CFGS_ITEMS_FIELD.index = 0 +RES_PATH_CFGS_ITEMS_FIELD.label = 3 +RES_PATH_CFGS_ITEMS_FIELD.has_default_value = false +RES_PATH_CFGS_ITEMS_FIELD.default_value = {} +RES_PATH_CFGS_ITEMS_FIELD.message_type = RES_PATH_CFG +RES_PATH_CFGS_ITEMS_FIELD.type = 11 +RES_PATH_CFGS_ITEMS_FIELD.cpp_type = 10 + +RES_PATH_CFGS.name = "res_path_cfgs" +RES_PATH_CFGS.full_name = ".ftcfg.res_path_cfgs" +RES_PATH_CFGS.nested_types = {} +RES_PATH_CFGS.enum_types = {} +RES_PATH_CFGS.fields = {RES_PATH_CFGS_ITEMS_FIELD} +RES_PATH_CFGS.is_extendable = false +RES_PATH_CFGS.extensions = {} +SCENE_CFG_ID_FIELD.name = "id" +SCENE_CFG_ID_FIELD.full_name = ".ftcfg.scene_cfg.id" +SCENE_CFG_ID_FIELD.number = 1 +SCENE_CFG_ID_FIELD.index = 0 +SCENE_CFG_ID_FIELD.label = 2 +SCENE_CFG_ID_FIELD.has_default_value = false +SCENE_CFG_ID_FIELD.default_value = 0 +SCENE_CFG_ID_FIELD.type = 5 +SCENE_CFG_ID_FIELD.cpp_type = 1 + +SCENE_CFG_NAME_FIELD.name = "name" +SCENE_CFG_NAME_FIELD.full_name = ".ftcfg.scene_cfg.name" +SCENE_CFG_NAME_FIELD.number = 2 +SCENE_CFG_NAME_FIELD.index = 1 +SCENE_CFG_NAME_FIELD.label = 2 +SCENE_CFG_NAME_FIELD.has_default_value = false +SCENE_CFG_NAME_FIELD.default_value = 0 +SCENE_CFG_NAME_FIELD.type = 5 +SCENE_CFG_NAME_FIELD.cpp_type = 1 + +SCENE_CFG_MAPID_FIELD.name = "mapid" +SCENE_CFG_MAPID_FIELD.full_name = ".ftcfg.scene_cfg.mapid" +SCENE_CFG_MAPID_FIELD.number = 3 +SCENE_CFG_MAPID_FIELD.index = 2 +SCENE_CFG_MAPID_FIELD.label = 2 +SCENE_CFG_MAPID_FIELD.has_default_value = false +SCENE_CFG_MAPID_FIELD.default_value = 0 +SCENE_CFG_MAPID_FIELD.type = 5 +SCENE_CFG_MAPID_FIELD.cpp_type = 1 + +SCENE_CFG_TYPE_FIELD.name = "type" +SCENE_CFG_TYPE_FIELD.full_name = ".ftcfg.scene_cfg.type" +SCENE_CFG_TYPE_FIELD.number = 4 +SCENE_CFG_TYPE_FIELD.index = 3 +SCENE_CFG_TYPE_FIELD.label = 2 +SCENE_CFG_TYPE_FIELD.has_default_value = false +SCENE_CFG_TYPE_FIELD.default_value = nil +SCENE_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ESCENETYPE +SCENE_CFG_TYPE_FIELD.type = 14 +SCENE_CFG_TYPE_FIELD.cpp_type = 8 + +SCENE_CFG_IS_SAME_SCENE_FIELD.name = "is_same_scene" +SCENE_CFG_IS_SAME_SCENE_FIELD.full_name = ".ftcfg.scene_cfg.is_same_scene" +SCENE_CFG_IS_SAME_SCENE_FIELD.number = 5 +SCENE_CFG_IS_SAME_SCENE_FIELD.index = 4 +SCENE_CFG_IS_SAME_SCENE_FIELD.label = 2 +SCENE_CFG_IS_SAME_SCENE_FIELD.has_default_value = false +SCENE_CFG_IS_SAME_SCENE_FIELD.default_value = 0 +SCENE_CFG_IS_SAME_SCENE_FIELD.type = 5 +SCENE_CFG_IS_SAME_SCENE_FIELD.cpp_type = 1 + +SCENE_CFG_SCENE_ROUTE_FIELD.name = "scene_route" +SCENE_CFG_SCENE_ROUTE_FIELD.full_name = ".ftcfg.scene_cfg.scene_route" +SCENE_CFG_SCENE_ROUTE_FIELD.number = 6 +SCENE_CFG_SCENE_ROUTE_FIELD.index = 5 +SCENE_CFG_SCENE_ROUTE_FIELD.label = 2 +SCENE_CFG_SCENE_ROUTE_FIELD.has_default_value = false +SCENE_CFG_SCENE_ROUTE_FIELD.default_value = "" +SCENE_CFG_SCENE_ROUTE_FIELD.type = 9 +SCENE_CFG_SCENE_ROUTE_FIELD.cpp_type = 9 + +SCENE_CFG_CAMERA_PATH_RES_FIELD.name = "camera_path_res" +SCENE_CFG_CAMERA_PATH_RES_FIELD.full_name = ".ftcfg.scene_cfg.camera_path_res" +SCENE_CFG_CAMERA_PATH_RES_FIELD.number = 7 +SCENE_CFG_CAMERA_PATH_RES_FIELD.index = 6 +SCENE_CFG_CAMERA_PATH_RES_FIELD.label = 2 +SCENE_CFG_CAMERA_PATH_RES_FIELD.has_default_value = false +SCENE_CFG_CAMERA_PATH_RES_FIELD.default_value = 0 +SCENE_CFG_CAMERA_PATH_RES_FIELD.type = 5 +SCENE_CFG_CAMERA_PATH_RES_FIELD.cpp_type = 1 + +SCENE_CFG_SCENE_RECAST_FIELD.name = "scene_recast" +SCENE_CFG_SCENE_RECAST_FIELD.full_name = ".ftcfg.scene_cfg.scene_recast" +SCENE_CFG_SCENE_RECAST_FIELD.number = 8 +SCENE_CFG_SCENE_RECAST_FIELD.index = 7 +SCENE_CFG_SCENE_RECAST_FIELD.label = 2 +SCENE_CFG_SCENE_RECAST_FIELD.has_default_value = false +SCENE_CFG_SCENE_RECAST_FIELD.default_value = "" +SCENE_CFG_SCENE_RECAST_FIELD.type = 9 +SCENE_CFG_SCENE_RECAST_FIELD.cpp_type = 9 + +SCENE_CFG_SCENE_LENGTH_FIELD.name = "scene_length" +SCENE_CFG_SCENE_LENGTH_FIELD.full_name = ".ftcfg.scene_cfg.scene_length" +SCENE_CFG_SCENE_LENGTH_FIELD.number = 9 +SCENE_CFG_SCENE_LENGTH_FIELD.index = 8 +SCENE_CFG_SCENE_LENGTH_FIELD.label = 2 +SCENE_CFG_SCENE_LENGTH_FIELD.has_default_value = false +SCENE_CFG_SCENE_LENGTH_FIELD.default_value = 0 +SCENE_CFG_SCENE_LENGTH_FIELD.type = 5 +SCENE_CFG_SCENE_LENGTH_FIELD.cpp_type = 1 + +SCENE_CFG_SCENE_WIDTH_FIELD.name = "scene_width" +SCENE_CFG_SCENE_WIDTH_FIELD.full_name = ".ftcfg.scene_cfg.scene_width" +SCENE_CFG_SCENE_WIDTH_FIELD.number = 10 +SCENE_CFG_SCENE_WIDTH_FIELD.index = 9 +SCENE_CFG_SCENE_WIDTH_FIELD.label = 2 +SCENE_CFG_SCENE_WIDTH_FIELD.has_default_value = false +SCENE_CFG_SCENE_WIDTH_FIELD.default_value = 0 +SCENE_CFG_SCENE_WIDTH_FIELD.type = 5 +SCENE_CFG_SCENE_WIDTH_FIELD.cpp_type = 1 + +SCENE_CFG_REFRESH_TYPE_FIELD.name = "refresh_type" +SCENE_CFG_REFRESH_TYPE_FIELD.full_name = ".ftcfg.scene_cfg.refresh_type" +SCENE_CFG_REFRESH_TYPE_FIELD.number = 11 +SCENE_CFG_REFRESH_TYPE_FIELD.index = 10 +SCENE_CFG_REFRESH_TYPE_FIELD.label = 2 +SCENE_CFG_REFRESH_TYPE_FIELD.has_default_value = false +SCENE_CFG_REFRESH_TYPE_FIELD.default_value = 0 +SCENE_CFG_REFRESH_TYPE_FIELD.type = 5 +SCENE_CFG_REFRESH_TYPE_FIELD.cpp_type = 1 + +SCENE_CFG_REFRESH_PARAMETER_FIELD.name = "refresh_parameter" +SCENE_CFG_REFRESH_PARAMETER_FIELD.full_name = ".ftcfg.scene_cfg.refresh_parameter" +SCENE_CFG_REFRESH_PARAMETER_FIELD.number = 12 +SCENE_CFG_REFRESH_PARAMETER_FIELD.index = 11 +SCENE_CFG_REFRESH_PARAMETER_FIELD.label = 3 +SCENE_CFG_REFRESH_PARAMETER_FIELD.has_default_value = false +SCENE_CFG_REFRESH_PARAMETER_FIELD.default_value = {} +SCENE_CFG_REFRESH_PARAMETER_FIELD.type = 5 +SCENE_CFG_REFRESH_PARAMETER_FIELD.cpp_type = 1 + +SCENE_CFG_PARTNER_CARRY_FIELD.name = "partner_carry" +SCENE_CFG_PARTNER_CARRY_FIELD.full_name = ".ftcfg.scene_cfg.partner_carry" +SCENE_CFG_PARTNER_CARRY_FIELD.number = 13 +SCENE_CFG_PARTNER_CARRY_FIELD.index = 12 +SCENE_CFG_PARTNER_CARRY_FIELD.label = 2 +SCENE_CFG_PARTNER_CARRY_FIELD.has_default_value = false +SCENE_CFG_PARTNER_CARRY_FIELD.default_value = 0 +SCENE_CFG_PARTNER_CARRY_FIELD.type = 5 +SCENE_CFG_PARTNER_CARRY_FIELD.cpp_type = 1 + +SCENE_CFG_SHOW_CG_FIELD.name = "show_cg" +SCENE_CFG_SHOW_CG_FIELD.full_name = ".ftcfg.scene_cfg.show_cg" +SCENE_CFG_SHOW_CG_FIELD.number = 14 +SCENE_CFG_SHOW_CG_FIELD.index = 13 +SCENE_CFG_SHOW_CG_FIELD.label = 2 +SCENE_CFG_SHOW_CG_FIELD.has_default_value = false +SCENE_CFG_SHOW_CG_FIELD.default_value = 0 +SCENE_CFG_SHOW_CG_FIELD.type = 5 +SCENE_CFG_SHOW_CG_FIELD.cpp_type = 1 + +SCENE_CFG_RES_PATH_FIELD.name = "res_path" +SCENE_CFG_RES_PATH_FIELD.full_name = ".ftcfg.scene_cfg.res_path" +SCENE_CFG_RES_PATH_FIELD.number = 15 +SCENE_CFG_RES_PATH_FIELD.index = 14 +SCENE_CFG_RES_PATH_FIELD.label = 2 +SCENE_CFG_RES_PATH_FIELD.has_default_value = false +SCENE_CFG_RES_PATH_FIELD.default_value = 0 +SCENE_CFG_RES_PATH_FIELD.type = 5 +SCENE_CFG_RES_PATH_FIELD.cpp_type = 1 + +SCENE_CFG_BORN_X_FIELD.name = "born_x" +SCENE_CFG_BORN_X_FIELD.full_name = ".ftcfg.scene_cfg.born_x" +SCENE_CFG_BORN_X_FIELD.number = 16 +SCENE_CFG_BORN_X_FIELD.index = 15 +SCENE_CFG_BORN_X_FIELD.label = 2 +SCENE_CFG_BORN_X_FIELD.has_default_value = false +SCENE_CFG_BORN_X_FIELD.default_value = 0.0 +SCENE_CFG_BORN_X_FIELD.type = 2 +SCENE_CFG_BORN_X_FIELD.cpp_type = 6 + +SCENE_CFG_BORN_Y_FIELD.name = "born_y" +SCENE_CFG_BORN_Y_FIELD.full_name = ".ftcfg.scene_cfg.born_y" +SCENE_CFG_BORN_Y_FIELD.number = 17 +SCENE_CFG_BORN_Y_FIELD.index = 16 +SCENE_CFG_BORN_Y_FIELD.label = 2 +SCENE_CFG_BORN_Y_FIELD.has_default_value = false +SCENE_CFG_BORN_Y_FIELD.default_value = 0.0 +SCENE_CFG_BORN_Y_FIELD.type = 2 +SCENE_CFG_BORN_Y_FIELD.cpp_type = 6 + +SCENE_CFG_BORN_Z_FIELD.name = "born_z" +SCENE_CFG_BORN_Z_FIELD.full_name = ".ftcfg.scene_cfg.born_z" +SCENE_CFG_BORN_Z_FIELD.number = 18 +SCENE_CFG_BORN_Z_FIELD.index = 17 +SCENE_CFG_BORN_Z_FIELD.label = 2 +SCENE_CFG_BORN_Z_FIELD.has_default_value = false +SCENE_CFG_BORN_Z_FIELD.default_value = 0.0 +SCENE_CFG_BORN_Z_FIELD.type = 2 +SCENE_CFG_BORN_Z_FIELD.cpp_type = 6 + +SCENE_CFG_BORN_ROTATION_FIELD.name = "born_rotation" +SCENE_CFG_BORN_ROTATION_FIELD.full_name = ".ftcfg.scene_cfg.born_rotation" +SCENE_CFG_BORN_ROTATION_FIELD.number = 19 +SCENE_CFG_BORN_ROTATION_FIELD.index = 18 +SCENE_CFG_BORN_ROTATION_FIELD.label = 2 +SCENE_CFG_BORN_ROTATION_FIELD.has_default_value = false +SCENE_CFG_BORN_ROTATION_FIELD.default_value = 0.0 +SCENE_CFG_BORN_ROTATION_FIELD.type = 2 +SCENE_CFG_BORN_ROTATION_FIELD.cpp_type = 6 + +SCENE_CFG_GOAL_X_FIELD.name = "goal_x" +SCENE_CFG_GOAL_X_FIELD.full_name = ".ftcfg.scene_cfg.goal_x" +SCENE_CFG_GOAL_X_FIELD.number = 20 +SCENE_CFG_GOAL_X_FIELD.index = 19 +SCENE_CFG_GOAL_X_FIELD.label = 2 +SCENE_CFG_GOAL_X_FIELD.has_default_value = false +SCENE_CFG_GOAL_X_FIELD.default_value = 0.0 +SCENE_CFG_GOAL_X_FIELD.type = 2 +SCENE_CFG_GOAL_X_FIELD.cpp_type = 6 + +SCENE_CFG_GOAL_Y_FIELD.name = "goal_y" +SCENE_CFG_GOAL_Y_FIELD.full_name = ".ftcfg.scene_cfg.goal_y" +SCENE_CFG_GOAL_Y_FIELD.number = 21 +SCENE_CFG_GOAL_Y_FIELD.index = 20 +SCENE_CFG_GOAL_Y_FIELD.label = 2 +SCENE_CFG_GOAL_Y_FIELD.has_default_value = false +SCENE_CFG_GOAL_Y_FIELD.default_value = 0.0 +SCENE_CFG_GOAL_Y_FIELD.type = 2 +SCENE_CFG_GOAL_Y_FIELD.cpp_type = 6 + +SCENE_CFG_GOAL_Z_FIELD.name = "goal_z" +SCENE_CFG_GOAL_Z_FIELD.full_name = ".ftcfg.scene_cfg.goal_z" +SCENE_CFG_GOAL_Z_FIELD.number = 22 +SCENE_CFG_GOAL_Z_FIELD.index = 21 +SCENE_CFG_GOAL_Z_FIELD.label = 2 +SCENE_CFG_GOAL_Z_FIELD.has_default_value = false +SCENE_CFG_GOAL_Z_FIELD.default_value = 0.0 +SCENE_CFG_GOAL_Z_FIELD.type = 2 +SCENE_CFG_GOAL_Z_FIELD.cpp_type = 6 + +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.name = "default_attack_patterm" +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.full_name = ".ftcfg.scene_cfg.default_attack_patterm" +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.number = 23 +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.index = 22 +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.label = 2 +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.has_default_value = false +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.default_value = 0 +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.type = 5 +SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD.cpp_type = 1 + +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.name = "switch_attack_patterm" +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.full_name = ".ftcfg.scene_cfg.switch_attack_patterm" +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.number = 24 +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.index = 23 +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.label = 2 +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.has_default_value = false +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.default_value = 0 +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.type = 5 +SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD.cpp_type = 1 + +SCENE_CFG_CAN_TEAM_CALL_FIELD.name = "can_team_call" +SCENE_CFG_CAN_TEAM_CALL_FIELD.full_name = ".ftcfg.scene_cfg.can_team_call" +SCENE_CFG_CAN_TEAM_CALL_FIELD.number = 25 +SCENE_CFG_CAN_TEAM_CALL_FIELD.index = 24 +SCENE_CFG_CAN_TEAM_CALL_FIELD.label = 2 +SCENE_CFG_CAN_TEAM_CALL_FIELD.has_default_value = false +SCENE_CFG_CAN_TEAM_CALL_FIELD.default_value = 0 +SCENE_CFG_CAN_TEAM_CALL_FIELD.type = 5 +SCENE_CFG_CAN_TEAM_CALL_FIELD.cpp_type = 1 + +SCENE_CFG_IS_BATTLE_FIELD_FIELD.name = "is_battle_field" +SCENE_CFG_IS_BATTLE_FIELD_FIELD.full_name = ".ftcfg.scene_cfg.is_battle_field" +SCENE_CFG_IS_BATTLE_FIELD_FIELD.number = 26 +SCENE_CFG_IS_BATTLE_FIELD_FIELD.index = 25 +SCENE_CFG_IS_BATTLE_FIELD_FIELD.label = 2 +SCENE_CFG_IS_BATTLE_FIELD_FIELD.has_default_value = false +SCENE_CFG_IS_BATTLE_FIELD_FIELD.default_value = 0 +SCENE_CFG_IS_BATTLE_FIELD_FIELD.type = 5 +SCENE_CFG_IS_BATTLE_FIELD_FIELD.cpp_type = 1 + +SCENE_CFG_CAM_OPTIONS_ID_FIELD.name = "cam_options_id" +SCENE_CFG_CAM_OPTIONS_ID_FIELD.full_name = ".ftcfg.scene_cfg.cam_options_id" +SCENE_CFG_CAM_OPTIONS_ID_FIELD.number = 27 +SCENE_CFG_CAM_OPTIONS_ID_FIELD.index = 26 +SCENE_CFG_CAM_OPTIONS_ID_FIELD.label = 2 +SCENE_CFG_CAM_OPTIONS_ID_FIELD.has_default_value = false +SCENE_CFG_CAM_OPTIONS_ID_FIELD.default_value = 0 +SCENE_CFG_CAM_OPTIONS_ID_FIELD.type = 5 +SCENE_CFG_CAM_OPTIONS_ID_FIELD.cpp_type = 1 + +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.name = "can_use_worldmap" +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.full_name = ".ftcfg.scene_cfg.can_use_worldmap" +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.number = 28 +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.index = 27 +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.label = 2 +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.has_default_value = false +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.default_value = 0 +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.type = 5 +SCENE_CFG_CAN_USE_WORLDMAP_FIELD.cpp_type = 1 + +SCENE_CFG.name = "scene_cfg" +SCENE_CFG.full_name = ".ftcfg.scene_cfg" +SCENE_CFG.nested_types = {} +SCENE_CFG.enum_types = {} +SCENE_CFG.fields = {SCENE_CFG_ID_FIELD, SCENE_CFG_NAME_FIELD, SCENE_CFG_MAPID_FIELD, SCENE_CFG_TYPE_FIELD, SCENE_CFG_IS_SAME_SCENE_FIELD, SCENE_CFG_SCENE_ROUTE_FIELD, SCENE_CFG_CAMERA_PATH_RES_FIELD, SCENE_CFG_SCENE_RECAST_FIELD, SCENE_CFG_SCENE_LENGTH_FIELD, SCENE_CFG_SCENE_WIDTH_FIELD, SCENE_CFG_REFRESH_TYPE_FIELD, SCENE_CFG_REFRESH_PARAMETER_FIELD, SCENE_CFG_PARTNER_CARRY_FIELD, SCENE_CFG_SHOW_CG_FIELD, SCENE_CFG_RES_PATH_FIELD, SCENE_CFG_BORN_X_FIELD, SCENE_CFG_BORN_Y_FIELD, SCENE_CFG_BORN_Z_FIELD, SCENE_CFG_BORN_ROTATION_FIELD, SCENE_CFG_GOAL_X_FIELD, SCENE_CFG_GOAL_Y_FIELD, SCENE_CFG_GOAL_Z_FIELD, SCENE_CFG_DEFAULT_ATTACK_PATTERM_FIELD, SCENE_CFG_SWITCH_ATTACK_PATTERM_FIELD, SCENE_CFG_CAN_TEAM_CALL_FIELD, SCENE_CFG_IS_BATTLE_FIELD_FIELD, SCENE_CFG_CAM_OPTIONS_ID_FIELD, SCENE_CFG_CAN_USE_WORLDMAP_FIELD} +SCENE_CFG.is_extendable = false +SCENE_CFG.extensions = {} +SCENE_CFGS_ITEMS_FIELD.name = "items" +SCENE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_cfgs.items" +SCENE_CFGS_ITEMS_FIELD.number = 1 +SCENE_CFGS_ITEMS_FIELD.index = 0 +SCENE_CFGS_ITEMS_FIELD.label = 3 +SCENE_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_CFGS_ITEMS_FIELD.default_value = {} +SCENE_CFGS_ITEMS_FIELD.message_type = SCENE_CFG +SCENE_CFGS_ITEMS_FIELD.type = 11 +SCENE_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_CFGS.name = "scene_cfgs" +SCENE_CFGS.full_name = ".ftcfg.scene_cfgs" +SCENE_CFGS.nested_types = {} +SCENE_CFGS.enum_types = {} +SCENE_CFGS.fields = {SCENE_CFGS_ITEMS_FIELD} +SCENE_CFGS.is_extendable = false +SCENE_CFGS.extensions = {} +SKILL_CFG_ID_FIELD.name = "id" +SKILL_CFG_ID_FIELD.full_name = ".ftcfg.skill_cfg.id" +SKILL_CFG_ID_FIELD.number = 1 +SKILL_CFG_ID_FIELD.index = 0 +SKILL_CFG_ID_FIELD.label = 2 +SKILL_CFG_ID_FIELD.has_default_value = false +SKILL_CFG_ID_FIELD.default_value = 0 +SKILL_CFG_ID_FIELD.type = 5 +SKILL_CFG_ID_FIELD.cpp_type = 1 + +SKILL_CFG_NAME_TIP_FIELD.name = "name_tip" +SKILL_CFG_NAME_TIP_FIELD.full_name = ".ftcfg.skill_cfg.name_tip" +SKILL_CFG_NAME_TIP_FIELD.number = 2 +SKILL_CFG_NAME_TIP_FIELD.index = 1 +SKILL_CFG_NAME_TIP_FIELD.label = 2 +SKILL_CFG_NAME_TIP_FIELD.has_default_value = false +SKILL_CFG_NAME_TIP_FIELD.default_value = "" +SKILL_CFG_NAME_TIP_FIELD.type = 9 +SKILL_CFG_NAME_TIP_FIELD.cpp_type = 9 + +SKILL_CFG_NAME_FIELD.name = "name" +SKILL_CFG_NAME_FIELD.full_name = ".ftcfg.skill_cfg.name" +SKILL_CFG_NAME_FIELD.number = 3 +SKILL_CFG_NAME_FIELD.index = 2 +SKILL_CFG_NAME_FIELD.label = 2 +SKILL_CFG_NAME_FIELD.has_default_value = false +SKILL_CFG_NAME_FIELD.default_value = 0 +SKILL_CFG_NAME_FIELD.type = 5 +SKILL_CFG_NAME_FIELD.cpp_type = 1 + +SKILL_CFG_SKILL_LEVEL_FIELD.name = "skill_level" +SKILL_CFG_SKILL_LEVEL_FIELD.full_name = ".ftcfg.skill_cfg.skill_level" +SKILL_CFG_SKILL_LEVEL_FIELD.number = 4 +SKILL_CFG_SKILL_LEVEL_FIELD.index = 3 +SKILL_CFG_SKILL_LEVEL_FIELD.label = 2 +SKILL_CFG_SKILL_LEVEL_FIELD.has_default_value = false +SKILL_CFG_SKILL_LEVEL_FIELD.default_value = 0 +SKILL_CFG_SKILL_LEVEL_FIELD.type = 5 +SKILL_CFG_SKILL_LEVEL_FIELD.cpp_type = 1 + +SKILL_CFG_PLAYER_LEVEL_FIELD.name = "player_level" +SKILL_CFG_PLAYER_LEVEL_FIELD.full_name = ".ftcfg.skill_cfg.player_level" +SKILL_CFG_PLAYER_LEVEL_FIELD.number = 5 +SKILL_CFG_PLAYER_LEVEL_FIELD.index = 4 +SKILL_CFG_PLAYER_LEVEL_FIELD.label = 2 +SKILL_CFG_PLAYER_LEVEL_FIELD.has_default_value = false +SKILL_CFG_PLAYER_LEVEL_FIELD.default_value = 0 +SKILL_CFG_PLAYER_LEVEL_FIELD.type = 5 +SKILL_CFG_PLAYER_LEVEL_FIELD.cpp_type = 1 + +SKILL_CFG_LEVELUP_COST_FIELD.name = "levelup_cost" +SKILL_CFG_LEVELUP_COST_FIELD.full_name = ".ftcfg.skill_cfg.levelup_cost" +SKILL_CFG_LEVELUP_COST_FIELD.number = 6 +SKILL_CFG_LEVELUP_COST_FIELD.index = 5 +SKILL_CFG_LEVELUP_COST_FIELD.label = 2 +SKILL_CFG_LEVELUP_COST_FIELD.has_default_value = false +SKILL_CFG_LEVELUP_COST_FIELD.default_value = 0 +SKILL_CFG_LEVELUP_COST_FIELD.type = 5 +SKILL_CFG_LEVELUP_COST_FIELD.cpp_type = 1 + +SKILL_CFG_NEXT_LEVEL_ID_FIELD.name = "next_level_id" +SKILL_CFG_NEXT_LEVEL_ID_FIELD.full_name = ".ftcfg.skill_cfg.next_level_id" +SKILL_CFG_NEXT_LEVEL_ID_FIELD.number = 7 +SKILL_CFG_NEXT_LEVEL_ID_FIELD.index = 6 +SKILL_CFG_NEXT_LEVEL_ID_FIELD.label = 2 +SKILL_CFG_NEXT_LEVEL_ID_FIELD.has_default_value = false +SKILL_CFG_NEXT_LEVEL_ID_FIELD.default_value = 0 +SKILL_CFG_NEXT_LEVEL_ID_FIELD.type = 5 +SKILL_CFG_NEXT_LEVEL_ID_FIELD.cpp_type = 1 + +SKILL_CFG_SKILL_ICON_FIELD.name = "skill_icon" +SKILL_CFG_SKILL_ICON_FIELD.full_name = ".ftcfg.skill_cfg.skill_icon" +SKILL_CFG_SKILL_ICON_FIELD.number = 8 +SKILL_CFG_SKILL_ICON_FIELD.index = 7 +SKILL_CFG_SKILL_ICON_FIELD.label = 2 +SKILL_CFG_SKILL_ICON_FIELD.has_default_value = false +SKILL_CFG_SKILL_ICON_FIELD.default_value = 0 +SKILL_CFG_SKILL_ICON_FIELD.type = 5 +SKILL_CFG_SKILL_ICON_FIELD.cpp_type = 1 + +SKILL_CFG_SKILL_PROF_FIELD.name = "skill_prof" +SKILL_CFG_SKILL_PROF_FIELD.full_name = ".ftcfg.skill_cfg.skill_prof" +SKILL_CFG_SKILL_PROF_FIELD.number = 9 +SKILL_CFG_SKILL_PROF_FIELD.index = 8 +SKILL_CFG_SKILL_PROF_FIELD.label = 2 +SKILL_CFG_SKILL_PROF_FIELD.has_default_value = false +SKILL_CFG_SKILL_PROF_FIELD.default_value = 0 +SKILL_CFG_SKILL_PROF_FIELD.type = 5 +SKILL_CFG_SKILL_PROF_FIELD.cpp_type = 1 + +SKILL_CFG_TIPS2_FIELD.name = "tips2" +SKILL_CFG_TIPS2_FIELD.full_name = ".ftcfg.skill_cfg.tips2" +SKILL_CFG_TIPS2_FIELD.number = 10 +SKILL_CFG_TIPS2_FIELD.index = 9 +SKILL_CFG_TIPS2_FIELD.label = 2 +SKILL_CFG_TIPS2_FIELD.has_default_value = false +SKILL_CFG_TIPS2_FIELD.default_value = 0 +SKILL_CFG_TIPS2_FIELD.type = 5 +SKILL_CFG_TIPS2_FIELD.cpp_type = 1 + +SKILL_CFG_TIPS_FIELD.name = "tips" +SKILL_CFG_TIPS_FIELD.full_name = ".ftcfg.skill_cfg.tips" +SKILL_CFG_TIPS_FIELD.number = 11 +SKILL_CFG_TIPS_FIELD.index = 10 +SKILL_CFG_TIPS_FIELD.label = 2 +SKILL_CFG_TIPS_FIELD.has_default_value = false +SKILL_CFG_TIPS_FIELD.default_value = 0 +SKILL_CFG_TIPS_FIELD.type = 5 +SKILL_CFG_TIPS_FIELD.cpp_type = 1 + +SKILL_CFG_TIPS3_FIELD.name = "tips3" +SKILL_CFG_TIPS3_FIELD.full_name = ".ftcfg.skill_cfg.tips3" +SKILL_CFG_TIPS3_FIELD.number = 12 +SKILL_CFG_TIPS3_FIELD.index = 11 +SKILL_CFG_TIPS3_FIELD.label = 2 +SKILL_CFG_TIPS3_FIELD.has_default_value = false +SKILL_CFG_TIPS3_FIELD.default_value = 0 +SKILL_CFG_TIPS3_FIELD.type = 5 +SKILL_CFG_TIPS3_FIELD.cpp_type = 1 + +SKILL_CFG_TIPS_PARA1_FIELD.name = "tips_para1" +SKILL_CFG_TIPS_PARA1_FIELD.full_name = ".ftcfg.skill_cfg.tips_para1" +SKILL_CFG_TIPS_PARA1_FIELD.number = 13 +SKILL_CFG_TIPS_PARA1_FIELD.index = 12 +SKILL_CFG_TIPS_PARA1_FIELD.label = 2 +SKILL_CFG_TIPS_PARA1_FIELD.has_default_value = false +SKILL_CFG_TIPS_PARA1_FIELD.default_value = 0.0 +SKILL_CFG_TIPS_PARA1_FIELD.type = 2 +SKILL_CFG_TIPS_PARA1_FIELD.cpp_type = 6 + +SKILL_CFG_TIPS_PARA2_FIELD.name = "tips_para2" +SKILL_CFG_TIPS_PARA2_FIELD.full_name = ".ftcfg.skill_cfg.tips_para2" +SKILL_CFG_TIPS_PARA2_FIELD.number = 14 +SKILL_CFG_TIPS_PARA2_FIELD.index = 13 +SKILL_CFG_TIPS_PARA2_FIELD.label = 2 +SKILL_CFG_TIPS_PARA2_FIELD.has_default_value = false +SKILL_CFG_TIPS_PARA2_FIELD.default_value = 0.0 +SKILL_CFG_TIPS_PARA2_FIELD.type = 2 +SKILL_CFG_TIPS_PARA2_FIELD.cpp_type = 6 + +SKILL_CFG_TIPS_PARA3_FIELD.name = "tips_para3" +SKILL_CFG_TIPS_PARA3_FIELD.full_name = ".ftcfg.skill_cfg.tips_para3" +SKILL_CFG_TIPS_PARA3_FIELD.number = 15 +SKILL_CFG_TIPS_PARA3_FIELD.index = 14 +SKILL_CFG_TIPS_PARA3_FIELD.label = 2 +SKILL_CFG_TIPS_PARA3_FIELD.has_default_value = false +SKILL_CFG_TIPS_PARA3_FIELD.default_value = 0.0 +SKILL_CFG_TIPS_PARA3_FIELD.type = 2 +SKILL_CFG_TIPS_PARA3_FIELD.cpp_type = 6 + +SKILL_CFG_TIPS_PARA4_FIELD.name = "tips_para4" +SKILL_CFG_TIPS_PARA4_FIELD.full_name = ".ftcfg.skill_cfg.tips_para4" +SKILL_CFG_TIPS_PARA4_FIELD.number = 16 +SKILL_CFG_TIPS_PARA4_FIELD.index = 15 +SKILL_CFG_TIPS_PARA4_FIELD.label = 2 +SKILL_CFG_TIPS_PARA4_FIELD.has_default_value = false +SKILL_CFG_TIPS_PARA4_FIELD.default_value = 0.0 +SKILL_CFG_TIPS_PARA4_FIELD.type = 2 +SKILL_CFG_TIPS_PARA4_FIELD.cpp_type = 6 + +SKILL_CFG_TIPS_PARA5_FIELD.name = "tips_para5" +SKILL_CFG_TIPS_PARA5_FIELD.full_name = ".ftcfg.skill_cfg.tips_para5" +SKILL_CFG_TIPS_PARA5_FIELD.number = 17 +SKILL_CFG_TIPS_PARA5_FIELD.index = 16 +SKILL_CFG_TIPS_PARA5_FIELD.label = 2 +SKILL_CFG_TIPS_PARA5_FIELD.has_default_value = false +SKILL_CFG_TIPS_PARA5_FIELD.default_value = 0.0 +SKILL_CFG_TIPS_PARA5_FIELD.type = 2 +SKILL_CFG_TIPS_PARA5_FIELD.cpp_type = 6 + +SKILL_CFG_TIPS_PARA6_FIELD.name = "tips_para6" +SKILL_CFG_TIPS_PARA6_FIELD.full_name = ".ftcfg.skill_cfg.tips_para6" +SKILL_CFG_TIPS_PARA6_FIELD.number = 18 +SKILL_CFG_TIPS_PARA6_FIELD.index = 17 +SKILL_CFG_TIPS_PARA6_FIELD.label = 2 +SKILL_CFG_TIPS_PARA6_FIELD.has_default_value = false +SKILL_CFG_TIPS_PARA6_FIELD.default_value = 0.0 +SKILL_CFG_TIPS_PARA6_FIELD.type = 2 +SKILL_CFG_TIPS_PARA6_FIELD.cpp_type = 6 + +SKILL_CFG_NEXT_SKILL_FIELD.name = "next_skill" +SKILL_CFG_NEXT_SKILL_FIELD.full_name = ".ftcfg.skill_cfg.next_skill" +SKILL_CFG_NEXT_SKILL_FIELD.number = 19 +SKILL_CFG_NEXT_SKILL_FIELD.index = 18 +SKILL_CFG_NEXT_SKILL_FIELD.label = 2 +SKILL_CFG_NEXT_SKILL_FIELD.has_default_value = false +SKILL_CFG_NEXT_SKILL_FIELD.default_value = 0 +SKILL_CFG_NEXT_SKILL_FIELD.type = 5 +SKILL_CFG_NEXT_SKILL_FIELD.cpp_type = 1 + +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.name = "next_change_skill" +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.full_name = ".ftcfg.skill_cfg.next_change_skill" +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.number = 20 +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.index = 19 +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.label = 2 +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.has_default_value = false +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.default_value = 0 +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.type = 5 +SKILL_CFG_NEXT_CHANGE_SKILL_FIELD.cpp_type = 1 + +SKILL_CFG_AUTO_SKILL_FIELD.name = "auto_skill" +SKILL_CFG_AUTO_SKILL_FIELD.full_name = ".ftcfg.skill_cfg.auto_skill" +SKILL_CFG_AUTO_SKILL_FIELD.number = 21 +SKILL_CFG_AUTO_SKILL_FIELD.index = 20 +SKILL_CFG_AUTO_SKILL_FIELD.label = 2 +SKILL_CFG_AUTO_SKILL_FIELD.has_default_value = false +SKILL_CFG_AUTO_SKILL_FIELD.default_value = false +SKILL_CFG_AUTO_SKILL_FIELD.type = 8 +SKILL_CFG_AUTO_SKILL_FIELD.cpp_type = 7 + +SKILL_CFG_NEXT_SKILL_TIME_FIELD.name = "next_skill_time" +SKILL_CFG_NEXT_SKILL_TIME_FIELD.full_name = ".ftcfg.skill_cfg.next_skill_time" +SKILL_CFG_NEXT_SKILL_TIME_FIELD.number = 22 +SKILL_CFG_NEXT_SKILL_TIME_FIELD.index = 21 +SKILL_CFG_NEXT_SKILL_TIME_FIELD.label = 2 +SKILL_CFG_NEXT_SKILL_TIME_FIELD.has_default_value = false +SKILL_CFG_NEXT_SKILL_TIME_FIELD.default_value = 0 +SKILL_CFG_NEXT_SKILL_TIME_FIELD.type = 5 +SKILL_CFG_NEXT_SKILL_TIME_FIELD.cpp_type = 1 + +SKILL_CFG_SKILL_TYPE_FIELD.name = "skill_type" +SKILL_CFG_SKILL_TYPE_FIELD.full_name = ".ftcfg.skill_cfg.skill_type" +SKILL_CFG_SKILL_TYPE_FIELD.number = 23 +SKILL_CFG_SKILL_TYPE_FIELD.index = 22 +SKILL_CFG_SKILL_TYPE_FIELD.label = 2 +SKILL_CFG_SKILL_TYPE_FIELD.has_default_value = false +SKILL_CFG_SKILL_TYPE_FIELD.default_value = nil +SKILL_CFG_SKILL_TYPE_FIELD.enum_type = config_predefine_pb.ESKILLTYPE +SKILL_CFG_SKILL_TYPE_FIELD.type = 14 +SKILL_CFG_SKILL_TYPE_FIELD.cpp_type = 8 + +SKILL_CFG_ENERGY_COST_TYPE_FIELD.name = "energy_cost_type" +SKILL_CFG_ENERGY_COST_TYPE_FIELD.full_name = ".ftcfg.skill_cfg.energy_cost_type" +SKILL_CFG_ENERGY_COST_TYPE_FIELD.number = 24 +SKILL_CFG_ENERGY_COST_TYPE_FIELD.index = 23 +SKILL_CFG_ENERGY_COST_TYPE_FIELD.label = 2 +SKILL_CFG_ENERGY_COST_TYPE_FIELD.has_default_value = false +SKILL_CFG_ENERGY_COST_TYPE_FIELD.default_value = nil +SKILL_CFG_ENERGY_COST_TYPE_FIELD.enum_type = config_predefine_pb.ESKILLCOSTTYPE +SKILL_CFG_ENERGY_COST_TYPE_FIELD.type = 14 +SKILL_CFG_ENERGY_COST_TYPE_FIELD.cpp_type = 8 + +SKILL_CFG_ENERGY_VALUE_FIELD.name = "energy_value" +SKILL_CFG_ENERGY_VALUE_FIELD.full_name = ".ftcfg.skill_cfg.energy_value" +SKILL_CFG_ENERGY_VALUE_FIELD.number = 25 +SKILL_CFG_ENERGY_VALUE_FIELD.index = 24 +SKILL_CFG_ENERGY_VALUE_FIELD.label = 2 +SKILL_CFG_ENERGY_VALUE_FIELD.has_default_value = false +SKILL_CFG_ENERGY_VALUE_FIELD.default_value = 0 +SKILL_CFG_ENERGY_VALUE_FIELD.type = 5 +SKILL_CFG_ENERGY_VALUE_FIELD.cpp_type = 1 + +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.name = "max_energy_value" +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.full_name = ".ftcfg.skill_cfg.max_energy_value" +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.number = 26 +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.index = 25 +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.label = 2 +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.has_default_value = false +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.default_value = 0 +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.type = 5 +SKILL_CFG_MAX_ENERGY_VALUE_FIELD.cpp_type = 1 + +SKILL_CFG_RET_ENERGY_VALUE_FIELD.name = "ret_energy_value" +SKILL_CFG_RET_ENERGY_VALUE_FIELD.full_name = ".ftcfg.skill_cfg.ret_energy_value" +SKILL_CFG_RET_ENERGY_VALUE_FIELD.number = 27 +SKILL_CFG_RET_ENERGY_VALUE_FIELD.index = 26 +SKILL_CFG_RET_ENERGY_VALUE_FIELD.label = 2 +SKILL_CFG_RET_ENERGY_VALUE_FIELD.has_default_value = false +SKILL_CFG_RET_ENERGY_VALUE_FIELD.default_value = 0 +SKILL_CFG_RET_ENERGY_VALUE_FIELD.type = 5 +SKILL_CFG_RET_ENERGY_VALUE_FIELD.cpp_type = 1 + +SKILL_CFG_RET_HP_EFFECT_FIELD.name = "ret_hp_effect" +SKILL_CFG_RET_HP_EFFECT_FIELD.full_name = ".ftcfg.skill_cfg.ret_hp_effect" +SKILL_CFG_RET_HP_EFFECT_FIELD.number = 28 +SKILL_CFG_RET_HP_EFFECT_FIELD.index = 27 +SKILL_CFG_RET_HP_EFFECT_FIELD.label = 2 +SKILL_CFG_RET_HP_EFFECT_FIELD.has_default_value = false +SKILL_CFG_RET_HP_EFFECT_FIELD.default_value = 0 +SKILL_CFG_RET_HP_EFFECT_FIELD.type = 5 +SKILL_CFG_RET_HP_EFFECT_FIELD.cpp_type = 1 + +SKILL_CFG_SHOW_PROGRESS_FIELD.name = "show_progress" +SKILL_CFG_SHOW_PROGRESS_FIELD.full_name = ".ftcfg.skill_cfg.show_progress" +SKILL_CFG_SHOW_PROGRESS_FIELD.number = 29 +SKILL_CFG_SHOW_PROGRESS_FIELD.index = 28 +SKILL_CFG_SHOW_PROGRESS_FIELD.label = 2 +SKILL_CFG_SHOW_PROGRESS_FIELD.has_default_value = false +SKILL_CFG_SHOW_PROGRESS_FIELD.default_value = 0 +SKILL_CFG_SHOW_PROGRESS_FIELD.type = 5 +SKILL_CFG_SHOW_PROGRESS_FIELD.cpp_type = 1 + +SKILL_CFG_PROGRESS_WORD_FIELD.name = "progress_word" +SKILL_CFG_PROGRESS_WORD_FIELD.full_name = ".ftcfg.skill_cfg.progress_word" +SKILL_CFG_PROGRESS_WORD_FIELD.number = 30 +SKILL_CFG_PROGRESS_WORD_FIELD.index = 29 +SKILL_CFG_PROGRESS_WORD_FIELD.label = 2 +SKILL_CFG_PROGRESS_WORD_FIELD.has_default_value = false +SKILL_CFG_PROGRESS_WORD_FIELD.default_value = 0 +SKILL_CFG_PROGRESS_WORD_FIELD.type = 5 +SKILL_CFG_PROGRESS_WORD_FIELD.cpp_type = 1 + +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.name = "is_trigger_passive" +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.full_name = ".ftcfg.skill_cfg.is_trigger_passive" +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.number = 31 +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.index = 30 +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.label = 2 +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.has_default_value = false +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.default_value = false +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.type = 8 +SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD.cpp_type = 7 + +SKILL_CFG_IS_PASSIVE_FIELD.name = "is_passive" +SKILL_CFG_IS_PASSIVE_FIELD.full_name = ".ftcfg.skill_cfg.is_passive" +SKILL_CFG_IS_PASSIVE_FIELD.number = 32 +SKILL_CFG_IS_PASSIVE_FIELD.index = 31 +SKILL_CFG_IS_PASSIVE_FIELD.label = 2 +SKILL_CFG_IS_PASSIVE_FIELD.has_default_value = false +SKILL_CFG_IS_PASSIVE_FIELD.default_value = false +SKILL_CFG_IS_PASSIVE_FIELD.type = 8 +SKILL_CFG_IS_PASSIVE_FIELD.cpp_type = 7 + +SKILL_CFG_TRIGGER_TYPE_FIELD.name = "trigger_type" +SKILL_CFG_TRIGGER_TYPE_FIELD.full_name = ".ftcfg.skill_cfg.trigger_type" +SKILL_CFG_TRIGGER_TYPE_FIELD.number = 33 +SKILL_CFG_TRIGGER_TYPE_FIELD.index = 32 +SKILL_CFG_TRIGGER_TYPE_FIELD.label = 2 +SKILL_CFG_TRIGGER_TYPE_FIELD.has_default_value = false +SKILL_CFG_TRIGGER_TYPE_FIELD.default_value = nil +SKILL_CFG_TRIGGER_TYPE_FIELD.enum_type = config_predefine_pb.EBATTLEEVENTTYPE +SKILL_CFG_TRIGGER_TYPE_FIELD.type = 14 +SKILL_CFG_TRIGGER_TYPE_FIELD.cpp_type = 8 + +SKILL_CFG_ACCELERATE_FIELD.name = "accelerate" +SKILL_CFG_ACCELERATE_FIELD.full_name = ".ftcfg.skill_cfg.accelerate" +SKILL_CFG_ACCELERATE_FIELD.number = 34 +SKILL_CFG_ACCELERATE_FIELD.index = 33 +SKILL_CFG_ACCELERATE_FIELD.label = 2 +SKILL_CFG_ACCELERATE_FIELD.has_default_value = false +SKILL_CFG_ACCELERATE_FIELD.default_value = false +SKILL_CFG_ACCELERATE_FIELD.type = 8 +SKILL_CFG_ACCELERATE_FIELD.cpp_type = 7 + +SKILL_CFG_IS_CONCURRENCY_FIELD.name = "is_concurrency" +SKILL_CFG_IS_CONCURRENCY_FIELD.full_name = ".ftcfg.skill_cfg.is_concurrency" +SKILL_CFG_IS_CONCURRENCY_FIELD.number = 35 +SKILL_CFG_IS_CONCURRENCY_FIELD.index = 34 +SKILL_CFG_IS_CONCURRENCY_FIELD.label = 2 +SKILL_CFG_IS_CONCURRENCY_FIELD.has_default_value = false +SKILL_CFG_IS_CONCURRENCY_FIELD.default_value = false +SKILL_CFG_IS_CONCURRENCY_FIELD.type = 8 +SKILL_CFG_IS_CONCURRENCY_FIELD.cpp_type = 7 + +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.name = "int_channel_when_beaten" +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.full_name = ".ftcfg.skill_cfg.int_channel_when_beaten" +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.number = 36 +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.index = 35 +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.label = 2 +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.has_default_value = false +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.default_value = false +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.type = 8 +SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD.cpp_type = 7 + +SKILL_CFG_IS_CHANNEL_FIELD.name = "is_channel" +SKILL_CFG_IS_CHANNEL_FIELD.full_name = ".ftcfg.skill_cfg.is_channel" +SKILL_CFG_IS_CHANNEL_FIELD.number = 37 +SKILL_CFG_IS_CHANNEL_FIELD.index = 36 +SKILL_CFG_IS_CHANNEL_FIELD.label = 2 +SKILL_CFG_IS_CHANNEL_FIELD.has_default_value = false +SKILL_CFG_IS_CHANNEL_FIELD.default_value = false +SKILL_CFG_IS_CHANNEL_FIELD.type = 8 +SKILL_CFG_IS_CHANNEL_FIELD.cpp_type = 7 + +SKILL_CFG_CHANNEL_TIME_FIELD.name = "channel_time" +SKILL_CFG_CHANNEL_TIME_FIELD.full_name = ".ftcfg.skill_cfg.channel_time" +SKILL_CFG_CHANNEL_TIME_FIELD.number = 38 +SKILL_CFG_CHANNEL_TIME_FIELD.index = 37 +SKILL_CFG_CHANNEL_TIME_FIELD.label = 2 +SKILL_CFG_CHANNEL_TIME_FIELD.has_default_value = false +SKILL_CFG_CHANNEL_TIME_FIELD.default_value = 0 +SKILL_CFG_CHANNEL_TIME_FIELD.type = 5 +SKILL_CFG_CHANNEL_TIME_FIELD.cpp_type = 1 + +SKILL_CFG_CAN_CANCEL_FIELD.name = "can_cancel" +SKILL_CFG_CAN_CANCEL_FIELD.full_name = ".ftcfg.skill_cfg.can_cancel" +SKILL_CFG_CAN_CANCEL_FIELD.number = 39 +SKILL_CFG_CAN_CANCEL_FIELD.index = 38 +SKILL_CFG_CAN_CANCEL_FIELD.label = 2 +SKILL_CFG_CAN_CANCEL_FIELD.has_default_value = false +SKILL_CFG_CAN_CANCEL_FIELD.default_value = false +SKILL_CFG_CAN_CANCEL_FIELD.type = 8 +SKILL_CFG_CAN_CANCEL_FIELD.cpp_type = 7 + +SKILL_CFG_BASE_POS_FIELD.name = "base_pos" +SKILL_CFG_BASE_POS_FIELD.full_name = ".ftcfg.skill_cfg.base_pos" +SKILL_CFG_BASE_POS_FIELD.number = 40 +SKILL_CFG_BASE_POS_FIELD.index = 39 +SKILL_CFG_BASE_POS_FIELD.label = 2 +SKILL_CFG_BASE_POS_FIELD.has_default_value = false +SKILL_CFG_BASE_POS_FIELD.default_value = nil +SKILL_CFG_BASE_POS_FIELD.enum_type = config_predefine_pb.EBASEAREATYPE +SKILL_CFG_BASE_POS_FIELD.type = 14 +SKILL_CFG_BASE_POS_FIELD.cpp_type = 8 + +SKILL_CFG_TARGET_TYPE_FIELD.name = "target_type" +SKILL_CFG_TARGET_TYPE_FIELD.full_name = ".ftcfg.skill_cfg.target_type" +SKILL_CFG_TARGET_TYPE_FIELD.number = 41 +SKILL_CFG_TARGET_TYPE_FIELD.index = 40 +SKILL_CFG_TARGET_TYPE_FIELD.label = 2 +SKILL_CFG_TARGET_TYPE_FIELD.has_default_value = false +SKILL_CFG_TARGET_TYPE_FIELD.default_value = 0 +SKILL_CFG_TARGET_TYPE_FIELD.type = 5 +SKILL_CFG_TARGET_TYPE_FIELD.cpp_type = 1 + +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.name = "remove_buff_when_cancel" +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.full_name = ".ftcfg.skill_cfg.remove_buff_when_cancel" +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.number = 42 +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.index = 41 +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.label = 2 +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.has_default_value = false +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.default_value = false +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.type = 8 +SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD.cpp_type = 7 + +SKILL_CFG_WORK_WHEN_FIELD.name = "work_when" +SKILL_CFG_WORK_WHEN_FIELD.full_name = ".ftcfg.skill_cfg.work_when" +SKILL_CFG_WORK_WHEN_FIELD.number = 43 +SKILL_CFG_WORK_WHEN_FIELD.index = 42 +SKILL_CFG_WORK_WHEN_FIELD.label = 2 +SKILL_CFG_WORK_WHEN_FIELD.has_default_value = false +SKILL_CFG_WORK_WHEN_FIELD.default_value = 0 +SKILL_CFG_WORK_WHEN_FIELD.type = 5 +SKILL_CFG_WORK_WHEN_FIELD.cpp_type = 1 + +SKILL_CFG_CD_GROUP_ID_FIELD.name = "cd_group_id" +SKILL_CFG_CD_GROUP_ID_FIELD.full_name = ".ftcfg.skill_cfg.cd_group_id" +SKILL_CFG_CD_GROUP_ID_FIELD.number = 44 +SKILL_CFG_CD_GROUP_ID_FIELD.index = 43 +SKILL_CFG_CD_GROUP_ID_FIELD.label = 2 +SKILL_CFG_CD_GROUP_ID_FIELD.has_default_value = false +SKILL_CFG_CD_GROUP_ID_FIELD.default_value = 0 +SKILL_CFG_CD_GROUP_ID_FIELD.type = 5 +SKILL_CFG_CD_GROUP_ID_FIELD.cpp_type = 1 + +SKILL_CFG_CD_TIME_FIELD.name = "cd_time" +SKILL_CFG_CD_TIME_FIELD.full_name = ".ftcfg.skill_cfg.cd_time" +SKILL_CFG_CD_TIME_FIELD.number = 45 +SKILL_CFG_CD_TIME_FIELD.index = 44 +SKILL_CFG_CD_TIME_FIELD.label = 2 +SKILL_CFG_CD_TIME_FIELD.has_default_value = false +SKILL_CFG_CD_TIME_FIELD.default_value = 0.0 +SKILL_CFG_CD_TIME_FIELD.type = 2 +SKILL_CFG_CD_TIME_FIELD.cpp_type = 6 + +SKILL_CFG_CD_NUM_FIELD.name = "cd_num" +SKILL_CFG_CD_NUM_FIELD.full_name = ".ftcfg.skill_cfg.cd_num" +SKILL_CFG_CD_NUM_FIELD.number = 46 +SKILL_CFG_CD_NUM_FIELD.index = 45 +SKILL_CFG_CD_NUM_FIELD.label = 2 +SKILL_CFG_CD_NUM_FIELD.has_default_value = false +SKILL_CFG_CD_NUM_FIELD.default_value = 0 +SKILL_CFG_CD_NUM_FIELD.type = 5 +SKILL_CFG_CD_NUM_FIELD.cpp_type = 1 + +SKILL_CFG_CAST_DISTANCE_FIELD.name = "cast_distance" +SKILL_CFG_CAST_DISTANCE_FIELD.full_name = ".ftcfg.skill_cfg.cast_distance" +SKILL_CFG_CAST_DISTANCE_FIELD.number = 47 +SKILL_CFG_CAST_DISTANCE_FIELD.index = 46 +SKILL_CFG_CAST_DISTANCE_FIELD.label = 2 +SKILL_CFG_CAST_DISTANCE_FIELD.has_default_value = false +SKILL_CFG_CAST_DISTANCE_FIELD.default_value = 0.0 +SKILL_CFG_CAST_DISTANCE_FIELD.type = 2 +SKILL_CFG_CAST_DISTANCE_FIELD.cpp_type = 6 + +SKILL_CFG_LOCKED_BY_SERVER_FIELD.name = "locked_by_server" +SKILL_CFG_LOCKED_BY_SERVER_FIELD.full_name = ".ftcfg.skill_cfg.locked_by_server" +SKILL_CFG_LOCKED_BY_SERVER_FIELD.number = 48 +SKILL_CFG_LOCKED_BY_SERVER_FIELD.index = 47 +SKILL_CFG_LOCKED_BY_SERVER_FIELD.label = 2 +SKILL_CFG_LOCKED_BY_SERVER_FIELD.has_default_value = false +SKILL_CFG_LOCKED_BY_SERVER_FIELD.default_value = false +SKILL_CFG_LOCKED_BY_SERVER_FIELD.type = 8 +SKILL_CFG_LOCKED_BY_SERVER_FIELD.cpp_type = 7 + +SKILL_CFG_RANGE_TYPE_FIELD.name = "range_type" +SKILL_CFG_RANGE_TYPE_FIELD.full_name = ".ftcfg.skill_cfg.range_type" +SKILL_CFG_RANGE_TYPE_FIELD.number = 49 +SKILL_CFG_RANGE_TYPE_FIELD.index = 48 +SKILL_CFG_RANGE_TYPE_FIELD.label = 2 +SKILL_CFG_RANGE_TYPE_FIELD.has_default_value = false +SKILL_CFG_RANGE_TYPE_FIELD.default_value = nil +SKILL_CFG_RANGE_TYPE_FIELD.enum_type = config_predefine_pb.EAREATYPE +SKILL_CFG_RANGE_TYPE_FIELD.type = 14 +SKILL_CFG_RANGE_TYPE_FIELD.cpp_type = 8 + +SKILL_CFG_RANGE_PARA1_FIELD.name = "range_para1" +SKILL_CFG_RANGE_PARA1_FIELD.full_name = ".ftcfg.skill_cfg.range_para1" +SKILL_CFG_RANGE_PARA1_FIELD.number = 50 +SKILL_CFG_RANGE_PARA1_FIELD.index = 49 +SKILL_CFG_RANGE_PARA1_FIELD.label = 2 +SKILL_CFG_RANGE_PARA1_FIELD.has_default_value = false +SKILL_CFG_RANGE_PARA1_FIELD.default_value = 0.0 +SKILL_CFG_RANGE_PARA1_FIELD.type = 2 +SKILL_CFG_RANGE_PARA1_FIELD.cpp_type = 6 + +SKILL_CFG_RANGE_PARA2_FIELD.name = "range_para2" +SKILL_CFG_RANGE_PARA2_FIELD.full_name = ".ftcfg.skill_cfg.range_para2" +SKILL_CFG_RANGE_PARA2_FIELD.number = 51 +SKILL_CFG_RANGE_PARA2_FIELD.index = 50 +SKILL_CFG_RANGE_PARA2_FIELD.label = 2 +SKILL_CFG_RANGE_PARA2_FIELD.has_default_value = false +SKILL_CFG_RANGE_PARA2_FIELD.default_value = 0.0 +SKILL_CFG_RANGE_PARA2_FIELD.type = 2 +SKILL_CFG_RANGE_PARA2_FIELD.cpp_type = 6 + +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.name = "lock_target_distance" +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.full_name = ".ftcfg.skill_cfg.lock_target_distance" +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.number = 52 +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.index = 51 +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.label = 2 +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.has_default_value = false +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.default_value = 0.0 +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.type = 2 +SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD.cpp_type = 6 + +SKILL_CFG_LOCK_MAX_COUNT_FIELD.name = "lock_max_count" +SKILL_CFG_LOCK_MAX_COUNT_FIELD.full_name = ".ftcfg.skill_cfg.lock_max_count" +SKILL_CFG_LOCK_MAX_COUNT_FIELD.number = 53 +SKILL_CFG_LOCK_MAX_COUNT_FIELD.index = 52 +SKILL_CFG_LOCK_MAX_COUNT_FIELD.label = 2 +SKILL_CFG_LOCK_MAX_COUNT_FIELD.has_default_value = false +SKILL_CFG_LOCK_MAX_COUNT_FIELD.default_value = 0 +SKILL_CFG_LOCK_MAX_COUNT_FIELD.type = 5 +SKILL_CFG_LOCK_MAX_COUNT_FIELD.cpp_type = 1 + +SKILL_CFG_CAST_SWING_TIME_FIELD.name = "cast_swing_time" +SKILL_CFG_CAST_SWING_TIME_FIELD.full_name = ".ftcfg.skill_cfg.cast_swing_time" +SKILL_CFG_CAST_SWING_TIME_FIELD.number = 54 +SKILL_CFG_CAST_SWING_TIME_FIELD.index = 53 +SKILL_CFG_CAST_SWING_TIME_FIELD.label = 2 +SKILL_CFG_CAST_SWING_TIME_FIELD.has_default_value = false +SKILL_CFG_CAST_SWING_TIME_FIELD.default_value = 0 +SKILL_CFG_CAST_SWING_TIME_FIELD.type = 5 +SKILL_CFG_CAST_SWING_TIME_FIELD.cpp_type = 1 + +SKILL_CFG_CAST_STIFF_TIME_FIELD.name = "cast_stiff_time" +SKILL_CFG_CAST_STIFF_TIME_FIELD.full_name = ".ftcfg.skill_cfg.cast_stiff_time" +SKILL_CFG_CAST_STIFF_TIME_FIELD.number = 55 +SKILL_CFG_CAST_STIFF_TIME_FIELD.index = 54 +SKILL_CFG_CAST_STIFF_TIME_FIELD.label = 2 +SKILL_CFG_CAST_STIFF_TIME_FIELD.has_default_value = false +SKILL_CFG_CAST_STIFF_TIME_FIELD.default_value = 0 +SKILL_CFG_CAST_STIFF_TIME_FIELD.type = 5 +SKILL_CFG_CAST_STIFF_TIME_FIELD.cpp_type = 1 + +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.name = "cast_back_swing_time" +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.full_name = ".ftcfg.skill_cfg.cast_back_swing_time" +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.number = 56 +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.index = 55 +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.label = 2 +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.has_default_value = false +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.default_value = 0 +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.type = 5 +SKILL_CFG_CAST_BACK_SWING_TIME_FIELD.cpp_type = 1 + +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.name = "magic_performance_id" +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.full_name = ".ftcfg.skill_cfg.magic_performance_id" +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.number = 57 +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.index = 56 +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.label = 2 +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.has_default_value = false +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.default_value = "" +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.type = 9 +SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD.cpp_type = 9 + +SKILL_CFG_HIT_EFFECT_FIELD.name = "hit_effect" +SKILL_CFG_HIT_EFFECT_FIELD.full_name = ".ftcfg.skill_cfg.hit_effect" +SKILL_CFG_HIT_EFFECT_FIELD.number = 58 +SKILL_CFG_HIT_EFFECT_FIELD.index = 57 +SKILL_CFG_HIT_EFFECT_FIELD.label = 2 +SKILL_CFG_HIT_EFFECT_FIELD.has_default_value = false +SKILL_CFG_HIT_EFFECT_FIELD.default_value = "" +SKILL_CFG_HIT_EFFECT_FIELD.type = 9 +SKILL_CFG_HIT_EFFECT_FIELD.cpp_type = 9 + +SKILL_CFG_HIT_EFFECT_TIME_FIELD.name = "hit_effect_time" +SKILL_CFG_HIT_EFFECT_TIME_FIELD.full_name = ".ftcfg.skill_cfg.hit_effect_time" +SKILL_CFG_HIT_EFFECT_TIME_FIELD.number = 59 +SKILL_CFG_HIT_EFFECT_TIME_FIELD.index = 58 +SKILL_CFG_HIT_EFFECT_TIME_FIELD.label = 2 +SKILL_CFG_HIT_EFFECT_TIME_FIELD.has_default_value = false +SKILL_CFG_HIT_EFFECT_TIME_FIELD.default_value = 0 +SKILL_CFG_HIT_EFFECT_TIME_FIELD.type = 5 +SKILL_CFG_HIT_EFFECT_TIME_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE1_FIELD.name = "move_type1" +SKILL_CFG_MOVE_TYPE1_FIELD.full_name = ".ftcfg.skill_cfg.move_type1" +SKILL_CFG_MOVE_TYPE1_FIELD.number = 60 +SKILL_CFG_MOVE_TYPE1_FIELD.index = 59 +SKILL_CFG_MOVE_TYPE1_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE1_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE1_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE1_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE1_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT1_FIELD.name = "move_point1" +SKILL_CFG_MOVE_POINT1_FIELD.full_name = ".ftcfg.skill_cfg.move_point1" +SKILL_CFG_MOVE_POINT1_FIELD.number = 61 +SKILL_CFG_MOVE_POINT1_FIELD.index = 60 +SKILL_CFG_MOVE_POINT1_FIELD.label = 2 +SKILL_CFG_MOVE_POINT1_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT1_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT1_FIELD.type = 5 +SKILL_CFG_MOVE_POINT1_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE1_FIELD.name = "adjust_distance1" +SKILL_CFG_ADJUST_DISTANCE1_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance1" +SKILL_CFG_ADJUST_DISTANCE1_FIELD.number = 62 +SKILL_CFG_ADJUST_DISTANCE1_FIELD.index = 61 +SKILL_CFG_ADJUST_DISTANCE1_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE1_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE1_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE1_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE1_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE1_FIELD.name = "move_distance1" +SKILL_CFG_MOVE_DISTANCE1_FIELD.full_name = ".ftcfg.skill_cfg.move_distance1" +SKILL_CFG_MOVE_DISTANCE1_FIELD.number = 63 +SKILL_CFG_MOVE_DISTANCE1_FIELD.index = 62 +SKILL_CFG_MOVE_DISTANCE1_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE1_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE1_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE1_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE1_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME1_FIELD.name = "move_time1" +SKILL_CFG_MOVE_TIME1_FIELD.full_name = ".ftcfg.skill_cfg.move_time1" +SKILL_CFG_MOVE_TIME1_FIELD.number = 64 +SKILL_CFG_MOVE_TIME1_FIELD.index = 63 +SKILL_CFG_MOVE_TIME1_FIELD.label = 2 +SKILL_CFG_MOVE_TIME1_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME1_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME1_FIELD.type = 5 +SKILL_CFG_MOVE_TIME1_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE2_FIELD.name = "move_type2" +SKILL_CFG_MOVE_TYPE2_FIELD.full_name = ".ftcfg.skill_cfg.move_type2" +SKILL_CFG_MOVE_TYPE2_FIELD.number = 65 +SKILL_CFG_MOVE_TYPE2_FIELD.index = 64 +SKILL_CFG_MOVE_TYPE2_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE2_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE2_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE2_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE2_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT2_FIELD.name = "move_point2" +SKILL_CFG_MOVE_POINT2_FIELD.full_name = ".ftcfg.skill_cfg.move_point2" +SKILL_CFG_MOVE_POINT2_FIELD.number = 66 +SKILL_CFG_MOVE_POINT2_FIELD.index = 65 +SKILL_CFG_MOVE_POINT2_FIELD.label = 2 +SKILL_CFG_MOVE_POINT2_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT2_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT2_FIELD.type = 5 +SKILL_CFG_MOVE_POINT2_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE2_FIELD.name = "adjust_distance2" +SKILL_CFG_ADJUST_DISTANCE2_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance2" +SKILL_CFG_ADJUST_DISTANCE2_FIELD.number = 67 +SKILL_CFG_ADJUST_DISTANCE2_FIELD.index = 66 +SKILL_CFG_ADJUST_DISTANCE2_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE2_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE2_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE2_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE2_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE2_FIELD.name = "move_distance2" +SKILL_CFG_MOVE_DISTANCE2_FIELD.full_name = ".ftcfg.skill_cfg.move_distance2" +SKILL_CFG_MOVE_DISTANCE2_FIELD.number = 68 +SKILL_CFG_MOVE_DISTANCE2_FIELD.index = 67 +SKILL_CFG_MOVE_DISTANCE2_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE2_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE2_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE2_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE2_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME2_FIELD.name = "move_time2" +SKILL_CFG_MOVE_TIME2_FIELD.full_name = ".ftcfg.skill_cfg.move_time2" +SKILL_CFG_MOVE_TIME2_FIELD.number = 69 +SKILL_CFG_MOVE_TIME2_FIELD.index = 68 +SKILL_CFG_MOVE_TIME2_FIELD.label = 2 +SKILL_CFG_MOVE_TIME2_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME2_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME2_FIELD.type = 5 +SKILL_CFG_MOVE_TIME2_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE3_FIELD.name = "move_type3" +SKILL_CFG_MOVE_TYPE3_FIELD.full_name = ".ftcfg.skill_cfg.move_type3" +SKILL_CFG_MOVE_TYPE3_FIELD.number = 70 +SKILL_CFG_MOVE_TYPE3_FIELD.index = 69 +SKILL_CFG_MOVE_TYPE3_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE3_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE3_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE3_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE3_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT3_FIELD.name = "move_point3" +SKILL_CFG_MOVE_POINT3_FIELD.full_name = ".ftcfg.skill_cfg.move_point3" +SKILL_CFG_MOVE_POINT3_FIELD.number = 71 +SKILL_CFG_MOVE_POINT3_FIELD.index = 70 +SKILL_CFG_MOVE_POINT3_FIELD.label = 2 +SKILL_CFG_MOVE_POINT3_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT3_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT3_FIELD.type = 5 +SKILL_CFG_MOVE_POINT3_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE3_FIELD.name = "adjust_distance3" +SKILL_CFG_ADJUST_DISTANCE3_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance3" +SKILL_CFG_ADJUST_DISTANCE3_FIELD.number = 72 +SKILL_CFG_ADJUST_DISTANCE3_FIELD.index = 71 +SKILL_CFG_ADJUST_DISTANCE3_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE3_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE3_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE3_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE3_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE3_FIELD.name = "move_distance3" +SKILL_CFG_MOVE_DISTANCE3_FIELD.full_name = ".ftcfg.skill_cfg.move_distance3" +SKILL_CFG_MOVE_DISTANCE3_FIELD.number = 73 +SKILL_CFG_MOVE_DISTANCE3_FIELD.index = 72 +SKILL_CFG_MOVE_DISTANCE3_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE3_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE3_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE3_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE3_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME3_FIELD.name = "move_time3" +SKILL_CFG_MOVE_TIME3_FIELD.full_name = ".ftcfg.skill_cfg.move_time3" +SKILL_CFG_MOVE_TIME3_FIELD.number = 74 +SKILL_CFG_MOVE_TIME3_FIELD.index = 73 +SKILL_CFG_MOVE_TIME3_FIELD.label = 2 +SKILL_CFG_MOVE_TIME3_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME3_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME3_FIELD.type = 5 +SKILL_CFG_MOVE_TIME3_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE4_FIELD.name = "move_type4" +SKILL_CFG_MOVE_TYPE4_FIELD.full_name = ".ftcfg.skill_cfg.move_type4" +SKILL_CFG_MOVE_TYPE4_FIELD.number = 75 +SKILL_CFG_MOVE_TYPE4_FIELD.index = 74 +SKILL_CFG_MOVE_TYPE4_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE4_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE4_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE4_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE4_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT4_FIELD.name = "move_point4" +SKILL_CFG_MOVE_POINT4_FIELD.full_name = ".ftcfg.skill_cfg.move_point4" +SKILL_CFG_MOVE_POINT4_FIELD.number = 76 +SKILL_CFG_MOVE_POINT4_FIELD.index = 75 +SKILL_CFG_MOVE_POINT4_FIELD.label = 2 +SKILL_CFG_MOVE_POINT4_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT4_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT4_FIELD.type = 5 +SKILL_CFG_MOVE_POINT4_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE4_FIELD.name = "adjust_distance4" +SKILL_CFG_ADJUST_DISTANCE4_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance4" +SKILL_CFG_ADJUST_DISTANCE4_FIELD.number = 77 +SKILL_CFG_ADJUST_DISTANCE4_FIELD.index = 76 +SKILL_CFG_ADJUST_DISTANCE4_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE4_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE4_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE4_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE4_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE4_FIELD.name = "move_distance4" +SKILL_CFG_MOVE_DISTANCE4_FIELD.full_name = ".ftcfg.skill_cfg.move_distance4" +SKILL_CFG_MOVE_DISTANCE4_FIELD.number = 78 +SKILL_CFG_MOVE_DISTANCE4_FIELD.index = 77 +SKILL_CFG_MOVE_DISTANCE4_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE4_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE4_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE4_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE4_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME4_FIELD.name = "move_time4" +SKILL_CFG_MOVE_TIME4_FIELD.full_name = ".ftcfg.skill_cfg.move_time4" +SKILL_CFG_MOVE_TIME4_FIELD.number = 79 +SKILL_CFG_MOVE_TIME4_FIELD.index = 78 +SKILL_CFG_MOVE_TIME4_FIELD.label = 2 +SKILL_CFG_MOVE_TIME4_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME4_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME4_FIELD.type = 5 +SKILL_CFG_MOVE_TIME4_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE5_FIELD.name = "move_type5" +SKILL_CFG_MOVE_TYPE5_FIELD.full_name = ".ftcfg.skill_cfg.move_type5" +SKILL_CFG_MOVE_TYPE5_FIELD.number = 80 +SKILL_CFG_MOVE_TYPE5_FIELD.index = 79 +SKILL_CFG_MOVE_TYPE5_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE5_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE5_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE5_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE5_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT5_FIELD.name = "move_point5" +SKILL_CFG_MOVE_POINT5_FIELD.full_name = ".ftcfg.skill_cfg.move_point5" +SKILL_CFG_MOVE_POINT5_FIELD.number = 81 +SKILL_CFG_MOVE_POINT5_FIELD.index = 80 +SKILL_CFG_MOVE_POINT5_FIELD.label = 2 +SKILL_CFG_MOVE_POINT5_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT5_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT5_FIELD.type = 5 +SKILL_CFG_MOVE_POINT5_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE5_FIELD.name = "adjust_distance5" +SKILL_CFG_ADJUST_DISTANCE5_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance5" +SKILL_CFG_ADJUST_DISTANCE5_FIELD.number = 82 +SKILL_CFG_ADJUST_DISTANCE5_FIELD.index = 81 +SKILL_CFG_ADJUST_DISTANCE5_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE5_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE5_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE5_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE5_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE5_FIELD.name = "move_distance5" +SKILL_CFG_MOVE_DISTANCE5_FIELD.full_name = ".ftcfg.skill_cfg.move_distance5" +SKILL_CFG_MOVE_DISTANCE5_FIELD.number = 83 +SKILL_CFG_MOVE_DISTANCE5_FIELD.index = 82 +SKILL_CFG_MOVE_DISTANCE5_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE5_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE5_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE5_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE5_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME5_FIELD.name = "move_time5" +SKILL_CFG_MOVE_TIME5_FIELD.full_name = ".ftcfg.skill_cfg.move_time5" +SKILL_CFG_MOVE_TIME5_FIELD.number = 84 +SKILL_CFG_MOVE_TIME5_FIELD.index = 83 +SKILL_CFG_MOVE_TIME5_FIELD.label = 2 +SKILL_CFG_MOVE_TIME5_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME5_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME5_FIELD.type = 5 +SKILL_CFG_MOVE_TIME5_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE6_FIELD.name = "move_type6" +SKILL_CFG_MOVE_TYPE6_FIELD.full_name = ".ftcfg.skill_cfg.move_type6" +SKILL_CFG_MOVE_TYPE6_FIELD.number = 85 +SKILL_CFG_MOVE_TYPE6_FIELD.index = 84 +SKILL_CFG_MOVE_TYPE6_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE6_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE6_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE6_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE6_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT6_FIELD.name = "move_point6" +SKILL_CFG_MOVE_POINT6_FIELD.full_name = ".ftcfg.skill_cfg.move_point6" +SKILL_CFG_MOVE_POINT6_FIELD.number = 86 +SKILL_CFG_MOVE_POINT6_FIELD.index = 85 +SKILL_CFG_MOVE_POINT6_FIELD.label = 2 +SKILL_CFG_MOVE_POINT6_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT6_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT6_FIELD.type = 5 +SKILL_CFG_MOVE_POINT6_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE6_FIELD.name = "adjust_distance6" +SKILL_CFG_ADJUST_DISTANCE6_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance6" +SKILL_CFG_ADJUST_DISTANCE6_FIELD.number = 87 +SKILL_CFG_ADJUST_DISTANCE6_FIELD.index = 86 +SKILL_CFG_ADJUST_DISTANCE6_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE6_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE6_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE6_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE6_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE6_FIELD.name = "move_distance6" +SKILL_CFG_MOVE_DISTANCE6_FIELD.full_name = ".ftcfg.skill_cfg.move_distance6" +SKILL_CFG_MOVE_DISTANCE6_FIELD.number = 88 +SKILL_CFG_MOVE_DISTANCE6_FIELD.index = 87 +SKILL_CFG_MOVE_DISTANCE6_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE6_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE6_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE6_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE6_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME6_FIELD.name = "move_time6" +SKILL_CFG_MOVE_TIME6_FIELD.full_name = ".ftcfg.skill_cfg.move_time6" +SKILL_CFG_MOVE_TIME6_FIELD.number = 89 +SKILL_CFG_MOVE_TIME6_FIELD.index = 88 +SKILL_CFG_MOVE_TIME6_FIELD.label = 2 +SKILL_CFG_MOVE_TIME6_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME6_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME6_FIELD.type = 5 +SKILL_CFG_MOVE_TIME6_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE7_FIELD.name = "move_type7" +SKILL_CFG_MOVE_TYPE7_FIELD.full_name = ".ftcfg.skill_cfg.move_type7" +SKILL_CFG_MOVE_TYPE7_FIELD.number = 90 +SKILL_CFG_MOVE_TYPE7_FIELD.index = 89 +SKILL_CFG_MOVE_TYPE7_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE7_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE7_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE7_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE7_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT7_FIELD.name = "move_point7" +SKILL_CFG_MOVE_POINT7_FIELD.full_name = ".ftcfg.skill_cfg.move_point7" +SKILL_CFG_MOVE_POINT7_FIELD.number = 91 +SKILL_CFG_MOVE_POINT7_FIELD.index = 90 +SKILL_CFG_MOVE_POINT7_FIELD.label = 2 +SKILL_CFG_MOVE_POINT7_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT7_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT7_FIELD.type = 5 +SKILL_CFG_MOVE_POINT7_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE7_FIELD.name = "adjust_distance7" +SKILL_CFG_ADJUST_DISTANCE7_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance7" +SKILL_CFG_ADJUST_DISTANCE7_FIELD.number = 92 +SKILL_CFG_ADJUST_DISTANCE7_FIELD.index = 91 +SKILL_CFG_ADJUST_DISTANCE7_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE7_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE7_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE7_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE7_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE7_FIELD.name = "move_distance7" +SKILL_CFG_MOVE_DISTANCE7_FIELD.full_name = ".ftcfg.skill_cfg.move_distance7" +SKILL_CFG_MOVE_DISTANCE7_FIELD.number = 93 +SKILL_CFG_MOVE_DISTANCE7_FIELD.index = 92 +SKILL_CFG_MOVE_DISTANCE7_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE7_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE7_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE7_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE7_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME7_FIELD.name = "move_time7" +SKILL_CFG_MOVE_TIME7_FIELD.full_name = ".ftcfg.skill_cfg.move_time7" +SKILL_CFG_MOVE_TIME7_FIELD.number = 94 +SKILL_CFG_MOVE_TIME7_FIELD.index = 93 +SKILL_CFG_MOVE_TIME7_FIELD.label = 2 +SKILL_CFG_MOVE_TIME7_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME7_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME7_FIELD.type = 5 +SKILL_CFG_MOVE_TIME7_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_TYPE8_FIELD.name = "move_type8" +SKILL_CFG_MOVE_TYPE8_FIELD.full_name = ".ftcfg.skill_cfg.move_type8" +SKILL_CFG_MOVE_TYPE8_FIELD.number = 95 +SKILL_CFG_MOVE_TYPE8_FIELD.index = 94 +SKILL_CFG_MOVE_TYPE8_FIELD.label = 2 +SKILL_CFG_MOVE_TYPE8_FIELD.has_default_value = false +SKILL_CFG_MOVE_TYPE8_FIELD.default_value = 0 +SKILL_CFG_MOVE_TYPE8_FIELD.type = 5 +SKILL_CFG_MOVE_TYPE8_FIELD.cpp_type = 1 + +SKILL_CFG_MOVE_POINT8_FIELD.name = "move_point8" +SKILL_CFG_MOVE_POINT8_FIELD.full_name = ".ftcfg.skill_cfg.move_point8" +SKILL_CFG_MOVE_POINT8_FIELD.number = 96 +SKILL_CFG_MOVE_POINT8_FIELD.index = 95 +SKILL_CFG_MOVE_POINT8_FIELD.label = 2 +SKILL_CFG_MOVE_POINT8_FIELD.has_default_value = false +SKILL_CFG_MOVE_POINT8_FIELD.default_value = 0 +SKILL_CFG_MOVE_POINT8_FIELD.type = 5 +SKILL_CFG_MOVE_POINT8_FIELD.cpp_type = 1 + +SKILL_CFG_ADJUST_DISTANCE8_FIELD.name = "adjust_distance8" +SKILL_CFG_ADJUST_DISTANCE8_FIELD.full_name = ".ftcfg.skill_cfg.adjust_distance8" +SKILL_CFG_ADJUST_DISTANCE8_FIELD.number = 97 +SKILL_CFG_ADJUST_DISTANCE8_FIELD.index = 96 +SKILL_CFG_ADJUST_DISTANCE8_FIELD.label = 2 +SKILL_CFG_ADJUST_DISTANCE8_FIELD.has_default_value = false +SKILL_CFG_ADJUST_DISTANCE8_FIELD.default_value = 0.0 +SKILL_CFG_ADJUST_DISTANCE8_FIELD.type = 2 +SKILL_CFG_ADJUST_DISTANCE8_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_DISTANCE8_FIELD.name = "move_distance8" +SKILL_CFG_MOVE_DISTANCE8_FIELD.full_name = ".ftcfg.skill_cfg.move_distance8" +SKILL_CFG_MOVE_DISTANCE8_FIELD.number = 98 +SKILL_CFG_MOVE_DISTANCE8_FIELD.index = 97 +SKILL_CFG_MOVE_DISTANCE8_FIELD.label = 2 +SKILL_CFG_MOVE_DISTANCE8_FIELD.has_default_value = false +SKILL_CFG_MOVE_DISTANCE8_FIELD.default_value = 0.0 +SKILL_CFG_MOVE_DISTANCE8_FIELD.type = 2 +SKILL_CFG_MOVE_DISTANCE8_FIELD.cpp_type = 6 + +SKILL_CFG_MOVE_TIME8_FIELD.name = "move_time8" +SKILL_CFG_MOVE_TIME8_FIELD.full_name = ".ftcfg.skill_cfg.move_time8" +SKILL_CFG_MOVE_TIME8_FIELD.number = 99 +SKILL_CFG_MOVE_TIME8_FIELD.index = 98 +SKILL_CFG_MOVE_TIME8_FIELD.label = 2 +SKILL_CFG_MOVE_TIME8_FIELD.has_default_value = false +SKILL_CFG_MOVE_TIME8_FIELD.default_value = 0 +SKILL_CFG_MOVE_TIME8_FIELD.type = 5 +SKILL_CFG_MOVE_TIME8_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_1_FIELD.name = "logic_type_1" +SKILL_CFG_LOGIC_TYPE_1_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_1" +SKILL_CFG_LOGIC_TYPE_1_FIELD.number = 100 +SKILL_CFG_LOGIC_TYPE_1_FIELD.index = 99 +SKILL_CFG_LOGIC_TYPE_1_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_1_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_1_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_1_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_1_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_1_FIELD.name = "logic_time_1" +SKILL_CFG_LOGIC_TIME_1_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_1" +SKILL_CFG_LOGIC_TIME_1_FIELD.number = 101 +SKILL_CFG_LOGIC_TIME_1_FIELD.index = 100 +SKILL_CFG_LOGIC_TIME_1_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_1_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_1_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_1_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_1_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_1_FIELD.name = "logic_id_1" +SKILL_CFG_LOGIC_ID_1_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_1" +SKILL_CFG_LOGIC_ID_1_FIELD.number = 102 +SKILL_CFG_LOGIC_ID_1_FIELD.index = 101 +SKILL_CFG_LOGIC_ID_1_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_1_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_1_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_1_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_1_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_2_FIELD.name = "logic_type_2" +SKILL_CFG_LOGIC_TYPE_2_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_2" +SKILL_CFG_LOGIC_TYPE_2_FIELD.number = 103 +SKILL_CFG_LOGIC_TYPE_2_FIELD.index = 102 +SKILL_CFG_LOGIC_TYPE_2_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_2_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_2_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_2_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_2_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_2_FIELD.name = "logic_time_2" +SKILL_CFG_LOGIC_TIME_2_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_2" +SKILL_CFG_LOGIC_TIME_2_FIELD.number = 104 +SKILL_CFG_LOGIC_TIME_2_FIELD.index = 103 +SKILL_CFG_LOGIC_TIME_2_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_2_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_2_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_2_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_2_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_2_FIELD.name = "logic_id_2" +SKILL_CFG_LOGIC_ID_2_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_2" +SKILL_CFG_LOGIC_ID_2_FIELD.number = 105 +SKILL_CFG_LOGIC_ID_2_FIELD.index = 104 +SKILL_CFG_LOGIC_ID_2_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_2_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_2_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_2_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_2_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_3_FIELD.name = "logic_type_3" +SKILL_CFG_LOGIC_TYPE_3_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_3" +SKILL_CFG_LOGIC_TYPE_3_FIELD.number = 106 +SKILL_CFG_LOGIC_TYPE_3_FIELD.index = 105 +SKILL_CFG_LOGIC_TYPE_3_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_3_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_3_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_3_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_3_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_3_FIELD.name = "logic_time_3" +SKILL_CFG_LOGIC_TIME_3_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_3" +SKILL_CFG_LOGIC_TIME_3_FIELD.number = 107 +SKILL_CFG_LOGIC_TIME_3_FIELD.index = 106 +SKILL_CFG_LOGIC_TIME_3_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_3_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_3_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_3_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_3_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_3_FIELD.name = "logic_id_3" +SKILL_CFG_LOGIC_ID_3_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_3" +SKILL_CFG_LOGIC_ID_3_FIELD.number = 108 +SKILL_CFG_LOGIC_ID_3_FIELD.index = 107 +SKILL_CFG_LOGIC_ID_3_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_3_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_3_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_3_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_3_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_4_FIELD.name = "logic_type_4" +SKILL_CFG_LOGIC_TYPE_4_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_4" +SKILL_CFG_LOGIC_TYPE_4_FIELD.number = 109 +SKILL_CFG_LOGIC_TYPE_4_FIELD.index = 108 +SKILL_CFG_LOGIC_TYPE_4_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_4_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_4_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_4_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_4_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_4_FIELD.name = "logic_time_4" +SKILL_CFG_LOGIC_TIME_4_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_4" +SKILL_CFG_LOGIC_TIME_4_FIELD.number = 110 +SKILL_CFG_LOGIC_TIME_4_FIELD.index = 109 +SKILL_CFG_LOGIC_TIME_4_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_4_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_4_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_4_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_4_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_4_FIELD.name = "logic_id_4" +SKILL_CFG_LOGIC_ID_4_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_4" +SKILL_CFG_LOGIC_ID_4_FIELD.number = 111 +SKILL_CFG_LOGIC_ID_4_FIELD.index = 110 +SKILL_CFG_LOGIC_ID_4_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_4_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_4_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_4_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_4_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_5_FIELD.name = "logic_type_5" +SKILL_CFG_LOGIC_TYPE_5_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_5" +SKILL_CFG_LOGIC_TYPE_5_FIELD.number = 112 +SKILL_CFG_LOGIC_TYPE_5_FIELD.index = 111 +SKILL_CFG_LOGIC_TYPE_5_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_5_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_5_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_5_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_5_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_5_FIELD.name = "logic_time_5" +SKILL_CFG_LOGIC_TIME_5_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_5" +SKILL_CFG_LOGIC_TIME_5_FIELD.number = 113 +SKILL_CFG_LOGIC_TIME_5_FIELD.index = 112 +SKILL_CFG_LOGIC_TIME_5_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_5_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_5_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_5_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_5_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_5_FIELD.name = "logic_id_5" +SKILL_CFG_LOGIC_ID_5_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_5" +SKILL_CFG_LOGIC_ID_5_FIELD.number = 114 +SKILL_CFG_LOGIC_ID_5_FIELD.index = 113 +SKILL_CFG_LOGIC_ID_5_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_5_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_5_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_5_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_5_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_6_FIELD.name = "logic_type_6" +SKILL_CFG_LOGIC_TYPE_6_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_6" +SKILL_CFG_LOGIC_TYPE_6_FIELD.number = 115 +SKILL_CFG_LOGIC_TYPE_6_FIELD.index = 114 +SKILL_CFG_LOGIC_TYPE_6_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_6_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_6_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_6_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_6_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_6_FIELD.name = "logic_time_6" +SKILL_CFG_LOGIC_TIME_6_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_6" +SKILL_CFG_LOGIC_TIME_6_FIELD.number = 116 +SKILL_CFG_LOGIC_TIME_6_FIELD.index = 115 +SKILL_CFG_LOGIC_TIME_6_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_6_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_6_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_6_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_6_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_6_FIELD.name = "logic_id_6" +SKILL_CFG_LOGIC_ID_6_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_6" +SKILL_CFG_LOGIC_ID_6_FIELD.number = 117 +SKILL_CFG_LOGIC_ID_6_FIELD.index = 116 +SKILL_CFG_LOGIC_ID_6_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_6_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_6_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_6_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_6_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_7_FIELD.name = "logic_type_7" +SKILL_CFG_LOGIC_TYPE_7_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_7" +SKILL_CFG_LOGIC_TYPE_7_FIELD.number = 118 +SKILL_CFG_LOGIC_TYPE_7_FIELD.index = 117 +SKILL_CFG_LOGIC_TYPE_7_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_7_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_7_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_7_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_7_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_7_FIELD.name = "logic_time_7" +SKILL_CFG_LOGIC_TIME_7_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_7" +SKILL_CFG_LOGIC_TIME_7_FIELD.number = 119 +SKILL_CFG_LOGIC_TIME_7_FIELD.index = 118 +SKILL_CFG_LOGIC_TIME_7_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_7_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_7_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_7_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_7_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_7_FIELD.name = "logic_id_7" +SKILL_CFG_LOGIC_ID_7_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_7" +SKILL_CFG_LOGIC_ID_7_FIELD.number = 120 +SKILL_CFG_LOGIC_ID_7_FIELD.index = 119 +SKILL_CFG_LOGIC_ID_7_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_7_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_7_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_7_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_7_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_8_FIELD.name = "logic_type_8" +SKILL_CFG_LOGIC_TYPE_8_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_8" +SKILL_CFG_LOGIC_TYPE_8_FIELD.number = 121 +SKILL_CFG_LOGIC_TYPE_8_FIELD.index = 120 +SKILL_CFG_LOGIC_TYPE_8_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_8_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_8_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_8_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_8_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_8_FIELD.name = "logic_time_8" +SKILL_CFG_LOGIC_TIME_8_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_8" +SKILL_CFG_LOGIC_TIME_8_FIELD.number = 122 +SKILL_CFG_LOGIC_TIME_8_FIELD.index = 121 +SKILL_CFG_LOGIC_TIME_8_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_8_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_8_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_8_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_8_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_8_FIELD.name = "logic_id_8" +SKILL_CFG_LOGIC_ID_8_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_8" +SKILL_CFG_LOGIC_ID_8_FIELD.number = 123 +SKILL_CFG_LOGIC_ID_8_FIELD.index = 122 +SKILL_CFG_LOGIC_ID_8_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_8_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_8_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_8_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_8_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_9_FIELD.name = "logic_type_9" +SKILL_CFG_LOGIC_TYPE_9_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_9" +SKILL_CFG_LOGIC_TYPE_9_FIELD.number = 124 +SKILL_CFG_LOGIC_TYPE_9_FIELD.index = 123 +SKILL_CFG_LOGIC_TYPE_9_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_9_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_9_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_9_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_9_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_9_FIELD.name = "logic_time_9" +SKILL_CFG_LOGIC_TIME_9_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_9" +SKILL_CFG_LOGIC_TIME_9_FIELD.number = 125 +SKILL_CFG_LOGIC_TIME_9_FIELD.index = 124 +SKILL_CFG_LOGIC_TIME_9_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_9_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_9_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_9_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_9_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_9_FIELD.name = "logic_id_9" +SKILL_CFG_LOGIC_ID_9_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_9" +SKILL_CFG_LOGIC_ID_9_FIELD.number = 126 +SKILL_CFG_LOGIC_ID_9_FIELD.index = 125 +SKILL_CFG_LOGIC_ID_9_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_9_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_9_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_9_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_9_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_10_FIELD.name = "logic_type_10" +SKILL_CFG_LOGIC_TYPE_10_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_10" +SKILL_CFG_LOGIC_TYPE_10_FIELD.number = 127 +SKILL_CFG_LOGIC_TYPE_10_FIELD.index = 126 +SKILL_CFG_LOGIC_TYPE_10_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_10_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_10_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_10_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_10_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_10_FIELD.name = "logic_time_10" +SKILL_CFG_LOGIC_TIME_10_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_10" +SKILL_CFG_LOGIC_TIME_10_FIELD.number = 128 +SKILL_CFG_LOGIC_TIME_10_FIELD.index = 127 +SKILL_CFG_LOGIC_TIME_10_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_10_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_10_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_10_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_10_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_10_FIELD.name = "logic_id_10" +SKILL_CFG_LOGIC_ID_10_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_10" +SKILL_CFG_LOGIC_ID_10_FIELD.number = 129 +SKILL_CFG_LOGIC_ID_10_FIELD.index = 128 +SKILL_CFG_LOGIC_ID_10_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_10_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_10_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_10_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_10_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_11_FIELD.name = "logic_type_11" +SKILL_CFG_LOGIC_TYPE_11_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_11" +SKILL_CFG_LOGIC_TYPE_11_FIELD.number = 130 +SKILL_CFG_LOGIC_TYPE_11_FIELD.index = 129 +SKILL_CFG_LOGIC_TYPE_11_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_11_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_11_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_11_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_11_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_11_FIELD.name = "logic_time_11" +SKILL_CFG_LOGIC_TIME_11_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_11" +SKILL_CFG_LOGIC_TIME_11_FIELD.number = 131 +SKILL_CFG_LOGIC_TIME_11_FIELD.index = 130 +SKILL_CFG_LOGIC_TIME_11_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_11_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_11_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_11_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_11_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_11_FIELD.name = "logic_id_11" +SKILL_CFG_LOGIC_ID_11_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_11" +SKILL_CFG_LOGIC_ID_11_FIELD.number = 132 +SKILL_CFG_LOGIC_ID_11_FIELD.index = 131 +SKILL_CFG_LOGIC_ID_11_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_11_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_11_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_11_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_11_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TYPE_12_FIELD.name = "logic_type_12" +SKILL_CFG_LOGIC_TYPE_12_FIELD.full_name = ".ftcfg.skill_cfg.logic_type_12" +SKILL_CFG_LOGIC_TYPE_12_FIELD.number = 133 +SKILL_CFG_LOGIC_TYPE_12_FIELD.index = 132 +SKILL_CFG_LOGIC_TYPE_12_FIELD.label = 2 +SKILL_CFG_LOGIC_TYPE_12_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TYPE_12_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TYPE_12_FIELD.type = 5 +SKILL_CFG_LOGIC_TYPE_12_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_TIME_12_FIELD.name = "logic_time_12" +SKILL_CFG_LOGIC_TIME_12_FIELD.full_name = ".ftcfg.skill_cfg.logic_time_12" +SKILL_CFG_LOGIC_TIME_12_FIELD.number = 134 +SKILL_CFG_LOGIC_TIME_12_FIELD.index = 133 +SKILL_CFG_LOGIC_TIME_12_FIELD.label = 2 +SKILL_CFG_LOGIC_TIME_12_FIELD.has_default_value = false +SKILL_CFG_LOGIC_TIME_12_FIELD.default_value = 0 +SKILL_CFG_LOGIC_TIME_12_FIELD.type = 5 +SKILL_CFG_LOGIC_TIME_12_FIELD.cpp_type = 1 + +SKILL_CFG_LOGIC_ID_12_FIELD.name = "logic_id_12" +SKILL_CFG_LOGIC_ID_12_FIELD.full_name = ".ftcfg.skill_cfg.logic_id_12" +SKILL_CFG_LOGIC_ID_12_FIELD.number = 135 +SKILL_CFG_LOGIC_ID_12_FIELD.index = 134 +SKILL_CFG_LOGIC_ID_12_FIELD.label = 2 +SKILL_CFG_LOGIC_ID_12_FIELD.has_default_value = false +SKILL_CFG_LOGIC_ID_12_FIELD.default_value = 0 +SKILL_CFG_LOGIC_ID_12_FIELD.type = 5 +SKILL_CFG_LOGIC_ID_12_FIELD.cpp_type = 1 + +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.name = "affect_range_type" +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.full_name = ".ftcfg.skill_cfg.affect_range_type" +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.number = 136 +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.index = 135 +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.label = 2 +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.has_default_value = false +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.default_value = nil +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.enum_type = config_predefine_pb.EAFFECTAREATYPE +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.type = 14 +SKILL_CFG_AFFECT_RANGE_TYPE_FIELD.cpp_type = 8 + +SKILL_CFG_ART_PARA1_FIELD.name = "art_para1" +SKILL_CFG_ART_PARA1_FIELD.full_name = ".ftcfg.skill_cfg.art_para1" +SKILL_CFG_ART_PARA1_FIELD.number = 137 +SKILL_CFG_ART_PARA1_FIELD.index = 136 +SKILL_CFG_ART_PARA1_FIELD.label = 2 +SKILL_CFG_ART_PARA1_FIELD.has_default_value = false +SKILL_CFG_ART_PARA1_FIELD.default_value = 0 +SKILL_CFG_ART_PARA1_FIELD.type = 5 +SKILL_CFG_ART_PARA1_FIELD.cpp_type = 1 + +SKILL_CFG_ART_PARA2_FIELD.name = "art_para2" +SKILL_CFG_ART_PARA2_FIELD.full_name = ".ftcfg.skill_cfg.art_para2" +SKILL_CFG_ART_PARA2_FIELD.number = 138 +SKILL_CFG_ART_PARA2_FIELD.index = 137 +SKILL_CFG_ART_PARA2_FIELD.label = 2 +SKILL_CFG_ART_PARA2_FIELD.has_default_value = false +SKILL_CFG_ART_PARA2_FIELD.default_value = 0 +SKILL_CFG_ART_PARA2_FIELD.type = 5 +SKILL_CFG_ART_PARA2_FIELD.cpp_type = 1 + +SKILL_CFG.name = "skill_cfg" +SKILL_CFG.full_name = ".ftcfg.skill_cfg" +SKILL_CFG.nested_types = {} +SKILL_CFG.enum_types = {} +SKILL_CFG.fields = {SKILL_CFG_ID_FIELD, SKILL_CFG_NAME_TIP_FIELD, SKILL_CFG_NAME_FIELD, SKILL_CFG_SKILL_LEVEL_FIELD, SKILL_CFG_PLAYER_LEVEL_FIELD, SKILL_CFG_LEVELUP_COST_FIELD, SKILL_CFG_NEXT_LEVEL_ID_FIELD, SKILL_CFG_SKILL_ICON_FIELD, SKILL_CFG_SKILL_PROF_FIELD, SKILL_CFG_TIPS2_FIELD, SKILL_CFG_TIPS_FIELD, SKILL_CFG_TIPS3_FIELD, SKILL_CFG_TIPS_PARA1_FIELD, SKILL_CFG_TIPS_PARA2_FIELD, SKILL_CFG_TIPS_PARA3_FIELD, SKILL_CFG_TIPS_PARA4_FIELD, SKILL_CFG_TIPS_PARA5_FIELD, SKILL_CFG_TIPS_PARA6_FIELD, SKILL_CFG_NEXT_SKILL_FIELD, SKILL_CFG_NEXT_CHANGE_SKILL_FIELD, SKILL_CFG_AUTO_SKILL_FIELD, SKILL_CFG_NEXT_SKILL_TIME_FIELD, SKILL_CFG_SKILL_TYPE_FIELD, SKILL_CFG_ENERGY_COST_TYPE_FIELD, SKILL_CFG_ENERGY_VALUE_FIELD, SKILL_CFG_MAX_ENERGY_VALUE_FIELD, SKILL_CFG_RET_ENERGY_VALUE_FIELD, SKILL_CFG_RET_HP_EFFECT_FIELD, SKILL_CFG_SHOW_PROGRESS_FIELD, SKILL_CFG_PROGRESS_WORD_FIELD, SKILL_CFG_IS_TRIGGER_PASSIVE_FIELD, SKILL_CFG_IS_PASSIVE_FIELD, SKILL_CFG_TRIGGER_TYPE_FIELD, SKILL_CFG_ACCELERATE_FIELD, SKILL_CFG_IS_CONCURRENCY_FIELD, SKILL_CFG_INT_CHANNEL_WHEN_BEATEN_FIELD, SKILL_CFG_IS_CHANNEL_FIELD, SKILL_CFG_CHANNEL_TIME_FIELD, SKILL_CFG_CAN_CANCEL_FIELD, SKILL_CFG_BASE_POS_FIELD, SKILL_CFG_TARGET_TYPE_FIELD, SKILL_CFG_REMOVE_BUFF_WHEN_CANCEL_FIELD, SKILL_CFG_WORK_WHEN_FIELD, SKILL_CFG_CD_GROUP_ID_FIELD, SKILL_CFG_CD_TIME_FIELD, SKILL_CFG_CD_NUM_FIELD, SKILL_CFG_CAST_DISTANCE_FIELD, SKILL_CFG_LOCKED_BY_SERVER_FIELD, SKILL_CFG_RANGE_TYPE_FIELD, SKILL_CFG_RANGE_PARA1_FIELD, SKILL_CFG_RANGE_PARA2_FIELD, SKILL_CFG_LOCK_TARGET_DISTANCE_FIELD, SKILL_CFG_LOCK_MAX_COUNT_FIELD, SKILL_CFG_CAST_SWING_TIME_FIELD, SKILL_CFG_CAST_STIFF_TIME_FIELD, SKILL_CFG_CAST_BACK_SWING_TIME_FIELD, SKILL_CFG_MAGIC_PERFORMANCE_ID_FIELD, SKILL_CFG_HIT_EFFECT_FIELD, SKILL_CFG_HIT_EFFECT_TIME_FIELD, SKILL_CFG_MOVE_TYPE1_FIELD, SKILL_CFG_MOVE_POINT1_FIELD, SKILL_CFG_ADJUST_DISTANCE1_FIELD, SKILL_CFG_MOVE_DISTANCE1_FIELD, SKILL_CFG_MOVE_TIME1_FIELD, SKILL_CFG_MOVE_TYPE2_FIELD, SKILL_CFG_MOVE_POINT2_FIELD, SKILL_CFG_ADJUST_DISTANCE2_FIELD, SKILL_CFG_MOVE_DISTANCE2_FIELD, SKILL_CFG_MOVE_TIME2_FIELD, SKILL_CFG_MOVE_TYPE3_FIELD, SKILL_CFG_MOVE_POINT3_FIELD, SKILL_CFG_ADJUST_DISTANCE3_FIELD, SKILL_CFG_MOVE_DISTANCE3_FIELD, SKILL_CFG_MOVE_TIME3_FIELD, SKILL_CFG_MOVE_TYPE4_FIELD, SKILL_CFG_MOVE_POINT4_FIELD, SKILL_CFG_ADJUST_DISTANCE4_FIELD, SKILL_CFG_MOVE_DISTANCE4_FIELD, SKILL_CFG_MOVE_TIME4_FIELD, SKILL_CFG_MOVE_TYPE5_FIELD, SKILL_CFG_MOVE_POINT5_FIELD, SKILL_CFG_ADJUST_DISTANCE5_FIELD, SKILL_CFG_MOVE_DISTANCE5_FIELD, SKILL_CFG_MOVE_TIME5_FIELD, SKILL_CFG_MOVE_TYPE6_FIELD, SKILL_CFG_MOVE_POINT6_FIELD, SKILL_CFG_ADJUST_DISTANCE6_FIELD, SKILL_CFG_MOVE_DISTANCE6_FIELD, SKILL_CFG_MOVE_TIME6_FIELD, SKILL_CFG_MOVE_TYPE7_FIELD, SKILL_CFG_MOVE_POINT7_FIELD, SKILL_CFG_ADJUST_DISTANCE7_FIELD, SKILL_CFG_MOVE_DISTANCE7_FIELD, SKILL_CFG_MOVE_TIME7_FIELD, SKILL_CFG_MOVE_TYPE8_FIELD, SKILL_CFG_MOVE_POINT8_FIELD, SKILL_CFG_ADJUST_DISTANCE8_FIELD, SKILL_CFG_MOVE_DISTANCE8_FIELD, SKILL_CFG_MOVE_TIME8_FIELD, SKILL_CFG_LOGIC_TYPE_1_FIELD, SKILL_CFG_LOGIC_TIME_1_FIELD, SKILL_CFG_LOGIC_ID_1_FIELD, SKILL_CFG_LOGIC_TYPE_2_FIELD, SKILL_CFG_LOGIC_TIME_2_FIELD, SKILL_CFG_LOGIC_ID_2_FIELD, SKILL_CFG_LOGIC_TYPE_3_FIELD, SKILL_CFG_LOGIC_TIME_3_FIELD, SKILL_CFG_LOGIC_ID_3_FIELD, SKILL_CFG_LOGIC_TYPE_4_FIELD, SKILL_CFG_LOGIC_TIME_4_FIELD, SKILL_CFG_LOGIC_ID_4_FIELD, SKILL_CFG_LOGIC_TYPE_5_FIELD, SKILL_CFG_LOGIC_TIME_5_FIELD, SKILL_CFG_LOGIC_ID_5_FIELD, SKILL_CFG_LOGIC_TYPE_6_FIELD, SKILL_CFG_LOGIC_TIME_6_FIELD, SKILL_CFG_LOGIC_ID_6_FIELD, SKILL_CFG_LOGIC_TYPE_7_FIELD, SKILL_CFG_LOGIC_TIME_7_FIELD, SKILL_CFG_LOGIC_ID_7_FIELD, SKILL_CFG_LOGIC_TYPE_8_FIELD, SKILL_CFG_LOGIC_TIME_8_FIELD, SKILL_CFG_LOGIC_ID_8_FIELD, SKILL_CFG_LOGIC_TYPE_9_FIELD, SKILL_CFG_LOGIC_TIME_9_FIELD, SKILL_CFG_LOGIC_ID_9_FIELD, SKILL_CFG_LOGIC_TYPE_10_FIELD, SKILL_CFG_LOGIC_TIME_10_FIELD, SKILL_CFG_LOGIC_ID_10_FIELD, SKILL_CFG_LOGIC_TYPE_11_FIELD, SKILL_CFG_LOGIC_TIME_11_FIELD, SKILL_CFG_LOGIC_ID_11_FIELD, SKILL_CFG_LOGIC_TYPE_12_FIELD, SKILL_CFG_LOGIC_TIME_12_FIELD, SKILL_CFG_LOGIC_ID_12_FIELD, SKILL_CFG_AFFECT_RANGE_TYPE_FIELD, SKILL_CFG_ART_PARA1_FIELD, SKILL_CFG_ART_PARA2_FIELD} +SKILL_CFG.is_extendable = false +SKILL_CFG.extensions = {} +SKILL_CFGS_ITEMS_FIELD.name = "items" +SKILL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.skill_cfgs.items" +SKILL_CFGS_ITEMS_FIELD.number = 1 +SKILL_CFGS_ITEMS_FIELD.index = 0 +SKILL_CFGS_ITEMS_FIELD.label = 3 +SKILL_CFGS_ITEMS_FIELD.has_default_value = false +SKILL_CFGS_ITEMS_FIELD.default_value = {} +SKILL_CFGS_ITEMS_FIELD.message_type = SKILL_CFG +SKILL_CFGS_ITEMS_FIELD.type = 11 +SKILL_CFGS_ITEMS_FIELD.cpp_type = 10 + +SKILL_CFGS.name = "skill_cfgs" +SKILL_CFGS.full_name = ".ftcfg.skill_cfgs" +SKILL_CFGS.nested_types = {} +SKILL_CFGS.enum_types = {} +SKILL_CFGS.fields = {SKILL_CFGS_ITEMS_FIELD} +SKILL_CFGS.is_extendable = false +SKILL_CFGS.extensions = {} +SKILL_ID_CFG_ID_FIELD.name = "id" +SKILL_ID_CFG_ID_FIELD.full_name = ".ftcfg.skill_id_cfg.id" +SKILL_ID_CFG_ID_FIELD.number = 1 +SKILL_ID_CFG_ID_FIELD.index = 0 +SKILL_ID_CFG_ID_FIELD.label = 2 +SKILL_ID_CFG_ID_FIELD.has_default_value = false +SKILL_ID_CFG_ID_FIELD.default_value = 0 +SKILL_ID_CFG_ID_FIELD.type = 5 +SKILL_ID_CFG_ID_FIELD.cpp_type = 1 + +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.name = "skill_id_array" +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.full_name = ".ftcfg.skill_id_cfg.skill_id_array" +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.number = 2 +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.index = 1 +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.label = 3 +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.has_default_value = false +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.default_value = {} +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.type = 5 +SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD.cpp_type = 1 + +SKILL_ID_CFG.name = "skill_id_cfg" +SKILL_ID_CFG.full_name = ".ftcfg.skill_id_cfg" +SKILL_ID_CFG.nested_types = {} +SKILL_ID_CFG.enum_types = {} +SKILL_ID_CFG.fields = {SKILL_ID_CFG_ID_FIELD, SKILL_ID_CFG_SKILL_ID_ARRAY_FIELD} +SKILL_ID_CFG.is_extendable = false +SKILL_ID_CFG.extensions = {} +SKILL_ID_CFGS_ITEMS_FIELD.name = "items" +SKILL_ID_CFGS_ITEMS_FIELD.full_name = ".ftcfg.skill_id_cfgs.items" +SKILL_ID_CFGS_ITEMS_FIELD.number = 1 +SKILL_ID_CFGS_ITEMS_FIELD.index = 0 +SKILL_ID_CFGS_ITEMS_FIELD.label = 3 +SKILL_ID_CFGS_ITEMS_FIELD.has_default_value = false +SKILL_ID_CFGS_ITEMS_FIELD.default_value = {} +SKILL_ID_CFGS_ITEMS_FIELD.message_type = SKILL_ID_CFG +SKILL_ID_CFGS_ITEMS_FIELD.type = 11 +SKILL_ID_CFGS_ITEMS_FIELD.cpp_type = 10 + +SKILL_ID_CFGS.name = "skill_id_cfgs" +SKILL_ID_CFGS.full_name = ".ftcfg.skill_id_cfgs" +SKILL_ID_CFGS.nested_types = {} +SKILL_ID_CFGS.enum_types = {} +SKILL_ID_CFGS.fields = {SKILL_ID_CFGS_ITEMS_FIELD} +SKILL_ID_CFGS.is_extendable = false +SKILL_ID_CFGS.extensions = {} +SKILL_CONDITION_CFG_ID_FIELD.name = "id" +SKILL_CONDITION_CFG_ID_FIELD.full_name = ".ftcfg.skill_condition_cfg.id" +SKILL_CONDITION_CFG_ID_FIELD.number = 1 +SKILL_CONDITION_CFG_ID_FIELD.index = 0 +SKILL_CONDITION_CFG_ID_FIELD.label = 2 +SKILL_CONDITION_CFG_ID_FIELD.has_default_value = false +SKILL_CONDITION_CFG_ID_FIELD.default_value = 0 +SKILL_CONDITION_CFG_ID_FIELD.type = 5 +SKILL_CONDITION_CFG_ID_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_DESC_FIELD.name = "desc" +SKILL_CONDITION_CFG_DESC_FIELD.full_name = ".ftcfg.skill_condition_cfg.desc" +SKILL_CONDITION_CFG_DESC_FIELD.number = 2 +SKILL_CONDITION_CFG_DESC_FIELD.index = 1 +SKILL_CONDITION_CFG_DESC_FIELD.label = 2 +SKILL_CONDITION_CFG_DESC_FIELD.has_default_value = false +SKILL_CONDITION_CFG_DESC_FIELD.default_value = "" +SKILL_CONDITION_CFG_DESC_FIELD.type = 9 +SKILL_CONDITION_CFG_DESC_FIELD.cpp_type = 9 + +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.name = "effect_target" +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.full_name = ".ftcfg.skill_condition_cfg.effect_target" +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.number = 3 +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.index = 2 +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.label = 2 +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.has_default_value = false +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.default_value = nil +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.enum_type = config_predefine_pb.CONDITIONTARGETTYPE +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.type = 14 +SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD.cpp_type = 8 + +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.name = "range_type" +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.full_name = ".ftcfg.skill_condition_cfg.range_type" +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.number = 4 +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.index = 3 +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.label = 2 +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.default_value = nil +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.enum_type = config_predefine_pb.EAREATYPE +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.type = 14 +SKILL_CONDITION_CFG_RANGE_TYPE_FIELD.cpp_type = 8 + +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.name = "range_angle" +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.full_name = ".ftcfg.skill_condition_cfg.range_angle" +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.number = 5 +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.index = 4 +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.label = 2 +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.type = 2 +SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.name = "range_offset_x" +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.full_name = ".ftcfg.skill_condition_cfg.range_offset_x" +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.number = 6 +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.index = 5 +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.label = 2 +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.has_default_value = false +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.type = 2 +SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.name = "range_offset_z" +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.full_name = ".ftcfg.skill_condition_cfg.range_offset_z" +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.number = 7 +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.index = 6 +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.label = 2 +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.has_default_value = false +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.type = 2 +SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.name = "range_para1" +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.full_name = ".ftcfg.skill_condition_cfg.range_para1" +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.number = 8 +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.index = 7 +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.label = 2 +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.has_default_value = false +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.type = 2 +SKILL_CONDITION_CFG_RANGE_PARA1_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.name = "range_para2" +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.full_name = ".ftcfg.skill_condition_cfg.range_para2" +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.number = 9 +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.index = 8 +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.label = 2 +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.has_default_value = false +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.type = 2 +SKILL_CONDITION_CFG_RANGE_PARA2_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.name = "entity_types" +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.full_name = ".ftcfg.skill_condition_cfg.entity_types" +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.number = 10 +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.index = 9 +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.label = 3 +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.has_default_value = false +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.default_value = {} +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.type = 5 +SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.name = "include_target" +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.full_name = ".ftcfg.skill_condition_cfg.include_target" +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.number = 11 +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.index = 10 +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.label = 2 +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.has_default_value = false +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.default_value = false +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.type = 8 +SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD.cpp_type = 7 + +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.name = "target_num" +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.full_name = ".ftcfg.skill_condition_cfg.target_num" +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.number = 12 +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.index = 11 +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.label = 2 +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.has_default_value = false +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.default_value = 0 +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.type = 5 +SKILL_CONDITION_CFG_TARGET_NUM_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.name = "ignore_block" +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.full_name = ".ftcfg.skill_condition_cfg.ignore_block" +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.number = 13 +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.index = 12 +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.label = 2 +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.has_default_value = false +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.default_value = false +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.type = 8 +SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD.cpp_type = 7 + +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.name = "ignore_dodge" +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.full_name = ".ftcfg.skill_condition_cfg.ignore_dodge" +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.number = 14 +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.index = 13 +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.label = 2 +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.default_value = false +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.type = 8 +SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD.cpp_type = 7 + +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.name = "target_order_type" +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.full_name = ".ftcfg.skill_condition_cfg.target_order_type" +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.number = 15 +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.index = 14 +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.label = 2 +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.default_value = nil +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.enum_type = config_predefine_pb.ECONDITIONORDERTYPE +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.type = 14 +SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD.cpp_type = 8 + +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.name = "repeat_num" +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.full_name = ".ftcfg.skill_condition_cfg.repeat_num" +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.number = 16 +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.index = 15 +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.label = 2 +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.has_default_value = false +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.default_value = 0 +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.type = 5 +SKILL_CONDITION_CFG_REPEAT_NUM_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_HIT_RATE_FIELD.name = "hit_rate" +SKILL_CONDITION_CFG_HIT_RATE_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_rate" +SKILL_CONDITION_CFG_HIT_RATE_FIELD.number = 17 +SKILL_CONDITION_CFG_HIT_RATE_FIELD.index = 16 +SKILL_CONDITION_CFG_HIT_RATE_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_RATE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_RATE_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_HIT_RATE_FIELD.type = 2 +SKILL_CONDITION_CFG_HIT_RATE_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_ATK_LV_FIELD.name = "atk_lv" +SKILL_CONDITION_CFG_ATK_LV_FIELD.full_name = ".ftcfg.skill_condition_cfg.atk_lv" +SKILL_CONDITION_CFG_ATK_LV_FIELD.number = 18 +SKILL_CONDITION_CFG_ATK_LV_FIELD.index = 17 +SKILL_CONDITION_CFG_ATK_LV_FIELD.label = 2 +SKILL_CONDITION_CFG_ATK_LV_FIELD.has_default_value = false +SKILL_CONDITION_CFG_ATK_LV_FIELD.default_value = 0 +SKILL_CONDITION_CFG_ATK_LV_FIELD.type = 5 +SKILL_CONDITION_CFG_ATK_LV_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.name = "am_beaten" +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.full_name = ".ftcfg.skill_condition_cfg.am_beaten" +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.number = 19 +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.index = 18 +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.label = 2 +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.has_default_value = false +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.default_value = "" +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.type = 9 +SKILL_CONDITION_CFG_AM_BEATEN_FIELD.cpp_type = 9 + +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.name = "am_beaten_eff" +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.full_name = ".ftcfg.skill_condition_cfg.am_beaten_eff" +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.number = 20 +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.index = 19 +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.label = 2 +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.has_default_value = false +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.default_value = "" +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.type = 9 +SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD.cpp_type = 9 + +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.name = "beaten_time" +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.full_name = ".ftcfg.skill_condition_cfg.beaten_time" +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.number = 21 +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.index = 20 +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.label = 2 +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.default_value = 0 +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.type = 5 +SKILL_CONDITION_CFG_BEATEN_TIME_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.name = "beat_back_type" +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.full_name = ".ftcfg.skill_condition_cfg.beat_back_type" +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.number = 22 +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.index = 21 +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.label = 2 +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.default_value = 0 +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.type = 5 +SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.name = "beat_dis" +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.full_name = ".ftcfg.skill_condition_cfg.beat_dis" +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.number = 23 +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.index = 22 +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.label = 2 +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.type = 2 +SKILL_CONDITION_CFG_BEAT_DIS_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.name = "beat_back_move_time" +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.full_name = ".ftcfg.skill_condition_cfg.beat_back_move_time" +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.number = 24 +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.index = 23 +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.label = 2 +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.default_value = 0 +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.type = 5 +SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_AM_DEAD_FIELD.name = "am_dead" +SKILL_CONDITION_CFG_AM_DEAD_FIELD.full_name = ".ftcfg.skill_condition_cfg.am_dead" +SKILL_CONDITION_CFG_AM_DEAD_FIELD.number = 25 +SKILL_CONDITION_CFG_AM_DEAD_FIELD.index = 24 +SKILL_CONDITION_CFG_AM_DEAD_FIELD.label = 2 +SKILL_CONDITION_CFG_AM_DEAD_FIELD.has_default_value = false +SKILL_CONDITION_CFG_AM_DEAD_FIELD.default_value = 0 +SKILL_CONDITION_CFG_AM_DEAD_FIELD.type = 5 +SKILL_CONDITION_CFG_AM_DEAD_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.name = "dead_back_type" +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.full_name = ".ftcfg.skill_condition_cfg.dead_back_type" +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.number = 26 +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.index = 25 +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.label = 2 +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.default_value = 0 +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.type = 5 +SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.name = "dead_dis" +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.full_name = ".ftcfg.skill_condition_cfg.dead_dis" +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.number = 27 +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.index = 26 +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.label = 2 +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.has_default_value = false +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.type = 2 +SKILL_CONDITION_CFG_DEAD_DIS_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.name = "dead_back_move_time" +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.full_name = ".ftcfg.skill_condition_cfg.dead_back_move_time" +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.number = 28 +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.index = 27 +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.label = 2 +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.has_default_value = false +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.default_value = 0 +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.type = 5 +SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.name = "self_effect_1" +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.full_name = ".ftcfg.skill_condition_cfg.self_effect_1" +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.number = 29 +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.index = 28 +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.label = 2 +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.has_default_value = false +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.default_value = 0 +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.type = 5 +SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.name = "self_hit_buff1" +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.full_name = ".ftcfg.skill_condition_cfg.self_hit_buff1" +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.number = 30 +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.index = 29 +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.label = 2 +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.has_default_value = false +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.default_value = 0 +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.type = 5 +SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.name = "self_hit_buff_chance1" +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.full_name = ".ftcfg.skill_condition_cfg.self_hit_buff_chance1" +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.number = 31 +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.index = 30 +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.label = 2 +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.has_default_value = false +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.type = 2 +SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.name = "hit_effect_1" +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_effect_1" +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.number = 32 +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.index = 31 +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.default_value = 0 +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.type = 5 +SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.name = "hit_effect_2" +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_effect_2" +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.number = 33 +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.index = 32 +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.default_value = 0 +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.type = 5 +SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.name = "hit_effect_3" +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_effect_3" +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.number = 34 +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.index = 33 +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.default_value = 0 +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.type = 5 +SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.name = "hit_buff1" +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_buff1" +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.number = 35 +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.index = 34 +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.default_value = 0 +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.type = 5 +SKILL_CONDITION_CFG_HIT_BUFF1_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.name = "hit_buff_chance1" +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_buff_chance1" +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.number = 36 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.index = 35 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.type = 2 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.name = "hit_buff2" +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_buff2" +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.number = 37 +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.index = 36 +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.default_value = 0 +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.type = 5 +SKILL_CONDITION_CFG_HIT_BUFF2_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.name = "hit_buff_chance2" +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_buff_chance2" +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.number = 38 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.index = 37 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.type = 2 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.name = "hit_buff3" +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_buff3" +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.number = 39 +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.index = 38 +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.default_value = 0 +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.type = 5 +SKILL_CONDITION_CFG_HIT_BUFF3_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.name = "hit_buff_chance3" +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.full_name = ".ftcfg.skill_condition_cfg.hit_buff_chance3" +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.number = 40 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.index = 39 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.label = 2 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.has_default_value = false +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.type = 2 +SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.name = "crit_effect" +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.full_name = ".ftcfg.skill_condition_cfg.crit_effect" +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.number = 41 +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.index = 40 +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.label = 2 +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.has_default_value = false +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.default_value = 0 +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.type = 5 +SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.name = "dead_strike_effect" +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.full_name = ".ftcfg.skill_condition_cfg.dead_strike_effect" +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.number = 42 +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.index = 41 +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.label = 2 +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.has_default_value = false +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.default_value = 0 +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.type = 5 +SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.name = "buff_when_crit" +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.full_name = ".ftcfg.skill_condition_cfg.buff_when_crit" +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.number = 43 +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.index = 42 +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.label = 2 +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.default_value = 0 +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.type = 5 +SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.name = "buff_chance_when_crit" +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.full_name = ".ftcfg.skill_condition_cfg.buff_chance_when_crit" +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.number = 44 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.index = 43 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.label = 2 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.type = 2 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.name = "buff_when_deadstrike" +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.full_name = ".ftcfg.skill_condition_cfg.buff_when_deadstrike" +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.number = 45 +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.index = 44 +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.label = 2 +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.default_value = 0 +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.type = 5 +SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD.cpp_type = 1 + +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.name = "buff_chance_when_deadstrike" +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.full_name = ".ftcfg.skill_condition_cfg.buff_chance_when_deadstrike" +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.number = 46 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.index = 45 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.label = 2 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.has_default_value = false +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.default_value = 0.0 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.type = 2 +SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD.cpp_type = 6 + +SKILL_CONDITION_CFG.name = "skill_condition_cfg" +SKILL_CONDITION_CFG.full_name = ".ftcfg.skill_condition_cfg" +SKILL_CONDITION_CFG.nested_types = {} +SKILL_CONDITION_CFG.enum_types = {} +SKILL_CONDITION_CFG.fields = {SKILL_CONDITION_CFG_ID_FIELD, SKILL_CONDITION_CFG_DESC_FIELD, SKILL_CONDITION_CFG_EFFECT_TARGET_FIELD, SKILL_CONDITION_CFG_RANGE_TYPE_FIELD, SKILL_CONDITION_CFG_RANGE_ANGLE_FIELD, SKILL_CONDITION_CFG_RANGE_OFFSET_X_FIELD, SKILL_CONDITION_CFG_RANGE_OFFSET_Z_FIELD, SKILL_CONDITION_CFG_RANGE_PARA1_FIELD, SKILL_CONDITION_CFG_RANGE_PARA2_FIELD, SKILL_CONDITION_CFG_ENTITY_TYPES_FIELD, SKILL_CONDITION_CFG_INCLUDE_TARGET_FIELD, SKILL_CONDITION_CFG_TARGET_NUM_FIELD, SKILL_CONDITION_CFG_IGNORE_BLOCK_FIELD, SKILL_CONDITION_CFG_IGNORE_DODGE_FIELD, SKILL_CONDITION_CFG_TARGET_ORDER_TYPE_FIELD, SKILL_CONDITION_CFG_REPEAT_NUM_FIELD, SKILL_CONDITION_CFG_HIT_RATE_FIELD, SKILL_CONDITION_CFG_ATK_LV_FIELD, SKILL_CONDITION_CFG_AM_BEATEN_FIELD, SKILL_CONDITION_CFG_AM_BEATEN_EFF_FIELD, SKILL_CONDITION_CFG_BEATEN_TIME_FIELD, SKILL_CONDITION_CFG_BEAT_BACK_TYPE_FIELD, SKILL_CONDITION_CFG_BEAT_DIS_FIELD, SKILL_CONDITION_CFG_BEAT_BACK_MOVE_TIME_FIELD, SKILL_CONDITION_CFG_AM_DEAD_FIELD, SKILL_CONDITION_CFG_DEAD_BACK_TYPE_FIELD, SKILL_CONDITION_CFG_DEAD_DIS_FIELD, SKILL_CONDITION_CFG_DEAD_BACK_MOVE_TIME_FIELD, SKILL_CONDITION_CFG_SELF_EFFECT_1_FIELD, SKILL_CONDITION_CFG_SELF_HIT_BUFF1_FIELD, SKILL_CONDITION_CFG_SELF_HIT_BUFF_CHANCE1_FIELD, SKILL_CONDITION_CFG_HIT_EFFECT_1_FIELD, SKILL_CONDITION_CFG_HIT_EFFECT_2_FIELD, SKILL_CONDITION_CFG_HIT_EFFECT_3_FIELD, SKILL_CONDITION_CFG_HIT_BUFF1_FIELD, SKILL_CONDITION_CFG_HIT_BUFF_CHANCE1_FIELD, SKILL_CONDITION_CFG_HIT_BUFF2_FIELD, SKILL_CONDITION_CFG_HIT_BUFF_CHANCE2_FIELD, SKILL_CONDITION_CFG_HIT_BUFF3_FIELD, SKILL_CONDITION_CFG_HIT_BUFF_CHANCE3_FIELD, SKILL_CONDITION_CFG_CRIT_EFFECT_FIELD, SKILL_CONDITION_CFG_DEAD_STRIKE_EFFECT_FIELD, SKILL_CONDITION_CFG_BUFF_WHEN_CRIT_FIELD, SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_CRIT_FIELD, SKILL_CONDITION_CFG_BUFF_WHEN_DEADSTRIKE_FIELD, SKILL_CONDITION_CFG_BUFF_CHANCE_WHEN_DEADSTRIKE_FIELD} +SKILL_CONDITION_CFG.is_extendable = false +SKILL_CONDITION_CFG.extensions = {} +SKILL_CONDITION_CFGS_ITEMS_FIELD.name = "items" +SKILL_CONDITION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.skill_condition_cfgs.items" +SKILL_CONDITION_CFGS_ITEMS_FIELD.number = 1 +SKILL_CONDITION_CFGS_ITEMS_FIELD.index = 0 +SKILL_CONDITION_CFGS_ITEMS_FIELD.label = 3 +SKILL_CONDITION_CFGS_ITEMS_FIELD.has_default_value = false +SKILL_CONDITION_CFGS_ITEMS_FIELD.default_value = {} +SKILL_CONDITION_CFGS_ITEMS_FIELD.message_type = SKILL_CONDITION_CFG +SKILL_CONDITION_CFGS_ITEMS_FIELD.type = 11 +SKILL_CONDITION_CFGS_ITEMS_FIELD.cpp_type = 10 + +SKILL_CONDITION_CFGS.name = "skill_condition_cfgs" +SKILL_CONDITION_CFGS.full_name = ".ftcfg.skill_condition_cfgs" +SKILL_CONDITION_CFGS.nested_types = {} +SKILL_CONDITION_CFGS.enum_types = {} +SKILL_CONDITION_CFGS.fields = {SKILL_CONDITION_CFGS_ITEMS_FIELD} +SKILL_CONDITION_CFGS.is_extendable = false +SKILL_CONDITION_CFGS.extensions = {} +TEST_CFG_ID_FIELD.name = "id" +TEST_CFG_ID_FIELD.full_name = ".ftcfg.test_cfg.id" +TEST_CFG_ID_FIELD.number = 1 +TEST_CFG_ID_FIELD.index = 0 +TEST_CFG_ID_FIELD.label = 2 +TEST_CFG_ID_FIELD.has_default_value = false +TEST_CFG_ID_FIELD.default_value = 0 +TEST_CFG_ID_FIELD.type = 5 +TEST_CFG_ID_FIELD.cpp_type = 1 + +TEST_CFG_TESTSTRUCT1_FIELD.name = "testStruct1" +TEST_CFG_TESTSTRUCT1_FIELD.full_name = ".ftcfg.test_cfg.testStruct1" +TEST_CFG_TESTSTRUCT1_FIELD.number = 2 +TEST_CFG_TESTSTRUCT1_FIELD.index = 1 +TEST_CFG_TESTSTRUCT1_FIELD.label = 1 +TEST_CFG_TESTSTRUCT1_FIELD.has_default_value = false +TEST_CFG_TESTSTRUCT1_FIELD.default_value = nil +TEST_CFG_TESTSTRUCT1_FIELD.message_type = config_predefine_pb.TESTSTRUCT +TEST_CFG_TESTSTRUCT1_FIELD.type = 11 +TEST_CFG_TESTSTRUCT1_FIELD.cpp_type = 10 + +TEST_CFG_TES_FIELD.name = "tes" +TEST_CFG_TES_FIELD.full_name = ".ftcfg.test_cfg.tes" +TEST_CFG_TES_FIELD.number = 3 +TEST_CFG_TES_FIELD.index = 2 +TEST_CFG_TES_FIELD.label = 3 +TEST_CFG_TES_FIELD.has_default_value = false +TEST_CFG_TES_FIELD.default_value = {} +TEST_CFG_TES_FIELD.enum_type = config_predefine_pb.TESTENUM +TEST_CFG_TES_FIELD.type = 14 +TEST_CFG_TES_FIELD.cpp_type = 8 + +TEST_CFG.name = "test_cfg" +TEST_CFG.full_name = ".ftcfg.test_cfg" +TEST_CFG.nested_types = {} +TEST_CFG.enum_types = {} +TEST_CFG.fields = {TEST_CFG_ID_FIELD, TEST_CFG_TESTSTRUCT1_FIELD, TEST_CFG_TES_FIELD} +TEST_CFG.is_extendable = false +TEST_CFG.extensions = {} +TEST_CFGS_ITEMS_FIELD.name = "items" +TEST_CFGS_ITEMS_FIELD.full_name = ".ftcfg.test_cfgs.items" +TEST_CFGS_ITEMS_FIELD.number = 1 +TEST_CFGS_ITEMS_FIELD.index = 0 +TEST_CFGS_ITEMS_FIELD.label = 3 +TEST_CFGS_ITEMS_FIELD.has_default_value = false +TEST_CFGS_ITEMS_FIELD.default_value = {} +TEST_CFGS_ITEMS_FIELD.message_type = TEST_CFG +TEST_CFGS_ITEMS_FIELD.type = 11 +TEST_CFGS_ITEMS_FIELD.cpp_type = 10 + +TEST_CFGS.name = "test_cfgs" +TEST_CFGS.full_name = ".ftcfg.test_cfgs" +TEST_CFGS.nested_types = {} +TEST_CFGS.enum_types = {} +TEST_CFGS.fields = {TEST_CFGS_ITEMS_FIELD} +TEST_CFGS.is_extendable = false +TEST_CFGS.extensions = {} +ITEM_CFG_ID_FIELD.name = "id" +ITEM_CFG_ID_FIELD.full_name = ".ftcfg.item_cfg.id" +ITEM_CFG_ID_FIELD.number = 1 +ITEM_CFG_ID_FIELD.index = 0 +ITEM_CFG_ID_FIELD.label = 2 +ITEM_CFG_ID_FIELD.has_default_value = false +ITEM_CFG_ID_FIELD.default_value = 0 +ITEM_CFG_ID_FIELD.type = 13 +ITEM_CFG_ID_FIELD.cpp_type = 3 + +ITEM_CFG_ITEM_NAME_FIELD.name = "item_name" +ITEM_CFG_ITEM_NAME_FIELD.full_name = ".ftcfg.item_cfg.item_name" +ITEM_CFG_ITEM_NAME_FIELD.number = 2 +ITEM_CFG_ITEM_NAME_FIELD.index = 1 +ITEM_CFG_ITEM_NAME_FIELD.label = 2 +ITEM_CFG_ITEM_NAME_FIELD.has_default_value = false +ITEM_CFG_ITEM_NAME_FIELD.default_value = "" +ITEM_CFG_ITEM_NAME_FIELD.type = 9 +ITEM_CFG_ITEM_NAME_FIELD.cpp_type = 9 + +ITEM_CFG_FORMULA_ID_FIELD.name = "formula_id" +ITEM_CFG_FORMULA_ID_FIELD.full_name = ".ftcfg.item_cfg.formula_id" +ITEM_CFG_FORMULA_ID_FIELD.number = 3 +ITEM_CFG_FORMULA_ID_FIELD.index = 2 +ITEM_CFG_FORMULA_ID_FIELD.label = 2 +ITEM_CFG_FORMULA_ID_FIELD.has_default_value = false +ITEM_CFG_FORMULA_ID_FIELD.default_value = 0 +ITEM_CFG_FORMULA_ID_FIELD.type = 5 +ITEM_CFG_FORMULA_ID_FIELD.cpp_type = 1 + +ITEM_CFG_ITEM_DESC_FIELD.name = "item_desc" +ITEM_CFG_ITEM_DESC_FIELD.full_name = ".ftcfg.item_cfg.item_desc" +ITEM_CFG_ITEM_DESC_FIELD.number = 4 +ITEM_CFG_ITEM_DESC_FIELD.index = 3 +ITEM_CFG_ITEM_DESC_FIELD.label = 2 +ITEM_CFG_ITEM_DESC_FIELD.has_default_value = false +ITEM_CFG_ITEM_DESC_FIELD.default_value = "" +ITEM_CFG_ITEM_DESC_FIELD.type = 9 +ITEM_CFG_ITEM_DESC_FIELD.cpp_type = 9 + +ITEM_CFG_STACK_MAX_FIELD.name = "stack_max" +ITEM_CFG_STACK_MAX_FIELD.full_name = ".ftcfg.item_cfg.stack_max" +ITEM_CFG_STACK_MAX_FIELD.number = 5 +ITEM_CFG_STACK_MAX_FIELD.index = 4 +ITEM_CFG_STACK_MAX_FIELD.label = 2 +ITEM_CFG_STACK_MAX_FIELD.has_default_value = false +ITEM_CFG_STACK_MAX_FIELD.default_value = 0 +ITEM_CFG_STACK_MAX_FIELD.type = 5 +ITEM_CFG_STACK_MAX_FIELD.cpp_type = 1 + +ITEM_CFG_NEED_LEVEL_FIELD.name = "need_level" +ITEM_CFG_NEED_LEVEL_FIELD.full_name = ".ftcfg.item_cfg.need_level" +ITEM_CFG_NEED_LEVEL_FIELD.number = 6 +ITEM_CFG_NEED_LEVEL_FIELD.index = 5 +ITEM_CFG_NEED_LEVEL_FIELD.label = 2 +ITEM_CFG_NEED_LEVEL_FIELD.has_default_value = false +ITEM_CFG_NEED_LEVEL_FIELD.default_value = 0 +ITEM_CFG_NEED_LEVEL_FIELD.type = 5 +ITEM_CFG_NEED_LEVEL_FIELD.cpp_type = 1 + +ITEM_CFG_NEED_PROF_FIELD.name = "need_prof" +ITEM_CFG_NEED_PROF_FIELD.full_name = ".ftcfg.item_cfg.need_prof" +ITEM_CFG_NEED_PROF_FIELD.number = 7 +ITEM_CFG_NEED_PROF_FIELD.index = 6 +ITEM_CFG_NEED_PROF_FIELD.label = 2 +ITEM_CFG_NEED_PROF_FIELD.has_default_value = false +ITEM_CFG_NEED_PROF_FIELD.default_value = nil +ITEM_CFG_NEED_PROF_FIELD.enum_type = config_predefine_pb.EPROFTYPE +ITEM_CFG_NEED_PROF_FIELD.type = 14 +ITEM_CFG_NEED_PROF_FIELD.cpp_type = 8 + +ITEM_CFG_ITEM_TYPE_FIELD.name = "item_type" +ITEM_CFG_ITEM_TYPE_FIELD.full_name = ".ftcfg.item_cfg.item_type" +ITEM_CFG_ITEM_TYPE_FIELD.number = 8 +ITEM_CFG_ITEM_TYPE_FIELD.index = 7 +ITEM_CFG_ITEM_TYPE_FIELD.label = 2 +ITEM_CFG_ITEM_TYPE_FIELD.has_default_value = false +ITEM_CFG_ITEM_TYPE_FIELD.default_value = nil +ITEM_CFG_ITEM_TYPE_FIELD.enum_type = config_predefine_pb.EITEMTYPE +ITEM_CFG_ITEM_TYPE_FIELD.type = 14 +ITEM_CFG_ITEM_TYPE_FIELD.cpp_type = 8 + +ITEM_CFG_ITEM_SUB_TYPE_FIELD.name = "item_sub_type" +ITEM_CFG_ITEM_SUB_TYPE_FIELD.full_name = ".ftcfg.item_cfg.item_sub_type" +ITEM_CFG_ITEM_SUB_TYPE_FIELD.number = 9 +ITEM_CFG_ITEM_SUB_TYPE_FIELD.index = 8 +ITEM_CFG_ITEM_SUB_TYPE_FIELD.label = 2 +ITEM_CFG_ITEM_SUB_TYPE_FIELD.has_default_value = false +ITEM_CFG_ITEM_SUB_TYPE_FIELD.default_value = 0 +ITEM_CFG_ITEM_SUB_TYPE_FIELD.type = 5 +ITEM_CFG_ITEM_SUB_TYPE_FIELD.cpp_type = 1 + +ITEM_CFG_ITEM_PART_FIELD.name = "item_part" +ITEM_CFG_ITEM_PART_FIELD.full_name = ".ftcfg.item_cfg.item_part" +ITEM_CFG_ITEM_PART_FIELD.number = 10 +ITEM_CFG_ITEM_PART_FIELD.index = 9 +ITEM_CFG_ITEM_PART_FIELD.label = 3 +ITEM_CFG_ITEM_PART_FIELD.has_default_value = false +ITEM_CFG_ITEM_PART_FIELD.default_value = {} +ITEM_CFG_ITEM_PART_FIELD.type = 5 +ITEM_CFG_ITEM_PART_FIELD.cpp_type = 1 + +ITEM_CFG_DISPLAY_TYPE_FIELD.name = "display_type" +ITEM_CFG_DISPLAY_TYPE_FIELD.full_name = ".ftcfg.item_cfg.display_type" +ITEM_CFG_DISPLAY_TYPE_FIELD.number = 11 +ITEM_CFG_DISPLAY_TYPE_FIELD.index = 10 +ITEM_CFG_DISPLAY_TYPE_FIELD.label = 2 +ITEM_CFG_DISPLAY_TYPE_FIELD.has_default_value = false +ITEM_CFG_DISPLAY_TYPE_FIELD.default_value = 0 +ITEM_CFG_DISPLAY_TYPE_FIELD.type = 5 +ITEM_CFG_DISPLAY_TYPE_FIELD.cpp_type = 1 + +ITEM_CFG_ITEM_COLOR_FIELD.name = "item_color" +ITEM_CFG_ITEM_COLOR_FIELD.full_name = ".ftcfg.item_cfg.item_color" +ITEM_CFG_ITEM_COLOR_FIELD.number = 12 +ITEM_CFG_ITEM_COLOR_FIELD.index = 11 +ITEM_CFG_ITEM_COLOR_FIELD.label = 2 +ITEM_CFG_ITEM_COLOR_FIELD.has_default_value = false +ITEM_CFG_ITEM_COLOR_FIELD.default_value = nil +ITEM_CFG_ITEM_COLOR_FIELD.enum_type = config_predefine_pb.EITEMCOLOR +ITEM_CFG_ITEM_COLOR_FIELD.type = 14 +ITEM_CFG_ITEM_COLOR_FIELD.cpp_type = 8 + +ITEM_CFG_ITEM_ICON_FIELD.name = "item_icon" +ITEM_CFG_ITEM_ICON_FIELD.full_name = ".ftcfg.item_cfg.item_icon" +ITEM_CFG_ITEM_ICON_FIELD.number = 13 +ITEM_CFG_ITEM_ICON_FIELD.index = 12 +ITEM_CFG_ITEM_ICON_FIELD.label = 2 +ITEM_CFG_ITEM_ICON_FIELD.has_default_value = false +ITEM_CFG_ITEM_ICON_FIELD.default_value = "" +ITEM_CFG_ITEM_ICON_FIELD.type = 9 +ITEM_CFG_ITEM_ICON_FIELD.cpp_type = 9 + +ITEM_CFG_ITEM_MARK_FIELD.name = "item_mark" +ITEM_CFG_ITEM_MARK_FIELD.full_name = ".ftcfg.item_cfg.item_mark" +ITEM_CFG_ITEM_MARK_FIELD.number = 14 +ITEM_CFG_ITEM_MARK_FIELD.index = 13 +ITEM_CFG_ITEM_MARK_FIELD.label = 2 +ITEM_CFG_ITEM_MARK_FIELD.has_default_value = false +ITEM_CFG_ITEM_MARK_FIELD.default_value = 0 +ITEM_CFG_ITEM_MARK_FIELD.type = 5 +ITEM_CFG_ITEM_MARK_FIELD.cpp_type = 1 + +ITEM_CFG_OWN_MAX_FIELD.name = "own_max" +ITEM_CFG_OWN_MAX_FIELD.full_name = ".ftcfg.item_cfg.own_max" +ITEM_CFG_OWN_MAX_FIELD.number = 15 +ITEM_CFG_OWN_MAX_FIELD.index = 14 +ITEM_CFG_OWN_MAX_FIELD.label = 2 +ITEM_CFG_OWN_MAX_FIELD.has_default_value = false +ITEM_CFG_OWN_MAX_FIELD.default_value = 0 +ITEM_CFG_OWN_MAX_FIELD.type = 13 +ITEM_CFG_OWN_MAX_FIELD.cpp_type = 3 + +ITEM_CFG_COULD_TRADE_FIELD.name = "could_trade" +ITEM_CFG_COULD_TRADE_FIELD.full_name = ".ftcfg.item_cfg.could_trade" +ITEM_CFG_COULD_TRADE_FIELD.number = 16 +ITEM_CFG_COULD_TRADE_FIELD.index = 15 +ITEM_CFG_COULD_TRADE_FIELD.label = 2 +ITEM_CFG_COULD_TRADE_FIELD.has_default_value = false +ITEM_CFG_COULD_TRADE_FIELD.default_value = 0 +ITEM_CFG_COULD_TRADE_FIELD.type = 5 +ITEM_CFG_COULD_TRADE_FIELD.cpp_type = 1 + +ITEM_CFG_TRADE_COOLDOWN_FIELD.name = "trade_cooldown" +ITEM_CFG_TRADE_COOLDOWN_FIELD.full_name = ".ftcfg.item_cfg.trade_cooldown" +ITEM_CFG_TRADE_COOLDOWN_FIELD.number = 17 +ITEM_CFG_TRADE_COOLDOWN_FIELD.index = 16 +ITEM_CFG_TRADE_COOLDOWN_FIELD.label = 2 +ITEM_CFG_TRADE_COOLDOWN_FIELD.has_default_value = false +ITEM_CFG_TRADE_COOLDOWN_FIELD.default_value = 0 +ITEM_CFG_TRADE_COOLDOWN_FIELD.type = 5 +ITEM_CFG_TRADE_COOLDOWN_FIELD.cpp_type = 1 + +ITEM_CFG_COULD_SELL_FIELD.name = "could_sell" +ITEM_CFG_COULD_SELL_FIELD.full_name = ".ftcfg.item_cfg.could_sell" +ITEM_CFG_COULD_SELL_FIELD.number = 18 +ITEM_CFG_COULD_SELL_FIELD.index = 17 +ITEM_CFG_COULD_SELL_FIELD.label = 2 +ITEM_CFG_COULD_SELL_FIELD.has_default_value = false +ITEM_CFG_COULD_SELL_FIELD.default_value = 0 +ITEM_CFG_COULD_SELL_FIELD.type = 5 +ITEM_CFG_COULD_SELL_FIELD.cpp_type = 1 + +ITEM_CFG_SELL_COST_TYPE_FIELD.name = "sell_cost_type" +ITEM_CFG_SELL_COST_TYPE_FIELD.full_name = ".ftcfg.item_cfg.sell_cost_type" +ITEM_CFG_SELL_COST_TYPE_FIELD.number = 19 +ITEM_CFG_SELL_COST_TYPE_FIELD.index = 18 +ITEM_CFG_SELL_COST_TYPE_FIELD.label = 2 +ITEM_CFG_SELL_COST_TYPE_FIELD.has_default_value = false +ITEM_CFG_SELL_COST_TYPE_FIELD.default_value = 0 +ITEM_CFG_SELL_COST_TYPE_FIELD.type = 5 +ITEM_CFG_SELL_COST_TYPE_FIELD.cpp_type = 1 + +ITEM_CFG_SELL_COST_NUM_FIELD.name = "sell_cost_num" +ITEM_CFG_SELL_COST_NUM_FIELD.full_name = ".ftcfg.item_cfg.sell_cost_num" +ITEM_CFG_SELL_COST_NUM_FIELD.number = 20 +ITEM_CFG_SELL_COST_NUM_FIELD.index = 19 +ITEM_CFG_SELL_COST_NUM_FIELD.label = 2 +ITEM_CFG_SELL_COST_NUM_FIELD.has_default_value = false +ITEM_CFG_SELL_COST_NUM_FIELD.default_value = 0 +ITEM_CFG_SELL_COST_NUM_FIELD.type = 5 +ITEM_CFG_SELL_COST_NUM_FIELD.cpp_type = 1 + +ITEM_CFG_COULD_USE_FIELD.name = "could_use" +ITEM_CFG_COULD_USE_FIELD.full_name = ".ftcfg.item_cfg.could_use" +ITEM_CFG_COULD_USE_FIELD.number = 21 +ITEM_CFG_COULD_USE_FIELD.index = 20 +ITEM_CFG_COULD_USE_FIELD.label = 2 +ITEM_CFG_COULD_USE_FIELD.has_default_value = false +ITEM_CFG_COULD_USE_FIELD.default_value = 0 +ITEM_CFG_COULD_USE_FIELD.type = 5 +ITEM_CFG_COULD_USE_FIELD.cpp_type = 1 + +ITEM_CFG_COULD_WINDOWUSE_FIELD.name = "could_windowuse" +ITEM_CFG_COULD_WINDOWUSE_FIELD.full_name = ".ftcfg.item_cfg.could_windowuse" +ITEM_CFG_COULD_WINDOWUSE_FIELD.number = 22 +ITEM_CFG_COULD_WINDOWUSE_FIELD.index = 21 +ITEM_CFG_COULD_WINDOWUSE_FIELD.label = 2 +ITEM_CFG_COULD_WINDOWUSE_FIELD.has_default_value = false +ITEM_CFG_COULD_WINDOWUSE_FIELD.default_value = 0 +ITEM_CFG_COULD_WINDOWUSE_FIELD.type = 5 +ITEM_CFG_COULD_WINDOWUSE_FIELD.cpp_type = 1 + +ITEM_CFG_WINDOWUSE_MAX_FIELD.name = "windowuse_max" +ITEM_CFG_WINDOWUSE_MAX_FIELD.full_name = ".ftcfg.item_cfg.windowuse_max" +ITEM_CFG_WINDOWUSE_MAX_FIELD.number = 23 +ITEM_CFG_WINDOWUSE_MAX_FIELD.index = 22 +ITEM_CFG_WINDOWUSE_MAX_FIELD.label = 2 +ITEM_CFG_WINDOWUSE_MAX_FIELD.has_default_value = false +ITEM_CFG_WINDOWUSE_MAX_FIELD.default_value = 0 +ITEM_CFG_WINDOWUSE_MAX_FIELD.type = 5 +ITEM_CFG_WINDOWUSE_MAX_FIELD.cpp_type = 1 + +ITEM_CFG_COULD_SHOW_USE_FIELD.name = "could_show_use" +ITEM_CFG_COULD_SHOW_USE_FIELD.full_name = ".ftcfg.item_cfg.could_show_use" +ITEM_CFG_COULD_SHOW_USE_FIELD.number = 24 +ITEM_CFG_COULD_SHOW_USE_FIELD.index = 23 +ITEM_CFG_COULD_SHOW_USE_FIELD.label = 2 +ITEM_CFG_COULD_SHOW_USE_FIELD.has_default_value = false +ITEM_CFG_COULD_SHOW_USE_FIELD.default_value = 0 +ITEM_CFG_COULD_SHOW_USE_FIELD.type = 5 +ITEM_CFG_COULD_SHOW_USE_FIELD.cpp_type = 1 + +ITEM_CFG_USE_DELAY_FIELD.name = "use_delay" +ITEM_CFG_USE_DELAY_FIELD.full_name = ".ftcfg.item_cfg.use_delay" +ITEM_CFG_USE_DELAY_FIELD.number = 25 +ITEM_CFG_USE_DELAY_FIELD.index = 24 +ITEM_CFG_USE_DELAY_FIELD.label = 2 +ITEM_CFG_USE_DELAY_FIELD.has_default_value = false +ITEM_CFG_USE_DELAY_FIELD.default_value = 0 +ITEM_CFG_USE_DELAY_FIELD.type = 5 +ITEM_CFG_USE_DELAY_FIELD.cpp_type = 1 + +ITEM_CFG_COULD_BULK_USE_FIELD.name = "could_bulk_use" +ITEM_CFG_COULD_BULK_USE_FIELD.full_name = ".ftcfg.item_cfg.could_bulk_use" +ITEM_CFG_COULD_BULK_USE_FIELD.number = 26 +ITEM_CFG_COULD_BULK_USE_FIELD.index = 25 +ITEM_CFG_COULD_BULK_USE_FIELD.label = 2 +ITEM_CFG_COULD_BULK_USE_FIELD.has_default_value = false +ITEM_CFG_COULD_BULK_USE_FIELD.default_value = 0 +ITEM_CFG_COULD_BULK_USE_FIELD.type = 5 +ITEM_CFG_COULD_BULK_USE_FIELD.cpp_type = 1 + +ITEM_CFG_CD_GROUP_ID_FIELD.name = "cd_group_id" +ITEM_CFG_CD_GROUP_ID_FIELD.full_name = ".ftcfg.item_cfg.cd_group_id" +ITEM_CFG_CD_GROUP_ID_FIELD.number = 27 +ITEM_CFG_CD_GROUP_ID_FIELD.index = 26 +ITEM_CFG_CD_GROUP_ID_FIELD.label = 2 +ITEM_CFG_CD_GROUP_ID_FIELD.has_default_value = false +ITEM_CFG_CD_GROUP_ID_FIELD.default_value = 0 +ITEM_CFG_CD_GROUP_ID_FIELD.type = 5 +ITEM_CFG_CD_GROUP_ID_FIELD.cpp_type = 1 + +ITEM_CFG_CD_TIME_FIELD.name = "cd_time" +ITEM_CFG_CD_TIME_FIELD.full_name = ".ftcfg.item_cfg.cd_time" +ITEM_CFG_CD_TIME_FIELD.number = 28 +ITEM_CFG_CD_TIME_FIELD.index = 27 +ITEM_CFG_CD_TIME_FIELD.label = 2 +ITEM_CFG_CD_TIME_FIELD.has_default_value = false +ITEM_CFG_CD_TIME_FIELD.default_value = 0 +ITEM_CFG_CD_TIME_FIELD.type = 5 +ITEM_CFG_CD_TIME_FIELD.cpp_type = 1 + +ITEM_CFG_COULD_IN_STORAGE_FIELD.name = "could_in_storage" +ITEM_CFG_COULD_IN_STORAGE_FIELD.full_name = ".ftcfg.item_cfg.could_in_storage" +ITEM_CFG_COULD_IN_STORAGE_FIELD.number = 29 +ITEM_CFG_COULD_IN_STORAGE_FIELD.index = 28 +ITEM_CFG_COULD_IN_STORAGE_FIELD.label = 2 +ITEM_CFG_COULD_IN_STORAGE_FIELD.has_default_value = false +ITEM_CFG_COULD_IN_STORAGE_FIELD.default_value = 0 +ITEM_CFG_COULD_IN_STORAGE_FIELD.type = 5 +ITEM_CFG_COULD_IN_STORAGE_FIELD.cpp_type = 1 + +ITEM_CFG_COULD_OBTAIN_FIELD.name = "could_obtain" +ITEM_CFG_COULD_OBTAIN_FIELD.full_name = ".ftcfg.item_cfg.could_obtain" +ITEM_CFG_COULD_OBTAIN_FIELD.number = 30 +ITEM_CFG_COULD_OBTAIN_FIELD.index = 29 +ITEM_CFG_COULD_OBTAIN_FIELD.label = 2 +ITEM_CFG_COULD_OBTAIN_FIELD.has_default_value = false +ITEM_CFG_COULD_OBTAIN_FIELD.default_value = 0 +ITEM_CFG_COULD_OBTAIN_FIELD.type = 5 +ITEM_CFG_COULD_OBTAIN_FIELD.cpp_type = 1 + +ITEM_CFG_OBTAIN_LIST_FIELD.name = "obtain_list" +ITEM_CFG_OBTAIN_LIST_FIELD.full_name = ".ftcfg.item_cfg.obtain_list" +ITEM_CFG_OBTAIN_LIST_FIELD.number = 31 +ITEM_CFG_OBTAIN_LIST_FIELD.index = 30 +ITEM_CFG_OBTAIN_LIST_FIELD.label = 2 +ITEM_CFG_OBTAIN_LIST_FIELD.has_default_value = false +ITEM_CFG_OBTAIN_LIST_FIELD.default_value = 0 +ITEM_CFG_OBTAIN_LIST_FIELD.type = 5 +ITEM_CFG_OBTAIN_LIST_FIELD.cpp_type = 1 + +ITEM_CFG_PROP_EFFECT1_FIELD.name = "prop_effect1" +ITEM_CFG_PROP_EFFECT1_FIELD.full_name = ".ftcfg.item_cfg.prop_effect1" +ITEM_CFG_PROP_EFFECT1_FIELD.number = 32 +ITEM_CFG_PROP_EFFECT1_FIELD.index = 31 +ITEM_CFG_PROP_EFFECT1_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT1_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT1_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT1_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT1_FIELD.cpp_type = 9 + +ITEM_CFG_PROP_EFFECT2_FIELD.name = "prop_effect2" +ITEM_CFG_PROP_EFFECT2_FIELD.full_name = ".ftcfg.item_cfg.prop_effect2" +ITEM_CFG_PROP_EFFECT2_FIELD.number = 33 +ITEM_CFG_PROP_EFFECT2_FIELD.index = 32 +ITEM_CFG_PROP_EFFECT2_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT2_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT2_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT2_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT2_FIELD.cpp_type = 9 + +ITEM_CFG_PROP_EFFECT3_FIELD.name = "prop_effect3" +ITEM_CFG_PROP_EFFECT3_FIELD.full_name = ".ftcfg.item_cfg.prop_effect3" +ITEM_CFG_PROP_EFFECT3_FIELD.number = 34 +ITEM_CFG_PROP_EFFECT3_FIELD.index = 33 +ITEM_CFG_PROP_EFFECT3_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT3_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT3_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT3_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT3_FIELD.cpp_type = 9 + +ITEM_CFG_PROP_EFFECT4_FIELD.name = "prop_effect4" +ITEM_CFG_PROP_EFFECT4_FIELD.full_name = ".ftcfg.item_cfg.prop_effect4" +ITEM_CFG_PROP_EFFECT4_FIELD.number = 35 +ITEM_CFG_PROP_EFFECT4_FIELD.index = 34 +ITEM_CFG_PROP_EFFECT4_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT4_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT4_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT4_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT4_FIELD.cpp_type = 9 + +ITEM_CFG_PROP_EFFECT5_FIELD.name = "prop_effect5" +ITEM_CFG_PROP_EFFECT5_FIELD.full_name = ".ftcfg.item_cfg.prop_effect5" +ITEM_CFG_PROP_EFFECT5_FIELD.number = 36 +ITEM_CFG_PROP_EFFECT5_FIELD.index = 35 +ITEM_CFG_PROP_EFFECT5_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT5_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT5_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT5_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT5_FIELD.cpp_type = 9 + +ITEM_CFG_PROP_EFFECT6_FIELD.name = "prop_effect6" +ITEM_CFG_PROP_EFFECT6_FIELD.full_name = ".ftcfg.item_cfg.prop_effect6" +ITEM_CFG_PROP_EFFECT6_FIELD.number = 37 +ITEM_CFG_PROP_EFFECT6_FIELD.index = 36 +ITEM_CFG_PROP_EFFECT6_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT6_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT6_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT6_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT6_FIELD.cpp_type = 9 + +ITEM_CFG_PROP_EFFECT7_FIELD.name = "prop_effect7" +ITEM_CFG_PROP_EFFECT7_FIELD.full_name = ".ftcfg.item_cfg.prop_effect7" +ITEM_CFG_PROP_EFFECT7_FIELD.number = 38 +ITEM_CFG_PROP_EFFECT7_FIELD.index = 37 +ITEM_CFG_PROP_EFFECT7_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT7_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT7_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT7_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT7_FIELD.cpp_type = 9 + +ITEM_CFG_PROP_EFFECT8_FIELD.name = "prop_effect8" +ITEM_CFG_PROP_EFFECT8_FIELD.full_name = ".ftcfg.item_cfg.prop_effect8" +ITEM_CFG_PROP_EFFECT8_FIELD.number = 39 +ITEM_CFG_PROP_EFFECT8_FIELD.index = 38 +ITEM_CFG_PROP_EFFECT8_FIELD.label = 2 +ITEM_CFG_PROP_EFFECT8_FIELD.has_default_value = false +ITEM_CFG_PROP_EFFECT8_FIELD.default_value = "" +ITEM_CFG_PROP_EFFECT8_FIELD.type = 9 +ITEM_CFG_PROP_EFFECT8_FIELD.cpp_type = 9 + +ITEM_CFG_PRICE_GOLD_FIELD.name = "price_gold" +ITEM_CFG_PRICE_GOLD_FIELD.full_name = ".ftcfg.item_cfg.price_gold" +ITEM_CFG_PRICE_GOLD_FIELD.number = 40 +ITEM_CFG_PRICE_GOLD_FIELD.index = 39 +ITEM_CFG_PRICE_GOLD_FIELD.label = 2 +ITEM_CFG_PRICE_GOLD_FIELD.has_default_value = false +ITEM_CFG_PRICE_GOLD_FIELD.default_value = 0 +ITEM_CFG_PRICE_GOLD_FIELD.type = 13 +ITEM_CFG_PRICE_GOLD_FIELD.cpp_type = 3 + +ITEM_CFG_LUCK_VALUE_FIELD.name = "luck_value" +ITEM_CFG_LUCK_VALUE_FIELD.full_name = ".ftcfg.item_cfg.luck_value" +ITEM_CFG_LUCK_VALUE_FIELD.number = 41 +ITEM_CFG_LUCK_VALUE_FIELD.index = 40 +ITEM_CFG_LUCK_VALUE_FIELD.label = 2 +ITEM_CFG_LUCK_VALUE_FIELD.has_default_value = false +ITEM_CFG_LUCK_VALUE_FIELD.default_value = 0 +ITEM_CFG_LUCK_VALUE_FIELD.type = 5 +ITEM_CFG_LUCK_VALUE_FIELD.cpp_type = 1 + +ITEM_CFG_POP_VALUE_FIELD.name = "pop_value" +ITEM_CFG_POP_VALUE_FIELD.full_name = ".ftcfg.item_cfg.pop_value" +ITEM_CFG_POP_VALUE_FIELD.number = 42 +ITEM_CFG_POP_VALUE_FIELD.index = 41 +ITEM_CFG_POP_VALUE_FIELD.label = 2 +ITEM_CFG_POP_VALUE_FIELD.has_default_value = false +ITEM_CFG_POP_VALUE_FIELD.default_value = 0 +ITEM_CFG_POP_VALUE_FIELD.type = 13 +ITEM_CFG_POP_VALUE_FIELD.cpp_type = 3 + +ITEM_CFG_COMBAT_POINT_FIELD.name = "combat_point" +ITEM_CFG_COMBAT_POINT_FIELD.full_name = ".ftcfg.item_cfg.combat_point" +ITEM_CFG_COMBAT_POINT_FIELD.number = 43 +ITEM_CFG_COMBAT_POINT_FIELD.index = 42 +ITEM_CFG_COMBAT_POINT_FIELD.label = 2 +ITEM_CFG_COMBAT_POINT_FIELD.has_default_value = false +ITEM_CFG_COMBAT_POINT_FIELD.default_value = 0 +ITEM_CFG_COMBAT_POINT_FIELD.type = 13 +ITEM_CFG_COMBAT_POINT_FIELD.cpp_type = 3 + +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.name = "effect_timelimited" +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.full_name = ".ftcfg.item_cfg.effect_timelimited" +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.number = 44 +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.index = 43 +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.label = 2 +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.has_default_value = false +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.default_value = 0 +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.type = 5 +ITEM_CFG_EFFECT_TIMELIMITED_FIELD.cpp_type = 1 + +ITEM_CFG_DROP_ID_FIELD.name = "drop_id" +ITEM_CFG_DROP_ID_FIELD.full_name = ".ftcfg.item_cfg.drop_id" +ITEM_CFG_DROP_ID_FIELD.number = 45 +ITEM_CFG_DROP_ID_FIELD.index = 44 +ITEM_CFG_DROP_ID_FIELD.label = 2 +ITEM_CFG_DROP_ID_FIELD.has_default_value = false +ITEM_CFG_DROP_ID_FIELD.default_value = 0 +ITEM_CFG_DROP_ID_FIELD.type = 13 +ITEM_CFG_DROP_ID_FIELD.cpp_type = 3 + +ITEM_CFG_COST_TYPE_FIELD.name = "cost_type" +ITEM_CFG_COST_TYPE_FIELD.full_name = ".ftcfg.item_cfg.cost_type" +ITEM_CFG_COST_TYPE_FIELD.number = 46 +ITEM_CFG_COST_TYPE_FIELD.index = 45 +ITEM_CFG_COST_TYPE_FIELD.label = 3 +ITEM_CFG_COST_TYPE_FIELD.has_default_value = false +ITEM_CFG_COST_TYPE_FIELD.default_value = {} +ITEM_CFG_COST_TYPE_FIELD.type = 13 +ITEM_CFG_COST_TYPE_FIELD.cpp_type = 3 + +ITEM_CFG_COST_COUNT_FIELD.name = "cost_count" +ITEM_CFG_COST_COUNT_FIELD.full_name = ".ftcfg.item_cfg.cost_count" +ITEM_CFG_COST_COUNT_FIELD.number = 47 +ITEM_CFG_COST_COUNT_FIELD.index = 46 +ITEM_CFG_COST_COUNT_FIELD.label = 3 +ITEM_CFG_COST_COUNT_FIELD.has_default_value = false +ITEM_CFG_COST_COUNT_FIELD.default_value = {} +ITEM_CFG_COST_COUNT_FIELD.type = 13 +ITEM_CFG_COST_COUNT_FIELD.cpp_type = 3 + +ITEM_CFG_HOLE_NUM_FIELD.name = "hole_num" +ITEM_CFG_HOLE_NUM_FIELD.full_name = ".ftcfg.item_cfg.hole_num" +ITEM_CFG_HOLE_NUM_FIELD.number = 48 +ITEM_CFG_HOLE_NUM_FIELD.index = 47 +ITEM_CFG_HOLE_NUM_FIELD.label = 2 +ITEM_CFG_HOLE_NUM_FIELD.has_default_value = false +ITEM_CFG_HOLE_NUM_FIELD.default_value = 0 +ITEM_CFG_HOLE_NUM_FIELD.type = 5 +ITEM_CFG_HOLE_NUM_FIELD.cpp_type = 1 + +ITEM_CFG_INLAY_TYPE_FIELD.name = "inlay_type" +ITEM_CFG_INLAY_TYPE_FIELD.full_name = ".ftcfg.item_cfg.inlay_type" +ITEM_CFG_INLAY_TYPE_FIELD.number = 49 +ITEM_CFG_INLAY_TYPE_FIELD.index = 48 +ITEM_CFG_INLAY_TYPE_FIELD.label = 3 +ITEM_CFG_INLAY_TYPE_FIELD.has_default_value = false +ITEM_CFG_INLAY_TYPE_FIELD.default_value = {} +ITEM_CFG_INLAY_TYPE_FIELD.type = 5 +ITEM_CFG_INLAY_TYPE_FIELD.cpp_type = 1 + +ITEM_CFG_INLAY_LEVEL_FIELD.name = "inlay_level" +ITEM_CFG_INLAY_LEVEL_FIELD.full_name = ".ftcfg.item_cfg.inlay_level" +ITEM_CFG_INLAY_LEVEL_FIELD.number = 50 +ITEM_CFG_INLAY_LEVEL_FIELD.index = 49 +ITEM_CFG_INLAY_LEVEL_FIELD.label = 2 +ITEM_CFG_INLAY_LEVEL_FIELD.has_default_value = false +ITEM_CFG_INLAY_LEVEL_FIELD.default_value = 0 +ITEM_CFG_INLAY_LEVEL_FIELD.type = 5 +ITEM_CFG_INLAY_LEVEL_FIELD.cpp_type = 1 + +ITEM_CFG.name = "item_cfg" +ITEM_CFG.full_name = ".ftcfg.item_cfg" +ITEM_CFG.nested_types = {} +ITEM_CFG.enum_types = {} +ITEM_CFG.fields = {ITEM_CFG_ID_FIELD, ITEM_CFG_ITEM_NAME_FIELD, ITEM_CFG_FORMULA_ID_FIELD, ITEM_CFG_ITEM_DESC_FIELD, ITEM_CFG_STACK_MAX_FIELD, ITEM_CFG_NEED_LEVEL_FIELD, ITEM_CFG_NEED_PROF_FIELD, ITEM_CFG_ITEM_TYPE_FIELD, ITEM_CFG_ITEM_SUB_TYPE_FIELD, ITEM_CFG_ITEM_PART_FIELD, ITEM_CFG_DISPLAY_TYPE_FIELD, ITEM_CFG_ITEM_COLOR_FIELD, ITEM_CFG_ITEM_ICON_FIELD, ITEM_CFG_ITEM_MARK_FIELD, ITEM_CFG_OWN_MAX_FIELD, ITEM_CFG_COULD_TRADE_FIELD, ITEM_CFG_TRADE_COOLDOWN_FIELD, ITEM_CFG_COULD_SELL_FIELD, ITEM_CFG_SELL_COST_TYPE_FIELD, ITEM_CFG_SELL_COST_NUM_FIELD, ITEM_CFG_COULD_USE_FIELD, ITEM_CFG_COULD_WINDOWUSE_FIELD, ITEM_CFG_WINDOWUSE_MAX_FIELD, ITEM_CFG_COULD_SHOW_USE_FIELD, ITEM_CFG_USE_DELAY_FIELD, ITEM_CFG_COULD_BULK_USE_FIELD, ITEM_CFG_CD_GROUP_ID_FIELD, ITEM_CFG_CD_TIME_FIELD, ITEM_CFG_COULD_IN_STORAGE_FIELD, ITEM_CFG_COULD_OBTAIN_FIELD, ITEM_CFG_OBTAIN_LIST_FIELD, ITEM_CFG_PROP_EFFECT1_FIELD, ITEM_CFG_PROP_EFFECT2_FIELD, ITEM_CFG_PROP_EFFECT3_FIELD, ITEM_CFG_PROP_EFFECT4_FIELD, ITEM_CFG_PROP_EFFECT5_FIELD, ITEM_CFG_PROP_EFFECT6_FIELD, ITEM_CFG_PROP_EFFECT7_FIELD, ITEM_CFG_PROP_EFFECT8_FIELD, ITEM_CFG_PRICE_GOLD_FIELD, ITEM_CFG_LUCK_VALUE_FIELD, ITEM_CFG_POP_VALUE_FIELD, ITEM_CFG_COMBAT_POINT_FIELD, ITEM_CFG_EFFECT_TIMELIMITED_FIELD, ITEM_CFG_DROP_ID_FIELD, ITEM_CFG_COST_TYPE_FIELD, ITEM_CFG_COST_COUNT_FIELD, ITEM_CFG_HOLE_NUM_FIELD, ITEM_CFG_INLAY_TYPE_FIELD, ITEM_CFG_INLAY_LEVEL_FIELD} +ITEM_CFG.is_extendable = false +ITEM_CFG.extensions = {} +ITEM_CFGS_ITEMS_FIELD.name = "items" +ITEM_CFGS_ITEMS_FIELD.full_name = ".ftcfg.item_cfgs.items" +ITEM_CFGS_ITEMS_FIELD.number = 1 +ITEM_CFGS_ITEMS_FIELD.index = 0 +ITEM_CFGS_ITEMS_FIELD.label = 3 +ITEM_CFGS_ITEMS_FIELD.has_default_value = false +ITEM_CFGS_ITEMS_FIELD.default_value = {} +ITEM_CFGS_ITEMS_FIELD.message_type = ITEM_CFG +ITEM_CFGS_ITEMS_FIELD.type = 11 +ITEM_CFGS_ITEMS_FIELD.cpp_type = 10 + +ITEM_CFGS.name = "item_cfgs" +ITEM_CFGS.full_name = ".ftcfg.item_cfgs" +ITEM_CFGS.nested_types = {} +ITEM_CFGS.enum_types = {} +ITEM_CFGS.fields = {ITEM_CFGS_ITEMS_FIELD} +ITEM_CFGS.is_extendable = false +ITEM_CFGS.extensions = {} +FIGHTCRIME_CFG_ID_FIELD.name = "id" +FIGHTCRIME_CFG_ID_FIELD.full_name = ".ftcfg.fightcrime_cfg.id" +FIGHTCRIME_CFG_ID_FIELD.number = 1 +FIGHTCRIME_CFG_ID_FIELD.index = 0 +FIGHTCRIME_CFG_ID_FIELD.label = 2 +FIGHTCRIME_CFG_ID_FIELD.has_default_value = false +FIGHTCRIME_CFG_ID_FIELD.default_value = 0 +FIGHTCRIME_CFG_ID_FIELD.type = 5 +FIGHTCRIME_CFG_ID_FIELD.cpp_type = 1 + +FIGHTCRIME_CFG_VALUE_FIELD.name = "value" +FIGHTCRIME_CFG_VALUE_FIELD.full_name = ".ftcfg.fightcrime_cfg.value" +FIGHTCRIME_CFG_VALUE_FIELD.number = 2 +FIGHTCRIME_CFG_VALUE_FIELD.index = 1 +FIGHTCRIME_CFG_VALUE_FIELD.label = 2 +FIGHTCRIME_CFG_VALUE_FIELD.has_default_value = false +FIGHTCRIME_CFG_VALUE_FIELD.default_value = 0 +FIGHTCRIME_CFG_VALUE_FIELD.type = 5 +FIGHTCRIME_CFG_VALUE_FIELD.cpp_type = 1 + +FIGHTCRIME_CFG_COLOR_FIELD.name = "color" +FIGHTCRIME_CFG_COLOR_FIELD.full_name = ".ftcfg.fightcrime_cfg.color" +FIGHTCRIME_CFG_COLOR_FIELD.number = 3 +FIGHTCRIME_CFG_COLOR_FIELD.index = 2 +FIGHTCRIME_CFG_COLOR_FIELD.label = 2 +FIGHTCRIME_CFG_COLOR_FIELD.has_default_value = false +FIGHTCRIME_CFG_COLOR_FIELD.default_value = 0 +FIGHTCRIME_CFG_COLOR_FIELD.type = 5 +FIGHTCRIME_CFG_COLOR_FIELD.cpp_type = 1 + +FIGHTCRIME_CFG_IMGBG_FIELD.name = "imgBg" +FIGHTCRIME_CFG_IMGBG_FIELD.full_name = ".ftcfg.fightcrime_cfg.imgBg" +FIGHTCRIME_CFG_IMGBG_FIELD.number = 4 +FIGHTCRIME_CFG_IMGBG_FIELD.index = 3 +FIGHTCRIME_CFG_IMGBG_FIELD.label = 2 +FIGHTCRIME_CFG_IMGBG_FIELD.has_default_value = false +FIGHTCRIME_CFG_IMGBG_FIELD.default_value = 0 +FIGHTCRIME_CFG_IMGBG_FIELD.type = 5 +FIGHTCRIME_CFG_IMGBG_FIELD.cpp_type = 1 + +FIGHTCRIME_CFG_IMGICON_FIELD.name = "imgIcon" +FIGHTCRIME_CFG_IMGICON_FIELD.full_name = ".ftcfg.fightcrime_cfg.imgIcon" +FIGHTCRIME_CFG_IMGICON_FIELD.number = 5 +FIGHTCRIME_CFG_IMGICON_FIELD.index = 4 +FIGHTCRIME_CFG_IMGICON_FIELD.label = 2 +FIGHTCRIME_CFG_IMGICON_FIELD.has_default_value = false +FIGHTCRIME_CFG_IMGICON_FIELD.default_value = 0 +FIGHTCRIME_CFG_IMGICON_FIELD.type = 5 +FIGHTCRIME_CFG_IMGICON_FIELD.cpp_type = 1 + +FIGHTCRIME_CFG_IMGFRAME_FIELD.name = "imgFrame" +FIGHTCRIME_CFG_IMGFRAME_FIELD.full_name = ".ftcfg.fightcrime_cfg.imgFrame" +FIGHTCRIME_CFG_IMGFRAME_FIELD.number = 6 +FIGHTCRIME_CFG_IMGFRAME_FIELD.index = 5 +FIGHTCRIME_CFG_IMGFRAME_FIELD.label = 2 +FIGHTCRIME_CFG_IMGFRAME_FIELD.has_default_value = false +FIGHTCRIME_CFG_IMGFRAME_FIELD.default_value = 0 +FIGHTCRIME_CFG_IMGFRAME_FIELD.type = 5 +FIGHTCRIME_CFG_IMGFRAME_FIELD.cpp_type = 1 + +FIGHTCRIME_CFG_IMGNUMBER_FIELD.name = "imgNumber" +FIGHTCRIME_CFG_IMGNUMBER_FIELD.full_name = ".ftcfg.fightcrime_cfg.imgNumber" +FIGHTCRIME_CFG_IMGNUMBER_FIELD.number = 7 +FIGHTCRIME_CFG_IMGNUMBER_FIELD.index = 6 +FIGHTCRIME_CFG_IMGNUMBER_FIELD.label = 2 +FIGHTCRIME_CFG_IMGNUMBER_FIELD.has_default_value = false +FIGHTCRIME_CFG_IMGNUMBER_FIELD.default_value = 0 +FIGHTCRIME_CFG_IMGNUMBER_FIELD.type = 5 +FIGHTCRIME_CFG_IMGNUMBER_FIELD.cpp_type = 1 + +FIGHTCRIME_CFG.name = "fightcrime_cfg" +FIGHTCRIME_CFG.full_name = ".ftcfg.fightcrime_cfg" +FIGHTCRIME_CFG.nested_types = {} +FIGHTCRIME_CFG.enum_types = {} +FIGHTCRIME_CFG.fields = {FIGHTCRIME_CFG_ID_FIELD, FIGHTCRIME_CFG_VALUE_FIELD, FIGHTCRIME_CFG_COLOR_FIELD, FIGHTCRIME_CFG_IMGBG_FIELD, FIGHTCRIME_CFG_IMGICON_FIELD, FIGHTCRIME_CFG_IMGFRAME_FIELD, FIGHTCRIME_CFG_IMGNUMBER_FIELD} +FIGHTCRIME_CFG.is_extendable = false +FIGHTCRIME_CFG.extensions = {} +FIGHTCRIME_CFGS_ITEMS_FIELD.name = "items" +FIGHTCRIME_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fightcrime_cfgs.items" +FIGHTCRIME_CFGS_ITEMS_FIELD.number = 1 +FIGHTCRIME_CFGS_ITEMS_FIELD.index = 0 +FIGHTCRIME_CFGS_ITEMS_FIELD.label = 3 +FIGHTCRIME_CFGS_ITEMS_FIELD.has_default_value = false +FIGHTCRIME_CFGS_ITEMS_FIELD.default_value = {} +FIGHTCRIME_CFGS_ITEMS_FIELD.message_type = FIGHTCRIME_CFG +FIGHTCRIME_CFGS_ITEMS_FIELD.type = 11 +FIGHTCRIME_CFGS_ITEMS_FIELD.cpp_type = 10 + +FIGHTCRIME_CFGS.name = "fightcrime_cfgs" +FIGHTCRIME_CFGS.full_name = ".ftcfg.fightcrime_cfgs" +FIGHTCRIME_CFGS.nested_types = {} +FIGHTCRIME_CFGS.enum_types = {} +FIGHTCRIME_CFGS.fields = {FIGHTCRIME_CFGS_ITEMS_FIELD} +FIGHTCRIME_CFGS.is_extendable = false +FIGHTCRIME_CFGS.extensions = {} +FIGHTCIRME_REWARD_CFG_ID_FIELD.name = "id" +FIGHTCIRME_REWARD_CFG_ID_FIELD.full_name = ".ftcfg.fightcirme_reward_cfg.id" +FIGHTCIRME_REWARD_CFG_ID_FIELD.number = 1 +FIGHTCIRME_REWARD_CFG_ID_FIELD.index = 0 +FIGHTCIRME_REWARD_CFG_ID_FIELD.label = 2 +FIGHTCIRME_REWARD_CFG_ID_FIELD.has_default_value = false +FIGHTCIRME_REWARD_CFG_ID_FIELD.default_value = 0 +FIGHTCIRME_REWARD_CFG_ID_FIELD.type = 5 +FIGHTCIRME_REWARD_CFG_ID_FIELD.cpp_type = 1 + +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.name = "items" +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.full_name = ".ftcfg.fightcirme_reward_cfg.items" +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.number = 2 +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.index = 1 +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.label = 3 +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.has_default_value = false +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.default_value = {} +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.type = 13 +FIGHTCIRME_REWARD_CFG_ITEMS_FIELD.cpp_type = 3 + +FIGHTCIRME_REWARD_CFG.name = "fightcirme_reward_cfg" +FIGHTCIRME_REWARD_CFG.full_name = ".ftcfg.fightcirme_reward_cfg" +FIGHTCIRME_REWARD_CFG.nested_types = {} +FIGHTCIRME_REWARD_CFG.enum_types = {} +FIGHTCIRME_REWARD_CFG.fields = {FIGHTCIRME_REWARD_CFG_ID_FIELD, FIGHTCIRME_REWARD_CFG_ITEMS_FIELD} +FIGHTCIRME_REWARD_CFG.is_extendable = false +FIGHTCIRME_REWARD_CFG.extensions = {} +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.name = "items" +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fightcirme_reward_cfgs.items" +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.number = 1 +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.index = 0 +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.label = 3 +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.has_default_value = false +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.default_value = {} +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.message_type = FIGHTCIRME_REWARD_CFG +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.type = 11 +FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +FIGHTCIRME_REWARD_CFGS.name = "fightcirme_reward_cfgs" +FIGHTCIRME_REWARD_CFGS.full_name = ".ftcfg.fightcirme_reward_cfgs" +FIGHTCIRME_REWARD_CFGS.nested_types = {} +FIGHTCIRME_REWARD_CFGS.enum_types = {} +FIGHTCIRME_REWARD_CFGS.fields = {FIGHTCIRME_REWARD_CFGS_ITEMS_FIELD} +FIGHTCIRME_REWARD_CFGS.is_extendable = false +FIGHTCIRME_REWARD_CFGS.extensions = {} +FIGHTCRIME_MONSTER_CFG_ID_FIELD.name = "id" +FIGHTCRIME_MONSTER_CFG_ID_FIELD.full_name = ".ftcfg.fightcrime_monster_cfg.id" +FIGHTCRIME_MONSTER_CFG_ID_FIELD.number = 1 +FIGHTCRIME_MONSTER_CFG_ID_FIELD.index = 0 +FIGHTCRIME_MONSTER_CFG_ID_FIELD.label = 2 +FIGHTCRIME_MONSTER_CFG_ID_FIELD.has_default_value = false +FIGHTCRIME_MONSTER_CFG_ID_FIELD.default_value = 0 +FIGHTCRIME_MONSTER_CFG_ID_FIELD.type = 5 +FIGHTCRIME_MONSTER_CFG_ID_FIELD.cpp_type = 1 + +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.name = "monsters" +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.full_name = ".ftcfg.fightcrime_monster_cfg.monsters" +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.number = 2 +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.index = 1 +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.label = 3 +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.has_default_value = false +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.default_value = {} +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.type = 13 +FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD.cpp_type = 3 + +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.name = "icons" +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.full_name = ".ftcfg.fightcrime_monster_cfg.icons" +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.number = 3 +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.index = 2 +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.label = 3 +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.has_default_value = false +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.default_value = {} +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.type = 13 +FIGHTCRIME_MONSTER_CFG_ICONS_FIELD.cpp_type = 3 + +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.name = "time" +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.full_name = ".ftcfg.fightcrime_monster_cfg.time" +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.number = 4 +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.index = 3 +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.label = 2 +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.has_default_value = false +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.default_value = 0.0 +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.type = 2 +FIGHTCRIME_MONSTER_CFG_TIME_FIELD.cpp_type = 6 + +FIGHTCRIME_MONSTER_CFG.name = "fightcrime_monster_cfg" +FIGHTCRIME_MONSTER_CFG.full_name = ".ftcfg.fightcrime_monster_cfg" +FIGHTCRIME_MONSTER_CFG.nested_types = {} +FIGHTCRIME_MONSTER_CFG.enum_types = {} +FIGHTCRIME_MONSTER_CFG.fields = {FIGHTCRIME_MONSTER_CFG_ID_FIELD, FIGHTCRIME_MONSTER_CFG_MONSTERS_FIELD, FIGHTCRIME_MONSTER_CFG_ICONS_FIELD, FIGHTCRIME_MONSTER_CFG_TIME_FIELD} +FIGHTCRIME_MONSTER_CFG.is_extendable = false +FIGHTCRIME_MONSTER_CFG.extensions = {} +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.name = "items" +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fightcrime_monster_cfgs.items" +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.number = 1 +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.index = 0 +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.label = 3 +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.has_default_value = false +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.default_value = {} +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.message_type = FIGHTCRIME_MONSTER_CFG +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.type = 11 +FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD.cpp_type = 10 + +FIGHTCRIME_MONSTER_CFGS.name = "fightcrime_monster_cfgs" +FIGHTCRIME_MONSTER_CFGS.full_name = ".ftcfg.fightcrime_monster_cfgs" +FIGHTCRIME_MONSTER_CFGS.nested_types = {} +FIGHTCRIME_MONSTER_CFGS.enum_types = {} +FIGHTCRIME_MONSTER_CFGS.fields = {FIGHTCRIME_MONSTER_CFGS_ITEMS_FIELD} +FIGHTCRIME_MONSTER_CFGS.is_extendable = false +FIGHTCRIME_MONSTER_CFGS.extensions = {} +EQUIP_CFG_ID_FIELD.name = "id" +EQUIP_CFG_ID_FIELD.full_name = ".ftcfg.equip_cfg.id" +EQUIP_CFG_ID_FIELD.number = 1 +EQUIP_CFG_ID_FIELD.index = 0 +EQUIP_CFG_ID_FIELD.label = 2 +EQUIP_CFG_ID_FIELD.has_default_value = false +EQUIP_CFG_ID_FIELD.default_value = 0 +EQUIP_CFG_ID_FIELD.type = 13 +EQUIP_CFG_ID_FIELD.cpp_type = 3 + +EQUIP_CFG_UPGRADE_ID_FIELD.name = "upgrade_id" +EQUIP_CFG_UPGRADE_ID_FIELD.full_name = ".ftcfg.equip_cfg.upgrade_id" +EQUIP_CFG_UPGRADE_ID_FIELD.number = 2 +EQUIP_CFG_UPGRADE_ID_FIELD.index = 1 +EQUIP_CFG_UPGRADE_ID_FIELD.label = 2 +EQUIP_CFG_UPGRADE_ID_FIELD.has_default_value = false +EQUIP_CFG_UPGRADE_ID_FIELD.default_value = 0 +EQUIP_CFG_UPGRADE_ID_FIELD.type = 13 +EQUIP_CFG_UPGRADE_ID_FIELD.cpp_type = 3 + +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.name = "upgrade_material" +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.full_name = ".ftcfg.equip_cfg.upgrade_material" +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.number = 3 +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.index = 2 +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.label = 3 +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.has_default_value = false +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.default_value = {} +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.type = 13 +EQUIP_CFG_UPGRADE_MATERIAL_FIELD.cpp_type = 3 + +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.name = "upgrade_req_level" +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.full_name = ".ftcfg.equip_cfg.upgrade_req_level" +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.number = 4 +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.index = 3 +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.label = 2 +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.has_default_value = false +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.default_value = 0 +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.type = 5 +EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD.cpp_type = 1 + +EQUIP_CFG_REFINE_MATERIAL_FIELD.name = "refine_material" +EQUIP_CFG_REFINE_MATERIAL_FIELD.full_name = ".ftcfg.equip_cfg.refine_material" +EQUIP_CFG_REFINE_MATERIAL_FIELD.number = 5 +EQUIP_CFG_REFINE_MATERIAL_FIELD.index = 4 +EQUIP_CFG_REFINE_MATERIAL_FIELD.label = 2 +EQUIP_CFG_REFINE_MATERIAL_FIELD.has_default_value = false +EQUIP_CFG_REFINE_MATERIAL_FIELD.default_value = 0 +EQUIP_CFG_REFINE_MATERIAL_FIELD.type = 13 +EQUIP_CFG_REFINE_MATERIAL_FIELD.cpp_type = 3 + +EQUIP_CFG_REFINE_COUNT_FIELD.name = "refine_count" +EQUIP_CFG_REFINE_COUNT_FIELD.full_name = ".ftcfg.equip_cfg.refine_count" +EQUIP_CFG_REFINE_COUNT_FIELD.number = 6 +EQUIP_CFG_REFINE_COUNT_FIELD.index = 5 +EQUIP_CFG_REFINE_COUNT_FIELD.label = 2 +EQUIP_CFG_REFINE_COUNT_FIELD.has_default_value = false +EQUIP_CFG_REFINE_COUNT_FIELD.default_value = 0 +EQUIP_CFG_REFINE_COUNT_FIELD.type = 5 +EQUIP_CFG_REFINE_COUNT_FIELD.cpp_type = 1 + +EQUIP_CFG_REFINE_COST_FIELD.name = "refine_cost" +EQUIP_CFG_REFINE_COST_FIELD.full_name = ".ftcfg.equip_cfg.refine_cost" +EQUIP_CFG_REFINE_COST_FIELD.number = 7 +EQUIP_CFG_REFINE_COST_FIELD.index = 6 +EQUIP_CFG_REFINE_COST_FIELD.label = 2 +EQUIP_CFG_REFINE_COST_FIELD.has_default_value = false +EQUIP_CFG_REFINE_COST_FIELD.default_value = 0 +EQUIP_CFG_REFINE_COST_FIELD.type = 5 +EQUIP_CFG_REFINE_COST_FIELD.cpp_type = 1 + +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.name = "active_strength_material" +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.full_name = ".ftcfg.equip_cfg.active_strength_material" +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.number = 8 +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.index = 7 +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.label = 2 +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.has_default_value = false +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.default_value = 0 +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.type = 13 +EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD.cpp_type = 3 + +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.name = "active_strength_count" +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.full_name = ".ftcfg.equip_cfg.active_strength_count" +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.number = 9 +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.index = 8 +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.label = 2 +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.has_default_value = false +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.default_value = 0 +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.type = 5 +EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD.cpp_type = 1 + +EQUIP_CFG_ACTIVE_COST_FIELD.name = "active_cost" +EQUIP_CFG_ACTIVE_COST_FIELD.full_name = ".ftcfg.equip_cfg.active_cost" +EQUIP_CFG_ACTIVE_COST_FIELD.number = 10 +EQUIP_CFG_ACTIVE_COST_FIELD.index = 9 +EQUIP_CFG_ACTIVE_COST_FIELD.label = 2 +EQUIP_CFG_ACTIVE_COST_FIELD.has_default_value = false +EQUIP_CFG_ACTIVE_COST_FIELD.default_value = 0 +EQUIP_CFG_ACTIVE_COST_FIELD.type = 5 +EQUIP_CFG_ACTIVE_COST_FIELD.cpp_type = 1 + +EQUIP_CFG.name = "equip_cfg" +EQUIP_CFG.full_name = ".ftcfg.equip_cfg" +EQUIP_CFG.nested_types = {} +EQUIP_CFG.enum_types = {} +EQUIP_CFG.fields = {EQUIP_CFG_ID_FIELD, EQUIP_CFG_UPGRADE_ID_FIELD, EQUIP_CFG_UPGRADE_MATERIAL_FIELD, EQUIP_CFG_UPGRADE_REQ_LEVEL_FIELD, EQUIP_CFG_REFINE_MATERIAL_FIELD, EQUIP_CFG_REFINE_COUNT_FIELD, EQUIP_CFG_REFINE_COST_FIELD, EQUIP_CFG_ACTIVE_STRENGTH_MATERIAL_FIELD, EQUIP_CFG_ACTIVE_STRENGTH_COUNT_FIELD, EQUIP_CFG_ACTIVE_COST_FIELD} +EQUIP_CFG.is_extendable = false +EQUIP_CFG.extensions = {} +EQUIP_CFGS_ITEMS_FIELD.name = "items" +EQUIP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.equip_cfgs.items" +EQUIP_CFGS_ITEMS_FIELD.number = 1 +EQUIP_CFGS_ITEMS_FIELD.index = 0 +EQUIP_CFGS_ITEMS_FIELD.label = 3 +EQUIP_CFGS_ITEMS_FIELD.has_default_value = false +EQUIP_CFGS_ITEMS_FIELD.default_value = {} +EQUIP_CFGS_ITEMS_FIELD.message_type = EQUIP_CFG +EQUIP_CFGS_ITEMS_FIELD.type = 11 +EQUIP_CFGS_ITEMS_FIELD.cpp_type = 10 + +EQUIP_CFGS.name = "equip_cfgs" +EQUIP_CFGS.full_name = ".ftcfg.equip_cfgs" +EQUIP_CFGS.nested_types = {} +EQUIP_CFGS.enum_types = {} +EQUIP_CFGS.fields = {EQUIP_CFGS_ITEMS_FIELD} +EQUIP_CFGS.is_extendable = false +EQUIP_CFGS.extensions = {} +EQUIP_SET_CFG_ID_FIELD.name = "id" +EQUIP_SET_CFG_ID_FIELD.full_name = ".ftcfg.equip_set_cfg.id" +EQUIP_SET_CFG_ID_FIELD.number = 1 +EQUIP_SET_CFG_ID_FIELD.index = 0 +EQUIP_SET_CFG_ID_FIELD.label = 2 +EQUIP_SET_CFG_ID_FIELD.has_default_value = false +EQUIP_SET_CFG_ID_FIELD.default_value = 0 +EQUIP_SET_CFG_ID_FIELD.type = 13 +EQUIP_SET_CFG_ID_FIELD.cpp_type = 3 + +EQUIP_SET_CFG_EQUIP_IDS_FIELD.name = "equip_ids" +EQUIP_SET_CFG_EQUIP_IDS_FIELD.full_name = ".ftcfg.equip_set_cfg.equip_ids" +EQUIP_SET_CFG_EQUIP_IDS_FIELD.number = 2 +EQUIP_SET_CFG_EQUIP_IDS_FIELD.index = 1 +EQUIP_SET_CFG_EQUIP_IDS_FIELD.label = 3 +EQUIP_SET_CFG_EQUIP_IDS_FIELD.has_default_value = false +EQUIP_SET_CFG_EQUIP_IDS_FIELD.default_value = {} +EQUIP_SET_CFG_EQUIP_IDS_FIELD.type = 13 +EQUIP_SET_CFG_EQUIP_IDS_FIELD.cpp_type = 3 + +EQUIP_SET_CFG_SET_NAME_FIELD.name = "set_name" +EQUIP_SET_CFG_SET_NAME_FIELD.full_name = ".ftcfg.equip_set_cfg.set_name" +EQUIP_SET_CFG_SET_NAME_FIELD.number = 3 +EQUIP_SET_CFG_SET_NAME_FIELD.index = 2 +EQUIP_SET_CFG_SET_NAME_FIELD.label = 2 +EQUIP_SET_CFG_SET_NAME_FIELD.has_default_value = false +EQUIP_SET_CFG_SET_NAME_FIELD.default_value = "" +EQUIP_SET_CFG_SET_NAME_FIELD.type = 9 +EQUIP_SET_CFG_SET_NAME_FIELD.cpp_type = 9 + +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.name = "equip_level" +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.full_name = ".ftcfg.equip_set_cfg.equip_level" +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.number = 4 +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.index = 3 +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.label = 2 +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.has_default_value = false +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.default_value = 0 +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.type = 5 +EQUIP_SET_CFG_EQUIP_LEVEL_FIELD.cpp_type = 1 + +EQUIP_SET_CFG.name = "equip_set_cfg" +EQUIP_SET_CFG.full_name = ".ftcfg.equip_set_cfg" +EQUIP_SET_CFG.nested_types = {} +EQUIP_SET_CFG.enum_types = {} +EQUIP_SET_CFG.fields = {EQUIP_SET_CFG_ID_FIELD, EQUIP_SET_CFG_EQUIP_IDS_FIELD, EQUIP_SET_CFG_SET_NAME_FIELD, EQUIP_SET_CFG_EQUIP_LEVEL_FIELD} +EQUIP_SET_CFG.is_extendable = false +EQUIP_SET_CFG.extensions = {} +EQUIP_SET_CFGS_ITEMS_FIELD.name = "items" +EQUIP_SET_CFGS_ITEMS_FIELD.full_name = ".ftcfg.equip_set_cfgs.items" +EQUIP_SET_CFGS_ITEMS_FIELD.number = 1 +EQUIP_SET_CFGS_ITEMS_FIELD.index = 0 +EQUIP_SET_CFGS_ITEMS_FIELD.label = 3 +EQUIP_SET_CFGS_ITEMS_FIELD.has_default_value = false +EQUIP_SET_CFGS_ITEMS_FIELD.default_value = {} +EQUIP_SET_CFGS_ITEMS_FIELD.message_type = EQUIP_SET_CFG +EQUIP_SET_CFGS_ITEMS_FIELD.type = 11 +EQUIP_SET_CFGS_ITEMS_FIELD.cpp_type = 10 + +EQUIP_SET_CFGS.name = "equip_set_cfgs" +EQUIP_SET_CFGS.full_name = ".ftcfg.equip_set_cfgs" +EQUIP_SET_CFGS.nested_types = {} +EQUIP_SET_CFGS.enum_types = {} +EQUIP_SET_CFGS.fields = {EQUIP_SET_CFGS_ITEMS_FIELD} +EQUIP_SET_CFGS.is_extendable = false +EQUIP_SET_CFGS.extensions = {} +EQUIP_SET_PROP_CFG_ID_FIELD.name = "id" +EQUIP_SET_PROP_CFG_ID_FIELD.full_name = ".ftcfg.equip_set_prop_cfg.id" +EQUIP_SET_PROP_CFG_ID_FIELD.number = 1 +EQUIP_SET_PROP_CFG_ID_FIELD.index = 0 +EQUIP_SET_PROP_CFG_ID_FIELD.label = 2 +EQUIP_SET_PROP_CFG_ID_FIELD.has_default_value = false +EQUIP_SET_PROP_CFG_ID_FIELD.default_value = 0 +EQUIP_SET_PROP_CFG_ID_FIELD.type = 13 +EQUIP_SET_PROP_CFG_ID_FIELD.cpp_type = 3 + +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.name = "equip_count" +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.full_name = ".ftcfg.equip_set_prop_cfg.equip_count" +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.number = 2 +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.index = 1 +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.label = 2 +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.has_default_value = false +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.default_value = 0 +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.type = 13 +EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD.cpp_type = 3 + +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.name = "active_prop" +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.full_name = ".ftcfg.equip_set_prop_cfg.active_prop" +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.number = 3 +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.index = 2 +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.label = 2 +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.has_default_value = false +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.default_value = "" +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.type = 9 +EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD.cpp_type = 9 + +EQUIP_SET_PROP_CFG.name = "equip_set_prop_cfg" +EQUIP_SET_PROP_CFG.full_name = ".ftcfg.equip_set_prop_cfg" +EQUIP_SET_PROP_CFG.nested_types = {} +EQUIP_SET_PROP_CFG.enum_types = {} +EQUIP_SET_PROP_CFG.fields = {EQUIP_SET_PROP_CFG_ID_FIELD, EQUIP_SET_PROP_CFG_EQUIP_COUNT_FIELD, EQUIP_SET_PROP_CFG_ACTIVE_PROP_FIELD} +EQUIP_SET_PROP_CFG.is_extendable = false +EQUIP_SET_PROP_CFG.extensions = {} +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.name = "items" +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.equip_set_prop_cfgs.items" +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.number = 1 +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.index = 0 +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.label = 3 +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.has_default_value = false +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.default_value = {} +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.message_type = EQUIP_SET_PROP_CFG +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.type = 11 +EQUIP_SET_PROP_CFGS_ITEMS_FIELD.cpp_type = 10 + +EQUIP_SET_PROP_CFGS.name = "equip_set_prop_cfgs" +EQUIP_SET_PROP_CFGS.full_name = ".ftcfg.equip_set_prop_cfgs" +EQUIP_SET_PROP_CFGS.nested_types = {} +EQUIP_SET_PROP_CFGS.enum_types = {} +EQUIP_SET_PROP_CFGS.fields = {EQUIP_SET_PROP_CFGS_ITEMS_FIELD} +EQUIP_SET_PROP_CFGS.is_extendable = false +EQUIP_SET_PROP_CFGS.extensions = {} +STRENGTHEN_CFG_ID_FIELD.name = "id" +STRENGTHEN_CFG_ID_FIELD.full_name = ".ftcfg.strengthen_cfg.id" +STRENGTHEN_CFG_ID_FIELD.number = 1 +STRENGTHEN_CFG_ID_FIELD.index = 0 +STRENGTHEN_CFG_ID_FIELD.label = 2 +STRENGTHEN_CFG_ID_FIELD.has_default_value = false +STRENGTHEN_CFG_ID_FIELD.default_value = 0 +STRENGTHEN_CFG_ID_FIELD.type = 13 +STRENGTHEN_CFG_ID_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_SEG_LIMIT_FIELD.name = "seg_limit" +STRENGTHEN_CFG_SEG_LIMIT_FIELD.full_name = ".ftcfg.strengthen_cfg.seg_limit" +STRENGTHEN_CFG_SEG_LIMIT_FIELD.number = 2 +STRENGTHEN_CFG_SEG_LIMIT_FIELD.index = 1 +STRENGTHEN_CFG_SEG_LIMIT_FIELD.label = 2 +STRENGTHEN_CFG_SEG_LIMIT_FIELD.has_default_value = false +STRENGTHEN_CFG_SEG_LIMIT_FIELD.default_value = 0 +STRENGTHEN_CFG_SEG_LIMIT_FIELD.type = 13 +STRENGTHEN_CFG_SEG_LIMIT_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_RATE_FIELD.name = "rate" +STRENGTHEN_CFG_RATE_FIELD.full_name = ".ftcfg.strengthen_cfg.rate" +STRENGTHEN_CFG_RATE_FIELD.number = 3 +STRENGTHEN_CFG_RATE_FIELD.index = 2 +STRENGTHEN_CFG_RATE_FIELD.label = 2 +STRENGTHEN_CFG_RATE_FIELD.has_default_value = false +STRENGTHEN_CFG_RATE_FIELD.default_value = 0 +STRENGTHEN_CFG_RATE_FIELD.type = 13 +STRENGTHEN_CFG_RATE_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_REQ_LEVEL_FIELD.name = "req_level" +STRENGTHEN_CFG_REQ_LEVEL_FIELD.full_name = ".ftcfg.strengthen_cfg.req_level" +STRENGTHEN_CFG_REQ_LEVEL_FIELD.number = 4 +STRENGTHEN_CFG_REQ_LEVEL_FIELD.index = 3 +STRENGTHEN_CFG_REQ_LEVEL_FIELD.label = 2 +STRENGTHEN_CFG_REQ_LEVEL_FIELD.has_default_value = false +STRENGTHEN_CFG_REQ_LEVEL_FIELD.default_value = 0 +STRENGTHEN_CFG_REQ_LEVEL_FIELD.type = 13 +STRENGTHEN_CFG_REQ_LEVEL_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_MAT_ID_FIELD.name = "mat_id" +STRENGTHEN_CFG_MAT_ID_FIELD.full_name = ".ftcfg.strengthen_cfg.mat_id" +STRENGTHEN_CFG_MAT_ID_FIELD.number = 5 +STRENGTHEN_CFG_MAT_ID_FIELD.index = 4 +STRENGTHEN_CFG_MAT_ID_FIELD.label = 2 +STRENGTHEN_CFG_MAT_ID_FIELD.has_default_value = false +STRENGTHEN_CFG_MAT_ID_FIELD.default_value = 0 +STRENGTHEN_CFG_MAT_ID_FIELD.type = 13 +STRENGTHEN_CFG_MAT_ID_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_MAT_NUM_FIELD.name = "mat_num" +STRENGTHEN_CFG_MAT_NUM_FIELD.full_name = ".ftcfg.strengthen_cfg.mat_num" +STRENGTHEN_CFG_MAT_NUM_FIELD.number = 6 +STRENGTHEN_CFG_MAT_NUM_FIELD.index = 5 +STRENGTHEN_CFG_MAT_NUM_FIELD.label = 2 +STRENGTHEN_CFG_MAT_NUM_FIELD.has_default_value = false +STRENGTHEN_CFG_MAT_NUM_FIELD.default_value = 0 +STRENGTHEN_CFG_MAT_NUM_FIELD.type = 13 +STRENGTHEN_CFG_MAT_NUM_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.name = "prop_effect1" +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.full_name = ".ftcfg.strengthen_cfg.prop_effect1" +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.number = 7 +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.index = 6 +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.label = 2 +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.has_default_value = false +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.default_value = "" +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.type = 9 +STRENGTHEN_CFG_PROP_EFFECT1_FIELD.cpp_type = 9 + +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.name = "prop_effect2" +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.full_name = ".ftcfg.strengthen_cfg.prop_effect2" +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.number = 8 +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.index = 7 +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.label = 2 +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.has_default_value = false +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.default_value = "" +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.type = 9 +STRENGTHEN_CFG_PROP_EFFECT2_FIELD.cpp_type = 9 + +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.name = "prop_effect3" +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.full_name = ".ftcfg.strengthen_cfg.prop_effect3" +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.number = 9 +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.index = 8 +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.label = 2 +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.has_default_value = false +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.default_value = "" +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.type = 9 +STRENGTHEN_CFG_PROP_EFFECT3_FIELD.cpp_type = 9 + +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.name = "prop_effect4" +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.full_name = ".ftcfg.strengthen_cfg.prop_effect4" +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.number = 10 +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.index = 9 +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.label = 2 +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.has_default_value = false +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.default_value = "" +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.type = 9 +STRENGTHEN_CFG_PROP_EFFECT4_FIELD.cpp_type = 9 + +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.name = "extra_effect" +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.full_name = ".ftcfg.strengthen_cfg.extra_effect" +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.number = 11 +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.index = 10 +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.label = 2 +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.has_default_value = false +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.default_value = 0 +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.type = 13 +STRENGTHEN_CFG_EXTRA_EFFECT_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.name = "blessing_limit" +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.full_name = ".ftcfg.strengthen_cfg.blessing_limit" +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.number = 12 +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.index = 11 +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.label = 2 +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.has_default_value = false +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.default_value = 0 +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.type = 13 +STRENGTHEN_CFG_BLESSING_LIMIT_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.name = "assist_jewel" +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.full_name = ".ftcfg.strengthen_cfg.assist_jewel" +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.number = 13 +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.index = 12 +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.label = 3 +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.has_default_value = false +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.default_value = {} +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.type = 13 +STRENGTHEN_CFG_ASSIST_JEWEL_FIELD.cpp_type = 3 + +STRENGTHEN_CFG_COMBAT_POINT_FIELD.name = "combat_point" +STRENGTHEN_CFG_COMBAT_POINT_FIELD.full_name = ".ftcfg.strengthen_cfg.combat_point" +STRENGTHEN_CFG_COMBAT_POINT_FIELD.number = 14 +STRENGTHEN_CFG_COMBAT_POINT_FIELD.index = 13 +STRENGTHEN_CFG_COMBAT_POINT_FIELD.label = 2 +STRENGTHEN_CFG_COMBAT_POINT_FIELD.has_default_value = false +STRENGTHEN_CFG_COMBAT_POINT_FIELD.default_value = 0 +STRENGTHEN_CFG_COMBAT_POINT_FIELD.type = 13 +STRENGTHEN_CFG_COMBAT_POINT_FIELD.cpp_type = 3 + +STRENGTHEN_CFG.name = "strengthen_cfg" +STRENGTHEN_CFG.full_name = ".ftcfg.strengthen_cfg" +STRENGTHEN_CFG.nested_types = {} +STRENGTHEN_CFG.enum_types = {} +STRENGTHEN_CFG.fields = {STRENGTHEN_CFG_ID_FIELD, STRENGTHEN_CFG_SEG_LIMIT_FIELD, STRENGTHEN_CFG_RATE_FIELD, STRENGTHEN_CFG_REQ_LEVEL_FIELD, STRENGTHEN_CFG_MAT_ID_FIELD, STRENGTHEN_CFG_MAT_NUM_FIELD, STRENGTHEN_CFG_PROP_EFFECT1_FIELD, STRENGTHEN_CFG_PROP_EFFECT2_FIELD, STRENGTHEN_CFG_PROP_EFFECT3_FIELD, STRENGTHEN_CFG_PROP_EFFECT4_FIELD, STRENGTHEN_CFG_EXTRA_EFFECT_FIELD, STRENGTHEN_CFG_BLESSING_LIMIT_FIELD, STRENGTHEN_CFG_ASSIST_JEWEL_FIELD, STRENGTHEN_CFG_COMBAT_POINT_FIELD} +STRENGTHEN_CFG.is_extendable = false +STRENGTHEN_CFG.extensions = {} +STRENGTHEN_CFGS_ITEMS_FIELD.name = "items" +STRENGTHEN_CFGS_ITEMS_FIELD.full_name = ".ftcfg.strengthen_cfgs.items" +STRENGTHEN_CFGS_ITEMS_FIELD.number = 1 +STRENGTHEN_CFGS_ITEMS_FIELD.index = 0 +STRENGTHEN_CFGS_ITEMS_FIELD.label = 3 +STRENGTHEN_CFGS_ITEMS_FIELD.has_default_value = false +STRENGTHEN_CFGS_ITEMS_FIELD.default_value = {} +STRENGTHEN_CFGS_ITEMS_FIELD.message_type = STRENGTHEN_CFG +STRENGTHEN_CFGS_ITEMS_FIELD.type = 11 +STRENGTHEN_CFGS_ITEMS_FIELD.cpp_type = 10 + +STRENGTHEN_CFGS.name = "strengthen_cfgs" +STRENGTHEN_CFGS.full_name = ".ftcfg.strengthen_cfgs" +STRENGTHEN_CFGS.nested_types = {} +STRENGTHEN_CFGS.enum_types = {} +STRENGTHEN_CFGS.fields = {STRENGTHEN_CFGS_ITEMS_FIELD} +STRENGTHEN_CFGS.is_extendable = false +STRENGTHEN_CFGS.extensions = {} +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.name = "level" +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.full_name = ".ftcfg.rune_make_list_cfg.level" +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.number = 1 +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.index = 0 +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.label = 2 +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.has_default_value = false +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.default_value = 0 +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.type = 5 +RUNE_MAKE_LIST_CFG_LEVEL_FIELD.cpp_type = 1 + +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.name = "weapon" +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.full_name = ".ftcfg.rune_make_list_cfg.weapon" +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.number = 2 +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.index = 1 +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.label = 2 +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.has_default_value = false +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.default_value = 0 +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.type = 5 +RUNE_MAKE_LIST_CFG_WEAPON_FIELD.cpp_type = 1 + +RUNE_MAKE_LIST_CFG_HEAD_FIELD.name = "head" +RUNE_MAKE_LIST_CFG_HEAD_FIELD.full_name = ".ftcfg.rune_make_list_cfg.head" +RUNE_MAKE_LIST_CFG_HEAD_FIELD.number = 3 +RUNE_MAKE_LIST_CFG_HEAD_FIELD.index = 2 +RUNE_MAKE_LIST_CFG_HEAD_FIELD.label = 2 +RUNE_MAKE_LIST_CFG_HEAD_FIELD.has_default_value = false +RUNE_MAKE_LIST_CFG_HEAD_FIELD.default_value = 0 +RUNE_MAKE_LIST_CFG_HEAD_FIELD.type = 5 +RUNE_MAKE_LIST_CFG_HEAD_FIELD.cpp_type = 1 + +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.name = "clothes" +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.full_name = ".ftcfg.rune_make_list_cfg.clothes" +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.number = 4 +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.index = 3 +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.label = 2 +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.has_default_value = false +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.default_value = 0 +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.type = 5 +RUNE_MAKE_LIST_CFG_CLOTHES_FIELD.cpp_type = 1 + +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.name = "trousers" +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.full_name = ".ftcfg.rune_make_list_cfg.trousers" +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.number = 5 +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.index = 4 +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.label = 2 +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.has_default_value = false +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.default_value = 0 +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.type = 5 +RUNE_MAKE_LIST_CFG_TROUSERS_FIELD.cpp_type = 1 + +RUNE_MAKE_LIST_CFG_SHOES_FIELD.name = "shoes" +RUNE_MAKE_LIST_CFG_SHOES_FIELD.full_name = ".ftcfg.rune_make_list_cfg.shoes" +RUNE_MAKE_LIST_CFG_SHOES_FIELD.number = 6 +RUNE_MAKE_LIST_CFG_SHOES_FIELD.index = 5 +RUNE_MAKE_LIST_CFG_SHOES_FIELD.label = 2 +RUNE_MAKE_LIST_CFG_SHOES_FIELD.has_default_value = false +RUNE_MAKE_LIST_CFG_SHOES_FIELD.default_value = 0 +RUNE_MAKE_LIST_CFG_SHOES_FIELD.type = 5 +RUNE_MAKE_LIST_CFG_SHOES_FIELD.cpp_type = 1 + +RUNE_MAKE_LIST_CFG.name = "rune_make_list_cfg" +RUNE_MAKE_LIST_CFG.full_name = ".ftcfg.rune_make_list_cfg" +RUNE_MAKE_LIST_CFG.nested_types = {} +RUNE_MAKE_LIST_CFG.enum_types = {} +RUNE_MAKE_LIST_CFG.fields = {RUNE_MAKE_LIST_CFG_LEVEL_FIELD, RUNE_MAKE_LIST_CFG_WEAPON_FIELD, RUNE_MAKE_LIST_CFG_HEAD_FIELD, RUNE_MAKE_LIST_CFG_CLOTHES_FIELD, RUNE_MAKE_LIST_CFG_TROUSERS_FIELD, RUNE_MAKE_LIST_CFG_SHOES_FIELD} +RUNE_MAKE_LIST_CFG.is_extendable = false +RUNE_MAKE_LIST_CFG.extensions = {} +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.name = "items" +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_make_list_cfgs.items" +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.number = 1 +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.index = 0 +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.label = 3 +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.default_value = {} +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.message_type = RUNE_MAKE_LIST_CFG +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.type = 11 +RUNE_MAKE_LIST_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_MAKE_LIST_CFGS.name = "rune_make_list_cfgs" +RUNE_MAKE_LIST_CFGS.full_name = ".ftcfg.rune_make_list_cfgs" +RUNE_MAKE_LIST_CFGS.nested_types = {} +RUNE_MAKE_LIST_CFGS.enum_types = {} +RUNE_MAKE_LIST_CFGS.fields = {RUNE_MAKE_LIST_CFGS_ITEMS_FIELD} +RUNE_MAKE_LIST_CFGS.is_extendable = false +RUNE_MAKE_LIST_CFGS.extensions = {} +RUNE_MAKE_CFG_ID_FIELD.name = "id" +RUNE_MAKE_CFG_ID_FIELD.full_name = ".ftcfg.rune_make_cfg.id" +RUNE_MAKE_CFG_ID_FIELD.number = 1 +RUNE_MAKE_CFG_ID_FIELD.index = 0 +RUNE_MAKE_CFG_ID_FIELD.label = 2 +RUNE_MAKE_CFG_ID_FIELD.has_default_value = false +RUNE_MAKE_CFG_ID_FIELD.default_value = 0 +RUNE_MAKE_CFG_ID_FIELD.type = 13 +RUNE_MAKE_CFG_ID_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_COST_FIELD.name = "cost" +RUNE_MAKE_CFG_COST_FIELD.full_name = ".ftcfg.rune_make_cfg.cost" +RUNE_MAKE_CFG_COST_FIELD.number = 2 +RUNE_MAKE_CFG_COST_FIELD.index = 1 +RUNE_MAKE_CFG_COST_FIELD.label = 2 +RUNE_MAKE_CFG_COST_FIELD.has_default_value = false +RUNE_MAKE_CFG_COST_FIELD.default_value = 0 +RUNE_MAKE_CFG_COST_FIELD.type = 5 +RUNE_MAKE_CFG_COST_FIELD.cpp_type = 1 + +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.name = "make_material" +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.full_name = ".ftcfg.rune_make_cfg.make_material" +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.number = 3 +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.index = 2 +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.label = 3 +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.has_default_value = false +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.default_value = {} +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.type = 13 +RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.name = "elite_material" +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.full_name = ".ftcfg.rune_make_cfg.elite_material" +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.number = 4 +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.index = 3 +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.label = 3 +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.has_default_value = false +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.default_value = {} +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.type = 13 +RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_PROP_COUNT_FIELD.name = "prop_count" +RUNE_MAKE_CFG_PROP_COUNT_FIELD.full_name = ".ftcfg.rune_make_cfg.prop_count" +RUNE_MAKE_CFG_PROP_COUNT_FIELD.number = 5 +RUNE_MAKE_CFG_PROP_COUNT_FIELD.index = 4 +RUNE_MAKE_CFG_PROP_COUNT_FIELD.label = 2 +RUNE_MAKE_CFG_PROP_COUNT_FIELD.has_default_value = false +RUNE_MAKE_CFG_PROP_COUNT_FIELD.default_value = 0 +RUNE_MAKE_CFG_PROP_COUNT_FIELD.type = 13 +RUNE_MAKE_CFG_PROP_COUNT_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.name = "special_spell_rate" +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.full_name = ".ftcfg.rune_make_cfg.special_spell_rate" +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.number = 6 +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.index = 5 +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.label = 2 +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.has_default_value = false +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.default_value = 0 +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.type = 13 +RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.name = "special_spell_elite_rate" +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.full_name = ".ftcfg.rune_make_cfg.special_spell_elite_rate" +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.number = 7 +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.index = 6 +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.label = 2 +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.has_default_value = false +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.default_value = 0 +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.type = 13 +RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.name = "spell_group_id" +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.full_name = ".ftcfg.rune_make_cfg.spell_group_id" +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.number = 8 +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.index = 7 +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.label = 2 +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.has_default_value = false +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.default_value = 0 +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.type = 13 +RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_SPELL_RATE_FIELD.name = "spell_rate" +RUNE_MAKE_CFG_SPELL_RATE_FIELD.full_name = ".ftcfg.rune_make_cfg.spell_rate" +RUNE_MAKE_CFG_SPELL_RATE_FIELD.number = 9 +RUNE_MAKE_CFG_SPELL_RATE_FIELD.index = 8 +RUNE_MAKE_CFG_SPELL_RATE_FIELD.label = 2 +RUNE_MAKE_CFG_SPELL_RATE_FIELD.has_default_value = false +RUNE_MAKE_CFG_SPELL_RATE_FIELD.default_value = 0 +RUNE_MAKE_CFG_SPELL_RATE_FIELD.type = 13 +RUNE_MAKE_CFG_SPELL_RATE_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.name = "spell_elite_rate" +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.full_name = ".ftcfg.rune_make_cfg.spell_elite_rate" +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.number = 10 +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.index = 9 +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.label = 2 +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.has_default_value = false +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.default_value = 0 +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.type = 13 +RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.name = "prop_group_id" +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.full_name = ".ftcfg.rune_make_cfg.prop_group_id" +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.number = 11 +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.index = 10 +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.label = 3 +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.has_default_value = false +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.default_value = {} +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.type = 13 +RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.name = "magic_group_id" +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.full_name = ".ftcfg.rune_make_cfg.magic_group_id" +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.number = 12 +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.index = 11 +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.label = 3 +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.has_default_value = false +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.default_value = {} +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.type = 13 +RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD.cpp_type = 3 + +RUNE_MAKE_CFG.name = "rune_make_cfg" +RUNE_MAKE_CFG.full_name = ".ftcfg.rune_make_cfg" +RUNE_MAKE_CFG.nested_types = {} +RUNE_MAKE_CFG.enum_types = {} +RUNE_MAKE_CFG.fields = {RUNE_MAKE_CFG_ID_FIELD, RUNE_MAKE_CFG_COST_FIELD, RUNE_MAKE_CFG_MAKE_MATERIAL_FIELD, RUNE_MAKE_CFG_ELITE_MATERIAL_FIELD, RUNE_MAKE_CFG_PROP_COUNT_FIELD, RUNE_MAKE_CFG_SPECIAL_SPELL_RATE_FIELD, RUNE_MAKE_CFG_SPECIAL_SPELL_ELITE_RATE_FIELD, RUNE_MAKE_CFG_SPELL_GROUP_ID_FIELD, RUNE_MAKE_CFG_SPELL_RATE_FIELD, RUNE_MAKE_CFG_SPELL_ELITE_RATE_FIELD, RUNE_MAKE_CFG_PROP_GROUP_ID_FIELD, RUNE_MAKE_CFG_MAGIC_GROUP_ID_FIELD} +RUNE_MAKE_CFG.is_extendable = false +RUNE_MAKE_CFG.extensions = {} +RUNE_MAKE_CFGS_ITEMS_FIELD.name = "items" +RUNE_MAKE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_make_cfgs.items" +RUNE_MAKE_CFGS_ITEMS_FIELD.number = 1 +RUNE_MAKE_CFGS_ITEMS_FIELD.index = 0 +RUNE_MAKE_CFGS_ITEMS_FIELD.label = 3 +RUNE_MAKE_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_MAKE_CFGS_ITEMS_FIELD.default_value = {} +RUNE_MAKE_CFGS_ITEMS_FIELD.message_type = RUNE_MAKE_CFG +RUNE_MAKE_CFGS_ITEMS_FIELD.type = 11 +RUNE_MAKE_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_MAKE_CFGS.name = "rune_make_cfgs" +RUNE_MAKE_CFGS.full_name = ".ftcfg.rune_make_cfgs" +RUNE_MAKE_CFGS.nested_types = {} +RUNE_MAKE_CFGS.enum_types = {} +RUNE_MAKE_CFGS.fields = {RUNE_MAKE_CFGS_ITEMS_FIELD} +RUNE_MAKE_CFGS.is_extendable = false +RUNE_MAKE_CFGS.extensions = {} +RUNE_PROP_GROUP_CFG_ID_FIELD.name = "id" +RUNE_PROP_GROUP_CFG_ID_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.id" +RUNE_PROP_GROUP_CFG_ID_FIELD.number = 1 +RUNE_PROP_GROUP_CFG_ID_FIELD.index = 0 +RUNE_PROP_GROUP_CFG_ID_FIELD.label = 2 +RUNE_PROP_GROUP_CFG_ID_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_ID_FIELD.default_value = 0 +RUNE_PROP_GROUP_CFG_ID_FIELD.type = 13 +RUNE_PROP_GROUP_CFG_ID_FIELD.cpp_type = 3 + +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.name = "assist_id" +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.assist_id" +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.number = 2 +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.index = 1 +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.label = 2 +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.default_value = 0 +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.type = 13 +RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD.cpp_type = 3 + +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.name = "group_id" +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.group_id" +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.number = 3 +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.index = 2 +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.label = 2 +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.default_value = 0 +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.type = 13 +RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD.cpp_type = 3 + +RUNE_PROP_GROUP_CFG_PROP_FIELD.name = "prop" +RUNE_PROP_GROUP_CFG_PROP_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop" +RUNE_PROP_GROUP_CFG_PROP_FIELD.number = 4 +RUNE_PROP_GROUP_CFG_PROP_FIELD.index = 3 +RUNE_PROP_GROUP_CFG_PROP_FIELD.label = 2 +RUNE_PROP_GROUP_CFG_PROP_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_FIELD.default_value = "" +RUNE_PROP_GROUP_CFG_PROP_FIELD.type = 9 +RUNE_PROP_GROUP_CFG_PROP_FIELD.cpp_type = 9 + +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.name = "prop_value1" +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_value1" +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.number = 5 +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.index = 4 +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.name = "prop_value2" +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_value2" +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.number = 6 +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.index = 5 +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.name = "prop_value3" +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_value3" +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.number = 7 +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.index = 6 +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.name = "prop_value4" +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_value4" +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.number = 8 +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.index = 7 +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.name = "prop_value5" +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_value5" +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.number = 9 +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.index = 8 +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.name = "prop_value6" +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_value6" +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.number = 10 +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.index = 9 +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.name = "prop_elite_value1" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_elite_value1" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.number = 11 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.index = 10 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.name = "prop_elite_value2" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_elite_value2" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.number = 12 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.index = 11 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.name = "prop_elite_value3" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_elite_value3" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.number = 13 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.index = 12 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.name = "prop_elite_value4" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_elite_value4" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.number = 14 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.index = 13 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.name = "prop_elite_value5" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_elite_value5" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.number = 15 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.index = 14 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.name = "prop_elite_value6" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.full_name = ".ftcfg.rune_prop_group_cfg.prop_elite_value6" +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.number = 16 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.index = 15 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.label = 3 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.default_value = {} +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.type = 1 +RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD.cpp_type = 5 + +RUNE_PROP_GROUP_CFG.name = "rune_prop_group_cfg" +RUNE_PROP_GROUP_CFG.full_name = ".ftcfg.rune_prop_group_cfg" +RUNE_PROP_GROUP_CFG.nested_types = {} +RUNE_PROP_GROUP_CFG.enum_types = {} +RUNE_PROP_GROUP_CFG.fields = {RUNE_PROP_GROUP_CFG_ID_FIELD, RUNE_PROP_GROUP_CFG_ASSIST_ID_FIELD, RUNE_PROP_GROUP_CFG_GROUP_ID_FIELD, RUNE_PROP_GROUP_CFG_PROP_FIELD, RUNE_PROP_GROUP_CFG_PROP_VALUE1_FIELD, RUNE_PROP_GROUP_CFG_PROP_VALUE2_FIELD, RUNE_PROP_GROUP_CFG_PROP_VALUE3_FIELD, RUNE_PROP_GROUP_CFG_PROP_VALUE4_FIELD, RUNE_PROP_GROUP_CFG_PROP_VALUE5_FIELD, RUNE_PROP_GROUP_CFG_PROP_VALUE6_FIELD, RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE1_FIELD, RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE2_FIELD, RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE3_FIELD, RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE4_FIELD, RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE5_FIELD, RUNE_PROP_GROUP_CFG_PROP_ELITE_VALUE6_FIELD} +RUNE_PROP_GROUP_CFG.is_extendable = false +RUNE_PROP_GROUP_CFG.extensions = {} +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.name = "items" +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_prop_group_cfgs.items" +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.number = 1 +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.index = 0 +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.label = 3 +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.default_value = {} +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.message_type = RUNE_PROP_GROUP_CFG +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.type = 11 +RUNE_PROP_GROUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_PROP_GROUP_CFGS.name = "rune_prop_group_cfgs" +RUNE_PROP_GROUP_CFGS.full_name = ".ftcfg.rune_prop_group_cfgs" +RUNE_PROP_GROUP_CFGS.nested_types = {} +RUNE_PROP_GROUP_CFGS.enum_types = {} +RUNE_PROP_GROUP_CFGS.fields = {RUNE_PROP_GROUP_CFGS_ITEMS_FIELD} +RUNE_PROP_GROUP_CFGS.is_extendable = false +RUNE_PROP_GROUP_CFGS.extensions = {} +EQUIP_LIST_CFG_ID_FIELD.name = "id" +EQUIP_LIST_CFG_ID_FIELD.full_name = ".ftcfg.equip_list_cfg.id" +EQUIP_LIST_CFG_ID_FIELD.number = 1 +EQUIP_LIST_CFG_ID_FIELD.index = 0 +EQUIP_LIST_CFG_ID_FIELD.label = 2 +EQUIP_LIST_CFG_ID_FIELD.has_default_value = false +EQUIP_LIST_CFG_ID_FIELD.default_value = 0 +EQUIP_LIST_CFG_ID_FIELD.type = 5 +EQUIP_LIST_CFG_ID_FIELD.cpp_type = 1 + +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.name = "equip_list" +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.full_name = ".ftcfg.equip_list_cfg.equip_list" +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.number = 2 +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.index = 1 +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.label = 3 +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.has_default_value = false +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.default_value = {} +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.type = 13 +EQUIP_LIST_CFG_EQUIP_LIST_FIELD.cpp_type = 3 + +EQUIP_LIST_CFG.name = "equip_list_cfg" +EQUIP_LIST_CFG.full_name = ".ftcfg.equip_list_cfg" +EQUIP_LIST_CFG.nested_types = {} +EQUIP_LIST_CFG.enum_types = {} +EQUIP_LIST_CFG.fields = {EQUIP_LIST_CFG_ID_FIELD, EQUIP_LIST_CFG_EQUIP_LIST_FIELD} +EQUIP_LIST_CFG.is_extendable = false +EQUIP_LIST_CFG.extensions = {} +EQUIP_LIST_CFGS_ITEMS_FIELD.name = "items" +EQUIP_LIST_CFGS_ITEMS_FIELD.full_name = ".ftcfg.equip_list_cfgs.items" +EQUIP_LIST_CFGS_ITEMS_FIELD.number = 1 +EQUIP_LIST_CFGS_ITEMS_FIELD.index = 0 +EQUIP_LIST_CFGS_ITEMS_FIELD.label = 3 +EQUIP_LIST_CFGS_ITEMS_FIELD.has_default_value = false +EQUIP_LIST_CFGS_ITEMS_FIELD.default_value = {} +EQUIP_LIST_CFGS_ITEMS_FIELD.message_type = EQUIP_LIST_CFG +EQUIP_LIST_CFGS_ITEMS_FIELD.type = 11 +EQUIP_LIST_CFGS_ITEMS_FIELD.cpp_type = 10 + +EQUIP_LIST_CFGS.name = "equip_list_cfgs" +EQUIP_LIST_CFGS.full_name = ".ftcfg.equip_list_cfgs" +EQUIP_LIST_CFGS.nested_types = {} +EQUIP_LIST_CFGS.enum_types = {} +EQUIP_LIST_CFGS.fields = {EQUIP_LIST_CFGS_ITEMS_FIELD} +EQUIP_LIST_CFGS.is_extendable = false +EQUIP_LIST_CFGS.extensions = {} +RUNE_SKILL_GROUP_CFG_ID_FIELD.name = "id" +RUNE_SKILL_GROUP_CFG_ID_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.id" +RUNE_SKILL_GROUP_CFG_ID_FIELD.number = 1 +RUNE_SKILL_GROUP_CFG_ID_FIELD.index = 0 +RUNE_SKILL_GROUP_CFG_ID_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_ID_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_ID_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_ID_FIELD.type = 13 +RUNE_SKILL_GROUP_CFG_ID_FIELD.cpp_type = 3 + +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.name = "group_id" +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.group_id" +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.number = 2 +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.index = 1 +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.type = 13 +RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD.cpp_type = 3 + +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.name = "skill_id" +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.skill_id" +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.number = 3 +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.index = 2 +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.type = 5 +RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD.cpp_type = 1 + +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.name = "level_rand" +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.level_rand" +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.number = 4 +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.index = 3 +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.label = 3 +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.default_value = {} +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.type = 13 +RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD.cpp_type = 3 + +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.name = "rate_1" +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.rate_1" +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.number = 5 +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.index = 4 +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.type = 5 +RUNE_SKILL_GROUP_CFG_RATE_1_FIELD.cpp_type = 1 + +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.name = "rate_2" +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.rate_2" +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.number = 6 +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.index = 5 +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.type = 5 +RUNE_SKILL_GROUP_CFG_RATE_2_FIELD.cpp_type = 1 + +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.name = "rate_3" +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.rate_3" +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.number = 7 +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.index = 6 +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.type = 5 +RUNE_SKILL_GROUP_CFG_RATE_3_FIELD.cpp_type = 1 + +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.name = "rate_4" +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.rate_4" +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.number = 8 +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.index = 7 +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.type = 5 +RUNE_SKILL_GROUP_CFG_RATE_4_FIELD.cpp_type = 1 + +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.name = "rate_5" +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.full_name = ".ftcfg.rune_skill_group_cfg.rate_5" +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.number = 9 +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.index = 8 +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.label = 2 +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.default_value = 0 +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.type = 5 +RUNE_SKILL_GROUP_CFG_RATE_5_FIELD.cpp_type = 1 + +RUNE_SKILL_GROUP_CFG.name = "rune_skill_group_cfg" +RUNE_SKILL_GROUP_CFG.full_name = ".ftcfg.rune_skill_group_cfg" +RUNE_SKILL_GROUP_CFG.nested_types = {} +RUNE_SKILL_GROUP_CFG.enum_types = {} +RUNE_SKILL_GROUP_CFG.fields = {RUNE_SKILL_GROUP_CFG_ID_FIELD, RUNE_SKILL_GROUP_CFG_GROUP_ID_FIELD, RUNE_SKILL_GROUP_CFG_SKILL_ID_FIELD, RUNE_SKILL_GROUP_CFG_LEVEL_RAND_FIELD, RUNE_SKILL_GROUP_CFG_RATE_1_FIELD, RUNE_SKILL_GROUP_CFG_RATE_2_FIELD, RUNE_SKILL_GROUP_CFG_RATE_3_FIELD, RUNE_SKILL_GROUP_CFG_RATE_4_FIELD, RUNE_SKILL_GROUP_CFG_RATE_5_FIELD} +RUNE_SKILL_GROUP_CFG.is_extendable = false +RUNE_SKILL_GROUP_CFG.extensions = {} +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.name = "items" +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_skill_group_cfgs.items" +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.number = 1 +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.index = 0 +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.label = 3 +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.default_value = {} +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.message_type = RUNE_SKILL_GROUP_CFG +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.type = 11 +RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_SKILL_GROUP_CFGS.name = "rune_skill_group_cfgs" +RUNE_SKILL_GROUP_CFGS.full_name = ".ftcfg.rune_skill_group_cfgs" +RUNE_SKILL_GROUP_CFGS.nested_types = {} +RUNE_SKILL_GROUP_CFGS.enum_types = {} +RUNE_SKILL_GROUP_CFGS.fields = {RUNE_SKILL_GROUP_CFGS_ITEMS_FIELD} +RUNE_SKILL_GROUP_CFGS.is_extendable = false +RUNE_SKILL_GROUP_CFGS.extensions = {} +RUNE_DECOMPOSE_CFG_ID_FIELD.name = "id" +RUNE_DECOMPOSE_CFG_ID_FIELD.full_name = ".ftcfg.rune_decompose_cfg.id" +RUNE_DECOMPOSE_CFG_ID_FIELD.number = 1 +RUNE_DECOMPOSE_CFG_ID_FIELD.index = 0 +RUNE_DECOMPOSE_CFG_ID_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ID_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ID_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ID_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ID_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_SILVER_FIELD.name = "silver" +RUNE_DECOMPOSE_CFG_SILVER_FIELD.full_name = ".ftcfg.rune_decompose_cfg.silver" +RUNE_DECOMPOSE_CFG_SILVER_FIELD.number = 2 +RUNE_DECOMPOSE_CFG_SILVER_FIELD.index = 1 +RUNE_DECOMPOSE_CFG_SILVER_FIELD.label = 3 +RUNE_DECOMPOSE_CFG_SILVER_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_SILVER_FIELD.default_value = {} +RUNE_DECOMPOSE_CFG_SILVER_FIELD.type = 5 +RUNE_DECOMPOSE_CFG_SILVER_FIELD.cpp_type = 1 + +RUNE_DECOMPOSE_CFG_GOLD_FIELD.name = "gold" +RUNE_DECOMPOSE_CFG_GOLD_FIELD.full_name = ".ftcfg.rune_decompose_cfg.gold" +RUNE_DECOMPOSE_CFG_GOLD_FIELD.number = 3 +RUNE_DECOMPOSE_CFG_GOLD_FIELD.index = 2 +RUNE_DECOMPOSE_CFG_GOLD_FIELD.label = 3 +RUNE_DECOMPOSE_CFG_GOLD_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_GOLD_FIELD.default_value = {} +RUNE_DECOMPOSE_CFG_GOLD_FIELD.type = 5 +RUNE_DECOMPOSE_CFG_GOLD_FIELD.cpp_type = 1 + +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.name = "item_id1" +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_id1" +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.number = 4 +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.index = 3 +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.name = "item_rate1" +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_rate1" +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.number = 5 +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.index = 4 +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.name = "item_count1" +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_count1" +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.number = 6 +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.index = 5 +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.name = "item_id2" +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_id2" +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.number = 7 +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.index = 6 +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.name = "item_rate2" +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_rate2" +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.number = 8 +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.index = 7 +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.name = "item_count2" +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_count2" +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.number = 9 +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.index = 8 +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.name = "item_id3" +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_id3" +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.number = 10 +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.index = 9 +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.name = "item_rate3" +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_rate3" +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.number = 11 +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.index = 10 +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.name = "item_count3" +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.full_name = ".ftcfg.rune_decompose_cfg.item_count3" +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.number = 12 +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.index = 11 +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.label = 2 +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.default_value = 0 +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.type = 13 +RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD.cpp_type = 3 + +RUNE_DECOMPOSE_CFG.name = "rune_decompose_cfg" +RUNE_DECOMPOSE_CFG.full_name = ".ftcfg.rune_decompose_cfg" +RUNE_DECOMPOSE_CFG.nested_types = {} +RUNE_DECOMPOSE_CFG.enum_types = {} +RUNE_DECOMPOSE_CFG.fields = {RUNE_DECOMPOSE_CFG_ID_FIELD, RUNE_DECOMPOSE_CFG_SILVER_FIELD, RUNE_DECOMPOSE_CFG_GOLD_FIELD, RUNE_DECOMPOSE_CFG_ITEM_ID1_FIELD, RUNE_DECOMPOSE_CFG_ITEM_RATE1_FIELD, RUNE_DECOMPOSE_CFG_ITEM_COUNT1_FIELD, RUNE_DECOMPOSE_CFG_ITEM_ID2_FIELD, RUNE_DECOMPOSE_CFG_ITEM_RATE2_FIELD, RUNE_DECOMPOSE_CFG_ITEM_COUNT2_FIELD, RUNE_DECOMPOSE_CFG_ITEM_ID3_FIELD, RUNE_DECOMPOSE_CFG_ITEM_RATE3_FIELD, RUNE_DECOMPOSE_CFG_ITEM_COUNT3_FIELD} +RUNE_DECOMPOSE_CFG.is_extendable = false +RUNE_DECOMPOSE_CFG.extensions = {} +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.name = "items" +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_decompose_cfgs.items" +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.number = 1 +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.index = 0 +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.label = 3 +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.default_value = {} +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.message_type = RUNE_DECOMPOSE_CFG +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.type = 11 +RUNE_DECOMPOSE_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_DECOMPOSE_CFGS.name = "rune_decompose_cfgs" +RUNE_DECOMPOSE_CFGS.full_name = ".ftcfg.rune_decompose_cfgs" +RUNE_DECOMPOSE_CFGS.nested_types = {} +RUNE_DECOMPOSE_CFGS.enum_types = {} +RUNE_DECOMPOSE_CFGS.fields = {RUNE_DECOMPOSE_CFGS_ITEMS_FIELD} +RUNE_DECOMPOSE_CFGS.is_extendable = false +RUNE_DECOMPOSE_CFGS.extensions = {} +JEWELRY_MAKE_CFG_ID_FIELD.name = "id" +JEWELRY_MAKE_CFG_ID_FIELD.full_name = ".ftcfg.jewelry_make_cfg.id" +JEWELRY_MAKE_CFG_ID_FIELD.number = 1 +JEWELRY_MAKE_CFG_ID_FIELD.index = 0 +JEWELRY_MAKE_CFG_ID_FIELD.label = 2 +JEWELRY_MAKE_CFG_ID_FIELD.has_default_value = false +JEWELRY_MAKE_CFG_ID_FIELD.default_value = 0 +JEWELRY_MAKE_CFG_ID_FIELD.type = 13 +JEWELRY_MAKE_CFG_ID_FIELD.cpp_type = 3 + +JEWELRY_MAKE_CFG_POP_COST_FIELD.name = "pop_cost" +JEWELRY_MAKE_CFG_POP_COST_FIELD.full_name = ".ftcfg.jewelry_make_cfg.pop_cost" +JEWELRY_MAKE_CFG_POP_COST_FIELD.number = 2 +JEWELRY_MAKE_CFG_POP_COST_FIELD.index = 1 +JEWELRY_MAKE_CFG_POP_COST_FIELD.label = 2 +JEWELRY_MAKE_CFG_POP_COST_FIELD.has_default_value = false +JEWELRY_MAKE_CFG_POP_COST_FIELD.default_value = 0 +JEWELRY_MAKE_CFG_POP_COST_FIELD.type = 5 +JEWELRY_MAKE_CFG_POP_COST_FIELD.cpp_type = 1 + +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.name = "money_cost" +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.full_name = ".ftcfg.jewelry_make_cfg.money_cost" +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.number = 3 +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.index = 2 +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.label = 2 +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.has_default_value = false +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.default_value = 0 +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.type = 5 +JEWELRY_MAKE_CFG_MONEY_COST_FIELD.cpp_type = 1 + +JEWELRY_MAKE_CFG.name = "jewelry_make_cfg" +JEWELRY_MAKE_CFG.full_name = ".ftcfg.jewelry_make_cfg" +JEWELRY_MAKE_CFG.nested_types = {} +JEWELRY_MAKE_CFG.enum_types = {} +JEWELRY_MAKE_CFG.fields = {JEWELRY_MAKE_CFG_ID_FIELD, JEWELRY_MAKE_CFG_POP_COST_FIELD, JEWELRY_MAKE_CFG_MONEY_COST_FIELD} +JEWELRY_MAKE_CFG.is_extendable = false +JEWELRY_MAKE_CFG.extensions = {} +JEWELRY_MAKE_CFGS_ITEMS_FIELD.name = "items" +JEWELRY_MAKE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.jewelry_make_cfgs.items" +JEWELRY_MAKE_CFGS_ITEMS_FIELD.number = 1 +JEWELRY_MAKE_CFGS_ITEMS_FIELD.index = 0 +JEWELRY_MAKE_CFGS_ITEMS_FIELD.label = 3 +JEWELRY_MAKE_CFGS_ITEMS_FIELD.has_default_value = false +JEWELRY_MAKE_CFGS_ITEMS_FIELD.default_value = {} +JEWELRY_MAKE_CFGS_ITEMS_FIELD.message_type = JEWELRY_MAKE_CFG +JEWELRY_MAKE_CFGS_ITEMS_FIELD.type = 11 +JEWELRY_MAKE_CFGS_ITEMS_FIELD.cpp_type = 10 + +JEWELRY_MAKE_CFGS.name = "jewelry_make_cfgs" +JEWELRY_MAKE_CFGS.full_name = ".ftcfg.jewelry_make_cfgs" +JEWELRY_MAKE_CFGS.nested_types = {} +JEWELRY_MAKE_CFGS.enum_types = {} +JEWELRY_MAKE_CFGS.fields = {JEWELRY_MAKE_CFGS_ITEMS_FIELD} +JEWELRY_MAKE_CFGS.is_extendable = false +JEWELRY_MAKE_CFGS.extensions = {} +WORLD_MAP_CFG_ID_FIELD.name = "id" +WORLD_MAP_CFG_ID_FIELD.full_name = ".ftcfg.world_map_cfg.id" +WORLD_MAP_CFG_ID_FIELD.number = 1 +WORLD_MAP_CFG_ID_FIELD.index = 0 +WORLD_MAP_CFG_ID_FIELD.label = 2 +WORLD_MAP_CFG_ID_FIELD.has_default_value = false +WORLD_MAP_CFG_ID_FIELD.default_value = 0 +WORLD_MAP_CFG_ID_FIELD.type = 5 +WORLD_MAP_CFG_ID_FIELD.cpp_type = 1 + +WORLD_MAP_CFG_SCENE_NAME_FIELD.name = "scene_name" +WORLD_MAP_CFG_SCENE_NAME_FIELD.full_name = ".ftcfg.world_map_cfg.scene_name" +WORLD_MAP_CFG_SCENE_NAME_FIELD.number = 2 +WORLD_MAP_CFG_SCENE_NAME_FIELD.index = 1 +WORLD_MAP_CFG_SCENE_NAME_FIELD.label = 2 +WORLD_MAP_CFG_SCENE_NAME_FIELD.has_default_value = false +WORLD_MAP_CFG_SCENE_NAME_FIELD.default_value = 0 +WORLD_MAP_CFG_SCENE_NAME_FIELD.type = 5 +WORLD_MAP_CFG_SCENE_NAME_FIELD.cpp_type = 1 + +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.name = "scene_nameshow" +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.full_name = ".ftcfg.world_map_cfg.scene_nameshow" +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.number = 3 +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.index = 2 +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.label = 2 +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.has_default_value = false +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.default_value = "" +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.type = 9 +WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD.cpp_type = 9 + +WORLD_MAP_CFG_OPEN_LV_FIELD.name = "open_lv" +WORLD_MAP_CFG_OPEN_LV_FIELD.full_name = ".ftcfg.world_map_cfg.open_lv" +WORLD_MAP_CFG_OPEN_LV_FIELD.number = 4 +WORLD_MAP_CFG_OPEN_LV_FIELD.index = 3 +WORLD_MAP_CFG_OPEN_LV_FIELD.label = 2 +WORLD_MAP_CFG_OPEN_LV_FIELD.has_default_value = false +WORLD_MAP_CFG_OPEN_LV_FIELD.default_value = 0 +WORLD_MAP_CFG_OPEN_LV_FIELD.type = 5 +WORLD_MAP_CFG_OPEN_LV_FIELD.cpp_type = 1 + +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.name = "openlv_show" +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.full_name = ".ftcfg.world_map_cfg.openlv_show" +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.number = 5 +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.index = 4 +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.label = 2 +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.has_default_value = false +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.default_value = 0 +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.type = 5 +WORLD_MAP_CFG_OPENLV_SHOW_FIELD.cpp_type = 1 + +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.name = "language_id" +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.full_name = ".ftcfg.world_map_cfg.language_id" +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.number = 6 +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.index = 5 +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.label = 2 +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.has_default_value = false +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.default_value = "" +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.type = 9 +WORLD_MAP_CFG_LANGUAGE_ID_FIELD.cpp_type = 9 + +WORLD_MAP_CFG_SCENE_ID_FIELD.name = "scene_id" +WORLD_MAP_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.world_map_cfg.scene_id" +WORLD_MAP_CFG_SCENE_ID_FIELD.number = 7 +WORLD_MAP_CFG_SCENE_ID_FIELD.index = 6 +WORLD_MAP_CFG_SCENE_ID_FIELD.label = 2 +WORLD_MAP_CFG_SCENE_ID_FIELD.has_default_value = false +WORLD_MAP_CFG_SCENE_ID_FIELD.default_value = 0 +WORLD_MAP_CFG_SCENE_ID_FIELD.type = 5 +WORLD_MAP_CFG_SCENE_ID_FIELD.cpp_type = 1 + +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.name = "initial_whether" +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.full_name = ".ftcfg.world_map_cfg.initial_whether" +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.number = 8 +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.index = 7 +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.label = 2 +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.has_default_value = false +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.default_value = 0 +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.type = 5 +WORLD_MAP_CFG_INITIAL_WHETHER_FIELD.cpp_type = 1 + +WORLD_MAP_CFG_SCENE_ICON_FIELD.name = "scene_icon" +WORLD_MAP_CFG_SCENE_ICON_FIELD.full_name = ".ftcfg.world_map_cfg.scene_icon" +WORLD_MAP_CFG_SCENE_ICON_FIELD.number = 9 +WORLD_MAP_CFG_SCENE_ICON_FIELD.index = 8 +WORLD_MAP_CFG_SCENE_ICON_FIELD.label = 2 +WORLD_MAP_CFG_SCENE_ICON_FIELD.has_default_value = false +WORLD_MAP_CFG_SCENE_ICON_FIELD.default_value = 0 +WORLD_MAP_CFG_SCENE_ICON_FIELD.type = 5 +WORLD_MAP_CFG_SCENE_ICON_FIELD.cpp_type = 1 + +WORLD_MAP_CFG.name = "world_map_cfg" +WORLD_MAP_CFG.full_name = ".ftcfg.world_map_cfg" +WORLD_MAP_CFG.nested_types = {} +WORLD_MAP_CFG.enum_types = {} +WORLD_MAP_CFG.fields = {WORLD_MAP_CFG_ID_FIELD, WORLD_MAP_CFG_SCENE_NAME_FIELD, WORLD_MAP_CFG_SCENE_NAMESHOW_FIELD, WORLD_MAP_CFG_OPEN_LV_FIELD, WORLD_MAP_CFG_OPENLV_SHOW_FIELD, WORLD_MAP_CFG_LANGUAGE_ID_FIELD, WORLD_MAP_CFG_SCENE_ID_FIELD, WORLD_MAP_CFG_INITIAL_WHETHER_FIELD, WORLD_MAP_CFG_SCENE_ICON_FIELD} +WORLD_MAP_CFG.is_extendable = false +WORLD_MAP_CFG.extensions = {} +WORLD_MAP_CFGS_ITEMS_FIELD.name = "items" +WORLD_MAP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.world_map_cfgs.items" +WORLD_MAP_CFGS_ITEMS_FIELD.number = 1 +WORLD_MAP_CFGS_ITEMS_FIELD.index = 0 +WORLD_MAP_CFGS_ITEMS_FIELD.label = 3 +WORLD_MAP_CFGS_ITEMS_FIELD.has_default_value = false +WORLD_MAP_CFGS_ITEMS_FIELD.default_value = {} +WORLD_MAP_CFGS_ITEMS_FIELD.message_type = WORLD_MAP_CFG +WORLD_MAP_CFGS_ITEMS_FIELD.type = 11 +WORLD_MAP_CFGS_ITEMS_FIELD.cpp_type = 10 + +WORLD_MAP_CFGS.name = "world_map_cfgs" +WORLD_MAP_CFGS.full_name = ".ftcfg.world_map_cfgs" +WORLD_MAP_CFGS.nested_types = {} +WORLD_MAP_CFGS.enum_types = {} +WORLD_MAP_CFGS.fields = {WORLD_MAP_CFGS_ITEMS_FIELD} +WORLD_MAP_CFGS.is_extendable = false +WORLD_MAP_CFGS.extensions = {} +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.name = "partner_quality" +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.full_name = ".ftcfg.partner_currency_cfg.partner_quality" +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.number = 1 +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.index = 0 +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.label = 2 +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.has_default_value = false +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.default_value = nil +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.enum_type = config_predefine_pb.EITEMCOLOR +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.type = 14 +PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD.cpp_type = 8 + +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.name = "currency_num" +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.full_name = ".ftcfg.partner_currency_cfg.currency_num" +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.number = 2 +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.index = 1 +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.label = 3 +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.has_default_value = false +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.default_value = {} +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.type = 5 +PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD.cpp_type = 1 + +PARTNER_CURRENCY_CFG.name = "partner_currency_cfg" +PARTNER_CURRENCY_CFG.full_name = ".ftcfg.partner_currency_cfg" +PARTNER_CURRENCY_CFG.nested_types = {} +PARTNER_CURRENCY_CFG.enum_types = {} +PARTNER_CURRENCY_CFG.fields = {PARTNER_CURRENCY_CFG_PARTNER_QUALITY_FIELD, PARTNER_CURRENCY_CFG_CURRENCY_NUM_FIELD} +PARTNER_CURRENCY_CFG.is_extendable = false +PARTNER_CURRENCY_CFG.extensions = {} +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.name = "items" +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_currency_cfgs.items" +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.number = 1 +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.index = 0 +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.label = 3 +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.message_type = PARTNER_CURRENCY_CFG +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.type = 11 +PARTNER_CURRENCY_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_CURRENCY_CFGS.name = "partner_currency_cfgs" +PARTNER_CURRENCY_CFGS.full_name = ".ftcfg.partner_currency_cfgs" +PARTNER_CURRENCY_CFGS.nested_types = {} +PARTNER_CURRENCY_CFGS.enum_types = {} +PARTNER_CURRENCY_CFGS.fields = {PARTNER_CURRENCY_CFGS_ITEMS_FIELD} +PARTNER_CURRENCY_CFGS.is_extendable = false +PARTNER_CURRENCY_CFGS.extensions = {} +PARTNER_ACTIVATION_CFG_ID_FIELD.name = "id" +PARTNER_ACTIVATION_CFG_ID_FIELD.full_name = ".ftcfg.partner_activation_cfg.id" +PARTNER_ACTIVATION_CFG_ID_FIELD.number = 1 +PARTNER_ACTIVATION_CFG_ID_FIELD.index = 0 +PARTNER_ACTIVATION_CFG_ID_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_ID_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_ID_FIELD.default_value = 0 +PARTNER_ACTIVATION_CFG_ID_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.name = "plotid" +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.full_name = ".ftcfg.partner_activation_cfg.plotid" +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.number = 2 +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.index = 1 +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.default_value = 0 +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_PLOTID_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.name = "branchplotid" +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.full_name = ".ftcfg.partner_activation_cfg.branchplotid" +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.number = 3 +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.index = 2 +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.default_value = 0 +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.name = "partnerid" +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.full_name = ".ftcfg.partner_activation_cfg.partnerid" +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.number = 4 +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.index = 3 +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_PARTNERID_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.name = "partnerimpressionlevel" +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.full_name = ".ftcfg.partner_activation_cfg.partnerimpressionlevel" +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.number = 5 +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.index = 4 +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.name = "combatpower" +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.full_name = ".ftcfg.partner_activation_cfg.combatpower" +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.number = 6 +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.index = 5 +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.default_value = 0 +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_NAME_FIELD.name = "name" +PARTNER_ACTIVATION_CFG_NAME_FIELD.full_name = ".ftcfg.partner_activation_cfg.name" +PARTNER_ACTIVATION_CFG_NAME_FIELD.number = 7 +PARTNER_ACTIVATION_CFG_NAME_FIELD.index = 6 +PARTNER_ACTIVATION_CFG_NAME_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_NAME_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_NAME_FIELD.default_value = "" +PARTNER_ACTIVATION_CFG_NAME_FIELD.type = 9 +PARTNER_ACTIVATION_CFG_NAME_FIELD.cpp_type = 9 + +PARTNER_ACTIVATION_CFG_ICON_FIELD.name = "icon" +PARTNER_ACTIVATION_CFG_ICON_FIELD.full_name = ".ftcfg.partner_activation_cfg.icon" +PARTNER_ACTIVATION_CFG_ICON_FIELD.number = 8 +PARTNER_ACTIVATION_CFG_ICON_FIELD.index = 7 +PARTNER_ACTIVATION_CFG_ICON_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_ICON_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_ICON_FIELD.default_value = 0 +PARTNER_ACTIVATION_CFG_ICON_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_ICON_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_DESC_FIELD.name = "desc" +PARTNER_ACTIVATION_CFG_DESC_FIELD.full_name = ".ftcfg.partner_activation_cfg.desc" +PARTNER_ACTIVATION_CFG_DESC_FIELD.number = 9 +PARTNER_ACTIVATION_CFG_DESC_FIELD.index = 8 +PARTNER_ACTIVATION_CFG_DESC_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_DESC_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_DESC_FIELD.default_value = "" +PARTNER_ACTIVATION_CFG_DESC_FIELD.type = 9 +PARTNER_ACTIVATION_CFG_DESC_FIELD.cpp_type = 9 + +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.name = "moodids" +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.full_name = ".ftcfg.partner_activation_cfg.moodids" +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.number = 10 +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.index = 9 +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_MOODIDS_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.name = "proportions" +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.full_name = ".ftcfg.partner_activation_cfg.proportions" +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.number = 11 +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.index = 10 +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.name = "maximpressionlevel" +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.full_name = ".ftcfg.partner_activation_cfg.maximpressionlevel" +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.number = 12 +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.index = 11 +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.default_value = 0 +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_GITS_FIELD.name = "gits" +PARTNER_ACTIVATION_CFG_GITS_FIELD.full_name = ".ftcfg.partner_activation_cfg.gits" +PARTNER_ACTIVATION_CFG_GITS_FIELD.number = 13 +PARTNER_ACTIVATION_CFG_GITS_FIELD.index = 12 +PARTNER_ACTIVATION_CFG_GITS_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_GITS_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_GITS_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_GITS_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_GITS_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.name = "presentation1" +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.full_name = ".ftcfg.partner_activation_cfg.presentation1" +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.number = 14 +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.index = 13 +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.name = "presentation2" +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.full_name = ".ftcfg.partner_activation_cfg.presentation2" +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.number = 15 +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.index = 14 +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.name = "presentation3" +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.full_name = ".ftcfg.partner_activation_cfg.presentation3" +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.number = 16 +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.index = 15 +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.label = 3 +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.default_value = {} +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.type = 5 +PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD.cpp_type = 1 + +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.name = "move_head" +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.full_name = ".ftcfg.partner_activation_cfg.move_head" +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.number = 17 +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.index = 16 +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.default_value = "" +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.type = 9 +PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD.cpp_type = 9 + +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.name = "head_time" +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.full_name = ".ftcfg.partner_activation_cfg.head_time" +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.number = 18 +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.index = 17 +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.default_value = 0.0 +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.type = 2 +PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD.cpp_type = 6 + +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.name = "move_body" +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.full_name = ".ftcfg.partner_activation_cfg.move_body" +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.number = 19 +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.index = 18 +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.default_value = "" +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.type = 9 +PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD.cpp_type = 9 + +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.name = "body_time" +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.full_name = ".ftcfg.partner_activation_cfg.body_time" +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.number = 20 +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.index = 19 +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.default_value = 0.0 +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.type = 2 +PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD.cpp_type = 6 + +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.name = "move_leg" +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.full_name = ".ftcfg.partner_activation_cfg.move_leg" +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.number = 21 +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.index = 20 +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.default_value = "" +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.type = 9 +PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD.cpp_type = 9 + +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.name = "leg_time" +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.full_name = ".ftcfg.partner_activation_cfg.leg_time" +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.number = 22 +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.index = 21 +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.default_value = 0.0 +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.type = 2 +PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD.cpp_type = 6 + +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.name = "move_promote" +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.full_name = ".ftcfg.partner_activation_cfg.move_promote" +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.number = 23 +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.index = 22 +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.default_value = "" +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.type = 9 +PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD.cpp_type = 9 + +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.name = "pronote_time" +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.full_name = ".ftcfg.partner_activation_cfg.pronote_time" +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.number = 24 +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.index = 23 +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.label = 2 +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.default_value = 0.0 +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.type = 2 +PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD.cpp_type = 6 + +PARTNER_ACTIVATION_CFG.name = "partner_activation_cfg" +PARTNER_ACTIVATION_CFG.full_name = ".ftcfg.partner_activation_cfg" +PARTNER_ACTIVATION_CFG.nested_types = {} +PARTNER_ACTIVATION_CFG.enum_types = {} +PARTNER_ACTIVATION_CFG.fields = {PARTNER_ACTIVATION_CFG_ID_FIELD, PARTNER_ACTIVATION_CFG_PLOTID_FIELD, PARTNER_ACTIVATION_CFG_BRANCHPLOTID_FIELD, PARTNER_ACTIVATION_CFG_PARTNERID_FIELD, PARTNER_ACTIVATION_CFG_PARTNERIMPRESSIONLEVEL_FIELD, PARTNER_ACTIVATION_CFG_COMBATPOWER_FIELD, PARTNER_ACTIVATION_CFG_NAME_FIELD, PARTNER_ACTIVATION_CFG_ICON_FIELD, PARTNER_ACTIVATION_CFG_DESC_FIELD, PARTNER_ACTIVATION_CFG_MOODIDS_FIELD, PARTNER_ACTIVATION_CFG_PROPORTIONS_FIELD, PARTNER_ACTIVATION_CFG_MAXIMPRESSIONLEVEL_FIELD, PARTNER_ACTIVATION_CFG_GITS_FIELD, PARTNER_ACTIVATION_CFG_PRESENTATION1_FIELD, PARTNER_ACTIVATION_CFG_PRESENTATION2_FIELD, PARTNER_ACTIVATION_CFG_PRESENTATION3_FIELD, PARTNER_ACTIVATION_CFG_MOVE_HEAD_FIELD, PARTNER_ACTIVATION_CFG_HEAD_TIME_FIELD, PARTNER_ACTIVATION_CFG_MOVE_BODY_FIELD, PARTNER_ACTIVATION_CFG_BODY_TIME_FIELD, PARTNER_ACTIVATION_CFG_MOVE_LEG_FIELD, PARTNER_ACTIVATION_CFG_LEG_TIME_FIELD, PARTNER_ACTIVATION_CFG_MOVE_PROMOTE_FIELD, PARTNER_ACTIVATION_CFG_PRONOTE_TIME_FIELD} +PARTNER_ACTIVATION_CFG.is_extendable = false +PARTNER_ACTIVATION_CFG.extensions = {} +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.name = "items" +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_activation_cfgs.items" +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.number = 1 +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.index = 0 +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.label = 3 +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.message_type = PARTNER_ACTIVATION_CFG +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.type = 11 +PARTNER_ACTIVATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_ACTIVATION_CFGS.name = "partner_activation_cfgs" +PARTNER_ACTIVATION_CFGS.full_name = ".ftcfg.partner_activation_cfgs" +PARTNER_ACTIVATION_CFGS.nested_types = {} +PARTNER_ACTIVATION_CFGS.enum_types = {} +PARTNER_ACTIVATION_CFGS.fields = {PARTNER_ACTIVATION_CFGS_ITEMS_FIELD} +PARTNER_ACTIVATION_CFGS.is_extendable = false +PARTNER_ACTIVATION_CFGS.extensions = {} +PARTNER_MOOD_CFG_ID_FIELD.name = "id" +PARTNER_MOOD_CFG_ID_FIELD.full_name = ".ftcfg.partner_mood_cfg.id" +PARTNER_MOOD_CFG_ID_FIELD.number = 1 +PARTNER_MOOD_CFG_ID_FIELD.index = 0 +PARTNER_MOOD_CFG_ID_FIELD.label = 2 +PARTNER_MOOD_CFG_ID_FIELD.has_default_value = false +PARTNER_MOOD_CFG_ID_FIELD.default_value = 0 +PARTNER_MOOD_CFG_ID_FIELD.type = 5 +PARTNER_MOOD_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_MOOD_CFG_GIFTID_FIELD.name = "giftid" +PARTNER_MOOD_CFG_GIFTID_FIELD.full_name = ".ftcfg.partner_mood_cfg.giftid" +PARTNER_MOOD_CFG_GIFTID_FIELD.number = 2 +PARTNER_MOOD_CFG_GIFTID_FIELD.index = 1 +PARTNER_MOOD_CFG_GIFTID_FIELD.label = 3 +PARTNER_MOOD_CFG_GIFTID_FIELD.has_default_value = false +PARTNER_MOOD_CFG_GIFTID_FIELD.default_value = {} +PARTNER_MOOD_CFG_GIFTID_FIELD.type = 5 +PARTNER_MOOD_CFG_GIFTID_FIELD.cpp_type = 1 + +PARTNER_MOOD_CFG_MOODTEXT_FIELD.name = "moodtext" +PARTNER_MOOD_CFG_MOODTEXT_FIELD.full_name = ".ftcfg.partner_mood_cfg.moodtext" +PARTNER_MOOD_CFG_MOODTEXT_FIELD.number = 3 +PARTNER_MOOD_CFG_MOODTEXT_FIELD.index = 2 +PARTNER_MOOD_CFG_MOODTEXT_FIELD.label = 2 +PARTNER_MOOD_CFG_MOODTEXT_FIELD.has_default_value = false +PARTNER_MOOD_CFG_MOODTEXT_FIELD.default_value = "" +PARTNER_MOOD_CFG_MOODTEXT_FIELD.type = 9 +PARTNER_MOOD_CFG_MOODTEXT_FIELD.cpp_type = 9 + +PARTNER_MOOD_CFG_MULTIPLE_FIELD.name = "multiple" +PARTNER_MOOD_CFG_MULTIPLE_FIELD.full_name = ".ftcfg.partner_mood_cfg.multiple" +PARTNER_MOOD_CFG_MULTIPLE_FIELD.number = 4 +PARTNER_MOOD_CFG_MULTIPLE_FIELD.index = 3 +PARTNER_MOOD_CFG_MULTIPLE_FIELD.label = 2 +PARTNER_MOOD_CFG_MULTIPLE_FIELD.has_default_value = false +PARTNER_MOOD_CFG_MULTIPLE_FIELD.default_value = 0 +PARTNER_MOOD_CFG_MULTIPLE_FIELD.type = 5 +PARTNER_MOOD_CFG_MULTIPLE_FIELD.cpp_type = 1 + +PARTNER_MOOD_CFG.name = "partner_mood_cfg" +PARTNER_MOOD_CFG.full_name = ".ftcfg.partner_mood_cfg" +PARTNER_MOOD_CFG.nested_types = {} +PARTNER_MOOD_CFG.enum_types = {} +PARTNER_MOOD_CFG.fields = {PARTNER_MOOD_CFG_ID_FIELD, PARTNER_MOOD_CFG_GIFTID_FIELD, PARTNER_MOOD_CFG_MOODTEXT_FIELD, PARTNER_MOOD_CFG_MULTIPLE_FIELD} +PARTNER_MOOD_CFG.is_extendable = false +PARTNER_MOOD_CFG.extensions = {} +PARTNER_MOOD_CFGS_ITEMS_FIELD.name = "items" +PARTNER_MOOD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_mood_cfgs.items" +PARTNER_MOOD_CFGS_ITEMS_FIELD.number = 1 +PARTNER_MOOD_CFGS_ITEMS_FIELD.index = 0 +PARTNER_MOOD_CFGS_ITEMS_FIELD.label = 3 +PARTNER_MOOD_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_MOOD_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_MOOD_CFGS_ITEMS_FIELD.message_type = PARTNER_MOOD_CFG +PARTNER_MOOD_CFGS_ITEMS_FIELD.type = 11 +PARTNER_MOOD_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_MOOD_CFGS.name = "partner_mood_cfgs" +PARTNER_MOOD_CFGS.full_name = ".ftcfg.partner_mood_cfgs" +PARTNER_MOOD_CFGS.nested_types = {} +PARTNER_MOOD_CFGS.enum_types = {} +PARTNER_MOOD_CFGS.fields = {PARTNER_MOOD_CFGS_ITEMS_FIELD} +PARTNER_MOOD_CFGS.is_extendable = false +PARTNER_MOOD_CFGS.extensions = {} +PARTNER_IMPRESSION_CFG_ID_FIELD.name = "id" +PARTNER_IMPRESSION_CFG_ID_FIELD.full_name = ".ftcfg.partner_impression_cfg.id" +PARTNER_IMPRESSION_CFG_ID_FIELD.number = 1 +PARTNER_IMPRESSION_CFG_ID_FIELD.index = 0 +PARTNER_IMPRESSION_CFG_ID_FIELD.label = 2 +PARTNER_IMPRESSION_CFG_ID_FIELD.has_default_value = false +PARTNER_IMPRESSION_CFG_ID_FIELD.default_value = 0 +PARTNER_IMPRESSION_CFG_ID_FIELD.type = 5 +PARTNER_IMPRESSION_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.name = "partnerid" +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.full_name = ".ftcfg.partner_impression_cfg.partnerid" +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.number = 2 +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.index = 1 +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.label = 2 +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.has_default_value = false +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.default_value = 0 +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.type = 5 +PARTNER_IMPRESSION_CFG_PARTNERID_FIELD.cpp_type = 1 + +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.name = "level" +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.full_name = ".ftcfg.partner_impression_cfg.level" +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.number = 3 +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.index = 2 +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.label = 2 +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.has_default_value = false +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.default_value = 0 +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.type = 5 +PARTNER_IMPRESSION_CFG_LEVEL_FIELD.cpp_type = 1 + +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.name = "biographyid" +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.full_name = ".ftcfg.partner_impression_cfg.biographyid" +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.number = 4 +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.index = 3 +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.label = 2 +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.has_default_value = false +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.default_value = 0 +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.type = 5 +PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD.cpp_type = 1 + +PARTNER_IMPRESSION_CFG.name = "partner_impression_cfg" +PARTNER_IMPRESSION_CFG.full_name = ".ftcfg.partner_impression_cfg" +PARTNER_IMPRESSION_CFG.nested_types = {} +PARTNER_IMPRESSION_CFG.enum_types = {} +PARTNER_IMPRESSION_CFG.fields = {PARTNER_IMPRESSION_CFG_ID_FIELD, PARTNER_IMPRESSION_CFG_PARTNERID_FIELD, PARTNER_IMPRESSION_CFG_LEVEL_FIELD, PARTNER_IMPRESSION_CFG_BIOGRAPHYID_FIELD} +PARTNER_IMPRESSION_CFG.is_extendable = false +PARTNER_IMPRESSION_CFG.extensions = {} +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.name = "items" +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_impression_cfgs.items" +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.number = 1 +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.index = 0 +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.label = 3 +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.message_type = PARTNER_IMPRESSION_CFG +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.type = 11 +PARTNER_IMPRESSION_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_IMPRESSION_CFGS.name = "partner_impression_cfgs" +PARTNER_IMPRESSION_CFGS.full_name = ".ftcfg.partner_impression_cfgs" +PARTNER_IMPRESSION_CFGS.nested_types = {} +PARTNER_IMPRESSION_CFGS.enum_types = {} +PARTNER_IMPRESSION_CFGS.fields = {PARTNER_IMPRESSION_CFGS_ITEMS_FIELD} +PARTNER_IMPRESSION_CFGS.is_extendable = false +PARTNER_IMPRESSION_CFGS.extensions = {} +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.name = "id" +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.full_name = ".ftcfg.partner_impre_levelup_cfg.id" +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.number = 1 +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.index = 0 +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.label = 2 +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.has_default_value = false +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.default_value = 0 +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.type = 5 +PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.name = "type" +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.full_name = ".ftcfg.partner_impre_levelup_cfg.type" +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.number = 2 +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.index = 1 +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.label = 2 +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.has_default_value = false +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.default_value = 0 +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.type = 5 +PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD.cpp_type = 1 + +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.name = "level" +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.full_name = ".ftcfg.partner_impre_levelup_cfg.level" +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.number = 3 +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.index = 2 +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.label = 2 +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.has_default_value = false +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.default_value = 0 +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.type = 5 +PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD.cpp_type = 1 + +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.name = "exp" +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.full_name = ".ftcfg.partner_impre_levelup_cfg.exp" +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.number = 4 +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.index = 3 +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.label = 2 +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.has_default_value = false +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.default_value = 0 +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.type = 5 +PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD.cpp_type = 1 + +PARTNER_IMPRE_LEVELUP_CFG.name = "partner_impre_levelup_cfg" +PARTNER_IMPRE_LEVELUP_CFG.full_name = ".ftcfg.partner_impre_levelup_cfg" +PARTNER_IMPRE_LEVELUP_CFG.nested_types = {} +PARTNER_IMPRE_LEVELUP_CFG.enum_types = {} +PARTNER_IMPRE_LEVELUP_CFG.fields = {PARTNER_IMPRE_LEVELUP_CFG_ID_FIELD, PARTNER_IMPRE_LEVELUP_CFG_TYPE_FIELD, PARTNER_IMPRE_LEVELUP_CFG_LEVEL_FIELD, PARTNER_IMPRE_LEVELUP_CFG_EXP_FIELD} +PARTNER_IMPRE_LEVELUP_CFG.is_extendable = false +PARTNER_IMPRE_LEVELUP_CFG.extensions = {} +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.name = "items" +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_impre_levelup_cfgs.items" +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.number = 1 +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.index = 0 +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.label = 3 +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.message_type = PARTNER_IMPRE_LEVELUP_CFG +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.type = 11 +PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_IMPRE_LEVELUP_CFGS.name = "partner_impre_levelup_cfgs" +PARTNER_IMPRE_LEVELUP_CFGS.full_name = ".ftcfg.partner_impre_levelup_cfgs" +PARTNER_IMPRE_LEVELUP_CFGS.nested_types = {} +PARTNER_IMPRE_LEVELUP_CFGS.enum_types = {} +PARTNER_IMPRE_LEVELUP_CFGS.fields = {PARTNER_IMPRE_LEVELUP_CFGS_ITEMS_FIELD} +PARTNER_IMPRE_LEVELUP_CFGS.is_extendable = false +PARTNER_IMPRE_LEVELUP_CFGS.extensions = {} +PARTNER_MULTIPLE_CFG_ID_FIELD.name = "id" +PARTNER_MULTIPLE_CFG_ID_FIELD.full_name = ".ftcfg.partner_multiple_cfg.id" +PARTNER_MULTIPLE_CFG_ID_FIELD.number = 1 +PARTNER_MULTIPLE_CFG_ID_FIELD.index = 0 +PARTNER_MULTIPLE_CFG_ID_FIELD.label = 2 +PARTNER_MULTIPLE_CFG_ID_FIELD.has_default_value = false +PARTNER_MULTIPLE_CFG_ID_FIELD.default_value = 0 +PARTNER_MULTIPLE_CFG_ID_FIELD.type = 5 +PARTNER_MULTIPLE_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.name = "clickgrowth" +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.full_name = ".ftcfg.partner_multiple_cfg.clickgrowth" +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.number = 2 +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.index = 1 +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.label = 2 +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.has_default_value = false +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.default_value = 0 +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.type = 5 +PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD.cpp_type = 1 + +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.name = "probability" +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.full_name = ".ftcfg.partner_multiple_cfg.probability" +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.number = 3 +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.index = 2 +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.label = 3 +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.has_default_value = false +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.default_value = {} +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.type = 5 +PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD.cpp_type = 1 + +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.name = "multiple" +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.full_name = ".ftcfg.partner_multiple_cfg.multiple" +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.number = 4 +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.index = 3 +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.label = 3 +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.has_default_value = false +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.default_value = {} +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.type = 5 +PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD.cpp_type = 1 + +PARTNER_MULTIPLE_CFG.name = "partner_multiple_cfg" +PARTNER_MULTIPLE_CFG.full_name = ".ftcfg.partner_multiple_cfg" +PARTNER_MULTIPLE_CFG.nested_types = {} +PARTNER_MULTIPLE_CFG.enum_types = {} +PARTNER_MULTIPLE_CFG.fields = {PARTNER_MULTIPLE_CFG_ID_FIELD, PARTNER_MULTIPLE_CFG_CLICKGROWTH_FIELD, PARTNER_MULTIPLE_CFG_PROBABILITY_FIELD, PARTNER_MULTIPLE_CFG_MULTIPLE_FIELD} +PARTNER_MULTIPLE_CFG.is_extendable = false +PARTNER_MULTIPLE_CFG.extensions = {} +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.name = "items" +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_multiple_cfgs.items" +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.number = 1 +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.index = 0 +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.label = 3 +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.message_type = PARTNER_MULTIPLE_CFG +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.type = 11 +PARTNER_MULTIPLE_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_MULTIPLE_CFGS.name = "partner_multiple_cfgs" +PARTNER_MULTIPLE_CFGS.full_name = ".ftcfg.partner_multiple_cfgs" +PARTNER_MULTIPLE_CFGS.nested_types = {} +PARTNER_MULTIPLE_CFGS.enum_types = {} +PARTNER_MULTIPLE_CFGS.fields = {PARTNER_MULTIPLE_CFGS_ITEMS_FIELD} +PARTNER_MULTIPLE_CFGS.is_extendable = false +PARTNER_MULTIPLE_CFGS.extensions = {} +PARTNER_STAR_CFG_ID_FIELD.name = "id" +PARTNER_STAR_CFG_ID_FIELD.full_name = ".ftcfg.partner_star_cfg.id" +PARTNER_STAR_CFG_ID_FIELD.number = 1 +PARTNER_STAR_CFG_ID_FIELD.index = 0 +PARTNER_STAR_CFG_ID_FIELD.label = 2 +PARTNER_STAR_CFG_ID_FIELD.has_default_value = false +PARTNER_STAR_CFG_ID_FIELD.default_value = 0 +PARTNER_STAR_CFG_ID_FIELD.type = 5 +PARTNER_STAR_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.name = "partner_type" +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.full_name = ".ftcfg.partner_star_cfg.partner_type" +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.number = 2 +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.index = 1 +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.label = 2 +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.has_default_value = false +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.default_value = 0 +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.type = 5 +PARTNER_STAR_CFG_PARTNER_TYPE_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_STAR_FIELD.name = "star" +PARTNER_STAR_CFG_STAR_FIELD.full_name = ".ftcfg.partner_star_cfg.star" +PARTNER_STAR_CFG_STAR_FIELD.number = 3 +PARTNER_STAR_CFG_STAR_FIELD.index = 2 +PARTNER_STAR_CFG_STAR_FIELD.label = 2 +PARTNER_STAR_CFG_STAR_FIELD.has_default_value = false +PARTNER_STAR_CFG_STAR_FIELD.default_value = 0 +PARTNER_STAR_CFG_STAR_FIELD.type = 5 +PARTNER_STAR_CFG_STAR_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.name = "study_group" +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.full_name = ".ftcfg.partner_star_cfg.study_group" +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.number = 4 +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.index = 3 +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.label = 2 +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.has_default_value = false +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.default_value = 0 +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.type = 5 +PARTNER_STAR_CFG_STUDY_GROUP_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.name = "study_limit" +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.full_name = ".ftcfg.partner_star_cfg.study_limit" +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.number = 5 +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.index = 4 +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.label = 2 +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.has_default_value = false +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.default_value = 0 +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.type = 5 +PARTNER_STAR_CFG_STUDY_LIMIT_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_STUDY_FIELD.name = "study" +PARTNER_STAR_CFG_STUDY_FIELD.full_name = ".ftcfg.partner_star_cfg.study" +PARTNER_STAR_CFG_STUDY_FIELD.number = 6 +PARTNER_STAR_CFG_STUDY_FIELD.index = 5 +PARTNER_STAR_CFG_STUDY_FIELD.label = 2 +PARTNER_STAR_CFG_STUDY_FIELD.has_default_value = false +PARTNER_STAR_CFG_STUDY_FIELD.default_value = 0 +PARTNER_STAR_CFG_STUDY_FIELD.type = 5 +PARTNER_STAR_CFG_STUDY_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.name = "study_item" +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.full_name = ".ftcfg.partner_star_cfg.study_item" +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.number = 7 +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.index = 6 +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.label = 2 +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.has_default_value = false +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.default_value = 0 +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.type = 5 +PARTNER_STAR_CFG_STUDY_ITEM_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_STUDY_COST_FIELD.name = "study_cost" +PARTNER_STAR_CFG_STUDY_COST_FIELD.full_name = ".ftcfg.partner_star_cfg.study_cost" +PARTNER_STAR_CFG_STUDY_COST_FIELD.number = 8 +PARTNER_STAR_CFG_STUDY_COST_FIELD.index = 7 +PARTNER_STAR_CFG_STUDY_COST_FIELD.label = 2 +PARTNER_STAR_CFG_STUDY_COST_FIELD.has_default_value = false +PARTNER_STAR_CFG_STUDY_COST_FIELD.default_value = 0 +PARTNER_STAR_CFG_STUDY_COST_FIELD.type = 5 +PARTNER_STAR_CFG_STUDY_COST_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.name = "exclude_item" +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.full_name = ".ftcfg.partner_star_cfg.exclude_item" +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.number = 9 +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.index = 8 +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.label = 2 +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.has_default_value = false +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.default_value = 0 +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.type = 5 +PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.name = "exclude_cost" +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.full_name = ".ftcfg.partner_star_cfg.exclude_cost" +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.number = 10 +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.index = 9 +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.label = 2 +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.has_default_value = false +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.default_value = 0 +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.type = 5 +PARTNER_STAR_CFG_EXCLUDE_COST_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_STAR_PROP1_FIELD.name = "star_prop1" +PARTNER_STAR_CFG_STAR_PROP1_FIELD.full_name = ".ftcfg.partner_star_cfg.star_prop1" +PARTNER_STAR_CFG_STAR_PROP1_FIELD.number = 11 +PARTNER_STAR_CFG_STAR_PROP1_FIELD.index = 10 +PARTNER_STAR_CFG_STAR_PROP1_FIELD.label = 2 +PARTNER_STAR_CFG_STAR_PROP1_FIELD.has_default_value = false +PARTNER_STAR_CFG_STAR_PROP1_FIELD.default_value = "" +PARTNER_STAR_CFG_STAR_PROP1_FIELD.type = 9 +PARTNER_STAR_CFG_STAR_PROP1_FIELD.cpp_type = 9 + +PARTNER_STAR_CFG_STAR_PROP2_FIELD.name = "star_prop2" +PARTNER_STAR_CFG_STAR_PROP2_FIELD.full_name = ".ftcfg.partner_star_cfg.star_prop2" +PARTNER_STAR_CFG_STAR_PROP2_FIELD.number = 12 +PARTNER_STAR_CFG_STAR_PROP2_FIELD.index = 11 +PARTNER_STAR_CFG_STAR_PROP2_FIELD.label = 2 +PARTNER_STAR_CFG_STAR_PROP2_FIELD.has_default_value = false +PARTNER_STAR_CFG_STAR_PROP2_FIELD.default_value = "" +PARTNER_STAR_CFG_STAR_PROP2_FIELD.type = 9 +PARTNER_STAR_CFG_STAR_PROP2_FIELD.cpp_type = 9 + +PARTNER_STAR_CFG_STAR_PROP3_FIELD.name = "star_prop3" +PARTNER_STAR_CFG_STAR_PROP3_FIELD.full_name = ".ftcfg.partner_star_cfg.star_prop3" +PARTNER_STAR_CFG_STAR_PROP3_FIELD.number = 13 +PARTNER_STAR_CFG_STAR_PROP3_FIELD.index = 12 +PARTNER_STAR_CFG_STAR_PROP3_FIELD.label = 2 +PARTNER_STAR_CFG_STAR_PROP3_FIELD.has_default_value = false +PARTNER_STAR_CFG_STAR_PROP3_FIELD.default_value = "" +PARTNER_STAR_CFG_STAR_PROP3_FIELD.type = 9 +PARTNER_STAR_CFG_STAR_PROP3_FIELD.cpp_type = 9 + +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.name = "upstar_item" +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.full_name = ".ftcfg.partner_star_cfg.upstar_item" +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.number = 14 +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.index = 13 +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.label = 2 +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.has_default_value = false +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.default_value = 0 +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.type = 5 +PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.name = "upstar_cost" +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.full_name = ".ftcfg.partner_star_cfg.upstar_cost" +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.number = 15 +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.index = 14 +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.label = 2 +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.has_default_value = false +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.default_value = 0 +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.type = 5 +PARTNER_STAR_CFG_UPSTAR_COST_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.name = "rebuild_item" +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.full_name = ".ftcfg.partner_star_cfg.rebuild_item" +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.number = 16 +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.index = 15 +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.label = 2 +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.has_default_value = false +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.default_value = 0 +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.type = 5 +PARTNER_STAR_CFG_REBUILD_ITEM_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG_REBUILD_COST_FIELD.name = "rebuild_cost" +PARTNER_STAR_CFG_REBUILD_COST_FIELD.full_name = ".ftcfg.partner_star_cfg.rebuild_cost" +PARTNER_STAR_CFG_REBUILD_COST_FIELD.number = 17 +PARTNER_STAR_CFG_REBUILD_COST_FIELD.index = 16 +PARTNER_STAR_CFG_REBUILD_COST_FIELD.label = 2 +PARTNER_STAR_CFG_REBUILD_COST_FIELD.has_default_value = false +PARTNER_STAR_CFG_REBUILD_COST_FIELD.default_value = 0 +PARTNER_STAR_CFG_REBUILD_COST_FIELD.type = 5 +PARTNER_STAR_CFG_REBUILD_COST_FIELD.cpp_type = 1 + +PARTNER_STAR_CFG.name = "partner_star_cfg" +PARTNER_STAR_CFG.full_name = ".ftcfg.partner_star_cfg" +PARTNER_STAR_CFG.nested_types = {} +PARTNER_STAR_CFG.enum_types = {} +PARTNER_STAR_CFG.fields = {PARTNER_STAR_CFG_ID_FIELD, PARTNER_STAR_CFG_PARTNER_TYPE_FIELD, PARTNER_STAR_CFG_STAR_FIELD, PARTNER_STAR_CFG_STUDY_GROUP_FIELD, PARTNER_STAR_CFG_STUDY_LIMIT_FIELD, PARTNER_STAR_CFG_STUDY_FIELD, PARTNER_STAR_CFG_STUDY_ITEM_FIELD, PARTNER_STAR_CFG_STUDY_COST_FIELD, PARTNER_STAR_CFG_EXCLUDE_ITEM_FIELD, PARTNER_STAR_CFG_EXCLUDE_COST_FIELD, PARTNER_STAR_CFG_STAR_PROP1_FIELD, PARTNER_STAR_CFG_STAR_PROP2_FIELD, PARTNER_STAR_CFG_STAR_PROP3_FIELD, PARTNER_STAR_CFG_UPSTAR_ITEM_FIELD, PARTNER_STAR_CFG_UPSTAR_COST_FIELD, PARTNER_STAR_CFG_REBUILD_ITEM_FIELD, PARTNER_STAR_CFG_REBUILD_COST_FIELD} +PARTNER_STAR_CFG.is_extendable = false +PARTNER_STAR_CFG.extensions = {} +PARTNER_STAR_CFGS_ITEMS_FIELD.name = "items" +PARTNER_STAR_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_star_cfgs.items" +PARTNER_STAR_CFGS_ITEMS_FIELD.number = 1 +PARTNER_STAR_CFGS_ITEMS_FIELD.index = 0 +PARTNER_STAR_CFGS_ITEMS_FIELD.label = 3 +PARTNER_STAR_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_STAR_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_STAR_CFGS_ITEMS_FIELD.message_type = PARTNER_STAR_CFG +PARTNER_STAR_CFGS_ITEMS_FIELD.type = 11 +PARTNER_STAR_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_STAR_CFGS.name = "partner_star_cfgs" +PARTNER_STAR_CFGS.full_name = ".ftcfg.partner_star_cfgs" +PARTNER_STAR_CFGS.nested_types = {} +PARTNER_STAR_CFGS.enum_types = {} +PARTNER_STAR_CFGS.fields = {PARTNER_STAR_CFGS_ITEMS_FIELD} +PARTNER_STAR_CFGS.is_extendable = false +PARTNER_STAR_CFGS.extensions = {} +PARTNER_STUDY_CFG_ID_FIELD.name = "id" +PARTNER_STUDY_CFG_ID_FIELD.full_name = ".ftcfg.partner_study_cfg.id" +PARTNER_STUDY_CFG_ID_FIELD.number = 1 +PARTNER_STUDY_CFG_ID_FIELD.index = 0 +PARTNER_STUDY_CFG_ID_FIELD.label = 2 +PARTNER_STUDY_CFG_ID_FIELD.has_default_value = false +PARTNER_STUDY_CFG_ID_FIELD.default_value = 0 +PARTNER_STUDY_CFG_ID_FIELD.type = 5 +PARTNER_STUDY_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.name = "study_group" +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.full_name = ".ftcfg.partner_study_cfg.study_group" +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.number = 2 +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.index = 1 +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.label = 2 +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.has_default_value = false +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.default_value = 0 +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.type = 5 +PARTNER_STUDY_CFG_STUDY_GROUP_FIELD.cpp_type = 1 + +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.name = "study_prop" +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.full_name = ".ftcfg.partner_study_cfg.study_prop" +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.number = 3 +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.index = 2 +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.label = 2 +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.has_default_value = false +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.default_value = "" +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.type = 9 +PARTNER_STUDY_CFG_STUDY_PROP_FIELD.cpp_type = 9 + +PARTNER_STUDY_CFG.name = "partner_study_cfg" +PARTNER_STUDY_CFG.full_name = ".ftcfg.partner_study_cfg" +PARTNER_STUDY_CFG.nested_types = {} +PARTNER_STUDY_CFG.enum_types = {} +PARTNER_STUDY_CFG.fields = {PARTNER_STUDY_CFG_ID_FIELD, PARTNER_STUDY_CFG_STUDY_GROUP_FIELD, PARTNER_STUDY_CFG_STUDY_PROP_FIELD} +PARTNER_STUDY_CFG.is_extendable = false +PARTNER_STUDY_CFG.extensions = {} +PARTNER_STUDY_CFGS_ITEMS_FIELD.name = "items" +PARTNER_STUDY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_study_cfgs.items" +PARTNER_STUDY_CFGS_ITEMS_FIELD.number = 1 +PARTNER_STUDY_CFGS_ITEMS_FIELD.index = 0 +PARTNER_STUDY_CFGS_ITEMS_FIELD.label = 3 +PARTNER_STUDY_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_STUDY_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_STUDY_CFGS_ITEMS_FIELD.message_type = PARTNER_STUDY_CFG +PARTNER_STUDY_CFGS_ITEMS_FIELD.type = 11 +PARTNER_STUDY_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_STUDY_CFGS.name = "partner_study_cfgs" +PARTNER_STUDY_CFGS.full_name = ".ftcfg.partner_study_cfgs" +PARTNER_STUDY_CFGS.nested_types = {} +PARTNER_STUDY_CFGS.enum_types = {} +PARTNER_STUDY_CFGS.fields = {PARTNER_STUDY_CFGS_ITEMS_FIELD} +PARTNER_STUDY_CFGS.is_extendable = false +PARTNER_STUDY_CFGS.extensions = {} +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.name = "id" +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.full_name = ".ftcfg.partner_item_compound_cfg.id" +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.number = 1 +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.index = 0 +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.label = 2 +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.has_default_value = false +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.default_value = 0 +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.type = 13 +PARTNER_ITEM_COMPOUND_CFG_ID_FIELD.cpp_type = 3 + +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.name = "fragment_num" +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.full_name = ".ftcfg.partner_item_compound_cfg.fragment_num" +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.number = 2 +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.index = 1 +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.label = 2 +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.has_default_value = false +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.default_value = 0 +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.type = 5 +PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD.cpp_type = 1 + +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.name = "need_fragment_num" +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.full_name = ".ftcfg.partner_item_compound_cfg.need_fragment_num" +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.number = 3 +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.index = 2 +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.label = 2 +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.has_default_value = false +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.default_value = 0 +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.type = 5 +PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD.cpp_type = 1 + +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.name = "currency_type" +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.full_name = ".ftcfg.partner_item_compound_cfg.currency_type" +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.number = 4 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.index = 3 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.label = 2 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.has_default_value = false +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.default_value = 0 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.type = 5 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD.cpp_type = 1 + +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.name = "currency_num" +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.full_name = ".ftcfg.partner_item_compound_cfg.currency_num" +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.number = 5 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.index = 4 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.label = 2 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.has_default_value = false +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.default_value = 0 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.type = 5 +PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD.cpp_type = 1 + +PARTNER_ITEM_COMPOUND_CFG.name = "partner_item_compound_cfg" +PARTNER_ITEM_COMPOUND_CFG.full_name = ".ftcfg.partner_item_compound_cfg" +PARTNER_ITEM_COMPOUND_CFG.nested_types = {} +PARTNER_ITEM_COMPOUND_CFG.enum_types = {} +PARTNER_ITEM_COMPOUND_CFG.fields = {PARTNER_ITEM_COMPOUND_CFG_ID_FIELD, PARTNER_ITEM_COMPOUND_CFG_FRAGMENT_NUM_FIELD, PARTNER_ITEM_COMPOUND_CFG_NEED_FRAGMENT_NUM_FIELD, PARTNER_ITEM_COMPOUND_CFG_CURRENCY_TYPE_FIELD, PARTNER_ITEM_COMPOUND_CFG_CURRENCY_NUM_FIELD} +PARTNER_ITEM_COMPOUND_CFG.is_extendable = false +PARTNER_ITEM_COMPOUND_CFG.extensions = {} +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.name = "items" +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_item_compound_cfgs.items" +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.number = 1 +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.index = 0 +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.label = 3 +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.message_type = PARTNER_ITEM_COMPOUND_CFG +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.type = 11 +PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_ITEM_COMPOUND_CFGS.name = "partner_item_compound_cfgs" +PARTNER_ITEM_COMPOUND_CFGS.full_name = ".ftcfg.partner_item_compound_cfgs" +PARTNER_ITEM_COMPOUND_CFGS.nested_types = {} +PARTNER_ITEM_COMPOUND_CFGS.enum_types = {} +PARTNER_ITEM_COMPOUND_CFGS.fields = {PARTNER_ITEM_COMPOUND_CFGS_ITEMS_FIELD} +PARTNER_ITEM_COMPOUND_CFGS.is_extendable = false +PARTNER_ITEM_COMPOUND_CFGS.extensions = {} +PARTENR_EXPERIENCE_CFG_KEY_FIELD.name = "key" +PARTENR_EXPERIENCE_CFG_KEY_FIELD.full_name = ".ftcfg.partenr_experience_cfg.key" +PARTENR_EXPERIENCE_CFG_KEY_FIELD.number = 1 +PARTENR_EXPERIENCE_CFG_KEY_FIELD.index = 0 +PARTENR_EXPERIENCE_CFG_KEY_FIELD.label = 2 +PARTENR_EXPERIENCE_CFG_KEY_FIELD.has_default_value = false +PARTENR_EXPERIENCE_CFG_KEY_FIELD.default_value = 0 +PARTENR_EXPERIENCE_CFG_KEY_FIELD.type = 13 +PARTENR_EXPERIENCE_CFG_KEY_FIELD.cpp_type = 3 + +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.name = "cost_item" +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.full_name = ".ftcfg.partenr_experience_cfg.cost_item" +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.number = 2 +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.index = 1 +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.label = 2 +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.has_default_value = false +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.default_value = 0 +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.type = 5 +PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD.cpp_type = 1 + +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.name = "cost_item_num" +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.full_name = ".ftcfg.partenr_experience_cfg.cost_item_num" +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.number = 3 +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.index = 2 +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.label = 2 +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.has_default_value = false +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.default_value = 0 +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.type = 5 +PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD.cpp_type = 1 + +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.name = "experience_num" +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.full_name = ".ftcfg.partenr_experience_cfg.experience_num" +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.number = 4 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.index = 3 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.label = 2 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.has_default_value = false +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.default_value = 0 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.type = 5 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD.cpp_type = 1 + +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.name = "experience_event" +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.full_name = ".ftcfg.partenr_experience_cfg.experience_event" +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.number = 5 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.index = 4 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.label = 3 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.has_default_value = false +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.default_value = {} +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.type = 5 +PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD.cpp_type = 1 + +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.name = "event_type" +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.full_name = ".ftcfg.partenr_experience_cfg.event_type" +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.number = 6 +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.index = 5 +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.label = 3 +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.has_default_value = false +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.default_value = {} +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.type = 5 +PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD.cpp_type = 1 + +PARTENR_EXPERIENCE_CFG.name = "partenr_experience_cfg" +PARTENR_EXPERIENCE_CFG.full_name = ".ftcfg.partenr_experience_cfg" +PARTENR_EXPERIENCE_CFG.nested_types = {} +PARTENR_EXPERIENCE_CFG.enum_types = {} +PARTENR_EXPERIENCE_CFG.fields = {PARTENR_EXPERIENCE_CFG_KEY_FIELD, PARTENR_EXPERIENCE_CFG_COST_ITEM_FIELD, PARTENR_EXPERIENCE_CFG_COST_ITEM_NUM_FIELD, PARTENR_EXPERIENCE_CFG_EXPERIENCE_NUM_FIELD, PARTENR_EXPERIENCE_CFG_EXPERIENCE_EVENT_FIELD, PARTENR_EXPERIENCE_CFG_EVENT_TYPE_FIELD} +PARTENR_EXPERIENCE_CFG.is_extendable = false +PARTENR_EXPERIENCE_CFG.extensions = {} +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.name = "items" +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partenr_experience_cfgs.items" +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.number = 1 +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.index = 0 +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.label = 3 +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.has_default_value = false +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.default_value = {} +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.message_type = PARTENR_EXPERIENCE_CFG +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.type = 11 +PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTENR_EXPERIENCE_CFGS.name = "partenr_experience_cfgs" +PARTENR_EXPERIENCE_CFGS.full_name = ".ftcfg.partenr_experience_cfgs" +PARTENR_EXPERIENCE_CFGS.nested_types = {} +PARTENR_EXPERIENCE_CFGS.enum_types = {} +PARTENR_EXPERIENCE_CFGS.fields = {PARTENR_EXPERIENCE_CFGS_ITEMS_FIELD} +PARTENR_EXPERIENCE_CFGS.is_extendable = false +PARTENR_EXPERIENCE_CFGS.extensions = {} +PARTNER_BASE_CFG_ID_FIELD.name = "id" +PARTNER_BASE_CFG_ID_FIELD.full_name = ".ftcfg.partner_base_cfg.id" +PARTNER_BASE_CFG_ID_FIELD.number = 1 +PARTNER_BASE_CFG_ID_FIELD.index = 0 +PARTNER_BASE_CFG_ID_FIELD.label = 2 +PARTNER_BASE_CFG_ID_FIELD.has_default_value = false +PARTNER_BASE_CFG_ID_FIELD.default_value = 0 +PARTNER_BASE_CFG_ID_FIELD.type = 13 +PARTNER_BASE_CFG_ID_FIELD.cpp_type = 3 + +PARTNER_BASE_CFG_SHOW_NAME_FIELD.name = "show_name" +PARTNER_BASE_CFG_SHOW_NAME_FIELD.full_name = ".ftcfg.partner_base_cfg.show_name" +PARTNER_BASE_CFG_SHOW_NAME_FIELD.number = 2 +PARTNER_BASE_CFG_SHOW_NAME_FIELD.index = 1 +PARTNER_BASE_CFG_SHOW_NAME_FIELD.label = 2 +PARTNER_BASE_CFG_SHOW_NAME_FIELD.has_default_value = false +PARTNER_BASE_CFG_SHOW_NAME_FIELD.default_value = "" +PARTNER_BASE_CFG_SHOW_NAME_FIELD.type = 9 +PARTNER_BASE_CFG_SHOW_NAME_FIELD.cpp_type = 9 + +PARTNER_BASE_CFG_LOCK_FIELD.name = "lock" +PARTNER_BASE_CFG_LOCK_FIELD.full_name = ".ftcfg.partner_base_cfg.lock" +PARTNER_BASE_CFG_LOCK_FIELD.number = 3 +PARTNER_BASE_CFG_LOCK_FIELD.index = 2 +PARTNER_BASE_CFG_LOCK_FIELD.label = 2 +PARTNER_BASE_CFG_LOCK_FIELD.has_default_value = false +PARTNER_BASE_CFG_LOCK_FIELD.default_value = 0 +PARTNER_BASE_CFG_LOCK_FIELD.type = 5 +PARTNER_BASE_CFG_LOCK_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_HEAD_FIELD.name = "head" +PARTNER_BASE_CFG_HEAD_FIELD.full_name = ".ftcfg.partner_base_cfg.head" +PARTNER_BASE_CFG_HEAD_FIELD.number = 4 +PARTNER_BASE_CFG_HEAD_FIELD.index = 3 +PARTNER_BASE_CFG_HEAD_FIELD.label = 2 +PARTNER_BASE_CFG_HEAD_FIELD.has_default_value = false +PARTNER_BASE_CFG_HEAD_FIELD.default_value = 0 +PARTNER_BASE_CFG_HEAD_FIELD.type = 5 +PARTNER_BASE_CFG_HEAD_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_DRAW_FIELD.name = "draw" +PARTNER_BASE_CFG_DRAW_FIELD.full_name = ".ftcfg.partner_base_cfg.draw" +PARTNER_BASE_CFG_DRAW_FIELD.number = 5 +PARTNER_BASE_CFG_DRAW_FIELD.index = 4 +PARTNER_BASE_CFG_DRAW_FIELD.label = 2 +PARTNER_BASE_CFG_DRAW_FIELD.has_default_value = false +PARTNER_BASE_CFG_DRAW_FIELD.default_value = 0 +PARTNER_BASE_CFG_DRAW_FIELD.type = 5 +PARTNER_BASE_CFG_DRAW_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_TYPE_FIELD.name = "type" +PARTNER_BASE_CFG_TYPE_FIELD.full_name = ".ftcfg.partner_base_cfg.type" +PARTNER_BASE_CFG_TYPE_FIELD.number = 6 +PARTNER_BASE_CFG_TYPE_FIELD.index = 5 +PARTNER_BASE_CFG_TYPE_FIELD.label = 2 +PARTNER_BASE_CFG_TYPE_FIELD.has_default_value = false +PARTNER_BASE_CFG_TYPE_FIELD.default_value = 0 +PARTNER_BASE_CFG_TYPE_FIELD.type = 5 +PARTNER_BASE_CFG_TYPE_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_POKEDEX_FIELD.name = "pokedex" +PARTNER_BASE_CFG_POKEDEX_FIELD.full_name = ".ftcfg.partner_base_cfg.pokedex" +PARTNER_BASE_CFG_POKEDEX_FIELD.number = 7 +PARTNER_BASE_CFG_POKEDEX_FIELD.index = 6 +PARTNER_BASE_CFG_POKEDEX_FIELD.label = 2 +PARTNER_BASE_CFG_POKEDEX_FIELD.has_default_value = false +PARTNER_BASE_CFG_POKEDEX_FIELD.default_value = 0 +PARTNER_BASE_CFG_POKEDEX_FIELD.type = 5 +PARTNER_BASE_CFG_POKEDEX_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_SKILLS_FIELD.name = "skills" +PARTNER_BASE_CFG_SKILLS_FIELD.full_name = ".ftcfg.partner_base_cfg.skills" +PARTNER_BASE_CFG_SKILLS_FIELD.number = 8 +PARTNER_BASE_CFG_SKILLS_FIELD.index = 7 +PARTNER_BASE_CFG_SKILLS_FIELD.label = 3 +PARTNER_BASE_CFG_SKILLS_FIELD.has_default_value = false +PARTNER_BASE_CFG_SKILLS_FIELD.default_value = {} +PARTNER_BASE_CFG_SKILLS_FIELD.type = 5 +PARTNER_BASE_CFG_SKILLS_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_AVATAR_FIELD.name = "avatar" +PARTNER_BASE_CFG_AVATAR_FIELD.full_name = ".ftcfg.partner_base_cfg.avatar" +PARTNER_BASE_CFG_AVATAR_FIELD.number = 9 +PARTNER_BASE_CFG_AVATAR_FIELD.index = 8 +PARTNER_BASE_CFG_AVATAR_FIELD.label = 2 +PARTNER_BASE_CFG_AVATAR_FIELD.has_default_value = false +PARTNER_BASE_CFG_AVATAR_FIELD.default_value = 0 +PARTNER_BASE_CFG_AVATAR_FIELD.type = 5 +PARTNER_BASE_CFG_AVATAR_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_ACT_IDLE_FIELD.name = "act_idle" +PARTNER_BASE_CFG_ACT_IDLE_FIELD.full_name = ".ftcfg.partner_base_cfg.act_idle" +PARTNER_BASE_CFG_ACT_IDLE_FIELD.number = 10 +PARTNER_BASE_CFG_ACT_IDLE_FIELD.index = 9 +PARTNER_BASE_CFG_ACT_IDLE_FIELD.label = 2 +PARTNER_BASE_CFG_ACT_IDLE_FIELD.has_default_value = false +PARTNER_BASE_CFG_ACT_IDLE_FIELD.default_value = "" +PARTNER_BASE_CFG_ACT_IDLE_FIELD.type = 9 +PARTNER_BASE_CFG_ACT_IDLE_FIELD.cpp_type = 9 + +PARTNER_BASE_CFG_ACT_MOVE_FIELD.name = "act_move" +PARTNER_BASE_CFG_ACT_MOVE_FIELD.full_name = ".ftcfg.partner_base_cfg.act_move" +PARTNER_BASE_CFG_ACT_MOVE_FIELD.number = 11 +PARTNER_BASE_CFG_ACT_MOVE_FIELD.index = 10 +PARTNER_BASE_CFG_ACT_MOVE_FIELD.label = 2 +PARTNER_BASE_CFG_ACT_MOVE_FIELD.has_default_value = false +PARTNER_BASE_CFG_ACT_MOVE_FIELD.default_value = "" +PARTNER_BASE_CFG_ACT_MOVE_FIELD.type = 9 +PARTNER_BASE_CFG_ACT_MOVE_FIELD.cpp_type = 9 + +PARTNER_BASE_CFG_ACT_BORN_FIELD.name = "act_born" +PARTNER_BASE_CFG_ACT_BORN_FIELD.full_name = ".ftcfg.partner_base_cfg.act_born" +PARTNER_BASE_CFG_ACT_BORN_FIELD.number = 12 +PARTNER_BASE_CFG_ACT_BORN_FIELD.index = 11 +PARTNER_BASE_CFG_ACT_BORN_FIELD.label = 2 +PARTNER_BASE_CFG_ACT_BORN_FIELD.has_default_value = false +PARTNER_BASE_CFG_ACT_BORN_FIELD.default_value = "" +PARTNER_BASE_CFG_ACT_BORN_FIELD.type = 9 +PARTNER_BASE_CFG_ACT_BORN_FIELD.cpp_type = 9 + +PARTNER_BASE_CFG_ACT_DEAD_FIELD.name = "act_dead" +PARTNER_BASE_CFG_ACT_DEAD_FIELD.full_name = ".ftcfg.partner_base_cfg.act_dead" +PARTNER_BASE_CFG_ACT_DEAD_FIELD.number = 13 +PARTNER_BASE_CFG_ACT_DEAD_FIELD.index = 12 +PARTNER_BASE_CFG_ACT_DEAD_FIELD.label = 2 +PARTNER_BASE_CFG_ACT_DEAD_FIELD.has_default_value = false +PARTNER_BASE_CFG_ACT_DEAD_FIELD.default_value = "" +PARTNER_BASE_CFG_ACT_DEAD_FIELD.type = 9 +PARTNER_BASE_CFG_ACT_DEAD_FIELD.cpp_type = 9 + +PARTNER_BASE_CFG_RESURRECTION_FIELD.name = "resurrection" +PARTNER_BASE_CFG_RESURRECTION_FIELD.full_name = ".ftcfg.partner_base_cfg.resurrection" +PARTNER_BASE_CFG_RESURRECTION_FIELD.number = 14 +PARTNER_BASE_CFG_RESURRECTION_FIELD.index = 13 +PARTNER_BASE_CFG_RESURRECTION_FIELD.label = 2 +PARTNER_BASE_CFG_RESURRECTION_FIELD.has_default_value = false +PARTNER_BASE_CFG_RESURRECTION_FIELD.default_value = 0 +PARTNER_BASE_CFG_RESURRECTION_FIELD.type = 5 +PARTNER_BASE_CFG_RESURRECTION_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.name = "addition_ratio" +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.full_name = ".ftcfg.partner_base_cfg.addition_ratio" +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.number = 15 +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.index = 14 +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.label = 2 +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.has_default_value = false +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.default_value = 0.0 +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.type = 1 +PARTNER_BASE_CFG_ADDITION_RATIO_FIELD.cpp_type = 5 + +PARTNER_BASE_CFG_QUALITY_FIELD.name = "quality" +PARTNER_BASE_CFG_QUALITY_FIELD.full_name = ".ftcfg.partner_base_cfg.quality" +PARTNER_BASE_CFG_QUALITY_FIELD.number = 16 +PARTNER_BASE_CFG_QUALITY_FIELD.index = 15 +PARTNER_BASE_CFG_QUALITY_FIELD.label = 2 +PARTNER_BASE_CFG_QUALITY_FIELD.has_default_value = false +PARTNER_BASE_CFG_QUALITY_FIELD.default_value = 0 +PARTNER_BASE_CFG_QUALITY_FIELD.type = 5 +PARTNER_BASE_CFG_QUALITY_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.name = "growth_cap" +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.full_name = ".ftcfg.partner_base_cfg.growth_cap" +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.number = 17 +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.index = 16 +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.label = 3 +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.has_default_value = false +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.default_value = {} +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.type = 5 +PARTNER_BASE_CFG_GROWTH_CAP_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.name = "use_item_id" +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.full_name = ".ftcfg.partner_base_cfg.use_item_id" +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.number = 18 +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.index = 17 +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.label = 2 +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.has_default_value = false +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.default_value = 0 +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.type = 13 +PARTNER_BASE_CFG_USE_ITEM_ID_FIELD.cpp_type = 3 + +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.name = "use_item_num" +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.full_name = ".ftcfg.partner_base_cfg.use_item_num" +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.number = 19 +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.index = 18 +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.label = 2 +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.has_default_value = false +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.default_value = 0 +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.type = 5 +PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.name = "can_use_omnipotent" +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.full_name = ".ftcfg.partner_base_cfg.can_use_omnipotent" +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.number = 20 +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.index = 19 +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.label = 2 +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.has_default_value = false +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.default_value = 0 +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.type = 5 +PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_END_SKILLS_FIELD.name = "end_skills" +PARTNER_BASE_CFG_END_SKILLS_FIELD.full_name = ".ftcfg.partner_base_cfg.end_skills" +PARTNER_BASE_CFG_END_SKILLS_FIELD.number = 21 +PARTNER_BASE_CFG_END_SKILLS_FIELD.index = 20 +PARTNER_BASE_CFG_END_SKILLS_FIELD.label = 2 +PARTNER_BASE_CFG_END_SKILLS_FIELD.has_default_value = false +PARTNER_BASE_CFG_END_SKILLS_FIELD.default_value = 0 +PARTNER_BASE_CFG_END_SKILLS_FIELD.type = 5 +PARTNER_BASE_CFG_END_SKILLS_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.name = "passive_skills" +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.full_name = ".ftcfg.partner_base_cfg.passive_skills" +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.number = 22 +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.index = 21 +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.label = 3 +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.has_default_value = false +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.default_value = {} +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.type = 5 +PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.name = "experience_max" +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.full_name = ".ftcfg.partner_base_cfg.experience_max" +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.number = 23 +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.index = 22 +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.label = 2 +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.has_default_value = false +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.default_value = 0 +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.type = 5 +PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.name = "resources_type" +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.full_name = ".ftcfg.partner_base_cfg.resources_type" +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.number = 24 +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.index = 23 +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.label = 2 +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.has_default_value = false +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.default_value = 0 +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.type = 5 +PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.name = "resources_num" +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.full_name = ".ftcfg.partner_base_cfg.resources_num" +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.number = 25 +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.index = 24 +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.label = 2 +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.has_default_value = false +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.default_value = 0 +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.type = 5 +PARTNER_BASE_CFG_RESOURCES_NUM_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.name = "resources_id" +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.full_name = ".ftcfg.partner_base_cfg.resources_id" +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.number = 26 +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.index = 25 +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.label = 2 +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.has_default_value = false +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.default_value = 0 +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.type = 5 +PARTNER_BASE_CFG_RESOURCES_ID_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_ITEMS_ID_FIELD.name = "items_id" +PARTNER_BASE_CFG_ITEMS_ID_FIELD.full_name = ".ftcfg.partner_base_cfg.items_id" +PARTNER_BASE_CFG_ITEMS_ID_FIELD.number = 27 +PARTNER_BASE_CFG_ITEMS_ID_FIELD.index = 26 +PARTNER_BASE_CFG_ITEMS_ID_FIELD.label = 3 +PARTNER_BASE_CFG_ITEMS_ID_FIELD.has_default_value = false +PARTNER_BASE_CFG_ITEMS_ID_FIELD.default_value = {} +PARTNER_BASE_CFG_ITEMS_ID_FIELD.type = 5 +PARTNER_BASE_CFG_ITEMS_ID_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.name = "items_count" +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.full_name = ".ftcfg.partner_base_cfg.items_count" +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.number = 28 +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.index = 27 +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.label = 3 +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.has_default_value = false +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.default_value = {} +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.type = 5 +PARTNER_BASE_CFG_ITEMS_COUNT_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_RANGE_FIELD.name = "range" +PARTNER_BASE_CFG_RANGE_FIELD.full_name = ".ftcfg.partner_base_cfg.range" +PARTNER_BASE_CFG_RANGE_FIELD.number = 29 +PARTNER_BASE_CFG_RANGE_FIELD.index = 28 +PARTNER_BASE_CFG_RANGE_FIELD.label = 2 +PARTNER_BASE_CFG_RANGE_FIELD.has_default_value = false +PARTNER_BASE_CFG_RANGE_FIELD.default_value = 0 +PARTNER_BASE_CFG_RANGE_FIELD.type = 5 +PARTNER_BASE_CFG_RANGE_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.name = "fetters_num" +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.full_name = ".ftcfg.partner_base_cfg.fetters_num" +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.number = 30 +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.index = 29 +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.label = 2 +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.has_default_value = false +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.default_value = 0 +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.type = 5 +PARTNER_BASE_CFG_FETTERS_NUM_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_PARTNER_ID_FIELD.name = "partner_id" +PARTNER_BASE_CFG_PARTNER_ID_FIELD.full_name = ".ftcfg.partner_base_cfg.partner_id" +PARTNER_BASE_CFG_PARTNER_ID_FIELD.number = 31 +PARTNER_BASE_CFG_PARTNER_ID_FIELD.index = 30 +PARTNER_BASE_CFG_PARTNER_ID_FIELD.label = 2 +PARTNER_BASE_CFG_PARTNER_ID_FIELD.has_default_value = false +PARTNER_BASE_CFG_PARTNER_ID_FIELD.default_value = 0 +PARTNER_BASE_CFG_PARTNER_ID_FIELD.type = 5 +PARTNER_BASE_CFG_PARTNER_ID_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG_IS_RARE_FIELD.name = "is_rare" +PARTNER_BASE_CFG_IS_RARE_FIELD.full_name = ".ftcfg.partner_base_cfg.is_rare" +PARTNER_BASE_CFG_IS_RARE_FIELD.number = 32 +PARTNER_BASE_CFG_IS_RARE_FIELD.index = 31 +PARTNER_BASE_CFG_IS_RARE_FIELD.label = 2 +PARTNER_BASE_CFG_IS_RARE_FIELD.has_default_value = false +PARTNER_BASE_CFG_IS_RARE_FIELD.default_value = false +PARTNER_BASE_CFG_IS_RARE_FIELD.type = 8 +PARTNER_BASE_CFG_IS_RARE_FIELD.cpp_type = 7 + +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.name = "divine_group" +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.full_name = ".ftcfg.partner_base_cfg.divine_group" +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.number = 33 +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.index = 32 +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.label = 2 +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.has_default_value = false +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.default_value = 0 +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.type = 5 +PARTNER_BASE_CFG_DIVINE_GROUP_FIELD.cpp_type = 1 + +PARTNER_BASE_CFG.name = "partner_base_cfg" +PARTNER_BASE_CFG.full_name = ".ftcfg.partner_base_cfg" +PARTNER_BASE_CFG.nested_types = {} +PARTNER_BASE_CFG.enum_types = {} +PARTNER_BASE_CFG.fields = {PARTNER_BASE_CFG_ID_FIELD, PARTNER_BASE_CFG_SHOW_NAME_FIELD, PARTNER_BASE_CFG_LOCK_FIELD, PARTNER_BASE_CFG_HEAD_FIELD, PARTNER_BASE_CFG_DRAW_FIELD, PARTNER_BASE_CFG_TYPE_FIELD, PARTNER_BASE_CFG_POKEDEX_FIELD, PARTNER_BASE_CFG_SKILLS_FIELD, PARTNER_BASE_CFG_AVATAR_FIELD, PARTNER_BASE_CFG_ACT_IDLE_FIELD, PARTNER_BASE_CFG_ACT_MOVE_FIELD, PARTNER_BASE_CFG_ACT_BORN_FIELD, PARTNER_BASE_CFG_ACT_DEAD_FIELD, PARTNER_BASE_CFG_RESURRECTION_FIELD, PARTNER_BASE_CFG_ADDITION_RATIO_FIELD, PARTNER_BASE_CFG_QUALITY_FIELD, PARTNER_BASE_CFG_GROWTH_CAP_FIELD, PARTNER_BASE_CFG_USE_ITEM_ID_FIELD, PARTNER_BASE_CFG_USE_ITEM_NUM_FIELD, PARTNER_BASE_CFG_CAN_USE_OMNIPOTENT_FIELD, PARTNER_BASE_CFG_END_SKILLS_FIELD, PARTNER_BASE_CFG_PASSIVE_SKILLS_FIELD, PARTNER_BASE_CFG_EXPERIENCE_MAX_FIELD, PARTNER_BASE_CFG_RESOURCES_TYPE_FIELD, PARTNER_BASE_CFG_RESOURCES_NUM_FIELD, PARTNER_BASE_CFG_RESOURCES_ID_FIELD, PARTNER_BASE_CFG_ITEMS_ID_FIELD, PARTNER_BASE_CFG_ITEMS_COUNT_FIELD, PARTNER_BASE_CFG_RANGE_FIELD, PARTNER_BASE_CFG_FETTERS_NUM_FIELD, PARTNER_BASE_CFG_PARTNER_ID_FIELD, PARTNER_BASE_CFG_IS_RARE_FIELD, PARTNER_BASE_CFG_DIVINE_GROUP_FIELD} +PARTNER_BASE_CFG.is_extendable = false +PARTNER_BASE_CFG.extensions = {} +PARTNER_BASE_CFGS_ITEMS_FIELD.name = "items" +PARTNER_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_base_cfgs.items" +PARTNER_BASE_CFGS_ITEMS_FIELD.number = 1 +PARTNER_BASE_CFGS_ITEMS_FIELD.index = 0 +PARTNER_BASE_CFGS_ITEMS_FIELD.label = 3 +PARTNER_BASE_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_BASE_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_BASE_CFGS_ITEMS_FIELD.message_type = PARTNER_BASE_CFG +PARTNER_BASE_CFGS_ITEMS_FIELD.type = 11 +PARTNER_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_BASE_CFGS.name = "partner_base_cfgs" +PARTNER_BASE_CFGS.full_name = ".ftcfg.partner_base_cfgs" +PARTNER_BASE_CFGS.nested_types = {} +PARTNER_BASE_CFGS.enum_types = {} +PARTNER_BASE_CFGS.fields = {PARTNER_BASE_CFGS_ITEMS_FIELD} +PARTNER_BASE_CFGS.is_extendable = false +PARTNER_BASE_CFGS.extensions = {} +PARTNER_ATTRIBUTE_CFG_ID_FIELD.name = "id" +PARTNER_ATTRIBUTE_CFG_ID_FIELD.full_name = ".ftcfg.partner_attribute_cfg.id" +PARTNER_ATTRIBUTE_CFG_ID_FIELD.number = 1 +PARTNER_ATTRIBUTE_CFG_ID_FIELD.index = 0 +PARTNER_ATTRIBUTE_CFG_ID_FIELD.label = 2 +PARTNER_ATTRIBUTE_CFG_ID_FIELD.has_default_value = false +PARTNER_ATTRIBUTE_CFG_ID_FIELD.default_value = 0 +PARTNER_ATTRIBUTE_CFG_ID_FIELD.type = 5 +PARTNER_ATTRIBUTE_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.name = "levelup_exp" +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.full_name = ".ftcfg.partner_attribute_cfg.levelup_exp" +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.number = 2 +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.index = 1 +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.label = 2 +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.has_default_value = false +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.default_value = 0.0 +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.type = 1 +PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD.cpp_type = 5 + +PARTNER_ATTRIBUTE_CFG.name = "partner_attribute_cfg" +PARTNER_ATTRIBUTE_CFG.full_name = ".ftcfg.partner_attribute_cfg" +PARTNER_ATTRIBUTE_CFG.nested_types = {} +PARTNER_ATTRIBUTE_CFG.enum_types = {} +PARTNER_ATTRIBUTE_CFG.fields = {PARTNER_ATTRIBUTE_CFG_ID_FIELD, PARTNER_ATTRIBUTE_CFG_LEVELUP_EXP_FIELD} +PARTNER_ATTRIBUTE_CFG.is_extendable = false +PARTNER_ATTRIBUTE_CFG.extensions = {} +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.name = "items" +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_attribute_cfgs.items" +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.number = 1 +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.index = 0 +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.label = 3 +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.message_type = PARTNER_ATTRIBUTE_CFG +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.type = 11 +PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_ATTRIBUTE_CFGS.name = "partner_attribute_cfgs" +PARTNER_ATTRIBUTE_CFGS.full_name = ".ftcfg.partner_attribute_cfgs" +PARTNER_ATTRIBUTE_CFGS.nested_types = {} +PARTNER_ATTRIBUTE_CFGS.enum_types = {} +PARTNER_ATTRIBUTE_CFGS.fields = {PARTNER_ATTRIBUTE_CFGS_ITEMS_FIELD} +PARTNER_ATTRIBUTE_CFGS.is_extendable = false +PARTNER_ATTRIBUTE_CFGS.extensions = {} +PARTNER_PASSIVESKILL_CFG_ID_FIELD.name = "id" +PARTNER_PASSIVESKILL_CFG_ID_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.id" +PARTNER_PASSIVESKILL_CFG_ID_FIELD.number = 1 +PARTNER_PASSIVESKILL_CFG_ID_FIELD.index = 0 +PARTNER_PASSIVESKILL_CFG_ID_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_ID_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_ID_FIELD.default_value = 0 +PARTNER_PASSIVESKILL_CFG_ID_FIELD.type = 5 +PARTNER_PASSIVESKILL_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.name = "name" +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.name" +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.number = 2 +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.index = 1 +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.default_value = "" +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.type = 9 +PARTNER_PASSIVESKILL_CFG_NAME_FIELD.cpp_type = 9 + +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.name = "level" +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.level" +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.number = 3 +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.index = 2 +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.default_value = 0 +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.type = 5 +PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD.cpp_type = 1 + +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.name = "icon" +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.icon" +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.number = 4 +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.index = 3 +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.default_value = 0 +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.type = 5 +PARTNER_PASSIVESKILL_CFG_ICON_FIELD.cpp_type = 1 + +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.name = "pokedex_type" +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.pokedex_type" +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.number = 5 +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.index = 4 +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.label = 3 +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.default_value = {} +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.type = 5 +PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD.cpp_type = 1 + +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.name = "prop_type" +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.prop_type" +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.number = 6 +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.index = 5 +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.label = 3 +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.default_value = {} +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPOPTYPE +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.type = 14 +PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD.cpp_type = 8 + +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.name = "att_type" +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.att_type" +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.number = 7 +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.index = 6 +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.label = 3 +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.default_value = {} +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.type = 14 +PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD.cpp_type = 8 + +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.name = "att_value" +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.att_value" +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.number = 8 +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.index = 7 +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.label = 3 +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.default_value = {} +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.type = 2 +PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD.cpp_type = 6 + +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.name = "desc" +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.desc" +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.number = 9 +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.index = 8 +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.default_value = "" +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.type = 9 +PARTNER_PASSIVESKILL_CFG_DESC_FIELD.cpp_type = 9 + +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.name = "pokedex_desc" +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.pokedex_desc" +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.number = 10 +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.index = 9 +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.default_value = "" +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.type = 9 +PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD.cpp_type = 9 + +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.name = "next_level" +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.next_level" +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.number = 11 +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.index = 10 +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.default_value = 0 +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.type = 5 +PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD.cpp_type = 1 + +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.name = "upper_level" +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.full_name = ".ftcfg.partner_passiveskill_cfg.upper_level" +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.number = 12 +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.index = 11 +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.label = 2 +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.default_value = 0 +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.type = 5 +PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD.cpp_type = 1 + +PARTNER_PASSIVESKILL_CFG.name = "partner_passiveskill_cfg" +PARTNER_PASSIVESKILL_CFG.full_name = ".ftcfg.partner_passiveskill_cfg" +PARTNER_PASSIVESKILL_CFG.nested_types = {} +PARTNER_PASSIVESKILL_CFG.enum_types = {} +PARTNER_PASSIVESKILL_CFG.fields = {PARTNER_PASSIVESKILL_CFG_ID_FIELD, PARTNER_PASSIVESKILL_CFG_NAME_FIELD, PARTNER_PASSIVESKILL_CFG_LEVEL_FIELD, PARTNER_PASSIVESKILL_CFG_ICON_FIELD, PARTNER_PASSIVESKILL_CFG_POKEDEX_TYPE_FIELD, PARTNER_PASSIVESKILL_CFG_PROP_TYPE_FIELD, PARTNER_PASSIVESKILL_CFG_ATT_TYPE_FIELD, PARTNER_PASSIVESKILL_CFG_ATT_VALUE_FIELD, PARTNER_PASSIVESKILL_CFG_DESC_FIELD, PARTNER_PASSIVESKILL_CFG_POKEDEX_DESC_FIELD, PARTNER_PASSIVESKILL_CFG_NEXT_LEVEL_FIELD, PARTNER_PASSIVESKILL_CFG_UPPER_LEVEL_FIELD} +PARTNER_PASSIVESKILL_CFG.is_extendable = false +PARTNER_PASSIVESKILL_CFG.extensions = {} +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.name = "items" +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_passiveskill_cfgs.items" +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.number = 1 +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.index = 0 +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.label = 3 +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.message_type = PARTNER_PASSIVESKILL_CFG +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.type = 11 +PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_PASSIVESKILL_CFGS.name = "partner_passiveskill_cfgs" +PARTNER_PASSIVESKILL_CFGS.full_name = ".ftcfg.partner_passiveskill_cfgs" +PARTNER_PASSIVESKILL_CFGS.nested_types = {} +PARTNER_PASSIVESKILL_CFGS.enum_types = {} +PARTNER_PASSIVESKILL_CFGS.fields = {PARTNER_PASSIVESKILL_CFGS_ITEMS_FIELD} +PARTNER_PASSIVESKILL_CFGS.is_extendable = false +PARTNER_PASSIVESKILL_CFGS.extensions = {} +PARTNER_CHIP_CFG_ID_FIELD.name = "id" +PARTNER_CHIP_CFG_ID_FIELD.full_name = ".ftcfg.partner_chip_cfg.id" +PARTNER_CHIP_CFG_ID_FIELD.number = 1 +PARTNER_CHIP_CFG_ID_FIELD.index = 0 +PARTNER_CHIP_CFG_ID_FIELD.label = 2 +PARTNER_CHIP_CFG_ID_FIELD.has_default_value = false +PARTNER_CHIP_CFG_ID_FIELD.default_value = 0 +PARTNER_CHIP_CFG_ID_FIELD.type = 13 +PARTNER_CHIP_CFG_ID_FIELD.cpp_type = 3 + +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.name = "chip_name" +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.full_name = ".ftcfg.partner_chip_cfg.chip_name" +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.number = 2 +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.index = 1 +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.label = 2 +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.has_default_value = false +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.default_value = "" +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.type = 9 +PARTNER_CHIP_CFG_CHIP_NAME_FIELD.cpp_type = 9 + +PARTNER_CHIP_CFG_ICON_FIELD.name = "icon" +PARTNER_CHIP_CFG_ICON_FIELD.full_name = ".ftcfg.partner_chip_cfg.icon" +PARTNER_CHIP_CFG_ICON_FIELD.number = 3 +PARTNER_CHIP_CFG_ICON_FIELD.index = 2 +PARTNER_CHIP_CFG_ICON_FIELD.label = 2 +PARTNER_CHIP_CFG_ICON_FIELD.has_default_value = false +PARTNER_CHIP_CFG_ICON_FIELD.default_value = "" +PARTNER_CHIP_CFG_ICON_FIELD.type = 9 +PARTNER_CHIP_CFG_ICON_FIELD.cpp_type = 9 + +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.name = "change_need_num1" +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.full_name = ".ftcfg.partner_chip_cfg.change_need_num1" +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.number = 4 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.index = 3 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.label = 2 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.has_default_value = false +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.default_value = 0 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.type = 5 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD.cpp_type = 1 + +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.name = "change_need_num2" +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.full_name = ".ftcfg.partner_chip_cfg.change_need_num2" +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.number = 5 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.index = 4 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.label = 2 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.has_default_value = false +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.default_value = 0 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.type = 5 +PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD.cpp_type = 1 + +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.name = "change_need_prop" +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.full_name = ".ftcfg.partner_chip_cfg.change_need_prop" +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.number = 6 +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.index = 5 +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.label = 2 +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.has_default_value = false +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.default_value = 0 +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.type = 13 +PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD.cpp_type = 3 + +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.name = "change_need_propnum" +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.full_name = ".ftcfg.partner_chip_cfg.change_need_propnum" +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.number = 7 +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.index = 6 +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.label = 2 +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.has_default_value = false +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.default_value = 0 +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.type = 5 +PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD.cpp_type = 1 + +PARTNER_CHIP_CFG.name = "partner_chip_cfg" +PARTNER_CHIP_CFG.full_name = ".ftcfg.partner_chip_cfg" +PARTNER_CHIP_CFG.nested_types = {} +PARTNER_CHIP_CFG.enum_types = {} +PARTNER_CHIP_CFG.fields = {PARTNER_CHIP_CFG_ID_FIELD, PARTNER_CHIP_CFG_CHIP_NAME_FIELD, PARTNER_CHIP_CFG_ICON_FIELD, PARTNER_CHIP_CFG_CHANGE_NEED_NUM1_FIELD, PARTNER_CHIP_CFG_CHANGE_NEED_NUM2_FIELD, PARTNER_CHIP_CFG_CHANGE_NEED_PROP_FIELD, PARTNER_CHIP_CFG_CHANGE_NEED_PROPNUM_FIELD} +PARTNER_CHIP_CFG.is_extendable = false +PARTNER_CHIP_CFG.extensions = {} +PARTNER_CHIP_CFGS_ITEMS_FIELD.name = "items" +PARTNER_CHIP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_chip_cfgs.items" +PARTNER_CHIP_CFGS_ITEMS_FIELD.number = 1 +PARTNER_CHIP_CFGS_ITEMS_FIELD.index = 0 +PARTNER_CHIP_CFGS_ITEMS_FIELD.label = 3 +PARTNER_CHIP_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_CHIP_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_CHIP_CFGS_ITEMS_FIELD.message_type = PARTNER_CHIP_CFG +PARTNER_CHIP_CFGS_ITEMS_FIELD.type = 11 +PARTNER_CHIP_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_CHIP_CFGS.name = "partner_chip_cfgs" +PARTNER_CHIP_CFGS.full_name = ".ftcfg.partner_chip_cfgs" +PARTNER_CHIP_CFGS.nested_types = {} +PARTNER_CHIP_CFGS.enum_types = {} +PARTNER_CHIP_CFGS.fields = {PARTNER_CHIP_CFGS_ITEMS_FIELD} +PARTNER_CHIP_CFGS.is_extendable = false +PARTNER_CHIP_CFGS.extensions = {} +FETTER_CFG_ID_FIELD.name = "id" +FETTER_CFG_ID_FIELD.full_name = ".ftcfg.fetter_cfg.id" +FETTER_CFG_ID_FIELD.number = 1 +FETTER_CFG_ID_FIELD.index = 0 +FETTER_CFG_ID_FIELD.label = 2 +FETTER_CFG_ID_FIELD.has_default_value = false +FETTER_CFG_ID_FIELD.default_value = 0 +FETTER_CFG_ID_FIELD.type = 13 +FETTER_CFG_ID_FIELD.cpp_type = 3 + +FETTER_CFG_TID_FIELD.name = "tid" +FETTER_CFG_TID_FIELD.full_name = ".ftcfg.fetter_cfg.tid" +FETTER_CFG_TID_FIELD.number = 2 +FETTER_CFG_TID_FIELD.index = 1 +FETTER_CFG_TID_FIELD.label = 2 +FETTER_CFG_TID_FIELD.has_default_value = false +FETTER_CFG_TID_FIELD.default_value = 0 +FETTER_CFG_TID_FIELD.type = 13 +FETTER_CFG_TID_FIELD.cpp_type = 3 + +FETTER_CFG_FETTER_NAME_FIELD.name = "fetter_name" +FETTER_CFG_FETTER_NAME_FIELD.full_name = ".ftcfg.fetter_cfg.fetter_name" +FETTER_CFG_FETTER_NAME_FIELD.number = 3 +FETTER_CFG_FETTER_NAME_FIELD.index = 2 +FETTER_CFG_FETTER_NAME_FIELD.label = 2 +FETTER_CFG_FETTER_NAME_FIELD.has_default_value = false +FETTER_CFG_FETTER_NAME_FIELD.default_value = "" +FETTER_CFG_FETTER_NAME_FIELD.type = 9 +FETTER_CFG_FETTER_NAME_FIELD.cpp_type = 9 + +FETTER_CFG_FETTER_DESC_FIELD.name = "fetter_desc" +FETTER_CFG_FETTER_DESC_FIELD.full_name = ".ftcfg.fetter_cfg.fetter_desc" +FETTER_CFG_FETTER_DESC_FIELD.number = 4 +FETTER_CFG_FETTER_DESC_FIELD.index = 3 +FETTER_CFG_FETTER_DESC_FIELD.label = 2 +FETTER_CFG_FETTER_DESC_FIELD.has_default_value = false +FETTER_CFG_FETTER_DESC_FIELD.default_value = "" +FETTER_CFG_FETTER_DESC_FIELD.type = 9 +FETTER_CFG_FETTER_DESC_FIELD.cpp_type = 9 + +FETTER_CFG_FETTER_OBJECT_FIELD.name = "fetter_object" +FETTER_CFG_FETTER_OBJECT_FIELD.full_name = ".ftcfg.fetter_cfg.fetter_object" +FETTER_CFG_FETTER_OBJECT_FIELD.number = 5 +FETTER_CFG_FETTER_OBJECT_FIELD.index = 4 +FETTER_CFG_FETTER_OBJECT_FIELD.label = 3 +FETTER_CFG_FETTER_OBJECT_FIELD.has_default_value = false +FETTER_CFG_FETTER_OBJECT_FIELD.default_value = {} +FETTER_CFG_FETTER_OBJECT_FIELD.type = 13 +FETTER_CFG_FETTER_OBJECT_FIELD.cpp_type = 3 + +FETTER_CFG.name = "fetter_cfg" +FETTER_CFG.full_name = ".ftcfg.fetter_cfg" +FETTER_CFG.nested_types = {} +FETTER_CFG.enum_types = {} +FETTER_CFG.fields = {FETTER_CFG_ID_FIELD, FETTER_CFG_TID_FIELD, FETTER_CFG_FETTER_NAME_FIELD, FETTER_CFG_FETTER_DESC_FIELD, FETTER_CFG_FETTER_OBJECT_FIELD} +FETTER_CFG.is_extendable = false +FETTER_CFG.extensions = {} +FETTER_CFGS_ITEMS_FIELD.name = "items" +FETTER_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fetter_cfgs.items" +FETTER_CFGS_ITEMS_FIELD.number = 1 +FETTER_CFGS_ITEMS_FIELD.index = 0 +FETTER_CFGS_ITEMS_FIELD.label = 3 +FETTER_CFGS_ITEMS_FIELD.has_default_value = false +FETTER_CFGS_ITEMS_FIELD.default_value = {} +FETTER_CFGS_ITEMS_FIELD.message_type = FETTER_CFG +FETTER_CFGS_ITEMS_FIELD.type = 11 +FETTER_CFGS_ITEMS_FIELD.cpp_type = 10 + +FETTER_CFGS.name = "fetter_cfgs" +FETTER_CFGS.full_name = ".ftcfg.fetter_cfgs" +FETTER_CFGS.nested_types = {} +FETTER_CFGS.enum_types = {} +FETTER_CFGS.fields = {FETTER_CFGS_ITEMS_FIELD} +FETTER_CFGS.is_extendable = false +FETTER_CFGS.extensions = {} +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.name = "id" +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.full_name = ".ftcfg.partner_equiphecheng_cfg.id" +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.number = 1 +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.index = 0 +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.label = 2 +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.has_default_value = false +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.default_value = 0 +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.type = 13 +PARTNER_EQUIPHECHENG_CFG_ID_FIELD.cpp_type = 3 + +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.name = "name" +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.full_name = ".ftcfg.partner_equiphecheng_cfg.name" +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.number = 2 +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.index = 1 +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.label = 2 +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.has_default_value = false +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.default_value = "" +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.type = 9 +PARTNER_EQUIPHECHENG_CFG_NAME_FIELD.cpp_type = 9 + +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.name = "stuffid" +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.full_name = ".ftcfg.partner_equiphecheng_cfg.stuffid" +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.number = 3 +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.index = 2 +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.label = 3 +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.has_default_value = false +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.default_value = {} +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.type = 13 +PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD.cpp_type = 3 + +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.name = "stuffid2" +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.full_name = ".ftcfg.partner_equiphecheng_cfg.stuffid2" +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.number = 4 +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.index = 3 +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.label = 3 +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.has_default_value = false +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.default_value = {} +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.type = 13 +PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD.cpp_type = 3 + +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.name = "composite_display" +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.full_name = ".ftcfg.partner_equiphecheng_cfg.composite_display" +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.number = 5 +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.index = 4 +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.label = 2 +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.has_default_value = false +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.default_value = 0 +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.type = 5 +PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD.cpp_type = 1 + +PARTNER_EQUIPHECHENG_CFG.name = "partner_equiphecheng_cfg" +PARTNER_EQUIPHECHENG_CFG.full_name = ".ftcfg.partner_equiphecheng_cfg" +PARTNER_EQUIPHECHENG_CFG.nested_types = {} +PARTNER_EQUIPHECHENG_CFG.enum_types = {} +PARTNER_EQUIPHECHENG_CFG.fields = {PARTNER_EQUIPHECHENG_CFG_ID_FIELD, PARTNER_EQUIPHECHENG_CFG_NAME_FIELD, PARTNER_EQUIPHECHENG_CFG_STUFFID_FIELD, PARTNER_EQUIPHECHENG_CFG_STUFFID2_FIELD, PARTNER_EQUIPHECHENG_CFG_COMPOSITE_DISPLAY_FIELD} +PARTNER_EQUIPHECHENG_CFG.is_extendable = false +PARTNER_EQUIPHECHENG_CFG.extensions = {} +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.name = "items" +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_equiphecheng_cfgs.items" +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.number = 1 +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.index = 0 +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.label = 3 +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.message_type = PARTNER_EQUIPHECHENG_CFG +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.type = 11 +PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_EQUIPHECHENG_CFGS.name = "partner_equiphecheng_cfgs" +PARTNER_EQUIPHECHENG_CFGS.full_name = ".ftcfg.partner_equiphecheng_cfgs" +PARTNER_EQUIPHECHENG_CFGS.nested_types = {} +PARTNER_EQUIPHECHENG_CFGS.enum_types = {} +PARTNER_EQUIPHECHENG_CFGS.fields = {PARTNER_EQUIPHECHENG_CFGS_ITEMS_FIELD} +PARTNER_EQUIPHECHENG_CFGS.is_extendable = false +PARTNER_EQUIPHECHENG_CFGS.extensions = {} +PARTNER_FORMATION_CFG_ID_FIELD.name = "id" +PARTNER_FORMATION_CFG_ID_FIELD.full_name = ".ftcfg.partner_formation_cfg.id" +PARTNER_FORMATION_CFG_ID_FIELD.number = 1 +PARTNER_FORMATION_CFG_ID_FIELD.index = 0 +PARTNER_FORMATION_CFG_ID_FIELD.label = 2 +PARTNER_FORMATION_CFG_ID_FIELD.has_default_value = false +PARTNER_FORMATION_CFG_ID_FIELD.default_value = 0 +PARTNER_FORMATION_CFG_ID_FIELD.type = 5 +PARTNER_FORMATION_CFG_ID_FIELD.cpp_type = 1 + +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.name = "prop_add1" +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.full_name = ".ftcfg.partner_formation_cfg.prop_add1" +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.number = 2 +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.index = 1 +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.label = 2 +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.has_default_value = false +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.default_value = nil +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.type = 14 +PARTNER_FORMATION_CFG_PROP_ADD1_FIELD.cpp_type = 8 + +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.name = "prop_add2" +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.full_name = ".ftcfg.partner_formation_cfg.prop_add2" +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.number = 3 +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.index = 2 +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.label = 2 +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.has_default_value = false +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.default_value = nil +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.type = 14 +PARTNER_FORMATION_CFG_PROP_ADD2_FIELD.cpp_type = 8 + +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.name = "prop_add3" +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.full_name = ".ftcfg.partner_formation_cfg.prop_add3" +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.number = 4 +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.index = 3 +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.label = 2 +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.has_default_value = false +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.default_value = nil +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.type = 14 +PARTNER_FORMATION_CFG_PROP_ADD3_FIELD.cpp_type = 8 + +PARTNER_FORMATION_CFG.name = "partner_formation_cfg" +PARTNER_FORMATION_CFG.full_name = ".ftcfg.partner_formation_cfg" +PARTNER_FORMATION_CFG.nested_types = {} +PARTNER_FORMATION_CFG.enum_types = {} +PARTNER_FORMATION_CFG.fields = {PARTNER_FORMATION_CFG_ID_FIELD, PARTNER_FORMATION_CFG_PROP_ADD1_FIELD, PARTNER_FORMATION_CFG_PROP_ADD2_FIELD, PARTNER_FORMATION_CFG_PROP_ADD3_FIELD} +PARTNER_FORMATION_CFG.is_extendable = false +PARTNER_FORMATION_CFG.extensions = {} +PARTNER_FORMATION_CFGS_ITEMS_FIELD.name = "items" +PARTNER_FORMATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.partner_formation_cfgs.items" +PARTNER_FORMATION_CFGS_ITEMS_FIELD.number = 1 +PARTNER_FORMATION_CFGS_ITEMS_FIELD.index = 0 +PARTNER_FORMATION_CFGS_ITEMS_FIELD.label = 3 +PARTNER_FORMATION_CFGS_ITEMS_FIELD.has_default_value = false +PARTNER_FORMATION_CFGS_ITEMS_FIELD.default_value = {} +PARTNER_FORMATION_CFGS_ITEMS_FIELD.message_type = PARTNER_FORMATION_CFG +PARTNER_FORMATION_CFGS_ITEMS_FIELD.type = 11 +PARTNER_FORMATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +PARTNER_FORMATION_CFGS.name = "partner_formation_cfgs" +PARTNER_FORMATION_CFGS.full_name = ".ftcfg.partner_formation_cfgs" +PARTNER_FORMATION_CFGS.nested_types = {} +PARTNER_FORMATION_CFGS.enum_types = {} +PARTNER_FORMATION_CFGS.fields = {PARTNER_FORMATION_CFGS_ITEMS_FIELD} +PARTNER_FORMATION_CFGS.is_extendable = false +PARTNER_FORMATION_CFGS.extensions = {} +GUILD_MISSION_CFG_ID_FIELD.name = "id" +GUILD_MISSION_CFG_ID_FIELD.full_name = ".ftcfg.guild_mission_cfg.id" +GUILD_MISSION_CFG_ID_FIELD.number = 1 +GUILD_MISSION_CFG_ID_FIELD.index = 0 +GUILD_MISSION_CFG_ID_FIELD.label = 2 +GUILD_MISSION_CFG_ID_FIELD.has_default_value = false +GUILD_MISSION_CFG_ID_FIELD.default_value = 0 +GUILD_MISSION_CFG_ID_FIELD.type = 13 +GUILD_MISSION_CFG_ID_FIELD.cpp_type = 3 + +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.name = "guild_task_level" +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.full_name = ".ftcfg.guild_mission_cfg.guild_task_level" +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.number = 2 +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.index = 1 +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.label = 2 +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.has_default_value = false +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.default_value = 0 +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.type = 5 +GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD.cpp_type = 1 + +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.name = "guild_task_day" +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.full_name = ".ftcfg.guild_mission_cfg.guild_task_day" +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.number = 3 +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.index = 2 +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.label = 3 +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.has_default_value = false +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.default_value = {} +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.type = 5 +GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD.cpp_type = 1 + +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.name = "guild_task_quality" +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.full_name = ".ftcfg.guild_mission_cfg.guild_task_quality" +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.number = 4 +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.index = 3 +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.label = 2 +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.has_default_value = false +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.default_value = nil +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.enum_type = config_predefine_pb.EGUILDQUALITYTYPE +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.type = 14 +GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD.cpp_type = 8 + +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.name = "guild_task_targetid" +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.full_name = ".ftcfg.guild_mission_cfg.guild_task_targetid" +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.number = 5 +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.index = 4 +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.label = 2 +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.has_default_value = false +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.default_value = 0 +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.type = 5 +GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD.cpp_type = 1 + +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.name = "guild_task_condition_type" +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.full_name = ".ftcfg.guild_mission_cfg.guild_task_condition_type" +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.number = 6 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.index = 5 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.label = 2 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.has_default_value = false +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.default_value = nil +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.enum_type = config_predefine_pb.EGUILDTASKTYPE +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.type = 14 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD.cpp_type = 8 + +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.name = "guild_task_condition_number" +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.full_name = ".ftcfg.guild_mission_cfg.guild_task_condition_number" +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.number = 7 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.index = 6 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.label = 3 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.has_default_value = false +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.default_value = {} +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.type = 5 +GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD.cpp_type = 1 + +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.name = "guild_task_rewaedid" +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.full_name = ".ftcfg.guild_mission_cfg.guild_task_rewaedid" +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.number = 8 +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.index = 7 +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.label = 2 +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.has_default_value = false +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.default_value = 0 +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.type = 5 +GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD.cpp_type = 1 + +GUILD_MISSION_CFG.name = "guild_mission_cfg" +GUILD_MISSION_CFG.full_name = ".ftcfg.guild_mission_cfg" +GUILD_MISSION_CFG.nested_types = {} +GUILD_MISSION_CFG.enum_types = {} +GUILD_MISSION_CFG.fields = {GUILD_MISSION_CFG_ID_FIELD, GUILD_MISSION_CFG_GUILD_TASK_LEVEL_FIELD, GUILD_MISSION_CFG_GUILD_TASK_DAY_FIELD, GUILD_MISSION_CFG_GUILD_TASK_QUALITY_FIELD, GUILD_MISSION_CFG_GUILD_TASK_TARGETID_FIELD, GUILD_MISSION_CFG_GUILD_TASK_CONDITION_TYPE_FIELD, GUILD_MISSION_CFG_GUILD_TASK_CONDITION_NUMBER_FIELD, GUILD_MISSION_CFG_GUILD_TASK_REWAEDID_FIELD} +GUILD_MISSION_CFG.is_extendable = false +GUILD_MISSION_CFG.extensions = {} +GUILD_MISSION_CFGS_ITEMS_FIELD.name = "items" +GUILD_MISSION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guild_mission_cfgs.items" +GUILD_MISSION_CFGS_ITEMS_FIELD.number = 1 +GUILD_MISSION_CFGS_ITEMS_FIELD.index = 0 +GUILD_MISSION_CFGS_ITEMS_FIELD.label = 3 +GUILD_MISSION_CFGS_ITEMS_FIELD.has_default_value = false +GUILD_MISSION_CFGS_ITEMS_FIELD.default_value = {} +GUILD_MISSION_CFGS_ITEMS_FIELD.message_type = GUILD_MISSION_CFG +GUILD_MISSION_CFGS_ITEMS_FIELD.type = 11 +GUILD_MISSION_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUILD_MISSION_CFGS.name = "guild_mission_cfgs" +GUILD_MISSION_CFGS.full_name = ".ftcfg.guild_mission_cfgs" +GUILD_MISSION_CFGS.nested_types = {} +GUILD_MISSION_CFGS.enum_types = {} +GUILD_MISSION_CFGS.fields = {GUILD_MISSION_CFGS_ITEMS_FIELD} +GUILD_MISSION_CFGS.is_extendable = false +GUILD_MISSION_CFGS.extensions = {} +GUILD_BUILDING_MISSION_CFG_ID_FIELD.name = "id" +GUILD_BUILDING_MISSION_CFG_ID_FIELD.full_name = ".ftcfg.guild_building_mission_cfg.id" +GUILD_BUILDING_MISSION_CFG_ID_FIELD.number = 1 +GUILD_BUILDING_MISSION_CFG_ID_FIELD.index = 0 +GUILD_BUILDING_MISSION_CFG_ID_FIELD.label = 2 +GUILD_BUILDING_MISSION_CFG_ID_FIELD.has_default_value = false +GUILD_BUILDING_MISSION_CFG_ID_FIELD.default_value = 0 +GUILD_BUILDING_MISSION_CFG_ID_FIELD.type = 13 +GUILD_BUILDING_MISSION_CFG_ID_FIELD.cpp_type = 3 + +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.name = "submit_condition" +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.full_name = ".ftcfg.guild_building_mission_cfg.submit_condition" +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.number = 2 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.index = 1 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.label = 3 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.has_default_value = false +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.default_value = {} +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.type = 5 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD.cpp_type = 1 + +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.name = "submit_condition_reward" +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.full_name = ".ftcfg.guild_building_mission_cfg.submit_condition_reward" +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.number = 3 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.index = 2 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.label = 3 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.has_default_value = false +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.default_value = {} +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.type = 5 +GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD.cpp_type = 1 + +GUILD_BUILDING_MISSION_CFG.name = "guild_building_mission_cfg" +GUILD_BUILDING_MISSION_CFG.full_name = ".ftcfg.guild_building_mission_cfg" +GUILD_BUILDING_MISSION_CFG.nested_types = {} +GUILD_BUILDING_MISSION_CFG.enum_types = {} +GUILD_BUILDING_MISSION_CFG.fields = {GUILD_BUILDING_MISSION_CFG_ID_FIELD, GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_FIELD, GUILD_BUILDING_MISSION_CFG_SUBMIT_CONDITION_REWARD_FIELD} +GUILD_BUILDING_MISSION_CFG.is_extendable = false +GUILD_BUILDING_MISSION_CFG.extensions = {} +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.name = "items" +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guild_building_mission_cfgs.items" +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.number = 1 +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.index = 0 +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.label = 3 +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.has_default_value = false +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.default_value = {} +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.message_type = GUILD_BUILDING_MISSION_CFG +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.type = 11 +GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUILD_BUILDING_MISSION_CFGS.name = "guild_building_mission_cfgs" +GUILD_BUILDING_MISSION_CFGS.full_name = ".ftcfg.guild_building_mission_cfgs" +GUILD_BUILDING_MISSION_CFGS.nested_types = {} +GUILD_BUILDING_MISSION_CFGS.enum_types = {} +GUILD_BUILDING_MISSION_CFGS.fields = {GUILD_BUILDING_MISSION_CFGS_ITEMS_FIELD} +GUILD_BUILDING_MISSION_CFGS.is_extendable = false +GUILD_BUILDING_MISSION_CFGS.extensions = {} +BUILDING_MISSION_POOL_CFG_ID_FIELD.name = "id" +BUILDING_MISSION_POOL_CFG_ID_FIELD.full_name = ".ftcfg.building_mission_pool_cfg.id" +BUILDING_MISSION_POOL_CFG_ID_FIELD.number = 1 +BUILDING_MISSION_POOL_CFG_ID_FIELD.index = 0 +BUILDING_MISSION_POOL_CFG_ID_FIELD.label = 2 +BUILDING_MISSION_POOL_CFG_ID_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFG_ID_FIELD.default_value = 0 +BUILDING_MISSION_POOL_CFG_ID_FIELD.type = 13 +BUILDING_MISSION_POOL_CFG_ID_FIELD.cpp_type = 3 + +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.name = "need_item_id" +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.full_name = ".ftcfg.building_mission_pool_cfg.need_item_id" +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.number = 2 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.index = 1 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.label = 2 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.default_value = 0 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.type = 5 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD.cpp_type = 1 + +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.name = "need_item_number" +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.full_name = ".ftcfg.building_mission_pool_cfg.need_item_number" +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.number = 3 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.index = 2 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.label = 2 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.default_value = 0 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.type = 5 +BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD.cpp_type = 1 + +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.name = "is_help" +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.full_name = ".ftcfg.building_mission_pool_cfg.is_help" +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.number = 4 +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.index = 3 +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.label = 2 +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.default_value = false +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.type = 8 +BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD.cpp_type = 7 + +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.name = "buy_coin_type" +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.full_name = ".ftcfg.building_mission_pool_cfg.buy_coin_type" +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.number = 5 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.index = 4 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.label = 2 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.default_value = 0 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.type = 5 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD.cpp_type = 1 + +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.name = "buy_coin_type_nember" +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.full_name = ".ftcfg.building_mission_pool_cfg.buy_coin_type_nember" +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.number = 6 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.index = 5 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.label = 2 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.default_value = 0 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.type = 5 +BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD.cpp_type = 1 + +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.name = "help_reward" +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.full_name = ".ftcfg.building_mission_pool_cfg.help_reward" +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.number = 7 +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.index = 6 +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.label = 2 +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.default_value = 0 +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.type = 5 +BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD.cpp_type = 1 + +BUILDING_MISSION_POOL_CFG.name = "building_mission_pool_cfg" +BUILDING_MISSION_POOL_CFG.full_name = ".ftcfg.building_mission_pool_cfg" +BUILDING_MISSION_POOL_CFG.nested_types = {} +BUILDING_MISSION_POOL_CFG.enum_types = {} +BUILDING_MISSION_POOL_CFG.fields = {BUILDING_MISSION_POOL_CFG_ID_FIELD, BUILDING_MISSION_POOL_CFG_NEED_ITEM_ID_FIELD, BUILDING_MISSION_POOL_CFG_NEED_ITEM_NUMBER_FIELD, BUILDING_MISSION_POOL_CFG_IS_HELP_FIELD, BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_FIELD, BUILDING_MISSION_POOL_CFG_BUY_COIN_TYPE_NEMBER_FIELD, BUILDING_MISSION_POOL_CFG_HELP_REWARD_FIELD} +BUILDING_MISSION_POOL_CFG.is_extendable = false +BUILDING_MISSION_POOL_CFG.extensions = {} +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.name = "items" +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.building_mission_pool_cfgs.items" +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.number = 1 +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.index = 0 +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.label = 3 +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.has_default_value = false +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.default_value = {} +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.message_type = BUILDING_MISSION_POOL_CFG +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.type = 11 +BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD.cpp_type = 10 + +BUILDING_MISSION_POOL_CFGS.name = "building_mission_pool_cfgs" +BUILDING_MISSION_POOL_CFGS.full_name = ".ftcfg.building_mission_pool_cfgs" +BUILDING_MISSION_POOL_CFGS.nested_types = {} +BUILDING_MISSION_POOL_CFGS.enum_types = {} +BUILDING_MISSION_POOL_CFGS.fields = {BUILDING_MISSION_POOL_CFGS_ITEMS_FIELD} +BUILDING_MISSION_POOL_CFGS.is_extendable = false +BUILDING_MISSION_POOL_CFGS.extensions = {} +GUILD_MISSION_BASE_CFG_ID_FIELD.name = "id" +GUILD_MISSION_BASE_CFG_ID_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.id" +GUILD_MISSION_BASE_CFG_ID_FIELD.number = 1 +GUILD_MISSION_BASE_CFG_ID_FIELD.index = 0 +GUILD_MISSION_BASE_CFG_ID_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_ID_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_ID_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_ID_FIELD.type = 13 +GUILD_MISSION_BASE_CFG_ID_FIELD.cpp_type = 3 + +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.name = "quality_probability_white" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.quality_probability_white" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.number = 2 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.index = 1 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.name = "quality_probability_Green" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.quality_probability_Green" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.number = 3 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.index = 2 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.name = "quality_probability_Blue" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.quality_probability_Blue" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.number = 4 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.index = 3 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.name = "quality_probability_Purple" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.quality_probability_Purple" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.number = 5 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.index = 4 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.name = "quality_probability_Orange" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.quality_probability_Orange" +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.number = 6 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.index = 5 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.name = "refresh_cost_item" +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.refresh_cost_item" +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.number = 7 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.index = 6 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.name = "refresh_cost_item_number" +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.refresh_cost_item_number" +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.number = 8 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.index = 7 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.name = "refresh_cost_cion_type" +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.refresh_cost_cion_type" +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.number = 9 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.index = 8 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.name = "refresh_cost_cion_number" +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.full_name = ".ftcfg.guild_mission_base_cfg.refresh_cost_cion_number" +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.number = 10 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.index = 9 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.label = 2 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.default_value = 0 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.type = 5 +GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD.cpp_type = 1 + +GUILD_MISSION_BASE_CFG.name = "guild_mission_base_cfg" +GUILD_MISSION_BASE_CFG.full_name = ".ftcfg.guild_mission_base_cfg" +GUILD_MISSION_BASE_CFG.nested_types = {} +GUILD_MISSION_BASE_CFG.enum_types = {} +GUILD_MISSION_BASE_CFG.fields = {GUILD_MISSION_BASE_CFG_ID_FIELD, GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_WHITE_FIELD, GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_GREEN_FIELD, GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_BLUE_FIELD, GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_PURPLE_FIELD, GUILD_MISSION_BASE_CFG_QUALITY_PROBABILITY_ORANGE_FIELD, GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_FIELD, GUILD_MISSION_BASE_CFG_REFRESH_COST_ITEM_NUMBER_FIELD, GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_TYPE_FIELD, GUILD_MISSION_BASE_CFG_REFRESH_COST_CION_NUMBER_FIELD} +GUILD_MISSION_BASE_CFG.is_extendable = false +GUILD_MISSION_BASE_CFG.extensions = {} +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.name = "items" +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guild_mission_base_cfgs.items" +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.number = 1 +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.index = 0 +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.label = 3 +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.has_default_value = false +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.default_value = {} +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.message_type = GUILD_MISSION_BASE_CFG +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.type = 11 +GUILD_MISSION_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUILD_MISSION_BASE_CFGS.name = "guild_mission_base_cfgs" +GUILD_MISSION_BASE_CFGS.full_name = ".ftcfg.guild_mission_base_cfgs" +GUILD_MISSION_BASE_CFGS.nested_types = {} +GUILD_MISSION_BASE_CFGS.enum_types = {} +GUILD_MISSION_BASE_CFGS.fields = {GUILD_MISSION_BASE_CFGS_ITEMS_FIELD} +GUILD_MISSION_BASE_CFGS.is_extendable = false +GUILD_MISSION_BASE_CFGS.extensions = {} +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.name = "guild_practice_group" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_group" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.number = 1 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.index = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.name = "guild_practice_level" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_level" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.number = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.index = 1 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.name = "guild_practice_type" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_type" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.number = 3 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.index = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.name = "guild_practice_icon" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_icon" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.number = 4 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.index = 3 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.name = "guild_practice_name" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_name" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.number = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.index = 4 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.name = "guild_practice_effect_describe" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_effect_describe" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.number = 6 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.index = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.name = "guild_practice_battle" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_battle" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.number = 7 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.index = 6 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.name = "guild_practice_cost_level" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_cost_level" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.number = 8 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.index = 7 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.name = "guild_practice_cost_cointype1" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_cost_cointype1" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.number = 9 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.index = 8 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.label = 3 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.default_value = {} +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.name = "guild_practice_cost_cointype2" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_cost_cointype2" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.number = 10 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.index = 9 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.label = 3 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.default_value = {} +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.name = "guild_practice_cost_item" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_cost_item" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.number = 11 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.index = 10 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.name = "guild_practice_cost_number" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_cost_number" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.number = 12 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.index = 11 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.name = "guild_practice_exp" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_exp" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.number = 13 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.index = 12 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.name = "guild_practice_exp_max" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_exp_max" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.number = 14 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.index = 13 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.name = "guild_practice_attribute" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_attribute" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.number = 15 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.index = 14 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.default_value = "" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.type = 9 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD.cpp_type = 9 + +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.name = "guild_practice_buff" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfg.guild_practice_buff" +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.number = 16 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.index = 15 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CONT_CFG.name = "guild_practice_group_cont_cfg" +GUILD_PRACTICE_GROUP_CONT_CFG.full_name = ".ftcfg.guild_practice_group_cont_cfg" +GUILD_PRACTICE_GROUP_CONT_CFG.nested_types = {} +GUILD_PRACTICE_GROUP_CONT_CFG.enum_types = {} +GUILD_PRACTICE_GROUP_CONT_CFG.fields = {GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_GROUP_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_LEVEL_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_TYPE_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ICON_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_NAME_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EFFECT_DESCRIBE_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BATTLE_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_LEVEL_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE1_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_COINTYPE2_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_ITEM_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_COST_NUMBER_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_EXP_MAX_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_ATTRIBUTE_FIELD, GUILD_PRACTICE_GROUP_CONT_CFG_GUILD_PRACTICE_BUFF_FIELD} +GUILD_PRACTICE_GROUP_CONT_CFG.is_extendable = false +GUILD_PRACTICE_GROUP_CONT_CFG.extensions = {} +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.name = "items" +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guild_practice_group_cont_cfgs.items" +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.number = 1 +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.index = 0 +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.label = 3 +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.default_value = {} +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.message_type = GUILD_PRACTICE_GROUP_CONT_CFG +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.type = 11 +GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUILD_PRACTICE_GROUP_CONT_CFGS.name = "guild_practice_group_cont_cfgs" +GUILD_PRACTICE_GROUP_CONT_CFGS.full_name = ".ftcfg.guild_practice_group_cont_cfgs" +GUILD_PRACTICE_GROUP_CONT_CFGS.nested_types = {} +GUILD_PRACTICE_GROUP_CONT_CFGS.enum_types = {} +GUILD_PRACTICE_GROUP_CONT_CFGS.fields = {GUILD_PRACTICE_GROUP_CONT_CFGS_ITEMS_FIELD} +GUILD_PRACTICE_GROUP_CONT_CFGS.is_extendable = false +GUILD_PRACTICE_GROUP_CONT_CFGS.extensions = {} +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.name = "id" +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.full_name = ".ftcfg.guild_practice_group_cfg.id" +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.number = 1 +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.index = 0 +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.label = 2 +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.default_value = 0 +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.type = 13 +GUILD_PRACTICE_GROUP_CFG_ID_FIELD.cpp_type = 3 + +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.name = "guild_practice_group" +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.full_name = ".ftcfg.guild_practice_group_cfg.guild_practice_group" +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.number = 2 +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.index = 1 +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.label = 3 +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.default_value = {} +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.type = 5 +GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD.cpp_type = 1 + +GUILD_PRACTICE_GROUP_CFG.name = "guild_practice_group_cfg" +GUILD_PRACTICE_GROUP_CFG.full_name = ".ftcfg.guild_practice_group_cfg" +GUILD_PRACTICE_GROUP_CFG.nested_types = {} +GUILD_PRACTICE_GROUP_CFG.enum_types = {} +GUILD_PRACTICE_GROUP_CFG.fields = {GUILD_PRACTICE_GROUP_CFG_ID_FIELD, GUILD_PRACTICE_GROUP_CFG_GUILD_PRACTICE_GROUP_FIELD} +GUILD_PRACTICE_GROUP_CFG.is_extendable = false +GUILD_PRACTICE_GROUP_CFG.extensions = {} +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.name = "items" +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guild_practice_group_cfgs.items" +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.number = 1 +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.index = 0 +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.label = 3 +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.has_default_value = false +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.default_value = {} +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.message_type = GUILD_PRACTICE_GROUP_CFG +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.type = 11 +GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUILD_PRACTICE_GROUP_CFGS.name = "guild_practice_group_cfgs" +GUILD_PRACTICE_GROUP_CFGS.full_name = ".ftcfg.guild_practice_group_cfgs" +GUILD_PRACTICE_GROUP_CFGS.nested_types = {} +GUILD_PRACTICE_GROUP_CFGS.enum_types = {} +GUILD_PRACTICE_GROUP_CFGS.fields = {GUILD_PRACTICE_GROUP_CFGS_ITEMS_FIELD} +GUILD_PRACTICE_GROUP_CFGS.is_extendable = false +GUILD_PRACTICE_GROUP_CFGS.extensions = {} +GUILD_BASE_CFG_ID_FIELD.name = "id" +GUILD_BASE_CFG_ID_FIELD.full_name = ".ftcfg.guild_base_cfg.id" +GUILD_BASE_CFG_ID_FIELD.number = 1 +GUILD_BASE_CFG_ID_FIELD.index = 0 +GUILD_BASE_CFG_ID_FIELD.label = 2 +GUILD_BASE_CFG_ID_FIELD.has_default_value = false +GUILD_BASE_CFG_ID_FIELD.default_value = 0 +GUILD_BASE_CFG_ID_FIELD.type = 13 +GUILD_BASE_CFG_ID_FIELD.cpp_type = 3 + +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.name = "Guild_remove_cost_money" +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_remove_cost_money" +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.number = 2 +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.index = 1 +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.name = "Day_cost_money" +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.full_name = ".ftcfg.guild_base_cfg.Day_cost_money" +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.number = 3 +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.index = 2 +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.label = 2 +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.has_default_value = false +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.default_value = 0 +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.type = 5 +GUILD_BASE_CFG_DAY_COST_MONEY_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.name = "Guild_upper_limit" +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_upper_limit" +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.number = 4 +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.index = 3 +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.name = "Guild_apprentice_limit" +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_apprentice_limit" +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.number = 5 +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.index = 4 +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.name = "Guild_vice_leader_limit" +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_vice_leader_limit" +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.number = 6 +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.index = 5 +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.name = "Guild_elite_limit" +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_elite_limit" +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.number = 7 +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.index = 6 +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.name = "Guild_baby_limit" +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_baby_limit" +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.number = 8 +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.index = 7 +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.name = "Guild_unlock_shop" +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_unlock_shop" +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.number = 9 +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.index = 8 +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.name = "Guild_unlock_task" +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_unlock_task" +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.number = 10 +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.index = 9 +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.name = "Guild_unlock_levelup" +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_unlock_levelup" +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.number = 11 +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.index = 10 +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.name = "Guild_unlock_guidance" +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_unlock_guidance" +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.number = 12 +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.index = 11 +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.name = "Guild_unlock_build_task" +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_unlock_build_task" +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.number = 13 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.index = 12 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.name = "Guild_unlock_build_practice" +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_unlock_build_practice" +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.number = 14 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.index = 13 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.name = "Guild_practice_help_max" +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_practice_help_max" +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.number = 15 +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.index = 14 +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.name = "Guild_type_practice1" +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_type_practice1" +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.number = 16 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.index = 15 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.name = "Guild_type_practice2" +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_type_practice2" +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.number = 17 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.index = 16 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.name = "Guild_name_cost_type" +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_name_cost_type" +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.number = 18 +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.index = 17 +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD.cpp_type = 1 + +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.name = "Guild_name_cost_number" +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.full_name = ".ftcfg.guild_base_cfg.Guild_name_cost_number" +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.number = 19 +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.index = 18 +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.label = 2 +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.has_default_value = false +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.default_value = 0 +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.type = 5 +GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD.cpp_type = 1 + +GUILD_BASE_CFG.name = "guild_base_cfg" +GUILD_BASE_CFG.full_name = ".ftcfg.guild_base_cfg" +GUILD_BASE_CFG.nested_types = {} +GUILD_BASE_CFG.enum_types = {} +GUILD_BASE_CFG.fields = {GUILD_BASE_CFG_ID_FIELD, GUILD_BASE_CFG_GUILD_REMOVE_COST_MONEY_FIELD, GUILD_BASE_CFG_DAY_COST_MONEY_FIELD, GUILD_BASE_CFG_GUILD_UPPER_LIMIT_FIELD, GUILD_BASE_CFG_GUILD_APPRENTICE_LIMIT_FIELD, GUILD_BASE_CFG_GUILD_VICE_LEADER_LIMIT_FIELD, GUILD_BASE_CFG_GUILD_ELITE_LIMIT_FIELD, GUILD_BASE_CFG_GUILD_BABY_LIMIT_FIELD, GUILD_BASE_CFG_GUILD_UNLOCK_SHOP_FIELD, GUILD_BASE_CFG_GUILD_UNLOCK_TASK_FIELD, GUILD_BASE_CFG_GUILD_UNLOCK_LEVELUP_FIELD, GUILD_BASE_CFG_GUILD_UNLOCK_GUIDANCE_FIELD, GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_TASK_FIELD, GUILD_BASE_CFG_GUILD_UNLOCK_BUILD_PRACTICE_FIELD, GUILD_BASE_CFG_GUILD_PRACTICE_HELP_MAX_FIELD, GUILD_BASE_CFG_GUILD_TYPE_PRACTICE1_FIELD, GUILD_BASE_CFG_GUILD_TYPE_PRACTICE2_FIELD, GUILD_BASE_CFG_GUILD_NAME_COST_TYPE_FIELD, GUILD_BASE_CFG_GUILD_NAME_COST_NUMBER_FIELD} +GUILD_BASE_CFG.is_extendable = false +GUILD_BASE_CFG.extensions = {} +GUILD_BASE_CFGS_ITEMS_FIELD.name = "items" +GUILD_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guild_base_cfgs.items" +GUILD_BASE_CFGS_ITEMS_FIELD.number = 1 +GUILD_BASE_CFGS_ITEMS_FIELD.index = 0 +GUILD_BASE_CFGS_ITEMS_FIELD.label = 3 +GUILD_BASE_CFGS_ITEMS_FIELD.has_default_value = false +GUILD_BASE_CFGS_ITEMS_FIELD.default_value = {} +GUILD_BASE_CFGS_ITEMS_FIELD.message_type = GUILD_BASE_CFG +GUILD_BASE_CFGS_ITEMS_FIELD.type = 11 +GUILD_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUILD_BASE_CFGS.name = "guild_base_cfgs" +GUILD_BASE_CFGS.full_name = ".ftcfg.guild_base_cfgs" +GUILD_BASE_CFGS.nested_types = {} +GUILD_BASE_CFGS.enum_types = {} +GUILD_BASE_CFGS.fields = {GUILD_BASE_CFGS_ITEMS_FIELD} +GUILD_BASE_CFGS.is_extendable = false +GUILD_BASE_CFGS.extensions = {} +GUILD_FLAG_CFG_ID_FIELD.name = "id" +GUILD_FLAG_CFG_ID_FIELD.full_name = ".ftcfg.guild_flag_cfg.id" +GUILD_FLAG_CFG_ID_FIELD.number = 1 +GUILD_FLAG_CFG_ID_FIELD.index = 0 +GUILD_FLAG_CFG_ID_FIELD.label = 2 +GUILD_FLAG_CFG_ID_FIELD.has_default_value = false +GUILD_FLAG_CFG_ID_FIELD.default_value = 0 +GUILD_FLAG_CFG_ID_FIELD.type = 5 +GUILD_FLAG_CFG_ID_FIELD.cpp_type = 1 + +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.name = "Guild_big_flag_icon" +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.full_name = ".ftcfg.guild_flag_cfg.Guild_big_flag_icon" +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.number = 2 +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.index = 1 +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.label = 2 +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.has_default_value = false +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.default_value = 0 +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.type = 5 +GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD.cpp_type = 1 + +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.name = "Guild_samll_flag_icon" +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.full_name = ".ftcfg.guild_flag_cfg.Guild_samll_flag_icon" +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.number = 3 +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.index = 2 +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.label = 2 +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.has_default_value = false +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.default_value = "" +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.type = 9 +GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD.cpp_type = 9 + +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.name = "Guild_flag_money" +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.full_name = ".ftcfg.guild_flag_cfg.Guild_flag_money" +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.number = 4 +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.index = 3 +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.label = 2 +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.has_default_value = false +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.default_value = 0 +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.type = 5 +GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD.cpp_type = 1 + +GUILD_FLAG_CFG.name = "guild_flag_cfg" +GUILD_FLAG_CFG.full_name = ".ftcfg.guild_flag_cfg" +GUILD_FLAG_CFG.nested_types = {} +GUILD_FLAG_CFG.enum_types = {} +GUILD_FLAG_CFG.fields = {GUILD_FLAG_CFG_ID_FIELD, GUILD_FLAG_CFG_GUILD_BIG_FLAG_ICON_FIELD, GUILD_FLAG_CFG_GUILD_SAMLL_FLAG_ICON_FIELD, GUILD_FLAG_CFG_GUILD_FLAG_MONEY_FIELD} +GUILD_FLAG_CFG.is_extendable = false +GUILD_FLAG_CFG.extensions = {} +GUILD_FLAG_CFGS_ITEMS_FIELD.name = "items" +GUILD_FLAG_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guild_flag_cfgs.items" +GUILD_FLAG_CFGS_ITEMS_FIELD.number = 1 +GUILD_FLAG_CFGS_ITEMS_FIELD.index = 0 +GUILD_FLAG_CFGS_ITEMS_FIELD.label = 3 +GUILD_FLAG_CFGS_ITEMS_FIELD.has_default_value = false +GUILD_FLAG_CFGS_ITEMS_FIELD.default_value = {} +GUILD_FLAG_CFGS_ITEMS_FIELD.message_type = GUILD_FLAG_CFG +GUILD_FLAG_CFGS_ITEMS_FIELD.type = 11 +GUILD_FLAG_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUILD_FLAG_CFGS.name = "guild_flag_cfgs" +GUILD_FLAG_CFGS.full_name = ".ftcfg.guild_flag_cfgs" +GUILD_FLAG_CFGS.nested_types = {} +GUILD_FLAG_CFGS.enum_types = {} +GUILD_FLAG_CFGS.fields = {GUILD_FLAG_CFGS_ITEMS_FIELD} +GUILD_FLAG_CFGS.is_extendable = false +GUILD_FLAG_CFGS.extensions = {} +GUIL_POST_CFG_ID_FIELD.name = "id" +GUIL_POST_CFG_ID_FIELD.full_name = ".ftcfg.guil_post_cfg.id" +GUIL_POST_CFG_ID_FIELD.number = 1 +GUIL_POST_CFG_ID_FIELD.index = 0 +GUIL_POST_CFG_ID_FIELD.label = 2 +GUIL_POST_CFG_ID_FIELD.has_default_value = false +GUIL_POST_CFG_ID_FIELD.default_value = 0 +GUIL_POST_CFG_ID_FIELD.type = 13 +GUIL_POST_CFG_ID_FIELD.cpp_type = 3 + +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.name = "Guild_post_languageid" +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_post_languageid" +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.number = 2 +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.index = 1 +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.label = 2 +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.type = 5 +GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_REMOVE_FIELD.name = "Guild_remove" +GUIL_POST_CFG_GUILD_REMOVE_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_remove" +GUIL_POST_CFG_GUILD_REMOVE_FIELD.number = 3 +GUIL_POST_CFG_GUILD_REMOVE_FIELD.index = 2 +GUIL_POST_CFG_GUILD_REMOVE_FIELD.label = 2 +GUIL_POST_CFG_GUILD_REMOVE_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_REMOVE_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_REMOVE_FIELD.type = 5 +GUIL_POST_CFG_GUILD_REMOVE_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_MAIL_FIELD.name = "Guild_mail" +GUIL_POST_CFG_GUILD_MAIL_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_mail" +GUIL_POST_CFG_GUILD_MAIL_FIELD.number = 4 +GUIL_POST_CFG_GUILD_MAIL_FIELD.index = 3 +GUIL_POST_CFG_GUILD_MAIL_FIELD.label = 2 +GUIL_POST_CFG_GUILD_MAIL_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_MAIL_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_MAIL_FIELD.type = 5 +GUIL_POST_CFG_GUILD_MAIL_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.name = "Guild_appointment" +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_appointment" +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.number = 5 +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.index = 4 +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.label = 2 +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.type = 5 +GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_EXPEL_FIELD.name = "Guild_expel" +GUIL_POST_CFG_GUILD_EXPEL_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_expel" +GUIL_POST_CFG_GUILD_EXPEL_FIELD.number = 6 +GUIL_POST_CFG_GUILD_EXPEL_FIELD.index = 5 +GUIL_POST_CFG_GUILD_EXPEL_FIELD.label = 2 +GUIL_POST_CFG_GUILD_EXPEL_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_EXPEL_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_EXPEL_FIELD.type = 5 +GUIL_POST_CFG_GUILD_EXPEL_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_INVITATION_FIELD.name = "Guild_invitation" +GUIL_POST_CFG_GUILD_INVITATION_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_invitation" +GUIL_POST_CFG_GUILD_INVITATION_FIELD.number = 7 +GUIL_POST_CFG_GUILD_INVITATION_FIELD.index = 6 +GUIL_POST_CFG_GUILD_INVITATION_FIELD.label = 2 +GUIL_POST_CFG_GUILD_INVITATION_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_INVITATION_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_INVITATION_FIELD.type = 5 +GUIL_POST_CFG_GUILD_INVITATION_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.name = "Guild_approval" +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_approval" +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.number = 8 +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.index = 7 +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.label = 2 +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.type = 5 +GUIL_POST_CFG_GUILD_APPROVAL_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_TEAM_FIELD.name = "Guild_team" +GUIL_POST_CFG_GUILD_TEAM_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_team" +GUIL_POST_CFG_GUILD_TEAM_FIELD.number = 9 +GUIL_POST_CFG_GUILD_TEAM_FIELD.index = 8 +GUIL_POST_CFG_GUILD_TEAM_FIELD.label = 2 +GUIL_POST_CFG_GUILD_TEAM_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_TEAM_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_TEAM_FIELD.type = 5 +GUIL_POST_CFG_GUILD_TEAM_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_CALL_FIELD.name = "Guild_call" +GUIL_POST_CFG_GUILD_CALL_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_call" +GUIL_POST_CFG_GUILD_CALL_FIELD.number = 10 +GUIL_POST_CFG_GUILD_CALL_FIELD.index = 9 +GUIL_POST_CFG_GUILD_CALL_FIELD.label = 2 +GUIL_POST_CFG_GUILD_CALL_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_CALL_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_CALL_FIELD.type = 5 +GUIL_POST_CFG_GUILD_CALL_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.name = "Guild_hostile" +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_hostile" +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.number = 11 +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.index = 10 +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.label = 2 +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.type = 5 +GUIL_POST_CFG_GUILD_HOSTILE_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.name = "Guild_territorial_transfer" +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_territorial_transfer" +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.number = 12 +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.index = 11 +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.label = 2 +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.type = 5 +GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.name = "Guild_flag_modify" +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_flag_modify" +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.number = 13 +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.index = 12 +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.label = 2 +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.type = 5 +GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.name = "Guild_name_modify" +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_name_modify" +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.number = 14 +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.index = 13 +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.label = 2 +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.type = 5 +GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD.cpp_type = 1 + +GUIL_POST_CFG_GUILD_NOTICE_FIELD.name = "Guild_notice" +GUIL_POST_CFG_GUILD_NOTICE_FIELD.full_name = ".ftcfg.guil_post_cfg.Guild_notice" +GUIL_POST_CFG_GUILD_NOTICE_FIELD.number = 15 +GUIL_POST_CFG_GUILD_NOTICE_FIELD.index = 14 +GUIL_POST_CFG_GUILD_NOTICE_FIELD.label = 2 +GUIL_POST_CFG_GUILD_NOTICE_FIELD.has_default_value = false +GUIL_POST_CFG_GUILD_NOTICE_FIELD.default_value = 0 +GUIL_POST_CFG_GUILD_NOTICE_FIELD.type = 5 +GUIL_POST_CFG_GUILD_NOTICE_FIELD.cpp_type = 1 + +GUIL_POST_CFG.name = "guil_post_cfg" +GUIL_POST_CFG.full_name = ".ftcfg.guil_post_cfg" +GUIL_POST_CFG.nested_types = {} +GUIL_POST_CFG.enum_types = {} +GUIL_POST_CFG.fields = {GUIL_POST_CFG_ID_FIELD, GUIL_POST_CFG_GUILD_POST_LANGUAGEID_FIELD, GUIL_POST_CFG_GUILD_REMOVE_FIELD, GUIL_POST_CFG_GUILD_MAIL_FIELD, GUIL_POST_CFG_GUILD_APPOINTMENT_FIELD, GUIL_POST_CFG_GUILD_EXPEL_FIELD, GUIL_POST_CFG_GUILD_INVITATION_FIELD, GUIL_POST_CFG_GUILD_APPROVAL_FIELD, GUIL_POST_CFG_GUILD_TEAM_FIELD, GUIL_POST_CFG_GUILD_CALL_FIELD, GUIL_POST_CFG_GUILD_HOSTILE_FIELD, GUIL_POST_CFG_GUILD_TERRITORIAL_TRANSFER_FIELD, GUIL_POST_CFG_GUILD_FLAG_MODIFY_FIELD, GUIL_POST_CFG_GUILD_NAME_MODIFY_FIELD, GUIL_POST_CFG_GUILD_NOTICE_FIELD} +GUIL_POST_CFG.is_extendable = false +GUIL_POST_CFG.extensions = {} +GUIL_POST_CFGS_ITEMS_FIELD.name = "items" +GUIL_POST_CFGS_ITEMS_FIELD.full_name = ".ftcfg.guil_post_cfgs.items" +GUIL_POST_CFGS_ITEMS_FIELD.number = 1 +GUIL_POST_CFGS_ITEMS_FIELD.index = 0 +GUIL_POST_CFGS_ITEMS_FIELD.label = 3 +GUIL_POST_CFGS_ITEMS_FIELD.has_default_value = false +GUIL_POST_CFGS_ITEMS_FIELD.default_value = {} +GUIL_POST_CFGS_ITEMS_FIELD.message_type = GUIL_POST_CFG +GUIL_POST_CFGS_ITEMS_FIELD.type = 11 +GUIL_POST_CFGS_ITEMS_FIELD.cpp_type = 10 + +GUIL_POST_CFGS.name = "guil_post_cfgs" +GUIL_POST_CFGS.full_name = ".ftcfg.guil_post_cfgs" +GUIL_POST_CFGS.nested_types = {} +GUIL_POST_CFGS.enum_types = {} +GUIL_POST_CFGS.fields = {GUIL_POST_CFGS_ITEMS_FIELD} +GUIL_POST_CFGS.is_extendable = false +GUIL_POST_CFGS.extensions = {} +INNER_ALCHEMY_CFG_ID_FIELD.name = "id" +INNER_ALCHEMY_CFG_ID_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.id" +INNER_ALCHEMY_CFG_ID_FIELD.number = 1 +INNER_ALCHEMY_CFG_ID_FIELD.index = 0 +INNER_ALCHEMY_CFG_ID_FIELD.label = 2 +INNER_ALCHEMY_CFG_ID_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ID_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_ID_FIELD.type = 13 +INNER_ALCHEMY_CFG_ID_FIELD.cpp_type = 3 + +INNER_ALCHEMY_CFG_NAME_FIELD.name = "name" +INNER_ALCHEMY_CFG_NAME_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.name" +INNER_ALCHEMY_CFG_NAME_FIELD.number = 2 +INNER_ALCHEMY_CFG_NAME_FIELD.index = 1 +INNER_ALCHEMY_CFG_NAME_FIELD.label = 2 +INNER_ALCHEMY_CFG_NAME_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_NAME_FIELD.default_value = "" +INNER_ALCHEMY_CFG_NAME_FIELD.type = 9 +INNER_ALCHEMY_CFG_NAME_FIELD.cpp_type = 9 + +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.name = "activation_type" +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.activation_type" +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.number = 3 +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.index = 2 +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.label = 2 +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.type = 5 +INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_DESC_FIELD.name = "desc" +INNER_ALCHEMY_CFG_DESC_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.desc" +INNER_ALCHEMY_CFG_DESC_FIELD.number = 4 +INNER_ALCHEMY_CFG_DESC_FIELD.index = 3 +INNER_ALCHEMY_CFG_DESC_FIELD.label = 2 +INNER_ALCHEMY_CFG_DESC_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_DESC_FIELD.default_value = "" +INNER_ALCHEMY_CFG_DESC_FIELD.type = 9 +INNER_ALCHEMY_CFG_DESC_FIELD.cpp_type = 9 + +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.name = "item_icon" +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.item_icon" +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.number = 5 +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.index = 4 +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.label = 2 +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.type = 5 +INNER_ALCHEMY_CFG_ITEM_ICON_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_ICON_FIELD.name = "icon" +INNER_ALCHEMY_CFG_ICON_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.icon" +INNER_ALCHEMY_CFG_ICON_FIELD.number = 6 +INNER_ALCHEMY_CFG_ICON_FIELD.index = 5 +INNER_ALCHEMY_CFG_ICON_FIELD.label = 2 +INNER_ALCHEMY_CFG_ICON_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ICON_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_ICON_FIELD.type = 5 +INNER_ALCHEMY_CFG_ICON_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.name = "formula_icon" +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.formula_icon" +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.number = 7 +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.index = 6 +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.label = 2 +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.type = 5 +INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.name = "unlock_cost" +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.unlock_cost" +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.number = 8 +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.index = 7 +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.label = 2 +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.type = 5 +INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.name = "unlock_cost_num" +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.unlock_cost_num" +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.number = 9 +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.index = 8 +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.label = 2 +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.type = 5 +INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.name = "activation_cost" +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.activation_cost" +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.number = 10 +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.index = 9 +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.label = 2 +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.type = 5 +INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.name = "activation_cost_num" +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.activation_cost_num" +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.number = 11 +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.index = 10 +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.label = 2 +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.type = 5 +INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.name = "activation_resources_icon" +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.activation_resources_icon" +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.number = 12 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.index = 11 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.label = 3 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.default_value = {} +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.type = 5 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.name = "activation_resources_cost" +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.activation_resources_cost" +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.number = 13 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.index = 12 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.label = 3 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.default_value = {} +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.type = 5 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.name = "activation_resources_cost_num" +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.activation_resources_cost_num" +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.number = 14 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.index = 13 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.label = 3 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.default_value = {} +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.type = 5 +INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.name = "prop_effect1" +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.prop_effect1" +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.number = 15 +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.index = 14 +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.label = 2 +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.default_value = "" +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.type = 9 +INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD.cpp_type = 9 + +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.name = "prop_effect2" +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.prop_effect2" +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.number = 16 +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.index = 15 +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.label = 2 +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.default_value = "" +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.type = 9 +INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD.cpp_type = 9 + +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.name = "prop_effect3" +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.prop_effect3" +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.number = 17 +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.index = 16 +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.label = 2 +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.default_value = "" +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.type = 9 +INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD.cpp_type = 9 + +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.name = "occupation" +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.occupation" +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.number = 18 +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.index = 17 +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.label = 2 +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.default_value = 0 +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.type = 5 +INNER_ALCHEMY_CFG_OCCUPATION_FIELD.cpp_type = 1 + +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.name = "combat_point" +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.combat_point" +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.number = 19 +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.index = 18 +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.label = 2 +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.default_value = 0.0 +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.type = 2 +INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD.cpp_type = 6 + +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.name = "suit_combat_point" +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.full_name = ".ftcfg.inner_alchemy_cfg.suit_combat_point" +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.number = 20 +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.index = 19 +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.label = 2 +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.has_default_value = false +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.default_value = 0.0 +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.type = 2 +INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD.cpp_type = 6 + +INNER_ALCHEMY_CFG.name = "inner_alchemy_cfg" +INNER_ALCHEMY_CFG.full_name = ".ftcfg.inner_alchemy_cfg" +INNER_ALCHEMY_CFG.nested_types = {} +INNER_ALCHEMY_CFG.enum_types = {} +INNER_ALCHEMY_CFG.fields = {INNER_ALCHEMY_CFG_ID_FIELD, INNER_ALCHEMY_CFG_NAME_FIELD, INNER_ALCHEMY_CFG_ACTIVATION_TYPE_FIELD, INNER_ALCHEMY_CFG_DESC_FIELD, INNER_ALCHEMY_CFG_ITEM_ICON_FIELD, INNER_ALCHEMY_CFG_ICON_FIELD, INNER_ALCHEMY_CFG_FORMULA_ICON_FIELD, INNER_ALCHEMY_CFG_UNLOCK_COST_FIELD, INNER_ALCHEMY_CFG_UNLOCK_COST_NUM_FIELD, INNER_ALCHEMY_CFG_ACTIVATION_COST_FIELD, INNER_ALCHEMY_CFG_ACTIVATION_COST_NUM_FIELD, INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_ICON_FIELD, INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_FIELD, INNER_ALCHEMY_CFG_ACTIVATION_RESOURCES_COST_NUM_FIELD, INNER_ALCHEMY_CFG_PROP_EFFECT1_FIELD, INNER_ALCHEMY_CFG_PROP_EFFECT2_FIELD, INNER_ALCHEMY_CFG_PROP_EFFECT3_FIELD, INNER_ALCHEMY_CFG_OCCUPATION_FIELD, INNER_ALCHEMY_CFG_COMBAT_POINT_FIELD, INNER_ALCHEMY_CFG_SUIT_COMBAT_POINT_FIELD} +INNER_ALCHEMY_CFG.is_extendable = false +INNER_ALCHEMY_CFG.extensions = {} +INNER_ALCHEMY_CFGS_ITEMS_FIELD.name = "items" +INNER_ALCHEMY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.inner_alchemy_cfgs.items" +INNER_ALCHEMY_CFGS_ITEMS_FIELD.number = 1 +INNER_ALCHEMY_CFGS_ITEMS_FIELD.index = 0 +INNER_ALCHEMY_CFGS_ITEMS_FIELD.label = 3 +INNER_ALCHEMY_CFGS_ITEMS_FIELD.has_default_value = false +INNER_ALCHEMY_CFGS_ITEMS_FIELD.default_value = {} +INNER_ALCHEMY_CFGS_ITEMS_FIELD.message_type = INNER_ALCHEMY_CFG +INNER_ALCHEMY_CFGS_ITEMS_FIELD.type = 11 +INNER_ALCHEMY_CFGS_ITEMS_FIELD.cpp_type = 10 + +INNER_ALCHEMY_CFGS.name = "inner_alchemy_cfgs" +INNER_ALCHEMY_CFGS.full_name = ".ftcfg.inner_alchemy_cfgs" +INNER_ALCHEMY_CFGS.nested_types = {} +INNER_ALCHEMY_CFGS.enum_types = {} +INNER_ALCHEMY_CFGS.fields = {INNER_ALCHEMY_CFGS_ITEMS_FIELD} +INNER_ALCHEMY_CFGS.is_extendable = false +INNER_ALCHEMY_CFGS.extensions = {} +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.name = "id" +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.full_name = ".ftcfg.inner_alchemy_group_cfg.id" +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.number = 1 +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.index = 0 +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.label = 2 +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.has_default_value = false +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.default_value = 0 +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.type = 13 +INNER_ALCHEMY_GROUP_CFG_ID_FIELD.cpp_type = 3 + +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.name = "inner_alchemy_group" +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.full_name = ".ftcfg.inner_alchemy_group_cfg.inner_alchemy_group" +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.number = 2 +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.index = 1 +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.label = 3 +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.has_default_value = false +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.default_value = {} +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.type = 5 +INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD.cpp_type = 1 + +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.name = "desc" +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.full_name = ".ftcfg.inner_alchemy_group_cfg.desc" +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.number = 3 +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.index = 2 +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.label = 2 +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.has_default_value = false +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.default_value = "" +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.type = 9 +INNER_ALCHEMY_GROUP_CFG_DESC_FIELD.cpp_type = 9 + +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.name = "group_effect" +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.full_name = ".ftcfg.inner_alchemy_group_cfg.group_effect" +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.number = 4 +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.index = 3 +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.label = 2 +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.has_default_value = false +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.default_value = 0 +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.type = 5 +INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD.cpp_type = 1 + +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.name = "skill_id_index" +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.full_name = ".ftcfg.inner_alchemy_group_cfg.skill_id_index" +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.number = 5 +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.index = 4 +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.label = 2 +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.has_default_value = false +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.default_value = 0 +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.type = 5 +INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD.cpp_type = 1 + +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.name = "skill_array" +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.full_name = ".ftcfg.inner_alchemy_group_cfg.skill_array" +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.number = 6 +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.index = 5 +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.label = 3 +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.has_default_value = false +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.default_value = {} +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.type = 5 +INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD.cpp_type = 1 + +INNER_ALCHEMY_GROUP_CFG.name = "inner_alchemy_group_cfg" +INNER_ALCHEMY_GROUP_CFG.full_name = ".ftcfg.inner_alchemy_group_cfg" +INNER_ALCHEMY_GROUP_CFG.nested_types = {} +INNER_ALCHEMY_GROUP_CFG.enum_types = {} +INNER_ALCHEMY_GROUP_CFG.fields = {INNER_ALCHEMY_GROUP_CFG_ID_FIELD, INNER_ALCHEMY_GROUP_CFG_INNER_ALCHEMY_GROUP_FIELD, INNER_ALCHEMY_GROUP_CFG_DESC_FIELD, INNER_ALCHEMY_GROUP_CFG_GROUP_EFFECT_FIELD, INNER_ALCHEMY_GROUP_CFG_SKILL_ID_INDEX_FIELD, INNER_ALCHEMY_GROUP_CFG_SKILL_ARRAY_FIELD} +INNER_ALCHEMY_GROUP_CFG.is_extendable = false +INNER_ALCHEMY_GROUP_CFG.extensions = {} +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.name = "items" +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.inner_alchemy_group_cfgs.items" +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.number = 1 +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.index = 0 +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.label = 3 +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.has_default_value = false +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.default_value = {} +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.message_type = INNER_ALCHEMY_GROUP_CFG +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.type = 11 +INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +INNER_ALCHEMY_GROUP_CFGS.name = "inner_alchemy_group_cfgs" +INNER_ALCHEMY_GROUP_CFGS.full_name = ".ftcfg.inner_alchemy_group_cfgs" +INNER_ALCHEMY_GROUP_CFGS.nested_types = {} +INNER_ALCHEMY_GROUP_CFGS.enum_types = {} +INNER_ALCHEMY_GROUP_CFGS.fields = {INNER_ALCHEMY_GROUP_CFGS_ITEMS_FIELD} +INNER_ALCHEMY_GROUP_CFGS.is_extendable = false +INNER_ALCHEMY_GROUP_CFGS.extensions = {} +MEDAL_GROUP_CFG_ID_FIELD.name = "id" +MEDAL_GROUP_CFG_ID_FIELD.full_name = ".ftcfg.medal_group_cfg.id" +MEDAL_GROUP_CFG_ID_FIELD.number = 1 +MEDAL_GROUP_CFG_ID_FIELD.index = 0 +MEDAL_GROUP_CFG_ID_FIELD.label = 2 +MEDAL_GROUP_CFG_ID_FIELD.has_default_value = false +MEDAL_GROUP_CFG_ID_FIELD.default_value = 0 +MEDAL_GROUP_CFG_ID_FIELD.type = 13 +MEDAL_GROUP_CFG_ID_FIELD.cpp_type = 3 + +MEDAL_GROUP_CFG_STARLEVEL_FIELD.name = "starLevel" +MEDAL_GROUP_CFG_STARLEVEL_FIELD.full_name = ".ftcfg.medal_group_cfg.starLevel" +MEDAL_GROUP_CFG_STARLEVEL_FIELD.number = 2 +MEDAL_GROUP_CFG_STARLEVEL_FIELD.index = 1 +MEDAL_GROUP_CFG_STARLEVEL_FIELD.label = 2 +MEDAL_GROUP_CFG_STARLEVEL_FIELD.has_default_value = false +MEDAL_GROUP_CFG_STARLEVEL_FIELD.default_value = 0 +MEDAL_GROUP_CFG_STARLEVEL_FIELD.type = 5 +MEDAL_GROUP_CFG_STARLEVEL_FIELD.cpp_type = 1 + +MEDAL_GROUP_CFG_TYPE_FIELD.name = "type" +MEDAL_GROUP_CFG_TYPE_FIELD.full_name = ".ftcfg.medal_group_cfg.type" +MEDAL_GROUP_CFG_TYPE_FIELD.number = 3 +MEDAL_GROUP_CFG_TYPE_FIELD.index = 2 +MEDAL_GROUP_CFG_TYPE_FIELD.label = 2 +MEDAL_GROUP_CFG_TYPE_FIELD.has_default_value = false +MEDAL_GROUP_CFG_TYPE_FIELD.default_value = 0 +MEDAL_GROUP_CFG_TYPE_FIELD.type = 5 +MEDAL_GROUP_CFG_TYPE_FIELD.cpp_type = 1 + +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.name = "group_name" +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.full_name = ".ftcfg.medal_group_cfg.group_name" +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.number = 4 +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.index = 3 +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.label = 2 +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.has_default_value = false +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.default_value = 0 +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.type = 5 +MEDAL_GROUP_CFG_GROUP_NAME_FIELD.cpp_type = 1 + +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.name = "member_id" +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.full_name = ".ftcfg.medal_group_cfg.member_id" +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.number = 5 +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.index = 4 +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.label = 3 +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.has_default_value = false +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.default_value = {} +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.type = 13 +MEDAL_GROUP_CFG_MEMBER_ID_FIELD.cpp_type = 3 + +MEDAL_GROUP_CFG_DESC_FIELD.name = "desc" +MEDAL_GROUP_CFG_DESC_FIELD.full_name = ".ftcfg.medal_group_cfg.desc" +MEDAL_GROUP_CFG_DESC_FIELD.number = 6 +MEDAL_GROUP_CFG_DESC_FIELD.index = 5 +MEDAL_GROUP_CFG_DESC_FIELD.label = 2 +MEDAL_GROUP_CFG_DESC_FIELD.has_default_value = false +MEDAL_GROUP_CFG_DESC_FIELD.default_value = 0 +MEDAL_GROUP_CFG_DESC_FIELD.type = 5 +MEDAL_GROUP_CFG_DESC_FIELD.cpp_type = 1 + +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.name = "activation_attribute1" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.full_name = ".ftcfg.medal_group_cfg.activation_attribute1" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.number = 7 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.index = 6 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.label = 2 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.has_default_value = false +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.default_value = "" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.type = 9 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD.cpp_type = 9 + +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.name = "activation_attribute2" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.full_name = ".ftcfg.medal_group_cfg.activation_attribute2" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.number = 8 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.index = 7 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.label = 2 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.has_default_value = false +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.default_value = "" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.type = 9 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD.cpp_type = 9 + +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.name = "activation_attribute3" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.full_name = ".ftcfg.medal_group_cfg.activation_attribute3" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.number = 9 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.index = 8 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.label = 2 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.has_default_value = false +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.default_value = "" +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.type = 9 +MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD.cpp_type = 9 + +MEDAL_GROUP_CFG.name = "medal_group_cfg" +MEDAL_GROUP_CFG.full_name = ".ftcfg.medal_group_cfg" +MEDAL_GROUP_CFG.nested_types = {} +MEDAL_GROUP_CFG.enum_types = {} +MEDAL_GROUP_CFG.fields = {MEDAL_GROUP_CFG_ID_FIELD, MEDAL_GROUP_CFG_STARLEVEL_FIELD, MEDAL_GROUP_CFG_TYPE_FIELD, MEDAL_GROUP_CFG_GROUP_NAME_FIELD, MEDAL_GROUP_CFG_MEMBER_ID_FIELD, MEDAL_GROUP_CFG_DESC_FIELD, MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE1_FIELD, MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE2_FIELD, MEDAL_GROUP_CFG_ACTIVATION_ATTRIBUTE3_FIELD} +MEDAL_GROUP_CFG.is_extendable = false +MEDAL_GROUP_CFG.extensions = {} +MEDAL_GROUP_CFGS_ITEMS_FIELD.name = "items" +MEDAL_GROUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.medal_group_cfgs.items" +MEDAL_GROUP_CFGS_ITEMS_FIELD.number = 1 +MEDAL_GROUP_CFGS_ITEMS_FIELD.index = 0 +MEDAL_GROUP_CFGS_ITEMS_FIELD.label = 3 +MEDAL_GROUP_CFGS_ITEMS_FIELD.has_default_value = false +MEDAL_GROUP_CFGS_ITEMS_FIELD.default_value = {} +MEDAL_GROUP_CFGS_ITEMS_FIELD.message_type = MEDAL_GROUP_CFG +MEDAL_GROUP_CFGS_ITEMS_FIELD.type = 11 +MEDAL_GROUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +MEDAL_GROUP_CFGS.name = "medal_group_cfgs" +MEDAL_GROUP_CFGS.full_name = ".ftcfg.medal_group_cfgs" +MEDAL_GROUP_CFGS.nested_types = {} +MEDAL_GROUP_CFGS.enum_types = {} +MEDAL_GROUP_CFGS.fields = {MEDAL_GROUP_CFGS_ITEMS_FIELD} +MEDAL_GROUP_CFGS.is_extendable = false +MEDAL_GROUP_CFGS.extensions = {} +MEDAL_BASE_CFG_ID_FIELD.name = "id" +MEDAL_BASE_CFG_ID_FIELD.full_name = ".ftcfg.medal_base_cfg.id" +MEDAL_BASE_CFG_ID_FIELD.number = 1 +MEDAL_BASE_CFG_ID_FIELD.index = 0 +MEDAL_BASE_CFG_ID_FIELD.label = 2 +MEDAL_BASE_CFG_ID_FIELD.has_default_value = false +MEDAL_BASE_CFG_ID_FIELD.default_value = 0 +MEDAL_BASE_CFG_ID_FIELD.type = 13 +MEDAL_BASE_CFG_ID_FIELD.cpp_type = 3 + +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.name = "medal_name" +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.full_name = ".ftcfg.medal_base_cfg.medal_name" +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.number = 2 +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.index = 1 +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.label = 2 +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.has_default_value = false +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.default_value = 0 +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.type = 5 +MEDAL_BASE_CFG_MEDAL_NAME_FIELD.cpp_type = 1 + +MEDAL_BASE_CFG_ICON_FIELD.name = "icon" +MEDAL_BASE_CFG_ICON_FIELD.full_name = ".ftcfg.medal_base_cfg.icon" +MEDAL_BASE_CFG_ICON_FIELD.number = 3 +MEDAL_BASE_CFG_ICON_FIELD.index = 2 +MEDAL_BASE_CFG_ICON_FIELD.label = 2 +MEDAL_BASE_CFG_ICON_FIELD.has_default_value = false +MEDAL_BASE_CFG_ICON_FIELD.default_value = 0 +MEDAL_BASE_CFG_ICON_FIELD.type = 5 +MEDAL_BASE_CFG_ICON_FIELD.cpp_type = 1 + +MEDAL_BASE_CFG_TYPE_FIELD.name = "type" +MEDAL_BASE_CFG_TYPE_FIELD.full_name = ".ftcfg.medal_base_cfg.type" +MEDAL_BASE_CFG_TYPE_FIELD.number = 4 +MEDAL_BASE_CFG_TYPE_FIELD.index = 3 +MEDAL_BASE_CFG_TYPE_FIELD.label = 2 +MEDAL_BASE_CFG_TYPE_FIELD.has_default_value = false +MEDAL_BASE_CFG_TYPE_FIELD.default_value = 0 +MEDAL_BASE_CFG_TYPE_FIELD.type = 5 +MEDAL_BASE_CFG_TYPE_FIELD.cpp_type = 1 + +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.name = "change_need_propnum" +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.full_name = ".ftcfg.medal_base_cfg.change_need_propnum" +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.number = 5 +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.index = 4 +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.label = 2 +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.has_default_value = false +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.default_value = 0 +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.type = 5 +MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD.cpp_type = 1 + +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.name = "disassemble_get_propnum" +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.full_name = ".ftcfg.medal_base_cfg.disassemble_get_propnum" +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.number = 6 +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.index = 5 +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.label = 2 +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.has_default_value = false +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.default_value = 0 +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.type = 5 +MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD.cpp_type = 1 + +MEDAL_BASE_CFG.name = "medal_base_cfg" +MEDAL_BASE_CFG.full_name = ".ftcfg.medal_base_cfg" +MEDAL_BASE_CFG.nested_types = {} +MEDAL_BASE_CFG.enum_types = {} +MEDAL_BASE_CFG.fields = {MEDAL_BASE_CFG_ID_FIELD, MEDAL_BASE_CFG_MEDAL_NAME_FIELD, MEDAL_BASE_CFG_ICON_FIELD, MEDAL_BASE_CFG_TYPE_FIELD, MEDAL_BASE_CFG_CHANGE_NEED_PROPNUM_FIELD, MEDAL_BASE_CFG_DISASSEMBLE_GET_PROPNUM_FIELD} +MEDAL_BASE_CFG.is_extendable = false +MEDAL_BASE_CFG.extensions = {} +MEDAL_BASE_CFGS_ITEMS_FIELD.name = "items" +MEDAL_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.medal_base_cfgs.items" +MEDAL_BASE_CFGS_ITEMS_FIELD.number = 1 +MEDAL_BASE_CFGS_ITEMS_FIELD.index = 0 +MEDAL_BASE_CFGS_ITEMS_FIELD.label = 3 +MEDAL_BASE_CFGS_ITEMS_FIELD.has_default_value = false +MEDAL_BASE_CFGS_ITEMS_FIELD.default_value = {} +MEDAL_BASE_CFGS_ITEMS_FIELD.message_type = MEDAL_BASE_CFG +MEDAL_BASE_CFGS_ITEMS_FIELD.type = 11 +MEDAL_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +MEDAL_BASE_CFGS.name = "medal_base_cfgs" +MEDAL_BASE_CFGS.full_name = ".ftcfg.medal_base_cfgs" +MEDAL_BASE_CFGS.nested_types = {} +MEDAL_BASE_CFGS.enum_types = {} +MEDAL_BASE_CFGS.fields = {MEDAL_BASE_CFGS_ITEMS_FIELD} +MEDAL_BASE_CFGS.is_extendable = false +MEDAL_BASE_CFGS.extensions = {} +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.name = "id" +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.full_name = ".ftcfg.medal_composite_addition_cfg.id" +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.number = 1 +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.index = 0 +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.label = 2 +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.default_value = 0 +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.type = 13 +MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD.cpp_type = 3 + +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.name = "starLevel" +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.full_name = ".ftcfg.medal_composite_addition_cfg.starLevel" +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.number = 2 +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.index = 1 +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.label = 2 +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.default_value = 0 +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.type = 5 +MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD.cpp_type = 1 + +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.name = "type" +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.full_name = ".ftcfg.medal_composite_addition_cfg.type" +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.number = 3 +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.index = 2 +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.label = 2 +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.default_value = 0 +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.type = 5 +MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD.cpp_type = 1 + +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.name = "need_group_num" +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.full_name = ".ftcfg.medal_composite_addition_cfg.need_group_num" +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.number = 4 +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.index = 3 +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.label = 2 +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.default_value = 0 +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.type = 5 +MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD.cpp_type = 1 + +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.name = "activation_attribute1" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.full_name = ".ftcfg.medal_composite_addition_cfg.activation_attribute1" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.number = 5 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.index = 4 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.label = 2 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.default_value = "" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.type = 9 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD.cpp_type = 9 + +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.name = "activation_attribute2" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.full_name = ".ftcfg.medal_composite_addition_cfg.activation_attribute2" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.number = 6 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.index = 5 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.label = 2 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.default_value = "" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.type = 9 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD.cpp_type = 9 + +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.name = "activation_attribute3" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.full_name = ".ftcfg.medal_composite_addition_cfg.activation_attribute3" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.number = 7 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.index = 6 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.label = 2 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.default_value = "" +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.type = 9 +MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD.cpp_type = 9 + +MEDAL_COMPOSITE_ADDITION_CFG.name = "medal_composite_addition_cfg" +MEDAL_COMPOSITE_ADDITION_CFG.full_name = ".ftcfg.medal_composite_addition_cfg" +MEDAL_COMPOSITE_ADDITION_CFG.nested_types = {} +MEDAL_COMPOSITE_ADDITION_CFG.enum_types = {} +MEDAL_COMPOSITE_ADDITION_CFG.fields = {MEDAL_COMPOSITE_ADDITION_CFG_ID_FIELD, MEDAL_COMPOSITE_ADDITION_CFG_STARLEVEL_FIELD, MEDAL_COMPOSITE_ADDITION_CFG_TYPE_FIELD, MEDAL_COMPOSITE_ADDITION_CFG_NEED_GROUP_NUM_FIELD, MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE1_FIELD, MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE2_FIELD, MEDAL_COMPOSITE_ADDITION_CFG_ACTIVATION_ATTRIBUTE3_FIELD} +MEDAL_COMPOSITE_ADDITION_CFG.is_extendable = false +MEDAL_COMPOSITE_ADDITION_CFG.extensions = {} +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.name = "items" +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.medal_composite_addition_cfgs.items" +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.number = 1 +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.index = 0 +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.label = 3 +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.has_default_value = false +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.default_value = {} +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.message_type = MEDAL_COMPOSITE_ADDITION_CFG +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.type = 11 +MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD.cpp_type = 10 + +MEDAL_COMPOSITE_ADDITION_CFGS.name = "medal_composite_addition_cfgs" +MEDAL_COMPOSITE_ADDITION_CFGS.full_name = ".ftcfg.medal_composite_addition_cfgs" +MEDAL_COMPOSITE_ADDITION_CFGS.nested_types = {} +MEDAL_COMPOSITE_ADDITION_CFGS.enum_types = {} +MEDAL_COMPOSITE_ADDITION_CFGS.fields = {MEDAL_COMPOSITE_ADDITION_CFGS_ITEMS_FIELD} +MEDAL_COMPOSITE_ADDITION_CFGS.is_extendable = false +MEDAL_COMPOSITE_ADDITION_CFGS.extensions = {} +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.name = "type" +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.full_name = ".ftcfg.medal_open_level_cfg.type" +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.number = 1 +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.index = 0 +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.label = 2 +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.has_default_value = false +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.default_value = 0 +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.type = 5 +MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD.cpp_type = 1 + +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.name = "level" +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.full_name = ".ftcfg.medal_open_level_cfg.level" +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.number = 2 +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.index = 1 +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.label = 2 +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.has_default_value = false +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.default_value = 0 +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.type = 5 +MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD.cpp_type = 1 + +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.name = "name" +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.full_name = ".ftcfg.medal_open_level_cfg.name" +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.number = 3 +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.index = 2 +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.label = 2 +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.has_default_value = false +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.default_value = 0 +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.type = 5 +MEDAL_OPEN_LEVEL_CFG_NAME_FIELD.cpp_type = 1 + +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.name = "desc" +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.full_name = ".ftcfg.medal_open_level_cfg.desc" +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.number = 4 +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.index = 3 +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.label = 2 +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.has_default_value = false +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.default_value = 0 +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.type = 5 +MEDAL_OPEN_LEVEL_CFG_DESC_FIELD.cpp_type = 1 + +MEDAL_OPEN_LEVEL_CFG.name = "medal_open_level_cfg" +MEDAL_OPEN_LEVEL_CFG.full_name = ".ftcfg.medal_open_level_cfg" +MEDAL_OPEN_LEVEL_CFG.nested_types = {} +MEDAL_OPEN_LEVEL_CFG.enum_types = {} +MEDAL_OPEN_LEVEL_CFG.fields = {MEDAL_OPEN_LEVEL_CFG_TYPE_FIELD, MEDAL_OPEN_LEVEL_CFG_LEVEL_FIELD, MEDAL_OPEN_LEVEL_CFG_NAME_FIELD, MEDAL_OPEN_LEVEL_CFG_DESC_FIELD} +MEDAL_OPEN_LEVEL_CFG.is_extendable = false +MEDAL_OPEN_LEVEL_CFG.extensions = {} +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.name = "items" +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.medal_open_level_cfgs.items" +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.number = 1 +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.index = 0 +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.label = 3 +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.has_default_value = false +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.default_value = {} +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.message_type = MEDAL_OPEN_LEVEL_CFG +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.type = 11 +MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD.cpp_type = 10 + +MEDAL_OPEN_LEVEL_CFGS.name = "medal_open_level_cfgs" +MEDAL_OPEN_LEVEL_CFGS.full_name = ".ftcfg.medal_open_level_cfgs" +MEDAL_OPEN_LEVEL_CFGS.nested_types = {} +MEDAL_OPEN_LEVEL_CFGS.enum_types = {} +MEDAL_OPEN_LEVEL_CFGS.fields = {MEDAL_OPEN_LEVEL_CFGS_ITEMS_FIELD} +MEDAL_OPEN_LEVEL_CFGS.is_extendable = false +MEDAL_OPEN_LEVEL_CFGS.extensions = {} +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.name = "starlevel" +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.full_name = ".ftcfg.medal_star_open_level_cfg.starlevel" +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.number = 1 +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.index = 0 +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.label = 2 +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.has_default_value = false +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.default_value = 0 +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.type = 5 +MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD.cpp_type = 1 + +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.name = "level" +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.full_name = ".ftcfg.medal_star_open_level_cfg.level" +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.number = 2 +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.index = 1 +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.label = 2 +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.has_default_value = false +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.default_value = 0 +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.type = 5 +MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD.cpp_type = 1 + +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.name = "num" +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.full_name = ".ftcfg.medal_star_open_level_cfg.num" +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.number = 3 +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.index = 2 +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.label = 2 +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.has_default_value = false +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.default_value = 0 +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.type = 5 +MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD.cpp_type = 1 + +MEDAL_STAR_OPEN_LEVEL_CFG.name = "medal_star_open_level_cfg" +MEDAL_STAR_OPEN_LEVEL_CFG.full_name = ".ftcfg.medal_star_open_level_cfg" +MEDAL_STAR_OPEN_LEVEL_CFG.nested_types = {} +MEDAL_STAR_OPEN_LEVEL_CFG.enum_types = {} +MEDAL_STAR_OPEN_LEVEL_CFG.fields = {MEDAL_STAR_OPEN_LEVEL_CFG_STARLEVEL_FIELD, MEDAL_STAR_OPEN_LEVEL_CFG_LEVEL_FIELD, MEDAL_STAR_OPEN_LEVEL_CFG_NUM_FIELD} +MEDAL_STAR_OPEN_LEVEL_CFG.is_extendable = false +MEDAL_STAR_OPEN_LEVEL_CFG.extensions = {} +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.name = "items" +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.medal_star_open_level_cfgs.items" +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.number = 1 +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.index = 0 +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.label = 3 +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.has_default_value = false +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.default_value = {} +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.message_type = MEDAL_STAR_OPEN_LEVEL_CFG +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.type = 11 +MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD.cpp_type = 10 + +MEDAL_STAR_OPEN_LEVEL_CFGS.name = "medal_star_open_level_cfgs" +MEDAL_STAR_OPEN_LEVEL_CFGS.full_name = ".ftcfg.medal_star_open_level_cfgs" +MEDAL_STAR_OPEN_LEVEL_CFGS.nested_types = {} +MEDAL_STAR_OPEN_LEVEL_CFGS.enum_types = {} +MEDAL_STAR_OPEN_LEVEL_CFGS.fields = {MEDAL_STAR_OPEN_LEVEL_CFGS_ITEMS_FIELD} +MEDAL_STAR_OPEN_LEVEL_CFGS.is_extendable = false +MEDAL_STAR_OPEN_LEVEL_CFGS.extensions = {} +FORMULA_CFG_FORMULA_ID_FIELD.name = "formula_id" +FORMULA_CFG_FORMULA_ID_FIELD.full_name = ".ftcfg.formula_cfg.formula_id" +FORMULA_CFG_FORMULA_ID_FIELD.number = 1 +FORMULA_CFG_FORMULA_ID_FIELD.index = 0 +FORMULA_CFG_FORMULA_ID_FIELD.label = 2 +FORMULA_CFG_FORMULA_ID_FIELD.has_default_value = false +FORMULA_CFG_FORMULA_ID_FIELD.default_value = 0 +FORMULA_CFG_FORMULA_ID_FIELD.type = 5 +FORMULA_CFG_FORMULA_ID_FIELD.cpp_type = 1 + +FORMULA_CFG_COST_IDS_FIELD.name = "cost_ids" +FORMULA_CFG_COST_IDS_FIELD.full_name = ".ftcfg.formula_cfg.cost_ids" +FORMULA_CFG_COST_IDS_FIELD.number = 2 +FORMULA_CFG_COST_IDS_FIELD.index = 1 +FORMULA_CFG_COST_IDS_FIELD.label = 3 +FORMULA_CFG_COST_IDS_FIELD.has_default_value = false +FORMULA_CFG_COST_IDS_FIELD.default_value = {} +FORMULA_CFG_COST_IDS_FIELD.type = 5 +FORMULA_CFG_COST_IDS_FIELD.cpp_type = 1 + +FORMULA_CFG_COST_COUNTS_FIELD.name = "cost_counts" +FORMULA_CFG_COST_COUNTS_FIELD.full_name = ".ftcfg.formula_cfg.cost_counts" +FORMULA_CFG_COST_COUNTS_FIELD.number = 3 +FORMULA_CFG_COST_COUNTS_FIELD.index = 2 +FORMULA_CFG_COST_COUNTS_FIELD.label = 3 +FORMULA_CFG_COST_COUNTS_FIELD.has_default_value = false +FORMULA_CFG_COST_COUNTS_FIELD.default_value = {} +FORMULA_CFG_COST_COUNTS_FIELD.type = 5 +FORMULA_CFG_COST_COUNTS_FIELD.cpp_type = 1 + +FORMULA_CFG_ITEM_IDS_FIELD.name = "item_ids" +FORMULA_CFG_ITEM_IDS_FIELD.full_name = ".ftcfg.formula_cfg.item_ids" +FORMULA_CFG_ITEM_IDS_FIELD.number = 4 +FORMULA_CFG_ITEM_IDS_FIELD.index = 3 +FORMULA_CFG_ITEM_IDS_FIELD.label = 3 +FORMULA_CFG_ITEM_IDS_FIELD.has_default_value = false +FORMULA_CFG_ITEM_IDS_FIELD.default_value = {} +FORMULA_CFG_ITEM_IDS_FIELD.type = 5 +FORMULA_CFG_ITEM_IDS_FIELD.cpp_type = 1 + +FORMULA_CFG_ITEM_COUNTS_FIELD.name = "item_counts" +FORMULA_CFG_ITEM_COUNTS_FIELD.full_name = ".ftcfg.formula_cfg.item_counts" +FORMULA_CFG_ITEM_COUNTS_FIELD.number = 5 +FORMULA_CFG_ITEM_COUNTS_FIELD.index = 4 +FORMULA_CFG_ITEM_COUNTS_FIELD.label = 3 +FORMULA_CFG_ITEM_COUNTS_FIELD.has_default_value = false +FORMULA_CFG_ITEM_COUNTS_FIELD.default_value = {} +FORMULA_CFG_ITEM_COUNTS_FIELD.type = 5 +FORMULA_CFG_ITEM_COUNTS_FIELD.cpp_type = 1 + +FORMULA_CFG.name = "formula_cfg" +FORMULA_CFG.full_name = ".ftcfg.formula_cfg" +FORMULA_CFG.nested_types = {} +FORMULA_CFG.enum_types = {} +FORMULA_CFG.fields = {FORMULA_CFG_FORMULA_ID_FIELD, FORMULA_CFG_COST_IDS_FIELD, FORMULA_CFG_COST_COUNTS_FIELD, FORMULA_CFG_ITEM_IDS_FIELD, FORMULA_CFG_ITEM_COUNTS_FIELD} +FORMULA_CFG.is_extendable = false +FORMULA_CFG.extensions = {} +FORMULA_CFGS_ITEMS_FIELD.name = "items" +FORMULA_CFGS_ITEMS_FIELD.full_name = ".ftcfg.formula_cfgs.items" +FORMULA_CFGS_ITEMS_FIELD.number = 1 +FORMULA_CFGS_ITEMS_FIELD.index = 0 +FORMULA_CFGS_ITEMS_FIELD.label = 3 +FORMULA_CFGS_ITEMS_FIELD.has_default_value = false +FORMULA_CFGS_ITEMS_FIELD.default_value = {} +FORMULA_CFGS_ITEMS_FIELD.message_type = FORMULA_CFG +FORMULA_CFGS_ITEMS_FIELD.type = 11 +FORMULA_CFGS_ITEMS_FIELD.cpp_type = 10 + +FORMULA_CFGS.name = "formula_cfgs" +FORMULA_CFGS.full_name = ".ftcfg.formula_cfgs" +FORMULA_CFGS.nested_types = {} +FORMULA_CFGS.enum_types = {} +FORMULA_CFGS.fields = {FORMULA_CFGS_ITEMS_FIELD} +FORMULA_CFGS.is_extendable = false +FORMULA_CFGS.extensions = {} +MALL_ITEM_CFG_GUID_FIELD.name = "guid" +MALL_ITEM_CFG_GUID_FIELD.full_name = ".ftcfg.mall_item_cfg.guid" +MALL_ITEM_CFG_GUID_FIELD.number = 1 +MALL_ITEM_CFG_GUID_FIELD.index = 0 +MALL_ITEM_CFG_GUID_FIELD.label = 2 +MALL_ITEM_CFG_GUID_FIELD.has_default_value = false +MALL_ITEM_CFG_GUID_FIELD.default_value = 0 +MALL_ITEM_CFG_GUID_FIELD.type = 13 +MALL_ITEM_CFG_GUID_FIELD.cpp_type = 3 + +MALL_ITEM_CFG_TYPE_FIELD.name = "type" +MALL_ITEM_CFG_TYPE_FIELD.full_name = ".ftcfg.mall_item_cfg.type" +MALL_ITEM_CFG_TYPE_FIELD.number = 2 +MALL_ITEM_CFG_TYPE_FIELD.index = 1 +MALL_ITEM_CFG_TYPE_FIELD.label = 2 +MALL_ITEM_CFG_TYPE_FIELD.has_default_value = false +MALL_ITEM_CFG_TYPE_FIELD.default_value = 0 +MALL_ITEM_CFG_TYPE_FIELD.type = 13 +MALL_ITEM_CFG_TYPE_FIELD.cpp_type = 3 + +MALL_ITEM_CFG_REAL_GUID_FIELD.name = "real_guid" +MALL_ITEM_CFG_REAL_GUID_FIELD.full_name = ".ftcfg.mall_item_cfg.real_guid" +MALL_ITEM_CFG_REAL_GUID_FIELD.number = 3 +MALL_ITEM_CFG_REAL_GUID_FIELD.index = 2 +MALL_ITEM_CFG_REAL_GUID_FIELD.label = 2 +MALL_ITEM_CFG_REAL_GUID_FIELD.has_default_value = false +MALL_ITEM_CFG_REAL_GUID_FIELD.default_value = 0 +MALL_ITEM_CFG_REAL_GUID_FIELD.type = 13 +MALL_ITEM_CFG_REAL_GUID_FIELD.cpp_type = 3 + +MALL_ITEM_CFG_COST_TYPE_FIELD.name = "cost_type" +MALL_ITEM_CFG_COST_TYPE_FIELD.full_name = ".ftcfg.mall_item_cfg.cost_type" +MALL_ITEM_CFG_COST_TYPE_FIELD.number = 4 +MALL_ITEM_CFG_COST_TYPE_FIELD.index = 3 +MALL_ITEM_CFG_COST_TYPE_FIELD.label = 2 +MALL_ITEM_CFG_COST_TYPE_FIELD.has_default_value = false +MALL_ITEM_CFG_COST_TYPE_FIELD.default_value = 0 +MALL_ITEM_CFG_COST_TYPE_FIELD.type = 13 +MALL_ITEM_CFG_COST_TYPE_FIELD.cpp_type = 3 + +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.name = "cost_original" +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.full_name = ".ftcfg.mall_item_cfg.cost_original" +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.number = 5 +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.index = 4 +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.label = 2 +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.has_default_value = false +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.default_value = 0 +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.type = 13 +MALL_ITEM_CFG_COST_ORIGINAL_FIELD.cpp_type = 3 + +MALL_ITEM_CFG_COST_CURRENT_FIELD.name = "cost_current" +MALL_ITEM_CFG_COST_CURRENT_FIELD.full_name = ".ftcfg.mall_item_cfg.cost_current" +MALL_ITEM_CFG_COST_CURRENT_FIELD.number = 6 +MALL_ITEM_CFG_COST_CURRENT_FIELD.index = 5 +MALL_ITEM_CFG_COST_CURRENT_FIELD.label = 2 +MALL_ITEM_CFG_COST_CURRENT_FIELD.has_default_value = false +MALL_ITEM_CFG_COST_CURRENT_FIELD.default_value = 0 +MALL_ITEM_CFG_COST_CURRENT_FIELD.type = 13 +MALL_ITEM_CFG_COST_CURRENT_FIELD.cpp_type = 3 + +MALL_ITEM_CFG.name = "mall_item_cfg" +MALL_ITEM_CFG.full_name = ".ftcfg.mall_item_cfg" +MALL_ITEM_CFG.nested_types = {} +MALL_ITEM_CFG.enum_types = {} +MALL_ITEM_CFG.fields = {MALL_ITEM_CFG_GUID_FIELD, MALL_ITEM_CFG_TYPE_FIELD, MALL_ITEM_CFG_REAL_GUID_FIELD, MALL_ITEM_CFG_COST_TYPE_FIELD, MALL_ITEM_CFG_COST_ORIGINAL_FIELD, MALL_ITEM_CFG_COST_CURRENT_FIELD} +MALL_ITEM_CFG.is_extendable = false +MALL_ITEM_CFG.extensions = {} +MALL_ITEM_CFGS_ITEMS_FIELD.name = "items" +MALL_ITEM_CFGS_ITEMS_FIELD.full_name = ".ftcfg.mall_item_cfgs.items" +MALL_ITEM_CFGS_ITEMS_FIELD.number = 1 +MALL_ITEM_CFGS_ITEMS_FIELD.index = 0 +MALL_ITEM_CFGS_ITEMS_FIELD.label = 3 +MALL_ITEM_CFGS_ITEMS_FIELD.has_default_value = false +MALL_ITEM_CFGS_ITEMS_FIELD.default_value = {} +MALL_ITEM_CFGS_ITEMS_FIELD.message_type = MALL_ITEM_CFG +MALL_ITEM_CFGS_ITEMS_FIELD.type = 11 +MALL_ITEM_CFGS_ITEMS_FIELD.cpp_type = 10 + +MALL_ITEM_CFGS.name = "mall_item_cfgs" +MALL_ITEM_CFGS.full_name = ".ftcfg.mall_item_cfgs" +MALL_ITEM_CFGS.nested_types = {} +MALL_ITEM_CFGS.enum_types = {} +MALL_ITEM_CFGS.fields = {MALL_ITEM_CFGS_ITEMS_FIELD} +MALL_ITEM_CFGS.is_extendable = false +MALL_ITEM_CFGS.extensions = {} +SHOP_TYPE_CFG_ID_FIELD.name = "id" +SHOP_TYPE_CFG_ID_FIELD.full_name = ".ftcfg.shop_type_cfg.id" +SHOP_TYPE_CFG_ID_FIELD.number = 1 +SHOP_TYPE_CFG_ID_FIELD.index = 0 +SHOP_TYPE_CFG_ID_FIELD.label = 2 +SHOP_TYPE_CFG_ID_FIELD.has_default_value = false +SHOP_TYPE_CFG_ID_FIELD.default_value = 0 +SHOP_TYPE_CFG_ID_FIELD.type = 13 +SHOP_TYPE_CFG_ID_FIELD.cpp_type = 3 + +SHOP_TYPE_CFG_SHOP_NAME_FIELD.name = "shop_name" +SHOP_TYPE_CFG_SHOP_NAME_FIELD.full_name = ".ftcfg.shop_type_cfg.shop_name" +SHOP_TYPE_CFG_SHOP_NAME_FIELD.number = 2 +SHOP_TYPE_CFG_SHOP_NAME_FIELD.index = 1 +SHOP_TYPE_CFG_SHOP_NAME_FIELD.label = 2 +SHOP_TYPE_CFG_SHOP_NAME_FIELD.has_default_value = false +SHOP_TYPE_CFG_SHOP_NAME_FIELD.default_value = "" +SHOP_TYPE_CFG_SHOP_NAME_FIELD.type = 9 +SHOP_TYPE_CFG_SHOP_NAME_FIELD.cpp_type = 9 + +SHOP_TYPE_CFG_OPEN_LVL_FIELD.name = "open_lvl" +SHOP_TYPE_CFG_OPEN_LVL_FIELD.full_name = ".ftcfg.shop_type_cfg.open_lvl" +SHOP_TYPE_CFG_OPEN_LVL_FIELD.number = 3 +SHOP_TYPE_CFG_OPEN_LVL_FIELD.index = 2 +SHOP_TYPE_CFG_OPEN_LVL_FIELD.label = 2 +SHOP_TYPE_CFG_OPEN_LVL_FIELD.has_default_value = false +SHOP_TYPE_CFG_OPEN_LVL_FIELD.default_value = 0 +SHOP_TYPE_CFG_OPEN_LVL_FIELD.type = 5 +SHOP_TYPE_CFG_OPEN_LVL_FIELD.cpp_type = 1 + +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.name = "shop_type" +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.full_name = ".ftcfg.shop_type_cfg.shop_type" +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.number = 4 +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.index = 3 +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.label = 2 +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.has_default_value = false +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.default_value = nil +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.enum_type = config_predefine_pb.ESHOPTYPE +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.type = 14 +SHOP_TYPE_CFG_SHOP_TYPE_FIELD.cpp_type = 8 + +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.name = "shopsub_type" +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.full_name = ".ftcfg.shop_type_cfg.shopsub_type" +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.number = 5 +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.index = 4 +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.label = 2 +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.has_default_value = false +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.default_value = 0 +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.type = 5 +SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD.cpp_type = 1 + +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.name = "shop_items" +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.full_name = ".ftcfg.shop_type_cfg.shop_items" +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.number = 6 +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.index = 5 +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.label = 3 +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.has_default_value = false +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.default_value = {} +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.type = 5 +SHOP_TYPE_CFG_SHOP_ITEMS_FIELD.cpp_type = 1 + +SHOP_TYPE_CFG_ISTAB_FIELD.name = "istab" +SHOP_TYPE_CFG_ISTAB_FIELD.full_name = ".ftcfg.shop_type_cfg.istab" +SHOP_TYPE_CFG_ISTAB_FIELD.number = 7 +SHOP_TYPE_CFG_ISTAB_FIELD.index = 6 +SHOP_TYPE_CFG_ISTAB_FIELD.label = 2 +SHOP_TYPE_CFG_ISTAB_FIELD.has_default_value = false +SHOP_TYPE_CFG_ISTAB_FIELD.default_value = 0 +SHOP_TYPE_CFG_ISTAB_FIELD.type = 5 +SHOP_TYPE_CFG_ISTAB_FIELD.cpp_type = 1 + +SHOP_TYPE_CFG_TAB_NAME1_FIELD.name = "tab_name1" +SHOP_TYPE_CFG_TAB_NAME1_FIELD.full_name = ".ftcfg.shop_type_cfg.tab_name1" +SHOP_TYPE_CFG_TAB_NAME1_FIELD.number = 8 +SHOP_TYPE_CFG_TAB_NAME1_FIELD.index = 7 +SHOP_TYPE_CFG_TAB_NAME1_FIELD.label = 2 +SHOP_TYPE_CFG_TAB_NAME1_FIELD.has_default_value = false +SHOP_TYPE_CFG_TAB_NAME1_FIELD.default_value = "" +SHOP_TYPE_CFG_TAB_NAME1_FIELD.type = 9 +SHOP_TYPE_CFG_TAB_NAME1_FIELD.cpp_type = 9 + +SHOP_TYPE_CFG_TAB_NAME2_FIELD.name = "tab_name2" +SHOP_TYPE_CFG_TAB_NAME2_FIELD.full_name = ".ftcfg.shop_type_cfg.tab_name2" +SHOP_TYPE_CFG_TAB_NAME2_FIELD.number = 9 +SHOP_TYPE_CFG_TAB_NAME2_FIELD.index = 8 +SHOP_TYPE_CFG_TAB_NAME2_FIELD.label = 2 +SHOP_TYPE_CFG_TAB_NAME2_FIELD.has_default_value = false +SHOP_TYPE_CFG_TAB_NAME2_FIELD.default_value = "" +SHOP_TYPE_CFG_TAB_NAME2_FIELD.type = 9 +SHOP_TYPE_CFG_TAB_NAME2_FIELD.cpp_type = 9 + +SHOP_TYPE_CFG_TAB_NAME3_FIELD.name = "tab_name3" +SHOP_TYPE_CFG_TAB_NAME3_FIELD.full_name = ".ftcfg.shop_type_cfg.tab_name3" +SHOP_TYPE_CFG_TAB_NAME3_FIELD.number = 10 +SHOP_TYPE_CFG_TAB_NAME3_FIELD.index = 9 +SHOP_TYPE_CFG_TAB_NAME3_FIELD.label = 2 +SHOP_TYPE_CFG_TAB_NAME3_FIELD.has_default_value = false +SHOP_TYPE_CFG_TAB_NAME3_FIELD.default_value = "" +SHOP_TYPE_CFG_TAB_NAME3_FIELD.type = 9 +SHOP_TYPE_CFG_TAB_NAME3_FIELD.cpp_type = 9 + +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.name = "tab_items1" +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.full_name = ".ftcfg.shop_type_cfg.tab_items1" +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.number = 11 +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.index = 10 +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.label = 3 +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.has_default_value = false +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.default_value = {} +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.type = 5 +SHOP_TYPE_CFG_TAB_ITEMS1_FIELD.cpp_type = 1 + +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.name = "tab_items2" +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.full_name = ".ftcfg.shop_type_cfg.tab_items2" +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.number = 12 +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.index = 11 +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.label = 3 +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.has_default_value = false +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.default_value = {} +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.type = 5 +SHOP_TYPE_CFG_TAB_ITEMS2_FIELD.cpp_type = 1 + +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.name = "tab_items3" +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.full_name = ".ftcfg.shop_type_cfg.tab_items3" +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.number = 13 +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.index = 12 +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.label = 3 +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.has_default_value = false +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.default_value = {} +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.type = 5 +SHOP_TYPE_CFG_TAB_ITEMS3_FIELD.cpp_type = 1 + +SHOP_TYPE_CFG.name = "shop_type_cfg" +SHOP_TYPE_CFG.full_name = ".ftcfg.shop_type_cfg" +SHOP_TYPE_CFG.nested_types = {} +SHOP_TYPE_CFG.enum_types = {} +SHOP_TYPE_CFG.fields = {SHOP_TYPE_CFG_ID_FIELD, SHOP_TYPE_CFG_SHOP_NAME_FIELD, SHOP_TYPE_CFG_OPEN_LVL_FIELD, SHOP_TYPE_CFG_SHOP_TYPE_FIELD, SHOP_TYPE_CFG_SHOPSUB_TYPE_FIELD, SHOP_TYPE_CFG_SHOP_ITEMS_FIELD, SHOP_TYPE_CFG_ISTAB_FIELD, SHOP_TYPE_CFG_TAB_NAME1_FIELD, SHOP_TYPE_CFG_TAB_NAME2_FIELD, SHOP_TYPE_CFG_TAB_NAME3_FIELD, SHOP_TYPE_CFG_TAB_ITEMS1_FIELD, SHOP_TYPE_CFG_TAB_ITEMS2_FIELD, SHOP_TYPE_CFG_TAB_ITEMS3_FIELD} +SHOP_TYPE_CFG.is_extendable = false +SHOP_TYPE_CFG.extensions = {} +SHOP_TYPE_CFGS_ITEMS_FIELD.name = "items" +SHOP_TYPE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.shop_type_cfgs.items" +SHOP_TYPE_CFGS_ITEMS_FIELD.number = 1 +SHOP_TYPE_CFGS_ITEMS_FIELD.index = 0 +SHOP_TYPE_CFGS_ITEMS_FIELD.label = 3 +SHOP_TYPE_CFGS_ITEMS_FIELD.has_default_value = false +SHOP_TYPE_CFGS_ITEMS_FIELD.default_value = {} +SHOP_TYPE_CFGS_ITEMS_FIELD.message_type = SHOP_TYPE_CFG +SHOP_TYPE_CFGS_ITEMS_FIELD.type = 11 +SHOP_TYPE_CFGS_ITEMS_FIELD.cpp_type = 10 + +SHOP_TYPE_CFGS.name = "shop_type_cfgs" +SHOP_TYPE_CFGS.full_name = ".ftcfg.shop_type_cfgs" +SHOP_TYPE_CFGS.nested_types = {} +SHOP_TYPE_CFGS.enum_types = {} +SHOP_TYPE_CFGS.fields = {SHOP_TYPE_CFGS_ITEMS_FIELD} +SHOP_TYPE_CFGS.is_extendable = false +SHOP_TYPE_CFGS.extensions = {} +SCENE_EVENT_CFG_ID_FIELD.name = "id" +SCENE_EVENT_CFG_ID_FIELD.full_name = ".ftcfg.scene_event_cfg.id" +SCENE_EVENT_CFG_ID_FIELD.number = 1 +SCENE_EVENT_CFG_ID_FIELD.index = 0 +SCENE_EVENT_CFG_ID_FIELD.label = 2 +SCENE_EVENT_CFG_ID_FIELD.has_default_value = false +SCENE_EVENT_CFG_ID_FIELD.default_value = 0 +SCENE_EVENT_CFG_ID_FIELD.type = 5 +SCENE_EVENT_CFG_ID_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_STEP_ID_FIELD.name = "step_id" +SCENE_EVENT_CFG_STEP_ID_FIELD.full_name = ".ftcfg.scene_event_cfg.step_id" +SCENE_EVENT_CFG_STEP_ID_FIELD.number = 2 +SCENE_EVENT_CFG_STEP_ID_FIELD.index = 1 +SCENE_EVENT_CFG_STEP_ID_FIELD.label = 2 +SCENE_EVENT_CFG_STEP_ID_FIELD.has_default_value = false +SCENE_EVENT_CFG_STEP_ID_FIELD.default_value = 0 +SCENE_EVENT_CFG_STEP_ID_FIELD.type = 5 +SCENE_EVENT_CFG_STEP_ID_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.name = "event_type" +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.full_name = ".ftcfg.scene_event_cfg.event_type" +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.number = 3 +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.index = 2 +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.label = 2 +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.has_default_value = false +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.default_value = nil +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.enum_type = config_predefine_pb.ESCENEEVENTTYPE +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.type = 14 +SCENE_EVENT_CFG_EVENT_TYPE_FIELD.cpp_type = 8 + +SCENE_EVENT_CFG_CONDIDITON1_FIELD.name = "condiditon1" +SCENE_EVENT_CFG_CONDIDITON1_FIELD.full_name = ".ftcfg.scene_event_cfg.condiditon1" +SCENE_EVENT_CFG_CONDIDITON1_FIELD.number = 4 +SCENE_EVENT_CFG_CONDIDITON1_FIELD.index = 3 +SCENE_EVENT_CFG_CONDIDITON1_FIELD.label = 2 +SCENE_EVENT_CFG_CONDIDITON1_FIELD.has_default_value = false +SCENE_EVENT_CFG_CONDIDITON1_FIELD.default_value = 0 +SCENE_EVENT_CFG_CONDIDITON1_FIELD.type = 5 +SCENE_EVENT_CFG_CONDIDITON1_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_CONDIDITON2_FIELD.name = "condiditon2" +SCENE_EVENT_CFG_CONDIDITON2_FIELD.full_name = ".ftcfg.scene_event_cfg.condiditon2" +SCENE_EVENT_CFG_CONDIDITON2_FIELD.number = 5 +SCENE_EVENT_CFG_CONDIDITON2_FIELD.index = 4 +SCENE_EVENT_CFG_CONDIDITON2_FIELD.label = 2 +SCENE_EVENT_CFG_CONDIDITON2_FIELD.has_default_value = false +SCENE_EVENT_CFG_CONDIDITON2_FIELD.default_value = 0 +SCENE_EVENT_CFG_CONDIDITON2_FIELD.type = 5 +SCENE_EVENT_CFG_CONDIDITON2_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_CONDIDITON3_FIELD.name = "condiditon3" +SCENE_EVENT_CFG_CONDIDITON3_FIELD.full_name = ".ftcfg.scene_event_cfg.condiditon3" +SCENE_EVENT_CFG_CONDIDITON3_FIELD.number = 6 +SCENE_EVENT_CFG_CONDIDITON3_FIELD.index = 5 +SCENE_EVENT_CFG_CONDIDITON3_FIELD.label = 2 +SCENE_EVENT_CFG_CONDIDITON3_FIELD.has_default_value = false +SCENE_EVENT_CFG_CONDIDITON3_FIELD.default_value = 0 +SCENE_EVENT_CFG_CONDIDITON3_FIELD.type = 5 +SCENE_EVENT_CFG_CONDIDITON3_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_CONDIDITON4_FIELD.name = "condiditon4" +SCENE_EVENT_CFG_CONDIDITON4_FIELD.full_name = ".ftcfg.scene_event_cfg.condiditon4" +SCENE_EVENT_CFG_CONDIDITON4_FIELD.number = 7 +SCENE_EVENT_CFG_CONDIDITON4_FIELD.index = 6 +SCENE_EVENT_CFG_CONDIDITON4_FIELD.label = 2 +SCENE_EVENT_CFG_CONDIDITON4_FIELD.has_default_value = false +SCENE_EVENT_CFG_CONDIDITON4_FIELD.default_value = 0 +SCENE_EVENT_CFG_CONDIDITON4_FIELD.type = 5 +SCENE_EVENT_CFG_CONDIDITON4_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.name = "result_type" +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.full_name = ".ftcfg.scene_event_cfg.result_type" +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.number = 8 +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.index = 7 +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.label = 2 +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.has_default_value = false +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.default_value = nil +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.enum_type = config_predefine_pb.ESCENERESULTTYPE +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.type = 14 +SCENE_EVENT_CFG_RESULT_TYPE_FIELD.cpp_type = 8 + +SCENE_EVENT_CFG_RESULT1_FIELD.name = "result1" +SCENE_EVENT_CFG_RESULT1_FIELD.full_name = ".ftcfg.scene_event_cfg.result1" +SCENE_EVENT_CFG_RESULT1_FIELD.number = 9 +SCENE_EVENT_CFG_RESULT1_FIELD.index = 8 +SCENE_EVENT_CFG_RESULT1_FIELD.label = 3 +SCENE_EVENT_CFG_RESULT1_FIELD.has_default_value = false +SCENE_EVENT_CFG_RESULT1_FIELD.default_value = {} +SCENE_EVENT_CFG_RESULT1_FIELD.type = 5 +SCENE_EVENT_CFG_RESULT1_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_RESULT2_FIELD.name = "result2" +SCENE_EVENT_CFG_RESULT2_FIELD.full_name = ".ftcfg.scene_event_cfg.result2" +SCENE_EVENT_CFG_RESULT2_FIELD.number = 10 +SCENE_EVENT_CFG_RESULT2_FIELD.index = 9 +SCENE_EVENT_CFG_RESULT2_FIELD.label = 3 +SCENE_EVENT_CFG_RESULT2_FIELD.has_default_value = false +SCENE_EVENT_CFG_RESULT2_FIELD.default_value = {} +SCENE_EVENT_CFG_RESULT2_FIELD.type = 5 +SCENE_EVENT_CFG_RESULT2_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_RESULT3_FIELD.name = "result3" +SCENE_EVENT_CFG_RESULT3_FIELD.full_name = ".ftcfg.scene_event_cfg.result3" +SCENE_EVENT_CFG_RESULT3_FIELD.number = 11 +SCENE_EVENT_CFG_RESULT3_FIELD.index = 10 +SCENE_EVENT_CFG_RESULT3_FIELD.label = 3 +SCENE_EVENT_CFG_RESULT3_FIELD.has_default_value = false +SCENE_EVENT_CFG_RESULT3_FIELD.default_value = {} +SCENE_EVENT_CFG_RESULT3_FIELD.type = 5 +SCENE_EVENT_CFG_RESULT3_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG_RESULT4_FIELD.name = "result4" +SCENE_EVENT_CFG_RESULT4_FIELD.full_name = ".ftcfg.scene_event_cfg.result4" +SCENE_EVENT_CFG_RESULT4_FIELD.number = 12 +SCENE_EVENT_CFG_RESULT4_FIELD.index = 11 +SCENE_EVENT_CFG_RESULT4_FIELD.label = 3 +SCENE_EVENT_CFG_RESULT4_FIELD.has_default_value = false +SCENE_EVENT_CFG_RESULT4_FIELD.default_value = {} +SCENE_EVENT_CFG_RESULT4_FIELD.type = 5 +SCENE_EVENT_CFG_RESULT4_FIELD.cpp_type = 1 + +SCENE_EVENT_CFG.name = "scene_event_cfg" +SCENE_EVENT_CFG.full_name = ".ftcfg.scene_event_cfg" +SCENE_EVENT_CFG.nested_types = {} +SCENE_EVENT_CFG.enum_types = {} +SCENE_EVENT_CFG.fields = {SCENE_EVENT_CFG_ID_FIELD, SCENE_EVENT_CFG_STEP_ID_FIELD, SCENE_EVENT_CFG_EVENT_TYPE_FIELD, SCENE_EVENT_CFG_CONDIDITON1_FIELD, SCENE_EVENT_CFG_CONDIDITON2_FIELD, SCENE_EVENT_CFG_CONDIDITON3_FIELD, SCENE_EVENT_CFG_CONDIDITON4_FIELD, SCENE_EVENT_CFG_RESULT_TYPE_FIELD, SCENE_EVENT_CFG_RESULT1_FIELD, SCENE_EVENT_CFG_RESULT2_FIELD, SCENE_EVENT_CFG_RESULT3_FIELD, SCENE_EVENT_CFG_RESULT4_FIELD} +SCENE_EVENT_CFG.is_extendable = false +SCENE_EVENT_CFG.extensions = {} +SCENE_EVENT_CFGS_ITEMS_FIELD.name = "items" +SCENE_EVENT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_event_cfgs.items" +SCENE_EVENT_CFGS_ITEMS_FIELD.number = 1 +SCENE_EVENT_CFGS_ITEMS_FIELD.index = 0 +SCENE_EVENT_CFGS_ITEMS_FIELD.label = 3 +SCENE_EVENT_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_EVENT_CFGS_ITEMS_FIELD.default_value = {} +SCENE_EVENT_CFGS_ITEMS_FIELD.message_type = SCENE_EVENT_CFG +SCENE_EVENT_CFGS_ITEMS_FIELD.type = 11 +SCENE_EVENT_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_EVENT_CFGS.name = "scene_event_cfgs" +SCENE_EVENT_CFGS.full_name = ".ftcfg.scene_event_cfgs" +SCENE_EVENT_CFGS.nested_types = {} +SCENE_EVENT_CFGS.enum_types = {} +SCENE_EVENT_CFGS.fields = {SCENE_EVENT_CFGS_ITEMS_FIELD} +SCENE_EVENT_CFGS.is_extendable = false +SCENE_EVENT_CFGS.extensions = {} +SCENE_PORTAL_CFG_ID_FIELD.name = "id" +SCENE_PORTAL_CFG_ID_FIELD.full_name = ".ftcfg.scene_portal_cfg.id" +SCENE_PORTAL_CFG_ID_FIELD.number = 1 +SCENE_PORTAL_CFG_ID_FIELD.index = 0 +SCENE_PORTAL_CFG_ID_FIELD.label = 2 +SCENE_PORTAL_CFG_ID_FIELD.has_default_value = false +SCENE_PORTAL_CFG_ID_FIELD.default_value = 0 +SCENE_PORTAL_CFG_ID_FIELD.type = 5 +SCENE_PORTAL_CFG_ID_FIELD.cpp_type = 1 + +SCENE_PORTAL_CFG_MAP_ID_FIELD.name = "map_id" +SCENE_PORTAL_CFG_MAP_ID_FIELD.full_name = ".ftcfg.scene_portal_cfg.map_id" +SCENE_PORTAL_CFG_MAP_ID_FIELD.number = 2 +SCENE_PORTAL_CFG_MAP_ID_FIELD.index = 1 +SCENE_PORTAL_CFG_MAP_ID_FIELD.label = 2 +SCENE_PORTAL_CFG_MAP_ID_FIELD.has_default_value = false +SCENE_PORTAL_CFG_MAP_ID_FIELD.default_value = 0 +SCENE_PORTAL_CFG_MAP_ID_FIELD.type = 5 +SCENE_PORTAL_CFG_MAP_ID_FIELD.cpp_type = 1 + +SCENE_PORTAL_CFG_POS_X_FIELD.name = "pos_x" +SCENE_PORTAL_CFG_POS_X_FIELD.full_name = ".ftcfg.scene_portal_cfg.pos_x" +SCENE_PORTAL_CFG_POS_X_FIELD.number = 3 +SCENE_PORTAL_CFG_POS_X_FIELD.index = 2 +SCENE_PORTAL_CFG_POS_X_FIELD.label = 2 +SCENE_PORTAL_CFG_POS_X_FIELD.has_default_value = false +SCENE_PORTAL_CFG_POS_X_FIELD.default_value = 0.0 +SCENE_PORTAL_CFG_POS_X_FIELD.type = 2 +SCENE_PORTAL_CFG_POS_X_FIELD.cpp_type = 6 + +SCENE_PORTAL_CFG_POS_Y_FIELD.name = "pos_y" +SCENE_PORTAL_CFG_POS_Y_FIELD.full_name = ".ftcfg.scene_portal_cfg.pos_y" +SCENE_PORTAL_CFG_POS_Y_FIELD.number = 4 +SCENE_PORTAL_CFG_POS_Y_FIELD.index = 3 +SCENE_PORTAL_CFG_POS_Y_FIELD.label = 2 +SCENE_PORTAL_CFG_POS_Y_FIELD.has_default_value = false +SCENE_PORTAL_CFG_POS_Y_FIELD.default_value = 0.0 +SCENE_PORTAL_CFG_POS_Y_FIELD.type = 2 +SCENE_PORTAL_CFG_POS_Y_FIELD.cpp_type = 6 + +SCENE_PORTAL_CFG_POS_Z_FIELD.name = "pos_z" +SCENE_PORTAL_CFG_POS_Z_FIELD.full_name = ".ftcfg.scene_portal_cfg.pos_z" +SCENE_PORTAL_CFG_POS_Z_FIELD.number = 5 +SCENE_PORTAL_CFG_POS_Z_FIELD.index = 4 +SCENE_PORTAL_CFG_POS_Z_FIELD.label = 2 +SCENE_PORTAL_CFG_POS_Z_FIELD.has_default_value = false +SCENE_PORTAL_CFG_POS_Z_FIELD.default_value = 0.0 +SCENE_PORTAL_CFG_POS_Z_FIELD.type = 2 +SCENE_PORTAL_CFG_POS_Z_FIELD.cpp_type = 6 + +SCENE_PORTAL_CFG_RADIUS_FIELD.name = "radius" +SCENE_PORTAL_CFG_RADIUS_FIELD.full_name = ".ftcfg.scene_portal_cfg.radius" +SCENE_PORTAL_CFG_RADIUS_FIELD.number = 6 +SCENE_PORTAL_CFG_RADIUS_FIELD.index = 5 +SCENE_PORTAL_CFG_RADIUS_FIELD.label = 2 +SCENE_PORTAL_CFG_RADIUS_FIELD.has_default_value = false +SCENE_PORTAL_CFG_RADIUS_FIELD.default_value = 0.0 +SCENE_PORTAL_CFG_RADIUS_FIELD.type = 2 +SCENE_PORTAL_CFG_RADIUS_FIELD.cpp_type = 6 + +SCENE_PORTAL_CFG_ORIENTATION_FIELD.name = "orientation" +SCENE_PORTAL_CFG_ORIENTATION_FIELD.full_name = ".ftcfg.scene_portal_cfg.orientation" +SCENE_PORTAL_CFG_ORIENTATION_FIELD.number = 7 +SCENE_PORTAL_CFG_ORIENTATION_FIELD.index = 6 +SCENE_PORTAL_CFG_ORIENTATION_FIELD.label = 2 +SCENE_PORTAL_CFG_ORIENTATION_FIELD.has_default_value = false +SCENE_PORTAL_CFG_ORIENTATION_FIELD.default_value = 0.0 +SCENE_PORTAL_CFG_ORIENTATION_FIELD.type = 2 +SCENE_PORTAL_CFG_ORIENTATION_FIELD.cpp_type = 6 + +SCENE_PORTAL_CFG_ENABLED_FIELD.name = "enabled" +SCENE_PORTAL_CFG_ENABLED_FIELD.full_name = ".ftcfg.scene_portal_cfg.enabled" +SCENE_PORTAL_CFG_ENABLED_FIELD.number = 8 +SCENE_PORTAL_CFG_ENABLED_FIELD.index = 7 +SCENE_PORTAL_CFG_ENABLED_FIELD.label = 2 +SCENE_PORTAL_CFG_ENABLED_FIELD.has_default_value = false +SCENE_PORTAL_CFG_ENABLED_FIELD.default_value = 0 +SCENE_PORTAL_CFG_ENABLED_FIELD.type = 5 +SCENE_PORTAL_CFG_ENABLED_FIELD.cpp_type = 1 + +SCENE_PORTAL_CFG_RESID_FIELD.name = "resid" +SCENE_PORTAL_CFG_RESID_FIELD.full_name = ".ftcfg.scene_portal_cfg.resid" +SCENE_PORTAL_CFG_RESID_FIELD.number = 9 +SCENE_PORTAL_CFG_RESID_FIELD.index = 8 +SCENE_PORTAL_CFG_RESID_FIELD.label = 2 +SCENE_PORTAL_CFG_RESID_FIELD.has_default_value = false +SCENE_PORTAL_CFG_RESID_FIELD.default_value = 0 +SCENE_PORTAL_CFG_RESID_FIELD.type = 5 +SCENE_PORTAL_CFG_RESID_FIELD.cpp_type = 1 + +SCENE_PORTAL_CFG.name = "scene_portal_cfg" +SCENE_PORTAL_CFG.full_name = ".ftcfg.scene_portal_cfg" +SCENE_PORTAL_CFG.nested_types = {} +SCENE_PORTAL_CFG.enum_types = {} +SCENE_PORTAL_CFG.fields = {SCENE_PORTAL_CFG_ID_FIELD, SCENE_PORTAL_CFG_MAP_ID_FIELD, SCENE_PORTAL_CFG_POS_X_FIELD, SCENE_PORTAL_CFG_POS_Y_FIELD, SCENE_PORTAL_CFG_POS_Z_FIELD, SCENE_PORTAL_CFG_RADIUS_FIELD, SCENE_PORTAL_CFG_ORIENTATION_FIELD, SCENE_PORTAL_CFG_ENABLED_FIELD, SCENE_PORTAL_CFG_RESID_FIELD} +SCENE_PORTAL_CFG.is_extendable = false +SCENE_PORTAL_CFG.extensions = {} +SCENE_PORTAL_CFGS_ITEMS_FIELD.name = "items" +SCENE_PORTAL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_portal_cfgs.items" +SCENE_PORTAL_CFGS_ITEMS_FIELD.number = 1 +SCENE_PORTAL_CFGS_ITEMS_FIELD.index = 0 +SCENE_PORTAL_CFGS_ITEMS_FIELD.label = 3 +SCENE_PORTAL_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_PORTAL_CFGS_ITEMS_FIELD.default_value = {} +SCENE_PORTAL_CFGS_ITEMS_FIELD.message_type = SCENE_PORTAL_CFG +SCENE_PORTAL_CFGS_ITEMS_FIELD.type = 11 +SCENE_PORTAL_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_PORTAL_CFGS.name = "scene_portal_cfgs" +SCENE_PORTAL_CFGS.full_name = ".ftcfg.scene_portal_cfgs" +SCENE_PORTAL_CFGS.nested_types = {} +SCENE_PORTAL_CFGS.enum_types = {} +SCENE_PORTAL_CFGS.fields = {SCENE_PORTAL_CFGS_ITEMS_FIELD} +SCENE_PORTAL_CFGS.is_extendable = false +SCENE_PORTAL_CFGS.extensions = {} +SCENE_FUNCTION_CFG_ID_FIELD.name = "id" +SCENE_FUNCTION_CFG_ID_FIELD.full_name = ".ftcfg.scene_function_cfg.id" +SCENE_FUNCTION_CFG_ID_FIELD.number = 1 +SCENE_FUNCTION_CFG_ID_FIELD.index = 0 +SCENE_FUNCTION_CFG_ID_FIELD.label = 2 +SCENE_FUNCTION_CFG_ID_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_ID_FIELD.default_value = 0 +SCENE_FUNCTION_CFG_ID_FIELD.type = 5 +SCENE_FUNCTION_CFG_ID_FIELD.cpp_type = 1 + +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.name = "open_functions" +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.full_name = ".ftcfg.scene_function_cfg.open_functions" +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.number = 2 +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.index = 1 +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.label = 3 +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.type = 14 +SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD.cpp_type = 8 + +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.name = "open_paras" +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.full_name = ".ftcfg.scene_function_cfg.open_paras" +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.number = 3 +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.index = 2 +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.label = 3 +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.type = 5 +SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD.cpp_type = 1 + +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.name = "close_functions" +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.full_name = ".ftcfg.scene_function_cfg.close_functions" +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.number = 4 +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.index = 3 +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.label = 3 +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.type = 14 +SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD.cpp_type = 8 + +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.name = "leave_functions" +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.full_name = ".ftcfg.scene_function_cfg.leave_functions" +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.number = 5 +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.index = 4 +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.label = 3 +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.type = 14 +SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD.cpp_type = 8 + +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.name = "limit_functions" +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.full_name = ".ftcfg.scene_function_cfg.limit_functions" +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.number = 6 +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.index = 5 +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.label = 3 +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.type = 14 +SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD.cpp_type = 8 + +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.name = "slimit_functions" +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.full_name = ".ftcfg.scene_function_cfg.slimit_functions" +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.number = 7 +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.index = 6 +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.label = 3 +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.type = 14 +SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD.cpp_type = 8 + +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.name = "back_scene" +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.full_name = ".ftcfg.scene_function_cfg.back_scene" +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.number = 8 +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.index = 7 +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.label = 2 +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.default_value = 0 +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.type = 5 +SCENE_FUNCTION_CFG_BACK_SCENE_FIELD.cpp_type = 1 + +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.name = "rank_ids" +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.full_name = ".ftcfg.scene_function_cfg.rank_ids" +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.number = 9 +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.index = 8 +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.label = 3 +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.type = 5 +SCENE_FUNCTION_CFG_RANK_IDS_FIELD.cpp_type = 1 + +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.name = "rank_type" +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.full_name = ".ftcfg.scene_function_cfg.rank_type" +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.number = 10 +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.index = 9 +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.label = 2 +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.default_value = nil +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.type = 14 +SCENE_FUNCTION_CFG_RANK_TYPE_FIELD.cpp_type = 8 + +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.name = "rank_linenames" +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.full_name = ".ftcfg.scene_function_cfg.rank_linenames" +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.number = 11 +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.index = 10 +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.label = 3 +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.default_value = {} +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.type = 5 +SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD.cpp_type = 1 + +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.name = "close_opens" +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.full_name = ".ftcfg.scene_function_cfg.close_opens" +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.number = 12 +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.index = 11 +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.label = 3 +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.has_default_value = false +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.default_value = {} +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.type = 14 +SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD.cpp_type = 8 + +SCENE_FUNCTION_CFG.name = "scene_function_cfg" +SCENE_FUNCTION_CFG.full_name = ".ftcfg.scene_function_cfg" +SCENE_FUNCTION_CFG.nested_types = {} +SCENE_FUNCTION_CFG.enum_types = {} +SCENE_FUNCTION_CFG.fields = {SCENE_FUNCTION_CFG_ID_FIELD, SCENE_FUNCTION_CFG_OPEN_FUNCTIONS_FIELD, SCENE_FUNCTION_CFG_OPEN_PARAS_FIELD, SCENE_FUNCTION_CFG_CLOSE_FUNCTIONS_FIELD, SCENE_FUNCTION_CFG_LEAVE_FUNCTIONS_FIELD, SCENE_FUNCTION_CFG_LIMIT_FUNCTIONS_FIELD, SCENE_FUNCTION_CFG_SLIMIT_FUNCTIONS_FIELD, SCENE_FUNCTION_CFG_BACK_SCENE_FIELD, SCENE_FUNCTION_CFG_RANK_IDS_FIELD, SCENE_FUNCTION_CFG_RANK_TYPE_FIELD, SCENE_FUNCTION_CFG_RANK_LINENAMES_FIELD, SCENE_FUNCTION_CFG_CLOSE_OPENS_FIELD} +SCENE_FUNCTION_CFG.is_extendable = false +SCENE_FUNCTION_CFG.extensions = {} +SCENE_FUNCTION_CFGS_ITEMS_FIELD.name = "items" +SCENE_FUNCTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_function_cfgs.items" +SCENE_FUNCTION_CFGS_ITEMS_FIELD.number = 1 +SCENE_FUNCTION_CFGS_ITEMS_FIELD.index = 0 +SCENE_FUNCTION_CFGS_ITEMS_FIELD.label = 3 +SCENE_FUNCTION_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_FUNCTION_CFGS_ITEMS_FIELD.default_value = {} +SCENE_FUNCTION_CFGS_ITEMS_FIELD.message_type = SCENE_FUNCTION_CFG +SCENE_FUNCTION_CFGS_ITEMS_FIELD.type = 11 +SCENE_FUNCTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_FUNCTION_CFGS.name = "scene_function_cfgs" +SCENE_FUNCTION_CFGS.full_name = ".ftcfg.scene_function_cfgs" +SCENE_FUNCTION_CFGS.nested_types = {} +SCENE_FUNCTION_CFGS.enum_types = {} +SCENE_FUNCTION_CFGS.fields = {SCENE_FUNCTION_CFGS_ITEMS_FIELD} +SCENE_FUNCTION_CFGS.is_extendable = false +SCENE_FUNCTION_CFGS.extensions = {} +SCENE_AREA_CFG_AREA_ID_FIELD.name = "area_id" +SCENE_AREA_CFG_AREA_ID_FIELD.full_name = ".ftcfg.scene_area_cfg.area_id" +SCENE_AREA_CFG_AREA_ID_FIELD.number = 1 +SCENE_AREA_CFG_AREA_ID_FIELD.index = 0 +SCENE_AREA_CFG_AREA_ID_FIELD.label = 2 +SCENE_AREA_CFG_AREA_ID_FIELD.has_default_value = false +SCENE_AREA_CFG_AREA_ID_FIELD.default_value = 0 +SCENE_AREA_CFG_AREA_ID_FIELD.type = 5 +SCENE_AREA_CFG_AREA_ID_FIELD.cpp_type = 1 + +SCENE_AREA_CFG_MAP_ID_FIELD.name = "map_id" +SCENE_AREA_CFG_MAP_ID_FIELD.full_name = ".ftcfg.scene_area_cfg.map_id" +SCENE_AREA_CFG_MAP_ID_FIELD.number = 2 +SCENE_AREA_CFG_MAP_ID_FIELD.index = 1 +SCENE_AREA_CFG_MAP_ID_FIELD.label = 2 +SCENE_AREA_CFG_MAP_ID_FIELD.has_default_value = false +SCENE_AREA_CFG_MAP_ID_FIELD.default_value = 0 +SCENE_AREA_CFG_MAP_ID_FIELD.type = 5 +SCENE_AREA_CFG_MAP_ID_FIELD.cpp_type = 1 + +SCENE_AREA_CFG_AREA_TYPE_FIELD.name = "area_type" +SCENE_AREA_CFG_AREA_TYPE_FIELD.full_name = ".ftcfg.scene_area_cfg.area_type" +SCENE_AREA_CFG_AREA_TYPE_FIELD.number = 3 +SCENE_AREA_CFG_AREA_TYPE_FIELD.index = 2 +SCENE_AREA_CFG_AREA_TYPE_FIELD.label = 2 +SCENE_AREA_CFG_AREA_TYPE_FIELD.has_default_value = false +SCENE_AREA_CFG_AREA_TYPE_FIELD.default_value = nil +SCENE_AREA_CFG_AREA_TYPE_FIELD.enum_type = config_predefine_pb.EAREATRIGGERTYPE +SCENE_AREA_CFG_AREA_TYPE_FIELD.type = 14 +SCENE_AREA_CFG_AREA_TYPE_FIELD.cpp_type = 8 + +SCENE_AREA_CFG_POS_X_FIELD.name = "pos_x" +SCENE_AREA_CFG_POS_X_FIELD.full_name = ".ftcfg.scene_area_cfg.pos_x" +SCENE_AREA_CFG_POS_X_FIELD.number = 4 +SCENE_AREA_CFG_POS_X_FIELD.index = 3 +SCENE_AREA_CFG_POS_X_FIELD.label = 2 +SCENE_AREA_CFG_POS_X_FIELD.has_default_value = false +SCENE_AREA_CFG_POS_X_FIELD.default_value = 0.0 +SCENE_AREA_CFG_POS_X_FIELD.type = 2 +SCENE_AREA_CFG_POS_X_FIELD.cpp_type = 6 + +SCENE_AREA_CFG_POS_Y_FIELD.name = "pos_y" +SCENE_AREA_CFG_POS_Y_FIELD.full_name = ".ftcfg.scene_area_cfg.pos_y" +SCENE_AREA_CFG_POS_Y_FIELD.number = 5 +SCENE_AREA_CFG_POS_Y_FIELD.index = 4 +SCENE_AREA_CFG_POS_Y_FIELD.label = 2 +SCENE_AREA_CFG_POS_Y_FIELD.has_default_value = false +SCENE_AREA_CFG_POS_Y_FIELD.default_value = 0.0 +SCENE_AREA_CFG_POS_Y_FIELD.type = 2 +SCENE_AREA_CFG_POS_Y_FIELD.cpp_type = 6 + +SCENE_AREA_CFG_RADIUS_FIELD.name = "radius" +SCENE_AREA_CFG_RADIUS_FIELD.full_name = ".ftcfg.scene_area_cfg.radius" +SCENE_AREA_CFG_RADIUS_FIELD.number = 6 +SCENE_AREA_CFG_RADIUS_FIELD.index = 5 +SCENE_AREA_CFG_RADIUS_FIELD.label = 2 +SCENE_AREA_CFG_RADIUS_FIELD.has_default_value = false +SCENE_AREA_CFG_RADIUS_FIELD.default_value = 0.0 +SCENE_AREA_CFG_RADIUS_FIELD.type = 2 +SCENE_AREA_CFG_RADIUS_FIELD.cpp_type = 6 + +SCENE_AREA_CFG_WIDTH_FIELD.name = "width" +SCENE_AREA_CFG_WIDTH_FIELD.full_name = ".ftcfg.scene_area_cfg.width" +SCENE_AREA_CFG_WIDTH_FIELD.number = 7 +SCENE_AREA_CFG_WIDTH_FIELD.index = 6 +SCENE_AREA_CFG_WIDTH_FIELD.label = 2 +SCENE_AREA_CFG_WIDTH_FIELD.has_default_value = false +SCENE_AREA_CFG_WIDTH_FIELD.default_value = 0.0 +SCENE_AREA_CFG_WIDTH_FIELD.type = 2 +SCENE_AREA_CFG_WIDTH_FIELD.cpp_type = 6 + +SCENE_AREA_CFG_HEIGHT_FIELD.name = "height" +SCENE_AREA_CFG_HEIGHT_FIELD.full_name = ".ftcfg.scene_area_cfg.height" +SCENE_AREA_CFG_HEIGHT_FIELD.number = 8 +SCENE_AREA_CFG_HEIGHT_FIELD.index = 7 +SCENE_AREA_CFG_HEIGHT_FIELD.label = 2 +SCENE_AREA_CFG_HEIGHT_FIELD.has_default_value = false +SCENE_AREA_CFG_HEIGHT_FIELD.default_value = 0.0 +SCENE_AREA_CFG_HEIGHT_FIELD.type = 2 +SCENE_AREA_CFG_HEIGHT_FIELD.cpp_type = 6 + +SCENE_AREA_CFG_ACTION_FIELD.name = "action" +SCENE_AREA_CFG_ACTION_FIELD.full_name = ".ftcfg.scene_area_cfg.action" +SCENE_AREA_CFG_ACTION_FIELD.number = 9 +SCENE_AREA_CFG_ACTION_FIELD.index = 8 +SCENE_AREA_CFG_ACTION_FIELD.label = 2 +SCENE_AREA_CFG_ACTION_FIELD.has_default_value = false +SCENE_AREA_CFG_ACTION_FIELD.default_value = nil +SCENE_AREA_CFG_ACTION_FIELD.enum_type = config_predefine_pb.ETRIGGERACTIONTYPE +SCENE_AREA_CFG_ACTION_FIELD.type = 14 +SCENE_AREA_CFG_ACTION_FIELD.cpp_type = 8 + +SCENE_AREA_CFG_PARAM1_FIELD.name = "param1" +SCENE_AREA_CFG_PARAM1_FIELD.full_name = ".ftcfg.scene_area_cfg.param1" +SCENE_AREA_CFG_PARAM1_FIELD.number = 10 +SCENE_AREA_CFG_PARAM1_FIELD.index = 9 +SCENE_AREA_CFG_PARAM1_FIELD.label = 2 +SCENE_AREA_CFG_PARAM1_FIELD.has_default_value = false +SCENE_AREA_CFG_PARAM1_FIELD.default_value = 0 +SCENE_AREA_CFG_PARAM1_FIELD.type = 5 +SCENE_AREA_CFG_PARAM1_FIELD.cpp_type = 1 + +SCENE_AREA_CFG_PARAM2_FIELD.name = "param2" +SCENE_AREA_CFG_PARAM2_FIELD.full_name = ".ftcfg.scene_area_cfg.param2" +SCENE_AREA_CFG_PARAM2_FIELD.number = 11 +SCENE_AREA_CFG_PARAM2_FIELD.index = 10 +SCENE_AREA_CFG_PARAM2_FIELD.label = 2 +SCENE_AREA_CFG_PARAM2_FIELD.has_default_value = false +SCENE_AREA_CFG_PARAM2_FIELD.default_value = 0 +SCENE_AREA_CFG_PARAM2_FIELD.type = 5 +SCENE_AREA_CFG_PARAM2_FIELD.cpp_type = 1 + +SCENE_AREA_CFG.name = "scene_area_cfg" +SCENE_AREA_CFG.full_name = ".ftcfg.scene_area_cfg" +SCENE_AREA_CFG.nested_types = {} +SCENE_AREA_CFG.enum_types = {} +SCENE_AREA_CFG.fields = {SCENE_AREA_CFG_AREA_ID_FIELD, SCENE_AREA_CFG_MAP_ID_FIELD, SCENE_AREA_CFG_AREA_TYPE_FIELD, SCENE_AREA_CFG_POS_X_FIELD, SCENE_AREA_CFG_POS_Y_FIELD, SCENE_AREA_CFG_RADIUS_FIELD, SCENE_AREA_CFG_WIDTH_FIELD, SCENE_AREA_CFG_HEIGHT_FIELD, SCENE_AREA_CFG_ACTION_FIELD, SCENE_AREA_CFG_PARAM1_FIELD, SCENE_AREA_CFG_PARAM2_FIELD} +SCENE_AREA_CFG.is_extendable = false +SCENE_AREA_CFG.extensions = {} +SCENE_AREA_CFGS_ITEMS_FIELD.name = "items" +SCENE_AREA_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_area_cfgs.items" +SCENE_AREA_CFGS_ITEMS_FIELD.number = 1 +SCENE_AREA_CFGS_ITEMS_FIELD.index = 0 +SCENE_AREA_CFGS_ITEMS_FIELD.label = 3 +SCENE_AREA_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_AREA_CFGS_ITEMS_FIELD.default_value = {} +SCENE_AREA_CFGS_ITEMS_FIELD.message_type = SCENE_AREA_CFG +SCENE_AREA_CFGS_ITEMS_FIELD.type = 11 +SCENE_AREA_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_AREA_CFGS.name = "scene_area_cfgs" +SCENE_AREA_CFGS.full_name = ".ftcfg.scene_area_cfgs" +SCENE_AREA_CFGS.nested_types = {} +SCENE_AREA_CFGS.enum_types = {} +SCENE_AREA_CFGS.fields = {SCENE_AREA_CFGS_ITEMS_FIELD} +SCENE_AREA_CFGS.is_extendable = false +SCENE_AREA_CFGS.extensions = {} +CLIENT_TRIGGER_CFG_ID_FIELD.name = "id" +CLIENT_TRIGGER_CFG_ID_FIELD.full_name = ".ftcfg.client_trigger_cfg.id" +CLIENT_TRIGGER_CFG_ID_FIELD.number = 1 +CLIENT_TRIGGER_CFG_ID_FIELD.index = 0 +CLIENT_TRIGGER_CFG_ID_FIELD.label = 2 +CLIENT_TRIGGER_CFG_ID_FIELD.has_default_value = false +CLIENT_TRIGGER_CFG_ID_FIELD.default_value = 0 +CLIENT_TRIGGER_CFG_ID_FIELD.type = 5 +CLIENT_TRIGGER_CFG_ID_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.name = "map_id" +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.full_name = ".ftcfg.client_trigger_cfg.map_id" +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.number = 2 +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.index = 1 +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.label = 2 +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.has_default_value = false +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.default_value = 0 +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.type = 5 +CLIENT_TRIGGER_CFG_MAP_ID_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CFG_EVENTS_FIELD.name = "events" +CLIENT_TRIGGER_CFG_EVENTS_FIELD.full_name = ".ftcfg.client_trigger_cfg.events" +CLIENT_TRIGGER_CFG_EVENTS_FIELD.number = 3 +CLIENT_TRIGGER_CFG_EVENTS_FIELD.index = 2 +CLIENT_TRIGGER_CFG_EVENTS_FIELD.label = 3 +CLIENT_TRIGGER_CFG_EVENTS_FIELD.has_default_value = false +CLIENT_TRIGGER_CFG_EVENTS_FIELD.default_value = {} +CLIENT_TRIGGER_CFG_EVENTS_FIELD.type = 5 +CLIENT_TRIGGER_CFG_EVENTS_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.name = "conditions" +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.full_name = ".ftcfg.client_trigger_cfg.conditions" +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.number = 4 +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.index = 3 +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.label = 3 +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.has_default_value = false +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.default_value = {} +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.type = 5 +CLIENT_TRIGGER_CFG_CONDITIONS_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.name = "actions" +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.full_name = ".ftcfg.client_trigger_cfg.actions" +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.number = 5 +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.index = 4 +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.label = 3 +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.has_default_value = false +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.default_value = {} +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.type = 5 +CLIENT_TRIGGER_CFG_ACTIONS_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CFG_OPENED_FIELD.name = "opened" +CLIENT_TRIGGER_CFG_OPENED_FIELD.full_name = ".ftcfg.client_trigger_cfg.opened" +CLIENT_TRIGGER_CFG_OPENED_FIELD.number = 6 +CLIENT_TRIGGER_CFG_OPENED_FIELD.index = 5 +CLIENT_TRIGGER_CFG_OPENED_FIELD.label = 2 +CLIENT_TRIGGER_CFG_OPENED_FIELD.has_default_value = false +CLIENT_TRIGGER_CFG_OPENED_FIELD.default_value = 0 +CLIENT_TRIGGER_CFG_OPENED_FIELD.type = 5 +CLIENT_TRIGGER_CFG_OPENED_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.name = "canCycleTriggle" +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.full_name = ".ftcfg.client_trigger_cfg.canCycleTriggle" +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.number = 7 +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.index = 6 +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.label = 2 +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.has_default_value = false +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.default_value = 0 +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.type = 5 +CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CFG.name = "client_trigger_cfg" +CLIENT_TRIGGER_CFG.full_name = ".ftcfg.client_trigger_cfg" +CLIENT_TRIGGER_CFG.nested_types = {} +CLIENT_TRIGGER_CFG.enum_types = {} +CLIENT_TRIGGER_CFG.fields = {CLIENT_TRIGGER_CFG_ID_FIELD, CLIENT_TRIGGER_CFG_MAP_ID_FIELD, CLIENT_TRIGGER_CFG_EVENTS_FIELD, CLIENT_TRIGGER_CFG_CONDITIONS_FIELD, CLIENT_TRIGGER_CFG_ACTIONS_FIELD, CLIENT_TRIGGER_CFG_OPENED_FIELD, CLIENT_TRIGGER_CFG_CANCYCLETRIGGLE_FIELD} +CLIENT_TRIGGER_CFG.is_extendable = false +CLIENT_TRIGGER_CFG.extensions = {} +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.name = "items" +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.full_name = ".ftcfg.client_trigger_cfgs.items" +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.number = 1 +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.index = 0 +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.label = 3 +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.has_default_value = false +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.default_value = {} +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.message_type = CLIENT_TRIGGER_CFG +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.type = 11 +CLIENT_TRIGGER_CFGS_ITEMS_FIELD.cpp_type = 10 + +CLIENT_TRIGGER_CFGS.name = "client_trigger_cfgs" +CLIENT_TRIGGER_CFGS.full_name = ".ftcfg.client_trigger_cfgs" +CLIENT_TRIGGER_CFGS.nested_types = {} +CLIENT_TRIGGER_CFGS.enum_types = {} +CLIENT_TRIGGER_CFGS.fields = {CLIENT_TRIGGER_CFGS_ITEMS_FIELD} +CLIENT_TRIGGER_CFGS.is_extendable = false +CLIENT_TRIGGER_CFGS.extensions = {} +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.name = "event_id" +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.event_id" +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.number = 1 +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.index = 0 +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.default_value = 0 +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.type = 5 +CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.name = "type" +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.type" +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.number = 2 +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.index = 1 +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.default_value = nil +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ECLIENTTRIGGEREVENTTYPE +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.type = 14 +CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD.cpp_type = 8 + +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.name = "param1" +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param1" +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.number = 3 +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.index = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.name = "param2" +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param2" +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.number = 4 +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.index = 3 +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.name = "param3" +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param3" +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.number = 5 +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.index = 4 +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.name = "param4" +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param4" +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.number = 6 +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.index = 5 +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.name = "param5" +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param5" +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.number = 7 +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.index = 6 +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.name = "param6" +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param6" +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.number = 8 +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.index = 7 +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.name = "param7" +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param7" +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.number = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.index = 8 +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.name = "param8" +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param8" +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.number = 10 +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.index = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.name = "param9" +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param9" +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.number = 11 +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.index = 10 +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.name = "param10" +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.full_name = ".ftcfg.client_trigger_event_cfg.param10" +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.number = 12 +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.index = 11 +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.label = 2 +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.default_value = "" +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.type = 9 +CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_EVENT_CFG.name = "client_trigger_event_cfg" +CLIENT_TRIGGER_EVENT_CFG.full_name = ".ftcfg.client_trigger_event_cfg" +CLIENT_TRIGGER_EVENT_CFG.nested_types = {} +CLIENT_TRIGGER_EVENT_CFG.enum_types = {} +CLIENT_TRIGGER_EVENT_CFG.fields = {CLIENT_TRIGGER_EVENT_CFG_EVENT_ID_FIELD, CLIENT_TRIGGER_EVENT_CFG_TYPE_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM1_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM2_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM3_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM4_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM5_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM6_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM7_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM8_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM9_FIELD, CLIENT_TRIGGER_EVENT_CFG_PARAM10_FIELD} +CLIENT_TRIGGER_EVENT_CFG.is_extendable = false +CLIENT_TRIGGER_EVENT_CFG.extensions = {} +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.name = "items" +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.client_trigger_event_cfgs.items" +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.number = 1 +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.index = 0 +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.label = 3 +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.has_default_value = false +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.default_value = {} +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.message_type = CLIENT_TRIGGER_EVENT_CFG +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.type = 11 +CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD.cpp_type = 10 + +CLIENT_TRIGGER_EVENT_CFGS.name = "client_trigger_event_cfgs" +CLIENT_TRIGGER_EVENT_CFGS.full_name = ".ftcfg.client_trigger_event_cfgs" +CLIENT_TRIGGER_EVENT_CFGS.nested_types = {} +CLIENT_TRIGGER_EVENT_CFGS.enum_types = {} +CLIENT_TRIGGER_EVENT_CFGS.fields = {CLIENT_TRIGGER_EVENT_CFGS_ITEMS_FIELD} +CLIENT_TRIGGER_EVENT_CFGS.is_extendable = false +CLIENT_TRIGGER_EVENT_CFGS.extensions = {} +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.name = "condition_id" +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.condition_id" +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.number = 1 +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.index = 0 +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.default_value = 0 +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.type = 5 +CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.name = "type" +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.type" +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.number = 2 +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.index = 1 +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.default_value = nil +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ECLIENTTRIGGERCONDITIONTYPE +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.type = 14 +CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD.cpp_type = 8 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.name = "param1" +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param1" +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.number = 3 +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.index = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.name = "param2" +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param2" +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.number = 4 +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.index = 3 +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.name = "param3" +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param3" +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.number = 5 +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.index = 4 +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.name = "param4" +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param4" +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.number = 6 +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.index = 5 +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.name = "param5" +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param5" +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.number = 7 +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.index = 6 +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.name = "param6" +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param6" +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.number = 8 +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.index = 7 +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.name = "param7" +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param7" +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.number = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.index = 8 +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.name = "param8" +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param8" +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.number = 10 +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.index = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.name = "param9" +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param9" +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.number = 11 +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.index = 10 +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.name = "param10" +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.full_name = ".ftcfg.client_trigger_condition_cfg.param10" +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.number = 12 +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.index = 11 +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.label = 2 +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.default_value = "" +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.type = 9 +CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_CONDITION_CFG.name = "client_trigger_condition_cfg" +CLIENT_TRIGGER_CONDITION_CFG.full_name = ".ftcfg.client_trigger_condition_cfg" +CLIENT_TRIGGER_CONDITION_CFG.nested_types = {} +CLIENT_TRIGGER_CONDITION_CFG.enum_types = {} +CLIENT_TRIGGER_CONDITION_CFG.fields = {CLIENT_TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD, CLIENT_TRIGGER_CONDITION_CFG_TYPE_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM1_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM2_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM3_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM4_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM5_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM6_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM7_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM8_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM9_FIELD, CLIENT_TRIGGER_CONDITION_CFG_PARAM10_FIELD} +CLIENT_TRIGGER_CONDITION_CFG.is_extendable = false +CLIENT_TRIGGER_CONDITION_CFG.extensions = {} +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.name = "items" +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.client_trigger_condition_cfgs.items" +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.number = 1 +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.index = 0 +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.label = 3 +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.has_default_value = false +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.default_value = {} +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.message_type = CLIENT_TRIGGER_CONDITION_CFG +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.type = 11 +CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD.cpp_type = 10 + +CLIENT_TRIGGER_CONDITION_CFGS.name = "client_trigger_condition_cfgs" +CLIENT_TRIGGER_CONDITION_CFGS.full_name = ".ftcfg.client_trigger_condition_cfgs" +CLIENT_TRIGGER_CONDITION_CFGS.nested_types = {} +CLIENT_TRIGGER_CONDITION_CFGS.enum_types = {} +CLIENT_TRIGGER_CONDITION_CFGS.fields = {CLIENT_TRIGGER_CONDITION_CFGS_ITEMS_FIELD} +CLIENT_TRIGGER_CONDITION_CFGS.is_extendable = false +CLIENT_TRIGGER_CONDITION_CFGS.extensions = {} +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.name = "action_id" +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.action_id" +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.number = 1 +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.index = 0 +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.default_value = 0 +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.type = 5 +CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.name = "type" +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.type" +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.number = 2 +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.index = 1 +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.default_value = nil +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ECLIENTTRIGGERACTIONTYPE +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.type = 14 +CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD.cpp_type = 8 + +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.name = "param1" +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param1" +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.number = 3 +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.index = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.name = "param2" +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param2" +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.number = 4 +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.index = 3 +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.name = "param3" +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param3" +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.number = 5 +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.index = 4 +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.name = "param4" +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param4" +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.number = 6 +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.index = 5 +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.name = "param5" +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param5" +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.number = 7 +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.index = 6 +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.name = "param6" +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param6" +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.number = 8 +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.index = 7 +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.name = "param7" +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param7" +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.number = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.index = 8 +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.name = "param8" +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param8" +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.number = 10 +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.index = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.name = "param9" +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param9" +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.number = 11 +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.index = 10 +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.name = "param10" +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.full_name = ".ftcfg.client_trigger_action_cfg.param10" +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.number = 12 +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.index = 11 +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.label = 2 +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.default_value = "" +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.type = 9 +CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_ACTION_CFG.name = "client_trigger_action_cfg" +CLIENT_TRIGGER_ACTION_CFG.full_name = ".ftcfg.client_trigger_action_cfg" +CLIENT_TRIGGER_ACTION_CFG.nested_types = {} +CLIENT_TRIGGER_ACTION_CFG.enum_types = {} +CLIENT_TRIGGER_ACTION_CFG.fields = {CLIENT_TRIGGER_ACTION_CFG_ACTION_ID_FIELD, CLIENT_TRIGGER_ACTION_CFG_TYPE_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM1_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM2_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM3_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM4_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM5_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM6_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM7_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM8_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM9_FIELD, CLIENT_TRIGGER_ACTION_CFG_PARAM10_FIELD} +CLIENT_TRIGGER_ACTION_CFG.is_extendable = false +CLIENT_TRIGGER_ACTION_CFG.extensions = {} +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.name = "items" +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.client_trigger_action_cfgs.items" +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.number = 1 +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.index = 0 +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.label = 3 +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.has_default_value = false +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.default_value = {} +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.message_type = CLIENT_TRIGGER_ACTION_CFG +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.type = 11 +CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +CLIENT_TRIGGER_ACTION_CFGS.name = "client_trigger_action_cfgs" +CLIENT_TRIGGER_ACTION_CFGS.full_name = ".ftcfg.client_trigger_action_cfgs" +CLIENT_TRIGGER_ACTION_CFGS.nested_types = {} +CLIENT_TRIGGER_ACTION_CFGS.enum_types = {} +CLIENT_TRIGGER_ACTION_CFGS.fields = {CLIENT_TRIGGER_ACTION_CFGS_ITEMS_FIELD} +CLIENT_TRIGGER_ACTION_CFGS.is_extendable = false +CLIENT_TRIGGER_ACTION_CFGS.extensions = {} +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.name = "name" +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.name" +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.number = 1 +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.index = 0 +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.default_value = "" +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.type = 9 +CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.name = "map_id" +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.map_id" +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.number = 2 +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.index = 1 +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.default_value = 0 +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.type = 5 +CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.cpp_type = 1 + +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.name = "type" +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.type" +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.number = 3 +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.index = 2 +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.default_value = nil +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ECLIENTTRIGGERVARIABLETYPE +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.type = 14 +CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD.cpp_type = 8 + +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.name = "is_vec" +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.is_vec" +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.number = 4 +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.index = 3 +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.default_value = 0 +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.type = 13 +CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.cpp_type = 3 + +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.name = "vec_size" +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.vec_size" +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.number = 5 +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.index = 4 +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.default_value = 0 +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.type = 13 +CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.cpp_type = 3 + +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.name = "param1" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.param1" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.number = 6 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.index = 5 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.default_value = "" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.type = 9 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.name = "param2" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.param2" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.number = 7 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.index = 6 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.default_value = "" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.type = 9 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.name = "param3" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.param3" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.number = 8 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.index = 7 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.default_value = "" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.type = 9 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.name = "param4" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.param4" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.number = 9 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.index = 8 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.default_value = "" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.type = 9 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.name = "param5" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.full_name = ".ftcfg.client_trigger_variable_cfg.param5" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.number = 10 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.index = 9 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.label = 2 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.default_value = "" +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.type = 9 +CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD.cpp_type = 9 + +CLIENT_TRIGGER_VARIABLE_CFG.name = "client_trigger_variable_cfg" +CLIENT_TRIGGER_VARIABLE_CFG.full_name = ".ftcfg.client_trigger_variable_cfg" +CLIENT_TRIGGER_VARIABLE_CFG.nested_types = {} +CLIENT_TRIGGER_VARIABLE_CFG.enum_types = {} +CLIENT_TRIGGER_VARIABLE_CFG.fields = {CLIENT_TRIGGER_VARIABLE_CFG_NAME_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_MAP_ID_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_TYPE_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_IS_VEC_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_PARAM1_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_PARAM2_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_PARAM3_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_PARAM4_FIELD, CLIENT_TRIGGER_VARIABLE_CFG_PARAM5_FIELD} +CLIENT_TRIGGER_VARIABLE_CFG.is_extendable = false +CLIENT_TRIGGER_VARIABLE_CFG.extensions = {} +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.name = "items" +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.client_trigger_variable_cfgs.items" +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.number = 1 +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.index = 0 +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.label = 3 +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.has_default_value = false +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.default_value = {} +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.message_type = CLIENT_TRIGGER_VARIABLE_CFG +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.type = 11 +CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.cpp_type = 10 + +CLIENT_TRIGGER_VARIABLE_CFGS.name = "client_trigger_variable_cfgs" +CLIENT_TRIGGER_VARIABLE_CFGS.full_name = ".ftcfg.client_trigger_variable_cfgs" +CLIENT_TRIGGER_VARIABLE_CFGS.nested_types = {} +CLIENT_TRIGGER_VARIABLE_CFGS.enum_types = {} +CLIENT_TRIGGER_VARIABLE_CFGS.fields = {CLIENT_TRIGGER_VARIABLE_CFGS_ITEMS_FIELD} +CLIENT_TRIGGER_VARIABLE_CFGS.is_extendable = false +CLIENT_TRIGGER_VARIABLE_CFGS.extensions = {} +SCENE_ORGAN_CFG_ID_FIELD.name = "id" +SCENE_ORGAN_CFG_ID_FIELD.full_name = ".ftcfg.scene_organ_cfg.id" +SCENE_ORGAN_CFG_ID_FIELD.number = 1 +SCENE_ORGAN_CFG_ID_FIELD.index = 0 +SCENE_ORGAN_CFG_ID_FIELD.label = 2 +SCENE_ORGAN_CFG_ID_FIELD.has_default_value = false +SCENE_ORGAN_CFG_ID_FIELD.default_value = 0 +SCENE_ORGAN_CFG_ID_FIELD.type = 5 +SCENE_ORGAN_CFG_ID_FIELD.cpp_type = 1 + +SCENE_ORGAN_CFG_NAME_FIELD.name = "name" +SCENE_ORGAN_CFG_NAME_FIELD.full_name = ".ftcfg.scene_organ_cfg.name" +SCENE_ORGAN_CFG_NAME_FIELD.number = 2 +SCENE_ORGAN_CFG_NAME_FIELD.index = 1 +SCENE_ORGAN_CFG_NAME_FIELD.label = 2 +SCENE_ORGAN_CFG_NAME_FIELD.has_default_value = false +SCENE_ORGAN_CFG_NAME_FIELD.default_value = 0 +SCENE_ORGAN_CFG_NAME_FIELD.type = 5 +SCENE_ORGAN_CFG_NAME_FIELD.cpp_type = 1 + +SCENE_ORGAN_CFG_MODULE_FIELD.name = "module" +SCENE_ORGAN_CFG_MODULE_FIELD.full_name = ".ftcfg.scene_organ_cfg.module" +SCENE_ORGAN_CFG_MODULE_FIELD.number = 3 +SCENE_ORGAN_CFG_MODULE_FIELD.index = 2 +SCENE_ORGAN_CFG_MODULE_FIELD.label = 2 +SCENE_ORGAN_CFG_MODULE_FIELD.has_default_value = false +SCENE_ORGAN_CFG_MODULE_FIELD.default_value = 0 +SCENE_ORGAN_CFG_MODULE_FIELD.type = 5 +SCENE_ORGAN_CFG_MODULE_FIELD.cpp_type = 1 + +SCENE_ORGAN_CFG_MAP_ID_FIELD.name = "map_id" +SCENE_ORGAN_CFG_MAP_ID_FIELD.full_name = ".ftcfg.scene_organ_cfg.map_id" +SCENE_ORGAN_CFG_MAP_ID_FIELD.number = 4 +SCENE_ORGAN_CFG_MAP_ID_FIELD.index = 3 +SCENE_ORGAN_CFG_MAP_ID_FIELD.label = 2 +SCENE_ORGAN_CFG_MAP_ID_FIELD.has_default_value = false +SCENE_ORGAN_CFG_MAP_ID_FIELD.default_value = 0 +SCENE_ORGAN_CFG_MAP_ID_FIELD.type = 5 +SCENE_ORGAN_CFG_MAP_ID_FIELD.cpp_type = 1 + +SCENE_ORGAN_CFG_POS_X_FIELD.name = "pos_x" +SCENE_ORGAN_CFG_POS_X_FIELD.full_name = ".ftcfg.scene_organ_cfg.pos_x" +SCENE_ORGAN_CFG_POS_X_FIELD.number = 5 +SCENE_ORGAN_CFG_POS_X_FIELD.index = 4 +SCENE_ORGAN_CFG_POS_X_FIELD.label = 2 +SCENE_ORGAN_CFG_POS_X_FIELD.has_default_value = false +SCENE_ORGAN_CFG_POS_X_FIELD.default_value = 0.0 +SCENE_ORGAN_CFG_POS_X_FIELD.type = 2 +SCENE_ORGAN_CFG_POS_X_FIELD.cpp_type = 6 + +SCENE_ORGAN_CFG_POS_Y_FIELD.name = "pos_y" +SCENE_ORGAN_CFG_POS_Y_FIELD.full_name = ".ftcfg.scene_organ_cfg.pos_y" +SCENE_ORGAN_CFG_POS_Y_FIELD.number = 6 +SCENE_ORGAN_CFG_POS_Y_FIELD.index = 5 +SCENE_ORGAN_CFG_POS_Y_FIELD.label = 2 +SCENE_ORGAN_CFG_POS_Y_FIELD.has_default_value = false +SCENE_ORGAN_CFG_POS_Y_FIELD.default_value = 0.0 +SCENE_ORGAN_CFG_POS_Y_FIELD.type = 2 +SCENE_ORGAN_CFG_POS_Y_FIELD.cpp_type = 6 + +SCENE_ORGAN_CFG_POS_Z_FIELD.name = "pos_z" +SCENE_ORGAN_CFG_POS_Z_FIELD.full_name = ".ftcfg.scene_organ_cfg.pos_z" +SCENE_ORGAN_CFG_POS_Z_FIELD.number = 7 +SCENE_ORGAN_CFG_POS_Z_FIELD.index = 6 +SCENE_ORGAN_CFG_POS_Z_FIELD.label = 2 +SCENE_ORGAN_CFG_POS_Z_FIELD.has_default_value = false +SCENE_ORGAN_CFG_POS_Z_FIELD.default_value = 0.0 +SCENE_ORGAN_CFG_POS_Z_FIELD.type = 2 +SCENE_ORGAN_CFG_POS_Z_FIELD.cpp_type = 6 + +SCENE_ORGAN_CFG_ORIENTATION_FIELD.name = "orientation" +SCENE_ORGAN_CFG_ORIENTATION_FIELD.full_name = ".ftcfg.scene_organ_cfg.orientation" +SCENE_ORGAN_CFG_ORIENTATION_FIELD.number = 8 +SCENE_ORGAN_CFG_ORIENTATION_FIELD.index = 7 +SCENE_ORGAN_CFG_ORIENTATION_FIELD.label = 2 +SCENE_ORGAN_CFG_ORIENTATION_FIELD.has_default_value = false +SCENE_ORGAN_CFG_ORIENTATION_FIELD.default_value = 0.0 +SCENE_ORGAN_CFG_ORIENTATION_FIELD.type = 2 +SCENE_ORGAN_CFG_ORIENTATION_FIELD.cpp_type = 6 + +SCENE_ORGAN_CFG_SKILL_ID_FIELD.name = "skill_id" +SCENE_ORGAN_CFG_SKILL_ID_FIELD.full_name = ".ftcfg.scene_organ_cfg.skill_id" +SCENE_ORGAN_CFG_SKILL_ID_FIELD.number = 9 +SCENE_ORGAN_CFG_SKILL_ID_FIELD.index = 8 +SCENE_ORGAN_CFG_SKILL_ID_FIELD.label = 2 +SCENE_ORGAN_CFG_SKILL_ID_FIELD.has_default_value = false +SCENE_ORGAN_CFG_SKILL_ID_FIELD.default_value = 0 +SCENE_ORGAN_CFG_SKILL_ID_FIELD.type = 5 +SCENE_ORGAN_CFG_SKILL_ID_FIELD.cpp_type = 1 + +SCENE_ORGAN_CFG_ENABLED_FIELD.name = "enabled" +SCENE_ORGAN_CFG_ENABLED_FIELD.full_name = ".ftcfg.scene_organ_cfg.enabled" +SCENE_ORGAN_CFG_ENABLED_FIELD.number = 10 +SCENE_ORGAN_CFG_ENABLED_FIELD.index = 9 +SCENE_ORGAN_CFG_ENABLED_FIELD.label = 2 +SCENE_ORGAN_CFG_ENABLED_FIELD.has_default_value = false +SCENE_ORGAN_CFG_ENABLED_FIELD.default_value = 0 +SCENE_ORGAN_CFG_ENABLED_FIELD.type = 5 +SCENE_ORGAN_CFG_ENABLED_FIELD.cpp_type = 1 + +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.name = "show_name" +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.full_name = ".ftcfg.scene_organ_cfg.show_name" +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.number = 11 +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.index = 10 +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.label = 2 +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.has_default_value = false +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.default_value = 0 +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.type = 5 +SCENE_ORGAN_CFG_SHOW_NAME_FIELD.cpp_type = 1 + +SCENE_ORGAN_CFG.name = "scene_organ_cfg" +SCENE_ORGAN_CFG.full_name = ".ftcfg.scene_organ_cfg" +SCENE_ORGAN_CFG.nested_types = {} +SCENE_ORGAN_CFG.enum_types = {} +SCENE_ORGAN_CFG.fields = {SCENE_ORGAN_CFG_ID_FIELD, SCENE_ORGAN_CFG_NAME_FIELD, SCENE_ORGAN_CFG_MODULE_FIELD, SCENE_ORGAN_CFG_MAP_ID_FIELD, SCENE_ORGAN_CFG_POS_X_FIELD, SCENE_ORGAN_CFG_POS_Y_FIELD, SCENE_ORGAN_CFG_POS_Z_FIELD, SCENE_ORGAN_CFG_ORIENTATION_FIELD, SCENE_ORGAN_CFG_SKILL_ID_FIELD, SCENE_ORGAN_CFG_ENABLED_FIELD, SCENE_ORGAN_CFG_SHOW_NAME_FIELD} +SCENE_ORGAN_CFG.is_extendable = false +SCENE_ORGAN_CFG.extensions = {} +SCENE_ORGAN_CFGS_ITEMS_FIELD.name = "items" +SCENE_ORGAN_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_organ_cfgs.items" +SCENE_ORGAN_CFGS_ITEMS_FIELD.number = 1 +SCENE_ORGAN_CFGS_ITEMS_FIELD.index = 0 +SCENE_ORGAN_CFGS_ITEMS_FIELD.label = 3 +SCENE_ORGAN_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_ORGAN_CFGS_ITEMS_FIELD.default_value = {} +SCENE_ORGAN_CFGS_ITEMS_FIELD.message_type = SCENE_ORGAN_CFG +SCENE_ORGAN_CFGS_ITEMS_FIELD.type = 11 +SCENE_ORGAN_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_ORGAN_CFGS.name = "scene_organ_cfgs" +SCENE_ORGAN_CFGS.full_name = ".ftcfg.scene_organ_cfgs" +SCENE_ORGAN_CFGS.nested_types = {} +SCENE_ORGAN_CFGS.enum_types = {} +SCENE_ORGAN_CFGS.fields = {SCENE_ORGAN_CFGS_ITEMS_FIELD} +SCENE_ORGAN_CFGS.is_extendable = false +SCENE_ORGAN_CFGS.extensions = {} +MAP_SIGNS_CFG_ID_FIELD.name = "id" +MAP_SIGNS_CFG_ID_FIELD.full_name = ".ftcfg.map_signs_cfg.id" +MAP_SIGNS_CFG_ID_FIELD.number = 1 +MAP_SIGNS_CFG_ID_FIELD.index = 0 +MAP_SIGNS_CFG_ID_FIELD.label = 2 +MAP_SIGNS_CFG_ID_FIELD.has_default_value = false +MAP_SIGNS_CFG_ID_FIELD.default_value = 0 +MAP_SIGNS_CFG_ID_FIELD.type = 5 +MAP_SIGNS_CFG_ID_FIELD.cpp_type = 1 + +MAP_SIGNS_CFG_NAME_FIELD.name = "name" +MAP_SIGNS_CFG_NAME_FIELD.full_name = ".ftcfg.map_signs_cfg.name" +MAP_SIGNS_CFG_NAME_FIELD.number = 2 +MAP_SIGNS_CFG_NAME_FIELD.index = 1 +MAP_SIGNS_CFG_NAME_FIELD.label = 2 +MAP_SIGNS_CFG_NAME_FIELD.has_default_value = false +MAP_SIGNS_CFG_NAME_FIELD.default_value = 0 +MAP_SIGNS_CFG_NAME_FIELD.type = 5 +MAP_SIGNS_CFG_NAME_FIELD.cpp_type = 1 + +MAP_SIGNS_CFG_MAP_ID_FIELD.name = "map_id" +MAP_SIGNS_CFG_MAP_ID_FIELD.full_name = ".ftcfg.map_signs_cfg.map_id" +MAP_SIGNS_CFG_MAP_ID_FIELD.number = 3 +MAP_SIGNS_CFG_MAP_ID_FIELD.index = 2 +MAP_SIGNS_CFG_MAP_ID_FIELD.label = 2 +MAP_SIGNS_CFG_MAP_ID_FIELD.has_default_value = false +MAP_SIGNS_CFG_MAP_ID_FIELD.default_value = 0 +MAP_SIGNS_CFG_MAP_ID_FIELD.type = 5 +MAP_SIGNS_CFG_MAP_ID_FIELD.cpp_type = 1 + +MAP_SIGNS_CFG_TYPE_FIELD.name = "type" +MAP_SIGNS_CFG_TYPE_FIELD.full_name = ".ftcfg.map_signs_cfg.type" +MAP_SIGNS_CFG_TYPE_FIELD.number = 4 +MAP_SIGNS_CFG_TYPE_FIELD.index = 3 +MAP_SIGNS_CFG_TYPE_FIELD.label = 2 +MAP_SIGNS_CFG_TYPE_FIELD.has_default_value = false +MAP_SIGNS_CFG_TYPE_FIELD.default_value = 0 +MAP_SIGNS_CFG_TYPE_FIELD.type = 5 +MAP_SIGNS_CFG_TYPE_FIELD.cpp_type = 1 + +MAP_SIGNS_CFG_SUB_TYPE_FIELD.name = "sub_type" +MAP_SIGNS_CFG_SUB_TYPE_FIELD.full_name = ".ftcfg.map_signs_cfg.sub_type" +MAP_SIGNS_CFG_SUB_TYPE_FIELD.number = 5 +MAP_SIGNS_CFG_SUB_TYPE_FIELD.index = 4 +MAP_SIGNS_CFG_SUB_TYPE_FIELD.label = 2 +MAP_SIGNS_CFG_SUB_TYPE_FIELD.has_default_value = false +MAP_SIGNS_CFG_SUB_TYPE_FIELD.default_value = nil +MAP_SIGNS_CFG_SUB_TYPE_FIELD.enum_type = config_predefine_pb.EACTIVETYPE +MAP_SIGNS_CFG_SUB_TYPE_FIELD.type = 14 +MAP_SIGNS_CFG_SUB_TYPE_FIELD.cpp_type = 8 + +MAP_SIGNS_CFG_AUTO_ID_FIELD.name = "auto_id" +MAP_SIGNS_CFG_AUTO_ID_FIELD.full_name = ".ftcfg.map_signs_cfg.auto_id" +MAP_SIGNS_CFG_AUTO_ID_FIELD.number = 6 +MAP_SIGNS_CFG_AUTO_ID_FIELD.index = 5 +MAP_SIGNS_CFG_AUTO_ID_FIELD.label = 2 +MAP_SIGNS_CFG_AUTO_ID_FIELD.has_default_value = false +MAP_SIGNS_CFG_AUTO_ID_FIELD.default_value = 0 +MAP_SIGNS_CFG_AUTO_ID_FIELD.type = 5 +MAP_SIGNS_CFG_AUTO_ID_FIELD.cpp_type = 1 + +MAP_SIGNS_CFG_POS_X_FIELD.name = "pos_x" +MAP_SIGNS_CFG_POS_X_FIELD.full_name = ".ftcfg.map_signs_cfg.pos_x" +MAP_SIGNS_CFG_POS_X_FIELD.number = 7 +MAP_SIGNS_CFG_POS_X_FIELD.index = 6 +MAP_SIGNS_CFG_POS_X_FIELD.label = 2 +MAP_SIGNS_CFG_POS_X_FIELD.has_default_value = false +MAP_SIGNS_CFG_POS_X_FIELD.default_value = 0.0 +MAP_SIGNS_CFG_POS_X_FIELD.type = 2 +MAP_SIGNS_CFG_POS_X_FIELD.cpp_type = 6 + +MAP_SIGNS_CFG_POS_Y_FIELD.name = "pos_y" +MAP_SIGNS_CFG_POS_Y_FIELD.full_name = ".ftcfg.map_signs_cfg.pos_y" +MAP_SIGNS_CFG_POS_Y_FIELD.number = 8 +MAP_SIGNS_CFG_POS_Y_FIELD.index = 7 +MAP_SIGNS_CFG_POS_Y_FIELD.label = 2 +MAP_SIGNS_CFG_POS_Y_FIELD.has_default_value = false +MAP_SIGNS_CFG_POS_Y_FIELD.default_value = 0.0 +MAP_SIGNS_CFG_POS_Y_FIELD.type = 2 +MAP_SIGNS_CFG_POS_Y_FIELD.cpp_type = 6 + +MAP_SIGNS_CFG_POS_Z_FIELD.name = "pos_z" +MAP_SIGNS_CFG_POS_Z_FIELD.full_name = ".ftcfg.map_signs_cfg.pos_z" +MAP_SIGNS_CFG_POS_Z_FIELD.number = 9 +MAP_SIGNS_CFG_POS_Z_FIELD.index = 8 +MAP_SIGNS_CFG_POS_Z_FIELD.label = 2 +MAP_SIGNS_CFG_POS_Z_FIELD.has_default_value = false +MAP_SIGNS_CFG_POS_Z_FIELD.default_value = 0.0 +MAP_SIGNS_CFG_POS_Z_FIELD.type = 2 +MAP_SIGNS_CFG_POS_Z_FIELD.cpp_type = 6 + +MAP_SIGNS_CFG_IS_AUTO_FIELD.name = "is_auto" +MAP_SIGNS_CFG_IS_AUTO_FIELD.full_name = ".ftcfg.map_signs_cfg.is_auto" +MAP_SIGNS_CFG_IS_AUTO_FIELD.number = 10 +MAP_SIGNS_CFG_IS_AUTO_FIELD.index = 9 +MAP_SIGNS_CFG_IS_AUTO_FIELD.label = 2 +MAP_SIGNS_CFG_IS_AUTO_FIELD.has_default_value = false +MAP_SIGNS_CFG_IS_AUTO_FIELD.default_value = 0 +MAP_SIGNS_CFG_IS_AUTO_FIELD.type = 5 +MAP_SIGNS_CFG_IS_AUTO_FIELD.cpp_type = 1 + +MAP_SIGNS_CFG_IS_SHOW_FIELD.name = "is_show" +MAP_SIGNS_CFG_IS_SHOW_FIELD.full_name = ".ftcfg.map_signs_cfg.is_show" +MAP_SIGNS_CFG_IS_SHOW_FIELD.number = 11 +MAP_SIGNS_CFG_IS_SHOW_FIELD.index = 10 +MAP_SIGNS_CFG_IS_SHOW_FIELD.label = 2 +MAP_SIGNS_CFG_IS_SHOW_FIELD.has_default_value = false +MAP_SIGNS_CFG_IS_SHOW_FIELD.default_value = 0 +MAP_SIGNS_CFG_IS_SHOW_FIELD.type = 5 +MAP_SIGNS_CFG_IS_SHOW_FIELD.cpp_type = 1 + +MAP_SIGNS_CFG.name = "map_signs_cfg" +MAP_SIGNS_CFG.full_name = ".ftcfg.map_signs_cfg" +MAP_SIGNS_CFG.nested_types = {} +MAP_SIGNS_CFG.enum_types = {} +MAP_SIGNS_CFG.fields = {MAP_SIGNS_CFG_ID_FIELD, MAP_SIGNS_CFG_NAME_FIELD, MAP_SIGNS_CFG_MAP_ID_FIELD, MAP_SIGNS_CFG_TYPE_FIELD, MAP_SIGNS_CFG_SUB_TYPE_FIELD, MAP_SIGNS_CFG_AUTO_ID_FIELD, MAP_SIGNS_CFG_POS_X_FIELD, MAP_SIGNS_CFG_POS_Y_FIELD, MAP_SIGNS_CFG_POS_Z_FIELD, MAP_SIGNS_CFG_IS_AUTO_FIELD, MAP_SIGNS_CFG_IS_SHOW_FIELD} +MAP_SIGNS_CFG.is_extendable = false +MAP_SIGNS_CFG.extensions = {} +MAP_SIGNS_CFGS_ITEMS_FIELD.name = "items" +MAP_SIGNS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.map_signs_cfgs.items" +MAP_SIGNS_CFGS_ITEMS_FIELD.number = 1 +MAP_SIGNS_CFGS_ITEMS_FIELD.index = 0 +MAP_SIGNS_CFGS_ITEMS_FIELD.label = 3 +MAP_SIGNS_CFGS_ITEMS_FIELD.has_default_value = false +MAP_SIGNS_CFGS_ITEMS_FIELD.default_value = {} +MAP_SIGNS_CFGS_ITEMS_FIELD.message_type = MAP_SIGNS_CFG +MAP_SIGNS_CFGS_ITEMS_FIELD.type = 11 +MAP_SIGNS_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAP_SIGNS_CFGS.name = "map_signs_cfgs" +MAP_SIGNS_CFGS.full_name = ".ftcfg.map_signs_cfgs" +MAP_SIGNS_CFGS.nested_types = {} +MAP_SIGNS_CFGS.enum_types = {} +MAP_SIGNS_CFGS.fields = {MAP_SIGNS_CFGS_ITEMS_FIELD} +MAP_SIGNS_CFGS.is_extendable = false +MAP_SIGNS_CFGS.extensions = {} +SCENE_TRIGGER_CFG_NAME_FIELD.name = "name" +SCENE_TRIGGER_CFG_NAME_FIELD.full_name = ".ftcfg.scene_trigger_cfg.name" +SCENE_TRIGGER_CFG_NAME_FIELD.number = 1 +SCENE_TRIGGER_CFG_NAME_FIELD.index = 0 +SCENE_TRIGGER_CFG_NAME_FIELD.label = 2 +SCENE_TRIGGER_CFG_NAME_FIELD.has_default_value = false +SCENE_TRIGGER_CFG_NAME_FIELD.default_value = "" +SCENE_TRIGGER_CFG_NAME_FIELD.type = 9 +SCENE_TRIGGER_CFG_NAME_FIELD.cpp_type = 9 + +SCENE_TRIGGER_CFG_MAP_ID_FIELD.name = "map_id" +SCENE_TRIGGER_CFG_MAP_ID_FIELD.full_name = ".ftcfg.scene_trigger_cfg.map_id" +SCENE_TRIGGER_CFG_MAP_ID_FIELD.number = 2 +SCENE_TRIGGER_CFG_MAP_ID_FIELD.index = 1 +SCENE_TRIGGER_CFG_MAP_ID_FIELD.label = 2 +SCENE_TRIGGER_CFG_MAP_ID_FIELD.has_default_value = false +SCENE_TRIGGER_CFG_MAP_ID_FIELD.default_value = 0 +SCENE_TRIGGER_CFG_MAP_ID_FIELD.type = 5 +SCENE_TRIGGER_CFG_MAP_ID_FIELD.cpp_type = 1 + +SCENE_TRIGGER_CFG_EVENTS_FIELD.name = "events" +SCENE_TRIGGER_CFG_EVENTS_FIELD.full_name = ".ftcfg.scene_trigger_cfg.events" +SCENE_TRIGGER_CFG_EVENTS_FIELD.number = 3 +SCENE_TRIGGER_CFG_EVENTS_FIELD.index = 2 +SCENE_TRIGGER_CFG_EVENTS_FIELD.label = 3 +SCENE_TRIGGER_CFG_EVENTS_FIELD.has_default_value = false +SCENE_TRIGGER_CFG_EVENTS_FIELD.default_value = {} +SCENE_TRIGGER_CFG_EVENTS_FIELD.type = 5 +SCENE_TRIGGER_CFG_EVENTS_FIELD.cpp_type = 1 + +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.name = "conditions" +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.full_name = ".ftcfg.scene_trigger_cfg.conditions" +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.number = 4 +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.index = 3 +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.label = 3 +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.has_default_value = false +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.default_value = {} +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.type = 5 +SCENE_TRIGGER_CFG_CONDITIONS_FIELD.cpp_type = 1 + +SCENE_TRIGGER_CFG_ACTIONS_FIELD.name = "actions" +SCENE_TRIGGER_CFG_ACTIONS_FIELD.full_name = ".ftcfg.scene_trigger_cfg.actions" +SCENE_TRIGGER_CFG_ACTIONS_FIELD.number = 5 +SCENE_TRIGGER_CFG_ACTIONS_FIELD.index = 4 +SCENE_TRIGGER_CFG_ACTIONS_FIELD.label = 3 +SCENE_TRIGGER_CFG_ACTIONS_FIELD.has_default_value = false +SCENE_TRIGGER_CFG_ACTIONS_FIELD.default_value = {} +SCENE_TRIGGER_CFG_ACTIONS_FIELD.type = 5 +SCENE_TRIGGER_CFG_ACTIONS_FIELD.cpp_type = 1 + +SCENE_TRIGGER_CFG_OPENED_FIELD.name = "opened" +SCENE_TRIGGER_CFG_OPENED_FIELD.full_name = ".ftcfg.scene_trigger_cfg.opened" +SCENE_TRIGGER_CFG_OPENED_FIELD.number = 6 +SCENE_TRIGGER_CFG_OPENED_FIELD.index = 5 +SCENE_TRIGGER_CFG_OPENED_FIELD.label = 2 +SCENE_TRIGGER_CFG_OPENED_FIELD.has_default_value = false +SCENE_TRIGGER_CFG_OPENED_FIELD.default_value = 0 +SCENE_TRIGGER_CFG_OPENED_FIELD.type = 5 +SCENE_TRIGGER_CFG_OPENED_FIELD.cpp_type = 1 + +SCENE_TRIGGER_CFG.name = "scene_trigger_cfg" +SCENE_TRIGGER_CFG.full_name = ".ftcfg.scene_trigger_cfg" +SCENE_TRIGGER_CFG.nested_types = {} +SCENE_TRIGGER_CFG.enum_types = {} +SCENE_TRIGGER_CFG.fields = {SCENE_TRIGGER_CFG_NAME_FIELD, SCENE_TRIGGER_CFG_MAP_ID_FIELD, SCENE_TRIGGER_CFG_EVENTS_FIELD, SCENE_TRIGGER_CFG_CONDITIONS_FIELD, SCENE_TRIGGER_CFG_ACTIONS_FIELD, SCENE_TRIGGER_CFG_OPENED_FIELD} +SCENE_TRIGGER_CFG.is_extendable = false +SCENE_TRIGGER_CFG.extensions = {} +SCENE_TRIGGER_CFGS_ITEMS_FIELD.name = "items" +SCENE_TRIGGER_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_trigger_cfgs.items" +SCENE_TRIGGER_CFGS_ITEMS_FIELD.number = 1 +SCENE_TRIGGER_CFGS_ITEMS_FIELD.index = 0 +SCENE_TRIGGER_CFGS_ITEMS_FIELD.label = 3 +SCENE_TRIGGER_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_TRIGGER_CFGS_ITEMS_FIELD.default_value = {} +SCENE_TRIGGER_CFGS_ITEMS_FIELD.message_type = SCENE_TRIGGER_CFG +SCENE_TRIGGER_CFGS_ITEMS_FIELD.type = 11 +SCENE_TRIGGER_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_TRIGGER_CFGS.name = "scene_trigger_cfgs" +SCENE_TRIGGER_CFGS.full_name = ".ftcfg.scene_trigger_cfgs" +SCENE_TRIGGER_CFGS.nested_types = {} +SCENE_TRIGGER_CFGS.enum_types = {} +SCENE_TRIGGER_CFGS.fields = {SCENE_TRIGGER_CFGS_ITEMS_FIELD} +SCENE_TRIGGER_CFGS.is_extendable = false +SCENE_TRIGGER_CFGS.extensions = {} +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.name = "event_id" +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.full_name = ".ftcfg.trigger_event_cfg.event_id" +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.number = 1 +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.index = 0 +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.label = 2 +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.default_value = 0 +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.type = 5 +TRIGGER_EVENT_CFG_EVENT_ID_FIELD.cpp_type = 1 + +TRIGGER_EVENT_CFG_TYPE_FIELD.name = "type" +TRIGGER_EVENT_CFG_TYPE_FIELD.full_name = ".ftcfg.trigger_event_cfg.type" +TRIGGER_EVENT_CFG_TYPE_FIELD.number = 2 +TRIGGER_EVENT_CFG_TYPE_FIELD.index = 1 +TRIGGER_EVENT_CFG_TYPE_FIELD.label = 2 +TRIGGER_EVENT_CFG_TYPE_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_TYPE_FIELD.default_value = nil +TRIGGER_EVENT_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ETRIGGEREVENTTYPE +TRIGGER_EVENT_CFG_TYPE_FIELD.type = 14 +TRIGGER_EVENT_CFG_TYPE_FIELD.cpp_type = 8 + +TRIGGER_EVENT_CFG_PARAM1_FIELD.name = "param1" +TRIGGER_EVENT_CFG_PARAM1_FIELD.full_name = ".ftcfg.trigger_event_cfg.param1" +TRIGGER_EVENT_CFG_PARAM1_FIELD.number = 3 +TRIGGER_EVENT_CFG_PARAM1_FIELD.index = 2 +TRIGGER_EVENT_CFG_PARAM1_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM1_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM1_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM1_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM1_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM2_FIELD.name = "param2" +TRIGGER_EVENT_CFG_PARAM2_FIELD.full_name = ".ftcfg.trigger_event_cfg.param2" +TRIGGER_EVENT_CFG_PARAM2_FIELD.number = 4 +TRIGGER_EVENT_CFG_PARAM2_FIELD.index = 3 +TRIGGER_EVENT_CFG_PARAM2_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM2_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM2_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM2_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM2_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM3_FIELD.name = "param3" +TRIGGER_EVENT_CFG_PARAM3_FIELD.full_name = ".ftcfg.trigger_event_cfg.param3" +TRIGGER_EVENT_CFG_PARAM3_FIELD.number = 5 +TRIGGER_EVENT_CFG_PARAM3_FIELD.index = 4 +TRIGGER_EVENT_CFG_PARAM3_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM3_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM3_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM3_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM3_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM4_FIELD.name = "param4" +TRIGGER_EVENT_CFG_PARAM4_FIELD.full_name = ".ftcfg.trigger_event_cfg.param4" +TRIGGER_EVENT_CFG_PARAM4_FIELD.number = 6 +TRIGGER_EVENT_CFG_PARAM4_FIELD.index = 5 +TRIGGER_EVENT_CFG_PARAM4_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM4_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM4_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM4_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM4_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM5_FIELD.name = "param5" +TRIGGER_EVENT_CFG_PARAM5_FIELD.full_name = ".ftcfg.trigger_event_cfg.param5" +TRIGGER_EVENT_CFG_PARAM5_FIELD.number = 7 +TRIGGER_EVENT_CFG_PARAM5_FIELD.index = 6 +TRIGGER_EVENT_CFG_PARAM5_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM5_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM5_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM5_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM5_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM6_FIELD.name = "param6" +TRIGGER_EVENT_CFG_PARAM6_FIELD.full_name = ".ftcfg.trigger_event_cfg.param6" +TRIGGER_EVENT_CFG_PARAM6_FIELD.number = 8 +TRIGGER_EVENT_CFG_PARAM6_FIELD.index = 7 +TRIGGER_EVENT_CFG_PARAM6_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM6_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM6_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM6_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM6_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM7_FIELD.name = "param7" +TRIGGER_EVENT_CFG_PARAM7_FIELD.full_name = ".ftcfg.trigger_event_cfg.param7" +TRIGGER_EVENT_CFG_PARAM7_FIELD.number = 9 +TRIGGER_EVENT_CFG_PARAM7_FIELD.index = 8 +TRIGGER_EVENT_CFG_PARAM7_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM7_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM7_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM7_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM7_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM8_FIELD.name = "param8" +TRIGGER_EVENT_CFG_PARAM8_FIELD.full_name = ".ftcfg.trigger_event_cfg.param8" +TRIGGER_EVENT_CFG_PARAM8_FIELD.number = 10 +TRIGGER_EVENT_CFG_PARAM8_FIELD.index = 9 +TRIGGER_EVENT_CFG_PARAM8_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM8_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM8_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM8_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM8_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM9_FIELD.name = "param9" +TRIGGER_EVENT_CFG_PARAM9_FIELD.full_name = ".ftcfg.trigger_event_cfg.param9" +TRIGGER_EVENT_CFG_PARAM9_FIELD.number = 11 +TRIGGER_EVENT_CFG_PARAM9_FIELD.index = 10 +TRIGGER_EVENT_CFG_PARAM9_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM9_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM9_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM9_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM9_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG_PARAM10_FIELD.name = "param10" +TRIGGER_EVENT_CFG_PARAM10_FIELD.full_name = ".ftcfg.trigger_event_cfg.param10" +TRIGGER_EVENT_CFG_PARAM10_FIELD.number = 12 +TRIGGER_EVENT_CFG_PARAM10_FIELD.index = 11 +TRIGGER_EVENT_CFG_PARAM10_FIELD.label = 2 +TRIGGER_EVENT_CFG_PARAM10_FIELD.has_default_value = false +TRIGGER_EVENT_CFG_PARAM10_FIELD.default_value = "" +TRIGGER_EVENT_CFG_PARAM10_FIELD.type = 9 +TRIGGER_EVENT_CFG_PARAM10_FIELD.cpp_type = 9 + +TRIGGER_EVENT_CFG.name = "trigger_event_cfg" +TRIGGER_EVENT_CFG.full_name = ".ftcfg.trigger_event_cfg" +TRIGGER_EVENT_CFG.nested_types = {} +TRIGGER_EVENT_CFG.enum_types = {} +TRIGGER_EVENT_CFG.fields = {TRIGGER_EVENT_CFG_EVENT_ID_FIELD, TRIGGER_EVENT_CFG_TYPE_FIELD, TRIGGER_EVENT_CFG_PARAM1_FIELD, TRIGGER_EVENT_CFG_PARAM2_FIELD, TRIGGER_EVENT_CFG_PARAM3_FIELD, TRIGGER_EVENT_CFG_PARAM4_FIELD, TRIGGER_EVENT_CFG_PARAM5_FIELD, TRIGGER_EVENT_CFG_PARAM6_FIELD, TRIGGER_EVENT_CFG_PARAM7_FIELD, TRIGGER_EVENT_CFG_PARAM8_FIELD, TRIGGER_EVENT_CFG_PARAM9_FIELD, TRIGGER_EVENT_CFG_PARAM10_FIELD} +TRIGGER_EVENT_CFG.is_extendable = false +TRIGGER_EVENT_CFG.extensions = {} +TRIGGER_EVENT_CFGS_ITEMS_FIELD.name = "items" +TRIGGER_EVENT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trigger_event_cfgs.items" +TRIGGER_EVENT_CFGS_ITEMS_FIELD.number = 1 +TRIGGER_EVENT_CFGS_ITEMS_FIELD.index = 0 +TRIGGER_EVENT_CFGS_ITEMS_FIELD.label = 3 +TRIGGER_EVENT_CFGS_ITEMS_FIELD.has_default_value = false +TRIGGER_EVENT_CFGS_ITEMS_FIELD.default_value = {} +TRIGGER_EVENT_CFGS_ITEMS_FIELD.message_type = TRIGGER_EVENT_CFG +TRIGGER_EVENT_CFGS_ITEMS_FIELD.type = 11 +TRIGGER_EVENT_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRIGGER_EVENT_CFGS.name = "trigger_event_cfgs" +TRIGGER_EVENT_CFGS.full_name = ".ftcfg.trigger_event_cfgs" +TRIGGER_EVENT_CFGS.nested_types = {} +TRIGGER_EVENT_CFGS.enum_types = {} +TRIGGER_EVENT_CFGS.fields = {TRIGGER_EVENT_CFGS_ITEMS_FIELD} +TRIGGER_EVENT_CFGS.is_extendable = false +TRIGGER_EVENT_CFGS.extensions = {} +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.name = "condition_id" +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.full_name = ".ftcfg.trigger_condition_cfg.condition_id" +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.number = 1 +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.index = 0 +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.label = 2 +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.default_value = 0 +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.type = 5 +TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD.cpp_type = 1 + +TRIGGER_CONDITION_CFG_TYPE_FIELD.name = "type" +TRIGGER_CONDITION_CFG_TYPE_FIELD.full_name = ".ftcfg.trigger_condition_cfg.type" +TRIGGER_CONDITION_CFG_TYPE_FIELD.number = 2 +TRIGGER_CONDITION_CFG_TYPE_FIELD.index = 1 +TRIGGER_CONDITION_CFG_TYPE_FIELD.label = 2 +TRIGGER_CONDITION_CFG_TYPE_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_TYPE_FIELD.default_value = nil +TRIGGER_CONDITION_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ETRIGGERCONDITIONTYPE +TRIGGER_CONDITION_CFG_TYPE_FIELD.type = 14 +TRIGGER_CONDITION_CFG_TYPE_FIELD.cpp_type = 8 + +TRIGGER_CONDITION_CFG_PARAM1_FIELD.name = "param1" +TRIGGER_CONDITION_CFG_PARAM1_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param1" +TRIGGER_CONDITION_CFG_PARAM1_FIELD.number = 3 +TRIGGER_CONDITION_CFG_PARAM1_FIELD.index = 2 +TRIGGER_CONDITION_CFG_PARAM1_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM1_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM1_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM1_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM1_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM2_FIELD.name = "param2" +TRIGGER_CONDITION_CFG_PARAM2_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param2" +TRIGGER_CONDITION_CFG_PARAM2_FIELD.number = 4 +TRIGGER_CONDITION_CFG_PARAM2_FIELD.index = 3 +TRIGGER_CONDITION_CFG_PARAM2_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM2_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM2_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM2_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM2_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM3_FIELD.name = "param3" +TRIGGER_CONDITION_CFG_PARAM3_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param3" +TRIGGER_CONDITION_CFG_PARAM3_FIELD.number = 5 +TRIGGER_CONDITION_CFG_PARAM3_FIELD.index = 4 +TRIGGER_CONDITION_CFG_PARAM3_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM3_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM3_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM3_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM3_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM4_FIELD.name = "param4" +TRIGGER_CONDITION_CFG_PARAM4_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param4" +TRIGGER_CONDITION_CFG_PARAM4_FIELD.number = 6 +TRIGGER_CONDITION_CFG_PARAM4_FIELD.index = 5 +TRIGGER_CONDITION_CFG_PARAM4_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM4_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM4_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM4_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM4_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM5_FIELD.name = "param5" +TRIGGER_CONDITION_CFG_PARAM5_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param5" +TRIGGER_CONDITION_CFG_PARAM5_FIELD.number = 7 +TRIGGER_CONDITION_CFG_PARAM5_FIELD.index = 6 +TRIGGER_CONDITION_CFG_PARAM5_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM5_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM5_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM5_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM5_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM6_FIELD.name = "param6" +TRIGGER_CONDITION_CFG_PARAM6_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param6" +TRIGGER_CONDITION_CFG_PARAM6_FIELD.number = 8 +TRIGGER_CONDITION_CFG_PARAM6_FIELD.index = 7 +TRIGGER_CONDITION_CFG_PARAM6_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM6_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM6_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM6_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM6_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM7_FIELD.name = "param7" +TRIGGER_CONDITION_CFG_PARAM7_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param7" +TRIGGER_CONDITION_CFG_PARAM7_FIELD.number = 9 +TRIGGER_CONDITION_CFG_PARAM7_FIELD.index = 8 +TRIGGER_CONDITION_CFG_PARAM7_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM7_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM7_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM7_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM7_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM8_FIELD.name = "param8" +TRIGGER_CONDITION_CFG_PARAM8_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param8" +TRIGGER_CONDITION_CFG_PARAM8_FIELD.number = 10 +TRIGGER_CONDITION_CFG_PARAM8_FIELD.index = 9 +TRIGGER_CONDITION_CFG_PARAM8_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM8_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM8_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM8_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM8_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM9_FIELD.name = "param9" +TRIGGER_CONDITION_CFG_PARAM9_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param9" +TRIGGER_CONDITION_CFG_PARAM9_FIELD.number = 11 +TRIGGER_CONDITION_CFG_PARAM9_FIELD.index = 10 +TRIGGER_CONDITION_CFG_PARAM9_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM9_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM9_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM9_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM9_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG_PARAM10_FIELD.name = "param10" +TRIGGER_CONDITION_CFG_PARAM10_FIELD.full_name = ".ftcfg.trigger_condition_cfg.param10" +TRIGGER_CONDITION_CFG_PARAM10_FIELD.number = 12 +TRIGGER_CONDITION_CFG_PARAM10_FIELD.index = 11 +TRIGGER_CONDITION_CFG_PARAM10_FIELD.label = 2 +TRIGGER_CONDITION_CFG_PARAM10_FIELD.has_default_value = false +TRIGGER_CONDITION_CFG_PARAM10_FIELD.default_value = "" +TRIGGER_CONDITION_CFG_PARAM10_FIELD.type = 9 +TRIGGER_CONDITION_CFG_PARAM10_FIELD.cpp_type = 9 + +TRIGGER_CONDITION_CFG.name = "trigger_condition_cfg" +TRIGGER_CONDITION_CFG.full_name = ".ftcfg.trigger_condition_cfg" +TRIGGER_CONDITION_CFG.nested_types = {} +TRIGGER_CONDITION_CFG.enum_types = {} +TRIGGER_CONDITION_CFG.fields = {TRIGGER_CONDITION_CFG_CONDITION_ID_FIELD, TRIGGER_CONDITION_CFG_TYPE_FIELD, TRIGGER_CONDITION_CFG_PARAM1_FIELD, TRIGGER_CONDITION_CFG_PARAM2_FIELD, TRIGGER_CONDITION_CFG_PARAM3_FIELD, TRIGGER_CONDITION_CFG_PARAM4_FIELD, TRIGGER_CONDITION_CFG_PARAM5_FIELD, TRIGGER_CONDITION_CFG_PARAM6_FIELD, TRIGGER_CONDITION_CFG_PARAM7_FIELD, TRIGGER_CONDITION_CFG_PARAM8_FIELD, TRIGGER_CONDITION_CFG_PARAM9_FIELD, TRIGGER_CONDITION_CFG_PARAM10_FIELD} +TRIGGER_CONDITION_CFG.is_extendable = false +TRIGGER_CONDITION_CFG.extensions = {} +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.name = "items" +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trigger_condition_cfgs.items" +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.number = 1 +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.index = 0 +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.label = 3 +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.has_default_value = false +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.default_value = {} +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.message_type = TRIGGER_CONDITION_CFG +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.type = 11 +TRIGGER_CONDITION_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRIGGER_CONDITION_CFGS.name = "trigger_condition_cfgs" +TRIGGER_CONDITION_CFGS.full_name = ".ftcfg.trigger_condition_cfgs" +TRIGGER_CONDITION_CFGS.nested_types = {} +TRIGGER_CONDITION_CFGS.enum_types = {} +TRIGGER_CONDITION_CFGS.fields = {TRIGGER_CONDITION_CFGS_ITEMS_FIELD} +TRIGGER_CONDITION_CFGS.is_extendable = false +TRIGGER_CONDITION_CFGS.extensions = {} +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.name = "action_id" +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.full_name = ".ftcfg.trigger_action_cfg.action_id" +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.number = 1 +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.index = 0 +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.label = 2 +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.default_value = 0 +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.type = 5 +TRIGGER_ACTION_CFG_ACTION_ID_FIELD.cpp_type = 1 + +TRIGGER_ACTION_CFG_TYPE_FIELD.name = "type" +TRIGGER_ACTION_CFG_TYPE_FIELD.full_name = ".ftcfg.trigger_action_cfg.type" +TRIGGER_ACTION_CFG_TYPE_FIELD.number = 2 +TRIGGER_ACTION_CFG_TYPE_FIELD.index = 1 +TRIGGER_ACTION_CFG_TYPE_FIELD.label = 2 +TRIGGER_ACTION_CFG_TYPE_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_TYPE_FIELD.default_value = nil +TRIGGER_ACTION_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ETRIGGERACTION0TYPE +TRIGGER_ACTION_CFG_TYPE_FIELD.type = 14 +TRIGGER_ACTION_CFG_TYPE_FIELD.cpp_type = 8 + +TRIGGER_ACTION_CFG_PARAM1_FIELD.name = "param1" +TRIGGER_ACTION_CFG_PARAM1_FIELD.full_name = ".ftcfg.trigger_action_cfg.param1" +TRIGGER_ACTION_CFG_PARAM1_FIELD.number = 3 +TRIGGER_ACTION_CFG_PARAM1_FIELD.index = 2 +TRIGGER_ACTION_CFG_PARAM1_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM1_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM1_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM1_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM1_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM2_FIELD.name = "param2" +TRIGGER_ACTION_CFG_PARAM2_FIELD.full_name = ".ftcfg.trigger_action_cfg.param2" +TRIGGER_ACTION_CFG_PARAM2_FIELD.number = 4 +TRIGGER_ACTION_CFG_PARAM2_FIELD.index = 3 +TRIGGER_ACTION_CFG_PARAM2_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM2_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM2_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM2_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM2_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM3_FIELD.name = "param3" +TRIGGER_ACTION_CFG_PARAM3_FIELD.full_name = ".ftcfg.trigger_action_cfg.param3" +TRIGGER_ACTION_CFG_PARAM3_FIELD.number = 5 +TRIGGER_ACTION_CFG_PARAM3_FIELD.index = 4 +TRIGGER_ACTION_CFG_PARAM3_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM3_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM3_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM3_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM3_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM4_FIELD.name = "param4" +TRIGGER_ACTION_CFG_PARAM4_FIELD.full_name = ".ftcfg.trigger_action_cfg.param4" +TRIGGER_ACTION_CFG_PARAM4_FIELD.number = 6 +TRIGGER_ACTION_CFG_PARAM4_FIELD.index = 5 +TRIGGER_ACTION_CFG_PARAM4_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM4_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM4_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM4_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM4_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM5_FIELD.name = "param5" +TRIGGER_ACTION_CFG_PARAM5_FIELD.full_name = ".ftcfg.trigger_action_cfg.param5" +TRIGGER_ACTION_CFG_PARAM5_FIELD.number = 7 +TRIGGER_ACTION_CFG_PARAM5_FIELD.index = 6 +TRIGGER_ACTION_CFG_PARAM5_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM5_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM5_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM5_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM5_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM6_FIELD.name = "param6" +TRIGGER_ACTION_CFG_PARAM6_FIELD.full_name = ".ftcfg.trigger_action_cfg.param6" +TRIGGER_ACTION_CFG_PARAM6_FIELD.number = 8 +TRIGGER_ACTION_CFG_PARAM6_FIELD.index = 7 +TRIGGER_ACTION_CFG_PARAM6_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM6_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM6_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM6_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM6_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM7_FIELD.name = "param7" +TRIGGER_ACTION_CFG_PARAM7_FIELD.full_name = ".ftcfg.trigger_action_cfg.param7" +TRIGGER_ACTION_CFG_PARAM7_FIELD.number = 9 +TRIGGER_ACTION_CFG_PARAM7_FIELD.index = 8 +TRIGGER_ACTION_CFG_PARAM7_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM7_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM7_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM7_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM7_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM8_FIELD.name = "param8" +TRIGGER_ACTION_CFG_PARAM8_FIELD.full_name = ".ftcfg.trigger_action_cfg.param8" +TRIGGER_ACTION_CFG_PARAM8_FIELD.number = 10 +TRIGGER_ACTION_CFG_PARAM8_FIELD.index = 9 +TRIGGER_ACTION_CFG_PARAM8_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM8_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM8_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM8_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM8_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM9_FIELD.name = "param9" +TRIGGER_ACTION_CFG_PARAM9_FIELD.full_name = ".ftcfg.trigger_action_cfg.param9" +TRIGGER_ACTION_CFG_PARAM9_FIELD.number = 11 +TRIGGER_ACTION_CFG_PARAM9_FIELD.index = 10 +TRIGGER_ACTION_CFG_PARAM9_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM9_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM9_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM9_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM9_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG_PARAM10_FIELD.name = "param10" +TRIGGER_ACTION_CFG_PARAM10_FIELD.full_name = ".ftcfg.trigger_action_cfg.param10" +TRIGGER_ACTION_CFG_PARAM10_FIELD.number = 12 +TRIGGER_ACTION_CFG_PARAM10_FIELD.index = 11 +TRIGGER_ACTION_CFG_PARAM10_FIELD.label = 2 +TRIGGER_ACTION_CFG_PARAM10_FIELD.has_default_value = false +TRIGGER_ACTION_CFG_PARAM10_FIELD.default_value = "" +TRIGGER_ACTION_CFG_PARAM10_FIELD.type = 9 +TRIGGER_ACTION_CFG_PARAM10_FIELD.cpp_type = 9 + +TRIGGER_ACTION_CFG.name = "trigger_action_cfg" +TRIGGER_ACTION_CFG.full_name = ".ftcfg.trigger_action_cfg" +TRIGGER_ACTION_CFG.nested_types = {} +TRIGGER_ACTION_CFG.enum_types = {} +TRIGGER_ACTION_CFG.fields = {TRIGGER_ACTION_CFG_ACTION_ID_FIELD, TRIGGER_ACTION_CFG_TYPE_FIELD, TRIGGER_ACTION_CFG_PARAM1_FIELD, TRIGGER_ACTION_CFG_PARAM2_FIELD, TRIGGER_ACTION_CFG_PARAM3_FIELD, TRIGGER_ACTION_CFG_PARAM4_FIELD, TRIGGER_ACTION_CFG_PARAM5_FIELD, TRIGGER_ACTION_CFG_PARAM6_FIELD, TRIGGER_ACTION_CFG_PARAM7_FIELD, TRIGGER_ACTION_CFG_PARAM8_FIELD, TRIGGER_ACTION_CFG_PARAM9_FIELD, TRIGGER_ACTION_CFG_PARAM10_FIELD} +TRIGGER_ACTION_CFG.is_extendable = false +TRIGGER_ACTION_CFG.extensions = {} +TRIGGER_ACTION_CFGS_ITEMS_FIELD.name = "items" +TRIGGER_ACTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trigger_action_cfgs.items" +TRIGGER_ACTION_CFGS_ITEMS_FIELD.number = 1 +TRIGGER_ACTION_CFGS_ITEMS_FIELD.index = 0 +TRIGGER_ACTION_CFGS_ITEMS_FIELD.label = 3 +TRIGGER_ACTION_CFGS_ITEMS_FIELD.has_default_value = false +TRIGGER_ACTION_CFGS_ITEMS_FIELD.default_value = {} +TRIGGER_ACTION_CFGS_ITEMS_FIELD.message_type = TRIGGER_ACTION_CFG +TRIGGER_ACTION_CFGS_ITEMS_FIELD.type = 11 +TRIGGER_ACTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRIGGER_ACTION_CFGS.name = "trigger_action_cfgs" +TRIGGER_ACTION_CFGS.full_name = ".ftcfg.trigger_action_cfgs" +TRIGGER_ACTION_CFGS.nested_types = {} +TRIGGER_ACTION_CFGS.enum_types = {} +TRIGGER_ACTION_CFGS.fields = {TRIGGER_ACTION_CFGS_ITEMS_FIELD} +TRIGGER_ACTION_CFGS.is_extendable = false +TRIGGER_ACTION_CFGS.extensions = {} +TRIGGER_VARIABLE_CFG_NAME_FIELD.name = "name" +TRIGGER_VARIABLE_CFG_NAME_FIELD.full_name = ".ftcfg.trigger_variable_cfg.name" +TRIGGER_VARIABLE_CFG_NAME_FIELD.number = 1 +TRIGGER_VARIABLE_CFG_NAME_FIELD.index = 0 +TRIGGER_VARIABLE_CFG_NAME_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_NAME_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_NAME_FIELD.default_value = "" +TRIGGER_VARIABLE_CFG_NAME_FIELD.type = 9 +TRIGGER_VARIABLE_CFG_NAME_FIELD.cpp_type = 9 + +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.name = "map_id" +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.full_name = ".ftcfg.trigger_variable_cfg.map_id" +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.number = 2 +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.index = 1 +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.default_value = 0 +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.type = 5 +TRIGGER_VARIABLE_CFG_MAP_ID_FIELD.cpp_type = 1 + +TRIGGER_VARIABLE_CFG_TYPE_FIELD.name = "type" +TRIGGER_VARIABLE_CFG_TYPE_FIELD.full_name = ".ftcfg.trigger_variable_cfg.type" +TRIGGER_VARIABLE_CFG_TYPE_FIELD.number = 3 +TRIGGER_VARIABLE_CFG_TYPE_FIELD.index = 2 +TRIGGER_VARIABLE_CFG_TYPE_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_TYPE_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_TYPE_FIELD.default_value = nil +TRIGGER_VARIABLE_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ETRIGGERVARIABLETYPE +TRIGGER_VARIABLE_CFG_TYPE_FIELD.type = 14 +TRIGGER_VARIABLE_CFG_TYPE_FIELD.cpp_type = 8 + +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.name = "is_vec" +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.full_name = ".ftcfg.trigger_variable_cfg.is_vec" +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.number = 4 +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.index = 3 +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.default_value = 0 +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.type = 13 +TRIGGER_VARIABLE_CFG_IS_VEC_FIELD.cpp_type = 3 + +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.name = "vec_size" +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.full_name = ".ftcfg.trigger_variable_cfg.vec_size" +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.number = 5 +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.index = 4 +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.default_value = 0 +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.type = 13 +TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD.cpp_type = 3 + +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.name = "param1" +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.full_name = ".ftcfg.trigger_variable_cfg.param1" +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.number = 6 +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.index = 5 +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.default_value = "" +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.type = 9 +TRIGGER_VARIABLE_CFG_PARAM1_FIELD.cpp_type = 9 + +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.name = "param2" +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.full_name = ".ftcfg.trigger_variable_cfg.param2" +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.number = 7 +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.index = 6 +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.default_value = "" +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.type = 9 +TRIGGER_VARIABLE_CFG_PARAM2_FIELD.cpp_type = 9 + +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.name = "param3" +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.full_name = ".ftcfg.trigger_variable_cfg.param3" +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.number = 8 +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.index = 7 +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.default_value = "" +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.type = 9 +TRIGGER_VARIABLE_CFG_PARAM3_FIELD.cpp_type = 9 + +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.name = "param4" +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.full_name = ".ftcfg.trigger_variable_cfg.param4" +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.number = 9 +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.index = 8 +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.default_value = "" +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.type = 9 +TRIGGER_VARIABLE_CFG_PARAM4_FIELD.cpp_type = 9 + +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.name = "param5" +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.full_name = ".ftcfg.trigger_variable_cfg.param5" +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.number = 10 +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.index = 9 +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.label = 2 +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.default_value = "" +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.type = 9 +TRIGGER_VARIABLE_CFG_PARAM5_FIELD.cpp_type = 9 + +TRIGGER_VARIABLE_CFG.name = "trigger_variable_cfg" +TRIGGER_VARIABLE_CFG.full_name = ".ftcfg.trigger_variable_cfg" +TRIGGER_VARIABLE_CFG.nested_types = {} +TRIGGER_VARIABLE_CFG.enum_types = {} +TRIGGER_VARIABLE_CFG.fields = {TRIGGER_VARIABLE_CFG_NAME_FIELD, TRIGGER_VARIABLE_CFG_MAP_ID_FIELD, TRIGGER_VARIABLE_CFG_TYPE_FIELD, TRIGGER_VARIABLE_CFG_IS_VEC_FIELD, TRIGGER_VARIABLE_CFG_VEC_SIZE_FIELD, TRIGGER_VARIABLE_CFG_PARAM1_FIELD, TRIGGER_VARIABLE_CFG_PARAM2_FIELD, TRIGGER_VARIABLE_CFG_PARAM3_FIELD, TRIGGER_VARIABLE_CFG_PARAM4_FIELD, TRIGGER_VARIABLE_CFG_PARAM5_FIELD} +TRIGGER_VARIABLE_CFG.is_extendable = false +TRIGGER_VARIABLE_CFG.extensions = {} +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.name = "items" +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.trigger_variable_cfgs.items" +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.number = 1 +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.index = 0 +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.label = 3 +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.has_default_value = false +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.default_value = {} +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.message_type = TRIGGER_VARIABLE_CFG +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.type = 11 +TRIGGER_VARIABLE_CFGS_ITEMS_FIELD.cpp_type = 10 + +TRIGGER_VARIABLE_CFGS.name = "trigger_variable_cfgs" +TRIGGER_VARIABLE_CFGS.full_name = ".ftcfg.trigger_variable_cfgs" +TRIGGER_VARIABLE_CFGS.nested_types = {} +TRIGGER_VARIABLE_CFGS.enum_types = {} +TRIGGER_VARIABLE_CFGS.fields = {TRIGGER_VARIABLE_CFGS_ITEMS_FIELD} +TRIGGER_VARIABLE_CFGS.is_extendable = false +TRIGGER_VARIABLE_CFGS.extensions = {} +SCENE_DOOR_CFG_ID_FIELD.name = "id" +SCENE_DOOR_CFG_ID_FIELD.full_name = ".ftcfg.scene_door_cfg.id" +SCENE_DOOR_CFG_ID_FIELD.number = 1 +SCENE_DOOR_CFG_ID_FIELD.index = 0 +SCENE_DOOR_CFG_ID_FIELD.label = 2 +SCENE_DOOR_CFG_ID_FIELD.has_default_value = false +SCENE_DOOR_CFG_ID_FIELD.default_value = 0 +SCENE_DOOR_CFG_ID_FIELD.type = 5 +SCENE_DOOR_CFG_ID_FIELD.cpp_type = 1 + +SCENE_DOOR_CFG_MAP_ID_FIELD.name = "map_id" +SCENE_DOOR_CFG_MAP_ID_FIELD.full_name = ".ftcfg.scene_door_cfg.map_id" +SCENE_DOOR_CFG_MAP_ID_FIELD.number = 2 +SCENE_DOOR_CFG_MAP_ID_FIELD.index = 1 +SCENE_DOOR_CFG_MAP_ID_FIELD.label = 2 +SCENE_DOOR_CFG_MAP_ID_FIELD.has_default_value = false +SCENE_DOOR_CFG_MAP_ID_FIELD.default_value = 0 +SCENE_DOOR_CFG_MAP_ID_FIELD.type = 5 +SCENE_DOOR_CFG_MAP_ID_FIELD.cpp_type = 1 + +SCENE_DOOR_CFG_POS_X_FIELD.name = "pos_x" +SCENE_DOOR_CFG_POS_X_FIELD.full_name = ".ftcfg.scene_door_cfg.pos_x" +SCENE_DOOR_CFG_POS_X_FIELD.number = 3 +SCENE_DOOR_CFG_POS_X_FIELD.index = 2 +SCENE_DOOR_CFG_POS_X_FIELD.label = 2 +SCENE_DOOR_CFG_POS_X_FIELD.has_default_value = false +SCENE_DOOR_CFG_POS_X_FIELD.default_value = 0.0 +SCENE_DOOR_CFG_POS_X_FIELD.type = 2 +SCENE_DOOR_CFG_POS_X_FIELD.cpp_type = 6 + +SCENE_DOOR_CFG_POS_Y_FIELD.name = "pos_y" +SCENE_DOOR_CFG_POS_Y_FIELD.full_name = ".ftcfg.scene_door_cfg.pos_y" +SCENE_DOOR_CFG_POS_Y_FIELD.number = 4 +SCENE_DOOR_CFG_POS_Y_FIELD.index = 3 +SCENE_DOOR_CFG_POS_Y_FIELD.label = 2 +SCENE_DOOR_CFG_POS_Y_FIELD.has_default_value = false +SCENE_DOOR_CFG_POS_Y_FIELD.default_value = 0.0 +SCENE_DOOR_CFG_POS_Y_FIELD.type = 2 +SCENE_DOOR_CFG_POS_Y_FIELD.cpp_type = 6 + +SCENE_DOOR_CFG_POS_Z_FIELD.name = "pos_z" +SCENE_DOOR_CFG_POS_Z_FIELD.full_name = ".ftcfg.scene_door_cfg.pos_z" +SCENE_DOOR_CFG_POS_Z_FIELD.number = 5 +SCENE_DOOR_CFG_POS_Z_FIELD.index = 4 +SCENE_DOOR_CFG_POS_Z_FIELD.label = 2 +SCENE_DOOR_CFG_POS_Z_FIELD.has_default_value = false +SCENE_DOOR_CFG_POS_Z_FIELD.default_value = 0.0 +SCENE_DOOR_CFG_POS_Z_FIELD.type = 2 +SCENE_DOOR_CFG_POS_Z_FIELD.cpp_type = 6 + +SCENE_DOOR_CFG_WIDTH_FIELD.name = "width" +SCENE_DOOR_CFG_WIDTH_FIELD.full_name = ".ftcfg.scene_door_cfg.width" +SCENE_DOOR_CFG_WIDTH_FIELD.number = 6 +SCENE_DOOR_CFG_WIDTH_FIELD.index = 5 +SCENE_DOOR_CFG_WIDTH_FIELD.label = 2 +SCENE_DOOR_CFG_WIDTH_FIELD.has_default_value = false +SCENE_DOOR_CFG_WIDTH_FIELD.default_value = 0.0 +SCENE_DOOR_CFG_WIDTH_FIELD.type = 2 +SCENE_DOOR_CFG_WIDTH_FIELD.cpp_type = 6 + +SCENE_DOOR_CFG_ORIENTATION_FIELD.name = "orientation" +SCENE_DOOR_CFG_ORIENTATION_FIELD.full_name = ".ftcfg.scene_door_cfg.orientation" +SCENE_DOOR_CFG_ORIENTATION_FIELD.number = 7 +SCENE_DOOR_CFG_ORIENTATION_FIELD.index = 6 +SCENE_DOOR_CFG_ORIENTATION_FIELD.label = 2 +SCENE_DOOR_CFG_ORIENTATION_FIELD.has_default_value = false +SCENE_DOOR_CFG_ORIENTATION_FIELD.default_value = 0.0 +SCENE_DOOR_CFG_ORIENTATION_FIELD.type = 2 +SCENE_DOOR_CFG_ORIENTATION_FIELD.cpp_type = 6 + +SCENE_DOOR_CFG_OPENED_FIELD.name = "opened" +SCENE_DOOR_CFG_OPENED_FIELD.full_name = ".ftcfg.scene_door_cfg.opened" +SCENE_DOOR_CFG_OPENED_FIELD.number = 8 +SCENE_DOOR_CFG_OPENED_FIELD.index = 7 +SCENE_DOOR_CFG_OPENED_FIELD.label = 2 +SCENE_DOOR_CFG_OPENED_FIELD.has_default_value = false +SCENE_DOOR_CFG_OPENED_FIELD.default_value = 0 +SCENE_DOOR_CFG_OPENED_FIELD.type = 5 +SCENE_DOOR_CFG_OPENED_FIELD.cpp_type = 1 + +SCENE_DOOR_CFG_RESID_FIELD.name = "resid" +SCENE_DOOR_CFG_RESID_FIELD.full_name = ".ftcfg.scene_door_cfg.resid" +SCENE_DOOR_CFG_RESID_FIELD.number = 9 +SCENE_DOOR_CFG_RESID_FIELD.index = 8 +SCENE_DOOR_CFG_RESID_FIELD.label = 2 +SCENE_DOOR_CFG_RESID_FIELD.has_default_value = false +SCENE_DOOR_CFG_RESID_FIELD.default_value = 0 +SCENE_DOOR_CFG_RESID_FIELD.type = 5 +SCENE_DOOR_CFG_RESID_FIELD.cpp_type = 1 + +SCENE_DOOR_CFG.name = "scene_door_cfg" +SCENE_DOOR_CFG.full_name = ".ftcfg.scene_door_cfg" +SCENE_DOOR_CFG.nested_types = {} +SCENE_DOOR_CFG.enum_types = {} +SCENE_DOOR_CFG.fields = {SCENE_DOOR_CFG_ID_FIELD, SCENE_DOOR_CFG_MAP_ID_FIELD, SCENE_DOOR_CFG_POS_X_FIELD, SCENE_DOOR_CFG_POS_Y_FIELD, SCENE_DOOR_CFG_POS_Z_FIELD, SCENE_DOOR_CFG_WIDTH_FIELD, SCENE_DOOR_CFG_ORIENTATION_FIELD, SCENE_DOOR_CFG_OPENED_FIELD, SCENE_DOOR_CFG_RESID_FIELD} +SCENE_DOOR_CFG.is_extendable = false +SCENE_DOOR_CFG.extensions = {} +SCENE_DOOR_CFGS_ITEMS_FIELD.name = "items" +SCENE_DOOR_CFGS_ITEMS_FIELD.full_name = ".ftcfg.scene_door_cfgs.items" +SCENE_DOOR_CFGS_ITEMS_FIELD.number = 1 +SCENE_DOOR_CFGS_ITEMS_FIELD.index = 0 +SCENE_DOOR_CFGS_ITEMS_FIELD.label = 3 +SCENE_DOOR_CFGS_ITEMS_FIELD.has_default_value = false +SCENE_DOOR_CFGS_ITEMS_FIELD.default_value = {} +SCENE_DOOR_CFGS_ITEMS_FIELD.message_type = SCENE_DOOR_CFG +SCENE_DOOR_CFGS_ITEMS_FIELD.type = 11 +SCENE_DOOR_CFGS_ITEMS_FIELD.cpp_type = 10 + +SCENE_DOOR_CFGS.name = "scene_door_cfgs" +SCENE_DOOR_CFGS.full_name = ".ftcfg.scene_door_cfgs" +SCENE_DOOR_CFGS.nested_types = {} +SCENE_DOOR_CFGS.enum_types = {} +SCENE_DOOR_CFGS.fields = {SCENE_DOOR_CFGS_ITEMS_FIELD} +SCENE_DOOR_CFGS.is_extendable = false +SCENE_DOOR_CFGS.extensions = {} +REVIVE_SHOW_CFG_ID_FIELD.name = "id" +REVIVE_SHOW_CFG_ID_FIELD.full_name = ".ftcfg.revive_show_cfg.id" +REVIVE_SHOW_CFG_ID_FIELD.number = 1 +REVIVE_SHOW_CFG_ID_FIELD.index = 0 +REVIVE_SHOW_CFG_ID_FIELD.label = 2 +REVIVE_SHOW_CFG_ID_FIELD.has_default_value = false +REVIVE_SHOW_CFG_ID_FIELD.default_value = 0 +REVIVE_SHOW_CFG_ID_FIELD.type = 5 +REVIVE_SHOW_CFG_ID_FIELD.cpp_type = 1 + +REVIVE_SHOW_CFG_INDEX_FIELD.name = "index" +REVIVE_SHOW_CFG_INDEX_FIELD.full_name = ".ftcfg.revive_show_cfg.index" +REVIVE_SHOW_CFG_INDEX_FIELD.number = 2 +REVIVE_SHOW_CFG_INDEX_FIELD.index = 1 +REVIVE_SHOW_CFG_INDEX_FIELD.label = 2 +REVIVE_SHOW_CFG_INDEX_FIELD.has_default_value = false +REVIVE_SHOW_CFG_INDEX_FIELD.default_value = 0 +REVIVE_SHOW_CFG_INDEX_FIELD.type = 5 +REVIVE_SHOW_CFG_INDEX_FIELD.cpp_type = 1 + +REVIVE_SHOW_CFG_NAME_FIELD.name = "name" +REVIVE_SHOW_CFG_NAME_FIELD.full_name = ".ftcfg.revive_show_cfg.name" +REVIVE_SHOW_CFG_NAME_FIELD.number = 3 +REVIVE_SHOW_CFG_NAME_FIELD.index = 2 +REVIVE_SHOW_CFG_NAME_FIELD.label = 2 +REVIVE_SHOW_CFG_NAME_FIELD.has_default_value = false +REVIVE_SHOW_CFG_NAME_FIELD.default_value = 0 +REVIVE_SHOW_CFG_NAME_FIELD.type = 5 +REVIVE_SHOW_CFG_NAME_FIELD.cpp_type = 1 + +REVIVE_SHOW_CFG.name = "revive_show_cfg" +REVIVE_SHOW_CFG.full_name = ".ftcfg.revive_show_cfg" +REVIVE_SHOW_CFG.nested_types = {} +REVIVE_SHOW_CFG.enum_types = {} +REVIVE_SHOW_CFG.fields = {REVIVE_SHOW_CFG_ID_FIELD, REVIVE_SHOW_CFG_INDEX_FIELD, REVIVE_SHOW_CFG_NAME_FIELD} +REVIVE_SHOW_CFG.is_extendable = false +REVIVE_SHOW_CFG.extensions = {} +REVIVE_SHOW_CFGS_ITEMS_FIELD.name = "items" +REVIVE_SHOW_CFGS_ITEMS_FIELD.full_name = ".ftcfg.revive_show_cfgs.items" +REVIVE_SHOW_CFGS_ITEMS_FIELD.number = 1 +REVIVE_SHOW_CFGS_ITEMS_FIELD.index = 0 +REVIVE_SHOW_CFGS_ITEMS_FIELD.label = 3 +REVIVE_SHOW_CFGS_ITEMS_FIELD.has_default_value = false +REVIVE_SHOW_CFGS_ITEMS_FIELD.default_value = {} +REVIVE_SHOW_CFGS_ITEMS_FIELD.message_type = REVIVE_SHOW_CFG +REVIVE_SHOW_CFGS_ITEMS_FIELD.type = 11 +REVIVE_SHOW_CFGS_ITEMS_FIELD.cpp_type = 10 + +REVIVE_SHOW_CFGS.name = "revive_show_cfgs" +REVIVE_SHOW_CFGS.full_name = ".ftcfg.revive_show_cfgs" +REVIVE_SHOW_CFGS.nested_types = {} +REVIVE_SHOW_CFGS.enum_types = {} +REVIVE_SHOW_CFGS.fields = {REVIVE_SHOW_CFGS_ITEMS_FIELD} +REVIVE_SHOW_CFGS.is_extendable = false +REVIVE_SHOW_CFGS.extensions = {} +FASHION_APPRECIATION_CFG_LEVEL_FIELD.name = "level" +FASHION_APPRECIATION_CFG_LEVEL_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.level" +FASHION_APPRECIATION_CFG_LEVEL_FIELD.number = 1 +FASHION_APPRECIATION_CFG_LEVEL_FIELD.index = 0 +FASHION_APPRECIATION_CFG_LEVEL_FIELD.label = 2 +FASHION_APPRECIATION_CFG_LEVEL_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_LEVEL_FIELD.default_value = 0 +FASHION_APPRECIATION_CFG_LEVEL_FIELD.type = 13 +FASHION_APPRECIATION_CFG_LEVEL_FIELD.cpp_type = 3 + +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.name = "next_level" +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.next_level" +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.number = 2 +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.index = 1 +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.label = 2 +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.default_value = 0 +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.type = 13 +FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD.cpp_type = 3 + +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.name = "need_point" +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.need_point" +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.number = 3 +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.index = 2 +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.label = 2 +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.default_value = 0 +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.type = 13 +FASHION_APPRECIATION_CFG_NEED_POINT_FIELD.cpp_type = 3 + +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.name = "cost_item_id" +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.cost_item_id" +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.number = 4 +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.index = 3 +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.label = 3 +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.default_value = {} +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.type = 5 +FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD.cpp_type = 1 + +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.name = "cost_item_count" +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.cost_item_count" +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.number = 5 +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.index = 4 +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.label = 3 +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.default_value = {} +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.type = 5 +FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD.cpp_type = 1 + +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.name = "cost_coin_type" +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.cost_coin_type" +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.number = 6 +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.index = 5 +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.label = 3 +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.default_value = {} +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.type = 5 +FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD.cpp_type = 1 + +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.name = "cost_coin_count" +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.cost_coin_count" +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.number = 7 +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.index = 6 +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.label = 3 +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.default_value = {} +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.type = 5 +FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD.cpp_type = 1 + +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.name = "reward_attribute_type" +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.reward_attribute_type" +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.number = 8 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.index = 7 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.label = 3 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.default_value = {} +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.type = 5 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD.cpp_type = 1 + +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.name = "reward_attribute_count" +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.reward_attribute_count" +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.number = 9 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.index = 8 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.label = 3 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = {} +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.type = 5 +FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.name = "combat_point" +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.full_name = ".ftcfg.fashion_appreciation_cfg.combat_point" +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.number = 10 +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.index = 9 +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.label = 2 +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.has_default_value = false +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.default_value = 0.0 +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.type = 2 +FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD.cpp_type = 6 + +FASHION_APPRECIATION_CFG.name = "fashion_appreciation_cfg" +FASHION_APPRECIATION_CFG.full_name = ".ftcfg.fashion_appreciation_cfg" +FASHION_APPRECIATION_CFG.nested_types = {} +FASHION_APPRECIATION_CFG.enum_types = {} +FASHION_APPRECIATION_CFG.fields = {FASHION_APPRECIATION_CFG_LEVEL_FIELD, FASHION_APPRECIATION_CFG_NEXT_LEVEL_FIELD, FASHION_APPRECIATION_CFG_NEED_POINT_FIELD, FASHION_APPRECIATION_CFG_COST_ITEM_ID_FIELD, FASHION_APPRECIATION_CFG_COST_ITEM_COUNT_FIELD, FASHION_APPRECIATION_CFG_COST_COIN_TYPE_FIELD, FASHION_APPRECIATION_CFG_COST_COIN_COUNT_FIELD, FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_TYPE_FIELD, FASHION_APPRECIATION_CFG_REWARD_ATTRIBUTE_COUNT_FIELD, FASHION_APPRECIATION_CFG_COMBAT_POINT_FIELD} +FASHION_APPRECIATION_CFG.is_extendable = false +FASHION_APPRECIATION_CFG.extensions = {} +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.name = "items" +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fashion_appreciation_cfgs.items" +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.number = 1 +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.index = 0 +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.label = 3 +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.has_default_value = false +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.default_value = {} +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.message_type = FASHION_APPRECIATION_CFG +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.type = 11 +FASHION_APPRECIATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +FASHION_APPRECIATION_CFGS.name = "fashion_appreciation_cfgs" +FASHION_APPRECIATION_CFGS.full_name = ".ftcfg.fashion_appreciation_cfgs" +FASHION_APPRECIATION_CFGS.nested_types = {} +FASHION_APPRECIATION_CFGS.enum_types = {} +FASHION_APPRECIATION_CFGS.fields = {FASHION_APPRECIATION_CFGS_ITEMS_FIELD} +FASHION_APPRECIATION_CFGS.is_extendable = false +FASHION_APPRECIATION_CFGS.extensions = {} +FASHION_CFG_ID_FIELD.name = "id" +FASHION_CFG_ID_FIELD.full_name = ".ftcfg.fashion_cfg.id" +FASHION_CFG_ID_FIELD.number = 1 +FASHION_CFG_ID_FIELD.index = 0 +FASHION_CFG_ID_FIELD.label = 2 +FASHION_CFG_ID_FIELD.has_default_value = false +FASHION_CFG_ID_FIELD.default_value = 0 +FASHION_CFG_ID_FIELD.type = 5 +FASHION_CFG_ID_FIELD.cpp_type = 1 + +FASHION_CFG_ID_GROUP_FIELD.name = "id_group" +FASHION_CFG_ID_GROUP_FIELD.full_name = ".ftcfg.fashion_cfg.id_group" +FASHION_CFG_ID_GROUP_FIELD.number = 2 +FASHION_CFG_ID_GROUP_FIELD.index = 1 +FASHION_CFG_ID_GROUP_FIELD.label = 2 +FASHION_CFG_ID_GROUP_FIELD.has_default_value = false +FASHION_CFG_ID_GROUP_FIELD.default_value = 0 +FASHION_CFG_ID_GROUP_FIELD.type = 13 +FASHION_CFG_ID_GROUP_FIELD.cpp_type = 3 + +FASHION_CFG_FASHION_COST_FIELD.name = "fashion_cost" +FASHION_CFG_FASHION_COST_FIELD.full_name = ".ftcfg.fashion_cfg.fashion_cost" +FASHION_CFG_FASHION_COST_FIELD.number = 3 +FASHION_CFG_FASHION_COST_FIELD.index = 2 +FASHION_CFG_FASHION_COST_FIELD.label = 3 +FASHION_CFG_FASHION_COST_FIELD.has_default_value = false +FASHION_CFG_FASHION_COST_FIELD.default_value = {} +FASHION_CFG_FASHION_COST_FIELD.type = 13 +FASHION_CFG_FASHION_COST_FIELD.cpp_type = 3 + +FASHION_CFG_FASHION_TYPE_FIELD.name = "fashion_type" +FASHION_CFG_FASHION_TYPE_FIELD.full_name = ".ftcfg.fashion_cfg.fashion_type" +FASHION_CFG_FASHION_TYPE_FIELD.number = 4 +FASHION_CFG_FASHION_TYPE_FIELD.index = 3 +FASHION_CFG_FASHION_TYPE_FIELD.label = 2 +FASHION_CFG_FASHION_TYPE_FIELD.has_default_value = false +FASHION_CFG_FASHION_TYPE_FIELD.default_value = 0 +FASHION_CFG_FASHION_TYPE_FIELD.type = 13 +FASHION_CFG_FASHION_TYPE_FIELD.cpp_type = 3 + +FASHION_CFG_VOCATION_LIMIT_FIELD.name = "vocation_limit" +FASHION_CFG_VOCATION_LIMIT_FIELD.full_name = ".ftcfg.fashion_cfg.vocation_limit" +FASHION_CFG_VOCATION_LIMIT_FIELD.number = 5 +FASHION_CFG_VOCATION_LIMIT_FIELD.index = 4 +FASHION_CFG_VOCATION_LIMIT_FIELD.label = 2 +FASHION_CFG_VOCATION_LIMIT_FIELD.has_default_value = false +FASHION_CFG_VOCATION_LIMIT_FIELD.default_value = 0 +FASHION_CFG_VOCATION_LIMIT_FIELD.type = 5 +FASHION_CFG_VOCATION_LIMIT_FIELD.cpp_type = 1 + +FASHION_CFG_FASHION_NAME_FIELD.name = "fashion_name" +FASHION_CFG_FASHION_NAME_FIELD.full_name = ".ftcfg.fashion_cfg.fashion_name" +FASHION_CFG_FASHION_NAME_FIELD.number = 6 +FASHION_CFG_FASHION_NAME_FIELD.index = 5 +FASHION_CFG_FASHION_NAME_FIELD.label = 2 +FASHION_CFG_FASHION_NAME_FIELD.has_default_value = false +FASHION_CFG_FASHION_NAME_FIELD.default_value = 0 +FASHION_CFG_FASHION_NAME_FIELD.type = 5 +FASHION_CFG_FASHION_NAME_FIELD.cpp_type = 1 + +FASHION_CFG_FASHION_ICON_FIELD.name = "fashion_icon" +FASHION_CFG_FASHION_ICON_FIELD.full_name = ".ftcfg.fashion_cfg.fashion_icon" +FASHION_CFG_FASHION_ICON_FIELD.number = 7 +FASHION_CFG_FASHION_ICON_FIELD.index = 6 +FASHION_CFG_FASHION_ICON_FIELD.label = 2 +FASHION_CFG_FASHION_ICON_FIELD.has_default_value = false +FASHION_CFG_FASHION_ICON_FIELD.default_value = 0 +FASHION_CFG_FASHION_ICON_FIELD.type = 5 +FASHION_CFG_FASHION_ICON_FIELD.cpp_type = 1 + +FASHION_CFG_FASHION_PARTS_FIELD.name = "fashion_parts" +FASHION_CFG_FASHION_PARTS_FIELD.full_name = ".ftcfg.fashion_cfg.fashion_parts" +FASHION_CFG_FASHION_PARTS_FIELD.number = 8 +FASHION_CFG_FASHION_PARTS_FIELD.index = 7 +FASHION_CFG_FASHION_PARTS_FIELD.label = 3 +FASHION_CFG_FASHION_PARTS_FIELD.has_default_value = false +FASHION_CFG_FASHION_PARTS_FIELD.default_value = {} +FASHION_CFG_FASHION_PARTS_FIELD.type = 5 +FASHION_CFG_FASHION_PARTS_FIELD.cpp_type = 1 + +FASHION_CFG_FASHION_COLOUR_FIELD.name = "fashion_colour" +FASHION_CFG_FASHION_COLOUR_FIELD.full_name = ".ftcfg.fashion_cfg.fashion_colour" +FASHION_CFG_FASHION_COLOUR_FIELD.number = 9 +FASHION_CFG_FASHION_COLOUR_FIELD.index = 8 +FASHION_CFG_FASHION_COLOUR_FIELD.label = 2 +FASHION_CFG_FASHION_COLOUR_FIELD.has_default_value = false +FASHION_CFG_FASHION_COLOUR_FIELD.default_value = 0 +FASHION_CFG_FASHION_COLOUR_FIELD.type = 5 +FASHION_CFG_FASHION_COLOUR_FIELD.cpp_type = 1 + +FASHION_CFG_FASHION_TIPS_FIELD.name = "fashion_tips" +FASHION_CFG_FASHION_TIPS_FIELD.full_name = ".ftcfg.fashion_cfg.fashion_tips" +FASHION_CFG_FASHION_TIPS_FIELD.number = 10 +FASHION_CFG_FASHION_TIPS_FIELD.index = 9 +FASHION_CFG_FASHION_TIPS_FIELD.label = 2 +FASHION_CFG_FASHION_TIPS_FIELD.has_default_value = false +FASHION_CFG_FASHION_TIPS_FIELD.default_value = 0 +FASHION_CFG_FASHION_TIPS_FIELD.type = 5 +FASHION_CFG_FASHION_TIPS_FIELD.cpp_type = 1 + +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.name = "attribute_type" +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.full_name = ".ftcfg.fashion_cfg.attribute_type" +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.number = 11 +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.index = 10 +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.label = 3 +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.has_default_value = false +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.default_value = {} +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.type = 5 +FASHION_CFG_ATTRIBUTE_TYPE_FIELD.cpp_type = 1 + +FASHION_CFG_ATTRIBUTE_MODE_FIELD.name = "attribute_mode" +FASHION_CFG_ATTRIBUTE_MODE_FIELD.full_name = ".ftcfg.fashion_cfg.attribute_mode" +FASHION_CFG_ATTRIBUTE_MODE_FIELD.number = 12 +FASHION_CFG_ATTRIBUTE_MODE_FIELD.index = 11 +FASHION_CFG_ATTRIBUTE_MODE_FIELD.label = 3 +FASHION_CFG_ATTRIBUTE_MODE_FIELD.has_default_value = false +FASHION_CFG_ATTRIBUTE_MODE_FIELD.default_value = {} +FASHION_CFG_ATTRIBUTE_MODE_FIELD.type = 5 +FASHION_CFG_ATTRIBUTE_MODE_FIELD.cpp_type = 1 + +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.name = "attribute_count" +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.fashion_cfg.attribute_count" +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.number = 13 +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.index = 12 +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.label = 3 +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.has_default_value = false +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.default_value = {} +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.type = 2 +FASHION_CFG_ATTRIBUTE_COUNT_FIELD.cpp_type = 6 + +FASHION_CFG.name = "fashion_cfg" +FASHION_CFG.full_name = ".ftcfg.fashion_cfg" +FASHION_CFG.nested_types = {} +FASHION_CFG.enum_types = {} +FASHION_CFG.fields = {FASHION_CFG_ID_FIELD, FASHION_CFG_ID_GROUP_FIELD, FASHION_CFG_FASHION_COST_FIELD, FASHION_CFG_FASHION_TYPE_FIELD, FASHION_CFG_VOCATION_LIMIT_FIELD, FASHION_CFG_FASHION_NAME_FIELD, FASHION_CFG_FASHION_ICON_FIELD, FASHION_CFG_FASHION_PARTS_FIELD, FASHION_CFG_FASHION_COLOUR_FIELD, FASHION_CFG_FASHION_TIPS_FIELD, FASHION_CFG_ATTRIBUTE_TYPE_FIELD, FASHION_CFG_ATTRIBUTE_MODE_FIELD, FASHION_CFG_ATTRIBUTE_COUNT_FIELD} +FASHION_CFG.is_extendable = false +FASHION_CFG.extensions = {} +FASHION_CFGS_ITEMS_FIELD.name = "items" +FASHION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fashion_cfgs.items" +FASHION_CFGS_ITEMS_FIELD.number = 1 +FASHION_CFGS_ITEMS_FIELD.index = 0 +FASHION_CFGS_ITEMS_FIELD.label = 3 +FASHION_CFGS_ITEMS_FIELD.has_default_value = false +FASHION_CFGS_ITEMS_FIELD.default_value = {} +FASHION_CFGS_ITEMS_FIELD.message_type = FASHION_CFG +FASHION_CFGS_ITEMS_FIELD.type = 11 +FASHION_CFGS_ITEMS_FIELD.cpp_type = 10 + +FASHION_CFGS.name = "fashion_cfgs" +FASHION_CFGS.full_name = ".ftcfg.fashion_cfgs" +FASHION_CFGS.nested_types = {} +FASHION_CFGS.enum_types = {} +FASHION_CFGS.fields = {FASHION_CFGS_ITEMS_FIELD} +FASHION_CFGS.is_extendable = false +FASHION_CFGS.extensions = {} +FASHION_COST_CFG_ID_FIELD.name = "id" +FASHION_COST_CFG_ID_FIELD.full_name = ".ftcfg.fashion_cost_cfg.id" +FASHION_COST_CFG_ID_FIELD.number = 1 +FASHION_COST_CFG_ID_FIELD.index = 0 +FASHION_COST_CFG_ID_FIELD.label = 2 +FASHION_COST_CFG_ID_FIELD.has_default_value = false +FASHION_COST_CFG_ID_FIELD.default_value = 0 +FASHION_COST_CFG_ID_FIELD.type = 13 +FASHION_COST_CFG_ID_FIELD.cpp_type = 3 + +FASHION_COST_CFG_FASHION_TIME_FIELD.name = "fashion_time" +FASHION_COST_CFG_FASHION_TIME_FIELD.full_name = ".ftcfg.fashion_cost_cfg.fashion_time" +FASHION_COST_CFG_FASHION_TIME_FIELD.number = 2 +FASHION_COST_CFG_FASHION_TIME_FIELD.index = 1 +FASHION_COST_CFG_FASHION_TIME_FIELD.label = 2 +FASHION_COST_CFG_FASHION_TIME_FIELD.has_default_value = false +FASHION_COST_CFG_FASHION_TIME_FIELD.default_value = 0 +FASHION_COST_CFG_FASHION_TIME_FIELD.type = 5 +FASHION_COST_CFG_FASHION_TIME_FIELD.cpp_type = 1 + +FASHION_COST_CFG_FASHION_POINT_FIELD.name = "fashion_point" +FASHION_COST_CFG_FASHION_POINT_FIELD.full_name = ".ftcfg.fashion_cost_cfg.fashion_point" +FASHION_COST_CFG_FASHION_POINT_FIELD.number = 3 +FASHION_COST_CFG_FASHION_POINT_FIELD.index = 2 +FASHION_COST_CFG_FASHION_POINT_FIELD.label = 2 +FASHION_COST_CFG_FASHION_POINT_FIELD.has_default_value = false +FASHION_COST_CFG_FASHION_POINT_FIELD.default_value = 0 +FASHION_COST_CFG_FASHION_POINT_FIELD.type = 13 +FASHION_COST_CFG_FASHION_POINT_FIELD.cpp_type = 3 + +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.name = "unlock_level" +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_level" +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.number = 4 +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.index = 3 +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.label = 2 +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.default_value = 0 +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_LEVEL_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.name = "unlock_frontid" +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_frontid" +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.number = 5 +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.index = 4 +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.label = 3 +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.default_value = {} +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_FRONTID_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.name = "unlock_itemid" +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_itemid" +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.number = 6 +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.index = 5 +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.label = 3 +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.default_value = {} +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_ITEMID_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.name = "unlock_itemcount" +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_itemcount" +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.number = 7 +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.index = 6 +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.label = 3 +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.default_value = {} +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.name = "unlock_cointype" +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_cointype" +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.number = 8 +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.index = 7 +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.label = 3 +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.default_value = {} +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.name = "unlock_coincount" +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_coincount" +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.number = 9 +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.index = 8 +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.label = 3 +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.default_value = {} +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.name = "unlock_allintensify" +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_allintensify" +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.number = 10 +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.index = 9 +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.label = 2 +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.default_value = 0 +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.name = "unlock_specifyintensify" +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_specifyintensify" +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.number = 11 +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.index = 10 +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.label = 3 +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.default_value = {} +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.name = "unlock_gemstonelv" +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_gemstonelv" +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.number = 12 +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.index = 11 +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.label = 2 +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.default_value = 0 +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.name = "unlock_quality" +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_quality" +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.number = 13 +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.index = 12 +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.label = 3 +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.default_value = {} +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_QUALITY_FIELD.cpp_type = 1 + +FASHION_COST_CFG_UNLOCK_POWER_FIELD.name = "unlock_power" +FASHION_COST_CFG_UNLOCK_POWER_FIELD.full_name = ".ftcfg.fashion_cost_cfg.unlock_power" +FASHION_COST_CFG_UNLOCK_POWER_FIELD.number = 14 +FASHION_COST_CFG_UNLOCK_POWER_FIELD.index = 13 +FASHION_COST_CFG_UNLOCK_POWER_FIELD.label = 2 +FASHION_COST_CFG_UNLOCK_POWER_FIELD.has_default_value = false +FASHION_COST_CFG_UNLOCK_POWER_FIELD.default_value = 0 +FASHION_COST_CFG_UNLOCK_POWER_FIELD.type = 5 +FASHION_COST_CFG_UNLOCK_POWER_FIELD.cpp_type = 1 + +FASHION_COST_CFG.name = "fashion_cost_cfg" +FASHION_COST_CFG.full_name = ".ftcfg.fashion_cost_cfg" +FASHION_COST_CFG.nested_types = {} +FASHION_COST_CFG.enum_types = {} +FASHION_COST_CFG.fields = {FASHION_COST_CFG_ID_FIELD, FASHION_COST_CFG_FASHION_TIME_FIELD, FASHION_COST_CFG_FASHION_POINT_FIELD, FASHION_COST_CFG_UNLOCK_LEVEL_FIELD, FASHION_COST_CFG_UNLOCK_FRONTID_FIELD, FASHION_COST_CFG_UNLOCK_ITEMID_FIELD, FASHION_COST_CFG_UNLOCK_ITEMCOUNT_FIELD, FASHION_COST_CFG_UNLOCK_COINTYPE_FIELD, FASHION_COST_CFG_UNLOCK_COINCOUNT_FIELD, FASHION_COST_CFG_UNLOCK_ALLINTENSIFY_FIELD, FASHION_COST_CFG_UNLOCK_SPECIFYINTENSIFY_FIELD, FASHION_COST_CFG_UNLOCK_GEMSTONELV_FIELD, FASHION_COST_CFG_UNLOCK_QUALITY_FIELD, FASHION_COST_CFG_UNLOCK_POWER_FIELD} +FASHION_COST_CFG.is_extendable = false +FASHION_COST_CFG.extensions = {} +FASHION_COST_CFGS_ITEMS_FIELD.name = "items" +FASHION_COST_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fashion_cost_cfgs.items" +FASHION_COST_CFGS_ITEMS_FIELD.number = 1 +FASHION_COST_CFGS_ITEMS_FIELD.index = 0 +FASHION_COST_CFGS_ITEMS_FIELD.label = 3 +FASHION_COST_CFGS_ITEMS_FIELD.has_default_value = false +FASHION_COST_CFGS_ITEMS_FIELD.default_value = {} +FASHION_COST_CFGS_ITEMS_FIELD.message_type = FASHION_COST_CFG +FASHION_COST_CFGS_ITEMS_FIELD.type = 11 +FASHION_COST_CFGS_ITEMS_FIELD.cpp_type = 10 + +FASHION_COST_CFGS.name = "fashion_cost_cfgs" +FASHION_COST_CFGS.full_name = ".ftcfg.fashion_cost_cfgs" +FASHION_COST_CFGS.nested_types = {} +FASHION_COST_CFGS.enum_types = {} +FASHION_COST_CFGS.fields = {FASHION_COST_CFGS_ITEMS_FIELD} +FASHION_COST_CFGS.is_extendable = false +FASHION_COST_CFGS.extensions = {} +MOUNTEQUIP_CFG_ID_FIELD.name = "id" +MOUNTEQUIP_CFG_ID_FIELD.full_name = ".ftcfg.mountequip_cfg.id" +MOUNTEQUIP_CFG_ID_FIELD.number = 1 +MOUNTEQUIP_CFG_ID_FIELD.index = 0 +MOUNTEQUIP_CFG_ID_FIELD.label = 2 +MOUNTEQUIP_CFG_ID_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ID_FIELD.default_value = 0 +MOUNTEQUIP_CFG_ID_FIELD.type = 13 +MOUNTEQUIP_CFG_ID_FIELD.cpp_type = 3 + +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.name = "item_name" +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.full_name = ".ftcfg.mountequip_cfg.item_name" +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.number = 2 +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.index = 1 +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.label = 2 +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.default_value = 0 +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.type = 5 +MOUNTEQUIP_CFG_ITEM_NAME_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.name = "item_desc" +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.full_name = ".ftcfg.mountequip_cfg.item_desc" +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.number = 3 +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.index = 2 +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.label = 2 +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.default_value = 0 +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.type = 5 +MOUNTEQUIP_CFG_ITEM_DESC_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.name = "need_level" +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.full_name = ".ftcfg.mountequip_cfg.need_level" +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.number = 4 +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.index = 3 +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.label = 2 +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.has_default_value = false +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.default_value = 0 +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.type = 5 +MOUNTEQUIP_CFG_NEED_LEVEL_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.name = "equip_place" +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.full_name = ".ftcfg.mountequip_cfg.equip_place" +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.number = 5 +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.index = 4 +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.label = 2 +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.has_default_value = false +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.default_value = 0 +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.type = 5 +MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.name = "display_type" +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.full_name = ".ftcfg.mountequip_cfg.display_type" +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.number = 6 +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.index = 5 +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.label = 2 +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.has_default_value = false +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.default_value = 0 +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.type = 5 +MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.name = "item_color" +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.full_name = ".ftcfg.mountequip_cfg.item_color" +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.number = 7 +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.index = 6 +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.label = 2 +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.default_value = nil +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.enum_type = config_predefine_pb.EITEMCOLOR +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.type = 14 +MOUNTEQUIP_CFG_ITEM_COLOR_FIELD.cpp_type = 8 + +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.name = "item_icon" +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.full_name = ".ftcfg.mountequip_cfg.item_icon" +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.number = 8 +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.index = 7 +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.label = 2 +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.default_value = 0 +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.type = 5 +MOUNTEQUIP_CFG_ITEM_ICON_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.name = "could_trade" +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.full_name = ".ftcfg.mountequip_cfg.could_trade" +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.number = 9 +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.index = 8 +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.label = 2 +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.has_default_value = false +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.default_value = 0 +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.type = 5 +MOUNTEQUIP_CFG_COULD_TRADE_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.name = "effect_timelimited" +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.full_name = ".ftcfg.mountequip_cfg.effect_timelimited" +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.number = 10 +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.index = 9 +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.label = 2 +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.has_default_value = false +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.default_value = 0 +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.type = 5 +MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.name = "attribute_type" +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.full_name = ".ftcfg.mountequip_cfg.attribute_type" +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.number = 11 +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.index = 10 +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.label = 3 +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.default_value = {} +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.type = 5 +MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.name = "attribute_mode" +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.full_name = ".ftcfg.mountequip_cfg.attribute_mode" +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.number = 12 +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.index = 11 +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.label = 3 +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.default_value = {} +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.type = 5 +MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD.cpp_type = 1 + +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.name = "attribute_count" +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.mountequip_cfg.attribute_count" +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.number = 13 +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.index = 12 +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.label = 3 +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.has_default_value = false +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.default_value = {} +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.type = 2 +MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD.cpp_type = 6 + +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.name = "combat_point" +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.full_name = ".ftcfg.mountequip_cfg.combat_point" +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.number = 14 +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.index = 13 +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.label = 2 +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.has_default_value = false +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.default_value = 0 +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.type = 13 +MOUNTEQUIP_CFG_COMBAT_POINT_FIELD.cpp_type = 3 + +MOUNTEQUIP_CFG.name = "mountequip_cfg" +MOUNTEQUIP_CFG.full_name = ".ftcfg.mountequip_cfg" +MOUNTEQUIP_CFG.nested_types = {} +MOUNTEQUIP_CFG.enum_types = {} +MOUNTEQUIP_CFG.fields = {MOUNTEQUIP_CFG_ID_FIELD, MOUNTEQUIP_CFG_ITEM_NAME_FIELD, MOUNTEQUIP_CFG_ITEM_DESC_FIELD, MOUNTEQUIP_CFG_NEED_LEVEL_FIELD, MOUNTEQUIP_CFG_EQUIP_PLACE_FIELD, MOUNTEQUIP_CFG_DISPLAY_TYPE_FIELD, MOUNTEQUIP_CFG_ITEM_COLOR_FIELD, MOUNTEQUIP_CFG_ITEM_ICON_FIELD, MOUNTEQUIP_CFG_COULD_TRADE_FIELD, MOUNTEQUIP_CFG_EFFECT_TIMELIMITED_FIELD, MOUNTEQUIP_CFG_ATTRIBUTE_TYPE_FIELD, MOUNTEQUIP_CFG_ATTRIBUTE_MODE_FIELD, MOUNTEQUIP_CFG_ATTRIBUTE_COUNT_FIELD, MOUNTEQUIP_CFG_COMBAT_POINT_FIELD} +MOUNTEQUIP_CFG.is_extendable = false +MOUNTEQUIP_CFG.extensions = {} +MOUNTEQUIP_CFGS_ITEMS_FIELD.name = "items" +MOUNTEQUIP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.mountequip_cfgs.items" +MOUNTEQUIP_CFGS_ITEMS_FIELD.number = 1 +MOUNTEQUIP_CFGS_ITEMS_FIELD.index = 0 +MOUNTEQUIP_CFGS_ITEMS_FIELD.label = 3 +MOUNTEQUIP_CFGS_ITEMS_FIELD.has_default_value = false +MOUNTEQUIP_CFGS_ITEMS_FIELD.default_value = {} +MOUNTEQUIP_CFGS_ITEMS_FIELD.message_type = MOUNTEQUIP_CFG +MOUNTEQUIP_CFGS_ITEMS_FIELD.type = 11 +MOUNTEQUIP_CFGS_ITEMS_FIELD.cpp_type = 10 + +MOUNTEQUIP_CFGS.name = "mountequip_cfgs" +MOUNTEQUIP_CFGS.full_name = ".ftcfg.mountequip_cfgs" +MOUNTEQUIP_CFGS.nested_types = {} +MOUNTEQUIP_CFGS.enum_types = {} +MOUNTEQUIP_CFGS.fields = {MOUNTEQUIP_CFGS_ITEMS_FIELD} +MOUNTEQUIP_CFGS.is_extendable = false +MOUNTEQUIP_CFGS.extensions = {} +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.name = "id" +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.full_name = ".ftcfg.independent_random_reward_cfg.id" +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.number = 1 +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.index = 0 +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.label = 2 +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.has_default_value = false +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.default_value = 0 +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.type = 5 +INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD.cpp_type = 1 + +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.name = "drop_rate" +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.full_name = ".ftcfg.independent_random_reward_cfg.drop_rate" +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.number = 2 +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.index = 1 +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.label = 3 +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.has_default_value = false +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.default_value = {} +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.type = 5 +INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD.cpp_type = 1 + +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.name = "random_reward_id" +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.full_name = ".ftcfg.independent_random_reward_cfg.random_reward_id" +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.number = 3 +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.index = 2 +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.label = 3 +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.has_default_value = false +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.default_value = {} +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.type = 5 +INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD.cpp_type = 1 + +INDEPENDENT_RANDOM_REWARD_CFG.name = "independent_random_reward_cfg" +INDEPENDENT_RANDOM_REWARD_CFG.full_name = ".ftcfg.independent_random_reward_cfg" +INDEPENDENT_RANDOM_REWARD_CFG.nested_types = {} +INDEPENDENT_RANDOM_REWARD_CFG.enum_types = {} +INDEPENDENT_RANDOM_REWARD_CFG.fields = {INDEPENDENT_RANDOM_REWARD_CFG_ID_FIELD, INDEPENDENT_RANDOM_REWARD_CFG_DROP_RATE_FIELD, INDEPENDENT_RANDOM_REWARD_CFG_RANDOM_REWARD_ID_FIELD} +INDEPENDENT_RANDOM_REWARD_CFG.is_extendable = false +INDEPENDENT_RANDOM_REWARD_CFG.extensions = {} +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.name = "items" +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.independent_random_reward_cfgs.items" +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.number = 1 +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.index = 0 +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.label = 3 +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.has_default_value = false +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.default_value = {} +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.message_type = INDEPENDENT_RANDOM_REWARD_CFG +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.type = 11 +INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +INDEPENDENT_RANDOM_REWARD_CFGS.name = "independent_random_reward_cfgs" +INDEPENDENT_RANDOM_REWARD_CFGS.full_name = ".ftcfg.independent_random_reward_cfgs" +INDEPENDENT_RANDOM_REWARD_CFGS.nested_types = {} +INDEPENDENT_RANDOM_REWARD_CFGS.enum_types = {} +INDEPENDENT_RANDOM_REWARD_CFGS.fields = {INDEPENDENT_RANDOM_REWARD_CFGS_ITEMS_FIELD} +INDEPENDENT_RANDOM_REWARD_CFGS.is_extendable = false +INDEPENDENT_RANDOM_REWARD_CFGS.extensions = {} +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.name = "id" +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.full_name = ".ftcfg.weight_random_reward_cfg.id" +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.number = 1 +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.index = 0 +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.label = 2 +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.default_value = 0 +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.type = 5 +WEIGHT_RANDOM_REWARD_CFG_ID_FIELD.cpp_type = 1 + +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.name = "reward_rate" +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.full_name = ".ftcfg.weight_random_reward_cfg.reward_rate" +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.number = 2 +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.index = 1 +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.label = 3 +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.default_value = {} +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.type = 5 +WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD.cpp_type = 1 + +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.name = "reward_type" +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.full_name = ".ftcfg.weight_random_reward_cfg.reward_type" +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.number = 3 +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.index = 2 +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.label = 3 +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.default_value = {} +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.enum_type = config_predefine_pb.EREWARDTYPE +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.type = 14 +WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD.cpp_type = 8 + +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.name = "reward_id" +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.full_name = ".ftcfg.weight_random_reward_cfg.reward_id" +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.number = 4 +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.index = 3 +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.label = 3 +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.default_value = {} +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.type = 5 +WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD.cpp_type = 1 + +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.name = "random_min" +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.full_name = ".ftcfg.weight_random_reward_cfg.random_min" +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.number = 5 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.index = 4 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.label = 3 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.default_value = {} +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.type = 5 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD.cpp_type = 1 + +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.name = "random_max" +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.full_name = ".ftcfg.weight_random_reward_cfg.random_max" +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.number = 6 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.index = 5 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.label = 3 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.default_value = {} +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.type = 5 +WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD.cpp_type = 1 + +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.name = "show" +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.full_name = ".ftcfg.weight_random_reward_cfg.show" +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.number = 7 +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.index = 6 +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.label = 2 +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.default_value = 0 +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.type = 5 +WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD.cpp_type = 1 + +WEIGHT_RANDOM_REWARD_CFG.name = "weight_random_reward_cfg" +WEIGHT_RANDOM_REWARD_CFG.full_name = ".ftcfg.weight_random_reward_cfg" +WEIGHT_RANDOM_REWARD_CFG.nested_types = {} +WEIGHT_RANDOM_REWARD_CFG.enum_types = {} +WEIGHT_RANDOM_REWARD_CFG.fields = {WEIGHT_RANDOM_REWARD_CFG_ID_FIELD, WEIGHT_RANDOM_REWARD_CFG_REWARD_RATE_FIELD, WEIGHT_RANDOM_REWARD_CFG_REWARD_TYPE_FIELD, WEIGHT_RANDOM_REWARD_CFG_REWARD_ID_FIELD, WEIGHT_RANDOM_REWARD_CFG_RANDOM_MIN_FIELD, WEIGHT_RANDOM_REWARD_CFG_RANDOM_MAX_FIELD, WEIGHT_RANDOM_REWARD_CFG_SHOW_FIELD} +WEIGHT_RANDOM_REWARD_CFG.is_extendable = false +WEIGHT_RANDOM_REWARD_CFG.extensions = {} +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.name = "items" +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.weight_random_reward_cfgs.items" +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.number = 1 +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.index = 0 +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.label = 3 +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.has_default_value = false +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.default_value = {} +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.message_type = WEIGHT_RANDOM_REWARD_CFG +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.type = 11 +WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +WEIGHT_RANDOM_REWARD_CFGS.name = "weight_random_reward_cfgs" +WEIGHT_RANDOM_REWARD_CFGS.full_name = ".ftcfg.weight_random_reward_cfgs" +WEIGHT_RANDOM_REWARD_CFGS.nested_types = {} +WEIGHT_RANDOM_REWARD_CFGS.enum_types = {} +WEIGHT_RANDOM_REWARD_CFGS.fields = {WEIGHT_RANDOM_REWARD_CFGS_ITEMS_FIELD} +WEIGHT_RANDOM_REWARD_CFGS.is_extendable = false +WEIGHT_RANDOM_REWARD_CFGS.extensions = {} +REWARD_CFG_ID_FIELD.name = "id" +REWARD_CFG_ID_FIELD.full_name = ".ftcfg.reward_cfg.id" +REWARD_CFG_ID_FIELD.number = 1 +REWARD_CFG_ID_FIELD.index = 0 +REWARD_CFG_ID_FIELD.label = 2 +REWARD_CFG_ID_FIELD.has_default_value = false +REWARD_CFG_ID_FIELD.default_value = 0 +REWARD_CFG_ID_FIELD.type = 5 +REWARD_CFG_ID_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.name = "reward_attribute_id" +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.full_name = ".ftcfg.reward_cfg.reward_attribute_id" +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.number = 2 +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.index = 1 +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.label = 3 +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.has_default_value = false +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.default_value = {} +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.type = 5 +REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.name = "reward_attribute_count" +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.reward_attribute_count" +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.number = 3 +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.index = 2 +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.label = 3 +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = {} +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.type = 5 +REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_ITEM_ID_FIELD.name = "reward_item_id" +REWARD_CFG_REWARD_ITEM_ID_FIELD.full_name = ".ftcfg.reward_cfg.reward_item_id" +REWARD_CFG_REWARD_ITEM_ID_FIELD.number = 4 +REWARD_CFG_REWARD_ITEM_ID_FIELD.index = 3 +REWARD_CFG_REWARD_ITEM_ID_FIELD.label = 3 +REWARD_CFG_REWARD_ITEM_ID_FIELD.has_default_value = false +REWARD_CFG_REWARD_ITEM_ID_FIELD.default_value = {} +REWARD_CFG_REWARD_ITEM_ID_FIELD.type = 5 +REWARD_CFG_REWARD_ITEM_ID_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.name = "reward_item_count" +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.reward_item_count" +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.number = 5 +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.index = 4 +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.label = 3 +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.has_default_value = false +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.default_value = {} +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.type = 5 +REWARD_CFG_REWARD_ITEM_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.name = "reward_magic_rock_id" +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.full_name = ".ftcfg.reward_cfg.reward_magic_rock_id" +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.number = 6 +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.index = 5 +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.label = 3 +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.has_default_value = false +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.default_value = {} +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.type = 5 +REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.name = "reward_magic_rock_count" +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.reward_magic_rock_count" +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.number = 7 +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.index = 6 +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.label = 3 +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.has_default_value = false +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.default_value = {} +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.type = 5 +REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.name = "reward_refine_rock_id" +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.full_name = ".ftcfg.reward_cfg.reward_refine_rock_id" +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.number = 8 +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.index = 7 +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.label = 3 +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.has_default_value = false +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.default_value = {} +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.type = 5 +REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.name = "reward_refine_rock_count" +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.reward_refine_rock_count" +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.number = 9 +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.index = 8 +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.label = 3 +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.has_default_value = false +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.default_value = {} +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.type = 5 +REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_SOUL_ID_FIELD.name = "reward_soul_id" +REWARD_CFG_REWARD_SOUL_ID_FIELD.full_name = ".ftcfg.reward_cfg.reward_soul_id" +REWARD_CFG_REWARD_SOUL_ID_FIELD.number = 10 +REWARD_CFG_REWARD_SOUL_ID_FIELD.index = 9 +REWARD_CFG_REWARD_SOUL_ID_FIELD.label = 3 +REWARD_CFG_REWARD_SOUL_ID_FIELD.has_default_value = false +REWARD_CFG_REWARD_SOUL_ID_FIELD.default_value = {} +REWARD_CFG_REWARD_SOUL_ID_FIELD.type = 5 +REWARD_CFG_REWARD_SOUL_ID_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.name = "reward_soul_count" +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.reward_soul_count" +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.number = 11 +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.index = 10 +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.label = 3 +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.has_default_value = false +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.default_value = {} +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.type = 5 +REWARD_CFG_REWARD_SOUL_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_PARTNER_ID_FIELD.name = "reward_partner_id" +REWARD_CFG_REWARD_PARTNER_ID_FIELD.full_name = ".ftcfg.reward_cfg.reward_partner_id" +REWARD_CFG_REWARD_PARTNER_ID_FIELD.number = 12 +REWARD_CFG_REWARD_PARTNER_ID_FIELD.index = 11 +REWARD_CFG_REWARD_PARTNER_ID_FIELD.label = 3 +REWARD_CFG_REWARD_PARTNER_ID_FIELD.has_default_value = false +REWARD_CFG_REWARD_PARTNER_ID_FIELD.default_value = {} +REWARD_CFG_REWARD_PARTNER_ID_FIELD.type = 5 +REWARD_CFG_REWARD_PARTNER_ID_FIELD.cpp_type = 1 + +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.name = "reward_partner_count" +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.reward_partner_count" +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.number = 13 +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.index = 12 +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.label = 3 +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.has_default_value = false +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.default_value = {} +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.type = 5 +REWARD_CFG_REWARD_PARTNER_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.name = "profession1_reward_item_id" +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.full_name = ".ftcfg.reward_cfg.profession1_reward_item_id" +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.number = 14 +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.index = 13 +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.label = 3 +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.has_default_value = false +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.default_value = {} +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.type = 5 +REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.name = "profession1_reward_attribute_count" +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.profession1_reward_attribute_count" +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.number = 15 +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.index = 14 +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.label = 3 +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = {} +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.type = 5 +REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.name = "profession2_reward_item_id" +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.full_name = ".ftcfg.reward_cfg.profession2_reward_item_id" +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.number = 16 +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.index = 15 +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.label = 3 +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.has_default_value = false +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.default_value = {} +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.type = 5 +REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.name = "profession2_reward_attribute_count" +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.profession2_reward_attribute_count" +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.number = 17 +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.index = 16 +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.label = 3 +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = {} +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.type = 5 +REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.name = "profession3_reward_item_id" +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.full_name = ".ftcfg.reward_cfg.profession3_reward_item_id" +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.number = 18 +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.index = 17 +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.label = 3 +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.has_default_value = false +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.default_value = {} +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.type = 5 +REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.name = "profession3_reward_attribute_count" +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.profession3_reward_attribute_count" +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.number = 19 +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.index = 18 +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.label = 3 +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = {} +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.type = 5 +REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.name = "profession4_reward_item_id" +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.full_name = ".ftcfg.reward_cfg.profession4_reward_item_id" +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.number = 20 +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.index = 19 +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.label = 3 +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.has_default_value = false +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.default_value = {} +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.type = 5 +REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.name = "profession4_reward_attribute_count" +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.profession4_reward_attribute_count" +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.number = 21 +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.index = 20 +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.label = 3 +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = {} +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.type = 5 +REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.name = "profession5_reward_item_id" +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.full_name = ".ftcfg.reward_cfg.profession5_reward_item_id" +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.number = 22 +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.index = 21 +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.label = 3 +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.has_default_value = false +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.default_value = {} +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.type = 5 +REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD.cpp_type = 1 + +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.name = "profession5_reward_attribute_count" +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.full_name = ".ftcfg.reward_cfg.profession5_reward_attribute_count" +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.number = 23 +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.index = 22 +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.label = 3 +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.has_default_value = false +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.default_value = {} +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.type = 5 +REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD.cpp_type = 1 + +REWARD_CFG.name = "reward_cfg" +REWARD_CFG.full_name = ".ftcfg.reward_cfg" +REWARD_CFG.nested_types = {} +REWARD_CFG.enum_types = {} +REWARD_CFG.fields = {REWARD_CFG_ID_FIELD, REWARD_CFG_REWARD_ATTRIBUTE_ID_FIELD, REWARD_CFG_REWARD_ATTRIBUTE_COUNT_FIELD, REWARD_CFG_REWARD_ITEM_ID_FIELD, REWARD_CFG_REWARD_ITEM_COUNT_FIELD, REWARD_CFG_REWARD_MAGIC_ROCK_ID_FIELD, REWARD_CFG_REWARD_MAGIC_ROCK_COUNT_FIELD, REWARD_CFG_REWARD_REFINE_ROCK_ID_FIELD, REWARD_CFG_REWARD_REFINE_ROCK_COUNT_FIELD, REWARD_CFG_REWARD_SOUL_ID_FIELD, REWARD_CFG_REWARD_SOUL_COUNT_FIELD, REWARD_CFG_REWARD_PARTNER_ID_FIELD, REWARD_CFG_REWARD_PARTNER_COUNT_FIELD, REWARD_CFG_PROFESSION1_REWARD_ITEM_ID_FIELD, REWARD_CFG_PROFESSION1_REWARD_ATTRIBUTE_COUNT_FIELD, REWARD_CFG_PROFESSION2_REWARD_ITEM_ID_FIELD, REWARD_CFG_PROFESSION2_REWARD_ATTRIBUTE_COUNT_FIELD, REWARD_CFG_PROFESSION3_REWARD_ITEM_ID_FIELD, REWARD_CFG_PROFESSION3_REWARD_ATTRIBUTE_COUNT_FIELD, REWARD_CFG_PROFESSION4_REWARD_ITEM_ID_FIELD, REWARD_CFG_PROFESSION4_REWARD_ATTRIBUTE_COUNT_FIELD, REWARD_CFG_PROFESSION5_REWARD_ITEM_ID_FIELD, REWARD_CFG_PROFESSION5_REWARD_ATTRIBUTE_COUNT_FIELD} +REWARD_CFG.is_extendable = false +REWARD_CFG.extensions = {} +REWARD_CFGS_ITEMS_FIELD.name = "items" +REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.reward_cfgs.items" +REWARD_CFGS_ITEMS_FIELD.number = 1 +REWARD_CFGS_ITEMS_FIELD.index = 0 +REWARD_CFGS_ITEMS_FIELD.label = 3 +REWARD_CFGS_ITEMS_FIELD.has_default_value = false +REWARD_CFGS_ITEMS_FIELD.default_value = {} +REWARD_CFGS_ITEMS_FIELD.message_type = REWARD_CFG +REWARD_CFGS_ITEMS_FIELD.type = 11 +REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +REWARD_CFGS.name = "reward_cfgs" +REWARD_CFGS.full_name = ".ftcfg.reward_cfgs" +REWARD_CFGS.nested_types = {} +REWARD_CFGS.enum_types = {} +REWARD_CFGS.fields = {REWARD_CFGS_ITEMS_FIELD} +REWARD_CFGS.is_extendable = false +REWARD_CFGS.extensions = {} +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.name = "id" +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.full_name = ".ftcfg.func_type_weight_cfg.id" +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.number = 1 +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.index = 0 +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.label = 2 +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.has_default_value = false +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.default_value = nil +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.type = 14 +FUNC_TYPE_WEIGHT_CFG_ID_FIELD.cpp_type = 8 + +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.name = "drops" +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.full_name = ".ftcfg.func_type_weight_cfg.drops" +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.number = 2 +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.index = 1 +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.label = 3 +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.has_default_value = false +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.default_value = {} +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.type = 5 +FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD.cpp_type = 1 + +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.name = "weights" +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.full_name = ".ftcfg.func_type_weight_cfg.weights" +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.number = 3 +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.index = 2 +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.label = 3 +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.has_default_value = false +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.default_value = {} +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.type = 5 +FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD.cpp_type = 1 + +FUNC_TYPE_WEIGHT_CFG.name = "func_type_weight_cfg" +FUNC_TYPE_WEIGHT_CFG.full_name = ".ftcfg.func_type_weight_cfg" +FUNC_TYPE_WEIGHT_CFG.nested_types = {} +FUNC_TYPE_WEIGHT_CFG.enum_types = {} +FUNC_TYPE_WEIGHT_CFG.fields = {FUNC_TYPE_WEIGHT_CFG_ID_FIELD, FUNC_TYPE_WEIGHT_CFG_DROPS_FIELD, FUNC_TYPE_WEIGHT_CFG_WEIGHTS_FIELD} +FUNC_TYPE_WEIGHT_CFG.is_extendable = false +FUNC_TYPE_WEIGHT_CFG.extensions = {} +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.name = "items" +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.func_type_weight_cfgs.items" +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.number = 1 +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.index = 0 +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.label = 3 +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.has_default_value = false +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.default_value = {} +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.message_type = FUNC_TYPE_WEIGHT_CFG +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.type = 11 +FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD.cpp_type = 10 + +FUNC_TYPE_WEIGHT_CFGS.name = "func_type_weight_cfgs" +FUNC_TYPE_WEIGHT_CFGS.full_name = ".ftcfg.func_type_weight_cfgs" +FUNC_TYPE_WEIGHT_CFGS.nested_types = {} +FUNC_TYPE_WEIGHT_CFGS.enum_types = {} +FUNC_TYPE_WEIGHT_CFGS.fields = {FUNC_TYPE_WEIGHT_CFGS_ITEMS_FIELD} +FUNC_TYPE_WEIGHT_CFGS.is_extendable = false +FUNC_TYPE_WEIGHT_CFGS.extensions = {} +ZONE_LOCATION_CFG_ID_FIELD.name = "id" +ZONE_LOCATION_CFG_ID_FIELD.full_name = ".ftcfg.zone_location_cfg.id" +ZONE_LOCATION_CFG_ID_FIELD.number = 1 +ZONE_LOCATION_CFG_ID_FIELD.index = 0 +ZONE_LOCATION_CFG_ID_FIELD.label = 2 +ZONE_LOCATION_CFG_ID_FIELD.has_default_value = false +ZONE_LOCATION_CFG_ID_FIELD.default_value = 0 +ZONE_LOCATION_CFG_ID_FIELD.type = 5 +ZONE_LOCATION_CFG_ID_FIELD.cpp_type = 1 + +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.name = "province_id" +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.full_name = ".ftcfg.zone_location_cfg.province_id" +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.number = 2 +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.index = 1 +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.label = 2 +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.has_default_value = false +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.default_value = 0 +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.type = 5 +ZONE_LOCATION_CFG_PROVINCE_ID_FIELD.cpp_type = 1 + +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.name = "province_language_id" +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.full_name = ".ftcfg.zone_location_cfg.province_language_id" +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.number = 3 +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.index = 2 +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.label = 2 +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.has_default_value = false +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.default_value = 0 +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.type = 5 +ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD.cpp_type = 1 + +ZONE_LOCATION_CFG_CITY_ID_FIELD.name = "city_id" +ZONE_LOCATION_CFG_CITY_ID_FIELD.full_name = ".ftcfg.zone_location_cfg.city_id" +ZONE_LOCATION_CFG_CITY_ID_FIELD.number = 4 +ZONE_LOCATION_CFG_CITY_ID_FIELD.index = 3 +ZONE_LOCATION_CFG_CITY_ID_FIELD.label = 2 +ZONE_LOCATION_CFG_CITY_ID_FIELD.has_default_value = false +ZONE_LOCATION_CFG_CITY_ID_FIELD.default_value = 0 +ZONE_LOCATION_CFG_CITY_ID_FIELD.type = 5 +ZONE_LOCATION_CFG_CITY_ID_FIELD.cpp_type = 1 + +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.name = "city_language_id" +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.full_name = ".ftcfg.zone_location_cfg.city_language_id" +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.number = 5 +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.index = 4 +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.label = 2 +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.has_default_value = false +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.default_value = 0 +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.type = 5 +ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD.cpp_type = 1 + +ZONE_LOCATION_CFG.name = "zone_location_cfg" +ZONE_LOCATION_CFG.full_name = ".ftcfg.zone_location_cfg" +ZONE_LOCATION_CFG.nested_types = {} +ZONE_LOCATION_CFG.enum_types = {} +ZONE_LOCATION_CFG.fields = {ZONE_LOCATION_CFG_ID_FIELD, ZONE_LOCATION_CFG_PROVINCE_ID_FIELD, ZONE_LOCATION_CFG_PROVINCE_LANGUAGE_ID_FIELD, ZONE_LOCATION_CFG_CITY_ID_FIELD, ZONE_LOCATION_CFG_CITY_LANGUAGE_ID_FIELD} +ZONE_LOCATION_CFG.is_extendable = false +ZONE_LOCATION_CFG.extensions = {} +ZONE_LOCATION_CFGS_ITEMS_FIELD.name = "items" +ZONE_LOCATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.zone_location_cfgs.items" +ZONE_LOCATION_CFGS_ITEMS_FIELD.number = 1 +ZONE_LOCATION_CFGS_ITEMS_FIELD.index = 0 +ZONE_LOCATION_CFGS_ITEMS_FIELD.label = 3 +ZONE_LOCATION_CFGS_ITEMS_FIELD.has_default_value = false +ZONE_LOCATION_CFGS_ITEMS_FIELD.default_value = {} +ZONE_LOCATION_CFGS_ITEMS_FIELD.message_type = ZONE_LOCATION_CFG +ZONE_LOCATION_CFGS_ITEMS_FIELD.type = 11 +ZONE_LOCATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +ZONE_LOCATION_CFGS.name = "zone_location_cfgs" +ZONE_LOCATION_CFGS.full_name = ".ftcfg.zone_location_cfgs" +ZONE_LOCATION_CFGS.nested_types = {} +ZONE_LOCATION_CFGS.enum_types = {} +ZONE_LOCATION_CFGS.fields = {ZONE_LOCATION_CFGS_ITEMS_FIELD} +ZONE_LOCATION_CFGS.is_extendable = false +ZONE_LOCATION_CFGS.extensions = {} +GIFT_GIVING_CFG_ID_FIELD.name = "id" +GIFT_GIVING_CFG_ID_FIELD.full_name = ".ftcfg.gift_giving_cfg.id" +GIFT_GIVING_CFG_ID_FIELD.number = 1 +GIFT_GIVING_CFG_ID_FIELD.index = 0 +GIFT_GIVING_CFG_ID_FIELD.label = 2 +GIFT_GIVING_CFG_ID_FIELD.has_default_value = false +GIFT_GIVING_CFG_ID_FIELD.default_value = 0 +GIFT_GIVING_CFG_ID_FIELD.type = 5 +GIFT_GIVING_CFG_ID_FIELD.cpp_type = 1 + +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.name = "gift_type" +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.full_name = ".ftcfg.gift_giving_cfg.gift_type" +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.number = 2 +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.index = 1 +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.label = 2 +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.has_default_value = false +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.default_value = 0 +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.type = 5 +GIFT_GIVING_CFG_GIFT_TYPE_FIELD.cpp_type = 1 + +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.name = "gift_item_id" +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.full_name = ".ftcfg.gift_giving_cfg.gift_item_id" +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.number = 3 +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.index = 2 +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.label = 2 +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.has_default_value = false +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.default_value = 0 +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.type = 5 +GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD.cpp_type = 1 + +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.name = "give_friend_degree" +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.full_name = ".ftcfg.gift_giving_cfg.give_friend_degree" +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.number = 4 +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.index = 3 +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.label = 2 +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.has_default_value = false +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.default_value = 0 +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.type = 5 +GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD.cpp_type = 1 + +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.name = "is_give_friebd" +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.full_name = ".ftcfg.gift_giving_cfg.is_give_friebd" +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.number = 5 +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.index = 4 +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.label = 2 +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.has_default_value = false +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.default_value = 0 +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.type = 5 +GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD.cpp_type = 1 + +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.name = "is_give_delete" +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.full_name = ".ftcfg.gift_giving_cfg.is_give_delete" +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.number = 6 +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.index = 5 +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.label = 2 +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.has_default_value = false +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.default_value = 0 +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.type = 5 +GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD.cpp_type = 1 + +GIFT_GIVING_CFG.name = "gift_giving_cfg" +GIFT_GIVING_CFG.full_name = ".ftcfg.gift_giving_cfg" +GIFT_GIVING_CFG.nested_types = {} +GIFT_GIVING_CFG.enum_types = {} +GIFT_GIVING_CFG.fields = {GIFT_GIVING_CFG_ID_FIELD, GIFT_GIVING_CFG_GIFT_TYPE_FIELD, GIFT_GIVING_CFG_GIFT_ITEM_ID_FIELD, GIFT_GIVING_CFG_GIVE_FRIEND_DEGREE_FIELD, GIFT_GIVING_CFG_IS_GIVE_FRIEBD_FIELD, GIFT_GIVING_CFG_IS_GIVE_DELETE_FIELD} +GIFT_GIVING_CFG.is_extendable = false +GIFT_GIVING_CFG.extensions = {} +GIFT_GIVING_CFGS_ITEMS_FIELD.name = "items" +GIFT_GIVING_CFGS_ITEMS_FIELD.full_name = ".ftcfg.gift_giving_cfgs.items" +GIFT_GIVING_CFGS_ITEMS_FIELD.number = 1 +GIFT_GIVING_CFGS_ITEMS_FIELD.index = 0 +GIFT_GIVING_CFGS_ITEMS_FIELD.label = 3 +GIFT_GIVING_CFGS_ITEMS_FIELD.has_default_value = false +GIFT_GIVING_CFGS_ITEMS_FIELD.default_value = {} +GIFT_GIVING_CFGS_ITEMS_FIELD.message_type = GIFT_GIVING_CFG +GIFT_GIVING_CFGS_ITEMS_FIELD.type = 11 +GIFT_GIVING_CFGS_ITEMS_FIELD.cpp_type = 10 + +GIFT_GIVING_CFGS.name = "gift_giving_cfgs" +GIFT_GIVING_CFGS.full_name = ".ftcfg.gift_giving_cfgs" +GIFT_GIVING_CFGS.nested_types = {} +GIFT_GIVING_CFGS.enum_types = {} +GIFT_GIVING_CFGS.fields = {GIFT_GIVING_CFGS_ITEMS_FIELD} +GIFT_GIVING_CFGS.is_extendable = false +GIFT_GIVING_CFGS.extensions = {} +FRIEND_TITLE_CFG_ID_FIELD.name = "id" +FRIEND_TITLE_CFG_ID_FIELD.full_name = ".ftcfg.friend_title_cfg.id" +FRIEND_TITLE_CFG_ID_FIELD.number = 1 +FRIEND_TITLE_CFG_ID_FIELD.index = 0 +FRIEND_TITLE_CFG_ID_FIELD.label = 2 +FRIEND_TITLE_CFG_ID_FIELD.has_default_value = false +FRIEND_TITLE_CFG_ID_FIELD.default_value = 0 +FRIEND_TITLE_CFG_ID_FIELD.type = 5 +FRIEND_TITLE_CFG_ID_FIELD.cpp_type = 1 + +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.name = "friend_degree_level" +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.full_name = ".ftcfg.friend_title_cfg.friend_degree_level" +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.number = 2 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.index = 1 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.label = 2 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.has_default_value = false +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.default_value = 0 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.type = 5 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD.cpp_type = 1 + +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.name = "friend_degree_languageid" +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.full_name = ".ftcfg.friend_title_cfg.friend_degree_languageid" +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.number = 3 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.index = 2 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.label = 2 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.has_default_value = false +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.default_value = 0 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.type = 5 +FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD.cpp_type = 1 + +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.name = "need_friend_degree" +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.full_name = ".ftcfg.friend_title_cfg.need_friend_degree" +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.number = 4 +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.index = 3 +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.label = 2 +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.has_default_value = false +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.default_value = 0 +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.type = 5 +FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD.cpp_type = 1 + +FRIEND_TITLE_CFG.name = "friend_title_cfg" +FRIEND_TITLE_CFG.full_name = ".ftcfg.friend_title_cfg" +FRIEND_TITLE_CFG.nested_types = {} +FRIEND_TITLE_CFG.enum_types = {} +FRIEND_TITLE_CFG.fields = {FRIEND_TITLE_CFG_ID_FIELD, FRIEND_TITLE_CFG_FRIEND_DEGREE_LEVEL_FIELD, FRIEND_TITLE_CFG_FRIEND_DEGREE_LANGUAGEID_FIELD, FRIEND_TITLE_CFG_NEED_FRIEND_DEGREE_FIELD} +FRIEND_TITLE_CFG.is_extendable = false +FRIEND_TITLE_CFG.extensions = {} +FRIEND_TITLE_CFGS_ITEMS_FIELD.name = "items" +FRIEND_TITLE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.friend_title_cfgs.items" +FRIEND_TITLE_CFGS_ITEMS_FIELD.number = 1 +FRIEND_TITLE_CFGS_ITEMS_FIELD.index = 0 +FRIEND_TITLE_CFGS_ITEMS_FIELD.label = 3 +FRIEND_TITLE_CFGS_ITEMS_FIELD.has_default_value = false +FRIEND_TITLE_CFGS_ITEMS_FIELD.default_value = {} +FRIEND_TITLE_CFGS_ITEMS_FIELD.message_type = FRIEND_TITLE_CFG +FRIEND_TITLE_CFGS_ITEMS_FIELD.type = 11 +FRIEND_TITLE_CFGS_ITEMS_FIELD.cpp_type = 10 + +FRIEND_TITLE_CFGS.name = "friend_title_cfgs" +FRIEND_TITLE_CFGS.full_name = ".ftcfg.friend_title_cfgs" +FRIEND_TITLE_CFGS.nested_types = {} +FRIEND_TITLE_CFGS.enum_types = {} +FRIEND_TITLE_CFGS.fields = {FRIEND_TITLE_CFGS_ITEMS_FIELD} +FRIEND_TITLE_CFGS.is_extendable = false +FRIEND_TITLE_CFGS.extensions = {} +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.name = "fate_id" +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.full_name = ".ftcfg.fate_value_reward_cfg.fate_id" +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.number = 1 +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.index = 0 +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.label = 2 +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.has_default_value = false +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.default_value = 0 +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.type = 5 +FATE_VALUE_REWARD_CFG_FATE_ID_FIELD.cpp_type = 1 + +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.name = "need_fate_value" +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.full_name = ".ftcfg.fate_value_reward_cfg.need_fate_value" +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.number = 2 +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.index = 1 +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.label = 2 +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.has_default_value = false +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.default_value = 0 +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.type = 5 +FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD.cpp_type = 1 + +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.name = "fate_item_id" +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.full_name = ".ftcfg.fate_value_reward_cfg.fate_item_id" +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.number = 3 +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.index = 2 +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.label = 2 +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.has_default_value = false +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.default_value = 0 +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.type = 5 +FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD.cpp_type = 1 + +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.name = "fate_item_number" +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.full_name = ".ftcfg.fate_value_reward_cfg.fate_item_number" +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.number = 4 +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.index = 3 +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.label = 2 +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.has_default_value = false +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.default_value = 0 +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.type = 5 +FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD.cpp_type = 1 + +FATE_VALUE_REWARD_CFG.name = "fate_value_reward_cfg" +FATE_VALUE_REWARD_CFG.full_name = ".ftcfg.fate_value_reward_cfg" +FATE_VALUE_REWARD_CFG.nested_types = {} +FATE_VALUE_REWARD_CFG.enum_types = {} +FATE_VALUE_REWARD_CFG.fields = {FATE_VALUE_REWARD_CFG_FATE_ID_FIELD, FATE_VALUE_REWARD_CFG_NEED_FATE_VALUE_FIELD, FATE_VALUE_REWARD_CFG_FATE_ITEM_ID_FIELD, FATE_VALUE_REWARD_CFG_FATE_ITEM_NUMBER_FIELD} +FATE_VALUE_REWARD_CFG.is_extendable = false +FATE_VALUE_REWARD_CFG.extensions = {} +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.name = "items" +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.fate_value_reward_cfgs.items" +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.number = 1 +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.index = 0 +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.label = 3 +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.has_default_value = false +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.default_value = {} +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.message_type = FATE_VALUE_REWARD_CFG +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.type = 11 +FATE_VALUE_REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +FATE_VALUE_REWARD_CFGS.name = "fate_value_reward_cfgs" +FATE_VALUE_REWARD_CFGS.full_name = ".ftcfg.fate_value_reward_cfgs" +FATE_VALUE_REWARD_CFGS.nested_types = {} +FATE_VALUE_REWARD_CFGS.enum_types = {} +FATE_VALUE_REWARD_CFGS.fields = {FATE_VALUE_REWARD_CFGS_ITEMS_FIELD} +FATE_VALUE_REWARD_CFGS.is_extendable = false +FATE_VALUE_REWARD_CFGS.extensions = {} +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.name = "item_id" +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.gemstone_inlay_cfg.item_id" +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.number = 1 +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.index = 0 +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.label = 2 +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.has_default_value = false +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.default_value = 0 +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.type = 5 +GEMSTONE_INLAY_CFG_ITEM_ID_FIELD.cpp_type = 1 + +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.name = "item_num" +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.full_name = ".ftcfg.gemstone_inlay_cfg.item_num" +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.number = 2 +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.index = 1 +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.label = 2 +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.has_default_value = false +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.default_value = 0 +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.type = 5 +GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD.cpp_type = 1 + +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.name = "item_fail_num" +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.full_name = ".ftcfg.gemstone_inlay_cfg.item_fail_num" +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.number = 3 +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.index = 2 +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.label = 2 +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.has_default_value = false +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.default_value = 0 +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.type = 5 +GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD.cpp_type = 1 + +GEMSTONE_INLAY_CFG_RANGE_FIELD.name = "range" +GEMSTONE_INLAY_CFG_RANGE_FIELD.full_name = ".ftcfg.gemstone_inlay_cfg.range" +GEMSTONE_INLAY_CFG_RANGE_FIELD.number = 4 +GEMSTONE_INLAY_CFG_RANGE_FIELD.index = 3 +GEMSTONE_INLAY_CFG_RANGE_FIELD.label = 2 +GEMSTONE_INLAY_CFG_RANGE_FIELD.has_default_value = false +GEMSTONE_INLAY_CFG_RANGE_FIELD.default_value = 0 +GEMSTONE_INLAY_CFG_RANGE_FIELD.type = 5 +GEMSTONE_INLAY_CFG_RANGE_FIELD.cpp_type = 1 + +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.name = "item_suc_id" +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.full_name = ".ftcfg.gemstone_inlay_cfg.item_suc_id" +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.number = 5 +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.index = 4 +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.label = 2 +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.has_default_value = false +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.default_value = 0 +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.type = 5 +GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD.cpp_type = 1 + +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.name = "item_suc_num" +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.full_name = ".ftcfg.gemstone_inlay_cfg.item_suc_num" +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.number = 6 +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.index = 5 +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.label = 2 +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.has_default_value = false +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.default_value = 0 +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.type = 5 +GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD.cpp_type = 1 + +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.name = "item_desc_id" +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.full_name = ".ftcfg.gemstone_inlay_cfg.item_desc_id" +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.number = 7 +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.index = 6 +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.label = 2 +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.has_default_value = false +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.default_value = 0 +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.type = 5 +GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD.cpp_type = 1 + +GEMSTONE_INLAY_CFG.name = "gemstone_inlay_cfg" +GEMSTONE_INLAY_CFG.full_name = ".ftcfg.gemstone_inlay_cfg" +GEMSTONE_INLAY_CFG.nested_types = {} +GEMSTONE_INLAY_CFG.enum_types = {} +GEMSTONE_INLAY_CFG.fields = {GEMSTONE_INLAY_CFG_ITEM_ID_FIELD, GEMSTONE_INLAY_CFG_ITEM_NUM_FIELD, GEMSTONE_INLAY_CFG_ITEM_FAIL_NUM_FIELD, GEMSTONE_INLAY_CFG_RANGE_FIELD, GEMSTONE_INLAY_CFG_ITEM_SUC_ID_FIELD, GEMSTONE_INLAY_CFG_ITEM_SUC_NUM_FIELD, GEMSTONE_INLAY_CFG_ITEM_DESC_ID_FIELD} +GEMSTONE_INLAY_CFG.is_extendable = false +GEMSTONE_INLAY_CFG.extensions = {} +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.name = "items" +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.gemstone_inlay_cfgs.items" +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.number = 1 +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.index = 0 +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.label = 3 +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.has_default_value = false +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.default_value = {} +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.message_type = GEMSTONE_INLAY_CFG +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.type = 11 +GEMSTONE_INLAY_CFGS_ITEMS_FIELD.cpp_type = 10 + +GEMSTONE_INLAY_CFGS.name = "gemstone_inlay_cfgs" +GEMSTONE_INLAY_CFGS.full_name = ".ftcfg.gemstone_inlay_cfgs" +GEMSTONE_INLAY_CFGS.nested_types = {} +GEMSTONE_INLAY_CFGS.enum_types = {} +GEMSTONE_INLAY_CFGS.fields = {GEMSTONE_INLAY_CFGS_ITEMS_FIELD} +GEMSTONE_INLAY_CFGS.is_extendable = false +GEMSTONE_INLAY_CFGS.extensions = {} +GEMSTONE_LIST_CFG_GEM_ID_FIELD.name = "gem_id" +GEMSTONE_LIST_CFG_GEM_ID_FIELD.full_name = ".ftcfg.gemstone_list_cfg.gem_id" +GEMSTONE_LIST_CFG_GEM_ID_FIELD.number = 1 +GEMSTONE_LIST_CFG_GEM_ID_FIELD.index = 0 +GEMSTONE_LIST_CFG_GEM_ID_FIELD.label = 2 +GEMSTONE_LIST_CFG_GEM_ID_FIELD.has_default_value = false +GEMSTONE_LIST_CFG_GEM_ID_FIELD.default_value = 0 +GEMSTONE_LIST_CFG_GEM_ID_FIELD.type = 5 +GEMSTONE_LIST_CFG_GEM_ID_FIELD.cpp_type = 1 + +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.name = "gem_nameid" +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.full_name = ".ftcfg.gemstone_list_cfg.gem_nameid" +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.number = 2 +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.index = 1 +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.label = 2 +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.has_default_value = false +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.default_value = 0 +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.type = 5 +GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD.cpp_type = 1 + +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.name = "gem_picid" +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.full_name = ".ftcfg.gemstone_list_cfg.gem_picid" +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.number = 3 +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.index = 2 +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.label = 2 +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.has_default_value = false +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.default_value = 0 +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.type = 5 +GEMSTONE_LIST_CFG_GEM_PICID_FIELD.cpp_type = 1 + +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.name = "gem_knameid" +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.full_name = ".ftcfg.gemstone_list_cfg.gem_knameid" +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.number = 4 +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.index = 3 +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.label = 2 +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.has_default_value = false +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.default_value = 0 +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.type = 5 +GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD.cpp_type = 1 + +GEMSTONE_LIST_CFG.name = "gemstone_list_cfg" +GEMSTONE_LIST_CFG.full_name = ".ftcfg.gemstone_list_cfg" +GEMSTONE_LIST_CFG.nested_types = {} +GEMSTONE_LIST_CFG.enum_types = {} +GEMSTONE_LIST_CFG.fields = {GEMSTONE_LIST_CFG_GEM_ID_FIELD, GEMSTONE_LIST_CFG_GEM_NAMEID_FIELD, GEMSTONE_LIST_CFG_GEM_PICID_FIELD, GEMSTONE_LIST_CFG_GEM_KNAMEID_FIELD} +GEMSTONE_LIST_CFG.is_extendable = false +GEMSTONE_LIST_CFG.extensions = {} +GEMSTONE_LIST_CFGS_ITEMS_FIELD.name = "items" +GEMSTONE_LIST_CFGS_ITEMS_FIELD.full_name = ".ftcfg.gemstone_list_cfgs.items" +GEMSTONE_LIST_CFGS_ITEMS_FIELD.number = 1 +GEMSTONE_LIST_CFGS_ITEMS_FIELD.index = 0 +GEMSTONE_LIST_CFGS_ITEMS_FIELD.label = 3 +GEMSTONE_LIST_CFGS_ITEMS_FIELD.has_default_value = false +GEMSTONE_LIST_CFGS_ITEMS_FIELD.default_value = {} +GEMSTONE_LIST_CFGS_ITEMS_FIELD.message_type = GEMSTONE_LIST_CFG +GEMSTONE_LIST_CFGS_ITEMS_FIELD.type = 11 +GEMSTONE_LIST_CFGS_ITEMS_FIELD.cpp_type = 10 + +GEMSTONE_LIST_CFGS.name = "gemstone_list_cfgs" +GEMSTONE_LIST_CFGS.full_name = ".ftcfg.gemstone_list_cfgs" +GEMSTONE_LIST_CFGS.nested_types = {} +GEMSTONE_LIST_CFGS.enum_types = {} +GEMSTONE_LIST_CFGS.fields = {GEMSTONE_LIST_CFGS_ITEMS_FIELD} +GEMSTONE_LIST_CFGS.is_extendable = false +GEMSTONE_LIST_CFGS.extensions = {} +CHEST_DROP_CFG_ID_FIELD.name = "id" +CHEST_DROP_CFG_ID_FIELD.full_name = ".ftcfg.chest_drop_cfg.id" +CHEST_DROP_CFG_ID_FIELD.number = 1 +CHEST_DROP_CFG_ID_FIELD.index = 0 +CHEST_DROP_CFG_ID_FIELD.label = 2 +CHEST_DROP_CFG_ID_FIELD.has_default_value = false +CHEST_DROP_CFG_ID_FIELD.default_value = 0 +CHEST_DROP_CFG_ID_FIELD.type = 5 +CHEST_DROP_CFG_ID_FIELD.cpp_type = 1 + +CHEST_DROP_CFG_TYPE_FIELD.name = "type" +CHEST_DROP_CFG_TYPE_FIELD.full_name = ".ftcfg.chest_drop_cfg.type" +CHEST_DROP_CFG_TYPE_FIELD.number = 2 +CHEST_DROP_CFG_TYPE_FIELD.index = 1 +CHEST_DROP_CFG_TYPE_FIELD.label = 2 +CHEST_DROP_CFG_TYPE_FIELD.has_default_value = false +CHEST_DROP_CFG_TYPE_FIELD.default_value = nil +CHEST_DROP_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ECHESTTYPE +CHEST_DROP_CFG_TYPE_FIELD.type = 14 +CHEST_DROP_CFG_TYPE_FIELD.cpp_type = 8 + +CHEST_DROP_CFG_COUNT_FIELD.name = "count" +CHEST_DROP_CFG_COUNT_FIELD.full_name = ".ftcfg.chest_drop_cfg.count" +CHEST_DROP_CFG_COUNT_FIELD.number = 3 +CHEST_DROP_CFG_COUNT_FIELD.index = 2 +CHEST_DROP_CFG_COUNT_FIELD.label = 2 +CHEST_DROP_CFG_COUNT_FIELD.has_default_value = false +CHEST_DROP_CFG_COUNT_FIELD.default_value = 0 +CHEST_DROP_CFG_COUNT_FIELD.type = 5 +CHEST_DROP_CFG_COUNT_FIELD.cpp_type = 1 + +CHEST_DROP_CFG_ITEM_ID_FIELD.name = "item_id" +CHEST_DROP_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.chest_drop_cfg.item_id" +CHEST_DROP_CFG_ITEM_ID_FIELD.number = 4 +CHEST_DROP_CFG_ITEM_ID_FIELD.index = 3 +CHEST_DROP_CFG_ITEM_ID_FIELD.label = 2 +CHEST_DROP_CFG_ITEM_ID_FIELD.has_default_value = false +CHEST_DROP_CFG_ITEM_ID_FIELD.default_value = 0 +CHEST_DROP_CFG_ITEM_ID_FIELD.type = 5 +CHEST_DROP_CFG_ITEM_ID_FIELD.cpp_type = 1 + +CHEST_DROP_CFG_RES_ID_FIELD.name = "res_id" +CHEST_DROP_CFG_RES_ID_FIELD.full_name = ".ftcfg.chest_drop_cfg.res_id" +CHEST_DROP_CFG_RES_ID_FIELD.number = 5 +CHEST_DROP_CFG_RES_ID_FIELD.index = 4 +CHEST_DROP_CFG_RES_ID_FIELD.label = 2 +CHEST_DROP_CFG_RES_ID_FIELD.has_default_value = false +CHEST_DROP_CFG_RES_ID_FIELD.default_value = 0 +CHEST_DROP_CFG_RES_ID_FIELD.type = 5 +CHEST_DROP_CFG_RES_ID_FIELD.cpp_type = 1 + +CHEST_DROP_CFG_RADIUS_FIELD.name = "radius" +CHEST_DROP_CFG_RADIUS_FIELD.full_name = ".ftcfg.chest_drop_cfg.radius" +CHEST_DROP_CFG_RADIUS_FIELD.number = 6 +CHEST_DROP_CFG_RADIUS_FIELD.index = 5 +CHEST_DROP_CFG_RADIUS_FIELD.label = 2 +CHEST_DROP_CFG_RADIUS_FIELD.has_default_value = false +CHEST_DROP_CFG_RADIUS_FIELD.default_value = 0.0 +CHEST_DROP_CFG_RADIUS_FIELD.type = 2 +CHEST_DROP_CFG_RADIUS_FIELD.cpp_type = 6 + +CHEST_DROP_CFG_SPACE_ROWS_FIELD.name = "space_rows" +CHEST_DROP_CFG_SPACE_ROWS_FIELD.full_name = ".ftcfg.chest_drop_cfg.space_rows" +CHEST_DROP_CFG_SPACE_ROWS_FIELD.number = 7 +CHEST_DROP_CFG_SPACE_ROWS_FIELD.index = 6 +CHEST_DROP_CFG_SPACE_ROWS_FIELD.label = 2 +CHEST_DROP_CFG_SPACE_ROWS_FIELD.has_default_value = false +CHEST_DROP_CFG_SPACE_ROWS_FIELD.default_value = 0.0 +CHEST_DROP_CFG_SPACE_ROWS_FIELD.type = 2 +CHEST_DROP_CFG_SPACE_ROWS_FIELD.cpp_type = 6 + +CHEST_DROP_CFG_SPACE_COLS_FIELD.name = "space_cols" +CHEST_DROP_CFG_SPACE_COLS_FIELD.full_name = ".ftcfg.chest_drop_cfg.space_cols" +CHEST_DROP_CFG_SPACE_COLS_FIELD.number = 8 +CHEST_DROP_CFG_SPACE_COLS_FIELD.index = 7 +CHEST_DROP_CFG_SPACE_COLS_FIELD.label = 2 +CHEST_DROP_CFG_SPACE_COLS_FIELD.has_default_value = false +CHEST_DROP_CFG_SPACE_COLS_FIELD.default_value = 0.0 +CHEST_DROP_CFG_SPACE_COLS_FIELD.type = 2 +CHEST_DROP_CFG_SPACE_COLS_FIELD.cpp_type = 6 + +CHEST_DROP_CFG_LIVE_TIME_FIELD.name = "live_time" +CHEST_DROP_CFG_LIVE_TIME_FIELD.full_name = ".ftcfg.chest_drop_cfg.live_time" +CHEST_DROP_CFG_LIVE_TIME_FIELD.number = 9 +CHEST_DROP_CFG_LIVE_TIME_FIELD.index = 8 +CHEST_DROP_CFG_LIVE_TIME_FIELD.label = 2 +CHEST_DROP_CFG_LIVE_TIME_FIELD.has_default_value = false +CHEST_DROP_CFG_LIVE_TIME_FIELD.default_value = 0 +CHEST_DROP_CFG_LIVE_TIME_FIELD.type = 5 +CHEST_DROP_CFG_LIVE_TIME_FIELD.cpp_type = 1 + +CHEST_DROP_CFG_REFRESH_TIME_FIELD.name = "refresh_time" +CHEST_DROP_CFG_REFRESH_TIME_FIELD.full_name = ".ftcfg.chest_drop_cfg.refresh_time" +CHEST_DROP_CFG_REFRESH_TIME_FIELD.number = 10 +CHEST_DROP_CFG_REFRESH_TIME_FIELD.index = 9 +CHEST_DROP_CFG_REFRESH_TIME_FIELD.label = 2 +CHEST_DROP_CFG_REFRESH_TIME_FIELD.has_default_value = false +CHEST_DROP_CFG_REFRESH_TIME_FIELD.default_value = 0 +CHEST_DROP_CFG_REFRESH_TIME_FIELD.type = 5 +CHEST_DROP_CFG_REFRESH_TIME_FIELD.cpp_type = 1 + +CHEST_DROP_CFG.name = "chest_drop_cfg" +CHEST_DROP_CFG.full_name = ".ftcfg.chest_drop_cfg" +CHEST_DROP_CFG.nested_types = {} +CHEST_DROP_CFG.enum_types = {} +CHEST_DROP_CFG.fields = {CHEST_DROP_CFG_ID_FIELD, CHEST_DROP_CFG_TYPE_FIELD, CHEST_DROP_CFG_COUNT_FIELD, CHEST_DROP_CFG_ITEM_ID_FIELD, CHEST_DROP_CFG_RES_ID_FIELD, CHEST_DROP_CFG_RADIUS_FIELD, CHEST_DROP_CFG_SPACE_ROWS_FIELD, CHEST_DROP_CFG_SPACE_COLS_FIELD, CHEST_DROP_CFG_LIVE_TIME_FIELD, CHEST_DROP_CFG_REFRESH_TIME_FIELD} +CHEST_DROP_CFG.is_extendable = false +CHEST_DROP_CFG.extensions = {} +CHEST_DROP_CFGS_ITEMS_FIELD.name = "items" +CHEST_DROP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.chest_drop_cfgs.items" +CHEST_DROP_CFGS_ITEMS_FIELD.number = 1 +CHEST_DROP_CFGS_ITEMS_FIELD.index = 0 +CHEST_DROP_CFGS_ITEMS_FIELD.label = 3 +CHEST_DROP_CFGS_ITEMS_FIELD.has_default_value = false +CHEST_DROP_CFGS_ITEMS_FIELD.default_value = {} +CHEST_DROP_CFGS_ITEMS_FIELD.message_type = CHEST_DROP_CFG +CHEST_DROP_CFGS_ITEMS_FIELD.type = 11 +CHEST_DROP_CFGS_ITEMS_FIELD.cpp_type = 10 + +CHEST_DROP_CFGS.name = "chest_drop_cfgs" +CHEST_DROP_CFGS.full_name = ".ftcfg.chest_drop_cfgs" +CHEST_DROP_CFGS.nested_types = {} +CHEST_DROP_CFGS.enum_types = {} +CHEST_DROP_CFGS.fields = {CHEST_DROP_CFGS_ITEMS_FIELD} +CHEST_DROP_CFGS.is_extendable = false +CHEST_DROP_CFGS.extensions = {} +MINIMAP_CFG_ID_FIELD.name = "id" +MINIMAP_CFG_ID_FIELD.full_name = ".ftcfg.minimap_cfg.id" +MINIMAP_CFG_ID_FIELD.number = 1 +MINIMAP_CFG_ID_FIELD.index = 0 +MINIMAP_CFG_ID_FIELD.label = 2 +MINIMAP_CFG_ID_FIELD.has_default_value = false +MINIMAP_CFG_ID_FIELD.default_value = 0 +MINIMAP_CFG_ID_FIELD.type = 5 +MINIMAP_CFG_ID_FIELD.cpp_type = 1 + +MINIMAP_CFG_POS_X_FIELD.name = "pos_x" +MINIMAP_CFG_POS_X_FIELD.full_name = ".ftcfg.minimap_cfg.pos_x" +MINIMAP_CFG_POS_X_FIELD.number = 2 +MINIMAP_CFG_POS_X_FIELD.index = 1 +MINIMAP_CFG_POS_X_FIELD.label = 2 +MINIMAP_CFG_POS_X_FIELD.has_default_value = false +MINIMAP_CFG_POS_X_FIELD.default_value = 0.0 +MINIMAP_CFG_POS_X_FIELD.type = 2 +MINIMAP_CFG_POS_X_FIELD.cpp_type = 6 + +MINIMAP_CFG_POS_Z_FIELD.name = "pos_z" +MINIMAP_CFG_POS_Z_FIELD.full_name = ".ftcfg.minimap_cfg.pos_z" +MINIMAP_CFG_POS_Z_FIELD.number = 3 +MINIMAP_CFG_POS_Z_FIELD.index = 2 +MINIMAP_CFG_POS_Z_FIELD.label = 2 +MINIMAP_CFG_POS_Z_FIELD.has_default_value = false +MINIMAP_CFG_POS_Z_FIELD.default_value = 0.0 +MINIMAP_CFG_POS_Z_FIELD.type = 2 +MINIMAP_CFG_POS_Z_FIELD.cpp_type = 6 + +MINIMAP_CFG_WIDTH_FIELD.name = "width" +MINIMAP_CFG_WIDTH_FIELD.full_name = ".ftcfg.minimap_cfg.width" +MINIMAP_CFG_WIDTH_FIELD.number = 4 +MINIMAP_CFG_WIDTH_FIELD.index = 3 +MINIMAP_CFG_WIDTH_FIELD.label = 2 +MINIMAP_CFG_WIDTH_FIELD.has_default_value = false +MINIMAP_CFG_WIDTH_FIELD.default_value = 0.0 +MINIMAP_CFG_WIDTH_FIELD.type = 2 +MINIMAP_CFG_WIDTH_FIELD.cpp_type = 6 + +MINIMAP_CFG_HEIGHT_FIELD.name = "height" +MINIMAP_CFG_HEIGHT_FIELD.full_name = ".ftcfg.minimap_cfg.height" +MINIMAP_CFG_HEIGHT_FIELD.number = 5 +MINIMAP_CFG_HEIGHT_FIELD.index = 4 +MINIMAP_CFG_HEIGHT_FIELD.label = 2 +MINIMAP_CFG_HEIGHT_FIELD.has_default_value = false +MINIMAP_CFG_HEIGHT_FIELD.default_value = 0.0 +MINIMAP_CFG_HEIGHT_FIELD.type = 2 +MINIMAP_CFG_HEIGHT_FIELD.cpp_type = 6 + +MINIMAP_CFG_TEX_WIDTH_FIELD.name = "tex_width" +MINIMAP_CFG_TEX_WIDTH_FIELD.full_name = ".ftcfg.minimap_cfg.tex_width" +MINIMAP_CFG_TEX_WIDTH_FIELD.number = 6 +MINIMAP_CFG_TEX_WIDTH_FIELD.index = 5 +MINIMAP_CFG_TEX_WIDTH_FIELD.label = 2 +MINIMAP_CFG_TEX_WIDTH_FIELD.has_default_value = false +MINIMAP_CFG_TEX_WIDTH_FIELD.default_value = 0.0 +MINIMAP_CFG_TEX_WIDTH_FIELD.type = 2 +MINIMAP_CFG_TEX_WIDTH_FIELD.cpp_type = 6 + +MINIMAP_CFG_TEX_HEIGHT_FIELD.name = "tex_height" +MINIMAP_CFG_TEX_HEIGHT_FIELD.full_name = ".ftcfg.minimap_cfg.tex_height" +MINIMAP_CFG_TEX_HEIGHT_FIELD.number = 7 +MINIMAP_CFG_TEX_HEIGHT_FIELD.index = 6 +MINIMAP_CFG_TEX_HEIGHT_FIELD.label = 2 +MINIMAP_CFG_TEX_HEIGHT_FIELD.has_default_value = false +MINIMAP_CFG_TEX_HEIGHT_FIELD.default_value = 0.0 +MINIMAP_CFG_TEX_HEIGHT_FIELD.type = 2 +MINIMAP_CFG_TEX_HEIGHT_FIELD.cpp_type = 6 + +MINIMAP_CFG_RES_ID_FIELD.name = "res_id" +MINIMAP_CFG_RES_ID_FIELD.full_name = ".ftcfg.minimap_cfg.res_id" +MINIMAP_CFG_RES_ID_FIELD.number = 8 +MINIMAP_CFG_RES_ID_FIELD.index = 7 +MINIMAP_CFG_RES_ID_FIELD.label = 2 +MINIMAP_CFG_RES_ID_FIELD.has_default_value = false +MINIMAP_CFG_RES_ID_FIELD.default_value = 0 +MINIMAP_CFG_RES_ID_FIELD.type = 5 +MINIMAP_CFG_RES_ID_FIELD.cpp_type = 1 + +MINIMAP_CFG_ROTATION_FIELD.name = "rotation" +MINIMAP_CFG_ROTATION_FIELD.full_name = ".ftcfg.minimap_cfg.rotation" +MINIMAP_CFG_ROTATION_FIELD.number = 9 +MINIMAP_CFG_ROTATION_FIELD.index = 8 +MINIMAP_CFG_ROTATION_FIELD.label = 2 +MINIMAP_CFG_ROTATION_FIELD.has_default_value = false +MINIMAP_CFG_ROTATION_FIELD.default_value = 0.0 +MINIMAP_CFG_ROTATION_FIELD.type = 2 +MINIMAP_CFG_ROTATION_FIELD.cpp_type = 6 + +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.name = "minimap_radius" +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.full_name = ".ftcfg.minimap_cfg.minimap_radius" +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.number = 10 +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.index = 9 +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.label = 2 +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.has_default_value = false +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.default_value = 0.0 +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.type = 2 +MINIMAP_CFG_MINIMAP_RADIUS_FIELD.cpp_type = 6 + +MINIMAP_CFG.name = "minimap_cfg" +MINIMAP_CFG.full_name = ".ftcfg.minimap_cfg" +MINIMAP_CFG.nested_types = {} +MINIMAP_CFG.enum_types = {} +MINIMAP_CFG.fields = {MINIMAP_CFG_ID_FIELD, MINIMAP_CFG_POS_X_FIELD, MINIMAP_CFG_POS_Z_FIELD, MINIMAP_CFG_WIDTH_FIELD, MINIMAP_CFG_HEIGHT_FIELD, MINIMAP_CFG_TEX_WIDTH_FIELD, MINIMAP_CFG_TEX_HEIGHT_FIELD, MINIMAP_CFG_RES_ID_FIELD, MINIMAP_CFG_ROTATION_FIELD, MINIMAP_CFG_MINIMAP_RADIUS_FIELD} +MINIMAP_CFG.is_extendable = false +MINIMAP_CFG.extensions = {} +MINIMAP_CFGS_ITEMS_FIELD.name = "items" +MINIMAP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.minimap_cfgs.items" +MINIMAP_CFGS_ITEMS_FIELD.number = 1 +MINIMAP_CFGS_ITEMS_FIELD.index = 0 +MINIMAP_CFGS_ITEMS_FIELD.label = 3 +MINIMAP_CFGS_ITEMS_FIELD.has_default_value = false +MINIMAP_CFGS_ITEMS_FIELD.default_value = {} +MINIMAP_CFGS_ITEMS_FIELD.message_type = MINIMAP_CFG +MINIMAP_CFGS_ITEMS_FIELD.type = 11 +MINIMAP_CFGS_ITEMS_FIELD.cpp_type = 10 + +MINIMAP_CFGS.name = "minimap_cfgs" +MINIMAP_CFGS.full_name = ".ftcfg.minimap_cfgs" +MINIMAP_CFGS.nested_types = {} +MINIMAP_CFGS.enum_types = {} +MINIMAP_CFGS.fields = {MINIMAP_CFGS_ITEMS_FIELD} +MINIMAP_CFGS.is_extendable = false +MINIMAP_CFGS.extensions = {} +TREASURE_ROOMS_CFG_GROUPID_FIELD.name = "groupid" +TREASURE_ROOMS_CFG_GROUPID_FIELD.full_name = ".ftcfg.treasure_rooms_cfg.groupid" +TREASURE_ROOMS_CFG_GROUPID_FIELD.number = 1 +TREASURE_ROOMS_CFG_GROUPID_FIELD.index = 0 +TREASURE_ROOMS_CFG_GROUPID_FIELD.label = 2 +TREASURE_ROOMS_CFG_GROUPID_FIELD.has_default_value = false +TREASURE_ROOMS_CFG_GROUPID_FIELD.default_value = 0 +TREASURE_ROOMS_CFG_GROUPID_FIELD.type = 5 +TREASURE_ROOMS_CFG_GROUPID_FIELD.cpp_type = 1 + +TREASURE_ROOMS_CFG_AREA_ID_FIELD.name = "area_id" +TREASURE_ROOMS_CFG_AREA_ID_FIELD.full_name = ".ftcfg.treasure_rooms_cfg.area_id" +TREASURE_ROOMS_CFG_AREA_ID_FIELD.number = 2 +TREASURE_ROOMS_CFG_AREA_ID_FIELD.index = 1 +TREASURE_ROOMS_CFG_AREA_ID_FIELD.label = 2 +TREASURE_ROOMS_CFG_AREA_ID_FIELD.has_default_value = false +TREASURE_ROOMS_CFG_AREA_ID_FIELD.default_value = 0 +TREASURE_ROOMS_CFG_AREA_ID_FIELD.type = 5 +TREASURE_ROOMS_CFG_AREA_ID_FIELD.cpp_type = 1 + +TREASURE_ROOMS_CFG_RED_NUM_FIELD.name = "red_num" +TREASURE_ROOMS_CFG_RED_NUM_FIELD.full_name = ".ftcfg.treasure_rooms_cfg.red_num" +TREASURE_ROOMS_CFG_RED_NUM_FIELD.number = 3 +TREASURE_ROOMS_CFG_RED_NUM_FIELD.index = 2 +TREASURE_ROOMS_CFG_RED_NUM_FIELD.label = 2 +TREASURE_ROOMS_CFG_RED_NUM_FIELD.has_default_value = false +TREASURE_ROOMS_CFG_RED_NUM_FIELD.default_value = 0 +TREASURE_ROOMS_CFG_RED_NUM_FIELD.type = 5 +TREASURE_ROOMS_CFG_RED_NUM_FIELD.cpp_type = 1 + +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.name = "blue_num" +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.full_name = ".ftcfg.treasure_rooms_cfg.blue_num" +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.number = 4 +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.index = 3 +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.label = 2 +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.has_default_value = false +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.default_value = 0 +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.type = 5 +TREASURE_ROOMS_CFG_BLUE_NUM_FIELD.cpp_type = 1 + +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.name = "min_level" +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.full_name = ".ftcfg.treasure_rooms_cfg.min_level" +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.number = 5 +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.index = 4 +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.label = 2 +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.has_default_value = false +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.default_value = 0 +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.type = 5 +TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD.cpp_type = 1 + +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.name = "max_level" +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.full_name = ".ftcfg.treasure_rooms_cfg.max_level" +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.number = 6 +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.index = 5 +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.label = 2 +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.has_default_value = false +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.default_value = 0 +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.type = 5 +TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD.cpp_type = 1 + +TREASURE_ROOMS_CFG.name = "treasure_rooms_cfg" +TREASURE_ROOMS_CFG.full_name = ".ftcfg.treasure_rooms_cfg" +TREASURE_ROOMS_CFG.nested_types = {} +TREASURE_ROOMS_CFG.enum_types = {} +TREASURE_ROOMS_CFG.fields = {TREASURE_ROOMS_CFG_GROUPID_FIELD, TREASURE_ROOMS_CFG_AREA_ID_FIELD, TREASURE_ROOMS_CFG_RED_NUM_FIELD, TREASURE_ROOMS_CFG_BLUE_NUM_FIELD, TREASURE_ROOMS_CFG_MIN_LEVEL_FIELD, TREASURE_ROOMS_CFG_MAX_LEVEL_FIELD} +TREASURE_ROOMS_CFG.is_extendable = false +TREASURE_ROOMS_CFG.extensions = {} +TREASURE_ROOMS_CFGS_ITEMS_FIELD.name = "items" +TREASURE_ROOMS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.treasure_rooms_cfgs.items" +TREASURE_ROOMS_CFGS_ITEMS_FIELD.number = 1 +TREASURE_ROOMS_CFGS_ITEMS_FIELD.index = 0 +TREASURE_ROOMS_CFGS_ITEMS_FIELD.label = 3 +TREASURE_ROOMS_CFGS_ITEMS_FIELD.has_default_value = false +TREASURE_ROOMS_CFGS_ITEMS_FIELD.default_value = {} +TREASURE_ROOMS_CFGS_ITEMS_FIELD.message_type = TREASURE_ROOMS_CFG +TREASURE_ROOMS_CFGS_ITEMS_FIELD.type = 11 +TREASURE_ROOMS_CFGS_ITEMS_FIELD.cpp_type = 10 + +TREASURE_ROOMS_CFGS.name = "treasure_rooms_cfgs" +TREASURE_ROOMS_CFGS.full_name = ".ftcfg.treasure_rooms_cfgs" +TREASURE_ROOMS_CFGS.nested_types = {} +TREASURE_ROOMS_CFGS.enum_types = {} +TREASURE_ROOMS_CFGS.fields = {TREASURE_ROOMS_CFGS_ITEMS_FIELD} +TREASURE_ROOMS_CFGS.is_extendable = false +TREASURE_ROOMS_CFGS.extensions = {} +CRUSADE_BASE_CFG_LEVEL_FIELD.name = "level" +CRUSADE_BASE_CFG_LEVEL_FIELD.full_name = ".ftcfg.crusade_base_cfg.level" +CRUSADE_BASE_CFG_LEVEL_FIELD.number = 1 +CRUSADE_BASE_CFG_LEVEL_FIELD.index = 0 +CRUSADE_BASE_CFG_LEVEL_FIELD.label = 2 +CRUSADE_BASE_CFG_LEVEL_FIELD.has_default_value = false +CRUSADE_BASE_CFG_LEVEL_FIELD.default_value = 0 +CRUSADE_BASE_CFG_LEVEL_FIELD.type = 5 +CRUSADE_BASE_CFG_LEVEL_FIELD.cpp_type = 1 + +CRUSADE_BASE_CFG_DESC_FIELD.name = "desc" +CRUSADE_BASE_CFG_DESC_FIELD.full_name = ".ftcfg.crusade_base_cfg.desc" +CRUSADE_BASE_CFG_DESC_FIELD.number = 2 +CRUSADE_BASE_CFG_DESC_FIELD.index = 1 +CRUSADE_BASE_CFG_DESC_FIELD.label = 2 +CRUSADE_BASE_CFG_DESC_FIELD.has_default_value = false +CRUSADE_BASE_CFG_DESC_FIELD.default_value = "" +CRUSADE_BASE_CFG_DESC_FIELD.type = 9 +CRUSADE_BASE_CFG_DESC_FIELD.cpp_type = 9 + +CRUSADE_BASE_CFG_SCENE_ID_FIELD.name = "scene_id" +CRUSADE_BASE_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.crusade_base_cfg.scene_id" +CRUSADE_BASE_CFG_SCENE_ID_FIELD.number = 3 +CRUSADE_BASE_CFG_SCENE_ID_FIELD.index = 2 +CRUSADE_BASE_CFG_SCENE_ID_FIELD.label = 2 +CRUSADE_BASE_CFG_SCENE_ID_FIELD.has_default_value = false +CRUSADE_BASE_CFG_SCENE_ID_FIELD.default_value = 0 +CRUSADE_BASE_CFG_SCENE_ID_FIELD.type = 5 +CRUSADE_BASE_CFG_SCENE_ID_FIELD.cpp_type = 1 + +CRUSADE_BASE_CFG_NPC_ID_FIELD.name = "npc_id" +CRUSADE_BASE_CFG_NPC_ID_FIELD.full_name = ".ftcfg.crusade_base_cfg.npc_id" +CRUSADE_BASE_CFG_NPC_ID_FIELD.number = 4 +CRUSADE_BASE_CFG_NPC_ID_FIELD.index = 3 +CRUSADE_BASE_CFG_NPC_ID_FIELD.label = 3 +CRUSADE_BASE_CFG_NPC_ID_FIELD.has_default_value = false +CRUSADE_BASE_CFG_NPC_ID_FIELD.default_value = {} +CRUSADE_BASE_CFG_NPC_ID_FIELD.type = 5 +CRUSADE_BASE_CFG_NPC_ID_FIELD.cpp_type = 1 + +CRUSADE_BASE_CFG_GROUP_ID_FIELD.name = "group_id" +CRUSADE_BASE_CFG_GROUP_ID_FIELD.full_name = ".ftcfg.crusade_base_cfg.group_id" +CRUSADE_BASE_CFG_GROUP_ID_FIELD.number = 5 +CRUSADE_BASE_CFG_GROUP_ID_FIELD.index = 4 +CRUSADE_BASE_CFG_GROUP_ID_FIELD.label = 2 +CRUSADE_BASE_CFG_GROUP_ID_FIELD.has_default_value = false +CRUSADE_BASE_CFG_GROUP_ID_FIELD.default_value = 0 +CRUSADE_BASE_CFG_GROUP_ID_FIELD.type = 5 +CRUSADE_BASE_CFG_GROUP_ID_FIELD.cpp_type = 1 + +CRUSADE_BASE_CFG.name = "crusade_base_cfg" +CRUSADE_BASE_CFG.full_name = ".ftcfg.crusade_base_cfg" +CRUSADE_BASE_CFG.nested_types = {} +CRUSADE_BASE_CFG.enum_types = {} +CRUSADE_BASE_CFG.fields = {CRUSADE_BASE_CFG_LEVEL_FIELD, CRUSADE_BASE_CFG_DESC_FIELD, CRUSADE_BASE_CFG_SCENE_ID_FIELD, CRUSADE_BASE_CFG_NPC_ID_FIELD, CRUSADE_BASE_CFG_GROUP_ID_FIELD} +CRUSADE_BASE_CFG.is_extendable = false +CRUSADE_BASE_CFG.extensions = {} +CRUSADE_BASE_CFGS_ITEMS_FIELD.name = "items" +CRUSADE_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.crusade_base_cfgs.items" +CRUSADE_BASE_CFGS_ITEMS_FIELD.number = 1 +CRUSADE_BASE_CFGS_ITEMS_FIELD.index = 0 +CRUSADE_BASE_CFGS_ITEMS_FIELD.label = 3 +CRUSADE_BASE_CFGS_ITEMS_FIELD.has_default_value = false +CRUSADE_BASE_CFGS_ITEMS_FIELD.default_value = {} +CRUSADE_BASE_CFGS_ITEMS_FIELD.message_type = CRUSADE_BASE_CFG +CRUSADE_BASE_CFGS_ITEMS_FIELD.type = 11 +CRUSADE_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +CRUSADE_BASE_CFGS.name = "crusade_base_cfgs" +CRUSADE_BASE_CFGS.full_name = ".ftcfg.crusade_base_cfgs" +CRUSADE_BASE_CFGS.nested_types = {} +CRUSADE_BASE_CFGS.enum_types = {} +CRUSADE_BASE_CFGS.fields = {CRUSADE_BASE_CFGS_ITEMS_FIELD} +CRUSADE_BASE_CFGS.is_extendable = false +CRUSADE_BASE_CFGS.extensions = {} +CRUSADE_DUNGON_CFG_NPCID_FIELD.name = "npcid" +CRUSADE_DUNGON_CFG_NPCID_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.npcid" +CRUSADE_DUNGON_CFG_NPCID_FIELD.number = 1 +CRUSADE_DUNGON_CFG_NPCID_FIELD.index = 0 +CRUSADE_DUNGON_CFG_NPCID_FIELD.label = 2 +CRUSADE_DUNGON_CFG_NPCID_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_NPCID_FIELD.default_value = 0 +CRUSADE_DUNGON_CFG_NPCID_FIELD.type = 5 +CRUSADE_DUNGON_CFG_NPCID_FIELD.cpp_type = 1 + +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.name = "map_id" +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.map_id" +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.number = 2 +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.index = 1 +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.label = 3 +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.default_value = {} +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.type = 5 +CRUSADE_DUNGON_CFG_MAP_ID_FIELD.cpp_type = 1 + +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.name = "npc_stagetype" +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.npc_stagetype" +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.number = 3 +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.index = 2 +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.label = 2 +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.default_value = 0 +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.type = 5 +CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD.cpp_type = 1 + +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.name = "reward_id" +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.reward_id" +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.number = 4 +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.index = 3 +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.label = 2 +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.default_value = 0 +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.type = 5 +CRUSADE_DUNGON_CFG_REWARD_ID_FIELD.cpp_type = 1 + +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.name = "birth_x" +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.birth_x" +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.number = 5 +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.index = 4 +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.label = 3 +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.default_value = {} +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.type = 2 +CRUSADE_DUNGON_CFG_BIRTH_X_FIELD.cpp_type = 6 + +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.name = "birth_y" +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.birth_y" +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.number = 6 +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.index = 5 +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.label = 3 +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.default_value = {} +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.type = 2 +CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD.cpp_type = 6 + +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.name = "birth_z" +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.birth_z" +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.number = 7 +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.index = 6 +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.label = 3 +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.default_value = {} +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.type = 2 +CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD.cpp_type = 6 + +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.name = "difficult" +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.full_name = ".ftcfg.crusade_dungon_cfg.difficult" +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.number = 8 +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.index = 7 +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.label = 2 +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.has_default_value = false +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.default_value = 0 +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.type = 5 +CRUSADE_DUNGON_CFG_DIFFICULT_FIELD.cpp_type = 1 + +CRUSADE_DUNGON_CFG.name = "crusade_dungon_cfg" +CRUSADE_DUNGON_CFG.full_name = ".ftcfg.crusade_dungon_cfg" +CRUSADE_DUNGON_CFG.nested_types = {} +CRUSADE_DUNGON_CFG.enum_types = {} +CRUSADE_DUNGON_CFG.fields = {CRUSADE_DUNGON_CFG_NPCID_FIELD, CRUSADE_DUNGON_CFG_MAP_ID_FIELD, CRUSADE_DUNGON_CFG_NPC_STAGETYPE_FIELD, CRUSADE_DUNGON_CFG_REWARD_ID_FIELD, CRUSADE_DUNGON_CFG_BIRTH_X_FIELD, CRUSADE_DUNGON_CFG_BIRTH_Y_FIELD, CRUSADE_DUNGON_CFG_BIRTH_Z_FIELD, CRUSADE_DUNGON_CFG_DIFFICULT_FIELD} +CRUSADE_DUNGON_CFG.is_extendable = false +CRUSADE_DUNGON_CFG.extensions = {} +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.name = "items" +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.full_name = ".ftcfg.crusade_dungon_cfgs.items" +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.number = 1 +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.index = 0 +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.label = 3 +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.has_default_value = false +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.default_value = {} +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.message_type = CRUSADE_DUNGON_CFG +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.type = 11 +CRUSADE_DUNGON_CFGS_ITEMS_FIELD.cpp_type = 10 + +CRUSADE_DUNGON_CFGS.name = "crusade_dungon_cfgs" +CRUSADE_DUNGON_CFGS.full_name = ".ftcfg.crusade_dungon_cfgs" +CRUSADE_DUNGON_CFGS.nested_types = {} +CRUSADE_DUNGON_CFGS.enum_types = {} +CRUSADE_DUNGON_CFGS.fields = {CRUSADE_DUNGON_CFGS_ITEMS_FIELD} +CRUSADE_DUNGON_CFGS.is_extendable = false +CRUSADE_DUNGON_CFGS.extensions = {} +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.name = "prop_type" +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.full_name = ".ftcfg.strength_convert_cfg.prop_type" +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.number = 1 +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.index = 0 +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.label = 2 +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.has_default_value = false +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.default_value = nil +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.type = 14 +STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD.cpp_type = 8 + +STRENGTH_CONVERT_CFG_FACTOR_FIELD.name = "factor" +STRENGTH_CONVERT_CFG_FACTOR_FIELD.full_name = ".ftcfg.strength_convert_cfg.factor" +STRENGTH_CONVERT_CFG_FACTOR_FIELD.number = 2 +STRENGTH_CONVERT_CFG_FACTOR_FIELD.index = 1 +STRENGTH_CONVERT_CFG_FACTOR_FIELD.label = 2 +STRENGTH_CONVERT_CFG_FACTOR_FIELD.has_default_value = false +STRENGTH_CONVERT_CFG_FACTOR_FIELD.default_value = 0.0 +STRENGTH_CONVERT_CFG_FACTOR_FIELD.type = 1 +STRENGTH_CONVERT_CFG_FACTOR_FIELD.cpp_type = 5 + +STRENGTH_CONVERT_CFG.name = "strength_convert_cfg" +STRENGTH_CONVERT_CFG.full_name = ".ftcfg.strength_convert_cfg" +STRENGTH_CONVERT_CFG.nested_types = {} +STRENGTH_CONVERT_CFG.enum_types = {} +STRENGTH_CONVERT_CFG.fields = {STRENGTH_CONVERT_CFG_PROP_TYPE_FIELD, STRENGTH_CONVERT_CFG_FACTOR_FIELD} +STRENGTH_CONVERT_CFG.is_extendable = false +STRENGTH_CONVERT_CFG.extensions = {} +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.name = "items" +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.strength_convert_cfgs.items" +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.number = 1 +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.index = 0 +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.label = 3 +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.has_default_value = false +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.default_value = {} +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.message_type = STRENGTH_CONVERT_CFG +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.type = 11 +STRENGTH_CONVERT_CFGS_ITEMS_FIELD.cpp_type = 10 + +STRENGTH_CONVERT_CFGS.name = "strength_convert_cfgs" +STRENGTH_CONVERT_CFGS.full_name = ".ftcfg.strength_convert_cfgs" +STRENGTH_CONVERT_CFGS.nested_types = {} +STRENGTH_CONVERT_CFGS.enum_types = {} +STRENGTH_CONVERT_CFGS.fields = {STRENGTH_CONVERT_CFGS_ITEMS_FIELD} +STRENGTH_CONVERT_CFGS.is_extendable = false +STRENGTH_CONVERT_CFGS.extensions = {} +SKILL_SUMMONED_NPC_CFG_ID_FIELD.name = "id" +SKILL_SUMMONED_NPC_CFG_ID_FIELD.full_name = ".ftcfg.skill_summoned_npc_cfg.id" +SKILL_SUMMONED_NPC_CFG_ID_FIELD.number = 1 +SKILL_SUMMONED_NPC_CFG_ID_FIELD.index = 0 +SKILL_SUMMONED_NPC_CFG_ID_FIELD.label = 2 +SKILL_SUMMONED_NPC_CFG_ID_FIELD.has_default_value = false +SKILL_SUMMONED_NPC_CFG_ID_FIELD.default_value = 0 +SKILL_SUMMONED_NPC_CFG_ID_FIELD.type = 5 +SKILL_SUMMONED_NPC_CFG_ID_FIELD.cpp_type = 1 + +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.name = "desc" +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.full_name = ".ftcfg.skill_summoned_npc_cfg.desc" +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.number = 2 +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.index = 1 +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.label = 2 +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.has_default_value = false +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.default_value = "" +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.type = 9 +SKILL_SUMMONED_NPC_CFG_DESC_FIELD.cpp_type = 9 + +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.name = "npc_id" +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.full_name = ".ftcfg.skill_summoned_npc_cfg.npc_id" +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.number = 3 +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.index = 2 +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.label = 2 +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.has_default_value = false +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.default_value = 0 +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.type = 5 +SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD.cpp_type = 1 + +SKILL_SUMMONED_NPC_CFG.name = "skill_summoned_npc_cfg" +SKILL_SUMMONED_NPC_CFG.full_name = ".ftcfg.skill_summoned_npc_cfg" +SKILL_SUMMONED_NPC_CFG.nested_types = {} +SKILL_SUMMONED_NPC_CFG.enum_types = {} +SKILL_SUMMONED_NPC_CFG.fields = {SKILL_SUMMONED_NPC_CFG_ID_FIELD, SKILL_SUMMONED_NPC_CFG_DESC_FIELD, SKILL_SUMMONED_NPC_CFG_NPC_ID_FIELD} +SKILL_SUMMONED_NPC_CFG.is_extendable = false +SKILL_SUMMONED_NPC_CFG.extensions = {} +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.name = "items" +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.full_name = ".ftcfg.skill_summoned_npc_cfgs.items" +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.number = 1 +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.index = 0 +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.label = 3 +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.has_default_value = false +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.default_value = {} +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.message_type = SKILL_SUMMONED_NPC_CFG +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.type = 11 +SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD.cpp_type = 10 + +SKILL_SUMMONED_NPC_CFGS.name = "skill_summoned_npc_cfgs" +SKILL_SUMMONED_NPC_CFGS.full_name = ".ftcfg.skill_summoned_npc_cfgs" +SKILL_SUMMONED_NPC_CFGS.nested_types = {} +SKILL_SUMMONED_NPC_CFGS.enum_types = {} +SKILL_SUMMONED_NPC_CFGS.fields = {SKILL_SUMMONED_NPC_CFGS_ITEMS_FIELD} +SKILL_SUMMONED_NPC_CFGS.is_extendable = false +SKILL_SUMMONED_NPC_CFGS.extensions = {} +SKILL_SUMMONED_CFG_ID_FIELD.name = "id" +SKILL_SUMMONED_CFG_ID_FIELD.full_name = ".ftcfg.skill_summoned_cfg.id" +SKILL_SUMMONED_CFG_ID_FIELD.number = 1 +SKILL_SUMMONED_CFG_ID_FIELD.index = 0 +SKILL_SUMMONED_CFG_ID_FIELD.label = 2 +SKILL_SUMMONED_CFG_ID_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_ID_FIELD.default_value = 0 +SKILL_SUMMONED_CFG_ID_FIELD.type = 5 +SKILL_SUMMONED_CFG_ID_FIELD.cpp_type = 1 + +SKILL_SUMMONED_CFG_DESC_FIELD.name = "desc" +SKILL_SUMMONED_CFG_DESC_FIELD.full_name = ".ftcfg.skill_summoned_cfg.desc" +SKILL_SUMMONED_CFG_DESC_FIELD.number = 2 +SKILL_SUMMONED_CFG_DESC_FIELD.index = 1 +SKILL_SUMMONED_CFG_DESC_FIELD.label = 2 +SKILL_SUMMONED_CFG_DESC_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_DESC_FIELD.default_value = "" +SKILL_SUMMONED_CFG_DESC_FIELD.type = 9 +SKILL_SUMMONED_CFG_DESC_FIELD.cpp_type = 9 + +SKILL_SUMMONED_CFG_RING_FIELD.name = "ring" +SKILL_SUMMONED_CFG_RING_FIELD.full_name = ".ftcfg.skill_summoned_cfg.ring" +SKILL_SUMMONED_CFG_RING_FIELD.number = 3 +SKILL_SUMMONED_CFG_RING_FIELD.index = 2 +SKILL_SUMMONED_CFG_RING_FIELD.label = 2 +SKILL_SUMMONED_CFG_RING_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_RING_FIELD.default_value = 0 +SKILL_SUMMONED_CFG_RING_FIELD.type = 5 +SKILL_SUMMONED_CFG_RING_FIELD.cpp_type = 1 + +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.name = "exist_time" +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.full_name = ".ftcfg.skill_summoned_cfg.exist_time" +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.number = 4 +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.index = 3 +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.label = 2 +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.default_value = 0 +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.type = 5 +SKILL_SUMMONED_CFG_EXIST_TIME_FIELD.cpp_type = 1 + +SKILL_SUMMONED_CFG_SPEED_FIELD.name = "speed" +SKILL_SUMMONED_CFG_SPEED_FIELD.full_name = ".ftcfg.skill_summoned_cfg.speed" +SKILL_SUMMONED_CFG_SPEED_FIELD.number = 5 +SKILL_SUMMONED_CFG_SPEED_FIELD.index = 4 +SKILL_SUMMONED_CFG_SPEED_FIELD.label = 2 +SKILL_SUMMONED_CFG_SPEED_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_SPEED_FIELD.default_value = 0.0 +SKILL_SUMMONED_CFG_SPEED_FIELD.type = 2 +SKILL_SUMMONED_CFG_SPEED_FIELD.cpp_type = 6 + +SKILL_SUMMONED_CFG_EFF_START_FIELD.name = "eff_start" +SKILL_SUMMONED_CFG_EFF_START_FIELD.full_name = ".ftcfg.skill_summoned_cfg.eff_start" +SKILL_SUMMONED_CFG_EFF_START_FIELD.number = 6 +SKILL_SUMMONED_CFG_EFF_START_FIELD.index = 5 +SKILL_SUMMONED_CFG_EFF_START_FIELD.label = 2 +SKILL_SUMMONED_CFG_EFF_START_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EFF_START_FIELD.default_value = "" +SKILL_SUMMONED_CFG_EFF_START_FIELD.type = 9 +SKILL_SUMMONED_CFG_EFF_START_FIELD.cpp_type = 9 + +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.name = "eff_start_time" +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.full_name = ".ftcfg.skill_summoned_cfg.eff_start_time" +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.number = 7 +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.index = 6 +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.label = 2 +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.default_value = 0 +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.type = 5 +SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD.cpp_type = 1 + +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.name = "eff_keep" +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.full_name = ".ftcfg.skill_summoned_cfg.eff_keep" +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.number = 8 +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.index = 7 +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.label = 2 +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.default_value = "" +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.type = 9 +SKILL_SUMMONED_CFG_EFF_KEEP_FIELD.cpp_type = 9 + +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.name = "eff_destroy" +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.full_name = ".ftcfg.skill_summoned_cfg.eff_destroy" +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.number = 9 +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.index = 8 +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.label = 2 +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.default_value = "" +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.type = 9 +SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD.cpp_type = 9 + +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.name = "eff_destroy_time" +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.full_name = ".ftcfg.skill_summoned_cfg.eff_destroy_time" +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.number = 10 +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.index = 9 +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.label = 2 +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.default_value = 0 +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.type = 5 +SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD.cpp_type = 1 + +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.name = "eff_keep_height" +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.full_name = ".ftcfg.skill_summoned_cfg.eff_keep_height" +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.number = 11 +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.index = 10 +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.label = 2 +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.default_value = 0.0 +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.type = 2 +SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD.cpp_type = 6 + +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.name = "eff_destroy_height" +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.full_name = ".ftcfg.skill_summoned_cfg.eff_destroy_height" +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.number = 12 +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.index = 11 +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.label = 2 +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.has_default_value = false +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.default_value = 0.0 +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.type = 2 +SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD.cpp_type = 6 + +SKILL_SUMMONED_CFG.name = "skill_summoned_cfg" +SKILL_SUMMONED_CFG.full_name = ".ftcfg.skill_summoned_cfg" +SKILL_SUMMONED_CFG.nested_types = {} +SKILL_SUMMONED_CFG.enum_types = {} +SKILL_SUMMONED_CFG.fields = {SKILL_SUMMONED_CFG_ID_FIELD, SKILL_SUMMONED_CFG_DESC_FIELD, SKILL_SUMMONED_CFG_RING_FIELD, SKILL_SUMMONED_CFG_EXIST_TIME_FIELD, SKILL_SUMMONED_CFG_SPEED_FIELD, SKILL_SUMMONED_CFG_EFF_START_FIELD, SKILL_SUMMONED_CFG_EFF_START_TIME_FIELD, SKILL_SUMMONED_CFG_EFF_KEEP_FIELD, SKILL_SUMMONED_CFG_EFF_DESTROY_FIELD, SKILL_SUMMONED_CFG_EFF_DESTROY_TIME_FIELD, SKILL_SUMMONED_CFG_EFF_KEEP_HEIGHT_FIELD, SKILL_SUMMONED_CFG_EFF_DESTROY_HEIGHT_FIELD} +SKILL_SUMMONED_CFG.is_extendable = false +SKILL_SUMMONED_CFG.extensions = {} +SKILL_SUMMONED_CFGS_ITEMS_FIELD.name = "items" +SKILL_SUMMONED_CFGS_ITEMS_FIELD.full_name = ".ftcfg.skill_summoned_cfgs.items" +SKILL_SUMMONED_CFGS_ITEMS_FIELD.number = 1 +SKILL_SUMMONED_CFGS_ITEMS_FIELD.index = 0 +SKILL_SUMMONED_CFGS_ITEMS_FIELD.label = 3 +SKILL_SUMMONED_CFGS_ITEMS_FIELD.has_default_value = false +SKILL_SUMMONED_CFGS_ITEMS_FIELD.default_value = {} +SKILL_SUMMONED_CFGS_ITEMS_FIELD.message_type = SKILL_SUMMONED_CFG +SKILL_SUMMONED_CFGS_ITEMS_FIELD.type = 11 +SKILL_SUMMONED_CFGS_ITEMS_FIELD.cpp_type = 10 + +SKILL_SUMMONED_CFGS.name = "skill_summoned_cfgs" +SKILL_SUMMONED_CFGS.full_name = ".ftcfg.skill_summoned_cfgs" +SKILL_SUMMONED_CFGS.nested_types = {} +SKILL_SUMMONED_CFGS.enum_types = {} +SKILL_SUMMONED_CFGS.fields = {SKILL_SUMMONED_CFGS_ITEMS_FIELD} +SKILL_SUMMONED_CFGS.is_extendable = false +SKILL_SUMMONED_CFGS.extensions = {} +CLUE_CFG_CLUE_ID_FIELD.name = "clue_id" +CLUE_CFG_CLUE_ID_FIELD.full_name = ".ftcfg.clue_cfg.clue_id" +CLUE_CFG_CLUE_ID_FIELD.number = 1 +CLUE_CFG_CLUE_ID_FIELD.index = 0 +CLUE_CFG_CLUE_ID_FIELD.label = 2 +CLUE_CFG_CLUE_ID_FIELD.has_default_value = false +CLUE_CFG_CLUE_ID_FIELD.default_value = 0 +CLUE_CFG_CLUE_ID_FIELD.type = 5 +CLUE_CFG_CLUE_ID_FIELD.cpp_type = 1 + +CLUE_CFG_MAP_ID_FIELD.name = "map_id" +CLUE_CFG_MAP_ID_FIELD.full_name = ".ftcfg.clue_cfg.map_id" +CLUE_CFG_MAP_ID_FIELD.number = 2 +CLUE_CFG_MAP_ID_FIELD.index = 1 +CLUE_CFG_MAP_ID_FIELD.label = 2 +CLUE_CFG_MAP_ID_FIELD.has_default_value = false +CLUE_CFG_MAP_ID_FIELD.default_value = 0 +CLUE_CFG_MAP_ID_FIELD.type = 5 +CLUE_CFG_MAP_ID_FIELD.cpp_type = 1 + +CLUE_CFG_SCENE_ID_FIELD.name = "scene_id" +CLUE_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.clue_cfg.scene_id" +CLUE_CFG_SCENE_ID_FIELD.number = 3 +CLUE_CFG_SCENE_ID_FIELD.index = 2 +CLUE_CFG_SCENE_ID_FIELD.label = 2 +CLUE_CFG_SCENE_ID_FIELD.has_default_value = false +CLUE_CFG_SCENE_ID_FIELD.default_value = 0 +CLUE_CFG_SCENE_ID_FIELD.type = 5 +CLUE_CFG_SCENE_ID_FIELD.cpp_type = 1 + +CLUE_CFG_POS_FIELD.name = "pos" +CLUE_CFG_POS_FIELD.full_name = ".ftcfg.clue_cfg.pos" +CLUE_CFG_POS_FIELD.number = 4 +CLUE_CFG_POS_FIELD.index = 3 +CLUE_CFG_POS_FIELD.label = 3 +CLUE_CFG_POS_FIELD.has_default_value = false +CLUE_CFG_POS_FIELD.default_value = {} +CLUE_CFG_POS_FIELD.type = 2 +CLUE_CFG_POS_FIELD.cpp_type = 6 + +CLUE_CFG_DESC_FIELD.name = "desc" +CLUE_CFG_DESC_FIELD.full_name = ".ftcfg.clue_cfg.desc" +CLUE_CFG_DESC_FIELD.number = 5 +CLUE_CFG_DESC_FIELD.index = 4 +CLUE_CFG_DESC_FIELD.label = 2 +CLUE_CFG_DESC_FIELD.has_default_value = false +CLUE_CFG_DESC_FIELD.default_value = "" +CLUE_CFG_DESC_FIELD.type = 9 +CLUE_CFG_DESC_FIELD.cpp_type = 9 + +CLUE_CFG_BOXES_POS_X_FIELD.name = "boxes_pos_x" +CLUE_CFG_BOXES_POS_X_FIELD.full_name = ".ftcfg.clue_cfg.boxes_pos_x" +CLUE_CFG_BOXES_POS_X_FIELD.number = 6 +CLUE_CFG_BOXES_POS_X_FIELD.index = 5 +CLUE_CFG_BOXES_POS_X_FIELD.label = 3 +CLUE_CFG_BOXES_POS_X_FIELD.has_default_value = false +CLUE_CFG_BOXES_POS_X_FIELD.default_value = {} +CLUE_CFG_BOXES_POS_X_FIELD.type = 2 +CLUE_CFG_BOXES_POS_X_FIELD.cpp_type = 6 + +CLUE_CFG_BOXES_POS_Z_FIELD.name = "boxes_pos_z" +CLUE_CFG_BOXES_POS_Z_FIELD.full_name = ".ftcfg.clue_cfg.boxes_pos_z" +CLUE_CFG_BOXES_POS_Z_FIELD.number = 7 +CLUE_CFG_BOXES_POS_Z_FIELD.index = 6 +CLUE_CFG_BOXES_POS_Z_FIELD.label = 3 +CLUE_CFG_BOXES_POS_Z_FIELD.has_default_value = false +CLUE_CFG_BOXES_POS_Z_FIELD.default_value = {} +CLUE_CFG_BOXES_POS_Z_FIELD.type = 2 +CLUE_CFG_BOXES_POS_Z_FIELD.cpp_type = 6 + +CLUE_CFG_COST_ID_FIELD.name = "cost_id" +CLUE_CFG_COST_ID_FIELD.full_name = ".ftcfg.clue_cfg.cost_id" +CLUE_CFG_COST_ID_FIELD.number = 8 +CLUE_CFG_COST_ID_FIELD.index = 7 +CLUE_CFG_COST_ID_FIELD.label = 2 +CLUE_CFG_COST_ID_FIELD.has_default_value = false +CLUE_CFG_COST_ID_FIELD.default_value = 0 +CLUE_CFG_COST_ID_FIELD.type = 5 +CLUE_CFG_COST_ID_FIELD.cpp_type = 1 + +CLUE_CFG_CORE_COORDINATE_FIELD.name = "core_coordinate" +CLUE_CFG_CORE_COORDINATE_FIELD.full_name = ".ftcfg.clue_cfg.core_coordinate" +CLUE_CFG_CORE_COORDINATE_FIELD.number = 9 +CLUE_CFG_CORE_COORDINATE_FIELD.index = 8 +CLUE_CFG_CORE_COORDINATE_FIELD.label = 3 +CLUE_CFG_CORE_COORDINATE_FIELD.has_default_value = false +CLUE_CFG_CORE_COORDINATE_FIELD.default_value = {} +CLUE_CFG_CORE_COORDINATE_FIELD.type = 5 +CLUE_CFG_CORE_COORDINATE_FIELD.cpp_type = 1 + +CLUE_CFG_MAP_RANGE_FIELD.name = "map_range" +CLUE_CFG_MAP_RANGE_FIELD.full_name = ".ftcfg.clue_cfg.map_range" +CLUE_CFG_MAP_RANGE_FIELD.number = 10 +CLUE_CFG_MAP_RANGE_FIELD.index = 9 +CLUE_CFG_MAP_RANGE_FIELD.label = 2 +CLUE_CFG_MAP_RANGE_FIELD.has_default_value = false +CLUE_CFG_MAP_RANGE_FIELD.default_value = 0 +CLUE_CFG_MAP_RANGE_FIELD.type = 5 +CLUE_CFG_MAP_RANGE_FIELD.cpp_type = 1 + +CLUE_CFG.name = "clue_cfg" +CLUE_CFG.full_name = ".ftcfg.clue_cfg" +CLUE_CFG.nested_types = {} +CLUE_CFG.enum_types = {} +CLUE_CFG.fields = {CLUE_CFG_CLUE_ID_FIELD, CLUE_CFG_MAP_ID_FIELD, CLUE_CFG_SCENE_ID_FIELD, CLUE_CFG_POS_FIELD, CLUE_CFG_DESC_FIELD, CLUE_CFG_BOXES_POS_X_FIELD, CLUE_CFG_BOXES_POS_Z_FIELD, CLUE_CFG_COST_ID_FIELD, CLUE_CFG_CORE_COORDINATE_FIELD, CLUE_CFG_MAP_RANGE_FIELD} +CLUE_CFG.is_extendable = false +CLUE_CFG.extensions = {} +CLUE_CFGS_ITEMS_FIELD.name = "items" +CLUE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.clue_cfgs.items" +CLUE_CFGS_ITEMS_FIELD.number = 1 +CLUE_CFGS_ITEMS_FIELD.index = 0 +CLUE_CFGS_ITEMS_FIELD.label = 3 +CLUE_CFGS_ITEMS_FIELD.has_default_value = false +CLUE_CFGS_ITEMS_FIELD.default_value = {} +CLUE_CFGS_ITEMS_FIELD.message_type = CLUE_CFG +CLUE_CFGS_ITEMS_FIELD.type = 11 +CLUE_CFGS_ITEMS_FIELD.cpp_type = 10 + +CLUE_CFGS.name = "clue_cfgs" +CLUE_CFGS.full_name = ".ftcfg.clue_cfgs" +CLUE_CFGS.nested_types = {} +CLUE_CFGS.enum_types = {} +CLUE_CFGS.fields = {CLUE_CFGS_ITEMS_FIELD} +CLUE_CFGS.is_extendable = false +CLUE_CFGS.extensions = {} +BOXS_CFG_BOXES_ID_FIELD.name = "boxes_id" +BOXS_CFG_BOXES_ID_FIELD.full_name = ".ftcfg.boxs_cfg.boxes_id" +BOXS_CFG_BOXES_ID_FIELD.number = 1 +BOXS_CFG_BOXES_ID_FIELD.index = 0 +BOXS_CFG_BOXES_ID_FIELD.label = 2 +BOXS_CFG_BOXES_ID_FIELD.has_default_value = false +BOXS_CFG_BOXES_ID_FIELD.default_value = 0 +BOXS_CFG_BOXES_ID_FIELD.type = 5 +BOXS_CFG_BOXES_ID_FIELD.cpp_type = 1 + +BOXS_CFG_BOX_ID_FIELD.name = "box_id" +BOXS_CFG_BOX_ID_FIELD.full_name = ".ftcfg.boxs_cfg.box_id" +BOXS_CFG_BOX_ID_FIELD.number = 2 +BOXS_CFG_BOX_ID_FIELD.index = 1 +BOXS_CFG_BOX_ID_FIELD.label = 3 +BOXS_CFG_BOX_ID_FIELD.has_default_value = false +BOXS_CFG_BOX_ID_FIELD.default_value = {} +BOXS_CFG_BOX_ID_FIELD.type = 5 +BOXS_CFG_BOX_ID_FIELD.cpp_type = 1 + +BOXS_CFG_BOX_RATE_FIELD.name = "box_rate" +BOXS_CFG_BOX_RATE_FIELD.full_name = ".ftcfg.boxs_cfg.box_rate" +BOXS_CFG_BOX_RATE_FIELD.number = 3 +BOXS_CFG_BOX_RATE_FIELD.index = 2 +BOXS_CFG_BOX_RATE_FIELD.label = 3 +BOXS_CFG_BOX_RATE_FIELD.has_default_value = false +BOXS_CFG_BOX_RATE_FIELD.default_value = {} +BOXS_CFG_BOX_RATE_FIELD.type = 5 +BOXS_CFG_BOX_RATE_FIELD.cpp_type = 1 + +BOXS_CFG.name = "boxs_cfg" +BOXS_CFG.full_name = ".ftcfg.boxs_cfg" +BOXS_CFG.nested_types = {} +BOXS_CFG.enum_types = {} +BOXS_CFG.fields = {BOXS_CFG_BOXES_ID_FIELD, BOXS_CFG_BOX_ID_FIELD, BOXS_CFG_BOX_RATE_FIELD} +BOXS_CFG.is_extendable = false +BOXS_CFG.extensions = {} +BOXS_CFGS_ITEMS_FIELD.name = "items" +BOXS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.boxs_cfgs.items" +BOXS_CFGS_ITEMS_FIELD.number = 1 +BOXS_CFGS_ITEMS_FIELD.index = 0 +BOXS_CFGS_ITEMS_FIELD.label = 3 +BOXS_CFGS_ITEMS_FIELD.has_default_value = false +BOXS_CFGS_ITEMS_FIELD.default_value = {} +BOXS_CFGS_ITEMS_FIELD.message_type = BOXS_CFG +BOXS_CFGS_ITEMS_FIELD.type = 11 +BOXS_CFGS_ITEMS_FIELD.cpp_type = 10 + +BOXS_CFGS.name = "boxs_cfgs" +BOXS_CFGS.full_name = ".ftcfg.boxs_cfgs" +BOXS_CFGS.nested_types = {} +BOXS_CFGS.enum_types = {} +BOXS_CFGS.fields = {BOXS_CFGS_ITEMS_FIELD} +BOXS_CFGS.is_extendable = false +BOXS_CFGS.extensions = {} +BOX_COLLECT_CFG_BOX_ID_FIELD.name = "box_id" +BOX_COLLECT_CFG_BOX_ID_FIELD.full_name = ".ftcfg.box_collect_cfg.box_id" +BOX_COLLECT_CFG_BOX_ID_FIELD.number = 1 +BOX_COLLECT_CFG_BOX_ID_FIELD.index = 0 +BOX_COLLECT_CFG_BOX_ID_FIELD.label = 2 +BOX_COLLECT_CFG_BOX_ID_FIELD.has_default_value = false +BOX_COLLECT_CFG_BOX_ID_FIELD.default_value = 0 +BOX_COLLECT_CFG_BOX_ID_FIELD.type = 5 +BOX_COLLECT_CFG_BOX_ID_FIELD.cpp_type = 1 + +BOX_COLLECT_CFG_BOX_RES_FIELD.name = "box_res" +BOX_COLLECT_CFG_BOX_RES_FIELD.full_name = ".ftcfg.box_collect_cfg.box_res" +BOX_COLLECT_CFG_BOX_RES_FIELD.number = 2 +BOX_COLLECT_CFG_BOX_RES_FIELD.index = 1 +BOX_COLLECT_CFG_BOX_RES_FIELD.label = 2 +BOX_COLLECT_CFG_BOX_RES_FIELD.has_default_value = false +BOX_COLLECT_CFG_BOX_RES_FIELD.default_value = 0 +BOX_COLLECT_CFG_BOX_RES_FIELD.type = 5 +BOX_COLLECT_CFG_BOX_RES_FIELD.cpp_type = 1 + +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.name = "item_type" +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.full_name = ".ftcfg.box_collect_cfg.item_type" +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.number = 3 +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.index = 2 +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.label = 3 +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.has_default_value = false +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.default_value = {} +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.type = 5 +BOX_COLLECT_CFG_ITEM_TYPE_FIELD.cpp_type = 1 + +BOX_COLLECT_CFG_ITEM_ID_FIELD.name = "item_id" +BOX_COLLECT_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.box_collect_cfg.item_id" +BOX_COLLECT_CFG_ITEM_ID_FIELD.number = 4 +BOX_COLLECT_CFG_ITEM_ID_FIELD.index = 3 +BOX_COLLECT_CFG_ITEM_ID_FIELD.label = 3 +BOX_COLLECT_CFG_ITEM_ID_FIELD.has_default_value = false +BOX_COLLECT_CFG_ITEM_ID_FIELD.default_value = {} +BOX_COLLECT_CFG_ITEM_ID_FIELD.type = 5 +BOX_COLLECT_CFG_ITEM_ID_FIELD.cpp_type = 1 + +BOX_COLLECT_CFG_ITEM_RATE_FIELD.name = "item_rate" +BOX_COLLECT_CFG_ITEM_RATE_FIELD.full_name = ".ftcfg.box_collect_cfg.item_rate" +BOX_COLLECT_CFG_ITEM_RATE_FIELD.number = 5 +BOX_COLLECT_CFG_ITEM_RATE_FIELD.index = 4 +BOX_COLLECT_CFG_ITEM_RATE_FIELD.label = 3 +BOX_COLLECT_CFG_ITEM_RATE_FIELD.has_default_value = false +BOX_COLLECT_CFG_ITEM_RATE_FIELD.default_value = {} +BOX_COLLECT_CFG_ITEM_RATE_FIELD.type = 5 +BOX_COLLECT_CFG_ITEM_RATE_FIELD.cpp_type = 1 + +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.name = "show_type" +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.full_name = ".ftcfg.box_collect_cfg.show_type" +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.number = 6 +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.index = 5 +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.label = 2 +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.has_default_value = false +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.default_value = 0 +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.type = 5 +BOX_COLLECT_CFG_SHOW_TYPE_FIELD.cpp_type = 1 + +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.name = "model_scale" +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.full_name = ".ftcfg.box_collect_cfg.model_scale" +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.number = 7 +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.index = 6 +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.label = 2 +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.has_default_value = false +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.default_value = 0 +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.type = 5 +BOX_COLLECT_CFG_MODEL_SCALE_FIELD.cpp_type = 1 + +BOX_COLLECT_CFG.name = "box_collect_cfg" +BOX_COLLECT_CFG.full_name = ".ftcfg.box_collect_cfg" +BOX_COLLECT_CFG.nested_types = {} +BOX_COLLECT_CFG.enum_types = {} +BOX_COLLECT_CFG.fields = {BOX_COLLECT_CFG_BOX_ID_FIELD, BOX_COLLECT_CFG_BOX_RES_FIELD, BOX_COLLECT_CFG_ITEM_TYPE_FIELD, BOX_COLLECT_CFG_ITEM_ID_FIELD, BOX_COLLECT_CFG_ITEM_RATE_FIELD, BOX_COLLECT_CFG_SHOW_TYPE_FIELD, BOX_COLLECT_CFG_MODEL_SCALE_FIELD} +BOX_COLLECT_CFG.is_extendable = false +BOX_COLLECT_CFG.extensions = {} +BOX_COLLECT_CFGS_ITEMS_FIELD.name = "items" +BOX_COLLECT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.box_collect_cfgs.items" +BOX_COLLECT_CFGS_ITEMS_FIELD.number = 1 +BOX_COLLECT_CFGS_ITEMS_FIELD.index = 0 +BOX_COLLECT_CFGS_ITEMS_FIELD.label = 3 +BOX_COLLECT_CFGS_ITEMS_FIELD.has_default_value = false +BOX_COLLECT_CFGS_ITEMS_FIELD.default_value = {} +BOX_COLLECT_CFGS_ITEMS_FIELD.message_type = BOX_COLLECT_CFG +BOX_COLLECT_CFGS_ITEMS_FIELD.type = 11 +BOX_COLLECT_CFGS_ITEMS_FIELD.cpp_type = 10 + +BOX_COLLECT_CFGS.name = "box_collect_cfgs" +BOX_COLLECT_CFGS.full_name = ".ftcfg.box_collect_cfgs" +BOX_COLLECT_CFGS.nested_types = {} +BOX_COLLECT_CFGS.enum_types = {} +BOX_COLLECT_CFGS.fields = {BOX_COLLECT_CFGS_ITEMS_FIELD} +BOX_COLLECT_CFGS.is_extendable = false +BOX_COLLECT_CFGS.extensions = {} +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.name = "event_id" +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.event_id" +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.number = 1 +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.index = 0 +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.label = 2 +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.default_value = 0 +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.type = 5 +DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD.cpp_type = 1 + +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.name = "discribe" +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.discribe" +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.number = 2 +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.index = 1 +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.label = 2 +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.default_value = "" +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.type = 9 +DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD.cpp_type = 9 + +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.name = "boxes_id" +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.boxes_id" +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.number = 3 +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.index = 2 +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.label = 3 +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.type = 5 +DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD.cpp_type = 1 + +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.name = "dungeon_x" +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.dungeon_x" +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.number = 4 +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.index = 3 +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.label = 3 +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.type = 2 +DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD.cpp_type = 6 + +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.name = "dungeon_z" +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.dungeon_z" +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.number = 5 +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.index = 4 +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.label = 3 +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.type = 2 +DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD.cpp_type = 6 + +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.name = "map_id" +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.map_id" +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.number = 6 +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.index = 5 +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.label = 3 +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.type = 5 +DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD.cpp_type = 1 + +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.name = "touchoff_task_id" +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.touchoff_task_id" +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.number = 7 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.index = 6 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.label = 3 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.type = 5 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD.cpp_type = 1 + +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.name = "touchoff_rate" +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.touchoff_rate" +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.number = 8 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.index = 7 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.label = 3 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.type = 5 +DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD.cpp_type = 1 + +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.name = "elite_monster" +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.elite_monster" +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.number = 9 +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.index = 8 +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.label = 3 +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.type = 5 +DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD.cpp_type = 1 + +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.name = "broad" +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.full_name = ".ftcfg.dig_treasure_event_cfg.broad" +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.number = 10 +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.index = 9 +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.label = 2 +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.default_value = "" +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.type = 9 +DIG_TREASURE_EVENT_CFG_BROAD_FIELD.cpp_type = 9 + +DIG_TREASURE_EVENT_CFG.name = "dig_treasure_event_cfg" +DIG_TREASURE_EVENT_CFG.full_name = ".ftcfg.dig_treasure_event_cfg" +DIG_TREASURE_EVENT_CFG.nested_types = {} +DIG_TREASURE_EVENT_CFG.enum_types = {} +DIG_TREASURE_EVENT_CFG.fields = {DIG_TREASURE_EVENT_CFG_EVENT_ID_FIELD, DIG_TREASURE_EVENT_CFG_DISCRIBE_FIELD, DIG_TREASURE_EVENT_CFG_BOXES_ID_FIELD, DIG_TREASURE_EVENT_CFG_DUNGEON_X_FIELD, DIG_TREASURE_EVENT_CFG_DUNGEON_Z_FIELD, DIG_TREASURE_EVENT_CFG_MAP_ID_FIELD, DIG_TREASURE_EVENT_CFG_TOUCHOFF_TASK_ID_FIELD, DIG_TREASURE_EVENT_CFG_TOUCHOFF_RATE_FIELD, DIG_TREASURE_EVENT_CFG_ELITE_MONSTER_FIELD, DIG_TREASURE_EVENT_CFG_BROAD_FIELD} +DIG_TREASURE_EVENT_CFG.is_extendable = false +DIG_TREASURE_EVENT_CFG.extensions = {} +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.name = "items" +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.dig_treasure_event_cfgs.items" +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.number = 1 +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.index = 0 +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.label = 3 +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.has_default_value = false +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.default_value = {} +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.message_type = DIG_TREASURE_EVENT_CFG +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.type = 11 +DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD.cpp_type = 10 + +DIG_TREASURE_EVENT_CFGS.name = "dig_treasure_event_cfgs" +DIG_TREASURE_EVENT_CFGS.full_name = ".ftcfg.dig_treasure_event_cfgs" +DIG_TREASURE_EVENT_CFGS.nested_types = {} +DIG_TREASURE_EVENT_CFGS.enum_types = {} +DIG_TREASURE_EVENT_CFGS.fields = {DIG_TREASURE_EVENT_CFGS_ITEMS_FIELD} +DIG_TREASURE_EVENT_CFGS.is_extendable = false +DIG_TREASURE_EVENT_CFGS.extensions = {} +DROP_POINT_CFG_ID_FIELD.name = "id" +DROP_POINT_CFG_ID_FIELD.full_name = ".ftcfg.drop_point_cfg.id" +DROP_POINT_CFG_ID_FIELD.number = 1 +DROP_POINT_CFG_ID_FIELD.index = 0 +DROP_POINT_CFG_ID_FIELD.label = 2 +DROP_POINT_CFG_ID_FIELD.has_default_value = false +DROP_POINT_CFG_ID_FIELD.default_value = 0 +DROP_POINT_CFG_ID_FIELD.type = 5 +DROP_POINT_CFG_ID_FIELD.cpp_type = 1 + +DROP_POINT_CFG_MODULE_FIELD.name = "module" +DROP_POINT_CFG_MODULE_FIELD.full_name = ".ftcfg.drop_point_cfg.module" +DROP_POINT_CFG_MODULE_FIELD.number = 2 +DROP_POINT_CFG_MODULE_FIELD.index = 1 +DROP_POINT_CFG_MODULE_FIELD.label = 2 +DROP_POINT_CFG_MODULE_FIELD.has_default_value = false +DROP_POINT_CFG_MODULE_FIELD.default_value = 0 +DROP_POINT_CFG_MODULE_FIELD.type = 5 +DROP_POINT_CFG_MODULE_FIELD.cpp_type = 1 + +DROP_POINT_CFG_MINDISTANCE_FIELD.name = "minDistance" +DROP_POINT_CFG_MINDISTANCE_FIELD.full_name = ".ftcfg.drop_point_cfg.minDistance" +DROP_POINT_CFG_MINDISTANCE_FIELD.number = 3 +DROP_POINT_CFG_MINDISTANCE_FIELD.index = 2 +DROP_POINT_CFG_MINDISTANCE_FIELD.label = 2 +DROP_POINT_CFG_MINDISTANCE_FIELD.has_default_value = false +DROP_POINT_CFG_MINDISTANCE_FIELD.default_value = 0.0 +DROP_POINT_CFG_MINDISTANCE_FIELD.type = 2 +DROP_POINT_CFG_MINDISTANCE_FIELD.cpp_type = 6 + +DROP_POINT_CFG_PICKTYPE_FIELD.name = "pickType" +DROP_POINT_CFG_PICKTYPE_FIELD.full_name = ".ftcfg.drop_point_cfg.pickType" +DROP_POINT_CFG_PICKTYPE_FIELD.number = 4 +DROP_POINT_CFG_PICKTYPE_FIELD.index = 3 +DROP_POINT_CFG_PICKTYPE_FIELD.label = 2 +DROP_POINT_CFG_PICKTYPE_FIELD.has_default_value = false +DROP_POINT_CFG_PICKTYPE_FIELD.default_value = 0 +DROP_POINT_CFG_PICKTYPE_FIELD.type = 5 +DROP_POINT_CFG_PICKTYPE_FIELD.cpp_type = 1 + +DROP_POINT_CFG_BSHOW_FIELD.name = "bShow" +DROP_POINT_CFG_BSHOW_FIELD.full_name = ".ftcfg.drop_point_cfg.bShow" +DROP_POINT_CFG_BSHOW_FIELD.number = 5 +DROP_POINT_CFG_BSHOW_FIELD.index = 4 +DROP_POINT_CFG_BSHOW_FIELD.label = 2 +DROP_POINT_CFG_BSHOW_FIELD.has_default_value = false +DROP_POINT_CFG_BSHOW_FIELD.default_value = 0 +DROP_POINT_CFG_BSHOW_FIELD.type = 5 +DROP_POINT_CFG_BSHOW_FIELD.cpp_type = 1 + +DROP_POINT_CFG_TEXTID_FIELD.name = "textId" +DROP_POINT_CFG_TEXTID_FIELD.full_name = ".ftcfg.drop_point_cfg.textId" +DROP_POINT_CFG_TEXTID_FIELD.number = 6 +DROP_POINT_CFG_TEXTID_FIELD.index = 5 +DROP_POINT_CFG_TEXTID_FIELD.label = 2 +DROP_POINT_CFG_TEXTID_FIELD.has_default_value = false +DROP_POINT_CFG_TEXTID_FIELD.default_value = 0 +DROP_POINT_CFG_TEXTID_FIELD.type = 5 +DROP_POINT_CFG_TEXTID_FIELD.cpp_type = 1 + +DROP_POINT_CFG.name = "drop_point_cfg" +DROP_POINT_CFG.full_name = ".ftcfg.drop_point_cfg" +DROP_POINT_CFG.nested_types = {} +DROP_POINT_CFG.enum_types = {} +DROP_POINT_CFG.fields = {DROP_POINT_CFG_ID_FIELD, DROP_POINT_CFG_MODULE_FIELD, DROP_POINT_CFG_MINDISTANCE_FIELD, DROP_POINT_CFG_PICKTYPE_FIELD, DROP_POINT_CFG_BSHOW_FIELD, DROP_POINT_CFG_TEXTID_FIELD} +DROP_POINT_CFG.is_extendable = false +DROP_POINT_CFG.extensions = {} +DROP_POINT_CFGS_ITEMS_FIELD.name = "items" +DROP_POINT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.drop_point_cfgs.items" +DROP_POINT_CFGS_ITEMS_FIELD.number = 1 +DROP_POINT_CFGS_ITEMS_FIELD.index = 0 +DROP_POINT_CFGS_ITEMS_FIELD.label = 3 +DROP_POINT_CFGS_ITEMS_FIELD.has_default_value = false +DROP_POINT_CFGS_ITEMS_FIELD.default_value = {} +DROP_POINT_CFGS_ITEMS_FIELD.message_type = DROP_POINT_CFG +DROP_POINT_CFGS_ITEMS_FIELD.type = 11 +DROP_POINT_CFGS_ITEMS_FIELD.cpp_type = 10 + +DROP_POINT_CFGS.name = "drop_point_cfgs" +DROP_POINT_CFGS.full_name = ".ftcfg.drop_point_cfgs" +DROP_POINT_CFGS.nested_types = {} +DROP_POINT_CFGS.enum_types = {} +DROP_POINT_CFGS.fields = {DROP_POINT_CFGS_ITEMS_FIELD} +DROP_POINT_CFGS.is_extendable = false +DROP_POINT_CFGS.extensions = {} +RANK_FUNCTION_CFG_ID_FIELD.name = "id" +RANK_FUNCTION_CFG_ID_FIELD.full_name = ".ftcfg.rank_function_cfg.id" +RANK_FUNCTION_CFG_ID_FIELD.number = 1 +RANK_FUNCTION_CFG_ID_FIELD.index = 0 +RANK_FUNCTION_CFG_ID_FIELD.label = 2 +RANK_FUNCTION_CFG_ID_FIELD.has_default_value = false +RANK_FUNCTION_CFG_ID_FIELD.default_value = 0 +RANK_FUNCTION_CFG_ID_FIELD.type = 5 +RANK_FUNCTION_CFG_ID_FIELD.cpp_type = 1 + +RANK_FUNCTION_CFG_NAME_FIELD.name = "name" +RANK_FUNCTION_CFG_NAME_FIELD.full_name = ".ftcfg.rank_function_cfg.name" +RANK_FUNCTION_CFG_NAME_FIELD.number = 2 +RANK_FUNCTION_CFG_NAME_FIELD.index = 1 +RANK_FUNCTION_CFG_NAME_FIELD.label = 2 +RANK_FUNCTION_CFG_NAME_FIELD.has_default_value = false +RANK_FUNCTION_CFG_NAME_FIELD.default_value = 0 +RANK_FUNCTION_CFG_NAME_FIELD.type = 5 +RANK_FUNCTION_CFG_NAME_FIELD.cpp_type = 1 + +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.name = "select_show" +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.full_name = ".ftcfg.rank_function_cfg.select_show" +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.number = 3 +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.index = 2 +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.label = 2 +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.has_default_value = false +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.default_value = 0 +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.type = 5 +RANK_FUNCTION_CFG_SELECT_SHOW_FIELD.cpp_type = 1 + +RANK_FUNCTION_CFG_TYPE_FIELD.name = "type" +RANK_FUNCTION_CFG_TYPE_FIELD.full_name = ".ftcfg.rank_function_cfg.type" +RANK_FUNCTION_CFG_TYPE_FIELD.number = 4 +RANK_FUNCTION_CFG_TYPE_FIELD.index = 3 +RANK_FUNCTION_CFG_TYPE_FIELD.label = 2 +RANK_FUNCTION_CFG_TYPE_FIELD.has_default_value = false +RANK_FUNCTION_CFG_TYPE_FIELD.default_value = 0 +RANK_FUNCTION_CFG_TYPE_FIELD.type = 5 +RANK_FUNCTION_CFG_TYPE_FIELD.cpp_type = 1 + +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.name = "child_names" +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.full_name = ".ftcfg.rank_function_cfg.child_names" +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.number = 5 +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.index = 4 +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.label = 3 +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.has_default_value = false +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.default_value = {} +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.type = 5 +RANK_FUNCTION_CFG_CHILD_NAMES_FIELD.cpp_type = 1 + +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.name = "child_types" +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.full_name = ".ftcfg.rank_function_cfg.child_types" +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.number = 6 +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.index = 5 +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.label = 3 +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.has_default_value = false +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.default_value = {} +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.type = 5 +RANK_FUNCTION_CFG_CHILD_TYPES_FIELD.cpp_type = 1 + +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.name = "child_values" +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.full_name = ".ftcfg.rank_function_cfg.child_values" +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.number = 7 +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.index = 6 +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.label = 3 +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.has_default_value = false +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.default_value = {} +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.type = 2 +RANK_FUNCTION_CFG_CHILD_VALUES_FIELD.cpp_type = 6 + +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.name = "show_fields" +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.full_name = ".ftcfg.rank_function_cfg.show_fields" +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.number = 8 +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.index = 7 +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.label = 3 +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.has_default_value = false +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.default_value = {} +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.type = 5 +RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD.cpp_type = 1 + +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.name = "host_field" +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.full_name = ".ftcfg.rank_function_cfg.host_field" +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.number = 9 +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.index = 8 +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.label = 2 +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.has_default_value = false +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.default_value = "" +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.type = 9 +RANK_FUNCTION_CFG_HOST_FIELD_FIELD.cpp_type = 9 + +RANK_FUNCTION_CFG.name = "rank_function_cfg" +RANK_FUNCTION_CFG.full_name = ".ftcfg.rank_function_cfg" +RANK_FUNCTION_CFG.nested_types = {} +RANK_FUNCTION_CFG.enum_types = {} +RANK_FUNCTION_CFG.fields = {RANK_FUNCTION_CFG_ID_FIELD, RANK_FUNCTION_CFG_NAME_FIELD, RANK_FUNCTION_CFG_SELECT_SHOW_FIELD, RANK_FUNCTION_CFG_TYPE_FIELD, RANK_FUNCTION_CFG_CHILD_NAMES_FIELD, RANK_FUNCTION_CFG_CHILD_TYPES_FIELD, RANK_FUNCTION_CFG_CHILD_VALUES_FIELD, RANK_FUNCTION_CFG_SHOW_FIELDS_FIELD, RANK_FUNCTION_CFG_HOST_FIELD_FIELD} +RANK_FUNCTION_CFG.is_extendable = false +RANK_FUNCTION_CFG.extensions = {} +RANK_FUNCTION_CFGS_ITEMS_FIELD.name = "items" +RANK_FUNCTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rank_function_cfgs.items" +RANK_FUNCTION_CFGS_ITEMS_FIELD.number = 1 +RANK_FUNCTION_CFGS_ITEMS_FIELD.index = 0 +RANK_FUNCTION_CFGS_ITEMS_FIELD.label = 3 +RANK_FUNCTION_CFGS_ITEMS_FIELD.has_default_value = false +RANK_FUNCTION_CFGS_ITEMS_FIELD.default_value = {} +RANK_FUNCTION_CFGS_ITEMS_FIELD.message_type = RANK_FUNCTION_CFG +RANK_FUNCTION_CFGS_ITEMS_FIELD.type = 11 +RANK_FUNCTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +RANK_FUNCTION_CFGS.name = "rank_function_cfgs" +RANK_FUNCTION_CFGS.full_name = ".ftcfg.rank_function_cfgs" +RANK_FUNCTION_CFGS.nested_types = {} +RANK_FUNCTION_CFGS.enum_types = {} +RANK_FUNCTION_CFGS.fields = {RANK_FUNCTION_CFGS_ITEMS_FIELD} +RANK_FUNCTION_CFGS.is_extendable = false +RANK_FUNCTION_CFGS.extensions = {} +RANK_FIELD_CFG_ID_FIELD.name = "id" +RANK_FIELD_CFG_ID_FIELD.full_name = ".ftcfg.rank_field_cfg.id" +RANK_FIELD_CFG_ID_FIELD.number = 1 +RANK_FIELD_CFG_ID_FIELD.index = 0 +RANK_FIELD_CFG_ID_FIELD.label = 2 +RANK_FIELD_CFG_ID_FIELD.has_default_value = false +RANK_FIELD_CFG_ID_FIELD.default_value = 0 +RANK_FIELD_CFG_ID_FIELD.type = 5 +RANK_FIELD_CFG_ID_FIELD.cpp_type = 1 + +RANK_FIELD_CFG_NAME_FIELD.name = "name" +RANK_FIELD_CFG_NAME_FIELD.full_name = ".ftcfg.rank_field_cfg.name" +RANK_FIELD_CFG_NAME_FIELD.number = 2 +RANK_FIELD_CFG_NAME_FIELD.index = 1 +RANK_FIELD_CFG_NAME_FIELD.label = 2 +RANK_FIELD_CFG_NAME_FIELD.has_default_value = false +RANK_FIELD_CFG_NAME_FIELD.default_value = 0 +RANK_FIELD_CFG_NAME_FIELD.type = 5 +RANK_FIELD_CFG_NAME_FIELD.cpp_type = 1 + +RANK_FIELD_CFG_FIELD_NAME_FIELD.name = "field_name" +RANK_FIELD_CFG_FIELD_NAME_FIELD.full_name = ".ftcfg.rank_field_cfg.field_name" +RANK_FIELD_CFG_FIELD_NAME_FIELD.number = 3 +RANK_FIELD_CFG_FIELD_NAME_FIELD.index = 2 +RANK_FIELD_CFG_FIELD_NAME_FIELD.label = 2 +RANK_FIELD_CFG_FIELD_NAME_FIELD.has_default_value = false +RANK_FIELD_CFG_FIELD_NAME_FIELD.default_value = "" +RANK_FIELD_CFG_FIELD_NAME_FIELD.type = 9 +RANK_FIELD_CFG_FIELD_NAME_FIELD.cpp_type = 9 + +RANK_FIELD_CFG_CHILD_NAMES_FIELD.name = "child_names" +RANK_FIELD_CFG_CHILD_NAMES_FIELD.full_name = ".ftcfg.rank_field_cfg.child_names" +RANK_FIELD_CFG_CHILD_NAMES_FIELD.number = 4 +RANK_FIELD_CFG_CHILD_NAMES_FIELD.index = 3 +RANK_FIELD_CFG_CHILD_NAMES_FIELD.label = 3 +RANK_FIELD_CFG_CHILD_NAMES_FIELD.has_default_value = false +RANK_FIELD_CFG_CHILD_NAMES_FIELD.default_value = {} +RANK_FIELD_CFG_CHILD_NAMES_FIELD.type = 5 +RANK_FIELD_CFG_CHILD_NAMES_FIELD.cpp_type = 1 + +RANK_FIELD_CFG_CHILD_TYPES_FIELD.name = "child_types" +RANK_FIELD_CFG_CHILD_TYPES_FIELD.full_name = ".ftcfg.rank_field_cfg.child_types" +RANK_FIELD_CFG_CHILD_TYPES_FIELD.number = 5 +RANK_FIELD_CFG_CHILD_TYPES_FIELD.index = 4 +RANK_FIELD_CFG_CHILD_TYPES_FIELD.label = 3 +RANK_FIELD_CFG_CHILD_TYPES_FIELD.has_default_value = false +RANK_FIELD_CFG_CHILD_TYPES_FIELD.default_value = {} +RANK_FIELD_CFG_CHILD_TYPES_FIELD.type = 5 +RANK_FIELD_CFG_CHILD_TYPES_FIELD.cpp_type = 1 + +RANK_FIELD_CFG_CHILD_VALUES_FIELD.name = "child_values" +RANK_FIELD_CFG_CHILD_VALUES_FIELD.full_name = ".ftcfg.rank_field_cfg.child_values" +RANK_FIELD_CFG_CHILD_VALUES_FIELD.number = 6 +RANK_FIELD_CFG_CHILD_VALUES_FIELD.index = 5 +RANK_FIELD_CFG_CHILD_VALUES_FIELD.label = 3 +RANK_FIELD_CFG_CHILD_VALUES_FIELD.has_default_value = false +RANK_FIELD_CFG_CHILD_VALUES_FIELD.default_value = {} +RANK_FIELD_CFG_CHILD_VALUES_FIELD.type = 2 +RANK_FIELD_CFG_CHILD_VALUES_FIELD.cpp_type = 6 + +RANK_FIELD_CFG_HOST_FIELD_FIELD.name = "host_field" +RANK_FIELD_CFG_HOST_FIELD_FIELD.full_name = ".ftcfg.rank_field_cfg.host_field" +RANK_FIELD_CFG_HOST_FIELD_FIELD.number = 7 +RANK_FIELD_CFG_HOST_FIELD_FIELD.index = 6 +RANK_FIELD_CFG_HOST_FIELD_FIELD.label = 2 +RANK_FIELD_CFG_HOST_FIELD_FIELD.has_default_value = false +RANK_FIELD_CFG_HOST_FIELD_FIELD.default_value = "" +RANK_FIELD_CFG_HOST_FIELD_FIELD.type = 9 +RANK_FIELD_CFG_HOST_FIELD_FIELD.cpp_type = 9 + +RANK_FIELD_CFG.name = "rank_field_cfg" +RANK_FIELD_CFG.full_name = ".ftcfg.rank_field_cfg" +RANK_FIELD_CFG.nested_types = {} +RANK_FIELD_CFG.enum_types = {} +RANK_FIELD_CFG.fields = {RANK_FIELD_CFG_ID_FIELD, RANK_FIELD_CFG_NAME_FIELD, RANK_FIELD_CFG_FIELD_NAME_FIELD, RANK_FIELD_CFG_CHILD_NAMES_FIELD, RANK_FIELD_CFG_CHILD_TYPES_FIELD, RANK_FIELD_CFG_CHILD_VALUES_FIELD, RANK_FIELD_CFG_HOST_FIELD_FIELD} +RANK_FIELD_CFG.is_extendable = false +RANK_FIELD_CFG.extensions = {} +RANK_FIELD_CFGS_ITEMS_FIELD.name = "items" +RANK_FIELD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rank_field_cfgs.items" +RANK_FIELD_CFGS_ITEMS_FIELD.number = 1 +RANK_FIELD_CFGS_ITEMS_FIELD.index = 0 +RANK_FIELD_CFGS_ITEMS_FIELD.label = 3 +RANK_FIELD_CFGS_ITEMS_FIELD.has_default_value = false +RANK_FIELD_CFGS_ITEMS_FIELD.default_value = {} +RANK_FIELD_CFGS_ITEMS_FIELD.message_type = RANK_FIELD_CFG +RANK_FIELD_CFGS_ITEMS_FIELD.type = 11 +RANK_FIELD_CFGS_ITEMS_FIELD.cpp_type = 10 + +RANK_FIELD_CFGS.name = "rank_field_cfgs" +RANK_FIELD_CFGS.full_name = ".ftcfg.rank_field_cfgs" +RANK_FIELD_CFGS.nested_types = {} +RANK_FIELD_CFGS.enum_types = {} +RANK_FIELD_CFGS.fields = {RANK_FIELD_CFGS_ITEMS_FIELD} +RANK_FIELD_CFGS.is_extendable = false +RANK_FIELD_CFGS.extensions = {} +EDN_CFG_LVL_FIELD.name = "lvl" +EDN_CFG_LVL_FIELD.full_name = ".ftcfg.edn_cfg.lvl" +EDN_CFG_LVL_FIELD.number = 1 +EDN_CFG_LVL_FIELD.index = 0 +EDN_CFG_LVL_FIELD.label = 2 +EDN_CFG_LVL_FIELD.has_default_value = false +EDN_CFG_LVL_FIELD.default_value = 0 +EDN_CFG_LVL_FIELD.type = 5 +EDN_CFG_LVL_FIELD.cpp_type = 1 + +EDN_CFG_LVLUP_EXP_FIELD.name = "lvlup_exp" +EDN_CFG_LVLUP_EXP_FIELD.full_name = ".ftcfg.edn_cfg.lvlup_exp" +EDN_CFG_LVLUP_EXP_FIELD.number = 2 +EDN_CFG_LVLUP_EXP_FIELD.index = 1 +EDN_CFG_LVLUP_EXP_FIELD.label = 2 +EDN_CFG_LVLUP_EXP_FIELD.has_default_value = false +EDN_CFG_LVLUP_EXP_FIELD.default_value = 0 +EDN_CFG_LVLUP_EXP_FIELD.type = 5 +EDN_CFG_LVLUP_EXP_FIELD.cpp_type = 1 + +EDN_CFG.name = "edn_cfg" +EDN_CFG.full_name = ".ftcfg.edn_cfg" +EDN_CFG.nested_types = {} +EDN_CFG.enum_types = {} +EDN_CFG.fields = {EDN_CFG_LVL_FIELD, EDN_CFG_LVLUP_EXP_FIELD} +EDN_CFG.is_extendable = false +EDN_CFG.extensions = {} +EDN_CFGS_ITEMS_FIELD.name = "items" +EDN_CFGS_ITEMS_FIELD.full_name = ".ftcfg.edn_cfgs.items" +EDN_CFGS_ITEMS_FIELD.number = 1 +EDN_CFGS_ITEMS_FIELD.index = 0 +EDN_CFGS_ITEMS_FIELD.label = 3 +EDN_CFGS_ITEMS_FIELD.has_default_value = false +EDN_CFGS_ITEMS_FIELD.default_value = {} +EDN_CFGS_ITEMS_FIELD.message_type = EDN_CFG +EDN_CFGS_ITEMS_FIELD.type = 11 +EDN_CFGS_ITEMS_FIELD.cpp_type = 10 + +EDN_CFGS.name = "edn_cfgs" +EDN_CFGS.full_name = ".ftcfg.edn_cfgs" +EDN_CFGS.nested_types = {} +EDN_CFGS.enum_types = {} +EDN_CFGS.fields = {EDN_CFGS_ITEMS_FIELD} +EDN_CFGS.is_extendable = false +EDN_CFGS.extensions = {} +EDN_SCENE_CFG_SCENE_ID_FIELD.name = "scene_id" +EDN_SCENE_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.edn_scene_cfg.scene_id" +EDN_SCENE_CFG_SCENE_ID_FIELD.number = 1 +EDN_SCENE_CFG_SCENE_ID_FIELD.index = 0 +EDN_SCENE_CFG_SCENE_ID_FIELD.label = 2 +EDN_SCENE_CFG_SCENE_ID_FIELD.has_default_value = false +EDN_SCENE_CFG_SCENE_ID_FIELD.default_value = 0 +EDN_SCENE_CFG_SCENE_ID_FIELD.type = 5 +EDN_SCENE_CFG_SCENE_ID_FIELD.cpp_type = 1 + +EDN_SCENE_CFG_OPEN_LVL_FIELD.name = "open_lvl" +EDN_SCENE_CFG_OPEN_LVL_FIELD.full_name = ".ftcfg.edn_scene_cfg.open_lvl" +EDN_SCENE_CFG_OPEN_LVL_FIELD.number = 2 +EDN_SCENE_CFG_OPEN_LVL_FIELD.index = 1 +EDN_SCENE_CFG_OPEN_LVL_FIELD.label = 2 +EDN_SCENE_CFG_OPEN_LVL_FIELD.has_default_value = false +EDN_SCENE_CFG_OPEN_LVL_FIELD.default_value = 0 +EDN_SCENE_CFG_OPEN_LVL_FIELD.type = 5 +EDN_SCENE_CFG_OPEN_LVL_FIELD.cpp_type = 1 + +EDN_SCENE_CFG_MAPNAME_ID_FIELD.name = "mapname_id" +EDN_SCENE_CFG_MAPNAME_ID_FIELD.full_name = ".ftcfg.edn_scene_cfg.mapname_id" +EDN_SCENE_CFG_MAPNAME_ID_FIELD.number = 3 +EDN_SCENE_CFG_MAPNAME_ID_FIELD.index = 2 +EDN_SCENE_CFG_MAPNAME_ID_FIELD.label = 2 +EDN_SCENE_CFG_MAPNAME_ID_FIELD.has_default_value = false +EDN_SCENE_CFG_MAPNAME_ID_FIELD.default_value = 0 +EDN_SCENE_CFG_MAPNAME_ID_FIELD.type = 5 +EDN_SCENE_CFG_MAPNAME_ID_FIELD.cpp_type = 1 + +EDN_SCENE_CFG_MAP_NAME_FIELD.name = "map_name" +EDN_SCENE_CFG_MAP_NAME_FIELD.full_name = ".ftcfg.edn_scene_cfg.map_name" +EDN_SCENE_CFG_MAP_NAME_FIELD.number = 4 +EDN_SCENE_CFG_MAP_NAME_FIELD.index = 3 +EDN_SCENE_CFG_MAP_NAME_FIELD.label = 2 +EDN_SCENE_CFG_MAP_NAME_FIELD.has_default_value = false +EDN_SCENE_CFG_MAP_NAME_FIELD.default_value = "" +EDN_SCENE_CFG_MAP_NAME_FIELD.type = 9 +EDN_SCENE_CFG_MAP_NAME_FIELD.cpp_type = 9 + +EDN_SCENE_CFG_MAP_IMGID_FIELD.name = "map_imgid" +EDN_SCENE_CFG_MAP_IMGID_FIELD.full_name = ".ftcfg.edn_scene_cfg.map_imgid" +EDN_SCENE_CFG_MAP_IMGID_FIELD.number = 5 +EDN_SCENE_CFG_MAP_IMGID_FIELD.index = 4 +EDN_SCENE_CFG_MAP_IMGID_FIELD.label = 2 +EDN_SCENE_CFG_MAP_IMGID_FIELD.has_default_value = false +EDN_SCENE_CFG_MAP_IMGID_FIELD.default_value = 0 +EDN_SCENE_CFG_MAP_IMGID_FIELD.type = 5 +EDN_SCENE_CFG_MAP_IMGID_FIELD.cpp_type = 1 + +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.name = "map_relicsids" +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.full_name = ".ftcfg.edn_scene_cfg.map_relicsids" +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.number = 6 +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.index = 5 +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.label = 3 +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.has_default_value = false +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.default_value = {} +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.type = 5 +EDN_SCENE_CFG_MAP_RELICSIDS_FIELD.cpp_type = 1 + +EDN_SCENE_CFG.name = "edn_scene_cfg" +EDN_SCENE_CFG.full_name = ".ftcfg.edn_scene_cfg" +EDN_SCENE_CFG.nested_types = {} +EDN_SCENE_CFG.enum_types = {} +EDN_SCENE_CFG.fields = {EDN_SCENE_CFG_SCENE_ID_FIELD, EDN_SCENE_CFG_OPEN_LVL_FIELD, EDN_SCENE_CFG_MAPNAME_ID_FIELD, EDN_SCENE_CFG_MAP_NAME_FIELD, EDN_SCENE_CFG_MAP_IMGID_FIELD, EDN_SCENE_CFG_MAP_RELICSIDS_FIELD} +EDN_SCENE_CFG.is_extendable = false +EDN_SCENE_CFG.extensions = {} +EDN_SCENE_CFGS_ITEMS_FIELD.name = "items" +EDN_SCENE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.edn_scene_cfgs.items" +EDN_SCENE_CFGS_ITEMS_FIELD.number = 1 +EDN_SCENE_CFGS_ITEMS_FIELD.index = 0 +EDN_SCENE_CFGS_ITEMS_FIELD.label = 3 +EDN_SCENE_CFGS_ITEMS_FIELD.has_default_value = false +EDN_SCENE_CFGS_ITEMS_FIELD.default_value = {} +EDN_SCENE_CFGS_ITEMS_FIELD.message_type = EDN_SCENE_CFG +EDN_SCENE_CFGS_ITEMS_FIELD.type = 11 +EDN_SCENE_CFGS_ITEMS_FIELD.cpp_type = 10 + +EDN_SCENE_CFGS.name = "edn_scene_cfgs" +EDN_SCENE_CFGS.full_name = ".ftcfg.edn_scene_cfgs" +EDN_SCENE_CFGS.nested_types = {} +EDN_SCENE_CFGS.enum_types = {} +EDN_SCENE_CFGS.fields = {EDN_SCENE_CFGS_ITEMS_FIELD} +EDN_SCENE_CFGS.is_extendable = false +EDN_SCENE_CFGS.extensions = {} +EDN_RELIC_CFG_ID_FIELD.name = "id" +EDN_RELIC_CFG_ID_FIELD.full_name = ".ftcfg.edn_relic_cfg.id" +EDN_RELIC_CFG_ID_FIELD.number = 1 +EDN_RELIC_CFG_ID_FIELD.index = 0 +EDN_RELIC_CFG_ID_FIELD.label = 2 +EDN_RELIC_CFG_ID_FIELD.has_default_value = false +EDN_RELIC_CFG_ID_FIELD.default_value = 0 +EDN_RELIC_CFG_ID_FIELD.type = 5 +EDN_RELIC_CFG_ID_FIELD.cpp_type = 1 + +EDN_RELIC_CFG_NAME_ID_FIELD.name = "name_id" +EDN_RELIC_CFG_NAME_ID_FIELD.full_name = ".ftcfg.edn_relic_cfg.name_id" +EDN_RELIC_CFG_NAME_ID_FIELD.number = 2 +EDN_RELIC_CFG_NAME_ID_FIELD.index = 1 +EDN_RELIC_CFG_NAME_ID_FIELD.label = 2 +EDN_RELIC_CFG_NAME_ID_FIELD.has_default_value = false +EDN_RELIC_CFG_NAME_ID_FIELD.default_value = 0 +EDN_RELIC_CFG_NAME_ID_FIELD.type = 5 +EDN_RELIC_CFG_NAME_ID_FIELD.cpp_type = 1 + +EDN_RELIC_CFG_NAME_STRING_FIELD.name = "name_string" +EDN_RELIC_CFG_NAME_STRING_FIELD.full_name = ".ftcfg.edn_relic_cfg.name_string" +EDN_RELIC_CFG_NAME_STRING_FIELD.number = 3 +EDN_RELIC_CFG_NAME_STRING_FIELD.index = 2 +EDN_RELIC_CFG_NAME_STRING_FIELD.label = 2 +EDN_RELIC_CFG_NAME_STRING_FIELD.has_default_value = false +EDN_RELIC_CFG_NAME_STRING_FIELD.default_value = "" +EDN_RELIC_CFG_NAME_STRING_FIELD.type = 9 +EDN_RELIC_CFG_NAME_STRING_FIELD.cpp_type = 9 + +EDN_RELIC_CFG_IMAGE_ID_FIELD.name = "image_id" +EDN_RELIC_CFG_IMAGE_ID_FIELD.full_name = ".ftcfg.edn_relic_cfg.image_id" +EDN_RELIC_CFG_IMAGE_ID_FIELD.number = 4 +EDN_RELIC_CFG_IMAGE_ID_FIELD.index = 3 +EDN_RELIC_CFG_IMAGE_ID_FIELD.label = 2 +EDN_RELIC_CFG_IMAGE_ID_FIELD.has_default_value = false +EDN_RELIC_CFG_IMAGE_ID_FIELD.default_value = 0 +EDN_RELIC_CFG_IMAGE_ID_FIELD.type = 5 +EDN_RELIC_CFG_IMAGE_ID_FIELD.cpp_type = 1 + +EDN_RELIC_CFG_REWARDS_FIELD.name = "rewards" +EDN_RELIC_CFG_REWARDS_FIELD.full_name = ".ftcfg.edn_relic_cfg.rewards" +EDN_RELIC_CFG_REWARDS_FIELD.number = 5 +EDN_RELIC_CFG_REWARDS_FIELD.index = 4 +EDN_RELIC_CFG_REWARDS_FIELD.label = 2 +EDN_RELIC_CFG_REWARDS_FIELD.has_default_value = false +EDN_RELIC_CFG_REWARDS_FIELD.default_value = 0 +EDN_RELIC_CFG_REWARDS_FIELD.type = 5 +EDN_RELIC_CFG_REWARDS_FIELD.cpp_type = 1 + +EDN_RELIC_CFG_TIPS_ID_FIELD.name = "tips_id" +EDN_RELIC_CFG_TIPS_ID_FIELD.full_name = ".ftcfg.edn_relic_cfg.tips_id" +EDN_RELIC_CFG_TIPS_ID_FIELD.number = 6 +EDN_RELIC_CFG_TIPS_ID_FIELD.index = 5 +EDN_RELIC_CFG_TIPS_ID_FIELD.label = 2 +EDN_RELIC_CFG_TIPS_ID_FIELD.has_default_value = false +EDN_RELIC_CFG_TIPS_ID_FIELD.default_value = 0 +EDN_RELIC_CFG_TIPS_ID_FIELD.type = 5 +EDN_RELIC_CFG_TIPS_ID_FIELD.cpp_type = 1 + +EDN_RELIC_CFG.name = "edn_relic_cfg" +EDN_RELIC_CFG.full_name = ".ftcfg.edn_relic_cfg" +EDN_RELIC_CFG.nested_types = {} +EDN_RELIC_CFG.enum_types = {} +EDN_RELIC_CFG.fields = {EDN_RELIC_CFG_ID_FIELD, EDN_RELIC_CFG_NAME_ID_FIELD, EDN_RELIC_CFG_NAME_STRING_FIELD, EDN_RELIC_CFG_IMAGE_ID_FIELD, EDN_RELIC_CFG_REWARDS_FIELD, EDN_RELIC_CFG_TIPS_ID_FIELD} +EDN_RELIC_CFG.is_extendable = false +EDN_RELIC_CFG.extensions = {} +EDN_RELIC_CFGS_ITEMS_FIELD.name = "items" +EDN_RELIC_CFGS_ITEMS_FIELD.full_name = ".ftcfg.edn_relic_cfgs.items" +EDN_RELIC_CFGS_ITEMS_FIELD.number = 1 +EDN_RELIC_CFGS_ITEMS_FIELD.index = 0 +EDN_RELIC_CFGS_ITEMS_FIELD.label = 3 +EDN_RELIC_CFGS_ITEMS_FIELD.has_default_value = false +EDN_RELIC_CFGS_ITEMS_FIELD.default_value = {} +EDN_RELIC_CFGS_ITEMS_FIELD.message_type = EDN_RELIC_CFG +EDN_RELIC_CFGS_ITEMS_FIELD.type = 11 +EDN_RELIC_CFGS_ITEMS_FIELD.cpp_type = 10 + +EDN_RELIC_CFGS.name = "edn_relic_cfgs" +EDN_RELIC_CFGS.full_name = ".ftcfg.edn_relic_cfgs" +EDN_RELIC_CFGS.nested_types = {} +EDN_RELIC_CFGS.enum_types = {} +EDN_RELIC_CFGS.fields = {EDN_RELIC_CFGS_ITEMS_FIELD} +EDN_RELIC_CFGS.is_extendable = false +EDN_RELIC_CFGS.extensions = {} +TOWER_BASE_CFG_ID_FIELD.name = "id" +TOWER_BASE_CFG_ID_FIELD.full_name = ".ftcfg.tower_base_cfg.id" +TOWER_BASE_CFG_ID_FIELD.number = 1 +TOWER_BASE_CFG_ID_FIELD.index = 0 +TOWER_BASE_CFG_ID_FIELD.label = 2 +TOWER_BASE_CFG_ID_FIELD.has_default_value = false +TOWER_BASE_CFG_ID_FIELD.default_value = 0 +TOWER_BASE_CFG_ID_FIELD.type = 5 +TOWER_BASE_CFG_ID_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_MAP_ID_FIELD.name = "map_id" +TOWER_BASE_CFG_MAP_ID_FIELD.full_name = ".ftcfg.tower_base_cfg.map_id" +TOWER_BASE_CFG_MAP_ID_FIELD.number = 2 +TOWER_BASE_CFG_MAP_ID_FIELD.index = 1 +TOWER_BASE_CFG_MAP_ID_FIELD.label = 3 +TOWER_BASE_CFG_MAP_ID_FIELD.has_default_value = false +TOWER_BASE_CFG_MAP_ID_FIELD.default_value = {} +TOWER_BASE_CFG_MAP_ID_FIELD.type = 5 +TOWER_BASE_CFG_MAP_ID_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_ITEM_ID_FIELD.name = "item_id" +TOWER_BASE_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.tower_base_cfg.item_id" +TOWER_BASE_CFG_ITEM_ID_FIELD.number = 3 +TOWER_BASE_CFG_ITEM_ID_FIELD.index = 2 +TOWER_BASE_CFG_ITEM_ID_FIELD.label = 2 +TOWER_BASE_CFG_ITEM_ID_FIELD.has_default_value = false +TOWER_BASE_CFG_ITEM_ID_FIELD.default_value = 0 +TOWER_BASE_CFG_ITEM_ID_FIELD.type = 5 +TOWER_BASE_CFG_ITEM_ID_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_ITEM_COUNT_FIELD.name = "item_count" +TOWER_BASE_CFG_ITEM_COUNT_FIELD.full_name = ".ftcfg.tower_base_cfg.item_count" +TOWER_BASE_CFG_ITEM_COUNT_FIELD.number = 4 +TOWER_BASE_CFG_ITEM_COUNT_FIELD.index = 3 +TOWER_BASE_CFG_ITEM_COUNT_FIELD.label = 2 +TOWER_BASE_CFG_ITEM_COUNT_FIELD.has_default_value = false +TOWER_BASE_CFG_ITEM_COUNT_FIELD.default_value = 0 +TOWER_BASE_CFG_ITEM_COUNT_FIELD.type = 5 +TOWER_BASE_CFG_ITEM_COUNT_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_RAID_ITEMID_FIELD.name = "raid_itemid" +TOWER_BASE_CFG_RAID_ITEMID_FIELD.full_name = ".ftcfg.tower_base_cfg.raid_itemid" +TOWER_BASE_CFG_RAID_ITEMID_FIELD.number = 5 +TOWER_BASE_CFG_RAID_ITEMID_FIELD.index = 4 +TOWER_BASE_CFG_RAID_ITEMID_FIELD.label = 2 +TOWER_BASE_CFG_RAID_ITEMID_FIELD.has_default_value = false +TOWER_BASE_CFG_RAID_ITEMID_FIELD.default_value = 0 +TOWER_BASE_CFG_RAID_ITEMID_FIELD.type = 5 +TOWER_BASE_CFG_RAID_ITEMID_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.name = "raid_itemcount" +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.full_name = ".ftcfg.tower_base_cfg.raid_itemcount" +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.number = 6 +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.index = 5 +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.label = 2 +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.has_default_value = false +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.default_value = 0 +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.type = 5 +TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_MONEYTYPE_FIELD.name = "moneytype" +TOWER_BASE_CFG_MONEYTYPE_FIELD.full_name = ".ftcfg.tower_base_cfg.moneytype" +TOWER_BASE_CFG_MONEYTYPE_FIELD.number = 7 +TOWER_BASE_CFG_MONEYTYPE_FIELD.index = 6 +TOWER_BASE_CFG_MONEYTYPE_FIELD.label = 2 +TOWER_BASE_CFG_MONEYTYPE_FIELD.has_default_value = false +TOWER_BASE_CFG_MONEYTYPE_FIELD.default_value = 0 +TOWER_BASE_CFG_MONEYTYPE_FIELD.type = 5 +TOWER_BASE_CFG_MONEYTYPE_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_MONEYCOUNT_FIELD.name = "moneycount" +TOWER_BASE_CFG_MONEYCOUNT_FIELD.full_name = ".ftcfg.tower_base_cfg.moneycount" +TOWER_BASE_CFG_MONEYCOUNT_FIELD.number = 8 +TOWER_BASE_CFG_MONEYCOUNT_FIELD.index = 7 +TOWER_BASE_CFG_MONEYCOUNT_FIELD.label = 2 +TOWER_BASE_CFG_MONEYCOUNT_FIELD.has_default_value = false +TOWER_BASE_CFG_MONEYCOUNT_FIELD.default_value = 0 +TOWER_BASE_CFG_MONEYCOUNT_FIELD.type = 5 +TOWER_BASE_CFG_MONEYCOUNT_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.name = "itemid_cross" +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.full_name = ".ftcfg.tower_base_cfg.itemid_cross" +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.number = 9 +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.index = 8 +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.label = 2 +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.has_default_value = false +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.default_value = 0 +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.type = 5 +TOWER_BASE_CFG_ITEMID_CROSS_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.name = "itemcount_cross" +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.full_name = ".ftcfg.tower_base_cfg.itemcount_cross" +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.number = 10 +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.index = 9 +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.label = 2 +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.has_default_value = false +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.default_value = 0 +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.type = 5 +TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_EXP_CROSS_FIELD.name = "exp_cross" +TOWER_BASE_CFG_EXP_CROSS_FIELD.full_name = ".ftcfg.tower_base_cfg.exp_cross" +TOWER_BASE_CFG_EXP_CROSS_FIELD.number = 11 +TOWER_BASE_CFG_EXP_CROSS_FIELD.index = 10 +TOWER_BASE_CFG_EXP_CROSS_FIELD.label = 2 +TOWER_BASE_CFG_EXP_CROSS_FIELD.has_default_value = false +TOWER_BASE_CFG_EXP_CROSS_FIELD.default_value = 0 +TOWER_BASE_CFG_EXP_CROSS_FIELD.type = 5 +TOWER_BASE_CFG_EXP_CROSS_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.name = "hangup_reward_exp" +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.full_name = ".ftcfg.tower_base_cfg.hangup_reward_exp" +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.number = 12 +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.index = 11 +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.label = 2 +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.has_default_value = false +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.default_value = 0 +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.type = 5 +TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.name = "hangup_reward_moneytype" +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.full_name = ".ftcfg.tower_base_cfg.hangup_reward_moneytype" +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.number = 13 +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.index = 12 +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.label = 2 +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.has_default_value = false +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.default_value = 0 +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.type = 5 +TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.name = "hangup_reward_money" +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.full_name = ".ftcfg.tower_base_cfg.hangup_reward_money" +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.number = 14 +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.index = 13 +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.label = 2 +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.has_default_value = false +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.default_value = 0 +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.type = 5 +TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.name = "delay_reward_item" +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.full_name = ".ftcfg.tower_base_cfg.delay_reward_item" +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.number = 15 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.index = 14 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.label = 2 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.has_default_value = false +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.default_value = 0 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.type = 5 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.name = "delay_reward_item_count" +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.full_name = ".ftcfg.tower_base_cfg.delay_reward_item_count" +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.number = 16 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.index = 15 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.label = 2 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.has_default_value = false +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.default_value = 0 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.type = 5 +TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD.cpp_type = 1 + +TOWER_BASE_CFG_BIRTH_X_FIELD.name = "birth_x" +TOWER_BASE_CFG_BIRTH_X_FIELD.full_name = ".ftcfg.tower_base_cfg.birth_x" +TOWER_BASE_CFG_BIRTH_X_FIELD.number = 17 +TOWER_BASE_CFG_BIRTH_X_FIELD.index = 16 +TOWER_BASE_CFG_BIRTH_X_FIELD.label = 3 +TOWER_BASE_CFG_BIRTH_X_FIELD.has_default_value = false +TOWER_BASE_CFG_BIRTH_X_FIELD.default_value = {} +TOWER_BASE_CFG_BIRTH_X_FIELD.type = 2 +TOWER_BASE_CFG_BIRTH_X_FIELD.cpp_type = 6 + +TOWER_BASE_CFG_BIRTH_Y_FIELD.name = "birth_y" +TOWER_BASE_CFG_BIRTH_Y_FIELD.full_name = ".ftcfg.tower_base_cfg.birth_y" +TOWER_BASE_CFG_BIRTH_Y_FIELD.number = 18 +TOWER_BASE_CFG_BIRTH_Y_FIELD.index = 17 +TOWER_BASE_CFG_BIRTH_Y_FIELD.label = 3 +TOWER_BASE_CFG_BIRTH_Y_FIELD.has_default_value = false +TOWER_BASE_CFG_BIRTH_Y_FIELD.default_value = {} +TOWER_BASE_CFG_BIRTH_Y_FIELD.type = 2 +TOWER_BASE_CFG_BIRTH_Y_FIELD.cpp_type = 6 + +TOWER_BASE_CFG_BIRTH_Z_FIELD.name = "birth_z" +TOWER_BASE_CFG_BIRTH_Z_FIELD.full_name = ".ftcfg.tower_base_cfg.birth_z" +TOWER_BASE_CFG_BIRTH_Z_FIELD.number = 19 +TOWER_BASE_CFG_BIRTH_Z_FIELD.index = 18 +TOWER_BASE_CFG_BIRTH_Z_FIELD.label = 3 +TOWER_BASE_CFG_BIRTH_Z_FIELD.has_default_value = false +TOWER_BASE_CFG_BIRTH_Z_FIELD.default_value = {} +TOWER_BASE_CFG_BIRTH_Z_FIELD.type = 2 +TOWER_BASE_CFG_BIRTH_Z_FIELD.cpp_type = 6 + +TOWER_BASE_CFG.name = "tower_base_cfg" +TOWER_BASE_CFG.full_name = ".ftcfg.tower_base_cfg" +TOWER_BASE_CFG.nested_types = {} +TOWER_BASE_CFG.enum_types = {} +TOWER_BASE_CFG.fields = {TOWER_BASE_CFG_ID_FIELD, TOWER_BASE_CFG_MAP_ID_FIELD, TOWER_BASE_CFG_ITEM_ID_FIELD, TOWER_BASE_CFG_ITEM_COUNT_FIELD, TOWER_BASE_CFG_RAID_ITEMID_FIELD, TOWER_BASE_CFG_RAID_ITEMCOUNT_FIELD, TOWER_BASE_CFG_MONEYTYPE_FIELD, TOWER_BASE_CFG_MONEYCOUNT_FIELD, TOWER_BASE_CFG_ITEMID_CROSS_FIELD, TOWER_BASE_CFG_ITEMCOUNT_CROSS_FIELD, TOWER_BASE_CFG_EXP_CROSS_FIELD, TOWER_BASE_CFG_HANGUP_REWARD_EXP_FIELD, TOWER_BASE_CFG_HANGUP_REWARD_MONEYTYPE_FIELD, TOWER_BASE_CFG_HANGUP_REWARD_MONEY_FIELD, TOWER_BASE_CFG_DELAY_REWARD_ITEM_FIELD, TOWER_BASE_CFG_DELAY_REWARD_ITEM_COUNT_FIELD, TOWER_BASE_CFG_BIRTH_X_FIELD, TOWER_BASE_CFG_BIRTH_Y_FIELD, TOWER_BASE_CFG_BIRTH_Z_FIELD} +TOWER_BASE_CFG.is_extendable = false +TOWER_BASE_CFG.extensions = {} +TOWER_BASE_CFGS_ITEMS_FIELD.name = "items" +TOWER_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.tower_base_cfgs.items" +TOWER_BASE_CFGS_ITEMS_FIELD.number = 1 +TOWER_BASE_CFGS_ITEMS_FIELD.index = 0 +TOWER_BASE_CFGS_ITEMS_FIELD.label = 3 +TOWER_BASE_CFGS_ITEMS_FIELD.has_default_value = false +TOWER_BASE_CFGS_ITEMS_FIELD.default_value = {} +TOWER_BASE_CFGS_ITEMS_FIELD.message_type = TOWER_BASE_CFG +TOWER_BASE_CFGS_ITEMS_FIELD.type = 11 +TOWER_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +TOWER_BASE_CFGS.name = "tower_base_cfgs" +TOWER_BASE_CFGS.full_name = ".ftcfg.tower_base_cfgs" +TOWER_BASE_CFGS.nested_types = {} +TOWER_BASE_CFGS.enum_types = {} +TOWER_BASE_CFGS.fields = {TOWER_BASE_CFGS_ITEMS_FIELD} +TOWER_BASE_CFGS.is_extendable = false +TOWER_BASE_CFGS.extensions = {} +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.name = "id" +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.id" +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.number = 1 +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.index = 0 +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_ID_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.name = "level_state" +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.level_state" +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.number = 2 +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.index = 1 +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.name = "map_id" +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.map_id" +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.number = 3 +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.index = 2 +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.name = "map_image_id" +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.map_image_id" +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.number = 4 +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.index = 3 +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.name = "map_name" +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.map_name" +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.number = 5 +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.index = 4 +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.default_value = "" +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.type = 9 +STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD.cpp_type = 9 + +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.name = "min_fightval" +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.min_fightval" +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.number = 6 +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.index = 5 +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.type = 13 +STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD.cpp_type = 3 + +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.name = "recommend_fightval" +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.recommend_fightval" +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.number = 7 +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.index = 6 +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.type = 13 +STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD.cpp_type = 3 + +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.name = "consume_item_type" +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.consume_item_type" +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.number = 8 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.index = 7 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.type = 13 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD.cpp_type = 3 + +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.name = "consume_item_num" +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.consume_item_num" +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.number = 9 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.index = 8 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.name = "enter_type" +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.enter_type" +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.number = 10 +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.index = 9 +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.default_value = nil +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.enum_type = config_predefine_pb.EDUNGEON_CHALLENGE_TYPE +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.type = 14 +STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD.cpp_type = 8 + +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.name = "dungoen_diff" +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.dungoen_diff" +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.number = 11 +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.index = 10 +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.default_value = nil +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.enum_type = config_predefine_pb.EDUNGEON_CHALLENGE_DIFF +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.type = 14 +STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD.cpp_type = 8 + +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.name = "enter_delay" +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.enter_delay" +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.number = 12 +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.index = 11 +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.type = 13 +STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD.cpp_type = 3 + +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.name = "default_cancel_buton" +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.default_cancel_buton" +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.number = 13 +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.index = 12 +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.name = "reward_type" +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.reward_type" +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.number = 14 +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.index = 13 +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.name = "min_team_num" +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.min_team_num" +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.number = 15 +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.index = 14 +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.name = "icon_id" +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.icon_id" +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.number = 16 +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.index = 15 +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.default_value = 0 +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.name = "consume_show_name" +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.consume_show_name" +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.number = 17 +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.index = 16 +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.label = 2 +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.default_value = "" +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.type = 9 +STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD.cpp_type = 9 + +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.name = "consume_item_id" +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfg.consume_item_id" +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.number = 18 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.index = 17 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.label = 3 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.default_value = {} +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.type = 5 +STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD.cpp_type = 1 + +STARSPIRIT_DUNGOEN_CFG.name = "starspirit_dungoen_cfg" +STARSPIRIT_DUNGOEN_CFG.full_name = ".ftcfg.starspirit_dungoen_cfg" +STARSPIRIT_DUNGOEN_CFG.nested_types = {} +STARSPIRIT_DUNGOEN_CFG.enum_types = {} +STARSPIRIT_DUNGOEN_CFG.fields = {STARSPIRIT_DUNGOEN_CFG_ID_FIELD, STARSPIRIT_DUNGOEN_CFG_LEVEL_STATE_FIELD, STARSPIRIT_DUNGOEN_CFG_MAP_ID_FIELD, STARSPIRIT_DUNGOEN_CFG_MAP_IMAGE_ID_FIELD, STARSPIRIT_DUNGOEN_CFG_MAP_NAME_FIELD, STARSPIRIT_DUNGOEN_CFG_MIN_FIGHTVAL_FIELD, STARSPIRIT_DUNGOEN_CFG_RECOMMEND_FIGHTVAL_FIELD, STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_TYPE_FIELD, STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_NUM_FIELD, STARSPIRIT_DUNGOEN_CFG_ENTER_TYPE_FIELD, STARSPIRIT_DUNGOEN_CFG_DUNGOEN_DIFF_FIELD, STARSPIRIT_DUNGOEN_CFG_ENTER_DELAY_FIELD, STARSPIRIT_DUNGOEN_CFG_DEFAULT_CANCEL_BUTON_FIELD, STARSPIRIT_DUNGOEN_CFG_REWARD_TYPE_FIELD, STARSPIRIT_DUNGOEN_CFG_MIN_TEAM_NUM_FIELD, STARSPIRIT_DUNGOEN_CFG_ICON_ID_FIELD, STARSPIRIT_DUNGOEN_CFG_CONSUME_SHOW_NAME_FIELD, STARSPIRIT_DUNGOEN_CFG_CONSUME_ITEM_ID_FIELD} +STARSPIRIT_DUNGOEN_CFG.is_extendable = false +STARSPIRIT_DUNGOEN_CFG.extensions = {} +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.name = "items" +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.full_name = ".ftcfg.starspirit_dungoen_cfgs.items" +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.number = 1 +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.index = 0 +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.label = 3 +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.has_default_value = false +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.default_value = {} +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.message_type = STARSPIRIT_DUNGOEN_CFG +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.type = 11 +STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD.cpp_type = 10 + +STARSPIRIT_DUNGOEN_CFGS.name = "starspirit_dungoen_cfgs" +STARSPIRIT_DUNGOEN_CFGS.full_name = ".ftcfg.starspirit_dungoen_cfgs" +STARSPIRIT_DUNGOEN_CFGS.nested_types = {} +STARSPIRIT_DUNGOEN_CFGS.enum_types = {} +STARSPIRIT_DUNGOEN_CFGS.fields = {STARSPIRIT_DUNGOEN_CFGS_ITEMS_FIELD} +STARSPIRIT_DUNGOEN_CFGS.is_extendable = false +STARSPIRIT_DUNGOEN_CFGS.extensions = {} +RUNE_QUALITY_CFG_RUNE_ID_FIELD.name = "rune_id" +RUNE_QUALITY_CFG_RUNE_ID_FIELD.full_name = ".ftcfg.rune_quality_cfg.rune_id" +RUNE_QUALITY_CFG_RUNE_ID_FIELD.number = 1 +RUNE_QUALITY_CFG_RUNE_ID_FIELD.index = 0 +RUNE_QUALITY_CFG_RUNE_ID_FIELD.label = 2 +RUNE_QUALITY_CFG_RUNE_ID_FIELD.has_default_value = false +RUNE_QUALITY_CFG_RUNE_ID_FIELD.default_value = 0 +RUNE_QUALITY_CFG_RUNE_ID_FIELD.type = 13 +RUNE_QUALITY_CFG_RUNE_ID_FIELD.cpp_type = 3 + +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.name = "power_uplimit" +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.full_name = ".ftcfg.rune_quality_cfg.power_uplimit" +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.number = 2 +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.index = 1 +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.label = 2 +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.has_default_value = false +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.default_value = 0 +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.type = 13 +RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD.cpp_type = 3 + +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.name = "power_downlimit" +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.full_name = ".ftcfg.rune_quality_cfg.power_downlimit" +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.number = 3 +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.index = 2 +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.label = 2 +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.has_default_value = false +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.default_value = 0 +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.type = 13 +RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD.cpp_type = 3 + +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.name = "better_effect_rate" +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.full_name = ".ftcfg.rune_quality_cfg.better_effect_rate" +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.number = 4 +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.index = 3 +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.label = 2 +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.has_default_value = false +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.default_value = 0 +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.type = 5 +RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD.cpp_type = 1 + +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.name = "best_effect_rate" +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.full_name = ".ftcfg.rune_quality_cfg.best_effect_rate" +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.number = 5 +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.index = 4 +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.label = 2 +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.has_default_value = false +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.default_value = 0 +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.type = 5 +RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD.cpp_type = 1 + +RUNE_QUALITY_CFG.name = "rune_quality_cfg" +RUNE_QUALITY_CFG.full_name = ".ftcfg.rune_quality_cfg" +RUNE_QUALITY_CFG.nested_types = {} +RUNE_QUALITY_CFG.enum_types = {} +RUNE_QUALITY_CFG.fields = {RUNE_QUALITY_CFG_RUNE_ID_FIELD, RUNE_QUALITY_CFG_POWER_UPLIMIT_FIELD, RUNE_QUALITY_CFG_POWER_DOWNLIMIT_FIELD, RUNE_QUALITY_CFG_BETTER_EFFECT_RATE_FIELD, RUNE_QUALITY_CFG_BEST_EFFECT_RATE_FIELD} +RUNE_QUALITY_CFG.is_extendable = false +RUNE_QUALITY_CFG.extensions = {} +RUNE_QUALITY_CFGS_ITEMS_FIELD.name = "items" +RUNE_QUALITY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_quality_cfgs.items" +RUNE_QUALITY_CFGS_ITEMS_FIELD.number = 1 +RUNE_QUALITY_CFGS_ITEMS_FIELD.index = 0 +RUNE_QUALITY_CFGS_ITEMS_FIELD.label = 3 +RUNE_QUALITY_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_QUALITY_CFGS_ITEMS_FIELD.default_value = {} +RUNE_QUALITY_CFGS_ITEMS_FIELD.message_type = RUNE_QUALITY_CFG +RUNE_QUALITY_CFGS_ITEMS_FIELD.type = 11 +RUNE_QUALITY_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_QUALITY_CFGS.name = "rune_quality_cfgs" +RUNE_QUALITY_CFGS.full_name = ".ftcfg.rune_quality_cfgs" +RUNE_QUALITY_CFGS.nested_types = {} +RUNE_QUALITY_CFGS.enum_types = {} +RUNE_QUALITY_CFGS.fields = {RUNE_QUALITY_CFGS_ITEMS_FIELD} +RUNE_QUALITY_CFGS.is_extendable = false +RUNE_QUALITY_CFGS.extensions = {} +RUNE_PROP_REFINE_CFG_ID_FIELD.name = "id" +RUNE_PROP_REFINE_CFG_ID_FIELD.full_name = ".ftcfg.rune_prop_refine_cfg.id" +RUNE_PROP_REFINE_CFG_ID_FIELD.number = 1 +RUNE_PROP_REFINE_CFG_ID_FIELD.index = 0 +RUNE_PROP_REFINE_CFG_ID_FIELD.label = 2 +RUNE_PROP_REFINE_CFG_ID_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFG_ID_FIELD.default_value = 0 +RUNE_PROP_REFINE_CFG_ID_FIELD.type = 13 +RUNE_PROP_REFINE_CFG_ID_FIELD.cpp_type = 3 + +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.name = "level" +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.full_name = ".ftcfg.rune_prop_refine_cfg.level" +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.number = 2 +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.index = 1 +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.label = 2 +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.default_value = 0 +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.type = 13 +RUNE_PROP_REFINE_CFG_LEVEL_FIELD.cpp_type = 3 + +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.name = "prop_type" +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.full_name = ".ftcfg.rune_prop_refine_cfg.prop_type" +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.number = 3 +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.index = 2 +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.label = 2 +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.default_value = nil +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.type = 14 +RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD.cpp_type = 8 + +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.name = "item_id" +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.rune_prop_refine_cfg.item_id" +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.number = 4 +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.index = 3 +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.label = 2 +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.default_value = 0 +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.type = 13 +RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD.cpp_type = 3 + +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.name = "item_count" +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.full_name = ".ftcfg.rune_prop_refine_cfg.item_count" +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.number = 5 +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.index = 4 +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.label = 2 +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.default_value = 0 +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.type = 13 +RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD.cpp_type = 3 + +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.name = "silver_cost" +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.full_name = ".ftcfg.rune_prop_refine_cfg.silver_cost" +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.number = 6 +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.index = 5 +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.label = 2 +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.default_value = 0 +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.type = 13 +RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD.cpp_type = 3 + +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.name = "prop_limit" +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.full_name = ".ftcfg.rune_prop_refine_cfg.prop_limit" +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.number = 7 +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.index = 6 +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.label = 2 +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.default_value = 0.0 +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.type = 2 +RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD.cpp_type = 6 + +RUNE_PROP_REFINE_CFG.name = "rune_prop_refine_cfg" +RUNE_PROP_REFINE_CFG.full_name = ".ftcfg.rune_prop_refine_cfg" +RUNE_PROP_REFINE_CFG.nested_types = {} +RUNE_PROP_REFINE_CFG.enum_types = {} +RUNE_PROP_REFINE_CFG.fields = {RUNE_PROP_REFINE_CFG_ID_FIELD, RUNE_PROP_REFINE_CFG_LEVEL_FIELD, RUNE_PROP_REFINE_CFG_PROP_TYPE_FIELD, RUNE_PROP_REFINE_CFG_ITEM_ID_FIELD, RUNE_PROP_REFINE_CFG_ITEM_COUNT_FIELD, RUNE_PROP_REFINE_CFG_SILVER_COST_FIELD, RUNE_PROP_REFINE_CFG_PROP_LIMIT_FIELD} +RUNE_PROP_REFINE_CFG.is_extendable = false +RUNE_PROP_REFINE_CFG.extensions = {} +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.name = "items" +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_prop_refine_cfgs.items" +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.number = 1 +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.index = 0 +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.label = 3 +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.default_value = {} +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.message_type = RUNE_PROP_REFINE_CFG +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.type = 11 +RUNE_PROP_REFINE_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_PROP_REFINE_CFGS.name = "rune_prop_refine_cfgs" +RUNE_PROP_REFINE_CFGS.full_name = ".ftcfg.rune_prop_refine_cfgs" +RUNE_PROP_REFINE_CFGS.nested_types = {} +RUNE_PROP_REFINE_CFGS.enum_types = {} +RUNE_PROP_REFINE_CFGS.fields = {RUNE_PROP_REFINE_CFGS_ITEMS_FIELD} +RUNE_PROP_REFINE_CFGS.is_extendable = false +RUNE_PROP_REFINE_CFGS.extensions = {} +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.name = "level" +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.full_name = ".ftcfg.rune_skill_refine_cfg.level" +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.number = 1 +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.index = 0 +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.label = 2 +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.has_default_value = false +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.default_value = 0 +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.type = 13 +RUNE_SKILL_REFINE_CFG_LEVEL_FIELD.cpp_type = 3 + +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.name = "item_id" +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.rune_skill_refine_cfg.item_id" +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.number = 2 +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.index = 1 +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.label = 2 +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.has_default_value = false +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.default_value = 0 +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.type = 13 +RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD.cpp_type = 3 + +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.name = "item_count" +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.full_name = ".ftcfg.rune_skill_refine_cfg.item_count" +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.number = 3 +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.index = 2 +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.label = 2 +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.has_default_value = false +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.default_value = 0 +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.type = 13 +RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD.cpp_type = 3 + +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.name = "silver_cost" +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.full_name = ".ftcfg.rune_skill_refine_cfg.silver_cost" +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.number = 4 +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.index = 3 +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.label = 2 +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.has_default_value = false +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.default_value = 0 +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.type = 13 +RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD.cpp_type = 3 + +RUNE_SKILL_REFINE_CFG.name = "rune_skill_refine_cfg" +RUNE_SKILL_REFINE_CFG.full_name = ".ftcfg.rune_skill_refine_cfg" +RUNE_SKILL_REFINE_CFG.nested_types = {} +RUNE_SKILL_REFINE_CFG.enum_types = {} +RUNE_SKILL_REFINE_CFG.fields = {RUNE_SKILL_REFINE_CFG_LEVEL_FIELD, RUNE_SKILL_REFINE_CFG_ITEM_ID_FIELD, RUNE_SKILL_REFINE_CFG_ITEM_COUNT_FIELD, RUNE_SKILL_REFINE_CFG_SILVER_COST_FIELD} +RUNE_SKILL_REFINE_CFG.is_extendable = false +RUNE_SKILL_REFINE_CFG.extensions = {} +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.name = "items" +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.rune_skill_refine_cfgs.items" +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.number = 1 +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.index = 0 +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.label = 3 +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.has_default_value = false +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.default_value = {} +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.message_type = RUNE_SKILL_REFINE_CFG +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.type = 11 +RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD.cpp_type = 10 + +RUNE_SKILL_REFINE_CFGS.name = "rune_skill_refine_cfgs" +RUNE_SKILL_REFINE_CFGS.full_name = ".ftcfg.rune_skill_refine_cfgs" +RUNE_SKILL_REFINE_CFGS.nested_types = {} +RUNE_SKILL_REFINE_CFGS.enum_types = {} +RUNE_SKILL_REFINE_CFGS.fields = {RUNE_SKILL_REFINE_CFGS_ITEMS_FIELD} +RUNE_SKILL_REFINE_CFGS.is_extendable = false +RUNE_SKILL_REFINE_CFGS.extensions = {} +MONTHCARD_BASE_CFG_ID_FIELD.name = "id" +MONTHCARD_BASE_CFG_ID_FIELD.full_name = ".ftcfg.monthcard_base_cfg.id" +MONTHCARD_BASE_CFG_ID_FIELD.number = 1 +MONTHCARD_BASE_CFG_ID_FIELD.index = 0 +MONTHCARD_BASE_CFG_ID_FIELD.label = 2 +MONTHCARD_BASE_CFG_ID_FIELD.has_default_value = false +MONTHCARD_BASE_CFG_ID_FIELD.default_value = 0 +MONTHCARD_BASE_CFG_ID_FIELD.type = 5 +MONTHCARD_BASE_CFG_ID_FIELD.cpp_type = 1 + +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.name = "continueday" +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.full_name = ".ftcfg.monthcard_base_cfg.continueday" +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.number = 2 +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.index = 1 +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.label = 2 +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.has_default_value = false +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.default_value = 0 +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.type = 5 +MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD.cpp_type = 1 + +MONTHCARD_BASE_CFG_PRICE_FIELD.name = "price" +MONTHCARD_BASE_CFG_PRICE_FIELD.full_name = ".ftcfg.monthcard_base_cfg.price" +MONTHCARD_BASE_CFG_PRICE_FIELD.number = 3 +MONTHCARD_BASE_CFG_PRICE_FIELD.index = 2 +MONTHCARD_BASE_CFG_PRICE_FIELD.label = 2 +MONTHCARD_BASE_CFG_PRICE_FIELD.has_default_value = false +MONTHCARD_BASE_CFG_PRICE_FIELD.default_value = 0 +MONTHCARD_BASE_CFG_PRICE_FIELD.type = 5 +MONTHCARD_BASE_CFG_PRICE_FIELD.cpp_type = 1 + +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.name = "ingotscount" +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.full_name = ".ftcfg.monthcard_base_cfg.ingotscount" +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.number = 4 +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.index = 3 +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.label = 2 +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.has_default_value = false +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.default_value = 0 +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.type = 5 +MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD.cpp_type = 1 + +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.name = "exp_percent" +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.full_name = ".ftcfg.monthcard_base_cfg.exp_percent" +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.number = 5 +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.index = 4 +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.label = 2 +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.has_default_value = false +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.default_value = 0 +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.type = 5 +MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD.cpp_type = 1 + +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.name = "popularity_per" +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.full_name = ".ftcfg.monthcard_base_cfg.popularity_per" +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.number = 6 +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.index = 5 +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.label = 2 +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.has_default_value = false +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.default_value = 0 +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.type = 5 +MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD.cpp_type = 1 + +MONTHCARD_BASE_CFG.name = "monthcard_base_cfg" +MONTHCARD_BASE_CFG.full_name = ".ftcfg.monthcard_base_cfg" +MONTHCARD_BASE_CFG.nested_types = {} +MONTHCARD_BASE_CFG.enum_types = {} +MONTHCARD_BASE_CFG.fields = {MONTHCARD_BASE_CFG_ID_FIELD, MONTHCARD_BASE_CFG_CONTINUEDAY_FIELD, MONTHCARD_BASE_CFG_PRICE_FIELD, MONTHCARD_BASE_CFG_INGOTSCOUNT_FIELD, MONTHCARD_BASE_CFG_EXP_PERCENT_FIELD, MONTHCARD_BASE_CFG_POPULARITY_PER_FIELD} +MONTHCARD_BASE_CFG.is_extendable = false +MONTHCARD_BASE_CFG.extensions = {} +MONTHCARD_BASE_CFGS_ITEMS_FIELD.name = "items" +MONTHCARD_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.monthcard_base_cfgs.items" +MONTHCARD_BASE_CFGS_ITEMS_FIELD.number = 1 +MONTHCARD_BASE_CFGS_ITEMS_FIELD.index = 0 +MONTHCARD_BASE_CFGS_ITEMS_FIELD.label = 3 +MONTHCARD_BASE_CFGS_ITEMS_FIELD.has_default_value = false +MONTHCARD_BASE_CFGS_ITEMS_FIELD.default_value = {} +MONTHCARD_BASE_CFGS_ITEMS_FIELD.message_type = MONTHCARD_BASE_CFG +MONTHCARD_BASE_CFGS_ITEMS_FIELD.type = 11 +MONTHCARD_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +MONTHCARD_BASE_CFGS.name = "monthcard_base_cfgs" +MONTHCARD_BASE_CFGS.full_name = ".ftcfg.monthcard_base_cfgs" +MONTHCARD_BASE_CFGS.nested_types = {} +MONTHCARD_BASE_CFGS.enum_types = {} +MONTHCARD_BASE_CFGS.fields = {MONTHCARD_BASE_CFGS_ITEMS_FIELD} +MONTHCARD_BASE_CFGS.is_extendable = false +MONTHCARD_BASE_CFGS.extensions = {} +SIGNUP_BASE_CFG_ID_FIELD.name = "id" +SIGNUP_BASE_CFG_ID_FIELD.full_name = ".ftcfg.signup_base_cfg.id" +SIGNUP_BASE_CFG_ID_FIELD.number = 1 +SIGNUP_BASE_CFG_ID_FIELD.index = 0 +SIGNUP_BASE_CFG_ID_FIELD.label = 2 +SIGNUP_BASE_CFG_ID_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ID_FIELD.default_value = 0 +SIGNUP_BASE_CFG_ID_FIELD.type = 5 +SIGNUP_BASE_CFG_ID_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.name = "item_number_month1" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month1" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.number = 2 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.index = 1 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.name = "item_number_month2" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month2" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.number = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.index = 2 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.name = "item_number_month3" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month3" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.number = 4 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.index = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.name = "item_number_month4" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month4" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.number = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.index = 4 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.name = "item_number_month5" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month5" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.number = 6 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.index = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.name = "item_number_month6" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month6" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.number = 7 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.index = 6 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.name = "item_number_month7" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month7" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.number = 8 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.index = 7 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.name = "item_number_month8" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month8" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.number = 9 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.index = 8 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.name = "item_number_month9" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month9" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.number = 10 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.index = 9 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.name = "item_number_month10" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month10" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.number = 11 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.index = 10 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.name = "item_number_month11" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month11" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.number = 12 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.index = 11 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.name = "item_number_month12" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.full_name = ".ftcfg.signup_base_cfg.item_number_month12" +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.number = 13 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.index = 12 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.label = 3 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.has_default_value = false +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.default_value = {} +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.type = 5 +SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD.cpp_type = 1 + +SIGNUP_BASE_CFG.name = "signup_base_cfg" +SIGNUP_BASE_CFG.full_name = ".ftcfg.signup_base_cfg" +SIGNUP_BASE_CFG.nested_types = {} +SIGNUP_BASE_CFG.enum_types = {} +SIGNUP_BASE_CFG.fields = {SIGNUP_BASE_CFG_ID_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH1_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH2_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH3_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH4_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH5_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH6_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH7_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH8_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH9_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH10_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH11_FIELD, SIGNUP_BASE_CFG_ITEM_NUMBER_MONTH12_FIELD} +SIGNUP_BASE_CFG.is_extendable = false +SIGNUP_BASE_CFG.extensions = {} +SIGNUP_BASE_CFGS_ITEMS_FIELD.name = "items" +SIGNUP_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.signup_base_cfgs.items" +SIGNUP_BASE_CFGS_ITEMS_FIELD.number = 1 +SIGNUP_BASE_CFGS_ITEMS_FIELD.index = 0 +SIGNUP_BASE_CFGS_ITEMS_FIELD.label = 3 +SIGNUP_BASE_CFGS_ITEMS_FIELD.has_default_value = false +SIGNUP_BASE_CFGS_ITEMS_FIELD.default_value = {} +SIGNUP_BASE_CFGS_ITEMS_FIELD.message_type = SIGNUP_BASE_CFG +SIGNUP_BASE_CFGS_ITEMS_FIELD.type = 11 +SIGNUP_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +SIGNUP_BASE_CFGS.name = "signup_base_cfgs" +SIGNUP_BASE_CFGS.full_name = ".ftcfg.signup_base_cfgs" +SIGNUP_BASE_CFGS.nested_types = {} +SIGNUP_BASE_CFGS.enum_types = {} +SIGNUP_BASE_CFGS.fields = {SIGNUP_BASE_CFGS_ITEMS_FIELD} +SIGNUP_BASE_CFGS.is_extendable = false +SIGNUP_BASE_CFGS.extensions = {} +SIGNUP_ACCUMULATION_CFG_ID_FIELD.name = "id" +SIGNUP_ACCUMULATION_CFG_ID_FIELD.full_name = ".ftcfg.signup_accumulation_cfg.id" +SIGNUP_ACCUMULATION_CFG_ID_FIELD.number = 1 +SIGNUP_ACCUMULATION_CFG_ID_FIELD.index = 0 +SIGNUP_ACCUMULATION_CFG_ID_FIELD.label = 2 +SIGNUP_ACCUMULATION_CFG_ID_FIELD.has_default_value = false +SIGNUP_ACCUMULATION_CFG_ID_FIELD.default_value = 0 +SIGNUP_ACCUMULATION_CFG_ID_FIELD.type = 5 +SIGNUP_ACCUMULATION_CFG_ID_FIELD.cpp_type = 1 + +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.name = "reach_number" +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.full_name = ".ftcfg.signup_accumulation_cfg.reach_number" +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.number = 2 +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.index = 1 +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.label = 2 +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.has_default_value = false +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.default_value = 0 +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.type = 5 +SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD.cpp_type = 1 + +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.name = "reward_id" +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.full_name = ".ftcfg.signup_accumulation_cfg.reward_id" +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.number = 3 +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.index = 2 +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.label = 2 +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.has_default_value = false +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.default_value = 0 +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.type = 5 +SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD.cpp_type = 1 + +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.name = "reward_num" +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.full_name = ".ftcfg.signup_accumulation_cfg.reward_num" +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.number = 4 +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.index = 3 +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.label = 2 +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.has_default_value = false +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.default_value = 0 +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.type = 5 +SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD.cpp_type = 1 + +SIGNUP_ACCUMULATION_CFG.name = "signup_accumulation_cfg" +SIGNUP_ACCUMULATION_CFG.full_name = ".ftcfg.signup_accumulation_cfg" +SIGNUP_ACCUMULATION_CFG.nested_types = {} +SIGNUP_ACCUMULATION_CFG.enum_types = {} +SIGNUP_ACCUMULATION_CFG.fields = {SIGNUP_ACCUMULATION_CFG_ID_FIELD, SIGNUP_ACCUMULATION_CFG_REACH_NUMBER_FIELD, SIGNUP_ACCUMULATION_CFG_REWARD_ID_FIELD, SIGNUP_ACCUMULATION_CFG_REWARD_NUM_FIELD} +SIGNUP_ACCUMULATION_CFG.is_extendable = false +SIGNUP_ACCUMULATION_CFG.extensions = {} +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.name = "items" +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.signup_accumulation_cfgs.items" +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.number = 1 +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.index = 0 +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.label = 3 +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.has_default_value = false +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.default_value = {} +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.message_type = SIGNUP_ACCUMULATION_CFG +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.type = 11 +SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +SIGNUP_ACCUMULATION_CFGS.name = "signup_accumulation_cfgs" +SIGNUP_ACCUMULATION_CFGS.full_name = ".ftcfg.signup_accumulation_cfgs" +SIGNUP_ACCUMULATION_CFGS.nested_types = {} +SIGNUP_ACCUMULATION_CFGS.enum_types = {} +SIGNUP_ACCUMULATION_CFGS.fields = {SIGNUP_ACCUMULATION_CFGS_ITEMS_FIELD} +SIGNUP_ACCUMULATION_CFGS.is_extendable = false +SIGNUP_ACCUMULATION_CFGS.extensions = {} +SERVICE_CFG_ID_FIELD.name = "id" +SERVICE_CFG_ID_FIELD.full_name = ".ftcfg.service_cfg.id" +SERVICE_CFG_ID_FIELD.number = 1 +SERVICE_CFG_ID_FIELD.index = 0 +SERVICE_CFG_ID_FIELD.label = 2 +SERVICE_CFG_ID_FIELD.has_default_value = false +SERVICE_CFG_ID_FIELD.default_value = 0 +SERVICE_CFG_ID_FIELD.type = 5 +SERVICE_CFG_ID_FIELD.cpp_type = 1 + +SERVICE_CFG_SERVICE_ID_FIELD.name = "service_id" +SERVICE_CFG_SERVICE_ID_FIELD.full_name = ".ftcfg.service_cfg.service_id" +SERVICE_CFG_SERVICE_ID_FIELD.number = 2 +SERVICE_CFG_SERVICE_ID_FIELD.index = 1 +SERVICE_CFG_SERVICE_ID_FIELD.label = 2 +SERVICE_CFG_SERVICE_ID_FIELD.has_default_value = false +SERVICE_CFG_SERVICE_ID_FIELD.default_value = 0 +SERVICE_CFG_SERVICE_ID_FIELD.type = 5 +SERVICE_CFG_SERVICE_ID_FIELD.cpp_type = 1 + +SERVICE_CFG_PARAM1_FIELD.name = "param1" +SERVICE_CFG_PARAM1_FIELD.full_name = ".ftcfg.service_cfg.param1" +SERVICE_CFG_PARAM1_FIELD.number = 3 +SERVICE_CFG_PARAM1_FIELD.index = 2 +SERVICE_CFG_PARAM1_FIELD.label = 2 +SERVICE_CFG_PARAM1_FIELD.has_default_value = false +SERVICE_CFG_PARAM1_FIELD.default_value = 0 +SERVICE_CFG_PARAM1_FIELD.type = 5 +SERVICE_CFG_PARAM1_FIELD.cpp_type = 1 + +SERVICE_CFG_PARAM2_FIELD.name = "param2" +SERVICE_CFG_PARAM2_FIELD.full_name = ".ftcfg.service_cfg.param2" +SERVICE_CFG_PARAM2_FIELD.number = 4 +SERVICE_CFG_PARAM2_FIELD.index = 3 +SERVICE_CFG_PARAM2_FIELD.label = 2 +SERVICE_CFG_PARAM2_FIELD.has_default_value = false +SERVICE_CFG_PARAM2_FIELD.default_value = 0 +SERVICE_CFG_PARAM2_FIELD.type = 5 +SERVICE_CFG_PARAM2_FIELD.cpp_type = 1 + +SERVICE_CFG_PARAM3_FIELD.name = "param3" +SERVICE_CFG_PARAM3_FIELD.full_name = ".ftcfg.service_cfg.param3" +SERVICE_CFG_PARAM3_FIELD.number = 5 +SERVICE_CFG_PARAM3_FIELD.index = 4 +SERVICE_CFG_PARAM3_FIELD.label = 2 +SERVICE_CFG_PARAM3_FIELD.has_default_value = false +SERVICE_CFG_PARAM3_FIELD.default_value = 0 +SERVICE_CFG_PARAM3_FIELD.type = 5 +SERVICE_CFG_PARAM3_FIELD.cpp_type = 1 + +SERVICE_CFG_PARAM4_FIELD.name = "param4" +SERVICE_CFG_PARAM4_FIELD.full_name = ".ftcfg.service_cfg.param4" +SERVICE_CFG_PARAM4_FIELD.number = 6 +SERVICE_CFG_PARAM4_FIELD.index = 5 +SERVICE_CFG_PARAM4_FIELD.label = 2 +SERVICE_CFG_PARAM4_FIELD.has_default_value = false +SERVICE_CFG_PARAM4_FIELD.default_value = 0 +SERVICE_CFG_PARAM4_FIELD.type = 5 +SERVICE_CFG_PARAM4_FIELD.cpp_type = 1 + +SERVICE_CFG_PARAM5_FIELD.name = "param5" +SERVICE_CFG_PARAM5_FIELD.full_name = ".ftcfg.service_cfg.param5" +SERVICE_CFG_PARAM5_FIELD.number = 7 +SERVICE_CFG_PARAM5_FIELD.index = 6 +SERVICE_CFG_PARAM5_FIELD.label = 2 +SERVICE_CFG_PARAM5_FIELD.has_default_value = false +SERVICE_CFG_PARAM5_FIELD.default_value = 0 +SERVICE_CFG_PARAM5_FIELD.type = 5 +SERVICE_CFG_PARAM5_FIELD.cpp_type = 1 + +SERVICE_CFG.name = "service_cfg" +SERVICE_CFG.full_name = ".ftcfg.service_cfg" +SERVICE_CFG.nested_types = {} +SERVICE_CFG.enum_types = {} +SERVICE_CFG.fields = {SERVICE_CFG_ID_FIELD, SERVICE_CFG_SERVICE_ID_FIELD, SERVICE_CFG_PARAM1_FIELD, SERVICE_CFG_PARAM2_FIELD, SERVICE_CFG_PARAM3_FIELD, SERVICE_CFG_PARAM4_FIELD, SERVICE_CFG_PARAM5_FIELD} +SERVICE_CFG.is_extendable = false +SERVICE_CFG.extensions = {} +SERVICE_CFGS_ITEMS_FIELD.name = "items" +SERVICE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.service_cfgs.items" +SERVICE_CFGS_ITEMS_FIELD.number = 1 +SERVICE_CFGS_ITEMS_FIELD.index = 0 +SERVICE_CFGS_ITEMS_FIELD.label = 3 +SERVICE_CFGS_ITEMS_FIELD.has_default_value = false +SERVICE_CFGS_ITEMS_FIELD.default_value = {} +SERVICE_CFGS_ITEMS_FIELD.message_type = SERVICE_CFG +SERVICE_CFGS_ITEMS_FIELD.type = 11 +SERVICE_CFGS_ITEMS_FIELD.cpp_type = 10 + +SERVICE_CFGS.name = "service_cfgs" +SERVICE_CFGS.full_name = ".ftcfg.service_cfgs" +SERVICE_CFGS.nested_types = {} +SERVICE_CFGS.enum_types = {} +SERVICE_CFGS.fields = {SERVICE_CFGS_ITEMS_FIELD} +SERVICE_CFGS.is_extendable = false +SERVICE_CFGS.extensions = {} +MATERIAL_ITEM_CFG_NUM_FIELD.name = "num" +MATERIAL_ITEM_CFG_NUM_FIELD.full_name = ".ftcfg.material_item_cfg.num" +MATERIAL_ITEM_CFG_NUM_FIELD.number = 1 +MATERIAL_ITEM_CFG_NUM_FIELD.index = 0 +MATERIAL_ITEM_CFG_NUM_FIELD.label = 2 +MATERIAL_ITEM_CFG_NUM_FIELD.has_default_value = false +MATERIAL_ITEM_CFG_NUM_FIELD.default_value = 0 +MATERIAL_ITEM_CFG_NUM_FIELD.type = 13 +MATERIAL_ITEM_CFG_NUM_FIELD.cpp_type = 3 + +MATERIAL_ITEM_CFG_ID_FIELD.name = "id" +MATERIAL_ITEM_CFG_ID_FIELD.full_name = ".ftcfg.material_item_cfg.id" +MATERIAL_ITEM_CFG_ID_FIELD.number = 2 +MATERIAL_ITEM_CFG_ID_FIELD.index = 1 +MATERIAL_ITEM_CFG_ID_FIELD.label = 3 +MATERIAL_ITEM_CFG_ID_FIELD.has_default_value = false +MATERIAL_ITEM_CFG_ID_FIELD.default_value = {} +MATERIAL_ITEM_CFG_ID_FIELD.type = 13 +MATERIAL_ITEM_CFG_ID_FIELD.cpp_type = 3 + +MATERIAL_ITEM_CFG_WEIGHT_FIELD.name = "weight" +MATERIAL_ITEM_CFG_WEIGHT_FIELD.full_name = ".ftcfg.material_item_cfg.weight" +MATERIAL_ITEM_CFG_WEIGHT_FIELD.number = 3 +MATERIAL_ITEM_CFG_WEIGHT_FIELD.index = 2 +MATERIAL_ITEM_CFG_WEIGHT_FIELD.label = 3 +MATERIAL_ITEM_CFG_WEIGHT_FIELD.has_default_value = false +MATERIAL_ITEM_CFG_WEIGHT_FIELD.default_value = {} +MATERIAL_ITEM_CFG_WEIGHT_FIELD.type = 5 +MATERIAL_ITEM_CFG_WEIGHT_FIELD.cpp_type = 1 + +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.name = "reward_id" +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.full_name = ".ftcfg.material_item_cfg.reward_id" +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.number = 4 +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.index = 3 +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.label = 3 +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.has_default_value = false +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.default_value = {} +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.type = 5 +MATERIAL_ITEM_CFG_REWARD_ID_FIELD.cpp_type = 1 + +MATERIAL_ITEM_CFG.name = "material_item_cfg" +MATERIAL_ITEM_CFG.full_name = ".ftcfg.material_item_cfg" +MATERIAL_ITEM_CFG.nested_types = {} +MATERIAL_ITEM_CFG.enum_types = {} +MATERIAL_ITEM_CFG.fields = {MATERIAL_ITEM_CFG_NUM_FIELD, MATERIAL_ITEM_CFG_ID_FIELD, MATERIAL_ITEM_CFG_WEIGHT_FIELD, MATERIAL_ITEM_CFG_REWARD_ID_FIELD} +MATERIAL_ITEM_CFG.is_extendable = false +MATERIAL_ITEM_CFG.extensions = {} +MATERIAL_ITEM_CFGS_ITEMS_FIELD.name = "items" +MATERIAL_ITEM_CFGS_ITEMS_FIELD.full_name = ".ftcfg.material_item_cfgs.items" +MATERIAL_ITEM_CFGS_ITEMS_FIELD.number = 1 +MATERIAL_ITEM_CFGS_ITEMS_FIELD.index = 0 +MATERIAL_ITEM_CFGS_ITEMS_FIELD.label = 3 +MATERIAL_ITEM_CFGS_ITEMS_FIELD.has_default_value = false +MATERIAL_ITEM_CFGS_ITEMS_FIELD.default_value = {} +MATERIAL_ITEM_CFGS_ITEMS_FIELD.message_type = MATERIAL_ITEM_CFG +MATERIAL_ITEM_CFGS_ITEMS_FIELD.type = 11 +MATERIAL_ITEM_CFGS_ITEMS_FIELD.cpp_type = 10 + +MATERIAL_ITEM_CFGS.name = "material_item_cfgs" +MATERIAL_ITEM_CFGS.full_name = ".ftcfg.material_item_cfgs" +MATERIAL_ITEM_CFGS.nested_types = {} +MATERIAL_ITEM_CFGS.enum_types = {} +MATERIAL_ITEM_CFGS.fields = {MATERIAL_ITEM_CFGS_ITEMS_FIELD} +MATERIAL_ITEM_CFGS.is_extendable = false +MATERIAL_ITEM_CFGS.extensions = {} +STATE_CFG_ID_FIELD.name = "id" +STATE_CFG_ID_FIELD.full_name = ".ftcfg.state_cfg.id" +STATE_CFG_ID_FIELD.number = 1 +STATE_CFG_ID_FIELD.index = 0 +STATE_CFG_ID_FIELD.label = 2 +STATE_CFG_ID_FIELD.has_default_value = false +STATE_CFG_ID_FIELD.default_value = 0 +STATE_CFG_ID_FIELD.type = 5 +STATE_CFG_ID_FIELD.cpp_type = 1 + +STATE_CFG_DESC_FIELD.name = "desc" +STATE_CFG_DESC_FIELD.full_name = ".ftcfg.state_cfg.desc" +STATE_CFG_DESC_FIELD.number = 2 +STATE_CFG_DESC_FIELD.index = 1 +STATE_CFG_DESC_FIELD.label = 2 +STATE_CFG_DESC_FIELD.has_default_value = false +STATE_CFG_DESC_FIELD.default_value = "" +STATE_CFG_DESC_FIELD.type = 9 +STATE_CFG_DESC_FIELD.cpp_type = 9 + +STATE_CFG_ACTIONS_FIELD.name = "actions" +STATE_CFG_ACTIONS_FIELD.full_name = ".ftcfg.state_cfg.actions" +STATE_CFG_ACTIONS_FIELD.number = 3 +STATE_CFG_ACTIONS_FIELD.index = 2 +STATE_CFG_ACTIONS_FIELD.label = 3 +STATE_CFG_ACTIONS_FIELD.has_default_value = false +STATE_CFG_ACTIONS_FIELD.default_value = {} +STATE_CFG_ACTIONS_FIELD.enum_type = config_predefine_pb.EBATTLESTATEACTION +STATE_CFG_ACTIONS_FIELD.type = 14 +STATE_CFG_ACTIONS_FIELD.cpp_type = 8 + +STATE_CFG.name = "state_cfg" +STATE_CFG.full_name = ".ftcfg.state_cfg" +STATE_CFG.nested_types = {} +STATE_CFG.enum_types = {} +STATE_CFG.fields = {STATE_CFG_ID_FIELD, STATE_CFG_DESC_FIELD, STATE_CFG_ACTIONS_FIELD} +STATE_CFG.is_extendable = false +STATE_CFG.extensions = {} +STATE_CFGS_ITEMS_FIELD.name = "items" +STATE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.state_cfgs.items" +STATE_CFGS_ITEMS_FIELD.number = 1 +STATE_CFGS_ITEMS_FIELD.index = 0 +STATE_CFGS_ITEMS_FIELD.label = 3 +STATE_CFGS_ITEMS_FIELD.has_default_value = false +STATE_CFGS_ITEMS_FIELD.default_value = {} +STATE_CFGS_ITEMS_FIELD.message_type = STATE_CFG +STATE_CFGS_ITEMS_FIELD.type = 11 +STATE_CFGS_ITEMS_FIELD.cpp_type = 10 + +STATE_CFGS.name = "state_cfgs" +STATE_CFGS.full_name = ".ftcfg.state_cfgs" +STATE_CFGS.nested_types = {} +STATE_CFGS.enum_types = {} +STATE_CFGS.fields = {STATE_CFGS_ITEMS_FIELD} +STATE_CFGS.is_extendable = false +STATE_CFGS.extensions = {} +CAM_OPTIONS_CFG_ID_FIELD.name = "id" +CAM_OPTIONS_CFG_ID_FIELD.full_name = ".ftcfg.cam_options_cfg.id" +CAM_OPTIONS_CFG_ID_FIELD.number = 1 +CAM_OPTIONS_CFG_ID_FIELD.index = 0 +CAM_OPTIONS_CFG_ID_FIELD.label = 2 +CAM_OPTIONS_CFG_ID_FIELD.has_default_value = false +CAM_OPTIONS_CFG_ID_FIELD.default_value = 0 +CAM_OPTIONS_CFG_ID_FIELD.type = 5 +CAM_OPTIONS_CFG_ID_FIELD.cpp_type = 1 + +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.name = "min_pitch" +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.full_name = ".ftcfg.cam_options_cfg.min_pitch" +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.number = 2 +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.index = 1 +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.label = 2 +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.has_default_value = false +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.type = 2 +CAM_OPTIONS_CFG_MIN_PITCH_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.name = "max_pitch" +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.full_name = ".ftcfg.cam_options_cfg.max_pitch" +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.number = 3 +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.index = 2 +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.label = 2 +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.has_default_value = false +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.type = 2 +CAM_OPTIONS_CFG_MAX_PITCH_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.name = "max_follow_dis" +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.full_name = ".ftcfg.cam_options_cfg.max_follow_dis" +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.number = 4 +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.index = 3 +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.label = 2 +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.has_default_value = false +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.type = 2 +CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.name = "min_follow_dis" +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.full_name = ".ftcfg.cam_options_cfg.min_follow_dis" +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.number = 5 +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.index = 4 +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.label = 2 +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.has_default_value = false +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.type = 2 +CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_DEF_YAW_FIELD.name = "def_yaw" +CAM_OPTIONS_CFG_DEF_YAW_FIELD.full_name = ".ftcfg.cam_options_cfg.def_yaw" +CAM_OPTIONS_CFG_DEF_YAW_FIELD.number = 6 +CAM_OPTIONS_CFG_DEF_YAW_FIELD.index = 5 +CAM_OPTIONS_CFG_DEF_YAW_FIELD.label = 2 +CAM_OPTIONS_CFG_DEF_YAW_FIELD.has_default_value = false +CAM_OPTIONS_CFG_DEF_YAW_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_DEF_YAW_FIELD.type = 2 +CAM_OPTIONS_CFG_DEF_YAW_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.name = "def_pitch" +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.full_name = ".ftcfg.cam_options_cfg.def_pitch" +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.number = 7 +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.index = 6 +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.label = 2 +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.has_default_value = false +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.type = 2 +CAM_OPTIONS_CFG_DEF_PITCH_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.name = "follow_auto_rot_yaw_speed" +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.full_name = ".ftcfg.cam_options_cfg.follow_auto_rot_yaw_speed" +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.number = 8 +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.index = 7 +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.label = 2 +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.has_default_value = false +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.type = 2 +CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_OFFSET_X_FIELD.name = "offset_x" +CAM_OPTIONS_CFG_OFFSET_X_FIELD.full_name = ".ftcfg.cam_options_cfg.offset_x" +CAM_OPTIONS_CFG_OFFSET_X_FIELD.number = 9 +CAM_OPTIONS_CFG_OFFSET_X_FIELD.index = 8 +CAM_OPTIONS_CFG_OFFSET_X_FIELD.label = 2 +CAM_OPTIONS_CFG_OFFSET_X_FIELD.has_default_value = false +CAM_OPTIONS_CFG_OFFSET_X_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_OFFSET_X_FIELD.type = 2 +CAM_OPTIONS_CFG_OFFSET_X_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.name = "offset_y" +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.full_name = ".ftcfg.cam_options_cfg.offset_y" +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.number = 10 +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.index = 9 +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.label = 2 +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.has_default_value = false +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.type = 2 +CAM_OPTIONS_CFG_OFFSET_Y_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.name = "offset_z" +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.full_name = ".ftcfg.cam_options_cfg.offset_z" +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.number = 11 +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.index = 10 +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.label = 2 +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.has_default_value = false +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.type = 2 +CAM_OPTIONS_CFG_OFFSET_Z_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG_FOV_FIELD.name = "fov" +CAM_OPTIONS_CFG_FOV_FIELD.full_name = ".ftcfg.cam_options_cfg.fov" +CAM_OPTIONS_CFG_FOV_FIELD.number = 12 +CAM_OPTIONS_CFG_FOV_FIELD.index = 11 +CAM_OPTIONS_CFG_FOV_FIELD.label = 2 +CAM_OPTIONS_CFG_FOV_FIELD.has_default_value = false +CAM_OPTIONS_CFG_FOV_FIELD.default_value = 0.0 +CAM_OPTIONS_CFG_FOV_FIELD.type = 2 +CAM_OPTIONS_CFG_FOV_FIELD.cpp_type = 6 + +CAM_OPTIONS_CFG.name = "cam_options_cfg" +CAM_OPTIONS_CFG.full_name = ".ftcfg.cam_options_cfg" +CAM_OPTIONS_CFG.nested_types = {} +CAM_OPTIONS_CFG.enum_types = {} +CAM_OPTIONS_CFG.fields = {CAM_OPTIONS_CFG_ID_FIELD, CAM_OPTIONS_CFG_MIN_PITCH_FIELD, CAM_OPTIONS_CFG_MAX_PITCH_FIELD, CAM_OPTIONS_CFG_MAX_FOLLOW_DIS_FIELD, CAM_OPTIONS_CFG_MIN_FOLLOW_DIS_FIELD, CAM_OPTIONS_CFG_DEF_YAW_FIELD, CAM_OPTIONS_CFG_DEF_PITCH_FIELD, CAM_OPTIONS_CFG_FOLLOW_AUTO_ROT_YAW_SPEED_FIELD, CAM_OPTIONS_CFG_OFFSET_X_FIELD, CAM_OPTIONS_CFG_OFFSET_Y_FIELD, CAM_OPTIONS_CFG_OFFSET_Z_FIELD, CAM_OPTIONS_CFG_FOV_FIELD} +CAM_OPTIONS_CFG.is_extendable = false +CAM_OPTIONS_CFG.extensions = {} +CAM_OPTIONS_CFGS_ITEMS_FIELD.name = "items" +CAM_OPTIONS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.cam_options_cfgs.items" +CAM_OPTIONS_CFGS_ITEMS_FIELD.number = 1 +CAM_OPTIONS_CFGS_ITEMS_FIELD.index = 0 +CAM_OPTIONS_CFGS_ITEMS_FIELD.label = 3 +CAM_OPTIONS_CFGS_ITEMS_FIELD.has_default_value = false +CAM_OPTIONS_CFGS_ITEMS_FIELD.default_value = {} +CAM_OPTIONS_CFGS_ITEMS_FIELD.message_type = CAM_OPTIONS_CFG +CAM_OPTIONS_CFGS_ITEMS_FIELD.type = 11 +CAM_OPTIONS_CFGS_ITEMS_FIELD.cpp_type = 10 + +CAM_OPTIONS_CFGS.name = "cam_options_cfgs" +CAM_OPTIONS_CFGS.full_name = ".ftcfg.cam_options_cfgs" +CAM_OPTIONS_CFGS.nested_types = {} +CAM_OPTIONS_CFGS.enum_types = {} +CAM_OPTIONS_CFGS.fields = {CAM_OPTIONS_CFGS_ITEMS_FIELD} +CAM_OPTIONS_CFGS.is_extendable = false +CAM_OPTIONS_CFGS.extensions = {} +LEVEL_PACKAGE_CFG_ID_FIELD.name = "id" +LEVEL_PACKAGE_CFG_ID_FIELD.full_name = ".ftcfg.level_package_cfg.id" +LEVEL_PACKAGE_CFG_ID_FIELD.number = 1 +LEVEL_PACKAGE_CFG_ID_FIELD.index = 0 +LEVEL_PACKAGE_CFG_ID_FIELD.label = 2 +LEVEL_PACKAGE_CFG_ID_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_ID_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_ID_FIELD.type = 5 +LEVEL_PACKAGE_CFG_ID_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.name = "reach_grade" +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.full_name = ".ftcfg.level_package_cfg.reach_grade" +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.number = 2 +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.index = 1 +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.name = "reward_item1" +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.full_name = ".ftcfg.level_package_cfg.reward_item1" +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.number = 3 +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.index = 2 +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.name = "reward_number1" +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.full_name = ".ftcfg.level_package_cfg.reward_number1" +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.number = 4 +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.index = 3 +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.name = "reward_item2" +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.full_name = ".ftcfg.level_package_cfg.reward_item2" +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.number = 5 +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.index = 4 +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.name = "reward_number2" +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.full_name = ".ftcfg.level_package_cfg.reward_number2" +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.number = 6 +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.index = 5 +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.name = "reward_item3" +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.full_name = ".ftcfg.level_package_cfg.reward_item3" +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.number = 7 +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.index = 6 +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.name = "reward_number3" +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.full_name = ".ftcfg.level_package_cfg.reward_number3" +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.number = 8 +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.index = 7 +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.name = "reward_item4" +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.full_name = ".ftcfg.level_package_cfg.reward_item4" +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.number = 9 +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.index = 8 +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.name = "reward_number4" +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.full_name = ".ftcfg.level_package_cfg.reward_number4" +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.number = 10 +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.index = 9 +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.name = "reward_item5" +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.full_name = ".ftcfg.level_package_cfg.reward_item5" +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.number = 11 +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.index = 10 +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.name = "reward_number5" +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.full_name = ".ftcfg.level_package_cfg.reward_number5" +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.number = 12 +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.index = 11 +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.name = "reward_item6" +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.full_name = ".ftcfg.level_package_cfg.reward_item6" +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.number = 13 +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.index = 12 +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.name = "reward_number6" +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.full_name = ".ftcfg.level_package_cfg.reward_number6" +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.number = 14 +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.index = 13 +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.label = 2 +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.has_default_value = false +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.default_value = 0 +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.type = 5 +LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD.cpp_type = 1 + +LEVEL_PACKAGE_CFG.name = "level_package_cfg" +LEVEL_PACKAGE_CFG.full_name = ".ftcfg.level_package_cfg" +LEVEL_PACKAGE_CFG.nested_types = {} +LEVEL_PACKAGE_CFG.enum_types = {} +LEVEL_PACKAGE_CFG.fields = {LEVEL_PACKAGE_CFG_ID_FIELD, LEVEL_PACKAGE_CFG_REACH_GRADE_FIELD, LEVEL_PACKAGE_CFG_REWARD_ITEM1_FIELD, LEVEL_PACKAGE_CFG_REWARD_NUMBER1_FIELD, LEVEL_PACKAGE_CFG_REWARD_ITEM2_FIELD, LEVEL_PACKAGE_CFG_REWARD_NUMBER2_FIELD, LEVEL_PACKAGE_CFG_REWARD_ITEM3_FIELD, LEVEL_PACKAGE_CFG_REWARD_NUMBER3_FIELD, LEVEL_PACKAGE_CFG_REWARD_ITEM4_FIELD, LEVEL_PACKAGE_CFG_REWARD_NUMBER4_FIELD, LEVEL_PACKAGE_CFG_REWARD_ITEM5_FIELD, LEVEL_PACKAGE_CFG_REWARD_NUMBER5_FIELD, LEVEL_PACKAGE_CFG_REWARD_ITEM6_FIELD, LEVEL_PACKAGE_CFG_REWARD_NUMBER6_FIELD} +LEVEL_PACKAGE_CFG.is_extendable = false +LEVEL_PACKAGE_CFG.extensions = {} +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.name = "items" +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.level_package_cfgs.items" +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.number = 1 +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.index = 0 +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.label = 3 +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.has_default_value = false +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.default_value = {} +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.message_type = LEVEL_PACKAGE_CFG +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.type = 11 +LEVEL_PACKAGE_CFGS_ITEMS_FIELD.cpp_type = 10 + +LEVEL_PACKAGE_CFGS.name = "level_package_cfgs" +LEVEL_PACKAGE_CFGS.full_name = ".ftcfg.level_package_cfgs" +LEVEL_PACKAGE_CFGS.nested_types = {} +LEVEL_PACKAGE_CFGS.enum_types = {} +LEVEL_PACKAGE_CFGS.fields = {LEVEL_PACKAGE_CFGS_ITEMS_FIELD} +LEVEL_PACKAGE_CFGS.is_extendable = false +LEVEL_PACKAGE_CFGS.extensions = {} +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.name = "id" +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.id" +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.number = 1 +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.index = 0 +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.default_value = 0 +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.type = 5 +BATTLE_CRYSTAL_INFO_CFG_ID_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.name = "activity_type" +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.activity_type" +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.number = 2 +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.index = 1 +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.default_value = nil +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.enum_type = config_predefine_pb.EBATTLEACTIVITYTYPE +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.type = 14 +BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD.cpp_type = 8 + +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.name = "func_type" +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.func_type" +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.number = 3 +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.index = 2 +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.default_value = nil +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.type = 14 +BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD.cpp_type = 8 + +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.name = "start_time" +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.start_time" +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.number = 4 +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.index = 3 +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.default_value = "" +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.type = 9 +BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD.cpp_type = 9 + +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.name = "end_time" +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.end_time" +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.number = 5 +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.index = 4 +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.default_value = "" +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.type = 9 +BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD.cpp_type = 9 + +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.name = "level_limit" +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.level_limit" +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.number = 6 +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.index = 5 +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.default_value = 0 +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.type = 5 +BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.name = "times" +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.times" +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.number = 7 +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.index = 6 +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.default_value = 0 +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.type = 5 +BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.name = "week_loop" +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.full_name = ".ftcfg.battle_crystal_info_cfg.week_loop" +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.number = 8 +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.index = 7 +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.label = 2 +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.default_value = 0 +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.type = 5 +BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_INFO_CFG.name = "battle_crystal_info_cfg" +BATTLE_CRYSTAL_INFO_CFG.full_name = ".ftcfg.battle_crystal_info_cfg" +BATTLE_CRYSTAL_INFO_CFG.nested_types = {} +BATTLE_CRYSTAL_INFO_CFG.enum_types = {} +BATTLE_CRYSTAL_INFO_CFG.fields = {BATTLE_CRYSTAL_INFO_CFG_ID_FIELD, BATTLE_CRYSTAL_INFO_CFG_ACTIVITY_TYPE_FIELD, BATTLE_CRYSTAL_INFO_CFG_FUNC_TYPE_FIELD, BATTLE_CRYSTAL_INFO_CFG_START_TIME_FIELD, BATTLE_CRYSTAL_INFO_CFG_END_TIME_FIELD, BATTLE_CRYSTAL_INFO_CFG_LEVEL_LIMIT_FIELD, BATTLE_CRYSTAL_INFO_CFG_TIMES_FIELD, BATTLE_CRYSTAL_INFO_CFG_WEEK_LOOP_FIELD} +BATTLE_CRYSTAL_INFO_CFG.is_extendable = false +BATTLE_CRYSTAL_INFO_CFG.extensions = {} +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.name = "items" +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.full_name = ".ftcfg.battle_crystal_info_cfgs.items" +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.number = 1 +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.index = 0 +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.label = 3 +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.has_default_value = false +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.default_value = {} +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.message_type = BATTLE_CRYSTAL_INFO_CFG +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.type = 11 +BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD.cpp_type = 10 + +BATTLE_CRYSTAL_INFO_CFGS.name = "battle_crystal_info_cfgs" +BATTLE_CRYSTAL_INFO_CFGS.full_name = ".ftcfg.battle_crystal_info_cfgs" +BATTLE_CRYSTAL_INFO_CFGS.nested_types = {} +BATTLE_CRYSTAL_INFO_CFGS.enum_types = {} +BATTLE_CRYSTAL_INFO_CFGS.fields = {BATTLE_CRYSTAL_INFO_CFGS_ITEMS_FIELD} +BATTLE_CRYSTAL_INFO_CFGS.is_extendable = false +BATTLE_CRYSTAL_INFO_CFGS.extensions = {} +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.name = "id" +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.full_name = ".ftcfg.battle_crystal_rooms_cfg.id" +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.number = 1 +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.index = 0 +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.label = 2 +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.has_default_value = false +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.default_value = 0 +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.type = 5 +BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.name = "red_num" +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.full_name = ".ftcfg.battle_crystal_rooms_cfg.red_num" +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.number = 2 +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.index = 1 +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.label = 2 +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.has_default_value = false +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.default_value = 0 +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.type = 5 +BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.name = "blue_num" +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.full_name = ".ftcfg.battle_crystal_rooms_cfg.blue_num" +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.number = 3 +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.index = 2 +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.label = 2 +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.has_default_value = false +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.default_value = 0 +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.type = 5 +BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.name = "min_level" +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.full_name = ".ftcfg.battle_crystal_rooms_cfg.min_level" +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.number = 4 +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.index = 3 +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.label = 2 +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.has_default_value = false +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.default_value = 0 +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.type = 5 +BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.name = "max_level" +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.full_name = ".ftcfg.battle_crystal_rooms_cfg.max_level" +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.number = 5 +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.index = 4 +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.label = 2 +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.has_default_value = false +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.default_value = 0 +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.type = 5 +BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD.cpp_type = 1 + +BATTLE_CRYSTAL_ROOMS_CFG.name = "battle_crystal_rooms_cfg" +BATTLE_CRYSTAL_ROOMS_CFG.full_name = ".ftcfg.battle_crystal_rooms_cfg" +BATTLE_CRYSTAL_ROOMS_CFG.nested_types = {} +BATTLE_CRYSTAL_ROOMS_CFG.enum_types = {} +BATTLE_CRYSTAL_ROOMS_CFG.fields = {BATTLE_CRYSTAL_ROOMS_CFG_ID_FIELD, BATTLE_CRYSTAL_ROOMS_CFG_RED_NUM_FIELD, BATTLE_CRYSTAL_ROOMS_CFG_BLUE_NUM_FIELD, BATTLE_CRYSTAL_ROOMS_CFG_MIN_LEVEL_FIELD, BATTLE_CRYSTAL_ROOMS_CFG_MAX_LEVEL_FIELD} +BATTLE_CRYSTAL_ROOMS_CFG.is_extendable = false +BATTLE_CRYSTAL_ROOMS_CFG.extensions = {} +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.name = "items" +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.battle_crystal_rooms_cfgs.items" +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.number = 1 +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.index = 0 +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.label = 3 +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.has_default_value = false +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.default_value = {} +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.message_type = BATTLE_CRYSTAL_ROOMS_CFG +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.type = 11 +BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD.cpp_type = 10 + +BATTLE_CRYSTAL_ROOMS_CFGS.name = "battle_crystal_rooms_cfgs" +BATTLE_CRYSTAL_ROOMS_CFGS.full_name = ".ftcfg.battle_crystal_rooms_cfgs" +BATTLE_CRYSTAL_ROOMS_CFGS.nested_types = {} +BATTLE_CRYSTAL_ROOMS_CFGS.enum_types = {} +BATTLE_CRYSTAL_ROOMS_CFGS.fields = {BATTLE_CRYSTAL_ROOMS_CFGS_ITEMS_FIELD} +BATTLE_CRYSTAL_ROOMS_CFGS.is_extendable = false +BATTLE_CRYSTAL_ROOMS_CFGS.extensions = {} +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.name = "id" +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.full_name = ".ftcfg.battle_collect_crystal_cfg.id" +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.number = 1 +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.index = 0 +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.label = 2 +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.has_default_value = false +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.default_value = 0 +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.type = 5 +BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD.cpp_type = 1 + +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.name = "crystal_num" +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.full_name = ".ftcfg.battle_collect_crystal_cfg.crystal_num" +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.number = 2 +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.index = 1 +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.label = 2 +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.has_default_value = false +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.default_value = 0 +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.type = 5 +BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD.cpp_type = 1 + +BATTLE_COLLECT_CRYSTAL_CFG.name = "battle_collect_crystal_cfg" +BATTLE_COLLECT_CRYSTAL_CFG.full_name = ".ftcfg.battle_collect_crystal_cfg" +BATTLE_COLLECT_CRYSTAL_CFG.nested_types = {} +BATTLE_COLLECT_CRYSTAL_CFG.enum_types = {} +BATTLE_COLLECT_CRYSTAL_CFG.fields = {BATTLE_COLLECT_CRYSTAL_CFG_ID_FIELD, BATTLE_COLLECT_CRYSTAL_CFG_CRYSTAL_NUM_FIELD} +BATTLE_COLLECT_CRYSTAL_CFG.is_extendable = false +BATTLE_COLLECT_CRYSTAL_CFG.extensions = {} +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.name = "items" +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.battle_collect_crystal_cfgs.items" +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.number = 1 +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.index = 0 +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.label = 3 +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.has_default_value = false +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.default_value = {} +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.message_type = BATTLE_COLLECT_CRYSTAL_CFG +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.type = 11 +BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD.cpp_type = 10 + +BATTLE_COLLECT_CRYSTAL_CFGS.name = "battle_collect_crystal_cfgs" +BATTLE_COLLECT_CRYSTAL_CFGS.full_name = ".ftcfg.battle_collect_crystal_cfgs" +BATTLE_COLLECT_CRYSTAL_CFGS.nested_types = {} +BATTLE_COLLECT_CRYSTAL_CFGS.enum_types = {} +BATTLE_COLLECT_CRYSTAL_CFGS.fields = {BATTLE_COLLECT_CRYSTAL_CFGS_ITEMS_FIELD} +BATTLE_COLLECT_CRYSTAL_CFGS.is_extendable = false +BATTLE_COLLECT_CRYSTAL_CFGS.extensions = {} +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.name = "level_id" +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.full_name = ".ftcfg.elite_level_cfg.level_id" +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.number = 1 +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.index = 0 +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.label = 2 +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.has_default_value = false +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.default_value = 0 +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.type = 5 +ELITE_LEVEL_CFG_LEVEL_ID_FIELD.cpp_type = 1 + +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.name = "level_min" +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.full_name = ".ftcfg.elite_level_cfg.level_min" +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.number = 2 +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.index = 1 +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.label = 2 +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.has_default_value = false +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.default_value = 0 +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.type = 5 +ELITE_LEVEL_CFG_LEVEL_MIN_FIELD.cpp_type = 1 + +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.name = "level_max" +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.full_name = ".ftcfg.elite_level_cfg.level_max" +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.number = 3 +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.index = 2 +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.label = 2 +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.has_default_value = false +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.default_value = 0 +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.type = 5 +ELITE_LEVEL_CFG_LEVEL_MAX_FIELD.cpp_type = 1 + +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.name = "fight_power1" +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.full_name = ".ftcfg.elite_level_cfg.fight_power1" +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.number = 4 +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.index = 3 +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.label = 2 +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.has_default_value = false +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.default_value = 0 +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.type = 5 +ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD.cpp_type = 1 + +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.name = "fight_power2" +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.full_name = ".ftcfg.elite_level_cfg.fight_power2" +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.number = 5 +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.index = 4 +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.label = 2 +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.has_default_value = false +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.default_value = 0 +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.type = 5 +ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD.cpp_type = 1 + +ELITE_LEVEL_CFG.name = "elite_level_cfg" +ELITE_LEVEL_CFG.full_name = ".ftcfg.elite_level_cfg" +ELITE_LEVEL_CFG.nested_types = {} +ELITE_LEVEL_CFG.enum_types = {} +ELITE_LEVEL_CFG.fields = {ELITE_LEVEL_CFG_LEVEL_ID_FIELD, ELITE_LEVEL_CFG_LEVEL_MIN_FIELD, ELITE_LEVEL_CFG_LEVEL_MAX_FIELD, ELITE_LEVEL_CFG_FIGHT_POWER1_FIELD, ELITE_LEVEL_CFG_FIGHT_POWER2_FIELD} +ELITE_LEVEL_CFG.is_extendable = false +ELITE_LEVEL_CFG.extensions = {} +ELITE_LEVEL_CFGS_ITEMS_FIELD.name = "items" +ELITE_LEVEL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.elite_level_cfgs.items" +ELITE_LEVEL_CFGS_ITEMS_FIELD.number = 1 +ELITE_LEVEL_CFGS_ITEMS_FIELD.index = 0 +ELITE_LEVEL_CFGS_ITEMS_FIELD.label = 3 +ELITE_LEVEL_CFGS_ITEMS_FIELD.has_default_value = false +ELITE_LEVEL_CFGS_ITEMS_FIELD.default_value = {} +ELITE_LEVEL_CFGS_ITEMS_FIELD.message_type = ELITE_LEVEL_CFG +ELITE_LEVEL_CFGS_ITEMS_FIELD.type = 11 +ELITE_LEVEL_CFGS_ITEMS_FIELD.cpp_type = 10 + +ELITE_LEVEL_CFGS.name = "elite_level_cfgs" +ELITE_LEVEL_CFGS.full_name = ".ftcfg.elite_level_cfgs" +ELITE_LEVEL_CFGS.nested_types = {} +ELITE_LEVEL_CFGS.enum_types = {} +ELITE_LEVEL_CFGS.fields = {ELITE_LEVEL_CFGS_ITEMS_FIELD} +ELITE_LEVEL_CFGS.is_extendable = false +ELITE_LEVEL_CFGS.extensions = {} +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.name = "level_id" +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.full_name = ".ftcfg.elite_common_info_cfg.level_id" +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.number = 1 +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.index = 0 +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.label = 2 +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.default_value = 0 +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.name = "game_id" +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.full_name = ".ftcfg.elite_common_info_cfg.game_id" +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.number = 2 +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.index = 1 +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.label = 2 +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.default_value = 0 +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_GAME_ID_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.name = "map_id" +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.full_name = ".ftcfg.elite_common_info_cfg.map_id" +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.number = 3 +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.index = 2 +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.label = 2 +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.default_value = 0 +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_MAP_ID_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_NODE_FIELD.name = "node" +ELITE_COMMON_INFO_CFG_NODE_FIELD.full_name = ".ftcfg.elite_common_info_cfg.node" +ELITE_COMMON_INFO_CFG_NODE_FIELD.number = 4 +ELITE_COMMON_INFO_CFG_NODE_FIELD.index = 3 +ELITE_COMMON_INFO_CFG_NODE_FIELD.label = 2 +ELITE_COMMON_INFO_CFG_NODE_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_NODE_FIELD.default_value = 0 +ELITE_COMMON_INFO_CFG_NODE_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_NODE_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_TIME_FIELD.name = "time" +ELITE_COMMON_INFO_CFG_TIME_FIELD.full_name = ".ftcfg.elite_common_info_cfg.time" +ELITE_COMMON_INFO_CFG_TIME_FIELD.number = 5 +ELITE_COMMON_INFO_CFG_TIME_FIELD.index = 4 +ELITE_COMMON_INFO_CFG_TIME_FIELD.label = 3 +ELITE_COMMON_INFO_CFG_TIME_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_TIME_FIELD.default_value = {} +ELITE_COMMON_INFO_CFG_TIME_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_TIME_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_GRADE_FIELD.name = "grade" +ELITE_COMMON_INFO_CFG_GRADE_FIELD.full_name = ".ftcfg.elite_common_info_cfg.grade" +ELITE_COMMON_INFO_CFG_GRADE_FIELD.number = 6 +ELITE_COMMON_INFO_CFG_GRADE_FIELD.index = 5 +ELITE_COMMON_INFO_CFG_GRADE_FIELD.label = 3 +ELITE_COMMON_INFO_CFG_GRADE_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_GRADE_FIELD.default_value = {} +ELITE_COMMON_INFO_CFG_GRADE_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_GRADE_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.name = "reward_id" +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.full_name = ".ftcfg.elite_common_info_cfg.reward_id" +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.number = 7 +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.index = 6 +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.label = 3 +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.default_value = {} +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.name = "monster_level" +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.full_name = ".ftcfg.elite_common_info_cfg.monster_level" +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.number = 8 +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.index = 7 +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.label = 2 +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.default_value = 0 +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.name = "checkpoint_time" +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.full_name = ".ftcfg.elite_common_info_cfg.checkpoint_time" +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.number = 9 +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.index = 8 +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.label = 2 +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.default_value = 0 +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.name = "open_time" +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.full_name = ".ftcfg.elite_common_info_cfg.open_time" +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.number = 10 +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.index = 9 +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.label = 2 +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.default_value = 0 +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.type = 5 +ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD.cpp_type = 1 + +ELITE_COMMON_INFO_CFG.name = "elite_common_info_cfg" +ELITE_COMMON_INFO_CFG.full_name = ".ftcfg.elite_common_info_cfg" +ELITE_COMMON_INFO_CFG.nested_types = {} +ELITE_COMMON_INFO_CFG.enum_types = {} +ELITE_COMMON_INFO_CFG.fields = {ELITE_COMMON_INFO_CFG_LEVEL_ID_FIELD, ELITE_COMMON_INFO_CFG_GAME_ID_FIELD, ELITE_COMMON_INFO_CFG_MAP_ID_FIELD, ELITE_COMMON_INFO_CFG_NODE_FIELD, ELITE_COMMON_INFO_CFG_TIME_FIELD, ELITE_COMMON_INFO_CFG_GRADE_FIELD, ELITE_COMMON_INFO_CFG_REWARD_ID_FIELD, ELITE_COMMON_INFO_CFG_MONSTER_LEVEL_FIELD, ELITE_COMMON_INFO_CFG_CHECKPOINT_TIME_FIELD, ELITE_COMMON_INFO_CFG_OPEN_TIME_FIELD} +ELITE_COMMON_INFO_CFG.is_extendable = false +ELITE_COMMON_INFO_CFG.extensions = {} +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.name = "items" +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.full_name = ".ftcfg.elite_common_info_cfgs.items" +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.number = 1 +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.index = 0 +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.label = 3 +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.has_default_value = false +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.default_value = {} +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.message_type = ELITE_COMMON_INFO_CFG +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.type = 11 +ELITE_COMMON_INFO_CFGS_ITEMS_FIELD.cpp_type = 10 + +ELITE_COMMON_INFO_CFGS.name = "elite_common_info_cfgs" +ELITE_COMMON_INFO_CFGS.full_name = ".ftcfg.elite_common_info_cfgs" +ELITE_COMMON_INFO_CFGS.nested_types = {} +ELITE_COMMON_INFO_CFGS.enum_types = {} +ELITE_COMMON_INFO_CFGS.fields = {ELITE_COMMON_INFO_CFGS_ITEMS_FIELD} +ELITE_COMMON_INFO_CFGS.is_extendable = false +ELITE_COMMON_INFO_CFGS.extensions = {} +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.name = "level_id" +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.level_id" +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.number = 1 +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.index = 0 +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.label = 2 +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.default_value = 0 +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.type = 5 +ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.name = "game_id" +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.game_id" +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.number = 2 +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.index = 1 +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.label = 2 +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.default_value = 0 +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.type = 5 +ELITE_HELL_INFO_CFG_GAME_ID_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.name = "map_id" +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.map_id" +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.number = 3 +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.index = 2 +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.label = 2 +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.default_value = 0 +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.type = 5 +ELITE_HELL_INFO_CFG_MAP_ID_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_NODE_FIELD.name = "node" +ELITE_HELL_INFO_CFG_NODE_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.node" +ELITE_HELL_INFO_CFG_NODE_FIELD.number = 4 +ELITE_HELL_INFO_CFG_NODE_FIELD.index = 3 +ELITE_HELL_INFO_CFG_NODE_FIELD.label = 2 +ELITE_HELL_INFO_CFG_NODE_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_NODE_FIELD.default_value = 0 +ELITE_HELL_INFO_CFG_NODE_FIELD.type = 5 +ELITE_HELL_INFO_CFG_NODE_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_TIME_FIELD.name = "time" +ELITE_HELL_INFO_CFG_TIME_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.time" +ELITE_HELL_INFO_CFG_TIME_FIELD.number = 5 +ELITE_HELL_INFO_CFG_TIME_FIELD.index = 4 +ELITE_HELL_INFO_CFG_TIME_FIELD.label = 3 +ELITE_HELL_INFO_CFG_TIME_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_TIME_FIELD.default_value = {} +ELITE_HELL_INFO_CFG_TIME_FIELD.type = 5 +ELITE_HELL_INFO_CFG_TIME_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_GRADE_FIELD.name = "grade" +ELITE_HELL_INFO_CFG_GRADE_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.grade" +ELITE_HELL_INFO_CFG_GRADE_FIELD.number = 6 +ELITE_HELL_INFO_CFG_GRADE_FIELD.index = 5 +ELITE_HELL_INFO_CFG_GRADE_FIELD.label = 3 +ELITE_HELL_INFO_CFG_GRADE_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_GRADE_FIELD.default_value = {} +ELITE_HELL_INFO_CFG_GRADE_FIELD.type = 5 +ELITE_HELL_INFO_CFG_GRADE_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.name = "reward_id" +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.reward_id" +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.number = 7 +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.index = 6 +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.label = 3 +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.default_value = {} +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.type = 5 +ELITE_HELL_INFO_CFG_REWARD_ID_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.name = "monster_level" +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.monster_level" +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.number = 8 +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.index = 7 +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.label = 2 +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.default_value = 0 +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.type = 5 +ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.name = "checkpoint_time" +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.checkpoint_time" +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.number = 9 +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.index = 8 +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.label = 2 +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.default_value = 0 +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.type = 5 +ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.name = "open_time" +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.full_name = ".ftcfg.elite_hell_info_cfg.open_time" +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.number = 10 +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.index = 9 +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.label = 2 +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.has_default_value = false +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.default_value = 0 +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.type = 5 +ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD.cpp_type = 1 + +ELITE_HELL_INFO_CFG.name = "elite_hell_info_cfg" +ELITE_HELL_INFO_CFG.full_name = ".ftcfg.elite_hell_info_cfg" +ELITE_HELL_INFO_CFG.nested_types = {} +ELITE_HELL_INFO_CFG.enum_types = {} +ELITE_HELL_INFO_CFG.fields = {ELITE_HELL_INFO_CFG_LEVEL_ID_FIELD, ELITE_HELL_INFO_CFG_GAME_ID_FIELD, ELITE_HELL_INFO_CFG_MAP_ID_FIELD, ELITE_HELL_INFO_CFG_NODE_FIELD, ELITE_HELL_INFO_CFG_TIME_FIELD, ELITE_HELL_INFO_CFG_GRADE_FIELD, ELITE_HELL_INFO_CFG_REWARD_ID_FIELD, ELITE_HELL_INFO_CFG_MONSTER_LEVEL_FIELD, ELITE_HELL_INFO_CFG_CHECKPOINT_TIME_FIELD, ELITE_HELL_INFO_CFG_OPEN_TIME_FIELD} +ELITE_HELL_INFO_CFG.is_extendable = false +ELITE_HELL_INFO_CFG.extensions = {} +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.name = "items" +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.full_name = ".ftcfg.elite_hell_info_cfgs.items" +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.number = 1 +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.index = 0 +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.label = 3 +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.has_default_value = false +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.default_value = {} +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.message_type = ELITE_HELL_INFO_CFG +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.type = 11 +ELITE_HELL_INFO_CFGS_ITEMS_FIELD.cpp_type = 10 + +ELITE_HELL_INFO_CFGS.name = "elite_hell_info_cfgs" +ELITE_HELL_INFO_CFGS.full_name = ".ftcfg.elite_hell_info_cfgs" +ELITE_HELL_INFO_CFGS.nested_types = {} +ELITE_HELL_INFO_CFGS.enum_types = {} +ELITE_HELL_INFO_CFGS.fields = {ELITE_HELL_INFO_CFGS_ITEMS_FIELD} +ELITE_HELL_INFO_CFGS.is_extendable = false +ELITE_HELL_INFO_CFGS.extensions = {} +ELITE_REWARD_CFG_ID_FIELD.name = "id" +ELITE_REWARD_CFG_ID_FIELD.full_name = ".ftcfg.elite_reward_cfg.id" +ELITE_REWARD_CFG_ID_FIELD.number = 1 +ELITE_REWARD_CFG_ID_FIELD.index = 0 +ELITE_REWARD_CFG_ID_FIELD.label = 2 +ELITE_REWARD_CFG_ID_FIELD.has_default_value = false +ELITE_REWARD_CFG_ID_FIELD.default_value = 0 +ELITE_REWARD_CFG_ID_FIELD.type = 5 +ELITE_REWARD_CFG_ID_FIELD.cpp_type = 1 + +ELITE_REWARD_CFG_ITEM_ID_FIELD.name = "item_id" +ELITE_REWARD_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.elite_reward_cfg.item_id" +ELITE_REWARD_CFG_ITEM_ID_FIELD.number = 2 +ELITE_REWARD_CFG_ITEM_ID_FIELD.index = 1 +ELITE_REWARD_CFG_ITEM_ID_FIELD.label = 3 +ELITE_REWARD_CFG_ITEM_ID_FIELD.has_default_value = false +ELITE_REWARD_CFG_ITEM_ID_FIELD.default_value = {} +ELITE_REWARD_CFG_ITEM_ID_FIELD.type = 5 +ELITE_REWARD_CFG_ITEM_ID_FIELD.cpp_type = 1 + +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.name = "item_count" +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.full_name = ".ftcfg.elite_reward_cfg.item_count" +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.number = 3 +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.index = 2 +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.label = 3 +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.has_default_value = false +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.default_value = {} +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.type = 5 +ELITE_REWARD_CFG_ITEM_COUNT_FIELD.cpp_type = 1 + +ELITE_REWARD_CFG.name = "elite_reward_cfg" +ELITE_REWARD_CFG.full_name = ".ftcfg.elite_reward_cfg" +ELITE_REWARD_CFG.nested_types = {} +ELITE_REWARD_CFG.enum_types = {} +ELITE_REWARD_CFG.fields = {ELITE_REWARD_CFG_ID_FIELD, ELITE_REWARD_CFG_ITEM_ID_FIELD, ELITE_REWARD_CFG_ITEM_COUNT_FIELD} +ELITE_REWARD_CFG.is_extendable = false +ELITE_REWARD_CFG.extensions = {} +ELITE_REWARD_CFGS_ITEMS_FIELD.name = "items" +ELITE_REWARD_CFGS_ITEMS_FIELD.full_name = ".ftcfg.elite_reward_cfgs.items" +ELITE_REWARD_CFGS_ITEMS_FIELD.number = 1 +ELITE_REWARD_CFGS_ITEMS_FIELD.index = 0 +ELITE_REWARD_CFGS_ITEMS_FIELD.label = 3 +ELITE_REWARD_CFGS_ITEMS_FIELD.has_default_value = false +ELITE_REWARD_CFGS_ITEMS_FIELD.default_value = {} +ELITE_REWARD_CFGS_ITEMS_FIELD.message_type = ELITE_REWARD_CFG +ELITE_REWARD_CFGS_ITEMS_FIELD.type = 11 +ELITE_REWARD_CFGS_ITEMS_FIELD.cpp_type = 10 + +ELITE_REWARD_CFGS.name = "elite_reward_cfgs" +ELITE_REWARD_CFGS.full_name = ".ftcfg.elite_reward_cfgs" +ELITE_REWARD_CFGS.nested_types = {} +ELITE_REWARD_CFGS.enum_types = {} +ELITE_REWARD_CFGS.fields = {ELITE_REWARD_CFGS_ITEMS_FIELD} +ELITE_REWARD_CFGS.is_extendable = false +ELITE_REWARD_CFGS.extensions = {} +SUBSYS_CFG_ID_FIELD.name = "id" +SUBSYS_CFG_ID_FIELD.full_name = ".ftcfg.subsys_cfg.id" +SUBSYS_CFG_ID_FIELD.number = 1 +SUBSYS_CFG_ID_FIELD.index = 0 +SUBSYS_CFG_ID_FIELD.label = 2 +SUBSYS_CFG_ID_FIELD.has_default_value = false +SUBSYS_CFG_ID_FIELD.default_value = 0 +SUBSYS_CFG_ID_FIELD.type = 5 +SUBSYS_CFG_ID_FIELD.cpp_type = 1 + +SUBSYS_CFG_NAME_FIELD.name = "name" +SUBSYS_CFG_NAME_FIELD.full_name = ".ftcfg.subsys_cfg.name" +SUBSYS_CFG_NAME_FIELD.number = 2 +SUBSYS_CFG_NAME_FIELD.index = 1 +SUBSYS_CFG_NAME_FIELD.label = 2 +SUBSYS_CFG_NAME_FIELD.has_default_value = false +SUBSYS_CFG_NAME_FIELD.default_value = "" +SUBSYS_CFG_NAME_FIELD.type = 9 +SUBSYS_CFG_NAME_FIELD.cpp_type = 9 + +SUBSYS_CFG_TITLE_ID_FIELD.name = "title_id" +SUBSYS_CFG_TITLE_ID_FIELD.full_name = ".ftcfg.subsys_cfg.title_id" +SUBSYS_CFG_TITLE_ID_FIELD.number = 3 +SUBSYS_CFG_TITLE_ID_FIELD.index = 2 +SUBSYS_CFG_TITLE_ID_FIELD.label = 2 +SUBSYS_CFG_TITLE_ID_FIELD.has_default_value = false +SUBSYS_CFG_TITLE_ID_FIELD.default_value = 0 +SUBSYS_CFG_TITLE_ID_FIELD.type = 5 +SUBSYS_CFG_TITLE_ID_FIELD.cpp_type = 1 + +SUBSYS_CFG_DESC_ID_FIELD.name = "desc_id" +SUBSYS_CFG_DESC_ID_FIELD.full_name = ".ftcfg.subsys_cfg.desc_id" +SUBSYS_CFG_DESC_ID_FIELD.number = 4 +SUBSYS_CFG_DESC_ID_FIELD.index = 3 +SUBSYS_CFG_DESC_ID_FIELD.label = 2 +SUBSYS_CFG_DESC_ID_FIELD.has_default_value = false +SUBSYS_CFG_DESC_ID_FIELD.default_value = 0 +SUBSYS_CFG_DESC_ID_FIELD.type = 5 +SUBSYS_CFG_DESC_ID_FIELD.cpp_type = 1 + +SUBSYS_CFG_UI_STYLE_FIELD.name = "ui_style" +SUBSYS_CFG_UI_STYLE_FIELD.full_name = ".ftcfg.subsys_cfg.ui_style" +SUBSYS_CFG_UI_STYLE_FIELD.number = 5 +SUBSYS_CFG_UI_STYLE_FIELD.index = 4 +SUBSYS_CFG_UI_STYLE_FIELD.label = 2 +SUBSYS_CFG_UI_STYLE_FIELD.has_default_value = false +SUBSYS_CFG_UI_STYLE_FIELD.default_value = 0 +SUBSYS_CFG_UI_STYLE_FIELD.type = 5 +SUBSYS_CFG_UI_STYLE_FIELD.cpp_type = 1 + +SUBSYS_CFG_NOTES_FIELD.name = "notes" +SUBSYS_CFG_NOTES_FIELD.full_name = ".ftcfg.subsys_cfg.notes" +SUBSYS_CFG_NOTES_FIELD.number = 6 +SUBSYS_CFG_NOTES_FIELD.index = 5 +SUBSYS_CFG_NOTES_FIELD.label = 2 +SUBSYS_CFG_NOTES_FIELD.has_default_value = false +SUBSYS_CFG_NOTES_FIELD.default_value = "" +SUBSYS_CFG_NOTES_FIELD.type = 9 +SUBSYS_CFG_NOTES_FIELD.cpp_type = 9 + +SUBSYS_CFG.name = "subsys_cfg" +SUBSYS_CFG.full_name = ".ftcfg.subsys_cfg" +SUBSYS_CFG.nested_types = {} +SUBSYS_CFG.enum_types = {} +SUBSYS_CFG.fields = {SUBSYS_CFG_ID_FIELD, SUBSYS_CFG_NAME_FIELD, SUBSYS_CFG_TITLE_ID_FIELD, SUBSYS_CFG_DESC_ID_FIELD, SUBSYS_CFG_UI_STYLE_FIELD, SUBSYS_CFG_NOTES_FIELD} +SUBSYS_CFG.is_extendable = false +SUBSYS_CFG.extensions = {} +SUBSYS_CFGS_ITEMS_FIELD.name = "items" +SUBSYS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.subsys_cfgs.items" +SUBSYS_CFGS_ITEMS_FIELD.number = 1 +SUBSYS_CFGS_ITEMS_FIELD.index = 0 +SUBSYS_CFGS_ITEMS_FIELD.label = 3 +SUBSYS_CFGS_ITEMS_FIELD.has_default_value = false +SUBSYS_CFGS_ITEMS_FIELD.default_value = {} +SUBSYS_CFGS_ITEMS_FIELD.message_type = SUBSYS_CFG +SUBSYS_CFGS_ITEMS_FIELD.type = 11 +SUBSYS_CFGS_ITEMS_FIELD.cpp_type = 10 + +SUBSYS_CFGS.name = "subsys_cfgs" +SUBSYS_CFGS.full_name = ".ftcfg.subsys_cfgs" +SUBSYS_CFGS.nested_types = {} +SUBSYS_CFGS.enum_types = {} +SUBSYS_CFGS.fields = {SUBSYS_CFGS_ITEMS_FIELD} +SUBSYS_CFGS.is_extendable = false +SUBSYS_CFGS.extensions = {} +BAG_ROUTINE_CFG_ID_FIELD.name = "id" +BAG_ROUTINE_CFG_ID_FIELD.full_name = ".ftcfg.bag_routine_cfg.id" +BAG_ROUTINE_CFG_ID_FIELD.number = 1 +BAG_ROUTINE_CFG_ID_FIELD.index = 0 +BAG_ROUTINE_CFG_ID_FIELD.label = 2 +BAG_ROUTINE_CFG_ID_FIELD.has_default_value = false +BAG_ROUTINE_CFG_ID_FIELD.default_value = 0 +BAG_ROUTINE_CFG_ID_FIELD.type = 13 +BAG_ROUTINE_CFG_ID_FIELD.cpp_type = 3 + +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.name = "bag_type" +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.full_name = ".ftcfg.bag_routine_cfg.bag_type" +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.number = 2 +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.index = 1 +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.label = 2 +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.has_default_value = false +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.default_value = 0 +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.type = 13 +BAG_ROUTINE_CFG_BAG_TYPE_FIELD.cpp_type = 3 + +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.name = "bag_initial" +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.full_name = ".ftcfg.bag_routine_cfg.bag_initial" +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.number = 3 +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.index = 2 +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.label = 2 +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.has_default_value = false +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.default_value = 0 +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.type = 13 +BAG_ROUTINE_CFG_BAG_INITIAL_FIELD.cpp_type = 3 + +BAG_ROUTINE_CFG_BAG_MAX_FIELD.name = "bag_max" +BAG_ROUTINE_CFG_BAG_MAX_FIELD.full_name = ".ftcfg.bag_routine_cfg.bag_max" +BAG_ROUTINE_CFG_BAG_MAX_FIELD.number = 4 +BAG_ROUTINE_CFG_BAG_MAX_FIELD.index = 3 +BAG_ROUTINE_CFG_BAG_MAX_FIELD.label = 2 +BAG_ROUTINE_CFG_BAG_MAX_FIELD.has_default_value = false +BAG_ROUTINE_CFG_BAG_MAX_FIELD.default_value = 0 +BAG_ROUTINE_CFG_BAG_MAX_FIELD.type = 13 +BAG_ROUTINE_CFG_BAG_MAX_FIELD.cpp_type = 3 + +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.name = "bag_openlevel" +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.full_name = ".ftcfg.bag_routine_cfg.bag_openlevel" +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.number = 5 +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.index = 4 +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.label = 2 +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.has_default_value = false +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.default_value = 0 +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.type = 5 +BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD.cpp_type = 1 + +BAG_ROUTINE_CFG.name = "bag_routine_cfg" +BAG_ROUTINE_CFG.full_name = ".ftcfg.bag_routine_cfg" +BAG_ROUTINE_CFG.nested_types = {} +BAG_ROUTINE_CFG.enum_types = {} +BAG_ROUTINE_CFG.fields = {BAG_ROUTINE_CFG_ID_FIELD, BAG_ROUTINE_CFG_BAG_TYPE_FIELD, BAG_ROUTINE_CFG_BAG_INITIAL_FIELD, BAG_ROUTINE_CFG_BAG_MAX_FIELD, BAG_ROUTINE_CFG_BAG_OPENLEVEL_FIELD} +BAG_ROUTINE_CFG.is_extendable = false +BAG_ROUTINE_CFG.extensions = {} +BAG_ROUTINE_CFGS_ITEMS_FIELD.name = "items" +BAG_ROUTINE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.bag_routine_cfgs.items" +BAG_ROUTINE_CFGS_ITEMS_FIELD.number = 1 +BAG_ROUTINE_CFGS_ITEMS_FIELD.index = 0 +BAG_ROUTINE_CFGS_ITEMS_FIELD.label = 3 +BAG_ROUTINE_CFGS_ITEMS_FIELD.has_default_value = false +BAG_ROUTINE_CFGS_ITEMS_FIELD.default_value = {} +BAG_ROUTINE_CFGS_ITEMS_FIELD.message_type = BAG_ROUTINE_CFG +BAG_ROUTINE_CFGS_ITEMS_FIELD.type = 11 +BAG_ROUTINE_CFGS_ITEMS_FIELD.cpp_type = 10 + +BAG_ROUTINE_CFGS.name = "bag_routine_cfgs" +BAG_ROUTINE_CFGS.full_name = ".ftcfg.bag_routine_cfgs" +BAG_ROUTINE_CFGS.nested_types = {} +BAG_ROUTINE_CFGS.enum_types = {} +BAG_ROUTINE_CFGS.fields = {BAG_ROUTINE_CFGS_ITEMS_FIELD} +BAG_ROUTINE_CFGS.is_extendable = false +BAG_ROUTINE_CFGS.extensions = {} +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.name = "unlock_count" +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.full_name = ".ftcfg.depot_unlock_cfg.unlock_count" +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.number = 1 +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.index = 0 +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.label = 2 +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.has_default_value = false +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.default_value = 0 +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.type = 13 +DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD.cpp_type = 3 + +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.name = "currency_type" +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.full_name = ".ftcfg.depot_unlock_cfg.currency_type" +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.number = 2 +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.index = 1 +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.label = 2 +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.has_default_value = false +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.default_value = 0 +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.type = 13 +DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD.cpp_type = 3 + +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.name = "currency_count" +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.full_name = ".ftcfg.depot_unlock_cfg.currency_count" +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.number = 3 +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.index = 2 +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.label = 2 +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.has_default_value = false +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.default_value = 0 +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.type = 5 +DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD.cpp_type = 1 + +DEPOT_UNLOCK_CFG.name = "depot_unlock_cfg" +DEPOT_UNLOCK_CFG.full_name = ".ftcfg.depot_unlock_cfg" +DEPOT_UNLOCK_CFG.nested_types = {} +DEPOT_UNLOCK_CFG.enum_types = {} +DEPOT_UNLOCK_CFG.fields = {DEPOT_UNLOCK_CFG_UNLOCK_COUNT_FIELD, DEPOT_UNLOCK_CFG_CURRENCY_TYPE_FIELD, DEPOT_UNLOCK_CFG_CURRENCY_COUNT_FIELD} +DEPOT_UNLOCK_CFG.is_extendable = false +DEPOT_UNLOCK_CFG.extensions = {} +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.name = "items" +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.full_name = ".ftcfg.depot_unlock_cfgs.items" +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.number = 1 +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.index = 0 +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.label = 3 +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.has_default_value = false +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.default_value = {} +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.message_type = DEPOT_UNLOCK_CFG +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.type = 11 +DEPOT_UNLOCK_CFGS_ITEMS_FIELD.cpp_type = 10 + +DEPOT_UNLOCK_CFGS.name = "depot_unlock_cfgs" +DEPOT_UNLOCK_CFGS.full_name = ".ftcfg.depot_unlock_cfgs" +DEPOT_UNLOCK_CFGS.nested_types = {} +DEPOT_UNLOCK_CFGS.enum_types = {} +DEPOT_UNLOCK_CFGS.fields = {DEPOT_UNLOCK_CFGS_ITEMS_FIELD} +DEPOT_UNLOCK_CFGS.is_extendable = false +DEPOT_UNLOCK_CFGS.extensions = {} +ROLE_PARTS_CFG_ID_FIELD.name = "id" +ROLE_PARTS_CFG_ID_FIELD.full_name = ".ftcfg.role_parts_cfg.id" +ROLE_PARTS_CFG_ID_FIELD.number = 1 +ROLE_PARTS_CFG_ID_FIELD.index = 0 +ROLE_PARTS_CFG_ID_FIELD.label = 2 +ROLE_PARTS_CFG_ID_FIELD.has_default_value = false +ROLE_PARTS_CFG_ID_FIELD.default_value = 0 +ROLE_PARTS_CFG_ID_FIELD.type = 5 +ROLE_PARTS_CFG_ID_FIELD.cpp_type = 1 + +ROLE_PARTS_CFG_NAME_ID_FIELD.name = "name_id" +ROLE_PARTS_CFG_NAME_ID_FIELD.full_name = ".ftcfg.role_parts_cfg.name_id" +ROLE_PARTS_CFG_NAME_ID_FIELD.number = 2 +ROLE_PARTS_CFG_NAME_ID_FIELD.index = 1 +ROLE_PARTS_CFG_NAME_ID_FIELD.label = 2 +ROLE_PARTS_CFG_NAME_ID_FIELD.has_default_value = false +ROLE_PARTS_CFG_NAME_ID_FIELD.default_value = 0 +ROLE_PARTS_CFG_NAME_ID_FIELD.type = 5 +ROLE_PARTS_CFG_NAME_ID_FIELD.cpp_type = 1 + +ROLE_PARTS_CFG_SLOT_FIELD.name = "slot" +ROLE_PARTS_CFG_SLOT_FIELD.full_name = ".ftcfg.role_parts_cfg.slot" +ROLE_PARTS_CFG_SLOT_FIELD.number = 3 +ROLE_PARTS_CFG_SLOT_FIELD.index = 2 +ROLE_PARTS_CFG_SLOT_FIELD.label = 2 +ROLE_PARTS_CFG_SLOT_FIELD.has_default_value = false +ROLE_PARTS_CFG_SLOT_FIELD.default_value = 0 +ROLE_PARTS_CFG_SLOT_FIELD.type = 5 +ROLE_PARTS_CFG_SLOT_FIELD.cpp_type = 1 + +ROLE_PARTS_CFG_RES_ID_FIELD.name = "res_id" +ROLE_PARTS_CFG_RES_ID_FIELD.full_name = ".ftcfg.role_parts_cfg.res_id" +ROLE_PARTS_CFG_RES_ID_FIELD.number = 4 +ROLE_PARTS_CFG_RES_ID_FIELD.index = 3 +ROLE_PARTS_CFG_RES_ID_FIELD.label = 2 +ROLE_PARTS_CFG_RES_ID_FIELD.has_default_value = false +ROLE_PARTS_CFG_RES_ID_FIELD.default_value = 0 +ROLE_PARTS_CFG_RES_ID_FIELD.type = 5 +ROLE_PARTS_CFG_RES_ID_FIELD.cpp_type = 1 + +ROLE_PARTS_CFG.name = "role_parts_cfg" +ROLE_PARTS_CFG.full_name = ".ftcfg.role_parts_cfg" +ROLE_PARTS_CFG.nested_types = {} +ROLE_PARTS_CFG.enum_types = {} +ROLE_PARTS_CFG.fields = {ROLE_PARTS_CFG_ID_FIELD, ROLE_PARTS_CFG_NAME_ID_FIELD, ROLE_PARTS_CFG_SLOT_FIELD, ROLE_PARTS_CFG_RES_ID_FIELD} +ROLE_PARTS_CFG.is_extendable = false +ROLE_PARTS_CFG.extensions = {} +ROLE_PARTS_CFGS_ITEMS_FIELD.name = "items" +ROLE_PARTS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.role_parts_cfgs.items" +ROLE_PARTS_CFGS_ITEMS_FIELD.number = 1 +ROLE_PARTS_CFGS_ITEMS_FIELD.index = 0 +ROLE_PARTS_CFGS_ITEMS_FIELD.label = 3 +ROLE_PARTS_CFGS_ITEMS_FIELD.has_default_value = false +ROLE_PARTS_CFGS_ITEMS_FIELD.default_value = {} +ROLE_PARTS_CFGS_ITEMS_FIELD.message_type = ROLE_PARTS_CFG +ROLE_PARTS_CFGS_ITEMS_FIELD.type = 11 +ROLE_PARTS_CFGS_ITEMS_FIELD.cpp_type = 10 + +ROLE_PARTS_CFGS.name = "role_parts_cfgs" +ROLE_PARTS_CFGS.full_name = ".ftcfg.role_parts_cfgs" +ROLE_PARTS_CFGS.nested_types = {} +ROLE_PARTS_CFGS.enum_types = {} +ROLE_PARTS_CFGS.fields = {ROLE_PARTS_CFGS_ITEMS_FIELD} +ROLE_PARTS_CFGS.is_extendable = false +ROLE_PARTS_CFGS.extensions = {} +SUPPRESS_CFG_SCENE_ID_FIELD.name = "scene_id" +SUPPRESS_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.suppress_cfg.scene_id" +SUPPRESS_CFG_SCENE_ID_FIELD.number = 1 +SUPPRESS_CFG_SCENE_ID_FIELD.index = 0 +SUPPRESS_CFG_SCENE_ID_FIELD.label = 2 +SUPPRESS_CFG_SCENE_ID_FIELD.has_default_value = false +SUPPRESS_CFG_SCENE_ID_FIELD.default_value = 0 +SUPPRESS_CFG_SCENE_ID_FIELD.type = 5 +SUPPRESS_CFG_SCENE_ID_FIELD.cpp_type = 1 + +SUPPRESS_CFG_FIT_LVL_FIELD.name = "fit_lvl" +SUPPRESS_CFG_FIT_LVL_FIELD.full_name = ".ftcfg.suppress_cfg.fit_lvl" +SUPPRESS_CFG_FIT_LVL_FIELD.number = 2 +SUPPRESS_CFG_FIT_LVL_FIELD.index = 1 +SUPPRESS_CFG_FIT_LVL_FIELD.label = 3 +SUPPRESS_CFG_FIT_LVL_FIELD.has_default_value = false +SUPPRESS_CFG_FIT_LVL_FIELD.default_value = {} +SUPPRESS_CFG_FIT_LVL_FIELD.type = 5 +SUPPRESS_CFG_FIT_LVL_FIELD.cpp_type = 1 + +SUPPRESS_CFG_GROUP_COUNT_FIELD.name = "group_count" +SUPPRESS_CFG_GROUP_COUNT_FIELD.full_name = ".ftcfg.suppress_cfg.group_count" +SUPPRESS_CFG_GROUP_COUNT_FIELD.number = 3 +SUPPRESS_CFG_GROUP_COUNT_FIELD.index = 2 +SUPPRESS_CFG_GROUP_COUNT_FIELD.label = 3 +SUPPRESS_CFG_GROUP_COUNT_FIELD.has_default_value = false +SUPPRESS_CFG_GROUP_COUNT_FIELD.default_value = {} +SUPPRESS_CFG_GROUP_COUNT_FIELD.type = 5 +SUPPRESS_CFG_GROUP_COUNT_FIELD.cpp_type = 1 + +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.name = "kill_bos_chest" +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.full_name = ".ftcfg.suppress_cfg.kill_bos_chest" +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.number = 4 +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.index = 3 +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.label = 3 +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.has_default_value = false +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.default_value = {} +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.type = 5 +SUPPRESS_CFG_KILL_BOS_CHEST_FIELD.cpp_type = 1 + +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.name = "boss_map_signsid" +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.full_name = ".ftcfg.suppress_cfg.boss_map_signsid" +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.number = 5 +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.index = 4 +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.label = 3 +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.has_default_value = false +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.default_value = {} +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.type = 5 +SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD.cpp_type = 1 + +SUPPRESS_CFG.name = "suppress_cfg" +SUPPRESS_CFG.full_name = ".ftcfg.suppress_cfg" +SUPPRESS_CFG.nested_types = {} +SUPPRESS_CFG.enum_types = {} +SUPPRESS_CFG.fields = {SUPPRESS_CFG_SCENE_ID_FIELD, SUPPRESS_CFG_FIT_LVL_FIELD, SUPPRESS_CFG_GROUP_COUNT_FIELD, SUPPRESS_CFG_KILL_BOS_CHEST_FIELD, SUPPRESS_CFG_BOSS_MAP_SIGNSID_FIELD} +SUPPRESS_CFG.is_extendable = false +SUPPRESS_CFG.extensions = {} +SUPPRESS_CFGS_ITEMS_FIELD.name = "items" +SUPPRESS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.suppress_cfgs.items" +SUPPRESS_CFGS_ITEMS_FIELD.number = 1 +SUPPRESS_CFGS_ITEMS_FIELD.index = 0 +SUPPRESS_CFGS_ITEMS_FIELD.label = 3 +SUPPRESS_CFGS_ITEMS_FIELD.has_default_value = false +SUPPRESS_CFGS_ITEMS_FIELD.default_value = {} +SUPPRESS_CFGS_ITEMS_FIELD.message_type = SUPPRESS_CFG +SUPPRESS_CFGS_ITEMS_FIELD.type = 11 +SUPPRESS_CFGS_ITEMS_FIELD.cpp_type = 10 + +SUPPRESS_CFGS.name = "suppress_cfgs" +SUPPRESS_CFGS.full_name = ".ftcfg.suppress_cfgs" +SUPPRESS_CFGS.nested_types = {} +SUPPRESS_CFGS.enum_types = {} +SUPPRESS_CFGS.fields = {SUPPRESS_CFGS_ITEMS_FIELD} +SUPPRESS_CFGS.is_extendable = false +SUPPRESS_CFGS.extensions = {} +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.name = "scene_id" +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.suppress_group_cfg.scene_id" +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.number = 1 +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.index = 0 +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.label = 2 +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.has_default_value = false +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.default_value = 0 +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.type = 5 +SUPPRESS_GROUP_CFG_SCENE_ID_FIELD.cpp_type = 1 + +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.name = "refresh_num" +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.full_name = ".ftcfg.suppress_group_cfg.refresh_num" +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.number = 2 +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.index = 1 +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.label = 2 +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.has_default_value = false +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.default_value = 0 +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.type = 5 +SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD.cpp_type = 1 + +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.name = "monster_map_signsid" +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.full_name = ".ftcfg.suppress_group_cfg.monster_map_signsid" +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.number = 3 +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.index = 2 +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.label = 3 +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.has_default_value = false +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.default_value = {} +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.type = 5 +SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD.cpp_type = 1 + +SUPPRESS_GROUP_CFG.name = "suppress_group_cfg" +SUPPRESS_GROUP_CFG.full_name = ".ftcfg.suppress_group_cfg" +SUPPRESS_GROUP_CFG.nested_types = {} +SUPPRESS_GROUP_CFG.enum_types = {} +SUPPRESS_GROUP_CFG.fields = {SUPPRESS_GROUP_CFG_SCENE_ID_FIELD, SUPPRESS_GROUP_CFG_REFRESH_NUM_FIELD, SUPPRESS_GROUP_CFG_MONSTER_MAP_SIGNSID_FIELD} +SUPPRESS_GROUP_CFG.is_extendable = false +SUPPRESS_GROUP_CFG.extensions = {} +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.name = "items" +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.suppress_group_cfgs.items" +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.number = 1 +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.index = 0 +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.label = 3 +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.has_default_value = false +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.default_value = {} +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.message_type = SUPPRESS_GROUP_CFG +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.type = 11 +SUPPRESS_GROUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +SUPPRESS_GROUP_CFGS.name = "suppress_group_cfgs" +SUPPRESS_GROUP_CFGS.full_name = ".ftcfg.suppress_group_cfgs" +SUPPRESS_GROUP_CFGS.nested_types = {} +SUPPRESS_GROUP_CFGS.enum_types = {} +SUPPRESS_GROUP_CFGS.fields = {SUPPRESS_GROUP_CFGS_ITEMS_FIELD} +SUPPRESS_GROUP_CFGS.is_extendable = false +SUPPRESS_GROUP_CFGS.extensions = {} +UI_CONTRIBUTION_CFG_ID_FIELD.name = "id" +UI_CONTRIBUTION_CFG_ID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.id" +UI_CONTRIBUTION_CFG_ID_FIELD.number = 1 +UI_CONTRIBUTION_CFG_ID_FIELD.index = 0 +UI_CONTRIBUTION_CFG_ID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_ID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_ID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_ID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_ID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_TITLEID_FIELD.name = "titleid" +UI_CONTRIBUTION_CFG_TITLEID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.titleid" +UI_CONTRIBUTION_CFG_TITLEID_FIELD.number = 2 +UI_CONTRIBUTION_CFG_TITLEID_FIELD.index = 1 +UI_CONTRIBUTION_CFG_TITLEID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_TITLEID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_TITLEID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_TITLEID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_TITLEID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_TYPE_FIELD.name = "type" +UI_CONTRIBUTION_CFG_TYPE_FIELD.full_name = ".ftcfg.ui_contribution_cfg.type" +UI_CONTRIBUTION_CFG_TYPE_FIELD.number = 3 +UI_CONTRIBUTION_CFG_TYPE_FIELD.index = 2 +UI_CONTRIBUTION_CFG_TYPE_FIELD.label = 2 +UI_CONTRIBUTION_CFG_TYPE_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_TYPE_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_TYPE_FIELD.type = 5 +UI_CONTRIBUTION_CFG_TYPE_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.name = "imageid" +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.imageid" +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.number = 4 +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.index = 3 +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_IMAGEID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.name = "subtitle_1id" +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.subtitle_1id" +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.number = 5 +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.index = 4 +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.name = "subtitle_2id" +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.subtitle_2id" +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.number = 6 +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.index = 5 +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_ATLASID_FIELD.name = "atlasid" +UI_CONTRIBUTION_CFG_ATLASID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.atlasid" +UI_CONTRIBUTION_CFG_ATLASID_FIELD.number = 7 +UI_CONTRIBUTION_CFG_ATLASID_FIELD.index = 6 +UI_CONTRIBUTION_CFG_ATLASID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_ATLASID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_ATLASID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_ATLASID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_ATLASID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.name = "iconname" +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.full_name = ".ftcfg.ui_contribution_cfg.iconname" +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.number = 8 +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.index = 7 +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.label = 2 +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.default_value = "" +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.type = 9 +UI_CONTRIBUTION_CFG_ICONNAME_FIELD.cpp_type = 9 + +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.name = "btntextid" +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.btntextid" +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.number = 9 +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.index = 8 +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG_TIPSID_FIELD.name = "tipsid" +UI_CONTRIBUTION_CFG_TIPSID_FIELD.full_name = ".ftcfg.ui_contribution_cfg.tipsid" +UI_CONTRIBUTION_CFG_TIPSID_FIELD.number = 10 +UI_CONTRIBUTION_CFG_TIPSID_FIELD.index = 9 +UI_CONTRIBUTION_CFG_TIPSID_FIELD.label = 2 +UI_CONTRIBUTION_CFG_TIPSID_FIELD.has_default_value = false +UI_CONTRIBUTION_CFG_TIPSID_FIELD.default_value = 0 +UI_CONTRIBUTION_CFG_TIPSID_FIELD.type = 5 +UI_CONTRIBUTION_CFG_TIPSID_FIELD.cpp_type = 1 + +UI_CONTRIBUTION_CFG.name = "ui_contribution_cfg" +UI_CONTRIBUTION_CFG.full_name = ".ftcfg.ui_contribution_cfg" +UI_CONTRIBUTION_CFG.nested_types = {} +UI_CONTRIBUTION_CFG.enum_types = {} +UI_CONTRIBUTION_CFG.fields = {UI_CONTRIBUTION_CFG_ID_FIELD, UI_CONTRIBUTION_CFG_TITLEID_FIELD, UI_CONTRIBUTION_CFG_TYPE_FIELD, UI_CONTRIBUTION_CFG_IMAGEID_FIELD, UI_CONTRIBUTION_CFG_SUBTITLE_1ID_FIELD, UI_CONTRIBUTION_CFG_SUBTITLE_2ID_FIELD, UI_CONTRIBUTION_CFG_ATLASID_FIELD, UI_CONTRIBUTION_CFG_ICONNAME_FIELD, UI_CONTRIBUTION_CFG_BTNTEXTID_FIELD, UI_CONTRIBUTION_CFG_TIPSID_FIELD} +UI_CONTRIBUTION_CFG.is_extendable = false +UI_CONTRIBUTION_CFG.extensions = {} +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.name = "items" +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.ui_contribution_cfgs.items" +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.number = 1 +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.index = 0 +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.label = 3 +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.has_default_value = false +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.default_value = {} +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.message_type = UI_CONTRIBUTION_CFG +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.type = 11 +UI_CONTRIBUTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +UI_CONTRIBUTION_CFGS.name = "ui_contribution_cfgs" +UI_CONTRIBUTION_CFGS.full_name = ".ftcfg.ui_contribution_cfgs" +UI_CONTRIBUTION_CFGS.nested_types = {} +UI_CONTRIBUTION_CFGS.enum_types = {} +UI_CONTRIBUTION_CFGS.fields = {UI_CONTRIBUTION_CFGS_ITEMS_FIELD} +UI_CONTRIBUTION_CFGS.is_extendable = false +UI_CONTRIBUTION_CFGS.extensions = {} +ACTIVITY_DUNGEON_CFG_ID_FIELD.name = "id" +ACTIVITY_DUNGEON_CFG_ID_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.id" +ACTIVITY_DUNGEON_CFG_ID_FIELD.number = 1 +ACTIVITY_DUNGEON_CFG_ID_FIELD.index = 0 +ACTIVITY_DUNGEON_CFG_ID_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_ID_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_ID_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_ID_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_ID_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.name = "resouce_name" +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.resouce_name" +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.number = 2 +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.index = 1 +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.default_value = "" +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.type = 9 +ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD.cpp_type = 9 + +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.name = "type" +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.type" +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.number = 3 +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.index = 2 +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_TYPE_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.name = "level_limit" +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.level_limit" +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.number = 4 +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.index = 3 +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.name = "map_id" +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.map_id" +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.number = 5 +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.index = 4 +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.name = "map_name" +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.map_name" +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.number = 6 +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.index = 5 +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.default_value = "" +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.type = 9 +ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD.cpp_type = 9 + +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.name = "map_imgid" +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.map_imgid" +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.number = 7 +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.index = 6 +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.name = "recommend_fightvalue" +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.recommend_fightvalue" +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.number = 8 +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.index = 7 +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.name = "low_fightvalue" +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.low_fightvalue" +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.number = 9 +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.index = 8 +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.name = "advanced_item" +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.advanced_item" +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.number = 10 +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.index = 9 +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.type = 13 +ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD.cpp_type = 3 + +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.name = "normal_item" +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.normal_item" +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.number = 11 +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.index = 10 +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.type = 13 +ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD.cpp_type = 3 + +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.name = "times" +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.times" +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.number = 12 +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.index = 11 +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_TIMES_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.name = "isonlycaptain" +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.isonlycaptain" +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.number = 13 +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.index = 12 +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.name = "wait_time" +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.wait_time" +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.number = 14 +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.index = 13 +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.name = "alonerewards" +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.alonerewards" +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.number = 15 +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.index = 14 +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.label = 3 +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.default_value = {} +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.type = 13 +ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD.cpp_type = 3 + +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.name = "teamrewards" +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.teamrewards" +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.number = 16 +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.index = 15 +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.label = 3 +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.default_value = {} +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.type = 13 +ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD.cpp_type = 3 + +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.name = "max_timer" +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.max_timer" +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.number = 17 +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.index = 16 +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.name = "max_wave" +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.max_wave" +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.number = 18 +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.index = 17 +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.label = 2 +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.default_value = 0 +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.type = 5 +ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD.cpp_type = 1 + +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.name = "money_posx" +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.money_posx" +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.number = 19 +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.index = 18 +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.label = 3 +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.default_value = {} +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.type = 2 +ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD.cpp_type = 6 + +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.name = "money_posy" +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.money_posy" +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.number = 20 +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.index = 19 +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.label = 3 +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.default_value = {} +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.type = 2 +ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD.cpp_type = 6 + +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.name = "money_posz" +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.full_name = ".ftcfg.activity_dungeon_cfg.money_posz" +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.number = 21 +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.index = 20 +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.label = 3 +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.default_value = {} +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.type = 2 +ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD.cpp_type = 6 + +ACTIVITY_DUNGEON_CFG.name = "activity_dungeon_cfg" +ACTIVITY_DUNGEON_CFG.full_name = ".ftcfg.activity_dungeon_cfg" +ACTIVITY_DUNGEON_CFG.nested_types = {} +ACTIVITY_DUNGEON_CFG.enum_types = {} +ACTIVITY_DUNGEON_CFG.fields = {ACTIVITY_DUNGEON_CFG_ID_FIELD, ACTIVITY_DUNGEON_CFG_RESOUCE_NAME_FIELD, ACTIVITY_DUNGEON_CFG_TYPE_FIELD, ACTIVITY_DUNGEON_CFG_LEVEL_LIMIT_FIELD, ACTIVITY_DUNGEON_CFG_MAP_ID_FIELD, ACTIVITY_DUNGEON_CFG_MAP_NAME_FIELD, ACTIVITY_DUNGEON_CFG_MAP_IMGID_FIELD, ACTIVITY_DUNGEON_CFG_RECOMMEND_FIGHTVALUE_FIELD, ACTIVITY_DUNGEON_CFG_LOW_FIGHTVALUE_FIELD, ACTIVITY_DUNGEON_CFG_ADVANCED_ITEM_FIELD, ACTIVITY_DUNGEON_CFG_NORMAL_ITEM_FIELD, ACTIVITY_DUNGEON_CFG_TIMES_FIELD, ACTIVITY_DUNGEON_CFG_ISONLYCAPTAIN_FIELD, ACTIVITY_DUNGEON_CFG_WAIT_TIME_FIELD, ACTIVITY_DUNGEON_CFG_ALONEREWARDS_FIELD, ACTIVITY_DUNGEON_CFG_TEAMREWARDS_FIELD, ACTIVITY_DUNGEON_CFG_MAX_TIMER_FIELD, ACTIVITY_DUNGEON_CFG_MAX_WAVE_FIELD, ACTIVITY_DUNGEON_CFG_MONEY_POSX_FIELD, ACTIVITY_DUNGEON_CFG_MONEY_POSY_FIELD, ACTIVITY_DUNGEON_CFG_MONEY_POSZ_FIELD} +ACTIVITY_DUNGEON_CFG.is_extendable = false +ACTIVITY_DUNGEON_CFG.extensions = {} +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.name = "items" +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.full_name = ".ftcfg.activity_dungeon_cfgs.items" +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.number = 1 +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.index = 0 +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.label = 3 +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.has_default_value = false +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.default_value = {} +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.message_type = ACTIVITY_DUNGEON_CFG +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.type = 11 +ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD.cpp_type = 10 + +ACTIVITY_DUNGEON_CFGS.name = "activity_dungeon_cfgs" +ACTIVITY_DUNGEON_CFGS.full_name = ".ftcfg.activity_dungeon_cfgs" +ACTIVITY_DUNGEON_CFGS.nested_types = {} +ACTIVITY_DUNGEON_CFGS.enum_types = {} +ACTIVITY_DUNGEON_CFGS.fields = {ACTIVITY_DUNGEON_CFGS_ITEMS_FIELD} +ACTIVITY_DUNGEON_CFGS.is_extendable = false +ACTIVITY_DUNGEON_CFGS.extensions = {} +RESOURCE_COMPUND_CFG_ID_FIELD.name = "id" +RESOURCE_COMPUND_CFG_ID_FIELD.full_name = ".ftcfg.resource_compund_cfg.id" +RESOURCE_COMPUND_CFG_ID_FIELD.number = 1 +RESOURCE_COMPUND_CFG_ID_FIELD.index = 0 +RESOURCE_COMPUND_CFG_ID_FIELD.label = 2 +RESOURCE_COMPUND_CFG_ID_FIELD.has_default_value = false +RESOURCE_COMPUND_CFG_ID_FIELD.default_value = 0 +RESOURCE_COMPUND_CFG_ID_FIELD.type = 13 +RESOURCE_COMPUND_CFG_ID_FIELD.cpp_type = 3 + +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.name = "need_item_num" +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.full_name = ".ftcfg.resource_compund_cfg.need_item_num" +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.number = 2 +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.index = 1 +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.label = 2 +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.has_default_value = false +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.default_value = 0 +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.type = 5 +RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD.cpp_type = 1 + +RESOURCE_COMPUND_CFG.name = "resource_compund_cfg" +RESOURCE_COMPUND_CFG.full_name = ".ftcfg.resource_compund_cfg" +RESOURCE_COMPUND_CFG.nested_types = {} +RESOURCE_COMPUND_CFG.enum_types = {} +RESOURCE_COMPUND_CFG.fields = {RESOURCE_COMPUND_CFG_ID_FIELD, RESOURCE_COMPUND_CFG_NEED_ITEM_NUM_FIELD} +RESOURCE_COMPUND_CFG.is_extendable = false +RESOURCE_COMPUND_CFG.extensions = {} +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.name = "items" +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.full_name = ".ftcfg.resource_compund_cfgs.items" +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.number = 1 +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.index = 0 +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.label = 3 +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.has_default_value = false +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.default_value = {} +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.message_type = RESOURCE_COMPUND_CFG +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.type = 11 +RESOURCE_COMPUND_CFGS_ITEMS_FIELD.cpp_type = 10 + +RESOURCE_COMPUND_CFGS.name = "resource_compund_cfgs" +RESOURCE_COMPUND_CFGS.full_name = ".ftcfg.resource_compund_cfgs" +RESOURCE_COMPUND_CFGS.nested_types = {} +RESOURCE_COMPUND_CFGS.enum_types = {} +RESOURCE_COMPUND_CFGS.fields = {RESOURCE_COMPUND_CFGS_ITEMS_FIELD} +RESOURCE_COMPUND_CFGS.is_extendable = false +RESOURCE_COMPUND_CFGS.extensions = {} +ROUTE_MARK_CFG_ID_FIELD.name = "id" +ROUTE_MARK_CFG_ID_FIELD.full_name = ".ftcfg.route_mark_cfg.id" +ROUTE_MARK_CFG_ID_FIELD.number = 1 +ROUTE_MARK_CFG_ID_FIELD.index = 0 +ROUTE_MARK_CFG_ID_FIELD.label = 2 +ROUTE_MARK_CFG_ID_FIELD.has_default_value = false +ROUTE_MARK_CFG_ID_FIELD.default_value = 0 +ROUTE_MARK_CFG_ID_FIELD.type = 5 +ROUTE_MARK_CFG_ID_FIELD.cpp_type = 1 + +ROUTE_MARK_CFG_MODEL_ID_FIELD.name = "model_id" +ROUTE_MARK_CFG_MODEL_ID_FIELD.full_name = ".ftcfg.route_mark_cfg.model_id" +ROUTE_MARK_CFG_MODEL_ID_FIELD.number = 2 +ROUTE_MARK_CFG_MODEL_ID_FIELD.index = 1 +ROUTE_MARK_CFG_MODEL_ID_FIELD.label = 2 +ROUTE_MARK_CFG_MODEL_ID_FIELD.has_default_value = false +ROUTE_MARK_CFG_MODEL_ID_FIELD.default_value = 0 +ROUTE_MARK_CFG_MODEL_ID_FIELD.type = 5 +ROUTE_MARK_CFG_MODEL_ID_FIELD.cpp_type = 1 + +ROUTE_MARK_CFG_SCENE_ID_FIELD.name = "scene_id" +ROUTE_MARK_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.route_mark_cfg.scene_id" +ROUTE_MARK_CFG_SCENE_ID_FIELD.number = 3 +ROUTE_MARK_CFG_SCENE_ID_FIELD.index = 2 +ROUTE_MARK_CFG_SCENE_ID_FIELD.label = 2 +ROUTE_MARK_CFG_SCENE_ID_FIELD.has_default_value = false +ROUTE_MARK_CFG_SCENE_ID_FIELD.default_value = 0 +ROUTE_MARK_CFG_SCENE_ID_FIELD.type = 5 +ROUTE_MARK_CFG_SCENE_ID_FIELD.cpp_type = 1 + +ROUTE_MARK_CFG_POS_X_FIELD.name = "pos_x" +ROUTE_MARK_CFG_POS_X_FIELD.full_name = ".ftcfg.route_mark_cfg.pos_x" +ROUTE_MARK_CFG_POS_X_FIELD.number = 4 +ROUTE_MARK_CFG_POS_X_FIELD.index = 3 +ROUTE_MARK_CFG_POS_X_FIELD.label = 2 +ROUTE_MARK_CFG_POS_X_FIELD.has_default_value = false +ROUTE_MARK_CFG_POS_X_FIELD.default_value = 0 +ROUTE_MARK_CFG_POS_X_FIELD.type = 5 +ROUTE_MARK_CFG_POS_X_FIELD.cpp_type = 1 + +ROUTE_MARK_CFG_POS_Y_FIELD.name = "pos_y" +ROUTE_MARK_CFG_POS_Y_FIELD.full_name = ".ftcfg.route_mark_cfg.pos_y" +ROUTE_MARK_CFG_POS_Y_FIELD.number = 5 +ROUTE_MARK_CFG_POS_Y_FIELD.index = 4 +ROUTE_MARK_CFG_POS_Y_FIELD.label = 2 +ROUTE_MARK_CFG_POS_Y_FIELD.has_default_value = false +ROUTE_MARK_CFG_POS_Y_FIELD.default_value = 0 +ROUTE_MARK_CFG_POS_Y_FIELD.type = 5 +ROUTE_MARK_CFG_POS_Y_FIELD.cpp_type = 1 + +ROUTE_MARK_CFG_POS_Z_FIELD.name = "pos_z" +ROUTE_MARK_CFG_POS_Z_FIELD.full_name = ".ftcfg.route_mark_cfg.pos_z" +ROUTE_MARK_CFG_POS_Z_FIELD.number = 6 +ROUTE_MARK_CFG_POS_Z_FIELD.index = 5 +ROUTE_MARK_CFG_POS_Z_FIELD.label = 2 +ROUTE_MARK_CFG_POS_Z_FIELD.has_default_value = false +ROUTE_MARK_CFG_POS_Z_FIELD.default_value = 0 +ROUTE_MARK_CFG_POS_Z_FIELD.type = 5 +ROUTE_MARK_CFG_POS_Z_FIELD.cpp_type = 1 + +ROUTE_MARK_CFG.name = "route_mark_cfg" +ROUTE_MARK_CFG.full_name = ".ftcfg.route_mark_cfg" +ROUTE_MARK_CFG.nested_types = {} +ROUTE_MARK_CFG.enum_types = {} +ROUTE_MARK_CFG.fields = {ROUTE_MARK_CFG_ID_FIELD, ROUTE_MARK_CFG_MODEL_ID_FIELD, ROUTE_MARK_CFG_SCENE_ID_FIELD, ROUTE_MARK_CFG_POS_X_FIELD, ROUTE_MARK_CFG_POS_Y_FIELD, ROUTE_MARK_CFG_POS_Z_FIELD} +ROUTE_MARK_CFG.is_extendable = false +ROUTE_MARK_CFG.extensions = {} +ROUTE_MARK_CFGS_ITEMS_FIELD.name = "items" +ROUTE_MARK_CFGS_ITEMS_FIELD.full_name = ".ftcfg.route_mark_cfgs.items" +ROUTE_MARK_CFGS_ITEMS_FIELD.number = 1 +ROUTE_MARK_CFGS_ITEMS_FIELD.index = 0 +ROUTE_MARK_CFGS_ITEMS_FIELD.label = 3 +ROUTE_MARK_CFGS_ITEMS_FIELD.has_default_value = false +ROUTE_MARK_CFGS_ITEMS_FIELD.default_value = {} +ROUTE_MARK_CFGS_ITEMS_FIELD.message_type = ROUTE_MARK_CFG +ROUTE_MARK_CFGS_ITEMS_FIELD.type = 11 +ROUTE_MARK_CFGS_ITEMS_FIELD.cpp_type = 10 + +ROUTE_MARK_CFGS.name = "route_mark_cfgs" +ROUTE_MARK_CFGS.full_name = ".ftcfg.route_mark_cfgs" +ROUTE_MARK_CFGS.nested_types = {} +ROUTE_MARK_CFGS.enum_types = {} +ROUTE_MARK_CFGS.fields = {ROUTE_MARK_CFGS_ITEMS_FIELD} +ROUTE_MARK_CFGS.is_extendable = false +ROUTE_MARK_CFGS.extensions = {} +JUMP_CFG_ID_FIELD.name = "id" +JUMP_CFG_ID_FIELD.full_name = ".ftcfg.jump_cfg.id" +JUMP_CFG_ID_FIELD.number = 1 +JUMP_CFG_ID_FIELD.index = 0 +JUMP_CFG_ID_FIELD.label = 2 +JUMP_CFG_ID_FIELD.has_default_value = false +JUMP_CFG_ID_FIELD.default_value = 0 +JUMP_CFG_ID_FIELD.type = 5 +JUMP_CFG_ID_FIELD.cpp_type = 1 + +JUMP_CFG_WAY_POINTS_FIELD.name = "way_points" +JUMP_CFG_WAY_POINTS_FIELD.full_name = ".ftcfg.jump_cfg.way_points" +JUMP_CFG_WAY_POINTS_FIELD.number = 2 +JUMP_CFG_WAY_POINTS_FIELD.index = 1 +JUMP_CFG_WAY_POINTS_FIELD.label = 3 +JUMP_CFG_WAY_POINTS_FIELD.has_default_value = false +JUMP_CFG_WAY_POINTS_FIELD.default_value = {} +JUMP_CFG_WAY_POINTS_FIELD.type = 2 +JUMP_CFG_WAY_POINTS_FIELD.cpp_type = 6 + +JUMP_CFG_JUMP_ACTION_ID_FIELD.name = "jump_action_id" +JUMP_CFG_JUMP_ACTION_ID_FIELD.full_name = ".ftcfg.jump_cfg.jump_action_id" +JUMP_CFG_JUMP_ACTION_ID_FIELD.number = 3 +JUMP_CFG_JUMP_ACTION_ID_FIELD.index = 2 +JUMP_CFG_JUMP_ACTION_ID_FIELD.label = 3 +JUMP_CFG_JUMP_ACTION_ID_FIELD.has_default_value = false +JUMP_CFG_JUMP_ACTION_ID_FIELD.default_value = {} +JUMP_CFG_JUMP_ACTION_ID_FIELD.type = 5 +JUMP_CFG_JUMP_ACTION_ID_FIELD.cpp_type = 1 + +JUMP_CFG.name = "jump_cfg" +JUMP_CFG.full_name = ".ftcfg.jump_cfg" +JUMP_CFG.nested_types = {} +JUMP_CFG.enum_types = {} +JUMP_CFG.fields = {JUMP_CFG_ID_FIELD, JUMP_CFG_WAY_POINTS_FIELD, JUMP_CFG_JUMP_ACTION_ID_FIELD} +JUMP_CFG.is_extendable = false +JUMP_CFG.extensions = {} +JUMP_CFGS_ITEMS_FIELD.name = "items" +JUMP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.jump_cfgs.items" +JUMP_CFGS_ITEMS_FIELD.number = 1 +JUMP_CFGS_ITEMS_FIELD.index = 0 +JUMP_CFGS_ITEMS_FIELD.label = 3 +JUMP_CFGS_ITEMS_FIELD.has_default_value = false +JUMP_CFGS_ITEMS_FIELD.default_value = {} +JUMP_CFGS_ITEMS_FIELD.message_type = JUMP_CFG +JUMP_CFGS_ITEMS_FIELD.type = 11 +JUMP_CFGS_ITEMS_FIELD.cpp_type = 10 + +JUMP_CFGS.name = "jump_cfgs" +JUMP_CFGS.full_name = ".ftcfg.jump_cfgs" +JUMP_CFGS.nested_types = {} +JUMP_CFGS.enum_types = {} +JUMP_CFGS.fields = {JUMP_CFGS_ITEMS_FIELD} +JUMP_CFGS.is_extendable = false +JUMP_CFGS.extensions = {} +JUMP_ACTION_CFG_ID_FIELD.name = "id" +JUMP_ACTION_CFG_ID_FIELD.full_name = ".ftcfg.jump_action_cfg.id" +JUMP_ACTION_CFG_ID_FIELD.number = 1 +JUMP_ACTION_CFG_ID_FIELD.index = 0 +JUMP_ACTION_CFG_ID_FIELD.label = 2 +JUMP_ACTION_CFG_ID_FIELD.has_default_value = false +JUMP_ACTION_CFG_ID_FIELD.default_value = 0 +JUMP_ACTION_CFG_ID_FIELD.type = 5 +JUMP_ACTION_CFG_ID_FIELD.cpp_type = 1 + +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.name = "animation_name" +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.full_name = ".ftcfg.jump_action_cfg.animation_name" +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.number = 2 +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.index = 1 +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.label = 2 +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.has_default_value = false +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.default_value = "" +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.type = 9 +JUMP_ACTION_CFG_ANIMATION_NAME_FIELD.cpp_type = 9 + +JUMP_ACTION_CFG_SPLITES_FIELD.name = "splites" +JUMP_ACTION_CFG_SPLITES_FIELD.full_name = ".ftcfg.jump_action_cfg.splites" +JUMP_ACTION_CFG_SPLITES_FIELD.number = 3 +JUMP_ACTION_CFG_SPLITES_FIELD.index = 2 +JUMP_ACTION_CFG_SPLITES_FIELD.label = 3 +JUMP_ACTION_CFG_SPLITES_FIELD.has_default_value = false +JUMP_ACTION_CFG_SPLITES_FIELD.default_value = {} +JUMP_ACTION_CFG_SPLITES_FIELD.type = 2 +JUMP_ACTION_CFG_SPLITES_FIELD.cpp_type = 6 + +JUMP_ACTION_CFG_DURATION_FIELD.name = "duration" +JUMP_ACTION_CFG_DURATION_FIELD.full_name = ".ftcfg.jump_action_cfg.duration" +JUMP_ACTION_CFG_DURATION_FIELD.number = 4 +JUMP_ACTION_CFG_DURATION_FIELD.index = 3 +JUMP_ACTION_CFG_DURATION_FIELD.label = 2 +JUMP_ACTION_CFG_DURATION_FIELD.has_default_value = false +JUMP_ACTION_CFG_DURATION_FIELD.default_value = 0.0 +JUMP_ACTION_CFG_DURATION_FIELD.type = 2 +JUMP_ACTION_CFG_DURATION_FIELD.cpp_type = 6 + +JUMP_ACTION_CFG.name = "jump_action_cfg" +JUMP_ACTION_CFG.full_name = ".ftcfg.jump_action_cfg" +JUMP_ACTION_CFG.nested_types = {} +JUMP_ACTION_CFG.enum_types = {} +JUMP_ACTION_CFG.fields = {JUMP_ACTION_CFG_ID_FIELD, JUMP_ACTION_CFG_ANIMATION_NAME_FIELD, JUMP_ACTION_CFG_SPLITES_FIELD, JUMP_ACTION_CFG_DURATION_FIELD} +JUMP_ACTION_CFG.is_extendable = false +JUMP_ACTION_CFG.extensions = {} +JUMP_ACTION_CFGS_ITEMS_FIELD.name = "items" +JUMP_ACTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.jump_action_cfgs.items" +JUMP_ACTION_CFGS_ITEMS_FIELD.number = 1 +JUMP_ACTION_CFGS_ITEMS_FIELD.index = 0 +JUMP_ACTION_CFGS_ITEMS_FIELD.label = 3 +JUMP_ACTION_CFGS_ITEMS_FIELD.has_default_value = false +JUMP_ACTION_CFGS_ITEMS_FIELD.default_value = {} +JUMP_ACTION_CFGS_ITEMS_FIELD.message_type = JUMP_ACTION_CFG +JUMP_ACTION_CFGS_ITEMS_FIELD.type = 11 +JUMP_ACTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +JUMP_ACTION_CFGS.name = "jump_action_cfgs" +JUMP_ACTION_CFGS.full_name = ".ftcfg.jump_action_cfgs" +JUMP_ACTION_CFGS.nested_types = {} +JUMP_ACTION_CFGS.enum_types = {} +JUMP_ACTION_CFGS.fields = {JUMP_ACTION_CFGS_ITEMS_FIELD} +JUMP_ACTION_CFGS.is_extendable = false +JUMP_ACTION_CFGS.extensions = {} +MAGIC_ATT_CFG_ID_FIELD.name = "id" +MAGIC_ATT_CFG_ID_FIELD.full_name = ".ftcfg.magic_att_cfg.id" +MAGIC_ATT_CFG_ID_FIELD.number = 1 +MAGIC_ATT_CFG_ID_FIELD.index = 0 +MAGIC_ATT_CFG_ID_FIELD.label = 2 +MAGIC_ATT_CFG_ID_FIELD.has_default_value = false +MAGIC_ATT_CFG_ID_FIELD.default_value = 0 +MAGIC_ATT_CFG_ID_FIELD.type = 5 +MAGIC_ATT_CFG_ID_FIELD.cpp_type = 1 + +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.name = "magic_type" +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.full_name = ".ftcfg.magic_att_cfg.magic_type" +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.number = 2 +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.index = 1 +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.label = 2 +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.has_default_value = false +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.default_value = 0 +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.type = 5 +MAGIC_ATT_CFG_MAGIC_TYPE_FIELD.cpp_type = 1 + +MAGIC_ATT_CFG_RANGE_FIELD.name = "range" +MAGIC_ATT_CFG_RANGE_FIELD.full_name = ".ftcfg.magic_att_cfg.range" +MAGIC_ATT_CFG_RANGE_FIELD.number = 3 +MAGIC_ATT_CFG_RANGE_FIELD.index = 2 +MAGIC_ATT_CFG_RANGE_FIELD.label = 2 +MAGIC_ATT_CFG_RANGE_FIELD.has_default_value = false +MAGIC_ATT_CFG_RANGE_FIELD.default_value = 0 +MAGIC_ATT_CFG_RANGE_FIELD.type = 5 +MAGIC_ATT_CFG_RANGE_FIELD.cpp_type = 1 + +MAGIC_ATT_CFG_PROP_TYPE_FIELD.name = "prop_type" +MAGIC_ATT_CFG_PROP_TYPE_FIELD.full_name = ".ftcfg.magic_att_cfg.prop_type" +MAGIC_ATT_CFG_PROP_TYPE_FIELD.number = 4 +MAGIC_ATT_CFG_PROP_TYPE_FIELD.index = 3 +MAGIC_ATT_CFG_PROP_TYPE_FIELD.label = 3 +MAGIC_ATT_CFG_PROP_TYPE_FIELD.has_default_value = false +MAGIC_ATT_CFG_PROP_TYPE_FIELD.default_value = {} +MAGIC_ATT_CFG_PROP_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPOPTYPE +MAGIC_ATT_CFG_PROP_TYPE_FIELD.type = 14 +MAGIC_ATT_CFG_PROP_TYPE_FIELD.cpp_type = 8 + +MAGIC_ATT_CFG_ATT_TYPE_FIELD.name = "att_type" +MAGIC_ATT_CFG_ATT_TYPE_FIELD.full_name = ".ftcfg.magic_att_cfg.att_type" +MAGIC_ATT_CFG_ATT_TYPE_FIELD.number = 5 +MAGIC_ATT_CFG_ATT_TYPE_FIELD.index = 4 +MAGIC_ATT_CFG_ATT_TYPE_FIELD.label = 3 +MAGIC_ATT_CFG_ATT_TYPE_FIELD.has_default_value = false +MAGIC_ATT_CFG_ATT_TYPE_FIELD.default_value = {} +MAGIC_ATT_CFG_ATT_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +MAGIC_ATT_CFG_ATT_TYPE_FIELD.type = 14 +MAGIC_ATT_CFG_ATT_TYPE_FIELD.cpp_type = 8 + +MAGIC_ATT_CFG_ATT_VALUE_FIELD.name = "att_value" +MAGIC_ATT_CFG_ATT_VALUE_FIELD.full_name = ".ftcfg.magic_att_cfg.att_value" +MAGIC_ATT_CFG_ATT_VALUE_FIELD.number = 6 +MAGIC_ATT_CFG_ATT_VALUE_FIELD.index = 5 +MAGIC_ATT_CFG_ATT_VALUE_FIELD.label = 3 +MAGIC_ATT_CFG_ATT_VALUE_FIELD.has_default_value = false +MAGIC_ATT_CFG_ATT_VALUE_FIELD.default_value = {} +MAGIC_ATT_CFG_ATT_VALUE_FIELD.type = 2 +MAGIC_ATT_CFG_ATT_VALUE_FIELD.cpp_type = 6 + +MAGIC_ATT_CFG_NAME_FIELD.name = "name" +MAGIC_ATT_CFG_NAME_FIELD.full_name = ".ftcfg.magic_att_cfg.name" +MAGIC_ATT_CFG_NAME_FIELD.number = 7 +MAGIC_ATT_CFG_NAME_FIELD.index = 6 +MAGIC_ATT_CFG_NAME_FIELD.label = 2 +MAGIC_ATT_CFG_NAME_FIELD.has_default_value = false +MAGIC_ATT_CFG_NAME_FIELD.default_value = "" +MAGIC_ATT_CFG_NAME_FIELD.type = 9 +MAGIC_ATT_CFG_NAME_FIELD.cpp_type = 9 + +MAGIC_ATT_CFG_DESC_FIELD.name = "desc" +MAGIC_ATT_CFG_DESC_FIELD.full_name = ".ftcfg.magic_att_cfg.desc" +MAGIC_ATT_CFG_DESC_FIELD.number = 8 +MAGIC_ATT_CFG_DESC_FIELD.index = 7 +MAGIC_ATT_CFG_DESC_FIELD.label = 2 +MAGIC_ATT_CFG_DESC_FIELD.has_default_value = false +MAGIC_ATT_CFG_DESC_FIELD.default_value = "" +MAGIC_ATT_CFG_DESC_FIELD.type = 9 +MAGIC_ATT_CFG_DESC_FIELD.cpp_type = 9 + +MAGIC_ATT_CFG_ICON_FIELD.name = "icon" +MAGIC_ATT_CFG_ICON_FIELD.full_name = ".ftcfg.magic_att_cfg.icon" +MAGIC_ATT_CFG_ICON_FIELD.number = 9 +MAGIC_ATT_CFG_ICON_FIELD.index = 8 +MAGIC_ATT_CFG_ICON_FIELD.label = 2 +MAGIC_ATT_CFG_ICON_FIELD.has_default_value = false +MAGIC_ATT_CFG_ICON_FIELD.default_value = 0 +MAGIC_ATT_CFG_ICON_FIELD.type = 5 +MAGIC_ATT_CFG_ICON_FIELD.cpp_type = 1 + +MAGIC_ATT_CFG.name = "magic_att_cfg" +MAGIC_ATT_CFG.full_name = ".ftcfg.magic_att_cfg" +MAGIC_ATT_CFG.nested_types = {} +MAGIC_ATT_CFG.enum_types = {} +MAGIC_ATT_CFG.fields = {MAGIC_ATT_CFG_ID_FIELD, MAGIC_ATT_CFG_MAGIC_TYPE_FIELD, MAGIC_ATT_CFG_RANGE_FIELD, MAGIC_ATT_CFG_PROP_TYPE_FIELD, MAGIC_ATT_CFG_ATT_TYPE_FIELD, MAGIC_ATT_CFG_ATT_VALUE_FIELD, MAGIC_ATT_CFG_NAME_FIELD, MAGIC_ATT_CFG_DESC_FIELD, MAGIC_ATT_CFG_ICON_FIELD} +MAGIC_ATT_CFG.is_extendable = false +MAGIC_ATT_CFG.extensions = {} +MAGIC_ATT_CFGS_ITEMS_FIELD.name = "items" +MAGIC_ATT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_att_cfgs.items" +MAGIC_ATT_CFGS_ITEMS_FIELD.number = 1 +MAGIC_ATT_CFGS_ITEMS_FIELD.index = 0 +MAGIC_ATT_CFGS_ITEMS_FIELD.label = 3 +MAGIC_ATT_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_ATT_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_ATT_CFGS_ITEMS_FIELD.message_type = MAGIC_ATT_CFG +MAGIC_ATT_CFGS_ITEMS_FIELD.type = 11 +MAGIC_ATT_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_ATT_CFGS.name = "magic_att_cfgs" +MAGIC_ATT_CFGS.full_name = ".ftcfg.magic_att_cfgs" +MAGIC_ATT_CFGS.nested_types = {} +MAGIC_ATT_CFGS.enum_types = {} +MAGIC_ATT_CFGS.fields = {MAGIC_ATT_CFGS_ITEMS_FIELD} +MAGIC_ATT_CFGS.is_extendable = false +MAGIC_ATT_CFGS.extensions = {} +MAGIC_OSTIOLE_CFG_ID_FIELD.name = "id" +MAGIC_OSTIOLE_CFG_ID_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.id" +MAGIC_OSTIOLE_CFG_ID_FIELD.number = 1 +MAGIC_OSTIOLE_CFG_ID_FIELD.index = 0 +MAGIC_OSTIOLE_CFG_ID_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_ID_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_ID_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_ID_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_ID_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG_POS_FIELD.name = "pos" +MAGIC_OSTIOLE_CFG_POS_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.pos" +MAGIC_OSTIOLE_CFG_POS_FIELD.number = 2 +MAGIC_OSTIOLE_CFG_POS_FIELD.index = 1 +MAGIC_OSTIOLE_CFG_POS_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_POS_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_POS_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_POS_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_POS_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.name = "magic_type" +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.magic_type" +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.number = 3 +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.index = 2 +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.name = "player_level" +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.player_level" +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.number = 4 +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.index = 3 +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG_RANGE_FIELD.name = "range" +MAGIC_OSTIOLE_CFG_RANGE_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.range" +MAGIC_OSTIOLE_CFG_RANGE_FIELD.number = 5 +MAGIC_OSTIOLE_CFG_RANGE_FIELD.index = 4 +MAGIC_OSTIOLE_CFG_RANGE_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_RANGE_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_RANGE_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_RANGE_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_RANGE_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.name = "item_id" +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.item_id" +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.number = 6 +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.index = 5 +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.name = "item_num" +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.item_num" +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.number = 7 +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.index = 6 +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.name = "max_beatific" +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.full_name = ".ftcfg.magic_ostiole_cfg.max_beatific" +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.number = 8 +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.index = 7 +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.label = 2 +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.default_value = 0 +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.type = 5 +MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD.cpp_type = 1 + +MAGIC_OSTIOLE_CFG.name = "magic_ostiole_cfg" +MAGIC_OSTIOLE_CFG.full_name = ".ftcfg.magic_ostiole_cfg" +MAGIC_OSTIOLE_CFG.nested_types = {} +MAGIC_OSTIOLE_CFG.enum_types = {} +MAGIC_OSTIOLE_CFG.fields = {MAGIC_OSTIOLE_CFG_ID_FIELD, MAGIC_OSTIOLE_CFG_POS_FIELD, MAGIC_OSTIOLE_CFG_MAGIC_TYPE_FIELD, MAGIC_OSTIOLE_CFG_PLAYER_LEVEL_FIELD, MAGIC_OSTIOLE_CFG_RANGE_FIELD, MAGIC_OSTIOLE_CFG_ITEM_ID_FIELD, MAGIC_OSTIOLE_CFG_ITEM_NUM_FIELD, MAGIC_OSTIOLE_CFG_MAX_BEATIFIC_FIELD} +MAGIC_OSTIOLE_CFG.is_extendable = false +MAGIC_OSTIOLE_CFG.extensions = {} +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.name = "items" +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_ostiole_cfgs.items" +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.number = 1 +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.index = 0 +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.label = 3 +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.message_type = MAGIC_OSTIOLE_CFG +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.type = 11 +MAGIC_OSTIOLE_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_OSTIOLE_CFGS.name = "magic_ostiole_cfgs" +MAGIC_OSTIOLE_CFGS.full_name = ".ftcfg.magic_ostiole_cfgs" +MAGIC_OSTIOLE_CFGS.nested_types = {} +MAGIC_OSTIOLE_CFGS.enum_types = {} +MAGIC_OSTIOLE_CFGS.fields = {MAGIC_OSTIOLE_CFGS_ITEMS_FIELD} +MAGIC_OSTIOLE_CFGS.is_extendable = false +MAGIC_OSTIOLE_CFGS.extensions = {} +MAGIC_LEVELUP_CFG_ID_FIELD.name = "id" +MAGIC_LEVELUP_CFG_ID_FIELD.full_name = ".ftcfg.magic_levelup_cfg.id" +MAGIC_LEVELUP_CFG_ID_FIELD.number = 1 +MAGIC_LEVELUP_CFG_ID_FIELD.index = 0 +MAGIC_LEVELUP_CFG_ID_FIELD.label = 2 +MAGIC_LEVELUP_CFG_ID_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_ID_FIELD.default_value = 0 +MAGIC_LEVELUP_CFG_ID_FIELD.type = 5 +MAGIC_LEVELUP_CFG_ID_FIELD.cpp_type = 1 + +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.name = "magic_level" +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.full_name = ".ftcfg.magic_levelup_cfg.magic_level" +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.number = 2 +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.index = 1 +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.label = 2 +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.default_value = 0 +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.type = 5 +MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD.cpp_type = 1 + +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.name = "prop_type" +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.full_name = ".ftcfg.magic_levelup_cfg.prop_type" +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.number = 3 +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.index = 2 +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.label = 3 +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.default_value = {} +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPOPTYPE +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.type = 14 +MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD.cpp_type = 8 + +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.name = "att_type" +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.full_name = ".ftcfg.magic_levelup_cfg.att_type" +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.number = 4 +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.index = 3 +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.label = 3 +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.default_value = {} +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.type = 14 +MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD.cpp_type = 8 + +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.name = "att_value" +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.full_name = ".ftcfg.magic_levelup_cfg.att_value" +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.number = 5 +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.index = 4 +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.label = 3 +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.default_value = {} +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.type = 2 +MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD.cpp_type = 6 + +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.name = "item_id" +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.magic_levelup_cfg.item_id" +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.number = 6 +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.index = 5 +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.label = 2 +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.default_value = 0 +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.type = 5 +MAGIC_LEVELUP_CFG_ITEM_ID_FIELD.cpp_type = 1 + +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.name = "item_num" +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.full_name = ".ftcfg.magic_levelup_cfg.item_num" +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.number = 7 +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.index = 6 +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.label = 2 +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.default_value = 0 +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.type = 5 +MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD.cpp_type = 1 + +MAGIC_LEVELUP_CFG_RANGE_FIELD.name = "range" +MAGIC_LEVELUP_CFG_RANGE_FIELD.full_name = ".ftcfg.magic_levelup_cfg.range" +MAGIC_LEVELUP_CFG_RANGE_FIELD.number = 8 +MAGIC_LEVELUP_CFG_RANGE_FIELD.index = 7 +MAGIC_LEVELUP_CFG_RANGE_FIELD.label = 2 +MAGIC_LEVELUP_CFG_RANGE_FIELD.has_default_value = false +MAGIC_LEVELUP_CFG_RANGE_FIELD.default_value = 0 +MAGIC_LEVELUP_CFG_RANGE_FIELD.type = 5 +MAGIC_LEVELUP_CFG_RANGE_FIELD.cpp_type = 1 + +MAGIC_LEVELUP_CFG.name = "magic_levelup_cfg" +MAGIC_LEVELUP_CFG.full_name = ".ftcfg.magic_levelup_cfg" +MAGIC_LEVELUP_CFG.nested_types = {} +MAGIC_LEVELUP_CFG.enum_types = {} +MAGIC_LEVELUP_CFG.fields = {MAGIC_LEVELUP_CFG_ID_FIELD, MAGIC_LEVELUP_CFG_MAGIC_LEVEL_FIELD, MAGIC_LEVELUP_CFG_PROP_TYPE_FIELD, MAGIC_LEVELUP_CFG_ATT_TYPE_FIELD, MAGIC_LEVELUP_CFG_ATT_VALUE_FIELD, MAGIC_LEVELUP_CFG_ITEM_ID_FIELD, MAGIC_LEVELUP_CFG_ITEM_NUM_FIELD, MAGIC_LEVELUP_CFG_RANGE_FIELD} +MAGIC_LEVELUP_CFG.is_extendable = false +MAGIC_LEVELUP_CFG.extensions = {} +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.name = "items" +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_levelup_cfgs.items" +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.number = 1 +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.index = 0 +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.label = 3 +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.message_type = MAGIC_LEVELUP_CFG +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.type = 11 +MAGIC_LEVELUP_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_LEVELUP_CFGS.name = "magic_levelup_cfgs" +MAGIC_LEVELUP_CFGS.full_name = ".ftcfg.magic_levelup_cfgs" +MAGIC_LEVELUP_CFGS.nested_types = {} +MAGIC_LEVELUP_CFGS.enum_types = {} +MAGIC_LEVELUP_CFGS.fields = {MAGIC_LEVELUP_CFGS_ITEMS_FIELD} +MAGIC_LEVELUP_CFGS.is_extendable = false +MAGIC_LEVELUP_CFGS.extensions = {} +MAGIC_COMBINATION_CFG_ID_FIELD.name = "id" +MAGIC_COMBINATION_CFG_ID_FIELD.full_name = ".ftcfg.magic_combination_cfg.id" +MAGIC_COMBINATION_CFG_ID_FIELD.number = 1 +MAGIC_COMBINATION_CFG_ID_FIELD.index = 0 +MAGIC_COMBINATION_CFG_ID_FIELD.label = 2 +MAGIC_COMBINATION_CFG_ID_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_ID_FIELD.default_value = 0 +MAGIC_COMBINATION_CFG_ID_FIELD.type = 5 +MAGIC_COMBINATION_CFG_ID_FIELD.cpp_type = 1 + +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.name = "combination_level" +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.full_name = ".ftcfg.magic_combination_cfg.combination_level" +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.number = 2 +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.index = 1 +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.label = 2 +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.default_value = 0 +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.type = 5 +MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD.cpp_type = 1 + +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.name = "magic_ids" +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.full_name = ".ftcfg.magic_combination_cfg.magic_ids" +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.number = 3 +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.index = 2 +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.label = 3 +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.default_value = {} +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.type = 5 +MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD.cpp_type = 1 + +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.name = "magic_num" +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.full_name = ".ftcfg.magic_combination_cfg.magic_num" +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.number = 4 +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.index = 3 +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.label = 3 +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.default_value = {} +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.type = 5 +MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD.cpp_type = 1 + +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.name = "prop_type" +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.full_name = ".ftcfg.magic_combination_cfg.prop_type" +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.number = 5 +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.index = 4 +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.label = 2 +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.default_value = nil +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPOPTYPE +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.type = 14 +MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD.cpp_type = 8 + +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.name = "att_type" +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.full_name = ".ftcfg.magic_combination_cfg.att_type" +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.number = 6 +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.index = 5 +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.label = 2 +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.default_value = nil +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.type = 14 +MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD.cpp_type = 8 + +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.name = "att_value" +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.full_name = ".ftcfg.magic_combination_cfg.att_value" +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.number = 7 +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.index = 6 +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.label = 2 +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.default_value = 0.0 +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.type = 2 +MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD.cpp_type = 6 + +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.name = "mg_name" +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.full_name = ".ftcfg.magic_combination_cfg.mg_name" +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.number = 8 +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.index = 7 +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.label = 2 +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.has_default_value = false +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.default_value = "" +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.type = 9 +MAGIC_COMBINATION_CFG_MG_NAME_FIELD.cpp_type = 9 + +MAGIC_COMBINATION_CFG.name = "magic_combination_cfg" +MAGIC_COMBINATION_CFG.full_name = ".ftcfg.magic_combination_cfg" +MAGIC_COMBINATION_CFG.nested_types = {} +MAGIC_COMBINATION_CFG.enum_types = {} +MAGIC_COMBINATION_CFG.fields = {MAGIC_COMBINATION_CFG_ID_FIELD, MAGIC_COMBINATION_CFG_COMBINATION_LEVEL_FIELD, MAGIC_COMBINATION_CFG_MAGIC_IDS_FIELD, MAGIC_COMBINATION_CFG_MAGIC_NUM_FIELD, MAGIC_COMBINATION_CFG_PROP_TYPE_FIELD, MAGIC_COMBINATION_CFG_ATT_TYPE_FIELD, MAGIC_COMBINATION_CFG_ATT_VALUE_FIELD, MAGIC_COMBINATION_CFG_MG_NAME_FIELD} +MAGIC_COMBINATION_CFG.is_extendable = false +MAGIC_COMBINATION_CFG.extensions = {} +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.name = "items" +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_combination_cfgs.items" +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.number = 1 +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.index = 0 +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.label = 3 +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.message_type = MAGIC_COMBINATION_CFG +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.type = 11 +MAGIC_COMBINATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_COMBINATION_CFGS.name = "magic_combination_cfgs" +MAGIC_COMBINATION_CFGS.full_name = ".ftcfg.magic_combination_cfgs" +MAGIC_COMBINATION_CFGS.nested_types = {} +MAGIC_COMBINATION_CFGS.enum_types = {} +MAGIC_COMBINATION_CFGS.fields = {MAGIC_COMBINATION_CFGS_ITEMS_FIELD} +MAGIC_COMBINATION_CFGS.is_extendable = false +MAGIC_COMBINATION_CFGS.extensions = {} +CONVOY_BIAOCHE_CFG_ID_FIELD.name = "id" +CONVOY_BIAOCHE_CFG_ID_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.id" +CONVOY_BIAOCHE_CFG_ID_FIELD.number = 1 +CONVOY_BIAOCHE_CFG_ID_FIELD.index = 0 +CONVOY_BIAOCHE_CFG_ID_FIELD.label = 2 +CONVOY_BIAOCHE_CFG_ID_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_ID_FIELD.default_value = 0 +CONVOY_BIAOCHE_CFG_ID_FIELD.type = 5 +CONVOY_BIAOCHE_CFG_ID_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.name = "activity_type" +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.activity_type" +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.number = 2 +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.index = 1 +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.label = 2 +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.default_value = nil +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.enum_type = config_predefine_pb.EBATTLEACTIVITYTYPE +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.type = 14 +CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD.cpp_type = 8 + +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.name = "first_start_time" +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.first_start_time" +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.number = 3 +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.index = 2 +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.label = 2 +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.default_value = "" +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.type = 9 +CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD.cpp_type = 9 + +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.name = "first_end_time" +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.first_end_time" +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.number = 4 +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.index = 3 +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.label = 2 +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.default_value = "" +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.type = 9 +CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD.cpp_type = 9 + +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.name = "second_start_time" +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.second_start_time" +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.number = 5 +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.index = 4 +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.label = 2 +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.default_value = "" +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.type = 9 +CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD.cpp_type = 9 + +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.name = "second_end_time" +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.second_end_time" +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.number = 6 +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.index = 5 +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.label = 2 +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.default_value = "" +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.type = 9 +CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD.cpp_type = 9 + +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.name = "scene_id" +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.scene_id" +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.number = 7 +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.index = 6 +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.label = 3 +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.default_value = {} +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.type = 5 +CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.name = "week_loop" +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.full_name = ".ftcfg.convoy_biaoche_cfg.week_loop" +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.number = 8 +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.index = 7 +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.label = 2 +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.default_value = 0 +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.type = 5 +CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_CFG.name = "convoy_biaoche_cfg" +CONVOY_BIAOCHE_CFG.full_name = ".ftcfg.convoy_biaoche_cfg" +CONVOY_BIAOCHE_CFG.nested_types = {} +CONVOY_BIAOCHE_CFG.enum_types = {} +CONVOY_BIAOCHE_CFG.fields = {CONVOY_BIAOCHE_CFG_ID_FIELD, CONVOY_BIAOCHE_CFG_ACTIVITY_TYPE_FIELD, CONVOY_BIAOCHE_CFG_FIRST_START_TIME_FIELD, CONVOY_BIAOCHE_CFG_FIRST_END_TIME_FIELD, CONVOY_BIAOCHE_CFG_SECOND_START_TIME_FIELD, CONVOY_BIAOCHE_CFG_SECOND_END_TIME_FIELD, CONVOY_BIAOCHE_CFG_SCENE_ID_FIELD, CONVOY_BIAOCHE_CFG_WEEK_LOOP_FIELD} +CONVOY_BIAOCHE_CFG.is_extendable = false +CONVOY_BIAOCHE_CFG.extensions = {} +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.name = "items" +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.convoy_biaoche_cfgs.items" +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.number = 1 +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.index = 0 +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.label = 3 +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.has_default_value = false +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.default_value = {} +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.message_type = CONVOY_BIAOCHE_CFG +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.type = 11 +CONVOY_BIAOCHE_CFGS_ITEMS_FIELD.cpp_type = 10 + +CONVOY_BIAOCHE_CFGS.name = "convoy_biaoche_cfgs" +CONVOY_BIAOCHE_CFGS.full_name = ".ftcfg.convoy_biaoche_cfgs" +CONVOY_BIAOCHE_CFGS.nested_types = {} +CONVOY_BIAOCHE_CFGS.enum_types = {} +CONVOY_BIAOCHE_CFGS.fields = {CONVOY_BIAOCHE_CFGS_ITEMS_FIELD} +CONVOY_BIAOCHE_CFGS.is_extendable = false +CONVOY_BIAOCHE_CFGS.extensions = {} +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.name = "id" +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.id" +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.number = 1 +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.index = 0 +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.name = "level_min" +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.level_min" +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.number = 2 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.index = 1 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.name = "level_max" +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.level_max" +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.number = 3 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.index = 2 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.name = "mission_rate" +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.mission_rate" +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.number = 4 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.index = 3 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.name = "person_mission_id" +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.person_mission_id" +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.number = 5 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.index = 4 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.name = "team_mission_id" +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.team_mission_id" +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.number = 6 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.index = 5 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.name = "mission_npc_distance" +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.mission_npc_distance" +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.number = 7 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.index = 6 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.default_value = 0.0 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.type = 1 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD.cpp_type = 5 + +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.name = "mission_need_itemid" +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.mission_need_itemid" +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.number = 8 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.index = 7 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.name = "escort_distance_limit" +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.escort_distance_limit" +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.number = 9 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.index = 8 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.default_value = 0.0 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.type = 1 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD.cpp_type = 5 + +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.name = "escort_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.escort_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.number = 10 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.index = 9 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.name = "ride_limit" +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.ride_limit" +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.number = 11 +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.index = 10 +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.default_value = 0.0 +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.type = 1 +CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD.cpp_type = 5 + +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.name = "node_stay_time" +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.node_stay_time" +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.number = 12 +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.index = 11 +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.name = "same_camp_distance_limit" +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.same_camp_distance_limit" +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.number = 13 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.index = 12 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.default_value = 0.0 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.type = 1 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD.cpp_type = 5 + +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.name = "same_camp_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.same_camp_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.number = 14 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.index = 13 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.name = "robber_distance_limit" +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.robber_distance_limit" +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.number = 15 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.index = 14 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.default_value = 0.0 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.type = 1 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD.cpp_type = 5 + +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.name = "robber_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.robber_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.number = 16 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.index = 15 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.name = "complete_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.complete_time_limit" +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.number = 17 +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.index = 16 +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.name = "person_camp_reward" +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.person_camp_reward" +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.number = 18 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.index = 17 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.name = "person_enemy_reward" +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.person_enemy_reward" +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.number = 19 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.index = 18 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.name = "team_camp_reward" +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.team_camp_reward" +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.number = 20 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.index = 19 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.name = "team_enemy_reward" +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.team_enemy_reward" +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.number = 21 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.index = 20 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.name = "gold_limit" +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.gold_limit" +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.number = 22 +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.index = 21 +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.name = "silver_limit" +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.silver_limit" +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.number = 23 +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.index = 22 +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.label = 2 +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.default_value = 0 +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.name = "free_pos" +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.free_pos" +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.number = 24 +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.index = 23 +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.name = "alliance_pos" +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfg.alliance_pos" +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.number = 25 +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.index = 24 +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.type = 5 +CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD.cpp_type = 1 + +CONVOY_BIAOCHE_SCENE_CFG.name = "convoy_biaoche_scene_cfg" +CONVOY_BIAOCHE_SCENE_CFG.full_name = ".ftcfg.convoy_biaoche_scene_cfg" +CONVOY_BIAOCHE_SCENE_CFG.nested_types = {} +CONVOY_BIAOCHE_SCENE_CFG.enum_types = {} +CONVOY_BIAOCHE_SCENE_CFG.fields = {CONVOY_BIAOCHE_SCENE_CFG_ID_FIELD, CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MIN_FIELD, CONVOY_BIAOCHE_SCENE_CFG_LEVEL_MAX_FIELD, CONVOY_BIAOCHE_SCENE_CFG_MISSION_RATE_FIELD, CONVOY_BIAOCHE_SCENE_CFG_PERSON_MISSION_ID_FIELD, CONVOY_BIAOCHE_SCENE_CFG_TEAM_MISSION_ID_FIELD, CONVOY_BIAOCHE_SCENE_CFG_MISSION_NPC_DISTANCE_FIELD, CONVOY_BIAOCHE_SCENE_CFG_MISSION_NEED_ITEMID_FIELD, CONVOY_BIAOCHE_SCENE_CFG_ESCORT_DISTANCE_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_ESCORT_TIME_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_RIDE_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_NODE_STAY_TIME_FIELD, CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_DISTANCE_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_SAME_CAMP_TIME_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_ROBBER_DISTANCE_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_ROBBER_TIME_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_COMPLETE_TIME_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_PERSON_CAMP_REWARD_FIELD, CONVOY_BIAOCHE_SCENE_CFG_PERSON_ENEMY_REWARD_FIELD, CONVOY_BIAOCHE_SCENE_CFG_TEAM_CAMP_REWARD_FIELD, CONVOY_BIAOCHE_SCENE_CFG_TEAM_ENEMY_REWARD_FIELD, CONVOY_BIAOCHE_SCENE_CFG_GOLD_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_SILVER_LIMIT_FIELD, CONVOY_BIAOCHE_SCENE_CFG_FREE_POS_FIELD, CONVOY_BIAOCHE_SCENE_CFG_ALLIANCE_POS_FIELD} +CONVOY_BIAOCHE_SCENE_CFG.is_extendable = false +CONVOY_BIAOCHE_SCENE_CFG.extensions = {} +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.name = "items" +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.convoy_biaoche_scene_cfgs.items" +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.number = 1 +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.index = 0 +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.label = 3 +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.has_default_value = false +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.default_value = {} +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.message_type = CONVOY_BIAOCHE_SCENE_CFG +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.type = 11 +CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD.cpp_type = 10 + +CONVOY_BIAOCHE_SCENE_CFGS.name = "convoy_biaoche_scene_cfgs" +CONVOY_BIAOCHE_SCENE_CFGS.full_name = ".ftcfg.convoy_biaoche_scene_cfgs" +CONVOY_BIAOCHE_SCENE_CFGS.nested_types = {} +CONVOY_BIAOCHE_SCENE_CFGS.enum_types = {} +CONVOY_BIAOCHE_SCENE_CFGS.fields = {CONVOY_BIAOCHE_SCENE_CFGS_ITEMS_FIELD} +CONVOY_BIAOCHE_SCENE_CFGS.is_extendable = false +CONVOY_BIAOCHE_SCENE_CFGS.extensions = {} +ACTIVITY_INFO_CFG_ID_FIELD.name = "id" +ACTIVITY_INFO_CFG_ID_FIELD.full_name = ".ftcfg.activity_info_cfg.id" +ACTIVITY_INFO_CFG_ID_FIELD.number = 1 +ACTIVITY_INFO_CFG_ID_FIELD.index = 0 +ACTIVITY_INFO_CFG_ID_FIELD.label = 2 +ACTIVITY_INFO_CFG_ID_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_ID_FIELD.default_value = 0 +ACTIVITY_INFO_CFG_ID_FIELD.type = 5 +ACTIVITY_INFO_CFG_ID_FIELD.cpp_type = 1 + +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.name = "activity_type" +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.full_name = ".ftcfg.activity_info_cfg.activity_type" +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.number = 2 +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.index = 1 +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.label = 2 +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.default_value = nil +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.enum_type = config_predefine_pb.EBATTLEACTIVITYTYPE +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.type = 14 +ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD.cpp_type = 8 + +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.name = "func_type" +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.full_name = ".ftcfg.activity_info_cfg.func_type" +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.number = 3 +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.index = 2 +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.label = 2 +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.default_value = nil +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.enum_type = config_predefine_pb.EFUNCTYPE +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.type = 14 +ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD.cpp_type = 8 + +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.name = "entry_time" +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.full_name = ".ftcfg.activity_info_cfg.entry_time" +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.number = 4 +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.index = 3 +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.label = 2 +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.default_value = "" +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.type = 9 +ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD.cpp_type = 9 + +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.name = "entry_end_time" +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.full_name = ".ftcfg.activity_info_cfg.entry_end_time" +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.number = 5 +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.index = 4 +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.label = 2 +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.default_value = "" +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.type = 9 +ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD.cpp_type = 9 + +ACTIVITY_INFO_CFG_START_TIME_FIELD.name = "start_time" +ACTIVITY_INFO_CFG_START_TIME_FIELD.full_name = ".ftcfg.activity_info_cfg.start_time" +ACTIVITY_INFO_CFG_START_TIME_FIELD.number = 6 +ACTIVITY_INFO_CFG_START_TIME_FIELD.index = 5 +ACTIVITY_INFO_CFG_START_TIME_FIELD.label = 2 +ACTIVITY_INFO_CFG_START_TIME_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_START_TIME_FIELD.default_value = "" +ACTIVITY_INFO_CFG_START_TIME_FIELD.type = 9 +ACTIVITY_INFO_CFG_START_TIME_FIELD.cpp_type = 9 + +ACTIVITY_INFO_CFG_END_TIME_FIELD.name = "end_time" +ACTIVITY_INFO_CFG_END_TIME_FIELD.full_name = ".ftcfg.activity_info_cfg.end_time" +ACTIVITY_INFO_CFG_END_TIME_FIELD.number = 7 +ACTIVITY_INFO_CFG_END_TIME_FIELD.index = 6 +ACTIVITY_INFO_CFG_END_TIME_FIELD.label = 2 +ACTIVITY_INFO_CFG_END_TIME_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_END_TIME_FIELD.default_value = "" +ACTIVITY_INFO_CFG_END_TIME_FIELD.type = 9 +ACTIVITY_INFO_CFG_END_TIME_FIELD.cpp_type = 9 + +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.name = "level_limit" +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.full_name = ".ftcfg.activity_info_cfg.level_limit" +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.number = 8 +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.index = 7 +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.label = 2 +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.default_value = 0 +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.type = 5 +ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD.cpp_type = 1 + +ACTIVITY_INFO_CFG_TIMES_FIELD.name = "times" +ACTIVITY_INFO_CFG_TIMES_FIELD.full_name = ".ftcfg.activity_info_cfg.times" +ACTIVITY_INFO_CFG_TIMES_FIELD.number = 9 +ACTIVITY_INFO_CFG_TIMES_FIELD.index = 8 +ACTIVITY_INFO_CFG_TIMES_FIELD.label = 2 +ACTIVITY_INFO_CFG_TIMES_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_TIMES_FIELD.default_value = 0 +ACTIVITY_INFO_CFG_TIMES_FIELD.type = 5 +ACTIVITY_INFO_CFG_TIMES_FIELD.cpp_type = 1 + +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.name = "week_loop" +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.full_name = ".ftcfg.activity_info_cfg.week_loop" +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.number = 10 +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.index = 9 +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.label = 2 +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.has_default_value = false +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.default_value = 0 +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.type = 5 +ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD.cpp_type = 1 + +ACTIVITY_INFO_CFG.name = "activity_info_cfg" +ACTIVITY_INFO_CFG.full_name = ".ftcfg.activity_info_cfg" +ACTIVITY_INFO_CFG.nested_types = {} +ACTIVITY_INFO_CFG.enum_types = {} +ACTIVITY_INFO_CFG.fields = {ACTIVITY_INFO_CFG_ID_FIELD, ACTIVITY_INFO_CFG_ACTIVITY_TYPE_FIELD, ACTIVITY_INFO_CFG_FUNC_TYPE_FIELD, ACTIVITY_INFO_CFG_ENTRY_TIME_FIELD, ACTIVITY_INFO_CFG_ENTRY_END_TIME_FIELD, ACTIVITY_INFO_CFG_START_TIME_FIELD, ACTIVITY_INFO_CFG_END_TIME_FIELD, ACTIVITY_INFO_CFG_LEVEL_LIMIT_FIELD, ACTIVITY_INFO_CFG_TIMES_FIELD, ACTIVITY_INFO_CFG_WEEK_LOOP_FIELD} +ACTIVITY_INFO_CFG.is_extendable = false +ACTIVITY_INFO_CFG.extensions = {} +ACTIVITY_INFO_CFGS_ITEMS_FIELD.name = "items" +ACTIVITY_INFO_CFGS_ITEMS_FIELD.full_name = ".ftcfg.activity_info_cfgs.items" +ACTIVITY_INFO_CFGS_ITEMS_FIELD.number = 1 +ACTIVITY_INFO_CFGS_ITEMS_FIELD.index = 0 +ACTIVITY_INFO_CFGS_ITEMS_FIELD.label = 3 +ACTIVITY_INFO_CFGS_ITEMS_FIELD.has_default_value = false +ACTIVITY_INFO_CFGS_ITEMS_FIELD.default_value = {} +ACTIVITY_INFO_CFGS_ITEMS_FIELD.message_type = ACTIVITY_INFO_CFG +ACTIVITY_INFO_CFGS_ITEMS_FIELD.type = 11 +ACTIVITY_INFO_CFGS_ITEMS_FIELD.cpp_type = 10 + +ACTIVITY_INFO_CFGS.name = "activity_info_cfgs" +ACTIVITY_INFO_CFGS.full_name = ".ftcfg.activity_info_cfgs" +ACTIVITY_INFO_CFGS.nested_types = {} +ACTIVITY_INFO_CFGS.enum_types = {} +ACTIVITY_INFO_CFGS.fields = {ACTIVITY_INFO_CFGS_ITEMS_FIELD} +ACTIVITY_INFO_CFGS.is_extendable = false +ACTIVITY_INFO_CFGS.extensions = {} +ACTIVITY_ROOMS_CFG_ID_FIELD.name = "id" +ACTIVITY_ROOMS_CFG_ID_FIELD.full_name = ".ftcfg.activity_rooms_cfg.id" +ACTIVITY_ROOMS_CFG_ID_FIELD.number = 1 +ACTIVITY_ROOMS_CFG_ID_FIELD.index = 0 +ACTIVITY_ROOMS_CFG_ID_FIELD.label = 2 +ACTIVITY_ROOMS_CFG_ID_FIELD.has_default_value = false +ACTIVITY_ROOMS_CFG_ID_FIELD.default_value = 0 +ACTIVITY_ROOMS_CFG_ID_FIELD.type = 5 +ACTIVITY_ROOMS_CFG_ID_FIELD.cpp_type = 1 + +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.name = "area_id" +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.full_name = ".ftcfg.activity_rooms_cfg.area_id" +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.number = 2 +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.index = 1 +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.label = 2 +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.has_default_value = false +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.default_value = 0 +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.type = 5 +ACTIVITY_ROOMS_CFG_AREA_ID_FIELD.cpp_type = 1 + +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.name = "red_num" +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.full_name = ".ftcfg.activity_rooms_cfg.red_num" +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.number = 3 +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.index = 2 +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.label = 2 +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.has_default_value = false +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.default_value = 0 +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.type = 5 +ACTIVITY_ROOMS_CFG_RED_NUM_FIELD.cpp_type = 1 + +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.name = "blue_num" +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.full_name = ".ftcfg.activity_rooms_cfg.blue_num" +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.number = 4 +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.index = 3 +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.label = 2 +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.has_default_value = false +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.default_value = 0 +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.type = 5 +ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD.cpp_type = 1 + +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.name = "min_level" +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.full_name = ".ftcfg.activity_rooms_cfg.min_level" +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.number = 5 +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.index = 4 +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.label = 2 +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.has_default_value = false +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.default_value = 0 +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.type = 5 +ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD.cpp_type = 1 + +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.name = "max_level" +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.full_name = ".ftcfg.activity_rooms_cfg.max_level" +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.number = 6 +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.index = 5 +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.label = 2 +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.has_default_value = false +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.default_value = 0 +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.type = 5 +ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD.cpp_type = 1 + +ACTIVITY_ROOMS_CFG.name = "activity_rooms_cfg" +ACTIVITY_ROOMS_CFG.full_name = ".ftcfg.activity_rooms_cfg" +ACTIVITY_ROOMS_CFG.nested_types = {} +ACTIVITY_ROOMS_CFG.enum_types = {} +ACTIVITY_ROOMS_CFG.fields = {ACTIVITY_ROOMS_CFG_ID_FIELD, ACTIVITY_ROOMS_CFG_AREA_ID_FIELD, ACTIVITY_ROOMS_CFG_RED_NUM_FIELD, ACTIVITY_ROOMS_CFG_BLUE_NUM_FIELD, ACTIVITY_ROOMS_CFG_MIN_LEVEL_FIELD, ACTIVITY_ROOMS_CFG_MAX_LEVEL_FIELD} +ACTIVITY_ROOMS_CFG.is_extendable = false +ACTIVITY_ROOMS_CFG.extensions = {} +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.name = "items" +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.activity_rooms_cfgs.items" +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.number = 1 +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.index = 0 +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.label = 3 +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.has_default_value = false +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.default_value = {} +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.message_type = ACTIVITY_ROOMS_CFG +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.type = 11 +ACTIVITY_ROOMS_CFGS_ITEMS_FIELD.cpp_type = 10 + +ACTIVITY_ROOMS_CFGS.name = "activity_rooms_cfgs" +ACTIVITY_ROOMS_CFGS.full_name = ".ftcfg.activity_rooms_cfgs" +ACTIVITY_ROOMS_CFGS.nested_types = {} +ACTIVITY_ROOMS_CFGS.enum_types = {} +ACTIVITY_ROOMS_CFGS.fields = {ACTIVITY_ROOMS_CFGS_ITEMS_FIELD} +ACTIVITY_ROOMS_CFGS.is_extendable = false +ACTIVITY_ROOMS_CFGS.extensions = {} +GROW_POINT_CFG_ID_FIELD.name = "id" +GROW_POINT_CFG_ID_FIELD.full_name = ".ftcfg.grow_point_cfg.id" +GROW_POINT_CFG_ID_FIELD.number = 1 +GROW_POINT_CFG_ID_FIELD.index = 0 +GROW_POINT_CFG_ID_FIELD.label = 2 +GROW_POINT_CFG_ID_FIELD.has_default_value = false +GROW_POINT_CFG_ID_FIELD.default_value = 0 +GROW_POINT_CFG_ID_FIELD.type = 5 +GROW_POINT_CFG_ID_FIELD.cpp_type = 1 + +GROW_POINT_CFG_NAME_FIELD.name = "name" +GROW_POINT_CFG_NAME_FIELD.full_name = ".ftcfg.grow_point_cfg.name" +GROW_POINT_CFG_NAME_FIELD.number = 2 +GROW_POINT_CFG_NAME_FIELD.index = 1 +GROW_POINT_CFG_NAME_FIELD.label = 2 +GROW_POINT_CFG_NAME_FIELD.has_default_value = false +GROW_POINT_CFG_NAME_FIELD.default_value = 0 +GROW_POINT_CFG_NAME_FIELD.type = 5 +GROW_POINT_CFG_NAME_FIELD.cpp_type = 1 + +GROW_POINT_CFG_MODULE_FIELD.name = "module" +GROW_POINT_CFG_MODULE_FIELD.full_name = ".ftcfg.grow_point_cfg.module" +GROW_POINT_CFG_MODULE_FIELD.number = 3 +GROW_POINT_CFG_MODULE_FIELD.index = 2 +GROW_POINT_CFG_MODULE_FIELD.label = 2 +GROW_POINT_CFG_MODULE_FIELD.has_default_value = false +GROW_POINT_CFG_MODULE_FIELD.default_value = 0 +GROW_POINT_CFG_MODULE_FIELD.type = 5 +GROW_POINT_CFG_MODULE_FIELD.cpp_type = 1 + +GROW_POINT_CFG_DESC_FIELD.name = "desc" +GROW_POINT_CFG_DESC_FIELD.full_name = ".ftcfg.grow_point_cfg.desc" +GROW_POINT_CFG_DESC_FIELD.number = 4 +GROW_POINT_CFG_DESC_FIELD.index = 3 +GROW_POINT_CFG_DESC_FIELD.label = 2 +GROW_POINT_CFG_DESC_FIELD.has_default_value = false +GROW_POINT_CFG_DESC_FIELD.default_value = 0 +GROW_POINT_CFG_DESC_FIELD.type = 5 +GROW_POINT_CFG_DESC_FIELD.cpp_type = 1 + +GROW_POINT_CFG_MAP_ID_FIELD.name = "map_id" +GROW_POINT_CFG_MAP_ID_FIELD.full_name = ".ftcfg.grow_point_cfg.map_id" +GROW_POINT_CFG_MAP_ID_FIELD.number = 5 +GROW_POINT_CFG_MAP_ID_FIELD.index = 4 +GROW_POINT_CFG_MAP_ID_FIELD.label = 2 +GROW_POINT_CFG_MAP_ID_FIELD.has_default_value = false +GROW_POINT_CFG_MAP_ID_FIELD.default_value = 0 +GROW_POINT_CFG_MAP_ID_FIELD.type = 5 +GROW_POINT_CFG_MAP_ID_FIELD.cpp_type = 1 + +GROW_POINT_CFG_POS_X_FIELD.name = "pos_x" +GROW_POINT_CFG_POS_X_FIELD.full_name = ".ftcfg.grow_point_cfg.pos_x" +GROW_POINT_CFG_POS_X_FIELD.number = 6 +GROW_POINT_CFG_POS_X_FIELD.index = 5 +GROW_POINT_CFG_POS_X_FIELD.label = 2 +GROW_POINT_CFG_POS_X_FIELD.has_default_value = false +GROW_POINT_CFG_POS_X_FIELD.default_value = 0.0 +GROW_POINT_CFG_POS_X_FIELD.type = 2 +GROW_POINT_CFG_POS_X_FIELD.cpp_type = 6 + +GROW_POINT_CFG_POS_Y_FIELD.name = "pos_y" +GROW_POINT_CFG_POS_Y_FIELD.full_name = ".ftcfg.grow_point_cfg.pos_y" +GROW_POINT_CFG_POS_Y_FIELD.number = 7 +GROW_POINT_CFG_POS_Y_FIELD.index = 6 +GROW_POINT_CFG_POS_Y_FIELD.label = 2 +GROW_POINT_CFG_POS_Y_FIELD.has_default_value = false +GROW_POINT_CFG_POS_Y_FIELD.default_value = 0.0 +GROW_POINT_CFG_POS_Y_FIELD.type = 2 +GROW_POINT_CFG_POS_Y_FIELD.cpp_type = 6 + +GROW_POINT_CFG_POS_Z_FIELD.name = "pos_z" +GROW_POINT_CFG_POS_Z_FIELD.full_name = ".ftcfg.grow_point_cfg.pos_z" +GROW_POINT_CFG_POS_Z_FIELD.number = 8 +GROW_POINT_CFG_POS_Z_FIELD.index = 7 +GROW_POINT_CFG_POS_Z_FIELD.label = 2 +GROW_POINT_CFG_POS_Z_FIELD.has_default_value = false +GROW_POINT_CFG_POS_Z_FIELD.default_value = 0.0 +GROW_POINT_CFG_POS_Z_FIELD.type = 2 +GROW_POINT_CFG_POS_Z_FIELD.cpp_type = 6 + +GROW_POINT_CFG_MAX_COUNT_FIELD.name = "max_count" +GROW_POINT_CFG_MAX_COUNT_FIELD.full_name = ".ftcfg.grow_point_cfg.max_count" +GROW_POINT_CFG_MAX_COUNT_FIELD.number = 9 +GROW_POINT_CFG_MAX_COUNT_FIELD.index = 8 +GROW_POINT_CFG_MAX_COUNT_FIELD.label = 2 +GROW_POINT_CFG_MAX_COUNT_FIELD.has_default_value = false +GROW_POINT_CFG_MAX_COUNT_FIELD.default_value = 0 +GROW_POINT_CFG_MAX_COUNT_FIELD.type = 5 +GROW_POINT_CFG_MAX_COUNT_FIELD.cpp_type = 1 + +GROW_POINT_CFG_SHOW_COUNT_FIELD.name = "show_count" +GROW_POINT_CFG_SHOW_COUNT_FIELD.full_name = ".ftcfg.grow_point_cfg.show_count" +GROW_POINT_CFG_SHOW_COUNT_FIELD.number = 10 +GROW_POINT_CFG_SHOW_COUNT_FIELD.index = 9 +GROW_POINT_CFG_SHOW_COUNT_FIELD.label = 2 +GROW_POINT_CFG_SHOW_COUNT_FIELD.has_default_value = false +GROW_POINT_CFG_SHOW_COUNT_FIELD.default_value = false +GROW_POINT_CFG_SHOW_COUNT_FIELD.type = 8 +GROW_POINT_CFG_SHOW_COUNT_FIELD.cpp_type = 7 + +GROW_POINT_CFG_QUALITY_FIELD.name = "quality" +GROW_POINT_CFG_QUALITY_FIELD.full_name = ".ftcfg.grow_point_cfg.quality" +GROW_POINT_CFG_QUALITY_FIELD.number = 11 +GROW_POINT_CFG_QUALITY_FIELD.index = 10 +GROW_POINT_CFG_QUALITY_FIELD.label = 2 +GROW_POINT_CFG_QUALITY_FIELD.has_default_value = false +GROW_POINT_CFG_QUALITY_FIELD.default_value = 0 +GROW_POINT_CFG_QUALITY_FIELD.type = 5 +GROW_POINT_CFG_QUALITY_FIELD.cpp_type = 1 + +GROW_POINT_CFG_SKILL_INDEX_FIELD.name = "skill_index" +GROW_POINT_CFG_SKILL_INDEX_FIELD.full_name = ".ftcfg.grow_point_cfg.skill_index" +GROW_POINT_CFG_SKILL_INDEX_FIELD.number = 12 +GROW_POINT_CFG_SKILL_INDEX_FIELD.index = 11 +GROW_POINT_CFG_SKILL_INDEX_FIELD.label = 2 +GROW_POINT_CFG_SKILL_INDEX_FIELD.has_default_value = false +GROW_POINT_CFG_SKILL_INDEX_FIELD.default_value = 0 +GROW_POINT_CFG_SKILL_INDEX_FIELD.type = 5 +GROW_POINT_CFG_SKILL_INDEX_FIELD.cpp_type = 1 + +GROW_POINT_CFG.name = "grow_point_cfg" +GROW_POINT_CFG.full_name = ".ftcfg.grow_point_cfg" +GROW_POINT_CFG.nested_types = {} +GROW_POINT_CFG.enum_types = {} +GROW_POINT_CFG.fields = {GROW_POINT_CFG_ID_FIELD, GROW_POINT_CFG_NAME_FIELD, GROW_POINT_CFG_MODULE_FIELD, GROW_POINT_CFG_DESC_FIELD, GROW_POINT_CFG_MAP_ID_FIELD, GROW_POINT_CFG_POS_X_FIELD, GROW_POINT_CFG_POS_Y_FIELD, GROW_POINT_CFG_POS_Z_FIELD, GROW_POINT_CFG_MAX_COUNT_FIELD, GROW_POINT_CFG_SHOW_COUNT_FIELD, GROW_POINT_CFG_QUALITY_FIELD, GROW_POINT_CFG_SKILL_INDEX_FIELD} +GROW_POINT_CFG.is_extendable = false +GROW_POINT_CFG.extensions = {} +GROW_POINT_CFGS_ITEMS_FIELD.name = "items" +GROW_POINT_CFGS_ITEMS_FIELD.full_name = ".ftcfg.grow_point_cfgs.items" +GROW_POINT_CFGS_ITEMS_FIELD.number = 1 +GROW_POINT_CFGS_ITEMS_FIELD.index = 0 +GROW_POINT_CFGS_ITEMS_FIELD.label = 3 +GROW_POINT_CFGS_ITEMS_FIELD.has_default_value = false +GROW_POINT_CFGS_ITEMS_FIELD.default_value = {} +GROW_POINT_CFGS_ITEMS_FIELD.message_type = GROW_POINT_CFG +GROW_POINT_CFGS_ITEMS_FIELD.type = 11 +GROW_POINT_CFGS_ITEMS_FIELD.cpp_type = 10 + +GROW_POINT_CFGS.name = "grow_point_cfgs" +GROW_POINT_CFGS.full_name = ".ftcfg.grow_point_cfgs" +GROW_POINT_CFGS.nested_types = {} +GROW_POINT_CFGS.enum_types = {} +GROW_POINT_CFGS.fields = {GROW_POINT_CFGS_ITEMS_FIELD} +GROW_POINT_CFGS.is_extendable = false +GROW_POINT_CFGS.extensions = {} +ERRORCODE_NOTIFY_CFG_ID_FIELD.name = "id" +ERRORCODE_NOTIFY_CFG_ID_FIELD.full_name = ".ftcfg.errorcode_notify_cfg.id" +ERRORCODE_NOTIFY_CFG_ID_FIELD.number = 1 +ERRORCODE_NOTIFY_CFG_ID_FIELD.index = 0 +ERRORCODE_NOTIFY_CFG_ID_FIELD.label = 2 +ERRORCODE_NOTIFY_CFG_ID_FIELD.has_default_value = false +ERRORCODE_NOTIFY_CFG_ID_FIELD.default_value = 0 +ERRORCODE_NOTIFY_CFG_ID_FIELD.type = 5 +ERRORCODE_NOTIFY_CFG_ID_FIELD.cpp_type = 1 + +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.name = "content" +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.full_name = ".ftcfg.errorcode_notify_cfg.content" +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.number = 2 +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.index = 1 +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.label = 2 +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.has_default_value = false +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.default_value = "" +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.type = 9 +ERRORCODE_NOTIFY_CFG_CONTENT_FIELD.cpp_type = 9 + +ERRORCODE_NOTIFY_CFG.name = "errorcode_notify_cfg" +ERRORCODE_NOTIFY_CFG.full_name = ".ftcfg.errorcode_notify_cfg" +ERRORCODE_NOTIFY_CFG.nested_types = {} +ERRORCODE_NOTIFY_CFG.enum_types = {} +ERRORCODE_NOTIFY_CFG.fields = {ERRORCODE_NOTIFY_CFG_ID_FIELD, ERRORCODE_NOTIFY_CFG_CONTENT_FIELD} +ERRORCODE_NOTIFY_CFG.is_extendable = false +ERRORCODE_NOTIFY_CFG.extensions = {} +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.name = "items" +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.full_name = ".ftcfg.errorcode_notify_cfgs.items" +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.number = 1 +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.index = 0 +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.label = 3 +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.has_default_value = false +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.default_value = {} +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.message_type = ERRORCODE_NOTIFY_CFG +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.type = 11 +ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD.cpp_type = 10 + +ERRORCODE_NOTIFY_CFGS.name = "errorcode_notify_cfgs" +ERRORCODE_NOTIFY_CFGS.full_name = ".ftcfg.errorcode_notify_cfgs" +ERRORCODE_NOTIFY_CFGS.nested_types = {} +ERRORCODE_NOTIFY_CFGS.enum_types = {} +ERRORCODE_NOTIFY_CFGS.fields = {ERRORCODE_NOTIFY_CFGS_ITEMS_FIELD} +ERRORCODE_NOTIFY_CFGS.is_extendable = false +ERRORCODE_NOTIFY_CFGS.extensions = {} +OPEN_RULES_DATA_CFG_ID_FIELD.name = "id" +OPEN_RULES_DATA_CFG_ID_FIELD.full_name = ".ftcfg.open_rules_data_cfg.id" +OPEN_RULES_DATA_CFG_ID_FIELD.number = 1 +OPEN_RULES_DATA_CFG_ID_FIELD.index = 0 +OPEN_RULES_DATA_CFG_ID_FIELD.label = 2 +OPEN_RULES_DATA_CFG_ID_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_ID_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_ID_FIELD.type = 5 +OPEN_RULES_DATA_CFG_ID_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.name = "open_rules_type" +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.full_name = ".ftcfg.open_rules_data_cfg.open_rules_type" +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.number = 2 +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.index = 1 +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.label = 2 +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.type = 5 +OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.name = "limit_type" +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.full_name = ".ftcfg.open_rules_data_cfg.limit_type" +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.number = 3 +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.index = 2 +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.label = 2 +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.type = 5 +OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.name = "limit_day" +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.full_name = ".ftcfg.open_rules_data_cfg.limit_day" +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.number = 4 +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.index = 3 +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.label = 2 +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.type = 5 +OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.name = "begin_hour" +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.full_name = ".ftcfg.open_rules_data_cfg.begin_hour" +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.number = 5 +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.index = 4 +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.label = 2 +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.type = 5 +OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.name = "begin_min" +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.full_name = ".ftcfg.open_rules_data_cfg.begin_min" +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.number = 6 +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.index = 5 +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.label = 2 +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.type = 5 +OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.name = "end_hour" +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.full_name = ".ftcfg.open_rules_data_cfg.end_hour" +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.number = 7 +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.index = 6 +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.label = 2 +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.type = 5 +OPEN_RULES_DATA_CFG_END_HOUR_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG_END_MIN_FIELD.name = "end_min" +OPEN_RULES_DATA_CFG_END_MIN_FIELD.full_name = ".ftcfg.open_rules_data_cfg.end_min" +OPEN_RULES_DATA_CFG_END_MIN_FIELD.number = 8 +OPEN_RULES_DATA_CFG_END_MIN_FIELD.index = 7 +OPEN_RULES_DATA_CFG_END_MIN_FIELD.label = 2 +OPEN_RULES_DATA_CFG_END_MIN_FIELD.has_default_value = false +OPEN_RULES_DATA_CFG_END_MIN_FIELD.default_value = 0 +OPEN_RULES_DATA_CFG_END_MIN_FIELD.type = 5 +OPEN_RULES_DATA_CFG_END_MIN_FIELD.cpp_type = 1 + +OPEN_RULES_DATA_CFG.name = "open_rules_data_cfg" +OPEN_RULES_DATA_CFG.full_name = ".ftcfg.open_rules_data_cfg" +OPEN_RULES_DATA_CFG.nested_types = {} +OPEN_RULES_DATA_CFG.enum_types = {} +OPEN_RULES_DATA_CFG.fields = {OPEN_RULES_DATA_CFG_ID_FIELD, OPEN_RULES_DATA_CFG_OPEN_RULES_TYPE_FIELD, OPEN_RULES_DATA_CFG_LIMIT_TYPE_FIELD, OPEN_RULES_DATA_CFG_LIMIT_DAY_FIELD, OPEN_RULES_DATA_CFG_BEGIN_HOUR_FIELD, OPEN_RULES_DATA_CFG_BEGIN_MIN_FIELD, OPEN_RULES_DATA_CFG_END_HOUR_FIELD, OPEN_RULES_DATA_CFG_END_MIN_FIELD} +OPEN_RULES_DATA_CFG.is_extendable = false +OPEN_RULES_DATA_CFG.extensions = {} +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.name = "items" +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.full_name = ".ftcfg.open_rules_data_cfgs.items" +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.number = 1 +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.index = 0 +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.label = 3 +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.has_default_value = false +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.default_value = {} +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.message_type = OPEN_RULES_DATA_CFG +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.type = 11 +OPEN_RULES_DATA_CFGS_ITEMS_FIELD.cpp_type = 10 + +OPEN_RULES_DATA_CFGS.name = "open_rules_data_cfgs" +OPEN_RULES_DATA_CFGS.full_name = ".ftcfg.open_rules_data_cfgs" +OPEN_RULES_DATA_CFGS.nested_types = {} +OPEN_RULES_DATA_CFGS.enum_types = {} +OPEN_RULES_DATA_CFGS.fields = {OPEN_RULES_DATA_CFGS_ITEMS_FIELD} +OPEN_RULES_DATA_CFGS.is_extendable = false +OPEN_RULES_DATA_CFGS.extensions = {} +CAMPBOSS_CFG_ID_FIELD.name = "id" +CAMPBOSS_CFG_ID_FIELD.full_name = ".ftcfg.campboss_cfg.id" +CAMPBOSS_CFG_ID_FIELD.number = 1 +CAMPBOSS_CFG_ID_FIELD.index = 0 +CAMPBOSS_CFG_ID_FIELD.label = 2 +CAMPBOSS_CFG_ID_FIELD.has_default_value = false +CAMPBOSS_CFG_ID_FIELD.default_value = 0 +CAMPBOSS_CFG_ID_FIELD.type = 5 +CAMPBOSS_CFG_ID_FIELD.cpp_type = 1 + +CAMPBOSS_CFG_NEED_LEVEL_FIELD.name = "need_level" +CAMPBOSS_CFG_NEED_LEVEL_FIELD.full_name = ".ftcfg.campboss_cfg.need_level" +CAMPBOSS_CFG_NEED_LEVEL_FIELD.number = 2 +CAMPBOSS_CFG_NEED_LEVEL_FIELD.index = 1 +CAMPBOSS_CFG_NEED_LEVEL_FIELD.label = 2 +CAMPBOSS_CFG_NEED_LEVEL_FIELD.has_default_value = false +CAMPBOSS_CFG_NEED_LEVEL_FIELD.default_value = 0 +CAMPBOSS_CFG_NEED_LEVEL_FIELD.type = 5 +CAMPBOSS_CFG_NEED_LEVEL_FIELD.cpp_type = 1 + +CAMPBOSS_CFG_SCENE_ID_FIELD.name = "scene_id" +CAMPBOSS_CFG_SCENE_ID_FIELD.full_name = ".ftcfg.campboss_cfg.scene_id" +CAMPBOSS_CFG_SCENE_ID_FIELD.number = 3 +CAMPBOSS_CFG_SCENE_ID_FIELD.index = 2 +CAMPBOSS_CFG_SCENE_ID_FIELD.label = 2 +CAMPBOSS_CFG_SCENE_ID_FIELD.has_default_value = false +CAMPBOSS_CFG_SCENE_ID_FIELD.default_value = 0 +CAMPBOSS_CFG_SCENE_ID_FIELD.type = 5 +CAMPBOSS_CFG_SCENE_ID_FIELD.cpp_type = 1 + +CAMPBOSS_CFG_MAP_ID_FIELD.name = "map_id" +CAMPBOSS_CFG_MAP_ID_FIELD.full_name = ".ftcfg.campboss_cfg.map_id" +CAMPBOSS_CFG_MAP_ID_FIELD.number = 4 +CAMPBOSS_CFG_MAP_ID_FIELD.index = 3 +CAMPBOSS_CFG_MAP_ID_FIELD.label = 2 +CAMPBOSS_CFG_MAP_ID_FIELD.has_default_value = false +CAMPBOSS_CFG_MAP_ID_FIELD.default_value = 0 +CAMPBOSS_CFG_MAP_ID_FIELD.type = 5 +CAMPBOSS_CFG_MAP_ID_FIELD.cpp_type = 1 + +CAMPBOSS_CFG_X_POINT_FIELD.name = "x_point" +CAMPBOSS_CFG_X_POINT_FIELD.full_name = ".ftcfg.campboss_cfg.x_point" +CAMPBOSS_CFG_X_POINT_FIELD.number = 5 +CAMPBOSS_CFG_X_POINT_FIELD.index = 4 +CAMPBOSS_CFG_X_POINT_FIELD.label = 2 +CAMPBOSS_CFG_X_POINT_FIELD.has_default_value = false +CAMPBOSS_CFG_X_POINT_FIELD.default_value = 0.0 +CAMPBOSS_CFG_X_POINT_FIELD.type = 2 +CAMPBOSS_CFG_X_POINT_FIELD.cpp_type = 6 + +CAMPBOSS_CFG_Y_POINT_FIELD.name = "y_point" +CAMPBOSS_CFG_Y_POINT_FIELD.full_name = ".ftcfg.campboss_cfg.y_point" +CAMPBOSS_CFG_Y_POINT_FIELD.number = 6 +CAMPBOSS_CFG_Y_POINT_FIELD.index = 5 +CAMPBOSS_CFG_Y_POINT_FIELD.label = 2 +CAMPBOSS_CFG_Y_POINT_FIELD.has_default_value = false +CAMPBOSS_CFG_Y_POINT_FIELD.default_value = 0.0 +CAMPBOSS_CFG_Y_POINT_FIELD.type = 2 +CAMPBOSS_CFG_Y_POINT_FIELD.cpp_type = 6 + +CAMPBOSS_CFG_Z_POINT_FIELD.name = "z_point" +CAMPBOSS_CFG_Z_POINT_FIELD.full_name = ".ftcfg.campboss_cfg.z_point" +CAMPBOSS_CFG_Z_POINT_FIELD.number = 7 +CAMPBOSS_CFG_Z_POINT_FIELD.index = 6 +CAMPBOSS_CFG_Z_POINT_FIELD.label = 2 +CAMPBOSS_CFG_Z_POINT_FIELD.has_default_value = false +CAMPBOSS_CFG_Z_POINT_FIELD.default_value = 0.0 +CAMPBOSS_CFG_Z_POINT_FIELD.type = 2 +CAMPBOSS_CFG_Z_POINT_FIELD.cpp_type = 6 + +CAMPBOSS_CFG.name = "campboss_cfg" +CAMPBOSS_CFG.full_name = ".ftcfg.campboss_cfg" +CAMPBOSS_CFG.nested_types = {} +CAMPBOSS_CFG.enum_types = {} +CAMPBOSS_CFG.fields = {CAMPBOSS_CFG_ID_FIELD, CAMPBOSS_CFG_NEED_LEVEL_FIELD, CAMPBOSS_CFG_SCENE_ID_FIELD, CAMPBOSS_CFG_MAP_ID_FIELD, CAMPBOSS_CFG_X_POINT_FIELD, CAMPBOSS_CFG_Y_POINT_FIELD, CAMPBOSS_CFG_Z_POINT_FIELD} +CAMPBOSS_CFG.is_extendable = false +CAMPBOSS_CFG.extensions = {} +CAMPBOSS_CFGS_ITEMS_FIELD.name = "items" +CAMPBOSS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.campboss_cfgs.items" +CAMPBOSS_CFGS_ITEMS_FIELD.number = 1 +CAMPBOSS_CFGS_ITEMS_FIELD.index = 0 +CAMPBOSS_CFGS_ITEMS_FIELD.label = 3 +CAMPBOSS_CFGS_ITEMS_FIELD.has_default_value = false +CAMPBOSS_CFGS_ITEMS_FIELD.default_value = {} +CAMPBOSS_CFGS_ITEMS_FIELD.message_type = CAMPBOSS_CFG +CAMPBOSS_CFGS_ITEMS_FIELD.type = 11 +CAMPBOSS_CFGS_ITEMS_FIELD.cpp_type = 10 + +CAMPBOSS_CFGS.name = "campboss_cfgs" +CAMPBOSS_CFGS.full_name = ".ftcfg.campboss_cfgs" +CAMPBOSS_CFGS.nested_types = {} +CAMPBOSS_CFGS.enum_types = {} +CAMPBOSS_CFGS.fields = {CAMPBOSS_CFGS_ITEMS_FIELD} +CAMPBOSS_CFGS.is_extendable = false +CAMPBOSS_CFGS.extensions = {} +TIPS_CFG_ID_FIELD.name = "id" +TIPS_CFG_ID_FIELD.full_name = ".ftcfg.tips_cfg.id" +TIPS_CFG_ID_FIELD.number = 1 +TIPS_CFG_ID_FIELD.index = 0 +TIPS_CFG_ID_FIELD.label = 2 +TIPS_CFG_ID_FIELD.has_default_value = false +TIPS_CFG_ID_FIELD.default_value = 0 +TIPS_CFG_ID_FIELD.type = 5 +TIPS_CFG_ID_FIELD.cpp_type = 1 + +TIPS_CFG_TYPE_FIELD.name = "type" +TIPS_CFG_TYPE_FIELD.full_name = ".ftcfg.tips_cfg.type" +TIPS_CFG_TYPE_FIELD.number = 2 +TIPS_CFG_TYPE_FIELD.index = 1 +TIPS_CFG_TYPE_FIELD.label = 2 +TIPS_CFG_TYPE_FIELD.has_default_value = false +TIPS_CFG_TYPE_FIELD.default_value = nil +TIPS_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ESYSTEMCHATTYPE +TIPS_CFG_TYPE_FIELD.type = 14 +TIPS_CFG_TYPE_FIELD.cpp_type = 8 + +TIPS_CFG_CONTENT_FIELD.name = "content" +TIPS_CFG_CONTENT_FIELD.full_name = ".ftcfg.tips_cfg.content" +TIPS_CFG_CONTENT_FIELD.number = 3 +TIPS_CFG_CONTENT_FIELD.index = 2 +TIPS_CFG_CONTENT_FIELD.label = 2 +TIPS_CFG_CONTENT_FIELD.has_default_value = false +TIPS_CFG_CONTENT_FIELD.default_value = "" +TIPS_CFG_CONTENT_FIELD.type = 9 +TIPS_CFG_CONTENT_FIELD.cpp_type = 9 + +TIPS_CFG.name = "tips_cfg" +TIPS_CFG.full_name = ".ftcfg.tips_cfg" +TIPS_CFG.nested_types = {} +TIPS_CFG.enum_types = {} +TIPS_CFG.fields = {TIPS_CFG_ID_FIELD, TIPS_CFG_TYPE_FIELD, TIPS_CFG_CONTENT_FIELD} +TIPS_CFG.is_extendable = false +TIPS_CFG.extensions = {} +TIPS_CFGS_ITEMS_FIELD.name = "items" +TIPS_CFGS_ITEMS_FIELD.full_name = ".ftcfg.tips_cfgs.items" +TIPS_CFGS_ITEMS_FIELD.number = 1 +TIPS_CFGS_ITEMS_FIELD.index = 0 +TIPS_CFGS_ITEMS_FIELD.label = 3 +TIPS_CFGS_ITEMS_FIELD.has_default_value = false +TIPS_CFGS_ITEMS_FIELD.default_value = {} +TIPS_CFGS_ITEMS_FIELD.message_type = TIPS_CFG +TIPS_CFGS_ITEMS_FIELD.type = 11 +TIPS_CFGS_ITEMS_FIELD.cpp_type = 10 + +TIPS_CFGS.name = "tips_cfgs" +TIPS_CFGS.full_name = ".ftcfg.tips_cfgs" +TIPS_CFGS.nested_types = {} +TIPS_CFGS.enum_types = {} +TIPS_CFGS.fields = {TIPS_CFGS_ITEMS_FIELD} +TIPS_CFGS.is_extendable = false +TIPS_CFGS.extensions = {} +CAMP_RELATION_CFG_ID_FIELD.name = "id" +CAMP_RELATION_CFG_ID_FIELD.full_name = ".ftcfg.camp_relation_cfg.id" +CAMP_RELATION_CFG_ID_FIELD.number = 1 +CAMP_RELATION_CFG_ID_FIELD.index = 0 +CAMP_RELATION_CFG_ID_FIELD.label = 2 +CAMP_RELATION_CFG_ID_FIELD.has_default_value = false +CAMP_RELATION_CFG_ID_FIELD.default_value = 0 +CAMP_RELATION_CFG_ID_FIELD.type = 5 +CAMP_RELATION_CFG_ID_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_SCRIP_FIELD.name = "scrip" +CAMP_RELATION_CFG_SCRIP_FIELD.full_name = ".ftcfg.camp_relation_cfg.scrip" +CAMP_RELATION_CFG_SCRIP_FIELD.number = 2 +CAMP_RELATION_CFG_SCRIP_FIELD.index = 1 +CAMP_RELATION_CFG_SCRIP_FIELD.label = 2 +CAMP_RELATION_CFG_SCRIP_FIELD.has_default_value = false +CAMP_RELATION_CFG_SCRIP_FIELD.default_value = "" +CAMP_RELATION_CFG_SCRIP_FIELD.type = 9 +CAMP_RELATION_CFG_SCRIP_FIELD.cpp_type = 9 + +CAMP_RELATION_CFG_TYPE_FIELD.name = "type" +CAMP_RELATION_CFG_TYPE_FIELD.full_name = ".ftcfg.camp_relation_cfg.type" +CAMP_RELATION_CFG_TYPE_FIELD.number = 3 +CAMP_RELATION_CFG_TYPE_FIELD.index = 2 +CAMP_RELATION_CFG_TYPE_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.name = "type_scrip" +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.full_name = ".ftcfg.camp_relation_cfg.type_scrip" +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.number = 4 +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.index = 3 +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.default_value = "" +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.type = 9 +CAMP_RELATION_CFG_TYPE_SCRIP_FIELD.cpp_type = 9 + +CAMP_RELATION_CFG_TYPE0_FIELD.name = "type0" +CAMP_RELATION_CFG_TYPE0_FIELD.full_name = ".ftcfg.camp_relation_cfg.type0" +CAMP_RELATION_CFG_TYPE0_FIELD.number = 5 +CAMP_RELATION_CFG_TYPE0_FIELD.index = 4 +CAMP_RELATION_CFG_TYPE0_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE0_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE0_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE0_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE0_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE1_FIELD.name = "type1" +CAMP_RELATION_CFG_TYPE1_FIELD.full_name = ".ftcfg.camp_relation_cfg.type1" +CAMP_RELATION_CFG_TYPE1_FIELD.number = 6 +CAMP_RELATION_CFG_TYPE1_FIELD.index = 5 +CAMP_RELATION_CFG_TYPE1_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE1_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE1_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE1_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE1_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE2_FIELD.name = "type2" +CAMP_RELATION_CFG_TYPE2_FIELD.full_name = ".ftcfg.camp_relation_cfg.type2" +CAMP_RELATION_CFG_TYPE2_FIELD.number = 7 +CAMP_RELATION_CFG_TYPE2_FIELD.index = 6 +CAMP_RELATION_CFG_TYPE2_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE2_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE2_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE2_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE2_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE3_FIELD.name = "type3" +CAMP_RELATION_CFG_TYPE3_FIELD.full_name = ".ftcfg.camp_relation_cfg.type3" +CAMP_RELATION_CFG_TYPE3_FIELD.number = 8 +CAMP_RELATION_CFG_TYPE3_FIELD.index = 7 +CAMP_RELATION_CFG_TYPE3_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE3_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE3_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE3_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE3_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE4_FIELD.name = "type4" +CAMP_RELATION_CFG_TYPE4_FIELD.full_name = ".ftcfg.camp_relation_cfg.type4" +CAMP_RELATION_CFG_TYPE4_FIELD.number = 9 +CAMP_RELATION_CFG_TYPE4_FIELD.index = 8 +CAMP_RELATION_CFG_TYPE4_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE4_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE4_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE4_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE4_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE5_FIELD.name = "type5" +CAMP_RELATION_CFG_TYPE5_FIELD.full_name = ".ftcfg.camp_relation_cfg.type5" +CAMP_RELATION_CFG_TYPE5_FIELD.number = 10 +CAMP_RELATION_CFG_TYPE5_FIELD.index = 9 +CAMP_RELATION_CFG_TYPE5_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE5_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE5_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE5_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE5_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE6_FIELD.name = "type6" +CAMP_RELATION_CFG_TYPE6_FIELD.full_name = ".ftcfg.camp_relation_cfg.type6" +CAMP_RELATION_CFG_TYPE6_FIELD.number = 11 +CAMP_RELATION_CFG_TYPE6_FIELD.index = 10 +CAMP_RELATION_CFG_TYPE6_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE6_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE6_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE6_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE6_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE7_FIELD.name = "type7" +CAMP_RELATION_CFG_TYPE7_FIELD.full_name = ".ftcfg.camp_relation_cfg.type7" +CAMP_RELATION_CFG_TYPE7_FIELD.number = 12 +CAMP_RELATION_CFG_TYPE7_FIELD.index = 11 +CAMP_RELATION_CFG_TYPE7_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE7_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE7_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE7_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE7_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE8_FIELD.name = "type8" +CAMP_RELATION_CFG_TYPE8_FIELD.full_name = ".ftcfg.camp_relation_cfg.type8" +CAMP_RELATION_CFG_TYPE8_FIELD.number = 13 +CAMP_RELATION_CFG_TYPE8_FIELD.index = 12 +CAMP_RELATION_CFG_TYPE8_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE8_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE8_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE8_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE8_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE9_FIELD.name = "type9" +CAMP_RELATION_CFG_TYPE9_FIELD.full_name = ".ftcfg.camp_relation_cfg.type9" +CAMP_RELATION_CFG_TYPE9_FIELD.number = 14 +CAMP_RELATION_CFG_TYPE9_FIELD.index = 13 +CAMP_RELATION_CFG_TYPE9_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE9_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE9_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE9_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE9_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE10_FIELD.name = "type10" +CAMP_RELATION_CFG_TYPE10_FIELD.full_name = ".ftcfg.camp_relation_cfg.type10" +CAMP_RELATION_CFG_TYPE10_FIELD.number = 15 +CAMP_RELATION_CFG_TYPE10_FIELD.index = 14 +CAMP_RELATION_CFG_TYPE10_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE10_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE10_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE10_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE10_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE11_FIELD.name = "type11" +CAMP_RELATION_CFG_TYPE11_FIELD.full_name = ".ftcfg.camp_relation_cfg.type11" +CAMP_RELATION_CFG_TYPE11_FIELD.number = 16 +CAMP_RELATION_CFG_TYPE11_FIELD.index = 15 +CAMP_RELATION_CFG_TYPE11_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE11_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE11_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE11_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE11_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE12_FIELD.name = "type12" +CAMP_RELATION_CFG_TYPE12_FIELD.full_name = ".ftcfg.camp_relation_cfg.type12" +CAMP_RELATION_CFG_TYPE12_FIELD.number = 17 +CAMP_RELATION_CFG_TYPE12_FIELD.index = 16 +CAMP_RELATION_CFG_TYPE12_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE12_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE12_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE12_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE12_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE13_FIELD.name = "type13" +CAMP_RELATION_CFG_TYPE13_FIELD.full_name = ".ftcfg.camp_relation_cfg.type13" +CAMP_RELATION_CFG_TYPE13_FIELD.number = 18 +CAMP_RELATION_CFG_TYPE13_FIELD.index = 17 +CAMP_RELATION_CFG_TYPE13_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE13_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE13_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE13_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE13_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE14_FIELD.name = "type14" +CAMP_RELATION_CFG_TYPE14_FIELD.full_name = ".ftcfg.camp_relation_cfg.type14" +CAMP_RELATION_CFG_TYPE14_FIELD.number = 19 +CAMP_RELATION_CFG_TYPE14_FIELD.index = 18 +CAMP_RELATION_CFG_TYPE14_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE14_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE14_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE14_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE14_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG_TYPE15_FIELD.name = "type15" +CAMP_RELATION_CFG_TYPE15_FIELD.full_name = ".ftcfg.camp_relation_cfg.type15" +CAMP_RELATION_CFG_TYPE15_FIELD.number = 20 +CAMP_RELATION_CFG_TYPE15_FIELD.index = 19 +CAMP_RELATION_CFG_TYPE15_FIELD.label = 2 +CAMP_RELATION_CFG_TYPE15_FIELD.has_default_value = false +CAMP_RELATION_CFG_TYPE15_FIELD.default_value = 0 +CAMP_RELATION_CFG_TYPE15_FIELD.type = 5 +CAMP_RELATION_CFG_TYPE15_FIELD.cpp_type = 1 + +CAMP_RELATION_CFG.name = "camp_relation_cfg" +CAMP_RELATION_CFG.full_name = ".ftcfg.camp_relation_cfg" +CAMP_RELATION_CFG.nested_types = {} +CAMP_RELATION_CFG.enum_types = {} +CAMP_RELATION_CFG.fields = {CAMP_RELATION_CFG_ID_FIELD, CAMP_RELATION_CFG_SCRIP_FIELD, CAMP_RELATION_CFG_TYPE_FIELD, CAMP_RELATION_CFG_TYPE_SCRIP_FIELD, CAMP_RELATION_CFG_TYPE0_FIELD, CAMP_RELATION_CFG_TYPE1_FIELD, CAMP_RELATION_CFG_TYPE2_FIELD, CAMP_RELATION_CFG_TYPE3_FIELD, CAMP_RELATION_CFG_TYPE4_FIELD, CAMP_RELATION_CFG_TYPE5_FIELD, CAMP_RELATION_CFG_TYPE6_FIELD, CAMP_RELATION_CFG_TYPE7_FIELD, CAMP_RELATION_CFG_TYPE8_FIELD, CAMP_RELATION_CFG_TYPE9_FIELD, CAMP_RELATION_CFG_TYPE10_FIELD, CAMP_RELATION_CFG_TYPE11_FIELD, CAMP_RELATION_CFG_TYPE12_FIELD, CAMP_RELATION_CFG_TYPE13_FIELD, CAMP_RELATION_CFG_TYPE14_FIELD, CAMP_RELATION_CFG_TYPE15_FIELD} +CAMP_RELATION_CFG.is_extendable = false +CAMP_RELATION_CFG.extensions = {} +CAMP_RELATION_CFGS_ITEMS_FIELD.name = "items" +CAMP_RELATION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.camp_relation_cfgs.items" +CAMP_RELATION_CFGS_ITEMS_FIELD.number = 1 +CAMP_RELATION_CFGS_ITEMS_FIELD.index = 0 +CAMP_RELATION_CFGS_ITEMS_FIELD.label = 3 +CAMP_RELATION_CFGS_ITEMS_FIELD.has_default_value = false +CAMP_RELATION_CFGS_ITEMS_FIELD.default_value = {} +CAMP_RELATION_CFGS_ITEMS_FIELD.message_type = CAMP_RELATION_CFG +CAMP_RELATION_CFGS_ITEMS_FIELD.type = 11 +CAMP_RELATION_CFGS_ITEMS_FIELD.cpp_type = 10 + +CAMP_RELATION_CFGS.name = "camp_relation_cfgs" +CAMP_RELATION_CFGS.full_name = ".ftcfg.camp_relation_cfgs" +CAMP_RELATION_CFGS.nested_types = {} +CAMP_RELATION_CFGS.enum_types = {} +CAMP_RELATION_CFGS.fields = {CAMP_RELATION_CFGS_ITEMS_FIELD} +CAMP_RELATION_CFGS.is_extendable = false +CAMP_RELATION_CFGS.extensions = {} +CAMP_CHANGE_COST_CFG_ID_FIELD.name = "id" +CAMP_CHANGE_COST_CFG_ID_FIELD.full_name = ".ftcfg.camp_change_cost_cfg.id" +CAMP_CHANGE_COST_CFG_ID_FIELD.number = 1 +CAMP_CHANGE_COST_CFG_ID_FIELD.index = 0 +CAMP_CHANGE_COST_CFG_ID_FIELD.label = 2 +CAMP_CHANGE_COST_CFG_ID_FIELD.has_default_value = false +CAMP_CHANGE_COST_CFG_ID_FIELD.default_value = 0 +CAMP_CHANGE_COST_CFG_ID_FIELD.type = 5 +CAMP_CHANGE_COST_CFG_ID_FIELD.cpp_type = 1 + +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.name = "coin_type" +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.full_name = ".ftcfg.camp_change_cost_cfg.coin_type" +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.number = 2 +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.index = 1 +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.label = 3 +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.has_default_value = false +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.default_value = {} +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.type = 5 +CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD.cpp_type = 1 + +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.name = "coin_num" +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.full_name = ".ftcfg.camp_change_cost_cfg.coin_num" +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.number = 3 +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.index = 2 +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.label = 3 +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.has_default_value = false +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.default_value = {} +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.type = 5 +CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD.cpp_type = 1 + +CAMP_CHANGE_COST_CFG.name = "camp_change_cost_cfg" +CAMP_CHANGE_COST_CFG.full_name = ".ftcfg.camp_change_cost_cfg" +CAMP_CHANGE_COST_CFG.nested_types = {} +CAMP_CHANGE_COST_CFG.enum_types = {} +CAMP_CHANGE_COST_CFG.fields = {CAMP_CHANGE_COST_CFG_ID_FIELD, CAMP_CHANGE_COST_CFG_COIN_TYPE_FIELD, CAMP_CHANGE_COST_CFG_COIN_NUM_FIELD} +CAMP_CHANGE_COST_CFG.is_extendable = false +CAMP_CHANGE_COST_CFG.extensions = {} +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.name = "items" +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.full_name = ".ftcfg.camp_change_cost_cfgs.items" +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.number = 1 +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.index = 0 +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.label = 3 +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.has_default_value = false +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.default_value = {} +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.message_type = CAMP_CHANGE_COST_CFG +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.type = 11 +CAMP_CHANGE_COST_CFGS_ITEMS_FIELD.cpp_type = 10 + +CAMP_CHANGE_COST_CFGS.name = "camp_change_cost_cfgs" +CAMP_CHANGE_COST_CFGS.full_name = ".ftcfg.camp_change_cost_cfgs" +CAMP_CHANGE_COST_CFGS.nested_types = {} +CAMP_CHANGE_COST_CFGS.enum_types = {} +CAMP_CHANGE_COST_CFGS.fields = {CAMP_CHANGE_COST_CFGS_ITEMS_FIELD} +CAMP_CHANGE_COST_CFGS.is_extendable = false +CAMP_CHANGE_COST_CFGS.extensions = {} +RANDOMMAN_CFG_NAME0_FIELD.name = "name0" +RANDOMMAN_CFG_NAME0_FIELD.full_name = ".ftcfg.randomman_cfg.name0" +RANDOMMAN_CFG_NAME0_FIELD.number = 1 +RANDOMMAN_CFG_NAME0_FIELD.index = 0 +RANDOMMAN_CFG_NAME0_FIELD.label = 2 +RANDOMMAN_CFG_NAME0_FIELD.has_default_value = false +RANDOMMAN_CFG_NAME0_FIELD.default_value = "" +RANDOMMAN_CFG_NAME0_FIELD.type = 9 +RANDOMMAN_CFG_NAME0_FIELD.cpp_type = 9 + +RANDOMMAN_CFG_NAME1_FIELD.name = "name1" +RANDOMMAN_CFG_NAME1_FIELD.full_name = ".ftcfg.randomman_cfg.name1" +RANDOMMAN_CFG_NAME1_FIELD.number = 2 +RANDOMMAN_CFG_NAME1_FIELD.index = 1 +RANDOMMAN_CFG_NAME1_FIELD.label = 2 +RANDOMMAN_CFG_NAME1_FIELD.has_default_value = false +RANDOMMAN_CFG_NAME1_FIELD.default_value = "" +RANDOMMAN_CFG_NAME1_FIELD.type = 9 +RANDOMMAN_CFG_NAME1_FIELD.cpp_type = 9 + +RANDOMMAN_CFG.name = "randomman_cfg" +RANDOMMAN_CFG.full_name = ".ftcfg.randomman_cfg" +RANDOMMAN_CFG.nested_types = {} +RANDOMMAN_CFG.enum_types = {} +RANDOMMAN_CFG.fields = {RANDOMMAN_CFG_NAME0_FIELD, RANDOMMAN_CFG_NAME1_FIELD} +RANDOMMAN_CFG.is_extendable = false +RANDOMMAN_CFG.extensions = {} +RANDOMMAN_CFGS_ITEMS_FIELD.name = "items" +RANDOMMAN_CFGS_ITEMS_FIELD.full_name = ".ftcfg.randomman_cfgs.items" +RANDOMMAN_CFGS_ITEMS_FIELD.number = 1 +RANDOMMAN_CFGS_ITEMS_FIELD.index = 0 +RANDOMMAN_CFGS_ITEMS_FIELD.label = 3 +RANDOMMAN_CFGS_ITEMS_FIELD.has_default_value = false +RANDOMMAN_CFGS_ITEMS_FIELD.default_value = {} +RANDOMMAN_CFGS_ITEMS_FIELD.message_type = RANDOMMAN_CFG +RANDOMMAN_CFGS_ITEMS_FIELD.type = 11 +RANDOMMAN_CFGS_ITEMS_FIELD.cpp_type = 10 + +RANDOMMAN_CFGS.name = "randomman_cfgs" +RANDOMMAN_CFGS.full_name = ".ftcfg.randomman_cfgs" +RANDOMMAN_CFGS.nested_types = {} +RANDOMMAN_CFGS.enum_types = {} +RANDOMMAN_CFGS.fields = {RANDOMMAN_CFGS_ITEMS_FIELD} +RANDOMMAN_CFGS.is_extendable = false +RANDOMMAN_CFGS.extensions = {} +RANDOMWOMAN_CFG_NAME0_FIELD.name = "name0" +RANDOMWOMAN_CFG_NAME0_FIELD.full_name = ".ftcfg.randomwoman_cfg.name0" +RANDOMWOMAN_CFG_NAME0_FIELD.number = 1 +RANDOMWOMAN_CFG_NAME0_FIELD.index = 0 +RANDOMWOMAN_CFG_NAME0_FIELD.label = 2 +RANDOMWOMAN_CFG_NAME0_FIELD.has_default_value = false +RANDOMWOMAN_CFG_NAME0_FIELD.default_value = "" +RANDOMWOMAN_CFG_NAME0_FIELD.type = 9 +RANDOMWOMAN_CFG_NAME0_FIELD.cpp_type = 9 + +RANDOMWOMAN_CFG_NAME1_FIELD.name = "name1" +RANDOMWOMAN_CFG_NAME1_FIELD.full_name = ".ftcfg.randomwoman_cfg.name1" +RANDOMWOMAN_CFG_NAME1_FIELD.number = 2 +RANDOMWOMAN_CFG_NAME1_FIELD.index = 1 +RANDOMWOMAN_CFG_NAME1_FIELD.label = 2 +RANDOMWOMAN_CFG_NAME1_FIELD.has_default_value = false +RANDOMWOMAN_CFG_NAME1_FIELD.default_value = "" +RANDOMWOMAN_CFG_NAME1_FIELD.type = 9 +RANDOMWOMAN_CFG_NAME1_FIELD.cpp_type = 9 + +RANDOMWOMAN_CFG.name = "randomwoman_cfg" +RANDOMWOMAN_CFG.full_name = ".ftcfg.randomwoman_cfg" +RANDOMWOMAN_CFG.nested_types = {} +RANDOMWOMAN_CFG.enum_types = {} +RANDOMWOMAN_CFG.fields = {RANDOMWOMAN_CFG_NAME0_FIELD, RANDOMWOMAN_CFG_NAME1_FIELD} +RANDOMWOMAN_CFG.is_extendable = false +RANDOMWOMAN_CFG.extensions = {} +RANDOMWOMAN_CFGS_ITEMS_FIELD.name = "items" +RANDOMWOMAN_CFGS_ITEMS_FIELD.full_name = ".ftcfg.randomwoman_cfgs.items" +RANDOMWOMAN_CFGS_ITEMS_FIELD.number = 1 +RANDOMWOMAN_CFGS_ITEMS_FIELD.index = 0 +RANDOMWOMAN_CFGS_ITEMS_FIELD.label = 3 +RANDOMWOMAN_CFGS_ITEMS_FIELD.has_default_value = false +RANDOMWOMAN_CFGS_ITEMS_FIELD.default_value = {} +RANDOMWOMAN_CFGS_ITEMS_FIELD.message_type = RANDOMWOMAN_CFG +RANDOMWOMAN_CFGS_ITEMS_FIELD.type = 11 +RANDOMWOMAN_CFGS_ITEMS_FIELD.cpp_type = 10 + +RANDOMWOMAN_CFGS.name = "randomwoman_cfgs" +RANDOMWOMAN_CFGS.full_name = ".ftcfg.randomwoman_cfgs" +RANDOMWOMAN_CFGS.nested_types = {} +RANDOMWOMAN_CFGS.enum_types = {} +RANDOMWOMAN_CFGS.fields = {RANDOMWOMAN_CFGS_ITEMS_FIELD} +RANDOMWOMAN_CFGS.is_extendable = false +RANDOMWOMAN_CFGS.extensions = {} +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.name = "star_level" +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.star_level" +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.number = 1 +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.index = 0 +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.default_value = 0 +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.type = 13 +SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD.cpp_type = 3 + +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.name = "level" +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.level" +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.number = 2 +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.index = 1 +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.default_value = 0 +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.type = 13 +SOUL_BASE_ATTR_CFG_LEVEL_FIELD.cpp_type = 3 + +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.name = "fight_power" +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.fight_power" +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.number = 3 +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.index = 2 +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.default_value = 0 +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.type = 5 +SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD.cpp_type = 1 + +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.name = "attack" +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.attack" +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.number = 4 +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.index = 3 +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_ATTACK_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.name = "defense" +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.defense" +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.number = 5 +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.index = 4 +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_DEFENSE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.name = "maxHp" +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.maxHp" +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.number = 6 +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.index = 5 +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_MAXHP_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.name = "criticalRate" +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.criticalRate" +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.number = 7 +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.index = 6 +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.name = "criticalPowerRate" +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.criticalPowerRate" +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.number = 8 +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.index = 7 +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.name = "hitRate" +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.hitRate" +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.number = 9 +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.index = 8 +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_HITRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.name = "defyBlockRate" +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.defyBlockRate" +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.number = 10 +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.index = 9 +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_MAUD_FIELD.name = "maud" +SOUL_BASE_ATTR_CFG_MAUD_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.maud" +SOUL_BASE_ATTR_CFG_MAUD_FIELD.number = 11 +SOUL_BASE_ATTR_CFG_MAUD_FIELD.index = 10 +SOUL_BASE_ATTR_CFG_MAUD_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_MAUD_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_MAUD_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_MAUD_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_MAUD_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_MIND_FIELD.name = "mind" +SOUL_BASE_ATTR_CFG_MIND_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.mind" +SOUL_BASE_ATTR_CFG_MIND_FIELD.number = 12 +SOUL_BASE_ATTR_CFG_MIND_FIELD.index = 11 +SOUL_BASE_ATTR_CFG_MIND_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_MIND_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_MIND_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_MIND_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_MIND_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.name = "constitution" +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.constitution" +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.number = 13 +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.index = 12 +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.name = "blockRate" +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.blockRate" +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.number = 14 +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.index = 13 +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.name = "dodgeRate" +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.dodgeRate" +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.number = 15 +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.index = 14 +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_DODGERATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.name = "antiCriticalRate" +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.antiCriticalRate" +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.number = 16 +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.index = 15 +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.name = "antiCriticalPowerRate" +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.antiCriticalPowerRate" +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.number = 17 +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.index = 16 +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.name = "hpHitReturn" +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.hpHitReturn" +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.number = 18 +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.index = 17 +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.name = "intensity" +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.intensity" +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.number = 19 +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.index = 18 +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_INTENSITY_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.name = "defyDefenseRate" +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.defyDefenseRate" +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.number = 20 +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.index = 19 +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.name = "deadlyRate" +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.full_name = ".ftcfg.soul_base_attr_cfg.deadlyRate" +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.number = 21 +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.index = 20 +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.label = 2 +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.default_value = 0.0 +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.type = 2 +SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD.cpp_type = 6 + +SOUL_BASE_ATTR_CFG.name = "soul_base_attr_cfg" +SOUL_BASE_ATTR_CFG.full_name = ".ftcfg.soul_base_attr_cfg" +SOUL_BASE_ATTR_CFG.nested_types = {} +SOUL_BASE_ATTR_CFG.enum_types = {} +SOUL_BASE_ATTR_CFG.fields = {SOUL_BASE_ATTR_CFG_STAR_LEVEL_FIELD, SOUL_BASE_ATTR_CFG_LEVEL_FIELD, SOUL_BASE_ATTR_CFG_FIGHT_POWER_FIELD, SOUL_BASE_ATTR_CFG_ATTACK_FIELD, SOUL_BASE_ATTR_CFG_DEFENSE_FIELD, SOUL_BASE_ATTR_CFG_MAXHP_FIELD, SOUL_BASE_ATTR_CFG_CRITICALRATE_FIELD, SOUL_BASE_ATTR_CFG_CRITICALPOWERRATE_FIELD, SOUL_BASE_ATTR_CFG_HITRATE_FIELD, SOUL_BASE_ATTR_CFG_DEFYBLOCKRATE_FIELD, SOUL_BASE_ATTR_CFG_MAUD_FIELD, SOUL_BASE_ATTR_CFG_MIND_FIELD, SOUL_BASE_ATTR_CFG_CONSTITUTION_FIELD, SOUL_BASE_ATTR_CFG_BLOCKRATE_FIELD, SOUL_BASE_ATTR_CFG_DODGERATE_FIELD, SOUL_BASE_ATTR_CFG_ANTICRITICALRATE_FIELD, SOUL_BASE_ATTR_CFG_ANTICRITICALPOWERRATE_FIELD, SOUL_BASE_ATTR_CFG_HPHITRETURN_FIELD, SOUL_BASE_ATTR_CFG_INTENSITY_FIELD, SOUL_BASE_ATTR_CFG_DEFYDEFENSERATE_FIELD, SOUL_BASE_ATTR_CFG_DEADLYRATE_FIELD} +SOUL_BASE_ATTR_CFG.is_extendable = false +SOUL_BASE_ATTR_CFG.extensions = {} +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.name = "items" +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.full_name = ".ftcfg.soul_base_attr_cfgs.items" +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.number = 1 +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.index = 0 +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.label = 3 +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.has_default_value = false +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.default_value = {} +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.message_type = SOUL_BASE_ATTR_CFG +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.type = 11 +SOUL_BASE_ATTR_CFGS_ITEMS_FIELD.cpp_type = 10 + +SOUL_BASE_ATTR_CFGS.name = "soul_base_attr_cfgs" +SOUL_BASE_ATTR_CFGS.full_name = ".ftcfg.soul_base_attr_cfgs" +SOUL_BASE_ATTR_CFGS.nested_types = {} +SOUL_BASE_ATTR_CFGS.enum_types = {} +SOUL_BASE_ATTR_CFGS.fields = {SOUL_BASE_ATTR_CFGS_ITEMS_FIELD} +SOUL_BASE_ATTR_CFGS.is_extendable = false +SOUL_BASE_ATTR_CFGS.extensions = {} +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.name = "star_level" +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.full_name = ".ftcfg.soul_magic_attr_cfg.star_level" +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.number = 1 +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.index = 0 +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.label = 2 +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.has_default_value = false +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.default_value = 0 +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.type = 13 +SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD.cpp_type = 3 + +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.name = "level" +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.full_name = ".ftcfg.soul_magic_attr_cfg.level" +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.number = 2 +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.index = 1 +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.label = 2 +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.has_default_value = false +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.default_value = 0 +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.type = 13 +SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD.cpp_type = 3 + +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.name = "fight_power" +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.full_name = ".ftcfg.soul_magic_attr_cfg.fight_power" +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.number = 3 +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.index = 2 +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.label = 2 +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.has_default_value = false +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.default_value = 0 +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.type = 5 +SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD.cpp_type = 1 + +SOUL_MAGIC_ATTR_CFG.name = "soul_magic_attr_cfg" +SOUL_MAGIC_ATTR_CFG.full_name = ".ftcfg.soul_magic_attr_cfg" +SOUL_MAGIC_ATTR_CFG.nested_types = {} +SOUL_MAGIC_ATTR_CFG.enum_types = {} +SOUL_MAGIC_ATTR_CFG.fields = {SOUL_MAGIC_ATTR_CFG_STAR_LEVEL_FIELD, SOUL_MAGIC_ATTR_CFG_LEVEL_FIELD, SOUL_MAGIC_ATTR_CFG_FIGHT_POWER_FIELD} +SOUL_MAGIC_ATTR_CFG.is_extendable = false +SOUL_MAGIC_ATTR_CFG.extensions = {} +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.name = "items" +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.full_name = ".ftcfg.soul_magic_attr_cfgs.items" +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.number = 1 +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.index = 0 +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.label = 3 +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.has_default_value = false +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.default_value = {} +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.message_type = SOUL_MAGIC_ATTR_CFG +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.type = 11 +SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD.cpp_type = 10 + +SOUL_MAGIC_ATTR_CFGS.name = "soul_magic_attr_cfgs" +SOUL_MAGIC_ATTR_CFGS.full_name = ".ftcfg.soul_magic_attr_cfgs" +SOUL_MAGIC_ATTR_CFGS.nested_types = {} +SOUL_MAGIC_ATTR_CFGS.enum_types = {} +SOUL_MAGIC_ATTR_CFGS.fields = {SOUL_MAGIC_ATTR_CFGS_ITEMS_FIELD} +SOUL_MAGIC_ATTR_CFGS.is_extendable = false +SOUL_MAGIC_ATTR_CFGS.extensions = {} +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.name = "star_level" +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.star_level" +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.number = 1 +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.index = 0 +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.type = 13 +SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD.cpp_type = 3 + +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.name = "suitid" +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suitid" +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.number = 2 +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.index = 1 +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.type = 5 +SOUL_SUIT_ATTR_CFG_SUITID_FIELD.cpp_type = 1 + +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.name = "suitname" +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suitname" +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.number = 3 +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.index = 2 +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.default_value = "" +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.type = 9 +SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD.cpp_type = 9 + +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.name = "suit_num" +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suit_num" +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.number = 4 +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.index = 3 +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.type = 5 +SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD.cpp_type = 1 + +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.name = "prop_type" +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.prop_type" +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.number = 5 +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.index = 4 +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.default_value = nil +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPOPTYPE +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.type = 14 +SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD.cpp_type = 8 + +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.name = "suit_type" +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suit_type" +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.number = 6 +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.index = 5 +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.default_value = nil +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.type = 14 +SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD.cpp_type = 8 + +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.name = "fight_power" +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.fight_power" +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.number = 7 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.index = 6 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.type = 5 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD.cpp_type = 1 + +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.name = "suit_data" +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suit_data" +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.number = 8 +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.index = 7 +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.default_value = 0.0 +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.type = 2 +SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD.cpp_type = 6 + +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.name = "suit_cion" +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suit_cion" +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.number = 9 +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.index = 8 +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.type = 5 +SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD.cpp_type = 1 + +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.name = "suit_two_num" +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suit_two_num" +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.number = 10 +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.index = 9 +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.type = 5 +SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD.cpp_type = 1 + +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.name = "suit_skill" +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.suit_skill" +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.number = 11 +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.index = 10 +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.type = 5 +SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD.cpp_type = 1 + +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.name = "fight_power_two" +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.full_name = ".ftcfg.soul_suit_attr_cfg.fight_power_two" +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.number = 12 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.index = 11 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.label = 2 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.default_value = 0 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.type = 5 +SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD.cpp_type = 1 + +SOUL_SUIT_ATTR_CFG.name = "soul_suit_attr_cfg" +SOUL_SUIT_ATTR_CFG.full_name = ".ftcfg.soul_suit_attr_cfg" +SOUL_SUIT_ATTR_CFG.nested_types = {} +SOUL_SUIT_ATTR_CFG.enum_types = {} +SOUL_SUIT_ATTR_CFG.fields = {SOUL_SUIT_ATTR_CFG_STAR_LEVEL_FIELD, SOUL_SUIT_ATTR_CFG_SUITID_FIELD, SOUL_SUIT_ATTR_CFG_SUITNAME_FIELD, SOUL_SUIT_ATTR_CFG_SUIT_NUM_FIELD, SOUL_SUIT_ATTR_CFG_PROP_TYPE_FIELD, SOUL_SUIT_ATTR_CFG_SUIT_TYPE_FIELD, SOUL_SUIT_ATTR_CFG_FIGHT_POWER_FIELD, SOUL_SUIT_ATTR_CFG_SUIT_DATA_FIELD, SOUL_SUIT_ATTR_CFG_SUIT_CION_FIELD, SOUL_SUIT_ATTR_CFG_SUIT_TWO_NUM_FIELD, SOUL_SUIT_ATTR_CFG_SUIT_SKILL_FIELD, SOUL_SUIT_ATTR_CFG_FIGHT_POWER_TWO_FIELD} +SOUL_SUIT_ATTR_CFG.is_extendable = false +SOUL_SUIT_ATTR_CFG.extensions = {} +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.name = "items" +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.full_name = ".ftcfg.soul_suit_attr_cfgs.items" +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.number = 1 +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.index = 0 +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.label = 3 +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.has_default_value = false +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.default_value = {} +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.message_type = SOUL_SUIT_ATTR_CFG +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.type = 11 +SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD.cpp_type = 10 + +SOUL_SUIT_ATTR_CFGS.name = "soul_suit_attr_cfgs" +SOUL_SUIT_ATTR_CFGS.full_name = ".ftcfg.soul_suit_attr_cfgs" +SOUL_SUIT_ATTR_CFGS.nested_types = {} +SOUL_SUIT_ATTR_CFGS.enum_types = {} +SOUL_SUIT_ATTR_CFGS.fields = {SOUL_SUIT_ATTR_CFGS_ITEMS_FIELD} +SOUL_SUIT_ATTR_CFGS.is_extendable = false +SOUL_SUIT_ATTR_CFGS.extensions = {} +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.name = "star_level" +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.full_name = ".ftcfg.soul_level_up_cfg.star_level" +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.number = 1 +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.index = 0 +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.type = 13 +SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD.cpp_type = 3 + +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.name = "exp_one" +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_one" +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.number = 2 +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.index = 1 +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.name = "exp_two" +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_two" +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.number = 3 +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.index = 2 +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.name = "exp_three" +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_three" +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.number = 4 +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.index = 3 +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.name = "exp_four" +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_four" +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.number = 5 +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.index = 4 +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.name = "exp_five" +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_five" +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.number = 6 +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.index = 5 +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.name = "exp_six" +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_six" +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.number = 7 +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.index = 6 +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.name = "exp_seven" +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_seven" +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.number = 8 +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.index = 7 +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.name = "exp_eight" +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_eight" +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.number = 9 +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.index = 8 +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.name = "exp_nine" +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_nine" +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.number = 10 +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.index = 9 +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.name = "exp_ten" +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_ten" +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.number = 11 +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.index = 10 +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.name = "exp_change" +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.full_name = ".ftcfg.soul_level_up_cfg.exp_change" +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.number = 12 +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.index = 11 +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.label = 2 +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.default_value = 0 +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.type = 5 +SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD.cpp_type = 1 + +SOUL_LEVEL_UP_CFG.name = "soul_level_up_cfg" +SOUL_LEVEL_UP_CFG.full_name = ".ftcfg.soul_level_up_cfg" +SOUL_LEVEL_UP_CFG.nested_types = {} +SOUL_LEVEL_UP_CFG.enum_types = {} +SOUL_LEVEL_UP_CFG.fields = {SOUL_LEVEL_UP_CFG_STAR_LEVEL_FIELD, SOUL_LEVEL_UP_CFG_EXP_ONE_FIELD, SOUL_LEVEL_UP_CFG_EXP_TWO_FIELD, SOUL_LEVEL_UP_CFG_EXP_THREE_FIELD, SOUL_LEVEL_UP_CFG_EXP_FOUR_FIELD, SOUL_LEVEL_UP_CFG_EXP_FIVE_FIELD, SOUL_LEVEL_UP_CFG_EXP_SIX_FIELD, SOUL_LEVEL_UP_CFG_EXP_SEVEN_FIELD, SOUL_LEVEL_UP_CFG_EXP_EIGHT_FIELD, SOUL_LEVEL_UP_CFG_EXP_NINE_FIELD, SOUL_LEVEL_UP_CFG_EXP_TEN_FIELD, SOUL_LEVEL_UP_CFG_EXP_CHANGE_FIELD} +SOUL_LEVEL_UP_CFG.is_extendable = false +SOUL_LEVEL_UP_CFG.extensions = {} +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.name = "items" +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.full_name = ".ftcfg.soul_level_up_cfgs.items" +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.number = 1 +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.index = 0 +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.label = 3 +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.has_default_value = false +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.default_value = {} +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.message_type = SOUL_LEVEL_UP_CFG +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.type = 11 +SOUL_LEVEL_UP_CFGS_ITEMS_FIELD.cpp_type = 10 + +SOUL_LEVEL_UP_CFGS.name = "soul_level_up_cfgs" +SOUL_LEVEL_UP_CFGS.full_name = ".ftcfg.soul_level_up_cfgs" +SOUL_LEVEL_UP_CFGS.nested_types = {} +SOUL_LEVEL_UP_CFGS.enum_types = {} +SOUL_LEVEL_UP_CFGS.fields = {SOUL_LEVEL_UP_CFGS_ITEMS_FIELD} +SOUL_LEVEL_UP_CFGS.is_extendable = false +SOUL_LEVEL_UP_CFGS.extensions = {} +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.name = "magic_id" +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.magic_id" +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.number = 1 +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.index = 0 +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.default_value = 0 +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.type = 5 +SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD.cpp_type = 1 + +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.name = "magic_name" +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.magic_name" +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.number = 2 +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.index = 1 +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.default_value = "" +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.type = 9 +SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD.cpp_type = 9 + +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.name = "quality" +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.quality" +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.number = 3 +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.index = 2 +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.default_value = nil +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.enum_type = config_predefine_pb.EITEMCOLOR +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.type = 14 +SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD.cpp_type = 8 + +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.name = "proptype" +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.proptype" +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.number = 4 +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.index = 3 +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.default_value = nil +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.enum_type = config_predefine_pb.ECPROPOPTYPE +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.type = 14 +SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD.cpp_type = 8 + +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.name = "type" +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.type" +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.number = 5 +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.index = 4 +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.default_value = nil +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.enum_type = config_predefine_pb.ECPROPTYPE +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.type = 14 +SOUL_MAGIC_ROCK_CFG_TYPE_FIELD.cpp_type = 8 + +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.name = "min_data" +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.min_data" +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.number = 6 +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.index = 5 +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.default_value = 0.0 +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.type = 2 +SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD.cpp_type = 6 + +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.name = "max_data" +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.max_data" +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.number = 7 +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.index = 6 +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.default_value = 0.0 +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.type = 2 +SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD.cpp_type = 6 + +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.name = "max_add" +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.max_add" +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.number = 8 +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.index = 7 +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.default_value = 0.0 +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.type = 2 +SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD.cpp_type = 6 + +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.name = "success_ratio" +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.success_ratio" +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.number = 9 +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.index = 8 +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.default_value = 0.0 +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.type = 2 +SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD.cpp_type = 6 + +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.name = "icon" +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.full_name = ".ftcfg.soul_magic_rock_cfg.icon" +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.number = 10 +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.index = 9 +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.label = 2 +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.default_value = 0 +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.type = 5 +SOUL_MAGIC_ROCK_CFG_ICON_FIELD.cpp_type = 1 + +SOUL_MAGIC_ROCK_CFG.name = "soul_magic_rock_cfg" +SOUL_MAGIC_ROCK_CFG.full_name = ".ftcfg.soul_magic_rock_cfg" +SOUL_MAGIC_ROCK_CFG.nested_types = {} +SOUL_MAGIC_ROCK_CFG.enum_types = {} +SOUL_MAGIC_ROCK_CFG.fields = {SOUL_MAGIC_ROCK_CFG_MAGIC_ID_FIELD, SOUL_MAGIC_ROCK_CFG_MAGIC_NAME_FIELD, SOUL_MAGIC_ROCK_CFG_QUALITY_FIELD, SOUL_MAGIC_ROCK_CFG_PROPTYPE_FIELD, SOUL_MAGIC_ROCK_CFG_TYPE_FIELD, SOUL_MAGIC_ROCK_CFG_MIN_DATA_FIELD, SOUL_MAGIC_ROCK_CFG_MAX_DATA_FIELD, SOUL_MAGIC_ROCK_CFG_MAX_ADD_FIELD, SOUL_MAGIC_ROCK_CFG_SUCCESS_RATIO_FIELD, SOUL_MAGIC_ROCK_CFG_ICON_FIELD} +SOUL_MAGIC_ROCK_CFG.is_extendable = false +SOUL_MAGIC_ROCK_CFG.extensions = {} +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.name = "items" +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.full_name = ".ftcfg.soul_magic_rock_cfgs.items" +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.number = 1 +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.index = 0 +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.label = 3 +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.has_default_value = false +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.default_value = {} +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.message_type = SOUL_MAGIC_ROCK_CFG +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.type = 11 +SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD.cpp_type = 10 + +SOUL_MAGIC_ROCK_CFGS.name = "soul_magic_rock_cfgs" +SOUL_MAGIC_ROCK_CFGS.full_name = ".ftcfg.soul_magic_rock_cfgs" +SOUL_MAGIC_ROCK_CFGS.nested_types = {} +SOUL_MAGIC_ROCK_CFGS.enum_types = {} +SOUL_MAGIC_ROCK_CFGS.fields = {SOUL_MAGIC_ROCK_CFGS_ITEMS_FIELD} +SOUL_MAGIC_ROCK_CFGS.is_extendable = false +SOUL_MAGIC_ROCK_CFGS.extensions = {} +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.name = "refine_id" +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.full_name = ".ftcfg.soul_refine_rock_cfg.refine_id" +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.number = 1 +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.index = 0 +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.label = 2 +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.default_value = 0 +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.type = 5 +SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD.cpp_type = 1 + +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.name = "level" +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.full_name = ".ftcfg.soul_refine_rock_cfg.level" +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.number = 2 +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.index = 1 +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.label = 2 +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.default_value = 0 +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.type = 13 +SOUL_REFINE_ROCK_CFG_LEVEL_FIELD.cpp_type = 3 + +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.name = "count" +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.full_name = ".ftcfg.soul_refine_rock_cfg.count" +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.number = 3 +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.index = 2 +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.label = 2 +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.default_value = 0 +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.type = 5 +SOUL_REFINE_ROCK_CFG_COUNT_FIELD.cpp_type = 1 + +SOUL_REFINE_ROCK_CFG_ICON_FIELD.name = "icon" +SOUL_REFINE_ROCK_CFG_ICON_FIELD.full_name = ".ftcfg.soul_refine_rock_cfg.icon" +SOUL_REFINE_ROCK_CFG_ICON_FIELD.number = 4 +SOUL_REFINE_ROCK_CFG_ICON_FIELD.index = 3 +SOUL_REFINE_ROCK_CFG_ICON_FIELD.label = 2 +SOUL_REFINE_ROCK_CFG_ICON_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFG_ICON_FIELD.default_value = 0 +SOUL_REFINE_ROCK_CFG_ICON_FIELD.type = 5 +SOUL_REFINE_ROCK_CFG_ICON_FIELD.cpp_type = 1 + +SOUL_REFINE_ROCK_CFG_NAME_FIELD.name = "name" +SOUL_REFINE_ROCK_CFG_NAME_FIELD.full_name = ".ftcfg.soul_refine_rock_cfg.name" +SOUL_REFINE_ROCK_CFG_NAME_FIELD.number = 5 +SOUL_REFINE_ROCK_CFG_NAME_FIELD.index = 4 +SOUL_REFINE_ROCK_CFG_NAME_FIELD.label = 2 +SOUL_REFINE_ROCK_CFG_NAME_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFG_NAME_FIELD.default_value = 0 +SOUL_REFINE_ROCK_CFG_NAME_FIELD.type = 5 +SOUL_REFINE_ROCK_CFG_NAME_FIELD.cpp_type = 1 + +SOUL_REFINE_ROCK_CFG_DESC_FIELD.name = "desc" +SOUL_REFINE_ROCK_CFG_DESC_FIELD.full_name = ".ftcfg.soul_refine_rock_cfg.desc" +SOUL_REFINE_ROCK_CFG_DESC_FIELD.number = 6 +SOUL_REFINE_ROCK_CFG_DESC_FIELD.index = 5 +SOUL_REFINE_ROCK_CFG_DESC_FIELD.label = 2 +SOUL_REFINE_ROCK_CFG_DESC_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFG_DESC_FIELD.default_value = 0 +SOUL_REFINE_ROCK_CFG_DESC_FIELD.type = 5 +SOUL_REFINE_ROCK_CFG_DESC_FIELD.cpp_type = 1 + +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.name = "position" +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.full_name = ".ftcfg.soul_refine_rock_cfg.position" +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.number = 7 +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.index = 6 +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.label = 2 +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.default_value = 0 +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.type = 5 +SOUL_REFINE_ROCK_CFG_POSITION_FIELD.cpp_type = 1 + +SOUL_REFINE_ROCK_CFG.name = "soul_refine_rock_cfg" +SOUL_REFINE_ROCK_CFG.full_name = ".ftcfg.soul_refine_rock_cfg" +SOUL_REFINE_ROCK_CFG.nested_types = {} +SOUL_REFINE_ROCK_CFG.enum_types = {} +SOUL_REFINE_ROCK_CFG.fields = {SOUL_REFINE_ROCK_CFG_REFINE_ID_FIELD, SOUL_REFINE_ROCK_CFG_LEVEL_FIELD, SOUL_REFINE_ROCK_CFG_COUNT_FIELD, SOUL_REFINE_ROCK_CFG_ICON_FIELD, SOUL_REFINE_ROCK_CFG_NAME_FIELD, SOUL_REFINE_ROCK_CFG_DESC_FIELD, SOUL_REFINE_ROCK_CFG_POSITION_FIELD} +SOUL_REFINE_ROCK_CFG.is_extendable = false +SOUL_REFINE_ROCK_CFG.extensions = {} +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.name = "items" +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.full_name = ".ftcfg.soul_refine_rock_cfgs.items" +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.number = 1 +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.index = 0 +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.label = 3 +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.has_default_value = false +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.default_value = {} +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.message_type = SOUL_REFINE_ROCK_CFG +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.type = 11 +SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD.cpp_type = 10 + +SOUL_REFINE_ROCK_CFGS.name = "soul_refine_rock_cfgs" +SOUL_REFINE_ROCK_CFGS.full_name = ".ftcfg.soul_refine_rock_cfgs" +SOUL_REFINE_ROCK_CFGS.nested_types = {} +SOUL_REFINE_ROCK_CFGS.enum_types = {} +SOUL_REFINE_ROCK_CFGS.fields = {SOUL_REFINE_ROCK_CFGS_ITEMS_FIELD} +SOUL_REFINE_ROCK_CFGS.is_extendable = false +SOUL_REFINE_ROCK_CFGS.extensions = {} +WIZARD_TASK_CFG_LEVEL_ID_FIELD.name = "level_id" +WIZARD_TASK_CFG_LEVEL_ID_FIELD.full_name = ".ftcfg.wizard_task_cfg.level_id" +WIZARD_TASK_CFG_LEVEL_ID_FIELD.number = 1 +WIZARD_TASK_CFG_LEVEL_ID_FIELD.index = 0 +WIZARD_TASK_CFG_LEVEL_ID_FIELD.label = 2 +WIZARD_TASK_CFG_LEVEL_ID_FIELD.has_default_value = false +WIZARD_TASK_CFG_LEVEL_ID_FIELD.default_value = 0 +WIZARD_TASK_CFG_LEVEL_ID_FIELD.type = 5 +WIZARD_TASK_CFG_LEVEL_ID_FIELD.cpp_type = 1 + +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.name = "level_min" +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.full_name = ".ftcfg.wizard_task_cfg.level_min" +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.number = 2 +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.index = 1 +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.label = 2 +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.has_default_value = false +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.default_value = 0 +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.type = 5 +WIZARD_TASK_CFG_LEVEL_MIN_FIELD.cpp_type = 1 + +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.name = "use_item_id" +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.full_name = ".ftcfg.wizard_task_cfg.use_item_id" +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.number = 3 +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.index = 2 +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.label = 2 +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.has_default_value = false +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.default_value = 0 +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.type = 5 +WIZARD_TASK_CFG_USE_ITEM_ID_FIELD.cpp_type = 1 + +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.name = "use_item_num" +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.full_name = ".ftcfg.wizard_task_cfg.use_item_num" +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.number = 4 +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.index = 3 +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.label = 2 +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.has_default_value = false +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.default_value = 0 +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.type = 5 +WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD.cpp_type = 1 + +WIZARD_TASK_CFG.name = "wizard_task_cfg" +WIZARD_TASK_CFG.full_name = ".ftcfg.wizard_task_cfg" +WIZARD_TASK_CFG.nested_types = {} +WIZARD_TASK_CFG.enum_types = {} +WIZARD_TASK_CFG.fields = {WIZARD_TASK_CFG_LEVEL_ID_FIELD, WIZARD_TASK_CFG_LEVEL_MIN_FIELD, WIZARD_TASK_CFG_USE_ITEM_ID_FIELD, WIZARD_TASK_CFG_USE_ITEM_NUM_FIELD} +WIZARD_TASK_CFG.is_extendable = false +WIZARD_TASK_CFG.extensions = {} +WIZARD_TASK_CFGS_ITEMS_FIELD.name = "items" +WIZARD_TASK_CFGS_ITEMS_FIELD.full_name = ".ftcfg.wizard_task_cfgs.items" +WIZARD_TASK_CFGS_ITEMS_FIELD.number = 1 +WIZARD_TASK_CFGS_ITEMS_FIELD.index = 0 +WIZARD_TASK_CFGS_ITEMS_FIELD.label = 3 +WIZARD_TASK_CFGS_ITEMS_FIELD.has_default_value = false +WIZARD_TASK_CFGS_ITEMS_FIELD.default_value = {} +WIZARD_TASK_CFGS_ITEMS_FIELD.message_type = WIZARD_TASK_CFG +WIZARD_TASK_CFGS_ITEMS_FIELD.type = 11 +WIZARD_TASK_CFGS_ITEMS_FIELD.cpp_type = 10 + +WIZARD_TASK_CFGS.name = "wizard_task_cfgs" +WIZARD_TASK_CFGS.full_name = ".ftcfg.wizard_task_cfgs" +WIZARD_TASK_CFGS.nested_types = {} +WIZARD_TASK_CFGS.enum_types = {} +WIZARD_TASK_CFGS.fields = {WIZARD_TASK_CFGS_ITEMS_FIELD} +WIZARD_TASK_CFGS.is_extendable = false +WIZARD_TASK_CFGS.extensions = {} +WIZARD_LEVEL_CFG_ID_FIELD.name = "id" +WIZARD_LEVEL_CFG_ID_FIELD.full_name = ".ftcfg.wizard_level_cfg.id" +WIZARD_LEVEL_CFG_ID_FIELD.number = 1 +WIZARD_LEVEL_CFG_ID_FIELD.index = 0 +WIZARD_LEVEL_CFG_ID_FIELD.label = 2 +WIZARD_LEVEL_CFG_ID_FIELD.has_default_value = false +WIZARD_LEVEL_CFG_ID_FIELD.default_value = 0 +WIZARD_LEVEL_CFG_ID_FIELD.type = 5 +WIZARD_LEVEL_CFG_ID_FIELD.cpp_type = 1 + +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.name = "legendary" +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.full_name = ".ftcfg.wizard_level_cfg.legendary" +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.number = 2 +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.index = 1 +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.label = 2 +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.has_default_value = false +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.default_value = 0 +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.type = 5 +WIZARD_LEVEL_CFG_LEGENDARY_FIELD.cpp_type = 1 + +WIZARD_LEVEL_CFG_ICON_ID_FIELD.name = "icon_id" +WIZARD_LEVEL_CFG_ICON_ID_FIELD.full_name = ".ftcfg.wizard_level_cfg.icon_id" +WIZARD_LEVEL_CFG_ICON_ID_FIELD.number = 3 +WIZARD_LEVEL_CFG_ICON_ID_FIELD.index = 2 +WIZARD_LEVEL_CFG_ICON_ID_FIELD.label = 2 +WIZARD_LEVEL_CFG_ICON_ID_FIELD.has_default_value = false +WIZARD_LEVEL_CFG_ICON_ID_FIELD.default_value = 0 +WIZARD_LEVEL_CFG_ICON_ID_FIELD.type = 5 +WIZARD_LEVEL_CFG_ICON_ID_FIELD.cpp_type = 1 + +WIZARD_LEVEL_CFG_NAME_FIELD.name = "name" +WIZARD_LEVEL_CFG_NAME_FIELD.full_name = ".ftcfg.wizard_level_cfg.name" +WIZARD_LEVEL_CFG_NAME_FIELD.number = 4 +WIZARD_LEVEL_CFG_NAME_FIELD.index = 3 +WIZARD_LEVEL_CFG_NAME_FIELD.label = 2 +WIZARD_LEVEL_CFG_NAME_FIELD.has_default_value = false +WIZARD_LEVEL_CFG_NAME_FIELD.default_value = 0 +WIZARD_LEVEL_CFG_NAME_FIELD.type = 5 +WIZARD_LEVEL_CFG_NAME_FIELD.cpp_type = 1 + +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.name = "reward_id" +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.full_name = ".ftcfg.wizard_level_cfg.reward_id" +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.number = 5 +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.index = 4 +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.label = 2 +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.has_default_value = false +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.default_value = 0 +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.type = 5 +WIZARD_LEVEL_CFG_REWARD_ID_FIELD.cpp_type = 1 + +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.name = "del_legendary" +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.full_name = ".ftcfg.wizard_level_cfg.del_legendary" +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.number = 6 +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.index = 5 +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.label = 2 +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.has_default_value = false +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.default_value = 0 +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.type = 5 +WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD.cpp_type = 1 + +WIZARD_LEVEL_CFG.name = "wizard_level_cfg" +WIZARD_LEVEL_CFG.full_name = ".ftcfg.wizard_level_cfg" +WIZARD_LEVEL_CFG.nested_types = {} +WIZARD_LEVEL_CFG.enum_types = {} +WIZARD_LEVEL_CFG.fields = {WIZARD_LEVEL_CFG_ID_FIELD, WIZARD_LEVEL_CFG_LEGENDARY_FIELD, WIZARD_LEVEL_CFG_ICON_ID_FIELD, WIZARD_LEVEL_CFG_NAME_FIELD, WIZARD_LEVEL_CFG_REWARD_ID_FIELD, WIZARD_LEVEL_CFG_DEL_LEGENDARY_FIELD} +WIZARD_LEVEL_CFG.is_extendable = false +WIZARD_LEVEL_CFG.extensions = {} +WIZARD_LEVEL_CFGS_ITEMS_FIELD.name = "items" +WIZARD_LEVEL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.wizard_level_cfgs.items" +WIZARD_LEVEL_CFGS_ITEMS_FIELD.number = 1 +WIZARD_LEVEL_CFGS_ITEMS_FIELD.index = 0 +WIZARD_LEVEL_CFGS_ITEMS_FIELD.label = 3 +WIZARD_LEVEL_CFGS_ITEMS_FIELD.has_default_value = false +WIZARD_LEVEL_CFGS_ITEMS_FIELD.default_value = {} +WIZARD_LEVEL_CFGS_ITEMS_FIELD.message_type = WIZARD_LEVEL_CFG +WIZARD_LEVEL_CFGS_ITEMS_FIELD.type = 11 +WIZARD_LEVEL_CFGS_ITEMS_FIELD.cpp_type = 10 + +WIZARD_LEVEL_CFGS.name = "wizard_level_cfgs" +WIZARD_LEVEL_CFGS.full_name = ".ftcfg.wizard_level_cfgs" +WIZARD_LEVEL_CFGS.nested_types = {} +WIZARD_LEVEL_CFGS.enum_types = {} +WIZARD_LEVEL_CFGS.fields = {WIZARD_LEVEL_CFGS_ITEMS_FIELD} +WIZARD_LEVEL_CFGS.is_extendable = false +WIZARD_LEVEL_CFGS.extensions = {} +WIZARD_BASE_CFG_ID_FIELD.name = "id" +WIZARD_BASE_CFG_ID_FIELD.full_name = ".ftcfg.wizard_base_cfg.id" +WIZARD_BASE_CFG_ID_FIELD.number = 1 +WIZARD_BASE_CFG_ID_FIELD.index = 0 +WIZARD_BASE_CFG_ID_FIELD.label = 2 +WIZARD_BASE_CFG_ID_FIELD.has_default_value = false +WIZARD_BASE_CFG_ID_FIELD.default_value = 0 +WIZARD_BASE_CFG_ID_FIELD.type = 5 +WIZARD_BASE_CFG_ID_FIELD.cpp_type = 1 + +WIZARD_BASE_CFG_DATA_FIELD.name = "data" +WIZARD_BASE_CFG_DATA_FIELD.full_name = ".ftcfg.wizard_base_cfg.data" +WIZARD_BASE_CFG_DATA_FIELD.number = 2 +WIZARD_BASE_CFG_DATA_FIELD.index = 1 +WIZARD_BASE_CFG_DATA_FIELD.label = 2 +WIZARD_BASE_CFG_DATA_FIELD.has_default_value = false +WIZARD_BASE_CFG_DATA_FIELD.default_value = 0.0 +WIZARD_BASE_CFG_DATA_FIELD.type = 1 +WIZARD_BASE_CFG_DATA_FIELD.cpp_type = 5 + +WIZARD_BASE_CFG.name = "wizard_base_cfg" +WIZARD_BASE_CFG.full_name = ".ftcfg.wizard_base_cfg" +WIZARD_BASE_CFG.nested_types = {} +WIZARD_BASE_CFG.enum_types = {} +WIZARD_BASE_CFG.fields = {WIZARD_BASE_CFG_ID_FIELD, WIZARD_BASE_CFG_DATA_FIELD} +WIZARD_BASE_CFG.is_extendable = false +WIZARD_BASE_CFG.extensions = {} +WIZARD_BASE_CFGS_ITEMS_FIELD.name = "items" +WIZARD_BASE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.wizard_base_cfgs.items" +WIZARD_BASE_CFGS_ITEMS_FIELD.number = 1 +WIZARD_BASE_CFGS_ITEMS_FIELD.index = 0 +WIZARD_BASE_CFGS_ITEMS_FIELD.label = 3 +WIZARD_BASE_CFGS_ITEMS_FIELD.has_default_value = false +WIZARD_BASE_CFGS_ITEMS_FIELD.default_value = {} +WIZARD_BASE_CFGS_ITEMS_FIELD.message_type = WIZARD_BASE_CFG +WIZARD_BASE_CFGS_ITEMS_FIELD.type = 11 +WIZARD_BASE_CFGS_ITEMS_FIELD.cpp_type = 10 + +WIZARD_BASE_CFGS.name = "wizard_base_cfgs" +WIZARD_BASE_CFGS.full_name = ".ftcfg.wizard_base_cfgs" +WIZARD_BASE_CFGS.nested_types = {} +WIZARD_BASE_CFGS.enum_types = {} +WIZARD_BASE_CFGS.fields = {WIZARD_BASE_CFGS_ITEMS_FIELD} +WIZARD_BASE_CFGS.is_extendable = false +WIZARD_BASE_CFGS.extensions = {} +MAGIC_DIVINE_CFG_ID_FIELD.name = "id" +MAGIC_DIVINE_CFG_ID_FIELD.full_name = ".ftcfg.magic_divine_cfg.id" +MAGIC_DIVINE_CFG_ID_FIELD.number = 1 +MAGIC_DIVINE_CFG_ID_FIELD.index = 0 +MAGIC_DIVINE_CFG_ID_FIELD.label = 2 +MAGIC_DIVINE_CFG_ID_FIELD.has_default_value = false +MAGIC_DIVINE_CFG_ID_FIELD.default_value = 0 +MAGIC_DIVINE_CFG_ID_FIELD.type = 5 +MAGIC_DIVINE_CFG_ID_FIELD.cpp_type = 1 + +MAGIC_DIVINE_CFG_PROP_ID_FIELD.name = "prop_id" +MAGIC_DIVINE_CFG_PROP_ID_FIELD.full_name = ".ftcfg.magic_divine_cfg.prop_id" +MAGIC_DIVINE_CFG_PROP_ID_FIELD.number = 2 +MAGIC_DIVINE_CFG_PROP_ID_FIELD.index = 1 +MAGIC_DIVINE_CFG_PROP_ID_FIELD.label = 3 +MAGIC_DIVINE_CFG_PROP_ID_FIELD.has_default_value = false +MAGIC_DIVINE_CFG_PROP_ID_FIELD.default_value = {} +MAGIC_DIVINE_CFG_PROP_ID_FIELD.type = 5 +MAGIC_DIVINE_CFG_PROP_ID_FIELD.cpp_type = 1 + +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.name = "prop_num" +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.full_name = ".ftcfg.magic_divine_cfg.prop_num" +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.number = 3 +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.index = 2 +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.label = 3 +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.has_default_value = false +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.default_value = {} +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.type = 5 +MAGIC_DIVINE_CFG_PROP_NUM_FIELD.cpp_type = 1 + +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.name = "week_day" +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.full_name = ".ftcfg.magic_divine_cfg.week_day" +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.number = 4 +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.index = 3 +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.label = 2 +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.has_default_value = false +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.default_value = 0 +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.type = 5 +MAGIC_DIVINE_CFG_WEEK_DAY_FIELD.cpp_type = 1 + +MAGIC_DIVINE_CFG_TIMES_FIELD.name = "times" +MAGIC_DIVINE_CFG_TIMES_FIELD.full_name = ".ftcfg.magic_divine_cfg.times" +MAGIC_DIVINE_CFG_TIMES_FIELD.number = 5 +MAGIC_DIVINE_CFG_TIMES_FIELD.index = 4 +MAGIC_DIVINE_CFG_TIMES_FIELD.label = 3 +MAGIC_DIVINE_CFG_TIMES_FIELD.has_default_value = false +MAGIC_DIVINE_CFG_TIMES_FIELD.default_value = {} +MAGIC_DIVINE_CFG_TIMES_FIELD.type = 5 +MAGIC_DIVINE_CFG_TIMES_FIELD.cpp_type = 1 + +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.name = "section_id" +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.full_name = ".ftcfg.magic_divine_cfg.section_id" +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.number = 6 +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.index = 5 +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.label = 2 +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.has_default_value = false +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.default_value = 0 +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.type = 5 +MAGIC_DIVINE_CFG_SECTION_ID_FIELD.cpp_type = 1 + +MAGIC_DIVINE_CFG_LEVEL_FIELD.name = "level" +MAGIC_DIVINE_CFG_LEVEL_FIELD.full_name = ".ftcfg.magic_divine_cfg.level" +MAGIC_DIVINE_CFG_LEVEL_FIELD.number = 7 +MAGIC_DIVINE_CFG_LEVEL_FIELD.index = 6 +MAGIC_DIVINE_CFG_LEVEL_FIELD.label = 2 +MAGIC_DIVINE_CFG_LEVEL_FIELD.has_default_value = false +MAGIC_DIVINE_CFG_LEVEL_FIELD.default_value = 0 +MAGIC_DIVINE_CFG_LEVEL_FIELD.type = 5 +MAGIC_DIVINE_CFG_LEVEL_FIELD.cpp_type = 1 + +MAGIC_DIVINE_CFG.name = "magic_divine_cfg" +MAGIC_DIVINE_CFG.full_name = ".ftcfg.magic_divine_cfg" +MAGIC_DIVINE_CFG.nested_types = {} +MAGIC_DIVINE_CFG.enum_types = {} +MAGIC_DIVINE_CFG.fields = {MAGIC_DIVINE_CFG_ID_FIELD, MAGIC_DIVINE_CFG_PROP_ID_FIELD, MAGIC_DIVINE_CFG_PROP_NUM_FIELD, MAGIC_DIVINE_CFG_WEEK_DAY_FIELD, MAGIC_DIVINE_CFG_TIMES_FIELD, MAGIC_DIVINE_CFG_SECTION_ID_FIELD, MAGIC_DIVINE_CFG_LEVEL_FIELD} +MAGIC_DIVINE_CFG.is_extendable = false +MAGIC_DIVINE_CFG.extensions = {} +MAGIC_DIVINE_CFGS_ITEMS_FIELD.name = "items" +MAGIC_DIVINE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_divine_cfgs.items" +MAGIC_DIVINE_CFGS_ITEMS_FIELD.number = 1 +MAGIC_DIVINE_CFGS_ITEMS_FIELD.index = 0 +MAGIC_DIVINE_CFGS_ITEMS_FIELD.label = 3 +MAGIC_DIVINE_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_DIVINE_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_DIVINE_CFGS_ITEMS_FIELD.message_type = MAGIC_DIVINE_CFG +MAGIC_DIVINE_CFGS_ITEMS_FIELD.type = 11 +MAGIC_DIVINE_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_DIVINE_CFGS.name = "magic_divine_cfgs" +MAGIC_DIVINE_CFGS.full_name = ".ftcfg.magic_divine_cfgs" +MAGIC_DIVINE_CFGS.nested_types = {} +MAGIC_DIVINE_CFGS.enum_types = {} +MAGIC_DIVINE_CFGS.fields = {MAGIC_DIVINE_CFGS_ITEMS_FIELD} +MAGIC_DIVINE_CFGS.is_extendable = false +MAGIC_DIVINE_CFGS.extensions = {} +DIVINE_SECTION_CFG_ID_FIELD.name = "id" +DIVINE_SECTION_CFG_ID_FIELD.full_name = ".ftcfg.divine_section_cfg.id" +DIVINE_SECTION_CFG_ID_FIELD.number = 1 +DIVINE_SECTION_CFG_ID_FIELD.index = 0 +DIVINE_SECTION_CFG_ID_FIELD.label = 2 +DIVINE_SECTION_CFG_ID_FIELD.has_default_value = false +DIVINE_SECTION_CFG_ID_FIELD.default_value = 0 +DIVINE_SECTION_CFG_ID_FIELD.type = 5 +DIVINE_SECTION_CFG_ID_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG_GROUP_FIELD.name = "group" +DIVINE_SECTION_CFG_GROUP_FIELD.full_name = ".ftcfg.divine_section_cfg.group" +DIVINE_SECTION_CFG_GROUP_FIELD.number = 2 +DIVINE_SECTION_CFG_GROUP_FIELD.index = 1 +DIVINE_SECTION_CFG_GROUP_FIELD.label = 2 +DIVINE_SECTION_CFG_GROUP_FIELD.has_default_value = false +DIVINE_SECTION_CFG_GROUP_FIELD.default_value = 0 +DIVINE_SECTION_CFG_GROUP_FIELD.type = 5 +DIVINE_SECTION_CFG_GROUP_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.name = "group_name" +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.full_name = ".ftcfg.divine_section_cfg.group_name" +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.number = 3 +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.index = 2 +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.label = 2 +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.has_default_value = false +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.default_value = 0 +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.type = 5 +DIVINE_SECTION_CFG_GROUP_NAME_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG_SECTION_FIELD.name = "section" +DIVINE_SECTION_CFG_SECTION_FIELD.full_name = ".ftcfg.divine_section_cfg.section" +DIVINE_SECTION_CFG_SECTION_FIELD.number = 4 +DIVINE_SECTION_CFG_SECTION_FIELD.index = 3 +DIVINE_SECTION_CFG_SECTION_FIELD.label = 2 +DIVINE_SECTION_CFG_SECTION_FIELD.has_default_value = false +DIVINE_SECTION_CFG_SECTION_FIELD.default_value = 0 +DIVINE_SECTION_CFG_SECTION_FIELD.type = 5 +DIVINE_SECTION_CFG_SECTION_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.name = "section_name" +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.full_name = ".ftcfg.divine_section_cfg.section_name" +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.number = 5 +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.index = 4 +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.label = 2 +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.has_default_value = false +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.default_value = 0 +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.type = 5 +DIVINE_SECTION_CFG_SECTION_NAME_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.name = "section_desc" +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.full_name = ".ftcfg.divine_section_cfg.section_desc" +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.number = 6 +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.index = 5 +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.label = 2 +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.has_default_value = false +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.default_value = 0 +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.type = 5 +DIVINE_SECTION_CFG_SECTION_DESC_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG_MISSION_ID_FIELD.name = "mission_id" +DIVINE_SECTION_CFG_MISSION_ID_FIELD.full_name = ".ftcfg.divine_section_cfg.mission_id" +DIVINE_SECTION_CFG_MISSION_ID_FIELD.number = 7 +DIVINE_SECTION_CFG_MISSION_ID_FIELD.index = 6 +DIVINE_SECTION_CFG_MISSION_ID_FIELD.label = 2 +DIVINE_SECTION_CFG_MISSION_ID_FIELD.has_default_value = false +DIVINE_SECTION_CFG_MISSION_ID_FIELD.default_value = 0 +DIVINE_SECTION_CFG_MISSION_ID_FIELD.type = 5 +DIVINE_SECTION_CFG_MISSION_ID_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.name = "partner_id" +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.full_name = ".ftcfg.divine_section_cfg.partner_id" +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.number = 8 +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.index = 7 +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.label = 3 +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.has_default_value = false +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.default_value = {} +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.type = 5 +DIVINE_SECTION_CFG_PARTNER_ID_FIELD.cpp_type = 1 + +DIVINE_SECTION_CFG.name = "divine_section_cfg" +DIVINE_SECTION_CFG.full_name = ".ftcfg.divine_section_cfg" +DIVINE_SECTION_CFG.nested_types = {} +DIVINE_SECTION_CFG.enum_types = {} +DIVINE_SECTION_CFG.fields = {DIVINE_SECTION_CFG_ID_FIELD, DIVINE_SECTION_CFG_GROUP_FIELD, DIVINE_SECTION_CFG_GROUP_NAME_FIELD, DIVINE_SECTION_CFG_SECTION_FIELD, DIVINE_SECTION_CFG_SECTION_NAME_FIELD, DIVINE_SECTION_CFG_SECTION_DESC_FIELD, DIVINE_SECTION_CFG_MISSION_ID_FIELD, DIVINE_SECTION_CFG_PARTNER_ID_FIELD} +DIVINE_SECTION_CFG.is_extendable = false +DIVINE_SECTION_CFG.extensions = {} +DIVINE_SECTION_CFGS_ITEMS_FIELD.name = "items" +DIVINE_SECTION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.divine_section_cfgs.items" +DIVINE_SECTION_CFGS_ITEMS_FIELD.number = 1 +DIVINE_SECTION_CFGS_ITEMS_FIELD.index = 0 +DIVINE_SECTION_CFGS_ITEMS_FIELD.label = 3 +DIVINE_SECTION_CFGS_ITEMS_FIELD.has_default_value = false +DIVINE_SECTION_CFGS_ITEMS_FIELD.default_value = {} +DIVINE_SECTION_CFGS_ITEMS_FIELD.message_type = DIVINE_SECTION_CFG +DIVINE_SECTION_CFGS_ITEMS_FIELD.type = 11 +DIVINE_SECTION_CFGS_ITEMS_FIELD.cpp_type = 10 + +DIVINE_SECTION_CFGS.name = "divine_section_cfgs" +DIVINE_SECTION_CFGS.full_name = ".ftcfg.divine_section_cfgs" +DIVINE_SECTION_CFGS.nested_types = {} +DIVINE_SECTION_CFGS.enum_types = {} +DIVINE_SECTION_CFGS.fields = {DIVINE_SECTION_CFGS_ITEMS_FIELD} +DIVINE_SECTION_CFGS.is_extendable = false +DIVINE_SECTION_CFGS.extensions = {} +DIVINE_MISSION_CFG_ID_FIELD.name = "id" +DIVINE_MISSION_CFG_ID_FIELD.full_name = ".ftcfg.divine_mission_cfg.id" +DIVINE_MISSION_CFG_ID_FIELD.number = 1 +DIVINE_MISSION_CFG_ID_FIELD.index = 0 +DIVINE_MISSION_CFG_ID_FIELD.label = 2 +DIVINE_MISSION_CFG_ID_FIELD.has_default_value = false +DIVINE_MISSION_CFG_ID_FIELD.default_value = 0 +DIVINE_MISSION_CFG_ID_FIELD.type = 5 +DIVINE_MISSION_CFG_ID_FIELD.cpp_type = 1 + +DIVINE_MISSION_CFG_MISSION_ID_FIELD.name = "mission_id" +DIVINE_MISSION_CFG_MISSION_ID_FIELD.full_name = ".ftcfg.divine_mission_cfg.mission_id" +DIVINE_MISSION_CFG_MISSION_ID_FIELD.number = 2 +DIVINE_MISSION_CFG_MISSION_ID_FIELD.index = 1 +DIVINE_MISSION_CFG_MISSION_ID_FIELD.label = 2 +DIVINE_MISSION_CFG_MISSION_ID_FIELD.has_default_value = false +DIVINE_MISSION_CFG_MISSION_ID_FIELD.default_value = 0 +DIVINE_MISSION_CFG_MISSION_ID_FIELD.type = 5 +DIVINE_MISSION_CFG_MISSION_ID_FIELD.cpp_type = 1 + +DIVINE_MISSION_CFG_RANGE_FIELD.name = "range" +DIVINE_MISSION_CFG_RANGE_FIELD.full_name = ".ftcfg.divine_mission_cfg.range" +DIVINE_MISSION_CFG_RANGE_FIELD.number = 3 +DIVINE_MISSION_CFG_RANGE_FIELD.index = 2 +DIVINE_MISSION_CFG_RANGE_FIELD.label = 2 +DIVINE_MISSION_CFG_RANGE_FIELD.has_default_value = false +DIVINE_MISSION_CFG_RANGE_FIELD.default_value = 0 +DIVINE_MISSION_CFG_RANGE_FIELD.type = 5 +DIVINE_MISSION_CFG_RANGE_FIELD.cpp_type = 1 + +DIVINE_MISSION_CFG_QUALITY_FIELD.name = "quality" +DIVINE_MISSION_CFG_QUALITY_FIELD.full_name = ".ftcfg.divine_mission_cfg.quality" +DIVINE_MISSION_CFG_QUALITY_FIELD.number = 4 +DIVINE_MISSION_CFG_QUALITY_FIELD.index = 3 +DIVINE_MISSION_CFG_QUALITY_FIELD.label = 2 +DIVINE_MISSION_CFG_QUALITY_FIELD.has_default_value = false +DIVINE_MISSION_CFG_QUALITY_FIELD.default_value = 0 +DIVINE_MISSION_CFG_QUALITY_FIELD.type = 5 +DIVINE_MISSION_CFG_QUALITY_FIELD.cpp_type = 1 + +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.name = "fetters_num" +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.full_name = ".ftcfg.divine_mission_cfg.fetters_num" +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.number = 5 +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.index = 4 +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.label = 2 +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.has_default_value = false +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.default_value = 0 +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.type = 5 +DIVINE_MISSION_CFG_FETTERS_NUM_FIELD.cpp_type = 1 + +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.name = "qualityrange" +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.full_name = ".ftcfg.divine_mission_cfg.qualityrange" +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.number = 6 +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.index = 5 +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.label = 2 +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.has_default_value = false +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.default_value = 0 +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.type = 5 +DIVINE_MISSION_CFG_QUALITYRANGE_FIELD.cpp_type = 1 + +DIVINE_MISSION_CFG.name = "divine_mission_cfg" +DIVINE_MISSION_CFG.full_name = ".ftcfg.divine_mission_cfg" +DIVINE_MISSION_CFG.nested_types = {} +DIVINE_MISSION_CFG.enum_types = {} +DIVINE_MISSION_CFG.fields = {DIVINE_MISSION_CFG_ID_FIELD, DIVINE_MISSION_CFG_MISSION_ID_FIELD, DIVINE_MISSION_CFG_RANGE_FIELD, DIVINE_MISSION_CFG_QUALITY_FIELD, DIVINE_MISSION_CFG_FETTERS_NUM_FIELD, DIVINE_MISSION_CFG_QUALITYRANGE_FIELD} +DIVINE_MISSION_CFG.is_extendable = false +DIVINE_MISSION_CFG.extensions = {} +DIVINE_MISSION_CFGS_ITEMS_FIELD.name = "items" +DIVINE_MISSION_CFGS_ITEMS_FIELD.full_name = ".ftcfg.divine_mission_cfgs.items" +DIVINE_MISSION_CFGS_ITEMS_FIELD.number = 1 +DIVINE_MISSION_CFGS_ITEMS_FIELD.index = 0 +DIVINE_MISSION_CFGS_ITEMS_FIELD.label = 3 +DIVINE_MISSION_CFGS_ITEMS_FIELD.has_default_value = false +DIVINE_MISSION_CFGS_ITEMS_FIELD.default_value = {} +DIVINE_MISSION_CFGS_ITEMS_FIELD.message_type = DIVINE_MISSION_CFG +DIVINE_MISSION_CFGS_ITEMS_FIELD.type = 11 +DIVINE_MISSION_CFGS_ITEMS_FIELD.cpp_type = 10 + +DIVINE_MISSION_CFGS.name = "divine_mission_cfgs" +DIVINE_MISSION_CFGS.full_name = ".ftcfg.divine_mission_cfgs" +DIVINE_MISSION_CFGS.nested_types = {} +DIVINE_MISSION_CFGS.enum_types = {} +DIVINE_MISSION_CFGS.fields = {DIVINE_MISSION_CFGS_ITEMS_FIELD} +DIVINE_MISSION_CFGS.is_extendable = false +DIVINE_MISSION_CFGS.extensions = {} +MAGIC_SKILL_CFG_ID_FIELD.name = "id" +MAGIC_SKILL_CFG_ID_FIELD.full_name = ".ftcfg.magic_skill_cfg.id" +MAGIC_SKILL_CFG_ID_FIELD.number = 1 +MAGIC_SKILL_CFG_ID_FIELD.index = 0 +MAGIC_SKILL_CFG_ID_FIELD.label = 2 +MAGIC_SKILL_CFG_ID_FIELD.has_default_value = false +MAGIC_SKILL_CFG_ID_FIELD.default_value = 0 +MAGIC_SKILL_CFG_ID_FIELD.type = 13 +MAGIC_SKILL_CFG_ID_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_LAYERID_FIELD.name = "layerid" +MAGIC_SKILL_CFG_LAYERID_FIELD.full_name = ".ftcfg.magic_skill_cfg.layerid" +MAGIC_SKILL_CFG_LAYERID_FIELD.number = 2 +MAGIC_SKILL_CFG_LAYERID_FIELD.index = 1 +MAGIC_SKILL_CFG_LAYERID_FIELD.label = 2 +MAGIC_SKILL_CFG_LAYERID_FIELD.has_default_value = false +MAGIC_SKILL_CFG_LAYERID_FIELD.default_value = 0 +MAGIC_SKILL_CFG_LAYERID_FIELD.type = 13 +MAGIC_SKILL_CFG_LAYERID_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.name = "max_level" +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.full_name = ".ftcfg.magic_skill_cfg.max_level" +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.number = 3 +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.index = 2 +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.label = 2 +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.has_default_value = false +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.default_value = 0 +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.type = 13 +MAGIC_SKILL_CFG_MAX_LEVEL_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.name = "magicid_arr" +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.full_name = ".ftcfg.magic_skill_cfg.magicid_arr" +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.number = 4 +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.index = 3 +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.label = 3 +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.has_default_value = false +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.default_value = {} +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.type = 13 +MAGIC_SKILL_CFG_MAGICID_ARR_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.name = "magic_type" +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.full_name = ".ftcfg.magic_skill_cfg.magic_type" +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.number = 5 +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.index = 4 +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.label = 2 +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.has_default_value = false +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.default_value = 0 +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.type = 13 +MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.name = "slot_lock_cond" +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.full_name = ".ftcfg.magic_skill_cfg.slot_lock_cond" +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.number = 6 +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.index = 5 +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.label = 2 +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.has_default_value = false +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.default_value = 0 +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.type = 13 +MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.name = "skill_position" +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.full_name = ".ftcfg.magic_skill_cfg.skill_position" +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.number = 7 +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.index = 6 +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.label = 2 +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.has_default_value = false +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.default_value = 0 +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.type = 13 +MAGIC_SKILL_CFG_SKILL_POSITION_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.name = "skill_icon" +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.full_name = ".ftcfg.magic_skill_cfg.skill_icon" +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.number = 8 +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.index = 7 +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.label = 2 +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.has_default_value = false +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.default_value = 0 +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.type = 13 +MAGIC_SKILL_CFG_SKILL_ICON_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.name = "skill_name" +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.full_name = ".ftcfg.magic_skill_cfg.skill_name" +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.number = 9 +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.index = 8 +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.label = 2 +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.has_default_value = false +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.default_value = 0 +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.type = 13 +MAGIC_SKILL_CFG_SKILL_NAME_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.name = "skill_condition" +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.full_name = ".ftcfg.magic_skill_cfg.skill_condition" +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.number = 10 +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.index = 9 +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.label = 2 +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.has_default_value = false +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.default_value = 0 +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.type = 13 +MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD.cpp_type = 3 + +MAGIC_SKILL_CFG.name = "magic_skill_cfg" +MAGIC_SKILL_CFG.full_name = ".ftcfg.magic_skill_cfg" +MAGIC_SKILL_CFG.nested_types = {} +MAGIC_SKILL_CFG.enum_types = {} +MAGIC_SKILL_CFG.fields = {MAGIC_SKILL_CFG_ID_FIELD, MAGIC_SKILL_CFG_LAYERID_FIELD, MAGIC_SKILL_CFG_MAX_LEVEL_FIELD, MAGIC_SKILL_CFG_MAGICID_ARR_FIELD, MAGIC_SKILL_CFG_MAGIC_TYPE_FIELD, MAGIC_SKILL_CFG_SLOT_LOCK_COND_FIELD, MAGIC_SKILL_CFG_SKILL_POSITION_FIELD, MAGIC_SKILL_CFG_SKILL_ICON_FIELD, MAGIC_SKILL_CFG_SKILL_NAME_FIELD, MAGIC_SKILL_CFG_SKILL_CONDITION_FIELD} +MAGIC_SKILL_CFG.is_extendable = false +MAGIC_SKILL_CFG.extensions = {} +MAGIC_SKILL_CFGS_ITEMS_FIELD.name = "items" +MAGIC_SKILL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_skill_cfgs.items" +MAGIC_SKILL_CFGS_ITEMS_FIELD.number = 1 +MAGIC_SKILL_CFGS_ITEMS_FIELD.index = 0 +MAGIC_SKILL_CFGS_ITEMS_FIELD.label = 3 +MAGIC_SKILL_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_SKILL_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_SKILL_CFGS_ITEMS_FIELD.message_type = MAGIC_SKILL_CFG +MAGIC_SKILL_CFGS_ITEMS_FIELD.type = 11 +MAGIC_SKILL_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_SKILL_CFGS.name = "magic_skill_cfgs" +MAGIC_SKILL_CFGS.full_name = ".ftcfg.magic_skill_cfgs" +MAGIC_SKILL_CFGS.nested_types = {} +MAGIC_SKILL_CFGS.enum_types = {} +MAGIC_SKILL_CFGS.fields = {MAGIC_SKILL_CFGS_ITEMS_FIELD} +MAGIC_SKILL_CFGS.is_extendable = false +MAGIC_SKILL_CFGS.extensions = {} +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.name = "level" +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.level" +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.number = 1 +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.index = 0 +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.label = 2 +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.default_value = 0 +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.type = 13 +MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD.cpp_type = 3 + +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.name = "next_level" +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.next_level" +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.number = 2 +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.index = 1 +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.label = 2 +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.default_value = 0 +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.type = 13 +MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD.cpp_type = 3 + +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.name = "magicid" +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.magicid" +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.number = 3 +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.index = 2 +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.label = 2 +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.default_value = 0 +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.type = 13 +MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD.cpp_type = 3 + +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.name = "attribute_type" +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.attribute_type" +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.number = 4 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.index = 3 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.label = 3 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.default_value = {} +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.type = 13 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD.cpp_type = 3 + +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.name = "attribute_value" +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.attribute_value" +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.number = 5 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.index = 4 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.label = 3 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.default_value = {} +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.type = 13 +MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD.cpp_type = 3 + +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.name = "formation_base_rate_incr" +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.formation_base_rate_incr" +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.number = 6 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.index = 5 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.label = 2 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.default_value = 0.0 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.type = 2 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD.cpp_type = 6 + +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.name = "formation_rate" +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.formation_rate" +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.number = 7 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.index = 6 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.label = 2 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.default_value = 0.0 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.type = 2 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD.cpp_type = 6 + +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.name = "formation_rate_incr" +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.formation_rate_incr" +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.number = 8 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.index = 7 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.label = 2 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.default_value = 0.0 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.type = 2 +MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD.cpp_type = 6 + +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.name = "skill_tips" +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.skill_tips" +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.number = 9 +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.index = 8 +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.label = 3 +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.default_value = {} +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.type = 13 +MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD.cpp_type = 3 + +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.name = "partner_tips" +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfg.partner_tips" +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.number = 10 +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.index = 9 +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.label = 3 +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.default_value = {} +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.type = 2 +MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD.cpp_type = 6 + +MAGIC_SKILL_UPLEVEL_CFG.name = "magic_skill_uplevel_cfg" +MAGIC_SKILL_UPLEVEL_CFG.full_name = ".ftcfg.magic_skill_uplevel_cfg" +MAGIC_SKILL_UPLEVEL_CFG.nested_types = {} +MAGIC_SKILL_UPLEVEL_CFG.enum_types = {} +MAGIC_SKILL_UPLEVEL_CFG.fields = {MAGIC_SKILL_UPLEVEL_CFG_LEVEL_FIELD, MAGIC_SKILL_UPLEVEL_CFG_NEXT_LEVEL_FIELD, MAGIC_SKILL_UPLEVEL_CFG_MAGICID_FIELD, MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_TYPE_FIELD, MAGIC_SKILL_UPLEVEL_CFG_ATTRIBUTE_VALUE_FIELD, MAGIC_SKILL_UPLEVEL_CFG_FORMATION_BASE_RATE_INCR_FIELD, MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_FIELD, MAGIC_SKILL_UPLEVEL_CFG_FORMATION_RATE_INCR_FIELD, MAGIC_SKILL_UPLEVEL_CFG_SKILL_TIPS_FIELD, MAGIC_SKILL_UPLEVEL_CFG_PARTNER_TIPS_FIELD} +MAGIC_SKILL_UPLEVEL_CFG.is_extendable = false +MAGIC_SKILL_UPLEVEL_CFG.extensions = {} +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.name = "items" +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_skill_uplevel_cfgs.items" +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.number = 1 +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.index = 0 +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.label = 3 +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.message_type = MAGIC_SKILL_UPLEVEL_CFG +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.type = 11 +MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_SKILL_UPLEVEL_CFGS.name = "magic_skill_uplevel_cfgs" +MAGIC_SKILL_UPLEVEL_CFGS.full_name = ".ftcfg.magic_skill_uplevel_cfgs" +MAGIC_SKILL_UPLEVEL_CFGS.nested_types = {} +MAGIC_SKILL_UPLEVEL_CFGS.enum_types = {} +MAGIC_SKILL_UPLEVEL_CFGS.fields = {MAGIC_SKILL_UPLEVEL_CFGS_ITEMS_FIELD} +MAGIC_SKILL_UPLEVEL_CFGS.is_extendable = false +MAGIC_SKILL_UPLEVEL_CFGS.extensions = {} +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.name = "layerid" +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.full_name = ".ftcfg.magic_skill_layer_cfg.layerid" +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.number = 1 +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.index = 0 +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.label = 2 +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.has_default_value = false +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.default_value = 0 +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.type = 13 +MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD.cpp_type = 3 + +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.name = "role_level" +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.full_name = ".ftcfg.magic_skill_layer_cfg.role_level" +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.number = 2 +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.index = 1 +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.label = 2 +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.has_default_value = false +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.default_value = 0 +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.type = 13 +MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD.cpp_type = 3 + +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.name = "layerid_arr" +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.full_name = ".ftcfg.magic_skill_layer_cfg.layerid_arr" +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.number = 3 +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.index = 2 +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.label = 3 +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.has_default_value = false +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.default_value = {} +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.type = 13 +MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD.cpp_type = 3 + +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.name = "max_magic_skill_num" +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.full_name = ".ftcfg.magic_skill_layer_cfg.max_magic_skill_num" +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.number = 4 +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.index = 3 +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.label = 2 +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.has_default_value = false +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.default_value = 0 +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.type = 13 +MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD.cpp_type = 3 + +MAGIC_SKILL_LAYER_CFG.name = "magic_skill_layer_cfg" +MAGIC_SKILL_LAYER_CFG.full_name = ".ftcfg.magic_skill_layer_cfg" +MAGIC_SKILL_LAYER_CFG.nested_types = {} +MAGIC_SKILL_LAYER_CFG.enum_types = {} +MAGIC_SKILL_LAYER_CFG.fields = {MAGIC_SKILL_LAYER_CFG_LAYERID_FIELD, MAGIC_SKILL_LAYER_CFG_ROLE_LEVEL_FIELD, MAGIC_SKILL_LAYER_CFG_LAYERID_ARR_FIELD, MAGIC_SKILL_LAYER_CFG_MAX_MAGIC_SKILL_NUM_FIELD} +MAGIC_SKILL_LAYER_CFG.is_extendable = false +MAGIC_SKILL_LAYER_CFG.extensions = {} +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.name = "items" +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_skill_layer_cfgs.items" +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.number = 1 +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.index = 0 +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.label = 3 +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.message_type = MAGIC_SKILL_LAYER_CFG +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.type = 11 +MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_SKILL_LAYER_CFGS.name = "magic_skill_layer_cfgs" +MAGIC_SKILL_LAYER_CFGS.full_name = ".ftcfg.magic_skill_layer_cfgs" +MAGIC_SKILL_LAYER_CFGS.nested_types = {} +MAGIC_SKILL_LAYER_CFGS.enum_types = {} +MAGIC_SKILL_LAYER_CFGS.fields = {MAGIC_SKILL_LAYER_CFGS_ITEMS_FIELD} +MAGIC_SKILL_LAYER_CFGS.is_extendable = false +MAGIC_SKILL_LAYER_CFGS.extensions = {} +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.name = "confid" +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.confid" +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.number = 1 +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.index = 0 +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_CONFID_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.name = "main_quest_id" +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.main_quest_id" +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.number = 2 +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.index = 1 +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.name = "role_level" +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.role_level" +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.number = 3 +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.index = 2 +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.name = "min_point" +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.min_point" +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.number = 4 +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.index = 3 +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.name = "max_point" +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.max_point" +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.number = 5 +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.index = 4 +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.name = "item_id" +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.item_id" +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.number = 6 +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.index = 5 +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.name = "item_num" +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.item_num" +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.number = 7 +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.index = 6 +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.name = "coin_type" +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.coin_type" +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.number = 8 +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.index = 7 +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.label = 3 +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.default_value = {} +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.name = "coin_num" +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.coin_num" +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.number = 9 +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.index = 8 +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.label = 3 +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.default_value = {} +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.name = "refine_time" +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.refine_time" +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.number = 10 +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.index = 9 +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.label = 2 +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.default_value = 0 +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.name = "cancel_coin_type" +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.cancel_coin_type" +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.number = 11 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.index = 10 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.label = 3 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.default_value = {} +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.name = "cancel_coin_num" +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.full_name = ".ftcfg.magic_point_refine_cfg.cancel_coin_num" +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.number = 12 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.index = 11 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.label = 3 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.default_value = {} +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.type = 13 +MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD.cpp_type = 3 + +MAGIC_POINT_REFINE_CFG.name = "magic_point_refine_cfg" +MAGIC_POINT_REFINE_CFG.full_name = ".ftcfg.magic_point_refine_cfg" +MAGIC_POINT_REFINE_CFG.nested_types = {} +MAGIC_POINT_REFINE_CFG.enum_types = {} +MAGIC_POINT_REFINE_CFG.fields = {MAGIC_POINT_REFINE_CFG_CONFID_FIELD, MAGIC_POINT_REFINE_CFG_MAIN_QUEST_ID_FIELD, MAGIC_POINT_REFINE_CFG_ROLE_LEVEL_FIELD, MAGIC_POINT_REFINE_CFG_MIN_POINT_FIELD, MAGIC_POINT_REFINE_CFG_MAX_POINT_FIELD, MAGIC_POINT_REFINE_CFG_ITEM_ID_FIELD, MAGIC_POINT_REFINE_CFG_ITEM_NUM_FIELD, MAGIC_POINT_REFINE_CFG_COIN_TYPE_FIELD, MAGIC_POINT_REFINE_CFG_COIN_NUM_FIELD, MAGIC_POINT_REFINE_CFG_REFINE_TIME_FIELD, MAGIC_POINT_REFINE_CFG_CANCEL_COIN_TYPE_FIELD, MAGIC_POINT_REFINE_CFG_CANCEL_COIN_NUM_FIELD} +MAGIC_POINT_REFINE_CFG.is_extendable = false +MAGIC_POINT_REFINE_CFG.extensions = {} +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.name = "items" +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.full_name = ".ftcfg.magic_point_refine_cfgs.items" +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.number = 1 +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.index = 0 +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.label = 3 +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.has_default_value = false +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.default_value = {} +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.message_type = MAGIC_POINT_REFINE_CFG +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.type = 11 +MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD.cpp_type = 10 + +MAGIC_POINT_REFINE_CFGS.name = "magic_point_refine_cfgs" +MAGIC_POINT_REFINE_CFGS.full_name = ".ftcfg.magic_point_refine_cfgs" +MAGIC_POINT_REFINE_CFGS.nested_types = {} +MAGIC_POINT_REFINE_CFGS.enum_types = {} +MAGIC_POINT_REFINE_CFGS.fields = {MAGIC_POINT_REFINE_CFGS_ITEMS_FIELD} +MAGIC_POINT_REFINE_CFGS.is_extendable = false +MAGIC_POINT_REFINE_CFGS.extensions = {} + +activation_cfg = protobuf.Message(ACTIVATION_CFG) +activation_cfgs = protobuf.Message(ACTIVATION_CFGS) +activation_reward_cfg = protobuf.Message(ACTIVATION_REWARD_CFG) +activation_reward_cfgs = protobuf.Message(ACTIVATION_REWARD_CFGS) +activity_cfg = protobuf.Message(ACTIVITY_CFG) +activity_cfgs = protobuf.Message(ACTIVITY_CFGS) +activity_dungeon_cfg = protobuf.Message(ACTIVITY_DUNGEON_CFG) +activity_dungeon_cfgs = protobuf.Message(ACTIVITY_DUNGEON_CFGS) +activity_info_cfg = protobuf.Message(ACTIVITY_INFO_CFG) +activity_info_cfgs = protobuf.Message(ACTIVITY_INFO_CFGS) +activity_rooms_cfg = protobuf.Message(ACTIVITY_ROOMS_CFG) +activity_rooms_cfgs = protobuf.Message(ACTIVITY_ROOMS_CFGS) +arena_data_cfg = protobuf.Message(ARENA_DATA_CFG) +arena_data_cfgs = protobuf.Message(ARENA_DATA_CFGS) +arena_reward_cfg = protobuf.Message(ARENA_REWARD_CFG) +arena_reward_cfgs = protobuf.Message(ARENA_REWARD_CFGS) +attribute_show_cfg = protobuf.Message(ATTRIBUTE_SHOW_CFG) +attribute_show_cfgs = protobuf.Message(ATTRIBUTE_SHOW_CFGS) +bag_routine_cfg = protobuf.Message(BAG_ROUTINE_CFG) +bag_routine_cfgs = protobuf.Message(BAG_ROUTINE_CFGS) +base_prop_cfg = protobuf.Message(BASE_PROP_CFG) +base_prop_cfgs = protobuf.Message(BASE_PROP_CFGS) +battle_collect_crystal_cfg = protobuf.Message(BATTLE_COLLECT_CRYSTAL_CFG) +battle_collect_crystal_cfgs = protobuf.Message(BATTLE_COLLECT_CRYSTAL_CFGS) +battle_crystal_info_cfg = protobuf.Message(BATTLE_CRYSTAL_INFO_CFG) +battle_crystal_info_cfgs = protobuf.Message(BATTLE_CRYSTAL_INFO_CFGS) +battle_crystal_rooms_cfg = protobuf.Message(BATTLE_CRYSTAL_ROOMS_CFG) +battle_crystal_rooms_cfgs = protobuf.Message(BATTLE_CRYSTAL_ROOMS_CFGS) +boss_show_cam_cfg = protobuf.Message(BOSS_SHOW_CAM_CFG) +boss_show_cam_cfgs = protobuf.Message(BOSS_SHOW_CAM_CFGS) +boss_show_ui_cfg = protobuf.Message(BOSS_SHOW_UI_CFG) +boss_show_ui_cfgs = protobuf.Message(BOSS_SHOW_UI_CFGS) +boss_showinfo_cfg = protobuf.Message(BOSS_SHOWINFO_CFG) +boss_showinfo_cfgs = protobuf.Message(BOSS_SHOWINFO_CFGS) +box_collect_cfg = protobuf.Message(BOX_COLLECT_CFG) +box_collect_cfgs = protobuf.Message(BOX_COLLECT_CFGS) +boxs_cfg = protobuf.Message(BOXS_CFG) +boxs_cfgs = protobuf.Message(BOXS_CFGS) +buff_cfg = protobuf.Message(BUFF_CFG) +buff_cfgs = protobuf.Message(BUFF_CFGS) +buff_effect_cfg = protobuf.Message(BUFF_EFFECT_CFG) +buff_effect_cfgs = protobuf.Message(BUFF_EFFECT_CFGS) +building_mission_pool_cfg = protobuf.Message(BUILDING_MISSION_POOL_CFG) +building_mission_pool_cfgs = protobuf.Message(BUILDING_MISSION_POOL_CFGS) +business_activity_cfg = protobuf.Message(BUSINESS_ACTIVITY_CFG) +business_activity_cfgs = protobuf.Message(BUSINESS_ACTIVITY_CFGS) +cam_options_cfg = protobuf.Message(CAM_OPTIONS_CFG) +cam_options_cfgs = protobuf.Message(CAM_OPTIONS_CFGS) +camp_change_cost_cfg = protobuf.Message(CAMP_CHANGE_COST_CFG) +camp_change_cost_cfgs = protobuf.Message(CAMP_CHANGE_COST_CFGS) +camp_relation_cfg = protobuf.Message(CAMP_RELATION_CFG) +camp_relation_cfgs = protobuf.Message(CAMP_RELATION_CFGS) +campboss_cfg = protobuf.Message(CAMPBOSS_CFG) +campboss_cfgs = protobuf.Message(CAMPBOSS_CFGS) +char_default_cfg = protobuf.Message(CHAR_DEFAULT_CFG) +char_default_cfgs = protobuf.Message(CHAR_DEFAULT_CFGS) +chest_drop_cfg = protobuf.Message(CHEST_DROP_CFG) +chest_drop_cfgs = protobuf.Message(CHEST_DROP_CFGS) +client_trigger_action_cfg = protobuf.Message(CLIENT_TRIGGER_ACTION_CFG) +client_trigger_action_cfgs = protobuf.Message(CLIENT_TRIGGER_ACTION_CFGS) +client_trigger_cfg = protobuf.Message(CLIENT_TRIGGER_CFG) +client_trigger_cfgs = protobuf.Message(CLIENT_TRIGGER_CFGS) +client_trigger_condition_cfg = protobuf.Message(CLIENT_TRIGGER_CONDITION_CFG) +client_trigger_condition_cfgs = protobuf.Message(CLIENT_TRIGGER_CONDITION_CFGS) +client_trigger_event_cfg = protobuf.Message(CLIENT_TRIGGER_EVENT_CFG) +client_trigger_event_cfgs = protobuf.Message(CLIENT_TRIGGER_EVENT_CFGS) +client_trigger_variable_cfg = protobuf.Message(CLIENT_TRIGGER_VARIABLE_CFG) +client_trigger_variable_cfgs = protobuf.Message(CLIENT_TRIGGER_VARIABLE_CFGS) +clue_cfg = protobuf.Message(CLUE_CFG) +clue_cfgs = protobuf.Message(CLUE_CFGS) +convoy_biaoche_cfg = protobuf.Message(CONVOY_BIAOCHE_CFG) +convoy_biaoche_cfgs = protobuf.Message(CONVOY_BIAOCHE_CFGS) +convoy_biaoche_scene_cfg = protobuf.Message(CONVOY_BIAOCHE_SCENE_CFG) +convoy_biaoche_scene_cfgs = protobuf.Message(CONVOY_BIAOCHE_SCENE_CFGS) +cooldown_cfg = protobuf.Message(COOLDOWN_CFG) +cooldown_cfgs = protobuf.Message(COOLDOWN_CFGS) +crusade_base_cfg = protobuf.Message(CRUSADE_BASE_CFG) +crusade_base_cfgs = protobuf.Message(CRUSADE_BASE_CFGS) +crusade_dungon_cfg = protobuf.Message(CRUSADE_DUNGON_CFG) +crusade_dungon_cfgs = protobuf.Message(CRUSADE_DUNGON_CFGS) +depot_unlock_cfg = protobuf.Message(DEPOT_UNLOCK_CFG) +depot_unlock_cfgs = protobuf.Message(DEPOT_UNLOCK_CFGS) +dig_treasure_event_cfg = protobuf.Message(DIG_TREASURE_EVENT_CFG) +dig_treasure_event_cfgs = protobuf.Message(DIG_TREASURE_EVENT_CFGS) +divine_mission_cfg = protobuf.Message(DIVINE_MISSION_CFG) +divine_mission_cfgs = protobuf.Message(DIVINE_MISSION_CFGS) +divine_section_cfg = protobuf.Message(DIVINE_SECTION_CFG) +divine_section_cfgs = protobuf.Message(DIVINE_SECTION_CFGS) +drop_point_cfg = protobuf.Message(DROP_POINT_CFG) +drop_point_cfgs = protobuf.Message(DROP_POINT_CFGS) +edn_cfg = protobuf.Message(EDN_CFG) +edn_cfgs = protobuf.Message(EDN_CFGS) +edn_relic_cfg = protobuf.Message(EDN_RELIC_CFG) +edn_relic_cfgs = protobuf.Message(EDN_RELIC_CFGS) +edn_scene_cfg = protobuf.Message(EDN_SCENE_CFG) +edn_scene_cfgs = protobuf.Message(EDN_SCENE_CFGS) +elite_common_info_cfg = protobuf.Message(ELITE_COMMON_INFO_CFG) +elite_common_info_cfgs = protobuf.Message(ELITE_COMMON_INFO_CFGS) +elite_hell_info_cfg = protobuf.Message(ELITE_HELL_INFO_CFG) +elite_hell_info_cfgs = protobuf.Message(ELITE_HELL_INFO_CFGS) +elite_level_cfg = protobuf.Message(ELITE_LEVEL_CFG) +elite_level_cfgs = protobuf.Message(ELITE_LEVEL_CFGS) +elite_reward_cfg = protobuf.Message(ELITE_REWARD_CFG) +elite_reward_cfgs = protobuf.Message(ELITE_REWARD_CFGS) +equip_cfg = protobuf.Message(EQUIP_CFG) +equip_cfgs = protobuf.Message(EQUIP_CFGS) +equip_list_cfg = protobuf.Message(EQUIP_LIST_CFG) +equip_list_cfgs = protobuf.Message(EQUIP_LIST_CFGS) +equip_set_cfg = protobuf.Message(EQUIP_SET_CFG) +equip_set_cfgs = protobuf.Message(EQUIP_SET_CFGS) +equip_set_prop_cfg = protobuf.Message(EQUIP_SET_PROP_CFG) +equip_set_prop_cfgs = protobuf.Message(EQUIP_SET_PROP_CFGS) +errorcode_notify_cfg = protobuf.Message(ERRORCODE_NOTIFY_CFG) +errorcode_notify_cfgs = protobuf.Message(ERRORCODE_NOTIFY_CFGS) +fashion_appreciation_cfg = protobuf.Message(FASHION_APPRECIATION_CFG) +fashion_appreciation_cfgs = protobuf.Message(FASHION_APPRECIATION_CFGS) +fashion_cfg = protobuf.Message(FASHION_CFG) +fashion_cfgs = protobuf.Message(FASHION_CFGS) +fashion_cost_cfg = protobuf.Message(FASHION_COST_CFG) +fashion_cost_cfgs = protobuf.Message(FASHION_COST_CFGS) +fate_value_reward_cfg = protobuf.Message(FATE_VALUE_REWARD_CFG) +fate_value_reward_cfgs = protobuf.Message(FATE_VALUE_REWARD_CFGS) +fetter_cfg = protobuf.Message(FETTER_CFG) +fetter_cfgs = protobuf.Message(FETTER_CFGS) +fightcirme_reward_cfg = protobuf.Message(FIGHTCIRME_REWARD_CFG) +fightcirme_reward_cfgs = protobuf.Message(FIGHTCIRME_REWARD_CFGS) +fightcrime_cfg = protobuf.Message(FIGHTCRIME_CFG) +fightcrime_cfgs = protobuf.Message(FIGHTCRIME_CFGS) +fightcrime_monster_cfg = protobuf.Message(FIGHTCRIME_MONSTER_CFG) +fightcrime_monster_cfgs = protobuf.Message(FIGHTCRIME_MONSTER_CFGS) +formula_cfg = protobuf.Message(FORMULA_CFG) +formula_cfgs = protobuf.Message(FORMULA_CFGS) +friend_title_cfg = protobuf.Message(FRIEND_TITLE_CFG) +friend_title_cfgs = protobuf.Message(FRIEND_TITLE_CFGS) +func_type_weight_cfg = protobuf.Message(FUNC_TYPE_WEIGHT_CFG) +func_type_weight_cfgs = protobuf.Message(FUNC_TYPE_WEIGHT_CFGS) +gemstone_inlay_cfg = protobuf.Message(GEMSTONE_INLAY_CFG) +gemstone_inlay_cfgs = protobuf.Message(GEMSTONE_INLAY_CFGS) +gemstone_list_cfg = protobuf.Message(GEMSTONE_LIST_CFG) +gemstone_list_cfgs = protobuf.Message(GEMSTONE_LIST_CFGS) +gift_giving_cfg = protobuf.Message(GIFT_GIVING_CFG) +gift_giving_cfgs = protobuf.Message(GIFT_GIVING_CFGS) +global_param_cfg = protobuf.Message(GLOBAL_PARAM_CFG) +global_param_cfgs = protobuf.Message(GLOBAL_PARAM_CFGS) +grow_point_cfg = protobuf.Message(GROW_POINT_CFG) +grow_point_cfgs = protobuf.Message(GROW_POINT_CFGS) +guil_post_cfg = protobuf.Message(GUIL_POST_CFG) +guil_post_cfgs = protobuf.Message(GUIL_POST_CFGS) +guild_base_cfg = protobuf.Message(GUILD_BASE_CFG) +guild_base_cfgs = protobuf.Message(GUILD_BASE_CFGS) +guild_building_mission_cfg = protobuf.Message(GUILD_BUILDING_MISSION_CFG) +guild_building_mission_cfgs = protobuf.Message(GUILD_BUILDING_MISSION_CFGS) +guild_flag_cfg = protobuf.Message(GUILD_FLAG_CFG) +guild_flag_cfgs = protobuf.Message(GUILD_FLAG_CFGS) +guild_mission_base_cfg = protobuf.Message(GUILD_MISSION_BASE_CFG) +guild_mission_base_cfgs = protobuf.Message(GUILD_MISSION_BASE_CFGS) +guild_mission_cfg = protobuf.Message(GUILD_MISSION_CFG) +guild_mission_cfgs = protobuf.Message(GUILD_MISSION_CFGS) +guild_practice_group_cfg = protobuf.Message(GUILD_PRACTICE_GROUP_CFG) +guild_practice_group_cfgs = protobuf.Message(GUILD_PRACTICE_GROUP_CFGS) +guild_practice_group_cont_cfg = protobuf.Message(GUILD_PRACTICE_GROUP_CONT_CFG) +guild_practice_group_cont_cfgs = protobuf.Message(GUILD_PRACTICE_GROUP_CONT_CFGS) +independent_random_reward_cfg = protobuf.Message(INDEPENDENT_RANDOM_REWARD_CFG) +independent_random_reward_cfgs = protobuf.Message(INDEPENDENT_RANDOM_REWARD_CFGS) +inner_alchemy_cfg = protobuf.Message(INNER_ALCHEMY_CFG) +inner_alchemy_cfgs = protobuf.Message(INNER_ALCHEMY_CFGS) +inner_alchemy_group_cfg = protobuf.Message(INNER_ALCHEMY_GROUP_CFG) +inner_alchemy_group_cfgs = protobuf.Message(INNER_ALCHEMY_GROUP_CFGS) +item_cfg = protobuf.Message(ITEM_CFG) +item_cfgs = protobuf.Message(ITEM_CFGS) +jewelry_make_cfg = protobuf.Message(JEWELRY_MAKE_CFG) +jewelry_make_cfgs = protobuf.Message(JEWELRY_MAKE_CFGS) +jump_action_cfg = protobuf.Message(JUMP_ACTION_CFG) +jump_action_cfgs = protobuf.Message(JUMP_ACTION_CFGS) +jump_cfg = protobuf.Message(JUMP_CFG) +jump_cfgs = protobuf.Message(JUMP_CFGS) +language_cfg = protobuf.Message(LANGUAGE_CFG) +language_cfgs = protobuf.Message(LANGUAGE_CFGS) +level_exp_cfg = protobuf.Message(LEVEL_EXP_CFG) +level_exp_cfgs = protobuf.Message(LEVEL_EXP_CFGS) +level_package_cfg = protobuf.Message(LEVEL_PACKAGE_CFG) +level_package_cfgs = protobuf.Message(LEVEL_PACKAGE_CFGS) +magic_att_cfg = protobuf.Message(MAGIC_ATT_CFG) +magic_att_cfgs = protobuf.Message(MAGIC_ATT_CFGS) +magic_combination_cfg = protobuf.Message(MAGIC_COMBINATION_CFG) +magic_combination_cfgs = protobuf.Message(MAGIC_COMBINATION_CFGS) +magic_divine_cfg = protobuf.Message(MAGIC_DIVINE_CFG) +magic_divine_cfgs = protobuf.Message(MAGIC_DIVINE_CFGS) +magic_levelup_cfg = protobuf.Message(MAGIC_LEVELUP_CFG) +magic_levelup_cfgs = protobuf.Message(MAGIC_LEVELUP_CFGS) +magic_ostiole_cfg = protobuf.Message(MAGIC_OSTIOLE_CFG) +magic_ostiole_cfgs = protobuf.Message(MAGIC_OSTIOLE_CFGS) +magic_point_refine_cfg = protobuf.Message(MAGIC_POINT_REFINE_CFG) +magic_point_refine_cfgs = protobuf.Message(MAGIC_POINT_REFINE_CFGS) +magic_skill_cfg = protobuf.Message(MAGIC_SKILL_CFG) +magic_skill_cfgs = protobuf.Message(MAGIC_SKILL_CFGS) +magic_skill_layer_cfg = protobuf.Message(MAGIC_SKILL_LAYER_CFG) +magic_skill_layer_cfgs = protobuf.Message(MAGIC_SKILL_LAYER_CFGS) +magic_skill_uplevel_cfg = protobuf.Message(MAGIC_SKILL_UPLEVEL_CFG) +magic_skill_uplevel_cfgs = protobuf.Message(MAGIC_SKILL_UPLEVEL_CFGS) +mall_item_cfg = protobuf.Message(MALL_ITEM_CFG) +mall_item_cfgs = protobuf.Message(MALL_ITEM_CFGS) +map_signs_cfg = protobuf.Message(MAP_SIGNS_CFG) +map_signs_cfgs = protobuf.Message(MAP_SIGNS_CFGS) +material_item_cfg = protobuf.Message(MATERIAL_ITEM_CFG) +material_item_cfgs = protobuf.Message(MATERIAL_ITEM_CFGS) +medal_base_cfg = protobuf.Message(MEDAL_BASE_CFG) +medal_base_cfgs = protobuf.Message(MEDAL_BASE_CFGS) +medal_composite_addition_cfg = protobuf.Message(MEDAL_COMPOSITE_ADDITION_CFG) +medal_composite_addition_cfgs = protobuf.Message(MEDAL_COMPOSITE_ADDITION_CFGS) +medal_group_cfg = protobuf.Message(MEDAL_GROUP_CFG) +medal_group_cfgs = protobuf.Message(MEDAL_GROUP_CFGS) +medal_open_level_cfg = protobuf.Message(MEDAL_OPEN_LEVEL_CFG) +medal_open_level_cfgs = protobuf.Message(MEDAL_OPEN_LEVEL_CFGS) +medal_star_open_level_cfg = protobuf.Message(MEDAL_STAR_OPEN_LEVEL_CFG) +medal_star_open_level_cfgs = protobuf.Message(MEDAL_STAR_OPEN_LEVEL_CFGS) +minimap_cfg = protobuf.Message(MINIMAP_CFG) +minimap_cfgs = protobuf.Message(MINIMAP_CFGS) +mission_cfg = protobuf.Message(MISSION_CFG) +mission_cfgs = protobuf.Message(MISSION_CFGS) +mission_group_cfg = protobuf.Message(MISSION_GROUP_CFG) +mission_group_cfgs = protobuf.Message(MISSION_GROUP_CFGS) +monster_cfg = protobuf.Message(MONSTER_CFG) +monster_cfgs = protobuf.Message(MONSTER_CFGS) +monthcard_base_cfg = protobuf.Message(MONTHCARD_BASE_CFG) +monthcard_base_cfgs = protobuf.Message(MONTHCARD_BASE_CFGS) +mountequip_cfg = protobuf.Message(MOUNTEQUIP_CFG) +mountequip_cfgs = protobuf.Message(MOUNTEQUIP_CFGS) +npc_function_cfg = protobuf.Message(NPC_FUNCTION_CFG) +npc_function_cfgs = protobuf.Message(NPC_FUNCTION_CFGS) +npc_spawn_method_cfg = protobuf.Message(NPC_SPAWN_METHOD_CFG) +npc_spawn_method_cfgs = protobuf.Message(NPC_SPAWN_METHOD_CFGS) +open_rules_data_cfg = protobuf.Message(OPEN_RULES_DATA_CFG) +open_rules_data_cfgs = protobuf.Message(OPEN_RULES_DATA_CFGS) +partenr_experience_cfg = protobuf.Message(PARTENR_EXPERIENCE_CFG) +partenr_experience_cfgs = protobuf.Message(PARTENR_EXPERIENCE_CFGS) +partner_activation_cfg = protobuf.Message(PARTNER_ACTIVATION_CFG) +partner_activation_cfgs = protobuf.Message(PARTNER_ACTIVATION_CFGS) +partner_attribute_cfg = protobuf.Message(PARTNER_ATTRIBUTE_CFG) +partner_attribute_cfgs = protobuf.Message(PARTNER_ATTRIBUTE_CFGS) +partner_base_cfg = protobuf.Message(PARTNER_BASE_CFG) +partner_base_cfgs = protobuf.Message(PARTNER_BASE_CFGS) +partner_chip_cfg = protobuf.Message(PARTNER_CHIP_CFG) +partner_chip_cfgs = protobuf.Message(PARTNER_CHIP_CFGS) +partner_currency_cfg = protobuf.Message(PARTNER_CURRENCY_CFG) +partner_currency_cfgs = protobuf.Message(PARTNER_CURRENCY_CFGS) +partner_equiphecheng_cfg = protobuf.Message(PARTNER_EQUIPHECHENG_CFG) +partner_equiphecheng_cfgs = protobuf.Message(PARTNER_EQUIPHECHENG_CFGS) +partner_formation_cfg = protobuf.Message(PARTNER_FORMATION_CFG) +partner_formation_cfgs = protobuf.Message(PARTNER_FORMATION_CFGS) +partner_impre_levelup_cfg = protobuf.Message(PARTNER_IMPRE_LEVELUP_CFG) +partner_impre_levelup_cfgs = protobuf.Message(PARTNER_IMPRE_LEVELUP_CFGS) +partner_impression_cfg = protobuf.Message(PARTNER_IMPRESSION_CFG) +partner_impression_cfgs = protobuf.Message(PARTNER_IMPRESSION_CFGS) +partner_item_compound_cfg = protobuf.Message(PARTNER_ITEM_COMPOUND_CFG) +partner_item_compound_cfgs = protobuf.Message(PARTNER_ITEM_COMPOUND_CFGS) +partner_mood_cfg = protobuf.Message(PARTNER_MOOD_CFG) +partner_mood_cfgs = protobuf.Message(PARTNER_MOOD_CFGS) +partner_multiple_cfg = protobuf.Message(PARTNER_MULTIPLE_CFG) +partner_multiple_cfgs = protobuf.Message(PARTNER_MULTIPLE_CFGS) +partner_passiveskill_cfg = protobuf.Message(PARTNER_PASSIVESKILL_CFG) +partner_passiveskill_cfgs = protobuf.Message(PARTNER_PASSIVESKILL_CFGS) +partner_star_cfg = protobuf.Message(PARTNER_STAR_CFG) +partner_star_cfgs = protobuf.Message(PARTNER_STAR_CFGS) +partner_study_cfg = protobuf.Message(PARTNER_STUDY_CFG) +partner_study_cfgs = protobuf.Message(PARTNER_STUDY_CFGS) +playscg_cfg = protobuf.Message(PLAYSCG_CFG) +playscg_cfgs = protobuf.Message(PLAYSCG_CFGS) +plot_data_cfg = protobuf.Message(PLOT_DATA_CFG) +plot_data_cfgs = protobuf.Message(PLOT_DATA_CFGS) +prop_type_cfg = protobuf.Message(PROP_TYPE_CFG) +prop_type_cfgs = protobuf.Message(PROP_TYPE_CFGS) +randomman_cfg = protobuf.Message(RANDOMMAN_CFG) +randomman_cfgs = protobuf.Message(RANDOMMAN_CFGS) +randomwoman_cfg = protobuf.Message(RANDOMWOMAN_CFG) +randomwoman_cfgs = protobuf.Message(RANDOMWOMAN_CFGS) +rank_field_cfg = protobuf.Message(RANK_FIELD_CFG) +rank_field_cfgs = protobuf.Message(RANK_FIELD_CFGS) +rank_function_cfg = protobuf.Message(RANK_FUNCTION_CFG) +rank_function_cfgs = protobuf.Message(RANK_FUNCTION_CFGS) +res_path_cfg = protobuf.Message(RES_PATH_CFG) +res_path_cfgs = protobuf.Message(RES_PATH_CFGS) +resource_compund_cfg = protobuf.Message(RESOURCE_COMPUND_CFG) +resource_compund_cfgs = protobuf.Message(RESOURCE_COMPUND_CFGS) +revive_show_cfg = protobuf.Message(REVIVE_SHOW_CFG) +revive_show_cfgs = protobuf.Message(REVIVE_SHOW_CFGS) +reward_cfg = protobuf.Message(REWARD_CFG) +reward_cfgs = protobuf.Message(REWARD_CFGS) +role_parts_cfg = protobuf.Message(ROLE_PARTS_CFG) +role_parts_cfgs = protobuf.Message(ROLE_PARTS_CFGS) +route_mark_cfg = protobuf.Message(ROUTE_MARK_CFG) +route_mark_cfgs = protobuf.Message(ROUTE_MARK_CFGS) +rune_decompose_cfg = protobuf.Message(RUNE_DECOMPOSE_CFG) +rune_decompose_cfgs = protobuf.Message(RUNE_DECOMPOSE_CFGS) +rune_make_cfg = protobuf.Message(RUNE_MAKE_CFG) +rune_make_cfgs = protobuf.Message(RUNE_MAKE_CFGS) +rune_make_list_cfg = protobuf.Message(RUNE_MAKE_LIST_CFG) +rune_make_list_cfgs = protobuf.Message(RUNE_MAKE_LIST_CFGS) +rune_prop_group_cfg = protobuf.Message(RUNE_PROP_GROUP_CFG) +rune_prop_group_cfgs = protobuf.Message(RUNE_PROP_GROUP_CFGS) +rune_prop_refine_cfg = protobuf.Message(RUNE_PROP_REFINE_CFG) +rune_prop_refine_cfgs = protobuf.Message(RUNE_PROP_REFINE_CFGS) +rune_quality_cfg = protobuf.Message(RUNE_QUALITY_CFG) +rune_quality_cfgs = protobuf.Message(RUNE_QUALITY_CFGS) +rune_skill_group_cfg = protobuf.Message(RUNE_SKILL_GROUP_CFG) +rune_skill_group_cfgs = protobuf.Message(RUNE_SKILL_GROUP_CFGS) +rune_skill_refine_cfg = protobuf.Message(RUNE_SKILL_REFINE_CFG) +rune_skill_refine_cfgs = protobuf.Message(RUNE_SKILL_REFINE_CFGS) +scene_area_cfg = protobuf.Message(SCENE_AREA_CFG) +scene_area_cfgs = protobuf.Message(SCENE_AREA_CFGS) +scene_cfg = protobuf.Message(SCENE_CFG) +scene_cfgs = protobuf.Message(SCENE_CFGS) +scene_door_cfg = protobuf.Message(SCENE_DOOR_CFG) +scene_door_cfgs = protobuf.Message(SCENE_DOOR_CFGS) +scene_event_cfg = protobuf.Message(SCENE_EVENT_CFG) +scene_event_cfgs = protobuf.Message(SCENE_EVENT_CFGS) +scene_function_cfg = protobuf.Message(SCENE_FUNCTION_CFG) +scene_function_cfgs = protobuf.Message(SCENE_FUNCTION_CFGS) +scene_organ_cfg = protobuf.Message(SCENE_ORGAN_CFG) +scene_organ_cfgs = protobuf.Message(SCENE_ORGAN_CFGS) +scene_portal_cfg = protobuf.Message(SCENE_PORTAL_CFG) +scene_portal_cfgs = protobuf.Message(SCENE_PORTAL_CFGS) +scene_trigger_cfg = protobuf.Message(SCENE_TRIGGER_CFG) +scene_trigger_cfgs = protobuf.Message(SCENE_TRIGGER_CFGS) +service_cfg = protobuf.Message(SERVICE_CFG) +service_cfgs = protobuf.Message(SERVICE_CFGS) +shop_type_cfg = protobuf.Message(SHOP_TYPE_CFG) +shop_type_cfgs = protobuf.Message(SHOP_TYPE_CFGS) +signup_accumulation_cfg = protobuf.Message(SIGNUP_ACCUMULATION_CFG) +signup_accumulation_cfgs = protobuf.Message(SIGNUP_ACCUMULATION_CFGS) +signup_base_cfg = protobuf.Message(SIGNUP_BASE_CFG) +signup_base_cfgs = protobuf.Message(SIGNUP_BASE_CFGS) +skill_cfg = protobuf.Message(SKILL_CFG) +skill_cfgs = protobuf.Message(SKILL_CFGS) +skill_condition_cfg = protobuf.Message(SKILL_CONDITION_CFG) +skill_condition_cfgs = protobuf.Message(SKILL_CONDITION_CFGS) +skill_id_cfg = protobuf.Message(SKILL_ID_CFG) +skill_id_cfgs = protobuf.Message(SKILL_ID_CFGS) +skill_summoned_cfg = protobuf.Message(SKILL_SUMMONED_CFG) +skill_summoned_cfgs = protobuf.Message(SKILL_SUMMONED_CFGS) +skill_summoned_npc_cfg = protobuf.Message(SKILL_SUMMONED_NPC_CFG) +skill_summoned_npc_cfgs = protobuf.Message(SKILL_SUMMONED_NPC_CFGS) +soul_base_attr_cfg = protobuf.Message(SOUL_BASE_ATTR_CFG) +soul_base_attr_cfgs = protobuf.Message(SOUL_BASE_ATTR_CFGS) +soul_level_up_cfg = protobuf.Message(SOUL_LEVEL_UP_CFG) +soul_level_up_cfgs = protobuf.Message(SOUL_LEVEL_UP_CFGS) +soul_magic_attr_cfg = protobuf.Message(SOUL_MAGIC_ATTR_CFG) +soul_magic_attr_cfgs = protobuf.Message(SOUL_MAGIC_ATTR_CFGS) +soul_magic_rock_cfg = protobuf.Message(SOUL_MAGIC_ROCK_CFG) +soul_magic_rock_cfgs = protobuf.Message(SOUL_MAGIC_ROCK_CFGS) +soul_refine_rock_cfg = protobuf.Message(SOUL_REFINE_ROCK_CFG) +soul_refine_rock_cfgs = protobuf.Message(SOUL_REFINE_ROCK_CFGS) +soul_suit_attr_cfg = protobuf.Message(SOUL_SUIT_ATTR_CFG) +soul_suit_attr_cfgs = protobuf.Message(SOUL_SUIT_ATTR_CFGS) +starspirit_dungoen_cfg = protobuf.Message(STARSPIRIT_DUNGOEN_CFG) +starspirit_dungoen_cfgs = protobuf.Message(STARSPIRIT_DUNGOEN_CFGS) +state_cfg = protobuf.Message(STATE_CFG) +state_cfgs = protobuf.Message(STATE_CFGS) +strength_convert_cfg = protobuf.Message(STRENGTH_CONVERT_CFG) +strength_convert_cfgs = protobuf.Message(STRENGTH_CONVERT_CFGS) +strengthen_cfg = protobuf.Message(STRENGTHEN_CFG) +strengthen_cfgs = protobuf.Message(STRENGTHEN_CFGS) +subsys_cfg = protobuf.Message(SUBSYS_CFG) +subsys_cfgs = protobuf.Message(SUBSYS_CFGS) +suppress_cfg = protobuf.Message(SUPPRESS_CFG) +suppress_cfgs = protobuf.Message(SUPPRESS_CFGS) +suppress_group_cfg = protobuf.Message(SUPPRESS_GROUP_CFG) +suppress_group_cfgs = protobuf.Message(SUPPRESS_GROUP_CFGS) +test_cfg = protobuf.Message(TEST_CFG) +test_cfgs = protobuf.Message(TEST_CFGS) +tips_cfg = protobuf.Message(TIPS_CFG) +tips_cfgs = protobuf.Message(TIPS_CFGS) +tower_base_cfg = protobuf.Message(TOWER_BASE_CFG) +tower_base_cfgs = protobuf.Message(TOWER_BASE_CFGS) +trade_filter_rules_cfg = protobuf.Message(TRADE_FILTER_RULES_CFG) +trade_filter_rules_cfgs = protobuf.Message(TRADE_FILTER_RULES_CFGS) +trade_sort_rules_cfg = protobuf.Message(TRADE_SORT_RULES_CFG) +trade_sort_rules_cfgs = protobuf.Message(TRADE_SORT_RULES_CFGS) +trade_sub_tabs_cfg = protobuf.Message(TRADE_SUB_TABS_CFG) +trade_sub_tabs_cfgs = protobuf.Message(TRADE_SUB_TABS_CFGS) +trade_top_tabs_cfg = protobuf.Message(TRADE_TOP_TABS_CFG) +trade_top_tabs_cfgs = protobuf.Message(TRADE_TOP_TABS_CFGS) +treasure_rooms_cfg = protobuf.Message(TREASURE_ROOMS_CFG) +treasure_rooms_cfgs = protobuf.Message(TREASURE_ROOMS_CFGS) +trigger_action_cfg = protobuf.Message(TRIGGER_ACTION_CFG) +trigger_action_cfgs = protobuf.Message(TRIGGER_ACTION_CFGS) +trigger_condition_cfg = protobuf.Message(TRIGGER_CONDITION_CFG) +trigger_condition_cfgs = protobuf.Message(TRIGGER_CONDITION_CFGS) +trigger_event_cfg = protobuf.Message(TRIGGER_EVENT_CFG) +trigger_event_cfgs = protobuf.Message(TRIGGER_EVENT_CFGS) +trigger_variable_cfg = protobuf.Message(TRIGGER_VARIABLE_CFG) +trigger_variable_cfgs = protobuf.Message(TRIGGER_VARIABLE_CFGS) +ui_contribution_cfg = protobuf.Message(UI_CONTRIBUTION_CFG) +ui_contribution_cfgs = protobuf.Message(UI_CONTRIBUTION_CFGS) +weight_random_reward_cfg = protobuf.Message(WEIGHT_RANDOM_REWARD_CFG) +weight_random_reward_cfgs = protobuf.Message(WEIGHT_RANDOM_REWARD_CFGS) +wizard_base_cfg = protobuf.Message(WIZARD_BASE_CFG) +wizard_base_cfgs = protobuf.Message(WIZARD_BASE_CFGS) +wizard_level_cfg = protobuf.Message(WIZARD_LEVEL_CFG) +wizard_level_cfgs = protobuf.Message(WIZARD_LEVEL_CFGS) +wizard_task_cfg = protobuf.Message(WIZARD_TASK_CFG) +wizard_task_cfgs = protobuf.Message(WIZARD_TASK_CFGS) +world_map_cfg = protobuf.Message(WORLD_MAP_CFG) +world_map_cfgs = protobuf.Message(WORLD_MAP_CFGS) +zone_location_cfg = protobuf.Message(ZONE_LOCATION_CFG) +zone_location_cfgs = protobuf.Message(ZONE_LOCATION_CFGS) + diff --git a/script/test/example/vm.txt b/script/test/example/vm.txt new file mode 100644 index 00000000..f2f4144d --- /dev/null +++ b/script/test/example/vm.txt @@ -0,0 +1,1544 @@ +local env = require 'core.env' +local library = require 'core.library' +local createValue = require 'core.value' + +local DefaultSource = { start = 0, finish = 0 } +local GlobalChild + +-- 根据赋值顺序决定遍历顺序的表 +local function orderTable() + local t = {} + local list = {} + local mark = {} + return setmetatable(t, { + __newindex = function (self, k, v) + if not mark[k] then + mark[k] = true + list[#list+1] = k + end + rawset(self, k, v) + end, + __pairs = function (self) + local i = 0 + return function () + while true do + i = i + 1 + local k = list[i] + if not k then + return nil, nil + end + local v = t[k] + if v ~= nil then + return k, v + end + end + end + end, + }) +end + +local function readOnly(t) + return setmetatable({}, { + __index = function (self, k) + if k == nil then + return nil + end + local v = t[k] + if type(v) == 'table' then + v = readOnly(v) + end + self[k] = v + return v + end, + __len = function (self) + return #t + end, + __pairs = function (self) + local keys = {} + local mark = {} + for k in next, self do + keys[#keys+1] = k + end + for k in pairs(t) do + if not mark[k] then + mark[k] = true + keys[#keys+1] = k + end + end + local i = 0 + return function () + i = i + 1 + local k = keys[i] + return k, self[k] + end + end, + __source = t, + }) +end + +local mt = {} +mt.__index = mt + +function mt:createDummyVar(source, value) + local loc = { + type = 'local', + key = '', + source = source or DefaultSource, + } + self:setValue(loc, value, source) + return loc +end + +function mt:createLocal(key, source, value) + local loc = { + type = 'local', + key = key, + source = source or DefaultSource, + close = self.scope.block.finish, + } + + if source then + source.isLocal = true + end + + local shadow = self.scope.locals[key] + if shadow then + shadow.close = source and (source.start-1) + local group + if shadow.shadow then + group = shadow.shadow + else + group = { shadow } + shadow.shadow = group + end + group[#group+1] = loc + loc.shadow = group + end + + self.scope.locals[key] = loc + self.results.locals[#self.results.locals+1] = loc + + self:addInfo(loc, 'local', source) + self:setValue(loc, value, source) + return loc +end + +function mt:createArg(key, source, value) + local loc = self:createLocal(key, source, value) + if source then + source.isArg = true + end + return loc +end + +function mt:scopePush(block) + if not block.start then + error('Scope push without start!') + end + self.scope:push() + self.scope.block = block +end + +function mt:scopePop() + self.scope:pop() +end + +function mt:addInfo(obj, type, source) + if source and not source.start then + error('Miss start: ' .. table.dump(source)) + end + obj[#obj+1] = { + type = type, + source = source or DefaultSource, + } + if source then + source.uri = self.uri + local other = self.results.sources[source] + if other then + if other.type == 'multi-source' then + other[#other+1] = obj + else + other = { + type = 'multi-source', + [1] = other, + [2] = obj, + } + end + else + self.results.sources[source] = obj + end + if type == 'set' or type == 'return' then + if not obj.declarat then + obj.declarat = source + end + end + end + return obj +end + +function mt:createDots(index, source) + local dots = { + type = 'dots', + source = source or DefaultSource, + func = self:getCurrentFunction(), + index = index, + } + self.chunk.dots = dots + return dots +end + +function mt:buildTable(source) + local tbl = self:createValue('table', source) + if not source then + return tbl + end + local n = 0 + for index, obj in ipairs(source) do + if obj.type == 'pair' then + local value = self:getExp(obj[2]) + local key = obj[1] + if key.index then + local index = self:getIndex(key) + local field = self:createField(tbl, index, key) + if value.type == 'list' then + self:setValue(field, value[1], key) + else + self:setValue(field, value, key) + end + else + if key.type == 'name' then + local field = self:createField(tbl, key[1], key) + self.results.indexs[#self.results.indexs+1] = field + key.isIndex = true + if value.type == 'list' then + self:setValue(field, value[1], key) + else + self:setValue(field, value, key) + end + end + end + else + local value = self:getExp(obj) + if value.type == 'list' then + if index == #source then + for i, v in ipairs(value) do + local field = self:createField(tbl, n + i) + self:setValue(field, v) + end + else + n = n + 1 + local field = self:createField(tbl, n) + self:setValue(field, value[1]) + end + else + n = n + 1 + local field = self:createField(tbl, n) + self:setValue(field, value) + end + -- 处理写了一半的 key = value,把name类的数组元素视为哈希键 + if obj.type == 'name' then + obj.isIndex = true + end + end + end + return tbl +end + +function mt:mergeValue(a, b, mark) + if a == b then + return + end + if not mark then + mark = {} + end + if mark[a] or mark[b] then + return + end + if a.uri ~= self.uri then + return + end + mark[a] = true + mark[b] = true + self:mergeChild(a, b, mark) + for k in pairs(a) do + a[k] = nil + end + for k, v in pairs(b) do + a[k] = v + end +end + +function mt:mergeField(a, b, mark) + if a == b then + return + end + if not mark then + mark = {} + end + for i, info in ipairs(a) do + a[i] = nil + b[#b+1] = info + end + for i, v in ipairs(b) do + a[i] = v + end + self:mergeValue(a.value, b.value, mark) +end + +function mt:mergeChild(a, b, mark) + if a == b then + return + end + if not a.child and not b.child then + return + end + if not mark then + mark = {} + end + if a.uri ~= self.uri then + return + end + if b.uri == self.uri then + local child = a.child or orderTable() + local other = b.child or orderTable() + a.child = nil + b.child = nil + for k, v in pairs(other) do + if child[k] then + self:mergeField(child[k], v, mark) + else + child[k] = v + end + end + a.child = child + b.child = child + else + local child = a.child or orderTable() + local other = b.child + if not other then + return + end + a.child = nil + for k, v in pairs(other) do + child[k] = v + end + a.child = child + end +end + +function mt:setValue(var, value, source) + if value and value.type == 'list' then + error('Cant set value list') + end + value = value or self:createValue('any', source) + if source and source.start then + self:addInfo(var, 'set', source) + self:addInfo(value, 'set', source) + end + if var.value then + if value.type == 'any' then + self:mergeChild(var.value, value) + elseif value.type == 'nil' then + self:mergeValue(var.value, value) + elseif var.value.uri == self.uri then + var.value = value + end + value = var.value + else + var.value = value + end + return value +end + +function mt:getValue(var) + if not var.value then + var.value = self:createValue('any') + end + return var.value +end + +function mt:createField(pValue, name, source) + if pValue.type == 'local' or pValue.type == 'field' then + error('Only value can create field') + end + local field = { + type = 'field', + key = name, + source = source or DefaultSource, + } + + if not pValue.child then + pValue.child = orderTable() + end + pValue.child[name] = field + self:inference(pValue, 'table') + return field +end + +function mt:getField(pValue, name, source) + local field = (pValue.child and pValue.child[name]) + if not field and pValue.ENV then + if self.lsp then + field = self.lsp:getGlobal(name) + end + end + if not field then + field = self:createField(pValue, name, source) + end + return field +end + +function mt:isGlobal(field) + if field.type ~= 'field' then + return false + end + if field.parent.value.ENV then + return true + else + return false + end +end + +function mt:buildFunction(exp, object) + local func = self:createValue('function', exp) + func.args = {} + func.argValues = {} + + if not exp then + return func + end + + self:scopePush(exp) + self.chunk:push() + self.chunk:cut 'dots' + self.chunk:cut 'labels' + self.chunk.func = func + + if object then + local var = self:createArg('self', object.source, self:getValue(object)) + var.hide = true + func.args[1] = var + end + + local stop + self:forList(exp.arg, function (arg) + if stop then + return + end + if arg.type == 'name' then + local var = self:createArg(arg[1], arg) + arg.isArg = true + func.args[#func.args+1] = var + func.argValues[#func.args] = self:getValue(var) + elseif arg.type == '...' then + self:createDots(#func.args+1, arg) + for _ = 1, 10 do + func.argValues[#func.argValues+1] = self:createValue('any', arg) + end + stop = true + end + end) + + self:doActions(exp) + + self.results.funcs[#self.results.funcs+1] = func + + self.chunk:pop() + self:scopePop() + + return func +end + +function mt:forList(list, callback) + if not list then + return + end + if list.type == 'list' then + for i = 1, #list do + callback(list[i]) + end + else + callback(list) + end +end + +function mt:countList(list) + if not list then + return 0 + end + if list.type == 'list' then + return #list + end + return 1 +end + +function mt:updateFunctionArgs(func) + if not func.argValues then + return + end + if not func.args then + return + end + + local values = func.argValues + for i, var in ipairs(func.args) do + if var.type == 'dots' then + local list = { + type = 'list', + } + for n = i, #values do + list[n-i+1] = values[n] + end + self:setValue(var, list) + break + else + self:setValue(var, values[i]) + end + end +end + +function mt:setFunctionArg(func, values) + if func.uri ~= self.uri then + return + end + if not func.argValues then + func.argValues = {} + end + for i = 1, #values do + if not func.argValues[i] then + func.argValues[i] = values[i] + end + self:inference(values[i], func.argValues[i].type) + self:inference(func.argValues[i], values[i].type) + end + + self:updateFunctionArgs(func) +end + +function mt:getFunctionArg(func, i) + if not func.argValues then + func.argValues = {} + end + if not func.argValues[i] then + for n = #func.argValues+1, i do + func.argValues[n] = self:createValue('any') + end + end + return func.argValues[i] +end + +function mt:checkMetaIndex(value, meta) + local index = self:getField(meta, '__index') + if not index then + return + end + local indexValue = self:getValue(index) + -- TODO 支持function + self:mergeChild(value, indexValue) +end + +function mt:callSetMetaTable(func, values) + if not values[1] then + values[1] = self:createValue('any') + end + if not values[2] then + values[2] = self:createValue('any') + end + self:setFunctionReturn(func, 1, values[1]) + + values[1].metatable = values[2] + -- 检查 __index + self:checkMetaIndex(values[1], values[2]) +end + +function mt:getRequire(strValue, destVM) + -- 取出对方的主函数 + local main = destVM.results.main + -- 获取主函数返回值,注意不能修改对方的环境 + local mainValue + if main.returns then + mainValue = readOnly(main.returns[1]) + else + mainValue = self:createValue('boolean', nil, true) + mainValue.uri = destVM.uri + end + + return mainValue +end + +function mt:getLoadFile(strValue, destVM) + -- 取出对方的主函数 + local main = destVM.results.main + -- loadfile 的返回值就是对方的主函数 + local mainValue = readOnly(main) + + return mainValue +end + +function mt:tryRequireOne(strValue, mode) + if not self.lsp or not self.lsp.workspace then + return nil + end + local str = strValue.value + if type(str) == 'string' then + -- 支持 require 'xxx' 的转到定义 + local strSource = strValue.source + self.results.sources[strSource] = strValue + strValue.isRequire = true + + local uri + if mode == 'require' then + uri = self.lsp.workspace:searchPath(self.uri, str) + elseif mode == 'loadfile' then + uri = self.lsp.workspace:loadPath(self.uri, str) + elseif mode == 'dofile' then + uri = self.lsp.workspace:loadPath(self.uri, str) + end + if not uri then + return nil + end + + strValue.uri = uri + -- 如果取不到VM(不编译),则做个标记,之后再取一次 + local destVM = self.lsp:getVM(uri) + self.lsp:compileChain(self.uri, uri) + if destVM then + if mode == 'require' then + return self:getRequire(strValue, destVM) + elseif mode == 'loadfile' then + return self:getLoadFile(strValue, destVM) + elseif mode == 'dofile' then + return self:getRequire(strValue, destVM) + end + end + end + return nil +end + +function mt:callRequire(func, values) + if not values[1] then + values[1] = self:createValue('any') + end + local str = values[1].value + if type(str) ~= 'string' then + return + end + local lib = library.library[str] + if lib then + local value = self:getLibValue(lib, 'library') + self:setFunctionReturn(func, 1, value) + return + else + local requireValue = self:tryRequireOne(values[1], 'require') + if not requireValue then + requireValue = self:createValue('boolean') + requireValue.isRequire = true + end + self:setFunctionReturn(func, 1, requireValue) + end +end + +function mt:callLoadFile(func, values) + if not values[1] then + values[1] = self:createValue('any') + end + local str = values[1].value + if type(str) ~= 'string' then + return + end + local requireValue = self:tryRequireOne(values[1], 'loadfile') + if not requireValue then + requireValue = self:createValue('any') + requireValue.isRequire = true + end + self:setFunctionReturn(func, 1, requireValue) +end + +function mt:callDoFile(func, values) + if not values[1] then + values[1] = self:createValue('any') + end + local str = values[1].value + if type(str) ~= 'string' then + return + end + local requireValue = self:tryRequireOne(values[1], 'dofile') + if not requireValue then + requireValue = self:createValue('any') + requireValue.isRequire = true + end + self:setFunctionReturn(func, 1, requireValue) +end + +function mt:call(func, values) + self:inference(func, 'function') + local lib = func.lib + if lib then + if lib.args then + for i, arg in ipairs(lib.args) do + if arg.type == '...' then + self:inference(self:getFunctionArg(func, i), 'any') + else + self:inference(self:getFunctionArg(func, i), arg.type or 'any') + end + end + end + if lib.returns then + for i, rtn in ipairs(lib.returns) do + if rtn.type == '...' then + self:inference(self:getFunctionReturns(func, i), 'any') + else + self:inference(self:getFunctionReturns(func, i), rtn.type or 'any') + end + end + end + if lib.special then + if lib.special == 'setmetatable' then + self:callSetMetaTable(func, values) + elseif lib.special == 'require' then + self:callRequire(func, values) + elseif lib.special == 'loadfile' then + self:callLoadFile(func, values) + elseif lib.special == 'dofile' then + self:callDoFile(func, values) + end + end + end + + self:setFunctionArg(func, values) + + return self:getFunctionReturns(func) +end + +function mt:getCurrentFunction() + return self.chunk.func +end + +function mt:mergeFunctionReturn(func, index, value) + if not func.returns[index] then + func.returns[index] = value + return + end + if value.type == 'nil' then + return + end + if value == 'any' and func.returns[index] ~= 'nil' then + return + end + func.returns[index] = value +end + +function mt:setFunctionReturn(func, index, value) + func:set('hasReturn', true) + if not func.returns then + func.returns = { + type = 'list', + } + end + if value then + if value.type == 'list' then + for i, v in ipairs(value) do + self:mergeFunctionReturn(func, index+i-1, v) + end + else + self:mergeFunctionReturn(func, index, value) + end + else + self:mergeFunctionReturn(func, index, self:createValue('any')) + end +end + +function mt:getFunctionReturns(func, i) + if func.maxReturns and i and func.maxReturns < i then + return self:createValue('nil') + end + if not func.returns then + func.returns = { + type = 'list', + } + end + if i then + if not func.returns[i] then + for n = #func.returns+1, i do + func.returns[n] = self:createValue('any') + end + end + return func.returns[i] + else + return func.returns + end +end + +function mt:inference(value, type) + if type == '...' then + error('Value type cant be ...') + end + if value.type == 'any' and type ~= 'nil' then + value.type = type + end +end + +function mt:createValue(tp, source, v) + local value = createValue(tp, self.uri, source, v) + local lib = library.object[tp] + if lib then + self:getLibChild(value, lib, 'object') + end + return value +end + +function mt:getLibChild(value, lib, parentType) + if lib.child then + if self.libraryChild[lib] then + value.child = self.libraryChild[lib] + return + end + self.libraryChild[lib] = {} + for fName, fLib in pairs(lib.child) do + local fField = self:createField(value, fName) + local fValue = self:getLibValue(fLib, parentType) + self:setValue(fField, fValue) + end + if value.child then + for k, v in pairs(value.child) do + self.libraryChild[lib][k] = v + end + end + value.child = self.libraryChild[lib] + end +end + +function mt:getLibValue(lib, parentType, v) + if self.libraryValue[lib] then + return self.libraryValue[lib] + end + local tp = lib.type + local value + if tp == 'table' then + value = self:createValue('table') + elseif tp == 'function' then + value = self:createValue('function') + if lib.returns then + local dots + for i, rtn in ipairs(lib.returns) do + self:setFunctionReturn(value, i, self:getLibValue(rtn, parentType)) + if rtn.type == '...' then + dots = true + end + end + if not dots then + value.maxReturns = #lib.returns + end + else + value.maxReturns = 0 + end + if lib.args then + local values = {} + for i, arg in ipairs(lib.args) do + values[i] = self:getLibValue(arg, parentType) or self:createValue('any') + end + self:setFunctionArg(value, values) + end + elseif tp == 'string' then + value = self:createValue('string', nil, v or lib.value) + elseif tp == 'boolean' then + value = self:createValue('boolean', nil, v or lib.value) + elseif tp == 'number' then + value = self:createValue('number', nil, v or lib.value) + elseif tp == 'integer' then + value = self:createValue('integer', nil, v or lib.value) + elseif tp == 'nil' then + value = self:createValue('nil') + elseif tp == '...' then + value = self:createValue('any') + else + value = self:createValue(tp or 'any') + end + self.libraryValue[lib] = value + value.lib = lib + value.parentType = parentType + + self:getLibChild(value, lib, parentType) + + return value +end + +function mt:getName(name, source) + local loc = self.scope.locals[name] + if loc then + return loc + end + local ENV = self.scope.locals._ENV + local global = self:getField(self:getValue(ENV), name, source) + global.parent = ENV + return global +end + +function mt:getIndex(obj) + local tp = obj.type + if tp == 'name' then + local var = self:getName(obj[1]) + local value = self:getValue(var) + self:addInfo(var, 'get', obj) + return value + elseif (tp == 'string' or tp == 'number' or tp == 'boolean') then + return obj[1] + else + return self:getExp(obj) + end +end + +-- expect表示遇到 ... 时,期待的返回数量 +function mt:unpackDots(res, expect) + local dots = self:getDots(1) + local func = dots.func + local start = dots.index + if expect then + local finish = start + expect - 1 + for i = start, finish do + res[#res+1] = self:getFunctionArg(func, i) + end + else + if not func.argValues then + return + end + for i = start, #func.argValues do + res[#res+1] = func.argValues[i] + end + end +end + +function mt:unpackList(list, expect) + local res = { + type = 'list', + } + if not list then + return res + end + if list.type == 'list' or list.type == 'call' then + for i, exp in ipairs(list) do + if exp.type == '...' then + self:unpackDots(res, expect) + break + end + local value = self:getExp(exp) + if value.type == 'list' then + if i == #list then + for _, v in ipairs(value) do + res[#res+1] = v + end + else + res[#res+1] = value[1] + end + else + res[#res+1] = value + end + end + elseif list.type == '...' then + self:unpackDots(res, expect) + else + local value = self:getExp(list) + if value.type == 'list' then + for i, v in ipairs(value) do + res[i] = v + end + else + res[1] = value + end + end + for _, v in ipairs(res) do + if v.type == 'list' then + error('Unpack list') + end + end + return res +end + +function mt:getSimple(simple, mode) + local value = self:getExp(simple[1]) + local field + local parentName + local tp = simple[1].type + if tp == 'name' then + field = self:getName(simple[1][1]) + parentName = field.key + elseif tp == 'string' or tp == 'number' or tp == 'nil' or tp == 'boolean' then + local v = self:createValue(tp, simple[1], simple[1][1]) + field = self:createDummyVar(simple[1], v) + parentName = '*' .. tp + else + local v = self:createValue('any', simple[1]) + field = self:createDummyVar(simple[1], v) + parentName = '?' + end + local object + local lastField = field + for i = 2, #simple do + local obj = simple[i] + local tp = obj.type + + if tp == 'call' then + local args = self:unpackList(obj) + if object then + table.insert(args, 1, self:getValue(object)) + end + local func = value + -- 函数的返回值一定是list + value = self:call(func, args) + if i < #simple then + value = value[1] or self:createValue('any') + end + self.results.calls[#self.results.calls+1] = { + args = obj, + lastObj = simple[i-1], + nextObj = simple[i+1], + func = func, + } + parentName = parentName .. '(...)' + elseif tp == 'index' then + local child = obj[1] + local index = self:getIndex(child) + field = self:getField(value, index, child) + field.parentValue = value + value = self:getValue(field) + if mode == 'value' or i < #simple then + self:addInfo(field, 'get', obj) + end + field.parent = lastField + lastField = field + obj.object = object + obj.parentName = parentName + if obj[1].type == 'string' then + parentName = ('%s[%q]'):format(parentName, index) + elseif obj[1].type == 'number' or obj[1].type == 'boolean' then + parentName = ('%s[%s]'):format(parentName, index) + else + parentName = ('%s[?]'):format(parentName) + end + elseif tp == 'name' then + field = self:getField(value, obj[1], obj) + field.parentValue = value + value = self:getValue(field) + if mode == 'value' or i < #simple then + self:addInfo(field, 'get', obj) + end + field.parent = lastField + lastField = field + obj.object = object + obj.parentName = parentName + parentName = parentName .. '.' .. field.key + elseif tp == ':' then + object = field + simple[i-1].colon = obj + elseif tp == '.' then + simple[i-1].dot = obj + end + end + if mode == 'value' then + return value, object + elseif mode == 'field' then + return field, object + end + error('Unknow simple mode: ' .. mode) +end + +function mt:isTrue(v) + if v.type == 'nil' then + return false + end + if v.type == 'boolean' and not v.value then + return false + end + return true +end + +function mt:getBinary(exp) + local v1 = self:getExp(exp[1]) + local v2 = self:getExp(exp[2]) + local op = exp.op + -- TODO 搜索元方法 + if op == 'or' then + if self:isTrue(v1) then + return v1 + else + return v2 + end + elseif op == 'and' then + if self:isTrue(v1) then + return v2 + else + return v1 + end + elseif op == '<=' + or op == '>=' + or op == '<' + or op == '>' + then + self:inference(v1, 'number') + self:inference(v2, 'number') + return self:createValue('boolean') + elseif op == '~=' + or op == '==' + then + return self:createValue('boolean') + elseif op == '|' + or op == '~' + or op == '&' + or op == '<<' + or op == '>>' + then + self:inference(v1, 'integer') + self:inference(v2, 'integer') + if math.type(v1.value) == 'integer' and math.type(v2.value) == 'integer' then + if op == '|' then + return self:createValue('integer', v1.value | v2.value) + elseif op == '~' then + return self:createValue('integer', v1.value ~ v2.value) + elseif op == '&' then + return self:createValue('integer', v1.value &v2.value) + elseif op == '<<' then + return self:createValue('integer', v1.value << v2.value) + elseif op == '>>' then + return self:createValue('integer', v1.value >> v2.value) + end + end + return self:createValue('integer') + elseif op == '..' then + self:inference(v1, 'string') + self:inference(v2, 'string') + if type(v1.value) == 'string' and type(v2.value) == 'string' then + return self:createValue('string', nil, v1.value .. v2.value) + end + return self:createValue('string') + elseif op == '+' + or op == '-' + or op == '*' + or op == '/' + or op == '^' + or op == '%' + or op == '//' + then + self:inference(v1, 'number') + self:inference(v2, 'number') + if type(v1.value) == 'number' and type(v2.value) == 'number' then + if op == '+' then + return self:createValue('number', nil, v1.value + v2.value) + elseif op == '-' then + return self:createValue('number', nil, v1.value - v2.value) + elseif op == '*' then + return self:createValue('number', nil, v1.value * v2.value) + elseif op == '/' then + if v2.value ~= 0 then + return self:createValue('number', nil, v1.value / v2.value) + end + elseif op == '^' then + return self:createValue('number', nil, v1.value ^ v2.value) + elseif op == '%' then + if v2.value ~= 0 then + return self:createValue('number', nil, v1.value % v2.value) + end + elseif op == '//' then + if v2.value ~= 0 then + return self:createValue('number', nil, v1.value // v2.value) + end + end + end + return self:createValue('number') + end + return nil +end + +function mt:getUnary(exp) + local v1 = self:getExp(exp[1]) + local op = exp.op + -- TODO 搜索元方法 + if op == 'not' then + return self:createValue('boolean') + elseif op == '#' then + self:inference(v1, 'table') + if type(v1.value) == 'string' then + return self:createValue('integer', nil, #v1.value) + end + return self:createValue('integer') + elseif op == '-' then + self:inference(v1, 'number') + if type(v1.value) == 'number' then + return self:createValue('number', nil, -v1.value) + end + return self:createValue('number') + elseif op == '~' then + self:inference(v1, 'integer') + if math.type(v1.value) == 'integer' then + return self:createValue('integer', nil, ~v1.value) + end + return self:createValue('integer') + end + return nil +end + +function mt:getDots() + if not self.chunk.dots then + self:createDots(1) + end + return self.chunk.dots +end + +function mt:getExp(exp) + local tp = exp.type + if tp == 'nil' then + return self:createValue('nil', exp) + elseif tp == 'string' then + self.results.strings[#self.results.strings+1] = exp + return self:createValue('string', exp, exp[1]) + elseif tp == 'boolean' then + return self:createValue('boolean', exp, exp[1]) + elseif tp == 'number' then + return self:createValue('number', exp, exp[1]) + elseif tp == 'name' then + local var = self:getName(exp[1], exp) + local value = self:getValue(var) + self:addInfo(var, 'get', exp) + return value + elseif tp == 'simple' then + return self:getSimple(exp, 'value') + elseif tp == 'binary' then + return self:getBinary(exp) + elseif tp == 'unary' then + return self:getUnary(exp) + elseif tp == 'function' then + return self:buildFunction(exp) + elseif tp == 'table' then + return self:buildTable(exp) + elseif tp == '...' then + local value = { type = 'list' } + self:unpackDots(value) + return value + end + error('Unkown exp type: ' .. tostring(tp)) +end + +function mt:doDo(action) + self:scopePush(action) + self:doActions(action) + self:scopePop() +end + +function mt:doReturn(action) + self:getCurrentFunction():set('hasReturn', true) + for i, exp in ipairs(action) do + local value = self:getExp(exp) + if value.type == 'list' then + if i == #action then + if #value == 0 then + value[1] = self:createValue('any', exp) + end + for x, v in ipairs(value) do + self:addInfo(v, 'return', exp) + self:setFunctionReturn(self:getCurrentFunction(), i + x - 1, v) + end + break + else + local v = value[1] or self:createValue('nil', exp) + self:addInfo(v, 'return', exp) + self:setFunctionReturn(self:getCurrentFunction(), i, v) + end + else + self:addInfo(value, 'return', exp) + self:setFunctionReturn(self:getCurrentFunction(), i, value) + end + end +end + +function mt:createLabel(action) + local name = action[1] + if not self.chunk.labels[name] then + local label = { + type = 'label', + key = name, + } + self.chunk.labels[name] = label + self.results.labels[#self.results.labels+1] = label + end + return self.chunk.labels[name] +end + +function mt:doSet(action) + if not action[2] then + return + end + local n = self:countList(action[1]) + -- 要先计算值 + local values = self:unpackList(action[2], n) + self:forList(action[1], function (key) + local value = table.remove(values, 1) + if key.type == 'name' then + local var = self:getName(key[1], key) + self:setValue(var, value, key) + if self:isGlobal(var) then + self.results.globals[#self.results.globals+1] = { + type = 'global', + global = var, + } + end + elseif key.type == 'simple' then + local field = self:getSimple(key, 'field') + self:setValue(field, value, key[#key]) + local var = field + repeat + if self:isGlobal(var) then + self.results.globals[#self.results.globals+1] = { + type = 'field', + global = var, + } + break + end + var = var.parent + until not var + end + end) +end + +function mt:doLocal(action) + local n = self:countList(action[1]) + local values + if action[2] then + values = self:unpackList(action[2], n) + end + self:forList(action[1], function (key) + local value + if values then + value = table.remove(values, 1) + end + self:createLocal(key[1], key, value) + end) +end + +function mt:doIf(action) + for _, block in ipairs(action) do + if block.filter then + self:getExp(block.filter) + end + + self:scopePush(block) + self:doActions(block) + self:scopePop() + end +end + +function mt:doLoop(action) + + local min = self:unpackList(action.min)[1] + self:getExp(action.max) + if action.step then + self:getExp(action.step) + end + + self:scopePush(action) + self:createLocal(action.arg[1], action.arg, min) + self:doActions(action) + self:scopePop() +end + +function mt:doIn(action) + local args = self:unpackList(action.exp) + + self:scopePush(action) + local func = table.remove(args, 1) or self:createValue('any') + local values = self:call(func, args) + self:forList(action.arg, function (arg) + local value = table.remove(values, 1) + self:createLocal(arg[1], arg, value) + end) + + self:doActions(action) + + self:scopePop() +end + +function mt:doWhile(action) + + self:getExp(action.filter) + + self:scopePush(action) + self:doActions(action) + self:scopePop() +end + +function mt:doRepeat(action) + self:scopePush(action) + self:doActions(action) + self:getExp(action.filter) + self:scopePop() +end + +function mt:doFunction(action) + local name = action.name + local var, object + local source + if name then + if name.type == 'simple' then + var, object = self:getSimple(name, 'field') + source = name[#name] + else + var = self:getName(name[1], name) + source = name + end + end + local func = self:buildFunction(action, object) + if var then + self:setValue(var, func, source) + end +end + +function mt:doLocalFunction(action) + local name = action.name + local var, object + local source + if name then + if name.type == 'simple' then + var, object = self:getSimple(name, 'field') + source = name[#name] + else + var = self:createLocal(name[1], name) + source = name + end + end + local func = self:buildFunction(action, object) + if var then + self:setValue(var, func, source) + end +end + +function mt:doAction(action) + if not action then + -- Skip + return + end + local tp = action.type + if tp == 'do' then + self:doDo(action) + elseif tp == 'break' then + elseif tp == 'return' then + self:doReturn(action) + elseif tp == 'label' then + local label = self:createLabel(action) + self:addInfo(label, 'set', action) + elseif tp == 'goto' then + local label = self:createLabel(action) + self:addInfo(label, 'goto', action) + elseif tp == 'set' then + self:doSet(action) + elseif tp == 'local' then + self:doLocal(action) + elseif tp == 'simple' then + -- call + self:getSimple(action, 'value') + elseif tp == 'if' then + self:doIf(action) + elseif tp == 'loop' then + self:doLoop(action) + elseif tp == 'in' then + self:doIn(action) + elseif tp == 'while' then + self:doWhile(action) + elseif tp == 'repeat' then + self:doRepeat(action) + elseif tp == 'function' then + self:doFunction(action) + elseif tp == 'localfunction' then + self:doLocalFunction(action) + else + self:getExp(action) + end +end + +function mt:doActions(actions) + for _, action in ipairs(actions) do + self:doAction(action) + if coroutine.isyieldable() then + coroutine.yield() + end + end +end + +function mt:createEnvironment() + self.scope.block = { start = 0, finish = math.maxinteger } + -- 整个文件是一个函数 + self.chunk.func = self:buildFunction() + self.results.main = self.chunk.func + -- 隐藏的上值`_ENV` + local parent = self:createLocal('_ENV') + parent.hide = true + local envValue = self:setValue(parent, self:buildTable()) + -- _ENV 有个特殊标记 + envValue.ENV = true + -- 隐藏的参数`...` + self:createDots(1) + + -- 设置全局变量 + if not GlobalChild then + for name, lib in pairs(library.global) do + local field = self:createField(envValue, name) + local value = self:getLibValue(lib, 'global') + value = self:setValue(field, value) + end + GlobalChild = envValue.child + end + envValue.child = readOnly(GlobalChild) + + -- 设置 _G 使用 _ENV 的child + local g = self:getField(envValue, '_G') + local gValue = self:getValue(g) + gValue.child = envValue.child + self.env = envValue +end + +local function compile(ast, lsp, uri) + local vm = setmetatable({ + scope = env { + locals = {}, + }, + chunk = env { + labels = {}, + }, + results = { + locals = {}, + labels = {}, + funcs = {}, + calls = {}, + sources= {}, + strings= {}, + indexs = {}, + globals= {}, + main = nil, + }, + libraryValue = {}, + libraryChild = {}, + lsp = lsp, + uri = uri, + }, mt) + + -- 创建初始环境 + vm:createEnvironment() + + -- 执行代码 + vm:doActions(ast) + + vm.scope = nil + vm.chunk = nil + vm.libraryValue = nil + vm.libraryChild = nil + + return vm +end + +return function (ast, lsp, uri) + if not ast then + return nil + end + local suc, res = xpcall(compile, log.error, ast, lsp, uri) + if not suc then + return nil + end + return res +end diff --git a/script/test/find_lib/init.lua b/script/test/find_lib/init.lua new file mode 100644 index 00000000..51f53b75 --- /dev/null +++ b/script/test/find_lib/init.lua @@ -0,0 +1,106 @@ +local core = require 'core' +local parser = require 'parser' +local buildVM = require 'vm' + +rawset(_G, 'TEST', true) + +function TEST(fullkey) + return function (script) + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + local pos = (start + finish) // 2 + 1 + local new_script = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + assert(ast) + local vm = buildVM(ast) + assert(vm) + local source = core.findSource(vm, pos) + local _, name = core.findLib(source) + assert(name == fullkey) + end +end + +TEST 'require' [[ +<?require?> 'xxx' +]] + +TEST 'req<require>' [[ +local <?req?> = require +]] + +TEST 'req<require>' [[ +local req = require +local t = { + xx = req, +} +t[<?'xx'?>]() +]] + +TEST 'table' [[ +<?table?>.unpack() +]] + +TEST 'xx<table>' [[ +local <?xx?> = require 'table' +]] + +TEST 'xx<table>' [[ +local rq = require +local lib = 'table' +local <?xx?> = rq(lib) +]] + +TEST 'table.insert' [[ +table.<?insert?>() +]] + +TEST 'table.insert' [[ +local t = table +t.<?insert?>() +]] + +TEST 'table.insert' [[ +local insert = table.insert +<?insert?>() +]] + +TEST 'table.insert' [[ +local t = require 'table' +t.<?insert?>() +]] + +TEST 'table.insert' [[ +require 'table'.<?insert?>() +]] + +TEST '*string.sub' [[ +local str = 'xxx' +str.<?sub?>() +]] + +TEST '*string:sub' [[ +local str = 'xxx' +str:<?sub?>(1, 1) +]] + +TEST '*string.sub' [[ +('xxx').<?sub?>() +]] + +TEST 'fs<bee::filesystem>' [[ +local <?fs?> = require 'bee.filesystem' +]] + +TEST 'fs.current_path' [[ +local filesystem = require 'bee.filesystem' + +ROOT = filesystem.<?current_path?>() +]] + +TEST(nil)[[ +print(<?insert?>) +]] + +TEST '_G' [[ +local x = <?_G?> +]] diff --git a/script/test/full/dirty.lua b/script/test/full/dirty.lua new file mode 100644 index 00000000..5fe4e998 --- /dev/null +++ b/script/test/full/dirty.lua @@ -0,0 +1,15 @@ +TEST [[ +a. +]] + +TEST [[ +a: +]] + +TEST [[ +end +]] + +TEST [[ +table.02X +]] diff --git a/script/test/full/example.lua b/script/test/full/example.lua new file mode 100644 index 00000000..a096f83d --- /dev/null +++ b/script/test/full/example.lua @@ -0,0 +1,42 @@ +local fs = require 'bee.filesystem' +local core = require 'core' +local parser = require 'parser' + +TEST(io.load(ROOT / 'src' / 'vm' / 'vm.lua')) + +-- 临时 +local function testIfExit(path) + local buf = io.load(fs.path(path)) + if buf then + local vm + + local clock = os.clock() + local max = 100 + local need + for i = 1, max do + vm = TEST(buf) + local passed = os.clock() - clock + if passed >= 1.0 or i == max then + need = passed / i + break + end + end + print(('基准编译测试[%s]单次耗时:%.10f'):format(path:filename():string(), need)) + + local clock = os.clock() + local max = 100 + local need + local lines = parser:lines(buf, 'utf8') + for i = 1, max do + core.diagnostics(vm, lines, 'test') + local passed = os.clock() - clock + if passed >= 1.0 or i == max then + need = passed / i + break + end + end + print(('基准诊断测试[%s]单次耗时:%.10f'):format(path:filename():string(), need)) + end +end +testIfExit(ROOT / 'test' / 'example' / 'vm.txt') +testIfExit(ROOT / 'test' / 'example' / 'largeGlobal.txt') diff --git a/script/test/full/init.lua b/script/test/full/init.lua new file mode 100644 index 00000000..3d0661cb --- /dev/null +++ b/script/test/full/init.lua @@ -0,0 +1,16 @@ +local buildVM = require 'vm' +local parser = require 'parser' + +rawset(_G, 'TEST', true) + +function TEST(script) + local ast = parser:parse(script, 'lua', 'Lua 5.3') + assert(ast) + local vm, err = buildVM(ast) + assert(vm, err) + return vm +end + +require 'full.normal' +require 'full.example' +require 'full.dirty' diff --git a/script/test/full/normal.lua b/script/test/full/normal.lua new file mode 100644 index 00000000..a673e74b --- /dev/null +++ b/script/test/full/normal.lua @@ -0,0 +1,157 @@ +TEST [[ +do + x = 1 +end +]] + +TEST [[ +return nil, 1, true, 'xx' +]] + +TEST [[ +return a +]] + +TEST [[ +retrun a.b:c(1, 2, ...)[1][name] +]] + +TEST [[ +return 1 + 1 +]] + +TEST [[ +return -1 +]] + +TEST [[ +return ... +]] + +TEST [[ +return function (a, b, ...) +end +]] + +TEST [[ +return { + a = 1, + b = { + c = d, + e = f, + }, + g, + h, + 1, +} +]] + +TEST [[ +::LABEL:: +goto LABEL +goto NEXT +::NEXT:: +]] + +TEST [[ +a, b, c = 1, 2, ... +]] + +TEST [[ +local a, b, c = 1, 2, ... +]] + +TEST [[ +a[#a+1] = 1 +]] + +TEST [[ +xx(a, b, 2, 3, ...) +]] + +TEST [[ +if a then +elseif b then +elseif c then +else +end +]] + +TEST [[ +for i = 1, 10, 1 do +end +]] + +TEST [[ +for a, b, c in pairs(t) do +end +]] + +TEST [[ +while true do +end +]] + +TEST [[ +repeat +until true +]] + +TEST [[ +function xx:yy(a, b, c, ...) +end +]] + +TEST [[ +local function xx(a, b, c, ...) +end +]] + +TEST [[ +local v = 1 +local function xx() + print(v) +end +local v = 2 +xx() +]] + +TEST [[ +return { + 1, 2, 3 +} +]] + +TEST [[ +return function () +end +]] + +TEST [[ +t[...] = 1 +]] + +TEST [[ +return { + [...] = ... +} +]] + +TEST [[ +-- 选取单位 +---@param center point +---@param radius number +---@param height number +---@return unit[] +function scene:selectByCylinder(center, radius, height) +end +]] + +TEST [[ +local x = , +]] + +TEST [[ +---@type any|fun():nil +local t +]] diff --git a/script/test/highlight/init.lua b/script/test/highlight/init.lua new file mode 100644 index 00000000..6b8ab355 --- /dev/null +++ b/script/test/highlight/init.lua @@ -0,0 +1,85 @@ +local core = require 'core' +local parser = require 'parser' +local buildVM = require 'vm' + +local function catch_target(script) + local list = {} + local cur = 1 + while true do + local start, finish = script:find('<[!?].-[!?]>', cur) + if not start then + break + end + list[#list+1] = { start + 2, finish - 2 } + cur = finish + 1 + end + return list +end + +local function founded(targets, results) + if #targets ~= #results then + return false + end + for _, target in ipairs(targets) do + for _, result in ipairs(results) do + if target[1] == result[1] and target[2] == result[2] then + goto NEXT + end + end + do return false end + ::NEXT:: + end + return true +end + +function TEST(newName) + return function (script) + local target = catch_target(script) + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + local pos = (start + finish) // 2 + 1 + local new_script = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + assert(ast) + local vm = buildVM(ast) + assert(vm) + + local positions = core.highlight(vm, pos) + if positions then + assert(founded(target, positions)) + else + assert(#target == 0) + end + end +end + +TEST 'b' [[ +local <?a?> = 1 +]] + +TEST 'b' [[ +local <?a?> = 1 +<!a!> = 2 +<!a!> = <!a!> +]] + +TEST 'b' [[ +t.<?a?> = 1 +a = t.<!a!> +]] + +TEST 'b' [[ +t[<!'a'!>] = 1 +a = t.<?a?> +]] + +TEST 'b' [[ +:: <?a?> :: +goto <!a!> +]] + +TEST 'b' [[ +local function f(<!a!>) + return <?a?> +end +]] diff --git a/script/test/hover/init.lua b/script/test/hover/init.lua new file mode 100644 index 00000000..362ec9ac --- /dev/null +++ b/script/test/hover/init.lua @@ -0,0 +1,890 @@ +local parser = require 'parser' +local core = require 'core' +local buildVM = require 'vm' + +rawset(_G, 'TEST', true) + +function TEST(script) + return function (expect) + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + local pos = (start + finish) // 2 + 1 + local new_script = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + local vm = buildVM(ast) + assert(vm) + local source = core.findSource(vm, pos) + local hover = core.hover(source) + if expect then + assert(hover) + expect = expect:gsub('^[\r\n]*(.-)[\r\n]*$', '%1'):gsub('\r\n', '\n') + local label = hover.label:gsub('^[\r\n]*(.-)[\r\n]*$', '%1'):gsub('\r\n', '\n') + assert(expect == label) + else + assert(hover == nil) + end + end +end + +TEST [[ +local function <?x?>(a, b) +end +]] +"function x(a: any, b: any)" + +TEST [[ +local function x(a, b) +end +<?x?>() +]] +"function x(a: any, b: any)" + +TEST [[ +local mt = {} +mt.__index = mt + +function mt:init(a, b, c) + return {} +end + +local obj = setmetatable({}, mt) + +obj:<?init?>(1, '测试') +]] +[[ +function mt:init(a: number, b: string, c: any) + -> table +]] + +TEST [[ +local mt = {} +mt.__index = mt + +function mt:init(a, b, c) + return {} +end + +local obj = setmetatable({}, mt) + +obj:init(1, '测试') +obj.<?init?>(obj, 1, '测试') +]] +[[ +function mt.init(self: table, a: number, b: string, c: any) + -> table +]] + +TEST [[ +function obj.xxx() +end + +obj.<?xxx?>() +]] +"function obj.xxx()" + +TEST [[ +obj.<?xxx?>() +]] +[[function obj.xxx() + -> any +]] + +TEST [[ +local <?x?> = 1 +]] +"local x: number = 1" + +TEST [[ +<?x?> = 1 +]] +"global x: number = 1" + +TEST [[ +local t = {} +t.<?x?> = 1 +]] +"field t.x: number = 1" + +TEST [[ +t = {} +t.<?x?> = 1 +]] +"global t.x: number = 1" + +TEST [[ +local mt = {} +mt.__name = 'class' + +local <?obj?> = setmetatable({}, mt) +]] +"local obj: *class {}" + +TEST [[ +local mt = {} +mt.name = 'class' +mt.__index = mt + +local <?obj?> = setmetatable({}, mt) +]] +[[ +local obj: *class { + __index: table, + name: string = "class", +} +]] + +TEST [[ +local mt = {} +mt.TYPE = 'class' +mt.__index = mt + +local <?obj?> = setmetatable({}, mt) +]] +[[ +local obj: *class { + TYPE: string = "class", + __index: table, +} +]] + +TEST [[ +local mt = {} +mt.Class = 'class' +mt.__index = mt + +local <?obj?> = setmetatable({}, mt) +]] +[[ +local obj: *class { + Class: string = "class", + __index: table, +} +]] + +TEST[[ +local fs = require 'bee.filesystem' +local <?root?> = fs.current_path() +]] +"local root: *bee::filesystem" + +TEST[[ +('xx'):<?yy?>() +]] +[[function *string:yy() + -> any]] + +TEST [[ +local <?v?> = collectgarbage() +]] +"local v: any" + +TEST [[ +local type +w2l:get_default()[<?type?>] +]] +"local type: any" + +TEST [[ +<?load?>() +]] +[=[ +function load(chunk: string/function [, chunkname: string [, mode: string [, env: table]]]) + -> function + 2. error_message: string +]=] + +TEST [[ +string.<?lower?>() +]] +[[ +function string.lower(string) + -> string +]] + +TEST [[ +local function x(a, ...) +end + +<?x?>(1, 2, 3, 4, 5, 6, 7) +]] +[[ +function x(a: number, ...) +]] + +TEST [[ +local function x() + return y() +end + +<?x?>() +]] +[[ +function x() + -> any +]] + +TEST [[ +local mt = {} +mt.__index = mt + +function mt:add(a, b) +end + +local function init() + return setmetatable({}, mt) +end + +local t = init() +t:<?add?>() +]] +[[ +function mt:add(a: any, b: any) +]] + +TEST [[ +local <?t?> = - 1000 +]] +[[local t: number = -1000]] + +TEST [[ +for <?c?> in io.lines() do +end +]] +[[local c: string]] + +TEST [[ +local function f() + return ... +end +local <?n?> = f() +]] +[[local n: any]] + +TEST [[ +local <?n?> = table.unpack(t) +]] +[[local n: any]] + +TEST [[ +local <?n?> +table.pack(n) +]] +[[ +local n: any +]] + +TEST [[ +(<?'xxx'?>):sub() +]] +(nil) + +TEST [[ +local <?t?> = { + a = 1, + b = 2, + c = 3, +} +]] +[[ +local t: { + a: number = 1, + b: number = 2, + c: number = 3, +} +]] + +TEST [[ +local <?t?> = { + a = 1, + [1] = 2, + [true] = 3, + [5.5] = 4, + [{}] = 5, + [function () end] = 6, + ["b"] = 7, + ["012"] = 8, +} +]] +[[ +local t: { + ["012"]: number = 8, + [*function]: number = 6, + [*table]: number = 5, + [001]: number = 2, + [5.5]: number = 4, + [true]: number = 3, + a: number = 1, + b: number = 7, +} +]] + +TEST [[ +local <?t?> = {} +t[#t+1] = 1 +t[#t+1] = 1 + +local any = collectgarbage() +t[any] = any +]] +[[ +local t: { + [*number]: number = 1, +} +]] + +TEST[[ +local x = 1 +local y = x +print(<?y?>) +]] +[[ +local y: number = 1 +]] + +TEST[[ +local mt = {} +mt.a = 1 +mt.b = 2 +mt.c = 3 +local <?obj?> = setmetatable({}, {__index = mt}) +]] +[[ +local obj: { + a: number = 1, + b: number = 2, + c: number = 3, +} +]] + +TEST[[ +local mt = {} +mt.__index = {} + +function mt:test(a, b) + self:<?test?>() +end +]] +[[ +function mt:test(a: any, b: any) +]] + +TEST[[ +local mt = {} +mt.__index = mt +mt.__name = 'obj' + +function mt:remove() +end + +local <?self?> = setmetatable({ + id = 1, +}, mt) +]] +[[ +local self: *obj { + __index: table, + __name: string = "obj", + id: number = 1, + remove: function, +} +]] + +TEST[[ +local <?sssss?> = require 'utf8' +]] +[[ +local sssss<utf8>: { + char: function, + charpattern: string, + codepoint: function, + codes: function, + len: function, + offset: function, +} +]] + +TEST[[ +function a(v) + print(<?v?>) +end +a(1) +]] +[[ +local v: number = 1 +]] + +TEST[[ +function a(v) + print(<?v?>) +end +pcall(a, 1) +]] +[[ +local v: number = 1 +]] + +TEST[[ +function a(v) + print(<?v?>) +end +xpcall(a, log.error, 1) +]] +[[ +local v: number = 1 +]] + +TEST[[ +function a(v) + return 'a' +end +local _, <?r?> = pcall(a, 1) +]] +[[ +local r: string = "a" +]] + +TEST[[ +local <?n?> = rawlen() +]] +[[ +local n: integer +]] + +TEST[[ +<?next?>() +]] +[[ +function next(table: table [, index: any]) + -> key: any + 2. value: any +]] + +TEST[[ +local <?n?> = pairs() +]] +[[ +function n<next>(table: table [, index: any]) + -> key: any + 2. value: any +]] + +TEST[[ +local <?x?> = '\a' +]] +[[local x: string = "\007"]] + +TEST[[ +---@class Class +local <?x?> = class() +]] +[[ +local x: *Class {} +]] + +TEST[[ +---@class Class +<?x?> = class() +]] +[[ +global x: *Class {} +]] + +TEST[[ +local t = { + ---@class Class + <?x?> = class() +} +]] +[[ +field x: *Class {} +]] + +TEST[[ +---@type Class +local <?x?> = class() +]] +[[ +local x: *Class {} +]] + +TEST[[ +---@type Class +<?x?> = class() +]] +[[ +global x: *Class {} +]] + +TEST[[ +local t = { + ---@type Class + <?x?> = class() +} +]] +[[ +field x: *Class {} +]] + +TEST[[ +---@type A|B|C +local <?x?> = class() +]] +[[ +local x: *A|B|C {} +]] + +TEST[[ +---@class Class +local <?x?> = { + b = 1 +} +]] +[[ +local x: *Class { + b: number = 1, +} +]] + +TEST [[ +---@class Class +local mt = {} + +---@param t Class +function f(<?t?>) +end +]] +[[ +local t: *Class {} +]] + +TEST [[ +---@class Class +local mt = {} + +---@param t Class +function f(t) + print(<?t?>) +end +]] +[[ +local t: *Class {} +]] + +TEST [[ +---@class Class +local mt = {} + +---@param t Class +function f(t) +end + +f(<?s?>) +]] +[[ +global s: *Class {} +]] + +TEST [[ +---@class Class + +---@param k Class +for <?k?> in pairs(t) do +end +]] +[[ +local k<key>: *Class {} +]] + +TEST [[ +---@class Class + +---@param v Class +for k, <?v?> in pairs(t) do +end +]] +[[ +local v<value>: *Class {} +]] + +TEST [[ +---@return A|B +---@return C +local function <?f?>() +end +]] +[[ +function f() + -> A|B + 2. C +]] + +TEST [[ +---@generic T +---@param x T +---@return T +local function f(x) +end + +local <?r?> = f(1) +]] +[[ +local r: number +]] + +TEST [[ +---@param x number +---@param y boolean +local function <?f?>(x, y) +end +]] +[[ +function f(x: number, y: boolean) +]] + +TEST [[ +---@vararg Class +local function f(...) + local _, <?x?> = ... +end +f(1, 2, 3) +]] +[[ +local x: *Class = 2 +]] + +TEST [[ +---@vararg Class +local function f(...) + local _, <?x?> = ... +end +]] +[[ +local x: *Class {} +]] + +TEST [[ +---@type string[] +local <?x?> +]] +[[ +local x: { + [*integer]: string, +} +]] + +TEST [[ +---@type (string|boolean)[] +local <?x?> +]] +[[ +local x: { + [*integer]: string|boolean, +} +]] + +TEST [[ +---@type string[] +local t +local <?x?> = t[1] +]] +[[ +local x: string +]] + +TEST [[ +---@type string[] +local t +for _, <?x?> in ipairs(t) do +end +]] +[[ +local x: string +]] + +TEST [[ +---@type string[] +local t +for _, <?x?> in pairs(t) do +end +]] +[[ +local x: string +]] + +TEST [[ +---@type string[] +local t +for <?k?>, v in pairs(t) do +end +]] +[[ +local k: integer +]] + +TEST [[ +---@type table<ClassA, ClassB> +local <?x?> +]] +[[ +local x: { + [*ClassA]: ClassB, +} +]] + +TEST [[ +---@type table<ClassA, ClassB> +local t +for _, <?x?> in pairs(t) do +end +]] +[[ +local x: *ClassB +]] + +TEST [[ +---@type table<ClassA, ClassB> +local t +for <?k?>, v in pairs(t) do +end +]] +[[ +local k: *ClassA +]] + +TEST [[ +---@type fun(x: number, y: number):boolean +local <?f?> +]] +[[ +function f(x: number, y: number) + -> boolean +]] + +TEST [[ +---@type fun(x: number, y: number):boolean +local f +f(<?a?>) +]] +[[ +global a: number +]] + +TEST [[ +---@type fun(x: number, y: number):boolean +local f +local <?r?> = f() +]] +[[ +local r: boolean +]] + +TEST [[ +---@param f fun():void +function t(<?f?>) end +]] +[[ +function () + -> void +]] + +TEST [[ +---@type fun(a:any, b:any) +local f +local t = {f = f} +t:<?f?>() +]] +[[ +function f(b: any) + -> any +]] + +TEST [[ +---@param names string[] +local function f(<?names?>) +end +]] +[[ +local names: { + [*integer]: string, +} +]] + +TEST [[ +---@return any +function <?f?>() + ---@type integer + local a + return a +end +]] +[[ +function f() + -> any +]] + +TEST [[ +---@return any +function f() + ---@type integer + local a + return a +end + +local <?x?> = f() +]] +[[ +local x: any +]] + +TEST [[ +local <?x?> <close> <const> = 1 +]] +[[ +local x <close> <const>: number = 1 +]] + +TEST [[ +---@param x number {optional = 'after'} +---@param y boolean {optional = 'self'} +---@param z string +function <?f?>(x, y, z) end +]] +[=[ +function f([x: number [, y: boolean], z: string]) +]=] + +TEST [[ +---@return string key +---@return string value +function <?f?>() end +]] +[=[ +function f() + -> key: string + 2. value: string +]=] + +TEST [[ +---@return any x {optional = 'after'} +---@return string y {optional = 'self'} +---@return string z +function <?f?>() end +]] +[=[ +function f() + -> [x: any [ + 2. y: string] + 3. z: string] +]=] + +TEST [[ +function f() + return function (a, b) + end +end + +<?f2?> = f() +]] +[=[ +function f2(a: any, b: any) +]=] diff --git a/script/test/other/init.lua b/script/test/other/init.lua new file mode 100644 index 00000000..069a2454 --- /dev/null +++ b/script/test/other/init.lua @@ -0,0 +1,11 @@ +local fs = require 'bee.filesystem' +local platform = require 'bee.platform' +local path = fs.path '/a/b/c/d/e/../../../..' +local absolute = fs.absolute(path) +if platform.OS == 'Windows' then + assert(absolute:string():sub(-2) == '/a', absolute:string()) +elseif platform.OS == 'Linux' then + assert(absolute:string():sub(-3) == '/a/', absolute:string()) +elseif platform.OS == 'macOS' then + -- 不支持 +end diff --git a/script/test/references/init.lua b/script/test/references/init.lua new file mode 100644 index 00000000..44cd5ab0 --- /dev/null +++ b/script/test/references/init.lua @@ -0,0 +1,114 @@ +local core = require 'core' +local parser = require 'parser' +local buildVM = require 'vm' + +local function catch_target(script) + local list = {} + local cur = 1 + while true do + local start, finish = script:find('<[!?].-[!?]>', cur) + if not start then + break + end + list[#list+1] = { start + 2, finish - 2 } + cur = finish + 1 + end + return list +end + +local function founded(targets, results) + if #targets ~= #results then + return false + end + for _, target in ipairs(targets) do + for _, result in ipairs(results) do + if target[1] == result[1] and target[2] == result[2] then + goto NEXT + end + end + do return false end + ::NEXT:: + end + return true +end + +function TEST(script) + local target = catch_target(script) + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + local pos = (start + finish) // 2 + 1 + local new_script = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + assert(ast) + local vm = buildVM(ast) + assert(vm) + + local positions = core.definition(vm, pos, 'reference') + if positions then + assert(founded(target, positions)) + else + assert(#target == 0) + end +end + +TEST [[ +local <?a?> = 1 +<!a!> = <!a!> +]] + +TEST [[ +t.<?a?> = 1 +t.<!a!> = t.<!a!> +]] + +TEST [[ +:: <!LABEL!> :: +goto <?LABEL?> +]] + +TEST [[ +local a = 1 +local <?a?> = 1 +<!a!> = <!a!> +]] + +TEST [[ +local t = { + <?a?> = 1 +} +print(t.<!a!>) +]] + +TEST [[ +local <!mt!> = {} +function <!mt!>:a() + <?self?>:remove() +end +]] + +TEST [[ +local function f() + return <?function () + end?> +end + +local <!f2!> = f() +]] + +TEST [[ +table.<!dump!>() +function table.<?dump?>() +end +]] + +TEST [[ +---@class <!Class!> +---@type <?Class?> +---@type <!Class!> +]] + +TEST [[ +---@class <?Class?> +---@type <!Class!> +---@type <!Class!> +]] diff --git a/script/test/rename/init.lua b/script/test/rename/init.lua new file mode 100644 index 00000000..646401a0 --- /dev/null +++ b/script/test/rename/init.lua @@ -0,0 +1,85 @@ +local core = require 'core' +local parser = require 'parser' +local buildVM = require 'vm' + +local function catch_target(script) + local list = {} + local cur = 1 + while true do + local start, finish = script:find('<[!?].-[!?]>', cur) + if not start then + break + end + list[#list+1] = { start + 2, finish - 2 } + cur = finish + 1 + end + return list +end + +local function founded(targets, results) + if #targets ~= #results then + return false + end + for _, target in ipairs(targets) do + for _, result in ipairs(results) do + if target[1] == result[1] and target[2] == result[2] then + goto NEXT + end + end + do return false end + ::NEXT:: + end + return true +end + +function TEST(newName) + return function (script) + local target = catch_target(script) + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + local pos = (start + finish) // 2 + 1 + local new_script = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + assert(ast) + local vm = buildVM(ast) + assert(vm) + + local positions = core.rename(vm, pos, newName) + if positions then + assert(founded(target, positions)) + else + assert(#target == 0) + end + end +end + +TEST 'b' [[ +local <?a?> = 1 +]] + +TEST 'b' [[ +local <?a?> = 1 +<!a!> = 2 +<!a!> = <!a!> +]] + +TEST 'b' [[ +t.<?a?> = 1 +a = t.<!a!> +]] + +TEST 'b' [[ +t[<!'a'!>] = 1 +a = t.<?a?> +]] + +TEST 'b' [[ +:: <?a?> :: +goto <!a!> +]] + +TEST 'b' [[ +local function f(<!a!>) + return <?a?> +end +]] diff --git a/script/test/signature/init.lua b/script/test/signature/init.lua new file mode 100644 index 00000000..d5bc19c0 --- /dev/null +++ b/script/test/signature/init.lua @@ -0,0 +1,135 @@ +local parser = require 'parser' +local core = require 'core' +local buildVM = require 'vm' + +rawset(_G, 'TEST', true) + +function TEST(script) + return function (expect) + local pos = script:find('$', 1, true) + local new_script = script:gsub('%$', '') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + local vm = buildVM(ast) + assert(vm) + local hovers = core.signature(vm, pos) + if hovers then + assert(expect) + local hover = hovers[#hovers] + + local label = hover.label:gsub('^[\r\n]*(.-)[\r\n]*$', '%1'):gsub('\r\n', '\n') + expect.label = expect.label:gsub('^[\r\n]*(.-)[\r\n]*$', '%1'):gsub('\r\n', '\n') + local arg = hover.argLabel + + assert(expect.label == label) + assert(expect.arg[1] == arg[1]) + assert(expect.arg[2] == arg[2]) + else + assert(expect == nil) + end + end +end + +TEST [[ +local function x(a, b) +end + +x($ +]] +{ + label = "x(a: any, b: any)", + arg = {3, 8}, +} + +TEST [[ +local function x(a, b) +end + +x($) +]] +{ + label = "x(a: any, b: any)", + arg = {3, 8}, +} + +TEST [[ +local function x(a, b) +end + +x(xxx$) +]] +{ + label = "x(a: any, b: any)", + arg = {3, 8}, +} + +TEST [[ +local function x(a, b) +end + +x(xxx, $) +]] +{ + label = "x(a: any, b: any)", + arg = {11, 16}, +} + +TEST [[ +function mt:f(a) +end + +mt:f($ +]] +{ + label = 'mt:f(a: any)', + arg = {6, 11}, +} + +TEST [[ +(''):sub($ +]] +{ + label = [[ +*string:sub(i: integer [, j: integer(-1)]) +]], + arg = {13, 22}, +} + +TEST [[ +(''):sub(1)$ +]] +(nil) + +TEST [[ +local function f(a, b, c) +end + +f(1, 'string$') +]] +(nil) + +TEST [[ +pcall(function () $ end) +]] +(nil) + +TEST [[ +table.unpack {$} +]] +(nil) + +TEST [[ +---@type fun(x: number, y: number):boolean +local zzzz +zzzz($) +]] +{ + label = [[ +zzzz(x: number, y: number) +]], + arg = {6, 14}, +} + +TEST [[ +('abc'):format(f($)) +]] +(nil) diff --git a/script/test/type_inference/init.lua b/script/test/type_inference/init.lua new file mode 100644 index 00000000..59d853eb --- /dev/null +++ b/script/test/type_inference/init.lua @@ -0,0 +1,187 @@ +local parser = require 'parser' +local core = require 'core' +local buildVM = require 'vm' +local config = require 'config' + +rawset(_G, 'TEST', true) + +function TEST(res) + return function (script) + local start = script:find('<?', 1, true) + local finish = script:find('?>', 1, true) + local pos = (start + finish) // 2 + 1 + local new_script = script:gsub('<[!?]', ' '):gsub('[!?]>', ' ') + local ast = parser:parse(new_script, 'lua', 'Lua 5.3') + local vm = buildVM(ast) + assert(vm) + local result = core.findSource(vm, pos) + assert(result) + assert(res == result:bindValue():getType()) + end +end + +config.config.runtime.version = 'Lua 5.4' + +TEST 'string' [[ +local <?var?> = '111' +]] + +TEST 'boolean' [[ +local <?var?> = true +]] + +TEST 'number' [[ +local <?var?> = 1 +]] + +TEST 'string' [[ +local var = '111' +t.<?x?> = var +]] + +TEST 'string' [[ +local <?var?> +var = '111' +]] + +TEST 'function' [[ +function <?xx?>() +end +]] + +TEST 'function' [[ +local function <?xx?>() +end +]] + +TEST 'function' [[ +local <?xx?> +xx = function () +end +]] + +TEST 'table' [[ +local <?t?> = {} +]] + +TEST 'table' [[ +local <?t?> +t = {} +]] + +TEST 'function' [[ +<?x?>() +]] + +TEST 'table' [[ +<?t?>.x = 1 +]] + +TEST 'boolean' [[ +<?x?> = not y +]] + +TEST 'integer' [[ +<?x?> = #y +]] + +TEST 'number' [[ +<?x?> = - y +]] + +TEST 'integer' [[ +<?x?> = ~ y +]] + +TEST 'number' [[ +local a = true +local b = 1 +<?x?> = a and b +]] + +TEST 'number' [[ +local a = false +local b = 1 +<?x?> = a or b +]] + +TEST 'boolean' [[ +<?x?> = a == b +]] + +TEST 'integer' [[ +<?x?> = a << b +]] + +TEST 'string' [[ +<?x?> = a .. b +]] + +TEST 'number' [[ +<?x?> = a + b +]] + +TEST 'table' [[ +<?table?>() +]] + +TEST 'string' [[ +<?x?> = _VERSION +]] + +TEST 'function' [[ +<?x?> = _VERSION.sub +]] + +TEST 'table' [[ +<?x?> = setmetatable({}) +]] + +TEST 'number' [[ +local function x() + return 1 +end +<?y?> = x() +]] + +TEST 'number' [[ +local function x(a) + return <?a?> +end +x(1) +]] + +TEST 'table' [[ +setmetatable(<?b?>) +]] + +TEST 'number' [[ +local function x(a) + _ = a + 1 +end +local b +x(<?b?>) +]] + +TEST 'number' [[ +local function x(a, ...) + local _, <?b?>, _ = ... +end +x(nil, 'xx', 1, true) +]] + +TEST 'number' [[ +local function x(a, ...) + return true, 'ss', ... +end +local _, _, _, <?b?>, _ = x(nil, true, 1, 'yy') +]] + +TEST 'integer' [[ +for <?i?> in ipairs(t) do +end +]] + +TEST 'any' [[ +local <?x?> = next() +]] |