back_recharge
zhangshanxue 2019-10-12 15:24:24 +08:00
commit e009ee3191
11 changed files with 91 additions and 32 deletions

View File

@ -1238,4 +1238,29 @@ public class TimeUtils {
return now();
}
/**
*
* @param lastTime
* @param curTime
* @param dayOfWeek
* @param hourOfDay
* @return
*/
public static boolean isSpanTime(long lastTime,long curTime,int dayOfWeek,int hourOfDay){
long curWeekdayStartTime = getCurWeekdayStartTime(dayOfWeek, hourOfDay);
if(lastTime>=curWeekdayStartTime){
return false;
}
if(curTime>=curWeekdayStartTime){
return true;
}else{
curWeekdayStartTime=curWeekdayStartTime-WEEK;
if(lastTime<curWeekdayStartTime){
return true;
}else{
return false;
}
}
}
}

View File

@ -22,7 +22,7 @@ import java.util.*;
public class CommonStaticConfig extends AbstractClassStaticConfig {
private Set<Integer> notDelete;
private int initPos = 0;
private int initPos;
private SGameSetting gameSetting;
private int maxLevel; //百味居、工坊相关

View File

@ -171,5 +171,7 @@ public interface BIReason {
int TREASURE_BUY_LEVEL_CONSUME = 1043;//孙龙宝藏等级快速购买
int TREASURE_RESET_CONCUME = 1044;//孙龙宝藏重置删除积分
}

View File

@ -294,9 +294,6 @@ public class GlobalDataManaager {
ActivityLogic.getInstance().flushEveryDay(user,fBuilder);
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder);
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH,0);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_WEEK_REFRESH,0);
user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0);
FriendLogic.getInstance().refreshState(session);

View File

@ -63,7 +63,7 @@ public class ActivityLogic {
//幸运转盘活动刷新
ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCK_WHEEL);
ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCK_WHEEL_ADVANCE);
ActivityLogic.getInstance().resumeActivity(user,ActivityType.TREASURE);
Set<Integer> upFiveActivityTypes = new HashSet<>();
upFiveActivityTypes.add(ActivityType.SevenLogin);

View File

