挂机邮件

lvxinran 2020-01-17 17:48:36 +08:00
parent 6e5642857a
commit 2b40c77e68
5 changed files with 37 additions and 27 deletions

View File

@ -68,13 +68,13 @@ public class MainLevelManager extends MongoBase {
updateString("lastTime",lastTime); updateString("lastTime",lastTime);
} }
public void afterTakeStateReward(boolean needReset,int lastTakes){ public void afterTakeStateReward(boolean needReset,int lastTakes,int time){
fightStateInfo.clear(); fightStateInfo.clear();
int now = (int)(System.currentTimeMillis()/1000); int now = (int)(System.currentTimeMillis()/1000);
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
if(needReset){ if(needReset){
this.startTime = now; this.startTime = time;
this.lastTime = now; this.lastTime = time;
}else{ }else{
int adventureRefresh = gameSetting.getAdventureRefresh(); int adventureRefresh = gameSetting.getAdventureRefresh();
this.lastTime = lastTime+lastTakes*adventureRefresh; this.lastTime = lastTime+lastTakes*adventureRefresh;
@ -121,6 +121,11 @@ public class MainLevelManager extends MongoBase {
return lastTime; return lastTime;
} }
public void setLastTime(int lastTime) {
this.lastTime = lastTime;
updateString("lastTime",lastTime);
}
public Map<Integer, HashSet<String>> getBossIds() { public Map<Integer, HashSet<String>> getBossIds() {
return bossIds; return bossIds;
} }

View File

@ -200,7 +200,7 @@ public class CombatLogic {
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
Map<Integer, CommonProto.Drop> adventureFastReward =null; Map<Integer, CommonProto.Drop> adventureFastReward =null;
if(type == 2){ if(type == 2){
adventureFastReward = getNewAdventureReward(user,false); adventureFastReward = getNewAdventureReward(user,false,(int)(TimeUtils.now()/1000));
if(adventureFastReward.get(1).getItemlistCount()==0){ if(adventureFastReward.get(1).getItemlistCount()==0){
throw new ErrorCodeException(ErrorCode.REWARD_COLLECTING); throw new ErrorCodeException(ErrorCode.REWARD_COLLECTING);
} }
@ -226,8 +226,8 @@ public class CombatLogic {
KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10); KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10);
} }
public Map<Integer,CommonProto.Drop> getNewAdventureReward(User user,boolean sendMail) throws Exception { public Map<Integer,CommonProto.Drop> getNewAdventureReward(User user,boolean sendMail,int time) throws Exception {
GetNewAdventureData getNewAdventureData = new GetNewAdventureData(user, sendMail,false).invoke(); GetNewAdventureData getNewAdventureData = new GetNewAdventureData(user, sendMail,false).invoke(time);
if (getNewAdventureData.is()) return null; if (getNewAdventureData.is()) return null;
CommonProto.Drop.Builder baseBuilder = getNewAdventureData.getBaseBuilder(); CommonProto.Drop.Builder baseBuilder = getNewAdventureData.getBaseBuilder();
CommonProto.Drop.Builder randomBuilder = getNewAdventureData.getRandomBuilder(); CommonProto.Drop.Builder randomBuilder = getNewAdventureData.getRandomBuilder();
@ -884,7 +884,7 @@ public class CombatLogic {
return rewardStr; return rewardStr;
} }
public GetNewAdventureData invoke() throws Exception { public GetNewAdventureData invoke(int time) throws Exception {
MainLevelManager mainLevelManager = user.getMainLevelManager(); MainLevelManager mainLevelManager = user.getMainLevelManager();
Map<Integer, Integer> fightStateInfo = user.getMainLevelManager().getFightStateInfo(); Map<Integer, Integer> fightStateInfo = user.getMainLevelManager().getFightStateInfo();
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting(); SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
@ -917,8 +917,8 @@ public class CombatLogic {
int fightId = mainLevelManager.getFightId(); int fightId = mainLevelManager.getFightId();
SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId); SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId);
int lastTime = mainLevelManager.getLastTime(); int lastTime = mainLevelManager.getLastTime();
int now = (int) (System.currentTimeMillis() / 1000); // int now = (int) (System.currentTimeMillis() / 1000);
int times = (now - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh(); int times = (time - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh();
int maxTimes = adventureOffline - takeTimes; int maxTimes = adventureOffline - takeTimes;
int lastTimeTakes=0; int lastTimeTakes=0;
boolean reset = maxTimes<times; boolean reset = maxTimes<times;
@ -948,14 +948,14 @@ public class CombatLogic {
String randomReward = ItemUtil.getReward(randomItemMap, randomCardMap, randomEquipMap, randomRandomMap); String randomReward = ItemUtil.getReward(randomItemMap, randomCardMap, randomEquipMap, randomRandomMap);
if(randomReward.length()!=0){ if(randomReward.length()!=0){
reward = reward + "|" + randomReward; reward = reward + "|" + randomReward;
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,now, Global.MAIL_EFFECTIVE_TIME); MailLogic.getInstance().sendMail(user.getId(),title,content,reward,time, Global.MAIL_EFFECTIVE_TIME);
} }
} }
mainLevelManager.afterTakeStateReward(true,0); mainLevelManager.afterTakeStateReward(true,0,time);
myResult = true; myResult = true;
return this; return this;
} }
mainLevelManager.afterTakeStateReward(reset,lastTimeTakes); mainLevelManager.afterTakeStateReward(reset,lastTimeTakes,time);
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, BIReason.ADVENTURE_BASE_REWARD); ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, BIReason.ADVENTURE_BASE_REWARD);
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD); ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
myResult = false; myResult = false;

