跨服服务器

back_recharge
zhangshanxue 2020-12-11 13:57:47 +08:00
parent d73a2b6122
commit 95870b74d5
17 changed files with 2961 additions and 821 deletions

View File

@ -33841,24 +33841,6 @@ public final class CommonProto {
*/
com.google.protobuf.ByteString
getServernameBytes();
// optional int32 worshipTime = 10;
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
boolean hasWorshipTime();
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
int getWorshipTime();
}
/**
* Protobuf type {@code rpc.protocols.ArenaPersonInfo}
@ -33956,11 +33938,6 @@ public final class CommonProto {
servername_ = input.readBytes();
break;
}
case 80: {
bitField0_ |= 0x00000200;
worshipTime_ = input.readInt32();
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
@ -34219,30 +34196,6 @@ public final class CommonProto {
}
}
// optional int32 worshipTime = 10;
public static final int WORSHIPTIME_FIELD_NUMBER = 10;
private int worshipTime_;
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
public boolean hasWorshipTime() {
return ((bitField0_ & 0x00000200) == 0x00000200);
}
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
public int getWorshipTime() {
return worshipTime_;
}
private void initFields() {
uid_ = 0;
level_ = 0;
@ -34253,7 +34206,6 @@ public final class CommonProto {
totalForce_ = 0;
headFrame_ = 0;
servername_ = "";
worshipTime_ = 0;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@ -34294,9 +34246,6 @@ public final class CommonProto {
if (((bitField0_ & 0x00000100) == 0x00000100)) {
output.writeBytes(9, getServernameBytes());
}
if (((bitField0_ & 0x00000200) == 0x00000200)) {
output.writeInt32(10, worshipTime_);
}
getUnknownFields().writeTo(output);
}
@ -34342,10 +34291,6 @@ public final class CommonProto {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(9, getServernameBytes());
}
if (((bitField0_ & 0x00000200) == 0x00000200)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(10, worshipTime_);
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
@ -34480,8 +34425,6 @@ public final class CommonProto {
bitField0_ = (bitField0_ & ~0x00000080);
servername_ = "";
bitField0_ = (bitField0_ & ~0x00000100);
worshipTime_ = 0;
bitField0_ = (bitField0_ & ~0x00000200);
return this;
}
@ -34546,10 +34489,6 @@ public final class CommonProto {
to_bitField0_ |= 0x00000100;
}
result.servername_ = servername_;
if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
to_bitField0_ |= 0x00000200;
}
result.worshipTime_ = worshipTime_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@ -34597,9 +34536,6 @@ public final class CommonProto {
servername_ = other.servername_;
onChanged();
}
if (other.hasWorshipTime()) {
setWorshipTime(other.getWorshipTime());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
@ -35046,55 +34982,6 @@ public final class CommonProto {
return this;
}
// optional int32 worshipTime = 10;
private int worshipTime_ ;
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
public boolean hasWorshipTime() {
return ((bitField0_ & 0x00000200) == 0x00000200);
}
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
public int getWorshipTime() {
return worshipTime_;
}
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
public Builder setWorshipTime(int value) {
bitField0_ |= 0x00000200;
worshipTime_ = value;
onChanged();
return this;
}
/**
* <code>optional int32 worshipTime = 10;</code>
*
* <pre>
* -1
* </pre>
*/
public Builder clearWorshipTime() {
bitField0_ = (bitField0_ & ~0x00000200);
worshipTime_ = 0;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:rpc.protocols.ArenaPersonInfo)
}
@ -35617,6 +35504,42 @@ public final class CommonProto {
* </pre>
*/
rpc.protocols.CommonProto.TeamOrBuilder getTeamOrBuilder();
// optional int32 worshipTime = 3;
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
boolean hasWorshipTime();
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
int getWorshipTime();
// optional bool hadProud = 4;
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
boolean hasHadProud();
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
boolean getHadProud();
}
/**
* Protobuf type {@code rpc.protocols.ArenaEnemy}
@ -35695,6 +35618,16 @@ public final class CommonProto {
bitField0_ |= 0x00000002;
break;
}
case 24: {
bitField0_ |= 0x00000004;
worshipTime_ = input.readInt32();
break;
}
case 32: {
bitField0_ |= 0x00000008;
hadProud_ = input.readBool();
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
@ -35791,9 +35724,59 @@ public final class CommonProto {
return team_;
}
// optional int32 worshipTime = 3;
public static final int WORSHIPTIME_FIELD_NUMBER = 3;
private int worshipTime_;
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
public boolean hasWorshipTime() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
public int getWorshipTime() {
return worshipTime_;
}
// optional bool hadProud = 4;
public static final int HADPROUD_FIELD_NUMBER = 4;
private boolean hadProud_;
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
public boolean hasHadProud() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
public boolean getHadProud() {
return hadProud_;
}
private void initFields() {
personInfo_ = rpc.protocols.CommonProto.ArenaPersonInfo.getDefaultInstance();
team_ = rpc.protocols.CommonProto.Team.getDefaultInstance();
worshipTime_ = 0;
hadProud_ = false;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@ -35813,6 +35796,12 @@ public final class CommonProto {
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeMessage(2, team_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeInt32(3, worshipTime_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeBool(4, hadProud_);
}
getUnknownFields().writeTo(output);
}
@ -35830,6 +35819,14 @@ public final class CommonProto {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, team_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(3, worshipTime_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(4, hadProud_);
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
@ -35960,6 +35957,10 @@ public final class CommonProto {
teamBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000002);
worshipTime_ = 0;
bitField0_ = (bitField0_ & ~0x00000004);
hadProud_ = false;
bitField0_ = (bitField0_ & ~0x00000008);
return this;
}
@ -36004,6 +36005,14 @@ public final class CommonProto {
} else {
result.team_ = teamBuilder_.build();
}
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
result.worshipTime_ = worshipTime_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
result.hadProud_ = hadProud_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@ -36026,6 +36035,12 @@ public final class CommonProto {
if (other.hasTeam()) {
mergeTeam(other.getTeam());
}
if (other.hasWorshipTime()) {
setWorshipTime(other.getWorshipTime());
}
if (other.hasHadProud()) {
setHadProud(other.getHadProud());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
@ -36323,6 +36338,104 @@ public final class CommonProto {
return teamBuilder_;
}
// optional int32 worshipTime = 3;
private int worshipTime_ ;
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
public boolean hasWorshipTime() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
public int getWorshipTime() {
return worshipTime_;
}
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
public Builder setWorshipTime(int value) {
bitField0_ |= 0x00000004;
worshipTime_ = value;
onChanged();
return this;
}
/**
* <code>optional int32 worshipTime = 3;</code>
*
* <pre>
*
* </pre>
*/
public Builder clearWorshipTime() {
bitField0_ = (bitField0_ & ~0x00000004);
worshipTime_ = 0;
onChanged();
return this;
}
// optional bool hadProud = 4;
private boolean hadProud_ ;
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
public boolean hasHadProud() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
public boolean getHadProud() {
return hadProud_;
}
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
public Builder setHadProud(boolean value) {
bitField0_ |= 0x00000008;
hadProud_ = value;
onChanged();
return this;
}
/**
* <code>optional bool hadProud = 4;</code>
*
* <pre>
*
* </pre>
*/
public Builder clearHadProud() {
bitField0_ = (bitField0_ & ~0x00000008);
hadProud_ = false;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:rpc.protocols.ArenaEnemy)
}
@ -100431,199 +100544,200 @@ public final class CommonProto {
"reallyOpen\030\004 \001(\005\032A\n\013MissionInfo\022\021\n\tmissi" +
"onId\030\001 \002(\005\022\020\n\010progress\030\002 \002(\005\022\r\n\005state\030\003 " +
"\002(\005\"=\n\nGmResponse\022!\n\004drop\030\001 \001(\0132\023.rpc.pr" +
"otocols.Drop\022\014\n\004info\030\002 \001(\t\"\266\001\n\017ArenaPers" +
"otocols.Drop\022\014\n\004info\030\002 \001(\t\"\241\001\n\017ArenaPers" +
"onInfo\022\013\n\003uid\030\001 \001(\005\022\r\n\005level\030\002 \001(\005\022\014\n\004na" +
"me\030\003 \001(\t\022\r\n\005score\030\004 \001(\005\022\014\n\004head\030\005 \001(\005\022\014\n" +
"\004rank\030\006 \001(\005\022\022\n\ntotalForce\030\007 \001(\005\022\021\n\theadF" +
"rame\030\010 \001(\005\022\022\n\nservername\030\t \001(\t\022\023\n\013worshi" +
"pTime\030\n \001(\005\"\027\n\004Team\022\017\n\007heroTid\030\001 \003(\005\"c\n\n" +
"ArenaEnemy\0222\n\npersonInfo\030\001 \001(\0132\036.rpc.pro",
"tocols.ArenaPersonInfo\022!\n\004team\030\002 \001(\0132\023.r" +
"pc.protocols.Team\"\205\001\n\tArenaInfo\022\020\n\010failN" +
"ums\030\001 \001(\005\022\023\n\013successNums\030\002 \001(\005\022\r\n\005score\030" +
"\003 \001(\005\022.\n\013arenaEnemys\030\004 \003(\0132\031.rpc.protoco" +
"ls.ArenaEnemy\022\022\n\nhadTakeBox\030\005 \003(\005\"\'\n\tSto" +
"reItem\022\n\n\002id\030\001 \001(\005\022\016\n\006buyNum\030\002 \001(\005\"\201\001\n\tS" +
"toreInfo\022\n\n\002id\030\001 \001(\005\022\027\n\017lastRefreshTime\030" +
"\002 \001(\003\022\021\n\tstartTime\030\004 \001(\003\022\017\n\007endTime\030\005 \001(" +
"\003\022+\n\tstoreItem\030\006 \003(\0132\030.rpc.protocols.Sto" +
"reItem\"\221\001\n\017ArenaRecordInfo\022\n\n\002id\030\001 \001(\t\0222",
"\n\nattackInfo\030\002 \001(\0132\036.rpc.protocols.Arena" +
"PersonInfo\022\022\n\nattackTime\030\003 \001(\005\022\025\n\rmyScor" +
"eChange\030\004 \001(\005\022\023\n\013fightResult\030\005 \001(\005\"Z\n\016Fu" +
"nctionOfTime\022\022\n\nfunctionId\030\001 \001(\005\022\021\n\tstar" +
"tTime\030\002 \001(\005\022\017\n\007endTime\030\003 \001(\005\022\020\n\010interval" +
"\030\004 \001(\005\"~\n\025AdventureRankItemInfo\022\r\n\005level" +
"\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\022\014\n\004hurt\030\003 \001(\005\022\014\n\004he" +
"ad\030\004 \001(\005\022\014\n\004rank\030\005 \001(\005\022\021\n\theadFrame\030\006 \001(" +
"\005\022\013\n\003uid\030\007 \001(\005\"\313\001\n\021AdventureBossInfo\022\017\n\007" +
"arenaId\030\001 \001(\005\022\017\n\007findUid\030\002 \001(\005\022\020\n\010findNa",
"me\030\003 \001(\t\022\016\n\006bossId\030\004 \001(\t\022\023\n\013bossGroupId\030" +
"\005 \001(\005\022\016\n\006myHurt\030\006 \001(\005\022\021\n\tlevelTime\030\007 \001(\005" +
"\022\017\n\007totalHp\030\010 \001(\005\022\025\n\rbossRemainlHp\030\t \001(\005" +
"\022\022\n\narenaLevel\030\n \001(\005\"v\n\017UserMissionInfo\022" +
"\021\n\tmissionId\030\001 \001(\005\022\020\n\010progress\030\002 \001(\005\022\r\n\005" +
"state\030\003 \001(\005\022\014\n\004type\030\004 \001(\005\022\021\n\ttakeTimes\030\005" +
" \001(\005\022\016\n\006heroId\030\006 \003(\t\"8\n\013VipBaseInfo\022\020\n\010v" +
"ipLevel\030\001 \001(\005\022\027\n\017hadTakeLevelBox\030\002 \001(\005\"\250" +
"\001\n\006Friend\022\n\n\002id\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\022\n\n\002l" +
"v\030\003 \001(\005\022\023\n\013offLineTime\030\004 \001(\004\022\022\n\nhaveRewa",
"rd\030\005 \001(\005\022\016\n\006isGive\030\006 \001(\005\022\021\n\tisApplyed\030\007 " +
"\001(\005\022\014\n\004head\030\014 \001(\005\022\r\n\005frame\030\r \001(\005\022\017\n\007soul" +
"Val\030\016 \001(\005\"o\n\rGiftGoodsInfo\022\017\n\007goodsId\030\001 " +
"\001(\005\022\020\n\010buyTimes\030\002 \001(\005\022\021\n\tstartTime\030\003 \001(\005" +
"\022\017\n\007endTime\030\004 \001(\005\022\027\n\017dynamicBuyTimes\030\005 \001" +
"(\005\"7\n\021GoodsTypeDuration\022\021\n\tgoodsType\030\001 \001" +
"(\005\022\017\n\007endTime\030\002 \001(\005\"/\n\016TechnologyInfo\022\016\n" +
"\006techId\030\001 \001(\005\022\r\n\005levle\030\002 \001(\005\"J\n\020Suddenly" +
"BossInfo\022\022\n\nsuddBossId\030\006 \001(\005\022\017\n\007endTime\030" +
"\007 \001(\005\022\021\n\tfindMapId\030\010 \001(\005\"H\n\010ItemInfo\022\022\n\n",
"templateId\030\001 \001(\005\022\017\n\007overlap\030\002 \001(\005\022\027\n\017nex" +
"tRefreshTime\030\003 \001(\005\"H\n\010RankInfo\022\014\n\004rank\030\001" +
" \001(\005\022\016\n\006param1\030\002 \001(\003\022\016\n\006param2\030\003 \001(\005\022\016\n\006" +
"param3\030\004 \001(\005\"\306\001\n\010UserRank\022\013\n\003uid\030\001 \001(\005\022\r" +
"\n\005level\030\002 \001(\005\022\014\n\004head\030\003 \001(\005\022\020\n\010userName\030" +
"\004 \001(\t\022)\n\010rankInfo\030\005 \001(\0132\027.rpc.protocols." +
"RankInfo\022\021\n\theadFrame\030\006 \001(\005\022\021\n\tguildName" +
"\030\007 \001(\t\022\r\n\005force\030\010 \001(\005\022\021\n\tguildSign\030\t \001(\005" +
"\022\013\n\003sex\030\n \001(\005\"\204\001\n\025ActorEffectBufferInfo\022" +
"\n\n\002id\030\001 \001(\005\022\014\n\004type\030\002 \001(\005\022\021\n\tstartTime\030\003",
" \001(\005\022\017\n\007endTime\030\004 \001(\005\022\016\n\006target\030\005 \001(\005\022\016\n" +
"\006caster\030\006 \001(\005\022\r\n\005value\030\007 \003(\005\"T\n\016BloodyHe" +
"roInfo\022\016\n\006heroId\030\001 \001(\t\022\016\n\006heroHp\030\002 \001(\005\022\021" +
"\n\theroMaxHp\030\003 \001(\005\022\017\n\007heroTid\030\004 \001(\005\"%\n\010Sc" +
"eneMsg\022\014\n\004time\030\001 \001(\005\022\013\n\003msg\030\002 \001(\t\"\'\n\nPos" +
"Mineral\022\013\n\003pos\030\001 \001(\005\022\014\n\004nums\030\002 \001(\005\"\247\001\n\010C" +
"reature\022\014\n\004path\030\001 \003(\005\022\r\n\005speed\030\002 \001(\005\022\r\n\005" +
"maxHp\030\003 \001(\005\022\r\n\005curHp\030\004 \001(\005\022\017\n\007mineral\030\005 " +
"\001(\005\022\014\n\004camp\030\006 \001(\005\022/\n\010heroInfo\030\007 \003(\0132\035.rp" +
"c.protocols.BloodyHeroInfo\022\020\n\010killNums\030\010",
" \001(\005\"\202\001\n\nSceneActor\022\n\n\002id\030\001 \001(\005\022\016\n\006curPo" +
"s\030\002 \001(\005\022\r\n\005state\030\003 \001(\005\022\014\n\004type\030\004 \001(\005\022)\n\010" +
"Creature\030\006 \001(\0132\027.rpc.protocols.Creature\022" +
"\020\n\010userName\030\007 \001(\t\"\367\001\n\tSceneInfo\022\016\n\006roomI" +
"d\030\001 \001(\005\022\r\n\005mapId\030\002 \001(\005\022-\n\nSceneActor\030\003 \003" +
"(\0132\031.rpc.protocols.SceneActor\022C\n\025actorEf" +
"fectBufferInfo\030\004 \003(\0132$.rpc.protocols.Act" +
"orEffectBufferInfo\022\024\n\014barrierPoint\030\005 \003(\005" +
"\022-\n\nposMineral\030\006 \003(\0132\031.rpc.protocols.Pos" +
"Mineral\022\022\n\nremainTime\030\007 \001(\005\"F\n\027SceneGetF",
"ullMsgResponse\022+\n\tsceneInfo\030\001 \001(\0132\030.rpc." +
"protocols.SceneInfo\"B\n\013blessReward\022\022\n\nlo" +
"cationId\030\001 \001(\005\022\r\n\005state\030\002 \001(\005\022\020\n\010rewardI" +
"d\030\003 \001(\005\"5\n\022fiveResetTowerInfo\022\r\n\005tower\030\001" +
" \001(\005\022\020\n\010intoType\030\002 \001(\005\";\n\020FamilyContribu" +
"te\022\013\n\003win\030\001 \001(\005\022\014\n\004draw\030\002 \001(\005\022\014\n\004fail\030\003 " +
"\001(\005\"\211\002\n\016FamilyBaseInfo\022\n\n\002id\030\001 \001(\005\022\014\n\004na" +
"me\030\002 \001(\t\022\017\n\007annouce\030\003 \001(\t\022\r\n\005levle\030\004 \001(\005" +
"\022\013\n\003exp\030\005 \001(\005\022\020\n\010totalNum\030\006 \001(\005\022\016\n\006maxNu" +
"m\030\007 \001(\005\022\020\n\010joinType\030\010 \001(\005\022\014\n\004icon\030\t \001(\005\022",
"\021\n\tlevelTime\030\n \001(\005\0224\n\013fightResult\030\013 \001(\0132" +
"\037.rpc.protocols.FamilyContribute\022\027\n\017play" +
"erIntoLevel\030\014 \001(\005\022\014\n\004fete\030\r \001(\005\")\n\013endle" +
"ssHero\022\016\n\006heroId\030\001 \001(\t\022\n\n\002hp\030\002 \001(\005\"2\n\022En" +
"dlessRefreshInfo\022\016\n\006cellId\030\001 \001(\005\022\014\n\004time" +
"\030\002 \001(\005\"u\n\014UseForceInfo\022\014\n\004name\030\001 \001(\t\022\014\n\004" +
"leve\030\002 \001(\005\022\r\n\005force\030\003 \001(\005\022\014\n\004rank\030\004 \001(\005\022" +
"\014\n\004head\030\005 \001(\005\022\021\n\theadFrame\030\006 \001(\005\022\013\n\003uid\030" +
"\007 \001(\005\"H\n\013endlessSign\022\r\n\005mapId\030\001 \001(\005\022\016\n\006c" +
"ellId\030\002 \001(\005\022\014\n\004info\030\003 \001(\t\022\014\n\004type\030\004 \001(\005\"",
"g\n\nExpertInfo\022\014\n\004name\030\001 \001(\t\022\r\n\005score\030\002 \001" +
"(\005\022\014\n\004rank\030\003 \001(\005\022\r\n\005level\030\004 \001(\005\022\014\n\004head\030" +
"\005 \001(\005\022\021\n\theadFrame\030\006 \001(\005\")\n\nSignInInfo\022\014" +
"\n\004days\030\001 \001(\005\022\r\n\005state\030\002 \001(\005\"p\n\016TeamSimpl" +
"eInfo\022\016\n\006heroid\030\001 \001(\t\022\017\n\007heroTid\030\002 \001(\005\022\014" +
"\n\004star\030\003 \001(\005\022\r\n\005level\030\004 \001(\005\022\020\n\010position\030" +
"\005 \001(\005\022\016\n\006skinId\030\006 \001(\005\"\231\001\n\017TeamOneTeamInf" +
"o\022+\n\004team\030\001 \003(\0132\035.rpc.protocols.TeamSimp" +
"leInfo\0223\n\014PokemonInfos\030\002 \003(\0132\035.rpc.proto" +
"cols.TeamSimpleInfo\022\022\n\ntotalForce\030\003 \001(\005\022",
"\020\n\010remainHp\030\004 \003(\005\"\254\001\n\013TeamOneInfo\022\013\n\003uid" +
"\030\001 \001(\005\022\r\n\005level\030\002 \001(\005\022\014\n\004name\030\003 \001(\t\022\014\n\004h" +
"ead\030\004 \001(\005\022\021\n\theadFrame\030\005 \001(\005\022\021\n\tguildNam" +
"e\030\007 \001(\t\022,\n\004team\030\006 \001(\0132\036.rpc.protocols.Te" +
"amOneTeamInfo\022\021\n\tisApplyed\030\010 \001(\005\"y\n\017Mons" +
"terRankInfo\022\014\n\004name\030\001 \001(\t\022\r\n\005score\030\002 \001(\005" +
"\022\014\n\004rank\030\003 \001(\005\022\r\n\005level\030\004 \001(\005\022\014\n\004head\030\005 " +
"\001(\005\022\021\n\theadFrame\030\006 \001(\005\022\013\n\003uid\030\007 \001(\005\"2\n\rH" +
"eroBloodInfo\022\016\n\006heroId\030\001 \001(\t\022\021\n\tlostBloo" +
"d\030\002 \001(\005\"D\n\013EndlessInfo\022\r\n\005mapId\030\001 \001(\005\022\022\n",
"\nworldLevel\030\002 \001(\005\022\022\n\nbloodScore\030\003 \001(\005\"2\n" +
"\017PlayerBindPhone\022\020\n\010phoneNum\030\001 \001(\t\022\r\n\005st" +
"ate\030\002 \001(\005\"3\n\014EndlessPoint\022\020\n\010location\030\001 " +
"\001(\005\022\021\n\tmonsterId\030\002 \001(\005\"2\n\014StrongerInfo\022\020" +
"\n\010curScore\030\001 \001(\005\022\020\n\010maxScore\030\002 \001(\005\"U\n\017Qu" +
"estionOptions\022\017\n\007content\030\001 \001(\t\022\014\n\004type\030\002" +
" \001(\005\022\017\n\007options\030\003 \003(\t\022\022\n\nanswerType\030\004 \001(" +
"\005\"\212\001\n\017BloodPersonInfo\022\n\n\002id\030\001 \001(\005\022\014\n\004nam" +
"e\030\002 \001(\t\022\021\n\theadFrame\030\003 \001(\005\022\014\n\004head\030\004 \001(\005" +
"\022\020\n\010serverId\030\005 \001(\005\022\r\n\005level\030\006 \001(\005\022\014\n\004ran",
"k\030\007 \001(\005\022\r\n\005score\030\010 \001(\005\"H\n\026LuckWheelRewar" +
"dPosInfo\022\013\n\003pos\030\001 \001(\005\022\016\n\006luckId\030\002 \001(\005\022\021\n" +
"\tluckTimes\030\003 \001(\005\"_\n\013RefreshTask\022\014\n\004type\030" +
"\001 \001(\005\022-\n\005tasks\030\002 \003(\0132\036.rpc.protocols.Use" +
"rMissionInfo\022\023\n\013refreshTime\030\003 \001(\005\"\221\001\n\021Ma" +
"inLevelRankInfo\022\013\n\003uid\030\001 \001(\005\022\r\n\005level\030\002 " +
"\001(\005\022\014\n\004name\030\003 \001(\t\022\017\n\007fightId\030\004 \001(\005\022\014\n\004he" +
"ad\030\005 \001(\005\022\014\n\004rank\030\006 \001(\005\022\022\n\ntotalForce\030\007 \001" +
"(\005\022\021\n\theadFrame\030\010 \001(\005\"B\n\017ChampionBetInfo" +
"\022\n\n\002id\030\001 \001(\t\022\020\n\010redCoins\030\002 \001(\005\022\021\n\tblueCo",
"ins\030\003 \001(\005\"\254\001\n\022ChampionBattleInfo\022*\n\006myIn" +
"fo\030\001 \001(\0132\032.rpc.protocols.TeamOneInfo\022-\n\t" +
"enemyInfo\030\002 \001(\0132\032.rpc.protocols.TeamOneI" +
"nfo\022\016\n\006result\030\003 \001(\005\022+\n\tfightData\030\004 \001(\0132\030" +
".rpc.protocols.FightData\"\335\001\n\026ChampionBat" +
"tlePairInfo\022.\n\nattackInfo\030\001 \001(\0132\032.rpc.pr" +
"otocols.TeamOneInfo\022+\n\007defInfo\030\002 \001(\0132\032.r" +
"pc.protocols.TeamOneInfo\022\023\n\013fightResult\030" +
"\003 \001(\005\022\n\n\002id\030\004 \001(\t\022\022\n\nroundTImes\030\005 \001(\005\022\016\n" +
"\006teamId\030\006 \001(\005\022\020\n\010position\030\007 \001(\005\022\017\n\007isGUe",
"ss\030\010 \001(\005\"q\n\nRedPackage\022\020\n\010userName\030\001 \001(\t" +
"\022\r\n\005redId\030\002 \001(\005\022\r\n\005isGet\030\003 \001(\005\022\020\n\010getCou" +
"nt\030\004 \001(\005\022\017\n\007redType\030\005 \001(\005\022\020\n\010sendTime\030\006 " +
"\001(\005\"\211\001\n\014RedOneDetail\022\013\n\003uid\030\001 \001(\005\022\014\n\004hea" +
"d\030\002 \001(\005\022\021\n\theadFrame\030\003 \001(\005\022\014\n\004name\030\004 \001(\t" +
"\022\014\n\004time\030\005 \001(\005\022\r\n\005count\030\006 \001(\005\022\016\n\006itemId\030" +
"\007 \001(\005\022\020\n\010position\030\010 \001(\005\"l\n\030ExpeditionSim" +
"pleBossInfo\022\017\n\007heroTid\030\001 \001(\005\022\014\n\004star\030\002 \001" +
"(\005\022\r\n\005level\030\003 \001(\005\022\020\n\010remainHp\030\004 \001(\001\022\020\n\010p" +
"osition\030\005 \001(\005\"\207\001\n\022ExpeditionTeamInfo\0225\n\004",
"hero\030\001 \003(\0132\'.rpc.protocols.ExpeditionSim" +
"pleBossInfo\022\024\n\014PokemonInfos\030\002 \003(\005\022\022\n\ntot" +
"alForce\030\003 \001(\005\022\020\n\010teamInfo\030\004 \001(\005\"\234\001\n\022Expe" +
"ditionNodeInfo\022\016\n\006sortId\030\001 \001(\005\022\013\n\003lay\030\002 " +
"\001(\005\022\014\n\004type\030\003 \001(\005\0227\n\014bossTeaminfo\030\004 \001(\0132" +
"!.rpc.protocols.ExpeditionTeamInfo\022\r\n\005st" +
"ate\030\005 \001(\005\022\023\n\013holyEquipID\030\006 \003(\005\"<\n\030Expedi" +
"tionSimpleHeroInfo\022\016\n\006heroId\030\001 \001(\t\022\020\n\010re" +
"mainHp\030\002 \001(\001\"/\n\017ExpeditionEquip\022\n\n\002id\030\001 " +
"\001(\t\022\020\n\010equiptId\030\002 \001(\005\"P\n\rMonthCardInfo\022\n",
"\n\002id\030\001 \001(\005\022\022\n\nendingTime\030\002 \001(\005\022\r\n\005state\030" +
"\003 \001(\005\022\020\n\010totleAmt\030\004 \001(\001\"?\n\021CarGrapRecord" +
"Item\022\014\n\004time\030\001 \001(\005\022\013\n\003uid\030\002 \001(\005\022\017\n\007conte" +
"nt\030\003 \001(\t\">\n\rGuildHelpInfo\022\014\n\004type\030\001 \001(\005\022" +
"\013\n\003num\030\002 \001(\005\022\022\n\nhadtakenum\030\003 \001(\005\"x\n\014Guil" +
"dHelpLog\022\021\n\thelperuid\030\001 \001(\005\022\021\n\ttargetuid" +
"\030\002 \001(\005\022\022\n\nhelpername\030\003 \001(\t\022\022\n\ntargetname" +
"\030\004 \001(\t\022\014\n\004type\030\005 \001(\005\022\014\n\004time\030\006 \001(\005\"\234\001\n\014V" +
"iewHeroInfo\022!\n\004hero\030\001 \001(\0132\023.rpc.protocol" +
"s.Hero\022#\n\005equip\030\002 \003(\0132\024.rpc.protocols.Eq",
"uip\0225\n\016SpecialEffects\030\003 \003(\0132\035.rpc.protoc" +
"ols.SpecialEffects\022\r\n\005force\030\004 \001(\005\"4\n\021Eve" +
"ryHeroHandBook\022\016\n\006heroId\030\001 \001(\005\022\017\n\007maxSta" +
"r\030\002 \001(\005\"=\n\rSituationInfo\022\n\n\002id\030\001 \001(\005\022\020\n\010" +
"overTime\030\002 \001(\005\022\016\n\006passId\030\003 \001(\005\"N\n\013Journe" +
"yInfo\022\r\n\005mapId\030\001 \001(\005\022\017\n\007process\030\002 \001(\005\022\020\n" +
"\010redPoint\030\003 \001(\005\022\r\n\005first\030\004 \001(\005\"\213\001\n\022Journ" +
"eyMonsterInfo\022\021\n\tmonsterId\030\001 \001(\005\022\024\n\014mons" +
"terIndex\030\002 \001(\005\022\021\n\tmonsterHp\030\003 \001(\003\022\022\n\nrem" +
"ainTime\030\004 \001(\005\022\021\n\tattackNum\030\005 \001(\005\022\022\n\nrewa",
"rdShow\030\006 \001(\005\"K\n\020JourneyGoodsInfo\022\017\n\007good" +
"sId\030\001 \001(\005\022\022\n\ngoodsIndex\030\002 \001(\005\022\022\n\nremainT" +
"ime\030\003 \001(\005\"S\n\013JourneyCell\022\016\n\006cellId\030\001 \001(\005" +
"\022\017\n\007pointId\030\002 \001(\005\022\021\n\tcellIndex\030\003 \001(\005\022\020\n\010" +
"rewardId\030\004 \001(\005\",\n\010SkinInfo\022\016\n\006skinId\030\001 \001" +
"(\005\022\020\n\010overTime\030\002 \001(\005B\002H\001"
"rame\030\010 \001(\005\022\022\n\nservername\030\t \001(\t\"\027\n\004Team\022\017" +
"\n\007heroTid\030\001 \003(\005\"\212\001\n\nArenaEnemy\0222\n\nperson" +
"Info\030\001 \001(\0132\036.rpc.protocols.ArenaPersonIn",
"fo\022!\n\004team\030\002 \001(\0132\023.rpc.protocols.Team\022\023\n" +
"\013worshipTime\030\003 \001(\005\022\020\n\010hadProud\030\004 \001(\010\"\205\001\n" +
"\tArenaInfo\022\020\n\010failNums\030\001 \001(\005\022\023\n\013successN" +
"ums\030\002 \001(\005\022\r\n\005score\030\003 \001(\005\022.\n\013arenaEnemys\030" +
"\004 \003(\0132\031.rpc.protocols.ArenaEnemy\022\022\n\nhadT" +
"akeBox\030\005 \003(\005\"\'\n\tStoreItem\022\n\n\002id\030\001 \001(\005\022\016\n" +
"\006buyNum\030\002 \001(\005\"\201\001\n\tStoreInfo\022\n\n\002id\030\001 \001(\005\022" +
"\027\n\017lastRefreshTime\030\002 \001(\003\022\021\n\tstartTime\030\004 " +
"\001(\003\022\017\n\007endTime\030\005 \001(\003\022+\n\tstoreItem\030\006 \003(\0132" +
"\030.rpc.protocols.StoreItem\"\221\001\n\017ArenaRecor",
"dInfo\022\n\n\002id\030\001 \001(\t\0222\n\nattackInfo\030\002 \001(\0132\036." +
"rpc.protocols.ArenaPersonInfo\022\022\n\nattackT" +
"ime\030\003 \001(\005\022\025\n\rmyScoreChange\030\004 \001(\005\022\023\n\013figh" +
"tResult\030\005 \001(\005\"Z\n\016FunctionOfTime\022\022\n\nfunct" +
"ionId\030\001 \001(\005\022\021\n\tstartTime\030\002 \001(\005\022\017\n\007endTim" +
"e\030\003 \001(\005\022\020\n\010interval\030\004 \001(\005\"~\n\025AdventureRa" +
"nkItemInfo\022\r\n\005level\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\022" +
"\014\n\004hurt\030\003 \001(\005\022\014\n\004head\030\004 \001(\005\022\014\n\004rank\030\005 \001(" +
"\005\022\021\n\theadFrame\030\006 \001(\005\022\013\n\003uid\030\007 \001(\005\"\313\001\n\021Ad" +
"ventureBossInfo\022\017\n\007arenaId\030\001 \001(\005\022\017\n\007find",
"Uid\030\002 \001(\005\022\020\n\010findName\030\003 \001(\t\022\016\n\006bossId\030\004 " +
"\001(\t\022\023\n\013bossGroupId\030\005 \001(\005\022\016\n\006myHurt\030\006 \001(\005" +
"\022\021\n\tlevelTime\030\007 \001(\005\022\017\n\007totalHp\030\010 \001(\005\022\025\n\r" +
"bossRemainlHp\030\t \001(\005\022\022\n\narenaLevel\030\n \001(\005\"" +
"v\n\017UserMissionInfo\022\021\n\tmissionId\030\001 \001(\005\022\020\n" +
"\010progress\030\002 \001(\005\022\r\n\005state\030\003 \001(\005\022\014\n\004type\030\004" +
" \001(\005\022\021\n\ttakeTimes\030\005 \001(\005\022\016\n\006heroId\030\006 \003(\t\"" +
"8\n\013VipBaseInfo\022\020\n\010vipLevel\030\001 \001(\005\022\027\n\017hadT" +
"akeLevelBox\030\002 \001(\005\"\250\001\n\006Friend\022\n\n\002id\030\001 \001(\005" +
"\022\014\n\004name\030\002 \001(\t\022\n\n\002lv\030\003 \001(\005\022\023\n\013offLineTim",
"e\030\004 \001(\004\022\022\n\nhaveReward\030\005 \001(\005\022\016\n\006isGive\030\006 " +
"\001(\005\022\021\n\tisApplyed\030\007 \001(\005\022\014\n\004head\030\014 \001(\005\022\r\n\005" +
"frame\030\r \001(\005\022\017\n\007soulVal\030\016 \001(\005\"o\n\rGiftGood" +
"sInfo\022\017\n\007goodsId\030\001 \001(\005\022\020\n\010buyTimes\030\002 \001(\005" +
"\022\021\n\tstartTime\030\003 \001(\005\022\017\n\007endTime\030\004 \001(\005\022\027\n\017" +
"dynamicBuyTimes\030\005 \001(\005\"7\n\021GoodsTypeDurati" +
"on\022\021\n\tgoodsType\030\001 \001(\005\022\017\n\007endTime\030\002 \001(\005\"/" +
"\n\016TechnologyInfo\022\016\n\006techId\030\001 \001(\005\022\r\n\005levl" +
"e\030\002 \001(\005\"J\n\020SuddenlyBossInfo\022\022\n\nsuddBossI" +
"d\030\006 \001(\005\022\017\n\007endTime\030\007 \001(\005\022\021\n\tfindMapId\030\010 ",
"\001(\005\"H\n\010ItemInfo\022\022\n\ntemplateId\030\001 \001(\005\022\017\n\007o" +
"verlap\030\002 \001(\005\022\027\n\017nextRefreshTime\030\003 \001(\005\"H\n" +
"\010RankInfo\022\014\n\004rank\030\001 \001(\005\022\016\n\006param1\030\002 \001(\003\022" +
"\016\n\006param2\030\003 \001(\005\022\016\n\006param3\030\004 \001(\005\"\306\001\n\010User" +
"Rank\022\013\n\003uid\030\001 \001(\005\022\r\n\005level\030\002 \001(\005\022\014\n\004head" +
"\030\003 \001(\005\022\020\n\010userName\030\004 \001(\t\022)\n\010rankInfo\030\005 \001" +
"(\0132\027.rpc.protocols.RankInfo\022\021\n\theadFrame" +
"\030\006 \001(\005\022\021\n\tguildName\030\007 \001(\t\022\r\n\005force\030\010 \001(\005" +
"\022\021\n\tguildSign\030\t \001(\005\022\013\n\003sex\030\n \001(\005\"\204\001\n\025Act" +
"orEffectBufferInfo\022\n\n\002id\030\001 \001(\005\022\014\n\004type\030\002",
" \001(\005\022\021\n\tstartTime\030\003 \001(\005\022\017\n\007endTime\030\004 \001(\005" +
"\022\016\n\006target\030\005 \001(\005\022\016\n\006caster\030\006 \001(\005\022\r\n\005valu" +
"e\030\007 \003(\005\"T\n\016BloodyHeroInfo\022\016\n\006heroId\030\001 \001(" +
"\t\022\016\n\006heroHp\030\002 \001(\005\022\021\n\theroMaxHp\030\003 \001(\005\022\017\n\007" +
"heroTid\030\004 \001(\005\"%\n\010SceneMsg\022\014\n\004time\030\001 \001(\005\022" +
"\013\n\003msg\030\002 \001(\t\"\'\n\nPosMineral\022\013\n\003pos\030\001 \001(\005\022" +
"\014\n\004nums\030\002 \001(\005\"\247\001\n\010Creature\022\014\n\004path\030\001 \003(\005" +
"\022\r\n\005speed\030\002 \001(\005\022\r\n\005maxHp\030\003 \001(\005\022\r\n\005curHp\030" +
"\004 \001(\005\022\017\n\007mineral\030\005 \001(\005\022\014\n\004camp\030\006 \001(\005\022/\n\010" +
"heroInfo\030\007 \003(\0132\035.rpc.protocols.BloodyHer",
"oInfo\022\020\n\010killNums\030\010 \001(\005\"\202\001\n\nSceneActor\022\n" +
"\n\002id\030\001 \001(\005\022\016\n\006curPos\030\002 \001(\005\022\r\n\005state\030\003 \001(" +
"\005\022\014\n\004type\030\004 \001(\005\022)\n\010Creature\030\006 \001(\0132\027.rpc." +
"protocols.Creature\022\020\n\010userName\030\007 \001(\t\"\367\001\n" +
"\tSceneInfo\022\016\n\006roomId\030\001 \001(\005\022\r\n\005mapId\030\002 \001(" +
"\005\022-\n\nSceneActor\030\003 \003(\0132\031.rpc.protocols.Sc" +
"eneActor\022C\n\025actorEffectBufferInfo\030\004 \003(\0132" +
"$.rpc.protocols.ActorEffectBufferInfo\022\024\n" +
"\014barrierPoint\030\005 \003(\005\022-\n\nposMineral\030\006 \003(\0132" +
"\031.rpc.protocols.PosMineral\022\022\n\nremainTime",
"\030\007 \001(\005\"F\n\027SceneGetFullMsgResponse\022+\n\tsce" +
"neInfo\030\001 \001(\0132\030.rpc.protocols.SceneInfo\"B" +
"\n\013blessReward\022\022\n\nlocationId\030\001 \001(\005\022\r\n\005sta" +
"te\030\002 \001(\005\022\020\n\010rewardId\030\003 \001(\005\"5\n\022fiveResetT" +
"owerInfo\022\r\n\005tower\030\001 \001(\005\022\020\n\010intoType\030\002 \001(" +
"\005\";\n\020FamilyContribute\022\013\n\003win\030\001 \001(\005\022\014\n\004dr" +
"aw\030\002 \001(\005\022\014\n\004fail\030\003 \001(\005\"\211\002\n\016FamilyBaseInf" +
"o\022\n\n\002id\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\022\017\n\007annouce\030\003" +
" \001(\t\022\r\n\005levle\030\004 \001(\005\022\013\n\003exp\030\005 \001(\005\022\020\n\010tota" +
"lNum\030\006 \001(\005\022\016\n\006maxNum\030\007 \001(\005\022\020\n\010joinType\030\010",
" \001(\005\022\014\n\004icon\030\t \001(\005\022\021\n\tlevelTime\030\n \001(\005\0224\n" +
"\013fightResult\030\013 \001(\0132\037.rpc.protocols.Famil" +
"yContribute\022\027\n\017playerIntoLevel\030\014 \001(\005\022\014\n\004" +
"fete\030\r \001(\005\")\n\013endlessHero\022\016\n\006heroId\030\001 \001(" +
"\t\022\n\n\002hp\030\002 \001(\005\"2\n\022EndlessRefreshInfo\022\016\n\006c" +
"ellId\030\001 \001(\005\022\014\n\004time\030\002 \001(\005\"u\n\014UseForceInf" +
"o\022\014\n\004name\030\001 \001(\t\022\014\n\004leve\030\002 \001(\005\022\r\n\005force\030\003" +
" \001(\005\022\014\n\004rank\030\004 \001(\005\022\014\n\004head\030\005 \001(\005\022\021\n\thead" +
"Frame\030\006 \001(\005\022\013\n\003uid\030\007 \001(\005\"H\n\013endlessSign\022" +
"\r\n\005mapId\030\001 \001(\005\022\016\n\006cellId\030\002 \001(\005\022\014\n\004info\030\003",
" \001(\t\022\014\n\004type\030\004 \001(\005\"g\n\nExpertInfo\022\014\n\004name" +
"\030\001 \001(\t\022\r\n\005score\030\002 \001(\005\022\014\n\004rank\030\003 \001(\005\022\r\n\005l" +
"evel\030\004 \001(\005\022\014\n\004head\030\005 \001(\005\022\021\n\theadFrame\030\006 " +
"\001(\005\")\n\nSignInInfo\022\014\n\004days\030\001 \001(\005\022\r\n\005state" +
"\030\002 \001(\005\"p\n\016TeamSimpleInfo\022\016\n\006heroid\030\001 \001(\t" +
"\022\017\n\007heroTid\030\002 \001(\005\022\014\n\004star\030\003 \001(\005\022\r\n\005level" +
"\030\004 \001(\005\022\020\n\010position\030\005 \001(\005\022\016\n\006skinId\030\006 \001(\005" +
"\"\231\001\n\017TeamOneTeamInfo\022+\n\004team\030\001 \003(\0132\035.rpc" +
".protocols.TeamSimpleInfo\0223\n\014PokemonInfo" +
"s\030\002 \003(\0132\035.rpc.protocols.TeamSimpleInfo\022\022",
"\n\ntotalForce\030\003 \001(\005\022\020\n\010remainHp\030\004 \003(\005\"\254\001\n" +
"\013TeamOneInfo\022\013\n\003uid\030\001 \001(\005\022\r\n\005level\030\002 \001(\005" +
"\022\014\n\004name\030\003 \001(\t\022\014\n\004head\030\004 \001(\005\022\021\n\theadFram" +
"e\030\005 \001(\005\022\021\n\tguildName\030\007 \001(\t\022,\n\004team\030\006 \001(\013" +
"2\036.rpc.protocols.TeamOneTeamInfo\022\021\n\tisAp" +
"plyed\030\010 \001(\005\"y\n\017MonsterRankInfo\022\014\n\004name\030\001" +
" \001(\t\022\r\n\005score\030\002 \001(\005\022\014\n\004rank\030\003 \001(\005\022\r\n\005lev" +
"el\030\004 \001(\005\022\014\n\004head\030\005 \001(\005\022\021\n\theadFrame\030\006 \001(" +
"\005\022\013\n\003uid\030\007 \001(\005\"2\n\rHeroBloodInfo\022\016\n\006heroI" +
"d\030\001 \001(\t\022\021\n\tlostBlood\030\002 \001(\005\"D\n\013EndlessInf",
"o\022\r\n\005mapId\030\001 \001(\005\022\022\n\nworldLevel\030\002 \001(\005\022\022\n\n" +
"bloodScore\030\003 \001(\005\"2\n\017PlayerBindPhone\022\020\n\010p" +
"honeNum\030\001 \001(\t\022\r\n\005state\030\002 \001(\005\"3\n\014EndlessP" +
"oint\022\020\n\010location\030\001 \001(\005\022\021\n\tmonsterId\030\002 \001(" +
"\005\"2\n\014StrongerInfo\022\020\n\010curScore\030\001 \001(\005\022\020\n\010m" +
"axScore\030\002 \001(\005\"U\n\017QuestionOptions\022\017\n\007cont" +
"ent\030\001 \001(\t\022\014\n\004type\030\002 \001(\005\022\017\n\007options\030\003 \003(\t" +
"\022\022\n\nanswerType\030\004 \001(\005\"\212\001\n\017BloodPersonInfo" +
"\022\n\n\002id\030\001 \001(\005\022\014\n\004name\030\002 \001(\t\022\021\n\theadFrame\030" +
"\003 \001(\005\022\014\n\004head\030\004 \001(\005\022\020\n\010serverId\030\005 \001(\005\022\r\n",
"\005level\030\006 \001(\005\022\014\n\004rank\030\007 \001(\005\022\r\n\005score\030\010 \001(" +
"\005\"H\n\026LuckWheelRewardPosInfo\022\013\n\003pos\030\001 \001(\005" +
"\022\016\n\006luckId\030\002 \001(\005\022\021\n\tluckTimes\030\003 \001(\005\"_\n\013R" +
"efreshTask\022\014\n\004type\030\001 \001(\005\022-\n\005tasks\030\002 \003(\0132" +
"\036.rpc.protocols.UserMissionInfo\022\023\n\013refre" +
"shTime\030\003 \001(\005\"\221\001\n\021MainLevelRankInfo\022\013\n\003ui" +
"d\030\001 \001(\005\022\r\n\005level\030\002 \001(\005\022\014\n\004name\030\003 \001(\t\022\017\n\007" +
"fightId\030\004 \001(\005\022\014\n\004head\030\005 \001(\005\022\014\n\004rank\030\006 \001(" +
"\005\022\022\n\ntotalForce\030\007 \001(\005\022\021\n\theadFrame\030\010 \001(\005" +
"\"B\n\017ChampionBetInfo\022\n\n\002id\030\001 \001(\t\022\020\n\010redCo",
"ins\030\002 \001(\005\022\021\n\tblueCoins\030\003 \001(\005\"\254\001\n\022Champio" +
"nBattleInfo\022*\n\006myInfo\030\001 \001(\0132\032.rpc.protoc" +
"ols.TeamOneInfo\022-\n\tenemyInfo\030\002 \001(\0132\032.rpc" +
".protocols.TeamOneInfo\022\016\n\006result\030\003 \001(\005\022+" +
"\n\tfightData\030\004 \001(\0132\030.rpc.protocols.FightD" +
"ata\"\335\001\n\026ChampionBattlePairInfo\022.\n\nattack" +
"Info\030\001 \001(\0132\032.rpc.protocols.TeamOneInfo\022+" +
"\n\007defInfo\030\002 \001(\0132\032.rpc.protocols.TeamOneI" +
"nfo\022\023\n\013fightResult\030\003 \001(\005\022\n\n\002id\030\004 \001(\t\022\022\n\n" +
"roundTImes\030\005 \001(\005\022\016\n\006teamId\030\006 \001(\005\022\020\n\010posi",
"tion\030\007 \001(\005\022\017\n\007isGUess\030\010 \001(\005\"q\n\nRedPackag" +
"e\022\020\n\010userName\030\001 \001(\t\022\r\n\005redId\030\002 \001(\005\022\r\n\005is" +
"Get\030\003 \001(\005\022\020\n\010getCount\030\004 \001(\005\022\017\n\007redType\030\005" +
" \001(\005\022\020\n\010sendTime\030\006 \001(\005\"\211\001\n\014RedOneDetail\022" +
"\013\n\003uid\030\001 \001(\005\022\014\n\004head\030\002 \001(\005\022\021\n\theadFrame\030" +
"\003 \001(\005\022\014\n\004name\030\004 \001(\t\022\014\n\004time\030\005 \001(\005\022\r\n\005cou" +
"nt\030\006 \001(\005\022\016\n\006itemId\030\007 \001(\005\022\020\n\010position\030\010 \001" +
"(\005\"l\n\030ExpeditionSimpleBossInfo\022\017\n\007heroTi" +
"d\030\001 \001(\005\022\014\n\004star\030\002 \001(\005\022\r\n\005level\030\003 \001(\005\022\020\n\010" +
"remainHp\030\004 \001(\001\022\020\n\010position\030\005 \001(\005\"\207\001\n\022Exp",
"editionTeamInfo\0225\n\004hero\030\001 \003(\0132\'.rpc.prot" +
"ocols.ExpeditionSimpleBossInfo\022\024\n\014Pokemo" +
"nInfos\030\002 \003(\005\022\022\n\ntotalForce\030\003 \001(\005\022\020\n\010team" +
"Info\030\004 \001(\005\"\234\001\n\022ExpeditionNodeInfo\022\016\n\006sor" +
"tId\030\001 \001(\005\022\013\n\003lay\030\002 \001(\005\022\014\n\004type\030\003 \001(\005\0227\n\014" +
"bossTeaminfo\030\004 \001(\0132!.rpc.protocols.Exped" +
"itionTeamInfo\022\r\n\005state\030\005 \001(\005\022\023\n\013holyEqui" +
"pID\030\006 \003(\005\"<\n\030ExpeditionSimpleHeroInfo\022\016\n" +
"\006heroId\030\001 \001(\t\022\020\n\010remainHp\030\002 \001(\001\"/\n\017Exped" +
"itionEquip\022\n\n\002id\030\001 \001(\t\022\020\n\010equiptId\030\002 \001(\005",
"\"P\n\rMonthCardInfo\022\n\n\002id\030\001 \001(\005\022\022\n\nendingT" +
"ime\030\002 \001(\005\022\r\n\005state\030\003 \001(\005\022\020\n\010totleAmt\030\004 \001" +
"(\001\"?\n\021CarGrapRecordItem\022\014\n\004time\030\001 \001(\005\022\013\n" +
"\003uid\030\002 \001(\005\022\017\n\007content\030\003 \001(\t\">\n\rGuildHelp" +
"Info\022\014\n\004type\030\001 \001(\005\022\013\n\003num\030\002 \001(\005\022\022\n\nhadta" +
"kenum\030\003 \001(\005\"x\n\014GuildHelpLog\022\021\n\thelperuid" +
"\030\001 \001(\005\022\021\n\ttargetuid\030\002 \001(\005\022\022\n\nhelpername\030" +
"\003 \001(\t\022\022\n\ntargetname\030\004 \001(\t\022\014\n\004type\030\005 \001(\005\022" +
"\014\n\004time\030\006 \001(\005\"\234\001\n\014ViewHeroInfo\022!\n\004hero\030\001" +
" \001(\0132\023.rpc.protocols.Hero\022#\n\005equip\030\002 \003(\013",
"2\024.rpc.protocols.Equip\0225\n\016SpecialEffects" +
"\030\003 \003(\0132\035.rpc.protocols.SpecialEffects\022\r\n" +
"\005force\030\004 \001(\005\"4\n\021EveryHeroHandBook\022\016\n\006her" +
"oId\030\001 \001(\005\022\017\n\007maxStar\030\002 \001(\005\"=\n\rSituationI" +
"nfo\022\n\n\002id\030\001 \001(\005\022\020\n\010overTime\030\002 \001(\005\022\016\n\006pas" +
"sId\030\003 \001(\005\"N\n\013JourneyInfo\022\r\n\005mapId\030\001 \001(\005\022" +
"\017\n\007process\030\002 \001(\005\022\020\n\010redPoint\030\003 \001(\005\022\r\n\005fi" +
"rst\030\004 \001(\005\"\213\001\n\022JourneyMonsterInfo\022\021\n\tmons" +
"terId\030\001 \001(\005\022\024\n\014monsterIndex\030\002 \001(\005\022\021\n\tmon" +
"sterHp\030\003 \001(\003\022\022\n\nremainTime\030\004 \001(\005\022\021\n\tatta",
"ckNum\030\005 \001(\005\022\022\n\nrewardShow\030\006 \001(\005\"K\n\020Journ" +
"eyGoodsInfo\022\017\n\007goodsId\030\001 \001(\005\022\022\n\ngoodsInd" +
"ex\030\002 \001(\005\022\022\n\nremainTime\030\003 \001(\005\"S\n\013JourneyC" +
"ell\022\016\n\006cellId\030\001 \001(\005\022\017\n\007pointId\030\002 \001(\005\022\021\n\t" +
"cellIndex\030\003 \001(\005\022\020\n\010rewardId\030\004 \001(\005\",\n\010Ski" +
"nInfo\022\016\n\006skinId\030\001 \001(\005\022\020\n\010overTime\030\002 \001(\005B" +
"\002H\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@ -100845,7 +100959,7 @@ public final class CommonProto {
internal_static_rpc_protocols_ArenaPersonInfo_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_rpc_protocols_ArenaPersonInfo_descriptor,
new java.lang.String[] { "Uid", "Level", "Name", "Score", "Head", "Rank", "TotalForce", "HeadFrame", "Servername", "WorshipTime", });
new java.lang.String[] { "Uid", "Level", "Name", "Score", "Head", "Rank", "TotalForce", "HeadFrame", "Servername", });
internal_static_rpc_protocols_Team_descriptor =
getDescriptor().getMessageTypes().get(35);
internal_static_rpc_protocols_Team_fieldAccessorTable = new
@ -100857,7 +100971,7 @@ public final class CommonProto {
internal_static_rpc_protocols_ArenaEnemy_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_rpc_protocols_ArenaEnemy_descriptor,
new java.lang.String[] { "PersonInfo", "Team", });
new java.lang.String[] { "PersonInfo", "Team", "WorshipTime", "HadProud", });
internal_static_rpc_protocols_ArenaInfo_descriptor =
getDescriptor().getMessageTypes().get(37);
internal_static_rpc_protocols_ArenaInfo_fieldAccessorTable = new

