miduo_client/Assets/ManagedResources/~Lua/Modules/Main/GMPanel.lua

488 lines
20 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- int ADD_ITEM = 1;//添加道具
-- int ADD_CARD = 2; //添加卡牌
-- int SEND_MAIIL = 3;// 发送邮件
-- int HERO_STAR = 4;// 添加指定星级英雄
-- int OPEN_MAP = 5; // 开启到指定关卡
-- int ONE_KEY_ITEM_OR_HERO = 6;
-- int USER_UP_LEVE = 7; // 玩家升级
-- int ADOPT_ALL_DIFFICULTY = 8; // 通过所有关卡
-- int ADOPT_FIGHT_BY_VALUE = 9; //开启对应的关卡
-- int TIME_INFO = 10; // 根据等级开启对应的关卡
-- int VIP_LEVEL = 11; // 根据等级开启对应的关卡
-- int RESET_USER_NAME = 12;
-- int CREATE_INVADE = 13; //生成外敌
-- int SET_TOWER_NUMBER = 14;//设置试炼副本进入层数
-- int TREASURE_SCORE = 15;//生成孙龙宝藏积分
-- int MONSTER_JUMP = 16;//跳到兽潮层
-- int OUT_BLOODY_BATTLE = 17;//退出血战
-- int MISSION_LEAD = 18;//任务指引
-- int ESPECIAL_EQUIP = 19;//增加法宝,星级
-- int TREASURE_FINISH = 20;//戒灵秘宝一键完成
-- int FULL_OF = 21; //一键全满
-- int EXPEDITION_SCORE = 23;//天宫秘宝积分
-- int JOURNEY_GM = 24;//逍遥游GM操作
-- // int TECNOLOGY_MAX = 21;//科技树一键满级
-- // int POKEMAN_MAX = 22;//一键获得所有满级异妖
local GMType = {
Player = 1,
Function = 2,
Battle = 3,
}
local GMSubType = {
Server = 1,
Func = 2,
}
local _GMConfig = {}
require("Base/BasePanel")
GMPanel = Inherit(BasePanel)
local this = GMPanel
local heroList = {
"4#10033#11", "4#10026#11", "4#10008#11", "4#10012#11", "4#10015#11","4#10014#11","4#10033#10","4#10026#10","4#10008#10","4#10012#10","4#10015#10","4#10014#10"
}
local baowuList = {
"1#100005#1", "1#100010#1", "1#100015#1", "1#100020#1", "1#100025#1","1#100030#1", "1#100035#1","1#100040#1"
}
local equipeList = {
"1#60159#1", "1#60184#1", "1#60194#1", "1#60199#1"
}
local moneyList = {"1#3#99999999", "1#4#99999999", "1#5#99999999", "1#14#99999999", "1#15#99999999", "1#16#99999999"}
--初始化组件(用于子类重写)
function GMPanel:InitComponent()
---
--- type 所属页签的类型 player 玩家页签 Function 功能类型 Battle 战斗相关
--- subType 类型 Server 直接向服务器请求的GM Func 回调某个方法的GM
---
_GMConfig = {
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "12#0#%s", btnTip = Language[11170], inputTip = {Language[11171]}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "20#0#%s", btnTip = Language[11172], inputTip = {Language[11173]}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "16#%s#0", btnTip = Language[11174], inputTip = {Language[11175]}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "15#%s#0", btnTip = Language[11176], inputTip = {Language[11177]}, callBack = this.SetSunLongScroe},
-- {type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "13#%s#0", btnTip = "解锁", inputTip = {"外敌ID"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "11#%s#0", btnTip = Language[10732], inputTip = {Language[11178]}, callBack = this.SetVip},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 1, args = "7#%s#0", btnTip = Language[11179],inputTip = {Language[11180]}, callBack = this.LVPlayer},
-- {type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "10#4#%s", btnTip = "设置服务器时间", inputTip = {"例20170801190000"}, callBack = nil},
-- {type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "10#%s#0", btnTip = "搜索地图", inputTip = {"输入地图Id"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "1#%s", btnTip = Language[11181], inputTip = {Language[11182]}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[12138], inputTip = {Language[12139]}, callBack = this.GetManyItems},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "4#%s", btnTip = Language[11183], inputTip = {Language[11184]}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[12140], inputTip = {Language[12141]}, callBack = this.GetManyHeros},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "9#%s#0", btnTip = Language[11185], inputTip = {Language[11186]}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "3#1#%s", btnTip = Language[11187], inputTip = {"id,num|id,num..."}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "14#%s#0", btnTip = Language[11174], inputTip = {Language[11188]}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[12142], inputTip = {Language[12143]}, callBack = this.AddHoly},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 0, args = "8#1#1", btnTip = Language[11189], inputTip = {}, callBack = nil},
-- {type = GMType.Player, subType = GMSubType.Server, inputNum = 0, args = "6#0#0", btnTip = "一键物品", inputTip = {""}, callBack = nil},
-- {type = GMType.Player, subType = GMSubType.Server, inputNum = 0, args = "22#0#0", btnTip = "一键异妖", inputTip = {""}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = Language[11190], inputTip = {""}, callBack = this.FiveHero},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = Language[11191], inputTip = {""}, callBack = this.GetMoney},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = Language[11192], inputTip = {""}, callBack = this.Baowu},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = Language[11193], inputTip = {""}, callBack = this.GetEquipe},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = Language[12151], inputTip = {""}, callBack = this.GetAllItems},
{type = GMType.Function, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[11194], inputTip = {Language[11195]}, callBack = this.TestJump},
{type = GMType.Function, subType = GMSubType.Server, inputNum = 1, args = "23#0#%s", btnTip = Language[11176], inputTip = {Language[11196]}, callBack = nil},
{type = GMType.Function, subType = GMSubType.Server, inputNum = 1, args = "24#%s", btnTip = Language[11197], inputTip = {Language[11198]}, callBack = nil},
{type = GMType.Function, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[12175], inputTip = {Language[12176]}, callBack = this.TestFuncGuide},
{type = GMType.Function, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = Language[12285], inputTip = {""}, callBack = this.OpenRedDebug},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = Language[11199], inputTip = {""}, callBack = this.GoTestBattle},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[11200], inputTip = {Language[11201]}, callBack = this.ChallengeMonster},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[11202], inputTip = {Language[11203]}, callBack = this.RunFakeBattle},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 2, args = "", btnTip = Language[11204], inputTip = {Language[11205], Language[11206]}, callBack = this.RunBattleData},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = Language[11207], inputTip = {Language[11208]}, callBack = this.RunServerBattle},
}
this.BtnBack = Util.GetGameObject(self.transform, "btnBack")
this.serverNowTimeText = Util.GetGameObject(self.gameObject, "TimeCtrl/Text (1)"):GetComponent("Text")
this.serverOpenTimeText = Util.GetGameObject(self.gameObject, "TimeCtrl/Text (3)"):GetComponent("Text")
this.serverCreateRoleTimeText = Util.GetGameObject(self.gameObject, "TimeCtrl/Text (5)"):GetComponent("Text")
this.updateServerNowTimeText = Util.GetGameObject(self.gameObject, "TimeCtrl/InputField/Text"):GetComponent("Text")
this.btnSureChange = Util.GetGameObject(self.transform, "TimeCtrl/Button")
this.btnRefreshServerTime = Util.GetGameObject(self.transform, "TimeCtrl/Button2")
this._GMItemList = {}
this._GMItemRoot = {}
this._GMTypeBtn = {}
for _, type in pairs(GMType) do
this._GMItemRoot[type] = Util.GetGameObject(self.gameObject, "list"..type)
this._GMTypeBtn[type] = Util.GetGameObject(self.gameObject, "btn"..type)
end
this._GMItem = Util.GetGameObject(self.gameObject, "item")
end
function GMPanel.LVPlayer(lv)
NetManager.GMEvent(string.format("7#%s#0",lv))
local cor = coroutine.start(function()
coroutine.wait(1)
Game.GlobalEvent:DispatchEvent(GameEvent.Player.OnLevelChange)
LogGreen("升级了")
end)
end
--绑定事件(用于子类重写)
function GMPanel:BindEvent()
Util.AddClick(this.BtnBack, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
Util.AddClick(this.btnSureChange, function()
NetManager.GMEvent("10#4#" .. this.updateServerNowTimeText.text)
end)
Util.AddClick(this.btnRefreshServerTime, function()
this.RefreshServerTime()
end)
--
for _, type in pairs(GMType) do
this._GMTypeBtn[type] = Util.GetGameObject(self.gameObject, "btn"..type)
Util.AddOnceClick(this._GMTypeBtn[type], function()
for _, type2 in pairs(GMType) do
this._GMItemRoot[type2]:SetActive(type == type2)
end
end)
end
end
function this.GetManyItems(text)
if text == Language[12247] then
local config = ConfigPairs(ConfigManager.GetConfig(ConfigName.EquipConfig))
local cor = coroutine.start(function()
for k,v in (config) do
if v.Position < 5 then
local str = "1#" .. v.Id .."#" .. 1
NetManager.GMEvent(str)
coroutine.wait(0.1)
end
end
end)
return
end
if text == Language[12248] then
local config = ConfigPairs(ConfigManager.GetConfig(ConfigName.JewelConfig))
local cor = coroutine.start(function()
for k,v in (config) do
local str = "1#" .. v.Id .."#" .. 10
NetManager.GMEvent(str)
coroutine.wait(0.1)
end
end)
return
end
if text == Language[12249] then
local config = ConfigPairs(ConfigManager.GetConfig(ConfigName.EquipConfig))
local cor = coroutine.start(function()
for k,v in (config) do
if v.Position == 5 then
local str = "1#" .. v.Id .."#" .. 1
NetManager.GMEvent(str)
coroutine.wait(0.1)
end
end
end)
return
end
if text == Language[12250] then
local config = ConfigPairs(ConfigManager.GetConfig(ConfigName.SpiritAnimal))
local cor = coroutine.start(function()
for k,v in (config) do
local str = "1#" .. v.Id .."#" .. 1
NetManager.GMEvent(str)
coroutine.wait(0.1)
end
end)
return
end
if text and text ~= "" then
local list = string.split(text, "|")
local cor = coroutine.start(function()
for _, str in ipairs(list) do
local item = string.split(str, "#")
local itemid = tonumber(item[1])
if not itemid then
local config = ConfigManager.GetConfigDataByKey(ConfigName.ItemConfig,"Name",item[1])
if config then
itemid = config.Id
else
itemid = nil
end
end
if itemid then
local str1 = "1#" .. itemid .."#" .. item[2]
NetManager.GMEvent(str1)
coroutine.wait(0.1)
end
end
LogGreen("物品批量生成完成")
end)
end
end
function this.GetManyHeros(text)
if text and text ~= "" then
local list = string.split(text, "|")
local cor = coroutine.start(function()
for _, str in ipairs(list) do
local item = string.split(str, "#")
local itemid = tonumber(item[1])
if not itemid then
local config = ConfigManager.GetConfigDataByKey(ConfigName.HeroConfig,"ReadingName",item[1])
if config then
itemid = config.Id
else
itemid = 0
end
end
if itemid and itemid < 10 and itemid > 0 then
for k,v in ConfigPairs(ConfigManager.GetConfig(ConfigName.HeroConfig)) do
if v.PropertyName == itemid and v.MaxRank >= tonumber(item[2]) and v.Star <= tonumber(item[2]) then
local str1 = "4#" .. v.Id .."#" .. item[2]
NetManager.GMEvent(str1)
coroutine.wait(0.1)
end
end
elseif itemid and itemid > 0 then
local str1 = "4#" .. itemid .."#" .. item[2]
NetManager.GMEvent(str1)
coroutine.wait(0.1)
end
end
LogGreen("英雄批量生成完成")
end)
end
end
-- 设置孙龙积分
function this.SetSunLongScroe(text)
TreasureOfSomebodyManagerV2.SetCurrentLevel(tonumber(text))
end
--设置vip
function this.SetVip(text)
VipManager.SetVipLevel(tonumber(text))
end
-- 一键五个银熊
function this.FiveHero()
for i=1, #heroList do
NetManager.GMEvent(heroList[i])
end
end
-- 一键几个宝物
function this.Baowu()
for i=1, #baowuList do
NetManager.GMEvent(baowuList[i])
end
end
-- 一键顶级装备
function this.GetEquipe()
for i=1, #equipeList do
NetManager.GMEvent(equipeList[i])
end
end
-- 一键好多物品
function this.GetAllItems()
local ic = ConfigManager.GetConfig(ConfigName.ItemConfig)
local i = 0
coroutine.start(function()
for id, value in ConfigPairs(ic) do
i = i + 1
if i >= 100 then
break
end
NetManager.GMEvent("1#"..id.."#1000000")
coroutine.wait(0.01)
end
end)
end
-- 一键很多钱
function this.GetMoney()
local index = 1
local time = Timer.New(function ()
NetManager.GMEvent(moneyList[index])
index = index + 1
end, 1, 6, true)
time:Start()
end
-- 测试跳转
function this.TestJump(text)
JumpManager.GoJump(tonumber(text))
end
-- 测试功能引导
function this.TestFuncGuide(text)
local gid = tonumber(text)
GuideManager.AddFuncGuide(gid)
end
-- 红点Debug
function this.OpenRedDebug()
UIManager.OpenPanel(UIName.RedpotDebugPanel)
end
-- 添加圣物
function this.AddHoly(text)
local command = "//addholy %s %s"
command = string.format(command, PlayerManager.uid, text)
Log(command)
ChatManager.RequestGMCommand(command)
end
-- 进入战斗测试场景
function this.GoTestBattle()
UIManager.OpenPanel(UIName.BattleTestPanel)
end
-- 挑战怪物
function this.ChallengeMonster(text)
local monsterId = tonumber(text)
if #FormationManager.formationList[FormationManager.curFormationIndex].teamHeroInfos == 0 then
PopupTipPanel.ShowTip(Language[10700])
else
local MonsterGroup = ConfigManager.GetConfig(ConfigName.MonsterGroup)
if not MonsterGroup[monsterId] then
PopupTipPanel.ShowTip(Language[10704] .. monsterId .. Language[10705])
else
UIManager.OpenPanel(UIName.BattlePanel, BattleManager.GetBattleData(1, monsterId), nil, nil, nil, monsterId, nil)
end
end
end
-- 假战斗数据
function this.RunFakeBattle(fakeId)
fakeId = tonumber(fakeId)
local fdata, fseed = BattleManager.GetFakeBattleData(fakeId)
local testFightData = {
fightData = fdata,
fightSeed = fseed,
fightType = 0,
maxRound = 20
}
UIManager.OpenPanel(UIName.BattlePanel, testFightData, BATTLE_TYPE.Test)
end
-- 请求服务器战斗数据
function this.RunServerBattle(fightId)
BattleManager.RequestBattleDataByFightId(fightId, function(fightData)
LogGreen("战斗回调")
UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.Test)
end)
end
-- 战斗数据
function this.RunBattleData(data, seed)
data = loadstring("return "..data)()
seed = tonumber(seed)
require("Modules.Main.BattleData1")
local fdata = (data and data ~= "") and data or testBattleData1
local fseed = (seed and seed ~= "") and seed or testBattleSeed
if not fdata or not fseed then
LogError("战斗数据错误")
return
end
local testFightData = {
fightData = fdata,
fightSeed = fseed,
fightType = 0,
maxRound = 20
}
UIManager.OpenPanel(UIName.BattlePanel, testFightData, BATTLE_TYPE.Test)
end
-- 刷新服务器时间
function this.RefreshServerTime()
NetManager.GMEvent("10#1#0", function(msg)
this.serverNowTimeText.text = msg.info
end)
NetManager.GMEvent("10#2#0", function(msg)
this.serverOpenTimeText.text = msg.info
end)
NetManager.GMEvent("10#3#0", function(msg)
this.serverCreateRoleTimeText.text = msg.info
end)
end
--添加事件监听(用于子类重写)
function GMPanel:AddListener()
end
--移除事件监听(用于子类重写)
function GMPanel:RemoveListener()
end
--界面打开时调用(用于子类重写)
function GMPanel:OnOpen(...)
-- 刷新时间
this.RefreshServerTime()
-- 初始化界面显示
for id, config in ipairs(_GMConfig) do
if not this._GMItemList[id] then
local go = newObjToParent(this._GMItem, this._GMItemRoot[config.type])
this._GMItemList[id] = go
local btn = Util.GetGameObject(go, "Button")
local btnText = Util.GetGameObject(btn, "Text"):GetComponent("Text")
btnText.text = config.btnTip
local input = {}
for i = 1, 2 do
input[i] = Util.GetGameObject(go, "InputField"..i):GetComponent("InputField")
input[i].gameObject:SetActive(config.inputNum >= i)
Util.GetGameObject(input[i].gameObject, "Placeholder"):GetComponent("Text").text = config.inputTip[i] or ""
end
Util.AddClick(btn, function()
-- 构建参数
local args = {}
for i = 1, config.inputNum do
if input[i].text == "" then
PopupTipPanel.ShowTip(Language[11209])
return
end
table.insert(args, input[i].text)
end
--
if config.subType == GMSubType.Server then
local gmstr = string.format(config.args, unpack(args))
NetManager.GMEvent(gmstr, function()
if config.callBack then
config.callBack(unpack(args))
end
PopupTipPanel.ShowTip(Language[11210])
end)
elseif config.subType == GMSubType.Func then
if config.callBack then
config.callBack(unpack(args))
end
PopupTipPanel.ShowTip(Language[11210])
end
end)
end
-- 默认打开玩家相关GM
for _, type in pairs(GMType) do
this._GMItemRoot[type]:SetActive(type == GMType.Player)
end
end
end
--界面关闭时调用(用于子类重写)
function GMPanel:OnClose()
end
--界面销毁时调用(用于子类重写)
function GMPanel:OnDestroy()
this._GMItemRoot = {}
this._GMItemList = {}
end
return GMPanel