精英怪
parent
eb2c08c614
commit
5b1e55b61e
|
@ -35,6 +35,11 @@ public enum FunctionIdEnum {
|
||||||
|
|
||||||
DailyMission(20),
|
DailyMission(20),
|
||||||
|
|
||||||
|
WorkShopTech(101),
|
||||||
|
WorkShopCreateEquip(102),
|
||||||
|
WorkShopCreateProtectEquip(103),
|
||||||
|
WorkShopRebuildEquip(104),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
private int functionId;
|
private int functionId;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.ljsd.GameApplication;
|
||||||
import com.ljsd.jieling.config.SGlobalSystemConfig;
|
import com.ljsd.jieling.config.SGlobalSystemConfig;
|
||||||
import com.ljsd.jieling.globals.Global;
|
import com.ljsd.jieling.globals.Global;
|
||||||
import com.ljsd.jieling.handler.BaseHandler;
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
|
import com.ljsd.jieling.logic.GlobalDataManaager;
|
||||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||||
import com.ljsd.jieling.logic.dao.LevelDifficulty;
|
import com.ljsd.jieling.logic.dao.LevelDifficulty;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
@ -162,14 +163,31 @@ public class HandlerLogicThread extends Thread{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_REQUEST_VALUE: // 锻造
|
case MessageTypeProto.MessageType.WORKSHOP_LEVELUP_RESPONSE_VALUE: // 升级
|
||||||
case MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_REQUEST_VALUE:
|
|
||||||
case MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_RESPONSE_VALUE:
|
|
||||||
sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.WorkShop);
|
sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.WorkShop);
|
||||||
if (checkOpen(user,sGlobalSystemConfig)) {
|
if (checkOpen(user,sGlobalSystemConfig)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_REQUEST_VALUE: // 基础锻造
|
||||||
|
case MessageTypeProto.MessageType.WORKSHOP_EQUIP_CREATE_REQUEST_VALUE: //武器打造 防具打造 特殊处理 业务逻辑自己处理
|
||||||
|
sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.WorkShop);
|
||||||
|
if (checkOpen(user,sGlobalSystemConfig)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MessageTypeProto.MessageType.WORKSHOP_TECHNOLOGY_LEVEL_REQUEST_VALUE: // 科技树
|
||||||
|
sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.WorkShopTech);
|
||||||
|
if (checkOpen(user,sGlobalSystemConfig)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MessageTypeProto.MessageType.WORKSHOP_REBUILD_REQUEST_VALUE: //武器重铸
|
||||||
|
sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.WorkShopRebuildEquip);
|
||||||
|
if (checkOpen(user,sGlobalSystemConfig)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case MessageTypeProto.MessageType.COOK_FOOD_REQUEST_VALUE:
|
case MessageTypeProto.MessageType.COOK_FOOD_REQUEST_VALUE:
|
||||||
sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.Foods);
|
sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.Foods);
|
||||||
if (checkOpen(user,sGlobalSystemConfig)) {
|
if (checkOpen(user,sGlobalSystemConfig)) {
|
||||||
|
@ -196,7 +214,10 @@ public class HandlerLogicThread extends Thread{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkOpen(User user, SGlobalSystemConfig sGlobalSystemConfig) {
|
public static boolean checkOpen(User user, SGlobalSystemConfig sGlobalSystemConfig) {
|
||||||
|
if(!GlobalDataManaager.getInstance().checkIsOpen(sGlobalSystemConfig.getId())){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
int level = user.getPlayerInfoManager().getLevel();
|
int level = user.getPlayerInfoManager().getLevel();
|
||||||
int workShopLevel = user.getWorkShopController().getWorkShopLevel();
|
int workShopLevel = user.getWorkShopController().getWorkShopLevel();
|
||||||
Map<Integer, LevelDifficulty> levelDifficultyInfosMap = user.getLevelDifficultyManager().getLevelDifficultyInfosMap();
|
Map<Integer, LevelDifficulty> levelDifficultyInfosMap = user.getLevelDifficultyManager().getLevelDifficultyInfosMap();
|
||||||
|
|
|
@ -77,6 +77,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
RoomInfo roomInfo = user.getRoomInfo();
|
RoomInfo roomInfo = user.getRoomInfo();
|
||||||
MapManager mapManager = user.getMapManager();
|
MapManager mapManager = user.getMapManager();
|
||||||
CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),user.getMapManager(),roomInfo);
|
CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),user.getMapManager(),roomInfo);
|
||||||
|
CommonProto.SuddenlyBossInfo suddenlyBossInfo = CommonProto.SuddenlyBossInfo.newBuilder().setSuddBossId(mapManager.getSuddenlyBoss()).setEndTime(mapManager.getSuddenlyBossEndTime()).setFindMapId(mapManager.getFindSuddenlyBossMapId()).build();
|
||||||
RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo();
|
RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo();
|
||||||
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
||||||
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
|
= PlayerInfoProto.GetPlayerInfoResponse.newBuilder()
|
||||||
|
@ -85,8 +86,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
.addAllPrivilege(privilegeList)
|
.addAllPrivilege(privilegeList)
|
||||||
.addAllGiftGoodsInfo(BuyGoodsLogic.getGoodsBagInfo(userId))
|
.addAllGiftGoodsInfo(BuyGoodsLogic.getGoodsBagInfo(userId))
|
||||||
.addAllBuyGoodsId(rechargeInfo.getBuyGoodsTimes().keySet())
|
.addAllBuyGoodsId(rechargeInfo.getBuyGoodsTimes().keySet())
|
||||||
.setSuddBossId(mapManager.getSuddenlyBoss())
|
.setSuddenlyBossInfo(suddenlyBossInfo)
|
||||||
.setEndTime(mapManager.getSuddenlyBossEndTime())
|
|
||||||
.build();
|
.build();
|
||||||
try {
|
try {
|
||||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true);
|
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true);
|
||||||
|
|
|
@ -51,6 +51,10 @@ public class GlobalDataManaager {
|
||||||
|
|
||||||
private PlayerInfoProto.GetFunctionOfTimeResponse getFunctionOfTimeResponse = PlayerInfoProto.GetFunctionOfTimeResponse.newBuilder().build();
|
private PlayerInfoProto.GetFunctionOfTimeResponse getFunctionOfTimeResponse = PlayerInfoProto.GetFunctionOfTimeResponse.newBuilder().build();
|
||||||
|
|
||||||
|
public boolean checkIsOpen(int id) {
|
||||||
|
return openTimeOfFuntionCache.containsKey(id);
|
||||||
|
}
|
||||||
|
|
||||||
public void checkSystemFunctioIsOpen() throws Exception {
|
public void checkSystemFunctioIsOpen() throws Exception {
|
||||||
long now = TimeUtils.now();
|
long now = TimeUtils.now();
|
||||||
Map<Integer, SGlobalSystemConfig> sGlobalSystemConfigMap = SGlobalSystemConfig.getsGlobalSystemConfigMap();
|
Map<Integer, SGlobalSystemConfig> sGlobalSystemConfigMap = SGlobalSystemConfig.getsGlobalSystemConfigMap();
|
||||||
|
|
|
@ -185,9 +185,13 @@ public class HeroLogic {
|
||||||
}
|
}
|
||||||
int[][] dropHeroAndItem = new int[length][];
|
int[][] dropHeroAndItem = new int[length][];
|
||||||
int randCount = 0;
|
int randCount = 0;
|
||||||
Map<Integer, Integer> totalCount = heroManager.getTotalCount();
|
Map<Integer, Integer> totalCountMap = heroManager.getTotalCount();
|
||||||
if (totalCount.containsKey(type)) {
|
if (totalCountMap.containsKey(type)) {
|
||||||
randCount = totalCount.get(type);
|
randCount = totalCountMap.get(type);
|
||||||
|
}
|
||||||
|
int totalCount = 0;
|
||||||
|
for(Integer count : totalCountMap.values()){
|
||||||
|
totalCount+=count;
|
||||||
}
|
}
|
||||||
int j=0;
|
int j=0;
|
||||||
for(int i=0;i<perCount;i++){
|
for(int i=0;i<perCount;i++){
|
||||||
|
@ -197,7 +201,8 @@ public class HeroLogic {
|
||||||
pooId = getPooId(sLotterySetting, pooId);
|
pooId = getPooId(sLotterySetting, pooId);
|
||||||
}
|
}
|
||||||
LOGGER.info("the uid={},the type={},the poolId={}",uid,type,pooId);
|
LOGGER.info("the uid={},the type={},the poolId={}",uid,type,pooId);
|
||||||
int[] reward = randomHeroByPoolId(pooId);
|
totalCount++;
|
||||||
|
int[] reward = randomHeroByPoolId(pooId,totalCount,user.getPlayerInfoManager().getLevel());
|
||||||
if(reward!=null){
|
if(reward!=null){
|
||||||
dropHeroAndItem[j++] = reward;
|
dropHeroAndItem[j++] = reward;
|
||||||
}
|
}
|
||||||
|
@ -273,8 +278,8 @@ public class HeroLogic {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int[] randomHeroByPoolId(int poolId){
|
public int[] randomHeroByPoolId(int poolId,int randomCount,int userLevel){
|
||||||
List<SLotteryRewardConfig> sLotteryRewardConfigListByPoolId = SLotteryRewardConfig.getSLotteryRewardConfigListByPoolId(poolId);
|
List<SLotteryRewardConfig> sLotteryRewardConfigListByPoolId = getMineSLotteryRewardConfig(poolId,randomCount,userLevel);
|
||||||
int totalCountByPoolId = SLotteryRewardConfig.getTotalCountByPoolId(poolId);
|
int totalCountByPoolId = SLotteryRewardConfig.getTotalCountByPoolId(poolId);
|
||||||
int randCount = MathUtils.randomInt(totalCountByPoolId) + 1;
|
int randCount = MathUtils.randomInt(totalCountByPoolId) + 1;
|
||||||
int weight =0;
|
int weight =0;
|
||||||
|
@ -283,11 +288,36 @@ public class HeroLogic {
|
||||||
if(weight>=randCount){
|
if(weight>=randCount){
|
||||||
return sLotteryRewardConfig.getReward();
|
return sLotteryRewardConfig.getReward();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<SLotteryRewardConfig> getMineSLotteryRewardConfig(int poolId,int randomCount,int userLevel){
|
||||||
|
List<SLotteryRewardConfig> sLotteryRewardConfigs = new ArrayList<>();
|
||||||
|
List<SLotteryRewardConfig> sLotteryRewardConfigListByPoolId = SLotteryRewardConfig.getSLotteryRewardConfigListByPoolId(poolId);
|
||||||
|
for(SLotteryRewardConfig sLotteryRewardConfig : sLotteryRewardConfigListByPoolId ){
|
||||||
|
int[] openRules = sLotteryRewardConfig.getOpenRules();
|
||||||
|
boolean canAdd = true;
|
||||||
|
if(openRules!=null&&openRules.length>0){
|
||||||
|
int openType = openRules[0];
|
||||||
|
int openValue = openRules[1];
|
||||||
|
switch (openType){
|
||||||
|
case 1:
|
||||||
|
canAdd = randomCount>openValue;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
canAdd = userLevel > openValue;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(canAdd){
|
||||||
|
sLotteryRewardConfigs.add(sLotteryRewardConfig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sLotteryRewardConfigs;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void getAllTeamPosInfo(ISession session) throws Exception {
|
public void getAllTeamPosInfo(ISession session) throws Exception {
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
List<CommonProto.TeamPosInfo> teamPosInfoList = new ArrayList<>();
|
List<CommonProto.TeamPosInfo> teamPosInfoList = new ArrayList<>();
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package com.ljsd.jieling.logic.item;
|
package com.ljsd.jieling.logic.item;
|
||||||
|
|
||||||
import com.ljsd.jieling.config.*;
|
import com.ljsd.jieling.config.*;
|
||||||
|
import com.ljsd.jieling.core.FunctionIdEnum;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
|
import com.ljsd.jieling.core.HandlerLogicThread;
|
||||||
import com.ljsd.jieling.globals.BIReason;
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
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;
|
||||||
|
@ -300,11 +302,6 @@ public class WorkShopLogic {
|
||||||
finalMaterial.put(materialId,nums*sWorkShopFoundationConfig.getNum());
|
finalMaterial.put(materialId,nums*sWorkShopFoundationConfig.getNum());
|
||||||
ItemUtil.addItem(user,finalMaterial,null, BIReason.WORKSHOP_CREATEMATERIAL);
|
ItemUtil.addItem(user,finalMaterial,null, BIReason.WORKSHOP_CREATEMATERIAL);
|
||||||
|
|
||||||
//熟练度提升
|
|
||||||
int type = sWorkShopFoundationConfig.getType();
|
|
||||||
int addExp = sWorkShopFoundationConfig.getExp()*nums;
|
|
||||||
|
|
||||||
|
|
||||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,null,true);
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,null,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,6 +309,11 @@ public class WorkShopLogic {
|
||||||
public void createEquipByUser(ISession session,int equipTid, List<Integer> runneIdsList,int nums) throws Exception {
|
public void createEquipByUser(ISession session,int equipTid, List<Integer> runneIdsList,int nums) throws Exception {
|
||||||
int uid=session.getUid();
|
int uid=session.getUid();
|
||||||
User user = UserManager.getUser(uid);
|
User user = UserManager.getUser(uid);
|
||||||
|
SGlobalSystemConfig sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.Adventure);
|
||||||
|
if (HandlerLogicThread.checkOpen(user,sGlobalSystemConfig)) {
|
||||||
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,"未开");
|
||||||
|
return;
|
||||||
|
}
|
||||||
SWorkShopEquipmentConfig sWorkShopEquipmentConfig = SWorkShopEquipmentConfig.getsWorkShopEquipmentConfigMap().get(equipTid);
|
SWorkShopEquipmentConfig sWorkShopEquipmentConfig = SWorkShopEquipmentConfig.getsWorkShopEquipmentConfigMap().get(equipTid);
|
||||||
if(sWorkShopEquipmentConfig == null){
|
if(sWorkShopEquipmentConfig == null){
|
||||||
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,"equipTid not exists");
|
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.WORKSHOP_FOUNDATION_RESPONSE_VALUE,"equipTid not exists");
|
||||||
|
@ -355,7 +357,6 @@ public class WorkShopLogic {
|
||||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||||
//熟练度提升
|
//熟练度提升
|
||||||
int type = sWorkShopEquipmentConfig.getType();
|
int type = sWorkShopEquipmentConfig.getType();
|
||||||
int addExp = sWorkShopEquipmentConfig.getExp()*nums;
|
|
||||||
int workShopLevel = user.getWorkShopController().getWorkShopLevel();
|
int workShopLevel = user.getWorkShopController().getWorkShopLevel();
|
||||||
if(type == GlobalsDef.WORK_SHOP_TYPE){
|
if(type == GlobalsDef.WORK_SHOP_TYPE){
|
||||||
while (nums-->0){
|
while (nums-->0){
|
||||||
|
|
Loading…
Reference in New Issue