syntax = "proto3"; import "MsgStruct.proto"; import "MsgEnum.proto"; package com.fort23.protocol.protobuf; message CombatData { repeated HeroData myHero = 1; repeated HeroData enemyHero = 2; } message HeroData { int64 heroGuid = 1; int64 HP = 2; int64 Defense = 3; int64 Attack = 4; //转码后 int64 AttackSpeed = 5; int64 SkillChargeSpeed = 6; int32 Awaken = 7; int64 Power = 8; int64 WeaponDps = 9; int64 ShieldValue = 10; int64 HeroDps = 11; int64 Crit = 13; int64 CritDamage = 14; int32 HeroLevel = 24; int64 HitOdds = 26; int32 MaxSpaceEnergy = 27; sint32 ID = 30; // 评分 int32 score = 31; int64 FallResistance = 32; int64 DebuffDodge = 33; int64 SmallSkillsSpeed = 34; int64 DebuffHitOdds = 35; int64 addCure = 36; int64 Proficient = 37; int64 MaxHarm = 38; } /* 英雄信息 */ message CombatHero { // 英雄ID int32 id = 1; // 英雄等级 int32 level = 2; // 觉醒等级 int32 awakenLevel = 4; // 英雄随身装备 repeated Equipment equipment = 5; // 英雄装备武器 Weapon equipWeapon = 7; // 英雄装备遗物列表 repeated Relic equipRelics = 14; // 已装备秘石 Gem equipGem = 17; // 英雄血量百分百 int32 hpPercent = 18; // 技能能量百分比 默认是0 int32 skillEnergy = 19; } //模拟战斗game服请求验证服的信息 message SimulationCombat { CombatType combatType = 1; repeated CombatHero myHero = 2; int32 combatSeed = 3; int32 levelBattleId = 4; // SimulationLevelBattle levelBattle = 4; SimulationTestCombat SimulationTestCombat = 5; SimulationFightTogether SimulationFightTogether = 6; //随机数 // int32 randomValue = 7; //左边的英雄 这个准备不用了 repeated VerifyHero leftHero = 8; //右边的英雄 这个准备不用了 repeated VerifyHero rightHero = 9; //Buff列表 repeated StageBuff buffs = 10; //队伍神器ID int32 goldenRelicId = 11; //客户端的战斗信息 CombatResult clientCombatResult = 12; //左边英雄输入 repeated CombatInputCode leftInput=13; //右边英雄输入(目前没有,看后面有PVP没) repeated CombatInputCode rightInput=14; // 副本ID int32 challengeId = 15; // 是否委托战斗 bool isAutoFight = 16; // 图鉴信息 repeated Medal medals = 17; // 怪物词缀(RogueLike战斗) repeated MonsterGroup monsterGroups = 18; // 节点序号(RogueLike战斗) int32 nodeOrder = 19; // Rogue配置ID(RogueLike战斗) int32 rogueConfigId = 20; // 冒险机关ID int32 stageTrapId = 21; // 冒险机关节点ID int32 stageTrapNodeId = 22; // 玩家飞艇等级 int32 playerLevel = 23; //玩家ID int64 playerId=24; } //模拟站到返回给game服的信息 message SimulationCombatResponse { CombatType combatType = 1; SimulationFightTogetherResponse SimulationFightTogetherResponse = 2; CombatResult combatResult = 3; } // 战斗结果信息 message CombatResult { // 我方的战斗结果英雄数据,需要传到服务器做校验 repeated HeroData myHeroData = 3; // 敌方的战斗英雄数据,需要传到服务器做校验 repeated HeroData enemyHeroData = 4; // 战斗是否胜利 bool isWin = 9; // 通关时间 int32 time = 11; //开始游戏时的数据 repeated HeroData myStartGameHeroData = 12; // 开始游戏时的数据 repeated HeroData enemyStartGameHeroData = 13; } //共斗返回给game服务器的信息 message SimulationFightTogetherResponse { repeated FightTogetherPlayerInfo FightTogetherPlayerInfo = 1; int32 levelBattleId = 2; repeated FightTogetherInfo FightTogetherInfo = 3; int32 combatSeed = 4; } message FightTogetherInfo { int64 playerId = 1; int32 port = 3; string ip = 4; uint32 conv = 5; } message SimulationFightTogether { repeated FightTogetherPlayerInfo FightTogetherPlayerInfo = 1; int32 levelBattleId = 2; int32 roomId = 3; // 战斗结束通知url string notifyUrl = 4; } message SimulationLevelBattle { int32 levelBattleId = 1; } message SimulationTestCombatHeroInfo { CombatHero combatHero = 1; //额外信息 combatHero+=heroData; HeroData heroData = 2; //英雄GUID int32 guid = 3; } //模拟测试战斗 message SimulationTestCombat { repeated SimulationTestCombatHeroInfo myHero = 1; repeated SimulationTestCombatHeroInfo enemyHero = 2; } enum InputCode { Null = 0; //使用技能 UseSkill = 1; //堆叠 ToStack = 2; //使用神器 UseArtifact = 3; } //战斗输入命令 message CombatInputCode { int32 heroguid = 1; int32 heroid = 2; InputCode inputCode = 3; bool ToStackForIsUp = 4; //游戏帧 int32 gameFrame = 5; //编号 int64 serialNumber = 6; } message HeroUseSkill { int32 skillID = 1; } message CombatSynchronizeRequest { CombatSynchronizeType CombatSynchronizeType = 1; FightTogetherCombatPrepareFinish FightTogetherCombatPrepareFinish = 2; repeated CombatInputCode combatInputCode = 3; //测试模拟的出战英雄 SimulationFightTogether TestSimulationFightTogether = 6; //测试用的战斗开始标记 TestStartCombatSynchronize TestStartCombatSynchronize = 7; } message CombatSynchronizeResponse { CombatSynchronizeType CombatSynchronizeType = 1; CombatSynchronizeData CombatSynchronizeData = 4; FightTogetherCombatPrepareStart FightTogetherCombatPrepareStart = 5; } message TestStartCombatSynchronize { } message CombatSynchronizeResponsePack { repeated CombatSynchronizeResponse allCombatSynchronizeResponse = 1; int64 time = 6; } message FightTogetherCombatPrepareFinish { ///编号 int64 serialNumber = 2; //玩家id int32 playerId = 3; } message FightTogetherPlayerInfo { repeated SimulationTestCombatHeroInfo myHero = 1; ///编号 int64 serialNumber = 2; //玩家id int64 playerId = 3; //神器ID int32 relicId = 4; //玩家端口 int32 serverPort = 5; //玩家状态 0=空闲 1=准备 2=离开 int32 playerSate = 6; //玩家名字 string playerName = 7; //玩家等级 int32 level = 8; // 选择的Buff int32 buffId = 9; // 玩家头像 int32 playerIcon = 10; // 玩家称呼 int32 selectTitle = 11; // 客户端端口 int32 clientPort = 12; // 是否是机器人 bool isRobot = 13; // 战斗力 int64 battlePower = 14; } message FightTogetherCombatPrepareStart { repeated FightTogetherPlayerInfo myHero = 1; int32 levelBattleId = 2; } message CreateHeroInfo { repeated FightTogetherPlayerInfo myHero = 1; } //验证时的英雄数据 message VerifyHero { int32 heroGuid = 1; int32 heroId = 2; int64 maxHarm = 3; //每一帧的数据 repeated VerifyHeroInfoForFrame verifyHeroInfo = 100; } message VerifyHeroInfoForFrame { int32 frame = 1; int32 hashCode = 2; SynchronizeHeroInfoList SynchronizeHeroInfoKeyList = 101; } message CombatAddBuff { int32 buffId = 1; int64 targetSerialNumber = 2; int32 targetHeroId = 3; int64 sourceSerialNumber = 4; int32 sourceHeroId = 5; int64 buffTime = 6; } message CombatSynchronizeData { CampInfo myCampInfo = 1; CampInfo enemyCampInfo = 2; //游戏帧 int32 gameFrame = 6; int32 seedInext = 7; int32 inextp = 8; int32 randCount = 9; int32 randCount2 = 10; //游戏结束 bool isGameOver = 11; bool isWin = 12; } message CampInfo { repeated SynchronizeHeroInfo SynchronizeMyHeroInfo = 1; repeated CombatInputCode SynchronizeMyCombatInputCode = 4; repeated SynchronizeHarmInfo SynchronizeMyHarmInfo = 7; repeated CombatAddBuff SynchronizeAddBuff = 14; } message SynchronizeHeroInfo { int32 sourceHeroGuid = 1; //英雄状态 int32 heroState = 4; int64 serialNumber = 5; int64 attHarm = 20; int64 bearHarm = 21; int64 recover = 22; SynchronizeLocationInfo SynchronizeLocationInfo = 100; SynchronizeHeroInfoList SynchronizeHeroInfoKeyList = 101; } message SynchronizeHeroInfoKeyValue { string key = 1; int64 value = 2; } message SynchronizeHeroInfoByteKeyValue { string key = 1; bytes value = 2; } //同步伤害 message SynchronizeHarmInfo { int64 value = 1; int64 serialNumber = 2; int64 targetSerialNumber = 3; int32 targetHeroId = 4; int64 sourceSerialNumber = 5; int32 sourceHeroId = 6; //1=伤害 2=恢复 int32 harmType = 7; int32 attTypeValue = 8; int32 harmTypeValue = 9; } message SynchronizeLocationInfo { int64 x = 5; int64 y = 6; int64 rx = 7; int64 rz = 8; } message SynchronizeHeroInfoList { int64 hp = 1; }