View File

@ -4133,6 +4133,10 @@ public final class MessageTypeProto {
* <code>GetGSUserArenaInfoResponse = 900010;</code>
*/
GetGSUserArenaInfoResponse(667, 900010),
/**
* <code>GetRankRequest = 900011;</code>
*/
GetRankRequest(668, 900011),
;
/**
@ -8255,6 +8259,10 @@ public final class MessageTypeProto {
* <code>GetGSUserArenaInfoResponse = 900010;</code>
*/
public static final int GetGSUserArenaInfoResponse_VALUE = 900010;
/**
* <code>GetRankRequest = 900011;</code>
*/
public static final int GetRankRequest_VALUE = 900011;
public final int getNumber() { return value; }
@ -8929,6 +8937,7 @@ public final class MessageTypeProto {
case 900008: return GetWorldArenaRecordInfoResponse;
case 900009: return GetGSUserArenaInfoRequest;
case 900010: return GetGSUserArenaInfoResponse;
case 900011: return GetRankRequest;
default: return null;
}
}
@ -8990,7 +8999,7 @@ public final class MessageTypeProto {
static {
java.lang.String[] descriptorData = {
"\n\026MessageTypeProto.proto\022\rrpc.protocols*" +
"\361\252\001\n\013MessageType\022\027\n\022HEART_BEAT_REQUEST\020\350" +
"\207\253\001\n\013MessageType\022\027\n\022HEART_BEAT_REQUEST\020\350" +
"\007\022\030\n\023HEART_BEAT_RESPONSE\020\351\007\022\036\n\031ACTIVITE_" +
"WORKSHOP_REQUEST\020\224N\022\037\n\032ACTIVITE_WORKSHOP" +
"_RESPONSE\020\225N\022\027\n\022ARENA_INFO_REQUEST\020\226N\022\030\n" +
@ -9536,7 +9545,8 @@ public final class MessageTypeProto {
"Response\020\246\3676\022$\n\036GetWorldArenaRecordInfoR" +
"equest\020\247\3676\022%\n\037GetWorldArenaRecordInfoRes" +
"ponse\020\250\3676\022\037\n\031GetGSUserArenaInfoRequest\020\251" +
"\3676\022 \n\032GetGSUserArenaInfoResponse\020\252\3676B\002H\001"
"\3676\022 \n\032GetGSUserArenaInfoResponse\020\252\3676\022\024\n\016" +
"GetRankRequest\020\253\3676B\002H\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
package com.ljsd.jieling.handler.gtw;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.network.server.GlobalidHelper;
import com.ljsd.jieling.network.server.WorldHelper;
import com.ljsd.jieling.network.session.ISession;
import rpc.protocols.MessageTypeProto;
import rpc.world.WorldCommonProto;
/**
* Description: des
* Author: zsx
* CreateDate: 2020/12/10 19:55
*/
public class GetWorldArenaProudRequestHandler extends BaseHandler<WorldCommonProto.GetWorldArenaProudRequest> {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return null;
}
@Override
public void processWithProto(ISession iSession, WorldCommonProto.GetWorldArenaProudRequest proto) throws Exception {
GlobalidHelper.WorldInfo worldInfo = GlobalidHelper.getWorldInfo();
if (null == worldInfo){
throw new ErrorCodeException("world unavailable or play not open");
}
//转发到world服
boolean b = WorldHelper.sendMessageToWord(iSession.getUid(),proto);
if(!b){
throw new ErrorCodeException(ErrorCode.UNKNOWN);
}
}
}

View File

@ -0,0 +1,38 @@
package com.ljsd.jieling.handler.gtw;
import com.google.protobuf.GeneratedMessage;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.network.server.GlobalidHelper;
import com.ljsd.jieling.network.server.WorldHelper;
import com.ljsd.jieling.network.session.ISession;
import rpc.protocols.MessageTypeProto;
import rpc.world.WorldProto;
/**
* Description: des
* Author: zsx
* CreateDate: 2020/12/10 19:53
*/
public class GetWorldArenaRecordInfoRequestHandler extends BaseHandler<WorldProto.GetWorldArenaRecordInfoRequest> {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return null;
}
@Override
public void processWithProto(ISession iSession, WorldProto.GetWorldArenaRecordInfoRequest proto) throws Exception {
GlobalidHelper.WorldInfo worldInfo = GlobalidHelper.getWorldInfo();
if (null == worldInfo){
throw new ErrorCodeException("world unavailable or play not open");
}
//转发到world服
boolean b = WorldHelper.sendMessageToWord(iSession.getUid(),proto);
if(!b){
throw new ErrorCodeException(ErrorCode.UNKNOWN);
}
}
}

View File

@ -236,8 +236,6 @@ class SheJiActivity extends AbstractActivity {
}
for (Integer uid : sendUids) {
try {
User user = UserManager.getUser(uid, true);

View File

@ -13,6 +13,7 @@ public enum UUIDEnum {
EXPEDITION(9),//圣物
JEWEL(10),
SpecialMonster(11),
ROBOT_UUID(12),
;
private int value;

View File

@ -23,12 +23,23 @@ jar {
dependencies {
compile project(":netty")
compile project(":hotfix")
testCompile group: 'junit', name: 'junit', version: '4.12'
compile("org.apache.thrift:libthrift:0.9.2")
compile("org.springframework.boot:spring-boot-starter-data-redis:1.5.9.RELEASE")
compile group: 'com.google.code.gson', name: 'gson', version: '2.2.4'
compile project(":gamecommon")
compile project(":tablemanager")
compile project(":serverlogic")
testCompile group: 'junit', name: 'junit', version: '4.12'
compile("org.javassist:javassist:3.18.2-GA")
compile("org.springframework.boot:spring-boot:1.5.9.RELEASE")
compile("org.springframework.boot:spring-boot-starter-test:1.5.9.RELEASE")
compile("org.springframework.boot:spring-boot-starter-data-redis:1.5.9.RELEASE")
compile("io.netty:netty-all:4.1.6.Final")
compile("com.google.protobuf:protobuf-java:2.5.0")
compile("com.fasterxml.jackson.core:jackson-core:2.3.1")
compile("com.fasterxml.jackson.core:jackson-databind:2.3.3")
compile group: 'com.googlecode.protobuf-java-format', name: 'protobuf-java-format', version: '1.2'
compile group: 'com.google.code.gson', name: 'gson', version: '2.2.4'
compile("org.apache.thrift:libthrift:0.9.2")
compile("com.alibaba:fastjson:1.2.47")
compile("org.apache.httpcomponents:httpclient:4.5.3")
compile files("${System.properties['java.home']}/../lib/tools.jar")
}

View File

@ -1,5 +1,7 @@
package com;
import com.ljsd.GameApplication;
import com.ljsd.jieling.util.KeyGenUtils;
import com.world.config.ConfigurableApplicationContextManager;
import com.world.config.WorldCoreSettings;
import com.world.db.mongo.MongoUtil;
@ -58,7 +60,7 @@ public class WorldServerApplication {
LOGGER.info("STableManager err ->{}", e);
}
KeyGenUtils.setMachineNum(0);
WorldRpcService.initHandler("com.world.handler", WorldServerApplication.class.getClassLoader());

View File

@ -4,7 +4,16 @@ import com.google.gson.reflect.TypeToken;
import com.google.protobuf.GeneratedMessage;
import com.ljsd.fight.ArenaRecord;
import com.ljsd.fight.ArenaRecordWrap;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.logic.championship.ChampionshipLogic;
import com.ljsd.jieling.logic.dao.FamilyFightInfo;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.result.FightResult;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.util.KeyGenUtils;
import com.ljsd.jieling.util.UUIDEnum;
import com.world.logic.arean.ArenaEnemy;
import com.world.logic.arean.ArenaLogic;
import com.world.logic.arean.fight.FightUtil;
@ -13,8 +22,6 @@ import com.world.redis.RedisKey;
import com.world.redis.RedisUtil;
import config.SArenaRobotConfig;
import config.SArenaSetting;
import config.SMServerArenaSetting;
import manager.STableManager;
import rpc.net.RpcMessage;
import rpc.net.gtGBaseHandler;
import rpc.protocols.CommonProto;
@ -44,7 +51,7 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
}
Lockeys.getInstance().lock("arena",rpcMessage.getServerId());
Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
try {
//TODO 校验需要对手是否在匹配范围内
@ -53,9 +60,9 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
HashMap<Integer, ArenaEnemy> integerIntegerHashMap = ArenaLogic.ranInfo.get(integer);
//判断信息是否改变
//我的信息
Set<Integer> hisRank =RedisUtil.getInstence().getObject(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(rpcMessage.getUid())), new TypeToken<Set<Integer>>() {
Set<Integer> hisRank = RedisUtil.getInstence().getObject(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(rpcMessage.getUid())), new TypeToken<Set<Integer>>() {
}.getType());
if(hisRank.size()==0){
if (hisRank.size() == 0) {
//被替了
//重新拿数据
builder1.setErr(-2);
@ -63,7 +70,7 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
}
//对方信息
ArenaEnemy arenaEnemy = integerIntegerHashMap.get(proto.getChallengeRank());
if(arenaEnemy==null||arenaEnemy.getEnemyId()!=proto.getChallengeUid()){
if (arenaEnemy == null || arenaEnemy.getEnemyId() != proto.getChallengeUid()) {
builder1.setErr(-2);
return builder1.build();
}
@ -71,21 +78,24 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
int force;
CommonProto.FightTeamInfo teamInfo;
if(arenaEnemy.getEnemyType()==1){
CommonProto.ArenaEnemy arenaEnemys;
if (arenaEnemy.getEnemyType() == 1) {
WorldProto.GetGSUserArenaInfoResponse getGSUserArenaInfoResponse = gsHelper.sendMessageToGs(arenaEnemy.getServerID(), arenaEnemy.getEnemyId(), WorldProto.GetGSUserArenaInfoRequest.newBuilder().setUid(arenaEnemy.getEnemyId()).build(), WorldProto.GetGSUserArenaInfoResponse.class);
if (getGSUserArenaInfoResponse == null) {
builder1.setErr(-2);
return builder1.build();
}
force=getGSUserArenaInfoResponse.getTotalForce();
force = getGSUserArenaInfoResponse.getTotalForce();
teamInfo = getGSUserArenaInfoResponse.getFightTeamInfo();
}else {
arenaEnemys = getGSUserArenaInfoResponse.getArenaEnemys();
} else {
teamInfo = FightUtil.makeRobotFightData(arenaEnemy.getEnemyId());
force = SArenaRobotConfig.getsArenaRobotConfigById(arenaEnemy.getEnemyId()).getTotalForce();
force = SArenaRobotConfig.getsArenaRobotConfigById(arenaEnemy.getEnemyId()).getTotalForce();
arenaEnemys =ArenaLogic.getInstance().getRobotArenaEnemy(arenaEnemy.getEnemyId());
}
boolean isRevert = proto.getTotalForce()<force;
boolean isRevert = proto.getTotalForce() < force;
FightResult fightResult = FightUtil.getFightForPVP(rpcMessage.getUid(), proto.getChallengeUid(), proto.getFightTeamInfo(), teamInfo, FightUtil.getFightSeed(), isRevert);
builder1.setFightResult(fightResult.getCheckResult()[0]);
int seed = fightResult.getSeed();
@ -97,44 +107,52 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
.build();
builder1.setFightData(build);
CommonProto.ArenaInfo.Builder arenaInfoBuild = CommonProto.ArenaInfo.newBuilder();
if(fightResult.getCheckResult()[0]>0){
WorldProto.WroldBattleRecord.Builder builder = WorldProto.WroldBattleRecord.newBuilder();
builder.setFightData(fightResult.getFightData());
builder.setResult(fightResult.getCheckResult()[0]);
if (fightResult.getCheckResult()[0] > 0) {
//交换队伍
Map.Entry<Integer, ArenaEnemy> myRank = ArenaLogic.getKey(integerIntegerHashMap, rpcMessage.getUid());
if(myRank!=null){
integerIntegerHashMap.put(myRank.getKey(),arenaEnemy);
integerIntegerHashMap.put(proto.getChallengeRank(),myRank.getValue());
if(arenaEnemy.getEnemyType()==0){
if (myRank != null) {
builder.setOldrank(myRank.getKey());
integerIntegerHashMap.put(myRank.getKey(), arenaEnemy);
integerIntegerHashMap.put(proto.getChallengeRank(), myRank.getValue());
if (arenaEnemy.getEnemyType() == 0) {
//清空匹配
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf( arenaEnemy.getEnemyId()), new HashSet<>());
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(arenaEnemy.getEnemyId()), new HashSet<>());
}
}else {
integerIntegerHashMap.put(proto.getChallengeRank(), new ArenaEnemy(rpcMessage.getUid(),rpcMessage.getServerId(),1,0));
} else {
builder.setOldrank(9999);
integerIntegerHashMap.put(proto.getChallengeRank(), new ArenaEnemy(rpcMessage.getUid(), rpcMessage.getServerId(), 1, 0));
}
myRank = ArenaLogic.getKey(integerIntegerHashMap, rpcMessage.getUid());
//处理匹配信息
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf( rpcMessage.getUid()), new HashSet<>());
List<ArenaEnemy> arenaEnemies = ArenaLogic.randomRank(integerIntegerHashMap, rpcMessage.getUid(), myRank==null?9999:myRank.getKey());
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(rpcMessage.getUid()), new HashSet<>());
List<ArenaEnemy> arenaEnemies = ArenaLogic.randomRank(integerIntegerHashMap, rpcMessage.getUid(), myRank == null ? 9999 : myRank.getKey());
//notify client
List<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies));
List<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies),new LinkedList<>());
arenaInfoBuild.addAllArenaEnemys(arenaEnemyList);
arenaInfoBuild.setScore(proto.getChallengeRank());
ArenaRecord arenaRecord = new ArenaRecord();
arenaRecord.setAttackId(rpcMessage.getUid());
arenaRecord.setDefScore(defScoreChange);
arenaRecord.setCreateTime((int) (System.currentTimeMillis() / 1000));
arenaRecord.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ARENARECORD, uid));
arenaRecord.setFightResult(fightResult ^ 1);
RedisUtil.getInstence().putMapEntry(RedisKey.ARENA_RRECORD, Integer.toString(challengeUid), arenaRecord.getId(), ArenaRecordWrap);
//record
builder.setRedEnemy(proto.getArenaEnemys());
builder.setBlueEnemy(arenaEnemys);
builder.setRank(myRank == null ? 9999 : myRank.getKey());
String s = KeyGenUtils.produceIdByModule(UUIDEnum.ARENARECORD, rpcMessage.getUid());
builder.setRecordId(s);
builder.setAttackTime((int)(System.currentTimeMillis()/1000));
RedisUtil.getInstence().putMapEntry(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(proto.getChallengeUid()), s, builder.build().toByteArray());
RedisUtil.getInstence().putMapEntry(RedisKey.WORLD_ARENA_RRECORD,Integer.toString(rpcMessage.getUid()), s, builder.build().toByteArray());
}
builder1.setArenaInfo(arenaInfoBuild);
}catch (Exception e){
}catch (Exception e) {
e.printStackTrace();
}finally {
Lockeys.getInstance().reset();
}
//TODO 掉落
return builder1.build();
@ -142,4 +160,5 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
}

