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

310 lines
14 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#10003#12", "4#10006#12", "4#10008#12", "4#10009#12", "4#10013#12", "4#10014#12",
-- "4#10003#11", "4#10006#11", "4#10008#11", "4#10009#11", "4#10013#11", "4#10014#11",
-- "4#10003#9", "4#10006#9", "4#10008#9", "4#10009#9", "4#10013#9", "4#10014#9",
-- "4#10003#8", "4#10006#8", "4#10008#8", "4#10009#8", "4#10013#8", "4#10014#8",
-- "4#10003#7", "4#10006#7", "4#10008#7", "4#10009#7", "4#10013#7", "4#10014#7",
-- "4#10003#6", "4#10006#6", "4#10008#6", "4#10009#6", "4#10013#6", "4#10014#6",
-- "4#10003#5", "4#10006#5", "4#10008#5", "4#10009#5", "4#10013#5", "4#10014#5",
-- "4#10003#4", "4#10006#4", "4#10008#4", "4#10009#4", "4#10013#4", "4#10014#4"}
local heroList = {
"4#10023#10", "4#10022#10", "4#10034#10", "4#10002#10", "4#10014#10","4#10002#10","4#10003#10"
}
local moneyList = {"1#3#999999999", "1#4#999999999", "1#5#999999999", "1#14#999999999", "1#15#999999999", "1#16#999999999"}
--初始化组件(用于子类重写)
function GMPanel:InitComponent()
_GMConfig = {
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "12#0#%s", btnTip = "改名", inputTip = {"输入名称"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "20#0#%s", btnTip = "完成", inputTip = {"输入任务ID"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "16#%s#0", btnTip = "跳转", inputTip = {"输入兽潮层数"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "15#%s#0", btnTip = "获取", inputTip = {"孙龙秘宝积分"}, 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 = "确定", inputTip = {"输入Vip等级"}, callBack = this.SetVip},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "7#%s#0", btnTip = "角色升级",inputTip = {"输入等级"}, callBack = nil},
-- {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 = "生成道具", inputTip = {"道具ID#道具数量"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "4#%s", btnTip = "生成英雄", inputTip = {"英雄ID#星级"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "9#%s#0", btnTip = "通关关卡", inputTip = {"关卡id"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "3#1#%s", btnTip = "发送邮件", inputTip = {"id,num|id,num..."}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 1, args = "14#%s#0", btnTip = "跳转", inputTip = {"试炼副本层数"}, callBack = nil},
{type = GMType.Player, subType = GMSubType.Server, inputNum = 0, args = "8#1#1", btnTip = "通关所有关卡", 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 = "生成五个12星英雄", inputTip = {""}, callBack = this.FiveHero},
{type = GMType.Player, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = "一键很多钱", inputTip = {""}, callBack = this.GetMoney},
{type = GMType.Function, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = "跳转测试", inputTip = {"输入跳转ID"}, callBack = this.TestJump},
{type = GMType.Function, subType = GMSubType.Server, inputNum = 1, args = "23#0#%s", btnTip = "获取", inputTip = {"天宫秘宝积分"}, callBack = nil},
{type = GMType.Function, subType = GMSubType.Server, inputNum = 1, args = "24#%s", btnTip = "逍遥游", inputTip = {"类型#mapId#bossId"}, callBack = nil},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 0, args = "", btnTip = "战斗测试场景", inputTip = {""}, callBack = this.GoTestBattle},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = "挑战怪物", inputTip = {"输入怪物组id"}, callBack = this.ChallengeMonster},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 1, args = "", btnTip = "测试假战斗", inputTip = {"输入假战斗id"}, callBack = this.RunFakeBattle},
{type = GMType.Battle, subType = GMSubType.Func, inputNum = 2, args = "", btnTip = "演算战斗数据", inputTip = {"战斗数据", "时间戳"}, callBack = this.RunBattleData},
}
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: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.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.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.AddHoly(text)
local command = "//addholy %s %s"
command = string.format(command, PlayerManager.uid, text)
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[10702])
else
local MonsterGroup = ConfigManager.GetConfig(ConfigName.MonsterGroup)
if not MonsterGroup[monsterId] then
PopupTipPanel.ShowTip(Language[10706] .. monsterId .. Language[10707])
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 = BattleManager.GetFakeBattleData(fakeId)
local fseed = 0
local testFightData = {
fightData = fdata,
fightSeed = fseed,
fightType = 0,
maxRound = 20
}
UIManager.OpenPanel(UIName.BattlePanel, testFightData, BATTLE_TYPE.Test)
end
-- 战斗数据
function this.RunBattleData(data, 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
LogError("参数错误")
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("GM应用成功")
end)
elseif config.subType == GMSubType.Func then
if config.callBack then
config.callBack(unpack(args))
end
PopupTipPanel.ShowTip("GM应用成功")
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