Merge branch 'master_test_gn' into master_test_gn_GodDevil

back_recharge
yuanshuai 2022-03-31 09:59:58 +08:00
commit a991708d8e
10 changed files with 175 additions and 32 deletions

View File

@ -37,8 +37,9 @@ public class CarDelayFunction implements FunctionManager {
String guildKey = RedisUtil.getInstence().getKey(guildRank.getRedisKey(), "");
String crossKey = RedisUtil.getInstence().getKey(personRank.getCrossRedisKey(), "",false);
String crossGuildKey = RedisUtil.getInstence().getKey(guildRank.getCrossRedisKey(), "",false);
String carPeopleNum = RedisUtil.getInstence().getKey(RedisKey.CAR_DEALY_GUILD_FIGHT_PEOPLE_NUM,"");
String[] delKeys = {key,guildKey,crossKey,crossGuildKey};
String[] delKeys = {key,guildKey,crossKey,crossGuildKey,carPeopleNum};
RedisUtil.getInstence().rename(60*60*16, backName, delKeys);
// String userLevelGuild = RedisUtil.getInstence().getKey(RedisKey.USER_LEVEL_GUILD_INFO, "");
// delKeys.add(userLevelGuild);

View File

@ -310,6 +310,7 @@ public class RedisKey {
// 车迟斗法
public static final String CAR_DEALY_RANK = "CAR_DEALY_RANK";
public static final String CAR_DEALY_GUILD_RANK = "CAR_DEALY_GUILD_RANK";
public static final String CAR_DEALY_GUILD_FIGHT_PEOPLE_NUM = "CAR_DEALY_GUILD_FIGHT_PEOPLE_NUM";
//公会战进攻获得星数排行榜
public static final String FAMILY_FIGHT_STAR_RANK = "FAMILY_FIGHT_STAR_RANK";

View File

@ -2,12 +2,14 @@ package com.ljsd.jieling.handler;
import com.ljsd.GameApplication;
import com.ljsd.fight.FightType;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.GlobleSystemLogic;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.dao.*;
@ -36,6 +38,7 @@ import rpc.protocols.FightInfoProto;
import rpc.protocols.MessageTypeProto;
import util.TimeUtils;
import java.util.HashSet;
import java.util.List;
@Component
@ -54,6 +57,12 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
GuildInfo guildInfo;
int privilege;
int teamId = TeamEnum.CAR_DELAY_TEAM.getTeamId();
TimeControllerOfFunction controller = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.Car_Delay);
if (controller == null){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
if(type == 1 || type == 2){
guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId());
if(guildInfo == null){
@ -88,13 +97,12 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
int challengeId = proto.getChalleageId();
int battleRound = sWorldBossSetting.getBattleRound();
CommonProto.FightData fightData;
boolean isNew = !guildInfo.getCarFightSb().containsKey(uid);
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
AbstractRank personRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_RANK.getType());
AbstractRank guildRank = RankContext.getRankEnum(RankEnum.CAR_DEALY_GUILD_RANK.getType());
switch (type){
case 1:{
case 1:{//挑战
int monsterId = STableManager.getConfig(SWorldBossConfig.class).get(GuildFightLogic.carDelayProgressIndication.getBossIndexId()).getMonsterId();
PVEFightEvent pvpFightEvent = new PVEFightEvent(uid,teamId, battleRound,"", GameFightType.CarBossChallenge,monsterId,3);
FightResult fightResult = FightDispatcher.dispatcher(pvpFightEvent);
@ -108,15 +116,15 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
if(hurt!=0){
if (crossGroup > 0){
personRank.incrementCrossRankScore(uid,"",gainScore);
guildRank.incrementCrossRankScore(guildInfo.getId(),"",gainScore,isNew?1:0);
guildRank.incrementCrossRankScore(guildInfo.getId(),"",gainScore);
}else {
personRank.incrementRankScore(uid,"",gainScore);
guildRank.incrementRankScore(guildInfo.getId(),"",gainScore,isNew?1:0);
guildRank.incrementRankScore(guildInfo.getId(),"",gainScore);
}
}
user.getUserMissionManager().onGameEvent(user, GameEvent.CAR_PLAY,1);
}break;
case 2:{
case 2:{//抢夺
FightResult fightResult;
String challengeName;
String challengeNameColor;
@ -169,16 +177,16 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
if (crossGroup > 0){
personRank.incrementCrossRankScore(uid,"",gainScore);
personRank.incrementCrossRankScore(challengeId,"",-gainScore);
guildRank.incrementCrossRankScore(guildInfo.getId(),"",gainScore,isNew?1:0);
guildRank.incrementCrossRankScore(guildInfo.getId(),"",gainScore);
if(challengeGuild!=0){
guildRank.incrementCrossRankScore(challengeGuild,"",-gainScore,0);
guildRank.incrementCrossRankScore(challengeGuild,"",-gainScore);
}
}else {
personRank.incrementRankScore(uid,"",gainScore);
personRank.incrementRankScore(challengeId,"",-gainScore);
guildRank.incrementRankScore(guildInfo.getId(),"",gainScore,isNew?1:0);
guildRank.incrementRankScore(guildInfo.getId(),"",gainScore);
if(challengeGuild!=0){
guildRank.incrementRankScore(challengeGuild,"",-gainScore,0);
guildRank.incrementRankScore(challengeGuild,"",-gainScore);
}
}
}
@ -244,6 +252,9 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
}
// 公会人数处理
carDealyFightPeopleNum(uid,guildInfo.getId());
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);
fightData.toBuilder().setFightId(FightUtil.getFightId(uid,fightData.getFightType()));
@ -253,11 +264,28 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
//扣除次数
PlayerLogic.getInstance().checkAndUpdate(user, privilege, 1);
guildInfo.addCarFightSb(uid);
user.getGuildMyInfo().setCarPlayTime(TimeUtils.nowInt());
user.getGuildMyInfo().setCarPlayProgress(GuildFightLogic.carDelayProgressIndication.getProgress());
FightInfoProto.FastFightChallengeResponse build = FightInfoProto.FastFightChallengeResponse.newBuilder().setHurt(hurt).setScore((long) gainScore).setFightData(fightData).build();
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.FAST_FIGHT_CHALLENGE_RESPONSE_VALUE,build,true);
ReportUtil.onReportEvent(user, ReportEventEnum.COMPLETE_CHECHI.getType(),sWorldBossSetting.getid(),type,1,gainScore);
}
/**
*
* @param uid
* @param guildId
* @return
*/
public static int carDealyFightPeopleNum(int uid, int guildId){
HashSet value = RedisUtil.getInstence().getMapValue(RedisKey.CAR_DEALY_GUILD_FIGHT_PEOPLE_NUM, "", String.valueOf(guildId), HashSet.class);
if (value == null){
value = new HashSet();
}
if (!value.contains(uid) && uid != 0){
value.add(uid);
RedisUtil.getInstence().putMapEntry(RedisKey.CAR_DEALY_GUILD_FIGHT_PEOPLE_NUM, "", String.valueOf(guildId),value);
}
return value.size();
}
}

