Merge branch 'master' of http://60.1.1.230/backend/jieling_server
commit
5338c735b1
|
|
@ -2154,7 +2154,7 @@ public class MapLogic {
|
||||||
.setUid(uidTmp)
|
.setUid(uidTmp)
|
||||||
.setLevel(playerInfoManager.getLevel())
|
.setLevel(playerInfoManager.getLevel())
|
||||||
.setName(playerInfoManager.getNickName())
|
.setName(playerInfoManager.getNickName())
|
||||||
.setFightId(SMainLevelConfig.sMainLevelConfigByVirtureIdMap.get(score).getId())
|
.setFightId(SMainLevelConfig.sMainLevelConfigByVirtureIdMap.get(score).getVirtureId())
|
||||||
.setHead(playerInfoManager.getHead())
|
.setHead(playerInfoManager.getHead())
|
||||||
.setRank(rank++)
|
.setRank(rank++)
|
||||||
.setTotalForce(userTmp.getPlayerInfoManager().getMaxForce())
|
.setTotalForce(userTmp.getPlayerInfoManager().getMaxForce())
|
||||||
|
|
@ -2178,6 +2178,7 @@ public class MapLogic {
|
||||||
int uid = session.getUid();
|
int uid = session.getUid();
|
||||||
for(CommonProto.MainLevelRankInfo.Builder builder1 : mainLevelRankInfoList){
|
for(CommonProto.MainLevelRankInfo.Builder builder1 : mainLevelRankInfoList){
|
||||||
builder1.setRank(rank++);
|
builder1.setRank(rank++);
|
||||||
|
builder1.setFightId(SMainLevelConfig.sMainLevelConfigByVirtureIdMap.get(builder1.getFightId()).getId());
|
||||||
builder.addMainLevelRankInfo(builder1.build());
|
builder.addMainLevelRankInfo(builder1.build());
|
||||||
if(builder1.getUid() == uid){
|
if(builder1.getUid() == uid){
|
||||||
myRank = builder1.getRank();
|
myRank = builder1.getRank();
|
||||||
|
|
|
||||||
|
|
@ -798,6 +798,7 @@ public class GuildLogic {
|
||||||
case 4:
|
case 4:
|
||||||
title = SErrorCodeEerverConfig.getI18NMessage("family_relieved_leader_title");
|
title = SErrorCodeEerverConfig.getI18NMessage("family_relieved_leader_title");
|
||||||
content = SErrorCodeEerverConfig.getI18NMessage("family_relieved_leader_txt");
|
content = SErrorCodeEerverConfig.getI18NMessage("family_relieved_leader_txt");
|
||||||
|
position = 3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,6 @@ import util.StringUtil;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
public class CombatLogic {
|
public class CombatLogic {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(CombatLogic.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(CombatLogic.class);
|
||||||
|
|
@ -221,77 +220,17 @@ public class CombatLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<Integer,CommonProto.Drop> getNewAdventureReward(User user,boolean sendMail) throws Exception {
|
public Map<Integer,CommonProto.Drop> getNewAdventureReward(User user,boolean sendMail) throws Exception {
|
||||||
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
GetNewAdventureData getNewAdventureData = new GetNewAdventureData(user, sendMail,false).invoke();
|
||||||
Map<Integer, Integer> fightStateInfo = user.getMainLevelManager().getFightStateInfo();
|
if (getNewAdventureData.is()) return null;
|
||||||
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
CommonProto.Drop.Builder baseBuilder = getNewAdventureData.getBaseBuilder();
|
||||||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
CommonProto.Drop.Builder randomBuilder = getNewAdventureData.getRandomBuilder();
|
||||||
int adventureOffline = gameSetting.getAdventureOffline()*60*60/adventureRefresh;
|
|
||||||
Map<Integer, Integer> baseItemMap = new HashMap<>();
|
|
||||||
Map<Integer, Integer> baseCardMap = new HashMap<>();
|
|
||||||
Map<Integer, Integer> baseEquipMap = new HashMap<>();
|
|
||||||
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
|
||||||
|
|
||||||
Map<Integer, Integer> randomItemMap = new HashMap<>();
|
|
||||||
Map<Integer, Integer> randomCardMap = new HashMap<>();
|
|
||||||
Map<Integer, Integer> randomEquipMap = new HashMap<>();
|
|
||||||
Map<Integer,Integer> randomRandomMap = new HashMap<>();
|
|
||||||
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
|
||||||
CommonProto.Drop.Builder randomBuilder = CommonProto.Drop.newBuilder();
|
|
||||||
int takeTimes= 0;
|
|
||||||
for(Map.Entry<Integer,Integer> fightStateInfoItem : fightStateInfo.entrySet()){
|
|
||||||
Integer fightId = fightStateInfoItem.getKey();
|
|
||||||
Integer times = fightStateInfoItem.getValue();
|
|
||||||
SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId);
|
|
||||||
int[] randomRewardMin = sMainLevelConfig.getRandomRewardMin();
|
|
||||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
|
||||||
int timesTemp =times;
|
|
||||||
while (timesTemp-->0){
|
|
||||||
ItemUtil.combineReward(user,sMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
|
||||||
}
|
|
||||||
takeTimes+=times;
|
|
||||||
}
|
|
||||||
int fightId = mainLevelManager.getFightId();
|
|
||||||
SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId);
|
|
||||||
int lastTime = mainLevelManager.getLastTime();
|
|
||||||
int now = (int) (System.currentTimeMillis() / 1000);
|
|
||||||
int times = (now - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh();
|
|
||||||
int maxTimes = adventureOffline - takeTimes;
|
|
||||||
int lastTimeTakes=0;
|
|
||||||
boolean reset = maxTimes<times;
|
|
||||||
if(maxTimes>0){
|
|
||||||
times = times > maxTimes?maxTimes:times;
|
|
||||||
int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin();
|
|
||||||
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
|
||||||
int timesTemp =times;
|
|
||||||
while (timesTemp-->0){
|
|
||||||
ItemUtil.combineReward(user,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
|
||||||
}
|
|
||||||
lastTimeTakes=times;
|
|
||||||
}
|
|
||||||
if(sendMail){
|
|
||||||
if(!baseItemMap.isEmpty()){
|
|
||||||
int vipLevel = user.getPlayerInfoManager().getVipLevel();
|
|
||||||
String title = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_title");
|
|
||||||
String content = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_content",new Object[]{vipLevel});
|
|
||||||
String reward = ItemUtil.getReward(baseItemMap, baseCardMap, baseEquipMap, baseRandomMap);
|
|
||||||
String randomReward = ItemUtil.getReward(randomItemMap, randomCardMap, randomEquipMap, randomRandomMap);
|
|
||||||
if(randomReward.length()!=0){
|
|
||||||
reward = reward + "|" + randomReward;
|
|
||||||
}
|
|
||||||
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,now,Global.MAIL_EFFECTIVE_TIME);
|
|
||||||
}
|
|
||||||
mainLevelManager.afterTakeStateReward(true,0);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
mainLevelManager.afterTakeStateReward(reset,lastTimeTakes);
|
|
||||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap,BIReason.ADVENTURE_BASE_REWARD);
|
|
||||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
|
||||||
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||||
result.put(1,baseBuilder.build());
|
result.put(1,baseBuilder.build());
|
||||||
result.put(2,randomBuilder.build());
|
result.put(2,randomBuilder.build());
|
||||||
user.getUserMissionManager().onGameEvent(user,GameEvent.ADVENTURE_TAKEREWARD,1);
|
user.getUserMissionManager().onGameEvent(user,GameEvent.ADVENTURE_TAKEREWARD,1);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<Integer,CommonProto.Drop> getNewAdventureFastReward(User user,int timeDuration) throws Exception {
|
private Map<Integer,CommonProto.Drop> getNewAdventureFastReward(User user,int timeDuration) throws Exception {
|
||||||
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||||
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||||
|
|
@ -907,4 +846,111 @@ public class CombatLogic {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class GetNewAdventureData {
|
||||||
|
private boolean myResult;
|
||||||
|
private User user;
|
||||||
|
private boolean sendMail;
|
||||||
|
private boolean viewBaseReward;
|
||||||
|
private CommonProto.Drop.Builder baseBuilder;
|
||||||
|
private CommonProto.Drop.Builder randomBuilder;
|
||||||
|
private String rewardStr;
|
||||||
|
|
||||||
|
public GetNewAdventureData(User user, boolean sendMail,boolean viewBaseReward) {
|
||||||
|
this.user = user;
|
||||||
|
this.sendMail = sendMail;
|
||||||
|
this.viewBaseReward = viewBaseReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean is() {
|
||||||
|
return myResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CommonProto.Drop.Builder getBaseBuilder() {
|
||||||
|
return baseBuilder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CommonProto.Drop.Builder getRandomBuilder() {
|
||||||
|
return randomBuilder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRewardStr() {
|
||||||
|
return rewardStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GetNewAdventureData invoke() throws Exception {
|
||||||
|
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||||
|
Map<Integer, Integer> fightStateInfo = user.getMainLevelManager().getFightStateInfo();
|
||||||
|
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||||
|
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||||
|
int adventureOffline = gameSetting.getAdventureOffline()*60*60/adventureRefresh;
|
||||||
|
Map<Integer, Integer> baseItemMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> baseCardMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> baseEquipMap = new HashMap<>();
|
||||||
|
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
||||||
|
|
||||||
|
Map<Integer, Integer> randomItemMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> randomCardMap = new HashMap<>();
|
||||||
|
Map<Integer, Integer> randomEquipMap = new HashMap<>();
|
||||||
|
Map<Integer,Integer> randomRandomMap = new HashMap<>();
|
||||||
|
baseBuilder = CommonProto.Drop.newBuilder();
|
||||||
|
randomBuilder = CommonProto.Drop.newBuilder();
|
||||||
|
int takeTimes= 0;
|
||||||
|
for(Map.Entry<Integer,Integer> fightStateInfoItem : fightStateInfo.entrySet()){
|
||||||
|
Integer fightId = fightStateInfoItem.getKey();
|
||||||
|
Integer times = fightStateInfoItem.getValue();
|
||||||
|
SMainLevelConfig sMainLevelConfig = SMainLevelConfig.config.get(fightId);
|
||||||
|
int[] randomRewardMin = sMainLevelConfig.getRandomRewardMin();
|
||||||
|
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||||
|
int timesTemp =times;
|
||||||
|
while (!viewBaseReward&×Temp-->0){
|
||||||
|
ItemUtil.combineReward(user,sMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||||
|
}
|
||||||
|
takeTimes+=times;
|
||||||
|
}
|
||||||
|
int fightId = mainLevelManager.getFightId();
|
||||||
|
SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId);
|
||||||
|
int lastTime = mainLevelManager.getLastTime();
|
||||||
|
int now = (int) (System.currentTimeMillis() / 1000);
|
||||||
|
int times = (now - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh();
|
||||||
|
int maxTimes = adventureOffline - takeTimes;
|
||||||
|
int lastTimeTakes=0;
|
||||||
|
boolean reset = maxTimes<times;
|
||||||
|
if(maxTimes>0){
|
||||||
|
times = times > maxTimes?maxTimes:times;
|
||||||
|
int[] randomRewardMin = targetMainLevelConfig.getRandomRewardMin();
|
||||||
|
ItemUtil.combineReward(user,randomRewardMin, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||||
|
int timesTemp =times;
|
||||||
|
while (!viewBaseReward&×Temp-->0){
|
||||||
|
ItemUtil.combineReward(user,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||||
|
}
|
||||||
|
lastTimeTakes=times;
|
||||||
|
}
|
||||||
|
if(viewBaseReward){
|
||||||
|
myResult = true;
|
||||||
|
rewardStr = ItemUtil.getReward(baseItemMap, baseCardMap, baseEquipMap, baseRandomMap);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
if(sendMail){
|
||||||
|
if(!baseItemMap.isEmpty()){
|
||||||
|
int vipLevel = user.getPlayerInfoManager().getVipLevel();
|
||||||
|
String title = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_title");
|
||||||
|
String content = SErrorCodeEerverConfig.getI18NMessage("adventuren_reward_of_viplevel_content",new Object[]{vipLevel});
|
||||||
|
String reward = ItemUtil.getReward(baseItemMap, baseCardMap, baseEquipMap, baseRandomMap);
|
||||||
|
String randomReward = ItemUtil.getReward(randomItemMap, randomCardMap, randomEquipMap, randomRandomMap);
|
||||||
|
if(randomReward.length()!=0){
|
||||||
|
reward = reward + "|" + randomReward;
|
||||||
|
}
|
||||||
|
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,now, Global.MAIL_EFFECTIVE_TIME);
|
||||||
|
}
|
||||||
|
mainLevelManager.afterTakeStateReward(true,0);
|
||||||
|
myResult = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
mainLevelManager.afterTakeStateReward(reset,lastTimeTakes);
|
||||||
|
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, BIReason.ADVENTURE_BASE_REWARD);
|
||||||
|
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
|
||||||
|
myResult = false;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1168,20 +1168,22 @@ public class HeroLogic {
|
||||||
if(!StringUtil.isEmpty(especialEquip)){
|
if(!StringUtil.isEmpty(especialEquip)){
|
||||||
|
|
||||||
Map<String, EspecialEquip> especialEquipMap = user.getEquipManager().getEspecialEquipMap();
|
Map<String, EspecialEquip> especialEquipMap = user.getEquipManager().getEspecialEquipMap();
|
||||||
int equipTempId = especialEquipMap.get(especialEquip).getEquipId();
|
EspecialEquip myEspecial = especialEquipMap.get(especialEquip);
|
||||||
int tempStar = especialEquipMap.get(especialEquip).getStar();
|
if(myEspecial!=null){
|
||||||
Map<Integer, Map<Integer, SEquipTalismana>> equipTalismanaMap = SEquipTalismana.equipTalismanaStarMap;
|
int equipTempId = myEspecial.getEquipId();
|
||||||
|
int tempStar = myEspecial.getStar();
|
||||||
SEquipTalismana equipTali = equipTalismanaMap.get(equipTempId).get(tempStar);
|
Map<Integer, Map<Integer, SEquipTalismana>> equipTalismanaMap = SEquipTalismana.equipTalismanaStarMap;
|
||||||
combinedAttribute(equipTali.getProperty(),heroAllAttribute);
|
SEquipTalismana equipTali = equipTalismanaMap.get(equipTempId).get(tempStar);
|
||||||
//法宝职业额外加成
|
combinedAttribute(equipTali.getProperty(),heroAllAttribute);
|
||||||
SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId());
|
//法宝职业额外加成
|
||||||
int[][] specialProperty = equipTali.getSpecialProperty();
|
SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||||
for(int i = 0 ; i < specialProperty.length;i++){
|
int[][] specialProperty = equipTali.getSpecialProperty();
|
||||||
if(tempHero.getProfession()==specialProperty[i][0]){
|
for(int i = 0 ; i < specialProperty.length;i++){
|
||||||
int [][] property = new int[1][];
|
if(tempHero.getProfession()==specialProperty[i][0]){
|
||||||
property[0] = new int[]{specialProperty[i][1],specialProperty[i][2]};
|
int [][] property = new int[1][];
|
||||||
combinedAttribute(property, heroAllAttribute);
|
property[0] = new int[]{specialProperty[i][1],specialProperty[i][2]};
|
||||||
|
combinedAttribute(property, heroAllAttribute);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import com.ljsd.jieling.logic.OnlineUserManager;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.logic.fight.CombatLogic;
|
||||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||||
import com.ljsd.jieling.protocols.*;
|
import com.ljsd.jieling.protocols.*;
|
||||||
import config.SMainLevelConfig;
|
import config.SMainLevelConfig;
|
||||||
|
|
@ -458,7 +459,7 @@ public class CBean2Proto {
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PlayerInfoProto.GetMainLevelInfoResponse getMainLevelInfoResponse( User user ){
|
public static PlayerInfoProto.GetMainLevelInfoResponse getMainLevelInfoResponse( User user ) throws Exception {
|
||||||
long nowMs = TimeUtils.now();
|
long nowMs = TimeUtils.now();
|
||||||
int now = (int)(nowMs/1000);
|
int now = (int)(nowMs/1000);
|
||||||
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
MainLevelManager mainLevelManager = user.getMainLevelManager();
|
||||||
|
|
@ -513,6 +514,10 @@ public class CBean2Proto {
|
||||||
if(update){
|
if(update){
|
||||||
mainLevelManager.directUpdateDb();
|
mainLevelManager.directUpdateDb();
|
||||||
}
|
}
|
||||||
|
CombatLogic.GetNewAdventureData getNewAdventureData = new CombatLogic.GetNewAdventureData(user, false,true).invoke();
|
||||||
|
if (!StringUtil.isEmpty(getNewAdventureData.getRewardStr())){
|
||||||
|
builder.setReward(getNewAdventureData.getRewardStr());
|
||||||
|
}
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue