game_sync/protocol/fishing/fishing.proto

477 lines
14 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 用于在配置表中 查询具体数据 例如 700470057006
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;
}