View File

@ -68,9 +68,7 @@ public class ExplorerMapSendHandler extends BaseHandler<PlayerInfoProto.Explorer
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.ExplorerMapSendResponse.getNumber(), builder.build(), true);
return;
}
user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_FOOD_NUM,
map.values().stream().mapToInt(Integer::intValue).sum());
//user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_FOOD_NUM, map.values().stream().mapToInt(Integer::intValue).sum());
for (CommonProto.ExplorerMapSendInfo info : reqInfo) {
int mapId = info.getMapId();
int teamId = info.getTeamId();

View File

@ -179,11 +179,7 @@ public class ExplorerMapLogic {
}
LOGGER.info("{}怪物死亡=》重生时间{}", user.getId(), explorerInfo.getEnemyReliveTime());
RankEnum.toRank(RankEnum.EXPLORE_RANK.getType()).incrementRankScore(user.getId(), "", 1);
user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_ENEMY_NUM,
1);
//user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_ENEMY_NUM);
//user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_ENEMY_NUM,1);
}
if (time == 0) {
@ -291,11 +287,11 @@ public class ExplorerMapLogic {
}
LOGGER.info("离线玩家队伍id", keyVal.getKey());
//探索事件
long gapDay = TimeUtils.getGapDaysByTwoTime(TimeUtils.getTimeStamp2(keyVal.getValue().getBatteTime()*1000L), TimeUtils.getTimeStamp2(offlineEndTime*1000L));
/*long gapDay = TimeUtils.getGapDaysByTwoTime(TimeUtils.getTimeStamp2(keyVal.getValue().getBatteTime()*1000L), TimeUtils.getTimeStamp2(offlineEndTime*1000L));
for(int i = 0;i< gapDay;i++){
LOGGER.error("gapDay------------------------>{}",i);
sendRandomEvent(user);
}
}*/
for (int i = keyVal.getValue().getBatteTime(); i <= offlineEndTime; i = i + battleInterval) {
//复活玩家
if (keyVal.getValue().getPlayerHp() == 0 && keyVal.getValue().getPlayerReliveTime() <= i) {
@ -450,7 +446,7 @@ public class ExplorerMapLogic {
if (minute == 0) {
sendRandomEvent(user);
}*/
sendRandomEvent(user);
//sendRandomEvent(user);
}
sendDisappearEvent(user);
MongoUtil.getLjsdMongoTemplate().lastUpdate();

View File

@ -19,6 +19,7 @@ import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityType;
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.activity.event.*;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.*;
@ -198,6 +199,8 @@ public class GuildLogic {
addGuildLog(guildInfo.getId(),GuildDef.Log.CREATE,user.getPlayerInfoManager().getNickName());
// 创建公会
CrossDeathPathLogic.setCrossGuild(guildInfo);
// 更新redis
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);
PlayerInfoCache cache = RedisUtil.getInstence().getMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(uid), PlayerInfoCache.class);
cache.setGuildPosition(GlobalsDef.CHAIRMAN);

View File

@ -349,7 +349,6 @@ public abstract class AbstractRank implements IRank {
}
@Override
public long getParam1(Double data) {
return getDataByScore(data).length>0?getDataByScore(data)[0]:0;
}

View File

@ -1,13 +1,26 @@
package com.ljsd.jieling.logic.rank.rankImpl;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.handler.FastChallengeHandler;
import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.root.GuildCache;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.CrossDeathPathLogic;
import com.ljsd.jieling.logic.family.DeathPathLogic;
import org.springframework.data.redis.core.ZSetOperations;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import java.util.Set;
/**
* @author Administrator
*/
@ -17,13 +30,93 @@ public class CarDealyGuildRank extends CrossGuildForceRank{
}
@Override
public long[] getDataByScore(Double score) {
return new long[]{ score.longValue()/1000,score.longValue()%1000};
protected void getCrossOptional(int index, ZSetOperations.TypedTuple<String> data, PlayerInfoProto.RankResponse.Builder builder) throws Exception {
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
if (mapEntry == null){
return;
}
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
if (csPlayer == null){
return;
}
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index)
.setParam1(getParam1(data.getScore()))
.setParam2(getParam2(0,Integer.parseInt(data.getValue())))
.setParam3(getParam3(data.getScore()));
CommonProto.UserRank.Builder oneUserRank = getCrossOneUserRank(csPlayer,everyRankInfo);
builder.addRanks(oneUserRank);
}
@Override
public double getScore(double... data) {
return (long) (data[0]*1000 + data[1]);
public CommonProto.UserRank.Builder getFirstByCross(String rKey){
Set<ZSetOperations.TypedTuple<String>> rankByKey =
RedisUtil.getInstence().getZsetreverseRangeWithScores(getCrossRedisKey(),rKey, 0, 0, false);
CommonProto.UserRank.Builder builder = CommonProto.UserRank.newBuilder();
if(rankByKey.size()!=1){
return builder;
}
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
GuildCache mapEntry = CrossDeathPathLogic.getCrossGuild(Integer.parseInt(data.getValue()));
if (mapEntry == null){
return builder;
}
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(mapEntry.getLeaderUId());
if (csPlayer == null){
return builder;
}
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(1)
.setParam1(getParam1(data.getScore()))
.setParam2(getParam2(0, Integer.parseInt(data.getValue())))
.setParam3(getParam3(data.getScore()));
builder = getCrossOneUserRank(csPlayer,everyRankInfo);
return builder;
}
@Override
public void getCrossMyInfo(User user,String rkey,PlayerInfoProto.RankResponse.Builder allUserResponse){
int guildId = user.getPlayerInfoManager().getGuildId();
if (guildId == 0){
return;
}
int myRank= RedisUtil.getInstence().getZSetreverseRank(getCrossRedisKey(), rkey, Integer.toString(guildId),false).intValue();
Double zSetScore = RedisUtil.getInstence().getZSetScore(getCrossRedisKey(), rkey, Integer.toString(guildId),false);
CommonProto.RankInfo towerRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(myRank)
.setParam1(getParam1(zSetScore))
.setParam2(getParam2(0,guildId))
.build();
allUserResponse.setMyRankInfo(towerRankInfo);
}
@Override
public PlayerInfoProto.RankResponse getRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
TimeControllerOfFunction controller = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.Car_Delay);
if (controller == null){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
return super.getRank(uid,rkey,page,rankEndLine);
}
@Override
public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
TimeControllerOfFunction controller = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.Car_Delay);
if (controller == null){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
return super.getCrossRank(uid,rkey,page,rankEndLine);
}
@Override
public long getParam1(Double data) {
return (long) getScore(data);
}
public int getParam2(int uid, int guildId) {
return FastChallengeHandler.carDealyFightPeopleNum(uid,guildId);
}
@Override
@ -38,8 +131,7 @@ public class CarDealyGuildRank extends CrossGuildForceRank{
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(index)
.setParam1(getParam1(data.getScore()))
.setParam2(getParam2(data.getScore()));
.setParam2(getParam2(0,guildId));
CommonProto.UserRank everyRank = CommonProto.UserRank.newBuilder()
.setGuildName(familyName)
.setRankInfo(everyRankInfo)
@ -55,7 +147,8 @@ public class CarDealyGuildRank extends CrossGuildForceRank{
CommonProto.RankInfo towerRankInfo = CommonProto.RankInfo.newBuilder()
.setRank(myRank)
.setParam1(getParam1(zSetScore))
.setParam2(getParam2(zSetScore)).build();
.setParam2(getParam2(0,guildId))
.build();
allUserResponse.setMyRankInfo(towerRankInfo);
}
}

View File

@ -1,8 +1,33 @@
package com.ljsd.jieling.logic.rank.rankImpl;
import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import rpc.protocols.PlayerInfoProto;
public class CarDealyRank extends ForceRank{
public CarDealyRank(int type, String redisKey) {
super(type, redisKey);
}
@Override
public PlayerInfoProto.RankResponse getRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
TimeControllerOfFunction controller = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.Car_Delay);
if (controller == null){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
return super.getRank(uid,rkey,page,rankEndLine);
}
@Override
public PlayerInfoProto.RankResponse getCrossRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
TimeControllerOfFunction controller = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.Car_Delay);
if (controller == null){
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
return super.getCrossRank(uid,rkey,page,rankEndLine);
}
}

View File

@ -258,8 +258,7 @@ public class MinuteTask extends Thread {
i++;
LOGGER.error("------------------------------asdfa --------------:"+eachEle+" i:"+i);
user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_ENEMYHISTORYHIGH_NUM,
i);
//user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_ENEMYHISTORYHIGH_NUM, i);
}
RankEnum.toRank(RankEnum.EXPLORE_RANK.getType()).removeRank("");