123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637 |
- ---@class EPCFastKeyCodeType
- EPCFastKeyCodeType = {
- UIOpen = 1,---开启界面
- SetTurn = 2,---开关控制
- }
- ---@class PCFastKey
- PCFastKey=class()
- local this = PCFastKey
- local KeyCode=CS.UnityEngine.KeyCode
- local ACStr
- local CheckCtrl=false
- local KeyTb={
- ['B']=KeyCode.B,
- ['C']=KeyCode.C,
- ['E']=KeyCode.E,
-
- ['G']=KeyCode.G,
- ['I']=KeyCode.I,
- ['J']=KeyCode.J,
- ['O']=KeyCode.O,
- ['M']=KeyCode.M,
- ['U']=KeyCode.U,
- ['V']=KeyCode.V,
- ['E']=KeyCode.E,
- ['H']=KeyCode.H,
- ['K']=KeyCode.K,
- ['M']=KeyCode.M,
- ['P']=KeyCode.P,
- ['Q']=KeyCode.Q,
- ['R']=KeyCode.R,
- ['S'] =KeyCode.S,
- ['T']=KeyCode.T,
- ['W']=KeyCode.W,
- ['X']=KeyCode.X,
- ['Z']=KeyCode.Z,
- ['Alpha1']= KeyCode.Alpha1,
- ['Alpha2']= KeyCode.Alpha2,
- ['Alpha3']= KeyCode.Alpha3,
- ['Alpha4']= KeyCode.Alpha4,
- ['Alpha5']= KeyCode.Alpha5,
- ['F1']=KeyCode.F1,
- ['F7']=KeyCode.F7,
- ['F8']=KeyCode.F8,
- ['F9']=KeyCode.F9,
- ['F10']=KeyCode.F10,
- ['F11']=KeyCode.F11,
- ['F12']=KeyCode.F12,
- ['Up']=KeyCode.UpArrow,
- ['Down']=KeyCode.DownArrow,
- ['ESC']=KeyCode.Escape,
- ['Tab']=KeyCode.Tab,
- ['Pause']=KeyCode.Pause,
- ['LeftShift']=KeyCode.LeftShift,
- ['RightShift']=KeyCode.RightShift,
- ['Enter']=KeyCode.Return,
- }
- function PCFastKey.Init()
- PCFastKey.GetCfgKeyCode()
- PCFastKey.KeyEvent = {
- --['E']=PCFastKey.OpenEmail,--打开邮件
- --
- ['M']=PCFastKey.OpenBigMap,--显示自动寻路窗口
- --['R']=PCFastKey.OpenRank,--打开排行榜
- --['P']=PCFastKey.OpenMarry,--打开婚姻界面
- --['T']=PCFastKey.SendTrade,--发送交易请求
- --['X']=PCFastKey.JoinSociaty,--加入行会
- --['Z']=PCFastKey.SelectSociaty,--打开行会选择
-
- ['Q']=PCFastKey.FastUseItemQ,--快捷使用Q
- ['W']=PCFastKey.FastUseItemW,--快捷使用W
- ['E']=PCFastKey.FastUseItemE,--快捷使用E
- ['R']=PCFastKey.FastUseItemR,--快捷使用R
-
- --['V']=PCFastKey.OpenBag,--打开背包
- ['F7']=PCFastKey.OpenHookSetting,--打开挂机设置
- ['F8']=PCFastKey.TurnAutoFight,--切换自动挂机
- ['Tab']=PCFastKey.OpenBigMap,--打开大地图
- ['Enter']=PCFastKey.OpenChatUI,--打开聊天
- ['ESC']=PCFastKey.CheckNeedOpenSet,--是否需要打开设置
- ['LeftShift']=PCFastKey.ChangeMoveState,--切换禁止移动
- ['RightShift']=PCFastKey.ChangeMoveState,--切换禁止移动
- --['F10']=PCFastKey.OpenPlayer,--打开角色窗口
- --['F11']=PCFastKey.OpenSkill,--打开技能窗口
- --['F12']=PCFastKey.OpenSup,--打开辅助窗口
- --
- --
- --['Pause']=PCFastKey.Screenshots,--截图
- --['CtrlB']=PCFastKey.OpenShop,--打开商铺
- --['CtrlE']=PCFastKey.ChangeState,--切换状态
- --['CtrlH']=PCFastKey.ChangeAtk,--选择攻击模式
- --['CtrlQ']=PCFastKey.ChangeDef,--开启关闭守护状态
- --['CtrlS']=PCFastKey.UseTeamSkill,--使用合击技能
- --['CtrlM']=PCFastKey.RideHorse,--上马
- --['CtrlZ']=PCFastKey.ShowGoodNames,--显示物品名称
- --
- --['AltQ']=PCFastKey.QuitGame,--退出游戏
- --['AltR']=PCFastKey.RefuseBag,--刷新背包
- --['AltW']=PCFastKey.QuikTeam,--快速组队
- --['AltX']=PCFastKey.BackToChoose,--返回角色选择界面
- --
- ['Alpha1']=PCFastKey.ChangeEquipSkill1,--将已装备的技能设置为1
- ['Alpha2']=PCFastKey.ChangeEquipSkill2,--将已装备的技能设置为1
- ['Alpha3']=PCFastKey.ChangeEquipSkill3,--将已装备的技能设置为1
- ['Alpha4']=PCFastKey.ChangeEquipSkill4,--将已装备的技能设置为1
- ['Alpha5']=PCFastKey.ChangeEquipSkill5,--将已装备的技能设置为1
-
- ['CtrlAlpha1']=PCFastKey.ChangeSkill1,--更换技能1
- ['CtrlAlpha2']=PCFastKey.ChangeSkill2,--更换技能2
- ['CtrlAlpha3']=PCFastKey.ChangeSkill3,--更换技能3
- ['CtrlAlpha4']=PCFastKey.ChangeSkill4,--更换技能4
- ['CtrlAlpha5']=PCFastKey.ChangeSkill5,--更换技能5
- }
- PCFastKey.InputKeyEvent={
- ['Up']=PCFastKey.LookUpMessage,
- ['Down']=PCFastKey.LookDownMessage,
- }
- --this.OneKey()
- end
- ---获取配表的按键列表
- function PCFastKey.GetCfgKeyCode()
- ---操作ui面板的快捷键
- PCFastKey.CfgUIKeyCodeList={}
- ---ESC按钮,特殊key
- PCFastKey.escSystemKey=0
- ---其他功能的快捷键
- --PCFastKey.CfgTurnKeyCodeList={}
- --KeyTb={}
- if SL:GetConfigTable("cfg_shortcutKey") then
- ---@param v cfg_shortcutKey_column
- for i, v in ipairs(SL:GetConfigTable("cfg_shortcutKey")) do
- if v.shortcutKey=="ESC" then
- PCFastKey.escSystemKey=v.system
- end
- ---多键
- if string.contains(v.shortcutKey,"#") then
- local keyList=string.split(v.shortcutKey,"#")
- for index = 1, table.count(keyList) do
- --KeyTb[keyList[index]]= System.Enum.Parse(typeof(KeyCode), keyList[index].ToString())
- if v.type==EPCFastKeyCodeType.UIOpen then
- PCFastKey.CfgUIKeyCodeList[keyList[index]]=v.system
- end
- end
- else
- ---单键
- --KeyTb[v.shortcutKey]= System.Enum.Parse(typeof(KeyCode), keyList[index].ToString())
- if v.type==EPCFastKeyCodeType.UIOpen then
- PCFastKey.CfgUIKeyCodeList[v.shortcutKey]=v.system
- end
- end
- end
- end
- end
- function PCFastKey.Update()
- if not PCSkillInfoMgr.mainUIShow then
- return
- end
- PCFastKey.CheckInput()
- end
- function PCFastKey.CheckInput()
- if Input.GetKey(KeyCode.LeftControl) or Input.GetKey(KeyCode.RightControl) then
- ACStr='Ctrl'
- CheckCtrl=true
- elseif Input.GetKey(KeyCode.LeftAlt) or Input.GetKey(KeyCode.RightAlt) then
- ACStr='Alt'
- CheckCtrl=true
- else
- CheckCtrl=false
- end
- if CheckCtrl then
- PCFastKey.TwoKey()
- else
- PCFastKey.OneKey()
- end
- end
- function PCFastKey.OneKey()
- for i,v in pairs(KeyTb) do
- if Input.GetKeyDown(v) then
-
- if PCFastKey.KeyEvent[tostring(i)] or PCFastKey.CfgUIKeyCodeList[tostring(i)] then
- if Misc.IsFocusOnInputText()==false then
- if PCFastKey.CfgUIKeyCodeList[tostring(i)] then
- local isOpenUI= PCFastKey.OpenSystemUI(PCFastKey.CfgUIKeyCodeList[tostring(i)]);
- if isOpenUI then
- return
- end
- end
- PCFastKey.KeyEvent[tostring(i)]()
- end
- --elseif Misc.IsFocusOnInputText() then
- -- if PCFastKey.InputKeyEvent[tostring(i)] then
- -- PCFastKey.InputKeyEvent[tostring(i)]()
- -- end
- end
- end
- end
- end
- function PCFastKey.TwoKey()
- for i,v in pairs(KeyTb) do
- if Input.GetKeyDown(v) then
- if DebugFlag.LogEnable then
- log(ACStr..tostring(i))
- end
- if PCFastKey.KeyEvent[ACStr..tostring(i)] then
- if Misc.IsFocusOnInputText()==false then
- PCFastKey.KeyEvent[ACStr..tostring(i)]()
- end
- end
- end
- end
- end
- ---切换是否可移动状态
- function this.ChangeMoveState()
- if SL:GetMetaValue(EMetaVarGetKey.GET_CLICK_FLOOR_IS_SELECT) == EScreen.True then
- SL:SetMetaValue(EMetaVarSetKey.SET_IS_CLICK_FLOOR_MOVE,EScreen.False)
- else
- SL:SetMetaValue(EMetaVarSetKey.SET_IS_CLICK_FLOOR_MOVE,EScreen.True)
- end
- end
- ---打开挂机设置
- function this.OpenHookSetting()
- if not GUI:GetUI("dev/ui/Setting/Panel/KLHook/KLHookPanel") then
- -- GUI:UIPanel_Open("dev/ui/Setting/Panel/KLHook/KLHookPanel")
- KmlManager.HideAllKmlPanel()
- SL:OpenSettingPanel( ESettingType.OnHookTog)
- --SL:HideBigMap()
- SL.HideMainPanel()
- else
- --SL:ShowBigMap()
- GUI:UIPanel_Close("dev/ui/Setting/Panel/KLSettingToggle/KLSettingTogglePanel")
- GUI:UIPanel_Close("dev/ui/Setting/Panel/KLHook/KLHookPanel")
- end
- end
- ---快捷使用
- function this.FastUseItem(key)
-
- SL:onLUAEvent(LUA_EVENT_FastUseItem,{key=key})
- end
- function this.FastUseItemQ()
- this.FastUseItem(1)
- end
- function this.FastUseItemW()
- this.FastUseItem(2)
- end
- function this.FastUseItemE()
- this.FastUseItem(3)
- end
- function this.FastUseItemR()
- this.FastUseItem(4)
- end
- ---设置鼠标右键装备技能
- function this.ChangeEquipSkill(skillGrid)
- local skillId=0
- ---获取对应格子上的技能
- ---变身走另一套逻辑
- if InfoManager.shapeShiftCardInfo:isShiftMonster() then
- local shiftMonsterGroup = InfoManager.shapeShiftCardInfo.shiftMonsterGroup
- local shiftSkill = InfoManager.shapeShiftCardInfo.shiftSkill
- ---@type number[]
- local skills = shiftSkill[shiftMonsterGroup].unlockSkill
- local lockSkills = shiftSkill[shiftMonsterGroup].lockSkill
- local showSkills = {}
- local showSkillsLevel = {}
- for i, v in pairs(skills) do
- ---@type cfg_skill_column
- local skill = SL:GetConfig("cfg_skill", i)
- if skill.type == ECfgSkillType.Normal and skill.group == ESkillGroup.normal then
- showSkills[#showSkills + 1] = i
- showSkillsLevel[#showSkillsLevel + 1] = false
- end
- end
- for i, v in pairs(lockSkills) do
- ---@type cfg_skill_column
- local skill = SL:GetConfig("cfg_skill", i)
- if skill.type == ECfgSkillType.Normal and skill.group == ESkillGroup.normal then
- showSkills[#showSkills + 1] = i
- showSkillsLevel[#showSkillsLevel + 1] = true
- end
- end
- if showSkills[skillGrid] and showSkillsLevel[skillGrid] then
- skillId=showSkills[skillGrid]
- end
- else
- local showSkills = SL:GetMetaValue(EMetaVarGetKey.SKILL_SHOW_LIST)
- skillId=showSkills[skillGrid]
- end
-
- ---空技能点击无反应
- if skillId == 0 then
- return
- end
- ---点击之后将右键技能设置为该技能
- LoginManager.selectSkillId:Set(skillId)
- ---抛出技能改变事件,用于刷新
- SL:onLUAEvent(LUA_EVENT_SelectSkill_Change)
- end
- function this.ChangeEquipSkill1()
- this.ChangeEquipSkill(1)
- end
- function this.ChangeEquipSkill2()
- this.ChangeEquipSkill(2)
- end
- function this.ChangeEquipSkill3()
- this.ChangeEquipSkill(3)
- end
- function this.ChangeEquipSkill4()
- this.ChangeEquipSkill(4)
- end
- function this.ChangeEquipSkill5()
- this.ChangeEquipSkill(5)
- end
- ---切换设置快捷技能
- function this.ChangeSkill1()
- this.ChangeSkill(1)
- end
- function this.ChangeSkill2()
- this.ChangeSkill(2)
- end
- function this.ChangeSkill3()
- this.ChangeSkill(3)
- end
- function this.ChangeSkill4()
- this.ChangeSkill(4)
- end
- function this.ChangeSkill5()
- this.ChangeSkill(5)
- end
- function this.CheckNeedOpenSet()
- if SL.GetIsShowMainUI() then
- if ConfigManager.Exsit_cfg_system_switch( PCFastKey.escSystemKey) then
- local systemData=ConfigManager.Get_cfg_system_switch( PCFastKey.escSystemKey)
- local isMeet = SL:GetMetaValue(EMetaVarGetKey.IS_OPEN_SYSTEMFUNCTION,systemData.systemName)
- if isMeet then
- KmlManager.HideAllKmlPanel()
- EventManager.Dispatch(LUA_EVENT_OPENMAINSYSTEMFUNCTION,systemData.systemName)
- --GUI:UIPanel_Open("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
- else
- SL:TipMessage( "功能未开启", 1, NoticeType.NoticeMid )
- end
- end
- else
- KmlManager.HideAllKmlPanel()
- SL.ShowMainPanel()
- end
- end
- function this.ChangeSkill(gridNum)
- local showSkills = SL:GetMetaValue(EMetaVarGetKey.SKILL_SHOW_LIST)
-
- if PCSkillInfoMgr.nowKeyId ~= 0 and showSkills[gridNum] ~= PCSkillInfoMgr.nowKeyId and SL:GetMetaValue(EMetaVarGetKey.SKILL_CHECK_IS_LEARNED,PCSkillInfoMgr.nowKeyId) then
- showSkills[gridNum] = PCSkillInfoMgr.nowKeyId
- for i = 1, 8 do
- if i ~=gridNum and showSkills[i] ==PCSkillInfoMgr.nowKeyId then
- showSkills[i] = 0
- end
- end
- SL:SetMetaValue(EMetaVarSetKey.SKILL_SHOW_LIST, showSkills)
- --sl
- --self:ShowSkillIcon()
- SL:onLUAEvent(LUA_EVENT_REFRESH_ATTACK_SKILL)
- end
- end
- function PCFastKey.OpenBigMap()
- if GUI:GetUI("dev/ui/Map/Panel/KLBigMap/KLBigMapPanel") then
-
- SL:HideBigMap()
- --SL.ShowMainPanel()
- else
- KmlManager.HideAllKmlPanel()
- SL:ShowBigMap()
- end
-
- end
- function PCFastKey.OpenChatUI()
- if GUI:GetUI("dev/ui/Chat/Panel/KLUIChatPanel/KLUIChatPanel") then
- SL:CloseChatUI()
- SL.ShowMainPanel()
- else
- KmlManager.HideAllKmlPanel()
- SL:OpenChatUI()
- end
-
- end
- ---切换自动挂机
- function PCFastKey.TurnAutoFight()
- local onHookState = SL:GetMetaValue(EMetaVarGetKey.GET_ONHOOK_STATE)
- if onHookState == EAutoOnHookStatus.PauseOnHook then
- SL:StopOnHook(true)
- elseif onHookState == EAutoOnHookStatus.StopOnHook then
- SL:StartOnHook(true,true)
- elseif onHookState == EAutoOnHookStatus.OnHooking then
- SL:StopOnHook(true)
- end
- end
- ---@param systemId number @cfg_system表id
- function PCFastKey.OpenSystemUI(systemId)
- if ConfigManager.Exsit_cfg_system_switch(systemId) then
- local systemData=ConfigManager.Get_cfg_system_switch(systemId)
- local isMeet = SL:GetMetaValue(EMetaVarGetKey.IS_OPEN_SYSTEMFUNCTION,systemData.systemName)
- if isMeet then
- local tbl = cfg_MainPanelUI_post.GetSystemInfoBySystemId(systemData.systemName)
- if tbl and not string.isNullOrEmpty(tbl.command)then
- ---如果界面开着直接return
- if GUI:GetUI(tbl.command) then
- KmlManager.HideAllKmlPanel()
- return true
- end
- end
- KmlManager.HideAllKmlPanel()
- EventManager.Dispatch(LUA_EVENT_OPENMAINSYSTEMFUNCTION,systemData.systemName)
- --GUI:UIPanel_Open("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
- else
- SL:TipMessage( "功能未开启", 1, NoticeType.NoticeMid )
- end
- return true
- --return isMeet
- end
- return false
- --return false
- end
- --查看上一条消息
- function PCFastKey.LookUpMessage()
- if DebugFlag.LogEnable then
- log("查看上一条")
- end
- EventManager.Dispatch(Event.UpOrDownBtn,true)
- end
- --查看下一条消息
- function PCFastKey.LookDownMessage()
- if DebugFlag.LogEnable then
- log("查看下一条")
- end
- EventManager.Dispatch(Event.UpOrDownBtn,false)
- end
- --打开背包
- function PCFastKey.OpenBag()
- end
- --打开角色窗口
- function PCFastKey.OpenPlayer()
- end
- --打开技能窗口
- function PCFastKey.OpenSkill()
- end
- --打开辅助窗口
- function PCFastKey.OpenSup()
- PCFastKey.Command("!!退出行会")
- end
- --返回角色选择界面
- function PCFastKey.BackToChoose()
- PopUpWindowManager.CreateMessageTemplate({ { type = MessageUIControlType.Text, text = "你想退出到选择角色界面吗?"},
- { type = MessageUIControlType.Button, text = "确定", callback = LoginManager.LeaveGameToCreateRolePanel },
- { type = MessageUIControlType.Button, position = MessageUIControlPosition.LeftBottom, text = "取消", callback = nil} })
- end
- --退出游戏
- function PCFastKey.QuitGame()
- PopUpWindowManager.CreateMessageTemplate({ { type = MessageUIControlType.Text, text = "你想退出游戏吗?" },
- { type = MessageUIControlType.Button, text = "确定", callback = LoginManager.LeaveGame },
- { type = MessageUIControlType.Button, position = MessageUIControlPosition.LeftBottom, text = "取消", callback = nil} })
- end
- --截图
- function PCFastKey.Screenshots()
- end
- --打开婚姻
- function PCFastKey.OpenMarry()
- end
- --打开商铺
- function PCFastKey.OpenShop()
- end
- --上马
- function PCFastKey.RideHorse()
- end
- --选择攻击模式
- function PCFastKey.ChangeAtk()
- EventManager.Dispatch(Event.UI_ChangeAtk,nil)
- end
- --切换状态
- function PCFastKey.ChangeState()
- end
- --开启关闭守护状态
- function PCFastKey.ChangeDef()
- end
- --打开邮件
- function PCFastKey.OpenEmail()
- UIShowPanelByMessage:Show(SL.ReqGetMailListMessage,nil,MessageDef.ResMailListMessage,"UIEMailPanel")
- end
- --使用合击技能
- function PCFastKey.UseTeamSkill()
- end
- --打开排行榜
- function PCFastKey.OpenRank()
- end
- --显示自动寻路窗口
- function PCFastKey.ShowRoad()
- end
- --发送交易请求
- function PCFastKey.SendTrade()
- --发送交易请求
- SL:ReqTradeMessage(RoleManager.meData.id)
- end
- --加入行会
- function PCFastKey.JoinSociaty()
- end
- --打开行会选择界面
- function PCFastKey.SelectSociaty()
- end
- ---@type string
- function PCFastKey.Command(date)
- if date==nil then
- if DebugFlag.LogEnable then
- log(date)
- end
- return date
- end
- if PCFastKey.JudgeStrEqul(date,ShieldTypeString[ShieldType.PrivateChat]) then
- if DebugFlag.LogEnable then
- log(string.gsub(date,ShieldTypeString[ShieldType.PrivateChat],"[私聊]"))
- end
- return string.gsub(date,ShieldTypeString[ShieldType.PrivateChat],"[私聊]")
- elseif PCFastKey.JudgeStrEqul(date,ShieldTypeString[ShieldType.Propaganda]) then
- if string.sub(date,1,2)~=nil then
- if string.sub(date,1,2) ==ShieldTypeString[ShieldType.TeamChat] then
- if DebugFlag.LogEnable then
- log(string.gsub(date,ShieldTypeString[ShieldType.TeamChat],"[组队]"))
- end
- return string.gsub(date,ShieldTypeString[ShieldType.TeamChat],"[组队]")
- --return ShieldType.TeamChat
- elseif string.sub(date,1,2)== ShieldTypeString[ShieldType.UnionChat] then
- if DebugFlag.LogEnable then
- log(string.gsub(date,ShieldTypeString[ShieldType.UnionChat],"[行会]"))
- end
- return string.gsub(date,ShieldTypeString[ShieldType.UnionChat],"[行会]")
- --return ShieldType.UnionChat
- else
- if DebugFlag.LogEnable then
- log(string.gsub(date,ShieldTypeString[ShieldType.Propaganda],"[喊话]"))
- end
- return string.gsub(date,ShieldTypeString[ShieldType.Propaganda],"[喊话]")
- --return ShieldType.Propaganda
- end
- else
- if DebugFlag.LogEnable then
- log(string.gsub(date,ShieldTypeString[ShieldType.Propaganda],"[喊话]"))
- end
- return string.gsub(date,ShieldTypeString[ShieldType.Propaganda],"[喊话]")
- --return ShieldType.Propaganda
- end
- else
- if DebugFlag.LogEnable then
- log(date)
- end
- return date
- end
- end
- function PCFastKey.JudgeStrEqul(a,b)
- if #a<#b then
- return false
- end
- for i = 1, #b do
- if string.sub(a,1,i)~=string.sub(b,1,i) then
- return false
- end
- end
- return true
- end
|