wg.proto 11.8 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424
syntax = "proto3";

package rpc_world;

//房间相关服务
service Room {
  //创建房间时通知
  rpc CreateRoom (CreateRoomRequest) returns (CreateRoomReply) {}
 
  //加入房间时通知
  rpc JoinRoom (JoinRoomRequest) returns (JoinRoomReply) {}
  
  //销毁房间时通知
  rpc DestroyRoom (DestroyRoomRequest) returns (DestroyRoomReply) {}
 
  //房间变化时通知
  rpc ModifyRoomInfo (ModifyRoomInfoRequest) returns (ModifyRoomInfoReply) {}

  //获取房间唯一id
  rpc GetNewRoomID (GetRoomIDRequest) returns (GetRoomIDReply) {}
 
  //检查一个玩家id是否是俱乐部的管理员id
  rpc CheckClubManager (CheckClubManagerRequest) returns (CheckClubManagerReply) {}
  
  //检查一个玩家id是否是指定俱乐部的成员(管理员也是成员)
  rpc CheckClubMember (CheckClubMemberRequest) returns (CheckClubMemberReply) {}

  //玩家买入通知
  rpc PlayerBuyin (PlayerBuyinRequest) returns (PlayerBuyinReply) {}

//为同步实时数据新增 2017-2-24
  //获取玩家数据
  rpc GetUserData (GetUserDataRequest) returns (GetUserDataReply) {}

  //操作玩家金币
  rpc WorldOprateUserGold (WorldOprateUserGoldRequest) returns (WorldOprateUserGoldReply) {}

//检查是否能够创建俱乐部牌局
  rpc CheckCreateClubRoom (CheckCreateClubRoomRequest) returns (CheckCreateClubRoomReply) {}

  //击中牌型
  rpc HitCardType (HitCardTypeRequest) returns (HitCardTypeReply) {}

  //抽水入jackpot
  rpc DrawinJackpot (DrawinJackpotRequest) returns (DrawinJackpotReply) {}

  //获取房间所对应的联盟俱乐部
  rpc GetUserAllianceClubs (GetUserAllianceClubsRequest) returns (GetUserAllianceClubsReply) {}
  
  //获取联盟俱乐部买入额度
  rpc GetAllianceBuyinLimit(GetAllianceBuyinLimitRequest) returns (GetAllianceBuyinLimitReply) {}

  //设置联盟俱乐部当前已买入额度
  rpc SetAllianceCurBuyinLimit(SetAllianceCurBuyinLimitRequest) returns (SetAllianceCurBuyinLimitReply) {}

  //检查是否能够创建俱乐部牌局
  rpc CheckClubsMember (CheckClubsMemberRequest) returns (CheckClubsMemberReply) {}
	
  //通知World 玩家当前上台的金币剩余数额
  rpc WorldOperateUserLeftGold(WorldOperateUserLeftGoldRequest) returns (WorldOperateUserLeftGoldReply) {}

  //通知world Game已经重新启动  需要清除发现列表信息  以及返还玩家带上桌的金币
  rpc NotifyWorldGameRestart(NotifyWorldGameRestartRequest) returns (NotifyWorldGameRestartReply) {}
  
  //存储收益数据
  rpc StoreIncome (StoreIncomeRequest) returns (StoreIncomeReply) {}
}

//创建房间时通知请求参数
message CreateRoomRequest {
	uint32 create_player_id = 1;
	string creator_name = 2;
	uint32 club_id = 3;
	int32 game_mode = 4; //区分普通牌局/比赛/其它游戏类型
	string room_name = 5; 
	int32 player_count  = 6;   
	int64 small_blind  = 7;   
	int64 big_blind  = 8;  
	int64 buyin_min  = 9;   
	int64 buyin_max  = 10;  
	uint32 create_time = 11;
	bool  buyin_control = 12; 
	bool  insurance = 13; 
	bool  anti_cheating = 14; 
	bool  straddle = 15; 
	bool  rand_seat = 16; 
	int32 ante = 17;
	
	int32 player_count_max 	= 18; //牌桌最大人数
	int32 owner_type 	    = 19; //区分普通牌具/俱乐部牌局/定制俱乐部牌局
	
	int32 rule_time_limit = 20; //牌局时长对应8个时长类型
	uint32 room_id = 21; //房间id
    int32 game_status = 22; //1:牌局准备中; 2:牌局进行中
    uint32 start_time = 23;//未开始=0
    bool is_associated_jackpot          = 24; //是否关联jackpot
	int32 rule_blind_enum 				= 25; //牌局限定大小盲注对应id
	bool is_allin_allfold               = 26; //是否是allin allfold
	repeated uint32 alliance_ids         = 27; //联盟id集合
	bool is_need_statistic              = 28; //是否是game真正创建的牌局(用来计算俱乐部牌局数)
	uint32 extra_time					= 29; //房主主动增加的时间秒数
	bool short_fullhouse_flush_straight_three = 30;
	bool is_opened_drawback = 31;
	bool is_force_showcard = 32;
}

