From 5112693089619250a7540fc7f72b8fd5e2c574ad Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 22 Jun 2026 00:12:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=BB=E5=8A=A1=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .codex/mcp_996_gui_proxy.js | 214 ++ .gitignore | 3 + Mirserver/DBServer/dbsrc.ini | 8 +- Mirserver/Mir200/!Setup.txt | 20 +- .../QuestDiary/cfgcsv/cfg_主线任务 - 复制.lua | 113 ++ .../Envir/QuestDiary/cfgcsv/cfg_主线任务.lua | 285 +++ .../游戏功能/A0_通用类/MainLineTask.lua | 195 +- client/dev/GUILayout/delay/TaskShowOBJ.lua | 55 +- .../dev/scripts/game_config/cfg_monster.lua | 1752 ++++++++--------- client/env.json | 2 +- csv/cfg_主线任务.csv | 11 + 11 files changed, 1645 insertions(+), 1013 deletions(-) create mode 100644 .codex/mcp_996_gui_proxy.js create mode 100644 Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务 - 复制.lua create mode 100644 Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务.lua create mode 100644 csv/cfg_主线任务.csv diff --git a/.codex/mcp_996_gui_proxy.js b/.codex/mcp_996_gui_proxy.js new file mode 100644 index 00000000..cbc2bff2 --- /dev/null +++ b/.codex/mcp_996_gui_proxy.js @@ -0,0 +1,214 @@ +const URL = process.env.MCP_996_GUI_URL; +const AUTH = process.env.MCP_996_GUI_AUTH; +const fs = require("fs"); +const LOG = process.env.MCP_996_GUI_LOG || "C:\\Users\\Administrator\\.codex\\mcp_996_gui_proxy.log"; + +function log(message) { + try { + fs.appendFileSync(LOG, `${new Date().toISOString()} ${message}\n`, "utf8"); + } catch { + // Logging must never break the MCP server. + } +} + +log(`start pid=${process.pid}`); + +const tools = [ + { + name: "list_rule_files", + description: "List all client GUI API rule files.", + inputSchema: { type: "object", properties: {}, additionalProperties: false }, + }, + { + name: "list_versions", + description: "List available client GUI API versions.", + inputSchema: { type: "object", properties: {}, additionalProperties: false }, + }, + { + name: "list_apis", + description: "Search client GUI APIs by keyword.", + inputSchema: { + type: "object", + properties: { + keyword: { type: "string", default: "" }, + limit: { type: "integer", default: 50 }, + version: { type: "string", default: "" }, + }, + additionalProperties: false, + }, + }, + { + name: "generate_lua", + description: "Generate client Lua code from the original natural language query.", + inputSchema: { + type: "object", + properties: { + query: { type: "string" }, + top_k: { type: "integer", default: 3 }, + version: { type: "string", default: "" }, + }, + required: ["query"], + additionalProperties: false, + }, + }, + { + name: "generate_lua_996", + description: "Alias of generate_lua for 996 API client GUI code generation.", + inputSchema: { + type: "object", + properties: { + query: { type: "string" }, + top_k: { type: "integer", default: 3 }, + version: { type: "string", default: "" }, + }, + required: ["query"], + additionalProperties: false, + }, + }, +]; + +let input = Buffer.alloc(0); + +process.stdin.on("data", (chunk) => { + log(`stdin bytes=${chunk.length}`); + input = Buffer.concat([input, chunk]); + readMessages(); +}); + +process.stdin.on("end", () => log("stdin end")); +process.on("uncaughtException", (error) => log(`uncaught ${error.stack || error.message || error}`)); + +function readMessages() { + while (true) { + let headerEnd = input.indexOf("\r\n\r\n"); + let separatorLength = 4; + if (headerEnd < 0) { + headerEnd = input.indexOf("\n\n"); + separatorLength = 2; + } + if (headerEnd < 0) return; + + const header = input.slice(0, headerEnd).toString("ascii"); + const match = /Content-Length:\s*(\d+)/i.exec(header); + if (!match) { + input = input.slice(headerEnd + separatorLength); + continue; + } + + const length = Number(match[1]); + const start = headerEnd + separatorLength; + const end = start + length; + if (input.length < end) return; + + const body = input.slice(start, end).toString("utf8"); + input = input.slice(end); + + log(`message ${body}`); + handle(JSON.parse(body)).catch((error) => { + respond(JSON.parse(body).id, null, { + code: -32603, + message: error && error.message ? error.message : String(error), + }); + }); + } +} + +async function handle(message) { + if (message.id === undefined) return; + log(`handle ${message.method}`); + + if (message.method === "initialize") { + respond(message.id, { + protocolVersion: message.params?.protocolVersion || "2025-03-26", + capabilities: { tools: { listChanged: false } }, + serverInfo: { name: "996 Client GUI Proxy", version: "1.0.0" }, + }); + return; + } + + if (message.method === "tools/list") { + respond(message.id, { tools }); + return; + } + + if (message.method === "tools/call") { + const name = message.params?.name; + const args = message.params?.arguments || {}; + const result = await callRemote(name, args); + respond(message.id, { content: [{ type: "text", text: stringifyResult(result) }] }); + return; + } + + respond(message.id, null, { code: -32601, message: `Unknown method: ${message.method}` }); +} + +async function callRemote(name, args) { + if (!URL || !AUTH) throw new Error("MCP_996_GUI_URL or MCP_996_GUI_AUTH is missing"); + + const init = await post(null, { + jsonrpc: "2.0", + id: 1, + method: "initialize", + params: { + protocolVersion: "2025-03-26", + capabilities: {}, + clientInfo: { name: "codex-996-gui-proxy", version: "1.0.0" }, + }, + }); + + const session = init.session; + await post(session, { jsonrpc: "2.0", method: "notifications/initialized", params: {} }); + + const response = await post(session, { + jsonrpc: "2.0", + id: 2, + method: "tools/call", + params: { name, arguments: args }, + }); + return response.data?.result ?? response.data; +} + +async function post(session, payload) { + const headers = { + Authorization: AUTH, + Accept: "application/json, text/event-stream", + "Content-Type": "application/json", + }; + if (session) headers["mcp-session-id"] = session; + + const response = await fetch(URL, { + method: "POST", + headers, + body: JSON.stringify(payload), + }); + + const text = await response.text(); + if (!response.ok) throw new Error(`Remote MCP HTTP ${response.status}: ${text}`); + + return { + session: response.headers.get("mcp-session-id"), + data: parseMcpBody(text), + }; +} + +function parseMcpBody(text) { + if (!text || !text.trim()) return null; + const dataLine = text + .split(/\r?\n/) + .find((line) => line.startsWith("data:")); + return JSON.parse(dataLine ? dataLine.slice(5).trim() : text); +} + +function stringifyResult(result) { + if (typeof result === "string") return result; + return JSON.stringify(result, null, 2); +} + +function respond(id, result, error) { + const payload = error + ? { jsonrpc: "2.0", id, error } + : { jsonrpc: "2.0", id, result }; + const body = JSON.stringify(payload); + log(`respond id=${id} bytes=${Buffer.byteLength(body, "utf8")} error=${Boolean(error)}`); + process.stdout.write(`Content-Length: ${Buffer.byteLength(body, "utf8")}\r\n\r\n${body}`); +} diff --git a/.gitignore b/.gitignore index 873264bf..a1008834 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,6 @@ Mirserver/Mir200/!Setup.txt Mirserver/DBServer/dbsrc.ini client/env.json +# Local Codex MCP config +.codex/config.toml + diff --git a/Mirserver/DBServer/dbsrc.ini b/Mirserver/DBServer/dbsrc.ini index 496f12c8..ea6a0b18 100644 --- a/Mirserver/DBServer/dbsrc.ini +++ b/Mirserver/DBServer/dbsrc.ini @@ -3,7 +3,7 @@ ServerName=996Mir ServerAddr=127.0.0.1 GatePort=7200 GateAddr=127.0.0.1 -ServerPath=F:\\bayuMir\Mirserver\DBServer\ +ServerPath=E:\汾\bayuMir\Mirserver\DBServer\ plateformid=1881 DynamicIPMode=0 Attack=0 @@ -28,12 +28,12 @@ ServerID=1881 ServerType=0 [DBSetup] -HeroDBName=box_6 -SQLIP=10.10.10.1 +HeroDBName=box +SQLIP=127.0.0.1 SQLUSERNAME=sa SQLPASSWORD=www.996m2.com SQLPORT=1433 [DB] -LogDir=F:\\bayuMir\Mirserver\DBServer\\Log\ +LogDir=E:\汾\bayuMir\Mirserver\DBServer\\Log\ diff --git a/Mirserver/Mir200/!Setup.txt b/Mirserver/Mir200/!Setup.txt index e2694f42..3f77e233 100644 --- a/Mirserver/Mir200/!Setup.txt +++ b/Mirserver/Mir200/!Setup.txt @@ -221,18 +221,18 @@ BoneKingMonster1=BoneCaptain BoneKingMonster2=BoneArcher BoneKingMonster3=BoneSpearman [Share] -BaseDir=F:\\bayuMir\Mirserver\Mir200\share\ -GuildDir=F:\\bayuMir\Mirserver\Mir200\GuildBase\Guilds\ -GuildFile=F:\\bayuMir\Mirserver\Mir200\ShareV\ +BaseDir=E:\汾\bayuMir\Mirserver\Mir200\share\ +GuildDir=E:\汾\bayuMir\Mirserver\Mir200\GuildBase\Guilds\ +GuildFile=E:\汾\bayuMir\Mirserver\Mir200\ShareV\ VentureDir=d:\Mirserver11\Mir200\ShareV\ -ConLogDir=F:\\bayuMir\Mirserver\Mir200\ConLogDir\ -CastleDir=F:\\bayuMir\Mirserver\Mir200\Castle\ -EnvirDir=F:\\bayuMir\Mirserver\Mir200\Envir\ -MapDir=F:\\bayuMir\Mirserver\Mir200\map\ -NoticeDir=F:\\bayuMir\Mirserver\Mir200\Notice\ +ConLogDir=E:\汾\bayuMir\Mirserver\Mir200\ConLogDir\ +CastleDir=E:\汾\bayuMir\Mirserver\Mir200\Castle\ +EnvirDir=E:\汾\bayuMir\Mirserver\Mir200\Envir\ +MapDir=E:\汾\bayuMir\Mirserver\Mir200\map\ +NoticeDir=E:\汾\bayuMir\Mirserver\Mir200\Notice\ PlugDir=.\ -LogDir=F:\\bayuMir\Mirserver\Mir200\Log\ -CastleFile=F:\\bayuMir\Mirserver\Mir200\Castle\List.txt +LogDir=E:\汾\bayuMir\Mirserver\Mir200\Log\ +CastleFile=E:\汾\bayuMir\Mirserver\Mir200\Castle\List.txt PayMentPointName=뿨 ChatDir=.\ChatLog\ GameGold= diff --git a/Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务 - 复制.lua b/Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务 - 复制.lua new file mode 100644 index 00000000..a4c46c84 --- /dev/null +++ b/Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务 - 复制.lua @@ -0,0 +1,113 @@ +-- cfg_ +local config = { + [1] = { + id = 1, + next = 2, + enabled = true, + title = "[]˽׳", + desc = "˽׳ǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽5000", + visit = { type = "module", keys = { "ShouChongOBJ" }, open = "ShouChongOBJ_main" }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "money", "", 1000000 }, { "money", "", 5000 } }, + }, + [2] = { + id = 2, + next = 3, + enabled = true, + title = "[]ݷöɽ", + desc = "ݷöɽǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽10000", + visit = { type = "npc", ids = { 6 }, scripts = { "ת" } }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "money", "", 1000000 }, { "money", "", 10000 } }, + }, + [3] = { + id = 3, + next = 4, + enabled = true, + title = "[]ݷ޴", + desc = "ݷ޴ǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "֮Ѫ*50֮*50", + visit = { type = "npc", ids = { 5 }, scripts = { "޴" } }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "item", "֮Ѫ", 50, 0 }, { "item", "֮", 50, 0 } }, + }, + [4] = { + id = 4, + next = 5, + enabled = true, + title = "[]ݷϽ", + desc = "ݷϽ˺ǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100ǧʯ*5010000", + visit = { type = "npc", ids = { 189 }, scripts = { "Ͻ«" } }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "money", "", 1000000 }, { "item", "ǧʯ", 50, 0 }, { "money", "", 10000 } }, + }, + [5] = { + id = 5, + next = 6, + enabled = true, + title = "[]˽ѧNPC", + desc = "˽ѧNPCǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "ʯ*50ؼ*1", + visit = { type = "npc", ids = { 12 }, scripts = { "ѧ" } }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "item", "ʯ", 50, 0 }, { "item", "ؼ", 1, 0 } }, + }, + [6] = { + id = 6, + next = 7, + enabled = true, + title = "[]ݷ", + desc = "ݷӺǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽10000", + visit = { type = "npc", ids = { 11 }, scripts = { "" } }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "money", "", 1000000 }, { "money", "", 10000 } }, + }, + [7] = { + id = 7, + next = 8, + enabled = true, + title = "[]ǰװ", + desc = "ǰװǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽10000", + visit = { type = "npc", ids = { 10 }, scripts = { "װ" } }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "money", "", 1000000 }, { "money", "", 10000 } }, + }, + [8] = { + id = 8, + next = 9, + enabled = true, + title = "[]ǰ", + desc = "ǰǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "ʯ*410000", + visit = { type = "npc", ids = { 13 }, scripts = { "" } }, + target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, + rewards = { { "item", "ʯ", 4, 0 }, { "money", "", 10000 } }, + }, + [9] = { + id = 9, + next = nil, + enabled = true, + title = "[]", + desc = "ɡ", + doingDesc = "ɡ", + rewardText = "", + visit = nil, + target = nil, + rewards = {}, + finish = true, + }, +} +return config diff --git a/Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务.lua b/Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务.lua new file mode 100644 index 00000000..8aad06bf --- /dev/null +++ b/Mirserver/Mir200/Envir/QuestDiary/cfgcsv/cfg_主线任务.lua @@ -0,0 +1,285 @@ +-- cfg_ +local config = { + [1] = { + next = 2, + enabled = true, + title = "[]˽׳", + desc = "˽׳ǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽5000", + visit_type = "module", + ShouChongOBJ = "", + visit_open = "ShouChongOBJ_main", + visit_ids_1 = 0, + visit_scripts_1 = "", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "money", + name = "", + num = 1000000, + bind = 0, + }, + [2] = { + type = "money", + name = "", + num = 5000, + bind = 0, + }, + }, + }, + [2] = { + next = 3, + enabled = true, + title = "[]ݷöɽ", + desc = "ݷöɽǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽10000", + visit_type = "npc", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 6, + visit_scripts_1 = "ת", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "money", + name = "", + num = 1000000, + bind = 0, + }, + [2] = { + type = "money", + name = "", + num = 10000, + bind = 0, + }, + }, + }, + [3] = { + next = 4, + enabled = true, + title = "[]ݷ޴", + desc = "ݷ޴ǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "֮Ѫ*50֮*50", + visit_type = "npc", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 5, + visit_scripts_1 = "޴", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "item", + name = "֮Ѫ", + num = 50, + bind = 0, + }, + [2] = { + type = "item", + name = "֮", + num = 50, + bind = 0, + }, + }, + }, + [4] = { + next = 5, + enabled = true, + title = "[]ݷϽ", + desc = "ݷϽ˺ǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100ǧʯ*5010000", + visit_type = "npc", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 189, + visit_scripts_1 = "Ͻ«", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "money", + name = "", + num = 1000000, + bind = 0, + }, + [2] = { + type = "item", + name = "ǧʯ", + num = 50, + bind = 0, + }, + [3] = { + type = "money", + name = "", + num = 10000, + bind = 0, + }, + }, + }, + [5] = { + next = 6, + enabled = true, + title = "[]˽ѧNPC", + desc = "˽ѧNPCǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "ʯ*50ؼ*1", + visit_type = "npc", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 12, + visit_scripts_1 = "ѧ", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "item", + name = "ʯ", + num = 50, + bind = 0, + }, + [2] = { + type = "item", + name = "ؼ", + num = 1, + bind = 0, + }, + }, + }, + [6] = { + next = 7, + enabled = true, + title = "[]ݷ", + desc = "ݷӺǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽10000", + visit_type = "npc", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 11, + visit_scripts_1 = "", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "money", + name = "", + num = 1000000, + bind = 0, + }, + [2] = { + type = "money", + name = "", + num = 10000, + bind = 0, + }, + }, + }, + [7] = { + next = 8, + enabled = true, + title = "[]ǰװ", + desc = "ǰװǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "100򡢽10000", + visit_type = "npc", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 10, + visit_scripts_1 = "װ", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "money", + name = "", + num = 1000000, + bind = 0, + }, + [2] = { + type = "money", + name = "", + num = 10000, + bind = 0, + }, + }, + }, + [8] = { + next = 9, + enabled = true, + title = "[]ǰ", + desc = "ǰǰͼɱ5ֻ", + doingDesc = "ǰͼɱ", + rewardText = "ʯ*410000", + visit_type = "npc", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 13, + visit_scripts_1 = "", + target_type = "kill_mon", + target_count = 5, + target_map = "*", + target_mon = "*", + finish = false, + reward = { + [1] = { + type = "item", + name = "ʯ", + num = 4, + bind = 0, + }, + [2] = { + type = "money", + name = "", + num = 10000, + bind = 0, + }, + }, + }, + [9] = { + next = 0, + enabled = true, + title = "[]", + desc = "ɡ", + doingDesc = "ɡ", + rewardText = "", + visit_type = "", + ShouChongOBJ = "", + visit_open = "", + visit_ids_1 = 0, + visit_scripts_1 = "", + target_type = "", + target_count = 0, + target_map = "", + target_mon = "", + finish = true, + reward = {}, + }, +} +return config diff --git a/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/MainLineTask.lua b/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/MainLineTask.lua index 453e2c76..e2a831ec 100644 --- a/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/MainLineTask.lua +++ b/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/MainLineTask.lua @@ -5,117 +5,67 @@ MainLineTaskOBJ.STATUS_WAIT_VISIT = 0 MainLineTaskOBJ.STATUS_DOING = 1 MainLineTaskOBJ.STATUS_FINISH = 9 -MainLineTaskOBJ.cfg = { - [1] = { - id = 1, - next = 2, - enabled = true, - title = "[]˽׳", - desc = "˽׳ǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "100򡢽5000", - visit = { type = "module", keys = { "ShouChongOBJ" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "money", "", 1000000 }, { "money", "", 5000 } }, - }, - [2] = { - id = 2, - next = 3, - enabled = true, - title = "[]ݷöɽ", - desc = "ݷöɽǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "100򡢽10000", - visit = { type = "npc", ids = { 6 }, scripts = { "ת" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "money", "", 1000000 }, { "money", "", 10000 } }, - }, - [3] = { - id = 3, - next = 4, - enabled = true, - title = "[]ݷ޴", - desc = "ݷ޴ǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "֮Ѫ*50֮*50", - visit = { type = "npc", ids = { 5 }, scripts = { "޴" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "item", "֮Ѫ", 50, 0 }, { "item", "֮", 50, 0 } }, - }, - [4] = { - id = 4, - next = 5, - enabled = true, - title = "[]ݷϽ", - desc = "ݷϽ˺ǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "100ǧʯ*5010000", - visit = { type = "npc", ids = { 189 }, scripts = { "Ͻ«" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "money", "", 1000000 }, { "item", "ǧʯ", 50, 0 }, { "money", "", 10000 } }, - }, - [5] = { - id = 5, - next = 6, - enabled = true, - title = "[]˽ѧNPC", - desc = "˽ѧNPCǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "ʯ*50ؼ*1", - visit = { type = "npc", ids = { 12 }, scripts = { "ѧ" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "item", "ʯ", 50, 0 }, { "item", "ؼ", 1, 0 } }, - }, - [6] = { - id = 6, - next = 7, - enabled = true, - title = "[]ݷ", - desc = "ݷӺǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "100򡢽10000", - visit = { type = "npc", ids = { 11 }, scripts = { "" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "money", "", 1000000 }, { "money", "", 10000 } }, - }, - [7] = { - id = 7, - next = 8, - enabled = true, - title = "[]ǰװ", - desc = "ǰװǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "100򡢽10000", - visit = { type = "npc", ids = { 10 }, scripts = { "װ" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "money", "", 1000000 }, { "money", "", 10000 } }, - }, - [8] = { - id = 8, - next = 9, - enabled = true, - title = "[]ǰ", - desc = "ǰǰͼɱ5ֻ", - doingDesc = "ǰͼɱ", - rewardText = "ʯ*410000", - visit = { type = "npc", ids = { 13 }, scripts = { "" } }, - target = { type = "kill_mon", count = 5, map = "*", mon = "*" }, - rewards = { { "item", "ʯ", 4, 0 }, { "money", "", 10000 } }, - }, - [9] = { - id = 9, - next = nil, - enabled = true, - title = "[]", - desc = "ɡ", - doingDesc = "ɡ", - rewardText = "", - visit = nil, - target = nil, - rewards = {}, - finish = true, - }, -} +MainLineTaskOBJ.cfg = Func.require("cfg_") + +local function appendCfgValue(list, value) + if value == nil or value == "" or tonumber(value) == 0 then + return + end + table.insert(list, value) +end + +local function normalizeTaskCfg(cfg) + for id, task in pairs(cfg or {}) do + task.id = tonumber(task.id or id) or id + + if not task.visit and task.visit_type and task.visit_type ~= "" then + local visit = { type = task.visit_type } + if visit.type == "module" then + visit.keys = {} + appendCfgValue(visit.keys, task.visit_keys_1) + if #visit.keys <= 0 and task.ShouChongOBJ ~= nil then + table.insert(visit.keys, "ShouChongOBJ") + end + if #visit.keys <= 0 and task.visit_open and task.visit_open ~= "" then + table.insert(visit.keys, string.gsub(task.visit_open, "_main$", "")) + end + if task.visit_open and task.visit_open ~= "" then + visit.open = task.visit_open + end + elseif visit.type == "npc" then + visit.ids = {} + appendCfgValue(visit.ids, task.visit_ids_1) + visit.scripts = {} + appendCfgValue(visit.scripts, task.visit_scripts_1) + end + task.visit = visit + end + + if not task.target and task.target_type and task.target_type ~= "" then + task.target = { + type = task.target_type, + count = tonumber(task.target_count) or 0, + map = task.target_map, + mon = task.target_mon, + } + end + + if not task.rewards then + task.rewards = {} + for _, reward in ipairs(task.reward or {}) do + table.insert(task.rewards, { + reward.type, + reward.name, + tonumber(reward.num) or 0, + tonumber(reward.bind) or 0, + }) + end + end + end + return cfg +end + +MainLineTaskOBJ.cfg = normalizeTaskCfg(MainLineTaskOBJ.cfg) function MainLineTaskOBJ:getTask(id) return self.cfg[tonumber(id or 1)] @@ -419,12 +369,33 @@ GameEvent.add(EventCfg.onKillMon, function(actor, mon, itype, kill, monName, map MainLineTaskOBJ:onKillMon(actor, mon, itype, kill, monName, mapID) end, MainLineTaskOBJ) -MainLineTaskOBJ.allowFunc = { "query", "visit" } +MainLineTaskOBJ.allowFunc = { "query", "visit", "route" } function MainLineTaskOBJ:query(actor) self:sync(actor) end +function MainLineTaskOBJ:route(actor) + if not isnotnull(actor) then + return + end + if self:getStatus(actor) ~= self.STATUS_WAIT_VISIT then + return + end + local id = self:getTaskId(actor) + local task = self:getValidTask(id) + if not task or task.finish or not task.visit then + return + end + local visit = task.visit + if visit.type == "module" and visit.open then + Message:SubLink(actor, visit.open) + return + end + if visit.type == "npc" and visit.ids and visit.ids[1] then + opennpcshowex(actor, tonumber(visit.ids[1]), 6, 2) + end +end function MainLineTaskOBJ:visit(actor, p1, p2, p3, data) local visitKey = p1 if type(data) == "table" then diff --git a/client/dev/GUILayout/delay/TaskShowOBJ.lua b/client/dev/GUILayout/delay/TaskShowOBJ.lua index ae307cda..a98ce79a 100644 --- a/client/dev/GUILayout/delay/TaskShowOBJ.lua +++ b/client/dev/GUILayout/delay/TaskShowOBJ.lua @@ -14,6 +14,10 @@ end TaskShowOBJ.UIfile = getUifile() TaskShowOBJ.mainLineData = nil +local function canRouteMainLine(data) + return data and tonumber(data.status or 0) == 0 and not data.finish +end + local function getShortDesc(data) local status = tonumber(data.status or 0) or 0 if data.finish then @@ -60,6 +64,26 @@ local function getRewardItems(data) end +function TaskShowOBJ:createMainLineTouch() + if not self.ui or GUI:Win_IsNull(self.ui.TaskShow_Layout) then + return + end + self.ui.MainLineTouch_Layout = GUI:Layout_Create(self.ui.TaskShow_Layout, "MainLineTouch_Layout", 0, 58, 202, 130, false) + GUI:setTouchEnabled(self.ui.MainLineTouch_Layout, false) + GUI:addOnClickEvent(self.ui.MainLineTouch_Layout, function() + local data = self.mainLineData or (MainLineTaskOBJ and MainLineTaskOBJ.data) + if canRouteMainLine(data) then + ssrMessage:SubLink("MainLineTaskOBJ_route") + end + end) +end + +function TaskShowOBJ:updateMainLineTouch(data) + if self.ui and self.ui.MainLineTouch_Layout and GUI:Win_IsNotNull(self.ui.MainLineTouch_Layout) then + GUI:setTouchEnabled(self.ui.MainLineTouch_Layout, canRouteMainLine(data)) + end +end + function TaskShowOBJ:main() local parent = GUI:Win_FindParent(110) if GUI:Win_IsNotNull(parent) then @@ -71,6 +95,7 @@ function TaskShowOBJ:main() self.ui = GUI:ui_delegate(parent) if self.UIfile == "game/Tongyong/TaskShowUI" then + self:createMainLineTouch() self:renderMainLine(self.mainLineData or (MainLineTaskOBJ and MainLineTaskOBJ.data)) ssrMessage:SubLink("MainLineTaskOBJ_query") SL:ScheduleOnce(function() @@ -94,6 +119,7 @@ end function TaskShowOBJ:renderMainLine(data) if not data or not self.ui then + self:updateMainLineTouch(nil) return end if GUI:Win_IsNotNull(self.ui.TaskTitle_Text) then @@ -114,11 +140,13 @@ function TaskShowOBJ:renderMainLine(data) if GUI:Win_IsNotNull(self.ui.TaskReward_Text) then GUI:Text_setString(self.ui.TaskReward_Text, "奖励:") end + self:updateMainLineTouch(data) if GUI:Win_IsNotNull(self.ui.RewardItems_Layout) then GUI:removeAllChildren(self.ui.RewardItems_Layout) local items = getRewardItems(data) if #items <= 0 then - local EmptyReward_Text = GUI:Text_Create(self.ui.RewardItems_Layout, "EmptyReward_Text", 0, 24, 12, "#ffd36a", "无") + local EmptyReward_Text = GUI:Text_Create(self.ui.RewardItems_Layout, "EmptyReward_Text", 0, 24, 12, "#ffd36a", + "无") GUI:setAnchorPoint(EmptyReward_Text, 0.00, 0.50) GUI:Text_enableOutline(EmptyReward_Text, "#000000", 1) return @@ -129,19 +157,23 @@ function TaskShowOBJ:renderMainLine(data) end local name = item.name or item[1] local count = tonumber(item.count or item[2]) or 1 - local x = 22 + (i - 1) * 44 - local y = 29 + local x = 22 + (i - 1) * 60 + local y = 4 local index = SL:GetMetaValue("ITEM_INDEX_BY_NAME", name) if index then - local itemShow = GUI:ItemShow_Create(self.ui.RewardItems_Layout, "RewardItem_" .. i, x, y, { + local itemshow_bg = GUI:Image_Create(self.ui.RewardItems_Layout, "RewardItemBg_" .. i, x, y, + "res/custom/43/1.png") + local bg_size = GUI:getContentSize(itemshow_bg) + local itemShow = GUI:ItemShow_Create(itemshow_bg, "RewardItem_" .. i, bg_size.width / 2, bg_size.height / 2, { index = index, count = count, - bgVisible = true, + bgVisible = false, look = true }) - GUI:setScale(itemShow, 0.86) + GUI:setAnchorPoint(itemShow, 0.50, 0.50) else - local RewardText = GUI:Text_Create(self.ui.RewardItems_Layout, "RewardText_" .. i, x - 18, y, 11, "#ffd36a", tostring(name or "奖励")) + local RewardText = GUI:Text_Create(self.ui.RewardItems_Layout, "RewardText_" .. i, x - 18, y, 11, + "#ffd36a", tostring(name or "奖励")) GUI:setAnchorPoint(RewardText, 0.00, 0.50) GUI:Text_enableOutline(RewardText, "#000000", 1) end @@ -157,15 +189,18 @@ function TaskShowOBJ:upLuanDou(data) self.ui[list_Layout] = GUI:Layout_Create(self.ui.rank_list, list_Layout, 0, 0, 200, 30, false) local list_rank = string.format("list_rank_%d", i) - self.ui[list_rank] = GUI:Text_Create(self.ui[list_Layout], list_rank, 27, 16, 16, SL:GetHexColorByStyleId(255 - i), i) + self.ui[list_rank] = GUI:Text_Create(self.ui[list_Layout], list_rank, 27, 16, 16, + SL:GetHexColorByStyleId(255 - i), i) GUI:setAnchorPoint(self.ui[list_rank], 0.50, 0.50) local list_name = string.format("list_name_%d", i) - self.ui[list_name] = GUI:Text_Create(self.ui[list_Layout], list_name, 101, 16, 16, SL:GetHexColorByStyleId(255 - i), v[2]) + self.ui[list_name] = GUI:Text_Create(self.ui[list_Layout], list_name, 101, 16, 16, + SL:GetHexColorByStyleId(255 - i), v[2]) GUI:setAnchorPoint(self.ui[list_name], 0.50, 0.50) local list_jifen = string.format("list_jifen_%d", i) - self.ui[list_jifen] = GUI:Text_Create(self.ui[list_Layout], list_jifen, 172, 16, 16, SL:GetHexColorByStyleId(255 - i), v[3]) + self.ui[list_jifen] = GUI:Text_Create(self.ui[list_Layout], list_jifen, 172, 16, 16, + SL:GetHexColorByStyleId(255 - i), v[3]) GUI:setAnchorPoint(self.ui[list_jifen], 0.50, 0.50) end diff --git a/client/dev/scripts/game_config/cfg_monster.lua b/client/dev/scripts/game_config/cfg_monster.lua index 6fb57962..8f25f1ce 100644 --- a/client/dev/scripts/game_config/cfg_monster.lua +++ b/client/dev/scripts/game_config/cfg_monster.lua @@ -1,1756 +1,1756 @@ local config = { [1] = { - IDX=1, - Name="弓箭手" + Name="弓箭手", + IDX=1 }, [2] = { - IDX=2, - Name="护卫" + Name="护卫", + IDX=2 }, [3] = { - IDX=3, - Name="MainDoor" + Name="MainDoor", + IDX=3 }, [4] = { - IDX=4, - Name="LeftWall" + Name="LeftWall", + IDX=4 }, [5] = { - IDX=5, - Name="CenterWall" + Name="CenterWall", + IDX=5 }, [6] = { - IDX=6, - Name="RightWall" + Name="RightWall", + IDX=6 }, [7] = { - IDX=7, - Name="弓箭守卫" + Name="弓箭守卫", + IDX=7 }, [8] = { - IDX=8, - Name="鸡" + Name="鸡", + IDX=8 }, [9] = { - IDX=9, - Name="骷髅" + Name="骷髅", + IDX=9 }, [10] = { - IDX=10, - Name="练功师" + Name="练功师", + IDX=10 }, [11] = { - IDX=11, - Name="★★★赤月★★★" + Name="★★★赤月★★★", + IDX=11 }, [12] = { - IDX=12, - Name="月魔蜘蛛" + Name="月魔蜘蛛", + IDX=12 }, [13] = { - IDX=13, - Name="钢牙蜘蛛" + Name="钢牙蜘蛛", + IDX=13 }, [14] = { - IDX=14, - Name="赤月恶魔" + Name="赤月恶魔", + IDX=14 }, [15] = { - IDX=15, - Name="天狼蜘蛛" + Name="天狼蜘蛛", + IDX=15 }, [16] = { - IDX=16, - Name="暗之赤月恶魔" + Name="暗之赤月恶魔", + IDX=16 }, [17] = { - IDX=17, - Name="黑锷蜘蛛" + Name="黑锷蜘蛛", + IDX=17 }, [18] = { - IDX=18, - Name="幻影蜘蛛" + Name="幻影蜘蛛", + IDX=18 }, [19] = { - IDX=19, - Name="花吻蜘蛛" + Name="花吻蜘蛛", + IDX=19 }, [20] = { - IDX=20, - Name="爆裂蜘蛛" + Name="爆裂蜘蛛", + IDX=20 }, [21] = { - IDX=21, - Name="双头老爹" + Name="双头老爹", + IDX=21 }, [22] = { - IDX=22, - Name="邪恶巨人" + Name="邪恶巨人", + IDX=22 }, [23] = { - IDX=23, - Name="血巨人" + Name="血巨人", + IDX=23 }, [24] = { - IDX=24, - Name="双头血魔" + Name="双头血魔", + IDX=24 }, [25] = { - IDX=25, - Name="双头金刚" + Name="双头金刚", + IDX=25 }, [26] = { - IDX=26, - Name="★★★沃玛★★★" + Name="★★★沃玛★★★", + IDX=26 }, [27] = { - IDX=27, - Name="沃玛战士" + Name="沃玛战士", + IDX=27 }, [28] = { - IDX=28, - Name="沃玛勇士" + Name="沃玛勇士", + IDX=28 }, [29] = { - IDX=29, - Name="沃玛战将" + Name="沃玛战将", + IDX=29 }, [30] = { - IDX=30, - Name="火焰沃玛" + Name="火焰沃玛", + IDX=30 }, [31] = { - IDX=31, - Name="沃玛护卫" + Name="沃玛护卫", + IDX=31 }, [32] = { - IDX=32, - Name="黑暗·沃玛教主" + Name="黑暗·沃玛教主", + IDX=32 }, [33] = { - IDX=33, - Name="沃玛统领" + Name="沃玛统领", + IDX=33 }, [34] = { + Hide="0#0", Name="远古·沃玛魔祖", - IDX=34, - Hide="0#0" + IDX=34 }, [35] = { - IDX=35, - Name="★★★祖玛★★★" + Name="★★★祖玛★★★", + IDX=35 }, [36] = { - IDX=36, - Name="大老鼠" + Name="大老鼠", + IDX=36 }, [37] = { - IDX=37, - Name="祖玛弓箭手" + Name="祖玛弓箭手", + IDX=37 }, [38] = { - IDX=38, - Name="祖玛雕像" + Name="祖玛雕像", + IDX=38 }, [39] = { - IDX=39, - Name="祖玛卫士" + Name="祖玛卫士", + IDX=39 }, [40] = { - IDX=40, - Name="祖玛教主" + Name="祖玛教主", + IDX=40 }, [41] = { - IDX=41, - Name="洪荒·祖玛教皇" + Name="洪荒·祖玛教皇", + IDX=41 }, [42] = { - IDX=42, - Name="变异祖玛雕像" + Name="变异祖玛雕像", + IDX=42 }, [43] = { - IDX=43, - Name="变异祖玛射手" + Name="变异祖玛射手", + IDX=43 }, [44] = { - IDX=44, - Name="变异祖玛卫士" + Name="变异祖玛卫士", + IDX=44 }, [45] = { - IDX=45, - Name="★★★僵尸洞★★★" + Name="★★★僵尸洞★★★", + IDX=45 }, [46] = { - IDX=46, - Name="尸王" + Name="尸王", + IDX=46 }, [47] = { - IDX=47, - Name="僵尸" + Name="僵尸", + IDX=47 }, [48] = { - IDX=48, - Name="电僵王" + Name="电僵王", + IDX=48 }, [49] = { - IDX=49, - Name="虹魔猪卫" + Name="虹魔猪卫", + IDX=49 }, [50] = { - IDX=50, - Name="邪恶毒蛇" + Name="邪恶毒蛇", + IDX=50 }, [51] = { - IDX=51, - Name="白野猪" + Name="白野猪", + IDX=51 }, [52] = { - IDX=52, - Name="虹魔教主" + Name="虹魔教主", + IDX=52 }, [53] = { - IDX=53, - Name="虹魔蝎卫" + Name="虹魔蝎卫", + IDX=53 }, [54] = { - IDX=54, - Name="虹魔猪王" + Name="虹魔猪王", + IDX=54 }, [55] = { - IDX=55, - Name="虹魔老祖" + Name="虹魔老祖", + IDX=55 }, [56] = { - IDX=56, - Name="★★★卧龙山庄★★★" + Name="★★★卧龙山庄★★★", + IDX=56 }, [57] = { - IDX=57, - Name="卧龙战士(男)" + Name="卧龙战士(男)", + IDX=57 }, [58] = { - IDX=58, - Name="卧龙战将(男)" + Name="卧龙战将(男)", + IDX=58 }, [59] = { - IDX=59, - Name="卧龙名将(男)" + Name="卧龙名将(男)", + IDX=59 }, [60] = { - IDX=60, - Name="卧龙庄主" + Name="卧龙庄主", + IDX=60 }, [61] = { - IDX=61, - Name="庄主夫人" + Name="庄主夫人", + IDX=61 }, [62] = { - IDX=62, - Name="卧龙战神(男)" + Name="卧龙战神(男)", + IDX=62 }, [63] = { - IDX=63, - Name="卧龙" + Name="卧龙", + IDX=63 }, [64] = { - IDX=64, - Name="凤雏" + Name="凤雏", + IDX=64 }, [65] = { - IDX=65, - Name="风云" + Name="风云", + IDX=65 }, [66] = { - IDX=66, - Name="卧龙战士(女)" + Name="卧龙战士(女)", + IDX=66 }, [67] = { - IDX=67, - Name="卧龙战将(女)" + Name="卧龙战将(女)", + IDX=67 }, [68] = { - IDX=68, - Name="卧龙名将(女)" + Name="卧龙名将(女)", + IDX=68 }, [69] = { - IDX=69, - Name="新月" + Name="新月", + IDX=69 }, [70] = { - IDX=70, - Name="卧龙战神(女)" + Name="卧龙战神(女)", + IDX=70 }, [71] = { - IDX=71, - Name="★★★奴隶山谷★★★" + Name="★★★奴隶山谷★★★", + IDX=71 }, [72] = { - IDX=72, - Name="奴隶" + Name="奴隶", + IDX=72 }, [73] = { - IDX=73, - Name="地主" + Name="地主", + IDX=73 }, [74] = { - IDX=74, - Name="金蛟蟒" + Name="金蛟蟒", + IDX=74 }, [75] = { - IDX=75, - Name="奴隶统帅" + Name="奴隶统帅", + IDX=75 }, [76] = { - IDX=76, - Name="白蛇妖" + Name="白蛇妖", + IDX=76 }, [77] = { - IDX=77, - Name="奴隶刀卫" + Name="奴隶刀卫", + IDX=77 }, [78] = { - IDX=78, - Name="奴隶神射" + Name="奴隶神射", + IDX=78 }, [79] = { - IDX=79, - Name="奴隶大锤" + Name="奴隶大锤", + IDX=79 }, [80] = { - IDX=80, - Name="★★★海外仙岛★★★" + Name="★★★海外仙岛★★★", + IDX=80 }, [81] = { - IDX=81, - Name="仙岛左卫" + Name="仙岛左卫", + IDX=81 }, [82] = { - IDX=82, - Name="仙岛右卫" + Name="仙岛右卫", + IDX=82 }, [83] = { - IDX=83, - Name="仙岛精灵" + Name="仙岛精灵", + IDX=83 }, [84] = { - IDX=84, - Name="仙岛统帅" + Name="仙岛统帅", + IDX=84 }, [85] = { - IDX=85, - Name="仙岛祭祀" + Name="仙岛祭祀", + IDX=85 }, [86] = { - IDX=86, - Name="七彩神龙" + Name="七彩神龙", + IDX=86 }, [87] = { - IDX=87, - Name="★★★狐月山★★★" + Name="★★★狐月山★★★", + IDX=87 }, [88] = { - IDX=88, - Name="黑狐" + Name="黑狐", + IDX=88 }, [89] = { - IDX=89, - Name="赤狐" + Name="赤狐", + IDX=89 }, [90] = { - IDX=90, - Name="狐月神石" + Name="狐月神石", + IDX=90 }, [91] = { - IDX=91, - Name="素狐" + Name="素狐", + IDX=91 }, [92] = { - IDX=92, - Name="狐月天珠" + Name="狐月天珠", + IDX=92 }, [93] = { - IDX=93, - Name="狐月魔眼" + Name="狐月魔眼", + IDX=93 }, [94] = { - IDX=94, - Name="黑狐王" + Name="黑狐王", + IDX=94 }, [95] = { - IDX=95, - Name="赤狐王" + Name="赤狐王", + IDX=95 }, [96] = { - IDX=96, - Name="素狐王" + Name="素狐王", + IDX=96 }, [97] = { - IDX=97, - Name="千年妖狐" + Name="千年妖狐", + IDX=97 }, [98] = { - IDX=98, - Name="★★★自定义怪物★★★" + Name="★★★自定义怪物★★★", + IDX=98 }, [99] = { - IDX=99, - Name="圣域·战魂" + Name="圣域·战魂", + IDX=99 }, [100] = { - IDX=100, - Name="圣域·斗魂" + Name="圣域·斗魂", + IDX=100 }, [101] = { - IDX=101, - Name="剑圣" + Name="剑圣", + IDX=101 }, [102] = { - IDX=102, - Name="通天·天关守护神" + Name="通天·天关守护神", + IDX=102 }, [103] = { - IDX=103, - Name="灵魂斗士" + Name="灵魂斗士", + IDX=103 }, [104] = { - IDX=104, - Name="铁血双锤" + Name="铁血双锤", + IDX=104 }, [105] = { - IDX=105, - Name="圣域·金甲大王" + Name="圣域·金甲大王", + IDX=105 }, [106] = { - IDX=106, - Name="石墓猪皇" + Name="石墓猪皇", + IDX=106 }, [107] = { - IDX=107, - Name="烈焰统领" + Name="烈焰统领", + IDX=107 }, [108] = { - IDX=108, - Name="烈焰诸侯" + Name="烈焰诸侯", + IDX=108 }, [109] = { - IDX=109, - Name="圣域·星将" + Name="圣域·星将", + IDX=109 }, [110] = { - IDX=110, - Name="海蛇妖王" + Name="海蛇妖王", + IDX=110 }, [111] = { - IDX=111, - Name="圣域·海蛇妖" + Name="圣域·海蛇妖", + IDX=111 }, [112] = { - IDX=112, - Name="天雷魔君" + Name="天雷魔君", + IDX=112 }, [113] = { - IDX=113, - Name="闪电魔【专属boss】" + Name="闪电魔【专属boss】", + IDX=113 }, [114] = { - IDX=114, - Name="暗黑羽翼" + Name="暗黑羽翼", + IDX=114 }, [115] = { - IDX=115, - Name="圣域·莽荒战将" + Name="圣域·莽荒战将", + IDX=115 }, [116] = { - IDX=116, - Name="妖王坐骑" + Name="妖王坐骑", + IDX=116 }, [117] = { - IDX=117, - Name="炎魔" + Name="炎魔", + IDX=117 }, [118] = { - IDX=118, - Name="魔眼" + Name="魔眼", + IDX=118 }, [119] = { - IDX=119, - Name="幽影武士" + Name="幽影武士", + IDX=119 }, [120] = { - IDX=120, - Name="通天·泰坦巨猿" + Name="通天·泰坦巨猿", + IDX=120 }, [121] = { - IDX=121, - Name="海神" + Name="海神", + IDX=121 }, [122] = { - IDX=122, - Name="不灭君主" + Name="不灭君主", + IDX=122 }, [123] = { - IDX=123, - Name="圣域·铁甲尸王" + Name="圣域·铁甲尸王", + IDX=123 }, [124] = { - IDX=124, - Name="通灵尸神" + Name="通灵尸神", + IDX=124 }, [125] = { - IDX=125, - Name="孟婆" + Name="孟婆", + IDX=125 }, [126] = { - IDX=126, - Name="无常【专属boss】" + Name="无常【专属boss】", + IDX=126 }, [127] = { - IDX=127, - Name="圣域·盘龙大王" + Name="圣域·盘龙大王", + IDX=127 }, [128] = { - IDX=128, - Name="圣域·半人马行者" + Name="圣域·半人马行者", + IDX=128 }, [129] = { - IDX=129, - Name="魔龙老祖" + Name="魔龙老祖", + IDX=129 }, [130] = { - IDX=130, - Name="圣域·龙虾王" + Name="圣域·龙虾王", + IDX=130 }, [131] = { - IDX=131, - Name="圣域·人面魔鲨" + Name="圣域·人面魔鲨", + IDX=131 }, [132] = { - IDX=132, - Name="深海妖龙" + Name="深海妖龙", + IDX=132 }, [133] = { - IDX=133, - Name="通天·日曜毁灭者" + Name="通天·日曜毁灭者", + IDX=133 }, [134] = { - IDX=134, - Name="狐月神石1" + Name="狐月神石1", + IDX=134 }, [135] = { - IDX=135, - Name="狐月天珠1" + Name="狐月天珠1", + IDX=135 }, [136] = { - IDX=136, - Name="瘟疫毒蟾" + Name="瘟疫毒蟾", + IDX=136 }, [137] = { - IDX=137, - Name="奴隶护卫" + Name="奴隶护卫", + IDX=137 }, [138] = { - IDX=138, - Name="瘟疫蜥人" + Name="瘟疫蜥人", + IDX=138 }, [139] = { - IDX=139, - Name="瘟疫统领" + Name="瘟疫统领", + IDX=139 }, [140] = { - IDX=140, - Name="万毒巫师" + Name="万毒巫师", + IDX=140 }, [141] = { - IDX=141, - Name="咏夜幽魂" + Name="咏夜幽魂", + IDX=141 }, [142] = { - IDX=142, - Name="圣域·守卫" + Name="圣域·守卫", + IDX=142 }, [143] = { - IDX=143, - Name="咏夜主教" + Name="咏夜主教", + IDX=143 }, [144] = { - IDX=144, - Name="圣域·骑士" + Name="圣域·骑士", + IDX=144 }, [145] = { - IDX=145, - Name="远古教皇" + Name="远古教皇", + IDX=145 }, [146] = { - IDX=146, - Name="圣域·机甲战士" + Name="圣域·机甲战士", + IDX=146 }, [147] = { - IDX=147, - Name="不灭·幻魔之主" + Name="不灭·幻魔之主", + IDX=147 }, [148] = { - IDX=148, - Name="狂暴·风沙之主" + Name="狂暴·风沙之主", + IDX=148 }, [149] = { - IDX=149, - Name="不朽·雷霆之主" + Name="不朽·雷霆之主", + IDX=149 }, [150] = { - IDX=150, - Name="荒古大帝" + Name="荒古大帝", + IDX=150 }, [151] = { - IDX=151, - Name="传说·白虎尊者" + Name="传说·白虎尊者", + IDX=151 }, [152] = { - IDX=152, - Name="赤明天王" + Name="赤明天王", + IDX=152 }, [153] = { - IDX=153, - Name="齐天至尊" + Name="齐天至尊", + IDX=153 }, [154] = { - IDX=154, - Name="暗影修罗" + Name="暗影修罗", + IDX=154 }, [155] = { - IDX=155, - Name="黑袍修罗" + Name="黑袍修罗", + IDX=155 }, [156] = { - IDX=156, - Name="圣域守护者" + Name="圣域守护者", + IDX=156 }, [157] = { - IDX=157, - Name="西域·阿修罗" + Name="西域·阿修罗", + IDX=157 }, [158] = { - IDX=158, - Name="通天·暗影之神" + Name="通天·暗影之神", + IDX=158 }, [159] = { - IDX=159, - Name="通天·幻阴妖王" + Name="通天·幻阴妖王", + IDX=159 }, [160] = { - IDX=160, - Name="通天·赤阳魔尊" + Name="通天·赤阳魔尊", + IDX=160 }, [161] = { - IDX=161, - Name="通天·异界掌门" + Name="通天·异界掌门", + IDX=161 }, [162] = { - IDX=162, - Name="诺玛装甲兵" + Name="诺玛装甲兵", + IDX=162 }, [163] = { - IDX=163, - Name="通天·星域统帅" + Name="通天·星域统帅", + IDX=163 }, [164] = { - IDX=164, - Name="孟婆【特殊boss】10" + Name="孟婆【特殊boss】10", + IDX=164 }, [165] = { - IDX=165, - Name="通天骑将" + Name="通天骑将", + IDX=165 }, [166] = { - IDX=166, - Name="通天守护者" + Name="通天守护者", + IDX=166 }, [167] = { - IDX=167, - Name="通天骷髅王" + Name="通天骷髅王", + IDX=167 }, [168] = { - IDX=168, - Name="通天尸王" + Name="通天尸王", + IDX=168 }, [169] = { - IDX=169, - Name="通天蛇妖王" + Name="通天蛇妖王", + IDX=169 }, [170] = { - IDX=170, - Name="通天雷神" + Name="通天雷神", + IDX=170 }, [171] = { - IDX=171, - Name="通天猪皇" + Name="通天猪皇", + IDX=171 }, [172] = { - IDX=172, - Name="通天诸侯" + Name="通天诸侯", + IDX=172 }, [173] = { - IDX=173, - Name="通天妖王" + Name="通天妖王", + IDX=173 }, [174] = { - IDX=174, - Name="通天魔君" + Name="通天魔君", + IDX=174 }, [175] = { - IDX=175, - Name="通天尸神" + Name="通天尸神", + IDX=175 }, [176] = { - IDX=176, - Name="通天幻术师" + Name="通天幻术师", + IDX=176 }, [177] = { - IDX=177, - Name="通天魔龙王" + Name="通天魔龙王", + IDX=177 }, [178] = { - IDX=178, - Name="通天蟠龙" + Name="通天蟠龙", + IDX=178 }, [179] = { - IDX=179, - Name="通天教皇" + Name="通天教皇", + IDX=179 }, [180] = { - IDX=180, - Name="洪荒·冰霜之主" + Name="洪荒·冰霜之主", + IDX=180 }, [181] = { - IDX=181, - Name="地狱·岩浆魔王" + Name="地狱·岩浆魔王", + IDX=181 }, [182] = { - IDX=182, - Name="炎燚·火之帝君" + Name="炎燚·火之帝君", + IDX=182 }, [183] = { - IDX=183, - Name="通天·大长老" + Name="通天·大长老", + IDX=183 }, [184] = { - IDX=184, - Name="通天·判官" + Name="通天·判官", + IDX=184 }, [185] = { - IDX=185, - Name="通天·死魂之灵" + Name="通天·死魂之灵", + IDX=185 }, [186] = { - IDX=186, - Name="通天·血魔之主" + Name="通天·血魔之主", + IDX=186 }, [187] = { - IDX=187, - Name="通天·变异甲蛛" + Name="通天·变异甲蛛", + IDX=187 }, [188] = { - IDX=188, - Name="圣域帝主" + Name="圣域帝主", + IDX=188 }, [189] = { - IDX=189, - Name="乱古大帝" + Name="乱古大帝", + IDX=189 }, [190] = { - IDX=190, - Name="斗战天尊" + Name="斗战天尊", + IDX=190 }, [191] = { - IDX=191, - Name="白虎王" + Name="白虎王", + IDX=191 }, [192] = { - IDX=192, - Name="黄泉之魂" + Name="黄泉之魂", + IDX=192 }, [193] = { - IDX=193, - Name="碧血魔" + Name="碧血魔", + IDX=193 }, [194] = { - IDX=194, - Name="魔炎麒麟" + Name="魔炎麒麟", + IDX=194 }, [195] = { - IDX=195, - Name="通天·血狱领主" + Name="通天·血狱领主", + IDX=195 }, [196] = { - IDX=196, - Name="典狱长之眼" + Name="典狱长之眼", + IDX=196 }, [197] = { - IDX=197, - Name="烈焰使1" + Name="烈焰使1", + IDX=197 }, [198] = { - IDX=198, - Name="魔斗士1" + Name="魔斗士1", + IDX=198 }, [199] = { - IDX=199, - Name="炎魔1" + Name="炎魔1", + IDX=199 }, [200] = { - IDX=200, - Name="地火兽骑将1" + Name="地火兽骑将1", + IDX=200 }, [201] = { - IDX=201, - Name="幽影武士1" + Name="幽影武士1", + IDX=201 }, [202] = { - IDX=202, - Name="邪神之主" + Name="邪神之主", + IDX=202 }, [203] = { - IDX=203, - Name="不灭蝎王" + Name="不灭蝎王", + IDX=203 }, [204] = { - IDX=204, - Name="黄泉至尊" + Name="黄泉至尊", + IDX=204 }, [205] = { - IDX=205, - Name="雷帝" + Name="雷帝", + IDX=205 }, [206] = { - IDX=206, - Name="禁地旗座" + Name="禁地旗座", + IDX=206 }, [207] = { - IDX=207, - Name="禁地龙卫" + Name="禁地龙卫", + IDX=207 }, [208] = { - IDX=208, - Name="★★★废墟之城★★★" + Name="★★★废墟之城★★★", + IDX=208 }, [209] = { - IDX=209, - Name="废墟侍卫" + Name="废墟侍卫", + IDX=209 }, [210] = { - IDX=210, - Name="废墟勇者" + Name="废墟勇者", + IDX=210 }, [211] = { - IDX=211, - Name="废墟骑士" + Name="废墟骑士", + IDX=211 }, [212] = { - IDX=212, - Name="守护·凰翎" + Name="守护·凰翎", + IDX=212 }, [213] = { - IDX=213, - Name="废墟祭祀" + Name="废墟祭祀", + IDX=213 }, [214] = { - IDX=214, - Name="失落の圣君" + Name="失落の圣君", + IDX=214 }, [215] = { - IDX=215, - Name="暗影魅姬" + Name="暗影魅姬", + IDX=215 }, [216] = { - IDX=216, - Name="暗影罗煞" + Name="暗影罗煞", + IDX=216 }, [217] = { - IDX=217, - Name="青の龙" + Name="青の龙", + IDX=217 }, [218] = { - IDX=218, - Name="白虎" + Name="白虎", + IDX=218 }, [219] = { - IDX=219, - Name="朱の雀" + Name="朱の雀", + IDX=219 }, [220] = { - IDX=220, - Name="玄の武" + Name="玄の武", + IDX=220 }, [221] = { - IDX=221, - Name="★★★静谧山谷★★★" + Name="★★★静谧山谷★★★", + IDX=221 }, [222] = { - IDX=222, - Name="术咒师" + Name="术咒师", + IDX=222 }, [223] = { - IDX=223, - Name="地狱火骑士" + Name="地狱火骑士", + IDX=223 }, [224] = { - IDX=224, - Name="山谷冰箭手" + Name="山谷冰箭手", + IDX=224 }, [225] = { - IDX=225, - Name="雷之精灵" + Name="雷之精灵", + IDX=225 }, [226] = { - IDX=226, - Name="破晓" + Name="破晓", + IDX=226 }, [227] = { - IDX=227, - Name="贪狼" + Name="贪狼", + IDX=227 }, [228] = { - IDX=228, - Name="洪荒火鸟" + Name="洪荒火鸟", + IDX=228 }, [229] = { - IDX=229, - Name="静谧の谷主" + Name="静谧の谷主", + IDX=229 }, [230] = { - IDX=230, - Name="★★★天龙遗址★★★" + Name="★★★天龙遗址★★★", + IDX=230 }, [231] = { - IDX=231, - Name="仙人掌" + Name="仙人掌", + IDX=231 }, [232] = { - IDX=232, - Name="巨石勇士" + Name="巨石勇士", + IDX=232 }, [233] = { - IDX=233, - Name="狂暴沙兽" + Name="狂暴沙兽", + IDX=233 }, [234] = { - IDX=234, - Name="龙猿" + Name="龙猿", + IDX=234 }, [235] = { - IDX=235, - Name="敖天" + Name="敖天", + IDX=235 }, [236] = { - IDX=236, - Name="天龙·星魂" + Name="天龙·星魂", + IDX=236 }, [237] = { - IDX=237, - Name="天龙·战魂" + Name="天龙·战魂", + IDX=237 }, [238] = { - IDX=238, - Name="天龙圣主" + Name="天龙圣主", + IDX=238 }, [239] = { - IDX=239, - Name="古龙" + Name="古龙", + IDX=239 }, [240] = { - IDX=240, - Name="暗龙" + Name="暗龙", + IDX=240 }, [241] = { - IDX=241, - Name="天龙魔眼" + Name="天龙魔眼", + IDX=241 }, [242] = { - IDX=242, - Name="★★★水上世界★★★" + Name="★★★水上世界★★★", + IDX=242 }, [243] = { - IDX=243, - Name="深海龙虾王" + Name="深海龙虾王", + IDX=243 }, [244] = { - IDX=244, - Name="邪恶海怪" + Name="邪恶海怪", + IDX=244 }, [245] = { - IDX=245, - Name="海妖女巫" + Name="海妖女巫", + IDX=245 }, [246] = { - IDX=246, - Name="海妖狂战士" + Name="海妖狂战士", + IDX=246 }, [247] = { - IDX=247, - Name="深海蛟龙" + Name="深海蛟龙", + IDX=247 }, [248] = { - IDX=248, - Name="狂暴海妖" + Name="狂暴海妖", + IDX=248 }, [249] = { - IDX=249, - Name="海上霸主" + Name="海上霸主", + IDX=249 }, [250] = { - IDX=250, - Name="美杜莎" + Name="美杜莎", + IDX=250 }, [251] = { - IDX=251, - Name="幽灵·船长" + Name="幽灵·船长", + IDX=251 }, [252] = { - IDX=252, - Name="★★★龙爪要塞★★★" + Name="★★★龙爪要塞★★★", + IDX=252 }, [253] = { - IDX=253, - Name="龙爪守卫" + Name="龙爪守卫", + IDX=253 }, [254] = { - IDX=254, - Name="龙爪血魔" + Name="龙爪血魔", + IDX=254 }, [255] = { - IDX=255, - Name="龙爪统领" + Name="龙爪统领", + IDX=255 }, [256] = { - IDX=256, - Name="龙爪将军" + Name="龙爪将军", + IDX=256 }, [257] = { - IDX=257, - Name="血狱炎魔" + Name="血狱炎魔", + IDX=257 }, [258] = { - IDX=258, - Name="变异血蛛" + Name="变异血蛛", + IDX=258 }, [259] = { - IDX=259, - Name="御龙魔君" + Name="御龙魔君", + IDX=259 }, [260] = { - IDX=260, - Name="★★★秦王地宫★★★" + Name="★★★秦王地宫★★★", + IDX=260 }, [261] = { - IDX=261, - Name="地宫火魔" + Name="地宫火魔", + IDX=261 }, [262] = { - IDX=262, - Name="地宫守卫" + Name="地宫守卫", + IDX=262 }, [263] = { - IDX=263, - Name="先秦战士" + Name="先秦战士", + IDX=263 }, [264] = { - IDX=264, - Name="地狱·死亡之主" + Name="地狱·死亡之主", + IDX=264 }, [265] = { - IDX=265, - Name="金甲暴龙兽" + Name="金甲暴龙兽", + IDX=265 }, [266] = { - IDX=266, - Name="炙热牛魔" + Name="炙热牛魔", + IDX=266 }, [267] = { - IDX=267, - Name="莽荒之主" + Name="莽荒之主", + IDX=267 }, [268] = { - IDX=268, - Name="秦始皇" + Name="秦始皇", + IDX=268 }, [269] = { - IDX=269, - Name="★★★冰晶雪域★★★" + Name="★★★冰晶雪域★★★", + IDX=269 }, [270] = { - IDX=270, - Name="雪域毛人" + Name="雪域毛人", + IDX=270 }, [271] = { - IDX=271, - Name="雪域魔狼" + Name="雪域魔狼", + IDX=271 }, [272] = { - IDX=272, - Name="雪域天将" + Name="雪域天将", + IDX=272 }, [273] = { - IDX=273, - Name="雪域战将" + Name="雪域战将", + IDX=273 }, [274] = { - IDX=274, - Name="雪域冰甲虫" + Name="雪域冰甲虫", + IDX=274 }, [275] = { - IDX=275, - Name="雪域霸王" + Name="雪域霸王", + IDX=275 }, [276] = { - IDX=276, - Name="雪域战灵" + Name="雪域战灵", + IDX=276 }, [277] = { - IDX=277, - Name="雪域游神" + Name="雪域游神", + IDX=277 }, [278] = { - IDX=278, - Name="★★★熔岩之地★★★" + Name="★★★熔岩之地★★★", + IDX=278 }, [279] = { - IDX=279, - Name="地狱猎犬" + Name="地狱猎犬", + IDX=279 }, [280] = { - IDX=280, - Name="熔岩统领" + Name="熔岩统领", + IDX=280 }, [281] = { - IDX=281, - Name="地狱龙将" + Name="地狱龙将", + IDX=281 }, [282] = { - IDX=282, - Name="熔岩剧毒蛛" + Name="熔岩剧毒蛛", + IDX=282 }, [283] = { - IDX=283, - Name="地狱蜥蜴人" + Name="地狱蜥蜴人", + IDX=283 }, [284] = { - IDX=284, - Name="熔岩流浪者" + Name="熔岩流浪者", + IDX=284 }, [285] = { - IDX=285, - Name="地狱恶鬼" + Name="地狱恶鬼", + IDX=285 }, [286] = { - IDX=286, - Name="魅惑妖后" + Name="魅惑妖后", + IDX=286 }, [287] = { - IDX=287, - Name="妖皇" + Name="妖皇", + IDX=287 }, [288] = { - IDX=288, - Name="血狱·血魔之主【专属boss】" + Name="血狱·血魔之主【专属boss】", + IDX=288 }, [289] = { - IDX=289, - Name="血狱·变异甲蛛【专属boss】" + Name="血狱·变异甲蛛【专属boss】", + IDX=289 }, [290] = { - IDX=290, - Name="★★★遗忘之地★★★" + Name="★★★遗忘之地★★★", + IDX=290 }, [291] = { - IDX=291, - Name="狂热火蜥蜴" + Name="狂热火蜥蜴", + IDX=291 }, [292] = { - IDX=292, - Name="圣殿卫士" + Name="圣殿卫士", + IDX=292 }, [293] = { - IDX=293, - Name="幽灵白虎" + Name="幽灵白虎", + IDX=293 }, [294] = { - IDX=294, - Name="巨廉蜘蛛" + Name="巨廉蜘蛛", + IDX=294 }, [295] = { - IDX=295, - Name="剧毒蜘蛛" + Name="剧毒蜘蛛", + IDX=295 }, [296] = { - IDX=296, - Name="金杖蜘蛛" + Name="金杖蜘蛛", + IDX=296 }, [297] = { - IDX=297, - Name="雷炎霸主" + Name="雷炎霸主", + IDX=297 }, [298] = { - IDX=298, - Name="★★★黑暗宫殿★★★" + Name="★★★黑暗宫殿★★★", + IDX=298 }, [299] = { - IDX=299, - Name="魔龙教主" + Name="魔龙教主", + IDX=299 }, [300] = { - IDX=300, - Name="魔龙巨鹅(经典)" + Name="魔龙巨鹅(经典)", + IDX=300 }, [301] = { - IDX=301, - Name="魔龙战将(经典)" + Name="魔龙战将(经典)", + IDX=301 }, [302] = { - IDX=302, - Name="魔龙力士(经典)" + Name="魔龙力士(经典)", + IDX=302 }, [303] = { - IDX=303, - Name="魔龙力王" + Name="魔龙力王", + IDX=303 }, [304] = { - IDX=304, - Name="魔龙战王" + Name="魔龙战王", + IDX=304 }, [305] = { - IDX=305, - Name="大魔导法师" + Name="大魔导法师", + IDX=305 }, [306] = { - IDX=306, - Name="★★★神龙帝国★★★" + Name="★★★神龙帝国★★★", + IDX=306 }, [307] = { - IDX=307, - Name="万年树妖" + Name="万年树妖", + IDX=307 }, [308] = { - IDX=308, - Name="大毛" + Name="大毛", + IDX=308 }, [309] = { - IDX=309, - Name="神龙教主" + Name="神龙教主", + IDX=309 }, [310] = { - IDX=310, - Name="祥瑞麒麟" + Name="祥瑞麒麟", + IDX=310 }, [311] = { - IDX=311, - Name="神龙帝主" + Name="神龙帝主", + IDX=311 }, [312] = { - IDX=312, - Name="神龙帝主(炼气)" + Name="神龙帝主(炼气)", + IDX=312 }, [313] = { - IDX=313, - Name="魔童" + Name="魔童", + IDX=313 }, [314] = { - IDX=314, - Name="神龙守卫" + Name="神龙守卫", + IDX=314 }, [315] = { - IDX=315, - Name="牛魔王(经典)" + Name="牛魔王(经典)", + IDX=315 }, [316] = { - IDX=316, - Name="黄泉教主(经典)" + Name="黄泉教主(经典)", + IDX=316 }, [317] = { - IDX=317, - Name="沃玛教主(经典)" + Name="沃玛教主(经典)", + IDX=317 }, [318] = { - IDX=318, - Name="★★★蜈蚣洞★★★" + Name="★★★蜈蚣洞★★★", + IDX=318 }, [319] = { - IDX=319, - Name="血色蜈蚣" + Name="血色蜈蚣", + IDX=319 }, [320] = { - IDX=320, - Name="蜈蚣" + Name="蜈蚣", + IDX=320 }, [321] = { - IDX=321, - Name="黑色恶蛆" + Name="黑色恶蛆", + IDX=321 }, [322] = { - IDX=322, - Name="钳虫" + Name="钳虫", + IDX=322 }, [323] = { - IDX=323, - Name="邪恶钳虫" + Name="邪恶钳虫", + IDX=323 }, [324] = { - IDX=324, - Name="跳跳蜂" + Name="跳跳蜂", + IDX=324 }, [325] = { - IDX=325, - Name="巨型蠕虫" + Name="巨型蠕虫", + IDX=325 }, [326] = { - IDX=326, - Name="触龙神" + Name="触龙神", + IDX=326 }, [327] = { - IDX=327, - Name="迷失洞主" + Name="迷失洞主", + IDX=327 }, [328] = { - IDX=328, - Name="冰眼巨魔(炼气)" + Name="冰眼巨魔(炼气)", + IDX=328 }, [329] = { - IDX=329, - Name="冰眼巨魔(筑基)" + Name="冰眼巨魔(筑基)", + IDX=329 }, [330] = { - IDX=330, - Name="冰眼巨魔(金丹)" + Name="冰眼巨魔(金丹)", + IDX=330 }, [331] = { - IDX=331, - Name="冰眼巨魔(元婴)" + Name="冰眼巨魔(元婴)", + IDX=331 }, [332] = { - IDX=332, - Name="天之沃玛教主" + Name="天之沃玛教主", + IDX=332 }, [333] = { - IDX=333, - Name="天之黄泉教主" + Name="天之黄泉教主", + IDX=333 }, [334] = { - IDX=334, - Name="天之牛魔王" + Name="天之牛魔王", + IDX=334 }, [335] = { - IDX=335, - Name="天之双头金刚" + Name="天之双头金刚", + IDX=335 }, [336] = { - IDX=336, - Name="天之双头血魔" + Name="天之双头血魔", + IDX=336 }, [337] = { - IDX=337, - Name="天之魔龙教主" + Name="天之魔龙教主", + IDX=337 }, [338] = { - IDX=338, - Name="天之赤月恶魔" + Name="天之赤月恶魔", + IDX=338 }, [339] = { - IDX=339, - Name="天之祖玛教主" + Name="天之祖玛教主", + IDX=339 }, [340] = { - IDX=340, - Name="天之虹魔教主" + Name="天之虹魔教主", + IDX=340 }, [341] = { - IDX=341, - Name="天之守卫" + Name="天之守卫", + IDX=341 }, [342] = { - IDX=342, - Name="天之瘟疫统领" + Name="天之瘟疫统领", + IDX=342 }, [343] = { - IDX=343, - Name="天之尸王" + Name="天之尸王", + IDX=343 }, [344] = { - IDX=344, - Name="天之猪皇" + Name="天之猪皇", + IDX=344 }, [345] = { - IDX=345, - Name="天之骷髅王" + Name="天之骷髅王", + IDX=345 }, [346] = { - IDX=346, - Name="天之战将" + Name="天之战将", + IDX=346 }, [347] = { - IDX=347, - Name="天之白虎王" + Name="天之白虎王", + IDX=347 }, [348] = { - IDX=348, - Name="天之魔斗士" + Name="天之魔斗士", + IDX=348 }, [349] = { - IDX=349, - Name="天之斗士" + Name="天之斗士", + IDX=349 }, [350] = { - IDX=350, - Name="天之炎魔" + Name="天之炎魔", + IDX=350 }, [351] = { - IDX=351, - Name="天之碧血魔" + Name="天之碧血魔", + IDX=351 }, [352] = { - IDX=352, - Name="天之蛇妖王" + Name="天之蛇妖王", + IDX=352 }, [353] = { - IDX=353, - Name="天之金甲大王" + Name="天之金甲大王", + IDX=353 }, [354] = { - IDX=354, - Name="天之妖王坐骑" + Name="天之妖王坐骑", + IDX=354 }, [355] = { - IDX=355, - Name="天之莽荒战将" + Name="天之莽荒战将", + IDX=355 }, [356] = { - IDX=356, - Name="天之幽影武士" + Name="天之幽影武士", + IDX=356 }, [357] = { - IDX=357, - Name="天之半人马行者" + Name="天之半人马行者", + IDX=357 }, [358] = { - IDX=358, - Name="天之人面魔鲨" + Name="天之人面魔鲨", + IDX=358 }, [359] = { - IDX=359, - Name="天之深海妖龙" + Name="天之深海妖龙", + IDX=359 }, [360] = { - IDX=360, - Name="天之镇天魔将" + Name="天之镇天魔将", + IDX=360 }, [361] = { - IDX=361, - Name="天之天雷魔君" + Name="天之天雷魔君", + IDX=361 }, [362] = { - IDX=362, - Name="天之不灭君主" + Name="天之不灭君主", + IDX=362 }, [363] = { - IDX=363, - Name="天之战魂" + Name="天之战魂", + IDX=363 }, [364] = { - IDX=364, - Name="天之斗魂" + Name="天之斗魂", + IDX=364 }, [365] = { - IDX=365, - Name="天之无尽巨魔" + Name="天之无尽巨魔", + IDX=365 }, [366] = { - IDX=366, - Name="天之幻魔之主" + Name="天之幻魔之主", + IDX=366 }, [367] = { - IDX=367, - Name="天之风沙之主" + Name="天之风沙之主", + IDX=367 }, [368] = { - IDX=368, - Name="天之雷霆之主" + Name="天之雷霆之主", + IDX=368 }, [369] = { - IDX=369, - Name="天之冰霜之主" + Name="天之冰霜之主", + IDX=369 }, [370] = { - IDX=370, - Name="天之岩浆魔王" + Name="天之岩浆魔王", + IDX=370 }, [371] = { - IDX=371, - Name="天之火之帝君" + Name="天之火之帝君", + IDX=371 }, [372] = { - IDX=372, - Name="天之邪神之主" + Name="天之邪神之主", + IDX=372 }, [373] = { - IDX=373, - Name="天之不灭蝎王" + Name="天之不灭蝎王", + IDX=373 }, [374] = { - IDX=374, - Name="天之黄泉至尊" + Name="天之黄泉至尊", + IDX=374 }, [375] = { - IDX=375, - Name="天之雷帝" + Name="天之雷帝", + IDX=375 }, [376] = { - IDX=376, - Name="天之剑圣" + Name="天之剑圣", + IDX=376 }, [377] = { - IDX=377, - Name="天之齐天至尊" + Name="天之齐天至尊", + IDX=377 }, [378] = { - IDX=378, - Name="天之荒古大帝" + Name="天之荒古大帝", + IDX=378 }, [379] = { - IDX=379, - Name="天之白虎尊者" + Name="天之白虎尊者", + IDX=379 }, [380] = { - IDX=380, - Name="天之赤明天帝" + Name="天之赤明天帝", + IDX=380 }, [381] = { - IDX=381, - Name="天之守护神" + Name="天之守护神", + IDX=381 }, [382] = { - IDX=382, - Name="天之神龙帝主" + Name="天之神龙帝主", + IDX=382 }, [383] = { - IDX=383, - Name="冰眼巨魔" + Name="冰眼巨魔", + IDX=383 }, [384] = { - IDX=384, - Name="冰眼巨魔(分身)1" + Name="冰眼巨魔(分身)1", + IDX=384 }, [385] = { - IDX=385, - Name="冰眼巨魔(分身)2" + Name="冰眼巨魔(分身)2", + IDX=385 }, [386] = { - IDX=386, - Name="死魂之灵" + Name="死魂之灵", + IDX=386 }, [387] = { - IDX=387, - Name="迷宫之主" + Name="迷宫之主", + IDX=387 }, [388] = { - IDX=388, - Name="亿年树妖" + Name="亿年树妖", + IDX=388 }, [389] = { - IDX=389, - Name="魔化触龙神" + Name="魔化触龙神", + IDX=389 }, [390] = { - IDX=390, - Name=11111 + Name=11111, + IDX=390 }, [391] = { - IDX=391, - Name="神·狐月天珠" + Name="神·狐月天珠", + IDX=391 }, [392] = { - IDX=392, - Name="魔龙圣尊" + Name="魔龙圣尊", + IDX=392 }, [393] = { - IDX=393, - Name="幻魔之主" + Name="幻魔之主", + IDX=393 }, [394] = { - IDX=394, - Name="变异鱿鱼" + Name="变异鱿鱼", + IDX=394 }, [395] = { - IDX=395, - Name="龙爪藤兽" + Name="龙爪藤兽", + IDX=395 }, [396] = { - IDX=396, - Name="东海龙子" + Name="东海龙子", + IDX=396 }, [397] = { - IDX=397, - Name="废墟英灵" + Name="废墟英灵", + IDX=397 }, [398] = { - IDX=398, - Name="归隐人" + Name="归隐人", + IDX=398 }, [399] = { - IDX=399, - Name="毒蚁" + Name="毒蚁", + IDX=399 }, [400] = { - IDX=400, - Name="牛魔法师王" + Name="牛魔法师王", + IDX=400 }, [401] = { - IDX=401, - Name="牛魔大祭祀" + Name="牛魔大祭祀", + IDX=401 }, [402] = { - IDX=402, - Name="牛魔大将军" + Name="牛魔大将军", + IDX=402 }, [403] = { - IDX=403, - Name="牛魔圣尊" + Name="牛魔圣尊", + IDX=403 }, [404] = { - IDX=404, - Name="雷炎蛛王" + Name="雷炎蛛王", + IDX=404 }, [405] = { - IDX=405, - Name="树妖" + Name="树妖", + IDX=405 }, [406] = { - IDX=406, - Name="白の虎" + Name="白の虎", + IDX=406 }, [407] = { - IDX=407, - Name="灵魂收割者" + Name="灵魂收割者", + IDX=407 }, [408] = { - IDX=408, - Name="界海炎帝" + Name="界海炎帝", + IDX=408 }, [409] = { - IDX=409, - Name="九世冥尊" + Name="九世冥尊", + IDX=409 }, [410] = { - IDX=410, - Name="风华斗罗" + Name="风华斗罗", + IDX=410 }, [411] = { - IDX=411, - Name="光明星君" + Name="光明星君", + IDX=411 }, [412] = { - IDX=412, - Name="痛苦女王" + Name="痛苦女王", + IDX=412 }, [413] = { - IDX=413, - Name="第一神将" + Name="第一神将", + IDX=413 }, [414] = { - IDX=414, - Name="卧龙树妖" + Name="卧龙树妖", + IDX=414 }, [415] = { - IDX=415, - Name="★★★拾取小精灵★★★" + Name="★★★拾取小精灵★★★", + IDX=415 }, [416] = { - IDX=416, - Name="嗷嗷虎" + Name="嗷嗷虎", + IDX=416 }, [417] = { - IDX=417, - Name="胖胖龙" + Name="胖胖龙", + IDX=417 }, [418] = { - IDX=418, - Name="嘎嘎雀" + Name="嘎嘎雀", + IDX=418 }, [419] = { - IDX=419, - Name="尼尼龟" + Name="尼尼龟", + IDX=419 }, [420] = { - IDX=420, - Name="地痞流氓" + Name="地痞流氓", + IDX=420 }, [421] = { - IDX=421, - Name="臭鱼烂虾" + Name="臭鱼烂虾", + IDX=421 }, [422] = { - IDX=422, - Name="采花大盗" + Name="采花大盗", + IDX=422 }, [423] = { - IDX=423, - Name="冥界大巫师" + Name="冥界大巫师", + IDX=423 }, [424] = { - IDX=424, - Name="奴隶长工" + Name="奴隶长工", + IDX=424 }, [425] = { - IDX=425, - Name="祖玛教皇" + Name="祖玛教皇", + IDX=425 }, [426] = { - IDX=426, - Name="大头鬼" + Name="大头鬼", + IDX=426 }, [427] = { - IDX=427, - Name="千年老龟" + Name="千年老龟", + IDX=427 }, [428] = { - IDX=428, - Name="火龙神" + Name="火龙神", + IDX=428 }, [429] = { - IDX=429, - Name="魔龙刀卫" + Name="魔龙刀卫", + IDX=429 }, [430] = { - IDX=430, - Name="魔龙破甲兵" + Name="魔龙破甲兵", + IDX=430 }, [431] = { - IDX=431, - Name="瘟疫金蝉" + Name="瘟疫金蝉", + IDX=431 }, [432] = { - IDX=432, - Name="瘟疫蛋" + Name="瘟疫蛋", + IDX=432 }, [433] = { - IDX=433, - Name="万年老树精" + Name="万年老树精", + IDX=433 }, [434] = { - IDX=434, - Name="狼王" + Name="狼王", + IDX=434 }, [435] = { - IDX=435, - Name="蚁后" + Name="蚁后", + IDX=435 }, [436] = { - IDX=436, - Name="巨型蝗虫" + Name="巨型蝗虫", + IDX=436 }, [437] = { - IDX=437, - Name="寄居蟹" + Name="寄居蟹", + IDX=437 }, [438] = { - IDX=438, - Name="灵魂审判者" + Name="灵魂审判者", + IDX=438 }, } return config diff --git a/client/env.json b/client/env.json index b6678f44..1f2322a2 100644 --- a/client/env.json +++ b/client/env.json @@ -1 +1 @@ -{"gm":0,"signkey":"634eff98723b31da43ed35f0dd4edf36","oper_mode":1,"modlist":"http://list.dhsf.xqhuyu.com/testmodlist/modlist_tool_1942.txt","resolution":"1024x768","channel":1} +{"modlist":"http:\/\/list.dhsf.xqhuyu.com\/testmodlist\/modlist_tool_1942.txt","channel":1,"gm":0,"signkey":"634eff98723b31da43ed35f0dd4edf36","resolution":"1136x640","oper_mode":2} \ No newline at end of file diff --git a/csv/cfg_主线任务.csv b/csv/cfg_主线任务.csv new file mode 100644 index 00000000..a93b2fd7 --- /dev/null +++ b/csv/cfg_主线任务.csv @@ -0,0 +1,11 @@ +,һ,Ƿ,,ݷ,,,ݷ,ģKey_1,ģ򿪶,NPC_ID_1,NPCű_1,Ŀ,Ŀ,Ŀͼ,Ŀ,_1_,_1_,_1_,_1_,_2_,_2_,_2_,_2_,_3_,_3_,_3_,_3_,Ƿ +id,next,enabled,title,desc,doingDesc,rewardText,visit_type,visit_keys_1,visit_open,visit_ids_1,visit_scripts_1,target_type,target_count,target_map,target_mon,reward_1_type,reward_1_name,reward_1_num,reward_1_bind,reward_2_type,reward_2_name,reward_2_num,reward_2_bind,reward_3_type,reward_3_name,reward_3_num,reward_3_bind,finish +1,2,TRUE,[]˽׳,˽׳ǰͼɱ5ֻ,ǰͼɱ,100򡢽5000,module,ShouChongOBJ,ShouChongOBJ_main,,,kill_mon,5,*,*,money,,1000000,0,money,,5000,0,,,,, +2,3,TRUE,[]ݷöɽ,ݷöɽǰͼɱ5ֻ,ǰͼɱ,100򡢽10000,npc,,,6,ת,kill_mon,5,*,*,money,,1000000,0,money,,10000,0,,,,, +3,4,TRUE,[]ݷ޴,ݷ޴ǰͼɱ5ֻ,ǰͼɱ,֮Ѫ*50֮*50,npc,,,5,޴,kill_mon,5,*,*,item,֮Ѫ,50,0,item,֮,50,0,,,,, +4,5,TRUE,[]ݷϽ,ݷϽ˺ǰͼɱ5ֻ,ǰͼɱ,100ǧʯ*5010000,npc,,,189,Ͻ«,kill_mon,5,*,*,money,,1000000,0,item,ǧʯ,50,0,money,,10000,0, +5,6,TRUE,[]˽ѧNPC,˽ѧNPCǰͼɱ5ֻ,ǰͼɱ,ʯ*50ؼ*1,npc,,,12,ѧ,kill_mon,5,*,*,item,ʯ,50,0,item,ؼ,1,0,,,,, +6,7,TRUE,[]ݷ,ݷӺǰͼɱ5ֻ,ǰͼɱ,100򡢽10000,npc,,,11,,kill_mon,5,*,*,money,,1000000,0,money,,10000,0,,,,, +7,8,TRUE,[]ǰװ,ǰװǰͼɱ5ֻ,ǰͼɱ,100򡢽10000,npc,,,10,װ,kill_mon,5,*,*,money,,1000000,0,money,,10000,0,,,,, +8,9,TRUE,[]ǰ,ǰǰͼɱ5ֻ,ǰͼɱ,ʯ*410000,npc,,,13,,kill_mon,5,*,*,item,ʯ,4,0,money,,10000,0,,,,, +9,,TRUE,[],ɡ,ɡ,,,,,,,,,,,,,,,,,,,,,,,TRUE