@ -25,12 +25,22 @@ public class TreasureActivity extends AbstractActivity {
super(id);
}
@Override
public void onResume(User user) throws Exception {
// user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_MONTH_REFRESH, id);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_WEEK_REFRESH, id);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, id);
}
@Override
public void initActivity(User user) throws Exception {
user.getPlayerInfoManager().setHadBuyTreasure(0);
LOGGER.info("戒灵秘宝初始化...");
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_MONTH_REFRESH, sGlobalActivity.getId());
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_WEEK_REFRESH, sGlobalActivity.getId());
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, sGlobalActivity.getId());
ActivityMission activityMission = new ActivityMission();
List<Integer> levels = new ArrayList<>(STreasureSunlongConfig.levelTreasureConfigMap.keySet());
if(levels.contains(0)){

View File

@ -2,8 +2,11 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.classsStaticCfg.TaskStaticConfig;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.logic.mission.*;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
import com.ljsd.jieling.logic.mission.main.*;
@ -11,12 +14,14 @@ import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import util.MathUtils;
import com.ljsd.jieling.util.MessageUtil;
import config.*;
import manager.STableManager;
import util.TimeUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -89,28 +94,37 @@ public class UserMissionManager extends MongoBase {
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true);
break;
case TREASH_WEEK_REFRESH:
int[] dailyRefreshIds = resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
int[] weekRefreshIds = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
CommonProto.RefreshTask.Builder task1 = treasureIndicationBuild(1, dailyRefreshIds);
CommonProto.RefreshTask.Builder task2 = treasureIndicationBuild(2, weekRefreshIds);
PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task1.build()).addTasks(task2.build()).build();
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true);
if(weekRefreshIds!=null){
CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds);
PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build();
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication2,true);
}
break;
case TREASH_MONTH_REFRESH:
user.getPlayerInfoManager().setTreasureLevel(0);
Item item = user.getItemManager().getItem(Global.TREASURE_SCORE);
if(item!=null){
if(item.getItemNum()!=0){
Map<Integer,Integer> treasureScore = new HashMap<>();
treasureScore.put(Global.TREASURE_SCORE,item.getItemNum());
try {
ItemUtil.itemCost(user,treasureScore, BIReason.TREASURE_RESET_CONCUME,1);
} catch (Exception e) {
e.printStackTrace();
}
}
}
System.out.println("戒灵秘宝月任务初始化");
int[] dailyRefreshIds1 = resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
int[] weekRefreshIds1 = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
// int[] dailyRefreshIds1 = resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
// int[] weekRefreshIds1 = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
int[] monthRefreshIds1 = resetTreasureTaskInfo(3,missionTypeEnumListMap,treasureMonthCumulationData);
CommonProto.RefreshTask.Builder task3 = treasureIndicationBuild(1, dailyRefreshIds1);
CommonProto.RefreshTask.Builder task4 = treasureIndicationBuild(2, weekRefreshIds1);
// CommonProto.RefreshTask.Builder task3 = treasureIndicationBuild(1, dailyRefreshIds1);
// CommonProto.RefreshTask.Builder task4 = treasureIndicationBuild(2, weekRefreshIds1);
CommonProto.RefreshTask.Builder task5 = treasureIndicationBuild(3, monthRefreshIds1);
PlayerInfoProto.TreasureRefreshIndication indication3 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task3.build()).addTasks(task4.build()).addTasks(task5.build()).build();
PlayerInfoProto.TreasureRefreshIndication indication3 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task5.build()).build();
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication3,true);
// openMission(user,GameEvent.TREASH_WEEK_REFRESH,missionTypeEnumListMap,parm);
break;
case SERVENHAPPY_REFRESH:
List<STreasureTaskConfig> sTreasureTaskConfigs = null;
@ -282,14 +296,11 @@ public class UserMissionManager extends MongoBase {
private int[] resetTreasureTaskInfo(int type,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap,CumulationData treasureCumulationData){
//周刷新检测
if(type==3){
treasureMissionIdsType.setWeekRefresh((int)(TimeUtils.now()/1000));
}
if(type==2){
if(treasureMissionIdsType.getWeekRefresh()>= TimeUtils.getCurWeekdayStartTime(1,5)){
if(treasureMissionIdsType.getWeekRefresh()!=0&&!TimeUtils.isSpanTime(treasureMissionIdsType.getWeekRefresh(),TimeUtils.now(),1,5)){
return null;
}
treasureMissionIdsType.setWeekRefresh((int)TimeUtils.now()/1000);
treasureMissionIdsType.setWeekRefresh(TimeUtils.now());
}
int[] typeMissionNum = SSpecialConfig.getOnceArrayValue(SSpecialConfig.SUNLONG_DAILYTASKS);
List<Integer> taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type);
@ -319,7 +330,14 @@ public class UserMissionManager extends MongoBase {
}
treasureCumulationData.reset();
updateString("treasureMissionIdsType",treasureMissionIdsType);
updateString("treasureCumulationData",treasureCumulationData);
if(type==1){
updateString("treasureCumulationData",treasureCumulationData);
}else if(type==2){
updateString("treasureWeekCumulationData",treasureCumulationData);
}else if(type==3){
updateString("treasureMonthCumulationData",treasureCumulationData);
}
return tasks;
}
private CommonProto.RefreshTask.Builder treasureIndicationBuild(int type,int[] refreshIds){

View File

@ -182,8 +182,10 @@ public class GuildFightLogic {
Family.FamilyBuildBuffInfo.Builder buffInfo = Family.FamilyBuildBuffInfo.newBuilder();
buffInfo.setBuildId(i + 1);
int[] buildBuffs = buffCache.get(String.valueOf(i + 1));
for(Integer buff:buildBuffs){
buffInfo.addBuffId(buff);
if(buildBuffs!=null){
for(Integer buff:buildBuffs){
buffInfo.addBuffId(buff);
}
}
fightInfo.addBuildBuff(buffInfo);
}

View File

@ -197,6 +197,7 @@ public class GuildLogic {
MessageUtil.sendErrorResponse(session,0,msgId,"已加入过公会");
return;
}
Map<Integer, GuildApply> applyGuildPersonInfos = GuilidManager.getApplyGuildInfos(session.getUid(), 1);
SGuildSetting guildSetting = SGuildSetting.sGuildSetting;
if(applyGuildPersonInfos.size()>=guildSetting.getApplyLimit()){
@ -204,6 +205,10 @@ public class GuildLogic {
return;
}
for(Integer applyGuildId : applyGuilds){
if(GuilidManager.guildInfoMap.get(applyGuildId).getJoinType()!=0&&applyGuilds.size()==1){
MessageUtil.sendErrorResponse(session,0,msgId,"该公会限制条件已修改,请刷新页面");
return;
}
GuildApply guildApply = new GuildApply(uid,applyGuildId);
Map<Integer, GuildApply> applyGuildFamilyInfos = GuilidManager.getApplyGuildInfos(applyGuildId, 0);
if(applyGuildFamilyInfos.size()>=guildSetting.getBeApplyLimit()){
@ -247,7 +252,7 @@ public class GuildLogic {
return;
}
if(guildInfo.getJoinType()!=1){
MessageUtil.sendErrorResponse(session,0,msgId,"该工会限制条件已修改");
MessageUtil.sendErrorResponse(session,0,msgId,"该公会限制条件已修改,请刷新页面");
return;
}
if(user.getPlayerInfoManager().getLevel()<guildInfo.getIntoLevel()){

View File

@ -16,13 +16,13 @@ public class TreasureMissionType extends AbstractMissionType{
private Map<Integer,Integer> takeTimes = new HashMap<>();
private int weekRefresh;
private long weekRefresh;
public int getWeekRefresh() {
public long getWeekRefresh() {
return weekRefresh;
}
public void setWeekRefresh(int weekRefresh) {
public void setWeekRefresh(long weekRefresh) {
this.weekRefresh = weekRefresh;
}

View File

@ -597,7 +597,7 @@ public class ItemUtil {
*/
public static void treasureLevelUp(User user) throws Exception {
STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(user.getPlayerInfoManager().getTreasureLevel());
while(ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONCUME,1)){
while(levelConfig.getIntegral()!=null&&ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONCUME,1)){
user.getPlayerInfoManager().addTreasureLevel();
levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(user.getPlayerInfoManager().getTreasureLevel());
}