syntax = "proto3";
package ET;
import 'Common.proto';

message HttpGetRouterResponse
{
	repeated string Realms = 1;
	repeated string Routers = 2;
}

message RouterSync
{
	uint32 ConnectId = 1;
	string Address = 2;
}

//ResponseType M2C_TestResponse
message C2M_TestRequest // IActorLocationRequest
{
	int32 RpcId = 1;
	string request = 2;
}

message M2C_TestResponse // IActorLocationResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
	string response = 4;
}

//ResponseType Actor_TransferResponse
message Actor_TransferRequest // IActorLocationRequest
{
	int32 RpcId = 1;
	int32 MapIndex = 2;
}

message Actor_TransferResponse // IActorLocationResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
}

//ResponseType G2C_EnterMap
message C2G_EnterMap // IRequest
{
	int32 RpcId = 1;
}

message G2C_EnterMap // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
	// 自己unitId
	int64 MyId = 4;
}

message M2C_CreateUnits // IActorMessage
{
	repeated UnitInfo Units = 1;
}

message M2C_CreateMyUnit // IActorMessage
{
	UnitInfo Unit = 1;
}

message M2C_StartSceneChange // IActorMessage
{
	int64 SceneInstanceId = 1;
	string SceneName = 2;	
}

message C2M_PathfindingResult // IActorLocationMessage
{
	int32 RpcId = 1;
	Unity.Mathematics.float3 Position = 2;
}

message M2C_PathfindingResult // IActorMessage
{
	int64 Id = 1;
	Unity.Mathematics.float3 Position = 2;
	repeated Unity.Mathematics.float3 Points = 3;
}

//ResponseType G2C_Ping
message C2G_Ping // IRequest
{
	int32 RpcId = 1;
}

message G2C_Ping // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
	int64 Time = 4;
}

message G2C_Test // IMessage
{
}

//ResponseType M2C_Reload
message C2M_Reload // IRequest
{
	int32 RpcId = 1;
	string Account = 2;
	string Password = 3;
}

message M2C_Reload // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
}

//ResponseType R2C_Login
message C2R_Login // IRequest
{
	int32 RpcId = 1;
	string Account = 2;		// 帐号
	string Password = 3;	// 密码
	int32 Channel = 4;		// 渠道号(10000:测试渠道全渠道 10001:黄冈 10002:鄂州)
}

message R2C_Login // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
	string Address = 4;
	string Key = 5;
	int64 GameId = 6;
}

//ResponseType G2C_LoginGame
message C2G_LoginGame // IRequest
{
	int32 RpcId = 1;
	string Key = 2;			// 游戏服登录key
	int64 GameId = 3;
}

message G2C_LoginGame // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
	int64 RoomId = 4;		// 是否在房间中
	PlayerInfo Player = 5;
	repeated int32 GameplayList = 6;	// 房间玩法类型 1:黄冈晃晃 2:鄂州麻将
}

// 创建房间
//ResponseType G2C_CreatRoom
message C2G_CreatRoom // IRequest
{
	int32 RpcId = 1;
	int32 Type = 2;		// 房间玩法类型 1:黄冈晃晃 2:鄂州麻将
}

message G2C_CreatRoom // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
	RoomInfo Info = 4;	// 房间信息
}

// 加入房间
//ResponseType G2C_JoinRoom
message C2G_JoinRoom // IRequest
{
	int32 RpcId = 1;
	int32 RoomId = 2;	// 请求进入的房间号
}

message G2C_JoinRoom // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
}

message G2C_JoinRoomPush  // IActorMessage
{
	RoomInfo info = 1;	// 房间信息
}

message G2C_TestHotfixMessage // IMessage
{
	string Info = 1;
}

//ResponseType M2C_TransferMap
message C2M_TransferMap // IActorLocationRequest
{
	int32 RpcId = 1;
}

message M2C_TransferMap // IActorLocationResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
}

//ResponseType G2C_Benchmark
message C2G_Benchmark // IRequest
{
	int32 RpcId = 1;
}

message G2C_Benchmark // IResponse
{
	int32 RpcId = 1;
	int32 Error = 2;
	string Message = 3;
}