挂机邮件

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

View File

@ -200,7 +200,7 @@ public class CombatLogic {
User user = UserManager.getUser(uid);
Map<Integer, CommonProto.Drop> adventureFastReward =null;
if(type == 2){
adventureFastReward = getNewAdventureReward(user,false);
adventureFastReward = getNewAdventureReward(user,false,(int)(TimeUtils.now()/1000));
if(adventureFastReward.get(1).getItemlistCount()==0){
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);
}
public Map<Integer,CommonProto.Drop> getNewAdventureReward(User user,boolean sendMail) throws Exception {
GetNewAdventureData getNewAdventureData = new GetNewAdventureData(user, sendMail,false).invoke();
public Map<Integer,CommonProto.Drop> getNewAdventureReward(User user,boolean sendMail,int time) throws Exception {
GetNewAdventureData getNewAdventureData = new GetNewAdventureData(user, sendMail,false).invoke(time);
if (getNewAdventureData.is()) return null;
CommonProto.Drop.Builder baseBuilder = getNewAdventureData.getBaseBuilder();
CommonProto.Drop.Builder randomBuilder = getNewAdventureData.getRandomBuilder();
@ -884,7 +884,7 @@ public class CombatLogic {
return rewardStr;
}
public GetNewAdventureData invoke() throws Exception {
public GetNewAdventureData invoke(int time) throws Exception {
MainLevelManager mainLevelManager = user.getMainLevelManager();
Map<Integer, Integer> fightStateInfo = user.getMainLevelManager().getFightStateInfo();
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
@ -917,8 +917,8 @@ public class CombatLogic {
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 now = (int) (System.currentTimeMillis() / 1000);
int times = (time - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh();
int maxTimes = adventureOffline - takeTimes;
int lastTimeTakes=0;
boolean reset = maxTimes<times;
@ -948,14 +948,14 @@ public class CombatLogic {
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);
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,time, Global.MAIL_EFFECTIVE_TIME);
}
}
mainLevelManager.afterTakeStateReward(true,0);
mainLevelManager.afterTakeStateReward(true,0,time);
myResult = true;
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,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,BIReason.ADVENTURE_RANDOM_REWARDD);
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.root.User;
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.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
@ -286,21 +287,28 @@ public class PlayerLogic {
removePrivileges.add(VipPrivilegeType.UNLOCK_STAR_EXTRA_REWARD);
}*/
}
playerInfoManager.vipFlush(removePrivileges);
int vipLevel = user.getPlayerInfoManager().getVipLevel();
sendVipDailyOrLevlUpReward(user, vipLevel,BIReason.VIP_DAY_REWARD);
if(fBuilder!=null){
List<CommonProto.Privilege> privilegeList = new ArrayList<>();
Map<Integer, VipInfo> vipInfo = playerInfoManager.getVipInfo();
for(Map.Entry<Integer,VipInfo> vipInfoItem : vipInfo.entrySet()){
privilegeList.add(CommonProto.Privilege.newBuilder()
.setId(vipInfoItem.getKey())
. setUsedTimes(vipInfoItem.getValue().getCount())
.setEffectTime(vipInfoItem.getValue().getEffectTime())
.build());
List<CommonProto.Privilege> privilegeList = new ArrayList<>();
Map<Integer, VipInfo> vipInfo = playerInfoManager.getVipInfo();
for(Map.Entry<Integer,VipInfo> vipInfoItem : vipInfo.entrySet()){
if(vipInfoItem.getValue().getEffectTime()!=0 && vipInfoItem.getValue().getEffectTime()<=(TimeUtils.now()/1000)){
if(SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(vipInfoItem.getKey()).getPrivilegeType()==VipPrivilegeType.ADVENTURE_BASE_REWARD){
CombatLogic.getInstance().getNewAdventureReward(user,true,vipInfoItem.getValue().getEffectTime());
}
removePrivileges.add(vipInfoItem.getKey());
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);
}
playerInfoManager.vipFlush(removePrivileges);
}
@ -815,9 +823,6 @@ public class PlayerLogic {
if(!vipInfo.containsKey(config.getId())){
continue;
}
if(vipInfo.get(config.getId()).getEffectTime()!=0&&vipInfo.get(config.getId()).getEffectTime()<TimeUtils.now()/1000){
continue;
}
typePrivileges.add(config.getId());
}
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 {
int privilegeType = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilege).getPrivilegeType();
if(privilegeType== VipPrivilegeType.ADVENTURE_BASE_REWARD){
CombatLogic.getInstance().getNewAdventureReward(user,true);
CombatLogic.getInstance().getNewAdventureReward(user,true,(int)(TimeUtils.now()/1000));
}
user.getPlayerInfoManager().addVipInfo(privilege);
VipInfo vipInfo = user.getPlayerInfoManager().getVipInfo().get(privilege);

View File

@ -534,7 +534,7 @@ public class CBean2Proto {
if(update){
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())){
builder.setReward(getNewAdventureData.getRewardStr());
}