back_recharge
jiahuiwen 2019-04-24 16:10:04 +08:00
commit 9c035670ea
3 changed files with 53 additions and 4 deletions

View File

@ -7,4 +7,8 @@ public interface GlobalGm {
int HERO_STAR = 4;// 添加指定星级英雄
int OPEN_MAP = 5; // 开启到指定关卡
int ONE_KEY_ITEM_OR_HERO = 6;
int USER_UP_LEVE = 7; // 玩家升级
int ADOPT_ALL_DIFFICULTY = 8; // 通过所有关卡
int ADOPT_FIGHT_BY_LEVE = 9; // 根据等级开启对应的关卡
}

View File

@ -11,10 +11,8 @@ 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.handler.mission.Mission;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.Mail;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
@ -96,6 +94,29 @@ public class GMRequestHandler extends BaseHandler{
case GlobalGm.OPEN_MAP:
MapLogic.getInstance().gmCrossFight(uid, prarm1);
break;
case GlobalGm.USER_UP_LEVE:
int exp = 0;
Map<Integer, SPlayerLevelConfig> sPlayerLevelConfigMap = SPlayerLevelConfig.getsPlayerLevelConfigMap();
for (Map.Entry<Integer, SPlayerLevelConfig> entry :sPlayerLevelConfigMap.entrySet()){
int leve = entry.getKey();
SPlayerLevelConfig value = entry.getValue();
if (prarm1 > leve){
exp += value.getExp();
}
}
MapLogic.getInstance().userLevelUp(cUser,exp);
break;
case GlobalGm.ADOPT_ALL_DIFFICULTY:
sPlayerLevelConfigMap = SPlayerLevelConfig.getsPlayerLevelConfigMap();
LevelDifficultyManager levelDifficultyManager = cUser.getLevelDifficultyManager();
openFightids(levelDifficultyManager,sPlayerLevelConfigMap.size());
adoptAllFight(levelDifficultyManager);
break;
case GlobalGm.ADOPT_FIGHT_BY_LEVE:
levelDifficultyManager = cUser.getLevelDifficultyManager();
openFightids(levelDifficultyManager,prarm1);
adoptAllFight(levelDifficultyManager);
break;
case GlobalGm.ONE_KEY_ITEM_OR_HERO:{
//道具
Map<Integer, SItem> sItemMap = SItem.getsItemMap();
@ -137,6 +158,26 @@ public class GMRequestHandler extends BaseHandler{
}
}
private void adoptAllFight(LevelDifficultyManager levelDifficultyManager) {
Map<Integer, LevelDifficulty> levelDifficultyInfosMap = levelDifficultyManager.getLevelDifficultyInfosMap();
for (Map.Entry<Integer,LevelDifficulty> entry :levelDifficultyInfosMap.entrySet()){
entry.getValue().setState(Global.FIGHT_CLEARANCE);
}
}
//开启所有关卡
private void openFightids(LevelDifficultyManager levelDifficultyManager,int level) {
Map<Integer, LevelDifficulty> levelDifficultyMap = SLevelDifficultyConfig.getLevelDifficultyMap();
for (Map.Entry<Integer,LevelDifficulty> entry :levelDifficultyMap.entrySet()){
LevelDifficulty levelDifficulty = entry.getValue();
SLevelDifficultyConfig sLevelDifficultyConfig = SLevelDifficultyConfig.getsLevelDifficultyConfigMap().get(entry.getKey());
if (sLevelDifficultyConfig.getLevelLimit() > level){
continue;
}
levelDifficultyManager.newLevelDifficulty(levelDifficulty.getFightId(),levelDifficulty.getType(),levelDifficulty.getAreaId());
}
}
private void giveHero(User cUser, int cardId, int cardNum) throws Exception {
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
Map<Integer,Integer> cardMap = new ConcurrentHashMap<>();

View File

@ -50,6 +50,10 @@ public class CombatLogic {
if(hasAdventure){
offLineTime = (int)((System.currentTimeMillis() -playerInfoManager.getOffLineTime())/1000);
}
if(offLineTime == 0){
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_ADVENTURE_INFO_RESPONSE_VALUE,null,true);
return;
}
FightInfoProto.GetAdventureStateInfoResponse response = FightInfoProto.GetAdventureStateInfoResponse.newBuilder().addAllAdventureStateInfoList(result).setDrop(dropBuilder.build()).setOutTime(offLineTime).
build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_ADVENTURE_INFO_RESPONSE_VALUE,response,true);
@ -141,7 +145,7 @@ public class CombatLogic {
Map<Integer, AdventureStateInfo> adventureStateInfoMap = adventureManager.getAdventureStateInfoMap();
int now = (int)(System.currentTimeMillis()/1000);
int adventureRefresh = SGameSetting.getGameSetting().getAdventureRefresh();
int offLineTime = (int)(user.getPlayerInfoManager().getOffLineTime());
int offLineTime = (int)(user.getPlayerInfoManager().getOffLineTime()/1000);
for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()){
int positionTmp = adventureStateInfoTmp.getPosition();
if(position!=0 && positionTmp!=position){