-- 全局设置界面 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.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.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 = nCombat.AttackDisplaceoffset==nil and "" or (nCombat.AttackDisplaceoffset[1].."#"..nCombat.AttackDisplaceoffset[2]) self.nt11.text = nCombat.ActionTime self.nt12.text = 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 "" 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 = 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 "" 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 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.EffectType = EffectType 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 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 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