wangyuan 2019-04-15 05:29:35 +08:00
parent 741c60fccf
commit 77a480f955
1 changed files with 28 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.handler.GameGM;
import com.ljsd.jieling.config.SAccomplishmentConfig;
import com.ljsd.jieling.config.SCHero;
import com.ljsd.jieling.config.SCHeroRankUpConfig;
import com.ljsd.jieling.config.SCMapConfig;
@ -8,6 +9,9 @@ import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalGm;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.handler.map.MapMission;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.Mail;
import com.ljsd.jieling.logic.dao.root.User;
@ -22,9 +26,7 @@ import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@Component
@ -87,14 +89,18 @@ public class GMRequestHandler extends BaseHandler{
case GlobalGm.OPEN_MAP:
SCMapConfig scMapConfig = SCMapConfig.getsCMapSize().get(100 + prarm1);
Set<Integer> missionIds = new HashSet<>();
MapManager mapManager = cUser.getMapManager();
Map<Integer, MapMission> allMissionProgress = mapManager.getAllMissionProgress();
int curMapId = mapManager.getCurMapId();
if (scMapConfig != null) {
for (int i = 0; i <= prarm1; i++) {
for (int i = 1; i <= prarm1; i++) {
int mapId = 100 + i;
SCMapConfig crossMap = SCMapConfig.getsCMapSize().get(mapId);
cUser.getPlayerInfoManager().setMapId(mapId);
if (crossMap.getOpenRule() != null && crossMap.getOpenRule().length > 0) {
missionIds.add(crossMap.getOpenRule()[0]);
}
initFininshMapMission(mapManager,mapId);
}
}
cUser.getMissionManager().updateFinishMissions(missionIds);
@ -123,4 +129,22 @@ public class GMRequestHandler extends BaseHandler{
itemMap.put(itemId,itemNum);
ItemUtil.addItem(cUser,itemMap,dropBuilder);
}
private void initFininshMapMission( MapManager mapManager,int mapId){
List<SAccomplishmentConfig> sAccomplishmentConfigs = SAccomplishmentConfig.getsAccomplishmentConfigByMapId(mapId);
if( sAccomplishmentConfigs == null){
return;
}
Map<Integer,Integer> missionProgress = new HashMap<>();
int totalWeight = 0;
for(SAccomplishmentConfig sAccomplishmentConfig : sAccomplishmentConfigs){
int id = sAccomplishmentConfig.getId();
int value = sAccomplishmentConfig.getValues()[1];
missionProgress.put(id,value);
totalWeight+=sAccomplishmentConfig.getScore();
}
MapMission mapMission = new MapMission(mapId,missionProgress);
mapMission.setTotalWeight(totalWeight);
mapManager.addMapMission(mapMission);
}
}