修复竞猜数据&回收巅峰赛资源(redis)

back_recharge
wangyuan 2019-12-18 20:00:14 +08:00
parent 94b83a97dc
commit 4c47ac3d76
6 changed files with 453 additions and 275 deletions

View File

@ -12945,31 +12945,41 @@ public final class ArenaInfoProto {
*/
int getBetResult();
// optional .com.ljsd.jieling.protocols.FightData fightData = 3;
// optional int32 myBetCoins = 3;
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
boolean hasFightData();
boolean hasMyBetCoins();
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
com.ljsd.jieling.protocols.CommonProto.FightData getFightData();
int getMyBetCoins();
// optional int32 myWinCoins = 4;
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
*
* </pre>
*/
com.ljsd.jieling.protocols.CommonProto.FightDataOrBuilder getFightDataOrBuilder();
boolean hasMyWinCoins();
/**
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
* </pre>
*/
int getMyWinCoins();
}
/**
* Protobuf type {@code com.ljsd.jieling.protocols.ChampionMyBetDetail}
@ -13040,17 +13050,14 @@ public final class ArenaInfoProto {
betResult_ = input.readInt32();
break;
}
case 26: {
com.ljsd.jieling.protocols.CommonProto.FightData.Builder subBuilder = null;
if (((bitField0_ & 0x00000004) == 0x00000004)) {
subBuilder = fightData_.toBuilder();
}
fightData_ = input.readMessage(com.ljsd.jieling.protocols.CommonProto.FightData.PARSER, extensionRegistry);
if (subBuilder != null) {
subBuilder.mergeFrom(fightData_);
fightData_ = subBuilder.buildPartial();
}
case 24: {
bitField0_ |= 0x00000004;
myBetCoins_ = input.readInt32();
break;
}
case 32: {
bitField0_ |= 0x00000008;
myWinCoins_ = input.readInt32();
break;
}
}
@ -13151,44 +13158,59 @@ public final class ArenaInfoProto {
return betResult_;
}
// optional .com.ljsd.jieling.protocols.FightData fightData = 3;
public static final int FIGHTDATA_FIELD_NUMBER = 3;
private com.ljsd.jieling.protocols.CommonProto.FightData fightData_;
// optional int32 myBetCoins = 3;
public static final int MYBETCOINS_FIELD_NUMBER = 3;
private int myBetCoins_;
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
public boolean hasFightData() {
public boolean hasMyBetCoins() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
public com.ljsd.jieling.protocols.CommonProto.FightData getFightData() {
return fightData_;
public int getMyBetCoins() {
return myBetCoins_;
}
// optional int32 myWinCoins = 4;
public static final int MYWINCOINS_FIELD_NUMBER = 4;
private int myWinCoins_;
/**
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
* </pre>
*/
public boolean hasMyWinCoins() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
*
* </pre>
*/
public com.ljsd.jieling.protocols.CommonProto.FightDataOrBuilder getFightDataOrBuilder() {
return fightData_;
public int getMyWinCoins() {
return myWinCoins_;
}
private void initFields() {
enemyPairInfo_ = com.ljsd.jieling.protocols.ArenaInfoProto.ChampionTwoEnemInfo.getDefaultInstance();
betResult_ = 0;
fightData_ = com.ljsd.jieling.protocols.CommonProto.FightData.getDefaultInstance();
myBetCoins_ = 0;
myWinCoins_ = 0;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@ -13209,7 +13231,10 @@ public final class ArenaInfoProto {
output.writeInt32(2, betResult_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeMessage(3, fightData_);
output.writeInt32(3, myBetCoins_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeInt32(4, myWinCoins_);
}
getUnknownFields().writeTo(output);
}
@ -13230,7 +13255,11 @@ public final class ArenaInfoProto {
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, fightData_);
.computeInt32Size(3, myBetCoins_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(4, myWinCoins_);
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
@ -13341,7 +13370,6 @@ public final class ArenaInfoProto {
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getEnemyPairInfoFieldBuilder();
getFightDataFieldBuilder();
}
}
private static Builder create() {
@ -13358,12 +13386,10 @@ public final class ArenaInfoProto {
bitField0_ = (bitField0_ & ~0x00000001);
betResult_ = 0;
bitField0_ = (bitField0_ & ~0x00000002);
if (fightDataBuilder_ == null) {
fightData_ = com.ljsd.jieling.protocols.CommonProto.FightData.getDefaultInstance();
} else {
fightDataBuilder_.clear();
}
myBetCoins_ = 0;
bitField0_ = (bitField0_ & ~0x00000004);
myWinCoins_ = 0;
bitField0_ = (bitField0_ & ~0x00000008);
return this;
}
@ -13407,11 +13433,11 @@ public final class ArenaInfoProto {
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
if (fightDataBuilder_ == null) {
result.fightData_ = fightData_;
} else {
result.fightData_ = fightDataBuilder_.build();
result.myBetCoins_ = myBetCoins_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
result.myWinCoins_ = myWinCoins_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@ -13434,8 +13460,11 @@ public final class ArenaInfoProto {
if (other.hasBetResult()) {
setBetResult(other.getBetResult());
}
if (other.hasFightData()) {
mergeFightData(other.getFightData());
if (other.hasMyBetCoins()) {
setMyBetCoins(other.getMyBetCoins());
}
if (other.hasMyWinCoins()) {
setMyWinCoins(other.getMyWinCoins());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
@ -13666,157 +13695,102 @@ public final class ArenaInfoProto {
return this;
}
// optional .com.ljsd.jieling.protocols.FightData fightData = 3;
private com.ljsd.jieling.protocols.CommonProto.FightData fightData_ = com.ljsd.jieling.protocols.CommonProto.FightData.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.ljsd.jieling.protocols.CommonProto.FightData, com.ljsd.jieling.protocols.CommonProto.FightData.Builder, com.ljsd.jieling.protocols.CommonProto.FightDataOrBuilder> fightDataBuilder_;
// optional int32 myBetCoins = 3;
private int myBetCoins_ ;
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
public boolean hasFightData() {
public boolean hasMyBetCoins() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
public com.ljsd.jieling.protocols.CommonProto.FightData getFightData() {
if (fightDataBuilder_ == null) {
return fightData_;
} else {
return fightDataBuilder_.getMessage();
}
public int getMyBetCoins() {
return myBetCoins_;
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
public Builder setFightData(com.ljsd.jieling.protocols.CommonProto.FightData value) {
if (fightDataBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
fightData_ = value;
onChanged();
} else {
fightDataBuilder_.setMessage(value);
}
public Builder setMyBetCoins(int value) {
bitField0_ |= 0x00000004;
myBetCoins_ = value;
onChanged();
return this;
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myBetCoins = 3;</code>
*
* <pre>
*
*
* </pre>
*/
public Builder setFightData(
com.ljsd.jieling.protocols.CommonProto.FightData.Builder builderForValue) {
if (fightDataBuilder_ == null) {
fightData_ = builderForValue.build();
onChanged();
} else {
fightDataBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000004;
return this;
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
*
* <pre>
*
* </pre>
*/
public Builder mergeFightData(com.ljsd.jieling.protocols.CommonProto.FightData value) {
if (fightDataBuilder_ == null) {
if (((bitField0_ & 0x00000004) == 0x00000004) &&
fightData_ != com.ljsd.jieling.protocols.CommonProto.FightData.getDefaultInstance()) {
fightData_ =
com.ljsd.jieling.protocols.CommonProto.FightData.newBuilder(fightData_).mergeFrom(value).buildPartial();
} else {
fightData_ = value;
}
onChanged();
} else {
fightDataBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000004;
return this;
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
*
* <pre>
*
* </pre>
*/
public Builder clearFightData() {
if (fightDataBuilder_ == null) {
fightData_ = com.ljsd.jieling.protocols.CommonProto.FightData.getDefaultInstance();
onChanged();
} else {
fightDataBuilder_.clear();
}
public Builder clearMyBetCoins() {
bitField0_ = (bitField0_ & ~0x00000004);
myBetCoins_ = 0;
onChanged();
return this;
}
// optional int32 myWinCoins = 4;
private int myWinCoins_ ;
/**
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
* </pre>
*/
public boolean hasMyWinCoins() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
* </pre>
*/
public int getMyWinCoins() {
return myWinCoins_;
}
/**
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
* </pre>
*/
public Builder setMyWinCoins(int value) {
bitField0_ |= 0x00000008;
myWinCoins_ = value;
onChanged();
return this;
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
* <code>optional int32 myWinCoins = 4;</code>
*
* <pre>
*
*
* </pre>
*/
public com.ljsd.jieling.protocols.CommonProto.FightData.Builder getFightDataBuilder() {
bitField0_ |= 0x00000004;
public Builder clearMyWinCoins() {
bitField0_ = (bitField0_ & ~0x00000008);
myWinCoins_ = 0;
onChanged();
return getFightDataFieldBuilder().getBuilder();
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
*
* <pre>
*
* </pre>
*/
public com.ljsd.jieling.protocols.CommonProto.FightDataOrBuilder getFightDataOrBuilder() {
if (fightDataBuilder_ != null) {
return fightDataBuilder_.getMessageOrBuilder();
} else {
return fightData_;
}
}
/**
* <code>optional .com.ljsd.jieling.protocols.FightData fightData = 3;</code>
*
* <pre>
*
* </pre>
*/
private com.google.protobuf.SingleFieldBuilder<
com.ljsd.jieling.protocols.CommonProto.FightData, com.ljsd.jieling.protocols.CommonProto.FightData.Builder, com.ljsd.jieling.protocols.CommonProto.FightDataOrBuilder>
getFightDataFieldBuilder() {
if (fightDataBuilder_ == null) {
fightDataBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.ljsd.jieling.protocols.CommonProto.FightData, com.ljsd.jieling.protocols.CommonProto.FightData.Builder, com.ljsd.jieling.protocols.CommonProto.FightDataOrBuilder>(
fightData_,
getParentForChildren(),
isClean());
fightData_ = null;
}
return fightDataBuilder_;
return this;
}
// @@protoc_insertion_point(builder_scope:com.ljsd.jieling.protocols.ChampionMyBetDetail)
@ -16558,21 +16532,20 @@ public final class ArenaInfoProto {
"rotocols.ArenaEnemy\0229\n\tblueEnemy\030\002 \001(\0132&" +
".com.ljsd.jieling.protocols.ArenaEnemy\022\023" +
"\n\013fightResult\030\003 \001(\005\022\022\n\nroundTimes\030\004 \001(\005\022" +
"\n\n\002id\030\005 \001(\t\"\252\001\n\023ChampionMyBetDetail\022F\n\re" +
"\n\n\002id\030\005 \001(\t\"\230\001\n\023ChampionMyBetDetail\022F\n\re" +
"nemyPairInfo\030\001 \001(\0132/.com.ljsd.jieling.pr" +
"otocols.ChampionTwoEnemInfo\022\021\n\tbetResult",
"\030\002 \001(\005\0228\n\tfightData\030\003 \001(\0132%.com.ljsd.jie" +
"ling.protocols.FightData\"o\n%ChanpionGetA" +
"llMyBattleHistoryResponse\022F\n\renemyPairIn" +
"fo\030\001 \003(\0132/.com.ljsd.jieling.protocols.Ch" +
"ampionTwoEnemInfo\"p\n\037ChampionGetAllMyBet" +
"InfoResponse\022M\n\024championMyBetDetails\030\001 \003" +
"(\0132/.com.ljsd.jieling.protocols.Champion" +
"MyBetDetail\"(\n\030ChampionViewFinalRequest\022" +
"\014\n\004type\030\001 \001(\005\"o\n\031ChampionViewFinalRespon" +
"se\022R\n\026championBattlePairInfo\030\001 \003(\01322.com",
".ljsd.jieling.protocols.ChampionBattlePa" +
"irInfoB\002H\001"
"\030\002 \001(\005\022\022\n\nmyBetCoins\030\003 \001(\005\022\022\n\nmyWinCoins" +
"\030\004 \001(\005\"o\n%ChanpionGetAllMyBattleHistoryR" +
"esponse\022F\n\renemyPairInfo\030\001 \003(\0132/.com.ljs" +
"d.jieling.protocols.ChampionTwoEnemInfo\"" +
"p\n\037ChampionGetAllMyBetInfoResponse\022M\n\024ch" +
"ampionMyBetDetails\030\001 \003(\0132/.com.ljsd.jiel" +
"ing.protocols.ChampionMyBetDetail\"(\n\030Cha" +
"mpionViewFinalRequest\022\014\n\004type\030\001 \001(\005\"o\n\031C" +
"hampionViewFinalResponse\022R\n\026championBatt" +
"lePairInfo\030\001 \003(\01322.com.ljsd.jieling.prot",
"ocols.ChampionBattlePairInfoB\002H\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@ -16686,7 +16659,7 @@ public final class ArenaInfoProto {
internal_static_com_ljsd_jieling_protocols_ChampionMyBetDetail_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_com_ljsd_jieling_protocols_ChampionMyBetDetail_descriptor,
new java.lang.String[] { "EnemyPairInfo", "BetResult", "FightData", });
new java.lang.String[] { "EnemyPairInfo", "BetResult", "MyBetCoins", "MyWinCoins", });
internal_static_com_ljsd_jieling_protocols_ChanpionGetAllMyBattleHistoryResponse_descriptor =
getDescriptor().getMessageTypes().get(18);
internal_static_com_ljsd_jieling_protocols_ChanpionGetAllMyBattleHistoryResponse_fieldAccessorTable = new

View File

@ -81019,6 +81019,24 @@ public final class CommonProto {
* </pre>
*/
int getTeamId();
// optional int32 position = 7;
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
boolean hasPosition();
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
int getPosition();
}
/**
* Protobuf type {@code com.ljsd.jieling.protocols.ChampionBattlePairInfo}
@ -81101,6 +81119,11 @@ public final class CommonProto {
teamId_ = input.readInt32();
break;
}
case 56: {
bitField0_ |= 0x00000040;
position_ = input.readInt32();
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
@ -81354,6 +81377,30 @@ public final class CommonProto {
return teamId_;
}
// optional int32 position = 7;
public static final int POSITION_FIELD_NUMBER = 7;
private int position_;
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
public boolean hasPosition() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
public int getPosition() {
return position_;
}
private void initFields() {
attackName_ = "";
defName_ = "";
@ -81361,6 +81408,7 @@ public final class CommonProto {
id_ = "";
roundTImes_ = 0;
teamId_ = 0;
position_ = 0;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@ -81392,6 +81440,9 @@ public final class CommonProto {
if (((bitField0_ & 0x00000020) == 0x00000020)) {
output.writeInt32(6, teamId_);
}
if (((bitField0_ & 0x00000040) == 0x00000040)) {
output.writeInt32(7, position_);
}
getUnknownFields().writeTo(output);
}
@ -81425,6 +81476,10 @@ public final class CommonProto {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(6, teamId_);
}
if (((bitField0_ & 0x00000040) == 0x00000040)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(7, position_);
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
@ -81553,6 +81608,8 @@ public final class CommonProto {
bitField0_ = (bitField0_ & ~0x00000010);
teamId_ = 0;
bitField0_ = (bitField0_ & ~0x00000020);
position_ = 0;
bitField0_ = (bitField0_ & ~0x00000040);
return this;
}
@ -81605,6 +81662,10 @@ public final class CommonProto {
to_bitField0_ |= 0x00000020;
}
result.teamId_ = teamId_;
if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
to_bitField0_ |= 0x00000040;
}
result.position_ = position_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@ -81645,6 +81706,9 @@ public final class CommonProto {
if (other.hasTeamId()) {
setTeamId(other.getTeamId());
}
if (other.hasPosition()) {
setPosition(other.getPosition());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
@ -82065,6 +82129,55 @@ public final class CommonProto {
return this;
}
// optional int32 position = 7;
private int position_ ;
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
public boolean hasPosition() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
public int getPosition() {
return position_;
}
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
public Builder setPosition(int value) {
bitField0_ |= 0x00000040;
position_ = value;
onChanged();
return this;
}
/**
* <code>optional int32 position = 7;</code>
*
* <pre>
* 1 2 3 4
* </pre>
*/
public Builder clearPosition() {
bitField0_ = (bitField0_ & ~0x00000040);
position_ = 0;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:com.ljsd.jieling.protocols.ChampionBattlePairInfo)
}
@ -82773,10 +82886,11 @@ public final class CommonProto {
"\022:\n\tenemyInfo\030\002 \001(\0132\'.com.ljsd.jieling.p" +
"rotocols.TeamOneInfo\022\016\n\006result\030\003 \001(\005\0228\n\t" +
"fightData\030\004 \001(\0132%.com.ljsd.jieling.proto" +
"cols.FightData\"\202\001\n\026ChampionBattlePairInf" +
"cols.FightData\"\224\001\n\026ChampionBattlePairInf" +
"o\022\022\n\nattackName\030\001 \001(\t\022\017\n\007defName\030\002 \001(\t\022\023",
"\n\013fightResult\030\003 \001(\005\022\n\n\002id\030\004 \001(\t\022\022\n\nround" +
"TImes\030\005 \001(\005\022\016\n\006teamId\030\006 \001(\005B\002H\001"
"TImes\030\005 \001(\005\022\016\n\006teamId\030\006 \001(\005\022\020\n\010position\030" +
"\007 \001(\005B\002H\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@ -83322,7 +83436,7 @@ public final class CommonProto {
internal_static_com_ljsd_jieling_protocols_ChampionBattlePairInfo_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_com_ljsd_jieling_protocols_ChampionBattlePairInfo_descriptor,
new java.lang.String[] { "AttackName", "DefName", "FightResult", "Id", "RoundTImes", "TeamId", });
new java.lang.String[] { "AttackName", "DefName", "FightResult", "Id", "RoundTImes", "TeamId", "Position", });
return null;
}
};

View File

@ -287,12 +287,7 @@ public class ArenaLogic {
.build();
builder.setFightData(build);
//数据互换
byte[] snapRecord = CommonProto.FightData.newBuilder()
.setFightMaxTime(SArenaSetting.getSArenaSetting().getMostTime())
.setFightSeed(seed)
.setHeroFightInfos(deffightTeamInfo)
.addMonsterList(fightTeamInfo)
.build().toByteArray();
byte[] snapRecord = build.toByteArray();
arenaRecord.setFightData(snapRecord);
return fightResult.getCheckResult()[0];
}

View File

@ -2,10 +2,12 @@ package com.ljsd.jieling.logic.championship;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.googlecode.protobuf.format.JsonFormat;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.core.HandlerLogicThread;
import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
@ -80,6 +82,7 @@ public class ChampionshipLogic {
}else{
arenaRecodeds = RedisUtil.getInstence().lGet(RedisKey.CHAMPION_FINAL4_JOIN_IDS, "", 0, -1);
}
SChampionshipSetting sChampionshipSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getsChampionshipSetting();
List<Object> arenaIds = new ArrayList<>(arenaRecodeds);
List<ArenaRecord> arenaRecords = RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", arenaIds, ArenaRecord.class);
Map<Integer, SArenaRobotConfig> config = STableManager.getConfig(SArenaRobotConfig.class);
@ -91,13 +94,17 @@ public class ChampionshipLogic {
String attackName = getRoleNameById(attackId, config);
String defName = getRoleNameById(defUid, config);
int fightResult = arenaRecord.getFightResult();
if (curArenaRecordIds.contains(arenaRecord.getId()) && progress % 10 % 4 != 0) {
if (arenaRecord.getRoundTims() == roundTimes && progress % 10 % 4 != 3) {
fightResult = -1;
}
if(fightResult == -2){
fightResult = -1;
}
int teamId=1;
if(type == 1){
teamId = memberPerOfTeam.get(attackId) +1;
}
builder.addChampionBattlePairInfo(CommonProto.ChampionBattlePairInfo.newBuilder()
.setAttackName(attackName)
.setDefName(defName)
@ -105,6 +112,7 @@ public class ChampionshipLogic {
.setRoundTImes(arenaRecord.getRoundTims())
.setTeamId(teamId)
.setId(arenaRecord.getId())
.setPosition(arenaRecord.getNums()+1)
);
}
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.CHAMPION_VIEW_FINAL_RESPONSE_VALUE,builder.build(),true);
@ -248,6 +256,17 @@ public class ChampionshipLogic {
*/
public static void start() {
LOGGER.info("the champion start...");
Set<ZSetOperations.TypedTuple<String>> arenaRankInfoInRedis = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CHAMPION_RANK, Integer.toString(1), 0, -1);
Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
Set<Integer> joinUids = new HashSet<>(128);
for(ZSetOperations.TypedTuple<String> item : arenaRankInfoInRedis){
String uidStr = item.getValue();
int uid = Integer.parseInt(uidStr);
if(!robotConfigMap.containsKey(uid)){
joinUids.add(uid);
}
}
clearReidsWhenEnd(joinUids);
SChampionshipSetting sChampionshipSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getsChampionshipSetting();
int championshipPlayer = sChampionshipSetting.getChampionshipPlayer();
int curSeason = ArenaLogic.getInstance().getCurSeason();
@ -297,7 +316,7 @@ public class ChampionshipLogic {
}
int trialsGroup = sChampionshipSetting.getTrialsGroup();
int nums = championshipPlayer / trialsGroup;
List<List<Integer>> memberOfTeamOfGroup = getMemberOfTeamOfGroup(memberInfos, nums);
List<List<Integer>> memberOfTeamOfGroup = getMemberOfTeamOfGroup(memberInfos, nums,false);
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_JOIN, "");
RedisUtil.getInstence().del(key, RedisUtil.getInstence().getKey(RedisKey.CHAMPION_RANK, ""));
RedisUtil.getInstence().updateZsetScores(RedisKey.CHAMPION_RANK,"",arenaRankInfoForChampion);
@ -328,6 +347,7 @@ public class ChampionshipLogic {
Set<ZSetOperations.TypedTuple<String>> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CHAMPION_RANK, Integer.toString(1), 0, -1);
Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
int nowTime = (int)(TimeUtils.now()/1000);
Set<Integer> joinUids = new HashSet<>(128);
for(ZSetOperations.TypedTuple<String> item : arenaRankInfo){
String uidStr = item.getValue();
int uid = Integer.parseInt(uidStr);
@ -341,45 +361,37 @@ public class ChampionshipLogic {
String content = SErrorCodeEerverConfig.getI18NMessage("champion_reward_txt",new Object[]{rank++});
MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sChampionshipReward.getSeasonReward()),nowTime, Global.MAIL_EFFECTIVE_TIME);
}
clearReidsWhenEnd(joinUids);
}
/**
*
* 1.
* 2.
* 使
*/
public static void whenStart() throws Exception {
/* TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.TopBattle);
if( null == timeControllerOfFunction){
progress = -1;
return;
}
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_JOIN, "");
Type type = new TypeToken<Map<Integer, byte[]>>() {
}.getType();
Object championJoins = RedisUtil.getInstence().get(key);*/
// start();
/* for(int i=1;i<8;i++){
start();
for(int i=1;i<8;i++){
roundTimes=i;
selectToBattle();
switchBet();
switchBet(47);
scoreToRedis();
}
selectToJoinFinal();
schedule=2;
for(int i=8;i<12;i++){
for(int i=8;i<13;i++){
roundTimes=i;
selectToBattle();
switchBet();
switchBet(47);
scoreToRedis();
}*/
}
progress=253;
endTime=1576665312;
}
@ -391,7 +403,7 @@ public class ChampionshipLogic {
* @param groupNums
* @return
*/
private static List<List<Integer>> getMemberOfTeamOfGroup(List<MemberInfo> memberInfoList,int groupNums){
private static List<List<Integer>> getMemberOfTeamOfGroup(List<MemberInfo> memberInfoList,int groupNums,boolean teamUpdate){
Collections.shuffle(memberInfoList);
int index=0;
List<List<Integer>> memberOfTeamTmp = new ArrayList<>();
@ -402,7 +414,9 @@ public class ChampionshipLogic {
for(MemberInfo memberInfo : memberInfoList){
int teamId = (index++ % groupNums);
memberOfTeamTmp.get(teamId).add(memberInfo.getUid());
if(schedule == 1){
if(teamUpdate){
memberInfo.setTeamId(teamId*100);
}else{
memberInfo.setTeamId(teamId);
}
}
@ -422,23 +436,18 @@ public class ChampionshipLogic {
int uid = session.getUid();
//组装数据
int myRank = RedisUtil.getInstence().getZSetreverseRank(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue();
String myCurJoinBattleId = getMyCurJoinBattleId(uid);
ArenaInfoProto.ChampionGetInfoResponse.Builder builder = ArenaInfoProto.ChampionGetInfoResponse.newBuilder().setProgress(progress).setEndTime(endTime).setMyrank(myRank);
if(myRank!=-1){
MemberInfo memberInfo = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_JOIN, "", Integer.toString(uid), MemberInfo.class);
builder.setMyscore(memberInfo.getScore());
}
if(!StringUtil.isEmpty(myCurJoinBattleId)){
builder.setJoinState(1);
ArenaRecord arenaRecord =RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_ARENA_RECORD,"",myCurJoinBattleId,ArenaRecord.class);
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(uid));
Object latestKey = RedisUtil.getInstence().lGetIndex(key, -1);
ArenaRecord arenaRecord = RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_ARENA_RECORD, "", latestKey.toString(), ArenaRecord.class);
int enemyId = arenaRecord.getDefUid();
int fightResult = arenaRecord.getFightResult();
if(uid == enemyId){
enemyId = arenaRecord.getAttackId();
fightResult=1^fightResult;
}
CommonProto.ChampionBattleInfo.Builder builder1 = CommonProto.ChampionBattleInfo.newBuilder();
if(progress%10%4 != 0){
if(roundTimes == arenaRecord.getRoundTims() && (progress%10%4 != 3 || fightResult==-2)){
fightResult =-1;
}
if(fightResult!=-1){
@ -467,9 +476,12 @@ public class ChampionshipLogic {
ArenaRecord arenaRecord = RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_ARENA_RECORD, "", selectIdForRedis, ArenaRecord.class);
if(type == 0){
int fightResult=arenaRecord.getFightResult();
if(progress%10%4 != 3){
if(arenaRecord.getRoundTims() == roundTimes && progress%10%4 != 3){
fightResult =-1;
}
if(fightResult == -2){
fightResult=-1;
}
int myGuessID = 0;
String guessUidStr = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_BET_MINE, Integer.toString(uid), selectIdForRedis, String.class);
if(!StringUtil.isEmpty(guessUidStr)) {
@ -552,7 +564,7 @@ public class ChampionshipLogic {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
List<Integer> memberIds = getMermberTeam().get(memberInfo.getTeamId());
List<Integer> memberIds = getMermberTeam().get(memberInfo.getTeamId()%100);
ArenaInfoProto.ChampionGetWorldRankResponse.Builder builder = ArenaInfoProto.ChampionGetWorldRankResponse.newBuilder();
List<CommonProto.ArenaEnemy> arenaRankMemberInfo = new ArrayList<>(8);
Map<Integer,Integer> uidRankMap = new HashMap<>();
@ -583,29 +595,23 @@ public class ChampionshipLogic {
//查看我的战斗记录
public static void viewAllMyBattleInfo(ISession session) throws Exception {
int uid = session.getUid();
Map<String, Integer> mapValues = RedisUtil.getInstence().getMapValues(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(uid), String.class, Integer.class);
List<Object> ids = new ArrayList<>(mapValues.keySet());
List<ArenaRecord> myArenaRecordInfos = RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", ids, ArenaRecord.class);
List<String> myArenaIds = RedisUtil.getInstence().lGet(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(uid), 0, -1);
ArenaInfoProto.ChanpionGetAllMyBattleHistoryResponse.Builder builder = ArenaInfoProto.ChanpionGetAllMyBattleHistoryResponse.newBuilder();
if(myArenaIds!=null){
List<Object> ids = new ArrayList<>(myArenaIds);
List<ArenaRecord> myArenaRecordInfos = RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", ids, ArenaRecord.class);
Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
for(ArenaRecord arenaRecord : myArenaRecordInfos){
int enemyId = arenaRecord.getDefUid();
if(arenaRecord.getDefUid() == uid){
enemyId = arenaRecord.getAttackId();
}
int fightResult = arenaRecord.getFightResult();
if(roundTimes == arenaRecord.getRoundTims()){
if(progress%10%4 != 0){
if(progress%10%4 != 0 || fightResult==-2){
fightResult =-1;
}
}
if(fightResult == -2){
fightResult =-1;
}
if(fightResult!=-1 && enemyId!=arenaRecord.getDefUid()){
fightResult = 1^0;
}
int enemyType = robotConfigMap.containsKey(enemyId)?0:1;
CommonProto.ArenaEnemy arenaEnemy = ArenaLogic.getInstance().getArenaEnemy(enemyId, enemyType);
ArenaInfoProto.ChampionTwoEnemInfo build = ArenaInfoProto.ChampionTwoEnemInfo.newBuilder().setBlueEnemy(arenaEnemy).setRoundTimes(arenaRecord.getRoundTims())
@ -614,6 +620,7 @@ public class ChampionshipLogic {
.build();
builder.addEnemyPairInfo(build);
}
}
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.CHAMPION_GET_MYHISTORY_RESPONSE_VALUE,builder.build(),true);
}
@ -659,8 +666,6 @@ public class ChampionshipLogic {
Map<Integer, SArenaRobotConfig> config = STableManager.getConfig(SArenaRobotConfig.class);
if(config.containsKey(uid)){
SArenaRobotConfig sArenaRobotConfig = config.get(uid);
return;
}
MemberInfo memberInfo = joinMembers.get(uid);
@ -770,7 +775,7 @@ public class ChampionshipLogic {
}
ArenaRecord arenaRecord = RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_ARENA_RECORD, "", selectUid, ArenaRecord.class);
if(arenaRecord.getAttackId()!=winUid && arenaRecord.getDefUid()!=winUid){
LOGGER.error("the uid={} guess winner={} is not exists",uid,winUid);
LOGGER.error("the uid={} guess winner={} is not exists,recordId={}",uid,winUid,arenaRecord.getId());
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
User user = UserManager.getUser(uid);
@ -794,14 +799,33 @@ public class ChampionshipLogic {
/**
*
*/
public static void clearReidsWhenEnd(){
public static void clearReidsWhenEnd( Set<Integer> joinUids){
List<String> delKeys = new ArrayList<>();
String betAllKey = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_BET_ALL, "");
Set<String> betDetails = RedisUtil.getInstence().getZset(betAllKey, 0, -1);
for(String betInfo : betDetails){
Map<Integer, Integer> userDeatails = RedisUtil.getInstence().getMapValues(RedisKey.CHAMPION_BET_DETAIL, betInfo, Integer.class, Integer.class);
userDeatails.keySet().forEach(uid->{
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_BET_MINE,Integer.toString(uid)));
});
delKeys.add(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_BET_DETAIL, betInfo));
}
delKeys.add(betAllKey);
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_ARENA_RECORD, ""));
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_CHOSE_TEAM_INFO, ""));
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_CUR_JOIN_IDS, ""));
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_JOIN, ""));
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_CUR_BETID, ""));
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_FINAL32_JOIN_IDS, ""));
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_FINAL4_JOIN_IDS, ""));
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_FINAL_TEAM_INFO, ""));
//我的历史结果
joinUids.forEach(uid->{
delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(uid)));
});
RedisUtil.getInstence().del(delKeys.toArray(new String[0]));
}
/**
@ -839,6 +863,7 @@ public class ChampionshipLogic {
drop[0][0] = arenaItem[0];
drop[0][1] = mineWinCoins;
ItemUtil.drop(user, drop, BIReason.CHAMPIION_BET_WIN_REWARD);
MongoUtil.getLjsdMongoTemplate().lastUpdate();
}
});
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
@ -862,23 +887,22 @@ public class ChampionshipLogic {
if(!betHistorys.isEmpty()){
List<Object> ids = new ArrayList<>(betHistorys.keySet());
List<ArenaRecord> arenaRecords = RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", ids, ArenaRecord.class);
String selectIdForRedis = getSelectIdForRedis();
Map<Integer, SArenaRobotConfig> arenaRobotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
for(ArenaRecord arenaRecord: arenaRecords){
int attactkUidType = arenaRobotConfigMap.containsKey(arenaRecord.getAttackId())?0:1;
int defUidType = arenaRobotConfigMap.containsKey(arenaRecord.getAttackId())?0:1;
int defUidType = arenaRobotConfigMap.containsKey(arenaRecord.getDefUid())?0:1;
CommonProto.ArenaEnemy attackEnemy = ArenaLogic.getInstance().getArenaEnemy(arenaRecord.getAttackId(), attactkUidType);
CommonProto.ArenaEnemy defEnemy = ArenaLogic.getInstance().getArenaEnemy(arenaRecord.getDefUid(), defUidType);
int fightResult = arenaRecord.getFightResult();
int guessState = 3;
if(arenaRecord.getId().equals(selectIdForRedis)){
if(progress%10%4!=0){
if(arenaRecord.getRoundTims()==roundTimes){
if(progress%10%4!=3){
fightResult=-1;
}
if(progress%10%4 == 4){
if(progress%10%4 == 0){
guessState=0;
}
if(progress%10%4 == 3){
if(progress%10%4 == 1 || progress%10%4 == 2){
guessState=1;
}
}
@ -886,20 +910,31 @@ public class ChampionshipLogic {
fightResult =-1;
}
ArenaInfoProto.ChampionMyBetDetail.Builder betDetailBuilder = ArenaInfoProto.ChampionMyBetDetail.newBuilder();
String guessUid = betHistorys.get(arenaRecord.getId());
Integer mineBetCoins = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_BET_DETAIL, arenaRecord.getId() + ":" + guessUid, Integer.toString(uid), Integer.class);
int myWinCoins =0;
if(fightResult>=0){
int winner = arenaRecord.getAttackId();
int loseer = arenaRecord .getDefUid();
if(fightResult == 0){
winner = arenaRecord.getDefUid();
loseer = arenaRecord.getAttackId();
}
String guessUid = betHistorys.get(arenaRecord.getId());
if(!StringUtil.isEmpty(guessUid) && guessUid.equals(winner)){
guessState = 2;
Double winnerCoins = RedisUtil.getInstence().getZSetScore(RedisKey.CHAMPION_BET_ALL, "", arenaRecord.getId() + ":" + winner);
Double loseCoins = RedisUtil.getInstence().getZSetScore(RedisKey.CHAMPION_BET_ALL, "", arenaRecord.getId() + ":" + loseer);
myWinCoins = (int)(winnerCoins/(winnerCoins+loseCoins)*mineBetCoins);
}
// betDetailBuilder.setFightData(CommonProto.FightData.parseFrom(arenaRecord.getFightData()));
}
builder.addChampionMyBetDetails(betDetailBuilder.setBetResult(guessState).setEnemyPairInfo(
ArenaInfoProto.ChampionTwoEnemInfo.newBuilder().setRedEnemy(attackEnemy).setBlueEnemy(defEnemy).setFightResult(fightResult)
));
builder.addChampionMyBetDetails(betDetailBuilder.setBetResult(guessState)
.setEnemyPairInfo(ArenaInfoProto.ChampionTwoEnemInfo.newBuilder().setRedEnemy(attackEnemy).setBlueEnemy(defEnemy).setFightResult(fightResult).setId(arenaRecord.getId()).setRoundTimes(arenaRecord.getRoundTims()))
.setMyBetCoins(mineBetCoins)
.setMyWinCoins(myWinCoins)
);
}
}
@ -976,6 +1011,12 @@ public class ChampionshipLogic {
}
});
}
int times = 0;
int length = possibleJoin.size();
if(length<8){
length=8;
}
length = length / 8;
for(int i=0;i<possibleJoin.size();i=i+2){
MemberInfo memberInfoAttack = possibleJoin.get(i);
MemberInfo memberInfoDef = possibleJoin.get(i+1);
@ -992,6 +1033,11 @@ public class ChampionshipLogic {
arenaRecord.setDefUid(defUid);
arenaRecord.setType(type);
arenaRecord.setRoundTims(roundTimes);
if(roundTimes>10){
arenaRecord.setNums(times++);
}else{
arenaRecord.setNums(times++%length);
}
arenaRecordMap.put(arenaRecord.getId(),arenaRecord);
}
@ -1002,6 +1048,7 @@ public class ChampionshipLogic {
if(schedule == 2){
if(arenaRecordIds.size()>=4){
RedisUtil.getInstence().lSet(RedisKey.CHAMPION_FINAL32_JOIN_IDS,"",arenaRecordIds);
LOGGER.info("the rountTimes={},the size={}",roundTimes,arenaRecordIds.size());
}else{
RedisUtil.getInstence().lSet(RedisKey.CHAMPION_FINAL4_JOIN_IDS,"",arenaRecordIds);
}
@ -1012,10 +1059,13 @@ public class ChampionshipLogic {
int defUid = arenaRecord.getDefUid();
int attackId = arenaRecord.getAttackId();
if(!robotConfigMap.containsKey(defUid)){
RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(defUid),id, 0);
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(defUid));
RedisUtil.getInstence().lSet(key,id);
}
if(!robotConfigMap.containsKey(attackId)){
RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(attackId),id, 0);
String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(attackId));
RedisUtil.getInstence().lSet(key,id);
}
});
@ -1058,7 +1108,7 @@ public class ChampionshipLogic {
}
}
RedisUtil.getInstence().updateZsetScores(RedisKey.CHAMPION_RANK,"",arenaRankInfoForChampion);
List<List<Integer>> finalmemberOfTeam = getMemberOfTeamOfGroup(canJoinFinal,knockoutGroup);
List<List<Integer>> finalmemberOfTeam = getMemberOfTeamOfGroup(canJoinFinal,knockoutGroup,true);
for(int i=0;i<finalmemberOfTeam.size();i++){
RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_FINAL_TEAM_INFO, "",Integer.toString(i),finalmemberOfTeam.get(i));
}
@ -1078,9 +1128,9 @@ public class ChampionshipLogic {
* 4广
* @throws Exception
*/
public static void switchBet() throws Exception {
public static void switchBet(int functionId) throws Exception {
int[][] itemNum = STableManager.getFigureConfig(CommonStaticConfig.class).getsChampionshipSetting().getItemNum();
InnerMessageUtil.broadcastWithRandom(user1 -> {
/* InnerMessageUtil.broadcastWithRandom(user1 -> {
if(user1==null){
return;
}
@ -1093,10 +1143,32 @@ public class ChampionshipLogic {
return;
}
MissionEventDistributor.requestStart();
ItemUtil.drop(user1,itemNum, BIReason.CHAMPIION_BET_REWARD);
CommonProto.Drop.Builder drop =
LOGGER.info("drop--->>>>>>>>> uid ={},drop={}",session.getUid(), JsonFormat.printToString(drop.build()));
MissionEventDistributor.requestEnd(session,true);
}, new LinkedList<>(OnlineUserManager.sessionMap.keySet()),1);
MongoUtil.getLjsdMongoTemplate().lastUpdate();
}, new LinkedList<>(OnlineUserManager.sessionMap.keySet()),1);*/
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(functionId);
OnlineUserManager.sessionMap.values().forEach(session->{
try {
User user = UserManager.getUser(session.getUid());
AyyncWorker ayyncWorker = new AyyncWorker(user, true, new AyncWorkerRunnable() {
@Override
public void work(User user) throws Exception {
if(!HandlerLogicThread.checkOpen(user, sGlobalSystemConfig)){
return;
}
ItemUtil.drop(user, itemNum, BIReason.CHAMPIION_BET_REWARD);
MongoUtil.getLjsdMongoTemplate().lastUpdate();
}
});
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
} catch (Exception e) {
e.printStackTrace();
}
});
snapPlayFightInfo();
selectBetTeam();
}
@ -1106,6 +1178,7 @@ public class ChampionshipLogic {
public static void getWorldRankByPage(ISession session,int type,int page) throws Exception {
if(type == 1){
getMyTeamInfo(session);
return;
}
if (page == 0) {
page = 1;
@ -1198,6 +1271,7 @@ public class ChampionshipLogic {
.setRank(start)
.setTotalForce(totalForce)
.setHeadFrame(playerInfoManager.getHeadFrame())
.setScore(score)
.build();
return builder.setPersonInfo(personInfoBuild)
.build();
@ -1225,9 +1299,21 @@ public class ChampionshipLogic {
}else {//决赛
int totalWiner =sChampionshipSetting.getChampionshipPlayer()/ sChampionshipSetting.getTrialsGroup() * sChampionshipSetting.getTrialsGroupWinner();
if(diff>totalWiner){
if(isServerStart){
schedule=2;
progress= 253;
endTime = (int)( startTime/1000 + (round-1)*duration + getDuratimeByProgressState(3));
}
return;
}
if(Math.pow(2,diff)>=totalWiner){
if(isServerStart){
schedule=2;
progress= 253;
endTime = (int)( startTime/1000 + (round-1)*duration + getDuratimeByProgressState(3));
}
return;
}
@ -1251,7 +1337,7 @@ public class ChampionshipLogic {
selectToBattle();
}
if(progress%10%4==1){ //竞猜阶段 后台自动运行战斗
switchBet();
switchBet(timeControllerOfFunction.getId());
}else if(progress%10%4==3){ //结算阶段
//等待玩家数据分数入redis
scoreToRedis();

View File

@ -24,6 +24,8 @@ public class ArenaRecord {
private int roundTims; //决赛阶段赋值 十位表示队伍id 个位表示第几轮
private int nums =1;
public ArenaRecord(){}
public int getAttackId() {
@ -105,4 +107,12 @@ public class ArenaRecord {
public void setRoundTims(int roundTims) {
this.roundTims = roundTims;
}
public int getNums() {
return nums;
}
public void setNums(int nums) {
this.nums = nums;
}
}

View File

@ -27,7 +27,7 @@ public class RetrySendIndicationThread extends Thread{
try {
doWork();
Thread.sleep(20);
} catch (InterruptedException e) {
} catch (Exception e) {
e.printStackTrace();
}
}