message JoinAllianceInfo {
  uint32 club_id = 1;
  uint32 join_time = 2;
}

message AllianceItem {
  string alliance_name = 1;
  repeated uint32 Clubids = 2;
  repeated JoinAllianceInfo infos = 3;
  uint32 alli_creater_uid = 4;
}

//创建房间时通知返回参数
message CreateRoomReply {
  string message = 1;
	int64 profit_scale = 2;//盈利规模
	int64 drawin_amout = 3;//抽水数额
	repeated uint32 alliance_club_ids = 4;//联盟俱乐部ids
	map<uint32, AllianceItem> mapAllianceClubIds = 5; // 
	repeated uint32 club_adminids = 6;//俱乐部管理员ids
}

//加入房间时通知请求参数
message JoinRoomRequest {
	uint32 room_id = 1;
	uint32 user_id = 2;
	bool is_alliance = 3;
}

//加入房间时通知返回参数
message JoinRoomReply {
  string message = 1;
}

//销毁房间时通知请求参数
message DestroyRoomRequest {
	  uint32 id = 1;
      uint32 club_id = 2;
}

//销毁房间时通知返回参数
message DestroyRoomReply {
  string message = 1;
}

//房间信息变化时通知请求参数
message ModifyRoomInfoRequest {
  uint32 id = 1;				  //房间id
  int32 player_count  = 2;    //当前人数
  int32 game_status = 3; //1:牌局准备中; 2:牌局进行中
  uint32 start_time = 4; //未开始=0;已点击开始=点击时间
  uint32 extra_time = 5; //房主主动增加的时间秒数
}

//房间信息变化时通知返回参数
message ModifyRoomInfoReply {
  string message = 1;
}


//获取房间唯一id信息请求
message GetRoomIDRequest {
    string name = 1; // 房间名字(占位而已,暂时没有作用)
	uint32 playerid = 2; //请求者的玩家id 用于snowflak空间
}

//房间唯一id信息返回
message GetRoomIDReply {
  string room_uuid = 1; //room的全局唯一字符串id(同cf 的uuid)
  uint32 roomid = 2; //房间的int 6位数唯一id
  uint64 uuid_int = 3; //int uuid
}


//检查是否是俱乐部管理员请求
message CheckClubManagerRequest {
    uint32 playerid = 1; //玩家id
    uint32 clubid   = 2; //俱乐部id
}

//检查是否是俱乐部管理员响应
message CheckClubManagerReply {
  bool result = 1; //true : 玩家是管理员; false:玩家不是管理员
}

 //检查一个玩家id是否是指定俱乐部的成员(管理员也是成员)请求
message CheckClubMemberRequest {
    uint32 playerid = 1; //玩家id
    uint32 clubid   = 2; //俱乐部id
}

//检查一个玩家id是否是指定俱乐部的成员响应
message CheckClubMemberReply {
  bool result = 1; //true : 玩家是成员; false:玩家不是成员
} 

//玩家买入时通知请求参数
message PlayerBuyinRequest {
	uint32 user_id = 1;
	uint32 club_id = 2; //俱乐部id
}

//玩家买入时通知返回参数
message PlayerBuyinReply {
  string message = 1;
}

//为同步实时数据新增 2017-2-24
//获取玩家数据信息请求
message GetUserDataRequest {
    uint32 user_id = 1; //玩家id
}

//获取玩家数据信息返回
message GetUserDataReply {
	uint32 user_id = 1; //玩家id
	string user_name = 2; //用户名
	int32 gender = 3; //性别
	uint64 diamond_num = 4;//钻石数量
	int64 user_gold = 5;//用户金币
	string avatar_thumb = 6;//用户头像
	string marks = 7;//签名
}

enum FeeType {
	Enum_game 			        = 0;
	Enum_InteractiveExpression  = 1;
	Enum_SendCardFun  			= 2;
	Enum_MTT 			        = 3;
	Enum_SNG 			        = 4;
}

//操作玩家金币请求
message WorldOprateUserGoldRequest {
	uint32 user_id = 1; //玩家id
    int32 operate_type = 2; //1:增加金币 2:扣除金币
	int64 gold_num = 3; //钻石数量
	uint64 room_id = 4; //房间id
	FeeType fee_type = 5;//扣费类型
}

//操作玩家金币返回
message WorldOprateUserGoldReply {
	int32 err_num = 1; //错误码 1:没错误 2:金币数额不足 
	int64 gold_before = 2;
	int64 gold_after  = 3; 
}

//检查俱乐部牌局创建请求
message CheckCreateClubRoomRequest {
  uint32 user_id = 1; //创建牌局玩家id
  uint32 club_id = 2; //俱乐部id
}

//检查俱乐部牌局创建返回
message CheckCreateClubRoomReply {
int32 err_num = 1; //错误码 1:成功,可以创建;74:不是俱乐部管理员,不能创建;75:俱乐部等级不够开启更多房间;76:其他错误 

}

