Merge branch 'master_test_hw' into master_test_hw_i18n
commit
e55325dd14
|
@ -106,7 +106,7 @@ public class CheckFight {
|
|||
int[] resultCache = new int[8];//对方阵容走配置 Todo 后面结构走配置
|
||||
resultCache[0]=status;
|
||||
resultCache[1]=duration;
|
||||
// LOGGER.info(" lua check test fight result : "+ status);
|
||||
LOGGER.info(" lua check test fight result : "+ status);
|
||||
for (int i = 1; i <= result.length(); i++) {
|
||||
long tolong = result.rawget(i).tolong();
|
||||
if(tolong>0){
|
||||
|
@ -115,7 +115,7 @@ public class CheckFight {
|
|||
resultCache[i+1]= (int)Math.max((long) Integer.MIN_VALUE,tolong);
|
||||
}
|
||||
resultCache[i+1] = result.rawget(i).toint();
|
||||
// LOGGER.info(i+" --> 单位剩余血量 : "+ resultCache[i+1]);
|
||||
LOGGER.info(i+" --> 单位剩余血量 : "+ resultCache[i+1]);
|
||||
}
|
||||
|
||||
return resultCache;
|
||||
|
|
|
@ -127,7 +127,7 @@ public class GmService implements RPCRequestGMIFace.Iface {
|
|||
if (cmd.contains("delete")) {
|
||||
FightRecordLogic.getInstance().delete();
|
||||
} else if (cmd.contains("all")){
|
||||
String allValue = FightRecordLogic.getInstance().getAll(Integer.parseInt(parameters[2]));
|
||||
String allValue = FightRecordLogic.getInstance().getAll(Integer.parseInt(parameters[1]));
|
||||
result.setResultMsg(allValue);
|
||||
} else {
|
||||
String oneRecord = FightRecordLogic.getInstance().getOneRecord(parameters[0]);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.ljsd.jieling.config.clazzStaticCfg;
|
||||
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import config.SArenaRobotConfig;
|
||||
import config.SCHero;
|
||||
|
@ -7,6 +8,7 @@ import config.SWorkShopTechnology;
|
|||
import manager.AbstractClassStaticConfig;
|
||||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
import rpc.protocols.CommonProto;
|
||||
import util.MathUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
@ -25,17 +27,28 @@ public class SArenaRobotStaticConfig extends AbstractClassStaticConfig {
|
|||
|
||||
for(SArenaRobotConfig sArenaRobotConfig : integerSArenaRobotConfigMap.values()){
|
||||
List<Integer> heroList = sArenaRobotConfig.getHeroList();
|
||||
int heroLevel = sArenaRobotConfig.getRobotLevel();
|
||||
Map<Integer,Integer> starHeroMap = new HashMap<>();
|
||||
int heroLevel = sArenaRobotConfig.getRoleLv();
|
||||
|
||||
Map<Integer, CommonProto.Hero> heroMap = new HashMap<>();
|
||||
for(Integer heroTid :heroList){
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
if(null ==scHero){
|
||||
throw new IllegalArgumentException("sArenaRobotConfig id "+sArenaRobotConfig.getId()+"机器人英雄模板id找不到 heroTid:"+heroTid);
|
||||
}
|
||||
int heroBreakId = HeroLogic.getInstance().calRobotStarByLevel(heroTid, heroLevel,starHeroMap);
|
||||
sArenaRobotConfig.setBreakId(heroBreakId);
|
||||
sArenaRobotConfig.setStarOfHeroMap(starHeroMap);
|
||||
|
||||
CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder();
|
||||
|
||||
int heroStarBreakId = HeroLogic.getInstance().calRobotStarByLevel(heroTid,heroLevel,heroBuilder);
|
||||
int heroBreakId = HeroLogic.getInstance().calRobotBreaByLevel(heroTid,heroLevel,heroBuilder);
|
||||
|
||||
heroBuilder.setId(String.valueOf(scHero.getId()));
|
||||
heroBuilder.setHeroId(scHero.getId());
|
||||
heroBuilder.setLevel(heroLevel);
|
||||
heroBuilder.setStarBreakId(heroStarBreakId);
|
||||
heroBuilder.setBreakId(heroBreakId);
|
||||
heroMap.put(heroTid,heroBuilder.build());
|
||||
}
|
||||
sArenaRobotConfig.setHeroMapList(heroMap);
|
||||
int totleForce = HeroLogic.getInstance().calRobotTotalForce(sArenaRobotConfig);
|
||||
sArenaRobotConfig.setTotalForce(totleForce);
|
||||
LinkedList<Integer> integers = force2robotId.get(totleForce);
|
||||
|
|
|
@ -44,9 +44,14 @@ public class CarDelayFunction implements FunctionManager {
|
|||
|
||||
@Override
|
||||
public void closeAction() throws Exception {
|
||||
Map<Integer, TreeMap<Integer, String>> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByTypeAndRankMap;
|
||||
// 获取车迟斗法当前boss的索引id
|
||||
int indexId = GuildFightLogic.carDelayProgressIndication.getBossIndexId();
|
||||
// 根据索引id取出当前的奖励配置
|
||||
Map<Integer, TreeMap<Integer, String>> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByBossIdMap.get(indexId);
|
||||
|
||||
TreeMap<Integer, String> personRewardConfigTreeMap = rewardByTypeAndRankMap.get(2);
|
||||
TreeMap<Integer, String> guildRewardConfigTreeMap = rewardByTypeAndRankMap.get(1);
|
||||
|
||||
Set<ZSetOperations.TypedTuple<String>> personRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CAR_DEALY_RANK, "", 0, -1);
|
||||
int rank=0;
|
||||
String personTitle = SErrorCodeEerverConfig.getI18NMessage("family_fight_rank_personreward_title");
|
||||
|
|
|
@ -306,4 +306,6 @@ public interface BIReason {
|
|||
|
||||
int NEW_GENERAL_ATTACK = 1076;//新将来袭
|
||||
int WORLD_ARENA = 1077;//跨服竞技场
|
||||
|
||||
int SHEJI_ACTIVITY_INIT_CONSUME = 1078;//社稷大典开始清除往期道具
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.item.ItemLogic;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import config.SFloodConfig;
|
||||
import manager.STableManager;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MapInfoProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 心魔试炼领取奖励
|
||||
*/
|
||||
@Component
|
||||
public class GetDemonsTrialRewardHandler extends BaseHandler<MapInfoProto.DemonsTrialRewardRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.DemonsTrialRewardRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratedMessage processWithProto(int uid, MapInfoProto.DemonsTrialRewardRequest proto) throws Exception {
|
||||
|
||||
// 用户信息
|
||||
User user = UserManager.getUser(uid);
|
||||
if (user == null) {
|
||||
throw new ErrorCodeException(ErrorCode.UNKNOWN);
|
||||
}
|
||||
// 层id
|
||||
int layerId = proto.getLayerId();
|
||||
// 奖励是否已经领取
|
||||
Set<Integer> rewardInfo = user.getMapManager().getDemonsTrialRewardInfo();
|
||||
if (rewardInfo.contains(layerId)) {
|
||||
throw new ErrorCodeException(ErrorCode.HAD_TAKE_REWARD);
|
||||
}
|
||||
// 表里是否有配置
|
||||
SFloodConfig sFloodConfig = STableManager.getConfig(SFloodConfig.class).get(layerId);
|
||||
int[][] reward = sFloodConfig.getSpecialReward();
|
||||
if (reward == null || reward.length <= 0) {
|
||||
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
|
||||
}
|
||||
|
||||
// 道具逻辑,封装好的
|
||||
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||
// 领取奖励
|
||||
ItemUtil.drop(user, reward, drop, BIReason.MONSTERATTACK_REWARD);
|
||||
|
||||
user.getMapManager().addDemonsTrialRewardInfo(layerId);
|
||||
|
||||
return MapInfoProto.DemonsTrialRewardResponse.newBuilder().setDrop(drop).build();
|
||||
}
|
||||
}
|
|
@ -27,7 +27,6 @@ import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
|||
import com.ljsd.jieling.network.session.ISession;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import com.ljsd.jieling.thread.task.RPCServerTask;
|
||||
import com.ljsd.jieling.util.CBean2Proto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
|
@ -37,6 +36,7 @@ import manager.STableManager;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import util.TimeUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
@ -220,6 +220,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
.setHadLuckTime( user.getPlayerInfoManager().getLuckWheelLimitTime())
|
||||
.setHadAdvanceLuckTime(user.getPlayerInfoManager().getLuckAdvanceWheelLimitTime())
|
||||
.setWorldLeve(GlobleSystemLogic.getGloableWorldLeveCache())
|
||||
.addAllDemonsTrialRewardInfo(user.getMapManager().getDemonsTrialRewardInfo())
|
||||
.build();
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType());
|
||||
try {
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
package com.ljsd.jieling.handler;
|
||||
|
||||
import com.ljsd.jieling.logic.GlobalDataManaager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class ServerFiveHandler extends BaseHandler{
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.SERVER_FIVE_REQEUST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
GlobalDataManaager.checkNeedReFlush(iSession, UserManager.getUser(iSession.getUid()), PlayerInfoProto.FivePlayerUpdateIndication.newBuilder());
|
||||
|
||||
}
|
||||
}
|
|
@ -25,7 +25,7 @@ public class ServerZeroHandler extends BaseHandler {
|
|||
GlobalDataManaager.flushGoodsTimes(user);
|
||||
PlayerLogic.getInstance().sendDayilyMail(user,-1);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
|
||||
|
||||
GlobalDataManaager.checkNeedReFlush(session, UserManager.getUser(session.getUid()), PlayerInfoProto.FivePlayerUpdateIndication.newBuilder());
|
||||
|
||||
// int indicationIndex = session.getIndicationIndex();
|
||||
// byte[] byteBuf = MessageUtil.wrappedBuffer(session.getUid(), session.getToken(), indicationIndex,1, MessageTypeProto.MessageType.ZeroPlayerUpdateIndication_VALUE, PlayerInfoProto.ZeroPlayerUpdateIndication.newBuilder().build());
|
||||
|
|
|
@ -13,6 +13,7 @@ import com.ljsd.jieling.logic.dao.UserManager;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.fight.*;
|
||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||
import com.ljsd.jieling.logic.item.ItemLogic;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import config.SMonsterConfig;
|
||||
|
@ -59,6 +60,7 @@ public class NewGeneralAttackHandler extends BaseHandler<ActivityProto.NewGenera
|
|||
|
||||
// 读表
|
||||
int monsterGroupId = newHeroConfig.getMonsterGroup(); //怪物id
|
||||
int monsterId = 0;
|
||||
double bossBlood = 0.0; //怪物血量
|
||||
int[][] hurtList = newHeroConfig.getDropCell(); //伤害奖励表
|
||||
|
||||
|
@ -73,6 +75,7 @@ public class NewGeneralAttackHandler extends BaseHandler<ActivityProto.NewGenera
|
|||
// 怪物不存在
|
||||
continue;
|
||||
}
|
||||
monsterId = ints[j];
|
||||
SMonsterConfig monsterConfig = STableManager.getConfig(SMonsterConfig.class).get(ints[j]);
|
||||
// 计算总血量
|
||||
bossBlood+=monsterConfig.getHp();
|
||||
|
@ -102,11 +105,9 @@ public class NewGeneralAttackHandler extends BaseHandler<ActivityProto.NewGenera
|
|||
int[] checkResult = fightResult.getCheckResult();
|
||||
|
||||
double lessBlood = 0.0;
|
||||
int hurtResult = 0;
|
||||
// checkResult第一位输赢,1赢,其他输
|
||||
if (checkResult[0] == 1){
|
||||
lessBlood = bossBlood;
|
||||
hurtResult = checkResult[1];
|
||||
}else {
|
||||
// checkResult第三位开始为血量,下标0开始
|
||||
for (int i = 2; i < checkResult.length; i++) {
|
||||
|
@ -128,21 +129,26 @@ public class NewGeneralAttackHandler extends BaseHandler<ActivityProto.NewGenera
|
|||
|
||||
// 道具逻辑,封装好的
|
||||
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||
// 战报返回
|
||||
List<String> dropResult = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < hurtList.length; i++) {
|
||||
// 当前类型奖励次数
|
||||
float v = b / hurtList[i][0];
|
||||
int v = (int)b / hurtList[i][0];
|
||||
dropList[0] = hurtList[i][1];
|
||||
ItemUtil.drop(user, dropList,drop,v,0, BIReason.NEW_GENERAL_ATTACK);
|
||||
dropResult.add(dropList[0] + "#" + v);
|
||||
}
|
||||
// 消耗道具
|
||||
PlayerLogic.getInstance().checkAndUpdate(user, proto.getPrivilageTypeId(),1);
|
||||
|
||||
// 战报记录,奖励信息
|
||||
List<String> dropResult = new ArrayList<>();
|
||||
List<CommonProto.Item> list = drop.build().getItemlistList();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
String str = list.get(i).getItemId() + "#" + list.get(i).getItemNum();
|
||||
dropResult.add(str);
|
||||
}
|
||||
|
||||
// 埋点
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.VANQUISH_BOSS.getType(), monsterGroupId,checkResult[0],hurtResult,dropResult);
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.VANQUISH_BOSS.getType(), monsterId,(int)lessBlood,dropResult);
|
||||
|
||||
return ActivityProto.NewGeneralAttackResponse.newBuilder().setFightData(fightData).setDrop(drop).build();
|
||||
}
|
||||
|
|
|
@ -107,6 +107,8 @@ public class MapManager extends MongoBase {
|
|||
|
||||
private int lastMonsterAttack =1;//兽潮来袭波数
|
||||
|
||||
private Set<Integer> demonsTrialRewardInfo;// 心魔试炼已领取奖励
|
||||
|
||||
private Set<Integer> playedMapType = new HashSet<>();
|
||||
|
||||
private TrialInfo trialInfo = new TrialInfo();
|
||||
|
@ -860,7 +862,26 @@ public class MapManager extends MongoBase {
|
|||
public void setCurrentJourneyId(int currentJourneyId) {
|
||||
this.currentJourneyId = currentJourneyId;
|
||||
updateString("currentJourneyId",currentJourneyId);
|
||||
}
|
||||
|
||||
public Set<Integer> getDemonsTrialRewardInfo() {
|
||||
if (demonsTrialRewardInfo == null){
|
||||
return new TreeSet<>();
|
||||
}
|
||||
return demonsTrialRewardInfo;
|
||||
}
|
||||
|
||||
public void setDemonsTrialRewardInfo(Set<Integer> demonsTrialRewardInfos) {
|
||||
demonsTrialRewardInfo = demonsTrialRewardInfos;
|
||||
updateString("demonsTrialRewardInfo",demonsTrialRewardInfo);
|
||||
}
|
||||
|
||||
public void addDemonsTrialRewardInfo(int layerId) {
|
||||
if (demonsTrialRewardInfo == null){
|
||||
demonsTrialRewardInfo = new TreeSet<>();
|
||||
}
|
||||
demonsTrialRewardInfo.add(layerId);
|
||||
updateString("demonsTrialRewardInfo",demonsTrialRewardInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.ljsd.jieling.logic.dao.*;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.expedition.ExpeditionLogic;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.Expedition;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
|
@ -156,14 +157,14 @@ public class Cmd_role_gm extends GmRoleAbstract {
|
|||
SnapFightInfo fightInfo = new SnapFightInfo();
|
||||
int force = sArenaRobotConfig.getTotalForce();
|
||||
Map<String, FamilyHeroInfo> heroAllAttribute = new HashMap<>();
|
||||
Map<Integer, Integer> heroStarsMap = sArenaRobotConfig.getStarOfHeroMap();
|
||||
Map<Integer, CommonProto.Hero> heroMapList = sArenaRobotConfig.getHeroMapList();
|
||||
Map<String, Double> bossHP = new HashMap<>();
|
||||
|
||||
int inner=1;
|
||||
for (Map.Entry<Integer, Integer> item : heroStarsMap.entrySet()) {
|
||||
for (Map.Entry<Integer, CommonProto.Hero> item : heroMapList.entrySet()) {
|
||||
StringBuilder skillSb = new StringBuilder();
|
||||
Integer heroTid = item.getKey();
|
||||
Integer heroStar = item.getValue();
|
||||
Integer heroStar = item.getValue().getStar();
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
|
||||
List<Integer> skillIds = scHero.getSkillListByStar(heroStar);
|
||||
|
@ -175,7 +176,7 @@ public class Cmd_role_gm extends GmRoleAbstract {
|
|||
int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId();
|
||||
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
|
||||
int robotLevel = sArenaRobotConfig.getRoleLv();
|
||||
Map<Integer, Integer> robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv, false);
|
||||
Map<Integer, Integer> robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv, false);
|
||||
heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,inner++));
|
||||
// String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,scHero,propertySb,robotHeroAttribute).toString();
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ public enum ReportEventEnum {
|
|||
ARENA_CHALLENGE(66,"arena_challenge",CommonEventHandler.getInstance(),new String[]{"battle_result","own_integral_num","rewards_num","own_new_integral_num","own_ranking","role_id","enemy_integral_num","new_enemy_integral_num","enemy_ranking","hero1","hero2","hero3","hero4","hero5","hero6","attack_pokemon","defend_hero1","defend_hero2","defend_hero3","defend_hero4","defend_hero5","defend_hero6","defend_pokemon"}),
|
||||
CEREMONY(67,"ceremony",CommonEventHandler.getInstance(),new String[]{"cost_item_id","integral_num","new_integral_num","own_ranking","guild_ranking"}),
|
||||
TREASURE_SUMMON(68,"treasure_summon",CommonEventHandler.getInstance(),new String[]{"beast_id","summon_type","cost_item_id","cost_amount","reward_nums_list"}),// 降妖夺宝
|
||||
VANQUISH_BOSS(69,"vanquish_boss",CommonEventHandler.getInstance(),new String[]{"boss_id","battle_result","damage_num","reward_nums_list"}),// 新将来袭
|
||||
VANQUISH_BOSS(69,"vanquish_boss",CommonEventHandler.getInstance(),new String[]{"boss_id","damage_num","reward_nums_list"}),// 新将来袭
|
||||
VIP_LEVEL_UP(100,"", new VipLevelUpEventHandler(),new String[]{""});
|
||||
|
||||
|
||||
|
|
|
@ -331,7 +331,7 @@ public class GlobalDataManaager implements IManager {
|
|||
|
||||
public static void checkNeedReFlush(ISession session,User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception {
|
||||
// 需要隔天刷新的字段统一在这里处理
|
||||
if (TimeUtils.isOverTime(5,user.getPlayerInfoManager().getLoginTime())) {
|
||||
if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) {
|
||||
//活动刷新
|
||||
ActivityLogic.getInstance().flushEveryDay(user,fBuilder);
|
||||
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
|
||||
|
@ -345,7 +345,7 @@ public class GlobalDataManaager implements IManager {
|
|||
PlayerLogic.getInstance().sendTimingMail(user);
|
||||
user.getGuildMyInfo().setLastHurt(0);
|
||||
// GuildChallengeLogic.getInstance().resetBossDamage(user);
|
||||
if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,5)){
|
||||
if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){
|
||||
user.getPlayerInfoManager().updateSituationPass(new HashMap<>());
|
||||
}
|
||||
if(fBuilder!=null){
|
||||
|
@ -450,9 +450,6 @@ public class GlobalDataManaager implements IManager {
|
|||
case 0:
|
||||
number = MessageTypeProto.MessageType.SERVER_ZERO_REQUEST_VALUE;
|
||||
break;
|
||||
case 5:
|
||||
number = MessageTypeProto.MessageType.SERVER_FIVE_REQEUST_VALUE;
|
||||
break;
|
||||
default:{
|
||||
LOGGER.info("everTask wrong case=>{}", hour);
|
||||
break;
|
||||
|
|
|
@ -69,7 +69,7 @@ public class SituationLogic {
|
|||
overTime = new int[4];
|
||||
doCheck();
|
||||
}else{
|
||||
if(TimeUtils.getHourOfDay()!=5){
|
||||
if(TimeUtils.getHourOfDay()!=0){
|
||||
return;
|
||||
}
|
||||
doCheck();
|
||||
|
@ -82,9 +82,6 @@ public class SituationLogic {
|
|||
long now = TimeUtils.now();
|
||||
int hourOfDay = TimeUtils.getHourOfDay();
|
||||
int week = TimeUtils.getDayOfWeek();
|
||||
if(hourOfDay<5){
|
||||
week = week==1?7:week-1;
|
||||
}
|
||||
boolean isIndication = false;
|
||||
for(int[] config:openConfig){
|
||||
boolean isOpen = false;
|
||||
|
@ -98,12 +95,12 @@ public class SituationLogic {
|
|||
isIndication = true;
|
||||
}
|
||||
status[config[0]-1] = isOpen?1:0;
|
||||
overTime[config[0]-1] =isOpen?(int)(TimeUtils.getLastOrUnderHour(now,5,0,false)/1000):0;
|
||||
overTime[config[0]-1] =isOpen?(int)(TimeUtils.getLastOrUnderHour(now,0,0,false)/1000):0;
|
||||
}
|
||||
if(isIndication){
|
||||
//周一刷新
|
||||
boolean remove = false;
|
||||
if(TimeUtils.getDayOfWeek()==1&&TimeUtils.getHourOfDay()==5&&TimeUtils.getMiunte()==0){
|
||||
if(TimeUtils.getDayOfWeek()==1&&TimeUtils.getHourOfDay()==0&&TimeUtils.getMiunte()==0){
|
||||
remove = true;
|
||||
}
|
||||
if(remove){
|
||||
|
|
|
@ -1332,12 +1332,12 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
|
||||
public void getTreasureNextRefreshTime(ISession session,MessageTypeProto.MessageType messageType) throws Exception {
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, false)/1000);
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0,0, false)/1000);
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
PlayerInfoProto.TreasureRefreshTimeResponse response;
|
||||
if(user.getActivityManager().getActivityMissionMap().containsKey(801)){
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000);
|
||||
response = PlayerInfoProto.TreasureRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build();
|
||||
}else{
|
||||
long weekRefresh = user.getUserMissionManager().getTreasureMissionIdsType().getWeekRefresh();
|
||||
|
@ -1347,8 +1347,8 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
|
||||
public void getJadeDynastyNextRefreshTime(ISession session,MessageTypeProto.MessageType messageType) throws Exception {
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, false)/1000);
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0,0, false)/1000);
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000);
|
||||
PlayerInfoProto.JadeDynastyRefreshTimeResponse response = PlayerInfoProto.JadeDynastyRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build();
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ public class NewEightActivity extends AbstractActivity {
|
|||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(),System.currentTimeMillis(),5)<sActivityRewardConfig.getValues()[0][0]-1){
|
||||
if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(),System.currentTimeMillis(),0)<sActivityRewardConfig.getValues()[0][0]-1){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -21,7 +21,7 @@ class RechargeTotalActivity extends AbstractActivity {
|
|||
long now = TimeUtils.now();
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
|
||||
int days = TimeUtils.differentDaysByHour(rechargeInfo.getCreateTime(), now,5) + 1;
|
||||
int days = TimeUtils.differentDaysByHour(rechargeInfo.getCreateTime(), now,0) + 1;
|
||||
if (missionProgress/1000 < values[0][0] || days < values[0][1]) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity;
|
|||
import com.ljsd.jieling.core.Lockeys;
|
||||
import com.ljsd.jieling.core.SimpleTransaction;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
|
@ -12,6 +13,7 @@ import com.ljsd.jieling.logic.activity.event.CommitSheJiEvent;
|
|||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||
import com.ljsd.jieling.logic.dao.Item;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
@ -61,6 +63,12 @@ class SheJiActivity extends AbstractActivity {
|
|||
// }
|
||||
// }
|
||||
|
||||
int costItemId = 50003;//社稷赏
|
||||
Item item = user.getItemManager().getItem(costItemId);
|
||||
|
||||
if(item!=null&&item.getItemNum()!=0){
|
||||
ItemUtil.itemCost(user,new int[][]{{costItemId,item.getItemNum()}}, BIReason.SHEJI_ACTIVITY_INIT_CONSUME,1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -617,7 +617,8 @@ public class ArenaLogic {
|
|||
.setFightId(FightUtil.getFightId(mine.getId(),FightType.Firend.getType()))
|
||||
.build();
|
||||
|
||||
|
||||
// 记录战报
|
||||
FightRecordLogic.getInstance().addRecordMap(mine,build);
|
||||
|
||||
ArenaInfoProto.PlayWithSbResponse response = ArenaInfoProto.PlayWithSbResponse.newBuilder().setFightData(build).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.PLAY_WITH_SB_RESPONSE_VALUE,response,true);
|
||||
|
|
|
@ -399,12 +399,9 @@ public class PlayerManager extends MongoBase {
|
|||
}else {
|
||||
maxTime = TimeUtils.now()/1000+config.getContinueTime()[0];
|
||||
}
|
||||
//todo 记得删掉
|
||||
if(privilageId==4013){
|
||||
maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,5,0,true)/1000);
|
||||
}else{
|
||||
maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,0,0,true)/1000);
|
||||
}
|
||||
|
||||
maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,0,0,true)/1000);
|
||||
|
||||
newVipInfo.setEffectTime((int)maxTime);
|
||||
}
|
||||
this.vipInfo.put(privilageId,newVipInfo);
|
||||
|
|
|
@ -100,7 +100,7 @@ public class UserMissionManager extends MongoBase {
|
|||
int activityId = (int) parm[0];//当前轮次青龙秘宝的活动ID
|
||||
int[] refreshIds = resetTreasureTaskInfo(1,activityId,missionTypeEnumListMap,treasureCumulationData);
|
||||
treasureCumulationData = new CumulationData();
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5, 0,false)/1000);
|
||||
int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0,false)/1000);
|
||||
CommonProto.RefreshTask.Builder task = treasureIndicationBuild(1, refreshIds).setRefreshTime(dayRefreshTime);
|
||||
PlayerInfoProto.TreasureRefreshIndication indication1 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task.build()).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true);
|
||||
|
@ -110,7 +110,7 @@ public class UserMissionManager extends MongoBase {
|
|||
int[] weekRefreshIds = resetTreasureTaskInfo(2,aId,missionTypeEnumListMap,treasureWeekCumulationData);
|
||||
if(weekRefreshIds != null){
|
||||
treasureWeekCumulationData = new CumulationData();
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000);
|
||||
int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000);
|
||||
user.getPlayerInfoManager().clearVipCount(VipPrivilegeType.DRAGON_TREASURE_SUPPLY);
|
||||
CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime);
|
||||
PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build();
|
||||
|
@ -541,14 +541,14 @@ public class UserMissionManager extends MongoBase {
|
|||
}
|
||||
do{
|
||||
startTime += TimeUtils.WEEK;
|
||||
}while(startTime+5*TimeUtils.HOUR<TimeUtils.now()&&startTime+5*TimeUtils.HOUR<endTime);
|
||||
}while(startTime<TimeUtils.now()&&startTime<endTime);
|
||||
//如果小于两周 直接到结束
|
||||
if(endTime-startTime-5*TimeUtils.HOUR<TimeUtils.WEEK){
|
||||
if(endTime-startTime<TimeUtils.WEEK){
|
||||
startTime = endTime;
|
||||
}
|
||||
treasureMissionIdsType.setWeekRefresh(startTime+5*TimeUtils.HOUR);
|
||||
treasureMissionIdsType.setWeekRefresh(startTime);
|
||||
}else{
|
||||
if (treasureMissionIdsType.getWeekRefresh() != 0 && !TimeUtils.isSpanTime(treasureMissionIdsType.getWeekRefresh(), TimeUtils.now(), 1, 5)) {
|
||||
if (treasureMissionIdsType.getWeekRefresh() != 0 && !TimeUtils.isSpanTime(treasureMissionIdsType.getWeekRefresh(), TimeUtils.now(), 1, 0)) {
|
||||
return null;
|
||||
}
|
||||
treasureMissionIdsType.setWeekRefresh(TimeUtils.now());
|
||||
|
|
|
@ -27,7 +27,7 @@ public class WorldTreasureReward extends MongoBase {
|
|||
SExpeditionSetting setting = STableManager.getConfig(SExpeditionSetting.class).get(1);
|
||||
int treasureTime = setting.getTreasureTime()[0][1];
|
||||
if(createTime == 0){
|
||||
createTime =(int)((TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, true)+TimeUtils.DAY*treasureTime)/1000);
|
||||
createTime =(int)((TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0,0, true)+TimeUtils.DAY*treasureTime)/1000);
|
||||
}else{
|
||||
do{
|
||||
createTime+=TimeUtils.DAY*treasureTime/1000;
|
||||
|
|
|
@ -525,14 +525,14 @@ public class ExpeditionLogic {
|
|||
SnapFightInfo fightInfo = new SnapFightInfo();
|
||||
int force = sArenaRobotConfig.getTotalForce();
|
||||
Map<String, FamilyHeroInfo> heroAllAttribute = new HashMap<>();
|
||||
Map<Integer, Integer> heroStarsMap = sArenaRobotConfig.getStarOfHeroMap();
|
||||
Map<Integer, CommonProto.Hero> heroMapList = sArenaRobotConfig.getHeroMapList();
|
||||
Map<String, Double> bossHP = new HashMap<>();
|
||||
|
||||
int innerPosition= 1;
|
||||
for (Map.Entry<Integer, Integer> item : heroStarsMap.entrySet()) {
|
||||
for (Map.Entry<Integer, CommonProto.Hero> item : heroMapList.entrySet()) {
|
||||
StringBuilder skillSb = new StringBuilder();
|
||||
Integer heroTid = item.getKey();
|
||||
Integer heroStar = item.getValue();
|
||||
Integer heroStar = item.getValue().getStar();
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
|
||||
List<Integer> skillIds = scHero.getSkillListByStar(heroStar);
|
||||
|
@ -544,7 +544,7 @@ public class ExpeditionLogic {
|
|||
int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId();
|
||||
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
|
||||
int robotLevel = sArenaRobotConfig.getRoleLv();
|
||||
Map<Integer, Integer> robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv, false);
|
||||
Map<Integer, Integer> robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv, false);
|
||||
heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,innerPosition++));
|
||||
// String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,scHero,propertySb,robotHeroAttribute).toString();
|
||||
}
|
||||
|
|
|
@ -395,7 +395,7 @@ public class GuildChallengeLogic {
|
|||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
guildInfo.setBuffIndex(guildInfo.getBuffIndex()+1);
|
||||
int fiveTime = (int)(TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5, 0, false)/1000);
|
||||
int fiveTime = (int)(TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0, false)/1000);
|
||||
guildInfo.setBuffOverTime(Math.min(time,fiveTime));
|
||||
}
|
||||
Family.GuildChallengeBuyBuffIndication indication = Family.GuildChallengeBuyBuffIndication.newBuilder()
|
||||
|
|
|
@ -85,7 +85,7 @@ public class FightRecordLogic {
|
|||
}
|
||||
// 获取类型数据
|
||||
List<String> strings = valueMap.get(multiKey);
|
||||
if (strings.isEmpty()){
|
||||
if (strings == null || strings.isEmpty()){
|
||||
return null;
|
||||
}
|
||||
// 遍历
|
||||
|
|
|
@ -418,13 +418,13 @@ public class FightUtil {
|
|||
}
|
||||
private static CommonProto.FightTeamInfo getRobotFightTeamInfo(SArenaRobotConfig sArenaRobotConfig,Map<String,Double> remainHp) {
|
||||
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
|
||||
Map<Integer,Integer> heroStarsMap = sArenaRobotConfig.getStarOfHeroMap();
|
||||
Map<Integer, CommonProto.Hero> heroMapList = sArenaRobotConfig.getHeroMapList();
|
||||
int i=0;
|
||||
for(Map.Entry<Integer,Integer> item : heroStarsMap.entrySet()){
|
||||
for(Map.Entry<Integer,CommonProto.Hero> item : heroMapList.entrySet()){
|
||||
StringBuilder skillSb = new StringBuilder();
|
||||
StringBuilder propertySb = new StringBuilder();
|
||||
Integer heroTid = item.getKey();
|
||||
Integer heroStar = item.getValue();
|
||||
Integer heroStar = item.getValue().getStar();
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
List<Integer> skillIds = scHero.getSkillListByStar(heroStar);
|
||||
String heroSkill = HeroLogic.getInstance().getRobotHeroSkills(skillIds,skillSb).toString();
|
||||
|
@ -432,7 +432,7 @@ public class FightUtil {
|
|||
int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId();
|
||||
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
|
||||
int robotLevel = sArenaRobotConfig.getRoleLv();
|
||||
Map<Integer, Integer> robotHeroAttribute =HeroLogic.getInstance(). calRobotHeroAttribute(scHero, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv,false);
|
||||
Map<Integer, Integer> robotHeroAttribute =HeroLogic.getInstance(). calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv,false);
|
||||
|
||||
if(remainHp!=null&&remainHp.containsKey(heroTid.toString())){
|
||||
robotHeroAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),(int)(remainHp.getOrDefault(heroTid.toString(),1d)*robotHeroAttribute.get(HeroAttributeEnum.Hp.getPropertyId())));
|
||||
|
|
|
@ -1186,21 +1186,55 @@ public class HeroLogic{
|
|||
return result;
|
||||
}
|
||||
|
||||
//根据英雄等级计算出brealId,从而也可以获取星级
|
||||
public int calRobotStarByLevel(int heroTid,int heroLevel,Map<Integer,Integer> starHeroMap){
|
||||
/**
|
||||
* 根据英雄等级计算出starBrealId
|
||||
* @param heroTid
|
||||
* @param heroLevel
|
||||
* @param heroBuilder
|
||||
* @return
|
||||
*/
|
||||
public int calRobotStarByLevel(int heroTid,int heroLevel,CommonProto.Hero.Builder heroBuilder){
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
int star = scHero.getStar();
|
||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
|
||||
if(scHeroRankUpConfigByType == null){
|
||||
scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
|
||||
return 0;
|
||||
}
|
||||
// 无奈方式,代码写死验证机器人等级小于100级为未升星
|
||||
if (heroLevel <= 100){
|
||||
return 0;
|
||||
}
|
||||
for(SCHeroRankUpConfig scHeroRankUpConfig : scHeroRankUpConfigByType.values()){
|
||||
if (heroLevel>=scHeroRankUpConfig.getLimitLevel() && heroLevel <= scHeroRankUpConfig.getOpenLevel()){
|
||||
starHeroMap.put(heroTid,scHeroRankUpConfig.getOpenStar());
|
||||
if (heroLevel <= scHeroRankUpConfig.getOpenLevel()){
|
||||
heroBuilder.setStar(scHeroRankUpConfig.getOpenStar());
|
||||
return scHeroRankUpConfig.getId();
|
||||
}
|
||||
}
|
||||
starHeroMap.put(heroTid,star);
|
||||
heroBuilder.setStar(star);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据英雄等级计算出BrealId
|
||||
* @param heroTid
|
||||
* @param heroLevel
|
||||
* @param heroBuilder
|
||||
* @return
|
||||
*/
|
||||
public int calRobotBreaByLevel(int heroTid,int heroLevel,CommonProto.Hero.Builder heroBuilder){
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
int star = scHero.getStar();
|
||||
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
|
||||
if(scHeroRankUpConfigByType == null){
|
||||
return 0;
|
||||
}
|
||||
for(SCHeroRankUpConfig scHeroRankUpConfig : scHeroRankUpConfigByType.values()){
|
||||
if (heroLevel >= scHeroRankUpConfig.getLimitLevel() && heroLevel <= scHeroRankUpConfig.getOpenLevel()){
|
||||
heroBuilder.setStar(scHeroRankUpConfig.getOpenStar());
|
||||
return scHeroRankUpConfig.getId();
|
||||
}
|
||||
}
|
||||
heroBuilder.setStar(star);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1861,7 +1895,16 @@ public class HeroLogic{
|
|||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算机器人英雄熟悉
|
||||
* @param scHero
|
||||
* @param heroLevel
|
||||
* @param heroBrekId 调用方法calRobotHeroAllAttribute未使用该参数,所以可以传0
|
||||
* @param pokemonIds
|
||||
* @param pokemonLevel
|
||||
* @param isForce
|
||||
* @return
|
||||
*/
|
||||
public Map<Integer,Integer> calRobotHeroAttribute(SCHero scHero,int heroLevel,int heroBrekId,int[] pokemonIds,int pokemonLevel,boolean isForce){
|
||||
Map<Integer, Integer> heroAllAttribute = calRobotHeroAllAttribute(scHero.getId(),heroLevel,heroBrekId,isForce);
|
||||
heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE));
|
||||
|
@ -2298,9 +2341,8 @@ public class HeroLogic{
|
|||
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
|
||||
int heroLevel = sArenaRobotConfig.getRoleLv();
|
||||
for(Integer heroTid :heroList){
|
||||
int heroBreakId = sArenaRobotConfig.getBreakId();
|
||||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(scHero, heroLevel, heroBreakId, differDemonsId, differDemonsLv,true);
|
||||
Map<Integer, Integer> robotHeroAttribute = calRobotHeroAttribute(scHero, heroLevel, 0, differDemonsId, differDemonsLv,true);
|
||||
totalForce+=calForce(robotHeroAttribute);
|
||||
}
|
||||
return totalForce;
|
||||
|
|
|
@ -613,9 +613,9 @@ public class PlayerLogic {
|
|||
}
|
||||
teamInfo.setTotalForce(sArenaRobotConfig.getTotalForce());
|
||||
int position = 1;
|
||||
for(Map.Entry<Integer,Integer> item : sArenaRobotConfig.getStarOfHeroMap().entrySet()){
|
||||
for(Map.Entry<Integer,CommonProto.Hero> item : sArenaRobotConfig.getHeroMapList().entrySet()){
|
||||
Integer heroTid = item.getKey();
|
||||
Integer heroStar = item.getValue();
|
||||
Integer heroStar = item.getValue().getStar();
|
||||
teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).build());
|
||||
}
|
||||
oneInfo.setTeam(teamInfo);
|
||||
|
@ -649,16 +649,15 @@ public class PlayerLogic {
|
|||
int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId();
|
||||
int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv();
|
||||
int heroLevel = sArenaRobotConfig.getRoleLv();
|
||||
int heroBreakId = sArenaRobotConfig.getBreakId();
|
||||
|
||||
SCHero scHero = SCHero.getsCHero().get(Integer.parseInt(robotHeroId));
|
||||
Map<Integer, Integer> robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, heroLevel, heroBreakId, differDemonsId, differDemonsLv,true);
|
||||
Map<Integer, Integer> robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, heroLevel, 0, differDemonsId, differDemonsLv,true);
|
||||
|
||||
for(Map.Entry<Integer,Integer> item : robotHeroAttribute.entrySet()){
|
||||
builder.addSpecialEffects(CommonProto.SpecialEffects.newBuilder().setPropertyId(item.getKey()).setPropertyValue(item.getValue()).build());
|
||||
}
|
||||
builder.setForce(HeroLogic.getInstance().calForce(robotHeroAttribute));
|
||||
builder.setHero(CBean2Proto.getRobotHero(scHero,sArenaRobotConfig));
|
||||
builder.setHero(sArenaRobotConfig.getHeroMapList().get(scHero.getId()));
|
||||
|
||||
int resMsgId = MessageTypeProto.MessageType.VIEW_HERO_INFO_RESPONSE_VALUE;
|
||||
MessageUtil.sendMessage(session,1,resMsgId,builder.build(),true);
|
||||
|
|
|
@ -6,10 +6,10 @@ import com.ljsd.jieling.logic.dao.UserManager;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.rank.IRank;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
@ -34,7 +34,7 @@ public abstract class AbstractRank implements IRank {
|
|||
* @return 当前排行榜数据
|
||||
* @throws Exception
|
||||
*/
|
||||
public PlayerInfoProto.RankResponse getRank(int uid,String rkey,int page,int rankEndLine) throws Exception {
|
||||
public PlayerInfoProto.RankResponse getRank(int uid, String rkey, int page, int rankEndLine) throws Exception {
|
||||
if(rankEndLine==-1){
|
||||
rankEndLine = 100;
|
||||
}
|
||||
|
@ -102,6 +102,9 @@ public abstract class AbstractRank implements IRank {
|
|||
}
|
||||
ZSetOperations.TypedTuple<String> data = rankByKey.iterator().next();
|
||||
User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
|
||||
if (everyUser == null){
|
||||
return builder;
|
||||
}
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(1)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
|
@ -121,9 +124,12 @@ public abstract class AbstractRank implements IRank {
|
|||
});
|
||||
return builder;
|
||||
}
|
||||
protected void getOptional(int index,ZSetOperations.TypedTuple<String> data,PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
|
||||
protected void getOptional(int index,ZSetOperations.TypedTuple<String> data,PlayerInfoProto.RankResponse.Builder builder) throws Exception {
|
||||
User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true);
|
||||
if (everyUser == null){
|
||||
return;
|
||||
}
|
||||
CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder()
|
||||
.setRank(index)
|
||||
.setParam1(getParam1(data.getScore()))
|
||||
|
|
|
@ -91,12 +91,6 @@ public class MinuteTask extends Thread {
|
|||
e.printStackTrace();
|
||||
LOGGER.error("Exception::=>{}",e.toString());
|
||||
}
|
||||
try {
|
||||
everyFiveTask();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
LOGGER.error("Exception::=>{}",e.toString());
|
||||
}
|
||||
try {
|
||||
everyMondyFiveClockTask();
|
||||
}catch (Exception e){
|
||||
|
@ -168,23 +162,7 @@ public class MinuteTask extends Thread {
|
|||
}
|
||||
}
|
||||
|
||||
//弃用
|
||||
// private void fiveMinuteOnlineSend() {
|
||||
// Calendar calendar = Calendar.getInstance();
|
||||
// int minute = calendar.get(Calendar.MINUTE);
|
||||
// if(minute%5 == 0){
|
||||
// KTAppOnline ktAppOnline = new KTAppOnline();
|
||||
// int onlineNum = OnlineUserManager.sessionMap.size();
|
||||
// ParamEventBean paramEventBean = new ParamEventBean(ParamEventBean.OnlineEvent);
|
||||
// int time =(int)(calendar.getTimeInMillis()/1000);
|
||||
// paramEventBean.add(String.valueOf(time));
|
||||
// paramEventBean.add(String.valueOf(onlineNum));
|
||||
// ktAppOnline.setParam_event(paramEventBean);
|
||||
// ktAppOnline.setParam_data(KtBeanBuilderUtils.paramDataBuildForSystem());
|
||||
// ktAppOnline.getParam_data().setCategory_s(LoginParamType.DATA_CATEGORY_APP);
|
||||
// DataMessageUtils.addLogQueue(ktAppOnline);
|
||||
// }
|
||||
// }
|
||||
|
||||
//每分钟异步上报在线人数
|
||||
private void reportUserOnline() {
|
||||
new OnlineUserReportTask().start();
|
||||
|
@ -206,28 +184,17 @@ public class MinuteTask extends Thread {
|
|||
LOGGER.info("everyHourTask end ...");
|
||||
}
|
||||
}
|
||||
|
||||
//每日凌晨零点执行
|
||||
public void everyZeroTask() throws Exception {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||
int minute = calendar.get(Calendar.MINUTE);
|
||||
if(hour == 0 && minute ==0){
|
||||
LOGGER.info("DailyOfZeroTask start ...");
|
||||
ArenaLogic.getInstance().sendReward(GlobalsDef.ARENA_DAILY_REWARD);
|
||||
GlobalDataManaager.everTask(0);
|
||||
LOGGER.info("DailyOfZeroTask end ...");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//每日凌晨五点执行
|
||||
public void everyFiveTask() throws Exception {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||
int minute = calendar.get(Calendar.MINUTE);
|
||||
if(hour == 5 && minute ==0){
|
||||
|
||||
//保证每分钟线程
|
||||
try {
|
||||
ArenaLogic.getInstance().sendReward(GlobalsDef.ARENA_DAILY_REWARD);
|
||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
|
||||
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false));
|
||||
|
@ -265,7 +232,7 @@ public class MinuteTask extends Thread {
|
|||
|
||||
|
||||
LOGGER.info("DailyOfFiveTask start ...");
|
||||
GlobalDataManaager.everTask(5);
|
||||
GlobalDataManaager.everTask(0);
|
||||
LOGGER.info("DailyOfFiveTask end ...");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ public class CBean2Proto {
|
|||
.build();
|
||||
}
|
||||
|
||||
public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception {
|
||||
/* public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception {
|
||||
return CommonProto.Hero
|
||||
.newBuilder()
|
||||
.setId(String.valueOf(scHero.getId()))
|
||||
|
@ -118,8 +118,9 @@ public class CBean2Proto {
|
|||
.setLevel(sArenaRobotConfig.getRoleLv())
|
||||
.setStar(sArenaRobotConfig.getStarOfHeroMap().get(scHero.getId()))
|
||||
.setBreakId(sArenaRobotConfig.getBreakId())
|
||||
.setStarBreakId(sArenaRobotConfig.getStarBreakId())
|
||||
.build();
|
||||
}
|
||||
}*/
|
||||
|
||||
public static CommonProto.Mail getMail(Mail mail){
|
||||
CommonProto.Mail.Builder mailProto = CommonProto.Mail
|
||||
|
|
|
@ -37,8 +37,8 @@ public class MessageUtil {
|
|||
backMessage = new byte[0];
|
||||
} else {
|
||||
backMessage = generatedMessage.toByteArray();
|
||||
if (backMessage.length != 0)
|
||||
LOGGER.info("wrappedBuffer uid=>{}, generatedMessage=>{}", uid, JsonFormat.printToString(generatedMessage));
|
||||
// if (backMessage.length != 0)
|
||||
// LOGGER.info("wrappedBuffer uid=>{}, generatedMessage=>{}", uid, JsonFormat.printToString(generatedMessage));
|
||||
}
|
||||
|
||||
return wrappedBuffer(uid, token, index, result, msgId, backMessage);
|
||||
|
|
|
@ -2,6 +2,7 @@ package config;
|
|||
|
||||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
import rpc.protocols.CommonProto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -34,11 +35,15 @@ public class SArenaRobotConfig implements BaseConfig {
|
|||
|
||||
private int breakId;
|
||||
|
||||
private int starBreakId;
|
||||
|
||||
private Map<Integer,Integer> starOfHeroMap;
|
||||
|
||||
private Map<Integer, CommonProto.Hero> heroMapList;
|
||||
|
||||
private static Map<Integer, List<SArenaRobotConfig>> sArenaRobotConfigByPoolMap;
|
||||
|
||||
private static Map<Integer, SArenaRobotConfig> sArenaRobotConfigMap;
|
||||
private static Map<Integer, SArenaRobotConfig> sArenaRobotConfigMap;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -123,23 +128,15 @@ public class SArenaRobotConfig implements BaseConfig {
|
|||
this.totalForce = totalForce;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getStarOfHeroMap() {
|
||||
return starOfHeroMap;
|
||||
}
|
||||
|
||||
public int getBreakId() {
|
||||
return breakId;
|
||||
}
|
||||
|
||||
public void setBreakId(int breakId) {
|
||||
this.breakId = breakId;
|
||||
}
|
||||
|
||||
public void setStarOfHeroMap(Map<Integer, Integer> starOfHeroMap) {
|
||||
this.starOfHeroMap = starOfHeroMap;
|
||||
}
|
||||
|
||||
public int getRobotLevel() {
|
||||
return robotLevel;
|
||||
}
|
||||
|
||||
public Map<Integer, CommonProto.Hero> getHeroMapList() {
|
||||
return heroMapList;
|
||||
}
|
||||
|
||||
public void setHeroMapList(Map<Integer, CommonProto.Hero> heroMapList) {
|
||||
this.heroMapList = heroMapList;
|
||||
}
|
||||
}
|
|
@ -13,6 +13,10 @@ public class SFloodConfig implements BaseConfig {
|
|||
|
||||
private int battleTime;
|
||||
|
||||
private int force;
|
||||
|
||||
private int[][] specialReward;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
}
|
||||
|
@ -34,5 +38,11 @@ public class SFloodConfig implements BaseConfig {
|
|||
return battleTime;
|
||||
}
|
||||
|
||||
public int getForce() {
|
||||
return force;
|
||||
}
|
||||
|
||||
public int[][] getSpecialReward() {
|
||||
return specialReward;
|
||||
}
|
||||
}
|
|
@ -19,23 +19,36 @@ public class SWorldBossRewardConfig implements BaseConfig {
|
|||
|
||||
private int type;
|
||||
|
||||
public static Map<Integer, TreeMap<Integer,String>> rewardByTypeAndRankMap = new HashMap<>();
|
||||
private int bossId;
|
||||
|
||||
/**
|
||||
* 类型,排名,奖励
|
||||
*/
|
||||
public static Map<Integer,TreeMap<Integer,String>> rewardByTypeAndRankMap = new HashMap<>();
|
||||
/**
|
||||
* boss索引id,类型,排名,奖励
|
||||
*/
|
||||
public static Map<Integer,TreeMap<Integer, TreeMap<Integer,String>>> rewardByBossIdMap = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
Map<Integer, SWorldBossRewardConfig> config = STableManager.getConfig(SWorldBossRewardConfig.class);
|
||||
Map<Integer, TreeMap<Integer,String>> rewardByTypeAndRankMapTmp = new HashMap<>();
|
||||
Map<Integer, TreeMap<Integer,String>> rewardByTypeAndRankMapTmp = new HashMap<>();
|
||||
Map<Integer,TreeMap<Integer, TreeMap<Integer,String>>> rewardByBossIdMapTmp = new HashMap<>();
|
||||
config.forEach((id,item)->{
|
||||
rewardByTypeAndRankMapTmp.putIfAbsent(item.getType(),new TreeMap<>());
|
||||
rewardByTypeAndRankMapTmp.get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward()));
|
||||
});
|
||||
rewardByTypeAndRankMap = rewardByTypeAndRankMapTmp;
|
||||
|
||||
rewardByBossIdMapTmp.putIfAbsent(item.getBossId(),new TreeMap<>());
|
||||
rewardByBossIdMapTmp.get(item.getBossId()).putIfAbsent(item.getType(),new TreeMap<>());
|
||||
rewardByBossIdMapTmp.get(item.getBossId()).get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward()));
|
||||
});
|
||||
|
||||
rewardByTypeAndRankMap = rewardByTypeAndRankMapTmp;
|
||||
rewardByBossIdMap = rewardByBossIdMapTmp;
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
@ -50,4 +63,8 @@ public class SWorldBossRewardConfig implements BaseConfig {
|
|||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public int getBossId() {
|
||||
return bossId;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue