battlemanager 提交

dev_chengFeng
wangzhenxing 2023-04-04 16:49:58 +08:00
parent 6f5528173c
commit d3c0c9671b
2 changed files with 97 additions and 4 deletions

View File

@ -8,6 +8,7 @@ local MonsterConfig = ConfigManager.GetConfig(ConfigName.MonsterConfig)
local duoDuiTowerHero=ConfigManager.GetConfig(ConfigName.DuoDuiTowerHero)
local CombatControl = ConfigManager.GetConfig(ConfigName.CombatControl)
local SpiritAnimalSkill = ConfigManager.GetConfig(ConfigName.SpiritAnimalSkill)
local ShenBingSkill=ConfigManager.GetConfig(ConfigName.ShenBingSkill)
local playerSkill = ConfigManager.GetConfig(ConfigName.PlayerSkill)
local FakeBattleNew = ConfigManager.GetConfig(ConfigName.FakeBattleNew)
local FEAConfig = require("Modules/Battle/Config/FightEffectAudioConfig")
@ -21,6 +22,7 @@ local function pairsByKeys(t)
end
table.sort(a, function( op1, op2 )
local type1, type2 = type(op1), type(op2)
-- LogError("op1=="..op1.." op2=="..op2)
local num1, num2 = tonumber(op1), tonumber(op2)
if ( num1 ~= nil) and (num2 ~= nil) then
@ -243,6 +245,32 @@ function this.MonsterSkillAdapter(MSkillId)
return skill
end
function this.WeaponSkillAdapter(MSkillId)
local skill = {}
if MSkillId then
LogError("mskillid======"..MSkillId)
local monsterSkill = ShenBingSkill[tonumber(MSkillId)]
for index, skillId in ipairs(monsterSkill.SkillIDList) do
skill[index] = {}
skill[index].effect = this.GetSkillData(tonumber(skillId))
skill[index].triggerId = monsterSkill.ReleasePoint[index]
skill[index].triggerCondition = {0}
if monsterSkill.ReleaseLimit and monsterSkill.ReleaseLimit[index] then
for k, v in ipairs(monsterSkill.ReleaseLimit[index]) do
skill[index].triggerCondition[k] = v
end
end
skill[index].maxCount = monsterSkill.WarEffectCount[index] or 999
skill[index].maxRoundCount = monsterSkill.TurnEffectCount[index] or 999
end
end
return skill
end
function this.PlayerSkillAdapter(MSkillId)
local skill = {}
local monsterSkill = playerSkill[tonumber(MSkillId)]
@ -314,6 +342,54 @@ function this.PokemonUnitAdapter(pokemonUnit,camp,_teamDamage)
return role
end
function this.GodWeaponUnitAdapter(pokemonUnit,camp,_teamDamage)
-- 基础数据
--LogError("teamdamage=="..tonumber(pokemonUnit.forceScore))
local role = {
id = tonumber(pokemonUnit.unitId),
position = tonumber(pokemonUnit.position),
star = tonumber(pokemonUnit.star),
teamDamage = tonumber(pokemonUnit.forceScore),
sex= tonumber(pokemonUnit.playerSex),
camp = camp,
skill = {},
property = {},
}
-- 技能
LogError("pokemonUnit.unitSkillIds=="..pokemonUnit.unitSkillIds)
if pokemonUnit.unitSkillIds~=nil and tonumber(pokemonUnit.unitSkillIds)~=0 then
local skills = string.split(pokemonUnit.unitSkillIds, "|")
if skills then
if skills[1] then
local actives=string.split(skills[1], "#")
for i = 1, #actives do
role.skill[i]= this.WeaponSkillAdapter(tonumber(actives[i]))
local shenbing=ShenBingSkill[tonumber(actives[i])]
if shenbing and shenbing.PassiveSkill then
local passs=string.split(shenbing.PassiveSkill, "#")
local passivityList = {}
for j = 1, #passs do
table.insert(passivityList, tonumber(passs[j]))
end
role.passivity = this.GetPassivityData(passivityList)
end
end
end
end
end
-- 属性
local propertys = string.split(pokemonUnit.property, "#")
for j = 1, #propertys do
role.property[j] = tonumber(propertys[j])
end
return role
end
---获取服务端传过来的战斗数据和随机数种子
---参数2 isFightPlayer 0和怪物对战 1和玩家对战
function this.GetBattleServerData(msg, isFightPlayer)
@ -391,8 +467,8 @@ function this.GetBattleServerData(msg, isFightPlayer)
end
-- 一些战斗外数据
fightData.playerData.outData = data.specialPassive
-- LogRed("战斗外数据 ==================== "..data.specialPassive)
-- 灵兽数据
fightData.playerData.monsterList ={}
if data.pokemonUnitList then
@ -402,9 +478,15 @@ function this.GetBattleServerData(msg, isFightPlayer)
end
end
-- 神兵数据
fightData.playerData.weaponList ={}
if data.MagicSoldierList then
for i = 1, #data.MagicSoldierList do
local weaponData=data.MagicSoldierList[i]
fightData.playerData.weaponList[i] = this.GodWeaponUnitAdapter(weaponData,0,data.forceScore)
end
end
-- 敌方
--
for i = 1, #msg.fightData.monsterList do
local data2 = msg.fightData.monsterList[i]
fightData.enemyData[i] = { teamSkill = {}, teamPassive = {} , firstCamp = 0, }
@ -514,6 +596,14 @@ function this.GetBattleServerData(msg, isFightPlayer)
fightData.enemyData[i].monsterList[k] = this.PokemonUnitAdapter(data2.pokemonUnitList[k],1,data2.forceScore)
end
end
--神兵数据
fightData.enemyData[i].weaponList ={}
if data2.MagicSoldierList then
for k = 1, #data2.MagicSoldierList do
local weaponData=data2.MagicSoldierList[k]
fightData.enemyData[i].weaponList[k] = this.GodWeaponUnitAdapter(weaponData,1,data.forceScore)
end
end
end
--精英副本关卡id
fightData.nodeId = msg.fightData.nodeId

View File

@ -43,6 +43,7 @@ BattleEventName = {
BattleEnd = indexAdd(),
AddRole = indexAdd(),
AddMonster = indexAdd(),
AddWeapon = indexAdd(),
RemoveRole = indexAdd(),
RemoveMonster = indexAdd(),
MpChanged = indexAdd(),
@ -201,7 +202,8 @@ BattleEventName = {
CheckDamageIsImmune = indexAdd(),--检测伤害是否免疫
BloodValueGetZero = indexAdd(), --御甲值清零
RoleAddBuffCheckBan = indexAdd(),--角色添加buff检测是否被禁止
WeaponSkillCast = indexAdd(), --神兵技能释放
CheckFalseNoDead = indexAdd(), --检测伪不灭
}
BattleMaxFrame = 1000000
@ -288,6 +290,7 @@ BuffName = {
AddAttack = 18,
Suppress = 19,
BuDongSign = 20,
FalseNoDead=21, --伪不灭
}
DotType = {