message UserCard{
	int32 card_level = 1;
	uint32 seat_id = 2;
	uint32 award_player_id = 3;
}

// 击中牌型请求奖励
message HitCardTypeRequest {
  repeated UserCard cards = 1;
  uint32 club_id = 2; //俱乐部id
  int32 blind_level = 3; //盲注级别
  uint32 room_id = 4; //房间id
  uint64 game_UUIDInt = 5; //牌局id
  uint64 room_UUIDInt = 6; //房间id
  uint32 Create_player_id = 7; //房间创建者id 
}

message UserCardAward{
	uint32 award_player_id = 1;
	uint32 seat_id = 2;
	int64 award_amount = 3;
	int32 card_level = 4;
	int64 award2_club_fund = 5;
}

// 击中牌型返回奖励
message HitCardTypeReply {
  repeated UserCardAward cardAwards = 1;
  uint32 club_id = 2; //俱乐部id
  int32 blind_level = 3; //盲注级别
  uint32 room_id = 4; //房间id
  int64 total_award_amount = 5;
  int32 err_num = 6; //错误码 1:没错误 2:数据库错误
}

//符合条件的玩家抽水如jackpot
message DrawinJackpotRequest {
  uint32 club_id = 1; //俱乐部id
  int32 blind_level = 2; //盲注级别
  int64 drawin_amout = 3; //抽取金额
  uint64 room_id = 4; //房间id
}

//符合条件的玩家抽水如jackpot
message DrawinJackpotReply {
  int32 err_num = 1; //错误码 1:成功
}

//获取玩家联盟相关的俱乐部
message GetUserAllianceClubsRequest {
    uint32 user_id = 1; //玩家id
	uint32 room_id = 2; //房间id
}

message clubInfo{
	uint32 club_id = 1;
	uint32 creater_id = 2;
	string club_name = 3;
}

//获取玩家数据信息返回
message GetUserAllianceClubsReply {
  repeated clubInfo club_infos         = 1; //联盟id集合
  int32 err_num = 2; //错误码 1:没错误 2:数据库错误
  repeated uint32 club_createrids         = 3; //俱乐部创建者id集合
}

message GetAllianceBuyinLimitRequest {
    uint32 alliance_id = 1; //联盟id
	uint32 club_id = 2; //俱乐部id
}

message GetAllianceBuyinLimitReply {
  int64 MaxBuyinLimit = 1;
  int64 CurBuyinLimit = 2;
  bool contorl_buyin = 3;
  int32 err_num = 4; //错误码 1:没错误 2:数据库错误
}

message SetAllianceCurBuyinLimitRequest {
    uint32 alliance_id = 1; //联盟id
	uint32 club_id = 2; //俱乐部id
	int32 CurBuyinLimit = 3; //当前已用额度
}

message SetAllianceCurBuyinLimitReply {
  int32 err_num = 1; //错误码 1:没错误 2:数据库错误
}

//检查是否为创建者俱乐部的成员
message CheckClubsMemberRequest {
  uint32 club_createrid = 1; //俱乐部创建者
  uint32 user_id = 2; //玩家id
}

//检查是否为创建者俱乐部的成员
message CheckClubsMemberReply {
  bool is_club_member = 1;
  int32 err_num = 2; // 其他错误 
}

//通知world玩家剩余在桌上的金币
message WorldOperateUserLeftGoldRequest {
	uint32 user_id = 1;	//玩家id
	int32 left_gold = 2;	//剩余在桌上的金币数量
	uint32 roomid = 3;	//当前房间id
}

//通知world玩家剩余在桌上的金币
message WorldOperateUserLeftGoldReply {
	int32 error = 1;  //错误码
	int32 gold_value = 2; //操作后的买入金币的值
}

message NotifyWorldGameRestartRequest {

}

message NotifyWorldGameRestartReply {
	int32 error = 1;
}

message ClubCreaterUIDIncome {
	uint32 UID = 1;
	int64 fee = 2;
	int64 insurance = 3;
	int64 jackpot = 4;
}

message AlliCreaterUIDIncome {
	uint32 UID = 1;
	int64 fee = 2;
	int64 insurance = 3;
	int64 jackpot = 4;
}

message ProxIncome {
	int64 fee = 1;
	int64 insurance = 2;
	int64 jackpot = 3;
}

message PlatformIncome {
	int64 fee = 1;
	int64 insurance = 2;
	int64 jackpot = 3;
}

message StoreIncomeRequest {
	repeated ClubCreaterUIDIncome ccuid_income    = 1; //俱乐部创建者收益
	repeated AlliCreaterUIDIncome acuid_income    = 2; //联盟创建者(玩家)收益
	ProxIncome           proxy_income    = 3; //总代收益
	PlatformIncome       platform_income = 4; //平台收益
}

message StoreIncomeReply {
	int32 error = 1;
}