-- 全局设置界面 SkillSetView = {} local MonsterViewConfig = ConfigManager.GetConfig(ConfigName.MonsterViewConfig) local MonsterConfig = ConfigManager.GetConfig(ConfigName.MonsterConfig) local RoleConfig = ConfigManager.GetConfig(ConfigName.RoleConfig) local HeroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig) local SkillLogicConfig = ConfigManager.GetConfig(ConfigName.SkillLogicConfig) -- 初始化角色设置界面 function SkillSetView:Init(root) self.gameObject = root self.rt = Util.GetGameObject(root, "role/time1/input"):GetComponent("InputField") self.rt2 = Util.GetGameObject(root, "role/time2/input"):GetComponent("InputField") self.nt1 = Util.GetGameObject(root, "normal/time1/input"):GetComponent("InputField") self.nt2 = Util.GetGameObject(root, "normal/time2/input"):GetComponent("InputField") self.nt3 = Util.GetGameObject(root, "normal/time3/input"):GetComponent("InputField") self.nt4 = Util.GetGameObject(root, "normal/time4/input"):GetComponent("InputField") self.nt5 = Util.GetGameObject(root, "normal/time5/input"):GetComponent("InputField") self.nt6 = Util.GetGameObject(root, "normal/time6/input"):GetComponent("InputField") self.nt7 = Util.GetGameObject(root, "normal/time7/input"):GetComponent("InputField") self.nt8 = Util.GetGameObject(root, "normal/time8/input"):GetComponent("InputField") self.nt9 = Util.GetGameObject(root, "normal/time9/input"):GetComponent("InputField") self.nt10 = Util.GetGameObject(root, "normal/time10/input"):GetComponent("InputField") self.nt11 = Util.GetGameObject(root, "normal/time11/input"):GetComponent("InputField") self.nt12 = Util.GetGameObject(root, "normal/time12/input"):GetComponent("InputField") self.nt13 = Util.GetGameObject(root, "normal/time13/input"):GetComponent("InputField") self.nt14 = Util.GetGameObject(root, "normal/time14/input"):GetComponent("InputField") self.nt15 = Util.GetGameObject(root, "normal/time15/input"):GetComponent("InputField") self.nt16 = Util.GetGameObject(root, "normal/time16/input"):GetComponent("InputField") self.nt17 = Util.GetGameObject(root, "normal/time17/input"):GetComponent("InputField") self.nt18 = Util.GetGameObject(root, "normal/time18/input"):GetComponent("InputField") self.nt19 = Util.GetGameObject(root, "normal/time19/input"):GetComponent("InputField") self.nt20 = Util.GetGameObject(root, "normal/time20/input"):GetComponent("InputField") self.st1 = Util.GetGameObject(root, "special/time1/input"):GetComponent("InputField") self.st2 = Util.GetGameObject(root, "special/time2/input"):GetComponent("InputField") self.st3 = Util.GetGameObject(root, "special/time3/input"):GetComponent("InputField") self.st4 = Util.GetGameObject(root, "special/time4/input"):GetComponent("InputField") self.st5 = Util.GetGameObject(root, "special/time5/input"):GetComponent("InputField") self.st6 = Util.GetGameObject(root, "special/time6/input"):GetComponent("InputField") self.st7 = Util.GetGameObject(root, "special/time7/input"):GetComponent("InputField") self.st8 = Util.GetGameObject(root, "special/time8/input"):GetComponent("InputField") self.st9 = Util.GetGameObject(root, "special/time9/input"):GetComponent("InputField") self.st10 = Util.GetGameObject(root, "special/time10/input"):GetComponent("InputField") self.st11 = Util.GetGameObject(root, "special/time11/input"):GetComponent("InputField") self.st12 = Util.GetGameObject(root, "special/time12/input"):GetComponent("InputField") self.st13 = Util.GetGameObject(root, "special/time13/input"):GetComponent("InputField") self.st14 = Util.GetGameObject(root, "special/time14/input"):GetComponent("InputField") self.st15 = Util.GetGameObject(root, "special/time15/input"):GetComponent("InputField") self.st16 = Util.GetGameObject(root, "special/time16/input"):GetComponent("InputField") self.st17 = Util.GetGameObject(root, "special/time17/input"):GetComponent("InputField") self.st18 = Util.GetGameObject(root, "special/time18/input"):GetComponent("InputField") self.st19 = Util.GetGameObject(root, "special/time19/input"):GetComponent("InputField") self.st20 = Util.GetGameObject(root, "special/time20/input"):GetComponent("InputField") self.btnComfirm = Util.GetGameObject(root, "Root/confirm") self.btnCancel = Util.GetGameObject(root, "Root/cancel") -- Util.AddOnceClick(self.btnComfirm, function() self:ApplyData() end) -- Util.AddOnceClick(self.btnCancel, function() self:Close() end) end function SkillSetView:Show(camp, pos, BattleView) self.gameObject:SetActive(true) self.camp = camp self.pos = pos self.role = RoleManager.GetRole(camp, pos) self.roleView = BattleView.GetRoleView(self.role) if self.role==nil then return end local nSkillId = self.role.roleData.skill[1] local sSkillId = self.role.roleData.superSkill[1] self.rt.text = self.roleView.SkillCaster.actionTime*1000 self.rt2.text = self.roleView.SkillCaster.soundTime*1000 local nCId = BattleManager.GetCombatIdBySkin(nSkillId, self.role.roleData.skinId) local nCombat = BattleManager.GetSkillCombat(nCId) self.nt1.text = nCombat.BeforeEffectDelay self.nt2.text = nCombat.KeyFrame self.nt3.text = nCombat.BulletTime self.nt4.text = nCombat.DamageDelay self.nt5.text = nCombat.SkillDuration self.nt6.text = nCombat.SkillNumber self.nt7.text = nCombat.AttackDisplaceTime self.nt8.text = nCombat.AttackDisplaceBackTime self.nt9.text = nCombat.AttackDisplacement self.nt10.text = (type(nCombat.AttackDisplaceoffset[1]) == "userdata" ) and "" or (nCombat.AttackDisplaceoffset[1].."#"..nCombat.AttackDisplaceoffset[2]) self.nt11.text = nCombat.ActionTime self.nt12.text = (type(nCombat.SkillNumbetTime[1][1]) == "userdata" or nCombat.SkillNumbetTime[1][1]==0) and "" or self:SetStr(nCombat.SkillNumbetTime) self.nt14.text = nCombat.EffectType -- self.nt13.text = nCombat.Offset and nCombat.Offset[1].."#"..nCombat.Offset[2] or "" self.nt15.text = (type(nCombat.HitScale[1]) == "userdata" ) and "" or (nCombat.HitScale[1].."#"..nCombat.HitScale[2]) self.nt16.text = nCombat.HitTimeScale self.nt17.text = (type(nCombat.CloseRangeHitScale[1]) == "userdata" ) and "" or (nCombat.CloseRangeHitScale[1].."#"..nCombat.CloseRangeHitScale[2]) self.nt18.text = (type(nCombat.CloseRangeHitOffset[1]) == "userdata" ) and "" or (nCombat.CloseRangeHitOffset[1].."#"..nCombat.CloseRangeHitOffset[2]) self.nt19.text = nCombat.SkillTimeScale self.nt20.text = (type(nCombat.HitOffset[1]) == "userdata" ) and "" or (nCombat.HitOffset[1].."#"..nCombat.HitOffset[2]) local sCId = BattleManager.GetCombatIdBySkin(sSkillId, self.role.roleData.skinId) local sCombat = BattleManager.GetSkillCombat(sCId) self.st1.text = sCombat.BeforeEffectDelay self.st2.text = sCombat.KeyFrame self.st3.text = sCombat.BulletTime self.st4.text = sCombat.DamageDelay self.st5.text = sCombat.SkillDuration self.st6.text = sCombat.SkillNumber self.st7.text = sCombat.AttackDisplaceTime self.st8.text = sCombat.AttackDisplaceBackTime self.st9.text = sCombat.AttackDisplacement self.st10.text = sCombat.AttackDisplaceoffset==nil and "" or (sCombat.AttackDisplaceoffset[1].."#"..sCombat.AttackDisplaceoffset[2]) self.st11.text = sCombat.ActionTime self.st12.text =(type(sCombat.SkillNumbetTime[1][1]) == "userdata" or sCombat.SkillNumbetTime[1][1]==0 )and "" or self:SetStr(sCombat.SkillNumbetTime) self.st14.text = sCombat.EffectType -- self.st13.text = sCombat.Offset and sCombat.Offset[1].."#"..sCombat.Offset[2] or "" self.st15.text = (type(sCombat.HitScale[1]) == "userdata" ) and "" or (sCombat.HitScale[1].."#"..sCombat.HitScale[2]) self.st16.text = sCombat.HitTimeScale self.st17.text = (type(sCombat.CloseRangeHitScale[1]) == "userdata" ) and "" or (sCombat.CloseRangeHitScale[1].."#"..sCombat.CloseRangeHitScale[2]) self.st18.text = (type(sCombat.CloseRangeHitOffset[1]) == "userdata" ) and "" or (sCombat.CloseRangeHitOffset[1].."#"..sCombat.CloseRangeHitOffset[2]) self.st19.text = sCombat.SkillTimeScale self.st20.text = (type(sCombat.HitOffset[1]) == "userdata" ) and "" or (sCombat.HitOffset[1].."#"..sCombat.HitOffset[2]) end function SkillSetView:SetStr(table) local str="" for k, v in pairs( table) do str=str..v[1].."#"..v[2]..(k~=#table and "|" or "") end return str end function SkillSetView:ApplyStr(str) local table={} if str=="" then table[1]={[1]=0} return table end local stable=string.split(str,"|") for k, v in pairs(stable) do local s=string.split(v,"#") table[k]={[1]=tonumber(s[1]),[2]=tonumber(s[2])} end LogError(tostring(table)) return table end -- 应用数据 function SkillSetView:ApplyData() local nSkillId = self.role.roleData.skill[1] local sSkillId = self.role.roleData.superSkill[1] self.roleView.SkillCaster.actionTime = (tonumber(self.rt.text)or 0)/1000 self.roleView.SkillCaster.soundTime = (tonumber(self.rt2.text)or 0)/1000 local ncId = BattleManager.GetCombatIdBySkin(nSkillId, self.role.roleData.skinId) local nCombat = BattleManager.GetSkillCombat(ncId) local nBeforeEffectDelay = tonumber(self.nt1.text) or 0 local nKeyFrame = tonumber(self.nt2.text) or 0 local nBulletTime = tonumber(self.nt3.text) or 0 local nDamageDelay = tonumber(self.nt4.text) or 0 local nSkillDuration = tonumber(self.nt5.text) or 0 local nSkillNumber = tonumber(self.nt6.text) or 0 local AttackDisplaceTime = tonumber(self.nt7.text) or 0 local AttackDisplaceBackTime = tonumber(self.nt8.text) or 0 local AttackDisplacement = tonumber(self.nt9.text) or 2 local AttackDisplaceoffset = self.nt10.text=="" and {[1]=0.6,[2]=0.2} or {[1]=string.split(self.nt10.text, "#")[1],[2]=string.split(self.nt10.text, "#")[2]} local Actiontime=tonumber(self.nt11.text) or 1000 local SkillNumbetTime=self:ApplyStr(self.nt12.text) -- local Offset=self.nt13.text=="" and nil or {[1]=string.split(self.nt13.text, "#")[1],[2]=string.split(self.nt13.text, "#")[2]} local EffectType=tonumber(self.nt14.text) or 8 local HitScale=self.nt15.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.nt15.text, "#")[1],[2]=string.split(self.nt15.text, "#")[2]} local HitTimeScale= tonumber(self.nt16.text) or 1000 local CloseRangeHitScale=self.nt17.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.nt17.text, "#")[1],[2]=string.split(self.nt17.text, "#")[2]} local CloseRangeHitOffset=self.nt18.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.nt18.text, "#")[1],[2]=string.split(self.nt18.text, "#")[2]} local SkillTimeScale=tonumber(self.nt19.text) or 1000 local HitOffset=self.nt20.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.nt20.text, "#")[1],[2]=string.split(self.nt20.text, "#")[2]} nCombat.BulletTime = nBulletTime nCombat.KeyFrame = nKeyFrame nCombat.BeforeEffectDelay = nBeforeEffectDelay nCombat.DamageDelay = nDamageDelay nCombat.AttackDisplaceTime = AttackDisplaceTime nCombat.AttackDisplaceBackTime = AttackDisplaceBackTime nCombat.AttackDisplacement = AttackDisplacement nCombat.AttackDisplaceoffset = AttackDisplaceoffset nCombat.ActionTime = Actiontime nCombat.SkillNumbetTime = SkillNumbetTime -- nCombat.Offset = Offset nCombat.HitScale = HitScale nCombat.HitTimeScale = HitTimeScale nCombat.CloseRangeHitScale = CloseRangeHitScale nCombat.CloseRangeHitOffset = CloseRangeHitOffset nCombat.SkillTimeScale = SkillTimeScale nCombat.HitOffset = HitOffset BattleManager.SetSkillCombat(ncId, nCombat) self.role.skill[2] = nKeyFrame/1000 self.role.skill[3] = nSkillDuration/1000 self.role.skill[4] = nSkillNumber self.role.skill[5] = nCombat.SkillNumbetTime self.role.skill[6] = AttackDisplaceoffset local scId = BattleManager.GetCombatIdBySkin(sSkillId, self.role.roleData.skinId) local sCombat = BattleManager.GetSkillCombat(scId) local sBeforeEffectDelay = tonumber(self.st1.text) or 0 local sKeyFrame = tonumber(self.st2.text) or 0 local sBulletTime = tonumber(self.st3.text) or 0 local sDamageDelay = tonumber(self.st4.text) or 0 local sSkillDuration = tonumber(self.st5.text) or 0 local sSkillNumber = tonumber(self.st6.text) or 0 local sAttackDisplaceTime = tonumber(self.st7.text) or 0 local sAttackDisplaceBackTime = tonumber(self.st8.text) or 0 local sAttackDisplacement = tonumber(self.st9.text) or 2 local sAttackDisplaceoffset = self.st10.text=="" and {[1]=0.6,[2]=0.2} or {[1]=tonumber(string.split(self.st10.text, "#")[1]),[2]=tonumber(string.split(self.st10.text, "#")[2])} local sActiontime=tonumber(self.st11.text) or 1000 local sSkillNumbetTime=self:ApplyStr(self.st12.text) -- local sOffset=self.st13.text=="" and nil or {[1]=string.split(self.st13.text, "#")[1],[2]=string.split(self.st13.text, "#")[2]} local sEffectType=tonumber(self.st14.text) or 8 local sHitScale=self.st15.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.st15.text, "#")[1],[2]=string.split(self.st15.text, "#")[2]} local sHitTimeScale= tonumber(self.st16.text) or 1000 local sCloseRangeHitScale=self.st17.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.st17.text, "#")[1],[2]=string.split(self.st17.text, "#")[2]} local sCloseRangeHitOffset=self.st18.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.st18.text, "#")[1],[2]=string.split(self.st18.text, "#")[2]} local sSkillTimeScale=tonumber(self.st19.text) or 1000 local sHitOffset=self.st20.text=="" and {[1]=1000,[2]=1000} or {[1]=string.split(self.st20.text, "#")[1],[2]=string.split(self.st20.text, "#")[2]} sCombat.BulletTime = sBulletTime sCombat.KeyFrame = sKeyFrame sCombat.BeforeEffectDelay = sBeforeEffectDelay sCombat.DamageDelay = sDamageDelay sCombat.AttackDisplaceTime = sAttackDisplaceTime sCombat.AttackDisplaceBackTime = sAttackDisplaceBackTime sCombat.AttackDisplacement = sAttackDisplacement sCombat.AttackDisplaceoffset = sAttackDisplaceoffset ==nil and nil or sAttackDisplaceoffset sCombat.ActionTime =sActiontime sCombat.SkillNumbetTime =sSkillNumbetTime -- sCombat.Offset =sOffset sCombat.EffectType =sEffectType sCombat.HitScale = sHitScale sCombat.HitTimeScale = sHitTimeScale sCombat.CloseRangeHitScale = sCloseRangeHitScale sCombat.CloseRangeHitOffset = sCloseRangeHitOffset sCombat.SkillTimeScale = sSkillTimeScale sCombat.HitOffset = sHitOffset BattleManager.SetSkillCombat(scId, sCombat) self.role.superSkill[2] = sKeyFrame/1000 self.role.superSkill[3] = sSkillDuration/1000 self.role.superSkill[4] = sSkillNumber self.role.superSkill[5] = sCombat.SkillNumbetTime self.role.superSkill[6] = sAttackDisplaceoffset PopupTipPanel.ShowTip(Language[10212]) end -- 关闭界面 function SkillSetView:Close() self.gameObject:SetActive(false) end