View File

@ -49,7 +49,12 @@ public class GetWorldArenaInfoRequestHandler extends gtGBaseHandler<WorldProto.G
}
List<ArenaEnemy> arenaEnemies = ArenaLogic.randomRank(integerIntegerHashMap, rpcMessage.getUid(), myIndex);
builder.setStage(2);
builder1.setScore(myIndex).addAllArenaEnemys(ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies))).build();
List<String> strings = RedisUtil.getInstence().lGet(RedisKey.WORLD_ARENA_MY_PRON,String.valueOf(rpcMessage.getUid()), 0, -1);
List<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies),strings);
builder1.setScore(myIndex)
.addAllArenaEnemys(arenaEnemyList)
.build();
} catch (Exception e) {
e.printStackTrace();
LOGGER.error(e.toString());

View File

@ -3,9 +3,12 @@ package com.world.handler;
import com.google.protobuf.GeneratedMessage;
import com.world.logic.arean.ArenaEnemy;
import com.world.logic.arean.ArenaLogic;
import com.world.redis.RedisKey;
import com.world.redis.RedisUtil;
import rpc.net.RpcMessage;
import rpc.net.gtGBaseHandler;
import rpc.world.WorldCommonProto;
import rpc.world.WorldProto;
import rpc.world.WorldProto;
import util.Lockeys;
import java.util.HashMap;
@ -16,23 +19,33 @@ import java.util.Map;
* Author: zsx
* CreateDate: 2020/12/2 21:19
*/
public class GetWorldArenaProudRequestHandler extends gtGBaseHandler<WorldCommonProto.GetWorldArenaProudRequest> {
public class GetWorldArenaProudRequestHandler extends gtGBaseHandler<WorldProto.GetWorldArenaProudRequest> {
@Override
public GeneratedMessage processWithProto(RpcMessage rpcMessage, WorldCommonProto.GetWorldArenaProudRequest proto) throws Exception {
WorldCommonProto.GetWorldArenaProudResponse.Builder builder = WorldCommonProto.GetWorldArenaProudResponse.newBuilder();
public GeneratedMessage processWithProto(RpcMessage rpcMessage, WorldProto.GetWorldArenaProudRequest proto) throws Exception {
WorldProto.GetWorldArenaProudResponse.Builder builder = WorldProto.GetWorldArenaProudResponse.newBuilder();
try {
//check 膜拜 在逻辑服做
Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
Integer integer = ArenaLogic.serverSplit.get(String.valueOf(rpcMessage.getServerId()));
HashMap<Integer, ArenaEnemy> integerIntegerHashMap = ArenaLogic.ranInfo.get(integer);
Map.Entry<Integer, ArenaEnemy> challRank = ArenaLogic.getKey(integerIntegerHashMap, proto.getChallengeUid());
if(challRank==null||challRank.getKey()!=proto.getChallengeUid()){
ArenaEnemy arenaEnemy = integerIntegerHashMap.get(proto.getChallengeRank());
if(arenaEnemy==null||arenaEnemy.getEnemyId()!=proto.getChallengeUid()){
return builder.build();
}
challRank.getValue().addWorshipTime();
RedisUtil.getInstence().lSet(RedisKey.WORLD_ARENA_MY_PRON+":"+rpcMessage.getUid(),String.valueOf(arenaEnemy.getEnemyId_UUid()));
arenaEnemy.addWorshipTime();
// builder.setDrop()
builder.setWorshipTime(arenaEnemy.getWorshipTime());
} catch (Exception e) {
e.printStackTrace();
}finally {
Lockeys.getInstance().reset();
}
//todo 添加掉落

View File

@ -12,9 +12,10 @@ import rpc.protocols.CommonProto;
import rpc.world.WorldProto;
import java.util.*;
import java.util.stream.Collectors;
/**
* Description:
* Description:
* Author: zsx
* CreateDate: 2020/12/4 16:27
*/
@ -35,32 +36,29 @@ public class GetWorldArenaRecordInfoRequestHandler extends gtGBaseHandler<WorldP
}
Map<String, ArenaRecordWrap> result = RedisUtil.getInstence().getMapValues(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(rpcMessage.getUid()), String.class, ArenaRecordWrap.class);
Map<String, byte[]> result = RedisUtil.getInstence().getMapValues(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(rpcMessage.getUid()), String.class, byte[].class);
if (result != null && !result.isEmpty()) {
List<CommonProto.ArenaRecordInfo> arenaRecordInfos = new ArrayList<>();
List<ArenaRecordWrap> arenaRecordList = new ArrayList<>(result.values());
arenaRecordList.sort(Comparator.comparingInt(o -> o.getArenaRecord().getCreateTime()));
List< byte[]> arenaRecordList = new ArrayList<>(result.values());
List<WorldProto.WroldBattleRecord> collect = arenaRecordList.stream().map(bytes -> {try {
return WorldProto.WroldBattleRecord.parseFrom(bytes);
}catch (Exception e){}
return null;
}).collect(Collectors.toList());
collect.sort(Comparator.comparingInt(WorldProto.WroldBattleRecord::getAttackTime));
int size = arenaRecordList.size();
if (size > 20) {
String[] removeMapKeys = new String[size - 10];
for (int i = 0; i < size - 10; i++) {
ArenaRecordWrap remove = arenaRecordList.remove(0);
String removeId = remove.getArenaRecord().getId();
WorldProto.WroldBattleRecord remove = collect.remove(0);
String removeId = remove.getRecordId();
removeMapKeys[i] = (removeId);
}
RedisUtil.getInstence().removeMapEntrys(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(rpcMessage.getUid()), removeMapKeys);
}
for (ArenaRecordWrap arenaRecord : arenaRecordList) {
arenaRecordInfos.add(CommonProto.ArenaRecordInfo.newBuilder()
.setId(arenaRecord.getArenaRecord().getId())
.setAttackInfo(arenaRecord.getArenaEnemy().getPersonInfo())
.setMyScoreChange(arenaRecord.getArenaRecord().getDefScore())
.setAttackTime(arenaRecord.getArenaRecord().getCreateTime())
.setFightResult(arenaRecord.getArenaRecord().getFightResult())
.build());
}
builder.addAllArenaRecordInfo(arenaRecordInfos);
builder.addAllWroldBattleRecord(collect);
}
return builder.build();
}

View File

@ -1,21 +1,44 @@
package com.world.logic.arean;
import com.ljsd.jieling.util.KeyGenUtils;
import com.ljsd.jieling.util.UUIDEnum;
public class ArenaEnemy extends Object{
private int enemyId;
private String enemyId_UUid;//机器人唯一ID
private int serverID;
// 0玩家1机器人
// 0机器人
private int enemyType;
// 0未挑战1挑战成功2挑战失败
private int enemyStatus;
private int rank;//排名
private int worshipTime;//膜拜次数
public ArenaEnemy(int enemyId, int serverID, int enemyType, int enemyStatus) {
public ArenaEnemy(int enemyId, String enemyId_UUid, int serverID, int enemyType, int enemyStatus, int rank, int worshipTime) {
this.enemyId = enemyId;
this.enemyId_UUid = enemyId_UUid;
this.serverID = serverID;
this.enemyType = enemyType;
this.enemyStatus = enemyStatus;
this.rank = rank;
this.worshipTime = worshipTime;
}
public ArenaEnemy(int enemyId, int serverID, int enemyType, int enemyStatus) {
this.enemyId = enemyId;
this.enemyId_UUid=enemyType==0? KeyGenUtils.produceIdByModule(UUIDEnum.EXPEDITION, 0):String.valueOf(enemyId);
this.serverID = serverID;
this.enemyType = enemyType;
this.enemyStatus = enemyStatus;
}
public String getEnemyId_UUid() {
return enemyId_UUid;
}
public void setEnemyId_UUid(String enemyId_UUid) {
this.enemyId_UUid = enemyId_UUid;
}
public int getRank() {

View File

@ -51,15 +51,14 @@ public class ArenaLogic {
public static volatile Map<String, Integer> serverSplit = new HashMap<>();
public static ConcurrentHashMap<Integer, HashMap<Integer, ArenaEnemy>> ranInfo = new ConcurrentHashMap<>();//每个分组内排行榜信息
// public static ConcurrentHashMap<Integer, ArenaEnemy> userInfoCache = new ConcurrentHashMap<>();//成员信息缓存
// public static ConcurrentHashMap<Integer, ArenaEnemy> userInfoCache = new ConcurrentHashMap<>();//成员信息缓存
// private static ReentrantReadWriteLock rwlock = new ReentrantReadWriteLock();
// public static ReentrantReadWriteLock.ReadLock rlock =rwlock.readLock(); 使用不规范 容易死锁 等有时间了封装
// public static ReentrantReadWriteLock.WriteLock wlock=rwlock.writeLock();
// private static ReentrantReadWriteLock rwlock = new ReentrantReadWriteLock();
// public static ReentrantReadWriteLock.ReadLock rlock =rwlock.readLock(); 使用不规范 容易死锁 等有时间了封装
// public static ReentrantReadWriteLock.WriteLock wlock=rwlock.writeLock();
public static void initRank() throws Exception{
public static void initRank() throws Exception {
Map<String, Integer> serverSplit = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO, String.class, Integer.class);
serverSplit.forEach((s, integer) -> {
@ -67,19 +66,20 @@ public class ArenaLogic {
strings.add(s);
map.put(integer, strings);
});
ArenaLogic.serverSplit =serverSplit;
ArenaLogic.serverSplit = serverSplit;
Set<String> keys = new HashSet<>();
Cursor<String> cursor =RedisUtil.getInstence().scan("WORLD_ARENA_RANK:*", 200);
Cursor<String> cursor = RedisUtil.getInstence().scan("WORLD_ARENA_RANK:*", 200);
while (cursor.hasNext()) {
//找到一次就添加一次
keys.add(cursor.next());
}
cursor.close();
keys.forEach(k->{
HashMap<Integer, ArenaEnemy> object =RedisUtil.getInstence().getObject(k,new TypeToken< HashMap<Integer, ArenaEnemy>>(){}.getType());
keys.forEach(k -> {
HashMap<Integer, ArenaEnemy> object = RedisUtil.getInstence().getObject(k, new TypeToken<HashMap<Integer, ArenaEnemy>>() {
}.getType());
ranInfo.put(Integer.valueOf(k.split(":")[1]),object);
ranInfo.put(Integer.valueOf(k.split(":")[1]), object);
});
}
@ -104,17 +104,18 @@ public class ArenaLogic {
map.put(integer, strings);
});
//为每组生成排行榜
ArenaLogic.serverSplit =serverSplit;
ArenaLogic.serverSplit = serverSplit;
int[] fightArea = STableManager.getConfig(SMServerArenaSetting.class).get(1).getFightArea();
map.forEach((integer, strings) -> {
List<Integer> robotIds = randomRobot(fightArea[0], fightArea[1], 1000);
HashMap<Integer, ArenaEnemy> orDefault = ranInfo.getOrDefault(integer, new HashMap<>());
for (int i = 1; i <= robotIds.size(); i++) {
orDefault.put(i,new ArenaEnemy(robotIds.get(i - 1),0,0,0));
orDefault.put(i, new ArenaEnemy(robotIds.get(i - 1), 0, 0, 0));
}
ranInfo.put(integer, orDefault);
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK, String.valueOf(integer), orDefault,new TypeToken< HashMap<Integer, ArenaEnemy>>(){}.getType());
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK, String.valueOf(integer), orDefault, new TypeToken<HashMap<Integer, ArenaEnemy>>() {
}.getType());
});
}
@ -124,18 +125,37 @@ public class ArenaLogic {
}
public List<CommonProto.ArenaEnemy> getArenaEnemyList(List<ArenaEnemy> arenaEnemies) throws Exception {
public List<CommonProto.ArenaEnemy> getArenaEnemyList(List<ArenaEnemy> arenaEnemies,List<String> myPro) throws Exception {
List<CommonProto.ArenaEnemy> arenaEnemyList = new ArrayList<>(arenaEnemies.size());
for (ArenaEnemy arenaEnemy : arenaEnemies) {
int enemyId = arenaEnemy.getEnemyId();
int enemyType = arenaEnemy.getEnemyType();
int rank = arenaEnemy.getRank();//only robot
arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType,rank));
arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,arenaEnemy.getWorshipTime(),myPro.contains(arenaEnemy.getEnemyId_UUid())));
}
return arenaEnemyList;
}
public CommonProto.ArenaEnemy getArenaEnemy(int enemyId, int serverId, int enemyType,int rank) throws Exception {
public CommonProto.ArenaEnemy getRobotArenaEnemy(int enemyId) throws Exception {
SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(enemyId);
CommonProto.Team teamBuild = CommonProto.Team.newBuilder().addAllHeroTid(sArenaRobotConfig.getHeroList()).build();
CommonProto.ArenaPersonInfo personInfoBuild = CommonProto.ArenaPersonInfo.newBuilder()
.setUid(enemyId)
.setLevel(sArenaRobotConfig.getRobotLevel())
.setName(sArenaRobotConfig.getRobotName())
.setScore(sArenaRobotConfig.getRobotScore())
.setTotalForce(sArenaRobotConfig.getTotalForce())
.build();
return CommonProto.ArenaEnemy.newBuilder()
.setPersonInfo(personInfoBuild)
.setTeam(teamBuild)
.build();
}
public CommonProto.ArenaEnemy getArenaEnemy(int enemyId, int serverId, int enemyType, int rank,int proTime,boolean isContain) throws Exception {
if (enemyType == 0) { //机器人
SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(enemyId);
CommonProto.Team teamBuild = CommonProto.Team.newBuilder().addAllHeroTid(sArenaRobotConfig.getHeroList()).build();
@ -150,13 +170,15 @@ public class ArenaLogic {
return CommonProto.ArenaEnemy.newBuilder()
.setPersonInfo(personInfoBuild)
.setTeam(teamBuild)
.setWorshipTime(proTime)
.setHadProud(isContain)
.build();
} else {
WorldProto.GetGSUserArenaInfoResponse getGSUserArenaInfoResponse = gsHelper.sendMessageToGs(serverId, enemyId, WorldProto.GetGSUserArenaInfoRequest.newBuilder().setUid(enemyId).build(), WorldProto.GetGSUserArenaInfoResponse.class);
if (getGSUserArenaInfoResponse == null) {
return null;
}
return getGSUserArenaInfoResponse.getArenaEnemys();
return CommonProto.ArenaEnemy.newBuilder().mergeFrom(getGSUserArenaInfoResponse.getArenaEnemys()).setWorshipTime(proTime).setHadProud(isContain).build();
}
}
@ -329,7 +351,7 @@ public class ArenaLogic {
}
public static Map.Entry<Integer, ArenaEnemy> getKey(HashMap<Integer, ArenaEnemy> map ,int value) {
public static Map.Entry<Integer, ArenaEnemy> getKey(HashMap<Integer, ArenaEnemy> map, int value) {
for (Map.Entry<Integer, ArenaEnemy> entry : map.entrySet()) {
ArenaEnemy value1 = entry.getValue();
if (value1.getEnemyId() == value) {
@ -343,46 +365,47 @@ public class ArenaLogic {
/**
*
*/
public static List<ArenaEnemy> randomRank(HashMap<Integer, ArenaEnemy> integerIntegerHashMap ,int uid,int myRank){
public static List<ArenaEnemy> randomRank(HashMap<Integer, ArenaEnemy> integerIntegerHashMap, int uid, int myRank) {
//缓存每次匹配结果
Set<Integer> hisRank = RedisUtil.getInstence().getObject(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(uid)), new TypeToken<Set<Integer>>(){}.getType());
Set<Integer> hisRank = RedisUtil.getInstence().getObject(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(uid)), new TypeToken<Set<Integer>>() {
}.getType());
List<ArenaEnemy> arenaEnemies = new ArrayList<>();
TreeSet<Integer> matchRank;
if(hisRank==null||hisRank.size()==0){
if (hisRank == null || hisRank.size() == 0) {
//获取匹配对手
matchRank = getMatchID(myRank);
}else {
matchRank = getMatchID(myRank==9999?1000:myRank);
} else {
matchRank = new TreeSet<>(hisRank);
}
matchRank.forEach(rank -> {
if(!integerIntegerHashMap.containsKey(rank)){
if (!integerIntegerHashMap.containsKey(rank)) {
return;
}
ArenaEnemy matchInfo = integerIntegerHashMap.get(rank);
matchInfo.setRank(rank);
arenaEnemies.add(matchInfo);
// matchRank.add(rank);
// matchRank.add(rank);
});
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf( uid), matchRank);
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(uid), matchRank);
return arenaEnemies;
}
/**
*
*/
private static TreeSet<Integer> getMatchID(int index){
private static TreeSet<Integer> getMatchID(int index) {
//玩家排名 获取配置
Integer integer = SMServerArenaMatchConfig.rank2miss.floorKey(index);
Integer integer1 = SMServerArenaMatchConfig.rank2miss.get(integer);
TreeSet<Integer> objects = new TreeSet<>();
//分配对手
SMServerArenaMatchConfig serverArenaMatchConfig = STableManager.getConfig(SMServerArenaMatchConfig.class).get(integer1);
int blockID1 = (int)( Math.random()*(serverArenaMatchConfig.getBlock1()[1]-serverArenaMatchConfig.getBlock1()[0])+serverArenaMatchConfig.getBlock1()[0])+index;
int blockID2 = (int)( Math.random()*(serverArenaMatchConfig.getBlock2()[1]-serverArenaMatchConfig.getBlock2()[0])+serverArenaMatchConfig.getBlock2()[0])+index;
int blockID3 = (int)( Math.random()*(serverArenaMatchConfig.getBlock3()[1]-serverArenaMatchConfig.getBlock3()[0])+serverArenaMatchConfig.getBlock3()[0])+index;
int blockID4 = (int)( Math.random()*(serverArenaMatchConfig.getBlock4()[1]-serverArenaMatchConfig.getBlock4()[0])+serverArenaMatchConfig.getBlock4()[0])+index;
int blockID1 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock1()[1] - serverArenaMatchConfig.getBlock1()[0]) + serverArenaMatchConfig.getBlock1()[0]) ;
int blockID2 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock2()[1] - serverArenaMatchConfig.getBlock2()[0]) + serverArenaMatchConfig.getBlock2()[0]) ;
int blockID3 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock3()[1] - serverArenaMatchConfig.getBlock3()[0]) + serverArenaMatchConfig.getBlock3()[0]) ;
int blockID4 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock4()[1] - serverArenaMatchConfig.getBlock4()[0]) + serverArenaMatchConfig.getBlock4()[0]) ;
objects.add(blockID1);
objects.add(blockID2);
objects.add(blockID3);

View File

@ -27,4 +27,6 @@ public class RedisKey {
public static final String WORLD_ARENA_RRECORD = "WORLD_ARENA_RRECORD";//竞技场记录
public static final String WORLD_ARENA_MY_PRON = "WORLD_ARENA_MY_PRON";//我的膜拜记录
}

View File

@ -432,7 +432,17 @@ public class RedisUtil {
}
}
public <T> void putMapEntry(String type,String key,String mapKey, T value){
String rkey = getKey(type, key);
for (int i = 0; i < MAX_TRY_TIMES; i++) {
try {
redisTemplate.opsForHash().put(rkey,mapKey,gson.toJson(value));
return;
} catch (Exception e) {
TimeUtils.sleep(FAILED_SLEEP);
}
}
}
//操作sortset
public void zsetAddAall(String key, Set<ZSetOperations.TypedTuple<String>> items){
for (int i = 0; i < MAX_TRY_TIMES; i++) {
@ -653,9 +663,25 @@ public class RedisUtil {
}
}
public List<String> lGet(String type,String key, long start, long end) {
try {
String key1 = getKey(type, key);
return redisTemplate.opsForList().range(key1, start, end);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public boolean lSet(String key, String value) {
try {
redisTemplate.opsForList().rightPush(key, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public void removeZSetRangeByRank(String key,int start,int end){
for (int i = 0; i < MAX_TRY_TIMES; i++) {