477 lines
14 KiB
Protocol Buffer
477 lines
14 KiB
Protocol Buffer
syntax = "proto3";
|
||
package fishing;
|
||
option go_package = "mongo.games.com/game/protocol/fishing";
|
||
//操作结果
|
||
enum OpResultCode {
|
||
OPRC_Sucess = 0; //成功
|
||
OPRC_Error = 1; //失败
|
||
OPRC_CoinNotEnough = 1056; //钱不够
|
||
}
|
||
//捕鱼
|
||
enum FIPacketID {
|
||
FISHING_ZERO = 0; // 弃用消息号
|
||
FISHING_SC_ROOMINFO = 5000; // 房间信息
|
||
|
||
FISHING_CS_OP = 5001; // 玩家操作(客户-》服务)
|
||
FISHING_SC_OP = 5002; // 玩家操作(服务-》客户)
|
||
|
||
FISHING_SC_ROOMSTATE = 5003; // 房间状态
|
||
FISHING_SC_SEATS = 5004; // 座位信息
|
||
|
||
FISHING_SC_SYNCFISH = 5006; // 同步鱼,帧同步,每100毫秒一帧
|
||
FISHING_SC_FISHERENTER = 5007; // 同步存活的鱼
|
||
FISHING_CS_LOADCOMPLETE = 5008; // 获取存活的鱼
|
||
|
||
FISHING_SC_FIRE = 5009; // 通知开枪
|
||
FISHING_SC_FIREHIT = 5010; // 通知命中
|
||
FISHING_SC_FIREPOWER = 5011; // 设置炮台倍率
|
||
|
||
FISHING_CS_FREEZE = 5012;
|
||
FISHING_SC_FREEZE = 5013; // 通知冰冻事件
|
||
|
||
FISHING_CS_FISHVIEW = 5014; // 触发鱼事件
|
||
FISHING_SC_FISHVIEW = 5015;
|
||
|
||
FISHING_CS_FISHTARGET = 5016; // 瞄准
|
||
FISHING_SC_FISHTARGET = 5017; // 通知瞄准
|
||
|
||
FISHING_SC_SELVIP = 5018;
|
||
FISHING_SC_ENTER = 5019;
|
||
FISHING_SC_LEAVE = 5020;
|
||
FISHING_SC_FISHDEL = 5022;
|
||
FISHING_SC_JACKPOTFISHDEL = 5023;
|
||
FISHING_CS_LOOKLOCKFISH = 5024;
|
||
FISHING_SC_LOOKLOCKFISH = 5025;
|
||
FISHING_SC_PRANACHANGE = 5026; // 能量炮变化
|
||
FISHING_CS_REALYPRANA = 5027; // 放置能量炮炮台
|
||
FISHING_SC_REALYPRANA = 5028; // 放置能量炮炮台
|
||
FISHING_CS_FIREPRANA = 5029; // 发射能量炮
|
||
FISHING_SC_FIREPRANA = 5030; // 发射能量炮
|
||
FISHING_SC_JACKPOTPOOLCHANGE = 5031; // jackpot变化
|
||
FISHING_SC_JACKPOTCOIN = 5032; // 爆奖
|
||
FISHING_SC_RETPRANACOIN = 5033; // 客户端显示使用
|
||
FISHING_SC_REBINDAGENT = 5034; //重新绑定机器人
|
||
FISHING_SC_FIREMISS = 5035; //攻击未命中(可能鱼不存在)
|
||
FISHING_SC_SCROBOTBEHAVIOR = 5036; // 通知前端变更机器人行为
|
||
FISHING_SC_SCSYNCFISHCOIN = 5037; // 同步财神鱼金额
|
||
FISHING_SC_NEWSYNCFISH = 5038 ;
|
||
FISHING_SC_TREASURECHESTEVENT = 5039; // 龙王夺宝相关事件处理机
|
||
FISHING_SC_SYNCFISHHP = 5040; // 天天捕鱼同步鱼血条
|
||
FISHING_SC_POWERSTATE = 5041 ; // 同步玩家得炮台状态
|
||
|
||
FISHING_SC_NOTIFYAPPEARFISH = 5042;//通知客户端出鱼
|
||
FISHING_SC_NOTIFYCHANGESCENE = 5043;//通知客户端切换场景
|
||
FISHING_CS_SKILLLISTREQ = 5044;//请求房间技能列表
|
||
FISHING_SC_SKILLLISTRESP = 5045;//通知客户端房间技能列表
|
||
FISHING_CS_SKILLUSEREQ = 5046;//客户端通知使用技能
|
||
FISHING_SC_SKILLUSERESP = 5047;//使用技能返回消息
|
||
FISHING_SC_SKILLUSEBEGIN = 5048;//通知其他玩家使用技能开始
|
||
|
||
FISHING_CS_SYNCTIMEPOINT = 5049;//客户端请求帧同步
|
||
FISHING_SC_SYNCTIMEPOINT = 5050;//服务器返回帧同步
|
||
|
||
}
|
||
message FishingPlayerData {
|
||
string Name = 1; //名字
|
||
int32 SnId = 2; //账号
|
||
int32 Head = 3; //头像
|
||
int32 Sex = 4; //性别
|
||
int64 Coin = 5; //金币
|
||
int32 Pos = 6; //座位位置
|
||
int32 Flag = 7; //二进制标记
|
||
string Params = 8; //其他数据 如:ip 等
|
||
string City = 9; //城市
|
||
int32 HeadOutLine = 10; //头像框
|
||
int32 VIP = 11;
|
||
int32 SelVip = 12; //选择的VIP鱼炮
|
||
int32 Power = 13;
|
||
bool IsRobot = 14; //0 正常玩家 1 机器人
|
||
int32 AgentParam = 15; //IsRobot=0 代理的机器人ID; IsRobot=1 代理发炮的真人ID;
|
||
int32 TargetSel = 16; //瞄准
|
||
int32 AutoFishing = 17;//自动
|
||
int32 FireRate = 18; //发炮倍速
|
||
int32 PranaPercent = 19; //能量炮蓄池
|
||
int32 NiceId = 20;
|
||
repeated int32 RobotSnIds = 21; //代理的机器人们
|
||
int64 UnMaxPower = 22;//解锁的最大炮倍
|
||
repeated int32 UnPowerList= 23;//解锁的炮台
|
||
int64 Level = 24;//捕鱼等级
|
||
int64 Exp = 25;//捕鱼经验
|
||
}
|
||
|
||
//房间信息
|
||
message SCFishingRoomInfo {
|
||
int32 RoomId = 1; //房间id
|
||
int32 Creator = 2; //创建者SnId
|
||
int32 GameId = 3; //游戏id
|
||
int32 RoomMode = 4; //游戏模式
|
||
repeated int32 Params = 5; //规则参数
|
||
int32 NumOfGames = 6; //当前第几局
|
||
repeated int32 Cards = 7; //转盘数据
|
||
int32 State = 8; //房间当前状态
|
||
int32 TimeOut = 9; //等待剩余时间 单位:毫秒
|
||
int32 DisbandGen = 10; //解散申请
|
||
int32 AgentId = 11; //代开房者
|
||
repeated int32 MatchParams = 12; //比赛参数
|
||
int32 SceneType = 13; //房间模式 1:初级模式 3:高级模式
|
||
repeated FishingPlayerData Players = 14; //房间内的玩家信息
|
||
int32 GameFreeId = 15;
|
||
int32 FrozenTick = 16; //冰冻时间
|
||
int64 JackpotPool = 17; //奖金池
|
||
int32 MinPower = 18; //房间的最小炮倍
|
||
int32 MaxPower = 19; //房间的最大炮倍
|
||
repeated int64 PowerList = 20;//炮倍列表
|
||
int32 ChangeSceneId = 21;//当前使用的场景
|
||
}
|
||
|
||
//玩家操作
|
||
message CSFishingOp {
|
||
//开炮 OpCode:0 Params:{炮火的X方向,炮火的Y方向,子弹编号,子弹倍率,fishId如果锁定鱼了,代表表示鱼的ID(默认发-1),multiple 子弹倍数 默认1倍}
|
||
//命中 OpCode:1 params:{子弹编号,鱼ID,鱼ID,鱼ID,鱼ID,鱼ID,鱼ID,鱼ID}
|
||
//切换倍率 OpCode:2 Params:{每一击金币数量}
|
||
//切换VIP鱼炮 OpCode:3 Params:{VIP}
|
||
//机器人开炮 OpCode:4 Params:{机器人ID,炮火的X方向,炮火的Y方向,子弹编号,子弹倍率,fishId如果锁定鱼了代表 表示鱼的ID(默认发-1),}
|
||
//机器人命中 OpCode:5 params:{机器人ID,子弹编号,鱼ID,鱼ID,鱼ID,鱼ID,鱼ID,鱼ID,鱼ID}
|
||
//切后台 OpCode:6
|
||
//切前台 OpCode:7
|
||
int32 OpCode = 1; //操作码
|
||
repeated int64 Params = 2; //操作参数
|
||
}
|
||
|
||
message SCFishingOp {
|
||
int32 OpCode = 1; //操作码
|
||
repeated int64 Params = 2; //操作参数
|
||
OpResultCode OpRetCode = 3; //返回错误码
|
||
int32 SnId = 4;
|
||
}
|
||
|
||
//FISHING_SC_FIRE
|
||
message SCFire {
|
||
int32 Snid = 1;
|
||
int32 X = 2;//炮火的方向
|
||
int32 Y = 3;//炮火的方向
|
||
int32 Bulletid = 4; //子弹ID
|
||
int32 Power = 5; //子弹倍率-
|
||
int64 CurrentPlayerCoin = 6; //当前玩家的金币
|
||
int32 FishId = 7;//如果锁定鱼了,代表表示鱼的ID(默认发-1)
|
||
int32 Multiple = 8;//狂暴倍数
|
||
}
|
||
|
||
//FISHING_SC_FIREHIT
|
||
message SCFireHit{
|
||
int32 Snid = 1;
|
||
repeated int32 FishId = 2; // 鱼ID
|
||
repeated int32 Coin = 3; // 获得金币,和FishId一一对应
|
||
repeated int32 Item = 4; //获得的道具
|
||
int32 Money = 5; //获得的钻石
|
||
int64 Ts = 6; // 时间戳
|
||
int32 Event = 7; // 事件ID
|
||
int32 EventFish = 8; // 事件鱼id
|
||
int64 CurrentPlayerCoin = 9;// 当前玩家的金币
|
||
int32 EventCoin = 10; // 事件鱼自身的金币(用户弹暴富累加用)
|
||
int32 Power = 11; // 炮倍
|
||
int32 AddExp = 12; //经验值
|
||
}
|
||
|
||
//FISHING_SC_TREASURECHESTEVENT
|
||
message SCTreasureChestEvent {
|
||
int32 Snid = 1; // 玩家ID
|
||
repeated int32 Reward = 2; // 对应奖励倍数集合
|
||
int64 CurrentPlayerCoin = 3; //当前玩家的金币
|
||
}
|
||
|
||
//FISHING_SC_FIREMISS
|
||
message SCFireMiss{
|
||
int32 FishId = 1; //鱼标识
|
||
int32 Rate = 2; //击杀概率,-1表示鱼不存在
|
||
}
|
||
|
||
//FISHING_SC_FIREPOWER
|
||
message SCFirePower{
|
||
int32 Snid = 1;
|
||
int32 Power = 2;//每一击金币数量
|
||
bool RobitFire = 3;//机器人能否开火
|
||
int32 TargetPower = 4;//机器人目标倍率
|
||
}
|
||
|
||
//FISHING_SC_SELVIP
|
||
message SCSelVip{
|
||
int32 Snid = 1;
|
||
int32 Vip = 2;//选择的VIP鱼炮
|
||
}
|
||
//房间状态
|
||
message SCFishingRoomState {
|
||
int32 State = 1; //房间当前状态
|
||
int32 SubState = 2; //房间当前子状态
|
||
repeated int32 Params = 3; //状态参数
|
||
}
|
||
//座位数据
|
||
message SCFishingSeats {
|
||
repeated FishingPlayerData Data = 1; //房间当前状态
|
||
}
|
||
//进入房间
|
||
message SCfishingEnter{
|
||
FishingPlayerData Data = 1; //新用户
|
||
}
|
||
//退出房间
|
||
message SCfishingLeave{
|
||
int32 SnId = 1; //用户
|
||
}
|
||
//fishid定义:policyid*1000000 + DB_Policyx.Id*100 + 单行的自增长id
|
||
message SCSyncRefreshFish {
|
||
int32 PolicyId = 1; //
|
||
int32 TimePoint = 2;
|
||
int32 RandomSeed = 3; //当前随机种子
|
||
}
|
||
|
||
message SyncRefreshFishInfo {
|
||
int32 TemplateId = 1; // 需要更新鱼的ID 用于在配置表中 查询具体数据 例如 : 7004,7005,7006
|
||
int32 Num = 2; // 当前这类鱼需要更新的数量
|
||
}
|
||
|
||
|
||
message SCNewSyncRefreshFish {
|
||
int32 PolicyId = 1; // 当前对用的场景策略ID
|
||
repeated SyncRefreshFishInfo info = 2 ; // 需要更新的鱼的信息
|
||
int32 LatestID = 3;
|
||
int32 RandomSeed = 4; //当前随机种子
|
||
}
|
||
|
||
|
||
//FISHING_SC_FISHERENTER
|
||
message FishInfo {
|
||
int32 FishID = 1; //鱼的Id唯一表示
|
||
int32 FishType = 2; //鱼的类型 对应Fish表
|
||
int32 FishPath = 3; //出鱼路径
|
||
int32 FishSpeed = 4; //鱼的速度
|
||
repeated int32 FishChild = 5; //孩子 后续用
|
||
int32 BirthTick = 6; //出生帧
|
||
int32 LiveTick = 7; //结束帧
|
||
}
|
||
//FISHING_CS_LOADCOMPLETE
|
||
message CSLoadComplete {
|
||
}
|
||
message SCFishesEnter {
|
||
//int32 PolicyId = 1;
|
||
repeated FishInfo Fishes = 2;
|
||
int32 IceSec = 3; //冰冻时间(秒)
|
||
int32 TimeTick = 4;
|
||
}
|
||
|
||
//屏幕中的鱼 FISHING_CS_FISHVIEW
|
||
message CSFishView {
|
||
repeated int32 Fishs = 1; // 收集的鱼
|
||
string Sign = 2; // 事件唯一标记
|
||
int32 EventFish = 3; // 事件鱼标识
|
||
int32 SnId = 4; // 玩家SnId
|
||
}
|
||
|
||
//message SCFishView {
|
||
// int32 FishID = 1;//鱼类型 0:所有的鱼 非0:固定ID类型的鱼
|
||
// int32 Sign = 2;//回传标记
|
||
//}
|
||
|
||
|
||
message PlayerPowerState {
|
||
int32 Snid = 1; // 玩家ID
|
||
int32 State = 2; // 炮台状态
|
||
int32 Num = 3; // 炮台剩余数量
|
||
}
|
||
|
||
// 更新当前玩家炮台状态
|
||
message SCPowerState {
|
||
repeated PlayerPowerState PowerState = 1;
|
||
}
|
||
|
||
// 鱼已经死亡返回鱼分 FISHING_SC_FishDel
|
||
message SCFishDel{
|
||
int32 FishId = 1;
|
||
int32 Coin = 2; // 返回发炮金币
|
||
int64 CurrentPlayerCoin = 3; //当前玩家的金币v
|
||
int32 Snid = 4;
|
||
}
|
||
|
||
// 通知客户端该条鱼是奖金鱼 FISHING_SC_JACKPOTFishDel
|
||
message SCJackpotFish{
|
||
repeated int32 FishIds = 1;
|
||
}
|
||
|
||
// FISHING_CS_LOOKLOCKFISH
|
||
message CSLookLockFish{
|
||
|
||
}
|
||
|
||
// FISHING_SC_LOOKLOCKFISH
|
||
message SCLookLockFish{
|
||
repeated int32 FishId = 1;
|
||
repeated int32 FishIdNum = 2;
|
||
}
|
||
|
||
// FISHING_SC_PRANACHANGE 通知客户端能量炮蓄池变化
|
||
message SCSendReadyPrana{
|
||
int32 SnId = 1;
|
||
int32 Percent = 2;
|
||
}
|
||
|
||
// FISHING_CS_REALYPRANA = 5027; // 放置能量炮炮台
|
||
message CSReadyPrana{
|
||
int32 SnId = 1;
|
||
int32 X = 2;
|
||
int32 Y = 3;
|
||
}
|
||
// FISHING_SC_REALYPRANA = 5028; // 放置能量炮炮台
|
||
message SCReadyPrana{
|
||
int32 SnId = 1;
|
||
OpResultCode OpRetCode = 2; //返回错误码
|
||
int32 X = 3;
|
||
int32 Y = 4;
|
||
}
|
||
// FISHING_CS_FIREPRANA = 5029; // 发射能量炮
|
||
message CSFirePrana{
|
||
int32 SnId = 1;
|
||
repeated int32 FishIds = 2; // 碰撞的鱼
|
||
int32 X = 3;
|
||
int32 Y = 4;
|
||
}
|
||
// FISHING_SC_FIREPRANA = 5030; // 发射能量炮
|
||
message SCFirePrana{
|
||
int32 SnId = 1;
|
||
OpResultCode OpRetCode = 2;
|
||
int32 X = 3;
|
||
int32 Y = 4;
|
||
}
|
||
|
||
// FISHING_SC_JACKPOTCOIN = 5032
|
||
message SCJackpotCoin{
|
||
int32 SnId = 1;
|
||
int32 Coin = 2;
|
||
int32 JackpotLevel = 3;
|
||
string Name = 4;
|
||
}
|
||
|
||
// FISHING_SC_JACKPOTPOOLCHANGE = 5031; // 奖池变化
|
||
message SCJackpotPool{
|
||
int64 Coin = 1;
|
||
}
|
||
|
||
// FISHING_SC_RETPRANACOIN
|
||
message SCRetPranaCoin{
|
||
int32 SnId = 1;
|
||
int64 Coin = 2;
|
||
}
|
||
|
||
//FISHING_SC_REBINDAGENT
|
||
message SCReBindAgent{
|
||
int32 PlayerSnid = 1; //真实玩家snid
|
||
int32 RobSnid = 2; //对应机器人snid
|
||
}
|
||
|
||
|
||
message SCRobotBehavior{
|
||
int32 Code = 1 ; // 机器人行为ID 0:停止开炮
|
||
int32 RobotId = 2; //机器人ID
|
||
}
|
||
|
||
//FISHING_SC_SCSYNCFISHCOIN
|
||
message SCSyncFishCoin{
|
||
int32 FishId = 1; //鱼id
|
||
int64 Coin = 2; //鱼奖金
|
||
}
|
||
|
||
//FISHING_SC_SYNCFISHHP
|
||
message FishHpInfo {
|
||
int32 FishID = 1;
|
||
int32 HpRatio = 2; //当前血条比例 需要除以100显示
|
||
}
|
||
message SCSyncFishHp{
|
||
repeated FishHpInfo HpInfo = 1; //鱼的血量
|
||
}
|
||
//通知客户端出鱼
|
||
//FISHING_SC_NOTIFYAPPEARFISH
|
||
message SCNotifyAppearFish{
|
||
int32 OutFishType = 1;//出鱼类型 1-普通出鱼 2-鱼潮(暂时没用 保留)
|
||
repeated FishInfo Fishs = 2;
|
||
}
|
||
|
||
//通知切换场景
|
||
//FISHING_SC_NOTIFYCHANGESCENE
|
||
message SCNotifyChangeScene{
|
||
int32 sceneId = 1;
|
||
}
|
||
//技能相关消息
|
||
//房间技能list
|
||
//FISHING_CS_SKILLLISTREQ
|
||
message CSSkillListReq{
|
||
}
|
||
//FISHING_SC_SKILLLISTRESP
|
||
message SCSkillListResp {
|
||
repeated SkillInfo items = 1;
|
||
}
|
||
|
||
message SkillInfo {
|
||
int32 Id = 1;
|
||
string Name = 2;
|
||
int32 Vip = 3;
|
||
int32 Consume = 4;
|
||
string Item = 5;
|
||
string OtherConsumer = 6;
|
||
int32 Duration = 7;
|
||
int32 SkillGroup = 8;
|
||
int32 Gcd = 9;
|
||
int32 Cd = 10;
|
||
string HiddenPoses = 11;
|
||
string Describe = 12;
|
||
int32 OpenCanon=13;
|
||
int32 SkillType = 14;
|
||
int32 Fury = 15;
|
||
int32 Limit = 16;
|
||
}
|
||
//使用技能
|
||
//FISHING_CS_SKILLUSEREQ
|
||
message CSFishSkillUseReq {
|
||
int32 SkillId = 1; //技能id
|
||
}
|
||
//使用技能返回消息
|
||
//FISHING_SC_SKILLUSERESP
|
||
message SCFishSkillUseResp {
|
||
int32 Result = 1; //0表示使用技能成功
|
||
SkillStatusEnum Status = 2; //此技能当前状态
|
||
int32 SkillId = 4; //技能id
|
||
enum SkillStatusEnum {
|
||
FUTILITY = 0; //无用
|
||
ROOM_DISALLOW = 1; //此技能无法在此类房间内使用
|
||
VIP_LIMIT = 2; //VIP等级不足
|
||
TOOL_LIMIT = 3; //物品不足无法使用
|
||
UN_POWER = 4; //炮倍解锁不足
|
||
CD = 5; //自身技能CD
|
||
USABLE = 6; //可用
|
||
NOT_EXISTS = 7;//技能ID不存在
|
||
NO_FISH_CONFIG = 8;//此房间未配置BOSS鱼信息
|
||
WORLD_BOSS = 9;//存在世界BOSS
|
||
|
||
}
|
||
}
|
||
|
||
message SCFishSkillUseEnd {
|
||
int32 SkillId = 1; //技能id
|
||
int32 SnId = 2; //用户uid
|
||
}
|
||
|
||
//广播消息
|
||
//FISHING_SC_SKILLUSEBEGIN
|
||
message SCFishSkillUseBegin {
|
||
int32 SkillId = 1; //技能id
|
||
int32 SnId = 2; //用户uid
|
||
int32 FishID =3;//鱼编号
|
||
int32 FishType = 4; //如果这次是使用了召唤令,则推出的鱼的id
|
||
int32 pos = 5; //使用技能的这个人的椅子ID
|
||
}
|
||
//帧同步
|
||
//FISHING_CS_SYNCTIMEPOINT
|
||
message CSSyncTimePoint{
|
||
}
|
||
//FISHING_SC_SYNCTIMEPOINT
|
||
message SCSyncTimePoint{
|
||
int32 TimePoint = 1;
|
||
}
|