syntax = "proto3";

message AllAchievement {
	repeated Achievement list = 1;
}

message Achievement {

	enum Status {
		INVALID = 0;
		UNFINISHED = 1;
		FINISHED = 2;
		REWARD_TAKEN = 3;
	}

	uint32 id = 1;
	Status status = 2;
	uint32 current = 3;
	uint32 require = 4;
	uint32 finish_timestamp = 5;

}

message QueryCurRegion {
	int32  retcode = 1;
	string message = 2;
	msg0   info    = 3;
	oneof group {
		msg3 field2  = 4;
		msg4 field3  = 5;
	}
	bytes  field4  = 11;
	bytes  field5  = 12;
	bytes  field6  = 13;
}

message QueryRegionList {
	int32 retcode = 1;
	bytes field0  = 5;
	bytes field1  = 6;
	bool  field2  = 7;
	repeated msg2 list = 2;
}

message msg0 {
	string ip = 1;
	uint32 port = 2;
	string field0 = 3;
	string field1 = 7;
	string field2 = 8;
	string field3 = 9;
	string field4 = 10;
	string field5 = 11;
	string field6 = 12;
	string field7 = 13;
	uint32 field8 = 14;
	string field9 = 16;
	uint32 fieldA = 18;
	string fieldB = 19;
	string fieldC = 20;
	msg1   fieldD = 22;
	bytes  fieldE = 23;
	string fieldF = 24;
	string fieldG = 26;
	string fieldH = 27;
	bool   fieldI = 28;
	string fieldJ = 29;
	string fieldK = 30;
	string fieldL = 31;
	string fieldM = 32;
	string fieldN = 33;
	string fieldO = 34;
	msg1   fieldP = 35;
}

message msg1 {
	uint32 field0 = 1;
	bool   field1 = 2;
	string field2 = 3;
	string field3 = 4;
	string field4 = 5;
	string field5 = 6;
	string field6 = 7;
}

message msg2 {
	string field0 = 1;
	string field1 = 2;
	string field2 = 3;
	string url = 4;
}

message msg3 {
	string field0 = 1;
}

message msg4 {
	uint32 field0 = 1;
	uint32 field1 = 2;
	string field2 = 3;
	string field3 = 4;
}
