新增BOSS查询功能
This commit is contained in:
parent
93a79319c1
commit
bb41234337
16 changed files with 11604 additions and 11099 deletions
|
|
@ -1,71 +1,105 @@
|
|||
local config = {
|
||||
["邪恶之都"] = {
|
||||
[1] = {
|
||||
mapname = "邪恶之都",
|
||||
name = "迷失洞主",
|
||||
level = "S级",
|
||||
Appr = 651,
|
||||
},
|
||||
["恶魔深渊"] = {
|
||||
[2] = {
|
||||
mapname = "恶魔深渊",
|
||||
name = "铁血双锤",
|
||||
level = "S级",
|
||||
Appr = 20046,
|
||||
},
|
||||
["沃玛大厅"] = {
|
||||
[3] = {
|
||||
mapname = "沃玛大厅",
|
||||
name = "远古·沃玛魔祖",
|
||||
level = "S级",
|
||||
Appr = 3021,
|
||||
},
|
||||
["归墟神殿"] = {
|
||||
[4] = {
|
||||
mapname = "归墟神殿",
|
||||
name = "天雷魔君",
|
||||
level = "S级",
|
||||
Appr = 20043,
|
||||
},
|
||||
["祖玛大厅"] = {
|
||||
[5] = {
|
||||
mapname = "祖玛大厅",
|
||||
name = "洪荒·祖玛教皇",
|
||||
level = "S级",
|
||||
Appr = 1226,
|
||||
},
|
||||
["玛法禁地"] = {
|
||||
[6] = {
|
||||
mapname = "玛法禁地",
|
||||
name = "远古教皇",
|
||||
level = "S级",
|
||||
Appr = 20072,
|
||||
},
|
||||
["封魔殿"] = {
|
||||
[7] = {
|
||||
mapname = "封魔殿",
|
||||
name = "虹魔老祖",
|
||||
level = "S级",
|
||||
Appr = 3033,
|
||||
},
|
||||
["般若神殿"] = {
|
||||
[8] = {
|
||||
mapname = "般若神殿",
|
||||
name = "不灭君主",
|
||||
level = "S级",
|
||||
Appr = 20073,
|
||||
},
|
||||
["赤月祭坛"] = {
|
||||
[9] = {
|
||||
mapname = "赤月祭坛",
|
||||
name = "双头老爹",
|
||||
level = "S级",
|
||||
Appr = 20089,
|
||||
},
|
||||
["洞天秘境"] = {
|
||||
[10] = {
|
||||
mapname = "洞天秘境",
|
||||
name = "狂暴·风沙之主",
|
||||
level = "S级",
|
||||
Appr = 20050,
|
||||
},
|
||||
["奴隶之家"] = {
|
||||
[11] = {
|
||||
mapname = "奴隶之家",
|
||||
name = "奴隶统帅",
|
||||
level = "S级",
|
||||
Appr = 20029,
|
||||
},
|
||||
["阴曹地府"] = {
|
||||
[12] = {
|
||||
mapname = "阴曹地府",
|
||||
name = "孟婆",
|
||||
level = "S级",
|
||||
Appr = 20002,
|
||||
},
|
||||
["仙岛秘境"] = {
|
||||
[13] = {
|
||||
mapname = "仙岛秘境",
|
||||
name = "七彩神龙",
|
||||
level = "S级",
|
||||
Appr = 2020,
|
||||
},
|
||||
["狼烟梦境"] = {
|
||||
[14] = {
|
||||
mapname = "狼烟梦境",
|
||||
name = "雷帝",
|
||||
level = "S级",
|
||||
Appr = 20139,
|
||||
},
|
||||
["狐月秘境"] = {
|
||||
[15] = {
|
||||
mapname = "狐月秘境",
|
||||
name = "狐月天珠",
|
||||
level = "S级",
|
||||
Appr = 327,
|
||||
},
|
||||
["狐月神殿"] = {
|
||||
[16] = {
|
||||
mapname = "狐月神殿",
|
||||
name = "齐天至尊",
|
||||
level = "S级",
|
||||
Appr = 20136,
|
||||
},
|
||||
["先天秘境"] = {
|
||||
[17] = {
|
||||
mapname = "先天秘境",
|
||||
name = "迷宫之主",
|
||||
level = "S级",
|
||||
Appr = 20012,
|
||||
},
|
||||
}
|
||||
return config
|
||||
|
|
@ -1,4 +1,13 @@
|
|||
---* 全局定时器
|
||||
RebotOBJ.timeExCfg = {
|
||||
-- BOSS查询缓存刷新(每60秒)
|
||||
[99] = {
|
||||
time = 60000,
|
||||
func = function()
|
||||
BOSSqueryOBJ:reloadBossCache()
|
||||
end,
|
||||
},
|
||||
}
|
||||
-- RebotOBJ.timeExCfg = {
|
||||
-- -- [1] = {
|
||||
-- -- time = 18000,
|
||||
|
|
|
|||
103
Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/BOSS查询.lua
Normal file
103
Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/BOSS查询.lua
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
-- BOSS查询模块
|
||||
-- 负责:定时缓存BOSS存活状态 + 响应客户端查询请求
|
||||
BOSSqueryOBJ = Up_BaseClass:new()
|
||||
|
||||
BOSSqueryOBJ._name = "BOSSqueryOBJ"
|
||||
|
||||
-- BOSS存活状态缓存
|
||||
BOSSqueryOBJ.bossCache = {}
|
||||
|
||||
-- 配置文件
|
||||
BOSSqueryOBJ.cfg = Func.require("cfg_BOSS查询")
|
||||
|
||||
---* 刷新BOSS缓存(由全局定时器每60秒调用)
|
||||
function BOSSqueryOBJ:reloadBossCache()
|
||||
local cache = {}
|
||||
|
||||
for _, info in ipairs(self.cfg) do
|
||||
-- mapbossinfo 返回格式: {[1] = "怪物名#血量%#复活倒计时秒#X#Y#未知"}
|
||||
-- 例: "奴隶统帅#0#10687#100#99#无" → HP=0(死亡), 10687秒后复活
|
||||
-- 例: "洪荒·祖玛教皇#100#0#20#22#无" → HP=100(存活)
|
||||
local monStatus = mapbossinfo(info.mapname, info.name, 0, 0)
|
||||
|
||||
local alive = false
|
||||
local respawnTime = 0
|
||||
LOGDump(monStatus,info.name)
|
||||
|
||||
|
||||
if monStatus and type(monStatus) == "table" then
|
||||
for _, v in pairs(monStatus) do
|
||||
if type(v) == "string" and v ~= "" then
|
||||
local parts = Func.splitString(v, "#")
|
||||
|
||||
-- parts[1]=怪物名, parts[2]=血量百分比, parts[3]=复活倒计时秒
|
||||
local hpPercent = tonumber(parts[2]) or 0
|
||||
|
||||
if hpPercent > 0 then
|
||||
alive = true
|
||||
end
|
||||
respawnTime = tonumber(parts[3]) or 0
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
table.insert(cache, {
|
||||
map = info.mapname,
|
||||
name = info.name,
|
||||
level = info.level or "S级",
|
||||
alive = alive,
|
||||
reviveStamp = (not alive and respawnTime > 0) and (os.time() + respawnTime) or 0,
|
||||
appr = info.Appr or 0,
|
||||
})
|
||||
end
|
||||
|
||||
-- -- 存活BOSS置顶
|
||||
-- table.sort(cache, function(a, b)
|
||||
-- if a.alive ~= b.alive then
|
||||
-- return a.alive -- true在前
|
||||
-- end
|
||||
-- return false
|
||||
-- end)
|
||||
|
||||
self.bossCache = cache
|
||||
end
|
||||
|
||||
|
||||
|
||||
---* 获取存活BOSS数量
|
||||
function BOSSqueryOBJ:getAliveCount()
|
||||
local count = 0
|
||||
for _, v in ipairs(self.bossCache) do
|
||||
if v.alive then
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
return count
|
||||
end
|
||||
|
||||
|
||||
BOSSqueryOBJ:reloadBossCache()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---* 客户端请求入口(由 Message.dispatch 自动调用)
|
||||
---@param actor any 玩家对象
|
||||
function BOSSqueryOBJ:main(actor)
|
||||
-- 首次调用时缓存可能为空,立即刷新一次
|
||||
if not self.bossCache or #self.bossCache == 0 then
|
||||
self:reloadBossCache()
|
||||
end
|
||||
|
||||
-- 客户端用 SL:Get_SERVER_TIME() 与 reviveStamp 自行计算剩余倒计时
|
||||
Message:SubLink(actor, self._name .. "_main", {cfg = self.bossCache})
|
||||
end
|
||||
|
||||
-- 允许客户端调用的方法白名单(安全校验)
|
||||
BOSSqueryOBJ.allowFunc = {"main"}
|
||||
|
||||
|
||||
|
||||
return BOSSqueryOBJ
|
||||
66
client/dev/GUIExport/game/Tongyong/BOSSqueryUI.lua
Normal file
66
client/dev/GUIExport/game/Tongyong/BOSSqueryUI.lua
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
local ui = {}
|
||||
local _V = function(...) return SL:GetMetaValue(...) end
|
||||
local FUNCQUEUE = {}
|
||||
local TAGOBJ = {}
|
||||
|
||||
function ui.init(parent, __data__, __update__)
|
||||
if __update__ then return ui.update(__data__) end
|
||||
-- Create Layer
|
||||
local Layer = GUI:Node_Create(parent, "Layer", 0, 0)
|
||||
GUI:setTag(Layer, -1)
|
||||
|
||||
-- Create bg_close
|
||||
local bg_close = GUI:Layout_Create(Layer, "bg_close", 0, 0, 0, 0, false)
|
||||
GUI:Layout_setBackGroundColorType(bg_close, 1)
|
||||
GUI:Layout_setBackGroundColor(bg_close, "#000000")
|
||||
GUI:Layout_setBackGroundColorOpacity(bg_close, 0)
|
||||
GUI:setAnchorPoint(bg_close, 0.00, 0.00)
|
||||
GUI:setTouchEnabled(bg_close, true)
|
||||
GUI:setTag(bg_close, -1)
|
||||
|
||||
-- Create nd_root
|
||||
local nd_root = GUI:Node_Create(Layer, "nd_root", 0, 0)
|
||||
GUI:setTag(nd_root, 670)
|
||||
TAGOBJ["670"] = nd_root
|
||||
|
||||
-- Create img_bg
|
||||
local img_bg = GUI:Image_Create(nd_root, "img_bg", 0, 0, "res/custom/43/bg.png")
|
||||
GUI:setChineseName(img_bg, "背景图片")
|
||||
GUI:setAnchorPoint(img_bg, 0.50, 0.50)
|
||||
GUI:setTouchEnabled(img_bg, true)
|
||||
GUI:setTag(img_bg, -1)
|
||||
|
||||
-- Create btn_close
|
||||
local btn_close = GUI:Button_Create(img_bg, "btn_close", 812, 496, "res/public/1900000510.png")
|
||||
GUI:Button_loadTexturePressed(btn_close, "res/public/1900000511.png")
|
||||
GUI:Button_setTitleText(btn_close, [[]])
|
||||
GUI:Button_setTitleColor(btn_close, "#ffffff")
|
||||
GUI:Button_setTitleFontSize(btn_close, 16)
|
||||
GUI:Button_titleEnableOutline(btn_close, "#000000", 1)
|
||||
GUI:setAnchorPoint(btn_close, 0.50, 0.50)
|
||||
GUI:setTouchEnabled(btn_close, true)
|
||||
GUI:setTag(btn_close, -1)
|
||||
|
||||
-- Create tableView
|
||||
local tableView = GUI:TableView_Create(img_bg, "tableView", 54, 42, 500, 390, 1, 498, 56, 12)
|
||||
GUI:setAnchorPoint(tableView, 0.00, 0.00)
|
||||
GUI:setTouchEnabled(tableView, true)
|
||||
GUI:setTag(tableView, 0)
|
||||
|
||||
-- Create boss_model_node
|
||||
local boss_model_node = GUI:Node_Create(img_bg, "boss_model_node", 568, 100)
|
||||
GUI:setContentSize(boss_model_node, 200, 280)
|
||||
GUI:setAnchorPoint(boss_model_node, 0.00, 0.00)
|
||||
GUI:setTag(boss_model_node, -1)
|
||||
|
||||
ui.update(__data__)
|
||||
return Layer
|
||||
end
|
||||
|
||||
function ui.update(data)
|
||||
for _, func in pairs(FUNCQUEUE) do
|
||||
if func then func(data) end
|
||||
end
|
||||
end
|
||||
|
||||
return ui
|
||||
1222
client/dev/GUIExport/main/main_property_win32.lua
Normal file
1222
client/dev/GUIExport/main/main_property_win32.lua
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
230
client/dev/GUILayout/game/tongyong/BOSSqueryOBJ.lua
Normal file
230
client/dev/GUILayout/game/tongyong/BOSSqueryOBJ.lua
Normal file
|
|
@ -0,0 +1,230 @@
|
|||
BOSSqueryOBJ = Up_BaseClassOBJ:new()
|
||||
|
||||
BOSSqueryOBJ.__cname = "BOSSqueryOBJ"
|
||||
|
||||
-- UI导出文件路径
|
||||
BOSSqueryOBJ.UIfile = "game/Tongyong/BOSSqueryUI"
|
||||
|
||||
-- 数据
|
||||
BOSSqueryOBJ.cfg = {}
|
||||
|
||||
---* 窗口创建入口
|
||||
function BOSSqueryOBJ:main(arg1, arg2, arg3, data)
|
||||
-- 防止重复打开
|
||||
if GUI:Win_IsNotNull(self.__cname) then
|
||||
GUI:Win_Close(self.__cname)
|
||||
end
|
||||
|
||||
local parent = GUI:Win_Create(self.__cname, 0, 0, 0, 0, false, false, true, false)
|
||||
if not parent then
|
||||
return false
|
||||
end
|
||||
|
||||
-- 加载UI导出文件
|
||||
GUI:LoadExport(parent, self.UIfile)
|
||||
|
||||
self._parent = parent
|
||||
self.ui = GUI:ui_delegate(parent)
|
||||
|
||||
-- 窗口居中
|
||||
ssrUIManager:OpenAlgin(self)
|
||||
|
||||
-- 背景图点击关闭
|
||||
GUI:addOnClickEvent(self.ui.bg_close, function()
|
||||
GUI:Win_Close(self._parent)
|
||||
end)
|
||||
|
||||
-- 关闭按钮
|
||||
GUI:addOnClickEvent(self.ui.btn_close, function()
|
||||
GUI:Win_Close(self._parent)
|
||||
end)
|
||||
|
||||
-- 绑定事件
|
||||
self:EventBind()
|
||||
|
||||
-- 接收服务端数据
|
||||
if data and data.cfg then
|
||||
self.cfg = data.cfg
|
||||
end
|
||||
|
||||
-- 创建 TableView(在img_bg上,与Title下方对齐)
|
||||
self.dataList = {}
|
||||
self:CreateTableView()
|
||||
|
||||
-- 构建数据并刷新
|
||||
self:buildDataList()
|
||||
if self.ui.tableView then
|
||||
GUI:TableView_reloadData(self.ui.tableView)
|
||||
end
|
||||
end
|
||||
|
||||
---* 创建 TableView
|
||||
function BOSSqueryOBJ:CreateTableView()
|
||||
-- TableView 已在 UI 文件中创建,此处只配置回调
|
||||
|
||||
-- 设置行数
|
||||
GUI:TableView_setTableViewCellsNumHandler(self.ui.tableView, function()
|
||||
return self.dataList and #self.dataList or 0
|
||||
end)
|
||||
|
||||
-- cell创建回调
|
||||
GUI:TableView_setCellCreateEvent(self.ui.tableView, function(cellParent, idx)
|
||||
local realIdx = (tonumber(idx) or 0)
|
||||
local item = self.dataList[realIdx]
|
||||
if not item then
|
||||
return
|
||||
end
|
||||
self:buildCell(cellParent, item)
|
||||
end)
|
||||
end
|
||||
|
||||
---* 构建数据列表
|
||||
function BOSSqueryOBJ:buildDataList()
|
||||
local cfg = self.cfg or {}
|
||||
self.dataList = {}
|
||||
|
||||
for i, v in ipairs(cfg) do
|
||||
-- 根据绝对复活时间戳计算剩余秒数
|
||||
local respawnTime = 0
|
||||
local reviveStamp = v.reviveStamp or 0
|
||||
if not v.alive and reviveStamp > 0 then
|
||||
local now = SL:GetValue("SERVER_TIME") or 0
|
||||
respawnTime = math.max(0, reviveStamp - now)
|
||||
end
|
||||
local item = {
|
||||
idx = i,
|
||||
map = v.map or "",
|
||||
name = v.name or "",
|
||||
level = v.level or "S级",
|
||||
alive = v.alive or false,
|
||||
respawnTime = respawnTime,
|
||||
appr = v.appr or 0,
|
||||
}
|
||||
table.insert(self.dataList, item)
|
||||
end
|
||||
end
|
||||
|
||||
---* 构建每行UI
|
||||
function BOSSqueryOBJ:buildCell(cellParent, item)
|
||||
-- cellParent会被复用,先清空
|
||||
GUI:removeAllChildren(cellParent)
|
||||
|
||||
-- 行背景图片 (cell宽498, 高56, 垂直居中 y=28)
|
||||
local cell_bg = GUI:Image_Create(cellParent, "cell_bg_" .. item.idx, 0, 0, "res/custom/43/3.png")
|
||||
GUI:setTouchEnabled(cell_bg, true)
|
||||
GUI:setSwallowTouches(cell_bg, false)
|
||||
|
||||
|
||||
-- cell点击事件
|
||||
GUI:addOnClickEvent(cell_bg, function()
|
||||
self.selectedIdx = item.idx
|
||||
GUI:TableView_reloadDataEx(self.ui.tableView)
|
||||
self:showBossModel(item)
|
||||
end)
|
||||
|
||||
-- 地图名称
|
||||
local text_map = GUI:Text_Create(cell_bg, "text_map_" .. item.idx, 64, 28, 15, "#CCAA66", item.map)
|
||||
GUI:setAnchorPoint(text_map, 0.50, 0.50)
|
||||
|
||||
-- BOSS名称
|
||||
local text_name = GUI:Text_Create(cell_bg, "text_name_" .. item.idx, 190, 28, 16, "#FFFFFF", item.name)
|
||||
GUI:setAnchorPoint(text_name, 0.50, 0.50)
|
||||
GUI:Text_enableOutline(text_name, "#000000", 1)
|
||||
|
||||
-- 等级标签
|
||||
local levelColor = "#FF4444"
|
||||
if item.level == "S级" then
|
||||
levelColor = "#FF4444"
|
||||
elseif item.level == "A级" then
|
||||
levelColor = "#FF8800"
|
||||
elseif item.level == "B级" then
|
||||
levelColor = "#FFCC00"
|
||||
end
|
||||
local text_level = GUI:Text_Create(cell_bg, "text_level_" .. item.idx, 380, 28, 15, levelColor, item.level)
|
||||
GUI:setAnchorPoint(text_level, 0.00, 0.50)
|
||||
GUI:Text_enableOutline(text_level, "#000000", 1)
|
||||
|
||||
|
||||
-- 刷新状态
|
||||
local refreshStr, refreshColor
|
||||
if item.alive then
|
||||
refreshStr = "已刷新"
|
||||
refreshColor = "#33FF33"
|
||||
else
|
||||
refreshStr = "未刷新"
|
||||
refreshColor = "#FF4444"
|
||||
end
|
||||
local text_refresh = GUI:Text_Create(cell_bg, "text_refresh_" .. item.idx, 420, 28, 15, refreshColor, refreshStr)
|
||||
GUI:setAnchorPoint(text_refresh, 0.00, 0.50)
|
||||
GUI:Text_enableOutline(text_refresh, "#000000", 1)
|
||||
|
||||
-- 倒计时
|
||||
local text_countdown = GUI:Text_Create(cell_bg, "text_countdown_" .. item.idx, 276, 28, 15, "#FFCC00", "")
|
||||
GUI:setAnchorPoint(text_countdown, 0.00, 0.50)
|
||||
GUI:Text_enableOutline(text_countdown, "#000000", 1)
|
||||
if not item.alive then
|
||||
local respawn = item.respawnTime or 0
|
||||
if respawn > 0 then
|
||||
GUI:Text_COUNTDOWN(text_countdown, respawn, nil, 1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 选中高亮覆盖图
|
||||
if item.idx == self.selectedIdx then
|
||||
GUI:Image_Create(cell_bg, "cell_select_" .. item.idx, 0, 0, "res/custom/43/4.png")
|
||||
end
|
||||
|
||||
return cell_bg
|
||||
end
|
||||
|
||||
---* 展示BOSS模型
|
||||
function BOSSqueryOBJ:showBossModel(item)
|
||||
if not self.ui.boss_model_node then
|
||||
return
|
||||
end
|
||||
|
||||
-- 清除旧模型
|
||||
GUI:removeAllChildren(self.ui.boss_model_node)
|
||||
|
||||
local appr = item.appr or 0
|
||||
if appr <= 0 then
|
||||
return
|
||||
end
|
||||
|
||||
-- 使用 Effect_Create 展示怪物模型 (effecttype=2=怪物)
|
||||
local model = GUI:Effect_Create(
|
||||
self.ui.boss_model_node,
|
||||
"boss_model",
|
||||
100, -- x (200宽节点居中)
|
||||
140, -- y (280高节点居中)
|
||||
2, -- effecttype: 怪物
|
||||
appr, -- effectid: 怪物appr
|
||||
0, -- sex
|
||||
0, -- act: 待机
|
||||
3, -- dir
|
||||
1 -- speed
|
||||
)
|
||||
GUI:setScale(model, 1.0)
|
||||
end
|
||||
|
||||
---* 事件绑定
|
||||
function BOSSqueryOBJ:EventBind()
|
||||
--关闭窗口
|
||||
SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName)
|
||||
self:OnClose(widgetName)
|
||||
end)
|
||||
end
|
||||
|
||||
--关闭窗口
|
||||
function BOSSqueryOBJ:OnClose(widgetName)
|
||||
if widgetName == self.__cname then
|
||||
self:UnRegisterEvent()
|
||||
end
|
||||
end
|
||||
|
||||
---* 注销事件
|
||||
function BOSSqueryOBJ:UnRegisterEvent()
|
||||
SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname)
|
||||
end
|
||||
|
||||
return BOSSqueryOBJ
|
||||
|
|
@ -129,8 +129,14 @@ function MainProperty.main()
|
|||
GUI:addOnClickEvent(MainProperty._ui["jiaoyi_btn"], function()
|
||||
SL:JumpTo(ssrConstCfg.Auction)
|
||||
end)
|
||||
|
||||
-- BOSS查询
|
||||
GUI:addOnClickEvent(MainProperty._ui["bossquery"], function()
|
||||
ssrMessage:SubLink("BOSSqueryOBJ_main")
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
------------------------------ 快捷栏 -------------------------------------------------------
|
||||
-- 初始化显示的快捷栏
|
||||
function MainProperty.InitQuickUseItems()
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ local ON_OFF_zuijiu = false
|
|||
local DROP_TOTAL_TYPE_ID = 99
|
||||
local FAKE_DROP_TYPE_ID = 77
|
||||
|
||||
local PCShowSelectChannels = SL:GetValue("GAME_DATA","PCShowSelectChannels")
|
||||
local PCShowSelectChannels = SL:GetValue("GAME_DATA", "PCShowSelectChannels")
|
||||
|
||||
local CHANNEL = GUIDefine.ChatChannel
|
||||
|
||||
|
|
@ -28,7 +28,8 @@ local CHANNEL_NAME = {
|
|||
}
|
||||
|
||||
local PKType = GUIDefine.PKModeType
|
||||
MainProperty._showPKTab = {PKType.HAM_ALL, PKType.HAM_PEACE, PKType.HAM_GROUP, PKType.HAM_GUILD, PKType.HAM_SHANE, PKType.HAM_NATION, PKType.HAM_CAMP}
|
||||
MainProperty._showPKTab = { PKType.HAM_ALL, PKType.HAM_PEACE, PKType.HAM_GROUP, PKType.HAM_GUILD, PKType
|
||||
.HAM_SHANE, PKType.HAM_NATION, PKType.HAM_CAMP }
|
||||
MainProperty._pkModeStrList = {
|
||||
[PKType.HAM_ALL] = "[全体攻击模式]",
|
||||
[PKType.HAM_PEACE] = "[和平攻击模式]",
|
||||
|
|
@ -41,15 +42,15 @@ MainProperty._pkModeStrList = {
|
|||
}
|
||||
|
||||
MainProperty._channelBtnTipList = {
|
||||
[0] = {"综合", CHANNEL.COMMON},
|
||||
[1] = {"系统", CHANNEL.SYSTEM},
|
||||
[2] = {"喊话", CHANNEL.SHOUT},
|
||||
[3] = {"私聊", CHANNEL.PRIVATE},
|
||||
[4] = {"行会", CHANNEL.GUILD},
|
||||
[5] = {"组队", CHANNEL.TEAM},
|
||||
[6] = {"附近", CHANNEL.NEAR},
|
||||
[7] = {"世界", CHANNEL.WORLD},
|
||||
[8] = {"国家", CHANNEL.NATION}
|
||||
[0] = { "综合", CHANNEL.COMMON },
|
||||
[1] = { "系统", CHANNEL.SYSTEM },
|
||||
[2] = { "喊话", CHANNEL.SHOUT },
|
||||
[3] = { "私聊", CHANNEL.PRIVATE },
|
||||
[4] = { "行会", CHANNEL.GUILD },
|
||||
[5] = { "组队", CHANNEL.TEAM },
|
||||
[6] = { "附近", CHANNEL.NEAR },
|
||||
[7] = { "世界", CHANNEL.WORLD },
|
||||
[8] = { "国家", CHANNEL.NATION }
|
||||
}
|
||||
|
||||
local DarkState = GUIDefine.DarkState or {}
|
||||
|
|
@ -60,16 +61,16 @@ MainProperty._darkImgList = {
|
|||
[DarkState.EVENING or 3] = "00000047.png" -- 傍晚
|
||||
}
|
||||
|
||||
MainProperty._mhpPrefixList = {"hp_", "mp_", "fhp_"}
|
||||
MainProperty._mhpTagList = {"HPSFX", "MPSFX", "FHPSFX"}
|
||||
MainProperty._mhpPrefixList = { "hp_", "mp_", "fhp_" }
|
||||
MainProperty._mhpTagList = { "HPSFX", "MPSFX", "FHPSFX" }
|
||||
|
||||
MainProperty._quitTimeTips = {
|
||||
[1] = "<outline size='1'><font color = '#00ff00'>%s秒后将返回选角界面</font></outline>",
|
||||
[2] = "<outline size='1'><font color = '#ff0000'>%s秒后将退出游戏</font></outline>",
|
||||
}
|
||||
|
||||
local reinAddIcons = {"1900011003.png", "1900011007.png"}
|
||||
local comboShowIcons = {"01121.png", "01122.png"}
|
||||
local reinAddIcons = { "1900011003.png", "1900011007.png" }
|
||||
local comboShowIcons = { "01121.png", "01122.png" }
|
||||
|
||||
MainProperty._ChatItemWidth = 500
|
||||
|
||||
|
|
@ -101,7 +102,8 @@ function MainProperty.Init()
|
|||
local values = GUIDefineEx.ChatContentInterval
|
||||
MainProperty._listInterval, MainProperty._richVspace = values.listInterval, values.richVspace or 0
|
||||
|
||||
MainProperty._NGShow = tonumber(SL:GetValue("GAME_DATA", "OpenNGUI")) == 1 and SL:GetValue("IS_LEARNED_INTERNAL")
|
||||
MainProperty._NGShow = tonumber(SL:GetValue("GAME_DATA", "OpenNGUI")) == 1 and
|
||||
SL:GetValue("IS_LEARNED_INTERNAL")
|
||||
MainProperty._angerHei = GUI:getContentSize(MainProperty._ui["Panel_loadBar"]).height
|
||||
end
|
||||
|
||||
|
|
@ -141,6 +143,12 @@ function MainProperty.main()
|
|||
end
|
||||
end)
|
||||
|
||||
-- BOSS查询
|
||||
GUI:addOnClickEvent(MainProperty._ui["bossquery"], function()
|
||||
ssrMessage:SubLink("BOSSqueryOBJ_main")
|
||||
SL:PlayBtnClickAudio()
|
||||
end)
|
||||
|
||||
MainProperty.OnRefreshPropertyShow()
|
||||
MainProperty.OnUpdatePlayerPosition()
|
||||
MainProperty.OnDarkStateChange()
|
||||
|
|
@ -153,7 +161,11 @@ function MainProperty.main()
|
|||
MainProperty.TargetData = nil --电脑PC端私聊数据
|
||||
|
||||
GUI:RefPosByParent(MainProperty._root)
|
||||
SL:AttachTXTSUI({root = MainProperty._ui["Panel_chat_funcs"], index = SLDefine.SUIComponentTable.PCMainPropertyFuncs})
|
||||
SL:AttachTXTSUI({
|
||||
root = MainProperty._ui["Panel_chat_funcs"],
|
||||
index = SLDefine.SUIComponentTable
|
||||
.PCMainPropertyFuncs
|
||||
})
|
||||
end
|
||||
|
||||
function MainProperty.InitDropData()
|
||||
|
|
@ -167,7 +179,7 @@ function MainProperty.InitDropData()
|
|||
if fakeDrop and string.len(fakeDrop) > 0 then
|
||||
local param = string.split(fakeDrop, "#")
|
||||
if param[2] and tonumber(param[2]) == 1 and not ChatData.IsCloseFakeDrop() then
|
||||
table.insert(MainProperty._dropTypeList, {id = FAKE_DROP_TYPE_ID, name = param[1]})
|
||||
table.insert(MainProperty._dropTypeList, { id = FAKE_DROP_TYPE_ID, name = param[1] })
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -177,7 +189,7 @@ function MainProperty.InitDropData()
|
|||
for i, v in ipairs(list) do
|
||||
local param1 = string.split(v, "#")
|
||||
if param1[1] and tonumber(param1[1]) == 1 then
|
||||
table.insert(MainProperty._dropTypeList, {id = tonumber(param1[2]), name = param1[3]})
|
||||
table.insert(MainProperty._dropTypeList, { id = tonumber(param1[2]), name = param1[3] })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -189,7 +201,7 @@ function MainProperty.InitCustomPKMode()
|
|||
for _, modeId in ipairs(typeList) do
|
||||
local config = SL:GetValue("RELATION_TYPE_CONFIG", modeId)
|
||||
table.insert(MainProperty._showPKTab, modeId)
|
||||
MainProperty._pkModeStrList[modeId] = string.format("[%s攻击模式]" , config and config.mode_name or "")
|
||||
MainProperty._pkModeStrList[modeId] = string.format("[%s攻击模式]", config and config.mode_name or "")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -208,7 +220,8 @@ function MainProperty.InitAdapet()
|
|||
local sizeW = PCShowSelectChannels and GUI:getContentSize(MainProperty._ui["Button_channel"]).width or 0
|
||||
local TextField_input = MainProperty._ui["TextField_input"]
|
||||
GUI:setPositionX(TextField_input, 14 + sizeW)
|
||||
GUI:setContentSize(TextField_input, MainProperty._ChatItemWidth - sizeW, GUI:getContentSize(TextField_input).height)
|
||||
GUI:setContentSize(TextField_input, MainProperty._ChatItemWidth - sizeW,
|
||||
GUI:getContentSize(TextField_input).height)
|
||||
|
||||
return
|
||||
end
|
||||
|
|
@ -257,11 +270,11 @@ end
|
|||
|
||||
function MainProperty.InitHPPanel()
|
||||
local iconPaths = {
|
||||
[CHANNEL.SYSTEM] = {"190001100.png", "190001101.png"}, -- 系统频道
|
||||
[CHANNEL.SHOUT] = {"190001108.png", "190001109.png"}, -- 喊话
|
||||
[CHANNEL.PRIVATE] = {"190001104.png", "190001105.png"}, -- 私聊
|
||||
[CHANNEL.GUILD] = {"190001106.png", "190001107.png"}, -- 行会
|
||||
[CHANNEL.WORLD] = {"190001102.png", "190001103.png"}, -- 世界
|
||||
[CHANNEL.SYSTEM] = { "190001100.png", "190001101.png" }, -- 系统频道
|
||||
[CHANNEL.SHOUT] = { "190001108.png", "190001109.png" }, -- 喊话
|
||||
[CHANNEL.PRIVATE] = { "190001104.png", "190001105.png" }, -- 私聊
|
||||
[CHANNEL.GUILD] = { "190001106.png", "190001107.png" }, -- 行会
|
||||
[CHANNEL.WORLD] = { "190001102.png", "190001103.png" }, -- 世界
|
||||
}
|
||||
|
||||
local function mainSetReceiving(channel, sender)
|
||||
|
|
@ -303,26 +316,30 @@ function MainProperty.InitHPPanel()
|
|||
mainSetReceiving(CHANNEL.SHOUT, sender)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
-- 自动喊话开关
|
||||
|
||||
-- 鼠标移入Tips
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_1"], "允许所有系统信息", {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_2"], "允许所有传音信息", {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_3"], "允许所有私聊信息", {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_4"], "允许行会聊天信息", {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_5"], "允许所有喊话消息", {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_6"], "特殊命令", {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_7"], "自动喊话开关", {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_1"], "允许所有系统信息", { x = -10, y = -20 }, { x = 1, y = 0.5 })
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_2"], "允许所有传音信息", { x = -10, y = -20 }, { x = 1, y = 0.5 })
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_3"], "允许所有私聊信息", { x = -10, y = -20 }, { x = 1, y = 0.5 })
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_4"], "允许行会聊天信息", { x = -10, y = -20 }, { x = 1, y = 0.5 })
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_5"], "允许所有喊话消息", { x = -10, y = -20 }, { x = 1, y = 0.5 })
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_6"], "特殊命令", { x = -10, y = -20 }, { x = 1, y = 0.5 })
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_chat_7"], "自动喊话开关", { x = -10, y = -20 }, { x = 1, y = 0.5 })
|
||||
|
||||
if tonumber(SL:GetValue("GAME_DATA", "OpenNGUI")) == 1 then
|
||||
GUI:addMouseOverTips(MainProperty._ui["Panel_dz"], function ()
|
||||
GUI:addMouseOverTips(MainProperty._ui["Panel_dz"], function()
|
||||
local curDZValue = SL:GetValue("CUR_ABIL_BY_ID", GUIDefine.AttTypeTable.Internal_DZValue) or 0
|
||||
local maxDZValue = SL:GetValue("MAX_ABIL_BY_ID", GUIDefine.AttTypeTable.Internal_DZValue) or 0
|
||||
return string.format("斗转星移值: %s/%s", curDZValue, maxDZValue)
|
||||
end, {x = 0, y = 0}, {x = 0.5, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Panel_zj"], string.format("醉酒值: %s%%", 0), {x = 0, y = 0}, {x = 0.5, y = 0.5})
|
||||
end, { x = 0, y = 0 }, { x = 0.5, y = 0.5 })
|
||||
GUI:addMouseOverTips(MainProperty._ui["Panel_zj"], string.format("醉酒值: %s%%", 0), { x = 0, y = 0 },
|
||||
{ x = 0.5, y = 0.5 })
|
||||
end
|
||||
|
||||
|
||||
MainProperty.InitNGShow()
|
||||
end
|
||||
|
||||
|
|
@ -365,7 +382,7 @@ function MainProperty.InitAutoShout()
|
|||
SL:PlayBtnClickAudio()
|
||||
|
||||
MainProperty.OnRefreshAutoShout()
|
||||
end, {channel_id = channel})
|
||||
end, { channel_id = channel })
|
||||
end
|
||||
|
||||
GUI:addOnClickEvent(btnAutoShout, function(sender)
|
||||
|
|
@ -403,7 +420,15 @@ function MainProperty.OnRefreshAutoShout()
|
|||
return
|
||||
end
|
||||
|
||||
local sendData = {textType = GUIDefine.ChatTextType.NORMAL, msg = input, channel = channel, risk = 0, oriMsg = input, status = 0}
|
||||
local sendData = {
|
||||
textType = GUIDefine.ChatTextType.NORMAL,
|
||||
msg = input,
|
||||
channel = channel,
|
||||
risk = 0,
|
||||
oriMsg =
|
||||
input,
|
||||
status = 0
|
||||
}
|
||||
GUIFunction:SendChatMsg(sendData)
|
||||
end
|
||||
|
||||
|
|
@ -441,10 +466,13 @@ function MainProperty.InitNGShow()
|
|||
local pSize = GUI:getContentSize(MainProperty._ui["Panel_loadBar"])
|
||||
local curHeiPer = pSize.height / MainProperty._angerHei
|
||||
MainProperty._angerHei = 136
|
||||
GUI:setContentSize(MainProperty._ui["Image_laodBarbg"], GUI:getContentSize(MainProperty._ui["Image_laodBarbg"]).width, MainProperty._angerHei)
|
||||
GUI:setContentSize(MainProperty._ui["Image_laodBarbg"],
|
||||
GUI:getContentSize(MainProperty._ui["Image_laodBarbg"]).width, MainProperty._angerHei)
|
||||
GUI:setContentSize(MainProperty._ui["Panel_loadBar"], pSize.width, math.floor(MainProperty._angerHei * curHeiPer))
|
||||
GUI:setContentSize(MainProperty._ui["Image_loadbar1"], GUI:getContentSize(MainProperty._ui["Image_loadbar1"]).width, MainProperty._angerHei)
|
||||
GUI:setContentSize(MainProperty._ui["Image_loadbar2"], GUI:getContentSize(MainProperty._ui["Image_loadbar2"]).width, MainProperty._angerHei)
|
||||
GUI:setContentSize(MainProperty._ui["Image_loadbar1"],
|
||||
GUI:getContentSize(MainProperty._ui["Image_loadbar1"]).width, MainProperty._angerHei)
|
||||
GUI:setContentSize(MainProperty._ui["Image_loadbar2"],
|
||||
GUI:getContentSize(MainProperty._ui["Image_loadbar2"]).width, MainProperty._angerHei)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -459,7 +487,7 @@ function MainProperty.InitActPanel()
|
|||
GUI:delayTouchEnabled(sender)
|
||||
SL:RequestCallOrOutHero()
|
||||
end)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_herostate"], "召唤英雄", {x = -20, y = 0}, {x = 0.5, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_herostate"], "召唤英雄", { x = -20, y = 0 }, { x = 0.5, y = 0.5 })
|
||||
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_heroinfo"], function()
|
||||
if SL:GetValue("HERO_IS_ALIVE") then
|
||||
|
|
@ -471,7 +499,7 @@ function MainProperty.InitActPanel()
|
|||
end
|
||||
end
|
||||
end)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_heroinfo"], "英雄状态", {x = 0, y = 0}, {x = 0.5, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_heroinfo"], "英雄状态", { x = 0, y = 0 }, { x = 0.5, y = 0.5 })
|
||||
|
||||
GUI:delayTouchEnabled(MainProperty._ui["Button_herobag"], 0.5)
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_herobag"], function()
|
||||
|
|
@ -484,7 +512,7 @@ function MainProperty.InitActPanel()
|
|||
end
|
||||
end
|
||||
end)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_herobag"], "英雄包裹", {x = 20, y = 0}, {x = 0.5, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_herobag"], "英雄包裹", { x = 20, y = 0 }, { x = 0.5, y = 0.5 })
|
||||
else
|
||||
GUI:setVisible(MainProperty._ui["Image_laodBarbg"], false)
|
||||
GUI:setVisible(MainProperty._ui["Button_herostate"], false)
|
||||
|
|
@ -500,11 +528,11 @@ function MainProperty.InitActPanel()
|
|||
if isOpen and GUI:GetWindow(nil, UIConst.LAYERID.PlayerMainGUI) then
|
||||
UIOperator:CloseMyPlayerUI()
|
||||
else
|
||||
UIOperator:OpenMyPlayerUI({page = UIConst.LayerTable.PlayerEquip})
|
||||
UIOperator:OpenMyPlayerUI({ page = UIConst.LayerTable.PlayerEquip })
|
||||
end
|
||||
SL:PlayBtnClickAudio()
|
||||
end)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_role"], "状态信息(F10)", {x = 0, y = 0}, {x = 0.7, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_role"], "状态信息(F10)", { x = 0, y = 0 }, { x = 0.7, y = 0.5 })
|
||||
|
||||
-- 背包
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_bag"], function()
|
||||
|
|
@ -515,7 +543,7 @@ function MainProperty.InitActPanel()
|
|||
end
|
||||
SL:PlayBtnClickAudio()
|
||||
end)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_bag"], "包裹物品(F9)", {x = 0, y = 0}, {x = 0.7, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_bag"], "包裹物品(F9)", { x = 0, y = 0 }, { x = 0.7, y = 0.5 })
|
||||
|
||||
-- 技能
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_skill"], function()
|
||||
|
|
@ -523,11 +551,11 @@ function MainProperty.InitActPanel()
|
|||
if isOpen and GUI:GetWindow(nil, UIConst.LAYERID.PlayerMainGUI) then
|
||||
UIOperator:CloseMyPlayerUI()
|
||||
else
|
||||
UIOperator:OpenMyPlayerUI({page = UIConst.LayerTable.PlayerSkill})
|
||||
UIOperator:OpenMyPlayerUI({ page = UIConst.LayerTable.PlayerSkill })
|
||||
end
|
||||
SL:PlayBtnClickAudio()
|
||||
end)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_skill"], "技能信息(F11)", {x = 0, y = 0}, {x = 0.7, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_skill"], "技能信息(F11)", { x = 0, y = 0 }, { x = 0.7, y = 0.5 })
|
||||
|
||||
-- 音效
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_voice"], function()
|
||||
|
|
@ -538,7 +566,7 @@ function MainProperty.InitActPanel()
|
|||
SL:SetValue("SETTING_VALUE", SLDefine.SETTINGID.SETTING_IDX_EFFECTMUSIC, { enable and 0 or 100 })
|
||||
SL:PlayBtnClickAudio()
|
||||
end)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_voice"], "音效开关", {x = 0, y = 0}, {x = 0.7, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Button_voice"], "音效开关", { x = 0, y = 0 }, { x = 0.7, y = 0.5 })
|
||||
|
||||
-- 商店
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_store"], function()
|
||||
|
|
@ -574,7 +602,7 @@ function MainProperty.InitActPanel()
|
|||
SL:RequestChangePKMode(nextPKMode)
|
||||
end
|
||||
GUI:addOnClickEvent(MainProperty._ui["Text_pkmode"], changePKMode)
|
||||
GUI:addMouseOverTips(MainProperty._ui["Text_pkmode"], "点击切换", {x = 0, y = 0}, {x = 0.7, y = 0.5})
|
||||
GUI:addMouseOverTips(MainProperty._ui["Text_pkmode"], "点击切换", { x = 0, y = 0 }, { x = 0.7, y = 0.5 })
|
||||
|
||||
-- 时钟
|
||||
local function callback()
|
||||
|
|
@ -606,11 +634,11 @@ function MainProperty.InitActPanel()
|
|||
|
||||
GUI:addMouseOverTips(
|
||||
MainProperty._ui["Text_level"],
|
||||
function ()
|
||||
function()
|
||||
return string.format("当前等级:%s", SL:GetValue("LEVEL"))
|
||||
end,
|
||||
{x = 0, y = -20},
|
||||
{x = 0.1, y = 0.5}
|
||||
{ x = 0, y = -20 },
|
||||
{ x = 0.1, y = 0.5 }
|
||||
)
|
||||
GUI:addMouseOverTips(
|
||||
MainProperty._ui["LoadingBar_exp"],
|
||||
|
|
@ -620,8 +648,8 @@ function MainProperty.InitActPanel()
|
|||
local per = math.min(curExp / maxExp * 100, 100)
|
||||
return string.format("当前经验:%.2f%%", per)
|
||||
end,
|
||||
{x = 0, y = 0},
|
||||
{x = 0.3, y = 0.5}
|
||||
{ x = 0, y = 0 },
|
||||
{ x = 0.3, y = 0.5 }
|
||||
)
|
||||
GUI:addMouseOverTips(
|
||||
MainProperty._ui["LoadingBar_weight"],
|
||||
|
|
@ -630,8 +658,8 @@ function MainProperty.InitActPanel()
|
|||
local maxWeight = SL:GetValue("MAXBW")
|
||||
return string.format("包裹负重:%s/%s", curWeight, maxWeight)
|
||||
end,
|
||||
{x = 0, y = 0},
|
||||
{x = 0.3, y = 0.5}
|
||||
{ x = 0, y = 0 },
|
||||
{ x = 0.3, y = 0.5 }
|
||||
)
|
||||
end
|
||||
|
||||
|
|
@ -640,14 +668,14 @@ function MainProperty.InitChatInputHandler()
|
|||
local TextField_input = MainProperty._ui["TextField_input"]
|
||||
TextField_input._lastInput = ""
|
||||
|
||||
local touchEvent = function (sender, eventype)
|
||||
local touchEvent = function(sender, eventype)
|
||||
if eventype == 2 then
|
||||
GUI:TextInput_touchDownAction(TextField_input, 2)
|
||||
end
|
||||
end
|
||||
GUI:addOnTouchEvent(TextField_input, touchEvent)
|
||||
|
||||
local inputEvent = function (sender, eventType)
|
||||
local inputEvent = function(sender, eventType)
|
||||
if eventType == GUIDefine.TextInputEventType.SEND then
|
||||
if string.len(GUI:Text_getString(MainProperty._ui["TextField_input"])) > 0 then
|
||||
MainProperty.SendChatMsg()
|
||||
|
|
@ -665,17 +693,17 @@ function MainProperty.InitChatInputHandler()
|
|||
end
|
||||
|
||||
function MainProperty.InitKeyBoardEvent()
|
||||
GUI:addKeyboardEvent({"KEY_SHIFT", "KEY_1"}, function()
|
||||
GUI:addKeyboardEvent({ "KEY_SHIFT", "KEY_1" }, function()
|
||||
GUI:Text_setString(MainProperty._ui["TextField_input"], "!")
|
||||
GUI:TextInput_touchDownAction(MainProperty._ui["TextField_input"], 2)
|
||||
end)
|
||||
|
||||
GUI:addKeyboardEvent({"KEY_SHIFT", "KEY_2"}, function()
|
||||
GUI:addKeyboardEvent({ "KEY_SHIFT", "KEY_2" }, function()
|
||||
GUI:Text_setString(MainProperty._ui["TextField_input"], "@")
|
||||
GUI:TextInput_touchDownAction(MainProperty._ui["TextField_input"], 2)
|
||||
end)
|
||||
|
||||
GUI:addKeyboardEvent({"KEY_SHIFT", "KEY_3"}, function()
|
||||
GUI:addKeyboardEvent({ "KEY_SHIFT", "KEY_3" }, function()
|
||||
GUI:Text_setString(MainProperty._ui["TextField_input"], "#")
|
||||
GUI:TextInput_touchDownAction(MainProperty._ui["TextField_input"], 2)
|
||||
end)
|
||||
|
|
@ -687,27 +715,29 @@ function MainProperty.InitKeyBoardEvent()
|
|||
|
||||
-- control ↑
|
||||
local function callback()
|
||||
MainProperty._inputIndex = MainProperty._inputIndex > 1 and MainProperty._inputIndex - 1 or MainProperty._inputIndex
|
||||
MainProperty._inputIndex = MainProperty._inputIndex > 1 and MainProperty._inputIndex - 1 or
|
||||
MainProperty._inputIndex
|
||||
local input = MainProperty._inputCache[MainProperty._inputIndex]
|
||||
if not input then
|
||||
return false
|
||||
end
|
||||
GUI:Text_setString(MainProperty._ui["TextField_input"], input)
|
||||
end
|
||||
GUI:addKeyboardEvent({"KEY_CTRL", "KEY_UP_ARROW"}, callback)
|
||||
GUI:addKeyboardEvent({"KEY_RIGHT_CTRL", "KEY_UP_ARROW"}, callback)
|
||||
GUI:addKeyboardEvent({ "KEY_CTRL", "KEY_UP_ARROW" }, callback)
|
||||
GUI:addKeyboardEvent({ "KEY_RIGHT_CTRL", "KEY_UP_ARROW" }, callback)
|
||||
|
||||
-- control ↓
|
||||
local function callback()
|
||||
MainProperty._inputIndex = MainProperty._inputIndex < #MainProperty._inputCache and MainProperty._inputIndex + 1 or MainProperty._inputIndex
|
||||
MainProperty._inputIndex = MainProperty._inputIndex < #MainProperty._inputCache and MainProperty._inputIndex + 1 or
|
||||
MainProperty._inputIndex
|
||||
local input = MainProperty._inputCache[MainProperty._inputIndex]
|
||||
if not input then
|
||||
return false
|
||||
end
|
||||
GUI:Text_setString(MainProperty._ui["TextField_input"], input)
|
||||
end
|
||||
GUI:addKeyboardEvent({"KEY_CTRL", "KEY_DOWN_ARROW"}, callback)
|
||||
GUI:addKeyboardEvent({"KEY_RIGHT_CTRL", "KEY_DOWN_ARROW"}, callback)
|
||||
GUI:addKeyboardEvent({ "KEY_CTRL", "KEY_DOWN_ARROW" }, callback)
|
||||
GUI:addKeyboardEvent({ "KEY_RIGHT_CTRL", "KEY_DOWN_ARROW" }, callback)
|
||||
end
|
||||
|
||||
----------------------------- 聊天相关 -------------------------------------------------------
|
||||
|
|
@ -736,7 +766,8 @@ function MainProperty.InitChatPanel()
|
|||
GUI:ListView_addMouseScrollPercent(MainProperty._ui["ListView_chat"])
|
||||
|
||||
-- 频道切换开关开启
|
||||
local isOpen = SL:GetValue("GAME_DATA", "PCSwitchChannelShow") and SL:GetValue("GAME_DATA", "PCSwitchChannelShow") == 1
|
||||
local isOpen = SL:GetValue("GAME_DATA", "PCSwitchChannelShow") and
|
||||
SL:GetValue("GAME_DATA", "PCSwitchChannelShow") == 1
|
||||
GUI:setVisible(MainProperty._ui["Panel_channel"], isOpen)
|
||||
|
||||
local receiveChannel = ChatData.GetReceiveChannel()
|
||||
|
|
@ -751,13 +782,14 @@ function MainProperty.InitChatPanel()
|
|||
MainProperty.UpdateReceiving()
|
||||
end)
|
||||
if isOpen then
|
||||
GUI:addMouseOverTips(btnChannel, MainProperty._channelBtnTipList[i][1], {x = -10, y = -20}, {x = 1, y = 0.5})
|
||||
GUI:addMouseOverTips(btnChannel, MainProperty._channelBtnTipList[i][1], { x = -10, y = -20 },
|
||||
{ x = 1, y = 0.5 })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
GUI:setVisible(MainProperty._ui["Button_channel"], PCShowSelectChannels and true or false)
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_channel"], function ()
|
||||
GUI:addOnClickEvent(MainProperty._ui["Button_channel"], function()
|
||||
if GUI:getVisible(MainProperty._ui["Panel_channel_s"]) then
|
||||
MainProperty.HideChannels()
|
||||
else
|
||||
|
|
@ -903,8 +935,10 @@ function MainProperty.InitChatPanel()
|
|||
height = math.max(minHeight, height)
|
||||
height = math.round(height)
|
||||
|
||||
GUI:setContentSize(MainProperty._ui["Panel_chat"], GUI:getContentSize(MainProperty._ui["Panel_chat"]).width, height)
|
||||
GUI:setContentSize(MainProperty._ui["Image_chat_bg"], GUI:getContentSize(MainProperty._ui["Image_chat_bg"]).width, height)
|
||||
GUI:setContentSize(MainProperty._ui["Panel_chat"], GUI:getContentSize(MainProperty._ui["Panel_chat"]).width,
|
||||
height)
|
||||
GUI:setContentSize(MainProperty._ui["Image_chat_bg"],
|
||||
GUI:getContentSize(MainProperty._ui["Image_chat_bg"]).width, height)
|
||||
|
||||
GUI:setPositionY(MainProperty._ui["Panel_chat_touch"], height)
|
||||
GUI:setPositionY(MainProperty._ui["Panel_chat_funcs"], height - 9)
|
||||
|
|
@ -956,7 +990,17 @@ function MainProperty.SendChatMsg(msg, channelID)
|
|||
local sensitiveWords = ext_param and ext_param.replacedWords
|
||||
local status = ext_param and ext_param.status
|
||||
local uid = MainProperty.TargetData and MainProperty.TargetData.uid
|
||||
local sendData = {textType = GUIDefine.ChatTextType.NORMAL, msg = input, channel = channelID, risk = risk_param, oriMsg = oriMsg, sensitiveWords = sensitiveWords, status = status,uid = uid}
|
||||
local sendData = {
|
||||
textType = GUIDefine.ChatTextType.NORMAL,
|
||||
msg = input,
|
||||
channel = channelID,
|
||||
risk =
|
||||
risk_param,
|
||||
oriMsg = oriMsg,
|
||||
sensitiveWords = sensitiveWords,
|
||||
status = status,
|
||||
uid = uid
|
||||
}
|
||||
GUIFunction:SendChatMsg(sendData)
|
||||
end
|
||||
|
||||
|
|
@ -1002,7 +1046,7 @@ function MainProperty.SendChatMsg(msg, channelID)
|
|||
toSendMsg(str, risk_param, ext_param)
|
||||
end
|
||||
|
||||
local data = {channel_id = channel}
|
||||
local data = { channel_id = channel }
|
||||
if channel == CHANNEL.PRIVATE then
|
||||
local target = ChatData.GetTargets()[1]
|
||||
if target then
|
||||
|
|
@ -1052,7 +1096,7 @@ function MainProperty.PushChatCell(cell)
|
|||
-- 超出限制,移除先放入的
|
||||
local ListView_chat = MainProperty._ui["ListView_chat"]
|
||||
GUI:ListView_pushBackCustomItem(ListView_chat, cell)
|
||||
if #GUI:ListView_getItems(ListView_chat) >GUIDefine.ChatConfig.LIMIT_COUNT_PC then
|
||||
if #GUI:ListView_getItems(ListView_chat) > GUIDefine.ChatConfig.LIMIT_COUNT_PC then
|
||||
GUI:ListView_removeItemByIndex(ListView_chat, 0)
|
||||
end
|
||||
end
|
||||
|
|
@ -1076,6 +1120,7 @@ function MainProperty.SelectChannel(channel)
|
|||
MainProperty.OnPrivateChatWithTarget(target)
|
||||
end
|
||||
end
|
||||
|
||||
function MainProperty.CreateChannelCell(id)
|
||||
local widget = GUI:Widget_Create(-1, "Widget_" .. id, 0, 0, 0, 0)
|
||||
GUI:LoadExport(widget, "main/main_channel_cell_win32")
|
||||
|
|
@ -1098,7 +1143,7 @@ function MainProperty.ShowChannels()
|
|||
end
|
||||
|
||||
MainProperty._channelCells = {}
|
||||
local channels = {CHANNEL.NEAR}
|
||||
local channels = { CHANNEL.NEAR }
|
||||
if PCShowSelectChannels and string.len(PCShowSelectChannels) > 0 then
|
||||
local list = string.split(PCShowSelectChannels, "#")
|
||||
for _, index in ipairs(list) do
|
||||
|
|
@ -1160,8 +1205,9 @@ function MainProperty.OnRefreshChannelSelect()
|
|||
end
|
||||
|
||||
function MainProperty.RefreshListView(byData)
|
||||
local cellSize = {width = MainProperty._ChatItemWidth, height = MainProperty._exCellHei}
|
||||
local count = byData and #ChatData.GetChatExItemsData() or #GUI:ListView_getItems(MainProperty._ui["ListView_chat_ex"])
|
||||
local cellSize = { width = MainProperty._ChatItemWidth, height = MainProperty._exCellHei }
|
||||
local count = byData and #ChatData.GetChatExItemsData() or
|
||||
#GUI:ListView_getItems(MainProperty._ui["ListView_chat_ex"])
|
||||
local margin = GUI:ListView_getItemsMargin(MainProperty._ui["ListView_chat_ex"])
|
||||
local exHei = (cellSize.height * count) + (count - 1) * margin
|
||||
GUI:setContentSize(MainProperty._ui["ListView_chat_ex"], MainProperty._ChatItemWidth, exHei)
|
||||
|
|
@ -1257,7 +1303,7 @@ function MainProperty.CheckChatExNotice()
|
|||
local FColorHex = SL:GetHexColorByStyleId(data.FColor)
|
||||
local BColorHex = SL:GetHexColorByStyleId(data.BColor)
|
||||
local BColorEnable = data.BColor ~= -1
|
||||
local capacitySize = {width = MainProperty._ChatItemWidth, height = MainProperty._exCellHei}
|
||||
local capacitySize = { width = MainProperty._ChatItemWidth, height = MainProperty._exCellHei }
|
||||
|
||||
local layout = GUI:Layout_Create(-1, "layout", 0, 0, capacitySize.width, capacitySize.height)
|
||||
if BColorEnable then
|
||||
|
|
@ -1270,10 +1316,10 @@ function MainProperty.CheckChatExNotice()
|
|||
local scrollWidget = GUI:Widget_Create(layout, "scrollWidget", 0, 0, capacitySize.width, capacitySize.height)
|
||||
|
||||
local scrollAble = nil
|
||||
local scrollSize = {width = 0, height = 0}
|
||||
local scrollSize = { width = 0, height = 0 }
|
||||
local remaining = data.Time
|
||||
local Msg = SL:FixStringFormatCharacter(data.Msg)
|
||||
local hasFormat = string.find(Msg,"%%")
|
||||
local hasFormat = string.find(Msg, "%%")
|
||||
local showName = data.SendName and (data.SendName .. ": ") or ""
|
||||
|
||||
local function callback()
|
||||
|
|
@ -1282,9 +1328,10 @@ function MainProperty.CheckChatExNotice()
|
|||
|
||||
local name = showName or ""
|
||||
local str = name .. (hasFormat and string.format(Msg, remaining) or Msg)
|
||||
local fontSize = SL:GetValue("GAME_DATA","DEFAULT_FONT_SIZE")
|
||||
local fontSize = SL:GetValue("GAME_DATA", "DEFAULT_FONT_SIZE")
|
||||
GUI:removeAllChildren(scrollWidget)
|
||||
local richText = GUI:RichTextFCOLOR_Create(scrollWidget, "richText", 0, capacitySize.height / 2, str, 1000, fontSize, FColorHex, MainProperty._richVspace, nil, nil, {outlineSize = 0})
|
||||
local richText = GUI:RichTextFCOLOR_Create(scrollWidget, "richText", 0, capacitySize.height / 2, str, 1000,
|
||||
fontSize, FColorHex, MainProperty._richVspace, nil, nil, { outlineSize = 0 })
|
||||
GUI:setTouchEnabled(richText, true)
|
||||
GUI:setAnchorPoint(richText, 0, 0.5)
|
||||
GUI:RefPosByParent(richText)
|
||||
|
|
@ -1293,7 +1340,7 @@ function MainProperty.CheckChatExNotice()
|
|||
end
|
||||
GUI:addOnClickEvent(richText, function()
|
||||
if data.SendId and data.SendName and data.SendId ~= SL:GetValue("USER_ID") then
|
||||
SL:onLUAEvent(LUA_EVENT_CHAT_PRIVATE_TARGET, {name = data.SendNameTemp, uid = data.SendId})
|
||||
SL:onLUAEvent(LUA_EVENT_CHAT_PRIVATE_TARGET, { name = data.SendNameTemp, uid = data.SendId })
|
||||
else
|
||||
MainProperty.OnFillChatInput(string.format(data.Msg, remaining))
|
||||
end
|
||||
|
|
@ -1318,7 +1365,8 @@ function MainProperty.CheckChatExNotice()
|
|||
-- 滚动
|
||||
if scrollAble then
|
||||
local time = (scrollSize.width - capacitySize.width) / 50
|
||||
GUI:runAction(scrollWidget,GUI:ActionRepeatForever(GUI:ActionSequence(GUI:ActionMoveTo(time, capacitySize.width - scrollSize.width, 0),
|
||||
GUI:runAction(scrollWidget,
|
||||
GUI:ActionRepeatForever(GUI:ActionSequence(GUI:ActionMoveTo(time, capacitySize.width - scrollSize.width, 0),
|
||||
GUI:DelayTime(3), GUI:ActionMoveTo(0, 0, 0))))
|
||||
end
|
||||
end
|
||||
|
|
@ -1450,6 +1498,7 @@ function MainProperty.OnReinAttrChange()
|
|||
SL:schedule(btnReinAdd, playBlink, 0.2)
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
|
@ -1552,6 +1601,7 @@ function MainProperty.GetBubbleButtonByID(id)
|
|||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------------------------
|
||||
|
||||
------------------------------ 自动提示 ------------------------------------------------------
|
||||
|
|
@ -1626,7 +1676,7 @@ function MainProperty.OnPlayMagicBallEffect(data)
|
|||
local prefix = MainProperty._mhpPrefixList[data.type + 1] or ""
|
||||
|
||||
local ani = GUI:Animation_Create()
|
||||
local pSize = {width = 0, height = 0}
|
||||
local pSize = { width = 0, height = 0 }
|
||||
for i = data.beginNum, data.beginNum + data.count - 1 do
|
||||
local path = string.format("res/private/mhp_ui_win32/%s%s.png", prefix, i)
|
||||
if SL:IsFileExist(path) then
|
||||
|
|
@ -1724,6 +1774,7 @@ function MainProperty.RefreshSfxShowPercent()
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------------------------
|
||||
|
||||
------------------------------ 内功相关 ------------------------------------------------------
|
||||
|
|
@ -1776,7 +1827,8 @@ function MainProperty.OnRefreshComboShow(state)
|
|||
local blink = false
|
||||
local function playBlink()
|
||||
blink = not blink
|
||||
GUI:Image_loadTexture(MainProperty._ui["Image_ng_shan"], MainProperty._path .. comboShowIcons[blink and 2 or 1])
|
||||
GUI:Image_loadTexture(MainProperty._ui["Image_ng_shan"],
|
||||
MainProperty._path .. comboShowIcons[blink and 2 or 1])
|
||||
end
|
||||
SL:schedule(MainProperty._ui["Image_ng_shan"], playBlink, 0.2)
|
||||
end
|
||||
|
|
@ -1934,7 +1986,7 @@ function MainProperty.RefreshFakeDropType()
|
|||
if fakeDrop and string.len(fakeDrop) > 0 then
|
||||
local param = string.split(fakeDrop, "#")
|
||||
if param[2] and tonumber(param[2]) == 1 then
|
||||
table.insert(MainProperty._dropTypeList, 2, {id = FAKE_DROP_TYPE_ID, name = param[1]})
|
||||
table.insert(MainProperty._dropTypeList, 2, { id = FAKE_DROP_TYPE_ID, name = param[1] })
|
||||
needRefresh = true
|
||||
end
|
||||
end
|
||||
|
|
@ -1944,6 +1996,7 @@ function MainProperty.RefreshFakeDropType()
|
|||
MainProperty.HideDropSwitchPanel()
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------------------------
|
||||
|
||||
------------------------------ 快捷栏 --------------------------------------------------------
|
||||
|
|
@ -1965,7 +2018,7 @@ end
|
|||
|
||||
-- 初始化显示的快捷栏
|
||||
function MainProperty.InitQuickUseItems()
|
||||
local regstetMouseEvent = function (widget, item, i)
|
||||
local regstetMouseEvent = function(widget, item, i)
|
||||
local function addItemIntoBag(touchPos)
|
||||
local state = SL:GetValue("ITEM_MOVE_STATE")
|
||||
local canMove = item and GUI:getVisible(item)
|
||||
|
|
@ -2000,8 +2053,8 @@ function MainProperty.InitQuickUseItems()
|
|||
showNum = showNum + 1
|
||||
|
||||
local size = GUI:getContentSize(item)
|
||||
local nodeItem = GUI:Node_Create(item, "nodeItem", size.width/2, size.height/2)
|
||||
MainProperty._quickUseCells[i] = {layout = item, nodeItem = nodeItem}
|
||||
local nodeItem = GUI:Node_Create(item, "nodeItem", size.width / 2, size.height / 2)
|
||||
MainProperty._quickUseCells[i] = { layout = item, nodeItem = nodeItem }
|
||||
|
||||
local Panel_touch = GUI:Layout_Create(item, "Panel_touch", 0, 0, size.width, size.height)
|
||||
GUI:setTouchEnabled(Panel_touch, true)
|
||||
|
|
@ -2048,7 +2101,7 @@ function MainProperty.UpdateQuickUseItem()
|
|||
|
||||
local quickUseData = QuickUseData.GetQuickUseData()
|
||||
for k, v in pairs(quickUseData) do
|
||||
MainProperty.AddQuickUseItem({index = k, itemData = v})
|
||||
MainProperty.AddQuickUseItem({ index = k, itemData = v })
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -2109,7 +2162,14 @@ function MainProperty.AddQuickUseItem(data)
|
|||
end
|
||||
|
||||
local itemData = data.itemData
|
||||
local data = {index = itemData.Index, itemData = itemData, count = getCount(itemData), from = GUIDefine.ItemFrom.QUICK_USE, movable = true}
|
||||
local data = {
|
||||
index = itemData.Index,
|
||||
itemData = itemData,
|
||||
count = getCount(itemData),
|
||||
from = GUIDefine.ItemFrom
|
||||
.QUICK_USE,
|
||||
movable = true
|
||||
}
|
||||
local item = GUI:ItemShow_Create(nodeItem, "quickCell", 0, 0, data)
|
||||
GUI:setAnchorPoint(item, 0.5, 0.5)
|
||||
|
||||
|
|
@ -2153,6 +2213,7 @@ function MainProperty.ChangeQuickUseItem(data)
|
|||
end
|
||||
GUI:ItemShow_UpdateItemCountShow(cell.item, data.itemData, getCount(data.itemData))
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------------------------
|
||||
|
||||
----------------------------- 倒计时提示 -----------------------------------------------------
|
||||
|
|
@ -2176,7 +2237,8 @@ function MainProperty.OnAddQuitTimeTips(data)
|
|||
|
||||
GUI:removeAllChildren(Node_quit_tip)
|
||||
local width = SL:GetValue("SCREEN_WIDTH")
|
||||
local richText = GUI:RichText_Create(Node_quit_tip, "richtips", 0, 0, str, width, (SL:GetValue("GAME_DATA","DEFAULT_FONT_SIZE") or 16) + 1, "#ffffff")
|
||||
local richText = GUI:RichText_Create(Node_quit_tip, "richtips", 0, 0, str, width,
|
||||
(SL:GetValue("GAME_DATA", "DEFAULT_FONT_SIZE") or 16) + 1, "#ffffff")
|
||||
GUI:setAnchorPoint(richText, 0.5, 0)
|
||||
end
|
||||
|
||||
|
|
@ -2194,12 +2256,14 @@ function MainProperty.OnDelQuitTimeTips()
|
|||
GUI:stopAllActions(Node_quit_tip)
|
||||
GUI:removeAllChildren(Node_quit_tip)
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------------------------
|
||||
|
||||
---------------------------- 窗体尺寸改变 ----------------------------------------------------
|
||||
function MainProperty.OnWindowChange()
|
||||
MainProperty.InitAdapet()
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------------------------------
|
||||
-- 更新恢复聊天框未聚焦状态: 关闭Keyboard
|
||||
function MainProperty.OnCloseKeyBoard()
|
||||
|
|
@ -2275,10 +2339,11 @@ function MainProperty.RegisterEvent()
|
|||
|
||||
SL:RegisterLUAEvent(LUA_EVENT_WINDOW_CHANGE, "MainProperty", MainProperty.OnWindowChange)
|
||||
SL:RegisterLUAEvent(LUA_EVENT_MAIN_CLOSE_KEYBOARD, "MainProperty", MainProperty.OnCloseKeyBoard)
|
||||
SL:RegisterLUAEvent(LUA_EVENT_MAIN_PROPERTY_ON_KEY_ENTER , "MainProperty", MainProperty.handlePressedEnter)
|
||||
SL:RegisterLUAEvent(LUA_EVENT_MAIN_PROPERTY_ON_KEY_ENTER, "MainProperty", MainProperty.handlePressedEnter)
|
||||
|
||||
SL:RegisterLUAEvent(LUA_EVENT_CHAT_PC_AUTO_SHOUT, "MainProperty", MainProperty.OnRefreshAutoShout)
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------------------
|
||||
|
||||
MainProperty.main()
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1 @@
|
|||
{
|
||||
"channel": 1,
|
||||
"gm": 0,
|
||||
"modlist": "http://list.dhsf.xqhuyu.com/testmodlist/modlist_tool_11557.txt",
|
||||
"signkey": "634eff98723b31da43ed35f0dd4edf36"
|
||||
}
|
||||
{"gm":0,"signkey":"634eff98723b31da43ed35f0dd4edf36","oper_mode":1,"modlist":"http:\/\/list.dhsf.xqhuyu.com\/testmodlist\/modlist_tool_11557.txt","resolution":"1024x768","channel":1}
|
||||
21
csv/bak/2026-06-18-00-00-38/cfg_BOSS查询.csv
Normal file
21
csv/bak/2026-06-18-00-00-38/cfg_BOSS查询.csv
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
///key,index,Filter,HD
|
||||
///Filter,CS,CS,CS
|
||||
//;地图名,怪物名称,BOSS级别,怪物形象
|
||||
///index,name,level,Appr
|
||||
邪恶之都,迷失洞主,S级,651
|
||||
恶魔深渊,铁血双锤,S级,20046
|
||||
沃玛大厅,远古·沃玛魔祖,S级,3021
|
||||
归墟神殿,天雷魔君,S级,20043
|
||||
祖玛大厅,洪荒·祖玛教皇,S级,1226
|
||||
玛法禁地,远古教皇,S级,20072
|
||||
封魔殿,虹魔老祖,S级,3033
|
||||
般若神殿,不灭君主,S级,20073
|
||||
赤月祭坛,双头老爹,S级,20089
|
||||
洞天秘境,狂暴·风沙之主,S级,20050
|
||||
奴隶之家,奴隶统帅,S级,20029
|
||||
阴曹地府,孟婆,S级,20002
|
||||
仙岛秘境,七彩神龙,S级,2020
|
||||
狼烟梦境,雷帝,S级,20139
|
||||
狐月秘境,狐月天珠,S级,327
|
||||
狐月神殿,齐天至尊,S级,20136
|
||||
先天秘境,迷宫之主,S级,20012
|
||||
|
21
csv/bak/2026-06-18-00-45-38/cfg_BOSS查询.csv
Normal file
21
csv/bak/2026-06-18-00-45-38/cfg_BOSS查询.csv
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
///key,index,Filter,HD
|
||||
///Filter,CS,CS,CS
|
||||
//;地图名,怪物名称,BOSS级别,怪物形象
|
||||
///index,name,level,Appr
|
||||
邪恶之都,迷失洞主,S级,651
|
||||
恶魔深渊,铁血双锤,S级,20046
|
||||
沃玛大厅,远古·沃玛魔祖,S级,3021
|
||||
归墟神殿,天雷魔君,S级,20043
|
||||
祖玛大厅,洪荒·祖玛教皇,S级,1226
|
||||
玛法禁地,远古教皇,S级,20072
|
||||
封魔殿,虹魔老祖,S级,3033
|
||||
般若神殿,不灭君主,S级,20073
|
||||
赤月祭坛,双头老爹,S级,20089
|
||||
洞天秘境,狂暴·风沙之主,S级,20050
|
||||
奴隶之家,奴隶统帅,S级,20029
|
||||
阴曹地府,孟婆,S级,20002
|
||||
仙岛秘境,七彩神龙,S级,2020
|
||||
狼烟梦境,雷帝,S级,20139
|
||||
狐月秘境,狐月天珠,S级,327
|
||||
狐月神殿,齐天至尊,S级,20136
|
||||
先天秘境,迷宫之主,S级,20012
|
||||
|
21
csv/bak/2026-06-18-01-00-11/cfg_BOSS查询.csv
Normal file
21
csv/bak/2026-06-18-01-00-11/cfg_BOSS查询.csv
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
///key,index,Filter,HD,
|
||||
///Filter,CS,CS,CS,
|
||||
//;地图名,地图名,怪物名称,BOSS级别,怪物形象
|
||||
///index,mapname,name,level,Appr
|
||||
1,邪恶之都,迷失洞主,S级,651
|
||||
2,恶魔深渊,铁血双锤,S级,20046
|
||||
3,沃玛大厅,远古·沃玛魔祖,S级,3021
|
||||
4,归墟神殿,天雷魔君,S级,20043
|
||||
5,祖玛大厅,洪荒·祖玛教皇,S级,1226
|
||||
6,玛法禁地,远古教皇,S级,20072
|
||||
7,封魔殿,虹魔老祖,S级,3033
|
||||
8,般若神殿,不灭君主,S级,20073
|
||||
9,赤月祭坛,双头老爹,S级,20089
|
||||
10,洞天秘境,狂暴·风沙之主,S级,20050
|
||||
11,奴隶之家,奴隶统帅,S级,20029
|
||||
12,阴曹地府,孟婆,S级,20002
|
||||
13,仙岛秘境,七彩神龙,S级,2020
|
||||
14,狼烟梦境,雷帝,S级,20139
|
||||
15,狐月秘境,狐月天珠,S级,327
|
||||
16,狐月神殿,齐天至尊,S级,20136
|
||||
17,先天秘境,迷宫之主,S级,20012
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
///key,index,Filter,HD
|
||||
///Filter,CS,CS,
|
||||
//;地图名,怪物名称,BOSS级别,
|
||||
///index,name,level,
|
||||
邪恶之都,迷失洞主,S级,
|
||||
恶魔深渊,铁血双锤,S级,
|
||||
沃玛大厅,远古·沃玛魔祖,S级,
|
||||
归墟神殿,天雷魔君,S级,
|
||||
祖玛大厅,洪荒·祖玛教皇,S级,
|
||||
玛法禁地,远古教皇,S级,
|
||||
封魔殿,虹魔老祖,S级,
|
||||
般若神殿,不灭君主,S级,
|
||||
赤月祭坛,双头老爹,S级,
|
||||
洞天秘境,狂暴·风沙之主,S级,
|
||||
奴隶之家,奴隶统帅,S级,
|
||||
阴曹地府,孟婆,S级,
|
||||
仙岛秘境,七彩神龙,S级,
|
||||
狼烟梦境,雷帝,S级,
|
||||
狐月秘境,狐月天珠,S级,
|
||||
狐月神殿,齐天至尊,S级,
|
||||
先天秘境,迷宫之主,S级,
|
||||
///key,index,Filter,HD,
|
||||
///Filter,CS,CS,CS,
|
||||
//;地图名,地图名,怪物名称,BOSS级别,怪物形象
|
||||
///index,mapname,name,level,Appr
|
||||
1,邪恶之都,迷失洞主,S级,651
|
||||
2,恶魔深渊,铁血双锤,S级,20046
|
||||
3,沃玛大厅,远古·沃玛魔祖,S级,3021
|
||||
4,归墟神殿,天雷魔君,S级,20043
|
||||
5,祖玛大厅,洪荒·祖玛教皇,S级,1226
|
||||
6,玛法禁地,远古教皇,S级,20072
|
||||
7,封魔殿,虹魔老祖,S级,3033
|
||||
8,般若神殿,不灭君主,S级,20073
|
||||
9,赤月祭坛,双头老爹,S级,20089
|
||||
10,洞天秘境,狂暴·风沙之主,S级,20050
|
||||
11,奴隶之家,奴隶统帅,S级,20029
|
||||
12,阴曹地府,孟婆,S级,20002
|
||||
13,仙岛秘境,七彩神龙,S级,2020
|
||||
14,狼烟梦境,雷帝,S级,20139
|
||||
15,狐月秘境,狐月天珠,S级,327
|
||||
16,狐月神殿,齐天至尊,S级,20136
|
||||
17,先天秘境,迷宫之主,S级,20012
|
||||
|
|
|
|||
|
Loading…
Reference in a new issue