-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuno.proto
58 lines (48 loc) · 1.74 KB
/
uno.proto
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
syntax = "proto3";
option go_package = "protos/;protos";
// 卡牌的结构体
message uno_card {
uint32 card_id = 1; // 卡牌ID
uint32 color = 2; // 1、2、3、4代表四种颜色,你爱用哪个用哪个,等价的。0代表黑牌
uint32 num = 3; // 0-9是数字牌 10代表“跳过”牌 11代表“反向”牌 12代表“+2牌” 13代表黑牌中的变色牌 14代表黑牌中的“+4”牌
}
// 通知客户端:初始化游戏
message init_toc {
uint32 player_num = 1; // 玩家总人数(包括你)
}
// 通知客户端:其他玩家摸牌
message other_add_hand_card_toc {
uint32 player_id = 1; // 玩家ID 你的下家是1 下下家是2 以此类推
uint32 num = 2; // 增加的手牌数量
}
// 通知客户端:你摸牌
message draw_card_toc {
repeated uno_card card = 1;
}
// 通知客户端:现在到谁的回合了
message notify_turn_toc {
uint32 player_id = 1; // 玩家ID 你是0 你的下家是1 下下家是2 以此类推
bool dir = 2; // true-顺时针 false-逆时针
}
// 通知客户端:牌堆剩余数量(如果变多了,说明洗牌了)
message set_deck_num_toc {
uint32 num = 1;
}
// 出牌
message discard_card_tos {
uint32 card_id = 1; // 出的牌的ID
uint32 want_color = 2; // 出黑牌时,选择想要的颜色
}
// 通知客户端:某玩家出牌(自己出牌后,服务端也会返回这个协议)
message discard_card_toc {
uint32 player_id = 1; // 玩家ID 你是0 你的下家是1 下下家是2 以此类推
uno_card card = 2;
uint32 want_color = 3; // 出黑牌时,选择想要的颜色
}
// 通知客户端谁赢了
message notify_win_toc {
uint32 player_id = 1; // 玩家ID 你是0 你的下家是1 下下家是2 以此类推
}
// 重开
message restart_game_tos {
}