View File

@ -20,6 +20,7 @@ import com.ljsd.jieling.logic.activity.event.UserForceChangeEvent;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.family.GuildLogic;
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.logic.mail.MailLogic; import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameEvent;
@ -286,21 +287,28 @@ public class PlayerLogic {
removePrivileges.add(VipPrivilegeType.UNLOCK_STAR_EXTRA_REWARD); removePrivileges.add(VipPrivilegeType.UNLOCK_STAR_EXTRA_REWARD);
}*/ }*/
} }
playerInfoManager.vipFlush(removePrivileges);
int vipLevel = user.getPlayerInfoManager().getVipLevel(); int vipLevel = user.getPlayerInfoManager().getVipLevel();
sendVipDailyOrLevlUpReward(user, vipLevel,BIReason.VIP_DAY_REWARD); sendVipDailyOrLevlUpReward(user, vipLevel,BIReason.VIP_DAY_REWARD);
if(fBuilder!=null){ List<CommonProto.Privilege> privilegeList = new ArrayList<>();
List<CommonProto.Privilege> privilegeList = new ArrayList<>(); Map<Integer, VipInfo> vipInfo = playerInfoManager.getVipInfo();
Map<Integer, VipInfo> vipInfo = playerInfoManager.getVipInfo(); for(Map.Entry<Integer,VipInfo> vipInfoItem : vipInfo.entrySet()){
for(Map.Entry<Integer,VipInfo> vipInfoItem : vipInfo.entrySet()){ if(vipInfoItem.getValue().getEffectTime()!=0 && vipInfoItem.getValue().getEffectTime()<=(TimeUtils.now()/1000)){
privilegeList.add(CommonProto.Privilege.newBuilder() if(SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()).getPrivilegeType()==VipPrivilegeType.ADVENTURE_BASE_REWARD){
.setId(vipInfoItem.getKey()) CombatLogic.getInstance().getNewAdventureReward(user,true,vipInfoItem.getValue().getEffectTime());
. setUsedTimes(vipInfoItem.getValue().getCount()) }
.setEffectTime(vipInfoItem.getValue().getEffectTime()) removePrivileges.add(vipInfoItem.getKey());
.build()); continue;
} }
privilegeList.add(CommonProto.Privilege.newBuilder()
.setId(vipInfoItem.getKey())
. setUsedTimes(vipInfoItem.getValue().getCount())
.setEffectTime(vipInfoItem.getValue().getEffectTime())
.build());
}
if(fBuilder!=null){
fBuilder.setHadTakeDailyBox(playerInfoManager.getHadTakeDailyBoxVip()).addAllPrivilege(privilegeList); fBuilder.setHadTakeDailyBox(playerInfoManager.getHadTakeDailyBoxVip()).addAllPrivilege(privilegeList);
} }
playerInfoManager.vipFlush(removePrivileges);
} }
@ -815,9 +823,6 @@ public class PlayerLogic {
if(!vipInfo.containsKey(config.getId())){ if(!vipInfo.containsKey(config.getId())){
continue; continue;
} }
if(vipInfo.get(config.getId()).getEffectTime()!=0&&vipInfo.get(config.getId()).getEffectTime()<TimeUtils.now()/1000){
continue;
}
typePrivileges.add(config.getId()); typePrivileges.add(config.getId());
} }
if(typePrivileges.isEmpty()){ if(typePrivileges.isEmpty()){

View File

@ -284,7 +284,7 @@ public class BuyGoodsLogic {
public static void addNewPrivilege(User user ,int privilege,PlayerInfoProto.PrivilegeIndication.Builder indication) throws Exception { public static void addNewPrivilege(User user ,int privilege,PlayerInfoProto.PrivilegeIndication.Builder indication) throws Exception {
int privilegeType = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilege).getPrivilegeType(); int privilegeType = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilege).getPrivilegeType();
if(privilegeType== VipPrivilegeType.ADVENTURE_BASE_REWARD){ if(privilegeType== VipPrivilegeType.ADVENTURE_BASE_REWARD){
CombatLogic.getInstance().getNewAdventureReward(user,true); CombatLogic.getInstance().getNewAdventureReward(user,true,(int)(TimeUtils.now()/1000));
} }
user.getPlayerInfoManager().addVipInfo(privilege); user.getPlayerInfoManager().addVipInfo(privilege);
VipInfo vipInfo = user.getPlayerInfoManager().getVipInfo().get(privilege); VipInfo vipInfo = user.getPlayerInfoManager().getVipInfo().get(privilege);

View File

@ -534,7 +534,7 @@ public class CBean2Proto {
if(update){ if(update){
mainLevelManager.directUpdateDb(); mainLevelManager.directUpdateDb();
} }
CombatLogic.GetNewAdventureData getNewAdventureData = new CombatLogic.GetNewAdventureData(user, false,true).invoke(); CombatLogic.GetNewAdventureData getNewAdventureData = new CombatLogic.GetNewAdventureData(user, false,true).invoke((int)TimeUtils.now());
if (!StringUtil.isEmpty(getNewAdventureData.getRewardStr())){ if (!StringUtil.isEmpty(getNewAdventureData.getRewardStr())){
builder.setReward(getNewAdventureData.getRewardStr()); builder.setReward(getNewAdventureData.getRewardStr());
} }